jest-preset-angular 12.2.0 → 12.2.1
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.
- package/CHANGELOG.md +9 -0
- package/build/ngtsc/reflection/src/type_to_value.js +3 -1
- package/build/ngtsc/reflection/src/typescript.js +13 -10
- package/build/ngtsc/ts_compatibility/index.js +4 -0
- package/build/transformers/downlevel_decorators_transform/downlevel_decorators_transform.js +34 -16
- package/build/transformers/replace-resources.js +42 -4
- package/package.json +20 -20
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## [12.2.1](https://github.com/thymikee/jest-preset-angular/compare/v12.2.0...v12.2.1) (2022-08-28)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **transformers:** adopt ts 4.8 changes for `replace-resource` ([#1739](https://github.com/thymikee/jest-preset-angular/issues/1739)) ([aea7205](https://github.com/thymikee/jest-preset-angular/commit/aea7205afb9622f2ba09a032505b8dbf5c7105c1)), closes [#1732](https://github.com/thymikee/jest-preset-angular/issues/1732)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
1
10
|
# [12.2.0](https://github.com/thymikee/jest-preset-angular/compare/v12.1.0...v12.2.0) (2022-07-14)
|
|
2
11
|
|
|
3
12
|
|
|
@@ -160,7 +160,9 @@ function entityNameToValue(node) {
|
|
|
160
160
|
return left !== null ? typescript_1.default.factory.createPropertyAccessExpression(left, node.right) : null;
|
|
161
161
|
}
|
|
162
162
|
else if (typescript_1.default.isIdentifier(node)) {
|
|
163
|
-
|
|
163
|
+
const clone = typescript_1.default.setOriginalNode(typescript_1.default.factory.createIdentifier(node.text), node);
|
|
164
|
+
clone.parent = node.parent;
|
|
165
|
+
return clone;
|
|
164
166
|
}
|
|
165
167
|
else {
|
|
166
168
|
return null;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.reflectObjectLiteral = exports.findMember = exports.filterToMembersWithDecorator = exports.reflectTypeEntityToDeclaration = exports.reflectIdentifierOfDeclaration = exports.reflectNameOfDeclaration = exports.TypeScriptReflectionHost = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const typescript_1 = tslib_1.__importDefault(require("typescript"));
|
|
6
|
+
const ts_compatibility_1 = require("../../ts_compatibility");
|
|
6
7
|
const host_1 = require("./host");
|
|
7
8
|
const type_to_value_1 = require("./type_to_value");
|
|
8
9
|
const util_1 = require("./util");
|
|
@@ -11,11 +12,11 @@ class TypeScriptReflectionHost {
|
|
|
11
12
|
this.checker = checker;
|
|
12
13
|
}
|
|
13
14
|
getDecoratorsOfDeclaration(declaration) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
const decorators = (0, ts_compatibility_1.getDecorators)(declaration);
|
|
16
|
+
return decorators !== undefined && decorators.length ?
|
|
17
|
+
decorators.map(decorator => this._reflectDecorator(decorator))
|
|
18
|
+
.filter((dec) => dec !== null) :
|
|
19
|
+
null;
|
|
19
20
|
}
|
|
20
21
|
getMembersOfClass(clazz) {
|
|
21
22
|
const tsClazz = castDeclarationToClassOrDie(clazz);
|
|
@@ -149,8 +150,9 @@ class TypeScriptReflectionHost {
|
|
|
149
150
|
if (typescript_1.default.isVariableDeclaration(decl) && typescript_1.default.isVariableDeclarationList(decl.parent)) {
|
|
150
151
|
topLevel = decl.parent.parent;
|
|
151
152
|
}
|
|
152
|
-
|
|
153
|
-
|
|
153
|
+
const modifiers = (0, ts_compatibility_1.getModifiers)(topLevel);
|
|
154
|
+
if (modifiers !== undefined &&
|
|
155
|
+
modifiers.some(modifier => modifier.kind === typescript_1.default.SyntaxKind.ExportKeyword)) {
|
|
154
156
|
return true;
|
|
155
157
|
}
|
|
156
158
|
if (topLevel.parent === undefined || !typescript_1.default.isSourceFile(topLevel.parent)) {
|
|
@@ -310,8 +312,8 @@ class TypeScriptReflectionHost {
|
|
|
310
312
|
return null;
|
|
311
313
|
}
|
|
312
314
|
const decorators = this.getDecoratorsOfDeclaration(node);
|
|
313
|
-
const
|
|
314
|
-
|
|
315
|
+
const modifiers = (0, ts_compatibility_1.getModifiers)(node);
|
|
316
|
+
const isStatic = modifiers !== undefined && modifiers.some(mod => mod.kind === typescript_1.default.SyntaxKind.StaticKeyword);
|
|
315
317
|
return {
|
|
316
318
|
node,
|
|
317
319
|
implementation: node,
|
|
@@ -499,7 +501,8 @@ function getFarLeftIdentifier(propertyAccess) {
|
|
|
499
501
|
}
|
|
500
502
|
function getContainingImportDeclaration(node) {
|
|
501
503
|
return typescript_1.default.isImportSpecifier(node) ? node.parent.parent.parent :
|
|
502
|
-
typescript_1.default.isNamespaceImport(node) ? node.parent.parent :
|
|
504
|
+
typescript_1.default.isNamespaceImport(node) ? node.parent.parent :
|
|
505
|
+
null;
|
|
503
506
|
}
|
|
504
507
|
function getExportedName(decl, originalId) {
|
|
505
508
|
return typescript_1.default.isImportSpecifier(decl) ?
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getDownlevelDecoratorsTransform = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const typescript_1 = tslib_1.__importDefault(require("typescript"));
|
|
6
|
+
const ts_compatibility_1 = require("../../ngtsc/ts_compatibility");
|
|
6
7
|
const patch_alias_reference_resolution_1 = require("./patch_alias_reference_resolution");
|
|
7
8
|
function isAngularDecorator(decorator, isCore) {
|
|
8
9
|
return isCore || (decorator.import !== null && decorator.import.from === '@angular/core');
|
|
@@ -61,7 +62,7 @@ function createCtorParametersClassProperty(diagnostics, entityNameToExpression,
|
|
|
61
62
|
params.push(typescript_1.default.factory.createObjectLiteralExpression(members));
|
|
62
63
|
}
|
|
63
64
|
const initializer = typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), typescript_1.default.factory.createArrayLiteralExpression(params, true));
|
|
64
|
-
const ctorProp =
|
|
65
|
+
const ctorProp = (0, ts_compatibility_1.createPropertyDeclaration)([typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.StaticKeyword)], 'ctorParameters', undefined, undefined, initializer);
|
|
65
66
|
if (isClosureCompilerEnabled) {
|
|
66
67
|
typescript_1.default.setSyntheticLeadingComments(ctorProp, [
|
|
67
68
|
{
|
|
@@ -145,7 +146,7 @@ function getDownlevelDecoratorsTransform(typeChecker, host, diagnostics, isCore,
|
|
|
145
146
|
function createDecoratorClassProperty(decoratorList) {
|
|
146
147
|
const modifier = typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.StaticKeyword);
|
|
147
148
|
const initializer = typescript_1.default.factory.createArrayLiteralExpression(decoratorList, true);
|
|
148
|
-
const prop =
|
|
149
|
+
const prop = (0, ts_compatibility_1.createPropertyDeclaration)([modifier], 'decorators', undefined, undefined, initializer);
|
|
149
150
|
addJSDocTypeAnnotation(prop, DECORATOR_INVOCATION_JSDOC_TYPE);
|
|
150
151
|
return prop;
|
|
151
152
|
}
|
|
@@ -155,7 +156,7 @@ function getDownlevelDecoratorsTransform(typeChecker, host, diagnostics, isCore,
|
|
|
155
156
|
entries.push(typescript_1.default.factory.createPropertyAssignment(name, typescript_1.default.factory.createArrayLiteralExpression(decorators.map(deco => extractMetadataFromSingleDecorator(deco, diagnostics)))));
|
|
156
157
|
}
|
|
157
158
|
const initializer = typescript_1.default.factory.createObjectLiteralExpression(entries, true);
|
|
158
|
-
const prop =
|
|
159
|
+
const prop = (0, ts_compatibility_1.createPropertyDeclaration)([typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.StaticKeyword)], 'propDecorators', undefined, undefined, initializer);
|
|
159
160
|
addJSDocTypeAnnotation(prop, `!Object<string, ${DECORATOR_INVOCATION_JSDOC_TYPE}>`);
|
|
160
161
|
return prop;
|
|
161
162
|
}
|
|
@@ -178,10 +179,10 @@ function getDownlevelDecoratorsTransform(typeChecker, host, diagnostics, isCore,
|
|
|
178
179
|
if ((0, patch_alias_reference_resolution_1.isAliasImportDeclaration)(decl)) {
|
|
179
180
|
referencedParameterTypes.add(decl);
|
|
180
181
|
if (decl.name !== undefined) {
|
|
181
|
-
return typescript_1.default.
|
|
182
|
+
return typescript_1.default.setOriginalNode(typescript_1.default.factory.createIdentifier(decl.name.text), decl.name);
|
|
182
183
|
}
|
|
183
184
|
}
|
|
184
|
-
return typescript_1.default.
|
|
185
|
+
return typescript_1.default.setOriginalNode(typescript_1.default.factory.createIdentifier(name.text), name);
|
|
185
186
|
}
|
|
186
187
|
function transformClassElement(element) {
|
|
187
188
|
element = typescript_1.default.visitEachChild(element, decoratorDownlevelVisitor, context);
|
|
@@ -209,12 +210,10 @@ function getDownlevelDecoratorsTransform(typeChecker, host, diagnostics, isCore,
|
|
|
209
210
|
});
|
|
210
211
|
return [undefined, element, []];
|
|
211
212
|
}
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
undefined;
|
|
217
|
-
return [name, mutable, toLower];
|
|
213
|
+
const modifiers = decoratorsToKeep.length ?
|
|
214
|
+
typescript_1.default.setTextRange(typescript_1.default.factory.createNodeArray((0, ts_compatibility_1.combineModifiers)(decoratorsToKeep, (0, ts_compatibility_1.getModifiers)(element))), element.modifiers) :
|
|
215
|
+
(0, ts_compatibility_1.getModifiers)(element);
|
|
216
|
+
return [element.name.text, cloneClassElementWithModifiers(element, modifiers), toLower];
|
|
218
217
|
}
|
|
219
218
|
function transformConstructor(ctor) {
|
|
220
219
|
ctor = typescript_1.default.visitEachChild(ctor, decoratorDownlevelVisitor, context);
|
|
@@ -237,14 +236,13 @@ function getDownlevelDecoratorsTransform(typeChecker, host, diagnostics, isCore,
|
|
|
237
236
|
paramInfo.type = param.type;
|
|
238
237
|
}
|
|
239
238
|
parametersInfo.push(paramInfo);
|
|
240
|
-
const newParam =
|
|
239
|
+
const newParam = (0, ts_compatibility_1.updateParameterDeclaration)(param, (0, ts_compatibility_1.combineModifiers)(decoratorsToKeep.length ? decoratorsToKeep : undefined, (0, ts_compatibility_1.getModifiers)(param)), param.dotDotDotToken, param.name, param.questionToken, param.type, param.initializer);
|
|
241
240
|
newParameters.push(newParam);
|
|
242
241
|
}
|
|
243
|
-
const updated =
|
|
242
|
+
const updated = (0, ts_compatibility_1.updateConstructorDeclaration)(ctor, (0, ts_compatibility_1.getModifiers)(ctor), newParameters, ctor.body);
|
|
244
243
|
return [updated, parametersInfo];
|
|
245
244
|
}
|
|
246
245
|
function transformClassDeclaration(classDecl) {
|
|
247
|
-
classDecl = typescript_1.default.getMutableClone(classDecl);
|
|
248
246
|
const newMembers = [];
|
|
249
247
|
const decoratedProperties = new Map();
|
|
250
248
|
let classParameters = null;
|
|
@@ -274,7 +272,7 @@ function getDownlevelDecoratorsTransform(typeChecker, host, diagnostics, isCore,
|
|
|
274
272
|
}
|
|
275
273
|
newMembers.push(typescript_1.default.visitEachChild(member, decoratorDownlevelVisitor, context));
|
|
276
274
|
}
|
|
277
|
-
const decoratorsToKeep = new Set(
|
|
275
|
+
const decoratorsToKeep = new Set((0, ts_compatibility_1.getDecorators)(classDecl));
|
|
278
276
|
const possibleAngularDecorators = host.getDecoratorsOfDeclaration(classDecl) || [];
|
|
279
277
|
let hasAngularDecorator = false;
|
|
280
278
|
const decoratorsToLower = [];
|
|
@@ -301,7 +299,7 @@ function getDownlevelDecoratorsTransform(typeChecker, host, diagnostics, isCore,
|
|
|
301
299
|
newMembers.push(createPropDecoratorsClassProperty(diagnostics, decoratedProperties));
|
|
302
300
|
}
|
|
303
301
|
const members = typescript_1.default.setTextRange(typescript_1.default.factory.createNodeArray(newMembers, classDecl.members.hasTrailingComma), classDecl.members);
|
|
304
|
-
return
|
|
302
|
+
return (0, ts_compatibility_1.createClassDeclaration)((0, ts_compatibility_1.combineModifiers)(decoratorsToKeep.size ? Array.from(decoratorsToKeep) : undefined, (0, ts_compatibility_1.getModifiers)(classDecl)), classDecl.name, classDecl.typeParameters, classDecl.heritageClauses, members);
|
|
305
303
|
}
|
|
306
304
|
function decoratorDownlevelVisitor(node) {
|
|
307
305
|
if (typescript_1.default.isClassDeclaration(node)) {
|
|
@@ -315,3 +313,23 @@ function getDownlevelDecoratorsTransform(typeChecker, host, diagnostics, isCore,
|
|
|
315
313
|
};
|
|
316
314
|
}
|
|
317
315
|
exports.getDownlevelDecoratorsTransform = getDownlevelDecoratorsTransform;
|
|
316
|
+
function cloneClassElementWithModifiers(node, modifiers) {
|
|
317
|
+
let clone;
|
|
318
|
+
if (typescript_1.default.isMethodDeclaration(node)) {
|
|
319
|
+
clone = (0, ts_compatibility_1.createMethodDeclaration)(modifiers, node.asteriskToken, node.name, node.questionToken, node.typeParameters, node.parameters, node.type, node.body);
|
|
320
|
+
}
|
|
321
|
+
else if (typescript_1.default.isPropertyDeclaration(node)) {
|
|
322
|
+
clone = (0, ts_compatibility_1.createPropertyDeclaration)(modifiers, node.name, node.questionToken, node.type, node.initializer);
|
|
323
|
+
}
|
|
324
|
+
else if (typescript_1.default.isGetAccessor(node)) {
|
|
325
|
+
clone =
|
|
326
|
+
(0, ts_compatibility_1.createGetAccessorDeclaration)(modifiers, node.name, node.parameters, node.type, node.body);
|
|
327
|
+
}
|
|
328
|
+
else if (typescript_1.default.isSetAccessor(node)) {
|
|
329
|
+
clone = (0, ts_compatibility_1.createSetAccessorDeclaration)(modifiers, node.name, node.parameters, node.body);
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
throw new Error(`Unsupported decorated member with kind ${typescript_1.default.SyntaxKind[node.kind]}`);
|
|
333
|
+
}
|
|
334
|
+
return typescript_1.default.setOriginalNode(clone, node);
|
|
335
|
+
}
|
|
@@ -4,6 +4,19 @@ exports.replaceResources = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const typescript_1 = tslib_1.__importDefault(require("typescript"));
|
|
6
6
|
const constants_1 = require("../constants");
|
|
7
|
+
const isAfterVersion = (targetMajor, targetMinor) => {
|
|
8
|
+
const [major, minor] = typescript_1.default.versionMajorMinor.split('.').map((part) => parseInt(part));
|
|
9
|
+
if (major < targetMajor) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
else if (major > targetMajor) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return minor >= targetMinor;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const IS_TS_48 = isAfterVersion(4, 8);
|
|
7
20
|
const shouldTransform = (fileName) => !fileName.endsWith('.ngfactory.ts') && !fileName.endsWith('.ngstyle.ts');
|
|
8
21
|
function replaceResources({ program }) {
|
|
9
22
|
return (context) => {
|
|
@@ -13,10 +26,7 @@ function replaceResources({ program }) {
|
|
|
13
26
|
const nodeFactory = context.factory;
|
|
14
27
|
const visitNode = (node) => {
|
|
15
28
|
if (typescript_1.default.isClassDeclaration(node)) {
|
|
16
|
-
|
|
17
|
-
? visitDecorator(nodeFactory, node, typeChecker, resourceImportDeclarations, moduleKind)
|
|
18
|
-
: node);
|
|
19
|
-
return nodeFactory.updateClassDeclaration(node, decorators, node.modifiers, node.name, node.typeParameters, node.heritageClauses, node.members);
|
|
29
|
+
return visitClassDeclaration(nodeFactory, typeChecker, node, resourceImportDeclarations, moduleKind);
|
|
20
30
|
}
|
|
21
31
|
return typescript_1.default.visitEachChild(node, visitNode, context);
|
|
22
32
|
};
|
|
@@ -33,6 +43,34 @@ function replaceResources({ program }) {
|
|
|
33
43
|
};
|
|
34
44
|
}
|
|
35
45
|
exports.replaceResources = replaceResources;
|
|
46
|
+
function visitClassDeclaration(nodeFactory, typeChecker, node, resourceImportDeclarations, moduleKind) {
|
|
47
|
+
var _a;
|
|
48
|
+
let decorators;
|
|
49
|
+
let modifiers;
|
|
50
|
+
if (IS_TS_48) {
|
|
51
|
+
(_a = node.modifiers) === null || _a === void 0 ? void 0 : _a.forEach((modifier) => {
|
|
52
|
+
if (typescript_1.default.isDecorator(modifier)) {
|
|
53
|
+
decorators !== null && decorators !== void 0 ? decorators : (decorators = []);
|
|
54
|
+
decorators.push(modifier);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
modifiers = modifiers !== null && modifiers !== void 0 ? modifiers : (modifiers = []);
|
|
58
|
+
modifiers.push(modifier);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
decorators = node.decorators;
|
|
64
|
+
modifiers = node.modifiers;
|
|
65
|
+
}
|
|
66
|
+
if (!decorators || !decorators.length) {
|
|
67
|
+
return node;
|
|
68
|
+
}
|
|
69
|
+
decorators = decorators.map((current) => visitDecorator(nodeFactory, current, typeChecker, resourceImportDeclarations, moduleKind));
|
|
70
|
+
return IS_TS_48
|
|
71
|
+
? nodeFactory.updateClassDeclaration(node, [...decorators, ...(modifiers !== null && modifiers !== void 0 ? modifiers : [])], node.name, node.typeParameters, node.heritageClauses, node.members)
|
|
72
|
+
: nodeFactory.updateClassDeclaration(node, decorators, modifiers, node.name, node.typeParameters, node.heritageClauses, node.members);
|
|
73
|
+
}
|
|
36
74
|
function visitDecorator(nodeFactory, node, typeChecker, resourceImportDeclarations, moduleKind) {
|
|
37
75
|
if (!isComponentDecorator(node, typeChecker)) {
|
|
38
76
|
return node;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jest-preset-angular",
|
|
3
|
-
"version": "12.2.
|
|
3
|
+
"version": "12.2.1",
|
|
4
4
|
"description": "Jest preset configuration for Angular projects",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
@@ -62,31 +62,31 @@
|
|
|
62
62
|
"typescript": ">=4.3"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@angular-devkit/build-angular": "^14.
|
|
66
|
-
"@angular/animations": "^14.0
|
|
67
|
-
"@angular/common": "^14.0
|
|
68
|
-
"@angular/compiler": "^14.0
|
|
69
|
-
"@angular/compiler-cli": "~14.0
|
|
70
|
-
"@angular/core": "^14.0
|
|
71
|
-
"@angular/platform-browser": "^14.0
|
|
72
|
-
"@angular/platform-browser-dynamic": "^14.0
|
|
65
|
+
"@angular-devkit/build-angular": "^14.2.1",
|
|
66
|
+
"@angular/animations": "^14.2.0",
|
|
67
|
+
"@angular/common": "^14.2.0",
|
|
68
|
+
"@angular/compiler": "^14.2.0",
|
|
69
|
+
"@angular/compiler-cli": "~14.2.0",
|
|
70
|
+
"@angular/core": "^14.2.0",
|
|
71
|
+
"@angular/platform-browser": "^14.2.0",
|
|
72
|
+
"@angular/platform-browser-dynamic": "^14.2.0",
|
|
73
73
|
"@commitlint/cli": "^17.0.3",
|
|
74
74
|
"@commitlint/config-angular": "^17.0.3",
|
|
75
75
|
"@jest/transform": "^28.1.3",
|
|
76
76
|
"@jest/types": "^28.1.3",
|
|
77
|
-
"@types/jest": "^28.1.
|
|
78
|
-
"@types/node": "^16.11.
|
|
79
|
-
"@types/semver": "^7.3.
|
|
80
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
81
|
-
"@typescript-eslint/parser": "^5.
|
|
77
|
+
"@types/jest": "^28.1.8",
|
|
78
|
+
"@types/node": "^16.11.56",
|
|
79
|
+
"@types/semver": "^7.3.12",
|
|
80
|
+
"@typescript-eslint/eslint-plugin": "^5.35.1",
|
|
81
|
+
"@typescript-eslint/parser": "^5.35.1",
|
|
82
82
|
"chalk": "^4.1.2",
|
|
83
83
|
"conventional-changelog-cli": "^2.2.2",
|
|
84
84
|
"cross-env": "^7.0.3",
|
|
85
|
-
"eslint": "^8.
|
|
85
|
+
"eslint": "^8.23.0",
|
|
86
86
|
"eslint-config-prettier": "^8.5.0",
|
|
87
87
|
"eslint-plugin-import": "^2.26.0",
|
|
88
|
-
"eslint-plugin-jest": "^26.
|
|
89
|
-
"eslint-plugin-jsdoc": "^39.3.
|
|
88
|
+
"eslint-plugin-jest": "^26.9.0",
|
|
89
|
+
"eslint-plugin-jsdoc": "^39.3.6",
|
|
90
90
|
"eslint-plugin-prefer-arrow": "^1.2.3",
|
|
91
91
|
"eslint-plugin-prettier": "^4.2.1",
|
|
92
92
|
"execa": "5.1.1",
|
|
@@ -101,8 +101,8 @@
|
|
|
101
101
|
"rimraf": "^3.0.2",
|
|
102
102
|
"rxjs": "^7.5.6",
|
|
103
103
|
"tslib": "^2.4.0",
|
|
104
|
-
"typescript": "^4.
|
|
105
|
-
"zone.js": "^0.11.
|
|
104
|
+
"typescript": "^4.8.2",
|
|
105
|
+
"zone.js": "^0.11.8"
|
|
106
106
|
},
|
|
107
|
-
"packageManager": "yarn@3.2.
|
|
107
|
+
"packageManager": "yarn@3.2.3"
|
|
108
108
|
}
|