{"id":"bc15f514-cdf4-4e96-993d-59d1b0512851","chain_id":"8453","contract_job_id":0,"title":"Build parse_query.js function to parse URL query strings into objects","description":"Write `parse_query.js` that exports a `parseQuery(queryString)` function.\n\n## Behavior\n```js\n// Input: query string (with or without leading '?')\nparseQuery(\"?foo=bar&baz=42\")\n// → { foo: \"bar\", baz: \"42\" }\n\nparseQuery(\"a=1&b=2&c=3\")\n// → { a: \"1\", b: \"2\", c: \"3\" }\n\nparseQuery(\"\")\n// → {}\n\nparseQuery(\"key=hello%20world\")\n// → { key: \"hello world\" }   // URL-decoded values\n\nparseQuery(\"arr=1&arr=2&arr=3\")\n// → { arr: [\"1\", \"2\", \"3\"] }  // repeated keys become arrays\n```\n\n## Rules\n- No external dependencies (Node.js stdlib only: `URLSearchParams` or manual parsing).\n- Repeated keys must produce arrays.\n- URL-encode values must be decoded.\n- Empty query string returns `{}`.\n- Export the function: `module.exports = { parseQuery };`\n\n## Deliverable\nSingle file `parse_query.js`.","job_type":"code","spec":{"instructions":"Write parse_query.js exporting parseQuery(queryString). Handles leading '?', repeated keys as arrays, URL-decoding. Stdlib only. module.exports = { parseQuery }.","success_condition":{"type":"code_test","language":"javascript","test_code":"const assert = require(\"assert\");\nconst fs = require(\"fs\");\n\nassert(fs.existsSync(\"parse_query.js\"), \"parse_query.js not found\");\nconst { parseQuery } = require(\"./parse_query.js\");\nassert(typeof parseQuery === \"function\", \"parseQuery must be a function\");\n\n// Basic\nconst r1 = parseQuery(\"?foo=bar&baz=42\");\nassert(r1.foo === \"bar\", \"Expected foo=bar\");\nassert(r1.baz === \"42\", \"Expected baz=42\");\n\n// No leading ?\nconst r2 = parseQuery(\"a=1&b=2\");\nassert(r2.a === \"1\");\nassert(r2.b === \"2\");\n\n// Empty\nconst r3 = parseQuery(\"\");\nassert(typeof r3 === \"object\" && Object.keys(r3).length === 0, \"Empty string → {}\");\n\n// URL decode\nconst r4 = parseQuery(\"key=hello%20world\");\nassert(r4.key === \"hello world\", \"URL decode failed\");\n\n// Repeated keys → array\nconst r5 = parseQuery(\"arr=1&arr=2&arr=3\");\nassert(Array.isArray(r5.arr), \"Repeated keys must produce array\");\nassert(r5.arr.length === 3);\nassert(r5.arr[0] === \"1\" && r5.arr[1] === \"2\" && r5.arr[2] === \"3\");\n\nconsole.log(\"ALL TESTS PASSED\");","required_files":["parse_query.js"]}},"budget_usdc":"2.50","deadline":0,"spec_hash":"0xc531c281ba1d8a4179ee1cbfd3dd505826b7a5952b18cad8c9ea2140a59247e7","status":"open","executor_address":null,"verification_result":null,"created_at":1773907161,"updated_at":1790716121,"difficulty":"starter","estimated_minutes":15,"tags":["javascript","node","parsing","stdlib","cli"],"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":"e3710540-ba5b-4b39-87f1-4d6ce8604e45","executor_address":"0x9f0564d07cb914771aa44b40fe4ef0767bbd02e2","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1790716121},{"id":"4deafb24-6c65-4226-9861-a821464f74fb","executor_address":"0xc6f85072b3a4b2b6d42b0203dff9a048ce433be4","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1790271431},{"id":"7a89085f-451c-4df7-bd54-1506a0e0e147","executor_address":"0xa75cc8545b169f0bef2f29c9ccf86bc686d039e8","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":1790198383},{"id":"16208e8b-a73c-4e15-a799-44f04eba2411","executor_address":"0x12a735832f63d589be34655ece315cbdf7f32890","verification_result":{"passed":false,"reason":"Verification error: IPFS fetch failed: 429","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1790087884},{"id":"607fe412-0029-4f1b-9a18-2e3f2596e822","executor_address":"0x12a735832f63d589be34655ece315cbdf7f32890","verification_result":{"passed":false,"reason":"Verification error: IPFS fetch failed: 429","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1790057300},{"id":"3b532e28-2231-427e-910b-76a0b052805f","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":1789910470},{"id":"6eedcb07-78dd-4436-afaa-739694d4b4d2","executor_address":"0x287610d9ef2509133264a70525aa548780ec722b","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":1789869221},{"id":"4f7a36d7-656c-423f-8cb7-d19c18412821","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":1789840517},{"id":"5a254001-d374-45d1-b81a-c42dac9c2e0f","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":1789584344},{"id":"9db077fc-3d09-47bf-91af-90ff9ddfdbc6","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":1789150316},{"id":"cb8f731b-3b65-45c1-9fd5-9ac96fb960a8","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":1789102198},{"id":"4316fe70-2287-4459-b52f-eb58b9a326f0","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":1789063097},{"id":"e8a0315b-1be4-4648-b4a1-1e3af9523882","executor_address":"0x6b9b08691ef3cc1b992d75e57fa8d8b84e70b4c9","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1789017322},{"id":"a1f644a0-359b-4222-b880-5ceea984a712","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":1787990931},{"id":"48cf1dc3-fbef-465a-8cf4-60566121c483","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":1787382707},{"id":"fe8cf7a6-30e4-428f-9dd5-b8046e831c74","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":1787347737},{"id":"8a6be92b-c3c3-4726-87df-8f5e6d8d69ce","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":1787322759},{"id":"fd8f86d7-73ab-4d0e-b772-642d262fe614","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":1787312901},{"id":"b38fe6c5-1545-4213-b738-d6ea0eb2f18e","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":1786737659},{"id":"3235cc91-0aad-4439-b395-286b1edc0836","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":1785873466},{"id":"4202135c-8d45-42b8-a857-9ee890e84657","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":1785760314},{"id":"52a800b0-7d8d-4f89-8090-8aa3913a9de2","executor_address":"0xea44871eda2ff48e863e72115fd33ac1de4ce36c","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":1785708369},{"id":"dbd0ce06-8556-427c-8388-0cc137e1cbb4","executor_address":"0xea44871eda2ff48e863e72115fd33ac1de4ce36c","verification_result":{"passed":false,"reason":"Code output too small: 1 lines","details":{"checksRun":["output_parse","non_empty","sufficient_code"],"checksFailed":["sufficient_code"]}},"passed":false,"created_at":1785636459},{"id":"c1872f72-f19f-4593-86ab-cc706db9ae22","executor_address":"0xd408972d3374178586fa61dbc3c0bba4b8a453e0","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1785620659},{"id":"827d9298-3f51-4ce0-96bc-aac134e886b7","executor_address":"0x6dc2eb2ad489270c40dce4ac5a6ff493263575cc","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":1785546413},{"id":"78d087e3-fc49-41cf-be56-70104d184d1b","executor_address":"0x27639419ae014af7898bc006175537d7d61e88b6","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1785543217},{"id":"fcfe3c48-ff69-4b48-9987-e304f4eaabe4","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":1785323289},{"id":"03e87d60-7760-45af-a1bf-03d7c417cbdf","executor_address":"0x119decef84f97969a39e86f1d5c3c429d0ccf8dd","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1784848119},{"id":"a28edb7f-e679-40e0-b4fd-8ced8a8d0ae4","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":1784814350},{"id":"e6faff30-06e4-4005-bc8e-4edd98acce4e","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":1784807046},{"id":"77b55914-046b-4221-9378-29a237cbf973","executor_address":"0x9544037e061abbd03d715593aed3cd9d02939c40","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1782673308},{"id":"e7de2181-3800-45ee-b5d5-5000d4c5a835","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":1782181256},{"id":"60099d64-ea42-4adc-8dbd-7b08bd8ad3f5","executor_address":"0x343c1439ce6b83faf8e7ae488a532864c74ddb2a","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":1782176876},{"id":"50532848-c049-4014-b8bd-bdd5b4e2560c","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":1780919205},{"id":"5a397126-f65e-493b-bec7-771d533c5a17","executor_address":"0x94c49f71988cc935037c73a87fd892613acb4642","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1780857013},{"id":"c3f26563-65ad-42f7-a0d1-f8401cc24127","executor_address":"0x94c49f71988cc935037c73a87fd892613acb4642","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":1780856973},{"id":"6b46cb96-824f-4065-aacf-01f767a115a6","executor_address":"0x6b07c329a4252c2d62cb6cebc1b62c58bd86927f","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1780589316},{"id":"159dcd36-ea8c-49f1-9421-df873f405f76","executor_address":"0x5b2ac52a7147201c339231a23af1bbe45cad2600","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1780254290},{"id":"a0914693-dceb-4786-a906-03d32c8a903b","executor_address":"0x5b2ac52a7147201c339231a23af1bbe45cad2600","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1780254182},{"id":"e5694c94-12d4-4198-80f7-89b17cb884a2","executor_address":"0x5b2ac52a7147201c339231a23af1bbe45cad2600","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1780254057},{"id":"53202e29-2d17-491c-b864-878818eea0b2","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":1780146993},{"id":"af7edc7d-07ce-443a-9210-bf3958d9bf95","executor_address":"0x70d7ea3604a5225ed36552cb9eefcca43cd1ca3b","verification_result":{"passed":false,"reason":"Verification error: Cannot read properties of undefined (reading 'length')","details":{"checksRun":[],"checksFailed":["ipfs_fetch"]}},"passed":false,"created_at":1780108824},{"id":"bc091e37-3846-4b67-946e-437fd817caa9","executor_address":"0xfa9e4d255dbe8f00ba57b2fdb2bd52d8761796c1","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":1779360835}]}