diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..143f188
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 DESIGN4 ᴾ ᴿ ᴼ
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index 8ffb2fc..0f6279f 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,108 @@
-# AngularJss
+# Angular JSS
+
+
+
+> [JSS](https://cssinjs.org/) integration with Angular
+
+[](https://npmjs.org/package/@design4pro/angular-jss)
+[](https://github.com/design4pro/angular-jss/jss/blob/master/LICENSE.md)
+[](https://npmjs.org/package/@design4pro/angular-jss)
+[](https://npmjs.org/package/@design4pro/angular-jss)
+[](https://github.com/design4pro/)
+
+## Features
+
+## Table of Contents
+
+- [Installation](#installation)
+- [Usage](#usage)
+
+## Installation
+
+Using `npm`:
+
+```sh
+npm install @design4pro/angular-jss
+```
+
+or using `yarn`:
+
+```sh
+yarn add @design4pro/angular-jss
+```
+
+## Usage
+
+Inject the `AngularJssModule` module into your root module:
+
+```ts
+import { NgModule } from '@angular/core';
+import { BrowserModule } from '@angular/platform-browser';
+import { AngularJssModule } from '@design4pro/angular-jss';
+import { AppComponent } from './app.component';
+
+@NgModule({
+ declarations: [AppComponent],
+ imports: [BrowserModule, AngularJssModule.forRoot()],
+ providers: [],
+ bootstrap: [AppComponent],
+})
+export class AppModule {}
+```
+
+Use class decorator `Styled` to add styles to your component:
+
+```ts
+import { Component } from '@angular/core';
+import { Styled, StyledProp, Theme } from '@design4pro/angular-jss';
+
+@Component({
+ selector: 'angular-jss-root',
+ templateUrl: './app.component.html',
+ styleUrls: ['./app.component.css'],
+})
+@Styled(({ css, injectGlobal }) => {
+ // global styles
+ injectGlobal({
+ '@global': {
+ ':root': {
+ '--background-color': (data: { backgroundColor: string }) => data.backgroundColor,
+ },
+ },
+ });
+
+ // element styles
+ return css(
+ (theme: Theme) => ({
+ root: {
+ color: '#fff',
+ backgroundColor: 'var(--background-color)',
+ padding: '20px',
+ direction: theme.direction,
+ },
+ }),
+ { name: 'first' }
+ );
+})
+export class AppComponent {
+ classes: any; // required to use `[ngClass]="classes.root"` in html template
+
+ @StyledProp() // mark property as styled property
+ backgroundColor = 'red';
+
+ click() {
+ this.backgroundColor = this.backgroundColor === 'red' ? 'green' : 'red';
+ }
+}
+```
+
+```html
+
+```
+
+## Config options
+
+## License
+
+[MIT](https://github.com/design4pro/angular-jss/blob/master/LICENSE.md) © DESIGN4 ᴾ ᴿ ᴼ
diff --git a/apps/webpage/src/app/app.component.html b/apps/webpage/src/app/app.component.html
index 8fd0fd3..bb11e48 100644
--- a/apps/webpage/src/app/app.component.html
+++ b/apps/webpage/src/app/app.component.html
@@ -1 +1,3 @@
-
+
+
+Change color
\ No newline at end of file
diff --git a/apps/webpage/src/app/app.component.spec.ts b/apps/webpage/src/app/app.component.spec.ts
index 3b947c7..059bb54 100644
--- a/apps/webpage/src/app/app.component.spec.ts
+++ b/apps/webpage/src/app/app.component.spec.ts
@@ -1,11 +1,10 @@
import { TestBed } from '@angular/core/testing';
import { AppComponent } from './app.component';
-import { NxWelcomeComponent } from './nx-welcome.component';
describe('AppComponent', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
- declarations: [AppComponent, NxWelcomeComponent],
+ declarations: [AppComponent],
}).compileComponents();
});
@@ -14,19 +13,4 @@ describe('AppComponent', () => {
const app = fixture.componentInstance;
expect(app).toBeTruthy();
});
-
- it(`should have as title 'angular-jss'`, () => {
- const fixture = TestBed.createComponent(AppComponent);
- const app = fixture.componentInstance;
- expect(app.title).toEqual('angular-jss');
- });
-
- it('should render title', () => {
- const fixture = TestBed.createComponent(AppComponent);
- fixture.detectChanges();
- const compiled = fixture.nativeElement as HTMLElement;
- expect(compiled.querySelector('h1')?.textContent).toContain(
- 'Welcome angular-jss'
- );
- });
});
diff --git a/apps/webpage/src/app/app.component.ts b/apps/webpage/src/app/app.component.ts
index 16b0cf3..b27fefe 100644
--- a/apps/webpage/src/app/app.component.ts
+++ b/apps/webpage/src/app/app.component.ts
@@ -1,10 +1,42 @@
import { Component } from '@angular/core';
+import { Styled, StyledProp, Theme } from '@design4pro/angular-jss';
@Component({
selector: 'angular-jss-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
+@Styled(({ css, injectGlobal }) => {
+ injectGlobal({
+ '@global': {
+ ':root': {
+ '--background-color': (data: { color: string }) => data.color,
+ },
+ },
+ });
+
+ return css(
+ (theme: Theme) => ({
+ root: {
+ color: '#fff',
+ backgroundColor: 'var(--background-color)',
+ padding: '20px',
+ direction: theme.direction,
+ },
+ }),
+ { name: 'first' }
+ );
+})
export class AppComponent {
title = 'angular-jss';
+ classes: any;
+ name?: string;
+
+ @StyledProp()
+ color = 'red';
+
+ click() {
+ this.color = this.color === 'red' ? 'green' : 'red';
+ this.name = this.color;
+ }
}
diff --git a/apps/webpage/src/app/app.module.ts b/apps/webpage/src/app/app.module.ts
index ca4cff2..2589d19 100644
--- a/apps/webpage/src/app/app.module.ts
+++ b/apps/webpage/src/app/app.module.ts
@@ -1,12 +1,11 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
-
+import { AngularJssModule } from '@design4pro/angular-jss';
import { AppComponent } from './app.component';
-import { NxWelcomeComponent } from './nx-welcome.component';
@NgModule({
- declarations: [AppComponent, NxWelcomeComponent],
- imports: [BrowserModule],
+ declarations: [AppComponent],
+ imports: [BrowserModule, AngularJssModule.forRoot()],
providers: [],
bootstrap: [AppComponent],
})
diff --git a/apps/webpage/src/app/nx-welcome.component.ts b/apps/webpage/src/app/nx-welcome.component.ts
deleted file mode 100644
index 9ca18ab..0000000
--- a/apps/webpage/src/app/nx-welcome.component.ts
+++ /dev/null
@@ -1,849 +0,0 @@
-import { Component, OnInit, ViewEncapsulation } from '@angular/core';
-
-/* eslint-disable */
-
-@Component({
- selector: 'angular-jss-nx-welcome',
- template: `
-
-
-
-
-
-
-
- Hello there,
- Welcome angular-jss 👋
-
-
-
-
-
-
-
-
-
-
-
-
Next steps
-
Here are some things you can do with Nx:
-
-
-
-
-
- Add UI library
-
- # Generate UI lib
-nx g @nrwl/angular:lib ui
-
-# Add a component
-nx g @nrwl/angular:component button --project ui
-
-
-
-
-
-
- View interactive project graph
-
- nx graph
-
-
-
-
-
-
- Run affected commands
-
- # see what's been affected by changes
-nx affected:graph
-
-# run tests for current changes
-nx affected:test
-
-# run e2e tests for current changes
-nx affected:e2e
-
-
-
-
- Carefully crafted with
-
-
-
-
-
-
- `,
- encapsulation: ViewEncapsulation.None,
-})
-export class NxWelcomeComponent implements OnInit {
- constructor() {}
-
- ngOnInit(): void {}
-}
diff --git a/apps/webpage/tsconfig.spec.json b/apps/webpage/tsconfig.spec.json
index e70b1ea..447e0e6 100644
--- a/apps/webpage/tsconfig.spec.json
+++ b/apps/webpage/tsconfig.spec.json
@@ -3,7 +3,7 @@
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
- "types": ["jest", "node"]
+ "types": ["jest", "node", "memoize-one"]
},
"files": ["src/test-setup.ts"],
"include": ["**/*.test.ts", "**/*.spec.ts", "**/*.d.ts"]
diff --git a/libs/angular-jss/CHANGELOG.md b/libs/angular-jss/CHANGELOG.md
index 48e3460..2d16cca 100644
--- a/libs/angular-jss/CHANGELOG.md
+++ b/libs/angular-jss/CHANGELOG.md
@@ -1,3 +1,19 @@
+## [1.0.1](https://github.com/design4pro/angular-jss/compare/angular-jss/v1.0.0...angular-jss/v1.0.1) (2022-03-04)
+
+### Bug Fixes
+
+- **angular-jss:** imports and types ([0ed3d7f](https://github.com/design4pro/angular-jss/commit/0ed3d7fd8e014faa80e326cf6435b1a7b9a200cd))
+
+### Miscellaneous
+
+- Merge pull request #18 from design4pro/develop ([6900d82](https://github.com/design4pro/angular-jss/commit/6900d82562f202dd999717acf99d272f536c063b)), closes [#18](https://github.com/design4pro/angular-jss/issues/18)
+- Merge pull request #12 from design4pro/dependabot/npm_and_yarn/ts-jest-27.1.3 ([8600702](https://github.com/design4pro/angular-jss/commit/8600702694e29d3ea09876c5b04686797472fec2)), closes [#12](https://github.com/design4pro/angular-jss/issues/12)
+- Merge pull request #11 from design4pro/dependabot/npm_and_yarn/angular-eslint/eslint-plugin-13.1.0 ([9d68836](https://github.com/design4pro/angular-jss/commit/9d688365bdd04e5b081f94e0aad6c207ce868fc8)), closes [#11](https://github.com/design4pro/angular-jss/issues/11)
+- Merge pull request #10 from design4pro/dependabot/npm_and_yarn/types/node-17.0.21 ([8cdda9c](https://github.com/design4pro/angular-jss/commit/8cdda9cd0475b450f2156e9a54cabe4cafe3489e)), closes [#10](https://github.com/design4pro/angular-jss/issues/10)
+- Merge pull request #9 from design4pro/dependabot/npm_and_yarn/eslint-8.10.0 ([d97f886](https://github.com/design4pro/angular-jss/commit/d97f886aa621fb29708388df59b50bfc304025c4)), closes [#9](https://github.com/design4pro/angular-jss/issues/9)
+- Merge branch 'main' into dependabot/npm_and_yarn/eslint-8.10.0 ([d17e20e](https://github.com/design4pro/angular-jss/commit/d17e20edd7dbcbf882b745da918fd33a4ee2b339))
+- Merge pull request #8 from design4pro/dependabot/npm_and_yarn/eslint-config-prettier-8.4.0 ([8e1e915](https://github.com/design4pro/angular-jss/commit/8e1e91541f4c13125a881727a4d26f0220d7672e)), closes [#8](https://github.com/design4pro/angular-jss/issues/8)
+
# 1.0.0 (2022-03-02)
### Bug Fixes
diff --git a/libs/angular-jss/README.md b/libs/angular-jss/README.md
index 6083edc..0f6279f 100644
--- a/libs/angular-jss/README.md
+++ b/libs/angular-jss/README.md
@@ -1,7 +1,108 @@
-# angular-jss
-This library was generated with [Nx](https://nx.dev).
+# Angular JSS
-## Running unit tests
+
-Run `nx test angular-jss` to execute the unit tests.
+> [JSS](https://cssinjs.org/) integration with Angular
+
+[](https://npmjs.org/package/@design4pro/angular-jss)
+[](https://github.com/design4pro/angular-jss/jss/blob/master/LICENSE.md)
+[](https://npmjs.org/package/@design4pro/angular-jss)
+[](https://npmjs.org/package/@design4pro/angular-jss)
+[](https://github.com/design4pro/)
+
+## Features
+
+## Table of Contents
+
+- [Installation](#installation)
+- [Usage](#usage)
+
+## Installation
+
+Using `npm`:
+
+```sh
+npm install @design4pro/angular-jss
+```
+
+or using `yarn`:
+
+```sh
+yarn add @design4pro/angular-jss
+```
+
+## Usage
+
+Inject the `AngularJssModule` module into your root module:
+
+```ts
+import { NgModule } from '@angular/core';
+import { BrowserModule } from '@angular/platform-browser';
+import { AngularJssModule } from '@design4pro/angular-jss';
+import { AppComponent } from './app.component';
+
+@NgModule({
+ declarations: [AppComponent],
+ imports: [BrowserModule, AngularJssModule.forRoot()],
+ providers: [],
+ bootstrap: [AppComponent],
+})
+export class AppModule {}
+```
+
+Use class decorator `Styled` to add styles to your component:
+
+```ts
+import { Component } from '@angular/core';
+import { Styled, StyledProp, Theme } from '@design4pro/angular-jss';
+
+@Component({
+ selector: 'angular-jss-root',
+ templateUrl: './app.component.html',
+ styleUrls: ['./app.component.css'],
+})
+@Styled(({ css, injectGlobal }) => {
+ // global styles
+ injectGlobal({
+ '@global': {
+ ':root': {
+ '--background-color': (data: { backgroundColor: string }) => data.backgroundColor,
+ },
+ },
+ });
+
+ // element styles
+ return css(
+ (theme: Theme) => ({
+ root: {
+ color: '#fff',
+ backgroundColor: 'var(--background-color)',
+ padding: '20px',
+ direction: theme.direction,
+ },
+ }),
+ { name: 'first' }
+ );
+})
+export class AppComponent {
+ classes: any; // required to use `[ngClass]="classes.root"` in html template
+
+ @StyledProp() // mark property as styled property
+ backgroundColor = 'red';
+
+ click() {
+ this.backgroundColor = this.backgroundColor === 'red' ? 'green' : 'red';
+ }
+}
+```
+
+```html
+
+```
+
+## Config options
+
+## License
+
+[MIT](https://github.com/design4pro/angular-jss/blob/master/LICENSE.md) © DESIGN4 ᴾ ᴿ ᴼ
diff --git a/libs/angular-jss/logo.svg b/libs/angular-jss/logo.svg
new file mode 100644
index 0000000..dc4238c
--- /dev/null
+++ b/libs/angular-jss/logo.svg
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/angular-jss/package.json b/libs/angular-jss/package.json
index 1422c39..ee6c9ad 100644
--- a/libs/angular-jss/package.json
+++ b/libs/angular-jss/package.json
@@ -1,6 +1,8 @@
{
"name": "@design4pro/angular-jss",
"version": "0.0.1",
+ "description": "Angular for JSS",
+ "license": "MIT",
"keywords": [
"angular",
"ng",
@@ -24,9 +26,9 @@
"@angular/common": "^13.2.0",
"@angular/core": "^13.2.0",
"jss": "^10.9.0",
+ "jss-plugin-camel-case": "^10.9.0",
"jss-plugin-global": "^10.9.0",
- "jss-plugin-rule-value-function": "^10.9.0",
- "memoize-one": "^6.0.0"
+ "jss-plugin-rule-value-function": "^10.9.0"
},
"dependencies": {
"tslib": "^2.3.0"
diff --git a/libs/angular-jss/src/index.ts b/libs/angular-jss/src/index.ts
index 68a173c..f34ea2f 100644
--- a/libs/angular-jss/src/index.ts
+++ b/libs/angular-jss/src/index.ts
@@ -1 +1,6 @@
+export { createGenerateId, SheetsRegistry } from 'jss';
export * from './lib/angular-jss.module';
+export * from './lib/angular-jss.service';
+export * from './lib/angular-jss.types';
+export * from './lib/ssr';
+export * from './lib/styled';
diff --git a/libs/angular-jss/src/lib/hooks/use-memo.ts b/libs/angular-jss/src/lib/hooks/use-memo.ts
index 9270b5b..c84461c 100644
--- a/libs/angular-jss/src/lib/hooks/use-memo.ts
+++ b/libs/angular-jss/src/lib/hooks/use-memo.ts
@@ -1,11 +1,35 @@
-import memoizeOne from 'memoize-one';
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+function weakMemoize(fn: any, resolver?: any) {
+ const cache = new WeakMap();
+ // instead of returning the function right away, store it in a variable...
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ const memoized = function (...args: any) {
+ // eslint-disable-next-line prefer-spread
+ const key = resolver ? resolver.apply(null, args) : args[0];
+
+ if (cache.has(key)) {
+ return cache.get(key);
+ } else {
+ // eslint-disable-next-line prefer-spread
+ const result = fn.apply(null, args);
+
+ cache.set(key, result);
+
+ return result;
+ }
+ };
+ // add a method to it to get the cache
+ memoized.getCache = () => cache;
+ // now return the function
+ return memoized;
+}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function useMemo(create: () => T, ...args: any): T {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
- const memoized: any = memoizeOne(create);
+ const memoized: any = weakMemoize(create);
return memoized(args);
}
-export default useMemo;
\ No newline at end of file
+export default useMemo;
diff --git a/libs/angular-jss/src/lib/jss/plugins.ts b/libs/angular-jss/src/lib/jss/plugins.ts
index 9fad236..843fb37 100644
--- a/libs/angular-jss/src/lib/jss/plugins.ts
+++ b/libs/angular-jss/src/lib/jss/plugins.ts
@@ -1,5 +1,6 @@
import { Plugin } from 'jss';
import global from 'jss-plugin-global';
import functions from 'jss-plugin-rule-value-function';
+import camelCase from 'jss-plugin-camel-case';
-export default (): Plugin[] => [functions(), global()];
+export default (): Plugin[] => [functions(), global(), camelCase()];
diff --git a/libs/angular-jss/src/lib/jss/utils/sheets.ts b/libs/angular-jss/src/lib/jss/utils/sheets.ts
index 5c39e6b..aabadf1 100644
--- a/libs/angular-jss/src/lib/jss/utils/sheets.ts
+++ b/libs/angular-jss/src/lib/jss/utils/sheets.ts
@@ -1,8 +1,7 @@
import { getDynamicStyles, StyleSheet, StyleSheetFactoryOptions } from 'jss';
-import warning from 'tiny-warning';
+import { Theme } from '../../angular-jss.types';
import { StyledProps } from '../../styled/styled.interface';
import { ThemeContext } from '../../theme/theme-context';
-import { Theme } from '../../angular-jss.types';
import { JssContext } from '../context';
import { getManager } from '../managers';
import { jss as defaultJss } from '../setup';
@@ -35,12 +34,13 @@ export const getStyles = (options: Options) => {
return styles;
}
- warning(
- styles.length !== 0,
- `[JSS] <${
- options.name || 'Hook'
- } />'s styles function doesn't rely on the "theme" argument. We recommend declaring styles as an object instead.`
- );
+ if (styles.length !== 0) {
+ console.warn(
+ `[JSS] <${
+ options.name || 'Hook'
+ } />'s styles function doesn't rely on the "theme" argument. We recommend declaring styles as an object instead.`
+ );
+ }
return styles(options.theme);
};
diff --git a/libs/angular-jss/src/lib/ssr/express.ts b/libs/angular-jss/src/lib/ssr/express.ts
index 5886745..31b2e70 100644
--- a/libs/angular-jss/src/lib/ssr/express.ts
+++ b/libs/angular-jss/src/lib/ssr/express.ts
@@ -1,5 +1,5 @@
import { NextFunction, Request, Response } from 'express';
-import { Jss } from '../angular-jss.service';
+import { AngularJss } from '../angular-jss.service';
export function jssSSR(name = 'jss-ssr') {
return function (req: Request, res: Response, next: NextFunction) {
@@ -7,7 +7,7 @@ export function jssSSR(name = 'jss-ssr') {
res.send = function (string: Buffer | string) {
// JSS SSR
- const sheet = Jss.sheetRegistry()?.toString({ format: false });
+ const sheet = AngularJss.sheetRegistry()?.toString({ format: false });
const css = ``;
let body = string instanceof Buffer ? string.toString() : string;
diff --git a/libs/angular-jss/src/lib/styled/internals.ts b/libs/angular-jss/src/lib/styled/internals.ts
index f768255..f1b9148 100644
--- a/libs/angular-jss/src/lib/styled/internals.ts
+++ b/libs/angular-jss/src/lib/styled/internals.ts
@@ -34,6 +34,8 @@ export function markAsDecorated(
}
export function generateStyles(
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ this: any,
styleFn: StyledProps,
doCheck: BehaviorSubject,
onDestroy: Subject
diff --git a/libs/angular-jss/src/lib/styled/styled.decorator.ts b/libs/angular-jss/src/lib/styled/styled.decorator.ts
index dbef589..ee389f4 100644
--- a/libs/angular-jss/src/lib/styled/styled.decorator.ts
+++ b/libs/angular-jss/src/lib/styled/styled.decorator.ts
@@ -40,7 +40,8 @@ function decorateNgOnCheck(
props: StyledProps,
initialized: boolean
) {
- return function () {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ return function (this: any) {
// Redecorate ngOnDestroy if it was complied
if (this._onDestroy$.isStopped) {
this._doCheck$ = new BehaviorSubject({} as StyledProps);
@@ -70,7 +71,9 @@ function decorateNgOnCheck(
}
function decorateNgOnDestroy(ngOnDestroy: (() => void) | null | undefined) {
- return function () {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ return function (this: any) {
+
// Invoke the original `ngOnDestroy` if it exists
if (ngOnDestroy) {
ngOnDestroy.call(this);
diff --git a/logo.svg b/logo.svg
new file mode 100644
index 0000000..dc4238c
--- /dev/null
+++ b/logo.svg
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/package.json b/package.json
index f05a80f..b47e3da 100644
--- a/package.json
+++ b/package.json
@@ -43,16 +43,16 @@
"@angular/router": "~13.2.0",
"@nrwl/angular": "13.8.3",
"jss": "^10.9.0",
+ "jss-plugin-camel-case": "^10.9.0",
"jss-plugin-global": "^10.9.0",
"jss-plugin-rule-value-function": "^10.9.0",
- "memoize-one": "^6.0.0",
"rxjs": "~7.4.0",
"tslib": "^2.0.0",
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "~13.2.0",
- "@angular-eslint/eslint-plugin": "~13.0.1",
+ "@angular-eslint/eslint-plugin": "~13.1.0",
"@angular-eslint/eslint-plugin-template": "~13.0.1",
"@angular-eslint/template-parser": "~13.0.1",
"@angular/cli": "~13.2.0",
@@ -74,12 +74,12 @@
"@semantic-release/exec": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"@types/jest": "27.0.2",
- "@types/node": "16.11.7",
+ "@types/node": "17.0.21",
"@typescript-eslint/eslint-plugin": "~5.10.0",
"@typescript-eslint/parser": "~5.10.0",
"cypress": "^9.1.0",
- "eslint": "~8.7.0",
- "eslint-config-prettier": "8.1.0",
+ "eslint": "~8.10.0",
+ "eslint-config-prettier": "8.4.0",
"eslint-plugin-cypress": "^2.10.3",
"hasky": "^3.0.2",
"jest": "27.2.3",
@@ -92,7 +92,7 @@
"postcss-url": "^10.1.1",
"prettier": "^2.5.1",
"semantic-release": "^19.0.2",
- "ts-jest": "27.0.5",
+ "ts-jest": "27.1.3",
"typescript": "~4.5.2"
},
"lint-staged": {