diff --git a/.eslintignore b/.eslintignore index f06235c4..54529c20 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,3 @@ node_modules dist +samples/*/scripts diff --git a/samples/sample-action-button-dropdown-plugin/manifest.json b/samples/sample-action-button-dropdown-plugin/manifest.json index 92b46dd4..075a7457 100644 --- a/samples/sample-action-button-dropdown-plugin/manifest.json +++ b/samples/sample-action-button-dropdown-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.73", + "requiredSdkVersion": "~0.0.78", "name": "SampleActionButtonDropdownPlugin", "javascriptEntrypointUrl": "SampleActionButtonDropdownPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/", diff --git a/samples/sample-action-button-dropdown-plugin/package-lock.json b/samples/sample-action-button-dropdown-plugin/package-lock.json index 07a0b711..dc15a0ad 100644 --- a/samples/sample-action-button-dropdown-plugin/package-lock.json +++ b/samples/sample-action-button-dropdown-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-action-button-dropdown-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-action-button-dropdown-plugin/package.json b/samples/sample-action-button-dropdown-plugin/package.json index 00710f13..789c7add 100644 --- a/samples/sample-action-button-dropdown-plugin/package.json +++ b/samples/sample-action-button-dropdown-plugin/package.json @@ -18,6 +18,7 @@ }, "scripts": { "build-bundle": "webpack --mode production", + "postinstall": "node scripts/update-manifest-sdk-version.js", "start": "webpack serve --mode development", "build:watch": "rm -rf dist && tsc -w --module CommonJS", "lint": "eslint ./src/*", diff --git a/samples/sample-action-button-dropdown-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-action-button-dropdown-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-action-button-dropdown-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-actions-bar-plugin/manifest.json b/samples/sample-actions-bar-plugin/manifest.json index 7e551905..9d3b49d9 100644 --- a/samples/sample-actions-bar-plugin/manifest.json +++ b/samples/sample-actions-bar-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.73", + "requiredSdkVersion": "~0.0.78", "name": "SampleActionsBarPlugin", "javascriptEntrypointUrl": "SampleActionsBarPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-actions-bar-plugin/package-lock.json b/samples/sample-actions-bar-plugin/package-lock.json index b9f646d5..5ecda103 100644 --- a/samples/sample-actions-bar-plugin/package-lock.json +++ b/samples/sample-actions-bar-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-actions-bar-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-actions-bar-plugin/package.json b/samples/sample-actions-bar-plugin/package.json index 886a259e..67c637f9 100644 --- a/samples/sample-actions-bar-plugin/package.json +++ b/samples/sample-actions-bar-plugin/package.json @@ -17,7 +17,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-actions-bar-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-actions-bar-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-actions-bar-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-audio-settings-dropdown-plugin/manifest.json b/samples/sample-audio-settings-dropdown-plugin/manifest.json index 6d150913..2b320653 100644 --- a/samples/sample-audio-settings-dropdown-plugin/manifest.json +++ b/samples/sample-audio-settings-dropdown-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleAudioSettingsDropdownPlugin", "javascriptEntrypointUrl": "SampleAudioSettingsDropdownPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-audio-settings-dropdown-plugin/package-lock.json b/samples/sample-audio-settings-dropdown-plugin/package-lock.json index 15ccd81d..cfaa8009 100644 --- a/samples/sample-audio-settings-dropdown-plugin/package-lock.json +++ b/samples/sample-audio-settings-dropdown-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-audio-settings-dropdown-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-audio-settings-dropdown-plugin/package.json b/samples/sample-audio-settings-dropdown-plugin/package.json index 80dc0f01..e61fcd15 100644 --- a/samples/sample-audio-settings-dropdown-plugin/package.json +++ b/samples/sample-audio-settings-dropdown-plugin/package.json @@ -18,7 +18,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-audio-settings-dropdown-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-audio-settings-dropdown-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-audio-settings-dropdown-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-camera-settings-dropdown-plugin/manifest.json b/samples/sample-camera-settings-dropdown-plugin/manifest.json index e5151481..0e2c5b89 100644 --- a/samples/sample-camera-settings-dropdown-plugin/manifest.json +++ b/samples/sample-camera-settings-dropdown-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleCameraSettingsDropdownPlugin", "javascriptEntrypointUrl": "SampleCameraSettingsDropdownPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-camera-settings-dropdown-plugin/package-lock.json b/samples/sample-camera-settings-dropdown-plugin/package-lock.json index 4a043a48..299323d3 100644 --- a/samples/sample-camera-settings-dropdown-plugin/package-lock.json +++ b/samples/sample-camera-settings-dropdown-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-camera-settings-dropdown-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-camera-settings-dropdown-plugin/package.json b/samples/sample-camera-settings-dropdown-plugin/package.json index c111f947..27491cb0 100644 --- a/samples/sample-camera-settings-dropdown-plugin/package.json +++ b/samples/sample-camera-settings-dropdown-plugin/package.json @@ -17,7 +17,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-camera-settings-dropdown-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-camera-settings-dropdown-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-camera-settings-dropdown-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-custom-subscription-hook/manifest.json b/samples/sample-custom-subscription-hook/manifest.json index fec4d6a8..3eaa601d 100644 --- a/samples/sample-custom-subscription-hook/manifest.json +++ b/samples/sample-custom-subscription-hook/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleCustomSubscriptionPlugin", "javascriptEntrypointUrl": "SampleCustomSubscriptionPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-custom-subscription-hook/package-lock.json b/samples/sample-custom-subscription-hook/package-lock.json index 634d5e38..7d384fbc 100644 --- a/samples/sample-custom-subscription-hook/package-lock.json +++ b/samples/sample-custom-subscription-hook/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-presentation-toolbar-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-custom-subscription-hook/package.json b/samples/sample-custom-subscription-hook/package.json index 29294615..88b90fd9 100644 --- a/samples/sample-custom-subscription-hook/package.json +++ b/samples/sample-custom-subscription-hook/package.json @@ -17,7 +17,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-custom-subscription-hook/scripts/update-manifest-sdk-version.js b/samples/sample-custom-subscription-hook/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-custom-subscription-hook/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-data-channel-plugin/manifest.json b/samples/sample-data-channel-plugin/manifest.json index e4431be4..3b66be32 100644 --- a/samples/sample-data-channel-plugin/manifest.json +++ b/samples/sample-data-channel-plugin/manifest.json @@ -1,13 +1,19 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleDataChannelPlugin", "javascriptEntrypointUrl": "SampleDataChannelPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/", - "dataChannels":[ + "dataChannels": [ { "name": "public-channel", - "pushPermission": ["moderator","presenter"], - "replaceOrDeletePermission": ["moderator", "sender"] + "pushPermission": [ + "moderator", + "presenter" + ], + "replaceOrDeletePermission": [ + "moderator", + "sender" + ] } ] } diff --git a/samples/sample-data-channel-plugin/package-lock.json b/samples/sample-data-channel-plugin/package-lock.json index a75b8853..07c739c6 100644 --- a/samples/sample-data-channel-plugin/package-lock.json +++ b/samples/sample-data-channel-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-data-channel-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-data-channel-plugin/package.json b/samples/sample-data-channel-plugin/package.json index 26ca6de3..f56adc87 100644 --- a/samples/sample-data-channel-plugin/package.json +++ b/samples/sample-data-channel-plugin/package.json @@ -18,7 +18,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-data-channel-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-data-channel-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-data-channel-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-dom-element-manipulation/manifest.json b/samples/sample-dom-element-manipulation/manifest.json index 0c5b23be..80fa1e35 100644 --- a/samples/sample-dom-element-manipulation/manifest.json +++ b/samples/sample-dom-element-manipulation/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleDomElementManipulation", "javascriptEntrypointUrl": "SampleDomElementManipulation.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-dom-element-manipulation/package-lock.json b/samples/sample-dom-element-manipulation/package-lock.json index 39a42135..3f77fbdf 100644 --- a/samples/sample-dom-element-manipulation/package-lock.json +++ b/samples/sample-dom-element-manipulation/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-dom-element-manipulation", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-dom-element-manipulation/package.json b/samples/sample-dom-element-manipulation/package.json index ddb2f395..d8a9a8c2 100644 --- a/samples/sample-dom-element-manipulation/package.json +++ b/samples/sample-dom-element-manipulation/package.json @@ -17,7 +17,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-dom-element-manipulation/scripts/update-manifest-sdk-version.js b/samples/sample-dom-element-manipulation/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-dom-element-manipulation/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-floating-window-plugin/manifest.json b/samples/sample-floating-window-plugin/manifest.json index 28eba4a2..7694dcfd 100644 --- a/samples/sample-floating-window-plugin/manifest.json +++ b/samples/sample-floating-window-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleFloatingWindowPlugin", "javascriptEntrypointUrl": "SampleFloatingWindowPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-floating-window-plugin/package-lock.json b/samples/sample-floating-window-plugin/package-lock.json index 6577b849..0bb71ebb 100644 --- a/samples/sample-floating-window-plugin/package-lock.json +++ b/samples/sample-floating-window-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-floating-window-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-floating-window-plugin/package.json b/samples/sample-floating-window-plugin/package.json index 293285d9..f7725555 100644 --- a/samples/sample-floating-window-plugin/package.json +++ b/samples/sample-floating-window-plugin/package.json @@ -18,7 +18,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-floating-window-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-floating-window-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-floating-window-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-generic-content-sidekick-plugin/manifest.json b/samples/sample-generic-content-sidekick-plugin/manifest.json index c3d36c13..23c83c73 100644 --- a/samples/sample-generic-content-sidekick-plugin/manifest.json +++ b/samples/sample-generic-content-sidekick-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.73", + "requiredSdkVersion": "~0.0.78", "name": "SampleGenericContentSidekickPlugin", "javascriptEntrypointUrl": "SampleGenericContentSidekickPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-generic-content-sidekick-plugin/package-lock.json b/samples/sample-generic-content-sidekick-plugin/package-lock.json index 2e29a4d6..6ae06310 100644 --- a/samples/sample-generic-content-sidekick-plugin/package-lock.json +++ b/samples/sample-generic-content-sidekick-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-generic-content-sidekick-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-generic-content-sidekick-plugin/package.json b/samples/sample-generic-content-sidekick-plugin/package.json index 9ecf33d5..f02052ca 100644 --- a/samples/sample-generic-content-sidekick-plugin/package.json +++ b/samples/sample-generic-content-sidekick-plugin/package.json @@ -18,7 +18,8 @@ "start": "webpack serve --mode development", "build:watch": "rm -rf dist && tsc -w --module CommonJS", "lint": "eslint ./src/*", - "lint:fix": "npm run lint -- --fix" + "lint:fix": "npm run lint -- --fix", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-generic-content-sidekick-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-generic-content-sidekick-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-generic-content-sidekick-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-nav-bar-plugin/manifest.json b/samples/sample-nav-bar-plugin/manifest.json index 24851ce3..f87183f6 100644 --- a/samples/sample-nav-bar-plugin/manifest.json +++ b/samples/sample-nav-bar-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleNavBarPlugin", "javascriptEntrypointUrl": "SampleNavBarPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-nav-bar-plugin/package-lock.json b/samples/sample-nav-bar-plugin/package-lock.json index 335f81e0..ce287b36 100644 --- a/samples/sample-nav-bar-plugin/package-lock.json +++ b/samples/sample-nav-bar-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-nav-bar-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-nav-bar-plugin/package.json b/samples/sample-nav-bar-plugin/package.json index a813a2a0..4fe25db2 100644 --- a/samples/sample-nav-bar-plugin/package.json +++ b/samples/sample-nav-bar-plugin/package.json @@ -18,7 +18,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-nav-bar-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-nav-bar-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-nav-bar-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-options-dropdown-plugin/manifest.json b/samples/sample-options-dropdown-plugin/manifest.json index 0198e589..8de4d93f 100644 --- a/samples/sample-options-dropdown-plugin/manifest.json +++ b/samples/sample-options-dropdown-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleOptionsDropdownPlugin", "javascriptEntrypointUrl": "SampleOptionsDropdownPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-options-dropdown-plugin/package-lock.json b/samples/sample-options-dropdown-plugin/package-lock.json index 6e220715..5d9130ea 100644 --- a/samples/sample-options-dropdown-plugin/package-lock.json +++ b/samples/sample-options-dropdown-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-options-dropdown-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-options-dropdown-plugin/package.json b/samples/sample-options-dropdown-plugin/package.json index 8069c357..d23f975a 100644 --- a/samples/sample-options-dropdown-plugin/package.json +++ b/samples/sample-options-dropdown-plugin/package.json @@ -18,7 +18,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-options-dropdown-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-options-dropdown-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-options-dropdown-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-presentation-dropdown-plugin/manifest.json b/samples/sample-presentation-dropdown-plugin/manifest.json index ac1fecfa..9009dab9 100644 --- a/samples/sample-presentation-dropdown-plugin/manifest.json +++ b/samples/sample-presentation-dropdown-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SamplePresentationDropdownPlugin", "javascriptEntrypointUrl": "SamplePresentationDropdownPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-presentation-dropdown-plugin/package-lock.json b/samples/sample-presentation-dropdown-plugin/package-lock.json index 3ad0445a..de42cb8c 100644 --- a/samples/sample-presentation-dropdown-plugin/package-lock.json +++ b/samples/sample-presentation-dropdown-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-presentation-dropdown-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-presentation-dropdown-plugin/package.json b/samples/sample-presentation-dropdown-plugin/package.json index 7926c74a..408bf7fc 100644 --- a/samples/sample-presentation-dropdown-plugin/package.json +++ b/samples/sample-presentation-dropdown-plugin/package.json @@ -17,7 +17,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-presentation-dropdown-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-presentation-dropdown-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-presentation-dropdown-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-presentation-toolbar-plugin/manifest.json b/samples/sample-presentation-toolbar-plugin/manifest.json index 03d63525..603b0626 100644 --- a/samples/sample-presentation-toolbar-plugin/manifest.json +++ b/samples/sample-presentation-toolbar-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SamplePresentationToolbarPlugin", "javascriptEntrypointUrl": "SamplePresentationToolbarPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-presentation-toolbar-plugin/package-lock.json b/samples/sample-presentation-toolbar-plugin/package-lock.json index 87f1715b..e1eef6d8 100644 --- a/samples/sample-presentation-toolbar-plugin/package-lock.json +++ b/samples/sample-presentation-toolbar-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-presentation-toolbar-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-presentation-toolbar-plugin/package.json b/samples/sample-presentation-toolbar-plugin/package.json index 1a9f42c2..0529e530 100644 --- a/samples/sample-presentation-toolbar-plugin/package.json +++ b/samples/sample-presentation-toolbar-plugin/package.json @@ -17,7 +17,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-presentation-toolbar-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-presentation-toolbar-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-presentation-toolbar-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-screenshare-helper-plugin/manifest.json b/samples/sample-screenshare-helper-plugin/manifest.json index b25e4ade..e6d49559 100644 --- a/samples/sample-screenshare-helper-plugin/manifest.json +++ b/samples/sample-screenshare-helper-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleScreenshareHelperPlugin", "javascriptEntrypointUrl": "SampleScreenshareHelperPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-screenshare-helper-plugin/package-lock.json b/samples/sample-screenshare-helper-plugin/package-lock.json index 6055bfc9..9bd26e83 100644 --- a/samples/sample-screenshare-helper-plugin/package-lock.json +++ b/samples/sample-screenshare-helper-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-user-camera-dropdown-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-screenshare-helper-plugin/package.json b/samples/sample-screenshare-helper-plugin/package.json index 5c3e29ee..bf32a659 100644 --- a/samples/sample-screenshare-helper-plugin/package.json +++ b/samples/sample-screenshare-helper-plugin/package.json @@ -17,7 +17,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-screenshare-helper-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-screenshare-helper-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-screenshare-helper-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-server-commands-plugin/manifest.json b/samples/sample-server-commands-plugin/manifest.json index 62aff146..098fb960 100644 --- a/samples/sample-server-commands-plugin/manifest.json +++ b/samples/sample-server-commands-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleServerCommandsPlugin", "javascriptEntrypointUrl": "SampleServerCommandsPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-server-commands-plugin/package-lock.json b/samples/sample-server-commands-plugin/package-lock.json index 0977ca34..dc37cbf6 100644 --- a/samples/sample-server-commands-plugin/package-lock.json +++ b/samples/sample-server-commands-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-server-commands-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-server-commands-plugin/package.json b/samples/sample-server-commands-plugin/package.json index 80339789..29b9bccd 100644 --- a/samples/sample-server-commands-plugin/package.json +++ b/samples/sample-server-commands-plugin/package.json @@ -21,7 +21,8 @@ "start": "webpack serve --mode development", "build:watch": "rm -rf dist && tsc -w --module CommonJS", "lint": "eslint ./src/*", - "lint:fix": "npm run lint -- --fix" + "lint:fix": "npm run lint -- --fix", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-server-commands-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-server-commands-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-server-commands-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-ui-commands-plugin/manifest.json b/samples/sample-ui-commands-plugin/manifest.json index b0dedf97..b6f952d1 100644 --- a/samples/sample-ui-commands-plugin/manifest.json +++ b/samples/sample-ui-commands-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleUiCommandsPlugin", "javascriptEntrypointUrl": "SampleUiCommandsPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-ui-commands-plugin/package-lock.json b/samples/sample-ui-commands-plugin/package-lock.json index 577a6734..3787d7c9 100644 --- a/samples/sample-ui-commands-plugin/package-lock.json +++ b/samples/sample-ui-commands-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-ui-commands-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-ui-commands-plugin/package.json b/samples/sample-ui-commands-plugin/package.json index 97154563..758490c5 100644 --- a/samples/sample-ui-commands-plugin/package.json +++ b/samples/sample-ui-commands-plugin/package.json @@ -17,7 +17,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-ui-commands-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-ui-commands-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-ui-commands-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-ui-events-plugin/manifest.json b/samples/sample-ui-events-plugin/manifest.json index b9e6df55..02f50bfb 100644 --- a/samples/sample-ui-events-plugin/manifest.json +++ b/samples/sample-ui-events-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleUiEventsPlugin", "javascriptEntrypointUrl": "SampleUiEventsPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-ui-events-plugin/package-lock.json b/samples/sample-ui-events-plugin/package-lock.json index 315e705d..d948c8f7 100644 --- a/samples/sample-ui-events-plugin/package-lock.json +++ b/samples/sample-ui-events-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-ui-events-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-ui-events-plugin/package.json b/samples/sample-ui-events-plugin/package.json index 646699a1..4f942da2 100644 --- a/samples/sample-ui-events-plugin/package.json +++ b/samples/sample-ui-events-plugin/package.json @@ -17,7 +17,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-ui-events-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-ui-events-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-ui-events-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-use-meeting/manifest.json b/samples/sample-use-meeting/manifest.json index ce4217ca..19db3afe 100644 --- a/samples/sample-use-meeting/manifest.json +++ b/samples/sample-use-meeting/manifest.json @@ -1,14 +1,14 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleUseMeeting", "javascriptEntrypointUrl": "SampleUseMeeting.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/", "eventPersistence": { - "isEnabled": true, - "maximumPayloadSizeInBytes": 1024, - "rateLimiting": { - "messagesAllowedPerSecond": 10, - "messagesAllowedPerMinute": 20 - } + "isEnabled": true, + "maximumPayloadSizeInBytes": 1024, + "rateLimiting": { + "messagesAllowedPerSecond": 10, + "messagesAllowedPerMinute": 20 + } } } diff --git a/samples/sample-use-meeting/package-lock.json b/samples/sample-use-meeting/package-lock.json index 5548743f..28970b30 100644 --- a/samples/sample-use-meeting/package-lock.json +++ b/samples/sample-use-meeting/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-use-meeting-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-use-meeting/package.json b/samples/sample-use-meeting/package.json index a901d964..32698d64 100644 --- a/samples/sample-use-meeting/package.json +++ b/samples/sample-use-meeting/package.json @@ -17,7 +17,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-use-meeting/scripts/update-manifest-sdk-version.js b/samples/sample-use-meeting/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-use-meeting/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-user-camera-dropdown-plugin/manifest.json b/samples/sample-user-camera-dropdown-plugin/manifest.json index ff996c75..5764d9bf 100644 --- a/samples/sample-user-camera-dropdown-plugin/manifest.json +++ b/samples/sample-user-camera-dropdown-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleUserCameraDropdownPlugin", "javascriptEntrypointUrl": "SampleUserCameraDropdownPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-user-camera-dropdown-plugin/package-lock.json b/samples/sample-user-camera-dropdown-plugin/package-lock.json index ea52862e..fe9370c3 100644 --- a/samples/sample-user-camera-dropdown-plugin/package-lock.json +++ b/samples/sample-user-camera-dropdown-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-user-camera-dropdown-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-user-camera-dropdown-plugin/package.json b/samples/sample-user-camera-dropdown-plugin/package.json index 044a8dcc..8a9f9027 100644 --- a/samples/sample-user-camera-dropdown-plugin/package.json +++ b/samples/sample-user-camera-dropdown-plugin/package.json @@ -17,7 +17,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-user-camera-dropdown-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-user-camera-dropdown-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-user-camera-dropdown-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-user-camera-helper-plugin/manifest.json b/samples/sample-user-camera-helper-plugin/manifest.json index edc45e33..b625f121 100644 --- a/samples/sample-user-camera-helper-plugin/manifest.json +++ b/samples/sample-user-camera-helper-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.73", + "requiredSdkVersion": "~0.0.78", "name": "SampleUserCameraHelperPlugin", "javascriptEntrypointUrl": "SampleUserCameraHelperPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-user-camera-helper-plugin/package-lock.json b/samples/sample-user-camera-helper-plugin/package-lock.json index 333e341d..0a753959 100644 --- a/samples/sample-user-camera-helper-plugin/package-lock.json +++ b/samples/sample-user-camera-helper-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-user-camera-helper-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-user-camera-helper-plugin/package.json b/samples/sample-user-camera-helper-plugin/package.json index 070e8010..3bf8f7b6 100644 --- a/samples/sample-user-camera-helper-plugin/package.json +++ b/samples/sample-user-camera-helper-plugin/package.json @@ -17,7 +17,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-user-camera-helper-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-user-camera-helper-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-user-camera-helper-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-user-list-dropdown-plugin/manifest.json b/samples/sample-user-list-dropdown-plugin/manifest.json index 2b0c6ae6..4ca56e22 100644 --- a/samples/sample-user-list-dropdown-plugin/manifest.json +++ b/samples/sample-user-list-dropdown-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleUserListDropdownPlugin", "javascriptEntrypointUrl": "SampleUserListDropdownPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-user-list-dropdown-plugin/package-lock.json b/samples/sample-user-list-dropdown-plugin/package-lock.json index e04b39ae..75002367 100644 --- a/samples/sample-user-list-dropdown-plugin/package-lock.json +++ b/samples/sample-user-list-dropdown-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-user-list-dropdown-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-user-list-dropdown-plugin/package.json b/samples/sample-user-list-dropdown-plugin/package.json index 3f1fce6f..59184d46 100644 --- a/samples/sample-user-list-dropdown-plugin/package.json +++ b/samples/sample-user-list-dropdown-plugin/package.json @@ -20,7 +20,8 @@ "start": "webpack serve --mode development", "build:watch": "rm -rf dist && tsc -w --module CommonJS", "lint": "eslint ./src/*", - "lint:fix": "npm run lint -- --fix" + "lint:fix": "npm run lint -- --fix", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-user-list-dropdown-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-user-list-dropdown-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-user-list-dropdown-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`); diff --git a/samples/sample-user-list-item-additional-information-plugin/manifest.json b/samples/sample-user-list-item-additional-information-plugin/manifest.json index 381aa712..a24b9097 100644 --- a/samples/sample-user-list-item-additional-information-plugin/manifest.json +++ b/samples/sample-user-list-item-additional-information-plugin/manifest.json @@ -1,5 +1,5 @@ { - "requiredSdkVersion": "~0.0.59", + "requiredSdkVersion": "~0.0.78", "name": "SampleUserListItemAdditionalInformationPlugin", "javascriptEntrypointUrl": "SampleUserListItemAdditionalInformationPlugin.js", "localesBaseUrl": "https://cdn.dominio.com/pluginabc/" diff --git a/samples/sample-user-list-item-additional-information-plugin/package-lock.json b/samples/sample-user-list-item-additional-information-plugin/package-lock.json index 630b01b5..25ac9aa2 100644 --- a/samples/sample-user-list-item-additional-information-plugin/package-lock.json +++ b/samples/sample-user-list-item-additional-information-plugin/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "sample-user-list-item-additional-information-plugin", "version": "0.1.0", + "hasInstallScript": true, "dependencies": { "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/samples/sample-user-list-item-additional-information-plugin/package.json b/samples/sample-user-list-item-additional-information-plugin/package.json index 1aeb3f56..8f26089a 100644 --- a/samples/sample-user-list-item-additional-information-plugin/package.json +++ b/samples/sample-user-list-item-additional-information-plugin/package.json @@ -17,7 +17,8 @@ }, "scripts": { "build-bundle": "webpack --mode production", - "start": "webpack serve --mode development" + "start": "webpack serve --mode development", + "postinstall": "node scripts/update-manifest-sdk-version.js" }, "browserslist": { "production": [ diff --git a/samples/sample-user-list-item-additional-information-plugin/scripts/update-manifest-sdk-version.js b/samples/sample-user-list-item-additional-information-plugin/scripts/update-manifest-sdk-version.js new file mode 100644 index 00000000..14f6c096 --- /dev/null +++ b/samples/sample-user-list-item-additional-information-plugin/scripts/update-manifest-sdk-version.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Resolve paths relative to the project root (not the `scripts` folder) +const projectRoot = path.resolve(__dirname, '..'); // go up one level +const packageJsonPath = path.join(projectRoot, 'package.json'); +const manifestPath = path.join(projectRoot, 'manifest.json'); + +// Read and parse package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const sdkVersion = packageJson.dependencies['bigbluebutton-html-plugin-sdk'] || + packageJson.devDependencies['bigbluebutton-html-plugin-sdk']; + +if (!sdkVersion) { + console.error('bigbluebutton-html-plugin-sdk not found in dependencies'); + process.exit(1); +} + +// Clean version string +const cleanedVersion = sdkVersion.replace(/^[\^~]/, ''); + +// It's recommended that we keep the required version as "~v" +requiredSdkVersion = "~" + cleanedVersion + +// Read and update manifest.json +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); +manifest.requiredSdkVersion = requiredSdkVersion; + +// Write it back +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) +'\n', 'utf8'); +console.log(`Updated requiredSdkVersion in manifest.json to ${requiredSdkVersion}`);