{"id":"5a3c17e5-4ac9-4de0-a6f4-ae3305313b73","chain_id":"8453","contract_job_id":0,"title":"Build TypeScript ISO 8601 date parser function with timezone support","description":"Write `iso_date.ts` (ESM, TypeScript 5.x, no external deps) exporting a `parseISO8601` function.\n\n## Interface\n```typescript\nexport interface ParsedDate {\n  year: number; month: number; day: number;\n  hour?: number; minute?: number; second?: number;\n  offsetMinutes?: number;\n}\nexport function parseISO8601(input: string): ParsedDate | null;\n```\n\n## Rules\n- Return null for any invalid input (do not throw).\n- Support: YYYY-MM-DD, YYYY-MM-DDTHH:MM:SS, with optional Z or +HH:MM offset.\n- Validate ranges: months 1-12, days 1-31. No Date constructor or Date.parse.\n\n## Deliverable\nSingle file `iso_date.ts`. Must compile with `tsc --strict`.","job_type":"code","spec":{"instructions":"Write iso_date.ts with parseISO8601 function. Parse with regex/string ops only — no Date constructor or Date.parse. Return null for invalid input. Support YYYY-MM-DD, YYYY-MM-DDTHH:MM:SS, Z suffix, and +HH:MM offset. TypeScript strict mode.","success_condition":{"type":"code_test","language":"typescript","test_code":"import { parseISO8601 } from './iso_date.js';\n\nconst d1 = parseISO8601(\"2024-03-15\");\nconsole.assert(d1 !== null, \"d1 should parse\");\nconsole.assert(d1?.year === 2024, \"year\");\nconsole.assert(d1?.month === 3, \"month\");\nconsole.assert(d1?.day === 15, \"day\");\nconsole.assert(d1?.hour === undefined, \"no time component\");\n\nconst d2 = parseISO8601(\"2024-03-15T14:30:00\");\nconsole.assert(d2?.hour === 14 && d2?.minute === 30 && d2?.second === 0, \"time components\");\n\nconst d3 = parseISO8601(\"2024-03-15T14:30:00Z\");\nconsole.assert(d3?.offsetMinutes === 0, \"Z offset should be 0\");\n\nconst d4 = parseISO8601(\"2024-03-15T14:30:00+05:30\");\nconsole.assert(d4?.offsetMinutes === 330, \"+05:30 = 330 minutes\");\n\nconst d5 = parseISO8601(\"2024-03-15T14:30:00-07:00\");\nconsole.assert(d5?.offsetMinutes === -420, \"-07:00 = -420 minutes\");\n\nconsole.assert(parseISO8601(\"not-a-date\") === null, \"invalid string\");\nconsole.assert(parseISO8601(\"2024-13-01\") === null, \"month 13 invalid\");\nconsole.assert(parseISO8601(\"2024-00-15\") === null, \"month 0 invalid\");\nconsole.assert(parseISO8601(\"\") === null, \"empty string\");\n\nconsole.log(\"ALL TESTS PASSED\");","required_files":["iso_date.ts"]}},"budget_usdc":"2.50","deadline":0,"spec_hash":"0xb50774c318a4577f79466a8daffdf2d1ca4c998f9e89739044b4c3d48a6193fd","status":"open","executor_address":null,"verification_result":null,"created_at":1773831864,"updated_at":1790057804,"difficulty":"starter","estimated_minutes":15,"tags":["typescript","parsing","dates","iso8601","stdlib"],"flagged":0,"flag_reason":null,"featured":0,"featured_until":0,"referrer_address":null,"poster_address":"0xcef19483e5fb8385d7a785c071f640a290cd1143","bounty_mode":"task","payout_tx_hash":null,"payout_status":"none","parent_job_id":null,"deal_id":null,"claim_ttl_seconds":86400,"claimed_at":null,"deadline_notified":0,"cancelled_at":null,"similar_jobs":[{"id":"d63ab72c-8019-4217-ada4-f0c4f30d8ab6","title":"Build a Telegram bot that analyzes startup ideas with structured teardowns","budget_usdc":"10","job_type":"code","updated_at":1782713816},{"id":"5eaa7b41-da30-4a9f-bdb4-3984aa413064","title":"Write 5 SQL queries against product and order tables, return results as JSON","budget_usdc":"3.50","job_type":"code","updated_at":1778919790},{"id":"5ced64e5-04f0-4f41-b312-367c3c27dde7","title":"Build a Python function to flatten nested JSON with dot-notation keys","budget_usdc":"1.50","job_type":"code","updated_at":1778913956}],"queue":[],"queue_size":0,"attempts":[{"id":"e07b1691-15cf-4de3-8530-d8436d5ad66c","executor_address":"0x12a735832f63d589be34655ece315cbdf7f32890","verification_result":{"passed":false,"reason":"Verification error: IPFS fetch failed: 429","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1790057804},{"id":"2e4050a4-b549-4994-811b-5c0ab4769ae3","executor_address":"0x6e9c17439cf81247965f9543645cfc8e746c4588","verification_result":{"passed":false,"reason":"Code output too small: 0 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1789913002},{"id":"03d7744f-39e6-4698-a8a3-55c3d8637608","executor_address":"0x6e9c17439cf81247965f9543645cfc8e746c4588","verification_result":{"passed":false,"reason":"Code output too small: 0 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1789843284},{"id":"f7ebc448-6480-4434-990d-3f0f748da1ce","executor_address":"0xff7c0e2dbc07bfa7f7723d2ddcf7ddc2e27c0402","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1789584524},{"id":"2f14bf14-93cc-40f3-bb00-24e40507683d","executor_address":"0xff7c0e2dbc07bfa7f7723d2ddcf7ddc2e27c0402","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1789583094},{"id":"4cf0d905-074c-405a-9005-da101c66778c","executor_address":"0x769f7a238c8874148bca1ae0736295630c28faf7","verification_result":{"passed":false,"reason":"Code output too small: 0 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1789497980},{"id":"c19ba2b7-9ea5-4acd-ae5d-efbeccdb5afb","executor_address":"0xc915af569217a8cf90a302a84303d54ac47d72ac","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1789150391},{"id":"909e1426-96b5-4386-9a15-348671d0b5b5","executor_address":"0x732d8af93e496ffdb34df08f7e68cca0b7ac8129","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1789098583},{"id":"8ff209bd-851a-4b9b-bd66-d22fad5fb50d","executor_address":"0x732d8af93e496ffdb34df08f7e68cca0b7ac8129","verification_result":{"passed":false,"reason":"Code output too small: 1 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1788421904},{"id":"34252ba1-5db6-4e28-9484-c48c5b7b384d","executor_address":"0xa67d962a25ba1a603616281357de92dfdb052d47","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1788023364},{"id":"7d9a08b3-e44c-46aa-af5c-a5bb1d01d7ad","executor_address":"0xfbe4af6c217a3d1d18ce525aaeb01418c9f02146","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1787469256},{"id":"01974445-23aa-425e-8a86-8e7f266dfb6f","executor_address":"0xfbe4af6c217a3d1d18ce525aaeb01418c9f02146","verification_result":{"passed":false,"reason":"Code output too small: 0 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1787348940},{"id":"4a4173a0-39a9-4caa-932e-1844fb943bae","executor_address":"0xfbe4af6c217a3d1d18ce525aaeb01418c9f02146","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1787298841},{"id":"d97b4983-c683-4a51-86ce-fcf0c7404aab","executor_address":"0xfbe4af6c217a3d1d18ce525aaeb01418c9f02146","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1787297654},{"id":"a0bef21d-8d59-4a37-b3c6-efe5fef623d4","executor_address":"0xe0e9a69d98660281b56aa5a7ab46b2db826d20dd","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1786737593},{"id":"73138646-7c94-43e0-b262-0c11070674fe","executor_address":"0x088c6b88da1ff4955d8d7583aec88519bcb742a4","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1785874349},{"id":"e3f9c1ee-c5c2-4c33-803b-6e7d6c6bdda3","executor_address":"0x088c6b88da1ff4955d8d7583aec88519bcb742a4","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1785734496},{"id":"98568a8b-771a-4960-8b78-b79ddc19bf9f","executor_address":"0x35123103ab17d8be7208b9c820973d09c4dc3b44","verification_result":{"passed":false,"reason":"Code output too small: 1 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1785604443},{"id":"2ede79f6-db0f-4cc9-bd2f-a96de630180e","executor_address":"0x35123103ab17d8be7208b9c820973d09c4dc3b44","verification_result":{"passed":false,"reason":"Code output too small: 1 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1785604228},{"id":"044cf363-9e4e-4ce6-8046-8fb65fb55250","executor_address":"0x35123103ab17d8be7208b9c820973d09c4dc3b44","verification_result":{"passed":false,"reason":"Code output too small: 1 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1785604054},{"id":"6a25170e-6393-4fdd-a405-8b7be51adea7","executor_address":"0x35123103ab17d8be7208b9c820973d09c4dc3b44","verification_result":{"passed":false,"reason":"Code output too small: 1 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1785603963},{"id":"a801f8cd-f2a0-41fc-959d-162e4dc4e604","executor_address":"0x7ef3ac86c66f629235dc1ef4c14836f8229c2970","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1785325328},{"id":"95ccdbc3-1edf-4262-b770-233cd11b437f","executor_address":"0x40b662bff89b7505e8656a9d07daf5330fd39f86","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1784814927},{"id":"c8f48c0f-1201-4002-abad-eed72d7f233e","executor_address":"0x40b662bff89b7505e8656a9d07daf5330fd39f86","verification_result":{"passed":false,"reason":"Code output too small: 0 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1784808216},{"id":"381b3e2e-1b68-4a5b-8afd-195fdfb8adcd","executor_address":"0x4c69853dc7b51b3f0225a482dc87ede9db19ffa1","verification_result":{"passed":false,"reason":"Code output too small: 0 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1784539451},{"id":"51621a43-d6ff-48d4-9858-87c668ab98f8","executor_address":"0x3faeadcd72eb337c8e172ced05a37a1fba214a5f","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1784524572},{"id":"421f9a5a-ef10-4da1-af92-36e6023fca46","executor_address":"0x688f7199b01fe435df8a97de669fc5e18ccdfa58","verification_result":{"passed":false,"reason":"Code output too small: 0 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1782179817},{"id":"81f890b1-6569-45b9-ab95-a9872085054d","executor_address":"0x688f7199b01fe435df8a97de669fc5e18ccdfa58","verification_result":{"passed":false,"reason":"Code output too small: 0 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1782175410},{"id":"2ce09ae1-36c9-4a69-9e7d-db2141b2f9cd","executor_address":"0x76d6a2661d264c2fce9d5cfc8174041dd41bb050","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1780927722},{"id":"2434a030-ab0d-4c71-af6b-9193e28b5a86","executor_address":"0xb4c8acddb461375d6f086d797ef84dbcbd71bbf1","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1780148845},{"id":"cf3b1900-c932-4299-a32b-c5f05f2f57d6","executor_address":"0xb4c8acddb461375d6f086d797ef84dbcbd71bbf1","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1780148140},{"id":"b4457909-b823-4bb5-8ab8-047f4dc241a7","executor_address":"0xb4c8acddb461375d6f086d797ef84dbcbd71bbf1","verification_result":{"passed":false,"reason":"Code output too small: 1 lines","details":{"checksRun":["output_parse","file_contents","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1780147098},{"id":"bb0141fa-ed38-4813-955d-1c0298082ccf","executor_address":"0x8ac355a70c909aaa92f5ae0d77e23843dcded543","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1780035671}]}