From 957367366b8a09541e006722286c9587b06aff5d Mon Sep 17 00:00:00 2001 From: Elisha Nuchi <31550519+enuchi@users.noreply.github.com> Date: Sun, 25 Dec 2022 01:15:21 -0500 Subject: [PATCH] Upgrade gas-client (#164) Uses latest UMD build for gas-client and externalizes the package to further reduce client bundle size --- package-lock.json | 99 +++++++++++------------------ package.json | 4 +- src/client/utils/serverFunctions.ts | 2 +- webpack.config.js | 8 +++ 4 files changed, 49 insertions(+), 64 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2854b97..89a0990 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "react-google-apps-script", - "version": "2.1.0", + "version": "2.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "react-google-apps-script", - "version": "2.1.0", + "version": "2.1.1", "license": "MIT", "dependencies": { "prop-types": "^15.8.1", @@ -60,7 +60,7 @@ "eslint-plugin-promise": "^6.0.0", "eslint-plugin-react": "^7.30.0", "eslint-plugin-standard": "^5.0.0", - "gas-client": "^1.0.0", + "gas-client": "^1.1.1", "gas-lib": "^2.0.4", "gas-types-detailed": "^1.1.0", "gas-webpack-plugin": "^2.2.2", @@ -9507,18 +9507,18 @@ } }, "node_modules/gas-client": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gas-client/-/gas-client-1.0.0.tgz", - "integrity": "sha512-TdL/1J9hZpnchJNBgfEofV+Ppha1njNecHAHUXH+JBo6Xm134kkD86jB9l+1qZkfBa+qzd0zWnJO/AaDXZIi8Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/gas-client/-/gas-client-1.1.1.tgz", + "integrity": "sha512-2ALu3Go94uGI/KZy06sJmpXYVPOYLTR3Jd6s8+KAU9OlqxGfJ/1OiEXEeo8SU9dHEcnPEQjgmQQ2lUU9nu35hw==", "dev": true, "dependencies": { - "uuid": "^8.2.0" + "uuid": "^9.0.0" } }, "node_modules/gas-client/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "dev": true, "bin": { "uuid": "dist/bin/uuid" @@ -14062,9 +14062,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "dependencies": { "big.js": "^5.2.2", @@ -16838,27 +16838,15 @@ } }, "node_modules/recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", "dev": true, "dependencies": { - "minimatch": "3.0.4" + "minimatch": "^3.0.5" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/recursive-readdir/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "node": ">=6.0.0" } }, "node_modules/regenerate": { @@ -18112,9 +18100,9 @@ } }, "node_modules/terser": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz", - "integrity": "sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -26522,18 +26510,18 @@ "dev": true }, "gas-client": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gas-client/-/gas-client-1.0.0.tgz", - "integrity": "sha512-TdL/1J9hZpnchJNBgfEofV+Ppha1njNecHAHUXH+JBo6Xm134kkD86jB9l+1qZkfBa+qzd0zWnJO/AaDXZIi8Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/gas-client/-/gas-client-1.1.1.tgz", + "integrity": "sha512-2ALu3Go94uGI/KZy06sJmpXYVPOYLTR3Jd6s8+KAU9OlqxGfJ/1OiEXEeo8SU9dHEcnPEQjgmQQ2lUU9nu35hw==", "dev": true, "requires": { - "uuid": "^8.2.0" + "uuid": "^9.0.0" }, "dependencies": { "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "dev": true } } @@ -29970,9 +29958,9 @@ "dev": true }, "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "requires": { "big.js": "^5.2.2", @@ -31885,23 +31873,12 @@ } }, "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", "dev": true, "requires": { - "minimatch": "3.0.4" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } + "minimatch": "^3.0.5" } }, "regenerate": { @@ -32894,9 +32871,9 @@ } }, "terser": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz", - "integrity": "sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", diff --git a/package.json b/package.json index 73a0e47..eb4c8b9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-google-apps-script", - "version": "2.1.0", + "version": "2.1.1", "description": "Starter project for using React with Google Apps Script", "repository": { "type": "git", @@ -85,7 +85,7 @@ "eslint-plugin-promise": "^6.0.0", "eslint-plugin-react": "^7.30.0", "eslint-plugin-standard": "^5.0.0", - "gas-client": "^1.0.0", + "gas-client": "^1.1.1", "gas-lib": "^2.0.4", "gas-types-detailed": "^1.1.0", "gas-webpack-plugin": "^2.2.2", diff --git a/src/client/utils/serverFunctions.ts b/src/client/utils/serverFunctions.ts index 8ed3ef4..a083e47 100644 --- a/src/client/utils/serverFunctions.ts +++ b/src/client/utils/serverFunctions.ts @@ -3,7 +3,7 @@ import * as publicServerFunctions from '../../server'; const { serverFunctions } = new GASClient({ // this is necessary for local development but will be ignored in production - allowedDevelopmentDomains: origin => + allowedDevelopmentDomains: (origin) => /https:\/\/.*\.googleusercontent\.com$/.test(origin), }); diff --git a/webpack.config.js b/webpack.config.js index d18b48e..ce84d1e 100755 --- a/webpack.config.js +++ b/webpack.config.js @@ -207,6 +207,14 @@ const DynamicCdnWebpackPluginConfig = { version: packageVersion, url: `https://unpkg.com/react-bootstrap@${packageVersion}/dist/react-bootstrap${packageSuffix}`, }; + // externalize gas-client to keep bundle size even smaller + case 'gas-client': + return { + name: packageName, + var: 'GASClient', + version: packageVersion, + url: `https://unpkg.com/gas-client@${packageVersion}/dist/index.js`, + }; // must include peer dependencies for any custom imports case '@types/react': return {