mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-29 13:02:42 +00:00
test: fix app unit tests
This commit is contained in:
6
.changeset/tasty-islands-smell.md
Normal file
6
.changeset/tasty-islands-smell.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
'@openstapps/app': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Migrate unit tests to karma-coverage and junit reports.
|
||||||
|
Fixes an issue where coverage reports would not be generated.
|
||||||
@@ -95,6 +95,7 @@ stop review:
|
|||||||
rules: *deploy-rules
|
rules: *deploy-rules
|
||||||
|
|
||||||
unit:
|
unit:
|
||||||
|
image: registry.gitlab.com/openstapps/app:v18
|
||||||
stage: test
|
stage: test
|
||||||
needs: ['build']
|
needs: ['build']
|
||||||
script:
|
script:
|
||||||
|
|||||||
@@ -24,19 +24,26 @@ module.exports = function (config) {
|
|||||||
plugins: [
|
plugins: [
|
||||||
require('karma-jasmine'),
|
require('karma-jasmine'),
|
||||||
require('karma-chrome-launcher'),
|
require('karma-chrome-launcher'),
|
||||||
require('karma-coverage-istanbul-reporter'),
|
require('karma-coverage'),
|
||||||
require('@angular-devkit/build-angular/plugins/karma'),
|
require('@angular-devkit/build-angular/plugins/karma'),
|
||||||
require('karma-mocha-reporter'),
|
require('karma-mocha-reporter'),
|
||||||
|
require('karma-junit-reporter'),
|
||||||
],
|
],
|
||||||
client: {
|
client: {
|
||||||
clearContext: false, // leave Jasmine Spec Runner output visible in browser
|
clearContext: false, // leave Jasmine Spec Runner output visible in browser
|
||||||
},
|
},
|
||||||
coverageIstanbulReporter: {
|
coverageReporter: {
|
||||||
dir: require('path').join(__dirname, './coverage'),
|
dir: 'coverage/',
|
||||||
reports: ['html', 'lcovonly', 'text-summary', 'cobertura'],
|
reporters: [{type: 'cobertura', subdir: '.'}],
|
||||||
|
// reports: ['html', 'lcovonly', 'text-summary', 'cobertura'],
|
||||||
fixWebpackSourcePaths: true,
|
fixWebpackSourcePaths: true,
|
||||||
},
|
},
|
||||||
reporters: config.buildWebpack.options.codeCoverage ? ['mocha', 'coverage-istanbul'] : ['mocha'],
|
junitReporter: {
|
||||||
|
outputDir: 'coverage/',
|
||||||
|
outputFile: 'report-junit.xml',
|
||||||
|
useBrowserName: false,
|
||||||
|
},
|
||||||
|
reporters: ['mocha', 'junit', 'coverage'],
|
||||||
port: 9876,
|
port: 9876,
|
||||||
colors: true,
|
colors: true,
|
||||||
logLevel: config.LOG_INFO,
|
logLevel: config.LOG_INFO,
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
"start": "ionic serve",
|
"start": "ionic serve",
|
||||||
"start:external": "ionic serve --external",
|
"start:external": "ionic serve --external",
|
||||||
"start:prod": "ionic serve --prod",
|
"start:prod": "ionic serve --prod",
|
||||||
"test": "ng test",
|
"test": "ng test --watch=false --code-coverage",
|
||||||
"test:integration": "sh integration-test.sh"
|
"test:integration": "sh integration-test.sh"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -121,6 +121,7 @@
|
|||||||
"@angular/compiler": "13.4.0",
|
"@angular/compiler": "13.4.0",
|
||||||
"@angular/compiler-cli": "13.4.0",
|
"@angular/compiler-cli": "13.4.0",
|
||||||
"@angular/language-service": "13.4.0",
|
"@angular/language-service": "13.4.0",
|
||||||
|
"@angular/platform-browser-dynamic": "13.3.11",
|
||||||
"@capacitor/android": "4.6.1",
|
"@capacitor/android": "4.6.1",
|
||||||
"@capacitor/cli": "4.6.1",
|
"@capacitor/cli": "4.6.1",
|
||||||
"@capacitor/ios": "4.6.1",
|
"@capacitor/ios": "4.6.1",
|
||||||
@@ -157,10 +158,10 @@
|
|||||||
"junit-report-merger": "6.0.2",
|
"junit-report-merger": "6.0.2",
|
||||||
"karma": "6.4.1",
|
"karma": "6.4.1",
|
||||||
"karma-chrome-launcher": "3.1.1",
|
"karma-chrome-launcher": "3.1.1",
|
||||||
"karma-coverage-istanbul-reporter": "3.0.3",
|
"karma-junit-reporter": "2.0.1",
|
||||||
"karma-jasmine": "5.1.0",
|
"karma-coverage": "2.2.1",
|
||||||
"karma-jasmine-html-reporter": "2.0.0",
|
|
||||||
"karma-mocha-reporter": "2.2.5",
|
"karma-mocha-reporter": "2.2.5",
|
||||||
|
"karma-jasmine": "5.1.0",
|
||||||
"license-checker": "25.0.1",
|
"license-checker": "25.0.1",
|
||||||
"protractor": "7.0.0",
|
"protractor": "7.0.0",
|
||||||
"surge": "0.23.1",
|
"surge": "0.23.1",
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import {
|
|||||||
SCThingType,
|
SCThingType,
|
||||||
} from '@openstapps/core';
|
} from '@openstapps/core';
|
||||||
import {Polygon} from 'geojson';
|
import {Polygon} from 'geojson';
|
||||||
import packageJson from '../../../../package.json';
|
import {environment} from '../../../environments/environment';
|
||||||
|
|
||||||
// provides sample aggregations to be used in tests or backendless development
|
// provides sample aggregations to be used in tests or backendless development
|
||||||
export const sampleAggregations: SCBackendAggregationConfiguration[] = [
|
export const sampleAggregations: SCBackendAggregationConfiguration[] = [
|
||||||
@@ -108,8 +108,6 @@ export const sampleDefaultPolygon: Polygon = {
|
|||||||
type: 'Polygon',
|
type: 'Polygon',
|
||||||
};
|
};
|
||||||
|
|
||||||
const scVersion = packageJson.dependencies['@openstapps/core'];
|
|
||||||
|
|
||||||
export const sampleIndexResponse: SCIndexResponse = {
|
export const sampleIndexResponse: SCIndexResponse = {
|
||||||
app: {
|
app: {
|
||||||
aboutPages: {
|
aboutPages: {
|
||||||
@@ -197,7 +195,7 @@ export const sampleIndexResponse: SCIndexResponse = {
|
|||||||
},
|
},
|
||||||
auth: {},
|
auth: {},
|
||||||
backend: {
|
backend: {
|
||||||
SCVersion: scVersion,
|
SCVersion: environment.sc_version,
|
||||||
externalRequestTimeout: 5000,
|
externalRequestTimeout: 5000,
|
||||||
hiddenTypes: [SCThingType.DateSeries, SCThingType.Diff, SCThingType.Floor],
|
hiddenTypes: [SCThingType.DateSeries, SCThingType.Diff, SCThingType.Floor],
|
||||||
mappingIgnoredTags: [],
|
mappingIgnoredTags: [],
|
||||||
|
|||||||
@@ -21,10 +21,10 @@ import {Browser} from 'ionic-appauth';
|
|||||||
import {Requestor, StorageBackend} from '@openid/appauth';
|
import {Requestor, StorageBackend} from '@openid/appauth';
|
||||||
import {TranslateService} from '@ngx-translate/core';
|
import {TranslateService} from '@ngx-translate/core';
|
||||||
import {PAIAAuthService} from './paia/paia-auth.service';
|
import {PAIAAuthService} from './paia/paia-auth.service';
|
||||||
import {LoggerConfig, LoggerModule, NGXLogger} from 'ngx-logger';
|
|
||||||
import {StAppsWebHttpClient} from '../data/stapps-web-http-client.provider';
|
import {StAppsWebHttpClient} from '../data/stapps-web-http-client.provider';
|
||||||
import {HttpClientModule} from '@angular/common/http';
|
import {HttpClientModule} from '@angular/common/http';
|
||||||
import {SimpleBrowser} from '../../util/browser.factory';
|
import {SimpleBrowser} from '../../util/browser.factory';
|
||||||
|
import {LoggerTestingModule} from 'ngx-logger/testing';
|
||||||
|
|
||||||
describe('AuthHelperService', () => {
|
describe('AuthHelperService', () => {
|
||||||
let authHelperService: AuthHelperService;
|
let authHelperService: AuthHelperService;
|
||||||
@@ -54,11 +54,9 @@ describe('AuthHelperService', () => {
|
|||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [HttpClientModule, LoggerModule],
|
imports: [HttpClientModule, LoggerTestingModule],
|
||||||
providers: [
|
providers: [
|
||||||
NGXLogger,
|
|
||||||
StAppsWebHttpClient,
|
StAppsWebHttpClient,
|
||||||
LoggerConfig,
|
|
||||||
{
|
{
|
||||||
provide: TranslateService,
|
provide: TranslateService,
|
||||||
useValue: translateServiceSpy,
|
useValue: translateServiceSpy,
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ import {DefaultAuthService} from './default-auth.service';
|
|||||||
import {Browser} from 'ionic-appauth';
|
import {Browser} from 'ionic-appauth';
|
||||||
import {nowInSeconds, Requestor, StorageBackend} from '@openid/appauth';
|
import {nowInSeconds, Requestor, StorageBackend} from '@openid/appauth';
|
||||||
import {TranslateService} from '@ngx-translate/core';
|
import {TranslateService} from '@ngx-translate/core';
|
||||||
import {LoggerConfig, LoggerModule, NGXLogger, NgxLoggerLevel} from 'ngx-logger';
|
|
||||||
import {StAppsWebHttpClient} from '../data/stapps-web-http-client.provider';
|
import {StAppsWebHttpClient} from '../data/stapps-web-http-client.provider';
|
||||||
import {HttpClientModule} from '@angular/common/http';
|
import {HttpClientModule} from '@angular/common/http';
|
||||||
import {IonicStorage} from 'ionic-appauth/lib';
|
import {IonicStorage} from 'ionic-appauth/lib';
|
||||||
import {RouterModule} from '@angular/router';
|
import {RouterModule} from '@angular/router';
|
||||||
|
import {LoggerTestingModule} from 'ngx-logger/testing';
|
||||||
|
|
||||||
describe('AuthService', () => {
|
describe('AuthService', () => {
|
||||||
let defaultAuthService: DefaultAuthService;
|
let defaultAuthService: DefaultAuthService;
|
||||||
@@ -35,15 +35,9 @@ describe('AuthService', () => {
|
|||||||
storageBackendSpy = jasmine.createSpyObj('StorageBackend', ['getItem']);
|
storageBackendSpy = jasmine.createSpyObj('StorageBackend', ['getItem']);
|
||||||
|
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [
|
imports: [HttpClientModule, LoggerTestingModule, RouterModule.forRoot([])],
|
||||||
HttpClientModule,
|
|
||||||
LoggerModule.forRoot({level: NgxLoggerLevel.TRACE}),
|
|
||||||
RouterModule.forRoot([]),
|
|
||||||
],
|
|
||||||
providers: [
|
providers: [
|
||||||
NGXLogger,
|
|
||||||
StAppsWebHttpClient,
|
StAppsWebHttpClient,
|
||||||
LoggerConfig,
|
|
||||||
{
|
{
|
||||||
provide: TranslateService,
|
provide: TranslateService,
|
||||||
useValue: translateServiceSpy,
|
useValue: translateServiceSpy,
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ import {DaiaAvailabilityComponent} from './daia-availability.component';
|
|||||||
import {Observable, of} from 'rxjs';
|
import {Observable, of} from 'rxjs';
|
||||||
import {StorageProvider} from '../../storage/storage.provider';
|
import {StorageProvider} from '../../storage/storage.provider';
|
||||||
import {DaiaDataProvider} from '../daia-data.provider';
|
import {DaiaDataProvider} from '../daia-data.provider';
|
||||||
import {LoggerConfig, LoggerModule, NGXLogger} from 'ngx-logger';
|
|
||||||
import {ConfigProvider} from '../../config/config.provider';
|
import {ConfigProvider} from '../../config/config.provider';
|
||||||
|
import {LoggerTestingModule} from 'ngx-logger/testing';
|
||||||
|
|
||||||
const translations: any = {data: {detail: {TITLE: 'Foo'}}};
|
const translations: any = {data: {detail: {TITLE: 'Foo'}}};
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ describe('DaiaAvailabilityComponent', () => {
|
|||||||
TranslateModule.forRoot({
|
TranslateModule.forRoot({
|
||||||
loader: {provide: TranslateLoader, useClass: TranslateFakeLoader},
|
loader: {provide: TranslateLoader, useClass: TranslateFakeLoader},
|
||||||
}),
|
}),
|
||||||
LoggerModule,
|
LoggerTestingModule,
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
{
|
{
|
||||||
@@ -86,8 +86,6 @@ describe('DaiaAvailabilityComponent', () => {
|
|||||||
provide: ConfigProvider,
|
provide: ConfigProvider,
|
||||||
useValue: configProviderMock,
|
useValue: configProviderMock,
|
||||||
},
|
},
|
||||||
NGXLogger,
|
|
||||||
LoggerConfig,
|
|
||||||
],
|
],
|
||||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import {HebisModule} from './hebis.module';
|
|||||||
import {ConfigProvider} from '../config/config.provider';
|
import {ConfigProvider} from '../config/config.provider';
|
||||||
import {StAppsWebHttpClient} from '../data/stapps-web-http-client.provider';
|
import {StAppsWebHttpClient} from '../data/stapps-web-http-client.provider';
|
||||||
import {StorageProvider} from '../storage/storage.provider';
|
import {StorageProvider} from '../storage/storage.provider';
|
||||||
import {LoggerConfig, LoggerModule, NGXLogger} from 'ngx-logger';
|
import {LoggerTestingModule} from 'ngx-logger/testing';
|
||||||
import {MapModule} from '../map/map.module';
|
import {MapModule} from '../map/map.module';
|
||||||
import {HttpClientModule} from '@angular/common/http';
|
import {HttpClientModule} from '@angular/common/http';
|
||||||
import {StorageModule} from '../storage/storage.module';
|
import {StorageModule} from '../storage/storage.module';
|
||||||
@@ -49,7 +49,7 @@ describe('DaiaDataProvider', () => {
|
|||||||
MapModule,
|
MapModule,
|
||||||
HttpClientModule,
|
HttpClientModule,
|
||||||
StorageModule,
|
StorageModule,
|
||||||
LoggerModule,
|
LoggerTestingModule,
|
||||||
TranslateModule.forRoot({
|
TranslateModule.forRoot({
|
||||||
loader: {provide: TranslateLoader, useClass: TranslateFakeLoader},
|
loader: {provide: TranslateLoader, useClass: TranslateFakeLoader},
|
||||||
}),
|
}),
|
||||||
@@ -61,8 +61,6 @@ describe('DaiaDataProvider', () => {
|
|||||||
},
|
},
|
||||||
StAppsWebHttpClient,
|
StAppsWebHttpClient,
|
||||||
StorageProvider,
|
StorageProvider,
|
||||||
NGXLogger,
|
|
||||||
LoggerConfig,
|
|
||||||
DaiaDataProvider,
|
DaiaDataProvider,
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import {HttpClientModule} from '@angular/common/http';
|
|||||||
import {StorageModule} from '../storage/storage.module';
|
import {StorageModule} from '../storage/storage.module';
|
||||||
import {MapPosition, PositionService} from './position.service';
|
import {MapPosition, PositionService} from './position.service';
|
||||||
import {ConfigProvider} from '../config/config.provider';
|
import {ConfigProvider} from '../config/config.provider';
|
||||||
import {LoggerConfig, LoggerModule, NGXLogger, NGXMapperService} from 'ngx-logger';
|
import {LoggerTestingModule} from 'ngx-logger/testing';
|
||||||
|
|
||||||
describe('PositionService', () => {
|
describe('PositionService', () => {
|
||||||
let positionService: PositionService;
|
let positionService: PositionService;
|
||||||
@@ -37,11 +37,8 @@ describe('PositionService', () => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [MapModule, HttpClientModule, StorageModule, LoggerModule],
|
imports: [MapModule, HttpClientModule, StorageModule, LoggerTestingModule],
|
||||||
providers: [
|
providers: [
|
||||||
LoggerConfig,
|
|
||||||
NGXLogger,
|
|
||||||
NGXMapperService,
|
|
||||||
{
|
{
|
||||||
provider: ConfigProvider,
|
provider: ConfigProvider,
|
||||||
useValue: configProviderMock,
|
useValue: configProviderMock,
|
||||||
|
|||||||
@@ -15,14 +15,25 @@
|
|||||||
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
||||||
import 'zone.js/testing';
|
import 'zone.js/testing';
|
||||||
import {getTestBed} from '@angular/core/testing';
|
import {getTestBed} from '@angular/core/testing';
|
||||||
import {BrowserTestingModule, platformBrowserTesting} from '@angular/platform-browser/testing';
|
import {
|
||||||
|
BrowserDynamicTestingModule,
|
||||||
|
platformBrowserDynamicTesting,
|
||||||
|
} from '@angular/platform-browser-dynamic/testing';
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
|
declare const __karma__: any;
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
declare const require: any;
|
declare const require: any;
|
||||||
|
|
||||||
|
// prevent Karma from runnint prematurely
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
||||||
|
__karma__.loaded = function () {};
|
||||||
|
|
||||||
// First, initialize the Angular testing environment.
|
// First, initialize the Angular testing environment.
|
||||||
getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting());
|
getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
|
||||||
// Then we find all the tests.
|
// Then we find all the tests.
|
||||||
const context = require.context('./', true, /\.spec\.ts$/);
|
const context = require.context('./', true, /\.spec\.ts$/);
|
||||||
// And load the modules.
|
// And load the modules.
|
||||||
context.keys().map(context);
|
context.keys().map(context);
|
||||||
|
|
||||||
|
__karma__.start();
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
"publish-packages": "pnpm changeset version && pnpm syncpack:fix && pnpm install && git add . && git commit -m \"refactor: update changelog\n\nci: publish release\" && git push && pnpm changeset tag && git push --follow-tags",
|
"publish-packages": "pnpm changeset version && pnpm syncpack:fix && pnpm install && git add . && git commit -m \"refactor: update changelog\n\nci: publish release\" && git push && pnpm changeset tag && git push --follow-tags",
|
||||||
"syncpack": "syncpack list-mismatches && syncpack lint-semver-ranges --types dev,peer,prod",
|
"syncpack": "syncpack list-mismatches && syncpack lint-semver-ranges --types dev,peer,prod",
|
||||||
"syncpack:fix": "syncpack format && syncpack fix-mismatches",
|
"syncpack:fix": "syncpack format && syncpack fix-mismatches",
|
||||||
"test": "trap 'node coverage.mjs' EXIT && dotenv -c -- turbo run test --filter=!@openstapps/app",
|
"test": "trap 'node coverage.mjs' EXIT && dotenv -c -- turbo run test",
|
||||||
"test:integration": "dotenv -c -- turbo run test:integration",
|
"test:integration": "dotenv -c -- turbo run test:integration",
|
||||||
"test:integration:app": "dotenv -c -- turbo run test:integration --filter=@openstapps/app",
|
"test:integration:app": "dotenv -c -- turbo run test:integration --filter=@openstapps/app",
|
||||||
"test:integration:backend": "dotenv -c -- turbo run test:integration --filter=@openstapps/backend",
|
"test:integration:backend": "dotenv -c -- turbo run test:integration --filter=@openstapps/backend",
|
||||||
|
|||||||
89
pnpm-lock.yaml
generated
89
pnpm-lock.yaml
generated
@@ -396,8 +396,6 @@ importers:
|
|||||||
specifier: 2.8.6
|
specifier: 2.8.6
|
||||||
version: 2.8.6
|
version: 2.8.6
|
||||||
|
|
||||||
configuration/builder-image: {}
|
|
||||||
|
|
||||||
configuration/eslint-config:
|
configuration/eslint-config:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/eslint-plugin':
|
'@typescript-eslint/eslint-plugin':
|
||||||
@@ -924,6 +922,9 @@ importers:
|
|||||||
'@angular/language-service':
|
'@angular/language-service':
|
||||||
specifier: 13.4.0
|
specifier: 13.4.0
|
||||||
version: 13.4.0
|
version: 13.4.0
|
||||||
|
'@angular/platform-browser-dynamic':
|
||||||
|
specifier: 13.3.11
|
||||||
|
version: 13.3.11(@angular/common@13.4.0)(@angular/compiler@13.4.0)(@angular/core@13.4.0)(@angular/platform-browser@13.4.0)
|
||||||
'@capacitor/android':
|
'@capacitor/android':
|
||||||
specifier: 4.6.1
|
specifier: 4.6.1
|
||||||
version: 4.6.1(@capacitor/core@4.6.1)
|
version: 4.6.1(@capacitor/core@4.6.1)
|
||||||
@@ -1032,15 +1033,15 @@ importers:
|
|||||||
karma-chrome-launcher:
|
karma-chrome-launcher:
|
||||||
specifier: 3.1.1
|
specifier: 3.1.1
|
||||||
version: 3.1.1
|
version: 3.1.1
|
||||||
karma-coverage-istanbul-reporter:
|
karma-coverage:
|
||||||
specifier: 3.0.3
|
specifier: 2.2.1
|
||||||
version: 3.0.3
|
version: 2.2.1
|
||||||
karma-jasmine:
|
karma-jasmine:
|
||||||
specifier: 5.1.0
|
specifier: 5.1.0
|
||||||
version: 5.1.0(karma@6.4.1)
|
version: 5.1.0(karma@6.4.1)
|
||||||
karma-jasmine-html-reporter:
|
karma-junit-reporter:
|
||||||
specifier: 2.0.0
|
specifier: 2.0.1
|
||||||
version: 2.0.0(jasmine-core@4.5.0)(karma-jasmine@5.1.0)(karma@6.4.1)
|
version: 2.0.1(karma@6.4.1)
|
||||||
karma-mocha-reporter:
|
karma-mocha-reporter:
|
||||||
specifier: 2.2.5
|
specifier: 2.2.5
|
||||||
version: 2.2.5(karma@6.4.1)
|
version: 2.2.5(karma@6.4.1)
|
||||||
@@ -2390,7 +2391,6 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@angular/core': 13.4.0(rxjs@7.8.0)(zone.js@0.12.0)
|
'@angular/core': 13.4.0(rxjs@7.8.0)(zone.js@0.12.0)
|
||||||
tslib: 2.4.1
|
tslib: 2.4.1
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@angular/cdk@13.3.9(@angular/common@13.4.0)(@angular/core@13.4.0)(rxjs@7.8.0):
|
/@angular/cdk@13.3.9(@angular/common@13.4.0)(@angular/core@13.4.0)(rxjs@7.8.0):
|
||||||
resolution: {integrity: sha512-XCuCbeuxWFyo3EYrgEYx7eHzwl76vaWcxtWXl00ka8d+WAOtMQ6Tf1D98ybYT5uwF9889fFpXAPw98mVnlo3MA==}
|
resolution: {integrity: sha512-XCuCbeuxWFyo3EYrgEYx7eHzwl76vaWcxtWXl00ka8d+WAOtMQ6Tf1D98ybYT5uwF9889fFpXAPw98mVnlo3MA==}
|
||||||
@@ -2448,7 +2448,6 @@ packages:
|
|||||||
'@angular/core': 13.4.0(rxjs@7.8.0)(zone.js@0.12.0)
|
'@angular/core': 13.4.0(rxjs@7.8.0)(zone.js@0.12.0)
|
||||||
rxjs: 7.8.0
|
rxjs: 7.8.0
|
||||||
tslib: 2.4.1
|
tslib: 2.4.1
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@angular/compiler-cli@13.4.0(@angular/compiler@13.4.0)(typescript@4.6.4):
|
/@angular/compiler-cli@13.4.0(@angular/compiler@13.4.0)(typescript@4.6.4):
|
||||||
resolution: {integrity: sha512-OQD0w9aZXbpcyWDEaozoHH/n3eYDLhBsmJcIBVqUN8Awx8m17v2u2R6m7DIEpVRbBzYtTscAMTKONNVwsTolHA==}
|
resolution: {integrity: sha512-OQD0w9aZXbpcyWDEaozoHH/n3eYDLhBsmJcIBVqUN8Awx8m17v2u2R6m7DIEpVRbBzYtTscAMTKONNVwsTolHA==}
|
||||||
@@ -2513,6 +2512,22 @@ packages:
|
|||||||
engines: {node: ^12.20.0 || ^14.15.0 || >=16.10.0}
|
engines: {node: ^12.20.0 || ^14.15.0 || >=16.10.0}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@angular/platform-browser-dynamic@13.3.11(@angular/common@13.4.0)(@angular/compiler@13.4.0)(@angular/core@13.4.0)(@angular/platform-browser@13.4.0):
|
||||||
|
resolution: {integrity: sha512-xM0VRC1Nw//SHO3gkghUHyjCaaQbk1UYMq4vIu3iKVq9KLqOSZgccv0NcOKHzXXN3S5RgX2auuyOUOCD6ny1Pg==}
|
||||||
|
engines: {node: ^12.20.0 || ^14.15.0 || >=16.10.0}
|
||||||
|
peerDependencies:
|
||||||
|
'@angular/common': 13.3.11
|
||||||
|
'@angular/compiler': 13.3.11
|
||||||
|
'@angular/core': 13.3.11
|
||||||
|
'@angular/platform-browser': 13.3.11
|
||||||
|
dependencies:
|
||||||
|
'@angular/common': 13.4.0(@angular/core@13.4.0)(rxjs@7.8.0)
|
||||||
|
'@angular/compiler': 13.4.0
|
||||||
|
'@angular/core': 13.4.0(rxjs@7.8.0)(zone.js@0.12.0)
|
||||||
|
'@angular/platform-browser': 13.4.0(@angular/animations@13.4.0)(@angular/common@13.4.0)(@angular/core@13.4.0)
|
||||||
|
tslib: 2.4.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@angular/platform-browser@13.4.0(@angular/animations@13.4.0)(@angular/common@13.4.0)(@angular/core@13.4.0):
|
/@angular/platform-browser@13.4.0(@angular/animations@13.4.0)(@angular/common@13.4.0)(@angular/core@13.4.0):
|
||||||
resolution: {integrity: sha512-kq4TpdkSS0Z/7ToFzWhyBbh4Ai1uOKFVdL9/TAm19dLnYNIInrN3KYW6GRxZ+pkJJA9Vkq4NtgcxysQ42VFotA==}
|
resolution: {integrity: sha512-kq4TpdkSS0Z/7ToFzWhyBbh4Ai1uOKFVdL9/TAm19dLnYNIInrN3KYW6GRxZ+pkJJA9Vkq4NtgcxysQ42VFotA==}
|
||||||
engines: {node: ^12.20.0 || ^14.15.0 || >=16.10.0}
|
engines: {node: ^12.20.0 || ^14.15.0 || >=16.10.0}
|
||||||
@@ -2528,7 +2543,6 @@ packages:
|
|||||||
'@angular/common': 13.4.0(@angular/core@13.4.0)(rxjs@7.8.0)
|
'@angular/common': 13.4.0(@angular/core@13.4.0)(rxjs@7.8.0)
|
||||||
'@angular/core': 13.4.0(rxjs@7.8.0)(zone.js@0.12.0)
|
'@angular/core': 13.4.0(rxjs@7.8.0)(zone.js@0.12.0)
|
||||||
tslib: 2.4.1
|
tslib: 2.4.1
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@angular/router@13.4.0(@angular/common@13.4.0)(@angular/core@13.4.0)(@angular/platform-browser@13.4.0)(rxjs@7.8.0):
|
/@angular/router@13.4.0(@angular/common@13.4.0)(@angular/core@13.4.0)(@angular/platform-browser@13.4.0)(rxjs@7.8.0):
|
||||||
resolution: {integrity: sha512-YlPAf3tPqD04rAMPAwW+XqFQaBXT9fY2Mh7J/9MXeyLZau59afBIcVNbeQxW5RxDajmfyFy437Qh22qFP2l0Hw==}
|
resolution: {integrity: sha512-YlPAf3tPqD04rAMPAwW+XqFQaBXT9fY2Mh7J/9MXeyLZau59afBIcVNbeQxW5RxDajmfyFy437Qh22qFP2l0Hw==}
|
||||||
@@ -12854,11 +12868,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==}
|
resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/istanbul-lib-coverage@2.0.5:
|
|
||||||
resolution: {integrity: sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==}
|
|
||||||
engines: {node: '>=6'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/istanbul-lib-coverage@3.2.0:
|
/istanbul-lib-coverage@3.2.0:
|
||||||
resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
|
resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -12886,14 +12895,12 @@ packages:
|
|||||||
supports-color: 7.2.0
|
supports-color: 7.2.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/istanbul-lib-source-maps@3.0.6:
|
/istanbul-lib-source-maps@4.0.1:
|
||||||
resolution: {integrity: sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==}
|
resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=10'}
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 4.3.4(supports-color@8.1.1)
|
debug: 4.3.4(supports-color@8.1.1)
|
||||||
istanbul-lib-coverage: 2.0.5
|
istanbul-lib-coverage: 3.2.0
|
||||||
make-dir: 2.1.0
|
|
||||||
rimraf: 2.7.1
|
|
||||||
source-map: 0.6.1
|
source-map: 0.6.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -13171,30 +13178,20 @@ packages:
|
|||||||
which: 1.3.1
|
which: 1.3.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/karma-coverage-istanbul-reporter@3.0.3:
|
/karma-coverage@2.2.1:
|
||||||
resolution: {integrity: sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==}
|
resolution: {integrity: sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==}
|
||||||
|
engines: {node: '>=10.0.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
istanbul-lib-coverage: 3.2.0
|
istanbul-lib-coverage: 3.2.0
|
||||||
|
istanbul-lib-instrument: 5.2.1
|
||||||
istanbul-lib-report: 3.0.0
|
istanbul-lib-report: 3.0.0
|
||||||
istanbul-lib-source-maps: 3.0.6
|
istanbul-lib-source-maps: 4.0.1
|
||||||
istanbul-reports: 3.1.5
|
istanbul-reports: 3.1.5
|
||||||
minimatch: 3.1.2
|
minimatch: 3.1.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/karma-jasmine-html-reporter@2.0.0(jasmine-core@4.5.0)(karma-jasmine@5.1.0)(karma@6.4.1):
|
|
||||||
resolution: {integrity: sha512-SB8HNNiazAHXM1vGEzf8/tSyEhkfxuDdhYdPBX2Mwgzt0OuF2gicApQ+uvXLID/gXyJQgvrM9+1/2SxZFUUDIA==}
|
|
||||||
peerDependencies:
|
|
||||||
jasmine-core: ^4.0.0
|
|
||||||
karma: ^6.0.0
|
|
||||||
karma-jasmine: ^5.0.0
|
|
||||||
dependencies:
|
|
||||||
jasmine-core: 4.5.0
|
|
||||||
karma: 6.4.1
|
|
||||||
karma-jasmine: 5.1.0(karma@6.4.1)
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/karma-jasmine@5.1.0(karma@6.4.1):
|
/karma-jasmine@5.1.0(karma@6.4.1):
|
||||||
resolution: {integrity: sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==}
|
resolution: {integrity: sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -13205,6 +13202,17 @@ packages:
|
|||||||
karma: 6.4.1
|
karma: 6.4.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/karma-junit-reporter@2.0.1(karma@6.4.1):
|
||||||
|
resolution: {integrity: sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw==}
|
||||||
|
engines: {node: '>= 8'}
|
||||||
|
peerDependencies:
|
||||||
|
karma: '>=0.9'
|
||||||
|
dependencies:
|
||||||
|
karma: 6.4.1
|
||||||
|
path-is-absolute: 1.0.1
|
||||||
|
xmlbuilder: 12.0.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/karma-mocha-reporter@2.2.5(karma@6.4.1):
|
/karma-mocha-reporter@2.2.5(karma@6.4.1):
|
||||||
resolution: {integrity: sha512-Hr6nhkIp0GIJJrvzY8JFeHpQZNseuIakGac4bpw8K1+5F0tLb6l7uvXRa8mt2Z+NVwYgCct4QAfp2R2QP6o00w==}
|
resolution: {integrity: sha512-Hr6nhkIp0GIJJrvzY8JFeHpQZNseuIakGac4bpw8K1+5F0tLb6l7uvXRa8mt2Z+NVwYgCct4QAfp2R2QP6o00w==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -13725,10 +13733,12 @@ packages:
|
|||||||
/make-dir@2.1.0:
|
/make-dir@2.1.0:
|
||||||
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
|
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
requiresBuild: true
|
||||||
dependencies:
|
dependencies:
|
||||||
pify: 4.0.1
|
pify: 4.0.1
|
||||||
semver: 5.7.1
|
semver: 5.7.1
|
||||||
dev: true
|
dev: true
|
||||||
|
optional: true
|
||||||
|
|
||||||
/make-dir@3.1.0:
|
/make-dir@3.1.0:
|
||||||
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
|
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
|
||||||
@@ -18958,6 +18968,11 @@ packages:
|
|||||||
engines: {node: '>=4.0'}
|
engines: {node: '>=4.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/xmlbuilder@12.0.0:
|
||||||
|
resolution: {integrity: sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==}
|
||||||
|
engines: {node: '>=6.0'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/xmlbuilder@15.1.1:
|
/xmlbuilder@15.1.1:
|
||||||
resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==}
|
resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==}
|
||||||
engines: {node: '>=8.0'}
|
engines: {node: '>=8.0'}
|
||||||
|
|||||||
Reference in New Issue
Block a user