diff --git a/app/src/app.module.ts b/app/src/app.module.ts index d613388d..d0978499 100644 --- a/app/src/app.module.ts +++ b/app/src/app.module.ts @@ -6,22 +6,25 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap' import { ToastrModule } from 'ngx-toastr' @Component({ + standalone: true, + imports: [CommonModule], selector: 'root', + template: '
Hi
', }) export class RootComponent { static bootstrapComponent: any constructor (private viewContainerRef: ViewContainerRef) { } ngAfterViewInit () { - this.viewContainerRef.createComponent(RootComponent.bootstrapComponent) + // this.viewContainerRef.createComponent(RootComponent.bootstrapComponent) } } export function getRootModule (plugins: any[]) { const imports = [ BrowserModule, - CommonModule, - ...plugins, - NgbModule, + // CommonModule, + // ...plugins, + // NgbModule, ToastrModule.forRoot({ positionClass: 'toast-bottom-center', toastClass: 'toast', @@ -41,6 +44,7 @@ export function getRootModule (plugins: any[]) { @NgModule({ imports, declarations: [RootComponent], + // bootstrap, // bootstrap: [RootComponent], }) class RootModule { ngDoBootstrap (appRef: ApplicationRef) { diff --git a/app/src/entry.ts b/app/src/entry.ts index 467f5832..3911a0f8 100644 --- a/app/src/entry.ts +++ b/app/src/entry.ts @@ -8,13 +8,14 @@ import './toastr.scss' // Importing before @angular/* import { findPlugins, initModuleLookup, loadPlugins } from './plugins' -import { enableProdMode, NgModuleRef, ApplicationRef } from '@angular/core' -import { enableDebugTools } from '@angular/platform-browser' +import { enableProdMode, NgModuleRef, ApplicationRef, importProvidersFrom } from '@angular/core' +import { bootstrapApplication, enableDebugTools } from '@angular/platform-browser' import { platformBrowserDynamic } from '@angular/platform-browser-dynamic' import { ipcRenderer } from 'electron' -import { getRootModule } from './app.module' +import { getRootModule, RootComponent } from './app.module' import { BootstrapData, BOOTSTRAP_DATA, PluginInfo } from '../../tabby-core/src/api/mainProcess' +import { ToastrModule } from 'ngx-toastr' // Always land on the start view location.hash = '' @@ -39,17 +40,35 @@ async function bootstrap (bootstrapData: BootstrapData, plugins: PluginInfo[], s const pluginModules = await loadPlugins(plugins, (current, total) => { (document.querySelector('.progress .bar') as HTMLElement).style.width = `${100 * current / total}%` // eslint-disable-line }) - const module = getRootModule(pluginModules) - window['rootModule'] = module - const moduleRef = await platformBrowserDynamic([ + + pluginModules.splice(0, 999) + + window['pluginModules'] = pluginModules + + const providers = [ { provide: BOOTSTRAP_DATA, useValue: bootstrapData }, - ]).bootstrapModule(module) + importProvidersFrom([ + ...pluginModules, + ToastrModule.forRoot({ + positionClass: 'toast-bottom-center', + toastClass: 'toast', + preventDuplicates: true, + extendedTimeOut: 1000, + }), + ]), + ] + RootComponent.bootstrapComponent = pluginModules.find(x => x.bootstrap)?.bootstrap + bootstrapApplication(RootComponent, { providers }) + // const module = getRootModule(pluginModules) + // const moduleRef = await platformBrowserDynamic([ + // { provide: BOOTSTRAP_DATA, useValue: bootstrapData }, + // ]).bootstrapModule(module) if (process.env.TABBY_DEV) { // const applicationRef = moduleRef.injector.get(ApplicationRef) // const componentRef = applicationRef.components[0] // enableDebugTools(componentRef) } - return moduleRef + // return moduleRef } ipcRenderer.once('start', async (_$event, bootstrapData: BootstrapData) => { diff --git a/app/src/root.component.ts b/app/src/root.component.ts deleted file mode 100644 index 8d2bd18c..00000000 --- a/app/src/root.component.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Component } from '@angular/core' - -@Component({ - template: '', -}) -export class RootComponent { } // eslint-disable-line @typescript-eslint/no-extraneous-class diff --git a/app/webpack.config.mjs b/app/webpack.config.mjs index ddda811a..3b018333 100644 --- a/app/webpack.config.mjs +++ b/app/webpack.config.mjs @@ -1,6 +1,7 @@ import * as path from 'path' import wp from 'webpack' const __dirname = path.dirname(new URL(import.meta.url).pathname) +import { AngularWebpackPlugin } from '@ngtools/webpack' import linkerPlugin from '@angular/compiler-cli/linker/babel' export default () => ({ @@ -45,10 +46,7 @@ export default () => ({ { test: /\.ts$/, use: { - loader: 'ts-loader', - options: { - configFile: path.resolve(__dirname, 'tsconfig.json'), - }, + loader: '@ngtools/webpack', }, }, { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] }, @@ -74,5 +72,10 @@ export default () => ({ new wp.DefinePlugin({ 'process.type': '"renderer"', }), + new AngularWebpackPlugin({ + tsconfig: path.resolve(__dirname, 'tsconfig.json'), + directTemplateLoading: false, + jitMode: false, + }) ], }) diff --git a/package.json b/package.json index 6049ac08..5a186f5a 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,18 @@ { "devDependencies": { - "@angular/animations": "^13", - "@angular/cdk": "^13", - "@angular/common": "^13", - "@angular/compiler": "^13", - "@angular/compiler-cli": "^13", - "@angular/core": "^13", - "@angular/forms": "^13", - "@angular/platform-browser": "^13", - "@angular/platform-browser-dynamic": "^13", + "@angular/animations": "^15.1.3", + "@angular/cdk": "^15.1.3", + "@angular/common": "^15.1.3", + "@angular/compiler": "^15.1.3", + "@angular/compiler-cli": "^15.1.3", + "@angular/core": "^15.1.3", + "@angular/forms": "^15.1.3", + "@angular/platform-browser": "^15.1.3", + "@angular/platform-browser-dynamic": "^15.1.3", "@biesbjerg/ngx-translate-extract-marker": "^1.0.0", "@fortawesome/fontawesome-free": "^6.2.0", - "@ng-bootstrap/ng-bootstrap": "^12", + "@ng-bootstrap/ng-bootstrap": "^14.0.1", + "@ngtools/webpack": "^15.1.4", "@popperjs/core": "^2.11.6", "@sentry/cli": "^1.74.3", "@sentry/electron": "^2.5.4", diff --git a/tabby-core/src/components/1.pug b/tabby-core/src/components/1.pug new file mode 100644 index 00000000..565fbfe4 --- /dev/null +++ b/tabby-core/src/components/1.pug @@ -0,0 +1,3 @@ +div Hello +div there +div(*ngFor='let x of [1,2,3]') there diff --git a/tabby-core/src/components/appRoot.component.ts b/tabby-core/src/components/appRoot.component.ts index e12d37d1..98d130c1 100644 --- a/tabby-core/src/components/appRoot.component.ts +++ b/tabby-core/src/components/appRoot.component.ts @@ -17,7 +17,6 @@ import { SafeModeModalComponent } from './safeModeModal.component' import { TabBodyComponent } from './tabBody.component' import { SplitTabComponent } from './splitTab.component' import { AppService, Command, CommandLocation, FileTransfer, HostWindowService, PlatformService } from '../api' -import { CommonModule } from '@angular/common' function makeTabAnimation (dimension: string, size: number) { return [ @@ -55,9 +54,8 @@ function makeTabAnimation (dimension: string, size: number) { /** @hidden */ @Component({ - imports: [CommonModule], selector: 'app-root', - template: require('./appRoot.component.pug'), + templateUrl: './1.pug', styles: [require('./appRoot.component.scss')], animations: [ trigger('animateTab', makeTabAnimation('width', 200)), diff --git a/tabby-core/src/index.ts b/tabby-core/src/index.ts index f3512978..d6c801ee 100644 --- a/tabby-core/src/index.ts +++ b/tabby-core/src/index.ts @@ -126,6 +126,7 @@ const PROVIDERS = [ ProfileIconComponent, ], exports: [ + AppRootComponent, CheckboxComponent, ToggleComponent, PromptModalComponent, diff --git a/tabby-core/src/services/config.service.ts b/tabby-core/src/services/config.service.ts index c1e6c360..6a1afb8c 100644 --- a/tabby-core/src/services/config.service.ts +++ b/tabby-core/src/services/config.service.ts @@ -239,8 +239,7 @@ export class ConfigService { enabledServices (services: T[]): T[] { // eslint-disable-line @typescript-eslint/ban-types if (!this.servicesCache) { this.servicesCache = {} - const ngModule = window['rootModule'].ɵinj - for (const imp of ngModule.imports) { + for (const imp of window['pluginModules']) { const module = imp.ngModule || imp if (module.ɵinj?.providers) { this.servicesCache[module.pluginName] = module.ɵinj.providers.map(provider => { diff --git a/webpack.plugin.config.mjs b/webpack.plugin.config.mjs index f7e968e8..9354bd44 100644 --- a/webpack.plugin.config.mjs +++ b/webpack.plugin.config.mjs @@ -1,6 +1,7 @@ import * as path from 'path' import wp from 'webpack' import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer' +import { AngularWebpackPlugin } from '@ngtools/webpack' const bundleAnalyzer = new BundleAnalyzerPlugin({ analyzerPort: 0, @@ -75,11 +76,7 @@ export default options => { test: /\.ts$/, use: [ { - loader: 'ts-loader', - options: { - configFile: path.resolve(options.dirname, 'tsconfig.json'), - allowTsInNodeModules: true, - }, + loader: '@ngtools/webpack', }, ], }, @@ -151,6 +148,11 @@ export default options => { ], plugins: [ new devtoolPlugin(sourceMapOptions), + new AngularWebpackPlugin({ + tsconfig: path.resolve(options.dirname, 'tsconfig.json'), + directTemplateLoading: false, + jitMode: false, + }) ], } if (process.env.PLUGIN_BUNDLE_ANALYZER === options.name) { diff --git a/yarn.lock b/yarn.lock index 5d5bd5cc..27da6c0e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,77 +15,77 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@angular/animations@^13": - version "13.3.12" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-13.3.12.tgz#5fbd2f5b796ed2b801df09d1b0925721d8a75ec3" - integrity sha512-dc2JDokKJuuNxzzZa9FvuQU71kYC/e0xCLjGxEgX48sGKwajHRGBuzYFb8EmvLeA24SshYGmrxN0vGG9GhLK6g== +"@angular/animations@^15.1.3": + version "15.1.3" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-15.1.3.tgz#3b35675f7e7df2a8c8f35abf5617b8c7f533a2f0" + integrity sha512-qvOLYx8XWolwFWwYoPjt+jQLDFaCQEPjb26iczewiqd+xcAdYn4Tl10NCJtOsx+YfTdpWtKRzvxYr1JxnGQTdw== dependencies: tslib "^2.3.0" -"@angular/cdk@^13": - version "13.3.9" - resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-13.3.9.tgz#a177196e872e29be3f84d3a50f778d361c689ff7" - integrity sha512-XCuCbeuxWFyo3EYrgEYx7eHzwl76vaWcxtWXl00ka8d+WAOtMQ6Tf1D98ybYT5uwF9889fFpXAPw98mVnlo3MA== +"@angular/cdk@^15.1.3": + version "15.1.3" + resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-15.1.3.tgz#71b5c9e7b7ef0ba0c648278e34536e0f8d06b7b7" + integrity sha512-FRb1ZirybQGVlRx34vsnkIyy4WHJlrRg2mwPeJ90b0DzIWuIZIiPYxxR2bAi/Si1IjnK8YBdacd5DXPdrW1jyw== dependencies: tslib "^2.3.0" optionalDependencies: - parse5 "^5.0.0" + parse5 "^7.1.2" -"@angular/common@^13": - version "13.3.12" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-13.3.12.tgz#6ef3187232415e69995eb590a12ebcd44e457425" - integrity sha512-Nk4zNKfda92aFe+cucHRv2keyryR7C1ZnsurwZW9WZSobpY3z2tTT81F+yy35lGoMt5BDBAIpfh1b4j9Ue/vMg== +"@angular/common@^15.1.3": + version "15.1.3" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-15.1.3.tgz#5ad482ff6da4b8820607180c50f208667c3be729" + integrity sha512-UjC0COaOcU1g/ODBBetv/BpdaFC/Y32DvXJ9qbD7kkwLwoqCjGOLDvtP36r9zEzPmH7oNkgNGDkgR3gyb82s5A== dependencies: tslib "^2.3.0" -"@angular/compiler-cli@^13": - version "13.3.12" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-13.3.12.tgz#34f03dc806b63af06ab47f3fda3217e24e423560" - integrity sha512-6jrdVwexPihWlyitopc3rn2ReEkhAaMI8UWR0SOTnt3NaqNYWeio4bpeWlumgNPElDyY5rmyrmJgeaY8ICa8qA== +"@angular/compiler-cli@^15.1.3": + version "15.1.3" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-15.1.3.tgz#c45dd2a50076af836b4f49de903a884048d79918" + integrity sha512-z5bGdQQcStXWPpb5vztqqUOET+vxw+GUFtfktYxV40kE2d1zHLZh93AGEnM1NnBaOz+9NZrX+dWoEyWmv/T2LQ== dependencies: - "@babel/core" "^7.17.2" + "@babel/core" "7.19.3" + "@jridgewell/sourcemap-codec" "^1.4.14" chokidar "^3.0.0" convert-source-map "^1.5.1" dependency-graph "^0.11.0" - magic-string "^0.26.0" + magic-string "^0.27.0" reflect-metadata "^0.1.2" semver "^7.0.0" - sourcemap-codec "^1.4.8" tslib "^2.3.0" yargs "^17.2.1" -"@angular/compiler@^13": - version "13.3.12" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-13.3.12.tgz#9fa94d116310060bcdd429c24d593b70f8a082da" - integrity sha512-F5vJYrjbNvEWoVz9J/CqiT3Iod6g9bV0dGI5EeURcW4yHXHZ12ioQpfU3+bE7qXcTlnofbdDhK8cGxGx01SzBA== +"@angular/compiler@^15.1.3": + version "15.1.3" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-15.1.3.tgz#7972d7dec2462e3a2a9fa256902363a716ab2f8c" + integrity sha512-CxEpm5Z3EpjeGNoWKtcHOrf2IQTSckpAEFwsRrADP2nqcXXYp/IjIHi+PUTjLhjrOEbukH9zreHsL5BoIQhgUQ== dependencies: tslib "^2.3.0" -"@angular/core@^13": - version "13.3.12" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-13.3.12.tgz#6817eec14a86a76dd6200dd6d1a89ca520968b09" - integrity sha512-jx0YC+NbPMbxGr5bXECkCEQv2RdVxR8AJNnabkPk8ZjwCpDzROrbELwwS1kunrZUhffcD15IhWGBvf1EGHAYDw== +"@angular/core@^15.1.3": + version "15.1.3" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-15.1.3.tgz#08a19d2427fffba8d75bb622f5db0b1406937877" + integrity sha512-rad9OYnaoRnXBztOBXsiD59VvOZTpsvO3sWx6KndytQFceFfkL722bF2l2LARN+R3IWDOwRap46HOtc0O0N+sw== dependencies: tslib "^2.3.0" -"@angular/forms@^13": - version "13.3.12" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-13.3.12.tgz#21a4a3f5d7539d42351b9f2a7cac10463b6b7c00" - integrity sha512-auow1TKZx44ha1ia8Jwg2xp2Q7BbpShG5Ft8tewL3T44aTmJY7svWOE/m+DkZ/SXHmTFnbZFobGU5aEfe0+pNw== +"@angular/forms@^15.1.3": + version "15.1.3" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-15.1.3.tgz#7dcbb2305fa5901b36dd8d3fd0ece2374bdce54d" + integrity sha512-vEgiZBk3rGGp4tBQHl9EaspEjYh70lkz6/zYreObTbMdCB54bkbl+jn+JbQyFj+TPfukiumtiG3/477vKzYnSg== dependencies: tslib "^2.3.0" -"@angular/platform-browser-dynamic@^13": - version "13.3.12" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.3.12.tgz#2c27c8eb135f643e31594752b28e134eb06e52ac" - integrity sha512-/hBggov0PxK/KNJqIu3MVc5k8f0iDbygDP8Z1k/J0FcllOSRdO4LsQd1fsCfGfwIUf0YWGyD7KraSGpBBiWlFg== +"@angular/platform-browser-dynamic@^15.1.3": + version "15.1.3" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.1.3.tgz#f1d327c38643b08ac85b15e77528b6717ab7a243" + integrity sha512-lUfHmO+x3goSL1KnlAbekieKpak2KVGcOcAzOVOIMFt1SyWPBHq0NyyPOH2PUAnjPRbvCLEs2casjFggk0JzsQ== dependencies: tslib "^2.3.0" -"@angular/platform-browser@^13": - version "13.3.12" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-13.3.12.tgz#913e42f5a1cc7f691a81554345a87ae4236ee14d" - integrity sha512-sfhQqU4xjTJCjkH62TQeH5/gkay/KzvNDF95J6NHi/Q6p2dbtzZdXuLJKR/sHxtF2kc505z5v9RNm6XMSXM1KA== +"@angular/platform-browser@^15.1.3": + version "15.1.3" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-15.1.3.tgz#c35912e419baf74e73f90f8cf80fbe4af63f1deb" + integrity sha512-WJBN3klssfcRGKY2L2DIpNGbaMQfi2X1le1ZXQAnsfECQ/pua+lFstJUT+RP+Bx4X8icuDggKkS/JPOiBhxARw== dependencies: tslib "^2.3.0" @@ -101,28 +101,28 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8" integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw== -"@babel/core@^7.17.2": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" - integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== +"@babel/core@7.19.3": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" + integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helpers" "^7.20.7" - "@babel/parser" "^7.20.7" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.12" - "@babel/types" "^7.20.7" + "@babel/generator" "^7.19.3" + "@babel/helper-compilation-targets" "^7.19.3" + "@babel/helper-module-transforms" "^7.19.0" + "@babel/helpers" "^7.19.0" + "@babel/parser" "^7.19.3" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.3" + "@babel/types" "^7.19.3" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" + json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.20.7": +"@babel/generator@^7.19.3", "@babel/generator@^7.20.7": version "7.20.14" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.14.tgz#9fa772c9f86a46c6ac9b321039400712b96f64ce" integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg== @@ -131,7 +131,7 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.20.7": +"@babel/helper-compilation-targets@^7.19.3": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== @@ -169,7 +169,7 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.20.11": +"@babel/helper-module-transforms@^7.19.0": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== @@ -217,7 +217,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helpers@^7.20.7": +"@babel/helpers@^7.19.0": version "7.20.13" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== @@ -235,7 +235,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.20.13", "@babel/parser@^7.20.7": +"@babel/parser@^7.19.3", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7": version "7.20.15" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89" integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg== @@ -254,7 +254,7 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13": +"@babel/traverse@^7.19.3", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.13": version "7.20.13" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473" integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== @@ -270,7 +270,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7": +"@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.20.2", "@babel/types@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== @@ -420,7 +420,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== @@ -457,13 +457,18 @@ lodash "^4.17.15" tmp-promise "^3.0.2" -"@ng-bootstrap/ng-bootstrap@^12": - version "12.1.2" - resolved "https://registry.yarnpkg.com/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-12.1.2.tgz#19f21313234fe21090ba50a7721046ed5d9928e1" - integrity sha512-p27c+mYVdHiJMYrj5hwClVJxLdiZxafAqlbw1sdJh2xJ1rGOe+H/kCf5YDRbhlHqRN+34Gr0RQqIUeD1I2V8hg== +"@ng-bootstrap/ng-bootstrap@^14.0.1": + version "14.0.1" + resolved "https://registry.yarnpkg.com/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-14.0.1.tgz#09f93058d3c4a2f4e751c8b546e01f6d2524bd05" + integrity sha512-JF4U4IIix+g6VBFfG8stf0Un5K//ypoN+pTuRs6kjUhsHBsa2m7yKE6bCe3fMhatFZFr2fcSswDzRUnAUiHhWg== dependencies: tslib "^2.3.0" +"@ngtools/webpack@^15.1.4": + version "15.1.4" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-15.1.4.tgz#8535324ef9fdffdee606513b7244b859b6e549c5" + integrity sha512-IvKXK8AvPlLkP99Uf0RL1EHlcsXNQd86II9HsLjupUtmFC/pPuDWrRFMP9bjWUMh2ZeYpgUeEAbcCH3doSrdIA== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -5194,7 +5199,7 @@ json5@^2.2.0: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== -json5@^2.2.2: +json5@^2.2.1: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -5545,12 +5550,12 @@ macos-release@^3.1.0: resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.1.0.tgz#6165bb0736ae567ed6649e36ce6a24d87cbb7aca" integrity sha512-/M/R0gCDgM+Cv1IuBG1XGdfTFnMEG6PZeT+KGWHO/OG+imqmaD9CH5vHBTycEM3+Kc4uG2Il+tFAuUWLqQOeUA== -magic-string@^0.26.0: - version "0.26.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" - integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== +magic-string@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" + integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== dependencies: - sourcemap-codec "^1.4.8" + "@jridgewell/sourcemap-codec" "^1.4.13" make-dir@^1.0.0: version "1.3.0" @@ -6660,11 +6665,6 @@ parse-json@^2.2.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -parse5@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== - parse5@^7.0.0: version "7.1.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" @@ -6672,6 +6672,13 @@ parse5@^7.0.0: dependencies: entities "^4.4.0" +parse5@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + pascal-case@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" @@ -8101,11 +8108,6 @@ source-sans-pro@3.6.0: resolved "https://registry.npmjs.org/source-sans-pro/-/source-sans-pro-3.6.0.tgz" integrity sha512-C1RFUGu+YASuqpgDRInTM7Y6OwqeWNOuKn7v0P/4Kh66epTI4PYWwPWP5kdA4l/VqzBAWiqoz5dk0trof73R7w== -sourcemap-codec@^1.4.8: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz"