diff --git a/apps/widget-loader/esbuild.config.js b/apps/widget-loader/esbuild.config.js index 3abbe4e67..3a75fb46f 100644 --- a/apps/widget-loader/esbuild.config.js +++ b/apps/widget-loader/esbuild.config.js @@ -1,6 +1,10 @@ const esbuild = require("esbuild") const fs = require("node:fs/promises") const pkg = require("./package.json") + +// https://github.com/naecoo/esbuild-plugin-replace +const { replace } = require("esbuild-plugin-replace") + // this function generates app props based on package.json and propSecrets.json const appProps = require("../../helpers/appProps") @@ -22,6 +26,7 @@ const serve = args.indexOf("--serve") >= 0 const green = "\x1b[32m%s\x1b[0m" const yellow = "\x1b[33m%s\x1b[0m" const clear = "\033c" +const shimVersion = pkg.importmapShim["deployed"] || "noShimVersionSet" esbuild .context({ @@ -36,6 +41,9 @@ esbuild ? Object.keys(pkg.peerDependencies || {}) : [], plugins: [ + replace({ + __shimVersion: `${shimVersion}`, + }), { name: "start/end", setup(build) { diff --git a/apps/widget-loader/package.json b/apps/widget-loader/package.json index 13c5995a6..5814199a6 100644 --- a/apps/widget-loader/package.json +++ b/apps/widget-loader/package.json @@ -11,14 +11,18 @@ }, "devDependencies": { "babel-jest": "^29.3.1", + "custom-event-polyfill": "^1.0.7", "esbuild": "^0.17.8", + "esbuild-plugin-replace": "^1.3.0", "jest": "^29.3.1", - "jest-environment-jsdom": "^29.3.1", - "custom-event-polyfill": "^1.0.7" + "jest-environment-jsdom": "^29.3.1" }, "peerDependencies": { "es-module-shims": "1.6.2" }, + "importmapShim": { + "deployed": "1.6.2" + }, "babel": { "presets": [ "@babel/preset-env" diff --git a/apps/widget-loader/src/index.js b/apps/widget-loader/src/index.js index 38e136418..0f950846e 100644 --- a/apps/widget-loader/src/index.js +++ b/apps/widget-loader/src/index.js @@ -44,8 +44,9 @@ store.loadImportmap || new Promise((resolve, reject) => { // console.log("load shim", origin) + // __shimVersion is set from es build, you can found the version in peerDependencies const shimUrl = new URL( - "/externals/npm:es-module-shims@1.6.2/dist/es-module-shims.js", + "/externals/npm:es-module-shims@__shimVersion/dist/es-module-shims.js", origin ) diff --git a/package-lock.json b/package-lock.json index 4daa02839..8b61781e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -656,11 +656,12 @@ } }, "apps/widget-loader": { - "version": "1.1.4", + "version": "1.2.0", "devDependencies": { "babel-jest": "^29.3.1", "custom-event-polyfill": "^1.0.7", "esbuild": "^0.17.8", + "esbuild-plugin-replace": "^1.3.0", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1" }, @@ -832,7 +833,7 @@ } }, "libs/oauth": { - "version": "1.1.1", + "version": "1.1.2", "license": "Apache-2.0", "devDependencies": { "@babel/preset-env": "^7.20.2", @@ -20203,6 +20204,24 @@ "@esbuild/win32-x64": "0.17.14" } }, + "node_modules/esbuild-plugin-replace": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/esbuild-plugin-replace/-/esbuild-plugin-replace-1.3.0.tgz", + "integrity": "sha512-i9v5FDfKUaxzpCLn+avq3I6lxJDL5616/tzP93/GFAI7REFwkMTy/pilEIvqlH8RTVpjlwJDOqUOYvJOf5jnXg==", + "dev": true, + "dependencies": { + "magic-string": "^0.25.7" + } + }, + "node_modules/esbuild-plugin-replace/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, "node_modules/esbuild-sass-plugin": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/esbuild-sass-plugin/-/esbuild-sass-plugin-2.8.0.tgz",