diff --git a/docs/history.md b/docs/history.md index a1ebdc3b7a..6a845af21d 100644 --- a/docs/history.md +++ b/docs/history.md @@ -1,3 +1,54 @@ +## v2.9.1, 2022-12-27 + +### Highlights + +* Reverted missing types [PR](https://github.com/meteor/meteor/pull/12366) by [Grubba27](https://github.com/Grubba27). +* Fix fetch() type declaration [PR](https://github.com/meteor/meteor/pull/12352) by [zarvox](https://github.com/zarvox). +* update svelte skeleton [PR](https://github.com/meteor/meteor/pull/12350) by [tosinek](https://github.com/tosinek). +* Bump to node 14.21.2.0 [PR](https://github.com/meteor/meteor/pull/12370) by [Grubba27](https://github.com/Grubba27). +* resetPassword and verifyEmail to no longer sign in the user automatically [PR](https://github.com/meteor/meteor/pull/12385) by [denihs](https://github.com/denihs). +* Added missing vue2 declaration for skeletons [PR](https://github.com/meteor/meteor/pull/12396) by [Grubba27](https://github.com/Grubba27) & [mlanning](https://github.com/mlanning). + +#### Breaking Changes + +* `accounts-password@2.3.3` + - The methods `resetPassword` and `verifyEmail` no longer logs the user if they have 2FA enabled. Now, the functions work as before, but instead of automatically logging in the user at the end, an error with the code `2fa-enabled` will be thrown. + + +#### Internal API changes + +N/A + +#### Migration Steps + +N/A + +#### Meteor Version Release + +* `fetch@0.1.3`: + - Updated fetch type definition. + +* `meteor@1.10.4`: + - Added back meteor type definitions that were removed by mistake in earlier version. + +* `accounts-password@2.3.3` + - The methods `resetPassword` and `verifyEmail` no longer logs the user if they have 2FA enabled. Now, the functions work as before, but instead of automatically logging in the user at the end, an error with the code `2fa-enabled` will be thrown. + +* `Command line`: + - Updated Svelte skeleton to now be able to support typescript out of the box and added ``#each`` in links in the skeleton. + - Updated node to 14.21.2 changes can be seen [here](https://github.com/nodejs/node/releases/tag/v14.21.2). + - Solved [issue](https://github.com/meteor/meteor/issues/12395) that could not allow vue2 apps being created in command line. + +#### Special thanks to +- [@zarvox](https://github.com/zarvox). +- [@tosinek](https://github.com/tosinek). +- [@Grubba27](https://github.com/Grubba27). +- [@denihs](https://github.com/denihs). +- [@mlanning](https://github.com/mlanning). + +For making this great framework even better! + + ## v2.9, 2022-12-12 ### Highlights diff --git a/docs/source/api/passwords.md b/docs/source/api/passwords.md index 49bcff2e6d..a1967e174e 100644 --- a/docs/source/api/passwords.md +++ b/docs/source/api/passwords.md @@ -59,6 +59,10 @@ email with a link the user can use to verify their email address. {% apibox "Accounts.verifyEmail" %} +If the user trying to verify the email has 2FA enabled, this error will be thrown: +* "Email verified, but user not logged in because 2FA is enabled [2fa-enabled]": No longer signing in the user automatically if the user has 2FA enabled. + + This function accepts tokens passed into the callback registered with [`Accounts.onEmailVerificationLink`](#Accounts-onEmailVerificationLink). @@ -89,6 +93,9 @@ This function accepts tokens passed into the callbacks registered with [`AccountsClient#onResetPasswordLink`](#Accounts-onResetPasswordLink) and [`Accounts.onEnrollmentLink`](#Accounts-onEnrollmentLink). +If the user trying to reset the password has 2FA enabled, this error will be thrown: +* "Changed password, but user not logged in because 2FA is enabled [2fa-enabled]": No longer signing in the user automatically if the user has 2FA enabled. + {% apibox "Accounts.setPassword" %} {% apibox "Accounts.sendResetPasswordEmail" %} diff --git a/docs/source/commandline.md b/docs/source/commandline.md index a3a242df17..0fec5f634d 100644 --- a/docs/source/commandline.md +++ b/docs/source/commandline.md @@ -174,38 +174,38 @@ Create a basic [Solid](https://www.solidjs.com/) app. | | Default (`--react`) | `--bare` | `--full` | `--minimal` | `--blaze` | `--apollo` | `--vue-2` | `--svelte` | `--tailwind` | `--chakra-ui` | `--solid` | `--vue` | |------------------------------------------------------------------------------------------------------|:-------------------:|:--------:|:--------:|:-----------:|:---------:|:----------:|:---------:|:----------:|:------------:|:-------------:|:---------:|:-------:| -| [autopublish](https://atmospherejs.com/meteor/autopublish) | X | | | | X | | | X | X | X | X | | +| [autopublish](https://atmospherejs.com/meteor/autopublish) | X | | | | X | | | | X | X | X | | | [akryum:vue-component](https://atmospherejs.com/akryum/vue-component) | | | | | | | X | | | | | | | [apollo](https://atmospherejs.com/meteor/apollo) | | | | | | X | | | | | | | | [blaze-html-templates](https://atmospherejs.com/meteor/blaze-html-templates) | | | X | | X | | | | | | | | | [ecmascript](https://atmospherejs.com/meteor/ecmascript) | X | X | X | X | X | X | X | X | X | X | X | X | | [es5-shim](https://atmospherejs.com/meteor/es5-shim) | X | X | X | X | X | X | X | X | X | X | X | X | -| [hot-module-replacement](https://atmospherejs.com/meteor/hot-module-replacement) | X | | | | X | X | | | X | X | X | X | -| [insecure](https://atmospherejs.com/meteor/insecure) | X | | | | X | | | X | X | X | X | X | +| [hot-module-replacement](https://atmospherejs.com/meteor/hot-module-replacement) | X | | | | X | X | | X | X | X | X | X | +| [insecure](https://atmospherejs.com/meteor/insecure) | X | | | | X | | | | X | X | X | X | | [johanbrook:publication-collector](https://atmospherejs.com/meteor/johanbrook/publication-collector) | | | X | | | X | | | | | | | | [jquery](https://atmospherejs.com/meteor/jquery) | | | X | | X | | | | | | | | -| [ostrio:flow-router-extra](https://atmospherejs.com/meteor/ostrio/flow-router-extra) | | | X | | | | | | | | | | | [less](https://atmospherejs.com/meteor/less) | | | X | | | | | | | | | | | [meteor](https://atmospherejs.com/meteor/meteor) | | | | X | | | | | | | | | | [meteor-base](https://atmospherejs.com/meteor/meteor-base) | X | X | X | | X | X | X | X | X | X | X | X | | [mobile-experience](https://atmospherejs.com/meteor/mobile-experience) | X | X | X | | X | X | X | X | X | X | X | X | | [mongo](https://atmospherejs.com/meteor/mongo) | X | X | X | | X | X | X | X | X | X | X | X | | [meteortesting:mocha](https://atmospherejs.com/meteortesting/mocha) | | | X | | | | X | | | | | | -| [reactive-var](https://atmospherejs.com/meteor/reactive-var) | X | X | X | | X | X | X | X | X | X | X | X | -| [rdb:svelte-meteor-data](https://atmospherejs.com/rdb/svelte-meteor-data) | | | | | | | | X | | | | | +| [ostrio:flow-router-extra](https://atmospherejs.com/meteor/ostrio/flow-router-extra) | | | X | | | | | | | | | | +| [react-meteor-data](https://atmospherejs.com/meteor/react-meteor-data) | X | | | | | | | | X | X | | | +| [reactive-var](https://atmospherejs.com/meteor/reactive-var) | X | X | X | | X | X | X | | X | X | X | X | | [server-render](https://atmospherejs.com/meteor/server-render) | | | | X | | X | X | | | | | | | [shell-server](https://atmospherejs.com/meteor/shell-server) | | X | | X | X | X | X | X | X | X | X | X | | [standard-minifier-css](https://atmospherejs.com/meteor/standard-minifier-css) | X | X | X | X | X | X | X | X | X | X | X | X | | [standard-minifier-js](https://atmospherejs.com/meteor/standard-minifier-js) | X | X | X | X | X | X | X | X | X | X | X | X | | [static-html](https://atmospherejs.com/meteor/static-html) | | X | | X | | X | X | X | | | | | -| [svelte:compiler](https://atmospherejs.com/svelte/compiler) | | | | | | | | X | | | | | | [swydo:graphql](https://atmospherejs.com/swydo/graphql) | | | | | | X | | | | | | | | [tailwindcss](https://tailwindcss.com) | | X | X | | X | | X | | X | | | | | [tracker](https://atmospherejs.com/meteor/tracker) | | X | X | | X | | X | | | | | | | [typescript](https://atmospherejs.com/meteor/typescript) | X | X | X | X | X | X | X | X | X | X | X | | -| [webapp](https://atmospherejs.com/meteor/webapp) | | | | X | | | | | | | | | -| [react-meteor-data](https://atmospherejs.com/meteor/react-meteor-data) | X | | | | | | | | X | X | | | | [vite:bundler](https://atmospherejs.com/vite/bundler) | | | | | | | | | | | X | X | +| [webapp](https://atmospherejs.com/meteor/webapp) | | | | X | | | | | | | | | +| [zodern:melte](https://atmospherejs.com/zodern/melte) | | | | | | | | X | | | | | +| [zodern:types](https://atmospherejs.com/zodern/types) | | | | | | | | X | | | | |
You've pressed the button {counter} times.
Just add lang="ts" to .svelte components.
diff --git a/tools/static-assets/skel-svelte/package.json b/tools/static-assets/skel-svelte/package.json index 0b0aae237d..0ae79b3327 100644 --- a/tools/static-assets/skel-svelte/package.json +++ b/tools/static-assets/skel-svelte/package.json @@ -8,9 +8,12 @@ "visualize": "meteor --production --extra-packages bundle-visualizer" }, "dependencies": { - "@babel/runtime": "^7.17.9", - "meteor-node-stubs": "^1.2.1", - "svelte": "^3.46.4" + "@babel/runtime": "^7.20.6", + "meteor-node-stubs": "^1.2.5", + "svelte": "^3.54.0" + }, + "devDependencies": { + "svelte-preprocess": "^5.0.0" }, "meteor": { "mainModule": { diff --git a/tools/static-assets/skel-svelte/server/main.js b/tools/static-assets/skel-svelte/server/main.js index b43489013b..886520b487 100644 --- a/tools/static-assets/skel-svelte/server/main.js +++ b/tools/static-assets/skel-svelte/server/main.js @@ -5,6 +5,10 @@ async function insertLink({ title, url }) { await LinksCollection.insertAsync({ title, url, createdAt: new Date() }); } +Meteor.publish('links.all', function publishLinksAll() { + return LinksCollection.find(); +}) + Meteor.startup(async () => { // If the Links collection is empty, add some data. if (await LinksCollection.find().countAsync() === 0) { diff --git a/tools/static-assets/skel-svelte/tsconfig.json b/tools/static-assets/skel-svelte/tsconfig.json new file mode 100644 index 0000000000..11f2c45698 --- /dev/null +++ b/tools/static-assets/skel-svelte/tsconfig.json @@ -0,0 +1,20 @@ +{ + // see https://guide.meteor.com/build-tool.html#typescript for a config example + "compilerOptions": { + "allowSyntheticDefaultImports": true, // to be able to import eg meteor/mongo + "baseUrl": ".", // required by "paths" + "module": "esNext", // required by "preserveValueImports" + "moduleResolution": "node", // required by zodern:types (not documented) + "paths": { + "/*": ["*"], // support absolute /imports/* with a leading '/' + // support Meteor/Atmospehere packages, required by zodern:types + "meteor/*": [ + "node_modules/@types/meteor/*", + ".meteor/local/types/packages.d.ts" + ] + }, + "preserveSymlinks": true, // required by zodern:types + "preserveValueImports": true // otherwise TS will remove imported components + }, + "exclude": ["./.meteor/**", "./packages/**"] // this may solve VS Code Svelte plugin warnings +} diff --git a/tools/utils/buildmessage.js b/tools/utils/buildmessage.js index 0d468624c1..48cbec19c4 100644 --- a/tools/utils/buildmessage.js +++ b/tools/utils/buildmessage.js @@ -75,7 +75,7 @@ Object.assign(Job.prototype, { } line += ": "; } else { - // not sure how to display messages without a filenanme.. try this? + // not sure how to display messages without a file name.. try this? line += "error: "; } // XXX line wrapping would be nice..