diff --git a/.cache/default-development/0.pack b/.cache/default-development/0.pack new file mode 100644 index 000000000..5614c7872 Binary files /dev/null and b/.cache/default-development/0.pack differ diff --git a/.cache/default-development/index.pack b/.cache/default-development/index.pack new file mode 100644 index 000000000..f6d874db9 Binary files /dev/null and b/.cache/default-development/index.pack differ diff --git a/config/dev.webpack.config.js b/config/dev.webpack.config.js deleted file mode 100644 index 0add63c09..000000000 --- a/config/dev.webpack.config.js +++ /dev/null @@ -1,182 +0,0 @@ -const { resolve } = require('path'); -const webpack = require('webpack'); -const config = require('@redhat-cloud-services/frontend-components-config'); -const { config: webpackConfig, plugins } = config({ - rootFolder: resolve(__dirname, '../'), - debug: true, - ...(process.env.BETA && { deployment: 'beta/apps' }), - ...(process.env.PROXY && { - https: true, - useProxy: true, - proxyVerbose: true, - env: `${process.env.ENVIRONMENT || 'stage'}-${ - process.env.BETA ? 'beta' : 'stable' - }`, // for accessing prod-beta start your app with ENVIRONMENT=prod and BETA=true - appUrl: process.env.BETA - ? ['/beta/insights/inventory', '/preview/insights/inventory'] - : '/insights/inventory', - routes: { - ...(process.env.CONFIG_PORT && { - [`${process.env.BETA ? '/beta' : ''}/config`]: { - host: `http://localhost:${process.env.CONFIG_PORT}`, - }, - }), - }, - }), - ...(process.env.MOCK && { - customProxy: [ - { - context: ['/api/inventory/v1/groups'], // you can adjust the `context` value to redirect only specific endpoints - target: 'http://localhost:4010', // default prism port - secure: false, - changeOrigin: true, - pathRewrite: { '^/api/inventory/v1': '' }, - onProxyReq: (proxyReq) => { - proxyReq.setHeader('x-rh-identity', 'foobar'); // avoid 401 errors by providing neccessary security header - }, - }, - ], - }), -}); - -plugins.push( - require('@redhat-cloud-services/frontend-components-config/federated-modules')( - { - root: resolve(__dirname, '../'), - useFileHash: false, - exposes: { - // Application root - './RootApp': resolve(__dirname, '../src/AppEntry'), - // System detail - './SystemDetail': resolve( - __dirname, - '../src/components/SystemDetails/GeneralInfo.js' - ), - // System detail cards - './GeneralInformation': resolve( - __dirname, - '../src/components/GeneralInfo/GeneralInformation/GeneralInformation.js' - ), - './SystemCard': resolve( - __dirname, - '../src/components/GeneralInfo/SystemCard/SystemCard.js' - ), - './OperatingSystemCard': resolve( - __dirname, - '../src/components/GeneralInfo/OperatingSystemCard/OperatingSystemCard.js' - ), - './InfrastructureCard': resolve( - __dirname, - '../src/components/GeneralInfo/InfrastructureCard/InfrastructureCard.js' - ), - './ConfigurationCard': resolve( - __dirname, - '../src/components/GeneralInfo/ConfigurationCard/ConfigurationCard.js' - ), - './CollectionCard': resolve( - __dirname, - '../src/components/GeneralInfo/CollectionCard/CollectionCard.js' - ), - './BiosCard': resolve( - __dirname, - '../src/components/GeneralInfo/BiosCard/BiosCard.js' - ), - './DataCollectorsCard': resolve( - __dirname, - '../src/components/GeneralInfo/DataCollectorsCard/DataCollectorsCard.js' - ), - './LoadingCard': resolve( - __dirname, - '../src/components/GeneralInfo/LoadingCard/LoadingCard.js' - ), - './TextInputModal': resolve( - __dirname, - '../src/components/GeneralInfo/TextInputModal/TextInputModal.js' - ), - // System detail data providers - './selectors': resolve( - __dirname, - '../src/components/GeneralInfo/selectors/index.js' - ), - './dataMapper': resolve( - __dirname, - '../src/components/GeneralInfo/dataMapper/index.js' - ), - // Inventory modules - './InventoryTable': resolve( - __dirname, - '../src/modules/InventoryTable.js' - ), - './AppInfo': resolve(__dirname, '../src/modules/AppInfo.js'), - './InventoryDetailHead': resolve( - __dirname, - '../src/modules/InventoryDetailHead.js' - ), - './DetailHeader': resolve(__dirname, '../src/modules/DetailHeader.js'), - './InventoryDetail': resolve( - __dirname, - '../src/modules/InventoryDetail.js' - ), - './TagWithDialog': resolve( - __dirname, - '../src/modules/TagWithDialog.js' - ), - './DetailWrapper': resolve( - __dirname, - '../src/modules/DetailWrapper.js' - ), - './OsFilterHelpers': resolve( - __dirname, - '../src/modules/OsFilterHelpers.js' - ), - './systemProfileStore': resolve( - __dirname, - '../src/store/systemProfileStore.js' - ), - './DeleteModal': resolve(__dirname, '../src/Utilities/DeleteModal.js'), - './HybridInventoryTabs': resolve( - __dirname, - '../src/modules/HybridInventoryTabs.js' - ), - './ImmutableDevices': resolve( - __dirname, - '../src/modules/ImmutableDevices.js' - ), - }, - shared: [ - { - 'react-router-dom': { singleton: true, requiredVersion: '*' }, - }, - ], - } - ) -); - -plugins.push( - new webpack.DefinePlugin({ - IS_DEV: true, - }) -); - -webpackConfig.resolve.alias = { - ...webpackConfig.resolve.alias, - '@react-pdf/renderer': resolve(__dirname, './customPDF'), - reactRedux: resolve(__dirname, '../node_modules/react-redux'), -}; - -webpackConfig.module.rules = [ - ...webpackConfig.module.rules, - { - test: /\.m?js/, - resolve: { - fullySpecified: false, - }, - }, -]; - -webpackConfig.devServer.client.overlay = false; - -module.exports = { - ...webpackConfig, - plugins, -}; diff --git a/config/prod.webpack.config.js b/config/prod.webpack.config.js deleted file mode 100644 index 84ebe89e5..000000000 --- a/config/prod.webpack.config.js +++ /dev/null @@ -1,151 +0,0 @@ -/* eslint-disable max-len */ -const { resolve } = require('path'); -const webpack = require('webpack'); -const config = require('@redhat-cloud-services/frontend-components-config'); -const { config: webpackConfig, plugins } = config({ - rootFolder: resolve(__dirname, '../'), - debug: true, - ...(process.env.BETA === 'true' && { deployment: 'beta/apps' }), -}); - -plugins.push( - require('@redhat-cloud-services/frontend-components-config/federated-modules')( - { - root: resolve(__dirname, '../'), - exposes: { - // Application root - './RootApp': resolve(__dirname, '../src/AppEntry'), - // System detail - './SystemDetail': resolve( - __dirname, - '../src/components/SystemDetails/GeneralInfo.js' - ), - // System detail cards - './GeneralInformation': resolve( - __dirname, - '../src/components/GeneralInfo/GeneralInformation/GeneralInformation.js' - ), - './SystemCard': resolve( - __dirname, - '../src/components/GeneralInfo/SystemCard/SystemCard.js' - ), - './OperatingSystemCard': resolve( - __dirname, - '../src/components/GeneralInfo/OperatingSystemCard/OperatingSystemCard.js' - ), - './InfrastructureCard': resolve( - __dirname, - '../src/components/GeneralInfo/InfrastructureCard/InfrastructureCard.js' - ), - './ConfigurationCard': resolve( - __dirname, - '../src/components/GeneralInfo/ConfigurationCard/ConfigurationCard.js' - ), - './CollectionCard': resolve( - __dirname, - '../src/components/GeneralInfo/CollectionCard/CollectionCard.js' - ), - './BiosCard': resolve( - __dirname, - '../src/components/GeneralInfo/BiosCard/BiosCard.js' - ), - './DataCollectorsCard': resolve( - __dirname, - '../src/components/GeneralInfo/DataCollectorsCard/DataCollectorsCard.js' - ), - './LoadingCard': resolve( - __dirname, - '../src/components/GeneralInfo/LoadingCard/LoadingCard.js' - ), - './TextInputModal': resolve( - __dirname, - '../src/components/GeneralInfo/TextInputModal/TextInputModal.js' - ), - // System detail data providers - './selectors': resolve( - __dirname, - '../src/components/GeneralInfo/selectors/index.js' - ), - './dataMapper': resolve( - __dirname, - '../src/components/GeneralInfo/dataMapper/index.js' - ), - // Inventory modules - './InventoryTable': resolve( - __dirname, - '../src/modules/InventoryTable.js' - ), - './AppInfo': resolve(__dirname, '../src/modules/AppInfo.js'), - './InventoryDetailHead': resolve( - __dirname, - '../src/modules/InventoryDetailHead.js' - ), - './DetailHeader': resolve(__dirname, '../src/modules/DetailHeader.js'), - './InventoryDetail': resolve( - __dirname, - '../src/modules/InventoryDetail.js' - ), - './TagWithDialog': resolve( - __dirname, - '../src/modules/TagWithDialog.js' - ), - './DetailWrapper': resolve( - __dirname, - '../src/modules/DetailWrapper.js' - ), - './OsFilterHelpers': resolve( - __dirname, - '../src/modules/OsFilterHelpers.js' - ), - './systemProfileStore': resolve( - __dirname, - '../src/store/systemProfileStore.js' - ), - './DeleteModal': resolve(__dirname, '../src/Utilities/DeleteModal.js'), - './HybridInventoryTabs': resolve( - __dirname, - '../src/modules/HybridInventoryTabs.js' - ), - './ImmutableDevices': resolve( - __dirname, - '../src/modules/ImmutableDevices.js' - ), - }, - shared: [ - { - 'react-router-dom': { singleton: true, requiredVersion: '*' }, - }, - ], - } - ) -); - -plugins.push( - new webpack.DefinePlugin({ - IS_DEV: false, - }) -); - -webpackConfig.resolve.alias = { - ...webpackConfig.resolve.alias, - 'html-webpack-plugin': resolve( - __dirname, - '../node_modules/html-webpack-plugin' - ), - '@react-pdf/renderer': resolve(__dirname, './customPDF'), -}; - -webpackConfig.module.rules = [ - ...webpackConfig.module.rules, - { - test: /\.m?js/, - resolve: { - fullySpecified: false, - }, - }, -]; - -module.exports = { - ...webpackConfig, - plugins, -}; diff --git a/fec.config.js b/fec.config.js index a8fe31c11..0806993cd 100644 --- a/fec.config.js +++ b/fec.config.js @@ -1,13 +1,122 @@ +const { resolve } = require('path'); +const packageJson = require('./package.json'); +const webpack = require('webpack'); + +const bundle = 'insights'; +const appName = packageJson[bundle].appname; + module.exports = { - appUrl: '/staging/starter', - debug: true, - useProxy: true, - proxyVerbose: true, - /** - * Change to false after your app is registered in configuration files - */ + appName, + appUrl: `/${bundle}/${appName}`, + useProxy: process.env.PROXY === 'true', interceptChromeConfig: false, - /** - * Add additional webpack plugins - */ + debug: true, + plugins: [ + new webpack.DefinePlugin({ + IS_DEV: false, + }), + ], + moduleFederation: { + shared: [ + { + 'react-router-dom': { + singleton: true, + import: false, + version: packageJson.dependencies['react-router-dom'], + requiredVersion: '>=6.0.0 <7.0.0', + }, + }, + ], + root: resolve(__dirname, './'), + exposes: { + // Application root + './RootApp': resolve(__dirname, '/src/AppEntry'), + // System detail + './SystemDetail': resolve( + __dirname, + '/src/components/SystemDetails/GeneralInfo.js' + ), + // System detail cards + './GeneralInformation': resolve( + __dirname, + '/src/components/GeneralInfo/GeneralInformation/GeneralInformation.js' + ), + './SystemCard': resolve( + __dirname, + '/src/components/GeneralInfo/SystemCard/SystemCard.js' + ), + './OperatingSystemCard': resolve( + __dirname, + '/src/components/GeneralInfo/OperatingSystemCard/OperatingSystemCard.js' + ), + './InfrastructureCard': resolve( + __dirname, + '/src/components/GeneralInfo/InfrastructureCard/InfrastructureCard.js' + ), + './ConfigurationCard': resolve( + __dirname, + '/src/components/GeneralInfo/ConfigurationCard/ConfigurationCard.js' + ), + './CollectionCard': resolve( + __dirname, + '/src/components/GeneralInfo/CollectionCard/CollectionCard.js' + ), + './BiosCard': resolve( + __dirname, + '/src/components/GeneralInfo/BiosCard/BiosCard.js' + ), + './DataCollectorsCard': resolve( + __dirname, + '/src/components/GeneralInfo/DataCollectorsCard/DataCollectorsCard.js' + ), + './LoadingCard': resolve( + __dirname, + '/src/components/GeneralInfo/LoadingCard/LoadingCard.js' + ), + './TextInputModal': resolve( + __dirname, + '/src/components/GeneralInfo/TextInputModal/TextInputModal.js' + ), + // System detail data providers + './selectors': resolve( + __dirname, + '/src/components/GeneralInfo/selectors/index.js' + ), + './dataMapper': resolve( + __dirname, + '/src/components/GeneralInfo/dataMapper/index.js' + ), + // Inventory modules + './InventoryTable': resolve(__dirname, '/src/modules/InventoryTable.js'), + './AppInfo': resolve(__dirname, '/src/modules/AppInfo.js'), + './InventoryDetailHead': resolve( + __dirname, + '/src/modules/InventoryDetailHead.js' + ), + './DetailHeader': resolve(__dirname, '/src/modules/DetailHeader.js'), + './InventoryDetail': resolve( + __dirname, + '/src/modules/InventoryDetail.js' + ), + './TagWithDialog': resolve(__dirname, '/src/modules/TagWithDialog.js'), + './DetailWrapper': resolve(__dirname, '/src/modules/DetailWrapper.js'), + './OsFilterHelpers': resolve( + __dirname, + '/src/modules/OsFilterHelpers.js' + ), + './systemProfileStore': resolve( + __dirname, + '/src/store/systemProfileStore.js' + ), + './DeleteModal': resolve(__dirname, '/src/Utilities/DeleteModal.js'), + './HybridInventoryTabs': resolve( + __dirname, + '/src/modules/HybridInventoryTabs.js' + ), + './ImmutableDevices': resolve( + __dirname, + '/src/modules/ImmutableDevices.js' + ), + }, + }, }; diff --git a/package-lock.json b/package-lock.json index e499bb769..2e1c20170 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,8 +7,9 @@ "": { "name": "insights-inventory-frontend", "version": "1.14.8", + "hasInstallScript": true, "dependencies": { - "@data-driven-forms/common": "^3.22.2", + "@data-driven-forms/common": "^3.22.4", "@data-driven-forms/pf4-component-mapper": "^3.22.2", "@data-driven-forms/react-form-renderer": "^3.22.2", "@patternfly/react-core": "^5.3.3", @@ -54,7 +55,8 @@ "@faker-js/faker": "^8.2.0", "@patternfly/patternfly": "^5.3.1", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "^2.0.3", - "@redhat-cloud-services/frontend-components-config": "^5.1.1", + "@redhat-cloud-services/frontend-components-config": "^6.0.13", + "@redhat-cloud-services/tsc-transform-imports": "^1.0.10", "@semantic-release/changelog": "^6.0.1", "@semantic-release/git": "^10.0.1", "@stoplight/prism-cli": "^4.10.5", @@ -85,6 +87,8 @@ "stylelint": "^13.13.1", "stylelint-config-recommended-scss": "^4.3.0", "stylelint-scss": "^3.21.0", + "ts-patch": "^3.1.2", + "typescript": "^5.4.5", "webpack-bundle-analyzer": "^4.5.0", "whatwg-fetch": "^3.6.2" }, @@ -3101,9 +3105,9 @@ } }, "node_modules/@data-driven-forms/common": { - "version": "3.22.2", - "resolved": "https://registry.npmjs.org/@data-driven-forms/common/-/common-3.22.2.tgz", - "integrity": "sha512-X/MUWH2DjbjZk4SUSGdMB8/JiDH9d5MkwRWloF0GaHr5HRPKY7xfBFWsOpAdK/awdCWtx1kaYLOVi/0auI/boA==", + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/@data-driven-forms/common/-/common-3.22.4.tgz", + "integrity": "sha512-r5mOk96OfbupWqF0Pi3NpP0djAg4q6sz+4KCH04xvLr+tVi7SswVOWejIfWoY70o0YYVLQM3enlkERNmoS5upA==", "dependencies": { "clsx": "^1.0.4", "lodash": "^4.17.15", @@ -3324,6 +3328,102 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -5286,12 +5386,13 @@ } }, "node_modules/@openshift/dynamic-plugin-sdk-webpack": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@openshift/dynamic-plugin-sdk-webpack/-/dynamic-plugin-sdk-webpack-3.0.1.tgz", - "integrity": "sha512-W7tDWLwZ17ebbawrIsI1MEM+8ldmpqPTKcONVmKcY/k+VgqVrGHlISHQE/Ykpd2Zu4J7FMx/CLIb86Ad1wwPxg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@openshift/dynamic-plugin-sdk-webpack/-/dynamic-plugin-sdk-webpack-4.1.0.tgz", + "integrity": "sha512-Pkq6R+fkoE0llgv9WJBcotViAPywrzDkpWK0HSTmrVyfEuWS5cuZUs8ono6L5w9BqDBRXm3ceEuUAZA/Zrar1w==", "dev": true, "dependencies": { "lodash": "^4.17.21", + "semver": "^7.3.7", "yup": "^0.32.11" }, "engines": { @@ -5376,6 +5477,16 @@ "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.3.1.tgz", "integrity": "sha512-VYK0uVP2/2RJ7ZshJCCLeq0Boih5I1bv+9Z/Bg6h12dCkLs85XsxAX9Ve+BGIo5DF54/mzcRHE1RKYap4ISXuw==" }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { "version": "0.5.11", "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz", @@ -5581,16 +5692,17 @@ } }, "node_modules/@redhat-cloud-services/frontend-components-config": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-5.1.1.tgz", - "integrity": "sha512-13vZTD06IO5TxSy+1+Y4flpReC45gJTOci3b1QmR5+HvWL5nY0pB7TmmGMWxr5JeVk45v3EYOlXzdLWQuy0pOw==", + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-6.0.13.tgz", + "integrity": "sha512-fABmXUguiFAZp3DCun2cE1wpDaK1ZTYGVCs9f7fg0FB0rENaPK3B7twviLON3Y4OdOX9dHg/e7LYzNrbvH04MQ==", "dev": true, "dependencies": { "@pmmmwh/react-refresh-webpack-plugin": "^0.5.8", - "@redhat-cloud-services/frontend-components-config-utilities": "^2.0.3", + "@redhat-cloud-services/frontend-components-config-utilities": "^3.0.5", + "@redhat-cloud-services/tsc-transform-imports": "^1.0.8", + "@swc/core": "^1.3.76", "assert": "^2.0.0", - "axios": "^0.27.2", - "babel-loader": "^8.2.5", + "axios": "^0.28.1", "browserify-zlib": "^0.2.0", "buffer": "^6.0.3", "chalk": "^4.1.2", @@ -5617,7 +5729,8 @@ "sass-loader": "^11.1.1", "source-map-loader": "^3.0.1", "stream-browserify": "^3.0.0", - "ts-loader": "^8.4.0", + "swc-loader": "^0.2.3", + "ts-loader": "^9.4.4", "url": "^0.11.0", "util": "^0.12.4", "webpack": "^5.88.0", @@ -5630,12 +5743,12 @@ } }, "node_modules/@redhat-cloud-services/frontend-components-config-utilities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config-utilities/-/frontend-components-config-utilities-2.1.0.tgz", - "integrity": "sha512-RQcXn+0WEVzBk98XHHOA3SIatT7qw30h/7UW/oWAYfGGceXeE5/5IjdRIZmuUaNym9v24nv1F4M9+RTdvXrWPA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config-utilities/-/frontend-components-config-utilities-3.0.5.tgz", + "integrity": "sha512-4ifJPmU/Mb7VjUwCy0b4/E/QlDuEOvcCqGV7HGiRQPxy7sYcalhS2NPvKMPuEuEy6yOLigryurXmbA+jlK2LLA==", "dev": true, "dependencies": { - "@openshift/dynamic-plugin-sdk-webpack": "^3.0.0", + "@openshift/dynamic-plugin-sdk-webpack": "^4.0.1", "chalk": "^4.1.2", "node-fetch": "2.6.7" }, @@ -5728,23 +5841,15 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@redhat-cloud-services/frontend-components-config/node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "node_modules/@redhat-cloud-services/frontend-components-config/node_modules/axios": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.1.tgz", + "integrity": "sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ==", "dev": true, "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "node_modules/@redhat-cloud-services/frontend-components-config/node_modules/buffer": { @@ -5828,23 +5933,11 @@ "node": ">=8" } }, - "node_modules/@redhat-cloud-services/frontend-components-config/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } + "node_modules/@redhat-cloud-services/frontend-components-config/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true }, "node_modules/@redhat-cloud-services/frontend-components-config/node_modules/supports-color": { "version": "7.2.0", @@ -5997,6 +6090,92 @@ "axios": "^0.27.2" } }, + "node_modules/@redhat-cloud-services/tsc-transform-imports": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/tsc-transform-imports/-/tsc-transform-imports-1.0.10.tgz", + "integrity": "sha512-IzZsgGrpE3XaGk7UBVryjUftL/Pd2FKsjf92MhzD6z7FnvtKiQsx7CnLBi6wcaAAT1VWi5HuWIIziS6wVmLGbQ==", + "dev": true, + "dependencies": { + "glob": "10.3.3" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/@redhat-cloud-services/tsc-transform-imports/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@redhat-cloud-services/tsc-transform-imports/node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@redhat-cloud-services/tsc-transform-imports/node_modules/glob": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@redhat-cloud-services/tsc-transform-imports/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@redhat-cloud-services/tsc-transform-imports/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@redhat-cloud-services/types": { "version": "0.0.24", "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-0.0.24.tgz", @@ -6843,8 +7022,6 @@ "integrity": "sha512-me2VZyr3OjqRpFrYQJJYy7x/zbFSl9nt+MAGnIcBtjDsN00iTVqEaKxBjPBFQV9BDAgPz2SRWes/DhhVm5SmMw==", "dev": true, "hasInstallScript": true, - "optional": true, - "peer": true, "dependencies": { "@swc/counter": "^0.1.1", "@swc/types": "^0.1.5" @@ -6889,7 +7066,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=10" } @@ -6906,7 +7082,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=10" } @@ -6923,7 +7098,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=10" } @@ -6940,7 +7114,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=10" } @@ -6957,7 +7130,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=10" } @@ -6974,7 +7146,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=10" } @@ -6991,7 +7162,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=10" } @@ -7008,7 +7178,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=10" } @@ -7025,7 +7194,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=10" } @@ -7042,26 +7210,21 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=10" } }, "node_modules/@swc/counter": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", - "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", - "dev": true, - "optional": true, - "peer": true + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true }, "node_modules/@swc/types": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "node_modules/@testing-library/dom": { "version": "9.3.4", @@ -11935,6 +12098,12 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -12068,18 +12237,6 @@ "node": ">=4" } }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -18656,6 +18813,24 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/java-properties": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", @@ -23501,43 +23676,6 @@ "node": ">= 4.0.0" } }, - "node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/memory-fs/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/memory-fs/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -23801,6 +23939,15 @@ "node": ">= 6" } }, + "node_modules/minipass": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", + "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -27620,6 +27767,31 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/path-to-regexp": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", @@ -28545,12 +28717,6 @@ "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", "dev": true }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, "node_modules/psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -30709,6 +30875,21 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.matchall": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", @@ -30801,6 +30982,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -31271,6 +31465,19 @@ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", "dev": true }, + "node_modules/swc-loader": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/swc-loader/-/swc-loader-0.2.6.tgz", + "integrity": "sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==", + "dev": true, + "dependencies": { + "@swc/counter": "^0.1.3" + }, + "peerDependencies": { + "@swc/core": "^1.2.147", + "webpack": ">=2" + } + }, "node_modules/symbol-observable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", @@ -31773,23 +31980,23 @@ } }, "node_modules/ts-loader": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-8.4.0.tgz", - "integrity": "sha512-6nFY3IZ2//mrPc+ImY3hNWx1vCHyEhl6V+wLmL4CZcm6g1CqX7UKrkc6y0i4FwcfOhxyMPCfaEvh20f4r9GNpw==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", "dev": true, "dependencies": { "chalk": "^4.1.0", - "enhanced-resolve": "^4.0.0", - "loader-utils": "^2.0.0", + "enhanced-resolve": "^5.0.0", "micromatch": "^4.0.0", - "semver": "^7.3.4" + "semver": "^7.3.4", + "source-map": "^0.7.4" }, "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" }, "peerDependencies": { "typescript": "*", - "webpack": "*" + "webpack": "^5.0.0" } }, "node_modules/ts-loader/node_modules/ansi-styles": { @@ -31841,20 +32048,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/ts-loader/node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/ts-loader/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -31876,15 +32069,6 @@ "node": ">=8" } }, - "node_modules/ts-loader/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", @@ -31940,6 +32124,115 @@ "node": ">=0.4.0" } }, + "node_modules/ts-patch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-3.1.2.tgz", + "integrity": "sha512-n58F5AqjUMdp9RAKq+E1YBkmONltPVbt1nN+wrmZXoYZek6QcvaTuqvKMhYhr5BxtC53kD/exxIPA1cP1RQxsA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "global-prefix": "^3.0.0", + "minimist": "^1.2.8", + "resolve": "^1.22.2", + "semver": "^7.5.4", + "strip-ansi": "^6.0.1" + }, + "bin": { + "ts-patch": "bin/ts-patch.js", + "tspc": "bin/tspc.js" + } + }, + "node_modules/ts-patch/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-patch/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-patch/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-patch/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ts-patch/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-patch/node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ts-patch/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-patch/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/tsconfig-paths": { "version": "3.14.2", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", @@ -32087,9 +32380,9 @@ } }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -33236,6 +33529,57 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", diff --git a/package.json b/package.json index 85136b2f3..bb37d5dad 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "npm": ">=7.0.0" }, "dependencies": { - "@data-driven-forms/common": "^3.22.2", + "@data-driven-forms/common": "^3.22.4", "@data-driven-forms/pf4-component-mapper": "^3.22.2", "@data-driven-forms/react-form-renderer": "^3.22.2", "@patternfly/react-core": "^5.3.3", @@ -126,7 +126,8 @@ "@faker-js/faker": "^8.2.0", "@patternfly/patternfly": "^5.3.1", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "^2.0.3", - "@redhat-cloud-services/frontend-components-config": "^5.1.1", + "@redhat-cloud-services/frontend-components-config": "^6.0.13", + "@redhat-cloud-services/tsc-transform-imports": "^1.0.10", "@semantic-release/changelog": "^6.0.1", "@semantic-release/git": "^10.0.1", "@stoplight/prism-cli": "^4.10.5", @@ -157,28 +158,28 @@ "stylelint": "^13.13.1", "stylelint-config-recommended-scss": "^4.3.0", "stylelint-scss": "^3.21.0", + "ts-patch": "^3.1.2", + "typescript": "^5.4.5", "webpack-bundle-analyzer": "^4.5.0", "whatwg-fetch": "^3.6.2" }, "scripts": { - "build": "NODE_ENV=production webpack --config config/prod.webpack.config.js", + "build": "fec build", "test": "TZ=UTC jest --verbose --no-cache", "test:local": "TZ=UTC jest --verbose --collectCoverage=false", "lint": "npm-run-all lint:*", "lint:js": "eslint config src", "lint:js:fix": "eslint config src --fix", "lint:sass": "stylelint 'src/**/*.scss' --config .stylelint.json", - "prod": "NODE_ENV=production webpack serve --config config/dev.webpack.config.js", "server:ctr": "node src/server/generateServerKey.js", - "start": "NODE_ENV=development webpack serve --config config/dev.webpack.config.js", - "start:proxy": "PROXY=true NODE_ENV=development webpack serve --config config/dev.webpack.config.js", - "start:proxy:beta": "BETA=true PROXY=true NODE_ENV=development webpack serve --config config/dev.webpack.config.js", - "travis:build": "NODE_ENV=production webpack --config config/prod.webpack.config.js", + "start": "fec dev", + "start:proxy": "PROXY=true fec dev", + "travis:build": "NODE_ENV=production webpack --config fec.webpack.config.js", "travis:verify": "npm-run-all travis:build lint test", "verify": "npm-run-all build lint test", "verify:local": "npm-run-all build lint test:local test:ct", "nightly": "npm run travis:verify", - "start:federated": "fec static --config config/dev.webpack.config.js", + "start:federated": "fec static --config fec.webpack.config.js", "test:ct": "BABEL_ENV=componentTest cypress run --component --browser chrome", "test:openct": "BABEL_ENV=componentTest cypress open --component", "test:openct:mock": "MOCK=true npm run test:openct", @@ -187,7 +188,9 @@ "start:mock": "MOCK=true npm run start:proxy", "start:mock:beta": "MOCK=true npm run start:proxy:beta", "prepare": "husky install", - "commitlint": "commitlint --from HEAD~1 --to HEAD --verbose" + "commitlint": "commitlint --from HEAD~1 --to HEAD --verbose", + "postinstall": "ts-patch install", + "patch-hosts": "fec patch-etc-hosts" }, "insights": { "appname": "inventory" diff --git a/pr_check.sh b/pr_check.sh index 9920d8944..9874082a7 100755 --- a/pr_check.sh +++ b/pr_check.sh @@ -10,7 +10,7 @@ export WORKSPACE=${WORKSPACE:-$APP_ROOT} # if running in jenkins, use the build' export IMAGE_TAG=$(git rev-parse --short=7 HEAD) export GIT_COMMIT=$(git rev-parse HEAD) export APP_ROOT=$(pwd) -export NODE_BUILD_VERSION=15 +export NODE_BUILD_VERSION=18 COMMON_BUILDER=https://raw.githubusercontent.com/RedHatInsights/insights-frontend-builder-common/master diff --git a/src/components/ImmutableDevices/helpers.js b/src/components/ImmutableDevices/helpers.js index c3c314937..5cf0e0ace 100644 --- a/src/components/ImmutableDevices/helpers.js +++ b/src/components/ImmutableDevices/helpers.js @@ -12,11 +12,13 @@ import { TimesCircleIcon, UnknownIcon, } from '@patternfly/react-icons'; -import dangerColor from '@patternfly/react-tokens/dist/esm/global_danger_color_100'; -import warningColor from '@patternfly/react-tokens/dist/esm/global_warning_color_100'; -import successColor from '@patternfly/react-tokens/dist/esm/global_success_color_100'; -import infoColor from '@patternfly/react-tokens/dist/esm/global_info_color_100'; -import activeColor from '@patternfly/react-tokens/dist/esm/global_active_color_100'; +import { + dangerColor, + successColor, + warningColor, + infoColor, + activeColor, +} from '@patternfly/react-tokens'; export const colorMapper = { green: successColor.value, diff --git a/src/components/InventoryGroups/Modals/ConfirmSystemsAddModal.js b/src/components/InventoryGroups/Modals/ConfirmSystemsAddModal.js index b5c9ee407..4e2d0bdf1 100644 --- a/src/components/InventoryGroups/Modals/ConfirmSystemsAddModal.js +++ b/src/components/InventoryGroups/Modals/ConfirmSystemsAddModal.js @@ -1,7 +1,7 @@ import { FormSpy, useFormApi } from '@data-driven-forms/react-form-renderer'; import { Button, Flex, Icon } from '@patternfly/react-core'; import ExclamationTriangleIcon from '@patternfly/react-icons/dist/js/icons/exclamation-triangle-icon'; -import warningColor from '@patternfly/react-tokens/dist/esm/global_warning_color_100'; +import warningColor from '@patternfly/react-tokens'; import PropTypes from 'prop-types'; import React from 'react'; import Modal from './Modal'; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 000000000..99c8feca1 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "outDir": "./dist/", + "sourceMap": true, + "noImplicitAny": true, + "module": "esnext", + "target": "esnext", + "jsx": "react", + "allowJs": true, + "moduleResolution": "node", + "removeComments": false, + "strict": true, + "skipLibCheck": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true + }, + "include": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.js", + "src/**/*.jsx" + ] +}