Resolve variable placeholders

Write codeMedium15 minStripe style

Your task

A CI pipeline defines variables as lines of the exact form "KEY=value" (no comments, keys need no trimming; split on the first "="). A value may embed placeholders written as "NAME". Resolve every placeholder exactly once: substitute the RAW value of that key as written in the file, do not re-resolve anything inside the substituted text. A placeholder naming a key that does not exist becomes the empty string. A "{" with no closing "}" is kept verbatim through the end of the value, and a "$" not followed by "{" is ordinary text. Return the dict of resolved values.

Examples

resolve_placeholders(lines: list[str]) -> dict[str,str]
Example 1
Inputresolve_placeholders(["HOST=db.local", "URL=postgres://${HOST}:5432"])
Output{"HOST": "db.local", "URL": "postgres://db.local:5432"}