From c64a082225c07592c03a8156ac5eff5d35a9583b Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 26 Jul 2022 13:40:58 +0000 Subject: [PATCH 01/88] chore(release): cut 10.0.0 [skip release] # [10.0.0](https://github.com/dhis2/app-platform/compare/v9.0.1...v10.0.0) (2022-07-26) ### Bug Fixes * remove engines field from pwa and adapter ([c3878f2](https://github.com/dhis2/app-platform/commit/c3878f2955352667f9a1ca9c428d8ed0ff77c777)) * remove lint step from publish step requirements ([#695](https://github.com/dhis2/app-platform/issues/695)) ([a04f8f7](https://github.com/dhis2/app-platform/commit/a04f8f715023fdcb568990fe478f19fb11e54fde)) ### chore * drop support for node 12 ([937e5e2](https://github.com/dhis2/app-platform/commit/937e5e2e3dac30af529594d03872b0ae53353882)) ### Features * update react-scripts ([#721](https://github.com/dhis2/app-platform/issues/721)) ([dc1c5cb](https://github.com/dhis2/app-platform/commit/dc1c5cb3ab0efb7bb074dd6fb581bf865bdb980e)) ### BREAKING CHANGES * dropped support for node 12. The platform now requires node 14+. --- CHANGELOG.md | 23 +++++++++++++++++++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 36 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 638dfe301..733a2f49a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,26 @@ +# [10.0.0](https://github.com/dhis2/app-platform/compare/v9.0.1...v10.0.0) (2022-07-26) + + +### Bug Fixes + +* remove engines field from pwa and adapter ([c3878f2](https://github.com/dhis2/app-platform/commit/c3878f2955352667f9a1ca9c428d8ed0ff77c777)) +* remove lint step from publish step requirements ([#695](https://github.com/dhis2/app-platform/issues/695)) ([a04f8f7](https://github.com/dhis2/app-platform/commit/a04f8f715023fdcb568990fe478f19fb11e54fde)) + + +### chore + +* drop support for node 12 ([937e5e2](https://github.com/dhis2/app-platform/commit/937e5e2e3dac30af529594d03872b0ae53353882)) + + +### Features + +* update react-scripts ([#721](https://github.com/dhis2/app-platform/issues/721)) ([dc1c5cb](https://github.com/dhis2/app-platform/commit/dc1c5cb3ab0efb7bb074dd6fb581bf865bdb980e)) + + +### BREAKING CHANGES + +* dropped support for node 12. The platform now requires node 14+. + # [10.0.0-beta.2](https://github.com/dhis2/app-platform/compare/v10.0.0-beta.1...v10.0.0-beta.2) (2022-07-26) diff --git a/adapter/package.json b/adapter/package.json index 04a685c8c..a722e5f7c 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.0.0-beta.2", + "version": "10.0.0", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.0.0-beta.2", + "@dhis2/pwa": "10.0.0", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.0.0-beta.2", + "@dhis2/cli-app-scripts": "10.0.0", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index cce8ee1ef..61c91c7cd 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.0.0-beta.2", + "version": "10.0.0", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.0.0-beta.2", + "@dhis2/app-shell": "10.0.0", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@yarnpkg/lockfile": "^1.1.0", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index bbe7d43e7..08e920e6f 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.0.0-beta.2", + "version": "10.0.0", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 9d48d5a38..fa64a2562 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.0.0-beta.2", + "version": "10.0.0", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 427c21bde..1d26f24c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.0.0-beta.2", + "version": "10.0.0", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index 42cc0c89b..b39177818 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.0.0-beta.2", + "version": "10.0.0", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.0.0-beta.2" + "@dhis2/cli-app-scripts": "10.0.0" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 7842a58ef..659c2f95b 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.0.0-beta.2", + "version": "10.0.0", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.0.0-beta.2", + "@dhis2/app-adapter": "10.0.0", "@dhis2/app-runtime": "^3.2.3", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/pwa": "10.0.0-beta.2", + "@dhis2/pwa": "10.0.0", "@dhis2/ui": "^8.0.0", "classnames": "^2.2.6", "moment": "^2.29.1", From 04ece0a034ff88eedd06268f5dc0469226600a50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9di-R=C3=A9mi=20Hashim?= Date: Thu, 17 Feb 2022 16:34:06 +0000 Subject: [PATCH 02/88] feat(cli): support plugin entrypoint when validating entrypoints --- cli/src/lib/compiler/entrypoints.js | 32 ++++- cli/src/lib/compiler/entrypoints.test.js | 162 +++++++++++++++++++++++ 2 files changed, 188 insertions(+), 6 deletions(-) diff --git a/cli/src/lib/compiler/entrypoints.js b/cli/src/lib/compiler/entrypoints.js index 69314fd68..6b245ca4d 100644 --- a/cli/src/lib/compiler/entrypoints.js +++ b/cli/src/lib/compiler/entrypoints.js @@ -27,15 +27,35 @@ exports.verifyEntrypoints = ({ resolveModule = require.resolve, }) => { if (config.type === 'app') { - verifyEntrypoint({ - entrypoint: config.entryPoints.app, - basePath: paths.base, - resolveModule, - }) + if ( + !config.entryPoints || + (!config.entryPoints.app && !config.entryPoints.plugin) + ) { + throw new Error('Apps must define an app or plugin entrypoint') + } + + if (config.entryPoints.app) { + verifyEntrypoint({ + entrypoint: config.entryPoints.app, + basePath: paths.base, + resolveModule, + }) + } + if (config.entryPoints.plugin) { + verifyEntrypoint({ + entrypoint: config.entryPoints.plugin, + basePath: paths.base, + resolveModule, + }) + } return } - const verifyLibraryEntrypoint = (entrypoint) => { + if (!config.entryPoints || !config.entryPoints.lib) { + throw new Error('Libraries must define a lib entrypoint') + } + + const verifyLibraryEntrypoint = entrypoint => { switch (typeof entrypoint) { case 'string': verifyEntrypoint({ diff --git a/cli/src/lib/compiler/entrypoints.test.js b/cli/src/lib/compiler/entrypoints.test.js index b70a938cb..7a7670fa4 100644 --- a/cli/src/lib/compiler/entrypoints.test.js +++ b/cli/src/lib/compiler/entrypoints.test.js @@ -256,4 +256,166 @@ describe('verifyEntrypoints', () => { ) expect(resolveModule).toHaveBeenCalledTimes(3) }) + + it(`does not throw an error if a plugin's entrypoint is located in the 'src' directory`, () => { + const resolveModule = jest.fn() + + const appConfig1 = { + type: 'app', + entryPoints: { + plugin: './src/plugin.js', + }, + } + expect(() => + verifyEntrypoints({ + config: appConfig1, + paths: { + base: '/the/base/path', + }, + resolveModule, + }) + ).not.toThrow() + + const appConfig2 = { + type: 'app', + entryPoints: { + plugin: 'src/plugin.js', + }, + } + expect(() => + verifyEntrypoints({ + config: appConfig2, + paths: { + base: '/the/base/path', + }, + resolveModule, + }) + ).not.toThrow() + }) + + it(`throws an error if a plugin's entrypoint is not located in the 'src' directory`, () => { + const appConfig = { + type: 'app', + entryPoints: { + plugin: 'plugin.js', + }, + } + expect(() => + verifyEntrypoints({ + config: appConfig, + paths: { + base: '/the/base/path', + }, + }) + ).toThrow( + `Entrypoint plugin.js must be located within the ./src directory` + ) + }) + + it(`does not throw an error if a plugin's entrypoint exists`, () => { + const appConfig = { + type: 'app', + entryPoints: { + plugin: './src/plugin.js', + }, + } + const resolveModule = jest.fn() + + expect(() => + verifyEntrypoints({ + config: appConfig, + paths: { + base: '/the/base/path', + }, + resolveModule, + }) + ).not.toThrow() + expect(resolveModule).toHaveBeenCalledWith( + '/the/base/path/src/plugin.js' + ) + }) + + it(`throws an error if a plugin's entrypoint does not exist`, () => { + const appConfig = { + type: 'app', + entryPoints: { + plugin: './src/plugin.js', + }, + } + const resolveModule = jest.fn(path => { + throw new Error(`Cannot find module '${path}'`) + }) + + const expectedError = 'Could not resolve entrypoint ./src/plugin.js' + expect(() => + verifyEntrypoints({ + config: appConfig, + paths: { + base: '/the/base/path', + }, + resolveModule, + }) + ).toThrow(expectedError) + expect(reporter.error).toHaveBeenCalledWith(expectedError) + expect(resolveModule).toHaveBeenCalledWith( + '/the/base/path/src/plugin.js' + ) + }) + + it(`throws an error if an app does not define any entrypoints`, () => { + const resolveModule = jest.fn() + const paths = { + base: '/the/base/path', + } + + const appConfig1 = { + type: 'app', + entryPoints: {}, + } + const appConfig2 = { + type: 'app', + entryPoints: undefined, + } + + const expectedAppError = 'Apps must define an app or plugin entrypoint' + expect(() => + verifyEntrypoints({ + config: appConfig1, + paths, + resolveModule, + }) + ).toThrow(expectedAppError) + expect(() => + verifyEntrypoints({ + config: appConfig2, + paths, + resolveModule, + }) + ).toThrow(expectedAppError) + + const libConfig1 = { + type: 'lib', + entryPoints: {}, + } + const libConfig2 = { + type: 'lib', + entryPoints: undefined, + } + + const expectedLibError = 'Libraries must define a lib entrypoint' + expect(() => + verifyEntrypoints({ + config: libConfig1, + paths, + resolveModule, + }) + ).toThrow(expectedLibError) + expect(() => + verifyEntrypoints({ + config: libConfig2, + paths, + resolveModule, + }) + ).toThrow(expectedLibError) + }) }) From 8e4dbfffdc923d9810d79f2faa739658f8ab768a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9di-R=C3=A9mi=20Hashim?= Date: Mon, 21 Feb 2022 13:14:22 +0000 Subject: [PATCH 03/88] feat(cli): create plugin entrypoint wrapper during compilation --- cli/src/lib/compiler/compile.js | 11 +++++++++-- cli/src/lib/compiler/entrypoints.js | 20 ++++++++++++++++---- cli/src/lib/paths.js | 1 + cli/src/lib/shell/index.js | 1 + shell/public/index.html | 2 +- shell/public/plugin.html | 26 ++++++++++++++++++++++++++ 6 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 shell/public/plugin.html diff --git a/cli/src/lib/compiler/compile.js b/cli/src/lib/compiler/compile.js index c56036897..775ef8836 100644 --- a/cli/src/lib/compiler/compile.js +++ b/cli/src/lib/compiler/compile.js @@ -6,7 +6,8 @@ const fs = require('fs-extra') const makeBabelConfig = require('../../../config/makeBabelConfig.js') const { verifyEntrypoints, - overwriteAppEntrypoint, + createAppEntrypointWrapper, + createPluginEntrypointWrapper, } = require('./entrypoints.js') const { extensionPattern, @@ -70,10 +71,16 @@ const compile = async ({ verifyEntrypoints({ config, paths }) if (isApp) { - await overwriteAppEntrypoint({ + await createAppEntrypointWrapper({ entrypoint: config.entryPoints.app, paths, }) + if (config.entryPoints.plugin) { + await createPluginEntrypointWrapper({ + entrypoint: config.entryPoints.plugin, + paths, + }) + } } const outDir = isApp diff --git a/cli/src/lib/compiler/entrypoints.js b/cli/src/lib/compiler/entrypoints.js index 6b245ca4d..11981b74f 100644 --- a/cli/src/lib/compiler/entrypoints.js +++ b/cli/src/lib/compiler/entrypoints.js @@ -79,14 +79,26 @@ exports.verifyEntrypoints = ({ verifyLibraryEntrypoint(config.entryPoints.lib) } -exports.overwriteAppEntrypoint = async ({ entrypoint, paths }) => { +const getEntrypointWrapper = async ({ entrypoint, paths }) => { const relativeEntrypoint = entrypoint.replace(/^(\.\/)?src\//, '') const outRelativeEntrypoint = normalizeExtension(relativeEntrypoint) const shellAppSource = await fs.readFile(paths.shellSourceEntrypoint) + + return shellAppSource + .toString() + .replace(/'.\/D2App\/app'/g, `'./D2App/${outRelativeEntrypoint}'`) +} + +exports.createAppEntrypointWrapper = async ({ entrypoint, paths }) => { await fs.writeFile( paths.shellAppEntrypoint, - shellAppSource - .toString() - .replace(/'.\/D2App\/app'/g, `'./D2App/${outRelativeEntrypoint}'`) + await getEntrypointWrapper({ entrypoint, paths }) + ) +} + +exports.createPluginEntrypointWrapper = async ({ entrypoint, paths }) => { + await fs.writeFile( + paths.shellPluginEntrypoint, + await getEntrypointWrapper({ entrypoint, paths }) ) } diff --git a/cli/src/lib/paths.js b/cli/src/lib/paths.js index 93111cabe..1263c37bd 100644 --- a/cli/src/lib/paths.js +++ b/cli/src/lib/paths.js @@ -60,6 +60,7 @@ module.exports = (cwd = process.cwd()) => { shellAppEntrypoint: path.join(base, './.d2/shell/src/App.js'), shellAppDirname, shellApp: path.join(base, `./.d2/shell/${shellAppDirname}`), + shellPluginEntrypoint: path.join(base, './.d2/shell/src/Plugin.js'), shellSrcServiceWorker: path.join( base, './.d2/shell/src/service-worker.js' diff --git a/cli/src/lib/shell/index.js b/cli/src/lib/shell/index.js index e25105474..efacbffef 100644 --- a/cli/src/lib/shell/index.js +++ b/cli/src/lib/shell/index.js @@ -29,6 +29,7 @@ module.exports = ({ config, paths }) => ({ pipe: false, }) }, + // TODO: remove? Test command does not seem to call this method test: async () => { await exec({ cmd: 'yarn', diff --git a/shell/public/index.html b/shell/public/index.html index b0aa52aad..a637da98c 100644 --- a/shell/public/index.html +++ b/shell/public/index.html @@ -7,7 +7,7 @@ content="width=device-width, initial-scale=1, shrink-to-fit=no" /> - diff --git a/shell/public/plugin.html b/shell/public/plugin.html new file mode 100644 index 000000000..97986f350 --- /dev/null +++ b/shell/public/plugin.html @@ -0,0 +1,26 @@ + + + + + + %REACT_APP_DHIS2_APP_NAME% plugin | DHIS2 + + + +
+
+ + + From 3e4275c9cf02b8d198ff075560f09b40ce865cea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9di-R=C3=A9mi=20Hashim?= Date: Fri, 25 Feb 2022 15:44:25 +0000 Subject: [PATCH 04/88] feat: webpack config for plugin --- cli/src/commands/build.js | 6 + cli/src/commands/start.js | 19 +- cli/src/lib/paths.js | 9 + cli/src/lib/plugin/build.js | 38 ++ cli/src/lib/plugin/index.js | 17 + cli/src/lib/plugin/start.js | 3 + cli/src/lib/plugin/webpack.config.js | 573 +++++++++++++++++++++++++++ shell/public/plugin.html | 2 +- shell/src/Plugin.js | 1 + shell/src/plugin.js | 14 + 10 files changed, 680 insertions(+), 2 deletions(-) create mode 100644 cli/src/lib/plugin/build.js create mode 100644 cli/src/lib/plugin/index.js create mode 100644 cli/src/lib/plugin/start.js create mode 100644 cli/src/lib/plugin/webpack.config.js create mode 100644 shell/src/Plugin.js create mode 100644 shell/src/plugin.js diff --git a/cli/src/commands/build.js b/cli/src/commands/build.js index b6d81decf..6049159da 100644 --- a/cli/src/commands/build.js +++ b/cli/src/commands/build.js @@ -8,6 +8,7 @@ const i18n = require('../lib/i18n') const loadEnvFiles = require('../lib/loadEnvFiles') const parseConfig = require('../lib/parseConfig') const makePaths = require('../lib/paths') +const makePlugin = require('../lib/plugin') const { injectPrecacheManifest } = require('../lib/pwa') const makeShell = require('../lib/shell') const { validatePackage } = require('../lib/validatePackage') @@ -67,6 +68,7 @@ const handler = async ({ const config = parseConfig(paths) const shell = makeShell({ config, paths }) + const plugin = makePlugin({ config, paths }) if (config.type === 'app') { setAppParameters(standalone, config) @@ -129,6 +131,10 @@ const handler = async ({ reporter.info('Building appShell...') await shell.build() + if (config.entryPoints.plugin) { + await plugin.build() + } + if (config.pwa.enabled) { reporter.info('Injecting precache manifest...') await injectPrecacheManifest(paths, config) diff --git a/cli/src/commands/start.js b/cli/src/commands/start.js index 393489ab7..352e9e2b9 100644 --- a/cli/src/commands/start.js +++ b/cli/src/commands/start.js @@ -7,6 +7,7 @@ const i18n = require('../lib/i18n') const loadEnvFiles = require('../lib/loadEnvFiles') const parseConfig = require('../lib/parseConfig') const makePaths = require('../lib/paths') +const makePlugin = require('../lib/plugin') const createProxyServer = require('../lib/proxy') const { compileServiceWorker } = require('../lib/pwa') const makeShell = require('../lib/shell') @@ -29,6 +30,7 @@ const handler = async ({ const config = parseConfig(paths) const shell = makeShell({ config, paths }) + const plugin = makePlugin({ config, paths }) if (config.type !== 'app') { reporter.error( @@ -128,7 +130,22 @@ const handler = async ({ ) reporter.print('') - await shell.start({ port: newPort }) + const shellStartPromise = shell.start({ port: newPort }) + + if (config.entryPoints.plugin) { + const pluginPort = await detectPort(newPort) + reporter.print( + `The plugin is now available on port ${pluginPort}` + ) + reporter.print('') + + await Promise.all([ + shellStartPromise, + plugin.start({ port: pluginPort }), + ]) + } else { + await shellStartPromise + } }, { name: 'start', diff --git a/cli/src/lib/paths.js b/cli/src/lib/paths.js index 1263c37bd..305dafcea 100644 --- a/cli/src/lib/paths.js +++ b/cli/src/lib/paths.js @@ -57,15 +57,24 @@ module.exports = (cwd = process.cwd()) => { d2: path.join(base, './.d2/'), appOutputFilename: 'App.js', shell: path.join(base, './.d2/shell'), + shellSrc: path.join(base, './.d2/shell/src'), shellAppEntrypoint: path.join(base, './.d2/shell/src/App.js'), shellAppDirname, shellApp: path.join(base, `./.d2/shell/${shellAppDirname}`), + shellPluginBundleEntrypoint: path.join( + base, + './.d2/shell/src/plugin.js' + ), shellPluginEntrypoint: path.join(base, './.d2/shell/src/Plugin.js'), shellSrcServiceWorker: path.join( base, './.d2/shell/src/service-worker.js' ), shellPublic: path.join(base, './.d2/shell/public'), + shellPublicPluginHtml: path.join( + base, + './.d2/shell/public/plugin.html' + ), shellPublicServiceWorker: path.join( base, './.d2/shell/public/service-worker.js' diff --git a/cli/src/lib/plugin/build.js b/cli/src/lib/plugin/build.js new file mode 100644 index 000000000..74c1f0897 --- /dev/null +++ b/cli/src/lib/plugin/build.js @@ -0,0 +1,38 @@ +// Based on CRA build script + +// Do this as the first thing so that any code reading it knows the right env. +process.env.BABEL_ENV = 'production' +process.env.NODE_ENV = 'production' + +const webpack = require('webpack') +const webpackConfigFactory = require('./webpack.config') + +module.exports = async ({ paths }) => { + console.log('Building plugin...') + + const webpackConfig = webpackConfigFactory({ env: 'production', paths }) + const compiler = webpack(webpackConfig) + return new Promise((resolve, reject) => { + compiler.run(err => { + if (err) { + if (!err.message) { + reject(err) + return + } + + let errMessage = err.message + // Add additional information for postcss errors + if (Object.prototype.hasOwnProperty.call(err, 'postcssNode')) { + errMessage += + '\nCompileError: Begins at CSS selector ' + + err['postcssNode'].selector + } + + reject(new Error(errMessage)) + return + } + + resolve() + }) + }) +} diff --git a/cli/src/lib/plugin/index.js b/cli/src/lib/plugin/index.js new file mode 100644 index 000000000..f10f338b2 --- /dev/null +++ b/cli/src/lib/plugin/index.js @@ -0,0 +1,17 @@ +const build = require('./build') +const start = require('./start') + +module.exports = ({ config, paths }) => ({ + // build: () => build({ config, paths }), + build: async () => { + try { + await build({ config, paths }) + } catch (error) { + console.log('\n\nerror building plugin:') + console.error(error) + console.log('\n') + throw error + } + }, + start: ({ port }) => start({ port, config, paths }), +}) diff --git a/cli/src/lib/plugin/start.js b/cli/src/lib/plugin/start.js new file mode 100644 index 000000000..48ea8debf --- /dev/null +++ b/cli/src/lib/plugin/start.js @@ -0,0 +1,3 @@ +// TODO +// module.exports = ({ port, config, paths }) => {} +module.exports = () => {} diff --git a/cli/src/lib/plugin/webpack.config.js b/cli/src/lib/plugin/webpack.config.js new file mode 100644 index 000000000..985bfc3eb --- /dev/null +++ b/cli/src/lib/plugin/webpack.config.js @@ -0,0 +1,573 @@ +// Based on CRA Webpack config + +const path = require('path') +const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin') +const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin') +const HtmlWebpackPlugin = require('html-webpack-plugin') +const MiniCssExtractPlugin = require('mini-css-extract-plugin') +const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin') +const postcssNormalize = require('postcss-normalize') +const safePostCssParser = require('postcss-safe-parser') +const getCacheIdentifier = require('react-dev-utils/getCacheIdentifier') +const getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent') +const getPublicUrlOrPath = require('react-dev-utils/getPublicUrlOrPath') +const InlineChunkHtmlPlugin = require('react-dev-utils/InlineChunkHtmlPlugin') +const InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin') +const ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin') +const WatchMissingNodeModulesPlugin = require('react-dev-utils/WatchMissingNodeModulesPlugin') +const TerserPlugin = require('terser-webpack-plugin') +const webpack = require('webpack') +const ManifestPlugin = require('webpack-manifest-plugin') + +const webpackDevClientEntry = require.resolve( + 'react-dev-utils/webpackHotDevClient' +) +const reactRefreshOverlayEntry = require.resolve( + 'react-dev-utils/refreshOverlayInterop' +) + +const imageInlineSizeLimit = 10e3 + +// style files regexes +const cssRegex = /\.css$/ +const cssModuleRegex = /\.module\.css$/ +const sassRegex = /\.(scss|sass)$/ +const sassModuleRegex = /\.module\.(scss|sass)$/ + +module.exports = ({ env: webpackEnv, paths }) => { + const isProduction = webpackEnv === 'production' + const isDevelopment = !isProduction + const publicPath = getPublicUrlOrPath( + isDevelopment, + null, + process.env.PUBLIC_URL + ) + + // common function to get style loaders + const getStyleLoaders = (cssOptions, preProcessor) => { + const loaders = [ + isDevelopment && require.resolve('style-loader'), + isProduction && { + loader: MiniCssExtractPlugin.loader, + // css is located in `static/css`, use '../../' to locate plugin.html folder + // in production `publicPath` can be a relative path + options: publicPath.startsWith('.') + ? { publicPath: '../../' } + : {}, + }, + { + loader: require.resolve('css-loader'), + options: cssOptions, + }, + { + // Options for PostCSS as we reference these options twice + // Adds vendor prefixing based on your specified browser support in + // package.json + loader: require.resolve('postcss-loader'), + options: { + // Necessary for external CSS imports to work + // https://github.com/facebook/create-react-app/issues/2677 + ident: 'postcss', + plugins: () => [ + require('postcss-flexbugs-fixes'), + require('postcss-preset-env')({ + autoprefixer: { + flexbox: 'no-2009', + }, + stage: 3, + }), + // Adds PostCSS Normalize as the reset css with default options, + // so that it honors browserslist config in package.json + // which in turn let's users customize the target behavior as per their needs. + postcssNormalize(), + ], + sourceMap: true, + }, + }, + ].filter(Boolean) + if (preProcessor) { + loaders.push( + { + loader: require.resolve('resolve-url-loader'), + options: { + sourceMap: true, + root: paths.appSrc, + }, + }, + { + loader: require.resolve(preProcessor), + options: { + sourceMap: true, + }, + } + ) + } + return loaders + } + + return { + mode: webpackEnv, + bail: isProduction, + entry: isDevelopment + ? [webpackDevClientEntry, paths.shellPluginBundleEntrypoint] + : paths.shellPluginBundleEntrypoint, + output: { + path: isProduction ? paths.shellBuildOutput : undefined, + pathinfo: isDevelopment, + filename: isProduction + ? 'static/js/[name].[contenthash:8].js' + : 'static/js/bundle.js', + chunkFilename: isProduction + ? 'static/js/[name].[contenthash:8].chunk.js' + : 'static/js/[name].chunk.js', + publicPath, + devtoolModuleFilenameTemplate: isProduction + ? info => + path + .relative(paths.shellSrc, info.absoluteResourcePath) + .replace(/\\/g, '/') + : info => + path + .resolve(info.absoluteResourcePath) + .replace(/\\/g, '/'), + globalObject: 'this', + }, + optimization: { + minimize: isProduction, + minimizer: [ + // This is only used in production mode + new TerserPlugin({ + terserOptions: { + parse: { + // We want terser to parse ecma 8 code. However, we don't want it + // to apply any minification steps that turns valid ecma 5 code + // into invalid ecma 5 code. This is why the 'compress' and 'output' + // sections only apply transformations that are ecma 5 safe + // https://github.com/facebook/create-react-app/pull/4234 + ecma: 8, + }, + compress: { + ecma: 5, + warnings: false, + // Disabled because of an issue with Uglify breaking seemingly valid code: + // https://github.com/facebook/create-react-app/issues/2376 + // Pending further investigation: + // https://github.com/mishoo/UglifyJS2/issues/2011 + comparisons: false, + // Disabled because of an issue with Terser breaking valid code: + // https://github.com/facebook/create-react-app/issues/5250 + // Pending further investigation: + // https://github.com/terser-js/terser/issues/120 + inline: 2, + }, + mangle: { + safari10: true, + }, + output: { + ecma: 5, + comments: false, + // Turned on because emoji and regex is not minified properly using default + // https://github.com/facebook/create-react-app/issues/2488 + ascii_only: true, + }, + }, + }), + // This is only used in production mode + new OptimizeCSSAssetsPlugin({ + cssProcessorOptions: { + parser: safePostCssParser, + map: { + // `inline: false` forces the sourcemap to be output into a + // separate file + inline: false, + // `annotation: true` appends the sourceMappingURL to the end of + // the css file, helping the browser find the sourcemap + annotation: true, + }, + }, + cssProcessorPluginOptions: { + preset: [ + 'default', + { minifyFontValues: { removeQuotes: false } }, + ], + }, + }), + ], + // Automatically split vendor and commons + // https://twitter.com/wSokra/status/969633336732905474 + // https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366 + splitChunks: { + chunks: 'all', + name: isDevelopment, + }, + // Keep the runtime chunk separated to enable long term caching + // https://twitter.com/wSokra/status/969679223278505985 + // https://github.com/facebook/create-react-app/issues/5358 + runtimeChunk: { + name: entrypoint => `runtime-${entrypoint.name}`, + }, + }, + resolve: { + extensions: ['js', 'ts', 'tsx', 'jsx', 'json', 'mjs'], + }, + module: { + strictExportPresence: true, + rules: [ + // Disable require.ensure as it's not a standard language feature. + { parser: { requireEnsure: false } }, + { + // "oneOf" will traverse all following loaders until one will + // match the requirements. When no loader matches it will fall + // back to the "file" loader at the end of the loader list. + oneOf: [ + // TODO: Merge this config once `image/avif` is in the mime-db + // https://github.com/jshttp/mime-db + { + test: [/\.avif$/], + loader: require.resolve('url-loader'), + options: { + limit: imageInlineSizeLimit, + mimetype: 'image/avif', + name: 'static/media/[name].[hash:8].[ext]', + }, + }, + // "url" loader works like "file" loader except that it embeds assets + // smaller than specified limit in bytes as data URLs to avoid requests. + // A missing `test` is equivalent to a match. + { + test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/], + loader: require.resolve('url-loader'), + options: { + limit: imageInlineSizeLimit, + name: 'static/media/[name].[hash:8].[ext]', + }, + }, + + // TODO: remove babel-loader code + + // Process application JS with Babel. + // The preset includes JSX, Flow, TypeScript, and some ESnext features. + /* + { + test: /\.(js|mjs|jsx|ts|tsx)$/, + include: paths.shellSrc, + loader: require.resolve('babel-loader'), + options: { + customize: require.resolve( + 'babel-preset-react-app/webpack-overrides' + ), + presets: [ + [ + require.resolve( + 'babel-preset-react-app' + ), + { + runtime: 'classic', + }, + ], + ], + babelrc: false, + configFile: false, + // Make sure we have a unique cache identifier, erring on the + // side of caution. + cacheIdentifier: getCacheIdentifier( + webpackEnv, + [ + 'babel-plugin-named-asset-import', + 'babel-preset-react-app', + 'react-dev-utils', + 'react-scripts', + ] + ), + plugins: [ + [ + require.resolve( + 'babel-plugin-named-asset-import' + ), + { + loaderMap: { + svg: { + ReactComponent: + '@svgr/webpack?-svgo,+titleProp,+ref![path]', + }, + }, + }, + ], + isDevelopment && + require.resolve('react-refresh/babel'), + ].filter(Boolean), + // This is a feature of `babel-loader` for webpack (not Babel itself). + // It enables caching results in ./node_modules/.cache/babel-loader/ + // directory for faster rebuilds. + cacheDirectory: true, + // See #6846 for context on why cacheCompression is disabled + cacheCompression: false, + compact: isProduction, + }, + }, + // Process any JS outside of the app with Babel. + // Unlike the application JS, we only compile the standard ES features. + { + test: /\.(js|mjs)$/, + exclude: /@babel(?:\/|\\{1,2})runtime/, + loader: require.resolve('babel-loader'), + options: { + babelrc: false, + configFile: false, + compact: false, + presets: [ + [ + require.resolve( + 'babel-preset-react-app/dependencies' + ), + { helpers: true }, + ], + ], + cacheDirectory: true, + // See #6846 for context on why cacheCompression is disabled + cacheCompression: false, + cacheIdentifier: getCacheIdentifier( + webpackEnv, + [ + 'babel-plugin-named-asset-import', + 'babel-preset-react-app', + 'react-dev-utils', + 'react-scripts', + ] + ), + // Babel sourcemaps are needed for debugging into node_modules + // code. Without the options below, debuggers like VSCode + // show incorrect code and set breakpoints on the wrong lines. + sourceMaps: true, + inputSourceMap: true, + }, + }, + */ + // "postcss" loader applies autoprefixer to our CSS. + // "css" loader resolves paths in CSS and adds assets as dependencies. + // "style" loader turns CSS into JS modules that inject - + {!plugin && }
window.location.reload()}> {children} @@ -36,4 +36,5 @@ AppWrapper.propTypes = { appName: PropTypes.string.isRequired, offlineInterface: PropTypes.object.isRequired, children: PropTypes.node, + plugin: PropTypes.bool, } diff --git a/adapter/src/index.js b/adapter/src/index.js index 9492ec9d9..c6f922c96 100644 --- a/adapter/src/index.js +++ b/adapter/src/index.js @@ -7,7 +7,14 @@ import { ServerVersionProvider } from './components/ServerVersionProvider.js' const offlineInterface = new OfflineInterface() -const AppAdapter = ({ url, apiVersion, appName, pwaEnabled, children }) => ( +const AppAdapter = ({ + url, + apiVersion, + appName, + pwaEnabled, + plugin, + children, +}) => ( ( pwaEnabled={pwaEnabled} offlineInterface={offlineInterface} > - + {children} @@ -26,6 +37,7 @@ AppAdapter.propTypes = { appName: PropTypes.string.isRequired, apiVersion: PropTypes.number, children: PropTypes.element, + plugin: PropTypes.bool, pwaEnabled: PropTypes.bool, url: PropTypes.string, } diff --git a/cli/src/lib/plugin/webpack.config.js b/cli/src/lib/plugin/webpack.config.js index 8a8307c38..9298cfe9f 100644 --- a/cli/src/lib/plugin/webpack.config.js +++ b/cli/src/lib/plugin/webpack.config.js @@ -31,7 +31,7 @@ module.exports = ({ env: webpackEnv, paths }) => { process.env.PUBLIC_URL ) - const shellEnv = getShellEnv({}) + const shellEnv = getShellEnv({ plugin: 'true' }) // "style" loader turns CSS into JS modules that inject - +
window.location.reload()}> {children}
-
) } AppWrapper.propTypes = { - appName: PropTypes.string.isRequired, - offlineInterface: PropTypes.object.isRequired, children: PropTypes.node, } diff --git a/adapter/src/components/ConfirmUpdateModal.js b/adapter/src/components/ConfirmUpdateModal.js new file mode 100644 index 000000000..8cbd603b9 --- /dev/null +++ b/adapter/src/components/ConfirmUpdateModal.js @@ -0,0 +1,43 @@ +import { + Button, + ButtonStrip, + Modal, + ModalActions, + ModalContent, + ModalTitle, +} from '@dhis2/ui' +import PropTypes from 'prop-types' +import React from 'react' +import i18n from '../locales' + +export function ConfirmUpdateModal({ clientsCount, onCancel, onConfirm }) { + return ( + + {i18n.t('Save your data')} + + {clientsCount + ? i18n.t( + "Updating will reload all {{n}} open instances of this app, and any unsaved data will be lost. Save any data you need to, then click 'Reload' when ready.", + { n: clientsCount } + ) + : // Fallback if clientsCount is unavailable: + i18n.t( + "Updating will reload all open instances of this app, and any unsaved data will be lost. Save any data you need to, then click 'Reload' when ready." + )} + + + + + + + + + ) +} +ConfirmUpdateModal.propTypes = { + clientsCount: PropTypes.number, + onCancel: PropTypes.func, + onConfirm: PropTypes.func, +} diff --git a/adapter/src/components/ConnectedHeaderBar.js b/adapter/src/components/ConnectedHeaderBar.js new file mode 100644 index 000000000..4da27e315 --- /dev/null +++ b/adapter/src/components/ConnectedHeaderBar.js @@ -0,0 +1,42 @@ +import { useConfig } from '@dhis2/app-runtime' +import { HeaderBar } from '@dhis2/ui' +import React from 'react' +import { usePWAUpdateState } from '../utils/usePWAUpdateState' +import { ConfirmUpdateModal } from './ConfirmUpdateModal' + +/** + * Check for SW updates or a first activation, displaying an update notification + * message in the HeaderBar profile menu. When an update is applied, if there are + * multiple tabs of this app open, there's anadditional warning step because all + * clients of the service worker will reload when there's an update, which may + * cause data loss. + */ + +export function ConnectedHeaderBar() { + const { appName } = useConfig() + const { + updateAvailable, + confirmReload, + confirmationRequired, + clientsCount, + onConfirmUpdate, + onCancelUpdate, + } = usePWAUpdateState() + + return ( + <> + + {confirmationRequired ? ( + + ) : null} + + ) +} diff --git a/adapter/src/components/OfflineInterfaceContext.js b/adapter/src/components/OfflineInterfaceContext.js new file mode 100644 index 000000000..b22050000 --- /dev/null +++ b/adapter/src/components/OfflineInterfaceContext.js @@ -0,0 +1,18 @@ +import { OfflineInterface } from '@dhis2/pwa' +import PropTypes from 'prop-types' +import React, { createContext, useContext } from 'react' + +const theOfflineInterface = new OfflineInterface() +const OfflineInterfaceContext = createContext(theOfflineInterface) + +export const OfflineInterfaceProvider = ({ children }) => ( + + {children} + +) + +OfflineInterfaceProvider.propTypes = { + children: PropTypes.node, +} + +export const useOfflineInterface = () => useContext(OfflineInterfaceContext) diff --git a/adapter/src/components/PWALoadingBoundary.js b/adapter/src/components/PWALoadingBoundary.js new file mode 100644 index 000000000..64e5e08e8 --- /dev/null +++ b/adapter/src/components/PWALoadingBoundary.js @@ -0,0 +1,40 @@ +import { + REGISTRATION_STATE_WAITING, + REGISTRATION_STATE_FIRST_ACTIVATION, +} from '@dhis2/pwa' +import PropTypes from 'prop-types' +import { useEffect, useState } from 'react' +import { useOfflineInterface } from './OfflineInterfaceContext' + +export const PWALoadingBoundary = ({ children }) => { + const [pwaReady, setPWAReady] = useState(false) + const offlineInterface = useOfflineInterface() + + useEffect(() => { + const checkRegistration = async () => { + const registrationState = + await offlineInterface.getRegistrationState() + const clientsInfo = await offlineInterface.getClientsInfo() + if ( + (registrationState === REGISTRATION_STATE_WAITING || + registrationState === + REGISTRATION_STATE_FIRST_ACTIVATION) && + clientsInfo.clientsCount === 1 + ) { + console.log( + 'Reloading on startup to activate waiting service worker' + ) + offlineInterface.useNewSW() + } else { + setPWAReady(true) + } + } + checkRegistration() + }, [offlineInterface]) + + return pwaReady ? children : null +} + +PWALoadingBoundary.propTypes = { + children: PropTypes.node.isRequired, +} diff --git a/adapter/src/components/PWAUpdateManager.js b/adapter/src/components/PWAUpdateManager.js deleted file mode 100644 index ccdd0b465..000000000 --- a/adapter/src/components/PWAUpdateManager.js +++ /dev/null @@ -1,110 +0,0 @@ -import { useAlert } from '@dhis2/app-runtime' -import { - Button, - ButtonStrip, - Modal, - ModalActions, - ModalContent, - ModalTitle, -} from '@dhis2/ui' -import PropTypes from 'prop-types' -import React, { useState, useEffect } from 'react' -import i18n from '../locales/index.js' - -function ConfirmReloadModal({ clientsCount, onCancel, onConfirm }) { - return ( - - {i18n.t('Save your data')} - - {clientsCount - ? i18n.t( - "Updating will reload all {{n}} open instances of this app, and any unsaved data will be lost. Save any data you need to, then click 'Reload' when ready.", - { n: clientsCount } - ) - : // Fallback if clientsCount is unavailable: - i18n.t( - "Updating will reload all open instances of this app, and any unsaved data will be lost. Save any data you need to, then click 'Reload' when ready." - )} - - - - - - - - - ) -} -ConfirmReloadModal.propTypes = { - clientsCount: PropTypes.number, - onCancel: PropTypes.func, - onConfirm: PropTypes.func, -} - -/** - * Uses the offlineInterface to check for SW updates or a first activation, - * then prompts the user to reload the page to use the new SW and access new - * app updates. If there are multiple tabs of this app open, there's an - * additional warning step because all clients of the service worker will - * reload when there's an update, which may cause data loss. - */ -export default function PWAUpdateManager({ offlineInterface }) { - const [confirmReloadModalOpen, setConfirmReloadModalOpen] = useState(false) - const [clientsCountState, setClientsCountState] = useState(null) - const { show } = useAlert( - i18n.t("There's an update available for this app."), - ({ onConfirm }) => ({ - permanent: true, - actions: [ - { label: i18n.t('Update and reload'), onClick: onConfirm }, - { label: i18n.t('Not now'), onClick: () => {} }, - ], - }) - ) - - const confirmReload = () => { - offlineInterface - .getClientsInfo() - .then(({ clientsCount }) => { - setClientsCountState(clientsCount) - if (clientsCount === 1) { - // Just one client; go ahead and reload - offlineInterface.useNewSW() - } else { - // Multiple clients; warn about data loss before reloading - setConfirmReloadModalOpen(true) - } - }) - .catch((reason) => { - // Didn't get clients info - console.warn(reason) - // Go ahead with confirmation modal with `null` as clientsCount - setConfirmReloadModalOpen(true) - }) - } - - useEffect(() => { - offlineInterface.checkForNewSW({ - onNewSW: () => { - show({ onConfirm: confirmReload }) - }, - }) - }, []) - - return confirmReloadModalOpen ? ( - offlineInterface.useNewSW()} - onCancel={() => setConfirmReloadModalOpen(false)} - clientsCount={clientsCountState} - /> - ) : null -} -PWAUpdateManager.propTypes = { - offlineInterface: PropTypes.shape({ - checkForNewSW: PropTypes.func.isRequired, - getClientsInfo: PropTypes.func.isRequired, - useNewSW: PropTypes.func.isRequired, - }).isRequired, -} diff --git a/adapter/src/components/ServerVersionProvider.js b/adapter/src/components/ServerVersionProvider.js index be03f6986..cc77227d0 100644 --- a/adapter/src/components/ServerVersionProvider.js +++ b/adapter/src/components/ServerVersionProvider.js @@ -2,17 +2,20 @@ import { Provider } from '@dhis2/app-runtime' import PropTypes from 'prop-types' import React, { useEffect, useState } from 'react' import { get } from '../utils/api.js' -import { parseServerVersion } from '../utils/parseServerVersion.js' +import { parseDHIS2ServerVersion, parseVersion } from '../utils/parseVersion.js' import { LoadingMask } from './LoadingMask.js' import { LoginModal } from './LoginModal.js' +import { useOfflineInterface } from './OfflineInterfaceContext.js' export const ServerVersionProvider = ({ + appName, + appVersion, url, apiVersion, - offlineInterface, pwaEnabled, children, }) => { + const offlineInterface = useOfflineInterface() const [{ loading, error, systemInfo }, setState] = useState({ loading: true, }) @@ -46,12 +49,14 @@ export const ServerVersionProvider = ({ return } - const serverVersion = parseServerVersion(systemInfo.version) + const serverVersion = parseDHIS2ServerVersion(systemInfo.version) const realApiVersion = serverVersion.minor return ( ( +const AppAdapter = ({ + appName, + appVersion, + url, + apiVersion, + pwaEnabled, + children, +}) => ( - - - {children} - - + + + + {children} + + + ) AppAdapter.propTypes = { appName: PropTypes.string.isRequired, + appVersion: PropTypes.string.isRequired, apiVersion: PropTypes.number, children: PropTypes.element, pwaEnabled: PropTypes.bool, diff --git a/adapter/src/utils/parseServerVersion.test.js b/adapter/src/utils/parseServerVersion.test.js deleted file mode 100644 index 2addbcc76..000000000 --- a/adapter/src/utils/parseServerVersion.test.js +++ /dev/null @@ -1,72 +0,0 @@ -const { parseServerVersion } = require('./parseServerVersion') - -describe('parseServerVersion', () => { - let originalConsoleWarn - beforeAll(() => { - originalConsoleWarn = console.warn - }) - beforeEach(() => { - // Capture console warnings - console.warn = jest.fn() - }) - afterAll(() => { - console.warn = originalConsoleWarn - }) - - it('Should correctly parse a simple released version', () => { - expect(parseServerVersion('2.34.3')).toMatchObject({ - major: 2, - minor: 34, - patch: 3, - tag: undefined, - }) - expect(console.warn).toHaveBeenCalledTimes(0) - }) - - it('Should correctly parse a snapshot version', () => { - expect(parseServerVersion('2.34-SNAPSHOT')).toMatchObject({ - major: 2, - minor: 34, - patch: undefined, - tag: 'SNAPSHOT', - }) - expect(console.warn).toHaveBeenCalledTimes(0) - }) - - it('Should not break on null or undefined', () => { - expect(parseServerVersion(null)).toMatchObject({ - major: undefined, - minor: undefined, - patch: undefined, - tag: undefined, - }) - - expect(parseServerVersion(undefined)).toMatchObject({ - major: undefined, - minor: undefined, - patch: undefined, - tag: undefined, - }) - expect(console.warn).toHaveBeenCalledTimes(2) - }) - - it('Should correctly parse a future major version', () => { - expect(parseServerVersion('6.4.2')).toMatchObject({ - major: 6, - minor: 4, - patch: 2, - tag: undefined, - }) - expect(console.warn).toHaveBeenCalledTimes(1) - }) - - it('Should not break on non-numeric version string', () => { - expect(parseServerVersion('this.is.a.version-test')).toMatchObject({ - major: undefined, - minor: undefined, - patch: undefined, - tag: 'test', - }) - expect(console.warn).toHaveBeenCalledTimes(1) - }) -}) diff --git a/adapter/src/utils/parseServerVersion.js b/adapter/src/utils/parseVersion.js similarity index 73% rename from adapter/src/utils/parseServerVersion.js rename to adapter/src/utils/parseVersion.js index 70b65e836..e23e7aca2 100644 --- a/adapter/src/utils/parseServerVersion.js +++ b/adapter/src/utils/parseVersion.js @@ -1,14 +1,21 @@ -export const parseServerVersion = (versionString) => { +export const parseVersion = (versionString) => { const [mainVersion, tag] = versionString?.split('-') || [] const [major, minor, patch] = mainVersion?.split('.') || [] const parsedVersion = { + full: versionString, major: parseInt(major) || undefined, // 2 minor: parseInt(minor) || undefined, // 34 patch: parseInt(patch) || undefined, // 1 tag, // SNAPSHOT || undefined } + return parsedVersion +} + +export const parseDHIS2ServerVersion = (versionString) => { + const parsedVersion = parseVersion(versionString) + if ( !parsedVersion.major || !parsedVersion.minor || diff --git a/adapter/src/utils/parseVersion.test.js b/adapter/src/utils/parseVersion.test.js new file mode 100644 index 000000000..a88331865 --- /dev/null +++ b/adapter/src/utils/parseVersion.test.js @@ -0,0 +1,113 @@ +const { parseVersion, parseDHIS2ServerVersion } = require('./parseVersion') + +describe('parseVersion', () => { + let originalConsoleWarn + beforeAll(() => { + originalConsoleWarn = console.warn + }) + beforeEach(() => { + // Capture console warnings + console.warn = jest.fn() + }) + afterAll(() => { + console.warn = originalConsoleWarn + }) + + it('Should correctly parse a simple released version', () => { + expect(parseVersion('2.34.3')).toMatchObject({ + full: '2.34.3', + major: 2, + minor: 34, + patch: 3, + tag: undefined, + }) + expect(console.warn).toHaveBeenCalledTimes(0) + }) + + it('Should correctly parse a snapshot version', () => { + expect(parseVersion('2.34-SNAPSHOT')).toMatchObject({ + full: '2.34-SNAPSHOT', + major: 2, + minor: 34, + patch: undefined, + tag: 'SNAPSHOT', + }) + expect(console.warn).toHaveBeenCalledTimes(0) + }) + + it('Should not break on null or undefined', () => { + expect(parseVersion(null)).toMatchObject({ + full: null, + major: undefined, + minor: undefined, + patch: undefined, + tag: undefined, + }) + + expect(parseVersion(undefined)).toMatchObject({ + full: undefined, + major: undefined, + minor: undefined, + patch: undefined, + tag: undefined, + }) + }) +}) + +describe('parseDHIS2ServerVersion', () => { + let originalConsoleWarn + beforeAll(() => { + originalConsoleWarn = console.warn + }) + beforeEach(() => { + // Capture console warnings + console.warn = jest.fn() + }) + afterAll(() => { + console.warn = originalConsoleWarn + }) + + it('Should warn on null or undefined', () => { + expect(parseDHIS2ServerVersion(null)).toMatchObject({ + full: null, + major: undefined, + minor: undefined, + patch: undefined, + tag: undefined, + }) + + expect(parseDHIS2ServerVersion(undefined)).toMatchObject({ + full: undefined, + major: undefined, + minor: undefined, + patch: undefined, + tag: undefined, + }) + + expect(console.warn).toHaveBeenCalledTimes(2) + }) + + it('Should correctly parse a future major version, but log a warning', () => { + expect(parseDHIS2ServerVersion('6.4.2')).toMatchObject({ + full: '6.4.2', + major: 6, + minor: 4, + patch: 2, + tag: undefined, + }) + expect(console.warn).toHaveBeenCalledTimes(1) + }) + + it('Should not break on non-numeric version string, but log a warning', () => { + expect(parseDHIS2ServerVersion('this.is.a.version-test')).toMatchObject( + { + full: 'this.is.a.version-test', + major: undefined, + minor: undefined, + patch: undefined, + tag: 'test', + } + ) + expect(console.warn).toHaveBeenCalledTimes(1) + }) +}) diff --git a/adapter/src/utils/usePWAUpdateState.js b/adapter/src/utils/usePWAUpdateState.js new file mode 100644 index 000000000..e5292e14c --- /dev/null +++ b/adapter/src/utils/usePWAUpdateState.js @@ -0,0 +1,54 @@ +import { useEffect, useState } from 'react' +import { useOfflineInterface } from '../components/OfflineInterfaceContext' + +export const usePWAUpdateState = () => { + const offlineInterface = useOfflineInterface() + const [updateAvailable, setUpdateAvailable] = useState(false) + const [clientsCount, setClientsCount] = useState(null) + + const onConfirmUpdate = () => { + offlineInterface.useNewSW() + } + const onCancelUpdate = () => { + setClientsCount(null) + } + + const confirmReload = () => { + offlineInterface + .getClientsInfo() + .then(({ clientsCount }) => { + if (clientsCount === 1) { + // Just one client; go ahead and reload + onConfirmUpdate() + } else { + // Multiple clients; warn about data loss before reloading + setClientsCount(clientsCount) + } + }) + .catch((reason) => { + // Didn't get clients info + console.warn(reason) + + // Go ahead with confirmation modal with `0` as clientsCount + setClientsCount(0) + }) + } + + useEffect(() => { + offlineInterface.checkForNewSW({ + onNewSW: () => { + setUpdateAvailable(true) + }, + }) + }, [offlineInterface]) + + const confirmationRequired = clientsCount !== null + return { + updateAvailable, + confirmReload, + confirmationRequired, + clientsCount, + onConfirmUpdate, + onCancelUpdate, + } +} diff --git a/cli/src/lib/shell/index.js b/cli/src/lib/shell/index.js index e25105474..f26a3dd07 100644 --- a/cli/src/lib/shell/index.js +++ b/cli/src/lib/shell/index.js @@ -3,39 +3,43 @@ const { getPWAEnvVars } = require('../pwa') const bootstrap = require('./bootstrap') const getEnv = require('./env') -module.exports = ({ config, paths }) => ({ - bootstrap: async (args = {}) => { - await bootstrap(paths, args) - }, - // link: async srcPath => { - // reporter.info('Linking app into appShell'); - // await fs.symlink(srcPath, paths.shellApp); - // }, - build: async () => { - await exec({ - cmd: 'yarn', - args: ['run', 'build'], - cwd: paths.shell, - env: getEnv({ name: config.title, ...getPWAEnvVars(config) }), - pipe: false, - }) - }, - start: async ({ port }) => { - await exec({ - cmd: 'yarn', - args: ['run', 'start'], - cwd: paths.shell, - env: getEnv({ name: config.title, port, ...getPWAEnvVars(config) }), - pipe: false, - }) - }, - test: async () => { - await exec({ - cmd: 'yarn', - args: ['run', 'test', '--', '--all'], - cwd: paths.shell, - env: getEnv({ name: config.title }), - pipe: true, - }) - }, -}) +module.exports = ({ config, paths }) => { + const baseEnvVars = { + name: config.title, + version: config.version, + } + + return { + bootstrap: async (args = {}) => { + await bootstrap(paths, args) + }, + + build: async () => { + await exec({ + cmd: 'yarn', + args: ['run', 'build'], + cwd: paths.shell, + env: getEnv({ ...baseEnvVars, ...getPWAEnvVars(config) }), + pipe: false, + }) + }, + start: async ({ port }) => { + await exec({ + cmd: 'yarn', + args: ['run', 'start'], + cwd: paths.shell, + env: getEnv({ ...baseEnvVars, port, ...getPWAEnvVars(config) }), + pipe: false, + }) + }, + test: async () => { + await exec({ + cmd: 'yarn', + args: ['run', 'test', '--', '--all'], + cwd: paths.shell, + env: getEnv({ ...baseEnvVars }), + pipe: true, + }) + }, + } +} diff --git a/package.json b/package.json index d4ead0ee9..54e449975 100644 --- a/package.json +++ b/package.json @@ -44,5 +44,6 @@ "name": "DHIS2 Application Platform", "description": "Unified application architecture and build pipeline to simplify and standardize application development within the DHIS2 ecosystem." } - } + }, + "dependencies": {} } diff --git a/pwa/src/index.js b/pwa/src/index.js index 5536fe9e2..67aa47475 100644 --- a/pwa/src/index.js +++ b/pwa/src/index.js @@ -3,4 +3,9 @@ export { OfflineInterface } from './offline-interface/offline-interface.js' export { checkForUpdates, checkForSWUpdateAndReload, + getRegistrationState, + REGISTRATION_STATE_UNREGISTERED, + REGISTRATION_STATE_WAITING, + REGISTRATION_STATE_ACTIVE, + REGISTRATION_STATE_FIRST_ACTIVATION, } from './lib/registration.js' diff --git a/pwa/src/lib/registration.js b/pwa/src/lib/registration.js index 4e9e43769..7ee9081d0 100644 --- a/pwa/src/lib/registration.js +++ b/pwa/src/lib/registration.js @@ -1,3 +1,33 @@ +export const REGISTRATION_STATE_UNREGISTERED = 'UNREGISTERED' +export const REGISTRATION_STATE_WAITING = 'WAITING' +export const REGISTRATION_STATE_FIRST_ACTIVATION = 'FIRST_ACTIVATION' +export const REGISTRATION_STATE_ACTIVE = 'ACTIVE' + +async function getRegistration() { + if (!('serviceWorker' in navigator)) { + return undefined + } + return await navigator.serviceWorker.getRegistration() +} + +// These states are technically not mutually-exclusive, +// but we only care about the "most relevant" state +export async function getRegistrationState() { + const registration = await getRegistration() + + if (!registration) { + return REGISTRATION_STATE_UNREGISTERED + } else if (registration.waiting) { + // An update is available + return REGISTRATION_STATE_WAITING + } else if (registration.active) { + if (navigator.serviceWorker.controller === null) { + return REGISTRATION_STATE_FIRST_ACTIVATION + } + return REGISTRATION_STATE_ACTIVE + } +} + export async function checkForUpdates({ onUpdate }) { if (!('serviceWorker' in navigator)) { return @@ -157,14 +187,6 @@ export function register(config) { } async function registerValidSW(swUrl /* config */) { - const reg = await navigator.serviceWorker.getRegistration() - if (reg?.active && navigator.serviceWorker.controller === null) { - // The page was hard-reloaded; service worker is disabled - // (navigator.serviceWorker.controller becomes null after a hard reload) - // Unregister before registering again to reenable service worker. - // Will likely cause another refresh due to .oncontrollerchange event - await unregister() - } navigator.serviceWorker.register(swUrl).catch((error) => { console.error('Error during service worker registration:', error) }) diff --git a/pwa/src/offline-interface/offline-interface.js b/pwa/src/offline-interface/offline-interface.js index a75e350bf..6fcfb3214 100644 --- a/pwa/src/offline-interface/offline-interface.js +++ b/pwa/src/offline-interface/offline-interface.js @@ -1,6 +1,11 @@ import EventEmitter from 'events' import { swMsgs } from '../lib/constants.js' -import { register, unregister, checkForUpdates } from '../lib/registration.js' +import { + register, + unregister, + checkForUpdates, + getRegistrationState, +} from '../lib/registration.js' import { openSectionsDB, SECTIONS_STORE } from '../lib/sections-db.js' /** Helper to simplify SW message sending */ @@ -64,6 +69,10 @@ export class OfflineInterface { checkForUpdates({ onUpdate: onNewSW }) } + async getRegistrationState() { + return await getRegistrationState() + } + /** * Requests clients info from the active service worker. * @returns {Promise} @@ -71,11 +80,13 @@ export class OfflineInterface { getClientsInfo() { return new Promise((resolve, reject) => { navigator.serviceWorker.getRegistration().then((registration) => { - if (!registration || !registration.active) { - reject('There is no active service worker') + const newestSW = registration?.waiting || registration?.active + if (!newestSW) { + resolve({ clientsCount: 0 }) + return } + // Send request message to newest SW - const newestSW = registration.waiting || registration.active newestSW.postMessage({ type: swMsgs.getClientsInfo }) // Resolve with payload received from SW `clientsInfo` message this.offlineEvents.once(swMsgs.clientsInfo, resolve) diff --git a/shell/package.json b/shell/package.json index 3961dd1e8..94ede4295 100644 --- a/shell/package.json +++ b/shell/package.json @@ -16,10 +16,10 @@ }, "dependencies": { "@dhis2/app-adapter": "10.0.1", - "@dhis2/app-runtime": "^3.2.3", + "@dhis2/app-runtime": "^3.5.0", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/pwa": "10.0.1", - "@dhis2/ui": "^8.0.0", + "@dhis2/ui": "^8.5.0", "classnames": "^2.2.6", "moment": "^2.29.1", "prop-types": "^15.7.2", diff --git a/shell/src/App.js b/shell/src/App.js index 37558d360..7674d6eca 100644 --- a/shell/src/App.js +++ b/shell/src/App.js @@ -11,6 +11,7 @@ const appConfig = { process.env.REACT_APP_DHIS2_BASE_URL || window.localStorage.DHIS2_BASE_URL, appName: process.env.REACT_APP_DHIS2_APP_NAME || '', + appVersion: process.env.REACT_APP_DHIS2_APP_VERSION || '', apiVersion: parseInt(process.env.REACT_APP_DHIS2_API_VERSION), pwaEnabled: process.env.REACT_APP_DHIS2_APP_PWA_ENABLED === 'true', } diff --git a/yarn.lock b/yarn.lock index f36d7b3df..2bea31309 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1327,598 +1327,600 @@ resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.0.1.tgz#b6b8d81780b9a9f6459f4bfe9226ac6aefaefe87" integrity sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA== -"@dhis2-ui/alert@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-8.4.2.tgz#8ea8d69f629d0460f581dd86a1ae732796018c6e" - integrity sha512-ZUCJG5JtoUQ2r3LqEThE6apa+rtYgVZD9is92hcpcN8usFEtHFoIUhjNrZhp8+us7CQMq/DRJV9L13ZiSwkaKg== +"@dhis2-ui/alert@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-8.5.0.tgz#65b260d8b37e141fa40b845160f0a16243a8e706" + integrity sha512-NJVCZU+H5ar2zl2cSCp7ei2DqLqpM29Xk/Z5h2R0Xi6DBPzrspjJnrjgLMoL8FC11jqg6eUTsBa06uJnlajfUQ== dependencies: - "@dhis2-ui/portal" "8.4.2" + "@dhis2-ui/portal" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/box@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-8.4.2.tgz#5cb26501f3f58bfa19eabce13488ec825822920c" - integrity sha512-5GXtGaNSoCCpVlD6sNXV2LWt1hDv/NVHXXPvjnxo4Ezdz/4TiGl8L4aEjjhHgmHsswSnBIfKDCS6DcOEH/+VTA== +"@dhis2-ui/box@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-8.5.0.tgz#16bb0875bff78a3ae4e13b56d9ece501e30ce25c" + integrity sha512-en7dHFi/lNxweV6/9WnfQVUvn16sadSWyuYT4mZXmewg5NtxNgeZu7VH53RRXLAyOA8004rrv+EZpOkEoxg3aw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/button@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-8.4.2.tgz#91a95827b501d127c6a894d595bbe66c3cebf781" - integrity sha512-BfzCjatJgbvVLY5JUScvSlaKXycn3oZUWE3xOAsAEAmuje0rDlDQpDpWwtZ1wM2b9PlpPIjElsodbJkJxXCdjQ== +"@dhis2-ui/button@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-8.5.0.tgz#5e4ce32e12b6fddde36c56ed74b54bcc7bb86bb0" + integrity sha512-kbpcqY1guzEqhJ10uR0FQWmruSDHJUIGxaNUS8pwTEDkFjHZ+2NwYX0H9CzF67/VmnWVoq5vH/bfNTL5LxhsSQ== dependencies: - "@dhis2-ui/layer" "8.4.2" - "@dhis2-ui/loader" "8.4.2" - "@dhis2-ui/popper" "8.4.2" + "@dhis2-ui/layer" "8.5.0" + "@dhis2-ui/loader" "8.5.0" + "@dhis2-ui/popper" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/card@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-8.4.2.tgz#8f9d50b084a983f88475c5e29e983b53cb213d11" - integrity sha512-HfjpMwcEQvNf3VU2qax8ClNxcFBhcnbt0YZ2xctX/DKR6ZqmfSWvokPKTdIm5q+Ca9PEZFwdM7SdX1cUbTJN3Q== +"@dhis2-ui/card@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-8.5.0.tgz#472903a4a8f95e3c939bf5cb443d4443a84275bd" + integrity sha512-N4ZbYbxT1+WSysDkpfT7ALyXe+Ae7tmJZU4Ipq5qaWUfFKQOIvD9csm+3RkQDBCzoa4eCP5qMi/4jNkAJdvwNw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/center@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-8.4.2.tgz#64b5065119a239c61a068c4660e81f3c067e6e75" - integrity sha512-Ndt2T5yazETC3u4OQpjozdfyWGPQOX8NZ1fevzX1sHtrUlVXRXNWnXcsPo+f+Vde3rY6/SM4DifonADatufC6Q== +"@dhis2-ui/center@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-8.5.0.tgz#39e7604fdcde0988c4870b6df3c3a252e313991f" + integrity sha512-i/vzMQQiEgx2a8r8waG0fZhf6KMgH+Wxds8DbwQqOEdKw2TgvuXVl5edMQtvskdTABzk8RCJYdRuYMnJK+pIow== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/checkbox@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-8.4.2.tgz#03b500f5bd6dfdab7d07c86c6a7bf9e5d14546c4" - integrity sha512-rmyEu/Uqny8AZvr7Q5zB1ifbnSERXCCeJ0gdkASU5K+nExgtogk2xhhgse5dJl9AjNG9DAbljtrcFpZDmSXAdQ== +"@dhis2-ui/checkbox@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-8.5.0.tgz#d6b66da407d423a672b6d900c5fb1d217b74ab64" + integrity sha512-UdZ6mDJgrVFN6V07UO+hbN/wCr6NWCsEQTfByqOQsioB1Xv8cZapYyreRH+rwePbyFvAeFXjTLbEpa2pMjTgOg== dependencies: - "@dhis2-ui/field" "8.4.2" - "@dhis2-ui/required" "8.4.2" + "@dhis2-ui/field" "8.5.0" + "@dhis2-ui/required" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/chip@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-8.4.2.tgz#468e25301747e555f388d4133211c6859ce1359b" - integrity sha512-GTEMd79mFxMGyA2iRR6u7PmM1PfApeKMNTC2Tm8t7ReDHCGEGkt16Y41nFX4VCEBvdmrr3wkIzDIZMVspYiSZA== +"@dhis2-ui/chip@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-8.5.0.tgz#20579b474d995ea0d5033545c30b76c25dbe6415" + integrity sha512-sPRjmUvIbjE6czhm/x5lloKoYj5kzMce9yJxFAHQnlvNv8b/CNWUQw0Wo4npHXLQ5YouKmh4BIY0BxWm59fAnw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/cover@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-8.4.2.tgz#dabafca80d18f99ac773fa943e1dacea3193a69c" - integrity sha512-CUiKBn2hHAruqhaxBb4MeUAM4VZe1so3zmKGQdA/dmhiNjEjO3aY5Mrj4Ihzct2//VplVAKF4aP1mQU8o1W1Ow== +"@dhis2-ui/cover@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-8.5.0.tgz#9aefc3ef149a724c1fbc2a7d2b8acfa6d458c031" + integrity sha512-We0NOa9F3Hw/abI+QEvZA3QihX8ezttqILOFRtsJsV+B+EuGu8fx9EkEMiPwJ7yJU4uxnUQ9KA5X9tdR7J5CFw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/css@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-8.4.2.tgz#1a4d46a1c29a82513242f8fdbf6c6f7d6e9f12fa" - integrity sha512-VaB/ymmfTjgQTky+hMCaBlz41Mx8GkWSDAmJpvVh+4ev7phVadJTMJ1k1hVoUNN/wtPXlbKxniMTVwFICX4rJA== +"@dhis2-ui/css@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-8.5.0.tgz#420fa97ebcc5ac2f44c9d7e743268da57cfa2d36" + integrity sha512-kfcyY+sJXa+HnOvjeuO1JkQ6d85qt+ZYQBo+hrig5MrMMH3jt2NNthW/YqG8pH+0IAEVXW0bG08U8hopT8Xfxw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/divider@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-8.4.2.tgz#a7b9356aaf07c021aa02767919eba56934a1a0da" - integrity sha512-rPnup+NDNfwmlnddbA9NIx3XqhxOa3/sqhPEL0k0OLanS010BgIe9mvF9Y5oQekp0KDl7r0+81zbW8j9+1c6eA== +"@dhis2-ui/divider@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-8.5.0.tgz#d879d5e5efa9b25736a282076239f9671653c579" + integrity sha512-gLb69bi078bHYVrYLL66JCZUPDGifr6XZc0TZDmFznFGgbNzkgQwdjTVErcFA26l1AXkPH0uEKdhFXScjBICOQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/field@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-8.4.2.tgz#60fafaa2999f2b6efd44257efa22937c2fd2d7f9" - integrity sha512-7a91lUrwDRhrZ2/5fKPGOL0BNzLQL8EI2vqYf7b/BeLF94OPgY7kgzNf+WRABXIDTi21AoNni/7DJ2RQ8W2bpw== +"@dhis2-ui/field@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-8.5.0.tgz#34bd028d87ed4510e128591263187ce5081f83b4" + integrity sha512-M70odJ6JhHfgM3953Fv0eBxocwf+RzkfPyst9+YFUHXl4PLugDwGlQ6kWEj6d3GfphmHV6ea27HvJXf8VCOLGg== dependencies: - "@dhis2-ui/box" "8.4.2" - "@dhis2-ui/help" "8.4.2" - "@dhis2-ui/label" "8.4.2" + "@dhis2-ui/box" "8.5.0" + "@dhis2-ui/help" "8.5.0" + "@dhis2-ui/label" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/file-input@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-8.4.2.tgz#88b19c979d79ac7db4250ed5c7cf6e7bc2463c2b" - integrity sha512-ACHTRKptIzbxQf2Jzrs3PyzE4LWxGjLYA41lXiFNlbYDtw/naaGuzMPalexgPcmQ5tDCi0qD3EHUZO+Vpde2LA== - dependencies: - "@dhis2-ui/button" "8.4.2" - "@dhis2-ui/field" "8.4.2" - "@dhis2-ui/label" "8.4.2" - "@dhis2-ui/loader" "8.4.2" - "@dhis2-ui/status-icon" "8.4.2" +"@dhis2-ui/file-input@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-8.5.0.tgz#1cec48f2ab668e6a82f42fcf0a6659d2f2ddf318" + integrity sha512-KXtRkEHRFWjKoIKIIEnz953QxIywGf4ZTNRIbeCqPQXMtC0HEqTVHgnO08qFv8PCmC7wtStTXuDxjyz20iOaSA== + dependencies: + "@dhis2-ui/button" "8.5.0" + "@dhis2-ui/field" "8.5.0" + "@dhis2-ui/label" "8.5.0" + "@dhis2-ui/loader" "8.5.0" + "@dhis2-ui/status-icon" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/header-bar@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-8.4.2.tgz#6b5ac68b2f5be35282a18369786edf819617752d" - integrity sha512-ABNe+LjjPWdA3gSIRz3SbsIq6EA1LNpVb01VZCQ16hDpkCXXPYeLia04snCRbQat5UTdGapnSrDf5dzW99qYCg== - dependencies: - "@dhis2-ui/box" "8.4.2" - "@dhis2-ui/card" "8.4.2" - "@dhis2-ui/center" "8.4.2" - "@dhis2-ui/divider" "8.4.2" - "@dhis2-ui/input" "8.4.2" - "@dhis2-ui/layer" "8.4.2" - "@dhis2-ui/loader" "8.4.2" - "@dhis2-ui/logo" "8.4.2" - "@dhis2-ui/menu" "8.4.2" - "@dhis2-ui/user-avatar" "8.4.2" +"@dhis2-ui/header-bar@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-8.5.0.tgz#3ec53953740b60783e59e3e517492b41b80dd5c9" + integrity sha512-P826ZAPvt/+zvB7sswHuZGH5dVv6OIIsTCusC6Ga6YTj9gJqdxfsDKEaV7Xu+IL4wvEgQX9teT6TbiZwFZF+vw== + dependencies: + "@dhis2-ui/box" "8.5.0" + "@dhis2-ui/button" "8.5.0" + "@dhis2-ui/card" "8.5.0" + "@dhis2-ui/center" "8.5.0" + "@dhis2-ui/divider" "8.5.0" + "@dhis2-ui/input" "8.5.0" + "@dhis2-ui/layer" "8.5.0" + "@dhis2-ui/loader" "8.5.0" + "@dhis2-ui/logo" "8.5.0" + "@dhis2-ui/menu" "8.5.0" + "@dhis2-ui/modal" "8.5.0" + "@dhis2-ui/user-avatar" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" moment "^2.29.1" prop-types "^15.7.2" -"@dhis2-ui/help@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-8.4.2.tgz#919a781659d885065565c811a202417b5d67058e" - integrity sha512-cLXiv6tPGLQDZ0ITFcJRMkqknjbgbR/C7zyGVGYlv7l/4X4TlHxh0tO6Wt/PmTykgcevzimoYRjzUAwG6haOzA== +"@dhis2-ui/help@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-8.5.0.tgz#94fdd7898ed8f5daf527c6564bfcfcc0bc603a4d" + integrity sha512-GhZlFlvXFRWA2FHhcS6Wpn7QA055K3k0W0cmDE+VneMOkApfK3iD/rT0KYhtq22ksoAGg22wsSVy/Xepry1eNQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/input@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-8.4.2.tgz#10a5e7e544eafc884c2f1a944a2ea46c010b14e6" - integrity sha512-NOLc0py2WMuKiZYuL9V3royYpHlBQu/H0JHxQs5pKLH9GXjCnCITx3lsoudfIVO7IvC0b7b7CcksNqpXVaG+aA== - dependencies: - "@dhis2-ui/box" "8.4.2" - "@dhis2-ui/field" "8.4.2" - "@dhis2-ui/input" "8.4.2" - "@dhis2-ui/loader" "8.4.2" - "@dhis2-ui/status-icon" "8.4.2" +"@dhis2-ui/input@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-8.5.0.tgz#e431d9ed3e81610a712885ca3489d24445f4a7d6" + integrity sha512-NKEHHCaoHDqMU7UcksRuxlbBO9xhWVbPwfvOCX2R8x0uqIxEygAq5CaFMAVKJQ9kaJcnenxV1QfGjCrRWBnewA== + dependencies: + "@dhis2-ui/box" "8.5.0" + "@dhis2-ui/field" "8.5.0" + "@dhis2-ui/input" "8.5.0" + "@dhis2-ui/loader" "8.5.0" + "@dhis2-ui/status-icon" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/intersection-detector@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-8.4.2.tgz#9e04007f9c98f63164160a0c363f65923b07b6c8" - integrity sha512-URDTvma3C0xeC/TVMw/04x+y1F1Z9/A4dE4s4llPCva79b9n9VU0reIXoHUGj1NQylow+ZXR5S8CgP6DF5FfxA== +"@dhis2-ui/intersection-detector@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-8.5.0.tgz#140428454b2509e48537fbeaf35b3751c58e1093" + integrity sha512-IYuMvPZy4PA1SDnyPunRq0OkmRyjVXXC03evEAwxxpPlpS999m60vZRGizBGWIf/3FvkAnoYXgDCCB9hdoHX+Q== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/label@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-8.4.2.tgz#2f5963a7df2094b23a95488b4f9b43d2f611c702" - integrity sha512-bjT3F2DMz6xozHNaReMwY1w5O6xcYPDRnFk+EvFOsqeHg54SGdV8hbNyG4DGqBknXIGWQdUJlc2RJL/6vq5KBw== +"@dhis2-ui/label@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-8.5.0.tgz#7978541be46d3441da735bca116c4a6772447a26" + integrity sha512-+RecGUw86R3B2UfiacNHVmeWuDcBdaefaE0DbucozYdF1RlWjGgMBccp6b0kBoTC7GkTH15nYT1wxGZXun70wQ== dependencies: - "@dhis2-ui/required" "8.4.2" + "@dhis2-ui/required" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/layer@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-8.4.2.tgz#6817730ebe6f0959fcb061d37b39f0e1dc146f35" - integrity sha512-UlnEcCEUei8yVn34LB8cUVrUwkvJDQ9G91fgrBPwiwGat5f7YPf4XsJwPW5r0RIlB5Rw+mrc2u1FEO2HAQFPMQ== +"@dhis2-ui/layer@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-8.5.0.tgz#7c7670a75c83587754cfbf22069384710e58ea33" + integrity sha512-uX49fq7mDl6WiaPV/Ve614TL2zTuA/crYJKlRL90l7gl4kf9BNYWfV1HC7LRXDLftMaicfe+F+Of9ScEKxX1gg== dependencies: - "@dhis2-ui/portal" "8.4.2" + "@dhis2-ui/portal" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/legend@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-8.4.2.tgz#e1353805d56ebd489e16b81e04f479a7b6cf9409" - integrity sha512-/Egdx9o176awXhbsx0887geKkwN3reQxkd/UY7Kix18Zvhl4iIQF2tJ99q0BB5q9gc4pK8GTT0k0TtFu2numxw== +"@dhis2-ui/legend@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-8.5.0.tgz#0f5a55bb9aea1905aeb161651ae0c5552504616e" + integrity sha512-nrqcuqgiFemWExajuFSRSwpDghp95oqwrRDNP5vC+9G+W5TwNxrBSmBkW7vTndLm/mPTbWT7fc5fmKAlaHdJug== dependencies: - "@dhis2-ui/required" "8.4.2" + "@dhis2-ui/required" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/loader@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-8.4.2.tgz#cbe8f1b0594e382a05a3a242f05d788e05fdb955" - integrity sha512-0AoUWv27xrPcs8g/tuRCV1S/PWhlKRDt+jsoKdSY4nwMwuTzCB+aMmLxYWtJIiEpWY1quUY3qjB0Vfy16jwh/g== +"@dhis2-ui/loader@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-8.5.0.tgz#a170e5e24f5d00076d2b8df572fcc9108fc45ba0" + integrity sha512-hIyCEIvP/8spYKRklmW3oMtVk2EsFeyn4R3jv3LPEG+GKtmMGoWgzF3LyrlsdG0mPcvXwvl3fBFXwwIrIwdgag== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/logo@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-8.4.2.tgz#88731881a586d827781ef287f8af1f2ee36e1693" - integrity sha512-YZcQVt9wyjcnK1/b8STvO1yLbszwGn9iOG5YEaARYT1+KZHRpLH8/f4VO1CGLri79ho2Dm9YXu1feUJD5o6kpQ== +"@dhis2-ui/logo@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-8.5.0.tgz#e3335efaa2eded66a59d296d727f63a400c4d259" + integrity sha512-L5znE11lzaLA34L/Y3U/CqWBadzVOwf3F+78DQV4L14vS4NCq8dtyQwcsKktEuSucYzbikTGrXHRhItg1WVJLg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/menu@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-8.4.2.tgz#72f5e14531775272b6bf7549f76bd9cba6d85f53" - integrity sha512-r/hWZFnaQEkySG5RzbzX0Htf6fQ1PAeU/ZUEwQWvcf5+X/ZJyaOTWCUH/UApK7jLUf2m5J28ztt8/1VtD/dB6g== - dependencies: - "@dhis2-ui/card" "8.4.2" - "@dhis2-ui/divider" "8.4.2" - "@dhis2-ui/layer" "8.4.2" - "@dhis2-ui/popper" "8.4.2" - "@dhis2-ui/portal" "8.4.2" +"@dhis2-ui/menu@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-8.5.0.tgz#d29a06e6ef487f8641b176553d9044a96af517da" + integrity sha512-hovC4eVM8UfioxA1/DbYLCMwFTdrEZDEgB8kpxYW8DdtAl7R9PybfCq1yWTjJxgcJb6pWT8DXyDS+2L/YYYmMg== + dependencies: + "@dhis2-ui/card" "8.5.0" + "@dhis2-ui/divider" "8.5.0" + "@dhis2-ui/layer" "8.5.0" + "@dhis2-ui/popper" "8.5.0" + "@dhis2-ui/portal" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/modal@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-8.4.2.tgz#ad9c242c73c68901be3b16fd447568d838f77d3f" - integrity sha512-UcP7KRXIGP/4N2R7g/giMTn9LHiikXR9RFC33AIasePszAeFnsZ2lic9qTWZIxw539RDjIZlQlKT/G4/OtwT1Q== +"@dhis2-ui/modal@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-8.5.0.tgz#5ef2feb2012090afd3c25c675d791c8499928061" + integrity sha512-IiQzOeuh3CY5r7/hSFDUaNhlfJJ5C3eG9IK/TkATzembdnbEsY91840W4AEDluBPM50cdo5v0KWRwZnnkzY7Uw== dependencies: - "@dhis2-ui/card" "8.4.2" - "@dhis2-ui/center" "8.4.2" - "@dhis2-ui/layer" "8.4.2" - "@dhis2-ui/portal" "8.4.2" + "@dhis2-ui/card" "8.5.0" + "@dhis2-ui/center" "8.5.0" + "@dhis2-ui/layer" "8.5.0" + "@dhis2-ui/portal" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/node@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-8.4.2.tgz#496c9ba30723a49c1531fb8fbc2262468b8441f4" - integrity sha512-zwBG0i6BqVMq9ksAcflDGcpbztfdxtlYsnKUZ4HCDrOJ80n6Xx4z4iYM/bpGxHPkckeUanWj5kQBIFllcUOwug== +"@dhis2-ui/node@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-8.5.0.tgz#997496197d10707baaf8659a2f05975c53a4084a" + integrity sha512-pAy/1lMyXILBLcMV1KB1Me41CTAsxp9sxZc8cfpB6lvSz/3WBu3Ka6iC90uNso2oslbHPyHqD5z2dPK2KE9h8Q== dependencies: - "@dhis2-ui/loader" "8.4.2" + "@dhis2-ui/loader" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/notice-box@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-8.4.2.tgz#c906e7e8c180a48ccdef0299b84b067ec5cf661f" - integrity sha512-U5agYwMKzZVnaXqwK3jd+sSHpQ6Esyvf/Qfc2PWCJhT4eJNOWEgVVc3n9OTOerUeAqWNJG/xUHqaJEoY249Nng== +"@dhis2-ui/notice-box@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-8.5.0.tgz#2c4fb80f3548c63a7ae4c21bae9d8377ffacfdea" + integrity sha512-qraV9xbbtU/nKJVvOGiwjpxu5hyrWw2kl7cwkAsozVe1SvPDPWBjAc72w/wkT1/i4nR2FFsyq8BC8hL0rZiQ8g== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/organisation-unit-tree@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-8.4.2.tgz#8bbab7128dc4da06156d534d097ed7f05d6a27df" - integrity sha512-47O1Wa02r733cM/glK7NCVgaG03DrSmrwtXYAbVnaLqfa/aB0S3Sdz5/lK5+mwFis6Xnnmiapzbau5e4AsZSmw== +"@dhis2-ui/organisation-unit-tree@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-8.5.0.tgz#95350642ba5919c9df7d5c09f6b7e28430a4ef14" + integrity sha512-QFAmuvfoo06OmZoYnUj7SYWFJDJh/vu0IB2FeZAtf7mvdXY8BgiRRdJuRlBm4RyILl8by7No3ZjUxD5XnS231A== dependencies: - "@dhis2-ui/checkbox" "8.4.2" - "@dhis2-ui/loader" "8.4.2" - "@dhis2-ui/node" "8.4.2" + "@dhis2-ui/checkbox" "8.5.0" + "@dhis2-ui/loader" "8.5.0" + "@dhis2-ui/node" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/pagination@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-8.4.2.tgz#5eb21c37620f214e1eb98b2fa7d8e281d6a6facf" - integrity sha512-0jKut5FrJuUiLtlAIo6HEvm7GGgIlQSWd+KaVjx859KVZ/mFQS4M1AqIF4uogNAL8FPlpsct2Ms++2X2xdW4Bg== +"@dhis2-ui/pagination@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-8.5.0.tgz#3561b665f3745186fb8a75737d31cb4a0cb69737" + integrity sha512-evlqDNt98Ge5HNaOqbrOB9a4yiKob8QeBkwS1LruLNN+L3kIpaSE1I62Uino+pPqSxwjE3zxawR5Ph2gdD0N0Q== dependencies: - "@dhis2-ui/button" "8.4.2" - "@dhis2-ui/select" "8.4.2" + "@dhis2-ui/button" "8.5.0" + "@dhis2-ui/select" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popover@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-8.4.2.tgz#eb5cf6f3cccef6cecc4036021f1ed1ee53fea2b4" - integrity sha512-3fvJyW3SYseX+ty8BXEkXdKWo8WtIWfFqt7p81XrHqTF3FuJvW81tVjWHAf2NwRhi9NWHcf86/KCnX7xai0XkA== +"@dhis2-ui/popover@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-8.5.0.tgz#1dc03b85f3d7d0ab36668b8e6e348815b25b64c6" + integrity sha512-29HWLWx8ovabTpuc19GBlZ7bM8v9EKnSFOaAF+KUznIsqYrgfgbDeBg10n/6n1iUeIr+DOmGA/Nm56gMSaZ6tA== dependencies: - "@dhis2-ui/layer" "8.4.2" - "@dhis2-ui/popper" "8.4.2" + "@dhis2-ui/layer" "8.5.0" + "@dhis2-ui/popper" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popper@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-8.4.2.tgz#ad351c321b901c5b8e69aa4d233bc8eee2957f34" - integrity sha512-RE5cK8h4mr1eiHu14+bg7dxQd7xv6RDvKa9IhkomEBoblGjSgRLnJrgQA8EKiFpgtic9UpH4v5T4VdTQZ/f+zw== +"@dhis2-ui/popper@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-8.5.0.tgz#0ae69c2c8a4663b725bf51d4b95f0ef6049d4632" + integrity sha512-qyY8hHE4t3ZUt1IEGSZQ82DALRwqXOfAiWQQTe50itjf0a2EX1TMUGaoJrOnRWz63QBKu+3o7GM59FJbrlYNkA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" "@popperjs/core" "^2.10.1" classnames "^2.3.1" prop-types "^15.7.2" react-popper "^2.2.5" resize-observer-polyfill "^1.5.1" -"@dhis2-ui/portal@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-8.4.2.tgz#92285695b2720abee86fc6d16dc49b61c40fdf8d" - integrity sha512-+H/lahUSV70F5VVsZnlfIOLrP0e6UF8kKzSZUzSsFgwJ8WIBg8nuR89YqEryXcDXLZF8OyaRUKTyCa8aZRMjNw== +"@dhis2-ui/portal@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-8.5.0.tgz#51a0248a665b55c81184c72f26c31e0e5d45c303" + integrity sha512-pevkVaB4BuqH731kTbxVTVWCC4sRA9VpO5n/VCyXt6Nsr/6kggUszyc7igc+Cuy3fA2AUfWbRNE2YRwu6Dheyg== dependencies: classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/radio@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-8.4.2.tgz#3f75b0ce48fd9eac710aa30d0900f6d8f10cc250" - integrity sha512-Uw+YG/MyqIrLlh80xym7z97ZNEEm/WWv0zwF0h5JYhNElm6HEn71qCvCOK2AFHHz+laJ5ISVDWffKIo3/4d2yw== +"@dhis2-ui/radio@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-8.5.0.tgz#68735ef20aceb3f07c91e10b6220abd8f637ecbc" + integrity sha512-7Pc/ulaRcC61Vzcdf+G3txBhzdQFAdZBEfq4Kh+5rSgeJwvGmvp6ov2INzgObVB8UHW3gXGYs3ffUh56jU499g== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/required@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-8.4.2.tgz#a2e3638c6b533b640c1a8957c1c4e39796b80313" - integrity sha512-ch2kXVQjFMh++wSY2vGoX5r/FgMn9668FzimfC18wMJ2wba1lovnB8Rm7WwC49YU593bc8ZflQRVE7781iVDSw== +"@dhis2-ui/required@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-8.5.0.tgz#e04889d433bfe4224892cbe41db5db511e274d05" + integrity sha512-XtVmBQgxC2Miw6X6lnU/SM6Ck6qf+lW4v7nWBcvkSzjp79NanhIEKH6XP2EqWHPKCJCQ0iBYAFj30jXIX0Jerg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/segmented-control@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-8.4.2.tgz#2f11c9d185924d400bfcff2f4caeb4cbf205152a" - integrity sha512-3obtV0usJd9d6o6vWvRcALZhLzpadmv9pjGcrnk+Jblm+en6di35GjuYm2aXTIuNhG0IDRs4ztRRUk3vRSwVEQ== +"@dhis2-ui/segmented-control@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-8.5.0.tgz#8c8a70e5324cc617de6de9f25666d25fbc3c2d83" + integrity sha512-2LiAiPGslJwxfx7Pje+EhW7JS1p9Y1bUPR0ARpWbB/a5KYTF0mj/xYGyPxATlFRSaQvFPjezu6s0kJI1DJNLxg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/select@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-8.4.2.tgz#ee6142ad7f312e7fb0e599673f2c590f977689b8" - integrity sha512-xMESnKU+6CovVFHpi5wu/oMm4IZaiEaDBQlJsCgBq0RJkLLAn4zDvjB7TjvG5W4dRfKvj9j+BZZNLzvWjbdSiw== - dependencies: - "@dhis2-ui/box" "8.4.2" - "@dhis2-ui/button" "8.4.2" - "@dhis2-ui/card" "8.4.2" - "@dhis2-ui/checkbox" "8.4.2" - "@dhis2-ui/chip" "8.4.2" - "@dhis2-ui/field" "8.4.2" - "@dhis2-ui/input" "8.4.2" - "@dhis2-ui/layer" "8.4.2" - "@dhis2-ui/loader" "8.4.2" - "@dhis2-ui/popper" "8.4.2" - "@dhis2-ui/status-icon" "8.4.2" +"@dhis2-ui/select@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-8.5.0.tgz#0cc2fac1fb221a32eae8368bed6c1d2fe33fd9e8" + integrity sha512-I7NaYZvsAHVEYHvfqVWfHiCMCZo0TVLDQA/RFX/2HP/6YgNd2yKTKFDZQpUAEzwfAJsqMAuWkCo3HICboQ+2eg== + dependencies: + "@dhis2-ui/box" "8.5.0" + "@dhis2-ui/button" "8.5.0" + "@dhis2-ui/card" "8.5.0" + "@dhis2-ui/checkbox" "8.5.0" + "@dhis2-ui/chip" "8.5.0" + "@dhis2-ui/field" "8.5.0" + "@dhis2-ui/input" "8.5.0" + "@dhis2-ui/layer" "8.5.0" + "@dhis2-ui/loader" "8.5.0" + "@dhis2-ui/popper" "8.5.0" + "@dhis2-ui/status-icon" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/selector-bar@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-8.4.2.tgz#4bfeb473f5508a6b089f0eef190fd32ff1ac571f" - integrity sha512-t4UC9vqNBOaJmykyOAl1asQoXMka9rwR1l+2+FAP4xOLppZHtNRyKqSYvov1YdXC6ImJFklIcr5tvefAb4qaUQ== - dependencies: - "@dhis2-ui/button" "8.4.2" - "@dhis2-ui/card" "8.4.2" - "@dhis2-ui/layer" "8.4.2" - "@dhis2-ui/popper" "8.4.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" +"@dhis2-ui/selector-bar@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-8.5.0.tgz#fa9df962e387d997293e952920ee16597264eac3" + integrity sha512-5UZ3hB1d4shnxi6IVrn4zHuQHHjnX2shXTCdxBUtp58Ti2kK9XS6sl1GBWeESLrYB2BOfiDQTGX0ykrLCN4eIA== + dependencies: + "@dhis2-ui/button" "8.5.0" + "@dhis2-ui/card" "8.5.0" + "@dhis2-ui/layer" "8.5.0" + "@dhis2-ui/popper" "8.5.0" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" "@testing-library/react" "^12.1.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/sharing-dialog@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-8.4.2.tgz#4457aa7c616d8d8dacb8f5de5a4ba4de036f8936" - integrity sha512-ovrUKtPRjVUexGahsVdPcYLp0ms8IZVajDl60fP3IIHEWD0Cn/wYYLGcm+Sron+6oTkYa2KtAfnhs4QhHEmHVw== - dependencies: - "@dhis2-ui/box" "8.4.2" - "@dhis2-ui/button" "8.4.2" - "@dhis2-ui/card" "8.4.2" - "@dhis2-ui/divider" "8.4.2" - "@dhis2-ui/input" "8.4.2" - "@dhis2-ui/layer" "8.4.2" - "@dhis2-ui/menu" "8.4.2" - "@dhis2-ui/modal" "8.4.2" - "@dhis2-ui/notice-box" "8.4.2" - "@dhis2-ui/popper" "8.4.2" - "@dhis2-ui/select" "8.4.2" - "@dhis2-ui/tab" "8.4.2" - "@dhis2-ui/tooltip" "8.4.2" - "@dhis2-ui/user-avatar" "8.4.2" +"@dhis2-ui/sharing-dialog@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-8.5.0.tgz#d4367605965e957625a411ab45304a977083f942" + integrity sha512-NtnQo1bKDhKgNzUVKIYwwzEkNB9LTuuyS5XKMHqegrHS5hclSpk7c1muojGaQWyWzOH+P3gUu4t/9hntc14XDw== + dependencies: + "@dhis2-ui/box" "8.5.0" + "@dhis2-ui/button" "8.5.0" + "@dhis2-ui/card" "8.5.0" + "@dhis2-ui/divider" "8.5.0" + "@dhis2-ui/input" "8.5.0" + "@dhis2-ui/layer" "8.5.0" + "@dhis2-ui/menu" "8.5.0" + "@dhis2-ui/modal" "8.5.0" + "@dhis2-ui/notice-box" "8.5.0" + "@dhis2-ui/popper" "8.5.0" + "@dhis2-ui/select" "8.5.0" + "@dhis2-ui/tab" "8.5.0" + "@dhis2-ui/tooltip" "8.5.0" + "@dhis2-ui/user-avatar" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" "@react-hook/size" "^2.1.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/status-icon@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-8.4.2.tgz#2226610a435c42bf092d062689fd9dd9fb52cd1a" - integrity sha512-0Xs9lgeNTmRD2decWWEp6yN6vWOvXzz4OVwZilPlALGRgHBKetcxmXKxrZXLtiNoyV75WvulqVRWPeUuLf8aMA== +"@dhis2-ui/status-icon@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-8.5.0.tgz#85c018e36449adfd2ccc32fc22fa502581ff80a4" + integrity sha512-XV4QsZg+W1LEnOY0jn0KEA7HrjgaLlO4XWqUkWFHa3eqkVl7jOkVgfc+AehW73Ocai9yROef42x9AfkY2vim4A== dependencies: - "@dhis2-ui/loader" "8.4.2" + "@dhis2-ui/loader" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/switch@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-8.4.2.tgz#45aeac382b2df38b1ec4beda35ef50fbff675701" - integrity sha512-v4p1dAFA/2WxDkTTAug0K5V3QDnwvK8OCoDuPvhMZrYLiaPJXQDzGwUpm0/Bic3Sbt6WRwo7YhdDiaaiDeLIHg== +"@dhis2-ui/switch@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-8.5.0.tgz#c2f2b3fa23306d435b35b6a7d539756c4622c0ed" + integrity sha512-bt9LBsuocL15UzLx6npC1xKxy55HCWBUYwEa6ievHpXGIGoYi2IbnwduQpeW7EeVCC10Cc5JvNYWTFZVNjyU4w== dependencies: - "@dhis2-ui/field" "8.4.2" - "@dhis2-ui/required" "8.4.2" + "@dhis2-ui/field" "8.5.0" + "@dhis2-ui/required" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tab@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-8.4.2.tgz#eb341f9a2b69776caf50bb76ba1e4c8b86f76ed7" - integrity sha512-yGk3ZqdC1mCyV3SybrIxXaGAHmUD0NHSpIi+PmX5TiA0HDHCmyKMOQtwvoE4ubZGAeK8Ex7qGRieVpq0NB8M8g== +"@dhis2-ui/tab@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-8.5.0.tgz#905e02326110a894faefcada43c0af9fde799fd6" + integrity sha512-nxiOsSj9KGPjUId8RNhPFW2j8Imnq7JU6hVoVtbnnbLM6CQPosOzlGylQ5TBDIKee96QnxunF0sGplNPkDMMJg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/table@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-8.4.2.tgz#0a354afc5aaa5860f4d56b7618ce0d3e2ed64a59" - integrity sha512-IpmgpeCtS7UP17H9OxaNKIMWcmZxz9JZwO4T2TpBNCrILIOf+uabgX4hw2mt9R55pjNg6BT3FbnWwNKvjyIorg== +"@dhis2-ui/table@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-8.5.0.tgz#5ec7a31cf849eac9e429af14a11d84535c0be7c5" + integrity sha512-ZcMdUW9Mq1+AU4y9QdapLlgtF7lYKwifpdCmXpdhXSpsEpjbyWU7isn9kz6KRexwKx9meIVTyYSvZlgp5uyF1g== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tag@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-8.4.2.tgz#481d1363ff59996616e5c0c3a97f5adb1d50c205" - integrity sha512-expWrwW4ZWp0yJLnGSzUXGlbtiJbDFPu+gnc2cUmlD+8rdYVYTS8yTHc4VyLAe1+xMBDxGsj5bpIv68L6bMt7A== +"@dhis2-ui/tag@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-8.5.0.tgz#3b5749fac352dbb5998c9ac9b0c49c0ef34f1e1b" + integrity sha512-hO451OF4ipq1SaNNFl7M5H3FRmrUi5Y/IhiER+CfW0h/0D7zegUZjBJDpWICMy390CawXI/PtldEG5fMth83Jw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/text-area@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-8.4.2.tgz#957b9030f845d4c7dba30810a96948ae2a47c7e7" - integrity sha512-Est68WKeFU1mKsgQvVH6ae5SmsAYsRBnly18l4b/RJNw3zaD0S8d0GNR7gO0zOITRrJYddiYqwAMgephk27B7Q== +"@dhis2-ui/text-area@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-8.5.0.tgz#5906eba63cf67b166ed98b36148cd6acdd4f9632" + integrity sha512-60gKXPpv35IPqq+R1SyjDUkKuMJTbZJQEzprzF1V02YreDbpSXRag/8iVkpffF8GryJlSIAMun9hsiygkqwEkA== dependencies: - "@dhis2-ui/box" "8.4.2" - "@dhis2-ui/field" "8.4.2" - "@dhis2-ui/loader" "8.4.2" - "@dhis2-ui/status-icon" "8.4.2" + "@dhis2-ui/box" "8.5.0" + "@dhis2-ui/field" "8.5.0" + "@dhis2-ui/loader" "8.5.0" + "@dhis2-ui/status-icon" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-icons" "8.4.2" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-icons" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tooltip@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-8.4.2.tgz#a2c49bbcf260722e6f15dd8fab1095f6800c79b9" - integrity sha512-MVGNq5aM3lf8DjzvZHTmtfITwDMf9PqsAJt5ccIvkKtta/adGopinBEU0f/tN7un7Ei/YenKzE2t01L06OkkmA== +"@dhis2-ui/tooltip@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-8.5.0.tgz#245af54e40021d476a61b8c08ab6a63c21775f51" + integrity sha512-+AAJCPyZUq7UciDiaIiYEQloQVeGwZ0zCYCWX9vC+O+nkV9gaM/tMkkqHHkDwR51KBmxOUZLqR82/X2wU+UNJQ== dependencies: - "@dhis2-ui/popper" "8.4.2" - "@dhis2-ui/portal" "8.4.2" + "@dhis2-ui/popper" "8.5.0" + "@dhis2-ui/portal" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/transfer@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-8.4.2.tgz#5bed8e107aec56ddc6b27ce74b24d9641ea05bb0" - integrity sha512-66jgIX65HkbUT2hWYAkk1miIobaYJvkVJcyKj+U0Z9oAQ8BE+FgVtVurEW2BwwALofUtLWXPDbRyC4UiRGAwAw== - dependencies: - "@dhis2-ui/button" "8.4.2" - "@dhis2-ui/field" "8.4.2" - "@dhis2-ui/input" "8.4.2" - "@dhis2-ui/intersection-detector" "8.4.2" - "@dhis2-ui/loader" "8.4.2" +"@dhis2-ui/transfer@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-8.5.0.tgz#45cfcc3598c05123c0f0e132dbf183033edc4181" + integrity sha512-KfGgj1ierngxFsaGpmcSCyg1foHqnqLeipYTgSg02FM5qispre+zmvUH9DNbW7OGDaeO9Mpc0r+LtN1U3AxlPQ== + dependencies: + "@dhis2-ui/button" "8.5.0" + "@dhis2-ui/field" "8.5.0" + "@dhis2-ui/input" "8.5.0" + "@dhis2-ui/intersection-detector" "8.5.0" + "@dhis2-ui/loader" "8.5.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/user-avatar@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-8.4.2.tgz#9d5fa73a90e34afab6a9332fa0cc9231ec438840" - integrity sha512-aNtmbQQQP8lrwEca6iWjJwaZx92THJRZ6ocMxz8ByWNidRYzY4zzIvjQ37oC0Xeode6XWC7gvHWUTH4g2/71sA== +"@dhis2-ui/user-avatar@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-8.5.0.tgz#27e445dcc5d5d1952348433287e7aadc9784a309" + integrity sha512-HAtLxpw6G1C2NnGgrivGjQ3W6fld2Dg+PwJAwfZvNsE9LHo7NMF/x5ZKVcMJbLcV4CSP56e1CoRuBm7iTRvfIg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.4.2" + "@dhis2/ui-constants" "8.5.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2/app-runtime@^3.2.3": - version "3.4.4" - resolved "https://registry.yarnpkg.com/@dhis2/app-runtime/-/app-runtime-3.4.4.tgz#87202b82babe6e4b3f29f784e02a3b295960359c" - integrity sha512-GTj0H6TLVcw6zo0Vf9aDuPJbsjFfbNWN/SSC9/GF2a0foXdKVSCoc4H5+gW/RhBgYvaSZYwQBA6L+qBaQj7c0Q== +"@dhis2/app-runtime@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-runtime/-/app-runtime-3.5.0.tgz#e4416e12b76749965eed333b6f95b2c52a42a2ce" + integrity sha512-WnaosdNSyaJ2q5TU5RUnsg+rQX03oayuo/37BnJbGZI1DeGEUT/7K3gd1wSTSPFM+zN6rm+rkbIXs/C3WgRRAQ== dependencies: - "@dhis2/app-service-alerts" "3.4.4" - "@dhis2/app-service-config" "3.4.4" - "@dhis2/app-service-data" "3.4.4" - "@dhis2/app-service-offline" "3.4.4" + "@dhis2/app-service-alerts" "3.5.0" + "@dhis2/app-service-config" "3.5.0" + "@dhis2/app-service-data" "3.5.0" + "@dhis2/app-service-offline" "3.5.0" -"@dhis2/app-service-alerts@3.4.4": - version "3.4.4" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-alerts/-/app-service-alerts-3.4.4.tgz#ccd8848f416e976a01ea11bbbd6e1ae873136777" - integrity sha512-o2DHlZIHxJQ4XwJ9uIr0UpMTi3ZK0W6u+FkSnPGwrvF+MCFsxA0+pjN7PfBo4acCQHPBwTZzcyq0WYiEAJM7OA== +"@dhis2/app-service-alerts@3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-alerts/-/app-service-alerts-3.5.0.tgz#b21cb636e43371e7d3842c50a9f6f025be6fc71a" + integrity sha512-VYFrD4ltY4yTCLsbA/qFd/nO3xIs2lwZfSQ/NRvRhVecN1xq2vfqBS2tK5sompB7r1GaAlr1QInBeDJN9yvj7w== -"@dhis2/app-service-config@3.4.4": - version "3.4.4" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-config/-/app-service-config-3.4.4.tgz#b5773138183bf339055957bdd1d24b54fecc404e" - integrity sha512-QCUfptfmwh3Xs16rr7DDTgMBuQIcJpt2CZEc6XROPYMgBBvN3sncA9Rzb7Jf+xblZwUWi0xuZ7PKs49FFS+5kQ== +"@dhis2/app-service-config@3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-config/-/app-service-config-3.5.0.tgz#fc91a855fff818353bc298eaca9e52bd94ffc576" + integrity sha512-I4qh/8Tpi3UpLtenW7UPNWvykmlOSNlHWfNt8S6ZsinLn7hyXt14h20N+MvWD7m95JWnAjBhqZyy1PzhssULmA== -"@dhis2/app-service-data@3.4.4": - version "3.4.4" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-data/-/app-service-data-3.4.4.tgz#028236463b82f998ff7bd44e811153f6c1408507" - integrity sha512-mJyaSRikY5noXHdpSm3pTPM/ga+6Jp7XgG62J0mSXsVbwYSOJSLQqcponXsTNwaX3IuQHLir83dXe06YjZq70Q== +"@dhis2/app-service-data@3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-data/-/app-service-data-3.5.0.tgz#986e592d58f7fec7698edf3cd1dc0982756f32d4" + integrity sha512-LAoJtVQZhf7KltQ93exBNcbYygqN87Eqm50C6J737yPM5thyiZD6Rs4Zvte25gQy8IoFGZDmyJC1Dm5aFHjE+Q== dependencies: react-query "^3.13.11" -"@dhis2/app-service-offline@3.4.4": - version "3.4.4" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-offline/-/app-service-offline-3.4.4.tgz#49d460b22c8eb8357aeef05aee8ed6f8a5c3a953" - integrity sha512-wBlaMh7rdlr9RQ02q5vADtk9ixFtfI5ywXmxCPiXPBRftahMqwUpGpD88KPIUpoSPRI0V2LYGv0XQm33+gmKnw== +"@dhis2/app-service-offline@3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-offline/-/app-service-offline-3.5.0.tgz#af3677fd10a54415db6ab4740eb4940023b2db29" + integrity sha512-phvl4gnjMXgl3cxios7upShs0q5GV3+2ZRyeXGXD57tIMypyhLwHKqEoVpFbinMp4zvX25vJFMm6ub6HsnRcSQ== dependencies: lodash "^4.17.21" @@ -2016,90 +2018,90 @@ resolved "https://registry.yarnpkg.com/@dhis2/prop-types/-/prop-types-3.1.2.tgz#65b8ad2da8cd2f72bc8b951049a6c9d1b97af3e9" integrity sha512-eM0jjLOWvtXWqSFp5YC4DHFpkP8Y1D2eUwGV7MBWjni+o27oesVan+oT7WHeOeLdlAd4acRJrnaaAyB4Ck1wGQ== -"@dhis2/ui-constants@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-8.4.2.tgz#5394690e758966780a5a448aace35c784610587f" - integrity sha512-AF7iIDC0AVysrhTcsmUSC4H0QKPB2zlCsqJ3Q6jT0h2EGwb+jgB00RMAy/pfDpkkkfxrlnIaUOxIQxP+E+wqrg== +"@dhis2/ui-constants@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-8.5.0.tgz#0f76576ff4e6a5297b2d20203662bdf6bb3e5365" + integrity sha512-5xc5BkCMP2CjgJWPd4IakHd5JaDrWp0qOyXfVBiuHoz1pYQZMLha3dcv8MKOCh2FIavn/QHQKyMpEBv9SGoENQ== dependencies: prop-types "^15.7.2" -"@dhis2/ui-forms@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-8.4.2.tgz#8697b492d6e8e1d1e1cf3aef3b92a1d16cd117ec" - integrity sha512-tIU8ODCwpkZVNFPozcV/PhUc2B6Q2d/Yg9Z1uLgo6L9t0J4SFs6cIqYQKwzP5omlkjpp2JO1iOABpTmDBbm3/Q== - dependencies: - "@dhis2-ui/button" "8.4.2" - "@dhis2-ui/checkbox" "8.4.2" - "@dhis2-ui/field" "8.4.2" - "@dhis2-ui/file-input" "8.4.2" - "@dhis2-ui/input" "8.4.2" - "@dhis2-ui/radio" "8.4.2" - "@dhis2-ui/select" "8.4.2" - "@dhis2-ui/switch" "8.4.2" - "@dhis2-ui/text-area" "8.4.2" +"@dhis2/ui-forms@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-8.5.0.tgz#71eaf4cf7a4ea566108b875db0834b91126b6aff" + integrity sha512-LtF+Dddkej6QwENEH6V8CbaEyK0WYaWu/8jAwpvL9gs/lK07+Ds/DUl3vG8dQCnzdQJVebpJh8vRgwhnjRtQ6Q== + dependencies: + "@dhis2-ui/button" "8.5.0" + "@dhis2-ui/checkbox" "8.5.0" + "@dhis2-ui/field" "8.5.0" + "@dhis2-ui/file-input" "8.5.0" + "@dhis2-ui/input" "8.5.0" + "@dhis2-ui/radio" "8.5.0" + "@dhis2-ui/select" "8.5.0" + "@dhis2-ui/switch" "8.5.0" + "@dhis2-ui/text-area" "8.5.0" "@dhis2/prop-types" "^3.1.2" classnames "^2.3.1" final-form "^4.20.2" prop-types "^15.7.2" react-final-form "^6.5.3" -"@dhis2/ui-icons@8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-8.4.2.tgz#3c17c1aabf58d5d64392c15ab6d4bf042caf5d72" - integrity sha512-hU6NN6wQdfoUVnAdxSW5noMM958NCJZLZ1zf+rHAf+8d6/qiEspYnIJZPPNWmZDeFxNuWpJGUC76yuwQ/aPoVw== - -"@dhis2/ui@^8.0.0": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-8.4.2.tgz#e63460ffd788d4effcbc639a95111d6fa0db42c6" - integrity sha512-khI1PvzUpEXPtJCaJcYxFgMTM6gIn+8f1QBo82wnv+0PaQqSUbol8SAVL+jyBgFOaQwpMTClijpfT6O1y7YeGA== - dependencies: - "@dhis2-ui/alert" "8.4.2" - "@dhis2-ui/box" "8.4.2" - "@dhis2-ui/button" "8.4.2" - "@dhis2-ui/card" "8.4.2" - "@dhis2-ui/center" "8.4.2" - "@dhis2-ui/checkbox" "8.4.2" - "@dhis2-ui/chip" "8.4.2" - "@dhis2-ui/cover" "8.4.2" - "@dhis2-ui/css" "8.4.2" - "@dhis2-ui/divider" "8.4.2" - "@dhis2-ui/field" "8.4.2" - "@dhis2-ui/file-input" "8.4.2" - "@dhis2-ui/header-bar" "8.4.2" - "@dhis2-ui/help" "8.4.2" - "@dhis2-ui/input" "8.4.2" - "@dhis2-ui/intersection-detector" "8.4.2" - "@dhis2-ui/label" "8.4.2" - "@dhis2-ui/layer" "8.4.2" - "@dhis2-ui/legend" "8.4.2" - "@dhis2-ui/loader" "8.4.2" - "@dhis2-ui/logo" "8.4.2" - "@dhis2-ui/menu" "8.4.2" - "@dhis2-ui/modal" "8.4.2" - "@dhis2-ui/node" "8.4.2" - "@dhis2-ui/notice-box" "8.4.2" - "@dhis2-ui/organisation-unit-tree" "8.4.2" - "@dhis2-ui/pagination" "8.4.2" - "@dhis2-ui/popover" "8.4.2" - "@dhis2-ui/popper" "8.4.2" - "@dhis2-ui/portal" "8.4.2" - "@dhis2-ui/radio" "8.4.2" - "@dhis2-ui/required" "8.4.2" - "@dhis2-ui/segmented-control" "8.4.2" - "@dhis2-ui/select" "8.4.2" - "@dhis2-ui/selector-bar" "8.4.2" - "@dhis2-ui/sharing-dialog" "8.4.2" - "@dhis2-ui/switch" "8.4.2" - "@dhis2-ui/tab" "8.4.2" - "@dhis2-ui/table" "8.4.2" - "@dhis2-ui/tag" "8.4.2" - "@dhis2-ui/text-area" "8.4.2" - "@dhis2-ui/tooltip" "8.4.2" - "@dhis2-ui/transfer" "8.4.2" - "@dhis2-ui/user-avatar" "8.4.2" - "@dhis2/ui-constants" "8.4.2" - "@dhis2/ui-forms" "8.4.2" - "@dhis2/ui-icons" "8.4.2" +"@dhis2/ui-icons@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-8.5.0.tgz#6ee932343b6ce8ca8a562d335d61610d9693dafa" + integrity sha512-0IG2ycE0/TZwxy8Oks/TEGRuwr9OevG0n8uPjwLVmwwg7q42q70VN142VuAoDoVjcburAmn4tcKwYRlrev2PvA== + +"@dhis2/ui@^8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-8.5.0.tgz#491818113086e4c342ed4e01792f9ccaa85040db" + integrity sha512-R3JxMfW3bdy42FuFhZ2iGWGXlnO0J/OqJOamTpRHK17OzutWXtAQHrPZ+fBeJXc/Ir0M9rmwjguKP14nA2brtA== + dependencies: + "@dhis2-ui/alert" "8.5.0" + "@dhis2-ui/box" "8.5.0" + "@dhis2-ui/button" "8.5.0" + "@dhis2-ui/card" "8.5.0" + "@dhis2-ui/center" "8.5.0" + "@dhis2-ui/checkbox" "8.5.0" + "@dhis2-ui/chip" "8.5.0" + "@dhis2-ui/cover" "8.5.0" + "@dhis2-ui/css" "8.5.0" + "@dhis2-ui/divider" "8.5.0" + "@dhis2-ui/field" "8.5.0" + "@dhis2-ui/file-input" "8.5.0" + "@dhis2-ui/header-bar" "8.5.0" + "@dhis2-ui/help" "8.5.0" + "@dhis2-ui/input" "8.5.0" + "@dhis2-ui/intersection-detector" "8.5.0" + "@dhis2-ui/label" "8.5.0" + "@dhis2-ui/layer" "8.5.0" + "@dhis2-ui/legend" "8.5.0" + "@dhis2-ui/loader" "8.5.0" + "@dhis2-ui/logo" "8.5.0" + "@dhis2-ui/menu" "8.5.0" + "@dhis2-ui/modal" "8.5.0" + "@dhis2-ui/node" "8.5.0" + "@dhis2-ui/notice-box" "8.5.0" + "@dhis2-ui/organisation-unit-tree" "8.5.0" + "@dhis2-ui/pagination" "8.5.0" + "@dhis2-ui/popover" "8.5.0" + "@dhis2-ui/popper" "8.5.0" + "@dhis2-ui/portal" "8.5.0" + "@dhis2-ui/radio" "8.5.0" + "@dhis2-ui/required" "8.5.0" + "@dhis2-ui/segmented-control" "8.5.0" + "@dhis2-ui/select" "8.5.0" + "@dhis2-ui/selector-bar" "8.5.0" + "@dhis2-ui/sharing-dialog" "8.5.0" + "@dhis2-ui/switch" "8.5.0" + "@dhis2-ui/tab" "8.5.0" + "@dhis2-ui/table" "8.5.0" + "@dhis2-ui/tag" "8.5.0" + "@dhis2-ui/text-area" "8.5.0" + "@dhis2-ui/tooltip" "8.5.0" + "@dhis2-ui/transfer" "8.5.0" + "@dhis2-ui/user-avatar" "8.5.0" + "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-forms" "8.5.0" + "@dhis2/ui-icons" "8.5.0" prop-types "^15.7.2" "@eslint/eslintrc@^0.4.3": @@ -4497,9 +4499,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001335, caniuse-lite@^1.0.30001349: - version "1.0.30001357" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001357.tgz#dec7fc4158ef6ad24690d0eec7b91f32b8cb1b5d" - integrity sha512-b+KbWHdHePp+ZpNj+RDHFChZmuN+J5EvuQUlee9jOQIUAdhv9uvAZeEtUeLAknXbkiu1uxjQ9NLp1ie894CuWg== + version "1.0.30001409" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001409.tgz" + integrity sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" From afe59ba5c4b3a23649d779c5332b6a057c88cc93 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 6 Oct 2022 16:51:03 +0000 Subject: [PATCH 35/88] chore(release): cut 10.1.0 [skip release] # [10.1.0](https://github.com/dhis2/app-platform/compare/v10.0.1...v10.1.0) (2022-10-06) ### Features * headerbar PWA update notifications [LIBS-344] ([#748](https://github.com/dhis2/app-platform/issues/748)) ([b245bf1](https://github.com/dhis2/app-platform/commit/b245bf199785bf2ba62843c74a9d29f6e62c0a06)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 857212394..f378f98a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [10.1.0](https://github.com/dhis2/app-platform/compare/v10.0.1...v10.1.0) (2022-10-06) + + +### Features + +* headerbar PWA update notifications [LIBS-344] ([#748](https://github.com/dhis2/app-platform/issues/748)) ([b245bf1](https://github.com/dhis2/app-platform/commit/b245bf199785bf2ba62843c74a9d29f6e62c0a06)) + ## [10.0.1](https://github.com/dhis2/app-platform/compare/v10.0.0...v10.0.1) (2022-09-29) diff --git a/adapter/package.json b/adapter/package.json index 4e543d153..4face651f 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.0.1", + "version": "10.1.0", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.0.1", + "@dhis2/pwa": "10.1.0", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.0.1", + "@dhis2/cli-app-scripts": "10.1.0", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 613fee0a2..3a273c01a 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.0.1", + "version": "10.1.0", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.0.1", + "@dhis2/app-shell": "10.1.0", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@yarnpkg/lockfile": "^1.1.0", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index cfedd5a65..d0ee2a169 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.0.1", + "version": "10.1.0", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index e7936a54e..29cd10655 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.0.1", + "version": "10.1.0", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 54e449975..8507a2c66 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.0.1", + "version": "10.1.0", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index 239a33b0d..0673a3911 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.0.1", + "version": "10.1.0", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.0.1" + "@dhis2/cli-app-scripts": "10.1.0" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 94ede4295..26d60633f 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.0.1", + "version": "10.1.0", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.0.1", + "@dhis2/app-adapter": "10.1.0", "@dhis2/app-runtime": "^3.5.0", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/pwa": "10.0.1", + "@dhis2/pwa": "10.1.0", "@dhis2/ui": "^8.5.0", "classnames": "^2.2.6", "moment": "^2.29.1", From fbd452790ad1a841022675739d65ed1ffff8a829 Mon Sep 17 00:00:00 2001 From: Austin McGee <947888+amcgee@users.noreply.github.com> Date: Fri, 7 Oct 2022 11:46:33 +0200 Subject: [PATCH 36/88] docs: update CHANGELOG --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f378f98a3..26d089968 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,8 @@ ### Features -* headerbar PWA update notifications [LIBS-344] ([#748](https://github.com/dhis2/app-platform/issues/748)) ([b245bf1](https://github.com/dhis2/app-platform/commit/b245bf199785bf2ba62843c74a9d29f6e62c0a06)) +* headerbar PWA update notifications [LIBS-344](https://dhis2.atlassian.net/browse/LIBS-344) ([#748](https://github.com/dhis2/app-platform/issues/748)) ([b245bf1](https://github.com/dhis2/app-platform/commit/b245bf199785bf2ba62843c74a9d29f6e62c0a06)) +* display app and server debug information in headerbar profile menu [LIBS-176](https://dhis2.atlassian.net/browse/LIBS-176) ([#748](https://github.com/dhis2/app-platform/issues/748)) ([b245bf1](https://github.com/dhis2/app-platform/commit/b245bf199785bf2ba62843c74a9d29f6e62c0a06)) ## [10.0.1](https://github.com/dhis2/app-platform/compare/v10.0.0...v10.0.1) (2022-09-29) From a9aa0039b3b1ffd25271216692c64bb1119e9fd5 Mon Sep 17 00:00:00 2001 From: Rene Pot Date: Tue, 18 Oct 2022 12:30:11 +0200 Subject: [PATCH 37/88] chore: updating jira links (#759) --- .github/workflows/comment-and-close.yml | 2 +- README.md | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/comment-and-close.yml b/.github/workflows/comment-and-close.yml index 6aa782a08..d4a98cbc6 100644 --- a/.github/workflows/comment-and-close.yml +++ b/.github/workflows/comment-and-close.yml @@ -8,6 +8,6 @@ jobs: steps: - uses: vardevs/candc@v1 with: - close-comment: 'If you would like to file a bug report or feature request, please refer to our issue tracker: https://jira.dhis2.org' + close-comment: 'If you would like to file a bug report or feature request, please refer to our issue tracker: https://dhis2.atlassian.net' exempt-users: dhis2-bot,dependabot,kodiakhq github-token: ${{secrets.DHIS2_BOT_GITHUB_TOKEN}} diff --git a/README.md b/README.md index 7c8a38803..bb7a66e7a 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,7 @@ See [platform.dhis2.nu](https://platform.dhis2.nu) for documentation. ## Report an issue -The issue tracker can be found in [DHIS2 JIRA](https://jira.dhis2.org) -under the [LIBS](https://jira.dhis2.org/projects/LIBS) project. +The issue tracker can be found in [DHIS2 JIRA](https://dhis2.atlassian.net) +under the [LIBS](https://dhis2.atlassian.net/browse/LIBS) project. -Deep links: - -- [Bug](https://jira.dhis2.org/secure/CreateIssueDetails!init.jspa?pid=10700&issuetype=10006&components=11025) -- [Feature](https://jira.dhis2.org/secure/CreateIssueDetails!init.jspa?pid=10700&issuetype=10300&components=11025) -- [Task](https://jira.dhis2.org/secure/CreateIssueDetails!init.jspa?pid=10700&issuetype=10003&components=11025) +To report an issue create a ticket using the proper type (bug, feature) depending on your use case. You can create a new ticket by clicking `Create` on top of JIRA, then proceed to select the `LIBS` project and then define the ticket type. Make sure to select `app-platform` components drop-down accordingly. From 6e495d259addf1ade4bd62ec44d0245a2935bc94 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 20 Oct 2022 14:14:44 +0000 Subject: [PATCH 38/88] chore(release): cut 10.2.0-alpha.1 [skip release] # [10.2.0-alpha.1](https://github.com/dhis2/app-platform/compare/v10.1.0...v10.2.0-alpha.1) (2022-10-20) ### Bug Fixes * **cli:** improve plugin builds ([#749](https://github.com/dhis2/app-platform/issues/749)) ([b3b317c](https://github.com/dhis2/app-platform/commit/b3b317c781a9952b223236e33bf31c75088ae107)) * add missing webpack dependencies to cli package ([9e58c58](https://github.com/dhis2/app-platform/commit/9e58c58322e56f905abd473af9957f8b24119b95)) * **cli:** update webpack plugin options ([d084b44](https://github.com/dhis2/app-platform/commit/d084b441ee0dd8aecb2d563a0b1dc16275c11bcd)) * casing ([ff5aa6b](https://github.com/dhis2/app-platform/commit/ff5aa6bd1da8705811ec62f7e47537ba7c7f0822)) * handle webpack errors as described in https://webpack.js.org/api/node/\#error-handling ([c557534](https://github.com/dhis2/app-platform/commit/c557534f6ff18eb0990a6eaeb037b0d83bc1c87f)) * plugin placeholder ([1eea12c](https://github.com/dhis2/app-platform/commit/1eea12c825145480d4fbf2807d3078ef608f2325)) ### Features * **cli:** add pwa to plugins; fix plugin build details ([#746](https://github.com/dhis2/app-platform/issues/746)) ([fd920a4](https://github.com/dhis2/app-platform/commit/fd920a41d6d63e1bb4e4934d39e4aef96ead1e4d)) * include plugin launch path plugin.html in built manifests [LIBS-346] ([#745](https://github.com/dhis2/app-platform/issues/745)) ([8843f6b](https://github.com/dhis2/app-platform/commit/8843f6b6396f0f60ef5cb0c6d09cfe90360e976f)) * **adapter:** don't render headerbar for plugins ([4ac6d54](https://github.com/dhis2/app-platform/commit/4ac6d541b7369a580f2947ad3987cbfa980bb5ee)) * **cli:** add webpack config for JS and CSS ([a04b7c6](https://github.com/dhis2/app-platform/commit/a04b7c6c7bd82cbb1bfddbea0e9c0a28fee7ba75)) * **cli:** add webpack config for JS and CSS ([cec6339](https://github.com/dhis2/app-platform/commit/cec63391562ace95cfc1ce94019fd395fd0f8aa8)) * **cli:** create plugin entrypoint wrapper during compilation ([8e4dbff](https://github.com/dhis2/app-platform/commit/8e4dbfffdc923d9810d79f2faa739658f8ab768a)) * **cli:** enable split chunks optimisation in webpack config ([e8ebcbf](https://github.com/dhis2/app-platform/commit/e8ebcbf4a5be6249754c40f623e1b2561e3e77b6)) * **cli:** plugin start script ([9fea158](https://github.com/dhis2/app-platform/commit/9fea1583a2c9c869ed64e8b6ff2d92e324f25358)) * **cli:** setup css minimiser webpack plugin ([3f1b1f2](https://github.com/dhis2/app-platform/commit/3f1b1f25dfc3199227bac623616fae49362fff75)) * **cli:** setup define webpack plugin ([5d8f374](https://github.com/dhis2/app-platform/commit/5d8f3741bfd8c2b7257db2c5078bb5d5664af2f9)) * **cli:** setup htmlwebpackplugin ([202225c](https://github.com/dhis2/app-platform/commit/202225c9dc21a2fceb44c4fdf8e449455c9d3a0e)) * **cli:** setup ignore webpack plugin for moment.js ([223b191](https://github.com/dhis2/app-platform/commit/223b19146914cc4fad6c25070da3022d23ea159a)) * **cli:** setup terser webpack plugin ([2693258](https://github.com/dhis2/app-platform/commit/2693258485cbeec6edca59e60513c05010b785fe)) * webpack config for plugin ([3e4275c](https://github.com/dhis2/app-platform/commit/3e4275c9cf02b8d198ff075560f09b40ce865cea)) * **cli:** support plugin entrypoint when validating entrypoints ([04ece0a](https://github.com/dhis2/app-platform/commit/04ece0a034ff88eedd06268f5dc0469226600a50)) --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 44 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26d089968..c912a7736 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,34 @@ +# [10.2.0-alpha.1](https://github.com/dhis2/app-platform/compare/v10.1.0...v10.2.0-alpha.1) (2022-10-20) + + +### Bug Fixes + +* **cli:** improve plugin builds ([#749](https://github.com/dhis2/app-platform/issues/749)) ([b3b317c](https://github.com/dhis2/app-platform/commit/b3b317c781a9952b223236e33bf31c75088ae107)) +* add missing webpack dependencies to cli package ([9e58c58](https://github.com/dhis2/app-platform/commit/9e58c58322e56f905abd473af9957f8b24119b95)) +* **cli:** update webpack plugin options ([d084b44](https://github.com/dhis2/app-platform/commit/d084b441ee0dd8aecb2d563a0b1dc16275c11bcd)) +* casing ([ff5aa6b](https://github.com/dhis2/app-platform/commit/ff5aa6bd1da8705811ec62f7e47537ba7c7f0822)) +* handle webpack errors as described in https://webpack.js.org/api/node/\#error-handling ([c557534](https://github.com/dhis2/app-platform/commit/c557534f6ff18eb0990a6eaeb037b0d83bc1c87f)) +* plugin placeholder ([1eea12c](https://github.com/dhis2/app-platform/commit/1eea12c825145480d4fbf2807d3078ef608f2325)) + + +### Features + +* **cli:** add pwa to plugins; fix plugin build details ([#746](https://github.com/dhis2/app-platform/issues/746)) ([fd920a4](https://github.com/dhis2/app-platform/commit/fd920a41d6d63e1bb4e4934d39e4aef96ead1e4d)) +* include plugin launch path plugin.html in built manifests [LIBS-346] ([#745](https://github.com/dhis2/app-platform/issues/745)) ([8843f6b](https://github.com/dhis2/app-platform/commit/8843f6b6396f0f60ef5cb0c6d09cfe90360e976f)) +* **adapter:** don't render headerbar for plugins ([4ac6d54](https://github.com/dhis2/app-platform/commit/4ac6d541b7369a580f2947ad3987cbfa980bb5ee)) +* **cli:** add webpack config for JS and CSS ([a04b7c6](https://github.com/dhis2/app-platform/commit/a04b7c6c7bd82cbb1bfddbea0e9c0a28fee7ba75)) +* **cli:** add webpack config for JS and CSS ([cec6339](https://github.com/dhis2/app-platform/commit/cec63391562ace95cfc1ce94019fd395fd0f8aa8)) +* **cli:** create plugin entrypoint wrapper during compilation ([8e4dbff](https://github.com/dhis2/app-platform/commit/8e4dbfffdc923d9810d79f2faa739658f8ab768a)) +* **cli:** enable split chunks optimisation in webpack config ([e8ebcbf](https://github.com/dhis2/app-platform/commit/e8ebcbf4a5be6249754c40f623e1b2561e3e77b6)) +* **cli:** plugin start script ([9fea158](https://github.com/dhis2/app-platform/commit/9fea1583a2c9c869ed64e8b6ff2d92e324f25358)) +* **cli:** setup css minimiser webpack plugin ([3f1b1f2](https://github.com/dhis2/app-platform/commit/3f1b1f25dfc3199227bac623616fae49362fff75)) +* **cli:** setup define webpack plugin ([5d8f374](https://github.com/dhis2/app-platform/commit/5d8f3741bfd8c2b7257db2c5078bb5d5664af2f9)) +* **cli:** setup htmlwebpackplugin ([202225c](https://github.com/dhis2/app-platform/commit/202225c9dc21a2fceb44c4fdf8e449455c9d3a0e)) +* **cli:** setup ignore webpack plugin for moment.js ([223b191](https://github.com/dhis2/app-platform/commit/223b19146914cc4fad6c25070da3022d23ea159a)) +* **cli:** setup terser webpack plugin ([2693258](https://github.com/dhis2/app-platform/commit/2693258485cbeec6edca59e60513c05010b785fe)) +* webpack config for plugin ([3e4275c](https://github.com/dhis2/app-platform/commit/3e4275c9cf02b8d198ff075560f09b40ce865cea)) +* **cli:** support plugin entrypoint when validating entrypoints ([04ece0a](https://github.com/dhis2/app-platform/commit/04ece0a034ff88eedd06268f5dc0469226600a50)) + # [10.1.0](https://github.com/dhis2/app-platform/compare/v10.0.1...v10.1.0) (2022-10-06) diff --git a/adapter/package.json b/adapter/package.json index 33a229a22..2b3d12cb4 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.1.0-alpha.6", + "version": "10.2.0-alpha.1", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.1.0-alpha.6", + "@dhis2/pwa": "10.2.0-alpha.1", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.0-alpha.6", + "@dhis2/cli-app-scripts": "10.2.0-alpha.1", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 471189ed6..5cb5fd015 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.1.0-alpha.6", + "version": "10.2.0-alpha.1", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.1.0-alpha.6", + "@dhis2/app-shell": "10.2.0-alpha.1", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index 3e708587c..8e605597b 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.1.0-alpha.6", + "version": "10.2.0-alpha.1", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 8e3c60c96..cd1f12912 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.1.0-alpha.6", + "version": "10.2.0-alpha.1", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index c39abba1e..dfedf6244 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.1.0-alpha.6", + "version": "10.2.0-alpha.1", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index 0f7be23d8..433f72866 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.1.0-alpha.6", + "version": "10.2.0-alpha.1", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.0-alpha.6" + "@dhis2/cli-app-scripts": "10.2.0-alpha.1" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index bcff4e008..6f9e891fc 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.1.0-alpha.6", + "version": "10.2.0-alpha.1", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.1.0-alpha.6", + "@dhis2/app-adapter": "10.2.0-alpha.1", "@dhis2/app-runtime": "^3.5.0", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/pwa": "10.1.0-alpha.6", + "@dhis2/pwa": "10.2.0-alpha.1", "@dhis2/ui": "^8.5.0", "classnames": "^2.2.6", "moment": "^2.29.1", From f6406c55be747793317021423e39bf98dc7f04bb Mon Sep 17 00:00:00 2001 From: Birk Johansson Date: Fri, 21 Oct 2022 15:46:55 +0200 Subject: [PATCH 39/88] fix(deps): update app-runtime and ui packages (#761) --- shell/package.json | 4 +- yarn.lock | 880 ++++++++++++++++++++++----------------------- 2 files changed, 442 insertions(+), 442 deletions(-) diff --git a/shell/package.json b/shell/package.json index 26d60633f..3f51a8296 100644 --- a/shell/package.json +++ b/shell/package.json @@ -16,10 +16,10 @@ }, "dependencies": { "@dhis2/app-adapter": "10.1.0", - "@dhis2/app-runtime": "^3.5.0", + "@dhis2/app-runtime": "3.6.0", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/pwa": "10.1.0", - "@dhis2/ui": "^8.5.0", + "@dhis2/ui": "8.6.0", "classnames": "^2.2.6", "moment": "^2.29.1", "prop-types": "^15.7.2", diff --git a/yarn.lock b/yarn.lock index 2bea31309..5053879fd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1327,600 +1327,600 @@ resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.0.1.tgz#b6b8d81780b9a9f6459f4bfe9226ac6aefaefe87" integrity sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA== -"@dhis2-ui/alert@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-8.5.0.tgz#65b260d8b37e141fa40b845160f0a16243a8e706" - integrity sha512-NJVCZU+H5ar2zl2cSCp7ei2DqLqpM29Xk/Z5h2R0Xi6DBPzrspjJnrjgLMoL8FC11jqg6eUTsBa06uJnlajfUQ== +"@dhis2-ui/alert@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-8.6.0.tgz#d99904838882592617e908a3cdf43d2bd941b962" + integrity sha512-yvtOB0l/zQB2zP9pSkAxTRCN7rzZgp0JsIEdq8fV/I0pkghNrUP4oS4FJFqxVM3m2m6Yr+eOt88Chm1tETBJ7Q== dependencies: - "@dhis2-ui/portal" "8.5.0" + "@dhis2-ui/portal" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/box@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-8.5.0.tgz#16bb0875bff78a3ae4e13b56d9ece501e30ce25c" - integrity sha512-en7dHFi/lNxweV6/9WnfQVUvn16sadSWyuYT4mZXmewg5NtxNgeZu7VH53RRXLAyOA8004rrv+EZpOkEoxg3aw== +"@dhis2-ui/box@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-8.6.0.tgz#9e92c79340dc122216f5b03cc36027727cf6b5af" + integrity sha512-Qw4tF67Mz5v+o3eN90qCug78aBLYQBGcQo6yq9Rsy/iUk/QTb5mkh1HAYwtg35yfyy1ZwvWCnFek586DBzRhmg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/button@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-8.5.0.tgz#5e4ce32e12b6fddde36c56ed74b54bcc7bb86bb0" - integrity sha512-kbpcqY1guzEqhJ10uR0FQWmruSDHJUIGxaNUS8pwTEDkFjHZ+2NwYX0H9CzF67/VmnWVoq5vH/bfNTL5LxhsSQ== +"@dhis2-ui/button@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-8.6.0.tgz#a5afb3e285858b8d575f20079fb1e3cd35e65d5e" + integrity sha512-RMWlKKQWJ2j3703cBbiRqmZ07Sj0IStkfdPnGphh2mR9FyoxqZlYfgjJQAgpSPXGnXOcACxT70bVcotn1UCYcA== dependencies: - "@dhis2-ui/layer" "8.5.0" - "@dhis2-ui/loader" "8.5.0" - "@dhis2-ui/popper" "8.5.0" + "@dhis2-ui/layer" "8.6.0" + "@dhis2-ui/loader" "8.6.0" + "@dhis2-ui/popper" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/card@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-8.5.0.tgz#472903a4a8f95e3c939bf5cb443d4443a84275bd" - integrity sha512-N4ZbYbxT1+WSysDkpfT7ALyXe+Ae7tmJZU4Ipq5qaWUfFKQOIvD9csm+3RkQDBCzoa4eCP5qMi/4jNkAJdvwNw== +"@dhis2-ui/card@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-8.6.0.tgz#8720d4dad8352624b51a270ebc1807f5709761f5" + integrity sha512-tXURVN0m9xINOIwmXiYI2O8V4DQwc7eJ1S9oCfoCwFmJNMZfSmtdQ01JfsuewkqY6fSOyOh2BCiBt8NemHBmxg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/center@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-8.5.0.tgz#39e7604fdcde0988c4870b6df3c3a252e313991f" - integrity sha512-i/vzMQQiEgx2a8r8waG0fZhf6KMgH+Wxds8DbwQqOEdKw2TgvuXVl5edMQtvskdTABzk8RCJYdRuYMnJK+pIow== +"@dhis2-ui/center@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-8.6.0.tgz#428ba80107caa1319fb8c0b31e2259ad61de8cd2" + integrity sha512-5EhpqN8IkdLhHWxBFId/zKGpPLed52f2RJcR3pTl1QctaHiOeRIhiVnkTkqkJnrs+g6LzEMzC84xoSyKBRO/3Q== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/checkbox@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-8.5.0.tgz#d6b66da407d423a672b6d900c5fb1d217b74ab64" - integrity sha512-UdZ6mDJgrVFN6V07UO+hbN/wCr6NWCsEQTfByqOQsioB1Xv8cZapYyreRH+rwePbyFvAeFXjTLbEpa2pMjTgOg== +"@dhis2-ui/checkbox@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-8.6.0.tgz#1a5ee4e219038680c62121b438723ff7c79dabd3" + integrity sha512-fhyI1mbqFDPRZqFuJTVtA/r8qUzrnVHAwYI2xmumzOLNhrj4tppuecUYPpOeDD8mhuxIIsoAg0s7+JO5AgzkJA== dependencies: - "@dhis2-ui/field" "8.5.0" - "@dhis2-ui/required" "8.5.0" + "@dhis2-ui/field" "8.6.0" + "@dhis2-ui/required" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/chip@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-8.5.0.tgz#20579b474d995ea0d5033545c30b76c25dbe6415" - integrity sha512-sPRjmUvIbjE6czhm/x5lloKoYj5kzMce9yJxFAHQnlvNv8b/CNWUQw0Wo4npHXLQ5YouKmh4BIY0BxWm59fAnw== +"@dhis2-ui/chip@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-8.6.0.tgz#ade2703c5a2ecff7b3652e88d20b5317f18b2120" + integrity sha512-i7HyVu0b4hdI1SDbwKVsoj91XORYsSjdyG7CprHReIdqBF2OlRmekJ4p4Smly+orLHEaTj5kVQ3L5P/8ukP/vA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/cover@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-8.5.0.tgz#9aefc3ef149a724c1fbc2a7d2b8acfa6d458c031" - integrity sha512-We0NOa9F3Hw/abI+QEvZA3QihX8ezttqILOFRtsJsV+B+EuGu8fx9EkEMiPwJ7yJU4uxnUQ9KA5X9tdR7J5CFw== +"@dhis2-ui/cover@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-8.6.0.tgz#48e61e3667ba1344bccccee28d345adae8ca909f" + integrity sha512-TpqZDXrOvjVl4ft7/kL84meNLKpOGvZEPxX1RgyEQuw0kpdL9NsnZ6admMqn8A7GZdxUbQnR3Gts1MZkJL7pAQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/css@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-8.5.0.tgz#420fa97ebcc5ac2f44c9d7e743268da57cfa2d36" - integrity sha512-kfcyY+sJXa+HnOvjeuO1JkQ6d85qt+ZYQBo+hrig5MrMMH3jt2NNthW/YqG8pH+0IAEVXW0bG08U8hopT8Xfxw== +"@dhis2-ui/css@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-8.6.0.tgz#323aa10de9ba22612f44ffd8e6cbb7a387326962" + integrity sha512-O4ilhcCw5d8YCBDOQ/459X9W4nB/1MB/QlZjjbiVDamMrRFi/uma0YLMWhkE4esIRIqXeBH+HGHax0B5mXSTfw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/divider@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-8.5.0.tgz#d879d5e5efa9b25736a282076239f9671653c579" - integrity sha512-gLb69bi078bHYVrYLL66JCZUPDGifr6XZc0TZDmFznFGgbNzkgQwdjTVErcFA26l1AXkPH0uEKdhFXScjBICOQ== +"@dhis2-ui/divider@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-8.6.0.tgz#07ffa6c8710108d2e0d86bde0d267598ddc8c4c3" + integrity sha512-XgwoOm08iBpdR2ldu7PpAKZhdDmOZjzMngxi0qRSO+RbHivCX82nRXFGCZ8OjD1EPLgrzIlgU/UjhvHVERiOaw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/field@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-8.5.0.tgz#34bd028d87ed4510e128591263187ce5081f83b4" - integrity sha512-M70odJ6JhHfgM3953Fv0eBxocwf+RzkfPyst9+YFUHXl4PLugDwGlQ6kWEj6d3GfphmHV6ea27HvJXf8VCOLGg== +"@dhis2-ui/field@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-8.6.0.tgz#6c575c9f783847e746a348cb84121c5d8562ea0a" + integrity sha512-xV4Y4snAPmi9Wc0pfAcIrItbVdSjeruGzXjJy/zgo6Ot0Q+4gdjWL1gvHSKT3eYZG5+57L21IuiTon+LzkNbUQ== dependencies: - "@dhis2-ui/box" "8.5.0" - "@dhis2-ui/help" "8.5.0" - "@dhis2-ui/label" "8.5.0" + "@dhis2-ui/box" "8.6.0" + "@dhis2-ui/help" "8.6.0" + "@dhis2-ui/label" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/file-input@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-8.5.0.tgz#1cec48f2ab668e6a82f42fcf0a6659d2f2ddf318" - integrity sha512-KXtRkEHRFWjKoIKIIEnz953QxIywGf4ZTNRIbeCqPQXMtC0HEqTVHgnO08qFv8PCmC7wtStTXuDxjyz20iOaSA== - dependencies: - "@dhis2-ui/button" "8.5.0" - "@dhis2-ui/field" "8.5.0" - "@dhis2-ui/label" "8.5.0" - "@dhis2-ui/loader" "8.5.0" - "@dhis2-ui/status-icon" "8.5.0" +"@dhis2-ui/file-input@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-8.6.0.tgz#ce02d60bcc7a677b4087a64779746db1953c3170" + integrity sha512-Aggrul5hfJqTrqzjhZAhP96UKh6HPGUq/T+w9TfJJLtmX1ftuZf87kl8422iXz7bDdvmU3QQ+n6UcauIhBuG7A== + dependencies: + "@dhis2-ui/button" "8.6.0" + "@dhis2-ui/field" "8.6.0" + "@dhis2-ui/label" "8.6.0" + "@dhis2-ui/loader" "8.6.0" + "@dhis2-ui/status-icon" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/header-bar@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-8.5.0.tgz#3ec53953740b60783e59e3e517492b41b80dd5c9" - integrity sha512-P826ZAPvt/+zvB7sswHuZGH5dVv6OIIsTCusC6Ga6YTj9gJqdxfsDKEaV7Xu+IL4wvEgQX9teT6TbiZwFZF+vw== - dependencies: - "@dhis2-ui/box" "8.5.0" - "@dhis2-ui/button" "8.5.0" - "@dhis2-ui/card" "8.5.0" - "@dhis2-ui/center" "8.5.0" - "@dhis2-ui/divider" "8.5.0" - "@dhis2-ui/input" "8.5.0" - "@dhis2-ui/layer" "8.5.0" - "@dhis2-ui/loader" "8.5.0" - "@dhis2-ui/logo" "8.5.0" - "@dhis2-ui/menu" "8.5.0" - "@dhis2-ui/modal" "8.5.0" - "@dhis2-ui/user-avatar" "8.5.0" +"@dhis2-ui/header-bar@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-8.6.0.tgz#df89be51c83ab68f8850a2346b23e41c288755f3" + integrity sha512-hWQRVJBGHW2hdMdIJOk8wvZUkreibbjda91A8RLj5Z8IwhRk+JYx4dZNblqBZs2El43Ci+OGRVIOeg77k794Pg== + dependencies: + "@dhis2-ui/box" "8.6.0" + "@dhis2-ui/button" "8.6.0" + "@dhis2-ui/card" "8.6.0" + "@dhis2-ui/center" "8.6.0" + "@dhis2-ui/divider" "8.6.0" + "@dhis2-ui/input" "8.6.0" + "@dhis2-ui/layer" "8.6.0" + "@dhis2-ui/loader" "8.6.0" + "@dhis2-ui/logo" "8.6.0" + "@dhis2-ui/menu" "8.6.0" + "@dhis2-ui/modal" "8.6.0" + "@dhis2-ui/user-avatar" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" moment "^2.29.1" prop-types "^15.7.2" -"@dhis2-ui/help@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-8.5.0.tgz#94fdd7898ed8f5daf527c6564bfcfcc0bc603a4d" - integrity sha512-GhZlFlvXFRWA2FHhcS6Wpn7QA055K3k0W0cmDE+VneMOkApfK3iD/rT0KYhtq22ksoAGg22wsSVy/Xepry1eNQ== +"@dhis2-ui/help@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-8.6.0.tgz#b0240a397c354a2c93151cfd9b78c29f26b1245f" + integrity sha512-EFlVGH8cHkH00SZK58Lqo6Bm5w78oqtj9fQTchCUPgtymci7lhs2lujo5m5gG3VpATmCYc+6Qs6KFITFJ2wWtQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/input@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-8.5.0.tgz#e431d9ed3e81610a712885ca3489d24445f4a7d6" - integrity sha512-NKEHHCaoHDqMU7UcksRuxlbBO9xhWVbPwfvOCX2R8x0uqIxEygAq5CaFMAVKJQ9kaJcnenxV1QfGjCrRWBnewA== - dependencies: - "@dhis2-ui/box" "8.5.0" - "@dhis2-ui/field" "8.5.0" - "@dhis2-ui/input" "8.5.0" - "@dhis2-ui/loader" "8.5.0" - "@dhis2-ui/status-icon" "8.5.0" +"@dhis2-ui/input@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-8.6.0.tgz#69d812ae10c79b5513ca7722039d8e13a02c3167" + integrity sha512-ZBqle9JZZYXPoX6J+vsNco75vdAzkqy7dwCxC8ZLEHdwa+nQ/p1ORKM3TFtWF5m6tNA2tgbD8j6J4EC/iOrntw== + dependencies: + "@dhis2-ui/box" "8.6.0" + "@dhis2-ui/field" "8.6.0" + "@dhis2-ui/input" "8.6.0" + "@dhis2-ui/loader" "8.6.0" + "@dhis2-ui/status-icon" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/intersection-detector@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-8.5.0.tgz#140428454b2509e48537fbeaf35b3751c58e1093" - integrity sha512-IYuMvPZy4PA1SDnyPunRq0OkmRyjVXXC03evEAwxxpPlpS999m60vZRGizBGWIf/3FvkAnoYXgDCCB9hdoHX+Q== +"@dhis2-ui/intersection-detector@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-8.6.0.tgz#bb8566b6ade8b65379226f5c09aa935c8150589e" + integrity sha512-BxNtN5vVw8RkSFSbsU7Lre8clQUNECvUw0cn6ONu6hVmdDLD8yB6WnbYKDP2wI8TfGmms3ExGRHon/YMXgrIPg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/label@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-8.5.0.tgz#7978541be46d3441da735bca116c4a6772447a26" - integrity sha512-+RecGUw86R3B2UfiacNHVmeWuDcBdaefaE0DbucozYdF1RlWjGgMBccp6b0kBoTC7GkTH15nYT1wxGZXun70wQ== +"@dhis2-ui/label@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-8.6.0.tgz#bc61963aa1152ad095921dbe0981c1e79dbf7a36" + integrity sha512-zNux3DW8TSdElXMbXFOlk/TZfNvD0Kso37gELzy2YnlCWEBdbSbaCr9luKZALAx0g3wIdykMOaa3hRdPMmN2uQ== dependencies: - "@dhis2-ui/required" "8.5.0" + "@dhis2-ui/required" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/layer@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-8.5.0.tgz#7c7670a75c83587754cfbf22069384710e58ea33" - integrity sha512-uX49fq7mDl6WiaPV/Ve614TL2zTuA/crYJKlRL90l7gl4kf9BNYWfV1HC7LRXDLftMaicfe+F+Of9ScEKxX1gg== +"@dhis2-ui/layer@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-8.6.0.tgz#7125a416c132880e607e7e1d651ce1afea15f673" + integrity sha512-tdhmJSy9MR4tttd4Z0eTjMllW64DtXLSHRty2p+uXg/GcNJyDJP8ro7C6JvZKgpLgeAXvkicYjfwJp8Emu7u9Q== dependencies: - "@dhis2-ui/portal" "8.5.0" + "@dhis2-ui/portal" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/legend@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-8.5.0.tgz#0f5a55bb9aea1905aeb161651ae0c5552504616e" - integrity sha512-nrqcuqgiFemWExajuFSRSwpDghp95oqwrRDNP5vC+9G+W5TwNxrBSmBkW7vTndLm/mPTbWT7fc5fmKAlaHdJug== +"@dhis2-ui/legend@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-8.6.0.tgz#7728b2af1a3909579f7a7403292da1b0d8afba07" + integrity sha512-aprM5I2Aho31DHwjxLgovWZHkYk1z30BKkuNfRubOJWp289FtbPgpdpKWs/oAw5qfJVm/dKnhItCNvR1i/zByg== dependencies: - "@dhis2-ui/required" "8.5.0" + "@dhis2-ui/required" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/loader@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-8.5.0.tgz#a170e5e24f5d00076d2b8df572fcc9108fc45ba0" - integrity sha512-hIyCEIvP/8spYKRklmW3oMtVk2EsFeyn4R3jv3LPEG+GKtmMGoWgzF3LyrlsdG0mPcvXwvl3fBFXwwIrIwdgag== +"@dhis2-ui/loader@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-8.6.0.tgz#02a9759a8ca8ca5c5ab95b2b5e74ebdae6cb740a" + integrity sha512-Ctlb7PcXm9AW0MO3UqYj/70v2yRMQYhsJ4f3w6e03QCggNpE2iFw3/35CFGtPA73pXLUhesMpfPFYVtfEhTdkA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/logo@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-8.5.0.tgz#e3335efaa2eded66a59d296d727f63a400c4d259" - integrity sha512-L5znE11lzaLA34L/Y3U/CqWBadzVOwf3F+78DQV4L14vS4NCq8dtyQwcsKktEuSucYzbikTGrXHRhItg1WVJLg== +"@dhis2-ui/logo@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-8.6.0.tgz#43d8440a6fbd006d0ad2d134e05c774308c48b7d" + integrity sha512-hSly4GSjyAOsQQkCh0cO3UrzToldL5sErqh7VoBDNtBrgIzWVGJaGORsKOGcdWn6j8vriffsrhUhylGjzTq6BA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/menu@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-8.5.0.tgz#d29a06e6ef487f8641b176553d9044a96af517da" - integrity sha512-hovC4eVM8UfioxA1/DbYLCMwFTdrEZDEgB8kpxYW8DdtAl7R9PybfCq1yWTjJxgcJb6pWT8DXyDS+2L/YYYmMg== - dependencies: - "@dhis2-ui/card" "8.5.0" - "@dhis2-ui/divider" "8.5.0" - "@dhis2-ui/layer" "8.5.0" - "@dhis2-ui/popper" "8.5.0" - "@dhis2-ui/portal" "8.5.0" +"@dhis2-ui/menu@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-8.6.0.tgz#bc455234a5cfdccf691188ca428a4f23bd0dfe4f" + integrity sha512-75vwPGtqWDsJdLgjYppulR/syYLk1a1eTii0MRChOUZKrDDtwOKrTRgoyJsp15or88vdFUr7uAoNoghY1npnCg== + dependencies: + "@dhis2-ui/card" "8.6.0" + "@dhis2-ui/divider" "8.6.0" + "@dhis2-ui/layer" "8.6.0" + "@dhis2-ui/popper" "8.6.0" + "@dhis2-ui/portal" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/modal@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-8.5.0.tgz#5ef2feb2012090afd3c25c675d791c8499928061" - integrity sha512-IiQzOeuh3CY5r7/hSFDUaNhlfJJ5C3eG9IK/TkATzembdnbEsY91840W4AEDluBPM50cdo5v0KWRwZnnkzY7Uw== +"@dhis2-ui/modal@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-8.6.0.tgz#78851fe8be9c8382e4071d73a7e72d5a8b54faea" + integrity sha512-vUVf/wJ/UX3NQ+QW4q/g9DDgLxyCIMLhmbExcmu0wr6aGds908OfL1YU64ipYRx+2oByT8YHrx4aYtnTZoEw9g== dependencies: - "@dhis2-ui/card" "8.5.0" - "@dhis2-ui/center" "8.5.0" - "@dhis2-ui/layer" "8.5.0" - "@dhis2-ui/portal" "8.5.0" + "@dhis2-ui/card" "8.6.0" + "@dhis2-ui/center" "8.6.0" + "@dhis2-ui/layer" "8.6.0" + "@dhis2-ui/portal" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/node@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-8.5.0.tgz#997496197d10707baaf8659a2f05975c53a4084a" - integrity sha512-pAy/1lMyXILBLcMV1KB1Me41CTAsxp9sxZc8cfpB6lvSz/3WBu3Ka6iC90uNso2oslbHPyHqD5z2dPK2KE9h8Q== +"@dhis2-ui/node@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-8.6.0.tgz#941d0a0dcadcefc2ae4ff6c2a1bcaee8d8eed3d3" + integrity sha512-vW5r7f3BpoaN/oeGGRgYsit7lQCqfJF/9529DuJKyfC8WvDBq+5AMhfRjp25emQLeaz7ME6Z6hu/JU5UkoKHYQ== dependencies: - "@dhis2-ui/loader" "8.5.0" + "@dhis2-ui/loader" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/notice-box@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-8.5.0.tgz#2c4fb80f3548c63a7ae4c21bae9d8377ffacfdea" - integrity sha512-qraV9xbbtU/nKJVvOGiwjpxu5hyrWw2kl7cwkAsozVe1SvPDPWBjAc72w/wkT1/i4nR2FFsyq8BC8hL0rZiQ8g== +"@dhis2-ui/notice-box@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-8.6.0.tgz#a69c6b155237f7bfeddb1befbfdddd8b56279996" + integrity sha512-xUUgSP8NHGOxoI+0twops/arLb25cuHUOPof5zICc3OYSRf5miKeyqTrT/DFxx4giH+GexJPjBu6hErZRi1EZQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/organisation-unit-tree@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-8.5.0.tgz#95350642ba5919c9df7d5c09f6b7e28430a4ef14" - integrity sha512-QFAmuvfoo06OmZoYnUj7SYWFJDJh/vu0IB2FeZAtf7mvdXY8BgiRRdJuRlBm4RyILl8by7No3ZjUxD5XnS231A== +"@dhis2-ui/organisation-unit-tree@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-8.6.0.tgz#b6840e7ac6a4f5362aec0da87c15fa01c643fafb" + integrity sha512-JVBizEpGLV7VuanXyDlQgYPF6RIbqkZrFLcBYB3zYVtigwvOPgH9whmQFu6+5muOZelrDgTfzJFfYABH+NXF4g== dependencies: - "@dhis2-ui/checkbox" "8.5.0" - "@dhis2-ui/loader" "8.5.0" - "@dhis2-ui/node" "8.5.0" + "@dhis2-ui/checkbox" "8.6.0" + "@dhis2-ui/loader" "8.6.0" + "@dhis2-ui/node" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/pagination@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-8.5.0.tgz#3561b665f3745186fb8a75737d31cb4a0cb69737" - integrity sha512-evlqDNt98Ge5HNaOqbrOB9a4yiKob8QeBkwS1LruLNN+L3kIpaSE1I62Uino+pPqSxwjE3zxawR5Ph2gdD0N0Q== +"@dhis2-ui/pagination@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-8.6.0.tgz#fb425a43d2a6a905548df1e6ee716f61a94be127" + integrity sha512-KuBCC7SwmAxK1QKJXIFKT14HeBa0cZW60HBtDKviw0mmX17PK8pRcNgHIw6rECCZ+o8CR96p41NJwI3JDfCe4w== dependencies: - "@dhis2-ui/button" "8.5.0" - "@dhis2-ui/select" "8.5.0" + "@dhis2-ui/button" "8.6.0" + "@dhis2-ui/select" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popover@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-8.5.0.tgz#1dc03b85f3d7d0ab36668b8e6e348815b25b64c6" - integrity sha512-29HWLWx8ovabTpuc19GBlZ7bM8v9EKnSFOaAF+KUznIsqYrgfgbDeBg10n/6n1iUeIr+DOmGA/Nm56gMSaZ6tA== +"@dhis2-ui/popover@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-8.6.0.tgz#a588e9d4d27616b4d38fc1ae86fda790a624922f" + integrity sha512-+/b9O8EmAtY9wvIWKx4gi5hhLbOucrDoF2bLNIlcLAbh2yWI3czVmWIZvLWFRcV05P1sp4vZk681HlAI8R3Y0g== dependencies: - "@dhis2-ui/layer" "8.5.0" - "@dhis2-ui/popper" "8.5.0" + "@dhis2-ui/layer" "8.6.0" + "@dhis2-ui/popper" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popper@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-8.5.0.tgz#0ae69c2c8a4663b725bf51d4b95f0ef6049d4632" - integrity sha512-qyY8hHE4t3ZUt1IEGSZQ82DALRwqXOfAiWQQTe50itjf0a2EX1TMUGaoJrOnRWz63QBKu+3o7GM59FJbrlYNkA== +"@dhis2-ui/popper@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-8.6.0.tgz#f530399d439fbc53b0b51b14d4885e7a8718ed52" + integrity sha512-hCwRO7onex69hBlmR0smmR2sShnrWEkOS9LouZsUgNSd3zTRMFfnUDcnZCZlr5474xn220KR2a2SZn7xgu9qvw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" "@popperjs/core" "^2.10.1" classnames "^2.3.1" prop-types "^15.7.2" react-popper "^2.2.5" resize-observer-polyfill "^1.5.1" -"@dhis2-ui/portal@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-8.5.0.tgz#51a0248a665b55c81184c72f26c31e0e5d45c303" - integrity sha512-pevkVaB4BuqH731kTbxVTVWCC4sRA9VpO5n/VCyXt6Nsr/6kggUszyc7igc+Cuy3fA2AUfWbRNE2YRwu6Dheyg== +"@dhis2-ui/portal@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-8.6.0.tgz#f4cb9811e525a924f8c2261c9856a51f3e0c0a91" + integrity sha512-1gWP5fuI6lQyeWoSIW8ZMZKLHBINp4kWc7s86nXiZDwZEEkrgh6t9OrwQ9jn+AJd7cJGqu5h1TpkCvFjuewaOA== dependencies: classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/radio@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-8.5.0.tgz#68735ef20aceb3f07c91e10b6220abd8f637ecbc" - integrity sha512-7Pc/ulaRcC61Vzcdf+G3txBhzdQFAdZBEfq4Kh+5rSgeJwvGmvp6ov2INzgObVB8UHW3gXGYs3ffUh56jU499g== +"@dhis2-ui/radio@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-8.6.0.tgz#34cd165eb031251fede9215263084ca58300f0c5" + integrity sha512-gcSk+gu22IVhvQVi8BUr0HCjiM4OsEWyQwUr8J5sFeZMn9s3WAOzUtI9f4KahlLLE86HL0fbh9SPOxC4nJ1ZBQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/required@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-8.5.0.tgz#e04889d433bfe4224892cbe41db5db511e274d05" - integrity sha512-XtVmBQgxC2Miw6X6lnU/SM6Ck6qf+lW4v7nWBcvkSzjp79NanhIEKH6XP2EqWHPKCJCQ0iBYAFj30jXIX0Jerg== +"@dhis2-ui/required@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-8.6.0.tgz#efdb61af5d720c4fe6445951d8a98119d5f0c2fd" + integrity sha512-2tZrPhWDZadlOQOrsqQe0EOmRX/CH6ejV8yH4LlfayyBaafBhDYuOqr0b0ZCPH25mPg78Iov2x7iu9eRpXllxA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/segmented-control@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-8.5.0.tgz#8c8a70e5324cc617de6de9f25666d25fbc3c2d83" - integrity sha512-2LiAiPGslJwxfx7Pje+EhW7JS1p9Y1bUPR0ARpWbB/a5KYTF0mj/xYGyPxATlFRSaQvFPjezu6s0kJI1DJNLxg== +"@dhis2-ui/segmented-control@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-8.6.0.tgz#3f13e4b94e20ea89fff8fcef5808d09acf380ad8" + integrity sha512-Uw9Zc4xCaiZT5/pX22sLwMll5i6L8YqadqZ/tAs32eMsB/PPs/Wahq9rKLMa3aQfoGLY6Tg62eBLF5gwqNx4Dw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/select@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-8.5.0.tgz#0cc2fac1fb221a32eae8368bed6c1d2fe33fd9e8" - integrity sha512-I7NaYZvsAHVEYHvfqVWfHiCMCZo0TVLDQA/RFX/2HP/6YgNd2yKTKFDZQpUAEzwfAJsqMAuWkCo3HICboQ+2eg== - dependencies: - "@dhis2-ui/box" "8.5.0" - "@dhis2-ui/button" "8.5.0" - "@dhis2-ui/card" "8.5.0" - "@dhis2-ui/checkbox" "8.5.0" - "@dhis2-ui/chip" "8.5.0" - "@dhis2-ui/field" "8.5.0" - "@dhis2-ui/input" "8.5.0" - "@dhis2-ui/layer" "8.5.0" - "@dhis2-ui/loader" "8.5.0" - "@dhis2-ui/popper" "8.5.0" - "@dhis2-ui/status-icon" "8.5.0" +"@dhis2-ui/select@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-8.6.0.tgz#6481faacf0733bf0e7d16918c0add3f59ae16cd5" + integrity sha512-b0l9P/T0U+WCFc+KojNDaWaZ6RFM0c0OLcWMbzN4o5MTe2tY74so4ES7pMRZD3aOjNmG8Isq2oHN9e3XgqJFNQ== + dependencies: + "@dhis2-ui/box" "8.6.0" + "@dhis2-ui/button" "8.6.0" + "@dhis2-ui/card" "8.6.0" + "@dhis2-ui/checkbox" "8.6.0" + "@dhis2-ui/chip" "8.6.0" + "@dhis2-ui/field" "8.6.0" + "@dhis2-ui/input" "8.6.0" + "@dhis2-ui/layer" "8.6.0" + "@dhis2-ui/loader" "8.6.0" + "@dhis2-ui/popper" "8.6.0" + "@dhis2-ui/status-icon" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/selector-bar@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-8.5.0.tgz#fa9df962e387d997293e952920ee16597264eac3" - integrity sha512-5UZ3hB1d4shnxi6IVrn4zHuQHHjnX2shXTCdxBUtp58Ti2kK9XS6sl1GBWeESLrYB2BOfiDQTGX0ykrLCN4eIA== - dependencies: - "@dhis2-ui/button" "8.5.0" - "@dhis2-ui/card" "8.5.0" - "@dhis2-ui/layer" "8.5.0" - "@dhis2-ui/popper" "8.5.0" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" +"@dhis2-ui/selector-bar@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-8.6.0.tgz#2bf86c2fa764febee9fca585af2de72079b100a2" + integrity sha512-TbBEkiUSb+in2TGIiHmpRkqmDL5FkZrag9aM0ZwJy4XcqEAfaYckqQoUj2D5ZWH2o5+uy1kdzfK33I+eCrQ9Zg== + dependencies: + "@dhis2-ui/button" "8.6.0" + "@dhis2-ui/card" "8.6.0" + "@dhis2-ui/layer" "8.6.0" + "@dhis2-ui/popper" "8.6.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" "@testing-library/react" "^12.1.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/sharing-dialog@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-8.5.0.tgz#d4367605965e957625a411ab45304a977083f942" - integrity sha512-NtnQo1bKDhKgNzUVKIYwwzEkNB9LTuuyS5XKMHqegrHS5hclSpk7c1muojGaQWyWzOH+P3gUu4t/9hntc14XDw== - dependencies: - "@dhis2-ui/box" "8.5.0" - "@dhis2-ui/button" "8.5.0" - "@dhis2-ui/card" "8.5.0" - "@dhis2-ui/divider" "8.5.0" - "@dhis2-ui/input" "8.5.0" - "@dhis2-ui/layer" "8.5.0" - "@dhis2-ui/menu" "8.5.0" - "@dhis2-ui/modal" "8.5.0" - "@dhis2-ui/notice-box" "8.5.0" - "@dhis2-ui/popper" "8.5.0" - "@dhis2-ui/select" "8.5.0" - "@dhis2-ui/tab" "8.5.0" - "@dhis2-ui/tooltip" "8.5.0" - "@dhis2-ui/user-avatar" "8.5.0" +"@dhis2-ui/sharing-dialog@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-8.6.0.tgz#dfd87e4477f68bf033612b73400fa2d00ca19ca3" + integrity sha512-3emtrk/o6F2jqUNVWPbymE8s/eB/pJA9SQ53d9sy860MRYpj+UHaUnXgKR5KMZfVkpYhKm6f2nDo/fRwYVYL6g== + dependencies: + "@dhis2-ui/box" "8.6.0" + "@dhis2-ui/button" "8.6.0" + "@dhis2-ui/card" "8.6.0" + "@dhis2-ui/divider" "8.6.0" + "@dhis2-ui/input" "8.6.0" + "@dhis2-ui/layer" "8.6.0" + "@dhis2-ui/menu" "8.6.0" + "@dhis2-ui/modal" "8.6.0" + "@dhis2-ui/notice-box" "8.6.0" + "@dhis2-ui/popper" "8.6.0" + "@dhis2-ui/select" "8.6.0" + "@dhis2-ui/tab" "8.6.0" + "@dhis2-ui/tooltip" "8.6.0" + "@dhis2-ui/user-avatar" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" "@react-hook/size" "^2.1.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/status-icon@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-8.5.0.tgz#85c018e36449adfd2ccc32fc22fa502581ff80a4" - integrity sha512-XV4QsZg+W1LEnOY0jn0KEA7HrjgaLlO4XWqUkWFHa3eqkVl7jOkVgfc+AehW73Ocai9yROef42x9AfkY2vim4A== +"@dhis2-ui/status-icon@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-8.6.0.tgz#6a2ef59ff4b474bc57e07ec88479d5c67a75bf9e" + integrity sha512-rPBiE0Ihy0x8Pgrsg0NPJJTDtbWZvPOUkPsqaH+ZKm8LwIa7vwWZZY5TlVQAwe8Odf5xGq+qsM69BpuBeirtlg== dependencies: - "@dhis2-ui/loader" "8.5.0" + "@dhis2-ui/loader" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/switch@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-8.5.0.tgz#c2f2b3fa23306d435b35b6a7d539756c4622c0ed" - integrity sha512-bt9LBsuocL15UzLx6npC1xKxy55HCWBUYwEa6ievHpXGIGoYi2IbnwduQpeW7EeVCC10Cc5JvNYWTFZVNjyU4w== +"@dhis2-ui/switch@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-8.6.0.tgz#414d8a8d956e0270044ebcdc5bde8b1ef4589229" + integrity sha512-yYtIBmjgH19m2O89lyf/O7IGJFOWsK5XKuWCu9CrK8hnzad5GMrO6FmGbiOGPnfXyhkor9pq0ikqOd4NZndEGA== dependencies: - "@dhis2-ui/field" "8.5.0" - "@dhis2-ui/required" "8.5.0" + "@dhis2-ui/field" "8.6.0" + "@dhis2-ui/required" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tab@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-8.5.0.tgz#905e02326110a894faefcada43c0af9fde799fd6" - integrity sha512-nxiOsSj9KGPjUId8RNhPFW2j8Imnq7JU6hVoVtbnnbLM6CQPosOzlGylQ5TBDIKee96QnxunF0sGplNPkDMMJg== +"@dhis2-ui/tab@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-8.6.0.tgz#bfeacfe27e85331596650fed5adb58cbf8044173" + integrity sha512-68kCLyknztyN0y7n2rNhA9z6ldgT0vOkNbQU8MubgrhPDfsx19cwCHNOn7u1pTjztR0Dnopd8P2WqzDOBvL0rg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/table@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-8.5.0.tgz#5ec7a31cf849eac9e429af14a11d84535c0be7c5" - integrity sha512-ZcMdUW9Mq1+AU4y9QdapLlgtF7lYKwifpdCmXpdhXSpsEpjbyWU7isn9kz6KRexwKx9meIVTyYSvZlgp5uyF1g== +"@dhis2-ui/table@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-8.6.0.tgz#3fc3285b15669fa91001d5da9b354a955ab73693" + integrity sha512-ni4/k1xEgvAjKQKzkUZFpeMyGXqezko4q7rrnNAR3yEMlUFDZRdZQWRcdvWFqtqZdUgehri/OIgzH9pOIZUkwQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tag@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-8.5.0.tgz#3b5749fac352dbb5998c9ac9b0c49c0ef34f1e1b" - integrity sha512-hO451OF4ipq1SaNNFl7M5H3FRmrUi5Y/IhiER+CfW0h/0D7zegUZjBJDpWICMy390CawXI/PtldEG5fMth83Jw== +"@dhis2-ui/tag@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-8.6.0.tgz#ed18fe2f627195c1c6477da1e48ab90f199bbee1" + integrity sha512-3zw6hU6XzTj3pFLaY1cXEn009o5A5VWp+Y4/flHJLjhJzX4qFbx80oH057G4vcG2i55uFYR4L5giHhfZAvMTJw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/text-area@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-8.5.0.tgz#5906eba63cf67b166ed98b36148cd6acdd4f9632" - integrity sha512-60gKXPpv35IPqq+R1SyjDUkKuMJTbZJQEzprzF1V02YreDbpSXRag/8iVkpffF8GryJlSIAMun9hsiygkqwEkA== +"@dhis2-ui/text-area@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-8.6.0.tgz#f6b5bd6b4532a6e5b3860e6006e9f9340f695b5c" + integrity sha512-NOCmVQvgwLiL8vIPZwCe3iyQyEjIwTwBHQyM+nb2xD2KCZcTaFjTtMV34W6sgKdxuSNQTx/38xhG6N6U7IL9qQ== dependencies: - "@dhis2-ui/box" "8.5.0" - "@dhis2-ui/field" "8.5.0" - "@dhis2-ui/loader" "8.5.0" - "@dhis2-ui/status-icon" "8.5.0" + "@dhis2-ui/box" "8.6.0" + "@dhis2-ui/field" "8.6.0" + "@dhis2-ui/loader" "8.6.0" + "@dhis2-ui/status-icon" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-icons" "8.5.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-icons" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tooltip@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-8.5.0.tgz#245af54e40021d476a61b8c08ab6a63c21775f51" - integrity sha512-+AAJCPyZUq7UciDiaIiYEQloQVeGwZ0zCYCWX9vC+O+nkV9gaM/tMkkqHHkDwR51KBmxOUZLqR82/X2wU+UNJQ== +"@dhis2-ui/tooltip@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-8.6.0.tgz#f38598a420191063e89be1787ac1b693f640b55f" + integrity sha512-AS/kLMhQlxLlIPya1b8O2WFwjmRWK1jbepmC42I1I8q0piuHAb96Azf6NUwf3X7H8+bHXYhTXkBlJqzTGHsgUg== dependencies: - "@dhis2-ui/popper" "8.5.0" - "@dhis2-ui/portal" "8.5.0" + "@dhis2-ui/popper" "8.6.0" + "@dhis2-ui/portal" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/transfer@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-8.5.0.tgz#45cfcc3598c05123c0f0e132dbf183033edc4181" - integrity sha512-KfGgj1ierngxFsaGpmcSCyg1foHqnqLeipYTgSg02FM5qispre+zmvUH9DNbW7OGDaeO9Mpc0r+LtN1U3AxlPQ== - dependencies: - "@dhis2-ui/button" "8.5.0" - "@dhis2-ui/field" "8.5.0" - "@dhis2-ui/input" "8.5.0" - "@dhis2-ui/intersection-detector" "8.5.0" - "@dhis2-ui/loader" "8.5.0" +"@dhis2-ui/transfer@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-8.6.0.tgz#f4b1049d31de0ad18dca3e19cac5887acfa1971d" + integrity sha512-KwWDR0CQxMlXRv9a8XN0Xm1MVB1WEIw4uk8T2ogTUzZCD7ICTk+jFeKxLkEPDJxjS0BVknuJW8HfXBS77ESydg== + dependencies: + "@dhis2-ui/button" "8.6.0" + "@dhis2-ui/field" "8.6.0" + "@dhis2-ui/input" "8.6.0" + "@dhis2-ui/intersection-detector" "8.6.0" + "@dhis2-ui/loader" "8.6.0" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/user-avatar@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-8.5.0.tgz#27e445dcc5d5d1952348433287e7aadc9784a309" - integrity sha512-HAtLxpw6G1C2NnGgrivGjQ3W6fld2Dg+PwJAwfZvNsE9LHo7NMF/x5ZKVcMJbLcV4CSP56e1CoRuBm7iTRvfIg== +"@dhis2-ui/user-avatar@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-8.6.0.tgz#810560104d9f0982c3c9257e145fc1b87dfbfe4c" + integrity sha512-Zad+ytXbd3VzSoNBNQzWaz54OovuC5Z7I4M06TGuzUR+eKwht5hvNf4uKDuwJpo2Eyzz4Pmv5yh69sdhqlT2NQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.5.0" + "@dhis2/ui-constants" "8.6.0" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2/app-runtime@^3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@dhis2/app-runtime/-/app-runtime-3.5.0.tgz#e4416e12b76749965eed333b6f95b2c52a42a2ce" - integrity sha512-WnaosdNSyaJ2q5TU5RUnsg+rQX03oayuo/37BnJbGZI1DeGEUT/7K3gd1wSTSPFM+zN6rm+rkbIXs/C3WgRRAQ== +"@dhis2/app-runtime@3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-runtime/-/app-runtime-3.6.0.tgz#93bacabee12ea621d2cfc7c590cc272be3715f38" + integrity sha512-ti1b3hsMifj9KbbvAoaMJrxCXSv1g45J4mTy7ovk0elKZLW3eTLwZ9K8/SC8pG7Ntu4aBn9rWWW4A98G/zNP8Q== dependencies: - "@dhis2/app-service-alerts" "3.5.0" - "@dhis2/app-service-config" "3.5.0" - "@dhis2/app-service-data" "3.5.0" - "@dhis2/app-service-offline" "3.5.0" + "@dhis2/app-service-alerts" "3.6.0" + "@dhis2/app-service-config" "3.6.0" + "@dhis2/app-service-data" "3.6.0" + "@dhis2/app-service-offline" "3.6.0" -"@dhis2/app-service-alerts@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-alerts/-/app-service-alerts-3.5.0.tgz#b21cb636e43371e7d3842c50a9f6f025be6fc71a" - integrity sha512-VYFrD4ltY4yTCLsbA/qFd/nO3xIs2lwZfSQ/NRvRhVecN1xq2vfqBS2tK5sompB7r1GaAlr1QInBeDJN9yvj7w== +"@dhis2/app-service-alerts@3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-alerts/-/app-service-alerts-3.6.0.tgz#d117d168464fe3eb0ee0fcb612ff46ebd2c32451" + integrity sha512-x5jbGFCkmkL5Te18A8ZcoWpS9f621s5JTIEiQwZaDpq9lM/+4F5+/MgeUbI/c2bhKZEVGsCQzcbUdS0KnG6fVw== -"@dhis2/app-service-config@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-config/-/app-service-config-3.5.0.tgz#fc91a855fff818353bc298eaca9e52bd94ffc576" - integrity sha512-I4qh/8Tpi3UpLtenW7UPNWvykmlOSNlHWfNt8S6ZsinLn7hyXt14h20N+MvWD7m95JWnAjBhqZyy1PzhssULmA== +"@dhis2/app-service-config@3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-config/-/app-service-config-3.6.0.tgz#af3de5881af58dda7e58c7de31b577680fcb28d8" + integrity sha512-Q1ayR1XQKP7Pqly0v3n29sPw7qVc1QnG9kZfHfM0lNYATkAzU/aqJhjuFldDhMo2sOHFEf4AIFC9uWzbW4m45w== -"@dhis2/app-service-data@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-data/-/app-service-data-3.5.0.tgz#986e592d58f7fec7698edf3cd1dc0982756f32d4" - integrity sha512-LAoJtVQZhf7KltQ93exBNcbYygqN87Eqm50C6J737yPM5thyiZD6Rs4Zvte25gQy8IoFGZDmyJC1Dm5aFHjE+Q== +"@dhis2/app-service-data@3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-data/-/app-service-data-3.6.0.tgz#68da09cbc5308841b6fa239487185994d819b0d5" + integrity sha512-SX3R/apGj5P2Og1yU7Lo54QftGf0fVzlkHoTreQ2vp2OOHriHGkgLy25m9QMLnJMgBwMWTvKqov/gRibjfn+Dw== dependencies: react-query "^3.13.11" -"@dhis2/app-service-offline@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-offline/-/app-service-offline-3.5.0.tgz#af3677fd10a54415db6ab4740eb4940023b2db29" - integrity sha512-phvl4gnjMXgl3cxios7upShs0q5GV3+2ZRyeXGXD57tIMypyhLwHKqEoVpFbinMp4zvX25vJFMm6ub6HsnRcSQ== +"@dhis2/app-service-offline@3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-offline/-/app-service-offline-3.6.0.tgz#58bfd2fd375677b582f85822019fa44bfd37306b" + integrity sha512-TxqFmS/jWE6Y1jZX1Mg7FWwsoWGKNL5kEqyPzE9XOGBAdG7lmjSR+TXGSkZokG51ZgvSg1Yhg/5Xml0HTV1DYQ== dependencies: lodash "^4.17.21" @@ -2018,90 +2018,90 @@ resolved "https://registry.yarnpkg.com/@dhis2/prop-types/-/prop-types-3.1.2.tgz#65b8ad2da8cd2f72bc8b951049a6c9d1b97af3e9" integrity sha512-eM0jjLOWvtXWqSFp5YC4DHFpkP8Y1D2eUwGV7MBWjni+o27oesVan+oT7WHeOeLdlAd4acRJrnaaAyB4Ck1wGQ== -"@dhis2/ui-constants@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-8.5.0.tgz#0f76576ff4e6a5297b2d20203662bdf6bb3e5365" - integrity sha512-5xc5BkCMP2CjgJWPd4IakHd5JaDrWp0qOyXfVBiuHoz1pYQZMLha3dcv8MKOCh2FIavn/QHQKyMpEBv9SGoENQ== +"@dhis2/ui-constants@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-8.6.0.tgz#0ca03fe0fed39c59db4382a0ce1a77aaf9fc835d" + integrity sha512-Q/59ntYwBnDkXpGAsmvR290pjUrrP9c/danNJp0J3oH3Nz14xhQQodsbpqm787XHsgUXL5+y0j9CLf/Dd+asyQ== dependencies: prop-types "^15.7.2" -"@dhis2/ui-forms@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-8.5.0.tgz#71eaf4cf7a4ea566108b875db0834b91126b6aff" - integrity sha512-LtF+Dddkej6QwENEH6V8CbaEyK0WYaWu/8jAwpvL9gs/lK07+Ds/DUl3vG8dQCnzdQJVebpJh8vRgwhnjRtQ6Q== - dependencies: - "@dhis2-ui/button" "8.5.0" - "@dhis2-ui/checkbox" "8.5.0" - "@dhis2-ui/field" "8.5.0" - "@dhis2-ui/file-input" "8.5.0" - "@dhis2-ui/input" "8.5.0" - "@dhis2-ui/radio" "8.5.0" - "@dhis2-ui/select" "8.5.0" - "@dhis2-ui/switch" "8.5.0" - "@dhis2-ui/text-area" "8.5.0" +"@dhis2/ui-forms@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-8.6.0.tgz#5caf066b5d92b845912a9a00e871e15d76e9d9dc" + integrity sha512-twbo/LCJ6GAlXVNJFsm5Ket/+WPPHO/1dbhEZAvJzyHxr+V9CvMw4NhR1ZNhiRYzxfUCS8DtnoqCNrs98JDMoQ== + dependencies: + "@dhis2-ui/button" "8.6.0" + "@dhis2-ui/checkbox" "8.6.0" + "@dhis2-ui/field" "8.6.0" + "@dhis2-ui/file-input" "8.6.0" + "@dhis2-ui/input" "8.6.0" + "@dhis2-ui/radio" "8.6.0" + "@dhis2-ui/select" "8.6.0" + "@dhis2-ui/switch" "8.6.0" + "@dhis2-ui/text-area" "8.6.0" "@dhis2/prop-types" "^3.1.2" classnames "^2.3.1" final-form "^4.20.2" prop-types "^15.7.2" react-final-form "^6.5.3" -"@dhis2/ui-icons@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-8.5.0.tgz#6ee932343b6ce8ca8a562d335d61610d9693dafa" - integrity sha512-0IG2ycE0/TZwxy8Oks/TEGRuwr9OevG0n8uPjwLVmwwg7q42q70VN142VuAoDoVjcburAmn4tcKwYRlrev2PvA== +"@dhis2/ui-icons@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-8.6.0.tgz#05fddb26c90ccc559f1dc4ee2de84fb852231eb5" + integrity sha512-VwndChdz17D5fbGJx9YrdE1aiv6eNNnpjQKJ9dkcuEvBIA4nZt4m+E4xllHrSa5WhJjX8DAAo7Sjr36WvzzDJw== -"@dhis2/ui@^8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-8.5.0.tgz#491818113086e4c342ed4e01792f9ccaa85040db" - integrity sha512-R3JxMfW3bdy42FuFhZ2iGWGXlnO0J/OqJOamTpRHK17OzutWXtAQHrPZ+fBeJXc/Ir0M9rmwjguKP14nA2brtA== - dependencies: - "@dhis2-ui/alert" "8.5.0" - "@dhis2-ui/box" "8.5.0" - "@dhis2-ui/button" "8.5.0" - "@dhis2-ui/card" "8.5.0" - "@dhis2-ui/center" "8.5.0" - "@dhis2-ui/checkbox" "8.5.0" - "@dhis2-ui/chip" "8.5.0" - "@dhis2-ui/cover" "8.5.0" - "@dhis2-ui/css" "8.5.0" - "@dhis2-ui/divider" "8.5.0" - "@dhis2-ui/field" "8.5.0" - "@dhis2-ui/file-input" "8.5.0" - "@dhis2-ui/header-bar" "8.5.0" - "@dhis2-ui/help" "8.5.0" - "@dhis2-ui/input" "8.5.0" - "@dhis2-ui/intersection-detector" "8.5.0" - "@dhis2-ui/label" "8.5.0" - "@dhis2-ui/layer" "8.5.0" - "@dhis2-ui/legend" "8.5.0" - "@dhis2-ui/loader" "8.5.0" - "@dhis2-ui/logo" "8.5.0" - "@dhis2-ui/menu" "8.5.0" - "@dhis2-ui/modal" "8.5.0" - "@dhis2-ui/node" "8.5.0" - "@dhis2-ui/notice-box" "8.5.0" - "@dhis2-ui/organisation-unit-tree" "8.5.0" - "@dhis2-ui/pagination" "8.5.0" - "@dhis2-ui/popover" "8.5.0" - "@dhis2-ui/popper" "8.5.0" - "@dhis2-ui/portal" "8.5.0" - "@dhis2-ui/radio" "8.5.0" - "@dhis2-ui/required" "8.5.0" - "@dhis2-ui/segmented-control" "8.5.0" - "@dhis2-ui/select" "8.5.0" - "@dhis2-ui/selector-bar" "8.5.0" - "@dhis2-ui/sharing-dialog" "8.5.0" - "@dhis2-ui/switch" "8.5.0" - "@dhis2-ui/tab" "8.5.0" - "@dhis2-ui/table" "8.5.0" - "@dhis2-ui/tag" "8.5.0" - "@dhis2-ui/text-area" "8.5.0" - "@dhis2-ui/tooltip" "8.5.0" - "@dhis2-ui/transfer" "8.5.0" - "@dhis2-ui/user-avatar" "8.5.0" - "@dhis2/ui-constants" "8.5.0" - "@dhis2/ui-forms" "8.5.0" - "@dhis2/ui-icons" "8.5.0" +"@dhis2/ui@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-8.6.0.tgz#dcdc45c42e9415fe7a4c2c3fee932a0b9dc9b638" + integrity sha512-fH0uD7TrupgpG9nf2kX2suoMtdWC+EoVhC36j/w8t+6IED5P85kUK2otlFIrwdOQY5VJrzjGkH0JjIgx7IM43w== + dependencies: + "@dhis2-ui/alert" "8.6.0" + "@dhis2-ui/box" "8.6.0" + "@dhis2-ui/button" "8.6.0" + "@dhis2-ui/card" "8.6.0" + "@dhis2-ui/center" "8.6.0" + "@dhis2-ui/checkbox" "8.6.0" + "@dhis2-ui/chip" "8.6.0" + "@dhis2-ui/cover" "8.6.0" + "@dhis2-ui/css" "8.6.0" + "@dhis2-ui/divider" "8.6.0" + "@dhis2-ui/field" "8.6.0" + "@dhis2-ui/file-input" "8.6.0" + "@dhis2-ui/header-bar" "8.6.0" + "@dhis2-ui/help" "8.6.0" + "@dhis2-ui/input" "8.6.0" + "@dhis2-ui/intersection-detector" "8.6.0" + "@dhis2-ui/label" "8.6.0" + "@dhis2-ui/layer" "8.6.0" + "@dhis2-ui/legend" "8.6.0" + "@dhis2-ui/loader" "8.6.0" + "@dhis2-ui/logo" "8.6.0" + "@dhis2-ui/menu" "8.6.0" + "@dhis2-ui/modal" "8.6.0" + "@dhis2-ui/node" "8.6.0" + "@dhis2-ui/notice-box" "8.6.0" + "@dhis2-ui/organisation-unit-tree" "8.6.0" + "@dhis2-ui/pagination" "8.6.0" + "@dhis2-ui/popover" "8.6.0" + "@dhis2-ui/popper" "8.6.0" + "@dhis2-ui/portal" "8.6.0" + "@dhis2-ui/radio" "8.6.0" + "@dhis2-ui/required" "8.6.0" + "@dhis2-ui/segmented-control" "8.6.0" + "@dhis2-ui/select" "8.6.0" + "@dhis2-ui/selector-bar" "8.6.0" + "@dhis2-ui/sharing-dialog" "8.6.0" + "@dhis2-ui/switch" "8.6.0" + "@dhis2-ui/tab" "8.6.0" + "@dhis2-ui/table" "8.6.0" + "@dhis2-ui/tag" "8.6.0" + "@dhis2-ui/text-area" "8.6.0" + "@dhis2-ui/tooltip" "8.6.0" + "@dhis2-ui/transfer" "8.6.0" + "@dhis2-ui/user-avatar" "8.6.0" + "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-forms" "8.6.0" + "@dhis2/ui-icons" "8.6.0" prop-types "^15.7.2" "@eslint/eslintrc@^0.4.3": From 891a8638e27eb744265433a99cf9f869ab251d7f Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Fri, 21 Oct 2022 13:56:17 +0000 Subject: [PATCH 40/88] chore(release): cut 10.1.1 [skip release] ## [10.1.1](https://github.com/dhis2/app-platform/compare/v10.1.0...v10.1.1) (2022-10-21) ### Bug Fixes * **deps:** update app-runtime and ui packages ([#761](https://github.com/dhis2/app-platform/issues/761)) ([f6406c5](https://github.com/dhis2/app-platform/commit/f6406c55be747793317021423e39bf98dc7f04bb)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26d089968..c1d43d622 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.1.1](https://github.com/dhis2/app-platform/compare/v10.1.0...v10.1.1) (2022-10-21) + + +### Bug Fixes + +* **deps:** update app-runtime and ui packages ([#761](https://github.com/dhis2/app-platform/issues/761)) ([f6406c5](https://github.com/dhis2/app-platform/commit/f6406c55be747793317021423e39bf98dc7f04bb)) + # [10.1.0](https://github.com/dhis2/app-platform/compare/v10.0.1...v10.1.0) (2022-10-06) diff --git a/adapter/package.json b/adapter/package.json index 4face651f..c78ecec91 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.1.0", + "version": "10.1.1", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.1.0", + "@dhis2/pwa": "10.1.1", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.0", + "@dhis2/cli-app-scripts": "10.1.1", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 3a273c01a..93cc3ffa6 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.1.0", + "version": "10.1.1", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.1.0", + "@dhis2/app-shell": "10.1.1", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@yarnpkg/lockfile": "^1.1.0", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index d0ee2a169..e94c8a427 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.1.0", + "version": "10.1.1", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 29cd10655..b856f57ff 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.1.0", + "version": "10.1.1", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 8507a2c66..2ab672cee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.1.0", + "version": "10.1.1", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index 0673a3911..80a0bd420 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.1.0", + "version": "10.1.1", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.0" + "@dhis2/cli-app-scripts": "10.1.1" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 3f51a8296..9dbc3f6a8 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.1.0", + "version": "10.1.1", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.1.0", + "@dhis2/app-adapter": "10.1.1", "@dhis2/app-runtime": "3.6.0", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/pwa": "10.1.0", + "@dhis2/pwa": "10.1.1", "@dhis2/ui": "8.6.0", "classnames": "^2.2.6", "moment": "^2.29.1", From bbfd3eb2172e81126af0f1515e575134e1c2d79e Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Mon, 24 Oct 2022 14:57:10 +0200 Subject: [PATCH 41/88] fix(pwa): file SWR filter & allow navigation 403s [LIBS-356] [LIBS-357] (#762) * fix(pwa): file SWR filter & allow navigation 403s * fix: use SWR for fonts --- pwa/src/service-worker/service-worker.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pwa/src/service-worker/service-worker.js b/pwa/src/service-worker/service-worker.js index 6f934f6ba..9e2817e25 100644 --- a/pwa/src/service-worker/service-worker.js +++ b/pwa/src/service-worker/service-worker.js @@ -99,9 +99,10 @@ export function setUpServiceWorker() { const navigationRouteHandler = ({ request }) => { return fetch(request) .then((response) => { - if (response.type === 'opaqueredirect') { - // It's sending a redirect to the login page. Return - // that to the client + if (response.type === 'opaqueredirect' || !response.ok) { + // It's sending a redirect to the login page, + // or an 'unauthorized'/'forbidden' response. + // Return that to the client return response } @@ -109,7 +110,7 @@ export function setUpServiceWorker() { return matchPrecache(indexUrl) }) .catch(() => { - // Request failed (maybe offline). Return cached response + // Request failed (probably offline). Return cached response return matchPrecache(indexUrl) }) } @@ -137,13 +138,13 @@ export function setUpServiceWorker() { // If not recording, fall through to default caching strategies for app // shell: - // SWR strategy for static assets that can't be precached. + // SWR strategy for image assets that can't be precached. // (Skip in development environments) registerRoute( ({ url }) => PRODUCTION_ENV && urlMeetsAppShellCachingCriteria(url) && - fileExtensionRegexp.test(url.pathname), + /\.(jpg|gif|png|bmp|tiff|ico|woff)$/.test(url.pathname), new StaleWhileRevalidate({ cacheName: 'other-assets' }) ) From f861d78724d99459db681d443e23eebf43720c22 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Mon, 24 Oct 2022 13:04:27 +0000 Subject: [PATCH 42/88] chore(release): cut 10.1.2 [skip release] ## [10.1.2](https://github.com/dhis2/app-platform/compare/v10.1.1...v10.1.2) (2022-10-24) ### Bug Fixes * **pwa:** file SWR filter & allow navigation 403s [LIBS-356] [LIBS-357] ([#762](https://github.com/dhis2/app-platform/issues/762)) ([bbfd3eb](https://github.com/dhis2/app-platform/commit/bbfd3eb2172e81126af0f1515e575134e1c2d79e)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1d43d622..09e24547f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.1.2](https://github.com/dhis2/app-platform/compare/v10.1.1...v10.1.2) (2022-10-24) + + +### Bug Fixes + +* **pwa:** file SWR filter & allow navigation 403s [LIBS-356] [LIBS-357] ([#762](https://github.com/dhis2/app-platform/issues/762)) ([bbfd3eb](https://github.com/dhis2/app-platform/commit/bbfd3eb2172e81126af0f1515e575134e1c2d79e)) + ## [10.1.1](https://github.com/dhis2/app-platform/compare/v10.1.0...v10.1.1) (2022-10-21) diff --git a/adapter/package.json b/adapter/package.json index c78ecec91..08e16b053 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.1.1", + "version": "10.1.2", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.1.1", + "@dhis2/pwa": "10.1.2", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.1", + "@dhis2/cli-app-scripts": "10.1.2", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 93cc3ffa6..f3fcfb55d 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.1.1", + "version": "10.1.2", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.1.1", + "@dhis2/app-shell": "10.1.2", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@yarnpkg/lockfile": "^1.1.0", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index e94c8a427..84b60aa64 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.1.1", + "version": "10.1.2", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index b856f57ff..301873a22 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.1.1", + "version": "10.1.2", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 2ab672cee..5fc13d083 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.1.1", + "version": "10.1.2", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index 80a0bd420..d13bb4cae 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.1.1", + "version": "10.1.2", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.1" + "@dhis2/cli-app-scripts": "10.1.2" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 9dbc3f6a8..d480a4e63 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.1.1", + "version": "10.1.2", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.1.1", + "@dhis2/app-adapter": "10.1.2", "@dhis2/app-runtime": "3.6.0", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/pwa": "10.1.1", + "@dhis2/pwa": "10.1.2", "@dhis2/ui": "8.6.0", "classnames": "^2.2.6", "moment": "^2.29.1", From 190b9e7a16220421d269410c6482a10c8ff2b6ea Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Wed, 26 Oct 2022 09:37:52 +0200 Subject: [PATCH 43/88] fix(deps): bump app-runtime to 3.6.1 [LIBS-356] (#763) * fix(deps): bump app-runtime to 3.6.1 & unpin version * fix: let version be pinned for now --- shell/package.json | 2 +- yarn.lock | 56 +++++++++++++++++++++++----------------------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/shell/package.json b/shell/package.json index d480a4e63..85e13226d 100644 --- a/shell/package.json +++ b/shell/package.json @@ -16,7 +16,7 @@ }, "dependencies": { "@dhis2/app-adapter": "10.1.2", - "@dhis2/app-runtime": "3.6.0", + "@dhis2/app-runtime": "3.6.1", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/pwa": "10.1.2", "@dhis2/ui": "8.6.0", diff --git a/yarn.lock b/yarn.lock index 5053879fd..270120d67 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1890,37 +1890,37 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2/app-runtime@3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@dhis2/app-runtime/-/app-runtime-3.6.0.tgz#93bacabee12ea621d2cfc7c590cc272be3715f38" - integrity sha512-ti1b3hsMifj9KbbvAoaMJrxCXSv1g45J4mTy7ovk0elKZLW3eTLwZ9K8/SC8pG7Ntu4aBn9rWWW4A98G/zNP8Q== - dependencies: - "@dhis2/app-service-alerts" "3.6.0" - "@dhis2/app-service-config" "3.6.0" - "@dhis2/app-service-data" "3.6.0" - "@dhis2/app-service-offline" "3.6.0" - -"@dhis2/app-service-alerts@3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-alerts/-/app-service-alerts-3.6.0.tgz#d117d168464fe3eb0ee0fcb612ff46ebd2c32451" - integrity sha512-x5jbGFCkmkL5Te18A8ZcoWpS9f621s5JTIEiQwZaDpq9lM/+4F5+/MgeUbI/c2bhKZEVGsCQzcbUdS0KnG6fVw== - -"@dhis2/app-service-config@3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-config/-/app-service-config-3.6.0.tgz#af3de5881af58dda7e58c7de31b577680fcb28d8" - integrity sha512-Q1ayR1XQKP7Pqly0v3n29sPw7qVc1QnG9kZfHfM0lNYATkAzU/aqJhjuFldDhMo2sOHFEf4AIFC9uWzbW4m45w== - -"@dhis2/app-service-data@3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-data/-/app-service-data-3.6.0.tgz#68da09cbc5308841b6fa239487185994d819b0d5" - integrity sha512-SX3R/apGj5P2Og1yU7Lo54QftGf0fVzlkHoTreQ2vp2OOHriHGkgLy25m9QMLnJMgBwMWTvKqov/gRibjfn+Dw== +"@dhis2/app-runtime@3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@dhis2/app-runtime/-/app-runtime-3.6.1.tgz#d39c492239cc81faf2b3ec92fe39c11440640953" + integrity sha512-I+hTHXTqqDSbOCRFd/60AvCGkyYmwMtUD1EkyURuB/NaK37xQQZzrz2/JD3esBYGl2Ner3nLoOgbQwXEMvBeZw== + dependencies: + "@dhis2/app-service-alerts" "3.6.1" + "@dhis2/app-service-config" "3.6.1" + "@dhis2/app-service-data" "3.6.1" + "@dhis2/app-service-offline" "3.6.1" + +"@dhis2/app-service-alerts@3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-alerts/-/app-service-alerts-3.6.1.tgz#e3081d05a70b12f8da171e44afc45bdd04265be5" + integrity sha512-hv7cSvSEwlxsSzRoqQ83ymzaMl6lXcFJ3gpsG1qDebNVAjRZAWXZV9GKWGXtdP7GRCOoOypXrzv8WgUlHgMhRQ== + +"@dhis2/app-service-config@3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-config/-/app-service-config-3.6.1.tgz#0fb2132e8515e9bdf0af83eb7a138583ff885fe4" + integrity sha512-n3Awr5I1qhJ8UHQTmdaBRiwStU8XbSRVEDfE7TnA0kFCVWoDZIH4YJxnmcTFJLUFxYtaEN4nN9GgrGBGoVcfnQ== + +"@dhis2/app-service-data@3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-data/-/app-service-data-3.6.1.tgz#74b0d4d2b4935aa416d52863eacea9c15a1c4d80" + integrity sha512-BX1VOvkwaGmi9NB+r4nnjUQ34tXMlK44c+Tc2jI7EYP6jCSRsbGXeBagP5nSkBdm7XXb2IWlvY2n3/fZFed0kg== dependencies: react-query "^3.13.11" -"@dhis2/app-service-offline@3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-offline/-/app-service-offline-3.6.0.tgz#58bfd2fd375677b582f85822019fa44bfd37306b" - integrity sha512-TxqFmS/jWE6Y1jZX1Mg7FWwsoWGKNL5kEqyPzE9XOGBAdG7lmjSR+TXGSkZokG51ZgvSg1Yhg/5Xml0HTV1DYQ== +"@dhis2/app-service-offline@3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-offline/-/app-service-offline-3.6.1.tgz#4c010888d5b7255920304b8da1581af2144540da" + integrity sha512-nj2FwFiU/XbMsbr+I4HG2v/tmXJW2VBESyhqZ57nzBKhFfVBJgB1bdLBq3gCvw1tRZC2UhqSplilx/vFXg6c8g== dependencies: lodash "^4.17.21" From 17fdf46f701187d1aafdd1a6294580364fcbd7a2 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Wed, 26 Oct 2022 07:47:11 +0000 Subject: [PATCH 44/88] chore(release): cut 10.1.3 [skip release] ## [10.1.3](https://github.com/dhis2/app-platform/compare/v10.1.2...v10.1.3) (2022-10-26) ### Bug Fixes * **deps:** bump app-runtime to 3.6.1 [LIBS-356] ([#763](https://github.com/dhis2/app-platform/issues/763)) ([190b9e7](https://github.com/dhis2/app-platform/commit/190b9e7a16220421d269410c6482a10c8ff2b6ea)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09e24547f..0f902cbde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.1.3](https://github.com/dhis2/app-platform/compare/v10.1.2...v10.1.3) (2022-10-26) + + +### Bug Fixes + +* **deps:** bump app-runtime to 3.6.1 [LIBS-356] ([#763](https://github.com/dhis2/app-platform/issues/763)) ([190b9e7](https://github.com/dhis2/app-platform/commit/190b9e7a16220421d269410c6482a10c8ff2b6ea)) + ## [10.1.2](https://github.com/dhis2/app-platform/compare/v10.1.1...v10.1.2) (2022-10-24) diff --git a/adapter/package.json b/adapter/package.json index 08e16b053..3a59b097c 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.1.2", + "version": "10.1.3", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.1.2", + "@dhis2/pwa": "10.1.3", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.2", + "@dhis2/cli-app-scripts": "10.1.3", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index f3fcfb55d..10185366f 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.1.2", + "version": "10.1.3", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.1.2", + "@dhis2/app-shell": "10.1.3", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@yarnpkg/lockfile": "^1.1.0", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index 84b60aa64..b3f994998 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.1.2", + "version": "10.1.3", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 301873a22..05ae204bb 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.1.2", + "version": "10.1.3", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 5fc13d083..0333f7b5a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.1.2", + "version": "10.1.3", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index d13bb4cae..e3015cc38 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.1.2", + "version": "10.1.3", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.2" + "@dhis2/cli-app-scripts": "10.1.3" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 85e13226d..8d113b0b7 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.1.2", + "version": "10.1.3", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.1.2", + "@dhis2/app-adapter": "10.1.3", "@dhis2/app-runtime": "3.6.1", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/pwa": "10.1.2", + "@dhis2/pwa": "10.1.3", "@dhis2/ui": "8.6.0", "classnames": "^2.2.6", "moment": "^2.29.1", From ecd8b21dc34f1eee7497331cb254c459252d355d Mon Sep 17 00:00:00 2001 From: Kai Vandivier Date: Thu, 3 Nov 2022 15:00:07 +0100 Subject: [PATCH 45/88] fix(pwa-boundary): catch errors --- adapter/src/components/PWALoadingBoundary.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adapter/src/components/PWALoadingBoundary.js b/adapter/src/components/PWALoadingBoundary.js index 64e5e08e8..e35f4bf56 100644 --- a/adapter/src/components/PWALoadingBoundary.js +++ b/adapter/src/components/PWALoadingBoundary.js @@ -29,7 +29,10 @@ export const PWALoadingBoundary = ({ children }) => { setPWAReady(true) } } - checkRegistration() + checkRegistration().catch((err) => { + console.error(err) + setPWAReady(true) + }) }, [offlineInterface]) return pwaReady ? children : null From ad3e476273823c1c4983c50ac0500e3b9eb19c30 Mon Sep 17 00:00:00 2001 From: Kai Vandivier Date: Thu, 3 Nov 2022 16:10:03 +0100 Subject: [PATCH 46/88] fix(offline-interface): protect against SW errors --- .../offline-interface/offline-interface.js | 105 +++++++++++++----- 1 file changed, 75 insertions(+), 30 deletions(-) diff --git a/pwa/src/offline-interface/offline-interface.js b/pwa/src/offline-interface/offline-interface.js index 6fcfb3214..5cf0d2beb 100644 --- a/pwa/src/offline-interface/offline-interface.js +++ b/pwa/src/offline-interface/offline-interface.js @@ -8,6 +8,45 @@ import { } from '../lib/registration.js' import { openSectionsDB, SECTIONS_STORE } from '../lib/sections-db.js' +const PWA_ENABLED = process.env.REACT_APP_DHIS2_APP_PWA_ENABLED === 'true' + +/** + * This and the following 'test' functions test for PWA features and log errors + * if there's an issue so they can be reused in the Offline Interface methods. + * + * Known situations when navigator.serviceWorker is not available: + * 1. Private browsing in firefox + * 2. Insecure contexts (e.g. http that's not local host) + */ +function testSWAvailable() { + if ('serviceWorker' in navigator) { + return true + } + + const msg = + (!window.isSecureContext + ? 'This window is not a secure context -- see https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts.' + : '`serviceWorker` is not available on `navigator`.') + + ' PWA features will not work.' + console.error(new Error(msg)) + return false +} + +function testPWAEnabled() { + if (PWA_ENABLED) { + return true + } + + const msg = + 'PWA is not enabled in `d2.config.js`. No service worker will be registered and offline interface features will not work.' + console.error(new Error(msg)) + return false +} + +function testPWAAndSW() { + return testSWAvailable() && testPWAEnabled() +} + /** Helper to simplify SW message sending */ function swMessage(type, payload) { if (!navigator.serviceWorker.controller) { @@ -26,7 +65,8 @@ function swMessage(type, payload) { */ export class OfflineInterface { constructor() { - this.pwaEnabled = process.env.REACT_APP_DHIS2_APP_PWA_ENABLED === 'true' + // Helper property that consumers can check + this.pwaEnabled = PWA_ENABLED if (this.pwaEnabled) { register() @@ -34,7 +74,7 @@ export class OfflineInterface { unregister() } - if (!('serviceWorker' in navigator)) { + if (!testSWAvailable()) { return } @@ -78,6 +118,10 @@ export class OfflineInterface { * @returns {Promise} */ getClientsInfo() { + if (!testSWAvailable()) { + return Promise.resolve({ clientsCount: 0 }) + } + return new Promise((resolve, reject) => { navigator.serviceWorker.getRegistration().then((registration) => { const newestSW = registration?.waiting || registration?.active @@ -104,22 +148,28 @@ export class OfflineInterface { * or claim clients if it's the first SW activation */ useNewSW() { - navigator.serviceWorker.getRegistration().then((registration) => { - if (!registration) { - throw new Error('No service worker is registered') - } - if (registration.waiting) { - // Update existing service worker - registration.waiting.postMessage({ - type: swMsgs.skipWaiting, - }) - } else if (registration.active) { - // (First SW activation) Have SW take control of clients - registration.active.postMessage({ - type: swMsgs.claimClients, - }) - } - }) + if (!testSWAvailable()) { + return Promise.resolve() + } + + return navigator.serviceWorker + .getRegistration() + .then((registration) => { + if (!registration) { + throw new Error('No service worker is registered') + } + if (registration.waiting) { + // Update existing service worker + registration.waiting.postMessage({ + type: swMsgs.skipWaiting, + }) + } else if (registration.active) { + // (First SW activation) Have SW take control of clients + registration.active.postMessage({ + type: swMsgs.claimClients, + }) + } + }) } /** @@ -146,11 +196,10 @@ export class OfflineInterface { onCompleted, onError, }) { - if (!this.pwaEnabled) { - throw new Error( - 'Offline features are not enabled. Make sure `pwa.enabled` is `true` in `d2.config.js`' - ) + if (!testPWAAndSW()) { + return } + if (!sectionId || !onStarted || !onCompleted || !onError) { throw new Error( '[Offline interface] The options { sectionId, onStarted, onCompleted, onError } are required when calling startRecording()' @@ -202,10 +251,8 @@ export class OfflineInterface { * @returns {Promise} A promise that resolves to an array of cached sections. */ async getCachedSections() { - if (!this.pwaEnabled) { - throw new Error( - 'Cannot get cached sections - PWA is not enabled in d2.config.js' - ) + if (!testPWAAndSW()) { + return [] } await navigator.serviceWorker.ready @@ -230,10 +277,8 @@ export class OfflineInterface { * @returns {Promise} A promise that resolves to `true` if at least one of the cache or the idb entry are deleted or `false` if neither were found. */ async removeSection(sectionId) { - if (!this.pwaEnabled) { - throw new Error( - 'Cannot remove section - PWA is not enabled in d2.config.js' - ) + if (!testPWAAndSW()) { + return false } if (!sectionId) { throw new Error('No section ID specified to delete') From 3e54f13f3b8ea124a090614e200363cae9e4095e Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 8 Nov 2022 18:11:43 +0000 Subject: [PATCH 47/88] chore(release): cut 10.1.4 [skip release] ## [10.1.4](https://github.com/dhis2/app-platform/compare/v10.1.3...v10.1.4) (2022-11-08) ### Bug Fixes * **offline-interface:** protect against SW errors ([ad3e476](https://github.com/dhis2/app-platform/commit/ad3e476273823c1c4983c50ac0500e3b9eb19c30)) * **pwa-boundary:** catch errors ([ecd8b21](https://github.com/dhis2/app-platform/commit/ecd8b21dc34f1eee7497331cb254c459252d355d)) --- CHANGELOG.md | 8 ++++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 21 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f902cbde..bcd6438b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## [10.1.4](https://github.com/dhis2/app-platform/compare/v10.1.3...v10.1.4) (2022-11-08) + + +### Bug Fixes + +* **offline-interface:** protect against SW errors ([ad3e476](https://github.com/dhis2/app-platform/commit/ad3e476273823c1c4983c50ac0500e3b9eb19c30)) +* **pwa-boundary:** catch errors ([ecd8b21](https://github.com/dhis2/app-platform/commit/ecd8b21dc34f1eee7497331cb254c459252d355d)) + ## [10.1.3](https://github.com/dhis2/app-platform/compare/v10.1.2...v10.1.3) (2022-10-26) diff --git a/adapter/package.json b/adapter/package.json index 3a59b097c..40be64c42 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.1.3", + "version": "10.1.4", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.1.3", + "@dhis2/pwa": "10.1.4", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.3", + "@dhis2/cli-app-scripts": "10.1.4", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 10185366f..3b425e0e3 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.1.3", + "version": "10.1.4", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.1.3", + "@dhis2/app-shell": "10.1.4", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@yarnpkg/lockfile": "^1.1.0", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index b3f994998..ae1affdea 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.1.3", + "version": "10.1.4", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 05ae204bb..cd6637b06 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.1.3", + "version": "10.1.4", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 0333f7b5a..5e8cae191 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.1.3", + "version": "10.1.4", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index e3015cc38..d711b4e3a 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.1.3", + "version": "10.1.4", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.3" + "@dhis2/cli-app-scripts": "10.1.4" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 8d113b0b7..357893e93 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.1.3", + "version": "10.1.4", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.1.3", + "@dhis2/app-adapter": "10.1.4", "@dhis2/app-runtime": "3.6.1", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/pwa": "10.1.3", + "@dhis2/pwa": "10.1.4", "@dhis2/ui": "8.6.0", "classnames": "^2.2.6", "moment": "^2.29.1", From bd2582f3faa17e46142210c530584e79d4b5998a Mon Sep 17 00:00:00 2001 From: Kai Vandivier Date: Tue, 15 Nov 2022 13:08:27 +0100 Subject: [PATCH 48/88] fix(deps): bump platform deps and unpin --- shell/package.json | 4 +- yarn.lock | 836 ++++++++++++++++++++++----------------------- 2 files changed, 420 insertions(+), 420 deletions(-) diff --git a/shell/package.json b/shell/package.json index 357893e93..c27f290c2 100644 --- a/shell/package.json +++ b/shell/package.json @@ -16,10 +16,10 @@ }, "dependencies": { "@dhis2/app-adapter": "10.1.4", - "@dhis2/app-runtime": "3.6.1", + "@dhis2/app-runtime": "^3.6.1", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/pwa": "10.1.4", - "@dhis2/ui": "8.6.0", + "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", "moment": "^2.29.1", "prop-types": "^15.7.2", diff --git a/yarn.lock b/yarn.lock index 270120d67..985abcf19 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1327,570 +1327,570 @@ resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.0.1.tgz#b6b8d81780b9a9f6459f4bfe9226ac6aefaefe87" integrity sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA== -"@dhis2-ui/alert@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-8.6.0.tgz#d99904838882592617e908a3cdf43d2bd941b962" - integrity sha512-yvtOB0l/zQB2zP9pSkAxTRCN7rzZgp0JsIEdq8fV/I0pkghNrUP4oS4FJFqxVM3m2m6Yr+eOt88Chm1tETBJ7Q== +"@dhis2-ui/alert@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-8.6.2.tgz#6aaf3fdd3b0b4e95fec0d764b12ea307b5faaa97" + integrity sha512-LNb9ZUg3+fpt6zEA9GN7Mb7SzzZFsHoP6kk/yDPBDzkS6Aonjqq4Mu7qWo84/btGj6+Mck40jCKwoEHpBG2mUQ== dependencies: - "@dhis2-ui/portal" "8.6.0" + "@dhis2-ui/portal" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/box@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-8.6.0.tgz#9e92c79340dc122216f5b03cc36027727cf6b5af" - integrity sha512-Qw4tF67Mz5v+o3eN90qCug78aBLYQBGcQo6yq9Rsy/iUk/QTb5mkh1HAYwtg35yfyy1ZwvWCnFek586DBzRhmg== +"@dhis2-ui/box@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-8.6.2.tgz#4ad728bb3ef2c4fcac480f997203a1b960f7002e" + integrity sha512-CWIcubfQiNBVsx5e4LLldYQlyPL0l4RoHcLsUPTn0o+W54Q62hL7rTRP2ktnfPKYakVjDYG+BJiCFq/m7H7mDQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/button@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-8.6.0.tgz#a5afb3e285858b8d575f20079fb1e3cd35e65d5e" - integrity sha512-RMWlKKQWJ2j3703cBbiRqmZ07Sj0IStkfdPnGphh2mR9FyoxqZlYfgjJQAgpSPXGnXOcACxT70bVcotn1UCYcA== +"@dhis2-ui/button@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-8.6.2.tgz#1d85e04b6640b1cfc34addbce439e6737705d727" + integrity sha512-aAaftJ4qI1bg3pY51W7reY5sfGHutQ7hQXF/JN5Rsv38gnEMh9iUZ30c5q/86/8d64kS4gHJJJlPXM/XRf7hMg== dependencies: - "@dhis2-ui/layer" "8.6.0" - "@dhis2-ui/loader" "8.6.0" - "@dhis2-ui/popper" "8.6.0" + "@dhis2-ui/layer" "8.6.2" + "@dhis2-ui/loader" "8.6.2" + "@dhis2-ui/popper" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/card@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-8.6.0.tgz#8720d4dad8352624b51a270ebc1807f5709761f5" - integrity sha512-tXURVN0m9xINOIwmXiYI2O8V4DQwc7eJ1S9oCfoCwFmJNMZfSmtdQ01JfsuewkqY6fSOyOh2BCiBt8NemHBmxg== +"@dhis2-ui/card@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-8.6.2.tgz#3aeaba099c3a85c91d597c0c4c81115885efb56f" + integrity sha512-4XzgsAp+P3tpUpOArV7NXx40Au13jbSLuH+KW7ZGXxtKvlvoJWoQQOC4P5atiWS9/s+peUR56oa3htoFrq1raw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/center@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-8.6.0.tgz#428ba80107caa1319fb8c0b31e2259ad61de8cd2" - integrity sha512-5EhpqN8IkdLhHWxBFId/zKGpPLed52f2RJcR3pTl1QctaHiOeRIhiVnkTkqkJnrs+g6LzEMzC84xoSyKBRO/3Q== +"@dhis2-ui/center@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-8.6.2.tgz#b9981d50a88b692c79e47eaf59d919068c970229" + integrity sha512-jEhcsFbtkmXl+0/pShnXf52VLFoXw452thNDOrpoxEeX3rrP0aQVni57NT4t+EYaub9MtK2rXvvmnk7A4Z5y/Q== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/checkbox@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-8.6.0.tgz#1a5ee4e219038680c62121b438723ff7c79dabd3" - integrity sha512-fhyI1mbqFDPRZqFuJTVtA/r8qUzrnVHAwYI2xmumzOLNhrj4tppuecUYPpOeDD8mhuxIIsoAg0s7+JO5AgzkJA== +"@dhis2-ui/checkbox@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-8.6.2.tgz#31088f6d9528d479fb827e1c6393dfab48dbfa21" + integrity sha512-TT2fsU4L826qmKbi1NByB+CD5MTwHb6qIVm1JKNYVYIbtS8/240oFRbMXEqftfdCev3B2ko7/8CV9bR2LKG91w== dependencies: - "@dhis2-ui/field" "8.6.0" - "@dhis2-ui/required" "8.6.0" + "@dhis2-ui/field" "8.6.2" + "@dhis2-ui/required" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/chip@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-8.6.0.tgz#ade2703c5a2ecff7b3652e88d20b5317f18b2120" - integrity sha512-i7HyVu0b4hdI1SDbwKVsoj91XORYsSjdyG7CprHReIdqBF2OlRmekJ4p4Smly+orLHEaTj5kVQ3L5P/8ukP/vA== +"@dhis2-ui/chip@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-8.6.2.tgz#b5da91b27cc115c0cf188b6f51b99692f58f85c4" + integrity sha512-cAjunyReA+19FlP8ijVzchW/NyZiBO+7gWiJWPU59zU9P6sUpCrnKptap7NDdwXX+f5JjMFWii+LGr+7dHwkmw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/cover@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-8.6.0.tgz#48e61e3667ba1344bccccee28d345adae8ca909f" - integrity sha512-TpqZDXrOvjVl4ft7/kL84meNLKpOGvZEPxX1RgyEQuw0kpdL9NsnZ6admMqn8A7GZdxUbQnR3Gts1MZkJL7pAQ== +"@dhis2-ui/cover@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-8.6.2.tgz#01e6b885f107a8c3f97232f1b29b89793a2db676" + integrity sha512-5wW6+6h9m0bxmE2r74xSQY5M1pf4vxhFE874j62mOrLAvZOQcTkzNpA8WMBin6kFhNjX1FOHuIi1UUjRvaaIrw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/css@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-8.6.0.tgz#323aa10de9ba22612f44ffd8e6cbb7a387326962" - integrity sha512-O4ilhcCw5d8YCBDOQ/459X9W4nB/1MB/QlZjjbiVDamMrRFi/uma0YLMWhkE4esIRIqXeBH+HGHax0B5mXSTfw== +"@dhis2-ui/css@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-8.6.2.tgz#f910d8722173fcc8c5728e8aad819c9d5124140a" + integrity sha512-8A7PkqM5/KZ5pB7uWTyYJPB/LGvF/Bc1lh9A1H01p9URGlHVW0UPdvFMLUX6eb7IDmqQZ8yFyPLS5lVGdSEZfg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/divider@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-8.6.0.tgz#07ffa6c8710108d2e0d86bde0d267598ddc8c4c3" - integrity sha512-XgwoOm08iBpdR2ldu7PpAKZhdDmOZjzMngxi0qRSO+RbHivCX82nRXFGCZ8OjD1EPLgrzIlgU/UjhvHVERiOaw== +"@dhis2-ui/divider@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-8.6.2.tgz#3bcbeb06c0702ef65c8110afeabc2af4db99d391" + integrity sha512-ZOxI7/Ow6PzP7soAskNEIOluXHJ0bMU8bFfA6NIqJ3s9BdyVpNK/Zc9Mu0uxad13mLc1hwRJlV6w7Ychvu8eng== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/field@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-8.6.0.tgz#6c575c9f783847e746a348cb84121c5d8562ea0a" - integrity sha512-xV4Y4snAPmi9Wc0pfAcIrItbVdSjeruGzXjJy/zgo6Ot0Q+4gdjWL1gvHSKT3eYZG5+57L21IuiTon+LzkNbUQ== +"@dhis2-ui/field@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-8.6.2.tgz#806bdf4d6e59798eb6f8795e45a70d65414efc6b" + integrity sha512-RvUTl4HlOr3/LPwoLwGEbz0PLPhZE7Jvkv/32ri0rXPKmc5Ftp04OTgjYAKsrtUWUqJLdGqatvG/Qg8mn4Phkw== dependencies: - "@dhis2-ui/box" "8.6.0" - "@dhis2-ui/help" "8.6.0" - "@dhis2-ui/label" "8.6.0" + "@dhis2-ui/box" "8.6.2" + "@dhis2-ui/help" "8.6.2" + "@dhis2-ui/label" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/file-input@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-8.6.0.tgz#ce02d60bcc7a677b4087a64779746db1953c3170" - integrity sha512-Aggrul5hfJqTrqzjhZAhP96UKh6HPGUq/T+w9TfJJLtmX1ftuZf87kl8422iXz7bDdvmU3QQ+n6UcauIhBuG7A== - dependencies: - "@dhis2-ui/button" "8.6.0" - "@dhis2-ui/field" "8.6.0" - "@dhis2-ui/label" "8.6.0" - "@dhis2-ui/loader" "8.6.0" - "@dhis2-ui/status-icon" "8.6.0" +"@dhis2-ui/file-input@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-8.6.2.tgz#38eabf3eb54db80d116b1a6a6664f91c9199e616" + integrity sha512-wJ8J5wxSGkrFrhvhweTE9afT4e6xM+nlsxXccRB9zW75airSpVGV+wyl8HIn6Zs8VrtgqFHc+xmn8HD6b/E2tQ== + dependencies: + "@dhis2-ui/button" "8.6.2" + "@dhis2-ui/field" "8.6.2" + "@dhis2-ui/label" "8.6.2" + "@dhis2-ui/loader" "8.6.2" + "@dhis2-ui/status-icon" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/header-bar@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-8.6.0.tgz#df89be51c83ab68f8850a2346b23e41c288755f3" - integrity sha512-hWQRVJBGHW2hdMdIJOk8wvZUkreibbjda91A8RLj5Z8IwhRk+JYx4dZNblqBZs2El43Ci+OGRVIOeg77k794Pg== - dependencies: - "@dhis2-ui/box" "8.6.0" - "@dhis2-ui/button" "8.6.0" - "@dhis2-ui/card" "8.6.0" - "@dhis2-ui/center" "8.6.0" - "@dhis2-ui/divider" "8.6.0" - "@dhis2-ui/input" "8.6.0" - "@dhis2-ui/layer" "8.6.0" - "@dhis2-ui/loader" "8.6.0" - "@dhis2-ui/logo" "8.6.0" - "@dhis2-ui/menu" "8.6.0" - "@dhis2-ui/modal" "8.6.0" - "@dhis2-ui/user-avatar" "8.6.0" +"@dhis2-ui/header-bar@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-8.6.2.tgz#46b38f7bf4058698a5a7e366c11709852d464302" + integrity sha512-dnLpjxDCJ+PuXYJTpFauFIykeaXE7AgiJhTKOo7x27nV33gBeBM8AdacOSsMjWpyDVPpO/U9uMEw8IXB2uIxyA== + dependencies: + "@dhis2-ui/box" "8.6.2" + "@dhis2-ui/button" "8.6.2" + "@dhis2-ui/card" "8.6.2" + "@dhis2-ui/center" "8.6.2" + "@dhis2-ui/divider" "8.6.2" + "@dhis2-ui/input" "8.6.2" + "@dhis2-ui/layer" "8.6.2" + "@dhis2-ui/loader" "8.6.2" + "@dhis2-ui/logo" "8.6.2" + "@dhis2-ui/menu" "8.6.2" + "@dhis2-ui/modal" "8.6.2" + "@dhis2-ui/user-avatar" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" moment "^2.29.1" prop-types "^15.7.2" -"@dhis2-ui/help@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-8.6.0.tgz#b0240a397c354a2c93151cfd9b78c29f26b1245f" - integrity sha512-EFlVGH8cHkH00SZK58Lqo6Bm5w78oqtj9fQTchCUPgtymci7lhs2lujo5m5gG3VpATmCYc+6Qs6KFITFJ2wWtQ== +"@dhis2-ui/help@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-8.6.2.tgz#f1fd18f214f961a485edd94c2dd06d211ade7ee3" + integrity sha512-5FBYb0/d0udrjrwMVBoS1HpDdVB2oPWu6fUlOBbPeMBG4e5cPrRSS2Rw0GnHefd0LLDQEtH2qb0+7Knwq4eniQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/input@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-8.6.0.tgz#69d812ae10c79b5513ca7722039d8e13a02c3167" - integrity sha512-ZBqle9JZZYXPoX6J+vsNco75vdAzkqy7dwCxC8ZLEHdwa+nQ/p1ORKM3TFtWF5m6tNA2tgbD8j6J4EC/iOrntw== - dependencies: - "@dhis2-ui/box" "8.6.0" - "@dhis2-ui/field" "8.6.0" - "@dhis2-ui/input" "8.6.0" - "@dhis2-ui/loader" "8.6.0" - "@dhis2-ui/status-icon" "8.6.0" +"@dhis2-ui/input@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-8.6.2.tgz#36e6243ca17dd62c0b952fa0b9cb0f563f2dd749" + integrity sha512-FlPRWAteR/PtJ8rOuoQ8qP9m7c4U8RUNQszoAwBYHJq6/5/r9xD+KHYNt9INZ8y+1brLZknlPW2xoGdIZH8lYQ== + dependencies: + "@dhis2-ui/box" "8.6.2" + "@dhis2-ui/field" "8.6.2" + "@dhis2-ui/input" "8.6.2" + "@dhis2-ui/loader" "8.6.2" + "@dhis2-ui/status-icon" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/intersection-detector@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-8.6.0.tgz#bb8566b6ade8b65379226f5c09aa935c8150589e" - integrity sha512-BxNtN5vVw8RkSFSbsU7Lre8clQUNECvUw0cn6ONu6hVmdDLD8yB6WnbYKDP2wI8TfGmms3ExGRHon/YMXgrIPg== +"@dhis2-ui/intersection-detector@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-8.6.2.tgz#9117c7a46225ecad8ed609bb0859cefd6259813d" + integrity sha512-U7O7XBDeZgj0l9sGRudJXVoOWXSjE8hDZA0+vxmQtVErrTgdz042Az+0atb2uiMc43fwSRn66DD8IGeL65TRjA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/label@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-8.6.0.tgz#bc61963aa1152ad095921dbe0981c1e79dbf7a36" - integrity sha512-zNux3DW8TSdElXMbXFOlk/TZfNvD0Kso37gELzy2YnlCWEBdbSbaCr9luKZALAx0g3wIdykMOaa3hRdPMmN2uQ== +"@dhis2-ui/label@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-8.6.2.tgz#b7ab76ad24dd2c803eb78173ff3313e0487815db" + integrity sha512-sRnX1BQdFE0sE71+21gwzbw4CAzqQGhF958NsVnZFGKB2EZiV9BHhfwF24QWUs1rhG69/oNn5nLVB1+QVc+7kw== dependencies: - "@dhis2-ui/required" "8.6.0" + "@dhis2-ui/required" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/layer@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-8.6.0.tgz#7125a416c132880e607e7e1d651ce1afea15f673" - integrity sha512-tdhmJSy9MR4tttd4Z0eTjMllW64DtXLSHRty2p+uXg/GcNJyDJP8ro7C6JvZKgpLgeAXvkicYjfwJp8Emu7u9Q== +"@dhis2-ui/layer@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-8.6.2.tgz#567f5c71efce1787077716f178a37d155e2ab8a8" + integrity sha512-pIVc5E/HyEqrJ8e81/D2fx6Aq/zlqut/aFOsCN03COkJE9Lk+m1K4xLiWCFuv6P17mcDvOLvx5SGd6Ykaz9GCw== dependencies: - "@dhis2-ui/portal" "8.6.0" + "@dhis2-ui/portal" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/legend@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-8.6.0.tgz#7728b2af1a3909579f7a7403292da1b0d8afba07" - integrity sha512-aprM5I2Aho31DHwjxLgovWZHkYk1z30BKkuNfRubOJWp289FtbPgpdpKWs/oAw5qfJVm/dKnhItCNvR1i/zByg== +"@dhis2-ui/legend@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-8.6.2.tgz#bf2c6bb4972ba627252c937725bb5f721960596b" + integrity sha512-Ck9WwnyZb5DSI0HehJQOn1lJfOKkfdt8rrlcYDBqv0MO1BIFIncy4bJ/S3NkukrnynsQ7g6LzMcGhCL6iA/9Ng== dependencies: - "@dhis2-ui/required" "8.6.0" + "@dhis2-ui/required" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/loader@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-8.6.0.tgz#02a9759a8ca8ca5c5ab95b2b5e74ebdae6cb740a" - integrity sha512-Ctlb7PcXm9AW0MO3UqYj/70v2yRMQYhsJ4f3w6e03QCggNpE2iFw3/35CFGtPA73pXLUhesMpfPFYVtfEhTdkA== +"@dhis2-ui/loader@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-8.6.2.tgz#ccbba03afc4f63f0440c5e9de723cf033fc00cb3" + integrity sha512-lt1iAleLDJEwI+d0+Heok/anJtBP1O4EhRGz472o1uymbSlfxh+tO/B0QtPVx4RZFgUyixtpgBLjweE6kD7iMw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/logo@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-8.6.0.tgz#43d8440a6fbd006d0ad2d134e05c774308c48b7d" - integrity sha512-hSly4GSjyAOsQQkCh0cO3UrzToldL5sErqh7VoBDNtBrgIzWVGJaGORsKOGcdWn6j8vriffsrhUhylGjzTq6BA== +"@dhis2-ui/logo@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-8.6.2.tgz#45329b68ae0afdbbad543edb18e1963e189c6af7" + integrity sha512-6CXeTpHRQWGVum61rJx7mQcJhHs39Iv7X7zPaQJYNHe1iAQf494vEvdUhuM/UMtwlhGBXg0Dd3LquRnU/YV9oQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/menu@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-8.6.0.tgz#bc455234a5cfdccf691188ca428a4f23bd0dfe4f" - integrity sha512-75vwPGtqWDsJdLgjYppulR/syYLk1a1eTii0MRChOUZKrDDtwOKrTRgoyJsp15or88vdFUr7uAoNoghY1npnCg== - dependencies: - "@dhis2-ui/card" "8.6.0" - "@dhis2-ui/divider" "8.6.0" - "@dhis2-ui/layer" "8.6.0" - "@dhis2-ui/popper" "8.6.0" - "@dhis2-ui/portal" "8.6.0" +"@dhis2-ui/menu@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-8.6.2.tgz#3e56b0cda310c72d9cdf5012c35d27d06f4c7644" + integrity sha512-vmxsQ/2nT0zzQU3gVrT7HwxW8sBszl/TgOoLwyb0Aa+25btxEBVoUvNJcMUxIXi3oDlX3X7QYXpcfJrBTCfpTw== + dependencies: + "@dhis2-ui/card" "8.6.2" + "@dhis2-ui/divider" "8.6.2" + "@dhis2-ui/layer" "8.6.2" + "@dhis2-ui/popper" "8.6.2" + "@dhis2-ui/portal" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/modal@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-8.6.0.tgz#78851fe8be9c8382e4071d73a7e72d5a8b54faea" - integrity sha512-vUVf/wJ/UX3NQ+QW4q/g9DDgLxyCIMLhmbExcmu0wr6aGds908OfL1YU64ipYRx+2oByT8YHrx4aYtnTZoEw9g== +"@dhis2-ui/modal@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-8.6.2.tgz#9b8337e6e640055dc3f9aad48efeed41f19765c2" + integrity sha512-jVi6waLIZtwjwBZbFF15VrotwDg36fyR2EY9I119n0VVrslS6WtzJkhNbVFwkv6L/36mZxL0C/ac55/a2eJs5Q== dependencies: - "@dhis2-ui/card" "8.6.0" - "@dhis2-ui/center" "8.6.0" - "@dhis2-ui/layer" "8.6.0" - "@dhis2-ui/portal" "8.6.0" + "@dhis2-ui/card" "8.6.2" + "@dhis2-ui/center" "8.6.2" + "@dhis2-ui/layer" "8.6.2" + "@dhis2-ui/portal" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/node@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-8.6.0.tgz#941d0a0dcadcefc2ae4ff6c2a1bcaee8d8eed3d3" - integrity sha512-vW5r7f3BpoaN/oeGGRgYsit7lQCqfJF/9529DuJKyfC8WvDBq+5AMhfRjp25emQLeaz7ME6Z6hu/JU5UkoKHYQ== +"@dhis2-ui/node@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-8.6.2.tgz#14888ecfac55fb199e334d686ed571ab2ef9606e" + integrity sha512-8dl3gRCIkOz58PZxbIooWtg4sEkXdkEtTpmc/BgphkTXiMu8Fr+SmY+6as2+X7incNV7WnZzGd9xT2z61ygYMw== dependencies: - "@dhis2-ui/loader" "8.6.0" + "@dhis2-ui/loader" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/notice-box@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-8.6.0.tgz#a69c6b155237f7bfeddb1befbfdddd8b56279996" - integrity sha512-xUUgSP8NHGOxoI+0twops/arLb25cuHUOPof5zICc3OYSRf5miKeyqTrT/DFxx4giH+GexJPjBu6hErZRi1EZQ== +"@dhis2-ui/notice-box@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-8.6.2.tgz#6779119725dc68ede485edfd57f0b4d293a9d6e3" + integrity sha512-3fNSgks6NskBotYN/HISNu6Ud6W248QgQezZ4IqYhpf4vMkC9PB7Bz/03pgd7EvtsodQ1UsNslvyZxwNqHtsKQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/organisation-unit-tree@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-8.6.0.tgz#b6840e7ac6a4f5362aec0da87c15fa01c643fafb" - integrity sha512-JVBizEpGLV7VuanXyDlQgYPF6RIbqkZrFLcBYB3zYVtigwvOPgH9whmQFu6+5muOZelrDgTfzJFfYABH+NXF4g== +"@dhis2-ui/organisation-unit-tree@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-8.6.2.tgz#b21d7c1a00ebcef64877176486596512386e25b2" + integrity sha512-kUdrzjn56YmocNUtCQ+N4GRItDe+C4qeVgRvJUCa7pt8yjh75PYNUARqH2JISxWEgH8Uo+Oy8wXCF9OrkHICaA== dependencies: - "@dhis2-ui/checkbox" "8.6.0" - "@dhis2-ui/loader" "8.6.0" - "@dhis2-ui/node" "8.6.0" + "@dhis2-ui/checkbox" "8.6.2" + "@dhis2-ui/loader" "8.6.2" + "@dhis2-ui/node" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/pagination@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-8.6.0.tgz#fb425a43d2a6a905548df1e6ee716f61a94be127" - integrity sha512-KuBCC7SwmAxK1QKJXIFKT14HeBa0cZW60HBtDKviw0mmX17PK8pRcNgHIw6rECCZ+o8CR96p41NJwI3JDfCe4w== +"@dhis2-ui/pagination@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-8.6.2.tgz#372b2eca94cb8444283f8cf68d4d58cd667a5e53" + integrity sha512-77eRcIrx3NZk6ZH0PWPhpLNJGhFxhz8zIb2w9GzYxvbPfF35dMgA8WPDSkKtt4SsUhGFvb/7Jsd5vAFZmS5cHQ== dependencies: - "@dhis2-ui/button" "8.6.0" - "@dhis2-ui/select" "8.6.0" + "@dhis2-ui/button" "8.6.2" + "@dhis2-ui/select" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popover@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-8.6.0.tgz#a588e9d4d27616b4d38fc1ae86fda790a624922f" - integrity sha512-+/b9O8EmAtY9wvIWKx4gi5hhLbOucrDoF2bLNIlcLAbh2yWI3czVmWIZvLWFRcV05P1sp4vZk681HlAI8R3Y0g== +"@dhis2-ui/popover@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-8.6.2.tgz#abc1f4f41da3e7c2d3f0d84864c403ebfa3a17f4" + integrity sha512-iw0EYS5XdF1B/L0GF7RFtPGAB9JFejdCxvIAPPf/T5IHEhjjda5warVOwk+SuCp2E8drgi48dDYwPnDO8RPA+A== dependencies: - "@dhis2-ui/layer" "8.6.0" - "@dhis2-ui/popper" "8.6.0" + "@dhis2-ui/layer" "8.6.2" + "@dhis2-ui/popper" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popper@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-8.6.0.tgz#f530399d439fbc53b0b51b14d4885e7a8718ed52" - integrity sha512-hCwRO7onex69hBlmR0smmR2sShnrWEkOS9LouZsUgNSd3zTRMFfnUDcnZCZlr5474xn220KR2a2SZn7xgu9qvw== +"@dhis2-ui/popper@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-8.6.2.tgz#44a4400cfc346390d183cfda2057e5214c6645af" + integrity sha512-H9oC0YnZC3psQlpjNOZnIIMWIKLTJ5CGGXD9/kureyULRUGXeO3J0shnTUbZD0+rYtutATNsqC80vBukM1DzKA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" "@popperjs/core" "^2.10.1" classnames "^2.3.1" prop-types "^15.7.2" react-popper "^2.2.5" resize-observer-polyfill "^1.5.1" -"@dhis2-ui/portal@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-8.6.0.tgz#f4cb9811e525a924f8c2261c9856a51f3e0c0a91" - integrity sha512-1gWP5fuI6lQyeWoSIW8ZMZKLHBINp4kWc7s86nXiZDwZEEkrgh6t9OrwQ9jn+AJd7cJGqu5h1TpkCvFjuewaOA== +"@dhis2-ui/portal@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-8.6.2.tgz#e7c8aa56f39a8e10e5d531c1d7b0ca072ba759c1" + integrity sha512-OlC25qzw7ue+Yw61ZJtnsegUutwa6pocJKWCwab2KDjSl3aLAuiBAzC1Ltiya8y+xNKMxX6c0hNTflyAus4bsw== dependencies: classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/radio@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-8.6.0.tgz#34cd165eb031251fede9215263084ca58300f0c5" - integrity sha512-gcSk+gu22IVhvQVi8BUr0HCjiM4OsEWyQwUr8J5sFeZMn9s3WAOzUtI9f4KahlLLE86HL0fbh9SPOxC4nJ1ZBQ== +"@dhis2-ui/radio@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-8.6.2.tgz#adb43a48b54c140d46cab1223e07718573b18773" + integrity sha512-MhkyNfGhwAParWx+in1DX4ygr0hh8TYZ6hw3IJ7P+6yIjzRbIeW6DLrsQ8KNouJ70vaDBMPPuEu/68yXT0OahQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/required@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-8.6.0.tgz#efdb61af5d720c4fe6445951d8a98119d5f0c2fd" - integrity sha512-2tZrPhWDZadlOQOrsqQe0EOmRX/CH6ejV8yH4LlfayyBaafBhDYuOqr0b0ZCPH25mPg78Iov2x7iu9eRpXllxA== +"@dhis2-ui/required@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-8.6.2.tgz#020119c14c504b41ec8743d858a71cafe59a6049" + integrity sha512-0D4lN+KtHAXO0OaKXph4AayUuDMjlFhAi0XIeYoiGSG9fg+L3x7kr15BhcH35BQEYO2VQrVNM5vuuvNq0QwGgQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/segmented-control@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-8.6.0.tgz#3f13e4b94e20ea89fff8fcef5808d09acf380ad8" - integrity sha512-Uw9Zc4xCaiZT5/pX22sLwMll5i6L8YqadqZ/tAs32eMsB/PPs/Wahq9rKLMa3aQfoGLY6Tg62eBLF5gwqNx4Dw== +"@dhis2-ui/segmented-control@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-8.6.2.tgz#f4309f8b7e889d9b0c1ac6a0ff8d51130fc02c7c" + integrity sha512-Ztqlr/lrAU7CByPWU8pvzmwzybt6WtPJydcEPyp2oIAZtrqO9u12vmhzpwEdO50Q7CI7NslUZ34/eHbkCZLamw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/select@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-8.6.0.tgz#6481faacf0733bf0e7d16918c0add3f59ae16cd5" - integrity sha512-b0l9P/T0U+WCFc+KojNDaWaZ6RFM0c0OLcWMbzN4o5MTe2tY74so4ES7pMRZD3aOjNmG8Isq2oHN9e3XgqJFNQ== - dependencies: - "@dhis2-ui/box" "8.6.0" - "@dhis2-ui/button" "8.6.0" - "@dhis2-ui/card" "8.6.0" - "@dhis2-ui/checkbox" "8.6.0" - "@dhis2-ui/chip" "8.6.0" - "@dhis2-ui/field" "8.6.0" - "@dhis2-ui/input" "8.6.0" - "@dhis2-ui/layer" "8.6.0" - "@dhis2-ui/loader" "8.6.0" - "@dhis2-ui/popper" "8.6.0" - "@dhis2-ui/status-icon" "8.6.0" +"@dhis2-ui/select@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-8.6.2.tgz#050368f02d28ae6bd36d7ff3507fad4b0eb725c4" + integrity sha512-LAI8QLtKX57AAlJpHnOurHbSxFmsWRueTI0sJ1kpsbTQBkusYlBuk5m6gqV90ZjlkZNxCRuwtVoTEL3i8M+4yQ== + dependencies: + "@dhis2-ui/box" "8.6.2" + "@dhis2-ui/button" "8.6.2" + "@dhis2-ui/card" "8.6.2" + "@dhis2-ui/checkbox" "8.6.2" + "@dhis2-ui/chip" "8.6.2" + "@dhis2-ui/field" "8.6.2" + "@dhis2-ui/input" "8.6.2" + "@dhis2-ui/layer" "8.6.2" + "@dhis2-ui/loader" "8.6.2" + "@dhis2-ui/popper" "8.6.2" + "@dhis2-ui/status-icon" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/selector-bar@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-8.6.0.tgz#2bf86c2fa764febee9fca585af2de72079b100a2" - integrity sha512-TbBEkiUSb+in2TGIiHmpRkqmDL5FkZrag9aM0ZwJy4XcqEAfaYckqQoUj2D5ZWH2o5+uy1kdzfK33I+eCrQ9Zg== - dependencies: - "@dhis2-ui/button" "8.6.0" - "@dhis2-ui/card" "8.6.0" - "@dhis2-ui/layer" "8.6.0" - "@dhis2-ui/popper" "8.6.0" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" +"@dhis2-ui/selector-bar@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-8.6.2.tgz#95902516dc9c1e5580aaf707a4825247c30d525a" + integrity sha512-8GOQJHR2LqlXIePeNBn/7P+6BkYofPDHBi3MGUI+YzDKbxFr+XBllU0ho6rvzObUBSfvWAdPbo9rOYUriS1I/Q== + dependencies: + "@dhis2-ui/button" "8.6.2" + "@dhis2-ui/card" "8.6.2" + "@dhis2-ui/layer" "8.6.2" + "@dhis2-ui/popper" "8.6.2" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" "@testing-library/react" "^12.1.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/sharing-dialog@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-8.6.0.tgz#dfd87e4477f68bf033612b73400fa2d00ca19ca3" - integrity sha512-3emtrk/o6F2jqUNVWPbymE8s/eB/pJA9SQ53d9sy860MRYpj+UHaUnXgKR5KMZfVkpYhKm6f2nDo/fRwYVYL6g== - dependencies: - "@dhis2-ui/box" "8.6.0" - "@dhis2-ui/button" "8.6.0" - "@dhis2-ui/card" "8.6.0" - "@dhis2-ui/divider" "8.6.0" - "@dhis2-ui/input" "8.6.0" - "@dhis2-ui/layer" "8.6.0" - "@dhis2-ui/menu" "8.6.0" - "@dhis2-ui/modal" "8.6.0" - "@dhis2-ui/notice-box" "8.6.0" - "@dhis2-ui/popper" "8.6.0" - "@dhis2-ui/select" "8.6.0" - "@dhis2-ui/tab" "8.6.0" - "@dhis2-ui/tooltip" "8.6.0" - "@dhis2-ui/user-avatar" "8.6.0" +"@dhis2-ui/sharing-dialog@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-8.6.2.tgz#a4bcaab510f8ca1e2eb3a750abea009ae352d9a2" + integrity sha512-a1Mem1vP45NMf9Ba4oIdWF3nkunqqWuHUS4CTayKWcZuhetB4+qxiKep9hHt+j/UHWtX+HaRcjT9GhrHoY70UQ== + dependencies: + "@dhis2-ui/box" "8.6.2" + "@dhis2-ui/button" "8.6.2" + "@dhis2-ui/card" "8.6.2" + "@dhis2-ui/divider" "8.6.2" + "@dhis2-ui/input" "8.6.2" + "@dhis2-ui/layer" "8.6.2" + "@dhis2-ui/menu" "8.6.2" + "@dhis2-ui/modal" "8.6.2" + "@dhis2-ui/notice-box" "8.6.2" + "@dhis2-ui/popper" "8.6.2" + "@dhis2-ui/select" "8.6.2" + "@dhis2-ui/tab" "8.6.2" + "@dhis2-ui/tooltip" "8.6.2" + "@dhis2-ui/user-avatar" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" "@react-hook/size" "^2.1.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/status-icon@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-8.6.0.tgz#6a2ef59ff4b474bc57e07ec88479d5c67a75bf9e" - integrity sha512-rPBiE0Ihy0x8Pgrsg0NPJJTDtbWZvPOUkPsqaH+ZKm8LwIa7vwWZZY5TlVQAwe8Odf5xGq+qsM69BpuBeirtlg== +"@dhis2-ui/status-icon@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-8.6.2.tgz#2e4e89558567e361dcd0e35afc9df2e89b61eb65" + integrity sha512-L5Jfuxt9OBYAmdmCoUYQRH4u8CQSf0QjAE76wemyeSEw5uiInqcBAb9begiSV+Syn3qkUbO0eOho3G1tQG5nYQ== dependencies: - "@dhis2-ui/loader" "8.6.0" + "@dhis2-ui/loader" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/switch@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-8.6.0.tgz#414d8a8d956e0270044ebcdc5bde8b1ef4589229" - integrity sha512-yYtIBmjgH19m2O89lyf/O7IGJFOWsK5XKuWCu9CrK8hnzad5GMrO6FmGbiOGPnfXyhkor9pq0ikqOd4NZndEGA== +"@dhis2-ui/switch@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-8.6.2.tgz#13a6416a79bb24b14162ebbd78189de11ad0364d" + integrity sha512-BKHZ9WjEvXUd3/5Eew127mx/7MgdEOAJPSHOJ2rd1P39XriiIgmVqQHv/S1Fl1kVsvE7M5RO9qG74+1tgSybVg== dependencies: - "@dhis2-ui/field" "8.6.0" - "@dhis2-ui/required" "8.6.0" + "@dhis2-ui/field" "8.6.2" + "@dhis2-ui/required" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tab@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-8.6.0.tgz#bfeacfe27e85331596650fed5adb58cbf8044173" - integrity sha512-68kCLyknztyN0y7n2rNhA9z6ldgT0vOkNbQU8MubgrhPDfsx19cwCHNOn7u1pTjztR0Dnopd8P2WqzDOBvL0rg== +"@dhis2-ui/tab@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-8.6.2.tgz#1dcff55ab189d0a2b03d3742d58f39a69abc8ea7" + integrity sha512-vKYqZbh6W8iAt/v7yi1Fr5DzXDxlJDBSjVaE5PPFBlkw0/xlmw82HCnDjuWwzZiJprmd/SvMDQD91nbNWZ5ExA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/table@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-8.6.0.tgz#3fc3285b15669fa91001d5da9b354a955ab73693" - integrity sha512-ni4/k1xEgvAjKQKzkUZFpeMyGXqezko4q7rrnNAR3yEMlUFDZRdZQWRcdvWFqtqZdUgehri/OIgzH9pOIZUkwQ== +"@dhis2-ui/table@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-8.6.2.tgz#f5976aff38106f844e2c1c45b65fe5b2159238da" + integrity sha512-RaSUdwdTRx+U98b1qt0V4y1VqDboNuceq1j0KZUw/DsUC21TrXNcTZCRU6Uu5yIKvIYyLICz+H0zy6GS5+CIWQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tag@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-8.6.0.tgz#ed18fe2f627195c1c6477da1e48ab90f199bbee1" - integrity sha512-3zw6hU6XzTj3pFLaY1cXEn009o5A5VWp+Y4/flHJLjhJzX4qFbx80oH057G4vcG2i55uFYR4L5giHhfZAvMTJw== +"@dhis2-ui/tag@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-8.6.2.tgz#0cf95082839fbf5ffe0c23f20c6e5918401b6713" + integrity sha512-NOVIpmiKwQxQ3FAQ4QkRARUgKswQOHRzddDbqMnMH3DIK/wHFQoo40RWQynAHQ7qSfJr0RKPWMV2iCQo6hLBVw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/text-area@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-8.6.0.tgz#f6b5bd6b4532a6e5b3860e6006e9f9340f695b5c" - integrity sha512-NOCmVQvgwLiL8vIPZwCe3iyQyEjIwTwBHQyM+nb2xD2KCZcTaFjTtMV34W6sgKdxuSNQTx/38xhG6N6U7IL9qQ== +"@dhis2-ui/text-area@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-8.6.2.tgz#5fb0e1eb1f10fe04e1d904f5bb86922a21962ad5" + integrity sha512-kMifmAyfMgtyJ60AJb18ap2QDny2LEKEhTmJ+NGbiUJpHBGuZR2fLMakB9fq0OhBrUzWN/luaYXXjo7qcWu+cA== dependencies: - "@dhis2-ui/box" "8.6.0" - "@dhis2-ui/field" "8.6.0" - "@dhis2-ui/loader" "8.6.0" - "@dhis2-ui/status-icon" "8.6.0" + "@dhis2-ui/box" "8.6.2" + "@dhis2-ui/field" "8.6.2" + "@dhis2-ui/loader" "8.6.2" + "@dhis2-ui/status-icon" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-icons" "8.6.0" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-icons" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tooltip@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-8.6.0.tgz#f38598a420191063e89be1787ac1b693f640b55f" - integrity sha512-AS/kLMhQlxLlIPya1b8O2WFwjmRWK1jbepmC42I1I8q0piuHAb96Azf6NUwf3X7H8+bHXYhTXkBlJqzTGHsgUg== +"@dhis2-ui/tooltip@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-8.6.2.tgz#be15b0af389e25af355fb02771acddaccc39bfa8" + integrity sha512-tCoN462b+UQ4KCVSdJuBtTQZ/yHTBzz9xORV/hN/pw9vUJCcIhkCfd0+S6cSjdfL/3ZfStjw4n+YHyqVz8SUIg== dependencies: - "@dhis2-ui/popper" "8.6.0" - "@dhis2-ui/portal" "8.6.0" + "@dhis2-ui/popper" "8.6.2" + "@dhis2-ui/portal" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/transfer@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-8.6.0.tgz#f4b1049d31de0ad18dca3e19cac5887acfa1971d" - integrity sha512-KwWDR0CQxMlXRv9a8XN0Xm1MVB1WEIw4uk8T2ogTUzZCD7ICTk+jFeKxLkEPDJxjS0BVknuJW8HfXBS77ESydg== - dependencies: - "@dhis2-ui/button" "8.6.0" - "@dhis2-ui/field" "8.6.0" - "@dhis2-ui/input" "8.6.0" - "@dhis2-ui/intersection-detector" "8.6.0" - "@dhis2-ui/loader" "8.6.0" +"@dhis2-ui/transfer@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-8.6.2.tgz#6168061981d76ff6ab6f3cc3f9e596c1ce866acb" + integrity sha512-+s08lkyCPqtlnXE9mDcdePeAK+zNk4W+KDxrG24GoGylG8EcE2g30W6ujCecFoFu3+kANJ6mWaALULyBSrPp+A== + dependencies: + "@dhis2-ui/button" "8.6.2" + "@dhis2-ui/field" "8.6.2" + "@dhis2-ui/input" "8.6.2" + "@dhis2-ui/intersection-detector" "8.6.2" + "@dhis2-ui/loader" "8.6.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/user-avatar@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-8.6.0.tgz#810560104d9f0982c3c9257e145fc1b87dfbfe4c" - integrity sha512-Zad+ytXbd3VzSoNBNQzWaz54OovuC5Z7I4M06TGuzUR+eKwht5hvNf4uKDuwJpo2Eyzz4Pmv5yh69sdhqlT2NQ== +"@dhis2-ui/user-avatar@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-8.6.2.tgz#d49aa1b700dd3ccefb12eab50f017a9b27ecb5b4" + integrity sha512-3u/VYTP7WFugT5CTyugBgxRjYngVx2o1yBRXondL4mnwHugEXW4CC9LmFMw2gM54Mvb31/4M8V10MHLX/j43Tw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.0" + "@dhis2/ui-constants" "8.6.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2/app-runtime@3.6.1": +"@dhis2/app-runtime@^3.6.1": version "3.6.1" resolved "https://registry.yarnpkg.com/@dhis2/app-runtime/-/app-runtime-3.6.1.tgz#d39c492239cc81faf2b3ec92fe39c11440640953" integrity sha512-I+hTHXTqqDSbOCRFd/60AvCGkyYmwMtUD1EkyURuB/NaK37xQQZzrz2/JD3esBYGl2Ner3nLoOgbQwXEMvBeZw== @@ -2018,90 +2018,90 @@ resolved "https://registry.yarnpkg.com/@dhis2/prop-types/-/prop-types-3.1.2.tgz#65b8ad2da8cd2f72bc8b951049a6c9d1b97af3e9" integrity sha512-eM0jjLOWvtXWqSFp5YC4DHFpkP8Y1D2eUwGV7MBWjni+o27oesVan+oT7WHeOeLdlAd4acRJrnaaAyB4Ck1wGQ== -"@dhis2/ui-constants@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-8.6.0.tgz#0ca03fe0fed39c59db4382a0ce1a77aaf9fc835d" - integrity sha512-Q/59ntYwBnDkXpGAsmvR290pjUrrP9c/danNJp0J3oH3Nz14xhQQodsbpqm787XHsgUXL5+y0j9CLf/Dd+asyQ== +"@dhis2/ui-constants@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-8.6.2.tgz#0fb168dc934a3b23fae03440a80a9ee4dbf41867" + integrity sha512-2PjGGe29sgUERQXFuLx1SPmi8b2o40Hj85zwmb/hbvZRKH6pGK3MOcT3NpDtekd735st4P99G2SCVo+mR/7HCA== dependencies: prop-types "^15.7.2" -"@dhis2/ui-forms@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-8.6.0.tgz#5caf066b5d92b845912a9a00e871e15d76e9d9dc" - integrity sha512-twbo/LCJ6GAlXVNJFsm5Ket/+WPPHO/1dbhEZAvJzyHxr+V9CvMw4NhR1ZNhiRYzxfUCS8DtnoqCNrs98JDMoQ== - dependencies: - "@dhis2-ui/button" "8.6.0" - "@dhis2-ui/checkbox" "8.6.0" - "@dhis2-ui/field" "8.6.0" - "@dhis2-ui/file-input" "8.6.0" - "@dhis2-ui/input" "8.6.0" - "@dhis2-ui/radio" "8.6.0" - "@dhis2-ui/select" "8.6.0" - "@dhis2-ui/switch" "8.6.0" - "@dhis2-ui/text-area" "8.6.0" +"@dhis2/ui-forms@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-8.6.2.tgz#feff0812c644ed2e469f312348b0ce3818043805" + integrity sha512-8dxJH1kBtwg0zmVwOkWGzvOMQq1q6AZ/dQC+7tmTyBLD1/1I2YYxvruhArC9HlCogwWqqF72UlrXZy64+h+ZDQ== + dependencies: + "@dhis2-ui/button" "8.6.2" + "@dhis2-ui/checkbox" "8.6.2" + "@dhis2-ui/field" "8.6.2" + "@dhis2-ui/file-input" "8.6.2" + "@dhis2-ui/input" "8.6.2" + "@dhis2-ui/radio" "8.6.2" + "@dhis2-ui/select" "8.6.2" + "@dhis2-ui/switch" "8.6.2" + "@dhis2-ui/text-area" "8.6.2" "@dhis2/prop-types" "^3.1.2" classnames "^2.3.1" final-form "^4.20.2" prop-types "^15.7.2" react-final-form "^6.5.3" -"@dhis2/ui-icons@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-8.6.0.tgz#05fddb26c90ccc559f1dc4ee2de84fb852231eb5" - integrity sha512-VwndChdz17D5fbGJx9YrdE1aiv6eNNnpjQKJ9dkcuEvBIA4nZt4m+E4xllHrSa5WhJjX8DAAo7Sjr36WvzzDJw== - -"@dhis2/ui@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-8.6.0.tgz#dcdc45c42e9415fe7a4c2c3fee932a0b9dc9b638" - integrity sha512-fH0uD7TrupgpG9nf2kX2suoMtdWC+EoVhC36j/w8t+6IED5P85kUK2otlFIrwdOQY5VJrzjGkH0JjIgx7IM43w== - dependencies: - "@dhis2-ui/alert" "8.6.0" - "@dhis2-ui/box" "8.6.0" - "@dhis2-ui/button" "8.6.0" - "@dhis2-ui/card" "8.6.0" - "@dhis2-ui/center" "8.6.0" - "@dhis2-ui/checkbox" "8.6.0" - "@dhis2-ui/chip" "8.6.0" - "@dhis2-ui/cover" "8.6.0" - "@dhis2-ui/css" "8.6.0" - "@dhis2-ui/divider" "8.6.0" - "@dhis2-ui/field" "8.6.0" - "@dhis2-ui/file-input" "8.6.0" - "@dhis2-ui/header-bar" "8.6.0" - "@dhis2-ui/help" "8.6.0" - "@dhis2-ui/input" "8.6.0" - "@dhis2-ui/intersection-detector" "8.6.0" - "@dhis2-ui/label" "8.6.0" - "@dhis2-ui/layer" "8.6.0" - "@dhis2-ui/legend" "8.6.0" - "@dhis2-ui/loader" "8.6.0" - "@dhis2-ui/logo" "8.6.0" - "@dhis2-ui/menu" "8.6.0" - "@dhis2-ui/modal" "8.6.0" - "@dhis2-ui/node" "8.6.0" - "@dhis2-ui/notice-box" "8.6.0" - "@dhis2-ui/organisation-unit-tree" "8.6.0" - "@dhis2-ui/pagination" "8.6.0" - "@dhis2-ui/popover" "8.6.0" - "@dhis2-ui/popper" "8.6.0" - "@dhis2-ui/portal" "8.6.0" - "@dhis2-ui/radio" "8.6.0" - "@dhis2-ui/required" "8.6.0" - "@dhis2-ui/segmented-control" "8.6.0" - "@dhis2-ui/select" "8.6.0" - "@dhis2-ui/selector-bar" "8.6.0" - "@dhis2-ui/sharing-dialog" "8.6.0" - "@dhis2-ui/switch" "8.6.0" - "@dhis2-ui/tab" "8.6.0" - "@dhis2-ui/table" "8.6.0" - "@dhis2-ui/tag" "8.6.0" - "@dhis2-ui/text-area" "8.6.0" - "@dhis2-ui/tooltip" "8.6.0" - "@dhis2-ui/transfer" "8.6.0" - "@dhis2-ui/user-avatar" "8.6.0" - "@dhis2/ui-constants" "8.6.0" - "@dhis2/ui-forms" "8.6.0" - "@dhis2/ui-icons" "8.6.0" +"@dhis2/ui-icons@8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-8.6.2.tgz#7048a291ad0cfd91524b1db3855b479748380194" + integrity sha512-C+pgAG+pL09NQQfVzbwsReeOefQUyDQQf5/4QQelIvttEtbPAXCtRdOaP3E40/+U/TtGo6XAvQTDNgt8JnNIyw== + +"@dhis2/ui@^8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-8.6.2.tgz#2965e2df0cbb18bc107debba0062e48760c9b417" + integrity sha512-yaGaE6Ji9VveTSuu052Wqqc8j2UoVaw3Sa+RlTLgweqelELVowzPCRLAYs1cAuI0VWjX3zEXejlfmIrzKN3bTw== + dependencies: + "@dhis2-ui/alert" "8.6.2" + "@dhis2-ui/box" "8.6.2" + "@dhis2-ui/button" "8.6.2" + "@dhis2-ui/card" "8.6.2" + "@dhis2-ui/center" "8.6.2" + "@dhis2-ui/checkbox" "8.6.2" + "@dhis2-ui/chip" "8.6.2" + "@dhis2-ui/cover" "8.6.2" + "@dhis2-ui/css" "8.6.2" + "@dhis2-ui/divider" "8.6.2" + "@dhis2-ui/field" "8.6.2" + "@dhis2-ui/file-input" "8.6.2" + "@dhis2-ui/header-bar" "8.6.2" + "@dhis2-ui/help" "8.6.2" + "@dhis2-ui/input" "8.6.2" + "@dhis2-ui/intersection-detector" "8.6.2" + "@dhis2-ui/label" "8.6.2" + "@dhis2-ui/layer" "8.6.2" + "@dhis2-ui/legend" "8.6.2" + "@dhis2-ui/loader" "8.6.2" + "@dhis2-ui/logo" "8.6.2" + "@dhis2-ui/menu" "8.6.2" + "@dhis2-ui/modal" "8.6.2" + "@dhis2-ui/node" "8.6.2" + "@dhis2-ui/notice-box" "8.6.2" + "@dhis2-ui/organisation-unit-tree" "8.6.2" + "@dhis2-ui/pagination" "8.6.2" + "@dhis2-ui/popover" "8.6.2" + "@dhis2-ui/popper" "8.6.2" + "@dhis2-ui/portal" "8.6.2" + "@dhis2-ui/radio" "8.6.2" + "@dhis2-ui/required" "8.6.2" + "@dhis2-ui/segmented-control" "8.6.2" + "@dhis2-ui/select" "8.6.2" + "@dhis2-ui/selector-bar" "8.6.2" + "@dhis2-ui/sharing-dialog" "8.6.2" + "@dhis2-ui/switch" "8.6.2" + "@dhis2-ui/tab" "8.6.2" + "@dhis2-ui/table" "8.6.2" + "@dhis2-ui/tag" "8.6.2" + "@dhis2-ui/text-area" "8.6.2" + "@dhis2-ui/tooltip" "8.6.2" + "@dhis2-ui/transfer" "8.6.2" + "@dhis2-ui/user-avatar" "8.6.2" + "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-forms" "8.6.2" + "@dhis2/ui-icons" "8.6.2" prop-types "^15.7.2" "@eslint/eslintrc@^0.4.3": From 0e11e56da2ea7d7da3a5b570a199240c9280e64c Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 15 Nov 2022 13:03:01 +0000 Subject: [PATCH 49/88] chore(release): cut 10.1.5 [skip release] ## [10.1.5](https://github.com/dhis2/app-platform/compare/v10.1.4...v10.1.5) (2022-11-15) ### Bug Fixes * **deps:** bump platform deps and unpin ([bd2582f](https://github.com/dhis2/app-platform/commit/bd2582f3faa17e46142210c530584e79d4b5998a)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcd6438b5..4098f37af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.1.5](https://github.com/dhis2/app-platform/compare/v10.1.4...v10.1.5) (2022-11-15) + + +### Bug Fixes + +* **deps:** bump platform deps and unpin ([bd2582f](https://github.com/dhis2/app-platform/commit/bd2582f3faa17e46142210c530584e79d4b5998a)) + ## [10.1.4](https://github.com/dhis2/app-platform/compare/v10.1.3...v10.1.4) (2022-11-08) diff --git a/adapter/package.json b/adapter/package.json index 40be64c42..5ee316c6e 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.1.4", + "version": "10.1.5", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.1.4", + "@dhis2/pwa": "10.1.5", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.4", + "@dhis2/cli-app-scripts": "10.1.5", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 3b425e0e3..20ca9c428 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.1.4", + "version": "10.1.5", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.1.4", + "@dhis2/app-shell": "10.1.5", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@yarnpkg/lockfile": "^1.1.0", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index ae1affdea..f2ba9a734 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.1.4", + "version": "10.1.5", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index cd6637b06..ac40047a3 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.1.4", + "version": "10.1.5", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 5e8cae191..90a5dbe21 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.1.4", + "version": "10.1.5", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index d711b4e3a..bc0b5fb28 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.1.4", + "version": "10.1.5", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.4" + "@dhis2/cli-app-scripts": "10.1.5" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index c27f290c2..d6c9ecc67 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.1.4", + "version": "10.1.5", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.1.4", + "@dhis2/app-adapter": "10.1.5", "@dhis2/app-runtime": "^3.6.1", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/pwa": "10.1.4", + "@dhis2/pwa": "10.1.5", "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", "moment": "^2.29.1", From 2e9729d3620f799a27ce50add4433500529d5b4c Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 15 Nov 2022 13:07:47 +0000 Subject: [PATCH 50/88] chore(release): cut 10.2.0-alpha.2 [skip release] # [10.2.0-alpha.2](https://github.com/dhis2/app-platform/compare/v10.2.0-alpha.1...v10.2.0-alpha.2) (2022-11-15) ### Bug Fixes * **deps:** bump app-runtime to 3.6.1 [LIBS-356] ([#763](https://github.com/dhis2/app-platform/issues/763)) ([190b9e7](https://github.com/dhis2/app-platform/commit/190b9e7a16220421d269410c6482a10c8ff2b6ea)) * **deps:** update app-runtime and ui packages ([#761](https://github.com/dhis2/app-platform/issues/761)) ([f6406c5](https://github.com/dhis2/app-platform/commit/f6406c55be747793317021423e39bf98dc7f04bb)) * **offline-interface:** protect against SW errors ([ad3e476](https://github.com/dhis2/app-platform/commit/ad3e476273823c1c4983c50ac0500e3b9eb19c30)) * **pwa:** file SWR filter & allow navigation 403s [LIBS-356] [LIBS-357] ([#762](https://github.com/dhis2/app-platform/issues/762)) ([bbfd3eb](https://github.com/dhis2/app-platform/commit/bbfd3eb2172e81126af0f1515e575134e1c2d79e)) * **pwa-boundary:** catch errors ([ecd8b21](https://github.com/dhis2/app-platform/commit/ecd8b21dc34f1eee7497331cb254c459252d355d)) --- CHANGELOG.md | 11 +++++++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 24 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcd6438b5..debae3e3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +# [10.2.0-alpha.2](https://github.com/dhis2/app-platform/compare/v10.2.0-alpha.1...v10.2.0-alpha.2) (2022-11-15) + + +### Bug Fixes + +* **deps:** bump app-runtime to 3.6.1 [LIBS-356] ([#763](https://github.com/dhis2/app-platform/issues/763)) ([190b9e7](https://github.com/dhis2/app-platform/commit/190b9e7a16220421d269410c6482a10c8ff2b6ea)) +* **deps:** update app-runtime and ui packages ([#761](https://github.com/dhis2/app-platform/issues/761)) ([f6406c5](https://github.com/dhis2/app-platform/commit/f6406c55be747793317021423e39bf98dc7f04bb)) +* **offline-interface:** protect against SW errors ([ad3e476](https://github.com/dhis2/app-platform/commit/ad3e476273823c1c4983c50ac0500e3b9eb19c30)) +* **pwa:** file SWR filter & allow navigation 403s [LIBS-356] [LIBS-357] ([#762](https://github.com/dhis2/app-platform/issues/762)) ([bbfd3eb](https://github.com/dhis2/app-platform/commit/bbfd3eb2172e81126af0f1515e575134e1c2d79e)) +* **pwa-boundary:** catch errors ([ecd8b21](https://github.com/dhis2/app-platform/commit/ecd8b21dc34f1eee7497331cb254c459252d355d)) + ## [10.1.4](https://github.com/dhis2/app-platform/compare/v10.1.3...v10.1.4) (2022-11-08) diff --git a/adapter/package.json b/adapter/package.json index 40be64c42..e920efc67 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.1.4", + "version": "10.2.0-alpha.2", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.1.4", + "@dhis2/pwa": "10.2.0-alpha.2", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.4", + "@dhis2/cli-app-scripts": "10.2.0-alpha.2", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index d491cd0a6..3e24356fa 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.1.4", + "version": "10.2.0-alpha.2", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.1.4", + "@dhis2/app-shell": "10.2.0-alpha.2", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index ae1affdea..94ca9f3ff 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.1.4", + "version": "10.2.0-alpha.2", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index cd6637b06..66685aaa0 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.1.4", + "version": "10.2.0-alpha.2", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 5e8cae191..e7d78dbc2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.1.4", + "version": "10.2.0-alpha.2", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index d711b4e3a..a24a23c6d 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.1.4", + "version": "10.2.0-alpha.2", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.4" + "@dhis2/cli-app-scripts": "10.2.0-alpha.2" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 357893e93..a93b03338 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.1.4", + "version": "10.2.0-alpha.2", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.1.4", + "@dhis2/app-adapter": "10.2.0-alpha.2", "@dhis2/app-runtime": "3.6.1", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/pwa": "10.1.4", + "@dhis2/pwa": "10.2.0-alpha.2", "@dhis2/ui": "8.6.0", "classnames": "^2.2.6", "moment": "^2.29.1", From 69411d9b61845cbd0d053f2313bdbd4e80fdf2ac Mon Sep 17 00:00:00 2001 From: Edoardo Sabadelli Date: Tue, 15 Nov 2022 15:51:48 +0100 Subject: [PATCH 51/88] docs: add entrypoint plugin property explanation (#770) * docs: add entrypoint plugin property explanation * chore: run Prettier * fix: remove default for entryPoints.plugin Co-authored-by: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Co-authored-by: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> --- docs/config/d2-config-js-reference.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/config/d2-config-js-reference.md b/docs/config/d2-config-js-reference.md index c924c7de7..d5cc7b75e 100644 --- a/docs/config/d2-config-js-reference.md +++ b/docs/config/d2-config-js-reference.md @@ -20,6 +20,7 @@ The following configuration properties are supported: | **description** | _string_ | `pkg.description` | A full-length description of the application | | **author** | _string_ or _object_ | `pkg.author` | The name of the developer to include in the DHIS2 manifest, following [package.json author field syntax](https://docs.npmjs.com/cli/v8/configuring-npm/package-json#people-fields-author-contributors). | | **entryPoints.app** | _string_ | **./src/App** | The path to the application entrypoint (not used for libraries) | +| **entryPoints.plugin** | _string_ | | The path to the application's plugin entrypoint (not used for libraries) | | **entryPoints.lib** | _string_ or _object_ | **./src/index** | The path to the library entrypoint(s) (not used for applications). Supports [conditional exports](https://nodejs.org/dist/latest-v16.x/docs/api/packages.html#packages_conditional_exports) | | **dataStoreNamespace** | _string_ | | The DataStore and UserDataStore namespace to reserve for this application. The reserved namespace **must** be suitably unique, as other apps will fail to install if they attempt to reserve the same namespace - see the [webapp manifest docs](https://docs.dhis2.org/en/develop/loading-apps.html) | | **customAuthorities** | _Array(string)_ | | An array of custom authorities to create when installing the app, these do not provide security protections in the DHIS2 REST API but can be assigned to user roles and used to modify the interface displayed to a user - see the [webapp manifest docs](https://docs.dhis2.org/en/develop/loading-apps.html) | From 41113c04f50f6677844f3248d65fcfdbc67a2b58 Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Thu, 24 Nov 2022 14:31:26 +0100 Subject: [PATCH 52/88] fix(pwa): only count clients in scope (#760) --- pwa/src/service-worker/utils.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pwa/src/service-worker/utils.js b/pwa/src/service-worker/utils.js index 8e71063b8..2f018eef1 100644 --- a/pwa/src/service-worker/utils.js +++ b/pwa/src/service-worker/utils.js @@ -104,15 +104,23 @@ export async function getClientsInfo(event) { // Include uncontrolled clients: necessary to know if there are multiple // tabs open upon first SW installation - const clientsList = await self.clients.matchAll({ - includeUncontrolled: true, - }) + const filteredClientsList = await self.clients + .matchAll({ + includeUncontrolled: true, + }) + .then((clientsList) => + // Filter to just clients within this SW scope, because other clients + // on this domain but outside of SW scope are returned otherwise + clientsList.filter((client) => + client.url.startsWith(self.registration.scope) + ) + ) self.clients.get(clientId).then((client) => { client.postMessage({ type: swMsgs.clientsInfo, payload: { - clientsCount: clientsList.length, + clientsCount: filteredClientsList.length, }, }) }) From c47df6604d3da4421ac13ac70b5bb7210c43ee3a Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 24 Nov 2022 13:39:38 +0000 Subject: [PATCH 53/88] chore(release): cut 10.1.6 [skip release] ## [10.1.6](https://github.com/dhis2/app-platform/compare/v10.1.5...v10.1.6) (2022-11-24) ### Bug Fixes * **pwa:** only count clients in scope ([#760](https://github.com/dhis2/app-platform/issues/760)) ([41113c0](https://github.com/dhis2/app-platform/commit/41113c04f50f6677844f3248d65fcfdbc67a2b58)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4098f37af..3a4aec726 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.1.6](https://github.com/dhis2/app-platform/compare/v10.1.5...v10.1.6) (2022-11-24) + + +### Bug Fixes + +* **pwa:** only count clients in scope ([#760](https://github.com/dhis2/app-platform/issues/760)) ([41113c0](https://github.com/dhis2/app-platform/commit/41113c04f50f6677844f3248d65fcfdbc67a2b58)) + ## [10.1.5](https://github.com/dhis2/app-platform/compare/v10.1.4...v10.1.5) (2022-11-15) diff --git a/adapter/package.json b/adapter/package.json index 5ee316c6e..0ba06a772 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.1.5", + "version": "10.1.6", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.1.5", + "@dhis2/pwa": "10.1.6", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.5", + "@dhis2/cli-app-scripts": "10.1.6", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 20ca9c428..cbc5bfa38 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.1.5", + "version": "10.1.6", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.1.5", + "@dhis2/app-shell": "10.1.6", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@yarnpkg/lockfile": "^1.1.0", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index f2ba9a734..9f46e2505 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.1.5", + "version": "10.1.6", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index ac40047a3..657e7c683 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.1.5", + "version": "10.1.6", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 90a5dbe21..0445ce6da 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.1.5", + "version": "10.1.6", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index bc0b5fb28..2b883037e 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.1.5", + "version": "10.1.6", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.5" + "@dhis2/cli-app-scripts": "10.1.6" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index d6c9ecc67..ed19630c5 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.1.5", + "version": "10.1.6", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.1.5", + "@dhis2/app-adapter": "10.1.6", "@dhis2/app-runtime": "^3.6.1", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/pwa": "10.1.5", + "@dhis2/pwa": "10.1.6", "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", "moment": "^2.29.1", From b4dd3514079d05d0522174f199667a1e8d71a7e2 Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Fri, 25 Nov 2022 11:33:07 +0100 Subject: [PATCH 54/88] refactor: review feedback (#773) * chore: remove obsolete comment * chore: add link to more explanation * chore: flag dhis2-specific changes in webpack config * chore: move plugin webpack config --- .../plugin.webpack.config.js} | 10 ++++------ cli/src/lib/parseConfig.js | 1 - cli/src/lib/plugin/build.js | 2 +- cli/src/lib/plugin/start.js | 3 ++- 4 files changed, 7 insertions(+), 9 deletions(-) rename cli/{src/lib/plugin/webpack.config.js => config/plugin.webpack.config.js} (97%) diff --git a/cli/src/lib/plugin/webpack.config.js b/cli/config/plugin.webpack.config.js similarity index 97% rename from cli/src/lib/plugin/webpack.config.js rename to cli/config/plugin.webpack.config.js index dba2ef4f6..f907cf72f 100644 --- a/cli/src/lib/plugin/webpack.config.js +++ b/cli/config/plugin.webpack.config.js @@ -9,9 +9,9 @@ const getPublicUrlOrPath = require('react-dev-utils/getPublicUrlOrPath') const TerserPlugin = require('terser-webpack-plugin') const webpack = require('webpack') const WorkboxWebpackPlugin = require('workbox-webpack-plugin') -const makeBabelConfig = require('../../../config/makeBabelConfig') -const { getPWAEnvVars } = require('../pwa') -const getShellEnv = require('../shell/env') +const { getPWAEnvVars } = require('../src/lib/pwa') +const getShellEnv = require('../src/lib/shell/env') +const makeBabelConfig = require('./makeBabelConfig') const babelWebpackConfig = { babelrc: false, @@ -36,7 +36,6 @@ module.exports = ({ env: webpackEnv, config, paths }) => { const shellEnv = getShellEnv({ plugin: 'true', name: config.title, - // todo: need to make sure PWA is enabled for plugins ...getPWAEnvVars(config), }) @@ -276,7 +275,7 @@ module.exports = ({ env: webpackEnv, config, paths }) => { }, }), }, - // 'asset/resource' fixes fonts, but 'file-loader' breaks css modules + // dhis2: 'asset/resource' fixes fonts, but 'file-loader' breaks css modules // when used for all asset types. So use each for respective files { test: /\.(woff|woff2|eot|ttf|otf)$/i, @@ -311,6 +310,5 @@ module.exports = ({ env: webpackEnv, config, paths }) => { }, // Saves some chunk size logging performance: false, - // stats: 'verbose', } } diff --git a/cli/src/lib/parseConfig.js b/cli/src/lib/parseConfig.js index 078d85d23..9d5f7c5cf 100644 --- a/cli/src/lib/parseConfig.js +++ b/cli/src/lib/parseConfig.js @@ -43,7 +43,6 @@ const validateConfig = (config) => { ) } }) - // Todo: make sure apps with plugins have `pwa_enabled: true` in the config return true } diff --git a/cli/src/lib/plugin/build.js b/cli/src/lib/plugin/build.js index 0d4f9572b..e1170cbc6 100644 --- a/cli/src/lib/plugin/build.js +++ b/cli/src/lib/plugin/build.js @@ -6,7 +6,7 @@ process.env.NODE_ENV = 'production' const { reporter } = require('@dhis2/cli-helpers-engine') const webpack = require('webpack') -const webpackConfigFactory = require('./webpack.config') +const webpackConfigFactory = require('../../../config/plugin.webpack.config') module.exports = async ({ config, paths }) => { reporter.debug('Building plugin...') diff --git a/cli/src/lib/plugin/start.js b/cli/src/lib/plugin/start.js index fadb785ca..fc0c03e8f 100644 --- a/cli/src/lib/plugin/start.js +++ b/cli/src/lib/plugin/start.js @@ -7,11 +7,12 @@ process.env.NODE_ENV = 'development' const getPublicUrlOrPath = require('react-dev-utils/getPublicUrlOrPath') const webpack = require('webpack') const WebpackDevServer = require('webpack-dev-server') -const webpackConfigFactory = require('./webpack.config') +const webpackConfigFactory = require('../../../config/plugin.webpack.config') module.exports = async ({ port, config, paths }) => { const webpackConfig = webpackConfigFactory({ // todo: change to development, but this creates a compilation error + // can read more here: https://github.com/dhis2/app-platform/pull/740/files/69411d9b61845cbd0d053f2313bdbd4e80fdf2ac#r1031576956 env: 'production', config, paths, From e0236ebc9e7ce27e8cb6b29de79226b4837c380b Mon Sep 17 00:00:00 2001 From: Kai Vandivier Date: Wed, 30 Nov 2022 01:49:02 +0100 Subject: [PATCH 55/88] chore: add plugin to pwa example app --- examples/pwa-app/d2.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/pwa-app/d2.config.js b/examples/pwa-app/d2.config.js index d038e6be6..a088cc478 100644 --- a/examples/pwa-app/d2.config.js +++ b/examples/pwa-app/d2.config.js @@ -11,6 +11,7 @@ const config = { entryPoints: { app: './src/App.js', + plugin: './src/components/VisualizationsList.js', }, } From cc4ae18d2f7b47e95e40acf17326a84f2b1d27a0 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Wed, 30 Nov 2022 01:04:30 +0000 Subject: [PATCH 56/88] chore(release): cut 10.2.0-alpha.3 [skip release] # [10.2.0-alpha.3](https://github.com/dhis2/app-platform/compare/v10.2.0-alpha.2...v10.2.0-alpha.3) (2022-11-30) ### Bug Fixes * **deps:** bump platform deps and unpin ([bd2582f](https://github.com/dhis2/app-platform/commit/bd2582f3faa17e46142210c530584e79d4b5998a)) * **pwa:** only count clients in scope ([#760](https://github.com/dhis2/app-platform/issues/760)) ([41113c0](https://github.com/dhis2/app-platform/commit/41113c04f50f6677844f3248d65fcfdbc67a2b58)) --- CHANGELOG.md | 8 ++++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 21 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a4aec726..6e96ef2d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# [10.2.0-alpha.3](https://github.com/dhis2/app-platform/compare/v10.2.0-alpha.2...v10.2.0-alpha.3) (2022-11-30) + + +### Bug Fixes + +* **deps:** bump platform deps and unpin ([bd2582f](https://github.com/dhis2/app-platform/commit/bd2582f3faa17e46142210c530584e79d4b5998a)) +* **pwa:** only count clients in scope ([#760](https://github.com/dhis2/app-platform/issues/760)) ([41113c0](https://github.com/dhis2/app-platform/commit/41113c04f50f6677844f3248d65fcfdbc67a2b58)) + ## [10.1.6](https://github.com/dhis2/app-platform/compare/v10.1.5...v10.1.6) (2022-11-24) diff --git a/adapter/package.json b/adapter/package.json index 0ba06a772..834cecc09 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.1.6", + "version": "10.2.0-alpha.3", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.1.6", + "@dhis2/pwa": "10.2.0-alpha.3", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.6", + "@dhis2/cli-app-scripts": "10.2.0-alpha.3", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 1da6cd1f5..1082728cd 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.1.6", + "version": "10.2.0-alpha.3", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.1.6", + "@dhis2/app-shell": "10.2.0-alpha.3", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index 9f46e2505..071363cec 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.1.6", + "version": "10.2.0-alpha.3", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 657e7c683..d6f81c05f 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.1.6", + "version": "10.2.0-alpha.3", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 0445ce6da..0b2c339aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.1.6", + "version": "10.2.0-alpha.3", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index 2b883037e..5ac6491e1 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.1.6", + "version": "10.2.0-alpha.3", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.1.6" + "@dhis2/cli-app-scripts": "10.2.0-alpha.3" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index ed19630c5..fd615f886 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.1.6", + "version": "10.2.0-alpha.3", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.1.6", + "@dhis2/app-adapter": "10.2.0-alpha.3", "@dhis2/app-runtime": "^3.6.1", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/pwa": "10.1.6", + "@dhis2/pwa": "10.2.0-alpha.3", "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", "moment": "^2.29.1", From 0ec89e45b5c2a35863631574ffbc7eb14e406ce7 Mon Sep 17 00:00:00 2001 From: Kai Vandivier Date: Wed, 30 Nov 2022 12:19:34 +0100 Subject: [PATCH 57/88] chore(deps-dev): bump cli-style --- .eslintrc.js | 1 + package.json | 2 +- yarn.lock | 179 +++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 174 insertions(+), 8 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 643fcd5ec..733c40213 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -7,6 +7,7 @@ module.exports = { }, rules: { 'import/extensions': 'off', + 'react/no-unknown-property': ['error', { ignore: ['jsx'] }], }, overrides: [ { diff --git a/package.json b/package.json index 0b2c339aa..13acd2cf7 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ ] }, "devDependencies": { - "@dhis2/cli-style": "^10.4.1", + "@dhis2/cli-style": "^10.4.3", "@dhis2/cli-utils-docsite": "^3.0.0", "concurrently": "^6.0.0", "serve": "^12.0.0" diff --git a/yarn.lock b/yarn.lock index 26d981501..7e5763d52 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2181,10 +2181,10 @@ handlebars "^4.7.3" isbinaryfile "^4.0.4" -"@dhis2/cli-style@^10.4.1": - version "10.4.1" - resolved "https://registry.yarnpkg.com/@dhis2/cli-style/-/cli-style-10.4.1.tgz#1186d79f4b4ef2802832a116562041ae50c596dc" - integrity sha512-4INZ2T67kZXkykUuNr9TqL0B88HYRYvtc2ctDV0IemK5bSNiwoQrgM6lqMIFHE5T48DEaFTQ3rvrd0nLjsW6Ng== +"@dhis2/cli-style@^10.4.3": + version "10.4.3" + resolved "https://registry.yarnpkg.com/@dhis2/cli-style/-/cli-style-10.4.3.tgz#a5048c21be3d660975f8cbaf91b0c67ffa62a7f2" + integrity sha512-SffsjUXNT1LVJxcpDA3XkwnfVw14oUIn1WQqQACLmVqsYZrVUR7L163+A194RnF0Ga7BZu3q59DZn/nGGBYbdw== dependencies: "@commitlint/cli" "^12.1.4" "@commitlint/config-conventional" "^13.1.0" @@ -2194,7 +2194,7 @@ eslint "^7.32.0" eslint-config-prettier "^8.3.0" eslint-plugin-import "^2.22.1" - eslint-plugin-react "^7.26.0" + eslint-plugin-react "^7.31.10" fast-glob "^3.2.5" find-up "^5.0.0" fs-extra "^10.0.0" @@ -4044,6 +4044,17 @@ array-includes@^3.1.4, array-includes@^3.1.5: get-intrinsic "^1.1.1" is-string "^1.0.7" +array-includes@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -4095,6 +4106,16 @@ array.prototype.flatmap@^1.3.0: es-abstract "^1.19.2" es-shim-unscopables "^1.0.0" +array.prototype.flatmap@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + array.prototype.reduce@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz#8167e80089f78bff70a99e20bd4201d4663b0a6f" @@ -4106,6 +4127,17 @@ array.prototype.reduce@^1.0.4: es-array-method-boxes-properly "^1.0.0" is-string "^1.0.7" +array.prototype.tosorted@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" + integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -6512,6 +6544,36 @@ es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19 string.prototype.trimstart "^1.0.5" unbox-primitive "^1.0.2" +es-abstract@^1.20.4: + version "1.20.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" + integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.3" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.2" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + es-array-method-boxes-properly@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" @@ -6673,7 +6735,7 @@ eslint-plugin-react-hooks@^4.3.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react@^7.26.0, eslint-plugin-react@^7.27.1: +eslint-plugin-react@^7.27.1: version "7.30.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz#8e7b1b2934b8426ac067a0febade1b13bd7064e3" integrity sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A== @@ -6693,6 +6755,27 @@ eslint-plugin-react@^7.26.0, eslint-plugin-react@^7.27.1: semver "^6.3.0" string.prototype.matchall "^4.0.7" +eslint-plugin-react@^7.31.10: + version "7.31.11" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz#011521d2b16dcf95795df688a4770b4eaab364c8" + integrity sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw== + dependencies: + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" + prop-types "^15.8.1" + resolve "^2.0.0-next.3" + semver "^6.3.0" + string.prototype.matchall "^4.0.8" + eslint-plugin-testing-library@^5.0.1: version "5.5.1" resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.5.1.tgz#6fe602f9082a421b471bbae8aed692e26fe981b3" @@ -7543,6 +7626,15 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.3" +get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" @@ -8396,6 +8488,11 @@ is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== +is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -10510,7 +10607,7 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.12.0, object-inspect@^1.7.0, object-inspect@^1.9.0: +object-inspect@^1.12.0, object-inspect@^1.12.2, object-inspect@^1.7.0, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== @@ -10550,6 +10647,16 @@ object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + object.entries@^1.1.1, object.entries@^1.1.2, object.entries@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" @@ -10559,6 +10666,15 @@ object.entries@^1.1.1, object.entries@^1.1.2, object.entries@^1.1.5: define-properties "^1.1.3" es-abstract "^1.19.1" +object.entries@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" + integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + object.fromentries@^2.0.3, object.fromentries@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" @@ -10568,6 +10684,15 @@ object.fromentries@^2.0.3, object.fromentries@^2.0.5: define-properties "^1.1.3" es-abstract "^1.19.1" +object.fromentries@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + object.getownpropertydescriptors@^2.1.0: version "2.1.4" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz#7965e6437a57278b587383831a9b829455a4bc37" @@ -10586,6 +10711,14 @@ object.hasown@^1.1.1: define-properties "^1.1.4" es-abstract "^1.19.5" +object.hasown@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" + integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== + dependencies: + define-properties "^1.1.4" + es-abstract "^1.20.4" + object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -10602,6 +10735,15 @@ object.values@^1.1.0, object.values@^1.1.1, object.values@^1.1.2, object.values@ define-properties "^1.1.3" es-abstract "^1.19.1" +object.values@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + oblivious-set@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/oblivious-set/-/oblivious-set-1.0.0.tgz#c8316f2c2fb6ff7b11b6158db3234c49f733c566" @@ -12571,6 +12713,15 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -13260,6 +13411,20 @@ string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.7: regexp.prototype.flags "^1.4.1" side-channel "^1.0.4" +string.prototype.matchall@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + string.prototype.trim@^1.2.1: version "1.2.6" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz#824960787db37a9e24711802ed0c1d1c0254f83e" From c5155d893e9ae9ce7bd1e6d74c8f6671838e77a2 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Wed, 30 Nov 2022 12:58:00 +0000 Subject: [PATCH 58/88] chore(release): cut 10.2.0 [skip release] # [10.2.0](https://github.com/dhis2/app-platform/compare/v10.1.6...v10.2.0) (2022-11-30) ### Bug Fixes * **cli:** improve plugin builds ([#749](https://github.com/dhis2/app-platform/issues/749)) ([b3b317c](https://github.com/dhis2/app-platform/commit/b3b317c781a9952b223236e33bf31c75088ae107)) * add missing webpack dependencies to cli package ([9e58c58](https://github.com/dhis2/app-platform/commit/9e58c58322e56f905abd473af9957f8b24119b95)) * **cli:** update webpack plugin options ([d084b44](https://github.com/dhis2/app-platform/commit/d084b441ee0dd8aecb2d563a0b1dc16275c11bcd)) * casing ([ff5aa6b](https://github.com/dhis2/app-platform/commit/ff5aa6bd1da8705811ec62f7e47537ba7c7f0822)) * handle webpack errors as described in https://webpack.js.org/api/node/\#error-handling ([c557534](https://github.com/dhis2/app-platform/commit/c557534f6ff18eb0990a6eaeb037b0d83bc1c87f)) * plugin placeholder ([1eea12c](https://github.com/dhis2/app-platform/commit/1eea12c825145480d4fbf2807d3078ef608f2325)) ### Features * **cli:** add pwa to plugins; fix plugin build details ([#746](https://github.com/dhis2/app-platform/issues/746)) ([fd920a4](https://github.com/dhis2/app-platform/commit/fd920a41d6d63e1bb4e4934d39e4aef96ead1e4d)) * include plugin launch path plugin.html in built manifests [LIBS-346] ([#745](https://github.com/dhis2/app-platform/issues/745)) ([8843f6b](https://github.com/dhis2/app-platform/commit/8843f6b6396f0f60ef5cb0c6d09cfe90360e976f)) * **adapter:** don't render headerbar for plugins ([4ac6d54](https://github.com/dhis2/app-platform/commit/4ac6d541b7369a580f2947ad3987cbfa980bb5ee)) * **cli:** add webpack config for JS and CSS ([a04b7c6](https://github.com/dhis2/app-platform/commit/a04b7c6c7bd82cbb1bfddbea0e9c0a28fee7ba75)) * **cli:** add webpack config for JS and CSS ([cec6339](https://github.com/dhis2/app-platform/commit/cec63391562ace95cfc1ce94019fd395fd0f8aa8)) * **cli:** create plugin entrypoint wrapper during compilation ([8e4dbff](https://github.com/dhis2/app-platform/commit/8e4dbfffdc923d9810d79f2faa739658f8ab768a)) * **cli:** enable split chunks optimisation in webpack config ([e8ebcbf](https://github.com/dhis2/app-platform/commit/e8ebcbf4a5be6249754c40f623e1b2561e3e77b6)) * **cli:** plugin start script ([9fea158](https://github.com/dhis2/app-platform/commit/9fea1583a2c9c869ed64e8b6ff2d92e324f25358)) * **cli:** setup css minimiser webpack plugin ([3f1b1f2](https://github.com/dhis2/app-platform/commit/3f1b1f25dfc3199227bac623616fae49362fff75)) * **cli:** setup define webpack plugin ([5d8f374](https://github.com/dhis2/app-platform/commit/5d8f3741bfd8c2b7257db2c5078bb5d5664af2f9)) * **cli:** setup htmlwebpackplugin ([202225c](https://github.com/dhis2/app-platform/commit/202225c9dc21a2fceb44c4fdf8e449455c9d3a0e)) * **cli:** setup ignore webpack plugin for moment.js ([223b191](https://github.com/dhis2/app-platform/commit/223b19146914cc4fad6c25070da3022d23ea159a)) * **cli:** setup terser webpack plugin ([2693258](https://github.com/dhis2/app-platform/commit/2693258485cbeec6edca59e60513c05010b785fe)) * webpack config for plugin ([3e4275c](https://github.com/dhis2/app-platform/commit/3e4275c9cf02b8d198ff075560f09b40ce865cea)) * **cli:** support plugin entrypoint when validating entrypoints ([04ece0a](https://github.com/dhis2/app-platform/commit/04ece0a034ff88eedd06268f5dc0469226600a50)) --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 44 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e96ef2d2..efb0795c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,34 @@ +# [10.2.0](https://github.com/dhis2/app-platform/compare/v10.1.6...v10.2.0) (2022-11-30) + + +### Bug Fixes + +* **cli:** improve plugin builds ([#749](https://github.com/dhis2/app-platform/issues/749)) ([b3b317c](https://github.com/dhis2/app-platform/commit/b3b317c781a9952b223236e33bf31c75088ae107)) +* add missing webpack dependencies to cli package ([9e58c58](https://github.com/dhis2/app-platform/commit/9e58c58322e56f905abd473af9957f8b24119b95)) +* **cli:** update webpack plugin options ([d084b44](https://github.com/dhis2/app-platform/commit/d084b441ee0dd8aecb2d563a0b1dc16275c11bcd)) +* casing ([ff5aa6b](https://github.com/dhis2/app-platform/commit/ff5aa6bd1da8705811ec62f7e47537ba7c7f0822)) +* handle webpack errors as described in https://webpack.js.org/api/node/\#error-handling ([c557534](https://github.com/dhis2/app-platform/commit/c557534f6ff18eb0990a6eaeb037b0d83bc1c87f)) +* plugin placeholder ([1eea12c](https://github.com/dhis2/app-platform/commit/1eea12c825145480d4fbf2807d3078ef608f2325)) + + +### Features + +* **cli:** add pwa to plugins; fix plugin build details ([#746](https://github.com/dhis2/app-platform/issues/746)) ([fd920a4](https://github.com/dhis2/app-platform/commit/fd920a41d6d63e1bb4e4934d39e4aef96ead1e4d)) +* include plugin launch path plugin.html in built manifests [LIBS-346] ([#745](https://github.com/dhis2/app-platform/issues/745)) ([8843f6b](https://github.com/dhis2/app-platform/commit/8843f6b6396f0f60ef5cb0c6d09cfe90360e976f)) +* **adapter:** don't render headerbar for plugins ([4ac6d54](https://github.com/dhis2/app-platform/commit/4ac6d541b7369a580f2947ad3987cbfa980bb5ee)) +* **cli:** add webpack config for JS and CSS ([a04b7c6](https://github.com/dhis2/app-platform/commit/a04b7c6c7bd82cbb1bfddbea0e9c0a28fee7ba75)) +* **cli:** add webpack config for JS and CSS ([cec6339](https://github.com/dhis2/app-platform/commit/cec63391562ace95cfc1ce94019fd395fd0f8aa8)) +* **cli:** create plugin entrypoint wrapper during compilation ([8e4dbff](https://github.com/dhis2/app-platform/commit/8e4dbfffdc923d9810d79f2faa739658f8ab768a)) +* **cli:** enable split chunks optimisation in webpack config ([e8ebcbf](https://github.com/dhis2/app-platform/commit/e8ebcbf4a5be6249754c40f623e1b2561e3e77b6)) +* **cli:** plugin start script ([9fea158](https://github.com/dhis2/app-platform/commit/9fea1583a2c9c869ed64e8b6ff2d92e324f25358)) +* **cli:** setup css minimiser webpack plugin ([3f1b1f2](https://github.com/dhis2/app-platform/commit/3f1b1f25dfc3199227bac623616fae49362fff75)) +* **cli:** setup define webpack plugin ([5d8f374](https://github.com/dhis2/app-platform/commit/5d8f3741bfd8c2b7257db2c5078bb5d5664af2f9)) +* **cli:** setup htmlwebpackplugin ([202225c](https://github.com/dhis2/app-platform/commit/202225c9dc21a2fceb44c4fdf8e449455c9d3a0e)) +* **cli:** setup ignore webpack plugin for moment.js ([223b191](https://github.com/dhis2/app-platform/commit/223b19146914cc4fad6c25070da3022d23ea159a)) +* **cli:** setup terser webpack plugin ([2693258](https://github.com/dhis2/app-platform/commit/2693258485cbeec6edca59e60513c05010b785fe)) +* webpack config for plugin ([3e4275c](https://github.com/dhis2/app-platform/commit/3e4275c9cf02b8d198ff075560f09b40ce865cea)) +* **cli:** support plugin entrypoint when validating entrypoints ([04ece0a](https://github.com/dhis2/app-platform/commit/04ece0a034ff88eedd06268f5dc0469226600a50)) + # [10.2.0-alpha.3](https://github.com/dhis2/app-platform/compare/v10.2.0-alpha.2...v10.2.0-alpha.3) (2022-11-30) diff --git a/adapter/package.json b/adapter/package.json index 834cecc09..83a8ef9ce 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.2.0-alpha.3", + "version": "10.2.0", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.2.0-alpha.3", + "@dhis2/pwa": "10.2.0", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.2.0-alpha.3", + "@dhis2/cli-app-scripts": "10.2.0", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 1082728cd..387431915 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.2.0-alpha.3", + "version": "10.2.0", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.2.0-alpha.3", + "@dhis2/app-shell": "10.2.0", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index 071363cec..6f4fd9307 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.2.0-alpha.3", + "version": "10.2.0", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index d6f81c05f..35ff329ef 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.2.0-alpha.3", + "version": "10.2.0", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 13acd2cf7..729d3096e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.2.0-alpha.3", + "version": "10.2.0", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index 5ac6491e1..cd4b532dc 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.2.0-alpha.3", + "version": "10.2.0", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.2.0-alpha.3" + "@dhis2/cli-app-scripts": "10.2.0" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index fd615f886..e3ab93af8 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.2.0-alpha.3", + "version": "10.2.0", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.2.0-alpha.3", + "@dhis2/app-adapter": "10.2.0", "@dhis2/app-runtime": "^3.6.1", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/pwa": "10.2.0-alpha.3", + "@dhis2/pwa": "10.2.0", "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", "moment": "^2.29.1", From 2acb301c812bd804f54dfa55ca82dc3629e5ac8c Mon Sep 17 00:00:00 2001 From: Thomas Zemp Date: Tue, 14 Feb 2023 09:43:58 +0100 Subject: [PATCH 59/88] fix: bump d2-i18n (#783) --- shell/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell/package.json b/shell/package.json index e3ab93af8..6a9ae2e1a 100644 --- a/shell/package.json +++ b/shell/package.json @@ -17,7 +17,7 @@ "dependencies": { "@dhis2/app-adapter": "10.2.0", "@dhis2/app-runtime": "^3.6.1", - "@dhis2/d2-i18n": "^1.1.0", + "@dhis2/d2-i18n": "^1.1.1", "@dhis2/pwa": "10.2.0", "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", From 355cd37b6f56216309f55842fe679ef0e0e53647 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 14 Feb 2023 08:51:19 +0000 Subject: [PATCH 60/88] chore(release): cut 10.2.1 [skip release] ## [10.2.1](https://github.com/dhis2/app-platform/compare/v10.2.0...v10.2.1) (2023-02-14) ### Bug Fixes * bump d2-i18n ([#783](https://github.com/dhis2/app-platform/issues/783)) ([2acb301](https://github.com/dhis2/app-platform/commit/2acb301c812bd804f54dfa55ca82dc3629e5ac8c)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index efb0795c2..f470d6113 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.2.1](https://github.com/dhis2/app-platform/compare/v10.2.0...v10.2.1) (2023-02-14) + + +### Bug Fixes + +* bump d2-i18n ([#783](https://github.com/dhis2/app-platform/issues/783)) ([2acb301](https://github.com/dhis2/app-platform/commit/2acb301c812bd804f54dfa55ca82dc3629e5ac8c)) + # [10.2.0](https://github.com/dhis2/app-platform/compare/v10.1.6...v10.2.0) (2022-11-30) diff --git a/adapter/package.json b/adapter/package.json index 83a8ef9ce..f461bf4ee 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.2.0", + "version": "10.2.1", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.2.0", + "@dhis2/pwa": "10.2.1", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.2.0", + "@dhis2/cli-app-scripts": "10.2.1", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 387431915..b5bdfab8e 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.2.0", + "version": "10.2.1", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.2.0", + "@dhis2/app-shell": "10.2.1", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index 6f4fd9307..8a60e2b63 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.2.0", + "version": "10.2.1", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 35ff329ef..93c7883f4 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.2.0", + "version": "10.2.1", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 729d3096e..a99ab59cb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.2.0", + "version": "10.2.1", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index cd4b532dc..5d67e6d86 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.2.0", + "version": "10.2.1", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.2.0" + "@dhis2/cli-app-scripts": "10.2.1" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 6a9ae2e1a..7953bbd8e 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.2.0", + "version": "10.2.1", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.2.0", + "@dhis2/app-adapter": "10.2.1", "@dhis2/app-runtime": "^3.6.1", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.2.0", + "@dhis2/pwa": "10.2.1", "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", "moment": "^2.29.1", From 049cdf3610b28ada4b4241870ff8f2f5cc9f09fa Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Thu, 16 Feb 2023 15:02:37 +0100 Subject: [PATCH 61/88] fix(cli): fix `--testRegex` option on `test` command (#784) * fix(cli): accept `--testRegex` option on `test` command * fix: don't provide array of [undefined] --- cli/src/commands/test.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cli/src/commands/test.js b/cli/src/commands/test.js index 67706f9ad..2eae73019 100644 --- a/cli/src/commands/test.js +++ b/cli/src/commands/test.js @@ -55,7 +55,9 @@ const handler = async ({ const result = await runCLI( { - testPathPattern: testRegex, + // This arg actually expects an array + // https://github.com/facebook/jest/blob/21a92711a22c7b6633909fd42a87499e179d80c2/packages/jest-config/src/normalize.ts#L391-L417 + testPathPattern: testRegex && [testRegex], config: JSON.stringify(jestConfig), updateSnapshot: !ci && updateSnapshot, collectCoverage: coverage, From b7f247a0d81d85da4687c96fad9e8bb54842a8db Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 16 Feb 2023 14:15:17 +0000 Subject: [PATCH 62/88] chore(release): cut 10.2.2 [skip release] ## [10.2.2](https://github.com/dhis2/app-platform/compare/v10.2.1...v10.2.2) (2023-02-16) ### Bug Fixes * **cli:** fix `--testRegex` option on `test` command ([#784](https://github.com/dhis2/app-platform/issues/784)) ([049cdf3](https://github.com/dhis2/app-platform/commit/049cdf3610b28ada4b4241870ff8f2f5cc9f09fa)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f470d6113..a95f2ab99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.2.2](https://github.com/dhis2/app-platform/compare/v10.2.1...v10.2.2) (2023-02-16) + + +### Bug Fixes + +* **cli:** fix `--testRegex` option on `test` command ([#784](https://github.com/dhis2/app-platform/issues/784)) ([049cdf3](https://github.com/dhis2/app-platform/commit/049cdf3610b28ada4b4241870ff8f2f5cc9f09fa)) + ## [10.2.1](https://github.com/dhis2/app-platform/compare/v10.2.0...v10.2.1) (2023-02-14) diff --git a/adapter/package.json b/adapter/package.json index f461bf4ee..8c8dd0e41 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.2.1", + "version": "10.2.2", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.2.1", + "@dhis2/pwa": "10.2.2", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.2.1", + "@dhis2/cli-app-scripts": "10.2.2", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index b5bdfab8e..656612d8d 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.2.1", + "version": "10.2.2", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.2.1", + "@dhis2/app-shell": "10.2.2", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index 8a60e2b63..2c564567d 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.2.1", + "version": "10.2.2", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 93c7883f4..a1cddd8f2 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.2.1", + "version": "10.2.2", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index a99ab59cb..e77da4f4a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.2.1", + "version": "10.2.2", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index 5d67e6d86..7d0395a37 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.2.1", + "version": "10.2.2", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.2.1" + "@dhis2/cli-app-scripts": "10.2.2" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 7953bbd8e..e6aa705f8 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.2.1", + "version": "10.2.2", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.2.1", + "@dhis2/app-adapter": "10.2.2", "@dhis2/app-runtime": "^3.6.1", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.2.1", + "@dhis2/pwa": "10.2.2", "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", "moment": "^2.29.1", From dcdd9188f5a64c5ec842a347ed6aa5acc053cc58 Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Thu, 16 Feb 2023 15:46:26 +0100 Subject: [PATCH 63/88] fix(plugins): fix file loader behavior (#779) --- cli/config/plugin.webpack.config.js | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/cli/config/plugin.webpack.config.js b/cli/config/plugin.webpack.config.js index f907cf72f..f1eb60bc6 100644 --- a/cli/config/plugin.webpack.config.js +++ b/cli/config/plugin.webpack.config.js @@ -105,9 +105,6 @@ module.exports = ({ env: webpackEnv, config, paths }) => { chunkFilename: isProduction ? 'static/js/plugin-[name].[contenthash:8].chunk.js' : 'static/js/plugin-[name].chunk.js', - // ! dhis2: this at least gets fonts to match the CRA build, - // but is re-outputting them - assetModuleFilename: 'static/media/[name].[hash][ext]', // TODO: investigate dev source maps here (devtoolModuleFilenameTemplate) }, optimization: { @@ -275,33 +272,25 @@ module.exports = ({ env: webpackEnv, config, paths }) => { }, }), }, - // dhis2: 'asset/resource' fixes fonts, but 'file-loader' breaks css modules - // when used for all asset types. So use each for respective files - { - test: /\.(woff|woff2|eot|ttf|otf)$/i, - type: 'asset/resource', - generator: { - filename: 'static/media/[name].[hash][ext]', - }, - }, // "file" loader makes sure those assets get served by WebpackDevServer. // When you `import` an asset, you get its (virtual) filename. // In production, they would get copied to the `build` folder. // This loader doesn't use a "test" so it will catch all modules // that fall through the other loaders. { - loader: require.resolve('file-loader'), // Exclude `js` files to keep "css" loader working as it injects // its runtime that would otherwise be processed through "file" loader. // Also exclude `html` and `json` extensions so they get processed - // by webpacks internal loaders. + // by webpack's internal loaders. exclude: [ + /^$/, /\.(js|mjs|jsx|ts|tsx)$/, /\.html$/, /\.json$/, ], - options: { - name: 'static/media/[name].[hash:8].[ext]', + type: 'asset/resource', + generator: { + filename: 'static/media/[name].[hash][ext]', }, }, ], From cba768a65b36b3661b433624f3bff317c1557076 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 16 Feb 2023 14:54:27 +0000 Subject: [PATCH 64/88] chore(release): cut 10.2.3 [skip release] ## [10.2.3](https://github.com/dhis2/app-platform/compare/v10.2.2...v10.2.3) (2023-02-16) ### Bug Fixes * **plugins:** fix file loader behavior ([#779](https://github.com/dhis2/app-platform/issues/779)) ([dcdd918](https://github.com/dhis2/app-platform/commit/dcdd9188f5a64c5ec842a347ed6aa5acc053cc58)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a95f2ab99..fdc9a4328 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.2.3](https://github.com/dhis2/app-platform/compare/v10.2.2...v10.2.3) (2023-02-16) + + +### Bug Fixes + +* **plugins:** fix file loader behavior ([#779](https://github.com/dhis2/app-platform/issues/779)) ([dcdd918](https://github.com/dhis2/app-platform/commit/dcdd9188f5a64c5ec842a347ed6aa5acc053cc58)) + ## [10.2.2](https://github.com/dhis2/app-platform/compare/v10.2.1...v10.2.2) (2023-02-16) diff --git a/adapter/package.json b/adapter/package.json index 8c8dd0e41..bb282f1e3 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.2.2", + "version": "10.2.3", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.2.2", + "@dhis2/pwa": "10.2.3", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.2.2", + "@dhis2/cli-app-scripts": "10.2.3", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 656612d8d..5fc210d2a 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.2.2", + "version": "10.2.3", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.2.2", + "@dhis2/app-shell": "10.2.3", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index 2c564567d..96d1ae285 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.2.2", + "version": "10.2.3", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index a1cddd8f2..569db21d8 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.2.2", + "version": "10.2.3", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index e77da4f4a..2c35fa950 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.2.2", + "version": "10.2.3", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index 7d0395a37..f02b13894 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.2.2", + "version": "10.2.3", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.2.2" + "@dhis2/cli-app-scripts": "10.2.3" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index e6aa705f8..cdd899c05 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.2.2", + "version": "10.2.3", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.2.2", + "@dhis2/app-adapter": "10.2.3", "@dhis2/app-runtime": "^3.6.1", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.2.2", + "@dhis2/pwa": "10.2.3", "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", "moment": "^2.29.1", From 1dfd1e6249fa22412eb87ea8e693d908af835498 Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Fri, 3 Mar 2023 11:22:31 +0100 Subject: [PATCH 65/88] feat(pwa): track online status [LIBS-315] (#718) * fix: migrate to IDB to store dhis2 base url * refactor: init function * fix: add complete env to dev SW * refactor: get base url api * feat(pwa): use SW to track dhis2 server connection (most strategies) * refactor(sw): convert recording mode to strategy & use status plugin * refactor: rename online status to dhis2 connection status for clarity * fix(deps): use latest app-runtime * chore(pwa-app): add request tester * feat(offline-interface): add subscription to connection status from SW * chore(pwa-app): temporarily remove dependency * fix: fallback to localStorage for baseUrl to avoid breaking change * chore: format * chore: formatting * chore: add some tools for testing connection status * fix: exclude pings from cache * fix: treat 401 as disconnected * fix: don't check auth * refactor: make reusable getAllClientsInScope fn * refactor: clean up * fix: throttle status broadcasts * fix: use shorter isConnected name * chore: rename set-up-service-worker * fix: change subscription callback name * chore: some more dev utils * chore: satisfy linter * chore: update comments * refactor: clarify systemInfo and baseUrl states * chore: clarify todos * chore: update comment * fix: wait for offline interface to be ready for connection status * chore: fix typo * chore: update temp test scripts * chore: remove console logs * chore: clear up test scripts * fix(sw): use NetworkOnly for new ping endpoint * feat: use connection status from app runtime --- adapter/src/components/LoginModal.js | 16 ++- .../src/components/ServerVersionProvider.js | 118 +++++++++++++++--- cli/src/lib/pwa/compileServiceWorker.js | 11 +- examples/pwa-app/d2.config.js | 3 +- examples/pwa-app/src/App.js | 2 + .../pwa-app/src/components/RequestTester.js | 53 ++++++++ pwa/src/index.js | 3 +- pwa/src/lib/base-url-db.js | 48 +++++++ pwa/src/lib/constants.js | 3 + .../offline-interface/offline-interface.js | 39 ++++++ .../service-worker/dhis2-connection-status.js | 73 +++++++++++ pwa/src/service-worker/recording-mode.js | 37 ++++-- ...ice-worker.js => set-up-service-worker.js} | 50 ++++++-- pwa/src/service-worker/utils.js | 27 ++-- shell/package.json | 2 +- shell/src/App.js | 4 +- yarn.lock | 56 ++++----- 17 files changed, 455 insertions(+), 90 deletions(-) create mode 100644 examples/pwa-app/src/components/RequestTester.js create mode 100644 pwa/src/lib/base-url-db.js create mode 100644 pwa/src/service-worker/dhis2-connection-status.js rename pwa/src/service-worker/{service-worker.js => set-up-service-worker.js} (84%) diff --git a/adapter/src/components/LoginModal.js b/adapter/src/components/LoginModal.js index cb5c2d136..1b7fdbced 100644 --- a/adapter/src/components/LoginModal.js +++ b/adapter/src/components/LoginModal.js @@ -1,3 +1,4 @@ +import { setBaseUrlByAppName } from '@dhis2/pwa' import { Modal, ModalTitle, @@ -6,16 +7,16 @@ import { Button, InputField, } from '@dhis2/ui' +import PropTypes from 'prop-types' import React, { useState } from 'react' import i18n from '../locales/index.js' import { post } from '../utils/api.js' +// Check if base URL is set statically as an env var (typical in production) const staticUrl = process.env.REACT_APP_DHIS2_BASE_URL -export const LoginModal = () => { - const [server, setServer] = useState( - staticUrl || window.localStorage.DHIS2_BASE_URL || '' - ) +export const LoginModal = ({ appName, baseUrl }) => { + const [server, setServer] = useState(baseUrl || '') const [username, setUsername] = useState('') const [password, setPassword] = useState('') const [isDirty, setIsDirty] = useState(false) @@ -27,7 +28,10 @@ export const LoginModal = () => { setIsDirty(true) if (isValid(server) && isValid(username) && isValid(password)) { if (!staticUrl) { + // keep the localStorage value here -- it's still used in some + // obscure cases, like in the cypress network shim window.localStorage.DHIS2_BASE_URL = server + await setBaseUrlByAppName({ appName, baseUrl: server }) } try { await post( @@ -99,3 +103,7 @@ export const LoginModal = () => { ) } +LoginModal.propTypes = { + appName: PropTypes.string, + baseUrl: PropTypes.string, +} diff --git a/adapter/src/components/ServerVersionProvider.js b/adapter/src/components/ServerVersionProvider.js index 6a76f86cc..71a6006fd 100644 --- a/adapter/src/components/ServerVersionProvider.js +++ b/adapter/src/components/ServerVersionProvider.js @@ -1,4 +1,5 @@ import { Provider } from '@dhis2/app-runtime' +import { getBaseUrlByAppName, setBaseUrlByAppName } from '@dhis2/pwa' import PropTypes from 'prop-types' import React, { useEffect, useState } from 'react' import { get } from '../utils/api.js' @@ -10,45 +11,134 @@ import { useOfflineInterface } from './OfflineInterfaceContext.js' export const ServerVersionProvider = ({ appName, appVersion, - url, + url, // url from env vars apiVersion, pwaEnabled, children, }) => { const offlineInterface = useOfflineInterface() - const [{ loading, error, systemInfo }, setState] = useState({ + const [systemInfoState, setSystemInfoState] = useState({ loading: true, + error: undefined, + systemInfo: undefined, }) + const [baseUrlState, setBaseUrlState] = useState({ + loading: !url, + error: undefined, + baseUrl: url, + }) + const [offlineInterfaceLoading, setOfflineInterfaceLoading] = useState(true) + const { systemInfo } = systemInfoState + const { baseUrl } = baseUrlState useEffect(() => { - if (!url) { - setState({ loading: false, error: new Error('No url specified') }) + // if URL prop is not set, set state to error to show login modal. + // Submitting valid login form with server and credentials reloads page, + // ostensibly with a filled url prop (now persisted locally) + if (!baseUrl) { + // Use a function as the argument to avoid needing baseUrlState as + // a dependency for useEffect + setBaseUrlState((state) => + state.loading + ? state + : { loading: true, error: undefined, systemInfo: undefined } + ) + // try getting URL from IndexedDB + getBaseUrlByAppName(appName) + .then((baseUrlFromDB) => { + if (baseUrlFromDB) { + // Set baseUrl in state if found in DB + setBaseUrlState({ + loading: false, + error: undefined, + baseUrl: baseUrlFromDB, + }) + return + } + // If no URL found in DB, try localStorage + // (previous adapter versions stored the base URL there) + const baseUrlFromLocalStorage = + window.localStorage.DHIS2_BASE_URL + if (baseUrlFromLocalStorage) { + setBaseUrlState({ + loading: false, + error: undefined, + baseUrl: baseUrlFromLocalStorage, + }) + // Also set it in IndexedDB for SW to access + return setBaseUrlByAppName({ + appName, + baseUrl: baseUrlFromLocalStorage, + }) + } + // If no base URL found in either, set error to show login modal + setBaseUrlState({ + loading: false, + error: new Error('No url specified'), + baseUrl: undefined, + }) + }) + .catch((err) => { + console.error(err) + setBaseUrlState({ + loading: false, + error: err, + baseUrl: undefined, + }) + }) + return } - setState((state) => (state.loading ? state : { loading: true })) - const request = get(`${url}/api/system/info`) + // If url IS set, try querying API to test authentication and get + // server version. If it fails, set error to show login modal + + setSystemInfoState((state) => + state.loading + ? state + : { loading: true, error: undefined, systemInfo: undefined } + ) + const request = get(`${baseUrl}/api/system/info`) request .then((systemInfo) => { - setState({ loading: false, systemInfo }) + setSystemInfoState({ + loading: false, + error: undefined, + systemInfo: systemInfo, + }) }) .catch((e) => { // Todo: If this is a network error, the app cannot load -- handle that gracefully here // if (e === 'Network error') { ... } - setState({ loading: false, error: e }) + setSystemInfoState({ + loading: false, + error: e, + systemInfo: undefined, + }) }) return () => { request.abort() } - }, [url]) + }, [appName, baseUrl]) - if (loading) { - return + useEffect(() => { + offlineInterface.ready.then(() => { + setOfflineInterfaceLoading(false) + }) + }, [offlineInterface]) + + // This needs to come before 'loading' case to show modal at correct times + if (systemInfoState.error || baseUrlState.error) { + return } - if (error) { - return + if ( + systemInfoState.loading || + baseUrlState.loading || + offlineInterfaceLoading + ) { + return } const serverVersion = parseDHIS2ServerVersion(systemInfo.version) @@ -59,7 +149,7 @@ export const ServerVersionProvider = ({ config={{ appName, appVersion: parseVersion(appVersion), - baseUrl: url, + baseUrl, apiVersion: apiVersion || realApiVersion, serverVersion, systemInfo, diff --git a/cli/src/lib/pwa/compileServiceWorker.js b/cli/src/lib/pwa/compileServiceWorker.js index 148c173e4..0a2be598f 100644 --- a/cli/src/lib/pwa/compileServiceWorker.js +++ b/cli/src/lib/pwa/compileServiceWorker.js @@ -1,6 +1,7 @@ const path = require('path') const { reporter } = require('@dhis2/cli-helpers-engine') const webpack = require('webpack') +const getEnv = require('../shell/env') const getPWAEnvVars = require('./getPWAEnvVars') /** @@ -34,13 +35,7 @@ function compileServiceWorker({ config, paths, mode }) { // TODO: This could be cleaner if the production SW is built in the same // way instead of using the CRA webpack config, so both can more easily // share environment variables. - const prefixedPWAEnvVars = Object.entries(getPWAEnvVars(config)).reduce( - (output, [key, value]) => ({ - ...output, - [`REACT_APP_DHIS2_APP_${key.toUpperCase()}`]: value, - }), - {} - ) + const env = getEnv({ name: config.title, ...getPWAEnvVars(config) }) const webpackConfig = { mode, // "production" or "development" @@ -54,7 +49,7 @@ function compileServiceWorker({ config, paths, mode }) { new webpack.DefinePlugin({ 'process.env': JSON.stringify({ ...process.env, - ...prefixedPWAEnvVars, + ...env, }), }), ], diff --git a/examples/pwa-app/d2.config.js b/examples/pwa-app/d2.config.js index a088cc478..00c40e76a 100644 --- a/examples/pwa-app/d2.config.js +++ b/examples/pwa-app/d2.config.js @@ -11,7 +11,8 @@ const config = { entryPoints: { app: './src/App.js', - plugin: './src/components/VisualizationsList.js', + // Uncomment this to test plugin builds: + // plugin: './src/components/VisualizationsList.js', }, } diff --git a/examples/pwa-app/src/App.js b/examples/pwa-app/src/App.js index 006f193d6..78c19aaf6 100644 --- a/examples/pwa-app/src/App.js +++ b/examples/pwa-app/src/App.js @@ -1,9 +1,11 @@ import React from 'react' import classes from './App.module.css' +import RequestTester from './components/RequestTester.js' import SectionWrapper from './components/SectionWrapper.js' const MyApp = () => (
+
) diff --git a/examples/pwa-app/src/components/RequestTester.js b/examples/pwa-app/src/components/RequestTester.js new file mode 100644 index 000000000..17bad2c8f --- /dev/null +++ b/examples/pwa-app/src/components/RequestTester.js @@ -0,0 +1,53 @@ +import { useDataEngine, useDhis2ConnectionStatus } from '@dhis2/app-runtime' +import { Box, Button, ButtonStrip, Help } from '@dhis2/ui' +import React from 'react' + +const query = { + me: { + resource: 'me', + params: { + fields: ['id', 'name'], + }, + }, +} + +export default function RequestTester() { + const engine = useDataEngine() + const { isConnected, lastConnected } = useDhis2ConnectionStatus() + + const internalRequest = () => { + console.log('Request tester: internal request') + engine.query(query) + } + const externalRequest = () => { + console.log('Request tester: external request') + fetch('https://random.dog/woof.json') + } + + return ( +
+
+ Connection to DHIS2 server:{' '} + {isConnected ? ( + Connected + ) : ( + NOT CONNECTED + )} +
+
+ Last connected: {lastConnected?.toLocaleTimeString() || 'null'} +
+ Based on useDhis2ConnectionStatus() + + + + + + +
+ ) +} diff --git a/pwa/src/index.js b/pwa/src/index.js index 67aa47475..51fa2e435 100644 --- a/pwa/src/index.js +++ b/pwa/src/index.js @@ -1,4 +1,4 @@ -export { setUpServiceWorker } from './service-worker/service-worker.js' +export { setUpServiceWorker } from './service-worker/set-up-service-worker.js' export { OfflineInterface } from './offline-interface/offline-interface.js' export { checkForUpdates, @@ -9,3 +9,4 @@ export { REGISTRATION_STATE_ACTIVE, REGISTRATION_STATE_FIRST_ACTIVATION, } from './lib/registration.js' +export { getBaseUrlByAppName, setBaseUrlByAppName } from './lib/base-url-db.js' diff --git a/pwa/src/lib/base-url-db.js b/pwa/src/lib/base-url-db.js new file mode 100644 index 000000000..6903658c9 --- /dev/null +++ b/pwa/src/lib/base-url-db.js @@ -0,0 +1,48 @@ +import { openDB /* deleteDB */ } from 'idb' + +export const BASE_URL_DB = 'dhis2-base-url-db' +export const BASE_URL_STORE = 'dhis2-base-url-store' + +const DB_VERSION = 1 + +/** + * Opens indexed DB and object store for baser urls by app name. Should be used any + * time the DB is accessed to make sure object stores are set up correctly and + * avoid DB-access race condition on first installation. + * + * @returns {Promise} dbPromise. Usage: `const db = await dbPromise` + */ +function openBaseUrlsDB() { + return openDB(BASE_URL_DB, DB_VERSION, { + upgrade(db, oldVersion /* newVersion, transaction */) { + // DB versioning trick that can iteratively apply upgrades + // https://developers.google.com/web/ilt/pwa/working-with-indexeddb#using_database_versioning + switch (oldVersion) { + case 0: { + db.createObjectStore(BASE_URL_STORE, { + keyPath: 'appName', + }) + } + // falls through (this comment satisfies eslint) + default: { + console.debug('[sections-db] Done upgrading DB') + } + } + }, + }) +} + +/** Deletes the DB (probably not needed) */ +// function deleteBaseUrlsDB() { +// return deleteDB(BASE_URL_DB) +// } + +export async function setBaseUrlByAppName({ appName, baseUrl }) { + const db = await openBaseUrlsDB() + return db.put(BASE_URL_STORE, { appName, baseUrl }) +} + +export async function getBaseUrlByAppName(appName) { + const db = await openBaseUrlsDB() + return db.get(BASE_URL_STORE, appName).then((entry) => entry?.baseUrl) +} diff --git a/pwa/src/lib/constants.js b/pwa/src/lib/constants.js index 730c4dee4..fdfce73ab 100644 --- a/pwa/src/lib/constants.js +++ b/pwa/src/lib/constants.js @@ -9,4 +9,7 @@ export const swMsgs = Object.freeze({ confirmRecordingCompletion: 'CONFIRM_RECORDING_COMPLETION', completeRecording: 'COMPLETE_RECORDING', recordingCompleted: 'RECORDING_COMPLETED', + dhis2ConnectionStatusUpdate: 'DHIS2_CONNECTION_STATUS_UPDATE', + getImmediateDhis2ConnectionStatusUpdate: + 'GET_IMMEDIATE_DHIS2_CONNECTION_STATUS_UPDATE', }) diff --git a/pwa/src/offline-interface/offline-interface.js b/pwa/src/offline-interface/offline-interface.js index 5cf0d2beb..3a3483dd3 100644 --- a/pwa/src/offline-interface/offline-interface.js +++ b/pwa/src/offline-interface/offline-interface.js @@ -68,6 +68,10 @@ export class OfflineInterface { // Helper property that consumers can check this.pwaEnabled = PWA_ENABLED + // The latest value from the service worker. The `this.ready` promise + // will resolve when this gets a boolean value from the SW + this.latestIsConnected = null + if (this.pwaEnabled) { register() } else { @@ -101,6 +105,30 @@ export class OfflineInterface { this.offlineEvents.emit(type, payload) } navigator.serviceWorker.addEventListener('message', handleSWMessage) + + // When this promise resolves, it indicates that a connection status + // value has been received from the service worker and is available + // as a property on this offlineInterface. + // Expected to be used by ServerVersionProvider in the app adapter + // to delay rendering the app-runtime Provider until ready. + this.ready = new Promise((resolve) => { + // Listen to status updates and store the latest value here so the + // connection status hook can initialize to this value + this.offlineEvents.on( + swMsgs.dhis2ConnectionStatusUpdate, + ({ isConnected }) => { + // If this is the first time receiving an update from the + // SW, resolve the this.ready promise + const shouldResolveReady = this.latestIsConnected === null + this.latestIsConnected = isConnected + if (shouldResolveReady) { + resolve() + } + } + ) + }) + // Prompt the SW to send back connection status without its usual delay + swMessage(swMsgs.getImmediateDhis2ConnectionStatusUpdate) } /** Basically `checkForUpdates` from registration.js exposed here */ @@ -172,6 +200,17 @@ export class OfflineInterface { }) } + /** + * @param {Object} params + * @param {Function} params.onUpdate - Called on status updates with argument { isConnected: bool } + * @returns {Function} - An unsubscribe function + */ + subscribeToDhis2ConnectionStatus({ onUpdate }) { + this.offlineEvents.on(swMsgs.dhis2ConnectionStatusUpdate, onUpdate) + return () => + this.offlineEvents.off(swMsgs.dhis2ConnectionStatusUpdate, onUpdate) + } + /** * Starts a recording session for a cacheable section. Returns a promise * that resolves if the SW message is successfully sent or rejects if diff --git a/pwa/src/service-worker/dhis2-connection-status.js b/pwa/src/service-worker/dhis2-connection-status.js new file mode 100644 index 000000000..c2fb05d50 --- /dev/null +++ b/pwa/src/service-worker/dhis2-connection-status.js @@ -0,0 +1,73 @@ +import throttle from 'lodash/throttle' +import { getBaseUrlByAppName } from '../lib/base-url-db.js' +import { swMsgs } from '../lib/constants.js' +import { getAllClientsInScope } from './utils.js' + +/** + * Tracks connection to the DHIS2 server based on fetch successes or failures. + * Starts as null because it can't be determined until a request is sent + */ +export function initDhis2ConnectionStatus() { + // base url is only set as an env var in production. + // in dev/standalone env, this may be undefined, + // and the base URL can be accessed from IDB later. + // note: if this SW is part of a global shell, + // URL would need to be found on a per-client basis + const dhis2BaseUrl = process.env.REACT_APP_DHIS2_BASE_URL + if (dhis2BaseUrl) { + try { + self.dhis2BaseUrl = new URL(dhis2BaseUrl).href + } catch { + // the base URL is relative; construct an absolute one + self.dhis2BaseUrl = new URL(dhis2BaseUrl, self.location.href).href + } + } +} + +// Throttle this a bit to reduce SW/client messaging +const BROADCAST_INTERVAL_MS = 1000 +export const broadcastDhis2ConnectionStatus = throttle(async (isConnected) => { + const clients = await getAllClientsInScope() + clients.forEach((client) => + client.postMessage({ + type: swMsgs.dhis2ConnectionStatusUpdate, + payload: { isConnected }, + }) + ) +}, BROADCAST_INTERVAL_MS) + +async function isRequestToDhis2Server(request) { + // If dhis2BaseUrl isn't set, try getting it from IDB + if (!self.dhis2BaseUrl) { + const baseUrl = await getBaseUrlByAppName( + process.env.REACT_APP_DHIS2_APP_NAME + ) + if (!baseUrl) { + // No base URL is set; as a best effort, go ahead and update status + // based on this request, even though it might not be to the DHIS2 server + return true + } else { + self.dhis2BaseUrl = baseUrl + } + } + + return request.url.startsWith(self.dhis2BaseUrl) +} + +/** + * A plugin to hook into lifecycle events in workbox strategies + * https://developer.chrome.com/docs/workbox/using-plugins/ + */ +export const dhis2ConnectionStatusPlugin = { + fetchDidFail: async ({ request }) => { + if (await isRequestToDhis2Server(request)) { + broadcastDhis2ConnectionStatus(false) + } + }, + fetchDidSucceed: async ({ request, response }) => { + if (await isRequestToDhis2Server(request)) { + broadcastDhis2ConnectionStatus(true) + } + return response + }, +} diff --git a/pwa/src/service-worker/recording-mode.js b/pwa/src/service-worker/recording-mode.js index 5f6152dd4..9633677ec 100644 --- a/pwa/src/service-worker/recording-mode.js +++ b/pwa/src/service-worker/recording-mode.js @@ -1,3 +1,4 @@ +import { Strategy } from 'workbox-strategies' import { swMsgs } from '../lib/constants.js' import { openSectionsDB, SECTIONS_STORE } from '../lib/sections-db.js' @@ -8,6 +9,14 @@ const CACHEABLE_SECTION_URL_FILTER_PATTERNS = JSON.parse( '[]' ).map((pattern) => new RegExp(pattern)) +/** + * Tracks recording states for multiple clients to handle multiple windows + * recording simultaneously + */ +export function initClientRecordingStates() { + self.clientRecordingStates = {} +} + // Triggered on 'START_RECORDING' message export function startRecording(event) { console.debug('[SW] Starting recording') @@ -77,19 +86,25 @@ export function shouldRequestBeRecorded({ url, event }) { } /** Request handler during recording mode */ -export function handleRecordedRequest({ request, event }) { - const recordingState = self.clientRecordingStates[event.clientId] +export class RecordingMode extends Strategy { + _handle(request, handler) { + const { event } = handler + const recordingState = self.clientRecordingStates[event.clientId] - clearTimeout(recordingState.recordingTimeout) - recordingState.pendingRequests.add(request) + clearTimeout(recordingState.recordingTimeout) + recordingState.pendingRequests.add(request) - fetch(request) - .then((response) => { - return handleRecordedResponse(request, response, event.clientId) - }) - .catch((error) => { - stopRecording(error, event.clientId) - }) + return handler + .fetch(request) + .then((response) => { + return handleRecordedResponse(request, response, event.clientId) + }) + .catch((error) => { + stopRecording(error, event.clientId) + // trigger 'fetchDidFail' callback + throw error + }) + } } /** Response handler during recording mode */ diff --git a/pwa/src/service-worker/service-worker.js b/pwa/src/service-worker/set-up-service-worker.js similarity index 84% rename from pwa/src/service-worker/service-worker.js rename to pwa/src/service-worker/set-up-service-worker.js index 2252bda09..8a053d18f 100644 --- a/pwa/src/service-worker/service-worker.js +++ b/pwa/src/service-worker/set-up-service-worker.js @@ -2,15 +2,22 @@ import { precacheAndRoute, matchPrecache, precache } from 'workbox-precaching' import { registerRoute, setDefaultHandler } from 'workbox-routing' import { NetworkFirst, + NetworkOnly, StaleWhileRevalidate, Strategy, } from 'workbox-strategies' import { swMsgs } from '../lib/constants.js' +import { + broadcastDhis2ConnectionStatus, + dhis2ConnectionStatusPlugin, + initDhis2ConnectionStatus, +} from './dhis2-connection-status' import { startRecording, completeRecording, - handleRecordedRequest, shouldRequestBeRecorded, + initClientRecordingStates, + RecordingMode, } from './recording-mode.js' import { urlMeetsAppShellCachingCriteria, @@ -38,9 +45,8 @@ export function setUpServiceWorker() { // Globals (Note: global state resets each time SW goes idle) - // Tracks recording states for multiple clients to handle multiple windows - // recording simultaneously - self.clientRecordingStates = {} + initClientRecordingStates() + initDhis2ConnectionStatus() // Local constants @@ -138,9 +144,20 @@ export function setUpServiceWorker() { precacheAndRoute(sharedBuildManifest) } + // Handling pings: only use the network, and don't update the connection + // status (let the runtime do that) + // Two endpoints: /api(/version)/system/ping and /api/ping + registerRoute( + ({ url }) => /\/api(\/\d+)?(\/system)?\/ping/.test(url.pathname), + new NetworkOnly() + ) + // Request handler during recording mode: ALL requests are cached // Handling routing: https://developers.google.com/web/tools/workbox/modules/workbox-routing#matching_and_handling_in_routes - registerRoute(shouldRequestBeRecorded, handleRecordedRequest) + registerRoute( + shouldRequestBeRecorded, + new RecordingMode({ plugins: [dhis2ConnectionStatusPlugin] }) + ) // If not recording, fall through to default caching strategies for app // shell: @@ -151,7 +168,10 @@ export function setUpServiceWorker() { PRODUCTION_ENV && urlMeetsAppShellCachingCriteria(url) && /\.(jpg|gif|png|bmp|tiff|ico|woff)$/.test(url.pathname), - new StaleWhileRevalidate({ cacheName: 'other-assets' }) + new StaleWhileRevalidate({ + cacheName: 'other-assets', + plugins: [dhis2ConnectionStatusPlugin], + }) ) // Network-first caching by default @@ -161,7 +181,10 @@ export function setUpServiceWorker() { ({ url }) => urlMeetsAppShellCachingCriteria(url) || (!PRODUCTION_ENV && fileExtensionRegexp.test(url.pathname)), - new NetworkFirst({ cacheName: 'app-shell' }) + new NetworkFirst({ + cacheName: 'app-shell', + plugins: [dhis2ConnectionStatusPlugin], + }) ) // Strategy for all other requests: try cache if network fails, @@ -182,7 +205,9 @@ export function setUpServiceWorker() { } } // Use fallback strategy as default - setDefaultHandler(new NetworkAndTryCache()) + setDefaultHandler( + new NetworkAndTryCache({ plugins: [dhis2ConnectionStatusPlugin] }) + ) // Service Worker event handlers @@ -206,6 +231,15 @@ export function setUpServiceWorker() { self.skipWaiting() } + // Immediately trigger this throttled function -- this allows the app + // to get the value ASAP upon startup, which it otherwise usually + // has to wait for + if ( + event.data.type === swMsgs.getImmediateDhis2ConnectionStatusUpdate + ) { + broadcastDhis2ConnectionStatus.flush() + } + if (event.data.type === swMsgs.startRecording) { startRecording(event) } diff --git a/pwa/src/service-worker/utils.js b/pwa/src/service-worker/utils.js index d8c69657e..5f6f499ae 100644 --- a/pwa/src/service-worker/utils.js +++ b/pwa/src/service-worker/utils.js @@ -107,18 +107,11 @@ export async function removeUnusedCaches() { ) } -/** - * Can be used to access information about this service worker's clients. - * Sends back information on a message with 'CLIENTS_INFO' type; the payload - * currently contains the number of current clients, including uncontrolled. - * @returns {Object} { clientsCounts: number } - */ -export async function getClientsInfo(event) { - const clientId = event.source.id - +/** Get all clients including uncontrolled, but only those within SW scope */ +export function getAllClientsInScope() { // Include uncontrolled clients: necessary to know if there are multiple // tabs open upon first SW installation - const filteredClientsList = await self.clients + return self.clients .matchAll({ includeUncontrolled: true, }) @@ -129,12 +122,24 @@ export async function getClientsInfo(event) { client.url.startsWith(self.registration.scope) ) ) +} + +/** + * Can be used to access information about this service worker's clients. + * Sends back information on a message with 'CLIENTS_INFO' type; the payload + * currently contains the number of current clients, including uncontrolled. + * @returns {Object} { clientsCounts: number } + */ +export async function getClientsInfo(event) { + const clientId = event.source.id + + const clientsList = await getAllClientsInScope() self.clients.get(clientId).then((client) => { client.postMessage({ type: swMsgs.clientsInfo, payload: { - clientsCount: filteredClientsList.length, + clientsCount: clientsList.length, }, }) }) diff --git a/shell/package.json b/shell/package.json index cdd899c05..3a9471883 100644 --- a/shell/package.json +++ b/shell/package.json @@ -16,7 +16,7 @@ }, "dependencies": { "@dhis2/app-adapter": "10.2.3", - "@dhis2/app-runtime": "^3.6.1", + "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.1", "@dhis2/pwa": "10.2.3", "@dhis2/ui": "^8.6.2", diff --git a/shell/src/App.js b/shell/src/App.js index a606488e2..1e5115c9c 100644 --- a/shell/src/App.js +++ b/shell/src/App.js @@ -7,9 +7,7 @@ const D2App = React.lazy(() => ) // Automatic bundle splitting! const appConfig = { - url: - process.env.REACT_APP_DHIS2_BASE_URL || - window.localStorage.DHIS2_BASE_URL, + url: process.env.REACT_APP_DHIS2_BASE_URL, appName: process.env.REACT_APP_DHIS2_APP_NAME || '', appVersion: process.env.REACT_APP_DHIS2_APP_VERSION || '', apiVersion: parseInt(process.env.REACT_APP_DHIS2_API_VERSION), diff --git a/yarn.lock b/yarn.lock index 7e5763d52..7185a7e6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2110,37 +2110,37 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2/app-runtime@^3.6.1": - version "3.6.1" - resolved "https://registry.yarnpkg.com/@dhis2/app-runtime/-/app-runtime-3.6.1.tgz#d39c492239cc81faf2b3ec92fe39c11440640953" - integrity sha512-I+hTHXTqqDSbOCRFd/60AvCGkyYmwMtUD1EkyURuB/NaK37xQQZzrz2/JD3esBYGl2Ner3nLoOgbQwXEMvBeZw== - dependencies: - "@dhis2/app-service-alerts" "3.6.1" - "@dhis2/app-service-config" "3.6.1" - "@dhis2/app-service-data" "3.6.1" - "@dhis2/app-service-offline" "3.6.1" - -"@dhis2/app-service-alerts@3.6.1": - version "3.6.1" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-alerts/-/app-service-alerts-3.6.1.tgz#e3081d05a70b12f8da171e44afc45bdd04265be5" - integrity sha512-hv7cSvSEwlxsSzRoqQ83ymzaMl6lXcFJ3gpsG1qDebNVAjRZAWXZV9GKWGXtdP7GRCOoOypXrzv8WgUlHgMhRQ== - -"@dhis2/app-service-config@3.6.1": - version "3.6.1" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-config/-/app-service-config-3.6.1.tgz#0fb2132e8515e9bdf0af83eb7a138583ff885fe4" - integrity sha512-n3Awr5I1qhJ8UHQTmdaBRiwStU8XbSRVEDfE7TnA0kFCVWoDZIH4YJxnmcTFJLUFxYtaEN4nN9GgrGBGoVcfnQ== - -"@dhis2/app-service-data@3.6.1": - version "3.6.1" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-data/-/app-service-data-3.6.1.tgz#74b0d4d2b4935aa416d52863eacea9c15a1c4d80" - integrity sha512-BX1VOvkwaGmi9NB+r4nnjUQ34tXMlK44c+Tc2jI7EYP6jCSRsbGXeBagP5nSkBdm7XXb2IWlvY2n3/fZFed0kg== +"@dhis2/app-runtime@^3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-runtime/-/app-runtime-3.9.0.tgz#c7e295fd0a68fac976a930bc77105206ded0b61a" + integrity sha512-n0S4pbyvK7FnBQFMONGrhR9YYavBQI+mQLHfCX/vtvOyeoioBUNIinuQlGysuLMEkSVaK5OjV40rvTMzdxF2kQ== + dependencies: + "@dhis2/app-service-alerts" "3.9.0" + "@dhis2/app-service-config" "3.9.0" + "@dhis2/app-service-data" "3.9.0" + "@dhis2/app-service-offline" "3.9.0" + +"@dhis2/app-service-alerts@3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-alerts/-/app-service-alerts-3.9.0.tgz#48d3805676e75ee58104fea4f76cfa779335444e" + integrity sha512-z2eZxm/pxrmFbisbK7/qJKtif2CNWJjaaAH5rfrs5OIajlHy3rO37vSaTQHWv+xWvZFQrs2Op2InxzG0qh5ncA== + +"@dhis2/app-service-config@3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-config/-/app-service-config-3.9.0.tgz#8dc59d8de246f54057c0c685d5f94b4cbade6f73" + integrity sha512-OuRn2mJGrQQ8QIC+oIVYYpclB4LErRK2wtsuy/cXLfRbeUti1qWIh110rgd1hnTx+BgRCs5s3NWdIQxS4hYGIQ== + +"@dhis2/app-service-data@3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-data/-/app-service-data-3.9.0.tgz#37f528b5f7f589cbab8dcc7f997c1668bc6566a9" + integrity sha512-/FJgJhL6YGtIVNX5oaNmavkGmimrVHQsS8ueeUO4FvTjYXGlnnN3IuxypQcy/x4yiUyigbPgFJRnbC1J2af2fg== dependencies: react-query "^3.13.11" -"@dhis2/app-service-offline@3.6.1": - version "3.6.1" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-offline/-/app-service-offline-3.6.1.tgz#4c010888d5b7255920304b8da1581af2144540da" - integrity sha512-nj2FwFiU/XbMsbr+I4HG2v/tmXJW2VBESyhqZ57nzBKhFfVBJgB1bdLBq3gCvw1tRZC2UhqSplilx/vFXg6c8g== +"@dhis2/app-service-offline@3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-offline/-/app-service-offline-3.9.0.tgz#fe4f4a91a1da77554965f6a5fe6f6951d4c467f4" + integrity sha512-0q5zl0vw+a47Ab2qgu6hsZY5ybnH/ea43Vkk4aXYdgcf57xB8ck9DkIcNbc2e1+k9FhvimipxsgTZSbEA/8hJA== dependencies: lodash "^4.17.21" From 626205814d330623854f1f03d4ba94abe8179599 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Fri, 3 Mar 2023 10:38:50 +0000 Subject: [PATCH 66/88] chore(release): cut 10.3.0 [skip release] # [10.3.0](https://github.com/dhis2/app-platform/compare/v10.2.3...v10.3.0) (2023-03-03) ### Features * **pwa:** track online status [LIBS-315] ([#718](https://github.com/dhis2/app-platform/issues/718)) ([1dfd1e6](https://github.com/dhis2/app-platform/commit/1dfd1e6249fa22412eb87ea8e693d908af835498)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fdc9a4328..bb6ece564 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [10.3.0](https://github.com/dhis2/app-platform/compare/v10.2.3...v10.3.0) (2023-03-03) + + +### Features + +* **pwa:** track online status [LIBS-315] ([#718](https://github.com/dhis2/app-platform/issues/718)) ([1dfd1e6](https://github.com/dhis2/app-platform/commit/1dfd1e6249fa22412eb87ea8e693d908af835498)) + ## [10.2.3](https://github.com/dhis2/app-platform/compare/v10.2.2...v10.2.3) (2023-02-16) diff --git a/adapter/package.json b/adapter/package.json index bb282f1e3..08e9e1b95 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.2.3", + "version": "10.3.0", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.2.3", + "@dhis2/pwa": "10.3.0", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.2.3", + "@dhis2/cli-app-scripts": "10.3.0", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 5fc210d2a..23d976ae4 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.2.3", + "version": "10.3.0", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.2.3", + "@dhis2/app-shell": "10.3.0", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index 96d1ae285..a642e8693 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.2.3", + "version": "10.3.0", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 569db21d8..1f4efbb12 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.2.3", + "version": "10.3.0", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 2c35fa950..3dda3e3b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.2.3", + "version": "10.3.0", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index f02b13894..f35dae9d5 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.2.3", + "version": "10.3.0", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.2.3" + "@dhis2/cli-app-scripts": "10.3.0" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 3a9471883..a80a5b1a6 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.2.3", + "version": "10.3.0", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.2.3", + "@dhis2/app-adapter": "10.3.0", "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.2.3", + "@dhis2/pwa": "10.3.0", "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", "moment": "^2.29.1", From 590530e74424c65f41c540b123faec902a594e75 Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Mon, 6 Mar 2023 16:50:13 +0100 Subject: [PATCH 67/88] fix: error in non-pwa apps [LIBS-315] (#789) * fix: error in non-pwa apps * chore: console log and todo --- .../src/components/ServerVersionProvider.js | 14 ++++-- .../offline-interface/offline-interface.js | 50 ++++++++++++------- yarn.lock | 8 +-- 3 files changed, 45 insertions(+), 27 deletions(-) diff --git a/adapter/src/components/ServerVersionProvider.js b/adapter/src/components/ServerVersionProvider.js index 71a6006fd..71460f4bc 100644 --- a/adapter/src/components/ServerVersionProvider.js +++ b/adapter/src/components/ServerVersionProvider.js @@ -27,7 +27,9 @@ export const ServerVersionProvider = ({ error: undefined, baseUrl: url, }) - const [offlineInterfaceLoading, setOfflineInterfaceLoading] = useState(true) + // Skip this loading step in non-pwa apps + const [offlineInterfaceLoading, setOfflineInterfaceLoading] = + useState(pwaEnabled) const { systemInfo } = systemInfoState const { baseUrl } = baseUrlState @@ -123,10 +125,12 @@ export const ServerVersionProvider = ({ }, [appName, baseUrl]) useEffect(() => { - offlineInterface.ready.then(() => { - setOfflineInterfaceLoading(false) - }) - }, [offlineInterface]) + if (pwaEnabled) { + offlineInterface.ready.then(() => { + setOfflineInterfaceLoading(false) + }) + } + }, [offlineInterface, pwaEnabled]) // This needs to come before 'loading' case to show modal at correct times if (systemInfoState.error || baseUrlState.error) { diff --git a/pwa/src/offline-interface/offline-interface.js b/pwa/src/offline-interface/offline-interface.js index 3a3483dd3..ab4d2a385 100644 --- a/pwa/src/offline-interface/offline-interface.js +++ b/pwa/src/offline-interface/offline-interface.js @@ -106,29 +106,43 @@ export class OfflineInterface { } navigator.serviceWorker.addEventListener('message', handleSWMessage) + // (todo: refactor to another function) // When this promise resolves, it indicates that a connection status // value has been received from the service worker and is available // as a property on this offlineInterface. // Expected to be used by ServerVersionProvider in the app adapter // to delay rendering the app-runtime Provider until ready. - this.ready = new Promise((resolve) => { - // Listen to status updates and store the latest value here so the - // connection status hook can initialize to this value - this.offlineEvents.on( - swMsgs.dhis2ConnectionStatusUpdate, - ({ isConnected }) => { - // If this is the first time receiving an update from the - // SW, resolve the this.ready promise - const shouldResolveReady = this.latestIsConnected === null - this.latestIsConnected = isConnected - if (shouldResolveReady) { - resolve() - } - } - ) - }) - // Prompt the SW to send back connection status without its usual delay - swMessage(swMsgs.getImmediateDhis2ConnectionStatusUpdate) + this.ready = !this.pwaEnabled + ? Promise.resolve() + : new Promise((resolve) => { + // Listen to status updates and store the latest value here so the + // connection status hook can initialize to this value + this.offlineEvents.on( + swMsgs.dhis2ConnectionStatusUpdate, + ({ isConnected }) => { + // If this is the first time receiving an update from the + // SW, resolve the this.ready promise + const shouldResolveReady = + this.latestIsConnected === null + this.latestIsConnected = isConnected + if (shouldResolveReady) { + resolve() + } + } + ) + + try { + // Prompt the SW to send back connection status + // without its usual delay + swMessage(swMsgs.getImmediateDhis2ConnectionStatusUpdate) + } catch { + // It's likely the SW hasn't installed yet, so go ahead and + // resolve `ready` -- the app must be online to get to this case + // anyway + this.latestIsConnected = true + resolve() + } + }) } /** Basically `checkForUpdates` from registration.js exposed here */ diff --git a/yarn.lock b/yarn.lock index 7185a7e6c..bb6a3ccda 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2225,10 +2225,10 @@ react-docgen "^6.0.0-alpha.0" url-join "^4.0.1" -"@dhis2/d2-i18n@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@dhis2/d2-i18n/-/d2-i18n-1.1.0.tgz#ec777c5091f747e4c5aa4f9801c62ba4d1ef3d16" - integrity sha512-x3u58goDQsMfBzy50koxNrJjofJTtjRZOfz6f6Py/wMMJfp/T6vZjWMQgcfWH0JrV6d04K1RTt6bI05wqsVQvg== +"@dhis2/d2-i18n@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@dhis2/d2-i18n/-/d2-i18n-1.1.1.tgz#acaca32cd00b60fd6b6f1dee571f2817a50e243c" + integrity sha512-X0jOCIKPaYv/2z0/sdkEvcbRiYu5o1FrOwvitiS6aKFxSL/GJ872I+UdHwpWJtL+yM7Z8E1epljazW0LnHUz0Q== dependencies: i18next "^10.3" moment "^2.24.0" From fb018b950c0eebc0d84fdbdeb2e61805f00ce25a Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Mon, 6 Mar 2023 16:13:12 +0000 Subject: [PATCH 68/88] chore(release): cut 10.3.1 [skip release] ## [10.3.1](https://github.com/dhis2/app-platform/compare/v10.3.0...v10.3.1) (2023-03-06) ### Bug Fixes * error in non-pwa apps [LIBS-315] ([#789](https://github.com/dhis2/app-platform/issues/789)) ([590530e](https://github.com/dhis2/app-platform/commit/590530e74424c65f41c540b123faec902a594e75)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb6ece564..b128f5cf0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.3.1](https://github.com/dhis2/app-platform/compare/v10.3.0...v10.3.1) (2023-03-06) + + +### Bug Fixes + +* error in non-pwa apps [LIBS-315] ([#789](https://github.com/dhis2/app-platform/issues/789)) ([590530e](https://github.com/dhis2/app-platform/commit/590530e74424c65f41c540b123faec902a594e75)) + # [10.3.0](https://github.com/dhis2/app-platform/compare/v10.2.3...v10.3.0) (2023-03-03) diff --git a/adapter/package.json b/adapter/package.json index 08e9e1b95..55a00bf16 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.3.0", + "version": "10.3.1", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.3.0", + "@dhis2/pwa": "10.3.1", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.0", + "@dhis2/cli-app-scripts": "10.3.1", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 23d976ae4..730158685 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.3.0", + "version": "10.3.1", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.3.0", + "@dhis2/app-shell": "10.3.1", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index a642e8693..a4ee10636 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.3.0", + "version": "10.3.1", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 1f4efbb12..1a9363f80 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.3.0", + "version": "10.3.1", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 3dda3e3b8..d8816da4a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.3.0", + "version": "10.3.1", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index f35dae9d5..f9590b4d2 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.3.0", + "version": "10.3.1", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.0" + "@dhis2/cli-app-scripts": "10.3.1" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index a80a5b1a6..da0b05f3a 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.3.0", + "version": "10.3.1", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.3.0", + "@dhis2/app-adapter": "10.3.1", "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.3.0", + "@dhis2/pwa": "10.3.1", "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", "moment": "^2.29.1", From e49a51fec39a323350c71d4e09caff836aab2262 Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Fri, 10 Mar 2023 16:17:55 +0100 Subject: [PATCH 69/88] fix(plugins): omit launch paths when unused [LIBS-477] (#791) * fix(cli): omit pluginLaunchPath when not used * fix(pwa): allow pwa apps to be installable [LIBS-355] * fix(plugins): don't app launchPath if unused --- cli/src/lib/generateManifests.js | 41 ++++++++++++++++++++++++++++---- cli/src/lib/parseConfig.js | 7 ++++-- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/cli/src/lib/generateManifests.js b/cli/src/lib/generateManifests.js index 212766e76..6ba6db624 100644 --- a/cli/src/lib/generateManifests.js +++ b/cli/src/lib/generateManifests.js @@ -1,6 +1,28 @@ const { reporter, chalk } = require('@dhis2/cli-helpers-engine') const fs = require('fs-extra') +/** + * Gets the original `entrypoints` property in d2.config.js + * without applying defaults. Used to detect if there is actually + * supposed to be an app entrypoint for this... app. Temporary until + * the build process is redesigned to allow building plugins without + * apps (LIBS-479) + */ +const getOriginalEntrypoints = (paths) => { + try { + if (fs.existsSync(paths.config)) { + reporter.debug('Loading d2 config at', paths.config) + // NB: this import can be confounded by previous object mutations + const originalConfig = require(paths.config) + reporter.debug('loaded', originalConfig) + return originalConfig.entryPoints // may be undefined + } + } catch (e) { + reporter.error('Failed to load d2 config!') + reporter.error(e) + process.exit(1) + } +} const parseCustomAuthorities = (authorities) => { if (!authorities) { return undefined @@ -93,11 +115,20 @@ module.exports = (paths, config, publicUrl) => { }, ], start_url: '.', - display: 'browser', + display: 'standalone', theme_color: '#ffffff', background_color: '#f4f6f8', } + const includesPlugin = Boolean(config.entryPoints.plugin) + // If there's a plugin, there might not be an app intended to be exposed, + // in which case omit the app launch path. Check the original d2.config + // without added defaults to see if an app is intended. + // If there's not a plugin, default to 'true' + const shouldIncludeAppLaunchPath = includesPlugin + ? Boolean(getOriginalEntrypoints(paths)?.app) + : true + // Legacy manifest const manifestWebapp = { app_hub_id: config.id, @@ -108,8 +139,8 @@ module.exports = (paths, config, publicUrl) => { version: config.version, core_app: config.coreApp, - launch_path: paths.launchPath, - plugin_launch_path: paths.pluginLaunchPath, + launch_path: shouldIncludeAppLaunchPath ? paths.launchPath : undefined, + plugin_launch_path: includesPlugin ? paths.pluginLaunchPath : undefined, default_locale: 'en', activities: { dhis: { @@ -148,8 +179,8 @@ module.exports = (paths, config, publicUrl) => { const appConfig = { ...config } delete appConfig['entryPoints'] appConfig.entryPoints = { - app: paths.launchPath, - plugin: config.entryPoints.plugin ? paths.pluginLaunchPath : undefined, + app: shouldIncludeAppLaunchPath ? paths.launchPath : undefined, + plugin: includesPlugin ? paths.pluginLaunchPath : undefined, } delete appConfig['pwa'] diff --git a/cli/src/lib/parseConfig.js b/cli/src/lib/parseConfig.js index 9d5f7c5cf..72cf0de6f 100644 --- a/cli/src/lib/parseConfig.js +++ b/cli/src/lib/parseConfig.js @@ -1,6 +1,6 @@ const { reporter, chalk } = require('@dhis2/cli-helpers-engine') const fs = require('fs-extra') -const { defaultsDeep, has, isPlainObject } = require('lodash') +const { defaultsDeep, cloneDeep, has, isPlainObject } = require('lodash') const parseAuthorString = require('parse-author') const requiredConfigFields = { @@ -83,7 +83,10 @@ const parseConfig = (paths) => { if (fs.existsSync(paths.config)) { reporter.debug('Loading d2 config at', paths.config) - config = require(paths.config) + const importedConfig = require(paths.config) + // Make sure not to overwrite imported object + // (need to use it later in generateManifest) + config = cloneDeep(importedConfig) reporter.debug('loaded', config) } if (fs.existsSync(paths.package)) { From cc20ff17aa6ccd81a2862b7278b335c33be22dac Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Fri, 10 Mar 2023 15:25:35 +0000 Subject: [PATCH 70/88] chore(release): cut 10.3.2 [skip release] ## [10.3.2](https://github.com/dhis2/app-platform/compare/v10.3.1...v10.3.2) (2023-03-10) ### Bug Fixes * **plugins:** omit launch paths when unused [LIBS-477] ([#791](https://github.com/dhis2/app-platform/issues/791)) ([e49a51f](https://github.com/dhis2/app-platform/commit/e49a51fec39a323350c71d4e09caff836aab2262)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b128f5cf0..cd55b555b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.3.2](https://github.com/dhis2/app-platform/compare/v10.3.1...v10.3.2) (2023-03-10) + + +### Bug Fixes + +* **plugins:** omit launch paths when unused [LIBS-477] ([#791](https://github.com/dhis2/app-platform/issues/791)) ([e49a51f](https://github.com/dhis2/app-platform/commit/e49a51fec39a323350c71d4e09caff836aab2262)) + ## [10.3.1](https://github.com/dhis2/app-platform/compare/v10.3.0...v10.3.1) (2023-03-06) diff --git a/adapter/package.json b/adapter/package.json index 55a00bf16..711cda7ec 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.3.1", + "version": "10.3.2", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.3.1", + "@dhis2/pwa": "10.3.2", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.1", + "@dhis2/cli-app-scripts": "10.3.2", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 730158685..69df2127e 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.3.1", + "version": "10.3.2", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.3.1", + "@dhis2/app-shell": "10.3.2", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index a4ee10636..92808ef87 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.3.1", + "version": "10.3.2", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 1a9363f80..4ece34de5 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.3.1", + "version": "10.3.2", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index d8816da4a..e31a5859f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.3.1", + "version": "10.3.2", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index f9590b4d2..a98d843c8 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.3.1", + "version": "10.3.2", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.1" + "@dhis2/cli-app-scripts": "10.3.2" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index da0b05f3a..50840c2e5 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.3.1", + "version": "10.3.2", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.3.1", + "@dhis2/app-adapter": "10.3.2", "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.3.1", + "@dhis2/pwa": "10.3.2", "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", "moment": "^2.29.1", From d089dda25433ca52f84c42c9369fce95419e4f83 Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Mon, 13 Mar 2023 10:56:43 +0100 Subject: [PATCH 71/88] fix(pwa): add config option to omit files from precache [LIBS-482] (#793) * fix(pwa): add config option to omit files from precache * chore: add some precache test materials to pwa-app --- cli/config/d2.pwa.config.js | 12 ++++++++++++ cli/src/lib/pwa/injectPrecacheManifest.js | 9 +++++++-- docs/pwa/pwa.md | 1 + examples/pwa-app/d2.config.js | 2 ++ .../public/exclude-from-precache/test-file-1.png | 0 .../public/exclude-from-precache/test-file-2.png | 0 .../public/exclude-from-precache/test-file-3.png | 0 .../public/include-in-precache/new-file-1.ico | 0 .../pwa-app/public/include-in-precache/new-file.json | 0 9 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 examples/pwa-app/public/exclude-from-precache/test-file-1.png create mode 100644 examples/pwa-app/public/exclude-from-precache/test-file-2.png create mode 100644 examples/pwa-app/public/exclude-from-precache/test-file-3.png create mode 100644 examples/pwa-app/public/include-in-precache/new-file-1.ico create mode 100644 examples/pwa-app/public/include-in-precache/new-file.json diff --git a/cli/config/d2.pwa.config.js b/cli/config/d2.pwa.config.js index ea0f28f0d..d9e9b0c3a 100644 --- a/cli/config/d2.pwa.config.js +++ b/cli/config/d2.pwa.config.js @@ -38,6 +38,18 @@ module.exports = { * https://developers.google.com/web/tools/workbox/modules/workbox-precaching#explanation_of_the_precache_list */ additionalManifestEntries: [], + /** + * By default, all the contents of the `build` folder are added to + * the precache to give the app the best chances of functioning + * completely while offline. Developers may choose to omit some + * of these files (for example, thousands of font or image files) + * if they cause cache bloat and the app can work fine without + * them precached. See LIBS-482 + * + * The globs should be relative to the public dir of the built app. + * Used in injectPrecacheManifest.js + */ + globsToOmitFromPrecache: [], }, }, } diff --git a/cli/src/lib/pwa/injectPrecacheManifest.js b/cli/src/lib/pwa/injectPrecacheManifest.js index a9331452c..fa2d2a01e 100644 --- a/cli/src/lib/pwa/injectPrecacheManifest.js +++ b/cli/src/lib/pwa/injectPrecacheManifest.js @@ -42,9 +42,14 @@ module.exports = function injectPrecacheManifest(paths, config) { swDest: paths.shellBuildServiceWorker, globDirectory: paths.shellBuildOutput, globPatterns: ['**/*'], - // Skip index.html and `static` directory; + // Skip index.html, (plugin.html,) and `static` directory; // CRA's workbox-webpack-plugin handles it smartly - globIgnores: ['static/**/*', paths.launchPath], + globIgnores: [ + 'static/**/*', + paths.launchPath, + paths.pluginLaunchPath, + ...config.pwa.caching.globsToOmitFromPrecache, + ], additionalManifestEntries: config.pwa.caching.additionalManifestEntries, injectionPoint: 'self.__WB_BUILD_MANIFEST', // Skip revision hashing for files with hash or semver in name: diff --git a/docs/pwa/pwa.md b/docs/pwa/pwa.md index 8cbe15979..a71126bfa 100644 --- a/docs/pwa/pwa.md +++ b/docs/pwa/pwa.md @@ -18,6 +18,7 @@ You can opt in to PWA features using options in `d2.config.js`. Here are the opt | `pwa.caching.patternsToOmitFromCacheableSections` | Array of RegExps or Strings | Similar to the above setting, except this is a list of URL patterns to omit from _cacheable (recorded) sections_. Requests with URLs that are filtered out from cacheable sections can still be cached in the app shell cache, unless they are filtered out from the app shell as well using the setting above. When choosing these URL filters, note that it is better to _cache too many things_ than to risk _not caching an important part of the section_ which could break the offline functionality of the section, so choose your filter patterns accordingly. | | `pwa.caching.patternsToOmit` | Array of RegExps or Strings | Deprecated; superceded by `patternsToOmitFromAppShell`. The new option takes precedence. | | `pwa.caching.additionalManifestEntries` | Array of Objects with signature `{ revision: String, url: String }` | A list of files that can be added to the precache manifest. Note that the service worker uses Workbox to precache all static assets that end up in the ‘build’ folder after the CRA compilation and build step during the d2-app-scripts build process. The format of this list must match the [required format for Workbox precache manifests](https://developers.google.com/web/tools/workbox/modules/workbox-precaching#explanation_of_the_precache_list), i.e. it must include a revision hash to inform when that file needs to be updated in the precache. | +| `pwa.caching.globsToOmitFromPrecache` | An array of **glob** Strings | A list of globs that will cause matching files to be omitted from precaching. The globs should be **relative to the 'public' directory** of the built app. For example, if you have a folder of fonts in your app in `./public/fonts/` that you want to omit from precaching, you can use the glob `'fonts/**'` in this array. The omitted files can still be cached at runtime later. | ### Offline caching diff --git a/examples/pwa-app/d2.config.js b/examples/pwa-app/d2.config.js index 00c40e76a..2b6efe325 100644 --- a/examples/pwa-app/d2.config.js +++ b/examples/pwa-app/d2.config.js @@ -6,6 +6,8 @@ const config = { caching: { // For the purposes of this demo, to simulate dashboard content: patternsToOmitFromAppShell: ['visualizations'], + // To test precache filtering: (relative to PUBLIC_DIR) + globsToOmitFromPrecache: ['exclude-from-precache/**'], }, }, diff --git a/examples/pwa-app/public/exclude-from-precache/test-file-1.png b/examples/pwa-app/public/exclude-from-precache/test-file-1.png new file mode 100644 index 000000000..e69de29bb diff --git a/examples/pwa-app/public/exclude-from-precache/test-file-2.png b/examples/pwa-app/public/exclude-from-precache/test-file-2.png new file mode 100644 index 000000000..e69de29bb diff --git a/examples/pwa-app/public/exclude-from-precache/test-file-3.png b/examples/pwa-app/public/exclude-from-precache/test-file-3.png new file mode 100644 index 000000000..e69de29bb diff --git a/examples/pwa-app/public/include-in-precache/new-file-1.ico b/examples/pwa-app/public/include-in-precache/new-file-1.ico new file mode 100644 index 000000000..e69de29bb diff --git a/examples/pwa-app/public/include-in-precache/new-file.json b/examples/pwa-app/public/include-in-precache/new-file.json new file mode 100644 index 000000000..e69de29bb From c0d172ec362182ce978e43b16e9c411ec61e5039 Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Mon, 13 Mar 2023 10:58:05 +0100 Subject: [PATCH 72/88] fix(plugins): inject precache manifest correctly (#792) --- cli/config/plugin.webpack.config.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cli/config/plugin.webpack.config.js b/cli/config/plugin.webpack.config.js index f1eb60bc6..b22fe6a7f 100644 --- a/cli/config/plugin.webpack.config.js +++ b/cli/config/plugin.webpack.config.js @@ -187,8 +187,10 @@ module.exports = ({ env: webpackEnv, config, paths }) => { resourceRegExp: /^\.\/locale$/, contextRegExp: /moment$/, }), - // dhis2: Inject plugin static assets to the existing SW's precache manifest - process.env.NODE_ENV === 'production' && + // dhis2: Inject plugin static assets to the existing SW's precache + // manifest. Don't need to do in dev because precaching isn't done + // in dev environments + isProduction && new WorkboxWebpackPlugin.InjectManifest({ swSrc: paths.shellBuildServiceWorker, injectionPoint: 'self.__WB_PLUGIN_MANIFEST', From 352dfc7036fc22f780bc9623b71d7547c1b788f6 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Mon, 13 Mar 2023 10:13:48 +0000 Subject: [PATCH 73/88] chore(release): cut 10.3.3 [skip release] ## [10.3.3](https://github.com/dhis2/app-platform/compare/v10.3.2...v10.3.3) (2023-03-13) ### Bug Fixes * **plugins:** inject precache manifest correctly ([#792](https://github.com/dhis2/app-platform/issues/792)) ([c0d172e](https://github.com/dhis2/app-platform/commit/c0d172ec362182ce978e43b16e9c411ec61e5039)) * **pwa:** add config option to omit files from precache [LIBS-482] ([#793](https://github.com/dhis2/app-platform/issues/793)) ([d089dda](https://github.com/dhis2/app-platform/commit/d089dda25433ca52f84c42c9369fce95419e4f83)) --- CHANGELOG.md | 8 ++++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 21 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd55b555b..a0904006e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## [10.3.3](https://github.com/dhis2/app-platform/compare/v10.3.2...v10.3.3) (2023-03-13) + + +### Bug Fixes + +* **plugins:** inject precache manifest correctly ([#792](https://github.com/dhis2/app-platform/issues/792)) ([c0d172e](https://github.com/dhis2/app-platform/commit/c0d172ec362182ce978e43b16e9c411ec61e5039)) +* **pwa:** add config option to omit files from precache [LIBS-482] ([#793](https://github.com/dhis2/app-platform/issues/793)) ([d089dda](https://github.com/dhis2/app-platform/commit/d089dda25433ca52f84c42c9369fce95419e4f83)) + ## [10.3.2](https://github.com/dhis2/app-platform/compare/v10.3.1...v10.3.2) (2023-03-10) diff --git a/adapter/package.json b/adapter/package.json index 711cda7ec..fb6c0e0fb 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.3.2", + "version": "10.3.3", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.3.2", + "@dhis2/pwa": "10.3.3", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.2", + "@dhis2/cli-app-scripts": "10.3.3", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 69df2127e..df633f3ac 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.3.2", + "version": "10.3.3", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.3.2", + "@dhis2/app-shell": "10.3.3", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index 92808ef87..7425ff276 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.3.2", + "version": "10.3.3", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 4ece34de5..522e2053e 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.3.2", + "version": "10.3.3", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index e31a5859f..1b9f8fd4d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.3.2", + "version": "10.3.3", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index a98d843c8..aee75c4e0 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.3.2", + "version": "10.3.3", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.2" + "@dhis2/cli-app-scripts": "10.3.3" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 50840c2e5..6f7e87cbf 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.3.2", + "version": "10.3.3", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.3.2", + "@dhis2/app-adapter": "10.3.3", "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.3.2", + "@dhis2/pwa": "10.3.3", "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", "moment": "^2.29.1", From 6e64756325b366b413acbdce8dd0d6b70632d118 Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Thu, 16 Mar 2023 17:02:00 +0100 Subject: [PATCH 74/88] fix: make loading placeholders transparent (#795) --- adapter/src/components/LoadingMask.js | 2 +- shell/src/App.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/adapter/src/components/LoadingMask.js b/adapter/src/components/LoadingMask.js index 6be864056..f799584ee 100644 --- a/adapter/src/components/LoadingMask.js +++ b/adapter/src/components/LoadingMask.js @@ -2,7 +2,7 @@ import { Layer, CenteredContent, CircularLoader, layers } from '@dhis2/ui' import React from 'react' export const LoadingMask = () => ( - + diff --git a/shell/src/App.js b/shell/src/App.js index 1e5115c9c..cb28f3aef 100644 --- a/shell/src/App.js +++ b/shell/src/App.js @@ -19,7 +19,7 @@ const App = () => ( + From 48f641ef9d40b1706b7a46b6491f047853ca76ff Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 16 Mar 2023 16:11:53 +0000 Subject: [PATCH 75/88] chore(release): cut 10.3.4 [skip release] ## [10.3.4](https://github.com/dhis2/app-platform/compare/v10.3.3...v10.3.4) (2023-03-16) ### Bug Fixes * make loading placeholders transparent ([#795](https://github.com/dhis2/app-platform/issues/795)) ([6e64756](https://github.com/dhis2/app-platform/commit/6e64756325b366b413acbdce8dd0d6b70632d118)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0904006e..f46e78ce5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.3.4](https://github.com/dhis2/app-platform/compare/v10.3.3...v10.3.4) (2023-03-16) + + +### Bug Fixes + +* make loading placeholders transparent ([#795](https://github.com/dhis2/app-platform/issues/795)) ([6e64756](https://github.com/dhis2/app-platform/commit/6e64756325b366b413acbdce8dd0d6b70632d118)) + ## [10.3.3](https://github.com/dhis2/app-platform/compare/v10.3.2...v10.3.3) (2023-03-13) diff --git a/adapter/package.json b/adapter/package.json index fb6c0e0fb..47d3b1f2e 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.3.3", + "version": "10.3.4", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.3.3", + "@dhis2/pwa": "10.3.4", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.3", + "@dhis2/cli-app-scripts": "10.3.4", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index df633f3ac..f8f913b1f 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.3.3", + "version": "10.3.4", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.3.3", + "@dhis2/app-shell": "10.3.4", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index 7425ff276..99156f696 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.3.3", + "version": "10.3.4", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 522e2053e..1ae074e16 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.3.3", + "version": "10.3.4", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 1b9f8fd4d..33b35859f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.3.3", + "version": "10.3.4", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index aee75c4e0..9dee8a8c6 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.3.3", + "version": "10.3.4", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.3" + "@dhis2/cli-app-scripts": "10.3.4" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 6f7e87cbf..000254076 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.3.3", + "version": "10.3.4", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.3.3", + "@dhis2/app-adapter": "10.3.4", "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.3.3", + "@dhis2/pwa": "10.3.4", "@dhis2/ui": "^8.6.2", "classnames": "^2.2.6", "moment": "^2.29.1", From 61ff0a49e63189d892403db8df24c57e170dac0a Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Fri, 17 Mar 2023 14:56:46 +0100 Subject: [PATCH 76/88] fix(pwa): bump ui version for headerbar connection status [LIBS-315] (#797) --- shell/package.json | 2 +- yarn.lock | 875 ++++++++++++++++++++++++--------------------- 2 files changed, 463 insertions(+), 414 deletions(-) diff --git a/shell/package.json b/shell/package.json index 000254076..f24a25a84 100644 --- a/shell/package.json +++ b/shell/package.json @@ -19,7 +19,7 @@ "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.1", "@dhis2/pwa": "10.3.4", - "@dhis2/ui": "^8.6.2", + "@dhis2/ui": "^8.12.3", "classnames": "^2.2.6", "moment": "^2.29.1", "prop-types": "^15.7.2", diff --git a/yarn.lock b/yarn.lock index bb6a3ccda..4187d8c83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1547,566 +1547,583 @@ resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.0.1.tgz#b6b8d81780b9a9f6459f4bfe9226ac6aefaefe87" integrity sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA== -"@dhis2-ui/alert@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-8.6.2.tgz#6aaf3fdd3b0b4e95fec0d764b12ea307b5faaa97" - integrity sha512-LNb9ZUg3+fpt6zEA9GN7Mb7SzzZFsHoP6kk/yDPBDzkS6Aonjqq4Mu7qWo84/btGj6+Mck40jCKwoEHpBG2mUQ== +"@dhis2-ui/alert@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-8.12.3.tgz#043f9a433072d2a68ad15364795cc9c3bbe1a34a" + integrity sha512-v8ZDDp6y0OkBkUs5CmsvkWEfvEGOnp2eOczkGHVBM070mKbYUReGhXr2cJxIDqtmT57YJyzlw99U7n+aTsXO/g== dependencies: - "@dhis2-ui/portal" "8.6.2" + "@dhis2-ui/portal" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/box@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-8.6.2.tgz#4ad728bb3ef2c4fcac480f997203a1b960f7002e" - integrity sha512-CWIcubfQiNBVsx5e4LLldYQlyPL0l4RoHcLsUPTn0o+W54Q62hL7rTRP2ktnfPKYakVjDYG+BJiCFq/m7H7mDQ== +"@dhis2-ui/box@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-8.12.3.tgz#32f8dd71e92866d4b4e6f46e7a13e5f4f6897732" + integrity sha512-HJ5yu2zHtot6n2c7pRPmNobwsI7SsN4o9HtAuVGMFO14x4iLEuy/O8LGRGqem2zN2uVb4pOQL8sCQTwrV05RUA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/button@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-8.6.2.tgz#1d85e04b6640b1cfc34addbce439e6737705d727" - integrity sha512-aAaftJ4qI1bg3pY51W7reY5sfGHutQ7hQXF/JN5Rsv38gnEMh9iUZ30c5q/86/8d64kS4gHJJJlPXM/XRf7hMg== +"@dhis2-ui/button@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-8.12.3.tgz#3acc90ddc679abc334d4fa3f148f33adf7ec302c" + integrity sha512-uJVoil4zjFrID7q6/zNJLVMaRd1WdnWpmoDR0G1VoBzzEZLtTedAMr9q9RJjS7iN18Kidqpt4hqgZs5FY9DWyg== dependencies: - "@dhis2-ui/layer" "8.6.2" - "@dhis2-ui/loader" "8.6.2" - "@dhis2-ui/popper" "8.6.2" + "@dhis2-ui/layer" "8.12.3" + "@dhis2-ui/loader" "8.12.3" + "@dhis2-ui/popper" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/card@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-8.6.2.tgz#3aeaba099c3a85c91d597c0c4c81115885efb56f" - integrity sha512-4XzgsAp+P3tpUpOArV7NXx40Au13jbSLuH+KW7ZGXxtKvlvoJWoQQOC4P5atiWS9/s+peUR56oa3htoFrq1raw== +"@dhis2-ui/calendar@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/calendar/-/calendar-8.12.3.tgz#ede51f1a71665b3e81329d2feaeeeedba3f8cf7d" + integrity sha512-Hd2yZyjIIkQTgaiqNSh5Z6id2fuTnm0LPZouL8EHvA9c9wJDAyucM1tYy6JewHk4cLSSzBDdMbv3nlvAp80JSw== + dependencies: + "@dhis2-ui/button" "8.12.3" + "@dhis2-ui/card" "8.12.3" + "@dhis2-ui/input" "8.12.3" + "@dhis2-ui/layer" "8.12.3" + "@dhis2-ui/popper" "8.12.3" + "@dhis2/multi-calendar-dates" "1.0.2" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" + classnames "^2.3.1" + prop-types "^15.7.2" + +"@dhis2-ui/card@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-8.12.3.tgz#6c04f3628adbeea91dcd7889be59e5d1fe74a97e" + integrity sha512-TjbqVCkiB4k4cTnd817/gi1hwgOhG+5P5STJMP+BZBUJ6IsvLOzzIV5XAArn57YfL6zQwjuZa8GNB/MBT4V8VA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/center@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-8.6.2.tgz#b9981d50a88b692c79e47eaf59d919068c970229" - integrity sha512-jEhcsFbtkmXl+0/pShnXf52VLFoXw452thNDOrpoxEeX3rrP0aQVni57NT4t+EYaub9MtK2rXvvmnk7A4Z5y/Q== +"@dhis2-ui/center@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-8.12.3.tgz#228d3ea4b8238c18fcaa8db8c8e6196734a29a65" + integrity sha512-TJp7OwSo8SKRFssYx+5gqNNnPIPpLiTwPdzoaeRrPGCZiRnPO51NvQ6/96KaraMNAb46cCbG/DIh/zKykoANfQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/checkbox@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-8.6.2.tgz#31088f6d9528d479fb827e1c6393dfab48dbfa21" - integrity sha512-TT2fsU4L826qmKbi1NByB+CD5MTwHb6qIVm1JKNYVYIbtS8/240oFRbMXEqftfdCev3B2ko7/8CV9bR2LKG91w== +"@dhis2-ui/checkbox@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-8.12.3.tgz#5f7d09908ee89cba0ff38785301e65740aea8d11" + integrity sha512-3hVyqrKCFVfV+VLbzjXm2VL8R1GN69U6RNM2KeFV8c07xtt+6+374wB62myrTbPvJlaE1c0HVW1oStTEiIjnwg== dependencies: - "@dhis2-ui/field" "8.6.2" - "@dhis2-ui/required" "8.6.2" + "@dhis2-ui/field" "8.12.3" + "@dhis2-ui/required" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/chip@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-8.6.2.tgz#b5da91b27cc115c0cf188b6f51b99692f58f85c4" - integrity sha512-cAjunyReA+19FlP8ijVzchW/NyZiBO+7gWiJWPU59zU9P6sUpCrnKptap7NDdwXX+f5JjMFWii+LGr+7dHwkmw== +"@dhis2-ui/chip@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-8.12.3.tgz#90ddf9ca64a127341f6c96c9535b717c3f495000" + integrity sha512-8gs17JUhdNDqZr3uvEUadIPvQyBD2qYzgcjBlpF/j01EjmXJC8oHP4ylhZvTA94adTOYXEmmab1uLkik9NvF4w== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/cover@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-8.6.2.tgz#01e6b885f107a8c3f97232f1b29b89793a2db676" - integrity sha512-5wW6+6h9m0bxmE2r74xSQY5M1pf4vxhFE874j62mOrLAvZOQcTkzNpA8WMBin6kFhNjX1FOHuIi1UUjRvaaIrw== +"@dhis2-ui/cover@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-8.12.3.tgz#e0c5238030f10c95b8886977f6c0b9b4c93b49b3" + integrity sha512-m1DgJj6YcbN5/RNFsiiYyydvOREe8c9pjFV/Nh1toWuP5Srhwu0WZFQlFeosPavxLAHg3aA7gXtjZrPPKimg7A== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/css@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-8.6.2.tgz#f910d8722173fcc8c5728e8aad819c9d5124140a" - integrity sha512-8A7PkqM5/KZ5pB7uWTyYJPB/LGvF/Bc1lh9A1H01p9URGlHVW0UPdvFMLUX6eb7IDmqQZ8yFyPLS5lVGdSEZfg== +"@dhis2-ui/css@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-8.12.3.tgz#4a8af06531ff40cf44a402be0001fbf916667fd8" + integrity sha512-0HfyTNxuIzOvISZdQXoeoColmBhIP9AjSvJ6NWjPZeY/2YkQMmY68yCMnrkwSRpqXx5kD32NcVOXWybWSypI0Q== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/divider@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-8.6.2.tgz#3bcbeb06c0702ef65c8110afeabc2af4db99d391" - integrity sha512-ZOxI7/Ow6PzP7soAskNEIOluXHJ0bMU8bFfA6NIqJ3s9BdyVpNK/Zc9Mu0uxad13mLc1hwRJlV6w7Ychvu8eng== +"@dhis2-ui/divider@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-8.12.3.tgz#6eb848df99a3402729a9ad1f0dcaaf02096247d0" + integrity sha512-PJMN7syKKdaOtwOFGQqEejLhGwS+G0kFtOS/LsploCBEfpeGVLJ/Jo+g6czBqo95yZZLOfMHohYnOJpG45r8Ww== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/field@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-8.6.2.tgz#806bdf4d6e59798eb6f8795e45a70d65414efc6b" - integrity sha512-RvUTl4HlOr3/LPwoLwGEbz0PLPhZE7Jvkv/32ri0rXPKmc5Ftp04OTgjYAKsrtUWUqJLdGqatvG/Qg8mn4Phkw== +"@dhis2-ui/field@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-8.12.3.tgz#333d90b6fa11ea68010732d75fe030330323e27f" + integrity sha512-nknsPJVdJ4Jp7g31hEyO7MJt1l7KZ+FVw4WWJc1tHaYHMXM4MqOxC1D2UfOLhldYXYxwL51FUJDu9otQhyMEgQ== dependencies: - "@dhis2-ui/box" "8.6.2" - "@dhis2-ui/help" "8.6.2" - "@dhis2-ui/label" "8.6.2" + "@dhis2-ui/box" "8.12.3" + "@dhis2-ui/help" "8.12.3" + "@dhis2-ui/label" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/file-input@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-8.6.2.tgz#38eabf3eb54db80d116b1a6a6664f91c9199e616" - integrity sha512-wJ8J5wxSGkrFrhvhweTE9afT4e6xM+nlsxXccRB9zW75airSpVGV+wyl8HIn6Zs8VrtgqFHc+xmn8HD6b/E2tQ== +"@dhis2-ui/file-input@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-8.12.3.tgz#2e926220652c4ef0a506dbdf237085d46b9d59bf" + integrity sha512-9ZyXcjhnkBS02proabnaCjMA2qhwkRn3/EGHAY/5HX0bkxXj3k2zYzDkwI89YzsCABTb+7xHiIjXtbN+8T2s4Q== dependencies: - "@dhis2-ui/button" "8.6.2" - "@dhis2-ui/field" "8.6.2" - "@dhis2-ui/label" "8.6.2" - "@dhis2-ui/loader" "8.6.2" - "@dhis2-ui/status-icon" "8.6.2" + "@dhis2-ui/button" "8.12.3" + "@dhis2-ui/field" "8.12.3" + "@dhis2-ui/label" "8.12.3" + "@dhis2-ui/loader" "8.12.3" + "@dhis2-ui/status-icon" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/header-bar@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-8.6.2.tgz#46b38f7bf4058698a5a7e366c11709852d464302" - integrity sha512-dnLpjxDCJ+PuXYJTpFauFIykeaXE7AgiJhTKOo7x27nV33gBeBM8AdacOSsMjWpyDVPpO/U9uMEw8IXB2uIxyA== - dependencies: - "@dhis2-ui/box" "8.6.2" - "@dhis2-ui/button" "8.6.2" - "@dhis2-ui/card" "8.6.2" - "@dhis2-ui/center" "8.6.2" - "@dhis2-ui/divider" "8.6.2" - "@dhis2-ui/input" "8.6.2" - "@dhis2-ui/layer" "8.6.2" - "@dhis2-ui/loader" "8.6.2" - "@dhis2-ui/logo" "8.6.2" - "@dhis2-ui/menu" "8.6.2" - "@dhis2-ui/modal" "8.6.2" - "@dhis2-ui/user-avatar" "8.6.2" +"@dhis2-ui/header-bar@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-8.12.3.tgz#661c4bfc5d0472e29774fd39ad0da819cb0c459d" + integrity sha512-fFiZWjY0RI43Hc2TDqSbuc+K+19Dt5uNuhL1q1lxjLB7bwyOVbmcxr0aF0X6USVvN6Eku3HQ9QMzbDJeCg/EVA== + dependencies: + "@dhis2-ui/box" "8.12.3" + "@dhis2-ui/button" "8.12.3" + "@dhis2-ui/card" "8.12.3" + "@dhis2-ui/center" "8.12.3" + "@dhis2-ui/divider" "8.12.3" + "@dhis2-ui/input" "8.12.3" + "@dhis2-ui/layer" "8.12.3" + "@dhis2-ui/loader" "8.12.3" + "@dhis2-ui/logo" "8.12.3" + "@dhis2-ui/menu" "8.12.3" + "@dhis2-ui/modal" "8.12.3" + "@dhis2-ui/user-avatar" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" moment "^2.29.1" prop-types "^15.7.2" -"@dhis2-ui/help@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-8.6.2.tgz#f1fd18f214f961a485edd94c2dd06d211ade7ee3" - integrity sha512-5FBYb0/d0udrjrwMVBoS1HpDdVB2oPWu6fUlOBbPeMBG4e5cPrRSS2Rw0GnHefd0LLDQEtH2qb0+7Knwq4eniQ== +"@dhis2-ui/help@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-8.12.3.tgz#520e97e8b794ce5d2bf12597613b82bf3a3d4180" + integrity sha512-aSUy6GsGgUxU8EK9klIaZBgVDtIjzOS0/rZKL/oxkHXV1m6ytPgmRPmycMuQL2PQ98WGX5RYmfWJalyH5jJLYw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/input@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-8.6.2.tgz#36e6243ca17dd62c0b952fa0b9cb0f563f2dd749" - integrity sha512-FlPRWAteR/PtJ8rOuoQ8qP9m7c4U8RUNQszoAwBYHJq6/5/r9xD+KHYNt9INZ8y+1brLZknlPW2xoGdIZH8lYQ== +"@dhis2-ui/input@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-8.12.3.tgz#bb8a186a859554429714cb8442f7292f24091633" + integrity sha512-jB3khBmhP8XSzVymft8y9N/Pn/r6B7pxNhqievUjSOgY2O/+/DSR0z3PM05hUPZQ7l2oJjfdA5T0ax+xCl+b7A== dependencies: - "@dhis2-ui/box" "8.6.2" - "@dhis2-ui/field" "8.6.2" - "@dhis2-ui/input" "8.6.2" - "@dhis2-ui/loader" "8.6.2" - "@dhis2-ui/status-icon" "8.6.2" + "@dhis2-ui/box" "8.12.3" + "@dhis2-ui/field" "8.12.3" + "@dhis2-ui/input" "8.12.3" + "@dhis2-ui/loader" "8.12.3" + "@dhis2-ui/status-icon" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/intersection-detector@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-8.6.2.tgz#9117c7a46225ecad8ed609bb0859cefd6259813d" - integrity sha512-U7O7XBDeZgj0l9sGRudJXVoOWXSjE8hDZA0+vxmQtVErrTgdz042Az+0atb2uiMc43fwSRn66DD8IGeL65TRjA== +"@dhis2-ui/intersection-detector@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-8.12.3.tgz#c5f78e4ee93e9106fa0aefb4f905a93c5911579b" + integrity sha512-lKX3OgXyC1JPaRGFAsqyFLAh9C6niLQdFVVtNuXCjU9d09SCE+Lgqxbg10G+ZNsou7Z2NdJMpbqCrvnkeI7vKw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/label@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-8.6.2.tgz#b7ab76ad24dd2c803eb78173ff3313e0487815db" - integrity sha512-sRnX1BQdFE0sE71+21gwzbw4CAzqQGhF958NsVnZFGKB2EZiV9BHhfwF24QWUs1rhG69/oNn5nLVB1+QVc+7kw== +"@dhis2-ui/label@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-8.12.3.tgz#14e07a66c2c307ce9eec58910a6c86858d44954c" + integrity sha512-e4RmFFzez70eibbxm8fYN2dMrFU33Ko/oAScGJk++3eHF0bi4836xJdapgvOLVa23Fb71mGOTneDr39b6oTCVw== dependencies: - "@dhis2-ui/required" "8.6.2" + "@dhis2-ui/required" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/layer@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-8.6.2.tgz#567f5c71efce1787077716f178a37d155e2ab8a8" - integrity sha512-pIVc5E/HyEqrJ8e81/D2fx6Aq/zlqut/aFOsCN03COkJE9Lk+m1K4xLiWCFuv6P17mcDvOLvx5SGd6Ykaz9GCw== +"@dhis2-ui/layer@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-8.12.3.tgz#01f8ab9c438a41194eeef9b6d6c7fb3debc63fc6" + integrity sha512-gl9JVcYJzNG8oSIex+DYvi6D4UJTtgvzPAeITeiR/Nnw/VpMQE3NO+Vz9Xk+gSOZakG64/ZV2cMhvJQ1AFk1xw== dependencies: - "@dhis2-ui/portal" "8.6.2" + "@dhis2-ui/portal" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/legend@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-8.6.2.tgz#bf2c6bb4972ba627252c937725bb5f721960596b" - integrity sha512-Ck9WwnyZb5DSI0HehJQOn1lJfOKkfdt8rrlcYDBqv0MO1BIFIncy4bJ/S3NkukrnynsQ7g6LzMcGhCL6iA/9Ng== +"@dhis2-ui/legend@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-8.12.3.tgz#48ab4d9861f5883654c75babf1c8ff774904a002" + integrity sha512-VrPKFivPMurLQyA+8nl4lvvJJIvJMP/OjiD+zxHUaxgWqMh++aVkEtIxT6BEVEF5CdhhehJtwVlxwPYXeOJ2jw== dependencies: - "@dhis2-ui/required" "8.6.2" + "@dhis2-ui/required" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/loader@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-8.6.2.tgz#ccbba03afc4f63f0440c5e9de723cf033fc00cb3" - integrity sha512-lt1iAleLDJEwI+d0+Heok/anJtBP1O4EhRGz472o1uymbSlfxh+tO/B0QtPVx4RZFgUyixtpgBLjweE6kD7iMw== +"@dhis2-ui/loader@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-8.12.3.tgz#3250f131052535e141a6c37aed1ed05c31a4338c" + integrity sha512-uSh2l3A5F2rbaSScNnvo7QBIJWx35fsEvlt6H66JmTyj2hZN53h3itb4o7EzIjNPM/sG3oIZirXZ6kZc16k1Ug== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/logo@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-8.6.2.tgz#45329b68ae0afdbbad543edb18e1963e189c6af7" - integrity sha512-6CXeTpHRQWGVum61rJx7mQcJhHs39Iv7X7zPaQJYNHe1iAQf494vEvdUhuM/UMtwlhGBXg0Dd3LquRnU/YV9oQ== +"@dhis2-ui/logo@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-8.12.3.tgz#9d2c453393c37c7c9b30e625249f07d08d1911bc" + integrity sha512-wy66IU2HYlWLcpiiNb9qOJgErrOWDj9aUiUSIRaRquae1p6zLDgZiixv0sJiwLlcei8GBreV4b+AGZpd4ROJcw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/menu@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-8.6.2.tgz#3e56b0cda310c72d9cdf5012c35d27d06f4c7644" - integrity sha512-vmxsQ/2nT0zzQU3gVrT7HwxW8sBszl/TgOoLwyb0Aa+25btxEBVoUvNJcMUxIXi3oDlX3X7QYXpcfJrBTCfpTw== +"@dhis2-ui/menu@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-8.12.3.tgz#d2004d1926a216563f133bdc4d385169eb05197d" + integrity sha512-dXN7oWbKuOonu91HQR0/2nr8Hfyx+DJeMUdPVqkYFbTYfuzOMZRTAUX/cV+LYVMSMQlbnPY54GVGFOhUuNwWrA== dependencies: - "@dhis2-ui/card" "8.6.2" - "@dhis2-ui/divider" "8.6.2" - "@dhis2-ui/layer" "8.6.2" - "@dhis2-ui/popper" "8.6.2" - "@dhis2-ui/portal" "8.6.2" + "@dhis2-ui/card" "8.12.3" + "@dhis2-ui/divider" "8.12.3" + "@dhis2-ui/layer" "8.12.3" + "@dhis2-ui/popper" "8.12.3" + "@dhis2-ui/portal" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/modal@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-8.6.2.tgz#9b8337e6e640055dc3f9aad48efeed41f19765c2" - integrity sha512-jVi6waLIZtwjwBZbFF15VrotwDg36fyR2EY9I119n0VVrslS6WtzJkhNbVFwkv6L/36mZxL0C/ac55/a2eJs5Q== +"@dhis2-ui/modal@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-8.12.3.tgz#a98aa01a2ddea05b4cfcba387e3163e93d79dbaf" + integrity sha512-pWkBDCmVt2ZopiHvC3Pf02mvUb/p5L27qIPXHGDehKEnJTWs+cAy4IiT6knpBy3kf8U6oQme0eDP7OEUcqtuxw== dependencies: - "@dhis2-ui/card" "8.6.2" - "@dhis2-ui/center" "8.6.2" - "@dhis2-ui/layer" "8.6.2" - "@dhis2-ui/portal" "8.6.2" + "@dhis2-ui/card" "8.12.3" + "@dhis2-ui/center" "8.12.3" + "@dhis2-ui/layer" "8.12.3" + "@dhis2-ui/portal" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/node@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-8.6.2.tgz#14888ecfac55fb199e334d686ed571ab2ef9606e" - integrity sha512-8dl3gRCIkOz58PZxbIooWtg4sEkXdkEtTpmc/BgphkTXiMu8Fr+SmY+6as2+X7incNV7WnZzGd9xT2z61ygYMw== +"@dhis2-ui/node@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-8.12.3.tgz#9fd6b4a161e30205feb19241f963a30137c25c5f" + integrity sha512-GRyI8kI1QqFG9H8hsnd4sBTIYtN8wriEafFYaQ8dHIDa0lhXAK+JEg/u2nTeeqOGZ6BOFl81tDASps1ys6ssFg== dependencies: - "@dhis2-ui/loader" "8.6.2" + "@dhis2-ui/loader" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/notice-box@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-8.6.2.tgz#6779119725dc68ede485edfd57f0b4d293a9d6e3" - integrity sha512-3fNSgks6NskBotYN/HISNu6Ud6W248QgQezZ4IqYhpf4vMkC9PB7Bz/03pgd7EvtsodQ1UsNslvyZxwNqHtsKQ== +"@dhis2-ui/notice-box@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-8.12.3.tgz#19e0f6fbb5d54950b34ecb410490bba3a7c9ece5" + integrity sha512-LrtkZLKiTIsKajNMA/BFMu3vXj9EPU1bG2DIuZP/HSLP8Qw863s2zQt7QLXUHsR3bfdAUafs94qjeJR0tb3sxA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/organisation-unit-tree@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-8.6.2.tgz#b21d7c1a00ebcef64877176486596512386e25b2" - integrity sha512-kUdrzjn56YmocNUtCQ+N4GRItDe+C4qeVgRvJUCa7pt8yjh75PYNUARqH2JISxWEgH8Uo+Oy8wXCF9OrkHICaA== +"@dhis2-ui/organisation-unit-tree@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-8.12.3.tgz#392d20f6dfdfc571eb3df3928ec79944b74165e0" + integrity sha512-9AA/ES637IxDz1pcUrVf/7Z8qABPSKMcHP6ygZfuJwz7mZiAByjGqJgJ0D7OCzueEdsqxquyCbtRWc5v0orlfQ== dependencies: - "@dhis2-ui/checkbox" "8.6.2" - "@dhis2-ui/loader" "8.6.2" - "@dhis2-ui/node" "8.6.2" + "@dhis2-ui/checkbox" "8.12.3" + "@dhis2-ui/loader" "8.12.3" + "@dhis2-ui/node" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/pagination@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-8.6.2.tgz#372b2eca94cb8444283f8cf68d4d58cd667a5e53" - integrity sha512-77eRcIrx3NZk6ZH0PWPhpLNJGhFxhz8zIb2w9GzYxvbPfF35dMgA8WPDSkKtt4SsUhGFvb/7Jsd5vAFZmS5cHQ== +"@dhis2-ui/pagination@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-8.12.3.tgz#cfeee9eb147c0d081c006e0eeac4364f14be78a5" + integrity sha512-XghJcqdcjbTgkRNNeR1ZkxthQ3t0v1M2dR3/yrVHxhVbYCHJdyUGlOA2lwfJO1ZRHwNQxKEMPtLIFH9FXaIYxQ== dependencies: - "@dhis2-ui/button" "8.6.2" - "@dhis2-ui/select" "8.6.2" + "@dhis2-ui/button" "8.12.3" + "@dhis2-ui/select" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popover@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-8.6.2.tgz#abc1f4f41da3e7c2d3f0d84864c403ebfa3a17f4" - integrity sha512-iw0EYS5XdF1B/L0GF7RFtPGAB9JFejdCxvIAPPf/T5IHEhjjda5warVOwk+SuCp2E8drgi48dDYwPnDO8RPA+A== +"@dhis2-ui/popover@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-8.12.3.tgz#dd68c0fda75de4e1892f986a2d0a19d901f72e36" + integrity sha512-zYmugEPHfPgGVAThW3GxDOAxWAEuzPJ/wbhkMeo33Z1AXOxACsjD9maFNfP7x4TRYahG1SwYwcjkL10XUV+9pg== dependencies: - "@dhis2-ui/layer" "8.6.2" - "@dhis2-ui/popper" "8.6.2" + "@dhis2-ui/layer" "8.12.3" + "@dhis2-ui/popper" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popper@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-8.6.2.tgz#44a4400cfc346390d183cfda2057e5214c6645af" - integrity sha512-H9oC0YnZC3psQlpjNOZnIIMWIKLTJ5CGGXD9/kureyULRUGXeO3J0shnTUbZD0+rYtutATNsqC80vBukM1DzKA== +"@dhis2-ui/popper@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-8.12.3.tgz#2921fafd92b2bccdb1f15190f8245ddb3f170f15" + integrity sha512-6i/cihj2D/UMEsQElsqEvuUMnTtwLqPD30oMcJOzYahfNLC8driTRAbFrUCFH3b74DVrWEbYqQgUWxXuHF/MUA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" "@popperjs/core" "^2.10.1" classnames "^2.3.1" prop-types "^15.7.2" react-popper "^2.2.5" resize-observer-polyfill "^1.5.1" -"@dhis2-ui/portal@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-8.6.2.tgz#e7c8aa56f39a8e10e5d531c1d7b0ca072ba759c1" - integrity sha512-OlC25qzw7ue+Yw61ZJtnsegUutwa6pocJKWCwab2KDjSl3aLAuiBAzC1Ltiya8y+xNKMxX6c0hNTflyAus4bsw== +"@dhis2-ui/portal@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-8.12.3.tgz#b4c749ecdade1904161934ede86ba36e0505ccb9" + integrity sha512-kL8rJdt2S7gwPBJXe1J5AYrAzIIkn43pHO7VOXCA0HpLur9b3ApTr2vCI13EIO+l5VPEq4292TqGp5Hp4KgZtQ== dependencies: classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/radio@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-8.6.2.tgz#adb43a48b54c140d46cab1223e07718573b18773" - integrity sha512-MhkyNfGhwAParWx+in1DX4ygr0hh8TYZ6hw3IJ7P+6yIjzRbIeW6DLrsQ8KNouJ70vaDBMPPuEu/68yXT0OahQ== +"@dhis2-ui/radio@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-8.12.3.tgz#2e5a1163ae75d25c66204d961da0fce8050b4a77" + integrity sha512-94iPS4CzxSRrwlx++jPqJrb9DFAZe+0TM/ifHGcR6z6Eei6BBAOk1OWH7d+lOO1whDlB53rk8cVZyoVXGjZKMQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/required@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-8.6.2.tgz#020119c14c504b41ec8743d858a71cafe59a6049" - integrity sha512-0D4lN+KtHAXO0OaKXph4AayUuDMjlFhAi0XIeYoiGSG9fg+L3x7kr15BhcH35BQEYO2VQrVNM5vuuvNq0QwGgQ== +"@dhis2-ui/required@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-8.12.3.tgz#d5a6e98db089c53dd1290a5528b5654bf8147e2e" + integrity sha512-S2pnJYdfrsLBelduJT63CHol4V9nJv+0A9lTvF5l1dt6KqpOVzQopWKtBGj4idyGN1NsqqkNdgRbUyQGzCFZXQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/segmented-control@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-8.6.2.tgz#f4309f8b7e889d9b0c1ac6a0ff8d51130fc02c7c" - integrity sha512-Ztqlr/lrAU7CByPWU8pvzmwzybt6WtPJydcEPyp2oIAZtrqO9u12vmhzpwEdO50Q7CI7NslUZ34/eHbkCZLamw== +"@dhis2-ui/segmented-control@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-8.12.3.tgz#959efc1781f7c5725da8aad401a3f7cf8fa7d89b" + integrity sha512-i/i8d0Z2mYAAJY2ZdlvIbaDINU6pZ2/klMnMeEuqonTe38b5PeuqEEj8PvOCxgwF5Bx8Mg8BIScEef3WK/vEOA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/select@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-8.6.2.tgz#050368f02d28ae6bd36d7ff3507fad4b0eb725c4" - integrity sha512-LAI8QLtKX57AAlJpHnOurHbSxFmsWRueTI0sJ1kpsbTQBkusYlBuk5m6gqV90ZjlkZNxCRuwtVoTEL3i8M+4yQ== - dependencies: - "@dhis2-ui/box" "8.6.2" - "@dhis2-ui/button" "8.6.2" - "@dhis2-ui/card" "8.6.2" - "@dhis2-ui/checkbox" "8.6.2" - "@dhis2-ui/chip" "8.6.2" - "@dhis2-ui/field" "8.6.2" - "@dhis2-ui/input" "8.6.2" - "@dhis2-ui/layer" "8.6.2" - "@dhis2-ui/loader" "8.6.2" - "@dhis2-ui/popper" "8.6.2" - "@dhis2-ui/status-icon" "8.6.2" +"@dhis2-ui/select@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-8.12.3.tgz#d3b1afb74a0c7d2cab36fd8f6a57aa4ab2fa43ea" + integrity sha512-m86swTRfH1Qe0tLsCud/+9q41mAybHBcJfSiR6zmTTYaAdZrM+5G+c6gRIPJVLWveH2aREliEOuO05LJ7K0miw== + dependencies: + "@dhis2-ui/box" "8.12.3" + "@dhis2-ui/button" "8.12.3" + "@dhis2-ui/card" "8.12.3" + "@dhis2-ui/checkbox" "8.12.3" + "@dhis2-ui/chip" "8.12.3" + "@dhis2-ui/field" "8.12.3" + "@dhis2-ui/input" "8.12.3" + "@dhis2-ui/layer" "8.12.3" + "@dhis2-ui/loader" "8.12.3" + "@dhis2-ui/popper" "8.12.3" + "@dhis2-ui/status-icon" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/selector-bar@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-8.6.2.tgz#95902516dc9c1e5580aaf707a4825247c30d525a" - integrity sha512-8GOQJHR2LqlXIePeNBn/7P+6BkYofPDHBi3MGUI+YzDKbxFr+XBllU0ho6rvzObUBSfvWAdPbo9rOYUriS1I/Q== - dependencies: - "@dhis2-ui/button" "8.6.2" - "@dhis2-ui/card" "8.6.2" - "@dhis2-ui/layer" "8.6.2" - "@dhis2-ui/popper" "8.6.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" +"@dhis2-ui/selector-bar@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-8.12.3.tgz#343c02de2b562e9efa3d3ee7c4c49f6a580abe34" + integrity sha512-3vkZhpO5heQBGtWCawADlv0JEGP9DV4WIT2OLlujIxH9ivFxGIyfSzTc00O7ruZUKJzcFxkx3eFtQcTsqEwcDA== + dependencies: + "@dhis2-ui/button" "8.12.3" + "@dhis2-ui/card" "8.12.3" + "@dhis2-ui/layer" "8.12.3" + "@dhis2-ui/popper" "8.12.3" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" "@testing-library/react" "^12.1.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/sharing-dialog@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-8.6.2.tgz#a4bcaab510f8ca1e2eb3a750abea009ae352d9a2" - integrity sha512-a1Mem1vP45NMf9Ba4oIdWF3nkunqqWuHUS4CTayKWcZuhetB4+qxiKep9hHt+j/UHWtX+HaRcjT9GhrHoY70UQ== - dependencies: - "@dhis2-ui/box" "8.6.2" - "@dhis2-ui/button" "8.6.2" - "@dhis2-ui/card" "8.6.2" - "@dhis2-ui/divider" "8.6.2" - "@dhis2-ui/input" "8.6.2" - "@dhis2-ui/layer" "8.6.2" - "@dhis2-ui/menu" "8.6.2" - "@dhis2-ui/modal" "8.6.2" - "@dhis2-ui/notice-box" "8.6.2" - "@dhis2-ui/popper" "8.6.2" - "@dhis2-ui/select" "8.6.2" - "@dhis2-ui/tab" "8.6.2" - "@dhis2-ui/tooltip" "8.6.2" - "@dhis2-ui/user-avatar" "8.6.2" +"@dhis2-ui/sharing-dialog@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-8.12.3.tgz#de252634a4177acb1b53a754bd25a52995088de6" + integrity sha512-Amxy64ekW3G2OvhXRi32LvZw+uciG0tOUkvvytqZ4jdyH0PA9Uuriazhp0UBBenvE4U2FxKXbA0q0LI7eJO7lQ== + dependencies: + "@dhis2-ui/box" "8.12.3" + "@dhis2-ui/button" "8.12.3" + "@dhis2-ui/card" "8.12.3" + "@dhis2-ui/divider" "8.12.3" + "@dhis2-ui/input" "8.12.3" + "@dhis2-ui/layer" "8.12.3" + "@dhis2-ui/menu" "8.12.3" + "@dhis2-ui/modal" "8.12.3" + "@dhis2-ui/notice-box" "8.12.3" + "@dhis2-ui/popper" "8.12.3" + "@dhis2-ui/select" "8.12.3" + "@dhis2-ui/tab" "8.12.3" + "@dhis2-ui/tooltip" "8.12.3" + "@dhis2-ui/user-avatar" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" "@react-hook/size" "^2.1.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/status-icon@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-8.6.2.tgz#2e4e89558567e361dcd0e35afc9df2e89b61eb65" - integrity sha512-L5Jfuxt9OBYAmdmCoUYQRH4u8CQSf0QjAE76wemyeSEw5uiInqcBAb9begiSV+Syn3qkUbO0eOho3G1tQG5nYQ== +"@dhis2-ui/status-icon@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-8.12.3.tgz#180ce66301bdf6cd590d23027939d3fe4603a8cf" + integrity sha512-/RBvfrvrXiD7tZYG4sBDiwIMHCPW7krxlwD/aF5S6oL8YydK6YnTKiWX8c7OCjmgchNDNV0CFVRFVATXrWz8wg== dependencies: - "@dhis2-ui/loader" "8.6.2" + "@dhis2-ui/loader" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/switch@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-8.6.2.tgz#13a6416a79bb24b14162ebbd78189de11ad0364d" - integrity sha512-BKHZ9WjEvXUd3/5Eew127mx/7MgdEOAJPSHOJ2rd1P39XriiIgmVqQHv/S1Fl1kVsvE7M5RO9qG74+1tgSybVg== +"@dhis2-ui/switch@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-8.12.3.tgz#e66b510868178a3175572235067b469a325af914" + integrity sha512-D0zEMwMLpbbjDuPooZQqPI2jkvM9NFPkIG1tXBWZssocPn6oc36Be4fXWD3Jrv81NZ35ZJhWbV0rix4CpBp/UA== dependencies: - "@dhis2-ui/field" "8.6.2" - "@dhis2-ui/required" "8.6.2" + "@dhis2-ui/field" "8.12.3" + "@dhis2-ui/required" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tab@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-8.6.2.tgz#1dcff55ab189d0a2b03d3742d58f39a69abc8ea7" - integrity sha512-vKYqZbh6W8iAt/v7yi1Fr5DzXDxlJDBSjVaE5PPFBlkw0/xlmw82HCnDjuWwzZiJprmd/SvMDQD91nbNWZ5ExA== +"@dhis2-ui/tab@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-8.12.3.tgz#cd62f8488fd8c7d6cd08142970d1283b01a8a2a9" + integrity sha512-hwIaAgFT7qwJLu9GGNgYR6HqGOWAyf1JImrhEH8IAOrgew2uUBSgMWlkhQHCSFRyUznkgls+MJltiN/qjgTrQA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/table@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-8.6.2.tgz#f5976aff38106f844e2c1c45b65fe5b2159238da" - integrity sha512-RaSUdwdTRx+U98b1qt0V4y1VqDboNuceq1j0KZUw/DsUC21TrXNcTZCRU6Uu5yIKvIYyLICz+H0zy6GS5+CIWQ== +"@dhis2-ui/table@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-8.12.3.tgz#b92ebca1ac84421f7afb0fc3946a82560505ce0b" + integrity sha512-81bk3ra5fWH0UHJmElx2+tM6Tv3UO6iLyV2Q1K8KQKPCn/8NZ1paYA4yDHnHr6dQSkzoR3XwJsZcJKDycvctYA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tag@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-8.6.2.tgz#0cf95082839fbf5ffe0c23f20c6e5918401b6713" - integrity sha512-NOVIpmiKwQxQ3FAQ4QkRARUgKswQOHRzddDbqMnMH3DIK/wHFQoo40RWQynAHQ7qSfJr0RKPWMV2iCQo6hLBVw== +"@dhis2-ui/tag@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-8.12.3.tgz#25d1e8fe7eb21efa280c5b35b8eb6266d27bfe33" + integrity sha512-De8PHBa9zBEpfmp2hY2qDfs2fcSJbJ+ux6UQ5+jbtCpTm88XVP5gMStChwVOY/tQKM8ZAiyJ1l2YLdTNBNwDlg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/text-area@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-8.6.2.tgz#5fb0e1eb1f10fe04e1d904f5bb86922a21962ad5" - integrity sha512-kMifmAyfMgtyJ60AJb18ap2QDny2LEKEhTmJ+NGbiUJpHBGuZR2fLMakB9fq0OhBrUzWN/luaYXXjo7qcWu+cA== +"@dhis2-ui/text-area@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-8.12.3.tgz#7acfe19c2015b05c2a3a7fbec715dfb8bfe834bb" + integrity sha512-PyJCNbXuo40FBZZUilROZkdSCGs1U1+NEGaEylcAglws3i75jT5SNrRqYNcW9GGSnUVmioyMHweYIwjCM92Qsg== dependencies: - "@dhis2-ui/box" "8.6.2" - "@dhis2-ui/field" "8.6.2" - "@dhis2-ui/loader" "8.6.2" - "@dhis2-ui/status-icon" "8.6.2" + "@dhis2-ui/box" "8.12.3" + "@dhis2-ui/field" "8.12.3" + "@dhis2-ui/loader" "8.12.3" + "@dhis2-ui/status-icon" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-icons" "8.6.2" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-icons" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tooltip@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-8.6.2.tgz#be15b0af389e25af355fb02771acddaccc39bfa8" - integrity sha512-tCoN462b+UQ4KCVSdJuBtTQZ/yHTBzz9xORV/hN/pw9vUJCcIhkCfd0+S6cSjdfL/3ZfStjw4n+YHyqVz8SUIg== +"@dhis2-ui/tooltip@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-8.12.3.tgz#6edd0ae5d872a8d3dac9c2d44a1e575825032cd4" + integrity sha512-fOuIHRWbDecSbiIYcXRqI8hL1iyKYM5GKGh5pvJ4wg00AUgaqt1EVh70Opv96osksAsDpIJxMQtVIMOM6W+hxg== dependencies: - "@dhis2-ui/popper" "8.6.2" - "@dhis2-ui/portal" "8.6.2" + "@dhis2-ui/popper" "8.12.3" + "@dhis2-ui/portal" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/transfer@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-8.6.2.tgz#6168061981d76ff6ab6f3cc3f9e596c1ce866acb" - integrity sha512-+s08lkyCPqtlnXE9mDcdePeAK+zNk4W+KDxrG24GoGylG8EcE2g30W6ujCecFoFu3+kANJ6mWaALULyBSrPp+A== +"@dhis2-ui/transfer@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-8.12.3.tgz#d8bd92cf3f4bc4e8ba7e70a43af6c5d2f9855d4a" + integrity sha512-AuPyH4PzKUULjuTf5GOLCwis7JZunS2iqHN/oL2jn+Zn4yTKvqq225E6KMmHkxOgc8E4fzWktHxaLyRMgI6GQg== dependencies: - "@dhis2-ui/button" "8.6.2" - "@dhis2-ui/field" "8.6.2" - "@dhis2-ui/input" "8.6.2" - "@dhis2-ui/intersection-detector" "8.6.2" - "@dhis2-ui/loader" "8.6.2" + "@dhis2-ui/button" "8.12.3" + "@dhis2-ui/field" "8.12.3" + "@dhis2-ui/input" "8.12.3" + "@dhis2-ui/intersection-detector" "8.12.3" + "@dhis2-ui/loader" "8.12.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/user-avatar@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-8.6.2.tgz#d49aa1b700dd3ccefb12eab50f017a9b27ecb5b4" - integrity sha512-3u/VYTP7WFugT5CTyugBgxRjYngVx2o1yBRXondL4mnwHugEXW4CC9LmFMw2gM54Mvb31/4M8V10MHLX/j43Tw== +"@dhis2-ui/user-avatar@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-8.12.3.tgz#e4db79b328aacf578258c9c030be34c9875cbc80" + integrity sha512-OO3iBnVrwcKqudsAXpk+okEPHfcTu//75LOMk979G7M6QlBiDGCF5KzMCBWIrWQmtr0sVdSck4OGH+TPh4UJrw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.6.2" + "@dhis2/ui-constants" "8.12.3" classnames "^2.3.1" prop-types "^15.7.2" @@ -2233,95 +2250,104 @@ i18next "^10.3" moment "^2.24.0" +"@dhis2/multi-calendar-dates@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@dhis2/multi-calendar-dates/-/multi-calendar-dates-1.0.2.tgz#e54dc85e512aba93fceef3004e67e199077f3ba8" + integrity sha512-oQZ7PFMwHFpt4ygDN9DmAeYO3g07L7AHJW6diZ37mzpkEF/DyMafhsZHnJWNlTH5HDp8nYuO3EjBiM7fZN6C0g== + dependencies: + "@js-temporal/polyfill" "^0.4.2" + classnames "^2.3.2" + "@dhis2/prop-types@^3.1.2": version "3.1.2" resolved "https://registry.yarnpkg.com/@dhis2/prop-types/-/prop-types-3.1.2.tgz#65b8ad2da8cd2f72bc8b951049a6c9d1b97af3e9" integrity sha512-eM0jjLOWvtXWqSFp5YC4DHFpkP8Y1D2eUwGV7MBWjni+o27oesVan+oT7WHeOeLdlAd4acRJrnaaAyB4Ck1wGQ== -"@dhis2/ui-constants@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-8.6.2.tgz#0fb168dc934a3b23fae03440a80a9ee4dbf41867" - integrity sha512-2PjGGe29sgUERQXFuLx1SPmi8b2o40Hj85zwmb/hbvZRKH6pGK3MOcT3NpDtekd735st4P99G2SCVo+mR/7HCA== +"@dhis2/ui-constants@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-8.12.3.tgz#8389c526a0b3bb53b90fedce06e54686f834b05e" + integrity sha512-j4o1YGdVrlmZNa13UV9WynJlQ9ykaeiClnQwylPT1TxCrcab0N02guV2n4ZnKdFAmMR9Z1WJxS9VO8LdWXU5nA== dependencies: prop-types "^15.7.2" -"@dhis2/ui-forms@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-8.6.2.tgz#feff0812c644ed2e469f312348b0ce3818043805" - integrity sha512-8dxJH1kBtwg0zmVwOkWGzvOMQq1q6AZ/dQC+7tmTyBLD1/1I2YYxvruhArC9HlCogwWqqF72UlrXZy64+h+ZDQ== - dependencies: - "@dhis2-ui/button" "8.6.2" - "@dhis2-ui/checkbox" "8.6.2" - "@dhis2-ui/field" "8.6.2" - "@dhis2-ui/file-input" "8.6.2" - "@dhis2-ui/input" "8.6.2" - "@dhis2-ui/radio" "8.6.2" - "@dhis2-ui/select" "8.6.2" - "@dhis2-ui/switch" "8.6.2" - "@dhis2-ui/text-area" "8.6.2" +"@dhis2/ui-forms@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-8.12.3.tgz#94d8250345f6a54a3dd97e479e7171752838e157" + integrity sha512-gzqXM1XcxaB7RvqhL6p1qCQPudIUiGbuWtf2tmkCeoEGGB1jVxrFEOT25Pe0QtW6aWZL+XcGp4eBlQ3HQeDn4w== + dependencies: + "@dhis2-ui/button" "8.12.3" + "@dhis2-ui/checkbox" "8.12.3" + "@dhis2-ui/field" "8.12.3" + "@dhis2-ui/file-input" "8.12.3" + "@dhis2-ui/input" "8.12.3" + "@dhis2-ui/radio" "8.12.3" + "@dhis2-ui/select" "8.12.3" + "@dhis2-ui/switch" "8.12.3" + "@dhis2-ui/text-area" "8.12.3" "@dhis2/prop-types" "^3.1.2" classnames "^2.3.1" final-form "^4.20.2" prop-types "^15.7.2" react-final-form "^6.5.3" -"@dhis2/ui-icons@8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-8.6.2.tgz#7048a291ad0cfd91524b1db3855b479748380194" - integrity sha512-C+pgAG+pL09NQQfVzbwsReeOefQUyDQQf5/4QQelIvttEtbPAXCtRdOaP3E40/+U/TtGo6XAvQTDNgt8JnNIyw== - -"@dhis2/ui@^8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-8.6.2.tgz#2965e2df0cbb18bc107debba0062e48760c9b417" - integrity sha512-yaGaE6Ji9VveTSuu052Wqqc8j2UoVaw3Sa+RlTLgweqelELVowzPCRLAYs1cAuI0VWjX3zEXejlfmIrzKN3bTw== - dependencies: - "@dhis2-ui/alert" "8.6.2" - "@dhis2-ui/box" "8.6.2" - "@dhis2-ui/button" "8.6.2" - "@dhis2-ui/card" "8.6.2" - "@dhis2-ui/center" "8.6.2" - "@dhis2-ui/checkbox" "8.6.2" - "@dhis2-ui/chip" "8.6.2" - "@dhis2-ui/cover" "8.6.2" - "@dhis2-ui/css" "8.6.2" - "@dhis2-ui/divider" "8.6.2" - "@dhis2-ui/field" "8.6.2" - "@dhis2-ui/file-input" "8.6.2" - "@dhis2-ui/header-bar" "8.6.2" - "@dhis2-ui/help" "8.6.2" - "@dhis2-ui/input" "8.6.2" - "@dhis2-ui/intersection-detector" "8.6.2" - "@dhis2-ui/label" "8.6.2" - "@dhis2-ui/layer" "8.6.2" - "@dhis2-ui/legend" "8.6.2" - "@dhis2-ui/loader" "8.6.2" - "@dhis2-ui/logo" "8.6.2" - "@dhis2-ui/menu" "8.6.2" - "@dhis2-ui/modal" "8.6.2" - "@dhis2-ui/node" "8.6.2" - "@dhis2-ui/notice-box" "8.6.2" - "@dhis2-ui/organisation-unit-tree" "8.6.2" - "@dhis2-ui/pagination" "8.6.2" - "@dhis2-ui/popover" "8.6.2" - "@dhis2-ui/popper" "8.6.2" - "@dhis2-ui/portal" "8.6.2" - "@dhis2-ui/radio" "8.6.2" - "@dhis2-ui/required" "8.6.2" - "@dhis2-ui/segmented-control" "8.6.2" - "@dhis2-ui/select" "8.6.2" - "@dhis2-ui/selector-bar" "8.6.2" - "@dhis2-ui/sharing-dialog" "8.6.2" - "@dhis2-ui/switch" "8.6.2" - "@dhis2-ui/tab" "8.6.2" - "@dhis2-ui/table" "8.6.2" - "@dhis2-ui/tag" "8.6.2" - "@dhis2-ui/text-area" "8.6.2" - "@dhis2-ui/tooltip" "8.6.2" - "@dhis2-ui/transfer" "8.6.2" - "@dhis2-ui/user-avatar" "8.6.2" - "@dhis2/ui-constants" "8.6.2" - "@dhis2/ui-forms" "8.6.2" - "@dhis2/ui-icons" "8.6.2" +"@dhis2/ui-icons@8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-8.12.3.tgz#2fe4d7af10b0ecbbdfde3b8d97bd73569e0a0f7b" + integrity sha512-AcfYgGPr5YOiw4A8ITqPWKgro7YIJLPA5aLPnClm+tcLm6HuFOxpPIvpUJzP2Ge8Z7yTbrNON+wO1fTLggXddA== + +"@dhis2/ui@^8.12.3": + version "8.12.3" + resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-8.12.3.tgz#c7a8b95fe25fa9e212c4625e870b44741bbade2a" + integrity sha512-vidQlOKMOFbOTVPmRPFd6B1RDqOktnxjDNErnSxKv/OOKuIpZSPCBxRroCqdqVQqI8/DnKvWgI9jVnPvRaNmew== + dependencies: + "@dhis2-ui/alert" "8.12.3" + "@dhis2-ui/box" "8.12.3" + "@dhis2-ui/button" "8.12.3" + "@dhis2-ui/calendar" "8.12.3" + "@dhis2-ui/card" "8.12.3" + "@dhis2-ui/center" "8.12.3" + "@dhis2-ui/checkbox" "8.12.3" + "@dhis2-ui/chip" "8.12.3" + "@dhis2-ui/cover" "8.12.3" + "@dhis2-ui/css" "8.12.3" + "@dhis2-ui/divider" "8.12.3" + "@dhis2-ui/field" "8.12.3" + "@dhis2-ui/file-input" "8.12.3" + "@dhis2-ui/header-bar" "8.12.3" + "@dhis2-ui/help" "8.12.3" + "@dhis2-ui/input" "8.12.3" + "@dhis2-ui/intersection-detector" "8.12.3" + "@dhis2-ui/label" "8.12.3" + "@dhis2-ui/layer" "8.12.3" + "@dhis2-ui/legend" "8.12.3" + "@dhis2-ui/loader" "8.12.3" + "@dhis2-ui/logo" "8.12.3" + "@dhis2-ui/menu" "8.12.3" + "@dhis2-ui/modal" "8.12.3" + "@dhis2-ui/node" "8.12.3" + "@dhis2-ui/notice-box" "8.12.3" + "@dhis2-ui/organisation-unit-tree" "8.12.3" + "@dhis2-ui/pagination" "8.12.3" + "@dhis2-ui/popover" "8.12.3" + "@dhis2-ui/popper" "8.12.3" + "@dhis2-ui/portal" "8.12.3" + "@dhis2-ui/radio" "8.12.3" + "@dhis2-ui/required" "8.12.3" + "@dhis2-ui/segmented-control" "8.12.3" + "@dhis2-ui/select" "8.12.3" + "@dhis2-ui/selector-bar" "8.12.3" + "@dhis2-ui/sharing-dialog" "8.12.3" + "@dhis2-ui/switch" "8.12.3" + "@dhis2-ui/tab" "8.12.3" + "@dhis2-ui/table" "8.12.3" + "@dhis2-ui/tag" "8.12.3" + "@dhis2-ui/text-area" "8.12.3" + "@dhis2-ui/tooltip" "8.12.3" + "@dhis2-ui/transfer" "8.12.3" + "@dhis2-ui/user-avatar" "8.12.3" + "@dhis2/ui-constants" "8.12.3" + "@dhis2/ui-forms" "8.12.3" + "@dhis2/ui-icons" "8.12.3" prop-types "^15.7.2" "@eslint/eslintrc@^0.4.3": @@ -2665,6 +2691,14 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@js-temporal/polyfill@^0.4.2": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@js-temporal/polyfill/-/polyfill-0.4.3.tgz#e8f8cf86745eb5050679c46a5ebedb9a9cc1f09b" + integrity sha512-6Fmjo/HlkyVCmJzAPnvtEWlcbQUSRhi8qlN9EtJA/wP7FqXsevLLrlojR44kzNzrRkpf7eDJ+z7b4xQD/Ycypw== + dependencies: + jsbi "^4.1.0" + tslib "^2.3.1" + "@juggle/resize-observer@^3.3.1": version "3.3.1" resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.3.1.tgz#b50a781709c81e10701004214340f25475a171a0" @@ -5038,6 +5072,11 @@ classnames@^2.2.6, classnames@^2.3.1: resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== +classnames@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + clean-css@^5.2.2: version "5.2.4" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.2.4.tgz#982b058f8581adb2ae062520808fb2429bd487a4" @@ -9401,6 +9440,11 @@ js2xmlparser@^4.0.2: dependencies: xmlcreate "^2.0.4" +jsbi@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-4.3.0.tgz#b54ee074fb6fcbc00619559305c8f7e912b04741" + integrity sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g== + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -14071,6 +14115,11 @@ tslib@^2.0.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== +tslib@^2.3.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" From 5622d0c8c6827a8471b9462bc20ffb4a78bffd83 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Fri, 17 Mar 2023 14:05:53 +0000 Subject: [PATCH 77/88] chore(release): cut 10.3.5 [skip release] ## [10.3.5](https://github.com/dhis2/app-platform/compare/v10.3.4...v10.3.5) (2023-03-17) ### Bug Fixes * **pwa:** bump ui version for headerbar connection status [LIBS-315] ([#797](https://github.com/dhis2/app-platform/issues/797)) ([61ff0a4](https://github.com/dhis2/app-platform/commit/61ff0a49e63189d892403db8df24c57e170dac0a)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f46e78ce5..024ff288d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.3.5](https://github.com/dhis2/app-platform/compare/v10.3.4...v10.3.5) (2023-03-17) + + +### Bug Fixes + +* **pwa:** bump ui version for headerbar connection status [LIBS-315] ([#797](https://github.com/dhis2/app-platform/issues/797)) ([61ff0a4](https://github.com/dhis2/app-platform/commit/61ff0a49e63189d892403db8df24c57e170dac0a)) + ## [10.3.4](https://github.com/dhis2/app-platform/compare/v10.3.3...v10.3.4) (2023-03-16) diff --git a/adapter/package.json b/adapter/package.json index 47d3b1f2e..425e2cd3c 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.3.4", + "version": "10.3.5", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.3.4", + "@dhis2/pwa": "10.3.5", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.4", + "@dhis2/cli-app-scripts": "10.3.5", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index f8f913b1f..7ef27c895 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.3.4", + "version": "10.3.5", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.3.4", + "@dhis2/app-shell": "10.3.5", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index 99156f696..68977ace9 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.3.4", + "version": "10.3.5", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 1ae074e16..a2c401b40 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.3.4", + "version": "10.3.5", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 33b35859f..769fe5716 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.3.4", + "version": "10.3.5", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index 9dee8a8c6..12be43e68 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.3.4", + "version": "10.3.5", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.4" + "@dhis2/cli-app-scripts": "10.3.5" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index f24a25a84..a75f95b6b 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.3.4", + "version": "10.3.5", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.3.4", + "@dhis2/app-adapter": "10.3.5", "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.3.4", + "@dhis2/pwa": "10.3.5", "@dhis2/ui": "^8.12.3", "classnames": "^2.2.6", "moment": "^2.29.1", From ba29ceacfe5a25d42a406f80a9896ccbc7bc82f8 Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Wed, 22 Mar 2023 10:06:56 +0100 Subject: [PATCH 78/88] fix(cli): fix envs to fix plugins in dev (#799) --- cli/config/plugin.webpack.config.js | 6 ++++-- cli/src/commands/build.js | 1 + cli/src/commands/start.js | 1 + cli/src/lib/plugin/build.js | 4 ---- cli/src/lib/plugin/start.js | 4 ---- 5 files changed, 6 insertions(+), 10 deletions(-) diff --git a/cli/config/plugin.webpack.config.js b/cli/config/plugin.webpack.config.js index b22fe6a7f..29d539570 100644 --- a/cli/config/plugin.webpack.config.js +++ b/cli/config/plugin.webpack.config.js @@ -189,8 +189,10 @@ module.exports = ({ env: webpackEnv, config, paths }) => { }), // dhis2: Inject plugin static assets to the existing SW's precache // manifest. Don't need to do in dev because precaching isn't done - // in dev environments - isProduction && + // in dev environments. + // Check the actual NODE_ENV because `isProduction` is currently + // always true due to a bug (see src/lib/plugin/start.js) + process.env.NODE_ENV === 'production' && new WorkboxWebpackPlugin.InjectManifest({ swSrc: paths.shellBuildServiceWorker, injectionPoint: 'self.__WB_PLUGIN_MANIFEST', diff --git a/cli/src/commands/build.js b/cli/src/commands/build.js index 226b103bd..c7c749cc4 100644 --- a/cli/src/commands/build.js +++ b/cli/src/commands/build.js @@ -61,6 +61,7 @@ const handler = async ({ const paths = makePaths(cwd) mode = mode || (dev && 'development') || getNodeEnv() || 'production' + process.env.BABEL_ENV = process.env.NODE_ENV = mode loadEnvFiles(paths, mode) reporter.print(chalk.green.bold('Build parameters:')) diff --git a/cli/src/commands/start.js b/cli/src/commands/start.js index b66ea0433..6b89e3ed3 100644 --- a/cli/src/commands/start.js +++ b/cli/src/commands/start.js @@ -26,6 +26,7 @@ const handler = async ({ const paths = makePaths(cwd) const mode = 'development' + process.env.BABEL_ENV = process.env.NODE_ENV = mode loadEnvFiles(paths, mode) const config = parseConfig(paths) diff --git a/cli/src/lib/plugin/build.js b/cli/src/lib/plugin/build.js index e1170cbc6..01e75aee1 100644 --- a/cli/src/lib/plugin/build.js +++ b/cli/src/lib/plugin/build.js @@ -1,9 +1,5 @@ // Based on CRA build script -// Do this as the first thing so that any code reading it knows the right env. -process.env.BABEL_ENV = 'production' -process.env.NODE_ENV = 'production' - const { reporter } = require('@dhis2/cli-helpers-engine') const webpack = require('webpack') const webpackConfigFactory = require('../../../config/plugin.webpack.config') diff --git a/cli/src/lib/plugin/start.js b/cli/src/lib/plugin/start.js index fc0c03e8f..b94ea9730 100644 --- a/cli/src/lib/plugin/start.js +++ b/cli/src/lib/plugin/start.js @@ -1,9 +1,5 @@ // Based on CRA start script -// Do this as the first thing so that any code reading it knows the right env. -process.env.BABEL_ENV = 'development' -process.env.NODE_ENV = 'development' - const getPublicUrlOrPath = require('react-dev-utils/getPublicUrlOrPath') const webpack = require('webpack') const WebpackDevServer = require('webpack-dev-server') From 9e725a8d64c5d9a3d479f05eb3fdd7f5558d5852 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Wed, 22 Mar 2023 09:14:52 +0000 Subject: [PATCH 79/88] chore(release): cut 10.3.6 [skip release] ## [10.3.6](https://github.com/dhis2/app-platform/compare/v10.3.5...v10.3.6) (2023-03-22) ### Bug Fixes * **cli:** fix envs to fix plugins in dev ([#799](https://github.com/dhis2/app-platform/issues/799)) ([ba29cea](https://github.com/dhis2/app-platform/commit/ba29ceacfe5a25d42a406f80a9896ccbc7bc82f8)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 024ff288d..fc2e929fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.3.6](https://github.com/dhis2/app-platform/compare/v10.3.5...v10.3.6) (2023-03-22) + + +### Bug Fixes + +* **cli:** fix envs to fix plugins in dev ([#799](https://github.com/dhis2/app-platform/issues/799)) ([ba29cea](https://github.com/dhis2/app-platform/commit/ba29ceacfe5a25d42a406f80a9896ccbc7bc82f8)) + ## [10.3.5](https://github.com/dhis2/app-platform/compare/v10.3.4...v10.3.5) (2023-03-17) diff --git a/adapter/package.json b/adapter/package.json index 425e2cd3c..b815e287a 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.3.5", + "version": "10.3.6", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.3.5", + "@dhis2/pwa": "10.3.6", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.5", + "@dhis2/cli-app-scripts": "10.3.6", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 7ef27c895..513a1e50e 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.3.5", + "version": "10.3.6", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.3.5", + "@dhis2/app-shell": "10.3.6", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index 68977ace9..3bae30287 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.3.5", + "version": "10.3.6", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index a2c401b40..3a90633af 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.3.5", + "version": "10.3.6", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 769fe5716..0534c5d62 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.3.5", + "version": "10.3.6", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index 12be43e68..ea660843d 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.3.5", + "version": "10.3.6", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.5" + "@dhis2/cli-app-scripts": "10.3.6" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index a75f95b6b..494fd6309 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.3.5", + "version": "10.3.6", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.3.5", + "@dhis2/app-adapter": "10.3.6", "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.3.5", + "@dhis2/pwa": "10.3.6", "@dhis2/ui": "^8.12.3", "classnames": "^2.2.6", "moment": "^2.29.1", From c8d5494c5eaf6a2f021166d208a1cc289701a47a Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Thu, 27 Apr 2023 15:33:35 +0200 Subject: [PATCH 80/88] fix: omit `moment-locales` from precache (#806) * fix: omit `moment-locales` from precache * refactor: make extensible cache exclude list * refactor: return !entryShouldBeExcluded --- .../service-worker/set-up-service-worker.js | 25 +++++++++++++------ pwa/src/service-worker/utils.js | 13 ++++++++++ 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/pwa/src/service-worker/set-up-service-worker.js b/pwa/src/service-worker/set-up-service-worker.js index 8a053d18f..821df4a09 100644 --- a/pwa/src/service-worker/set-up-service-worker.js +++ b/pwa/src/service-worker/set-up-service-worker.js @@ -26,6 +26,7 @@ import { setUpKillSwitchServiceWorker, getClientsInfo, claimClients, + CRA_MANIFEST_EXCLUDE_PATTERNS, } from './utils.js' export function setUpServiceWorker() { @@ -127,10 +128,21 @@ export function setUpServiceWorker() { } registerRoute(navigationRouteMatcher, navigationRouteHandler) - // Handle the rest of files in the manifest - const restOfManifest = precacheManifest.filter( - (e) => e !== indexHtmlManifestEntry - ) + // Handle the rest of files in the manifest - filter out index.html, + // and all moment-locales, which bulk up the precache and slow down + // installation significantly. Handle them network-first in app shell + const restOfManifest = precacheManifest.filter((e) => { + if (e === indexHtmlManifestEntry) { + return false + } + // Files from the precache manifest generated by CRA need to be + // managed here, because we don't have access to their webpack + // config + const entryShouldBeExcluded = CRA_MANIFEST_EXCLUDE_PATTERNS.some( + (pattern) => pattern.test(e.url) + ) + return !entryShouldBeExcluded + }) precacheAndRoute(restOfManifest) // Similar to above; manifest injection from `workbox-build` @@ -175,12 +187,9 @@ export function setUpServiceWorker() { ) // Network-first caching by default - // (and for static assets while in development) // * NOTE: there may be lazy-loading errors while offline in dev mode registerRoute( - ({ url }) => - urlMeetsAppShellCachingCriteria(url) || - (!PRODUCTION_ENV && fileExtensionRegexp.test(url.pathname)), + ({ url }) => urlMeetsAppShellCachingCriteria(url), new NetworkFirst({ cacheName: 'app-shell', plugins: [dhis2ConnectionStatusPlugin], diff --git a/pwa/src/service-worker/utils.js b/pwa/src/service-worker/utils.js index 5f6f499ae..4fd83b313 100644 --- a/pwa/src/service-worker/utils.js +++ b/pwa/src/service-worker/utils.js @@ -11,6 +11,11 @@ const APP_ADAPTER_URL_PATTERNS = [ /\/api(\/\d+)?\/userSettings/, // useLocale /\/api(\/\d+)?\/me\?fields=id$/, // useVerifyLatestUser ] +// Note that the CRA precache manifest files start with './' +// TODO: Make this extensible with a d2.config.js option +export const CRA_MANIFEST_EXCLUDE_PATTERNS = [ + /^\.\/static\/js\/moment-locales\//, +] // '[]' Fallback prevents error when switching from pwa enabled to disabled const APP_SHELL_URL_FILTER_PATTERNS = JSON.parse( @@ -52,6 +57,14 @@ export function setUpKillSwitchServiceWorker() { } export function urlMeetsAppShellCachingCriteria(url) { + // If this request is for a file that belongs to this app, cache it + // (in production, many, but not all, app files will be precached - + // e.g. moment-locales is omitted) + const appScope = new URL('./', self.location.href) + if (url.href.startsWith(appScope.href)) { + return true + } + // Cache this request if it is important for the app adapter to load const isAdapterRequest = APP_ADAPTER_URL_PATTERNS.some((pattern) => pattern.test(url.href) From 0adae00879029f8e6b3c4f22671d2c93ef0ead7d Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 27 Apr 2023 13:42:12 +0000 Subject: [PATCH 81/88] chore(release): cut 10.3.7 [skip release] ## [10.3.7](https://github.com/dhis2/app-platform/compare/v10.3.6...v10.3.7) (2023-04-27) ### Bug Fixes * omit `moment-locales` from precache ([#806](https://github.com/dhis2/app-platform/issues/806)) ([c8d5494](https://github.com/dhis2/app-platform/commit/c8d5494c5eaf6a2f021166d208a1cc289701a47a)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc2e929fa..215710202 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.3.7](https://github.com/dhis2/app-platform/compare/v10.3.6...v10.3.7) (2023-04-27) + + +### Bug Fixes + +* omit `moment-locales` from precache ([#806](https://github.com/dhis2/app-platform/issues/806)) ([c8d5494](https://github.com/dhis2/app-platform/commit/c8d5494c5eaf6a2f021166d208a1cc289701a47a)) + ## [10.3.6](https://github.com/dhis2/app-platform/compare/v10.3.5...v10.3.6) (2023-03-22) diff --git a/adapter/package.json b/adapter/package.json index b815e287a..3481675d5 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.3.6", + "version": "10.3.7", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.3.6", + "@dhis2/pwa": "10.3.7", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.6", + "@dhis2/cli-app-scripts": "10.3.7", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 513a1e50e..1d3f6f5a7 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.3.6", + "version": "10.3.7", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.3.6", + "@dhis2/app-shell": "10.3.7", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index 3bae30287..e103f86a9 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.3.6", + "version": "10.3.7", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 3a90633af..157a9635d 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.3.6", + "version": "10.3.7", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 0534c5d62..bc8d50db5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.3.6", + "version": "10.3.7", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index ea660843d..553989fb9 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.3.6", + "version": "10.3.7", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.6" + "@dhis2/cli-app-scripts": "10.3.7" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 494fd6309..8b4791898 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.3.6", + "version": "10.3.7", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.3.6", + "@dhis2/app-adapter": "10.3.7", "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.3.6", + "@dhis2/pwa": "10.3.7", "@dhis2/ui": "^8.12.3", "classnames": "^2.2.6", "moment": "^2.29.1", From b68102248fad98303dd2c01d954f4430b1934a25 Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Wed, 3 May 2023 11:19:45 +0200 Subject: [PATCH 82/88] fix(pwa): avoid crashing when SW is not available [LIBS-499] (#807) * fix(pwa): avoid crashing when SW is not available * fix: prevent connection status errors in no-SW conditions --- pwa/src/offline-interface/offline-interface.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pwa/src/offline-interface/offline-interface.js b/pwa/src/offline-interface/offline-interface.js index ab4d2a385..ce862f25d 100644 --- a/pwa/src/offline-interface/offline-interface.js +++ b/pwa/src/offline-interface/offline-interface.js @@ -79,6 +79,10 @@ export class OfflineInterface { } if (!testSWAvailable()) { + // Make this value available for ServerVersionProvider + this.ready = Promise.resolve() + // Must be connected if we can't use a SW for offline features + this.latestIsConnected = true return } @@ -220,6 +224,10 @@ export class OfflineInterface { * @returns {Function} - An unsubscribe function */ subscribeToDhis2ConnectionStatus({ onUpdate }) { + if (!testSWAvailable()) { + return () => undefined + } + this.offlineEvents.on(swMsgs.dhis2ConnectionStatusUpdate, onUpdate) return () => this.offlineEvents.off(swMsgs.dhis2ConnectionStatusUpdate, onUpdate) From fa95d98a3e2911e80546dba188bbef181f027264 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Wed, 3 May 2023 09:48:51 +0000 Subject: [PATCH 83/88] chore(release): cut 10.3.8 [skip release] ## [10.3.8](https://github.com/dhis2/app-platform/compare/v10.3.7...v10.3.8) (2023-05-03) ### Bug Fixes * **pwa:** avoid crashing when SW is not available [LIBS-499] ([#807](https://github.com/dhis2/app-platform/issues/807)) ([b681022](https://github.com/dhis2/app-platform/commit/b68102248fad98303dd2c01d954f4430b1934a25)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 215710202..5f207dfbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.3.8](https://github.com/dhis2/app-platform/compare/v10.3.7...v10.3.8) (2023-05-03) + + +### Bug Fixes + +* **pwa:** avoid crashing when SW is not available [LIBS-499] ([#807](https://github.com/dhis2/app-platform/issues/807)) ([b681022](https://github.com/dhis2/app-platform/commit/b68102248fad98303dd2c01d954f4430b1934a25)) + ## [10.3.7](https://github.com/dhis2/app-platform/compare/v10.3.6...v10.3.7) (2023-04-27) diff --git a/adapter/package.json b/adapter/package.json index 3481675d5..123c68688 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.3.7", + "version": "10.3.8", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.3.7", + "@dhis2/pwa": "10.3.8", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.7", + "@dhis2/cli-app-scripts": "10.3.8", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 1d3f6f5a7..c4c2276cf 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.3.7", + "version": "10.3.8", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.3.7", + "@dhis2/app-shell": "10.3.8", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index e103f86a9..a55bbb4fb 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.3.7", + "version": "10.3.8", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 157a9635d..e5f3ba87d 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.3.7", + "version": "10.3.8", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index bc8d50db5..f1bb99a48 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.3.7", + "version": "10.3.8", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index 553989fb9..8720ef364 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.3.7", + "version": "10.3.8", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.7" + "@dhis2/cli-app-scripts": "10.3.8" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 8b4791898..3b6f779ac 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.3.7", + "version": "10.3.8", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.3.7", + "@dhis2/app-adapter": "10.3.8", "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.3.7", + "@dhis2/pwa": "10.3.8", "@dhis2/ui": "^8.12.3", "classnames": "^2.2.6", "moment": "^2.29.1", From 1ff29b645ec07e0bcce76efedbc08f1b76014a42 Mon Sep 17 00:00:00 2001 From: Kai Vandivier <49666798+KaiVandivier@users.noreply.github.com> Date: Tue, 16 May 2023 16:40:52 +0200 Subject: [PATCH 84/88] fix: move precache route to reenable navigation handler on login redirects [LIBS-473] (#809) --- pwa/src/service-worker/set-up-service-worker.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pwa/src/service-worker/set-up-service-worker.js b/pwa/src/service-worker/set-up-service-worker.js index 821df4a09..4bc5bfad7 100644 --- a/pwa/src/service-worker/set-up-service-worker.js +++ b/pwa/src/service-worker/set-up-service-worker.js @@ -67,10 +67,6 @@ export function setUpServiceWorker() { // Includes all built assets and index.html const precacheManifest = self.__WB_MANIFEST || [] - // Same thing for built plugin assets - const pluginPrecacheManifest = self.__WB_PLUGIN_MANIFEST || [] - precacheAndRoute(pluginPrecacheManifest) - // todo: also do this routing for plugin.html // Extract index.html from the manifest to precache, then route // in a custom way @@ -126,6 +122,7 @@ export function setUpServiceWorker() { return matchPrecache(indexUrl) }) } + // NOTE: This route must come before any precacheAndRoute calls registerRoute(navigationRouteMatcher, navigationRouteHandler) // Handle the rest of files in the manifest - filter out index.html, @@ -145,6 +142,10 @@ export function setUpServiceWorker() { }) precacheAndRoute(restOfManifest) + // Same thing for built plugin assets + const pluginPrecacheManifest = self.__WB_PLUGIN_MANIFEST || [] + precacheAndRoute(pluginPrecacheManifest) + // Similar to above; manifest injection from `workbox-build` // Precaches all assets in the shell's build folder except in `static` // (which CRA's workbox-webpack-plugin handle smartly). From 0b7b28ffb76ee2f91e1893999c98d2567d27d5fb Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 16 May 2023 14:51:53 +0000 Subject: [PATCH 85/88] chore(release): cut 10.3.9 [skip release] ## [10.3.9](https://github.com/dhis2/app-platform/compare/v10.3.8...v10.3.9) (2023-05-16) ### Bug Fixes * move precache route to reenable navigation handler on login redirects [LIBS-473] ([#809](https://github.com/dhis2/app-platform/issues/809)) ([1ff29b6](https://github.com/dhis2/app-platform/commit/1ff29b645ec07e0bcce76efedbc08f1b76014a42)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f207dfbb..2ee90560e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.3.9](https://github.com/dhis2/app-platform/compare/v10.3.8...v10.3.9) (2023-05-16) + + +### Bug Fixes + +* move precache route to reenable navigation handler on login redirects [LIBS-473] ([#809](https://github.com/dhis2/app-platform/issues/809)) ([1ff29b6](https://github.com/dhis2/app-platform/commit/1ff29b645ec07e0bcce76efedbc08f1b76014a42)) + ## [10.3.8](https://github.com/dhis2/app-platform/compare/v10.3.7...v10.3.8) (2023-05-03) diff --git a/adapter/package.json b/adapter/package.json index 123c68688..8ed9155ec 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.3.8", + "version": "10.3.9", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.3.8", + "@dhis2/pwa": "10.3.9", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.8", + "@dhis2/cli-app-scripts": "10.3.9", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index c4c2276cf..0829870c2 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.3.8", + "version": "10.3.9", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.3.8", + "@dhis2/app-shell": "10.3.9", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index a55bbb4fb..da1e72a07 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.3.8", + "version": "10.3.9", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index e5f3ba87d..21429cd80 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.3.8", + "version": "10.3.9", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index f1bb99a48..64d4b697a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.3.8", + "version": "10.3.9", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index 8720ef364..c9546477f 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.3.8", + "version": "10.3.9", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.8" + "@dhis2/cli-app-scripts": "10.3.9" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 3b6f779ac..14147d0fb 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.3.8", + "version": "10.3.9", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.3.8", + "@dhis2/app-adapter": "10.3.9", "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.3.8", + "@dhis2/pwa": "10.3.9", "@dhis2/ui": "^8.12.3", "classnames": "^2.2.6", "moment": "^2.29.1", From a3490e03a2c2c4e706b5fad644d8f3beffc4a81a Mon Sep 17 00:00:00 2001 From: ismay Date: Wed, 17 May 2023 16:26:08 +0200 Subject: [PATCH 86/88] docs(d2-config): add instructions on app versioning --- docs/config/d2-config-js-reference.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/config/d2-config-js-reference.md b/docs/config/d2-config-js-reference.md index d5cc7b75e..4b7fbabb7 100644 --- a/docs/config/d2-config-js-reference.md +++ b/docs/config/d2-config-js-reference.md @@ -24,7 +24,7 @@ The following configuration properties are supported: | **entryPoints.lib** | _string_ or _object_ | **./src/index** | The path to the library entrypoint(s) (not used for applications). Supports [conditional exports](https://nodejs.org/dist/latest-v16.x/docs/api/packages.html#packages_conditional_exports) | | **dataStoreNamespace** | _string_ | | The DataStore and UserDataStore namespace to reserve for this application. The reserved namespace **must** be suitably unique, as other apps will fail to install if they attempt to reserve the same namespace - see the [webapp manifest docs](https://docs.dhis2.org/en/develop/loading-apps.html) | | **customAuthorities** | _Array(string)_ | | An array of custom authorities to create when installing the app, these do not provide security protections in the DHIS2 REST API but can be assigned to user roles and used to modify the interface displayed to a user - see the [webapp manifest docs](https://docs.dhis2.org/en/develop/loading-apps.html) | -| **minDHIS2Version** | _string_ | | The minimum DHIS2 version the App supports (eg. '2.35'). Required when uploading an app to the App Hub. | +| **minDHIS2Version** | _string_ | | The minimum DHIS2 version the App supports (eg. '2.35'). Required when uploading an app to the App Hub. The app's major version in the app's package.json needs to be increased when changing this property. | | **maxDHIS2Version** | _string_ | | The maximum DHIS2 version the App supports. | | **coreApp** | _boolean_ | **false** | **ADVANCED** If true, build an app artifact to be included as a root-level core application | | **standalone** | _boolean_ | **false** | **ADVANCED** If true, do NOT include a static BaseURL in the production app artifact. This includes the `Server` field in the login dialog, which is usually hidden and pre-configured in production. | @@ -52,3 +52,13 @@ const config = { module.exports = config ``` + +## Setting the DHIS2 version + +The `minDHIS2Version` and `maxDHIS2Version` allow specifying which DHIS2 version the app is compatible with. This can be used to have multiple versions of the app on the App Hub, each with their own range of supported DHIS2 versions. + +For example, let's say you want to adjust your app to a breaking change in the DHIS2 api. Let's assume that the code on your app's default branch (`main`) has not yet been adapted to the breaking change and that you're working with DHIS2's workflows: + +1. Set the `maxDHIS2Version` in `d2.config.js` to the last DHIS2 version that's still compatible with the code on `main`. +1. Branch `main` to a maintenance branch. The recommended naming pattern is `N.x`, where `N` should be replaced with the app's current major version (i.e. `100.x`, `101.x`, etc.). See also [semantic-release's documentation on branches](https://semantic-release.gitbook.io/semantic-release/usage/configuration#branches). The app's version can be found in `package.json`, look for the `version` field. +1. On `main` update the `minDHIS2Version` to the first DHIS2 version that contains the breaking change. It's important to publish the `minDHIS2Version` change as a breaking change. An easy way to do that is to include the `BREAKING CHANGE` label in the commit that changes the `minDHIS2Version` (see the [semantic-release documentation](https://semantic-release.gitbook.io/semantic-release/#commit-message-format) on their commit conventions). From 22a6863c1b4a5d9c6c026c502a1b77dded318be7 Mon Sep 17 00:00:00 2001 From: Celso Octaviano De Carvalho <64174170+CelsoDeCarvalho@users.noreply.github.com> Date: Mon, 21 Aug 2023 19:41:04 +0200 Subject: [PATCH 87/88] fix: support yarn.lock discovery on non-unix (#811) Fixes an issue which manifested as "maximum call stack size exceeded at paths.js (findYarnLock function)" --- cli/src/lib/paths.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cli/src/lib/paths.js b/cli/src/lib/paths.js index 4f6be61ab..59aa52e6f 100644 --- a/cli/src/lib/paths.js +++ b/cli/src/lib/paths.js @@ -7,20 +7,20 @@ const shellSource = path.dirname( ) const shellAppDirname = 'src/D2App' -const findYarnLock = (base) => { - if (base === '/') { +const findYarnLock = (base, rootDirectory) => { + if (base === rootDirectory) { return null } - const yarnLock = path.join(base, './yarn.lock') if (fs.existsSync(yarnLock)) { return yarnLock } - return findYarnLock(path.dirname(base)) + return findYarnLock(path.dirname(base), rootDirectory) } module.exports = (cwd = process.cwd()) => { const base = path.resolve(cwd) + const rootDirectory = path.parse(cwd).root const paths = { babelConfig: path.join(__dirname, '../../config/babel.config.js'), configDefaultsApp: path.join( @@ -44,7 +44,7 @@ module.exports = (cwd = process.cwd()) => { base, package: path.join(base, './package.json'), - yarnLock: findYarnLock(base), + yarnLock: findYarnLock(base, rootDirectory), dotenv: path.join(base, './.env'), config: path.join(base, './d2.config.js'), readme: path.join(base, './README.md'), From 06cee5763d314322c58adfebb7a8cb5b2e2f9124 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Mon, 21 Aug 2023 17:50:02 +0000 Subject: [PATCH 88/88] chore(release): cut 10.3.10 [skip release] ## [10.3.10](https://github.com/dhis2/app-platform/compare/v10.3.9...v10.3.10) (2023-08-21) ### Bug Fixes * support yarn.lock discovery on non-unix ([#811](https://github.com/dhis2/app-platform/issues/811)) ([22a6863](https://github.com/dhis2/app-platform/commit/22a6863c1b4a5d9c6c026c502a1b77dded318be7)) --- CHANGELOG.md | 7 +++++++ adapter/package.json | 6 +++--- cli/package.json | 4 ++-- examples/pwa-app/package.json | 2 +- examples/simple-app/package.json | 2 +- package.json | 2 +- pwa/package.json | 4 ++-- shell/package.json | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ee90560e..3b1fd04a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.3.10](https://github.com/dhis2/app-platform/compare/v10.3.9...v10.3.10) (2023-08-21) + + +### Bug Fixes + +* support yarn.lock discovery on non-unix ([#811](https://github.com/dhis2/app-platform/issues/811)) ([22a6863](https://github.com/dhis2/app-platform/commit/22a6863c1b4a5d9c6c026c502a1b77dded318be7)) + ## [10.3.9](https://github.com/dhis2/app-platform/compare/v10.3.8...v10.3.9) (2023-05-16) diff --git a/adapter/package.json b/adapter/package.json index 8ed9155ec..02629422f 100644 --- a/adapter/package.json +++ b/adapter/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-adapter", - "version": "10.3.9", + "version": "10.3.10", "repository": { "type": "git", "url": "https://github.com/amcgee/dhis2-app-platform", @@ -21,11 +21,11 @@ "build" ], "dependencies": { - "@dhis2/pwa": "10.3.9", + "@dhis2/pwa": "10.3.10", "moment": "^2.24.0" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.9", + "@dhis2/cli-app-scripts": "10.3.10", "@testing-library/react": "^12.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", diff --git a/cli/package.json b/cli/package.json index 0829870c2..38d23ce38 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/cli-app-scripts", - "version": "10.3.9", + "version": "10.3.10", "engines": { "node": ">=14" }, @@ -28,7 +28,7 @@ "@babel/preset-env": "^7.14.7", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.6.0", - "@dhis2/app-shell": "10.3.9", + "@dhis2/app-shell": "10.3.10", "@dhis2/cli-helpers-engine": "^3.2.0", "@jest/core": "^27.0.6", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", diff --git a/examples/pwa-app/package.json b/examples/pwa-app/package.json index da1e72a07..ca7f2336c 100644 --- a/examples/pwa-app/package.json +++ b/examples/pwa-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-app", - "version": "10.3.9", + "version": "10.3.10", "description": "", "license": "BSD-3-Clause", "private": true, diff --git a/examples/simple-app/package.json b/examples/simple-app/package.json index 21429cd80..3336b8d62 100644 --- a/examples/simple-app/package.json +++ b/examples/simple-app/package.json @@ -1,6 +1,6 @@ { "name": "simple-app", - "version": "10.3.9", + "version": "10.3.10", "repository": "https://github.com/amcgee/dhis2-app-platform", "author": "Austin McGee ", "license": "BSD-3-Clause", diff --git a/package.json b/package.json index 64d4b697a..47dc55b46 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "10.3.9", + "version": "10.3.10", "private": true, "repository": { "type": "git", diff --git a/pwa/package.json b/pwa/package.json index c9546477f..7ea015a74 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/pwa", - "version": "10.3.9", + "version": "10.3.10", "description": "", "license": "BSD-3-Clause", "publishConfig": { @@ -13,7 +13,7 @@ "deploy": "d2-app-scripts deploy" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.9" + "@dhis2/cli-app-scripts": "10.3.10" }, "dependencies": { "idb": "^6.0.0", diff --git a/shell/package.json b/shell/package.json index 14147d0fb..62f5bfe30 100644 --- a/shell/package.json +++ b/shell/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/app-shell", - "version": "10.3.9", + "version": "10.3.10", "engines": { "node": ">=14" }, @@ -15,10 +15,10 @@ "access": "public" }, "dependencies": { - "@dhis2/app-adapter": "10.3.9", + "@dhis2/app-adapter": "10.3.10", "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.1", - "@dhis2/pwa": "10.3.9", + "@dhis2/pwa": "10.3.10", "@dhis2/ui": "^8.12.3", "classnames": "^2.2.6", "moment": "^2.29.1",