@angular-helpers/security 21.6.0 → 21.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, inject, PLATFORM_ID, InjectionToken, DestroyRef, signal, computed, NgZone, Injector, makeEnvironmentProviders } from '@angular/core';
|
|
3
|
-
import { injectWorkerPool } from '@angular-helpers/core';
|
|
3
|
+
import { injectPlatform, injectWorkerPool } from '@angular-helpers/core';
|
|
4
4
|
import { isPlatformBrowser, DOCUMENT } from '@angular/common';
|
|
5
5
|
import { Observable, Subject, fromEvent, merge } from 'rxjs';
|
|
6
6
|
import { throttleTime } from 'rxjs/operators';
|
|
@@ -223,10 +223,10 @@ class RegexAnalyzerService {
|
|
|
223
223
|
const levels = { low: 1, medium: 2, high: 3, critical: 4 };
|
|
224
224
|
return levels[risk] || 0;
|
|
225
225
|
}
|
|
226
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
227
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
226
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RegexAnalyzerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
227
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RegexAnalyzerService });
|
|
228
228
|
}
|
|
229
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RegexAnalyzerService, decorators: [{
|
|
230
230
|
type: Injectable
|
|
231
231
|
}] });
|
|
232
232
|
|
|
@@ -237,7 +237,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImpo
|
|
|
237
237
|
class RegexWorkerPoolService {
|
|
238
238
|
pool;
|
|
239
239
|
constructor() {
|
|
240
|
-
|
|
240
|
+
const { document } = injectPlatform();
|
|
241
|
+
const workerUrl = document
|
|
242
|
+
? new URL('assets/workers/regex.worker.js', document.baseURI)
|
|
243
|
+
: new URL('assets/workers/regex.worker.js', 'https://example.com'); // SSR: never instantiated
|
|
244
|
+
this.pool = injectWorkerPool(workerUrl, {
|
|
241
245
|
defaultTimeout: 5000,
|
|
242
246
|
fallbackExecutor: async (type, data) => {
|
|
243
247
|
if (type !== 'regex-test')
|
|
@@ -287,10 +291,10 @@ class RegexWorkerPoolService {
|
|
|
287
291
|
ngOnDestroy() {
|
|
288
292
|
this.pool.terminate();
|
|
289
293
|
}
|
|
290
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
291
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
294
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RegexWorkerPoolService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
295
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RegexWorkerPoolService });
|
|
292
296
|
}
|
|
293
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
297
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RegexWorkerPoolService, decorators: [{
|
|
294
298
|
type: Injectable
|
|
295
299
|
}], ctorParameters: () => [] });
|
|
296
300
|
|
|
@@ -357,10 +361,10 @@ class RegexSecurityService {
|
|
|
357
361
|
safeMode: config.safeMode || false,
|
|
358
362
|
};
|
|
359
363
|
}
|
|
360
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
361
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
364
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RegexSecurityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
365
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RegexSecurityService });
|
|
362
366
|
}
|
|
363
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
367
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RegexSecurityService, decorators: [{
|
|
364
368
|
type: Injectable
|
|
365
369
|
}] });
|
|
366
370
|
|
|
@@ -479,10 +483,10 @@ class WebCryptoService {
|
|
|
479
483
|
hmacHashName(algorithm) {
|
|
480
484
|
return algorithm.replace('HMAC-', '');
|
|
481
485
|
}
|
|
482
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
483
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
486
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: WebCryptoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
487
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: WebCryptoService });
|
|
484
488
|
}
|
|
485
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
489
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: WebCryptoService, decorators: [{
|
|
486
490
|
type: Injectable
|
|
487
491
|
}] });
|
|
488
492
|
|
|
@@ -670,10 +674,10 @@ class SecureStorageService {
|
|
|
670
674
|
base64ToBytes(base64) {
|
|
671
675
|
return Uint8Array.from(atob(base64), (c) => c.charCodeAt(0));
|
|
672
676
|
}
|
|
673
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
674
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
677
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: SecureStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
678
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: SecureStorageService });
|
|
675
679
|
}
|
|
676
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
680
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: SecureStorageService, decorators: [{
|
|
677
681
|
type: Injectable
|
|
678
682
|
}], ctorParameters: () => [] });
|
|
679
683
|
|
|
@@ -830,7 +834,7 @@ function sanitizeUrlString(input, allowedSchemes = ['http:', 'https:']) {
|
|
|
830
834
|
function isUrlSafe(input, allowedSchemes = ['http:', 'https:']) {
|
|
831
835
|
return sanitizeUrlString(input, allowedSchemes) !== null;
|
|
832
836
|
}
|
|
833
|
-
const SCRIPT_INJECTION_PATTERN = /<\s*script\b|javascript:|on\w
|
|
837
|
+
const SCRIPT_INJECTION_PATTERN = /<\s*script\b|javascript:|on\w{1,30}\s*=/i;
|
|
834
838
|
/**
|
|
835
839
|
* Lightweight check for common script-injection sentinels. Complements (does NOT replace)
|
|
836
840
|
* a full HTML sanitizer or Content Security Policy.
|
|
@@ -1019,10 +1023,10 @@ class InputSanitizerService {
|
|
|
1019
1023
|
return null;
|
|
1020
1024
|
}
|
|
1021
1025
|
}
|
|
1022
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1023
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1026
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: InputSanitizerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1027
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: InputSanitizerService });
|
|
1024
1028
|
}
|
|
1025
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1029
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: InputSanitizerService, decorators: [{
|
|
1026
1030
|
type: Injectable
|
|
1027
1031
|
}], ctorParameters: () => [] });
|
|
1028
1032
|
|
|
@@ -1054,10 +1058,10 @@ class PasswordStrengthService {
|
|
|
1054
1058
|
assess(password) {
|
|
1055
1059
|
return assessPasswordStrength(password);
|
|
1056
1060
|
}
|
|
1057
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1058
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1061
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: PasswordStrengthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1062
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: PasswordStrengthService });
|
|
1059
1063
|
}
|
|
1060
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1064
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: PasswordStrengthService, decorators: [{
|
|
1061
1065
|
type: Injectable
|
|
1062
1066
|
}] });
|
|
1063
1067
|
|
|
@@ -1169,10 +1173,10 @@ class JwtService {
|
|
|
1169
1173
|
}
|
|
1170
1174
|
return payload[name] ?? null;
|
|
1171
1175
|
}
|
|
1172
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1173
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1176
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: JwtService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1177
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: JwtService });
|
|
1174
1178
|
}
|
|
1175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: JwtService, decorators: [{
|
|
1176
1180
|
type: Injectable
|
|
1177
1181
|
}] });
|
|
1178
1182
|
function base64UrlDecode(input) {
|
|
@@ -1315,10 +1319,10 @@ class SensitiveClipboardService {
|
|
|
1315
1319
|
// ignore
|
|
1316
1320
|
}
|
|
1317
1321
|
}
|
|
1318
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1319
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1322
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: SensitiveClipboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1323
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: SensitiveClipboardService });
|
|
1320
1324
|
}
|
|
1321
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: SensitiveClipboardService, decorators: [{
|
|
1322
1326
|
type: Injectable
|
|
1323
1327
|
}], ctorParameters: () => [] });
|
|
1324
1328
|
|
|
@@ -1391,10 +1395,10 @@ class HibpService {
|
|
|
1391
1395
|
const match = findSuffixMatch(body, suffix);
|
|
1392
1396
|
return match > 0 ? { leaked: true, count: match } : { leaked: false, count: 0 };
|
|
1393
1397
|
}
|
|
1394
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1395
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1398
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: HibpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1399
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: HibpService, providedIn: 'root' });
|
|
1396
1400
|
}
|
|
1397
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: HibpService, decorators: [{
|
|
1398
1402
|
type: Injectable,
|
|
1399
1403
|
args: [{
|
|
1400
1404
|
providedIn: 'root',
|
|
@@ -1617,10 +1621,10 @@ class RateLimiterService {
|
|
|
1617
1621
|
}, timeToExpiryMs);
|
|
1618
1622
|
}
|
|
1619
1623
|
}
|
|
1620
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1621
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1624
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RateLimiterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1625
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RateLimiterService });
|
|
1622
1626
|
}
|
|
1623
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1627
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RateLimiterService, decorators: [{
|
|
1624
1628
|
type: Injectable
|
|
1625
1629
|
}], ctorParameters: () => [] });
|
|
1626
1630
|
function validatePolicy(policy) {
|
|
@@ -1699,10 +1703,10 @@ class CsrfService {
|
|
|
1699
1703
|
get nativeStorage() {
|
|
1700
1704
|
return this.storageTarget === 'session' ? sessionStorage : localStorage;
|
|
1701
1705
|
}
|
|
1702
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1703
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1706
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: CsrfService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1707
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: CsrfService });
|
|
1704
1708
|
}
|
|
1705
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1709
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: CsrfService, decorators: [{
|
|
1706
1710
|
type: Injectable
|
|
1707
1711
|
}], ctorParameters: () => [] });
|
|
1708
1712
|
const DEFAULT_HEADER_NAME = 'X-CSRF-Token';
|
|
@@ -1742,9 +1746,12 @@ class SessionIdleService {
|
|
|
1742
1746
|
document = inject(DOCUMENT);
|
|
1743
1747
|
injector = inject(Injector);
|
|
1744
1748
|
destroyRef = inject(DestroyRef);
|
|
1745
|
-
_isIdle = signal(false,
|
|
1746
|
-
|
|
1747
|
-
|
|
1749
|
+
_isIdle = signal(false, /* @ts-ignore */
|
|
1750
|
+
...(ngDevMode ? [{ debugName: "_isIdle" }] : /* istanbul ignore next */ []));
|
|
1751
|
+
_isWarning = signal(false, /* @ts-ignore */
|
|
1752
|
+
...(ngDevMode ? [{ debugName: "_isWarning" }] : /* istanbul ignore next */ []));
|
|
1753
|
+
_timeRemaining = signal(null, /* @ts-ignore */
|
|
1754
|
+
...(ngDevMode ? [{ debugName: "_timeRemaining" }] : /* istanbul ignore next */ []));
|
|
1748
1755
|
_timeoutSubject = new Subject();
|
|
1749
1756
|
isIdle = this._isIdle.asReadonly();
|
|
1750
1757
|
isWarning = this._isWarning.asReadonly();
|
|
@@ -1838,10 +1845,10 @@ class SessionIdleService {
|
|
|
1838
1845
|
this.config = null;
|
|
1839
1846
|
});
|
|
1840
1847
|
}
|
|
1841
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1842
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1848
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: SessionIdleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1849
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: SessionIdleService, providedIn: 'root' });
|
|
1843
1850
|
}
|
|
1844
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1851
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: SessionIdleService, decorators: [{
|
|
1845
1852
|
type: Injectable,
|
|
1846
1853
|
args: [{
|
|
1847
1854
|
providedIn: 'root',
|
|
@@ -1855,7 +1862,8 @@ class SecureMessageService {
|
|
|
1855
1862
|
document = inject(DOCUMENT);
|
|
1856
1863
|
crypto = inject(WebCryptoService);
|
|
1857
1864
|
config = null;
|
|
1858
|
-
_lastMessage = signal(null,
|
|
1865
|
+
_lastMessage = signal(null, /* @ts-ignore */
|
|
1866
|
+
...(ngDevMode ? [{ debugName: "_lastMessage" }] : /* istanbul ignore next */ []));
|
|
1859
1867
|
_messages$ = new Subject();
|
|
1860
1868
|
messageHandler = null;
|
|
1861
1869
|
get targetWindow() {
|
|
@@ -1941,10 +1949,10 @@ class SecureMessageService {
|
|
|
1941
1949
|
this._messages$.next(message);
|
|
1942
1950
|
});
|
|
1943
1951
|
}
|
|
1944
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1945
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1952
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: SecureMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1953
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: SecureMessageService, providedIn: 'root' });
|
|
1946
1954
|
}
|
|
1947
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1955
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: SecureMessageService, decorators: [{
|
|
1948
1956
|
type: Injectable,
|
|
1949
1957
|
args: [{
|
|
1950
1958
|
providedIn: 'root',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular-helpers/security",
|
|
3
|
-
"version": "21.6.
|
|
3
|
+
"version": "21.6.2",
|
|
4
4
|
"description": "Angular security helpers for preventing ReDoS and other security vulnerabilities",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@angular/common": "^
|
|
41
|
-
"@angular/core": "^
|
|
42
|
-
"@angular/forms": "^
|
|
40
|
+
"@angular/common": "^22.0.0",
|
|
41
|
+
"@angular/core": "^22.0.0",
|
|
42
|
+
"@angular/forms": "^22.0.0",
|
|
43
43
|
"rxjs": "^7.0.0 || ^8.0.0"
|
|
44
44
|
},
|
|
45
45
|
"peerDependenciesMeta": {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@angular-helpers/core": "
|
|
51
|
+
"@angular-helpers/core": "workspace:*",
|
|
52
52
|
"tslib": "^2.0.0"
|
|
53
53
|
},
|
|
54
54
|
"module": "fesm2022/angular-helpers-security.mjs",
|