For several client programs 'client.browser', 'client.cordova', etc, build and
bundle manifest files and programs.
Then serve all client programs' static files on their subpaths except for the
default one served on root.
Ex.:
/app/code.js
/packages/client-package/code.js
/cordova/packages/cordova-package/code.js
This breaks a strong dependency between the webapp package and the
bundler. Now we can change the standard page format, add more hooks,
etc without changing the tools (and hot code push works properly).
This is an incompatible change to the definition of the
browser-program-pre1 format: it no longer contains a "page" field
pointing to a boilerplate defined using ad hoc ##FOO##
substitution. Instead, the manifest can contain "head" and "body"
entries for data added with compileStep.appendDocument(). (Note that in
Blaze, <body> in a template file no longer calls appendDocument.)
WebApp.addHtmlAttributeHook callbacks now return attribute objects (like
those that Spacebars supports) rather than strings.
be a strong dependency of appcache.
Delaying publishing the current client version document until the auto
update version is available isn't necessary because the publish
callback won't be called before webapp starts listening, and that
happens after startup.
In the app cache manifest include both the client hash and the
AUTOUPDATE_VERSION, which both allows the browser to load new
client code even when the auto update version is explicitly set by the
developer, and also ensures that if the developer changes the auto
update version this is propagated to the client in the app HTML so
that autoupdate doesn't get into an infinite loop of reloads.
Replace type: "bare" with type: "server" in attributes.json. This now just
means "only make one server process" rather than controlling the boot script.
Programs that are type: "traditional" that want to be a webapp now need to
explicitly depend on the webapp package.
Add a route policy type "static-online" for files in public/ that
shouldn't be cached offline.
Put "static-online" files in the manifest NETWORK section instead of
in the CACHE section.
This code depends on PR 680. In addition, the docs include a link to
the proposed AppCache wiki page.
Adds the appcache smart package and associated documentation.
QA notes are in packages/appcache/QA.md (Is this a good place to put
them?)