scmscx.com
scm-js/plugin-scm-scx, a default that starts
on, is the editor's one network plugin: File ▸ Find on scmscx.com… searches the
StarCraft map archive at scmscx.com and opens the map you pick through document.open,
and Plugins ▸ scmscx.com Settings… holds an optional forwarder address. It shows the
other side of document.open: the bytes come from a third party's server, under the
file name that server knows the map by, and the editor's own Close Scenario question
still comes first. scmscx.com has no documented API — its About page says the routes
its front end uses are open and may change — so client.ts there mirrors those routes
(/api/uiv2/search, /api/uiv2/map_info, /api/maps/{mpq_hash}) and leaves every
default parameter out of the query string exactly as the site does, so the URLs match
the ones the site makes for itself.
The site sends no CORS headers, which is a constraint worth knowing about before writing
a plugin against any third-party API: a browser lets a page read a cross-origin answer
only when the server says so, and an <img> is the one thing exempt from that. The
plugin therefore tries the site first (ScmscxClient.connect() probes each base with
the newest-uploads search and takes the first that answers JSON), then a forwarder if
one is set, and when nothing answers the dialog says why, links to the site's search
page for the query, and reminds the user that a downloaded map can be dropped onto the
editor. The minimaps still show either way. The editor itself runs no forwarder.