* Deprecate the stylus package
Better / more up to date 3rd party stylus packages exist and
there isn't really any technical reason why Meteor core needs
to include its own stylus package. Since a stylus package
can be fully built and managed outside of core, this commit
moves the `stylus` package into `deprecated` (and preps the
package contents for deprecation if we decide to publish a
final version).
* Removed dupe
* Add test placeholder css file to console test runner
Some of Meteor's package tests require at least one `.css`
file to be available in the tested application bundle
(e.g. "appcache - sections validity" and "webapp -
content-type header"). The inclusion of this file makes
sure that at least one `.css` file can always be found,
when the tests are run.
* Bump test-in-console package version
* Bump package minor version
Putting the minor version at something unreachable to
make sure the deprecated version isn't accidientally
pulled into an app when running
`meteor update --all-packages` or `meteor update stylus`.
* Add PR link
* Ignore undefined fields when inserting/updating in Mongo
The Mongo Node driver that Meteor uses currently replaces
`undefined` field values with `null`, when doing an
insert/update. This approach can lead to unexpected behaviour,
as outlined in #1646, #6051 and several other issues. This commit
configures the default Mongo connection to `ignoreUndefined`
fields, which means `undefined` fields are not inserted/updated,
instead of being inserted/updated as `null`.
Fixes#6051.
* Add PR link to History.md
* Update Email.send docs to show how to add header objects
Recent versions of `mailcomposer` (which Meteor is now using) no
longer `JSON.stringify` added header objects. This commit updates
the `Email.send` `options.headers` docs to show how to properly
associate objects with custom headers using `JSON.stringify`.
Fixes#8660.
* Adjust header object docs property naming to avoid confusion
* Help browser account saving with accounts-ui login/signup forms
`accounts-ui-unstyled` currently uses `<div />`'s to hold its
login/signup forms, as well as `<div />`'s to represent the
login/signup buttons in the form. By not using proper
`<form />` and `<button />` elements, certain browser's do not
notice incoming login/signup requests, and therefore do not
trigger their built in "would you like to save your user/password"
functionality. This commit adjusts the `accounts-ui-unstyled`
login/signup form to use proper `<form />` and `<button />`
elements, allowing most (Chrome, Firefox, IE - Safari will
recognize the request when a user attempts to leave the page)
browsers to recognize incoming login/signup requests.
Fixes#1746.
* Add History.md entry outlining potential back compat issues
* Bump minor versions
In a previous commit, I changed
doc = _.extend({}, doc);
to avoid using underscore, thus:
doc = { ...doc };
While this may seem harmless, it broke a few Mongo.Collection tests
because _.extend copies *all* properties, both own and inherited, whereas
object ...spread only copies own properties.
However, the correct way to fix this problem is *not* to revert to the old
behavior, since flattening the inherited properties of a document was
never actually what we wanted. The old behavior was subtly broken, too.
Instead, we need to create a new object with the same prototoype as the
provided document, then shallow-copy the own properties. Any properties or
methods inherited from the original prototype will then be available on
the new object, even though they didn't get copied over.
I've intentionally left some trivial formatting changes in this commit to
remind myself which broken tests were fixed by this change.
This temporarily reverts back to using @babel/runtime/helpers/* rather
than @babel/runtime/helpers/builtin/*, since some helpers (for example,
`slicedToArray`) were using code patterns that cannot be made to work via
polyfills in older browsers, e.g.
if (Symbol.iterator in Object(arr)) {...}
to test whether `arr` is iterable.
Remove type:"dynamic js" and .map files from `appcache` (app.manifest) since the
dynamic-import package doesn't load dynamic modules from `appcache`, so caching
those files with `appcache` is redundant.
Google's OAuth2 token endpoint
(https://accounts.google.com/o/oauth2/token) returns an
`expires_in` property in its response, which was being stored
internally as `expiresIn`. The `getServiceDataFromTokens`
function would only attempt to work with the `expiresIn` value
if the `tokens` object had a set `expiresAt` property, meaning
the `expiresIn` property was never used. This commit switches
the `expiresAt` check to `expiresIn`.
Fixes#9435.