This commit is contained in:
Eugene Pankov 2023-02-06 10:13:12 +01:00
parent 6059de434f
commit 905a2f54d2
No known key found for this signature in database
GPG Key ID: 5896FCBBDD1CF4F4
11 changed files with 149 additions and 123 deletions

View File

@ -6,22 +6,25 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
import { ToastrModule } from 'ngx-toastr' import { ToastrModule } from 'ngx-toastr'
@Component({ @Component({
standalone: true,
imports: [CommonModule],
selector: 'root', selector: 'root',
template: '<div *ngIf="true">Hi</div>',
}) })
export class RootComponent { export class RootComponent {
static bootstrapComponent: any static bootstrapComponent: any
constructor (private viewContainerRef: ViewContainerRef) { } constructor (private viewContainerRef: ViewContainerRef) { }
ngAfterViewInit () { ngAfterViewInit () {
this.viewContainerRef.createComponent(RootComponent.bootstrapComponent) // this.viewContainerRef.createComponent(RootComponent.bootstrapComponent)
} }
} }
export function getRootModule (plugins: any[]) { export function getRootModule (plugins: any[]) {
const imports = [ const imports = [
BrowserModule, BrowserModule,
CommonModule, // CommonModule,
...plugins, // ...plugins,
NgbModule, // NgbModule,
ToastrModule.forRoot({ ToastrModule.forRoot({
positionClass: 'toast-bottom-center', positionClass: 'toast-bottom-center',
toastClass: 'toast', toastClass: 'toast',
@ -41,6 +44,7 @@ export function getRootModule (plugins: any[]) {
@NgModule({ @NgModule({
imports, imports,
declarations: [RootComponent], declarations: [RootComponent],
// bootstrap,
// bootstrap: [RootComponent], // bootstrap: [RootComponent],
}) class RootModule { }) class RootModule {
ngDoBootstrap (appRef: ApplicationRef) { ngDoBootstrap (appRef: ApplicationRef) {

View File

@ -8,13 +8,14 @@ import './toastr.scss'
// Importing before @angular/* // Importing before @angular/*
import { findPlugins, initModuleLookup, loadPlugins } from './plugins' import { findPlugins, initModuleLookup, loadPlugins } from './plugins'
import { enableProdMode, NgModuleRef, ApplicationRef } from '@angular/core' import { enableProdMode, NgModuleRef, ApplicationRef, importProvidersFrom } from '@angular/core'
import { enableDebugTools } from '@angular/platform-browser' import { bootstrapApplication, enableDebugTools } from '@angular/platform-browser'
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic' import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'
import { ipcRenderer } from 'electron' 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 { BootstrapData, BOOTSTRAP_DATA, PluginInfo } from '../../tabby-core/src/api/mainProcess'
import { ToastrModule } from 'ngx-toastr'
// Always land on the start view // Always land on the start view
location.hash = '' location.hash = ''
@ -39,17 +40,35 @@ async function bootstrap (bootstrapData: BootstrapData, plugins: PluginInfo[], s
const pluginModules = await loadPlugins(plugins, (current, total) => { const pluginModules = await loadPlugins(plugins, (current, total) => {
(document.querySelector('.progress .bar') as HTMLElement).style.width = `${100 * current / total}%` // eslint-disable-line (document.querySelector('.progress .bar') as HTMLElement).style.width = `${100 * current / total}%` // eslint-disable-line
}) })
const module = getRootModule(pluginModules)
window['rootModule'] = module pluginModules.splice(0, 999)
const moduleRef = await platformBrowserDynamic([
window['pluginModules'] = pluginModules
const providers = [
{ provide: BOOTSTRAP_DATA, useValue: bootstrapData }, { 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) { if (process.env.TABBY_DEV) {
// const applicationRef = moduleRef.injector.get(ApplicationRef) // const applicationRef = moduleRef.injector.get(ApplicationRef)
// const componentRef = applicationRef.components[0] // const componentRef = applicationRef.components[0]
// enableDebugTools(componentRef) // enableDebugTools(componentRef)
} }
return moduleRef // return moduleRef
} }
ipcRenderer.once('start', async (_$event, bootstrapData: BootstrapData) => { ipcRenderer.once('start', async (_$event, bootstrapData: BootstrapData) => {

View File

@ -1,6 +0,0 @@
import { Component } from '@angular/core'
@Component({
template: '<app-root></app-root>',
})
export class RootComponent { } // eslint-disable-line @typescript-eslint/no-extraneous-class

View File

@ -1,6 +1,7 @@
import * as path from 'path' import * as path from 'path'
import wp from 'webpack' import wp from 'webpack'
const __dirname = path.dirname(new URL(import.meta.url).pathname) const __dirname = path.dirname(new URL(import.meta.url).pathname)
import { AngularWebpackPlugin } from '@ngtools/webpack'
import linkerPlugin from '@angular/compiler-cli/linker/babel' import linkerPlugin from '@angular/compiler-cli/linker/babel'
export default () => ({ export default () => ({
@ -45,10 +46,7 @@ export default () => ({
{ {
test: /\.ts$/, test: /\.ts$/,
use: { use: {
loader: 'ts-loader', loader: '@ngtools/webpack',
options: {
configFile: path.resolve(__dirname, 'tsconfig.json'),
},
}, },
}, },
{ test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] }, { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
@ -74,5 +72,10 @@ export default () => ({
new wp.DefinePlugin({ new wp.DefinePlugin({
'process.type': '"renderer"', 'process.type': '"renderer"',
}), }),
new AngularWebpackPlugin({
tsconfig: path.resolve(__dirname, 'tsconfig.json'),
directTemplateLoading: false,
jitMode: false,
})
], ],
}) })

View File

@ -1,17 +1,18 @@
{ {
"devDependencies": { "devDependencies": {
"@angular/animations": "^13", "@angular/animations": "^15.1.3",
"@angular/cdk": "^13", "@angular/cdk": "^15.1.3",
"@angular/common": "^13", "@angular/common": "^15.1.3",
"@angular/compiler": "^13", "@angular/compiler": "^15.1.3",
"@angular/compiler-cli": "^13", "@angular/compiler-cli": "^15.1.3",
"@angular/core": "^13", "@angular/core": "^15.1.3",
"@angular/forms": "^13", "@angular/forms": "^15.1.3",
"@angular/platform-browser": "^13", "@angular/platform-browser": "^15.1.3",
"@angular/platform-browser-dynamic": "^13", "@angular/platform-browser-dynamic": "^15.1.3",
"@biesbjerg/ngx-translate-extract-marker": "^1.0.0", "@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
"@fortawesome/fontawesome-free": "^6.2.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", "@popperjs/core": "^2.11.6",
"@sentry/cli": "^1.74.3", "@sentry/cli": "^1.74.3",
"@sentry/electron": "^2.5.4", "@sentry/electron": "^2.5.4",

View File

@ -0,0 +1,3 @@
div Hello
div there
div(*ngFor='let x of [1,2,3]') there

View File

@ -17,7 +17,6 @@ import { SafeModeModalComponent } from './safeModeModal.component'
import { TabBodyComponent } from './tabBody.component' import { TabBodyComponent } from './tabBody.component'
import { SplitTabComponent } from './splitTab.component' import { SplitTabComponent } from './splitTab.component'
import { AppService, Command, CommandLocation, FileTransfer, HostWindowService, PlatformService } from '../api' import { AppService, Command, CommandLocation, FileTransfer, HostWindowService, PlatformService } from '../api'
import { CommonModule } from '@angular/common'
function makeTabAnimation (dimension: string, size: number) { function makeTabAnimation (dimension: string, size: number) {
return [ return [
@ -55,9 +54,8 @@ function makeTabAnimation (dimension: string, size: number) {
/** @hidden */ /** @hidden */
@Component({ @Component({
imports: [CommonModule],
selector: 'app-root', selector: 'app-root',
template: require('./appRoot.component.pug'), templateUrl: './1.pug',
styles: [require('./appRoot.component.scss')], styles: [require('./appRoot.component.scss')],
animations: [ animations: [
trigger('animateTab', makeTabAnimation('width', 200)), trigger('animateTab', makeTabAnimation('width', 200)),

View File

@ -126,6 +126,7 @@ const PROVIDERS = [
ProfileIconComponent, ProfileIconComponent,
], ],
exports: [ exports: [
AppRootComponent,
CheckboxComponent, CheckboxComponent,
ToggleComponent, ToggleComponent,
PromptModalComponent, PromptModalComponent,

View File

@ -239,8 +239,7 @@ export class ConfigService {
enabledServices<T extends object> (services: T[]): T[] { // eslint-disable-line @typescript-eslint/ban-types enabledServices<T extends object> (services: T[]): T[] { // eslint-disable-line @typescript-eslint/ban-types
if (!this.servicesCache) { if (!this.servicesCache) {
this.servicesCache = {} this.servicesCache = {}
const ngModule = window['rootModule'].ɵinj for (const imp of window['pluginModules']) {
for (const imp of ngModule.imports) {
const module = imp.ngModule || imp const module = imp.ngModule || imp
if (module.ɵinj?.providers) { if (module.ɵinj?.providers) {
this.servicesCache[module.pluginName] = module.ɵinj.providers.map(provider => { this.servicesCache[module.pluginName] = module.ɵinj.providers.map(provider => {

View File

@ -1,6 +1,7 @@
import * as path from 'path' import * as path from 'path'
import wp from 'webpack' import wp from 'webpack'
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer' import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'
import { AngularWebpackPlugin } from '@ngtools/webpack'
const bundleAnalyzer = new BundleAnalyzerPlugin({ const bundleAnalyzer = new BundleAnalyzerPlugin({
analyzerPort: 0, analyzerPort: 0,
@ -75,11 +76,7 @@ export default options => {
test: /\.ts$/, test: /\.ts$/,
use: [ use: [
{ {
loader: 'ts-loader', loader: '@ngtools/webpack',
options: {
configFile: path.resolve(options.dirname, 'tsconfig.json'),
allowTsInNodeModules: true,
},
}, },
], ],
}, },
@ -151,6 +148,11 @@ export default options => {
], ],
plugins: [ plugins: [
new devtoolPlugin(sourceMapOptions), new devtoolPlugin(sourceMapOptions),
new AngularWebpackPlugin({
tsconfig: path.resolve(options.dirname, 'tsconfig.json'),
directTemplateLoading: false,
jitMode: false,
})
], ],
} }
if (process.env.PLUGIN_BUNDLE_ANALYZER === options.name) { if (process.env.PLUGIN_BUNDLE_ANALYZER === options.name) {

164
yarn.lock
View File

@ -15,77 +15,77 @@
"@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/gen-mapping" "^0.1.0"
"@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/trace-mapping" "^0.3.9"
"@angular/animations@^13": "@angular/animations@^15.1.3":
version "13.3.12" version "15.1.3"
resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-13.3.12.tgz#5fbd2f5b796ed2b801df09d1b0925721d8a75ec3" resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-15.1.3.tgz#3b35675f7e7df2a8c8f35abf5617b8c7f533a2f0"
integrity sha512-dc2JDokKJuuNxzzZa9FvuQU71kYC/e0xCLjGxEgX48sGKwajHRGBuzYFb8EmvLeA24SshYGmrxN0vGG9GhLK6g== integrity sha512-qvOLYx8XWolwFWwYoPjt+jQLDFaCQEPjb26iczewiqd+xcAdYn4Tl10NCJtOsx+YfTdpWtKRzvxYr1JxnGQTdw==
dependencies: dependencies:
tslib "^2.3.0" tslib "^2.3.0"
"@angular/cdk@^13": "@angular/cdk@^15.1.3":
version "13.3.9" version "15.1.3"
resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-13.3.9.tgz#a177196e872e29be3f84d3a50f778d361c689ff7" resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-15.1.3.tgz#71b5c9e7b7ef0ba0c648278e34536e0f8d06b7b7"
integrity sha512-XCuCbeuxWFyo3EYrgEYx7eHzwl76vaWcxtWXl00ka8d+WAOtMQ6Tf1D98ybYT5uwF9889fFpXAPw98mVnlo3MA== integrity sha512-FRb1ZirybQGVlRx34vsnkIyy4WHJlrRg2mwPeJ90b0DzIWuIZIiPYxxR2bAi/Si1IjnK8YBdacd5DXPdrW1jyw==
dependencies: dependencies:
tslib "^2.3.0" tslib "^2.3.0"
optionalDependencies: optionalDependencies:
parse5 "^5.0.0" parse5 "^7.1.2"
"@angular/common@^13": "@angular/common@^15.1.3":
version "13.3.12" version "15.1.3"
resolved "https://registry.yarnpkg.com/@angular/common/-/common-13.3.12.tgz#6ef3187232415e69995eb590a12ebcd44e457425" resolved "https://registry.yarnpkg.com/@angular/common/-/common-15.1.3.tgz#5ad482ff6da4b8820607180c50f208667c3be729"
integrity sha512-Nk4zNKfda92aFe+cucHRv2keyryR7C1ZnsurwZW9WZSobpY3z2tTT81F+yy35lGoMt5BDBAIpfh1b4j9Ue/vMg== integrity sha512-UjC0COaOcU1g/ODBBetv/BpdaFC/Y32DvXJ9qbD7kkwLwoqCjGOLDvtP36r9zEzPmH7oNkgNGDkgR3gyb82s5A==
dependencies: dependencies:
tslib "^2.3.0" tslib "^2.3.0"
"@angular/compiler-cli@^13": "@angular/compiler-cli@^15.1.3":
version "13.3.12" version "15.1.3"
resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-13.3.12.tgz#34f03dc806b63af06ab47f3fda3217e24e423560" resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-15.1.3.tgz#c45dd2a50076af836b4f49de903a884048d79918"
integrity sha512-6jrdVwexPihWlyitopc3rn2ReEkhAaMI8UWR0SOTnt3NaqNYWeio4bpeWlumgNPElDyY5rmyrmJgeaY8ICa8qA== integrity sha512-z5bGdQQcStXWPpb5vztqqUOET+vxw+GUFtfktYxV40kE2d1zHLZh93AGEnM1NnBaOz+9NZrX+dWoEyWmv/T2LQ==
dependencies: dependencies:
"@babel/core" "^7.17.2" "@babel/core" "7.19.3"
"@jridgewell/sourcemap-codec" "^1.4.14"
chokidar "^3.0.0" chokidar "^3.0.0"
convert-source-map "^1.5.1" convert-source-map "^1.5.1"
dependency-graph "^0.11.0" dependency-graph "^0.11.0"
magic-string "^0.26.0" magic-string "^0.27.0"
reflect-metadata "^0.1.2" reflect-metadata "^0.1.2"
semver "^7.0.0" semver "^7.0.0"
sourcemap-codec "^1.4.8"
tslib "^2.3.0" tslib "^2.3.0"
yargs "^17.2.1" yargs "^17.2.1"
"@angular/compiler@^13": "@angular/compiler@^15.1.3":
version "13.3.12" version "15.1.3"
resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-13.3.12.tgz#9fa94d116310060bcdd429c24d593b70f8a082da" resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-15.1.3.tgz#7972d7dec2462e3a2a9fa256902363a716ab2f8c"
integrity sha512-F5vJYrjbNvEWoVz9J/CqiT3Iod6g9bV0dGI5EeURcW4yHXHZ12ioQpfU3+bE7qXcTlnofbdDhK8cGxGx01SzBA== integrity sha512-CxEpm5Z3EpjeGNoWKtcHOrf2IQTSckpAEFwsRrADP2nqcXXYp/IjIHi+PUTjLhjrOEbukH9zreHsL5BoIQhgUQ==
dependencies: dependencies:
tslib "^2.3.0" tslib "^2.3.0"
"@angular/core@^13": "@angular/core@^15.1.3":
version "13.3.12" version "15.1.3"
resolved "https://registry.yarnpkg.com/@angular/core/-/core-13.3.12.tgz#6817eec14a86a76dd6200dd6d1a89ca520968b09" resolved "https://registry.yarnpkg.com/@angular/core/-/core-15.1.3.tgz#08a19d2427fffba8d75bb622f5db0b1406937877"
integrity sha512-jx0YC+NbPMbxGr5bXECkCEQv2RdVxR8AJNnabkPk8ZjwCpDzROrbELwwS1kunrZUhffcD15IhWGBvf1EGHAYDw== integrity sha512-rad9OYnaoRnXBztOBXsiD59VvOZTpsvO3sWx6KndytQFceFfkL722bF2l2LARN+R3IWDOwRap46HOtc0O0N+sw==
dependencies: dependencies:
tslib "^2.3.0" tslib "^2.3.0"
"@angular/forms@^13": "@angular/forms@^15.1.3":
version "13.3.12" version "15.1.3"
resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-13.3.12.tgz#21a4a3f5d7539d42351b9f2a7cac10463b6b7c00" resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-15.1.3.tgz#7dcbb2305fa5901b36dd8d3fd0ece2374bdce54d"
integrity sha512-auow1TKZx44ha1ia8Jwg2xp2Q7BbpShG5Ft8tewL3T44aTmJY7svWOE/m+DkZ/SXHmTFnbZFobGU5aEfe0+pNw== integrity sha512-vEgiZBk3rGGp4tBQHl9EaspEjYh70lkz6/zYreObTbMdCB54bkbl+jn+JbQyFj+TPfukiumtiG3/477vKzYnSg==
dependencies: dependencies:
tslib "^2.3.0" tslib "^2.3.0"
"@angular/platform-browser-dynamic@^13": "@angular/platform-browser-dynamic@^15.1.3":
version "13.3.12" version "15.1.3"
resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.3.12.tgz#2c27c8eb135f643e31594752b28e134eb06e52ac" resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.1.3.tgz#f1d327c38643b08ac85b15e77528b6717ab7a243"
integrity sha512-/hBggov0PxK/KNJqIu3MVc5k8f0iDbygDP8Z1k/J0FcllOSRdO4LsQd1fsCfGfwIUf0YWGyD7KraSGpBBiWlFg== integrity sha512-lUfHmO+x3goSL1KnlAbekieKpak2KVGcOcAzOVOIMFt1SyWPBHq0NyyPOH2PUAnjPRbvCLEs2casjFggk0JzsQ==
dependencies: dependencies:
tslib "^2.3.0" tslib "^2.3.0"
"@angular/platform-browser@^13": "@angular/platform-browser@^15.1.3":
version "13.3.12" version "15.1.3"
resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-13.3.12.tgz#913e42f5a1cc7f691a81554345a87ae4236ee14d" resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-15.1.3.tgz#c35912e419baf74e73f90f8cf80fbe4af63f1deb"
integrity sha512-sfhQqU4xjTJCjkH62TQeH5/gkay/KzvNDF95J6NHi/Q6p2dbtzZdXuLJKR/sHxtF2kc505z5v9RNm6XMSXM1KA== integrity sha512-WJBN3klssfcRGKY2L2DIpNGbaMQfi2X1le1ZXQAnsfECQ/pua+lFstJUT+RP+Bx4X8icuDggKkS/JPOiBhxARw==
dependencies: dependencies:
tslib "^2.3.0" tslib "^2.3.0"
@ -101,28 +101,28 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8"
integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw== integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==
"@babel/core@^7.17.2": "@babel/core@7.19.3":
version "7.20.12" version "7.19.3"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c"
integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==
dependencies: dependencies:
"@ampproject/remapping" "^2.1.0" "@ampproject/remapping" "^2.1.0"
"@babel/code-frame" "^7.18.6" "@babel/code-frame" "^7.18.6"
"@babel/generator" "^7.20.7" "@babel/generator" "^7.19.3"
"@babel/helper-compilation-targets" "^7.20.7" "@babel/helper-compilation-targets" "^7.19.3"
"@babel/helper-module-transforms" "^7.20.11" "@babel/helper-module-transforms" "^7.19.0"
"@babel/helpers" "^7.20.7" "@babel/helpers" "^7.19.0"
"@babel/parser" "^7.20.7" "@babel/parser" "^7.19.3"
"@babel/template" "^7.20.7" "@babel/template" "^7.18.10"
"@babel/traverse" "^7.20.12" "@babel/traverse" "^7.19.3"
"@babel/types" "^7.20.7" "@babel/types" "^7.19.3"
convert-source-map "^1.7.0" convert-source-map "^1.7.0"
debug "^4.1.0" debug "^4.1.0"
gensync "^1.0.0-beta.2" gensync "^1.0.0-beta.2"
json5 "^2.2.2" json5 "^2.2.1"
semver "^6.3.0" semver "^6.3.0"
"@babel/generator@^7.20.7": "@babel/generator@^7.19.3", "@babel/generator@^7.20.7":
version "7.20.14" version "7.20.14"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.14.tgz#9fa772c9f86a46c6ac9b321039400712b96f64ce" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.14.tgz#9fa772c9f86a46c6ac9b321039400712b96f64ce"
integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg== integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==
@ -131,7 +131,7 @@
"@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/gen-mapping" "^0.3.2"
jsesc "^2.5.1" jsesc "^2.5.1"
"@babel/helper-compilation-targets@^7.20.7": "@babel/helper-compilation-targets@^7.19.3":
version "7.20.7" version "7.20.7"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb"
integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==
@ -169,7 +169,7 @@
dependencies: dependencies:
"@babel/types" "^7.18.6" "@babel/types" "^7.18.6"
"@babel/helper-module-transforms@^7.20.11": "@babel/helper-module-transforms@^7.19.0":
version "7.20.11" version "7.20.11"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0"
integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== 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" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
"@babel/helpers@^7.20.7": "@babel/helpers@^7.19.0":
version "7.20.13" version "7.20.13"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2"
integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==
@ -235,7 +235,7 @@
chalk "^2.0.0" chalk "^2.0.0"
js-tokens "^4.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" version "7.20.15"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89"
integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg== integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==
@ -254,7 +254,7 @@
"@babel/parser" "^7.20.7" "@babel/parser" "^7.20.7"
"@babel/types" "^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" version "7.20.13"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473"
integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==
@ -270,7 +270,7 @@
debug "^4.1.0" debug "^4.1.0"
globals "^11.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" version "7.20.7"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f"
integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==
@ -420,7 +420,7 @@
"@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9" "@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" version "1.4.14"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
@ -457,13 +457,18 @@
lodash "^4.17.15" lodash "^4.17.15"
tmp-promise "^3.0.2" tmp-promise "^3.0.2"
"@ng-bootstrap/ng-bootstrap@^12": "@ng-bootstrap/ng-bootstrap@^14.0.1":
version "12.1.2" version "14.0.1"
resolved "https://registry.yarnpkg.com/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-12.1.2.tgz#19f21313234fe21090ba50a7721046ed5d9928e1" resolved "https://registry.yarnpkg.com/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-14.0.1.tgz#09f93058d3c4a2f4e751c8b546e01f6d2524bd05"
integrity sha512-p27c+mYVdHiJMYrj5hwClVJxLdiZxafAqlbw1sdJh2xJ1rGOe+H/kCf5YDRbhlHqRN+34Gr0RQqIUeD1I2V8hg== integrity sha512-JF4U4IIix+g6VBFfG8stf0Un5K//ypoN+pTuRs6kjUhsHBsa2m7yKE6bCe3fMhatFZFr2fcSswDzRUnAUiHhWg==
dependencies: dependencies:
tslib "^2.3.0" 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": "@nodelib/fs.scandir@2.1.5":
version "2.1.5" version "2.1.5"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 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" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
json5@^2.2.2: json5@^2.2.1:
version "2.2.3" version "2.2.3"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 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" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.1.0.tgz#6165bb0736ae567ed6649e36ce6a24d87cbb7aca"
integrity sha512-/M/R0gCDgM+Cv1IuBG1XGdfTFnMEG6PZeT+KGWHO/OG+imqmaD9CH5vHBTycEM3+Kc4uG2Il+tFAuUWLqQOeUA== integrity sha512-/M/R0gCDgM+Cv1IuBG1XGdfTFnMEG6PZeT+KGWHO/OG+imqmaD9CH5vHBTycEM3+Kc4uG2Il+tFAuUWLqQOeUA==
magic-string@^0.26.0: magic-string@^0.27.0:
version "0.26.7" version "0.27.0"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3"
integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==
dependencies: dependencies:
sourcemap-codec "^1.4.8" "@jridgewell/sourcemap-codec" "^1.4.13"
make-dir@^1.0.0: make-dir@^1.0.0:
version "1.3.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" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== 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: parse5@^7.0.0:
version "7.1.1" version "7.1.1"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746"
@ -6672,6 +6672,13 @@ parse5@^7.0.0:
dependencies: dependencies:
entities "^4.4.0" 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: pascal-case@^3.1.2:
version "3.1.2" version "3.1.2"
resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" 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" resolved "https://registry.npmjs.org/source-sans-pro/-/source-sans-pro-3.6.0.tgz"
integrity sha512-C1RFUGu+YASuqpgDRInTM7Y6OwqeWNOuKn7v0P/4Kh66epTI4PYWwPWP5kdA4l/VqzBAWiqoz5dk0trof73R7w== 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: spdx-correct@^3.0.0:
version "3.1.1" version "3.1.1"
resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz"