From 64e7fe34228ab00619bd0e626311d958535af9a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Jan 2023 03:01:25 +0000 Subject: [PATCH 01/14] Bump @babel/core from 7.20.7 to 7.20.12 Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.20.7 to 7.20.12. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.20.12/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 66 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index cdc5c036c..796e57bee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "hasInstallScript": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.20.7", + "@babel/core": "^7.20.12", "@babel/plugin-transform-runtime": "^7.19.6", "@babel/preset-env": "^7.19.4", "@babel/preset-react": "^7.18.6", @@ -1452,24 +1452,24 @@ } }, "node_modules/@babel/core": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.7.tgz", - "integrity": "sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.20.7", "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", "@babel/helpers": "^7.20.7", "@babel/parser": "^7.20.7", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", + "@babel/traverse": "^7.20.12", "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.2.2", "semver": "^6.3.0" }, "engines": { @@ -1676,9 +1676,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.7.tgz", - "integrity": "sha512-FNdu7r67fqMUSVuQpFQGE6BPdhJIhitoxhGzDbAXNcA07uoVG37fOiMk3OSV8rEICuyG6t8LGkd9EE64qIEoIA==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", @@ -1686,7 +1686,7 @@ "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", + "@babel/traverse": "^7.20.10", "@babel/types": "^7.20.7" }, "engines": { @@ -3047,9 +3047,9 @@ } }, "node_modules/@babel/traverse": { - "version": "7.20.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.8.tgz", - "integrity": "sha512-/RNkaYDeCy4MjyV70+QkSHhxbvj2JO/5Ft2Pa880qJOG8tWrqcT/wXUuCCv43yogfqPzHL77Xu101KQPf4clnQ==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", + "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.20.7", @@ -9770,9 +9770,9 @@ "dev": true }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "bin": { "json5": "lib/cli.js" }, @@ -17777,24 +17777,24 @@ "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==" }, "@babel/core": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.7.tgz", - "integrity": "sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.20.7", "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", "@babel/helpers": "^7.20.7", "@babel/parser": "^7.20.7", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", + "@babel/traverse": "^7.20.12", "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.2.2", "semver": "^6.3.0" } }, @@ -17947,9 +17947,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.7.tgz", - "integrity": "sha512-FNdu7r67fqMUSVuQpFQGE6BPdhJIhitoxhGzDbAXNcA07uoVG37fOiMk3OSV8rEICuyG6t8LGkd9EE64qIEoIA==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", @@ -17957,7 +17957,7 @@ "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", + "@babel/traverse": "^7.20.10", "@babel/types": "^7.20.7" } }, @@ -18847,9 +18847,9 @@ } }, "@babel/traverse": { - "version": "7.20.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.8.tgz", - "integrity": "sha512-/RNkaYDeCy4MjyV70+QkSHhxbvj2JO/5Ft2Pa880qJOG8tWrqcT/wXUuCCv43yogfqPzHL77Xu101KQPf4clnQ==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", + "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", "requires": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.20.7", @@ -24053,9 +24053,9 @@ "dev": true }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" }, "jsonfile": { "version": "6.1.0", diff --git a/package.json b/package.json index b3e3c8574..e93b0fc2d 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ ] }, "dependencies": { - "@babel/core": "^7.20.7", + "@babel/core": "^7.20.12", "@babel/plugin-transform-runtime": "^7.19.6", "@babel/preset-env": "^7.19.4", "@babel/preset-react": "^7.18.6", From f5d592a291447baf39d4405b4cd74c3ed3679d51 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Jan 2023 03:00:50 +0000 Subject: [PATCH 02/14] Bump mongoose from 6.8.2 to 6.8.3 Bumps [mongoose](https://github.com/Automattic/mongoose) from 6.8.2 to 6.8.3. - [Release notes](https://github.com/Automattic/mongoose/releases) - [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md) - [Commits](https://github.com/Automattic/mongoose/compare/6.8.2...6.8.3) --- updated-dependencies: - dependency-name: mongoose dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 30 +++++++++++++++--------------- package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 796e57bee..b44a6fd57 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,7 +33,7 @@ "marked-extended-tables": "^1.0.5", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.29.4", - "mongoose": "^6.8.2", + "mongoose": "^6.8.3", "nanoid": "3.3.4", "nconf": "^0.12.0", "npm": "^8.10.0", @@ -9863,9 +9863,9 @@ } }, "node_modules/kareem": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.0.tgz", - "integrity": "sha512-rVBUGGwvqg130iwYu8k7lutHuDBFj1yGRdnlE44wEhxAmFBad1zcL66PdWC1raw3tIObY6XWhtv3VL04xQb/cg==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", + "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==", "engines": { "node": ">=12.0.0" } @@ -10395,12 +10395,12 @@ } }, "node_modules/mongoose": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.8.2.tgz", - "integrity": "sha512-cIato5N2w/QuJkkh0w4nyf7ty7DqmmP/W8/6PFSM0DrzbxIMlr6VN15LBIceTSJIxbznNl2Mlbh9Rm4sokMw+A==", + "version": "6.8.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.8.3.tgz", + "integrity": "sha512-qrVWefJK+wFNBH0ALV+oiyJ+FN42O/BqvHFmlFJJ2LKuNmQEOE0JV8FCxnZqtanwbHs4i+k/SkjhtC+C01haaw==", "dependencies": { "bson": "^4.7.0", - "kareem": "2.5.0", + "kareem": "2.5.1", "mongodb": "4.12.1", "mpath": "0.9.0", "mquery": "4.0.3", @@ -24120,9 +24120,9 @@ "integrity": "sha512-40aUybvhH9t2h71ncA1/1SbtTNCVZHgsTsTgqPUxGWDmUDrXyDf2wMNQKEbdBjbf4AI+fQhbECNTV6lWxQKUzg==" }, "kareem": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.0.tgz", - "integrity": "sha512-rVBUGGwvqg130iwYu8k7lutHuDBFj1yGRdnlE44wEhxAmFBad1zcL66PdWC1raw3tIObY6XWhtv3VL04xQb/cg==" + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", + "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==" }, "kind-of": { "version": "4.0.0", @@ -24533,12 +24533,12 @@ } }, "mongoose": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.8.2.tgz", - "integrity": "sha512-cIato5N2w/QuJkkh0w4nyf7ty7DqmmP/W8/6PFSM0DrzbxIMlr6VN15LBIceTSJIxbznNl2Mlbh9Rm4sokMw+A==", + "version": "6.8.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.8.3.tgz", + "integrity": "sha512-qrVWefJK+wFNBH0ALV+oiyJ+FN42O/BqvHFmlFJJ2LKuNmQEOE0JV8FCxnZqtanwbHs4i+k/SkjhtC+C01haaw==", "requires": { "bson": "^4.7.0", - "kareem": "2.5.0", + "kareem": "2.5.1", "mongodb": "4.12.1", "mpath": "0.9.0", "mquery": "4.0.3", diff --git a/package.json b/package.json index 51f9f8ed8..978bde7e7 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "marked-extended-tables": "^1.0.5", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.29.4", - "mongoose": "^6.8.2", + "mongoose": "^6.8.3", "nanoid": "3.3.4", "nconf": "^0.12.0", "npm": "^8.10.0", From a9c28e84d0029d4c9cbc588affc5d4df103e7c8d Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Mon, 9 Jan 2023 10:30:07 -0500 Subject: [PATCH 03/14] Enable brew version mismatch checking on server Was commented out previously to allow users time to update client code so the proper error displays --- server/homebrew.api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/homebrew.api.js b/server/homebrew.api.js index 550da0ddd..47a6e7f42 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -192,8 +192,8 @@ If you believe you should have access to this brew, ask the file owner to invite const brewFromClient = api.excludePropsFromUpdate(req.body); if(req.brew.version && brewFromClient.version && req.brew.version > brewFromClient.version) { console.log(`Version mismatch on brew ${req.body.editId}`); - // res.setHeader('Content-Type', 'application/json'); - // return res.status(409).send(JSON.stringify({ message: `The brew has been changed on a different device. Please save your changes elsewhere, refresh, and try again.` })); + res.setHeader('Content-Type', 'application/json'); + return res.status(409).send(JSON.stringify({ message: `The brew has been changed on a different device. Please save your changes elsewhere, refresh, and try again.` })); } let brew = _.assign(req.brew, brewFromClient); From 8cbab4d4ce07ce866fb66437e9d2a8e5a726844d Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Mon, 9 Jan 2023 14:12:57 -0500 Subject: [PATCH 04/14] Fix saving issue when tags do not exist Rare case where tags don't exist at all; gets confused in the step of converting tag strings to arrays --- server/homebrew.api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/homebrew.api.js b/server/homebrew.api.js index 47a6e7f42..18269a639 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -77,8 +77,8 @@ If you believe you should have access to this brew, ask the file owner to invite } // Clean up brew: fill in missing fields with defaults / fix old invalid values - stub.tags = stub.tags || undefined; // Clear empty strings - stub.renderer = stub.renderer || undefined; // Clear empty strings + stub.tags = stub?.tags || undefined; // Clear empty strings + stub.renderer = stub?.renderer || undefined; // Clear empty strings stub = _.defaults(stub, DEFAULT_BREW_LOAD); // Fill in blank fields req.brew = stub; From 15e5a31767b177cf2e48e16723a7dc268f8508da Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Mon, 9 Jan 2023 14:53:35 -0500 Subject: [PATCH 05/14] If no stub exists, start stub as {}, not undefined Recent changes to handle bad brew properties (tags as strings, no renderer, etc.) didn't account for the case where an old Google brew is first being stubbed; since no stub exists, there is no object to perform the corrections on, and we crash. --- server/homebrew.api.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/homebrew.api.js b/server/homebrew.api.js index 18269a639..b4339011f 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -47,7 +47,7 @@ const api = { console.warn(err); } }); - stub = stub?.toObject(); + stub = stub?.toObject() || {}; // If there is a google id, try to find the google brew if(!stubOnly && (googleId || stub?.googleId)) { @@ -77,8 +77,8 @@ If you believe you should have access to this brew, ask the file owner to invite } // Clean up brew: fill in missing fields with defaults / fix old invalid values - stub.tags = stub?.tags || undefined; // Clear empty strings - stub.renderer = stub?.renderer || undefined; // Clear empty strings + stub.tags = stub.tags || undefined; // Clear empty strings + stub.renderer = stub.renderer || undefined; // Clear empty strings stub = _.defaults(stub, DEFAULT_BREW_LOAD); // Fill in blank fields req.brew = stub; From 6ed52f37ccfb26df2d4dc72c4c9bdb0002e46aa5 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Mon, 9 Jan 2023 17:30:49 -0500 Subject: [PATCH 06/14] Only fix stub if we actually found one. --- server/homebrew.api.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/server/homebrew.api.js b/server/homebrew.api.js index b4339011f..56bbb15f4 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -47,7 +47,7 @@ const api = { console.warn(err); } }); - stub = stub?.toObject() || {}; + stub = stub?.toObject(); // If there is a google id, try to find the google brew if(!stubOnly && (googleId || stub?.googleId)) { @@ -77,9 +77,11 @@ If you believe you should have access to this brew, ask the file owner to invite } // Clean up brew: fill in missing fields with defaults / fix old invalid values - stub.tags = stub.tags || undefined; // Clear empty strings - stub.renderer = stub.renderer || undefined; // Clear empty strings - stub = _.defaults(stub, DEFAULT_BREW_LOAD); // Fill in blank fields + if(stub) { + stub.tags = stub.tags || undefined; // Clear empty strings + stub.renderer = stub.renderer || undefined; // Clear empty strings + stub = _.defaults(stub, DEFAULT_BREW_LOAD); // Fill in blank fields + } req.brew = stub; next(); From 901615d99e60f116aded03209f7b34bb39a7d882 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Tue, 10 Jan 2023 21:08:21 -0500 Subject: [PATCH 07/14] Remove extra console log for getGoogleBrew App.js already logs the thrown error, so we were getting double logs (and Google errors are long....). This should make the logs a bit easier to sift through. --- server/homebrew.api.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/server/homebrew.api.js b/server/homebrew.api.js index 56bbb15f4..86352c687 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -54,11 +54,10 @@ const api = { let googleError; const googleBrew = await GoogleActions.getGoogleBrew(googleId || stub?.googleId, id, accessType) .catch((err)=>{ - console.warn(err); googleError = err; }); - // If we can't find the google brew and there is a google id for the brew, throw an error. - if(!googleBrew) throw googleError; + // Throw any error caught while attempting to retrieve Google brew. + if(googleError) throw googleError; // Combine the Homebrewery stub with the google brew, or if the stub doesn't exist just use the google brew stub = stub ? _.assign({ ...api.excludeStubProps(stub), stubbed: true }, api.excludeGoogleProps(googleBrew)) : googleBrew; } From da676c6ec1dde1f5c6d4a960c4899f89e96b9cf8 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Thu, 12 Jan 2023 13:33:55 -0500 Subject: [PATCH 08/14] Ensure getBrew returns an object if undefined --- server/homebrew.api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/homebrew.api.js b/server/homebrew.api.js index 86352c687..07b1c33f2 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -82,7 +82,7 @@ If you believe you should have access to this brew, ask the file owner to invite stub = _.defaults(stub, DEFAULT_BREW_LOAD); // Fill in blank fields } - req.brew = stub; + req.brew = stub ?? {}; next(); }; }, From 50d172bbd50ed7b6195a69b91ecb5aacc485e585 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 15 Jan 2023 14:11:33 +1300 Subject: [PATCH 09/14] Add Themes directory to watch list --- scripts/buildHomebrew.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/buildHomebrew.js b/scripts/buildHomebrew.js index ea5d1d0e2..ed9afb58b 100644 --- a/scripts/buildHomebrew.js +++ b/scripts/buildHomebrew.js @@ -136,6 +136,6 @@ fs.emptyDirSync('./build'); if(isDev){ livereload('./build'); watchFile('./server.js', { - watch : ['./client', './server'] // Watch additional folders if you want + watch : ['./client', './server', './themes'] // Watch additional folders if you want }); } From 3c86984cf1a7059766cb61e9474852b1ad1b4d3e Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 15 Jan 2023 14:13:25 +1300 Subject: [PATCH 10/14] Add change to changelog --- changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/changelog.md b/changelog.md index adb2d73ce..e1ab6e391 100644 --- a/changelog.md +++ b/changelog.md @@ -57,6 +57,13 @@ pre { ## changelog For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery). +### v3.6.0 +{{taskList +##### G-Ambatte + +* [x] Add Themes directory to development server watchlist. +}} + ### v3.6.0 {{taskList ##### Jeddai From 40e36fd87576c12b24a1b76115805c0ff4c04408 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 15 Jan 2023 17:26:56 +1300 Subject: [PATCH 11/14] Fix minor version number --- changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index e1ab6e391..907210661 100644 --- a/changelog.md +++ b/changelog.md @@ -57,7 +57,7 @@ pre { ## changelog For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery). -### v3.6.0 +### v3.6.1 {{taskList ##### G-Ambatte From e82da3a6c1e3310b59eac09e41dc3011ff025063 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 15 Jan 2023 18:19:23 +1300 Subject: [PATCH 12/14] Add buildDev to NPM scripts --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 978bde7e7..5d630bf2a 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "quick": "node scripts/quick.js", "build": "node scripts/buildHomebrew.js", "buildall": "node scripts/buildHomebrew.js && node scripts/buildAdmin.js", + "builddev": "node scripts/buildHomebrew.js --dev", "lint": "eslint --fix **/*.{js,jsx}", "lint:dry": "eslint **/*.{js,jsx}", "circleci": "npm test && eslint **/*.{js,jsx} --max-warnings=0", From ac9fbb1f085fa204b6affd8a0061e6e88877eb07 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 15 Jan 2023 18:24:23 +1300 Subject: [PATCH 13/14] Move changes from 3.6.1 to 3.6.0 --- changelog.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/changelog.md b/changelog.md index 907210661..67503206d 100644 --- a/changelog.md +++ b/changelog.md @@ -57,18 +57,15 @@ pre { ## changelog For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery). -### v3.6.1 -{{taskList -##### G-Ambatte - -* [x] Add Themes directory to development server watchlist. -}} - ### v3.6.0 {{taskList ##### Jeddai * [x] Add unit tests with full coverage for the Homebrewery API + +##### G-Ambatte + +* [x] Add Themes directory to development server watchlist. }} ### Friday 23/12/2022 - v3.5.0 From c9241e21624aed44d9f4fa84a747a631f6f00bba Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Fri, 20 Jan 2023 17:19:02 -0500 Subject: [PATCH 14/14] Fix Google Drive brews duplicating --- changelog.md | 6 ++++++ server/homebrew.api.js | 13 +++++++------ server/homebrew.api.spec.js | 3 --- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/changelog.md b/changelog.md index adb2d73ce..8311fce01 100644 --- a/changelog.md +++ b/changelog.md @@ -59,6 +59,12 @@ For a full record of development, visit our [Github Page](https://github.com/nat ### v3.6.0 {{taskList +##### calculuschild + + * [x] Fix Google Drive brews sometimes duplicating + +Fixes issues [#2603](https://github.com/naturalcrit/homebrewery/issues/2603) + ##### Jeddai * [x] Add unit tests with full coverage for the Homebrewery API diff --git a/server/homebrew.api.js b/server/homebrew.api.js index 07b1c33f2..0d3f87a20 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -109,7 +109,7 @@ If you believe you should have access to this brew, ask the file owner to invite excludePropsFromUpdate : (brew)=>{ // Remove undesired properties const modified = _.clone(brew); - const propsToExclude = ['_id', 'views', 'lastViewed', 'editId', 'shareId', 'googleId']; + const propsToExclude = ['_id', 'views', 'lastViewed']; for (const prop of propsToExclude) { delete modified[prop]; } @@ -189,17 +189,18 @@ If you believe you should have access to this brew, ask the file owner to invite res.status(200).send(saved); }, updateBrew : async (req, res)=>{ - // Initialize brew from request and body, destructure query params, set a constant for the google id, and set the initial value for the after-save method + // Initialize brew from request and body, destructure query params, and set the initial value for the after-save method const brewFromClient = api.excludePropsFromUpdate(req.body); - if(req.brew.version && brewFromClient.version && req.brew.version > brewFromClient.version) { - console.log(`Version mismatch on brew ${req.body.editId}`); + const brewFromServer = req.brew; + if(brewFromServer.version && brewFromClient.version && brewFromServer.version > brewFromClient.version) { + console.log(`Version mismatch on brew ${brewFromClient.editId}`); res.setHeader('Content-Type', 'application/json'); return res.status(409).send(JSON.stringify({ message: `The brew has been changed on a different device. Please save your changes elsewhere, refresh, and try again.` })); } - let brew = _.assign(req.brew, brewFromClient); - const { saveToGoogle, removeFromGoogle } = req.query; + let brew = _.assign(brewFromServer, brewFromClient); const googleId = brew.googleId; + const { saveToGoogle, removeFromGoogle } = req.query; let afterSave = async ()=>true; brew.text = api.mergeBrewText(brew); diff --git a/server/homebrew.api.spec.js b/server/homebrew.api.spec.js index 68355cc1a..71d9bdcc7 100644 --- a/server/homebrew.api.spec.js +++ b/server/homebrew.api.spec.js @@ -342,9 +342,6 @@ brew`); expect(result._id).toBeUndefined(); expect(result.views).toBeUndefined(); expect(result.lastViewed).toBeUndefined(); - expect(result.editId).toBeUndefined(); - expect(result.shareId).toBeUndefined(); - expect(result.googleId).toBeUndefined(); }); it('excludeGoogleProps removes the correct keys', ()=>{