docker run -it --rm -p 8080:8080 -v $(pwd):/src --entrypoint bash \
--platform linux/amd64 node:21.7.2-bookworm-slim
cd /src
npm install
npm run serve
I get:
root@bf4eb7e2840a:/src# npm install
npm run serve
npm WARN old lockfile
npm WARN old lockfile The package-lock.json file was created with an old version of npm,
npm WARN old lockfile so supplemental metadata must be fetched from the registry.
npm WARN old lockfile
npm WARN old lockfile This is a one-time fix-up, please be patient...
npm WARN old lockfile
npm WARN old lockfile vue-loader-v16: No matching version found for vue-loader-v16@16.1.2.
npm WARN old lockfile at module.exports (/usr/local/lib/node_modules/npm/node_modules/npm-pick-manifest/lib/index.js:209:23)
npm WARN old lockfile at RegistryFetcher.manifest (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/registry.js:130:22)
npm WARN old lockfile at async /usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:734:24
npm WARN old lockfile Could not fetch metadata for vue-loader-v16@16.1.2 vue-loader-v16: No matching version found for vue-loader-v16@16.1.2.
npm WARN old lockfile at module.exports (/usr/local/lib/node_modules/npm/node_modules/npm-pick-manifest/lib/index.js:209:23)
npm WARN old lockfile at RegistryFetcher.manifest (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/registry.js:130:22)
npm WARN old lockfile at async /usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:734:24 {
npm WARN old lockfile code: 'ETARGET',
npm WARN old lockfile type: 'version',
npm WARN old lockfile wanted: '16.1.2',
npm WARN old lockfile versions: [
npm WARN old lockfile '16.0.0-beta.5',
npm WARN old lockfile '16.0.0-beta.5.1',
npm WARN old lockfile '16.0.0-beta.5.2',
npm WARN old lockfile '16.0.0-beta.5.3',
npm WARN old lockfile '16.0.0-beta.5.4'
npm WARN old lockfile ],
npm WARN old lockfile distTags: { latest: '16.0.0-beta.5.4' },
npm WARN old lockfile defaultTag: 'latest'
npm WARN old lockfile }
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated is-data-descriptor@0.1.4: Please upgrade to v0.1.5
npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated eslint-loader@2.2.1: This loader has been deprecated. Please use eslint-webpack-plugin
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated left-pad@1.3.0: use String.prototype.padStart()
npm WARN deprecated move-concurrently@1.0.1: This package is no longer supported.
npm WARN deprecated @babel/plugin-proposal-private-methods@7.10.4: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.
npm WARN deprecated @babel/plugin-proposal-nullish-coalescing-operator@7.10.4: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
npm WARN deprecated @babel/plugin-proposal-logical-assignment-operators@7.11.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.
npm WARN deprecated @babel/plugin-proposal-export-namespace-from@7.10.4: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.
npm WARN deprecated @babel/plugin-proposal-numeric-separator@7.10.4: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
npm WARN deprecated @babel/plugin-proposal-json-strings@7.10.4: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.
npm WARN deprecated @babel/plugin-proposal-unicode-property-regex@7.10.4: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.
npm WARN deprecated @babel/plugin-proposal-optional-catch-binding@7.10.4: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
npm WARN deprecated @babel/plugin-proposal-class-properties@7.10.4: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @babel/plugin-proposal-dynamic-import@7.10.4: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.
npm WARN deprecated @babel/plugin-proposal-async-generator-functions@7.10.5: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
npm WARN deprecated @babel/plugin-proposal-optional-chaining@7.11.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
npm WARN deprecated @hapi/topo@3.1.6: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated domexception@1.0.1: Use your platform's native DOMException instead
npm WARN deprecated @babel/plugin-proposal-object-rest-spread@7.11.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
npm WARN deprecated ini@1.3.5: Please update to ini >=1.3.6 to avoid a prototype pollution issue
npm WARN deprecated is-data-descriptor@1.0.0: Please upgrade to v1.0.1
npm WARN deprecated is-accessor-descriptor@1.0.0: Please upgrade to v1.0.1
npm WARN deprecated is-accessor-descriptor@0.1.6: Please upgrade to v0.1.7
npm WARN deprecated copy-concurrently@1.0.5: This package is no longer supported.
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.5: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated rimraf@2.6.3: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated xmldom@0.1.19: Deprecated due to CVE-2021-21366 resolved in 0.5.0
npm WARN deprecated figgy-pudding@3.5.2: This module is no longer supported.
npm WARN deprecated is-data-descriptor@1.0.0: Please upgrade to v1.0.1
npm WARN deprecated is-data-descriptor@1.0.0: Please upgrade to v1.0.1
npm WARN deprecated is-data-descriptor@1.0.0: Please upgrade to v1.0.1
npm WARN deprecated is-accessor-descriptor@1.0.0: Please upgrade to v1.0.1
npm WARN deprecated is-accessor-descriptor@1.0.0: Please upgrade to v1.0.1
npm WARN deprecated is-accessor-descriptor@1.0.0: Please upgrade to v1.0.1
npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated fs-write-stream-atomic@1.0.10: This package is no longer supported.
npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated source-map-url@0.4.0: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated glob@7.1.6: Glob versions prior to v9 are no longer supported
npm WARN deprecated babel-eslint@10.1.0: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
npm WARN deprecated debug@4.2.0: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
npm WARN deprecated debug@3.2.6: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
npm WARN deprecated @hapi/address@2.1.4: Moved to 'npm install @sideway/address'
npm WARN deprecated mkdirp@0.5.1: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated debug@3.2.6: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
npm WARN deprecated debug@3.2.6: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
npm WARN deprecated debug@3.2.6: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
npm WARN deprecated sane@4.1.0: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated chokidar@2.1.8: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
npm WARN deprecated q@1.5.1: You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.
npm WARN deprecated
npm WARN deprecated (For a CapTP with native promises, see @endo/eventual-send and @endo/captp)
npm WARN deprecated html-webpack-plugin@3.2.0: 3.x is no longer supported
npm WARN deprecated chokidar@2.1.8: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
npm WARN deprecated @hapi/hoek@8.5.1: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated request@2.88.0: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated @hapi/joi@15.1.1: Switch to 'npm install joi'
npm WARN deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x.
npm WARN deprecated vue@2.6.12: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.
npm WARN deprecated highlight.js@9.18.3: Version no longer supported. Upgrade to @latest
npm WARN deprecated core-js@2.6.11: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
npm WARN deprecated core-js@3.6.5: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
npm notice
npm notice New minor version of npm available! 10.5.0 -> 10.8.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.2
npm notice Run npm install -g npm@10.8.2 to update!
npm notice
npm ERR! code 1
npm ERR! path /src/node_modules/deasync
npm ERR! command failed
npm ERR! command sh -c node ./build.js
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@10.0.1
npm ERR! gyp info using node@21.7.2 | linux | x64
npm ERR! gyp ERR! find Python
npm ERR! gyp ERR! find Python Python is not set from command line or npm configuration
npm ERR! gyp ERR! find Python Python is not set from environment variable PYTHON
npm ERR! gyp ERR! find Python checking if "python3" can be used
npm ERR! gyp ERR! find Python - executable path is ""
npm ERR! gyp ERR! find Python - "" could not be run
npm ERR! gyp ERR! find Python checking if "python" can be used
npm ERR! gyp ERR! find Python - executable path is ""
npm ERR! gyp ERR! find Python - "" could not be run
npm ERR! gyp ERR! find Python
npm ERR! gyp ERR! find Python **********************************************************
npm ERR! gyp ERR! find Python You need to install the latest version of Python.
npm ERR! gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
npm ERR! gyp ERR! find Python you can try one of the following options:
npm ERR! gyp ERR! find Python - Use the switch --python="/path/to/pythonexecutable"
npm ERR! gyp ERR! find Python (accepted by both node-gyp and npm)
npm ERR! gyp ERR! find Python - Set the environment variable PYTHON
npm ERR! gyp ERR! find Python - Set the npm configuration variable python:
npm ERR! gyp ERR! find Python npm config set python "/path/to/pythonexecutable"
npm ERR! gyp ERR! find Python For more information consult the documentation at:
npm ERR! gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
npm ERR! gyp ERR! find Python **********************************************************
npm ERR! gyp ERR! find Python
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Could not find any Python installation to use
npm ERR! gyp ERR! stack at PythonFinder.fail (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:306:11)
npm ERR! gyp ERR! stack at PythonFinder.findPython (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:164:17)
npm ERR! gyp ERR! stack at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
npm ERR! gyp ERR! stack at async configure (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:23:18)
npm ERR! gyp ERR! stack at async run (/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js:81:18)
npm ERR! gyp ERR! System Linux 6.6.32-linuxkit
npm ERR! gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /src/node_modules/deasync
npm ERR! gyp ERR! node -v v21.7.2
npm ERR! gyp ERR! node-gyp -v v10.0.1
npm ERR! gyp ERR! not ok
npm ERR! Build failed
npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2024-07-29T15_34_47_469Z-debug-0.log
> schema-ui@0.1.0 serve
> vue-cli-service serve
INFO Starting development server...
ERROR Failed to compile with 5 errors 3:35:42 PM
error in ./src/App.vue?vue&type=script&lang=js
Module not found: Error: Can't resolve 'safe-eval' in '/src/src'
error in ./src/components/Landing/Landing.vue?vue&type=script&lang=js
Module not found: Error: Can't resolve 'vue-markdown' in '/src/src/components/Landing'
error in ./src/components/MultiPart/MultiPart.vue?vue&type=script&lang=js
Module not found: Error: Can't resolve 'safe-eval' in '/src/src/components/MultiPart'
error in ./src/components/Section/Section.vue?vue&type=script&lang=js
Module not found: Error: Can't resolve 'safe-eval' in '/src/src/components/Section'
error in ./src/components/Survey/Survey.vue?vue&type=script&lang=js
Module not found: Error: Can't resolve 'safe-eval' in '/src/src/components/Survey'
ERROR in ./src/App.vue?vue&type=script&lang=js (./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./src/App.vue?vue&type=script&lang=js) 22:17-37
Module not found: Error: Can't resolve 'safe-eval' in '/src/src'
@ ./src/App.vue?vue&type=script&lang=js 1:0-229 1:245-248 1:250-476 1:250-476
@ ./src/App.vue 2:0-54 3:0-49 3:0-49 10:2-8
@ ./src/main.js 4:0-24 16:4-7 19:17-20
ERROR in ./src/components/Landing/Landing.vue?vue&type=script&lang=js (./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./src/components/Landing/Landing.vue?vue&type=script&lang=js) 3:0-39
Module not found: Error: Can't resolve 'vue-markdown' in '/src/src/components/Landing'
@ ./src/components/Landing/Landing.vue?vue&type=script&lang=js 1:0-245 1:261-264 1:266-508 1:266-508
@ ./src/components/Landing/Landing.vue 2:0-58 3:0-53 3:0-53 10:2-8
@ ./src/components/Landing/index.js 2:0-40 2:0-40
@ ./src/router/index.js 4:0-44 12:15-22
@ ./src/main.js 5:0-30 14:2-8
ERROR in ./src/components/MultiPart/MultiPart.vue?vue&type=script&lang=js (./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./src/components/MultiPart/MultiPart.vue?vue&type=script&lang=js) 4:17-37
Module not found: Error: Can't resolve 'safe-eval' in '/src/src/components/MultiPart'
@ ./src/components/MultiPart/MultiPart.vue?vue&type=script&lang=js 1:0-247 1:263-266 1:268-512 1:268-512
@ ./src/components/MultiPart/MultiPart.vue 2:0-60 3:0-55 3:0-55 9:2-8
@ ./src/components/MultiPart/index.js 2:0-42 2:0-42
@ ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./src/components/SurveyItem/SurveyItem.vue?vue&type=script&lang=js 6:0-37 45:15-24
@ ./src/components/SurveyItem/SurveyItem.vue?vue&type=script&lang=js 1:0-248 1:264-267 1:269-514 1:269-514
@ ./src/components/SurveyItem/SurveyItem.vue 2:0-61 3:0-56 3:0-56 10:2-8
@ ./src/components/SurveyItem/index.js 2:0-43 2:0-43
@ ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./src/components/Survey/Survey.vue?vue&type=script&lang=js 6:0-40 12:29-39
@ ./src/components/Survey/Survey.vue?vue&type=script&lang=js 1:0-244 1:260-263 1:265-506 1:265-506
@ ./src/components/Survey/Survey.vue 2:0-57 3:0-52 3:0-52 10:2-8
@ ./src/components/Survey/index.js 2:0-39 2:0-39
@ ./src/router/index.js 3:0-40 23:15-19
@ ./src/main.js 5:0-30 14:2-8
ERROR in ./src/components/Section/Section.vue?vue&type=script&lang=js (./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./src/components/Section/Section.vue?vue&type=script&lang=js) 10:17-37
Module not found: Error: Can't resolve 'safe-eval' in '/src/src/components/Section'
@ ./src/components/Section/Section.vue?vue&type=script&lang=js 1:0-245 1:261-264 1:266-508 1:266-508
@ ./src/components/Section/Section.vue 2:0-58 3:0-53 3:0-53 9:2-8
@ ./src/components/Section/index.js 2:0-40 2:0-40
@ ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./src/components/SurveyItem/SurveyItem.vue?vue&type=script&lang=js 7:0-33 46:17-24
@ ./src/components/SurveyItem/SurveyItem.vue?vue&type=script&lang=js 1:0-248 1:264-267 1:269-514 1:269-514
@ ./src/components/SurveyItem/SurveyItem.vue 2:0-61 3:0-56 3:0-56 10:2-8
@ ./src/components/SurveyItem/index.js 2:0-43 2:0-43
@ ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./src/components/Survey/Survey.vue?vue&type=script&lang=js 6:0-40 12:29-39
@ ./src/components/Survey/Survey.vue?vue&type=script&lang=js 1:0-244 1:260-263 1:265-506 1:265-506
@ ./src/components/Survey/Survey.vue 2:0-57 3:0-52 3:0-52 10:2-8
@ ./src/components/Survey/index.js 2:0-39 2:0-39
@ ./src/router/index.js 3:0-40 23:15-19
@ ./src/main.js 5:0-30 14:2-8
ERROR in ./src/components/Survey/Survey.vue?vue&type=script&lang=js (./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./src/components/Survey/Survey.vue?vue&type=script&lang=js) 13:17-37
Module not found: Error: Can't resolve 'safe-eval' in '/src/src/components/Survey'
@ ./src/components/Survey/Survey.vue?vue&type=script&lang=js 1:0-244 1:260-263 1:265-506 1:265-506
@ ./src/components/Survey/Survey.vue 2:0-57 3:0-52 3:0-52 10:2-8
@ ./src/components/Survey/index.js 2:0-39 2:0-39
@ ./src/router/index.js 3:0-40 23:15-19
@ ./src/main.js 5:0-30 14:2-8
webpack compiled with 5 errors
When I go to http://localhost:8080/, I get:
The iteration loop for checking that ReproSchema activities and protocols render correctly is slow on the deployed version of the UI because there is a lag in the update of raw files after pushing changes to GitHub. It would be much more efficient to check how activities and protocols render with a locally run version of the UI.
When I start Docker and run:
I get:
When I go to
http://localhost:8080/
, I get:The iteration loop for checking that ReproSchema activities and protocols render correctly is slow on the deployed version of the UI because there is a lag in the update of raw files after pushing changes to GitHub. It would be much more efficient to check how activities and protocols render with a locally run version of the UI.