- Fix a few dependencies in the Jakefile.
- Add metadata support. Currently only offering script name and script
description.
* Forward the metadata properly to the backend. Reflect it in the local
storage.
* Update the messaging protocol accordingly.
* Add some basic UI for that purpose in the Blockly editor.
* Merge that data too.
Merge, again.
- Polish the UI interactions in the blockly example.
- Fix a bug where a merge was needed but the data to perform it was not yet
downloaded from the cloud.
- Don't do needless saves in Blockly (this was ruining my testing).
The [PostUserInstalledResponse] now contains a [retry] field that tells if the
client code should retry a save operation; that is, [!retry] means that by the
time the client code examines the [PostUserInstalledResponse], the cloud
contains the same version that's available locally.
Currently, only the Blockly demo editor leverages this.
- Sending a save message now triggers a cloud sync, and the external.ts file is
now notified about the new [baseSnapshot] once the sync is done.
- Fix an unrelated, nasty bug (saving to the cloud had been broken for a few
days).
The extra state is now stored in the [scriptVersionInCloud] field. (This is not
what it's made for, but in the "lite cloud" scenario, it's sitting there
unused, so...).
Also moved the css and stubs tools into their own tools/ directory. Removed a
few files in genStubs that weren't reference anywhere else in the tree.
Simplified the Jakefile a little bit too.