diff --git a/.eslintrc.json b/.eslintrc.json index 8c96fac..60e11ee 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,47 +1,32 @@ { - "root": true, - "ignorePatterns": ["!**/*"], - "plugins": ["@nx"], + "ignorePatterns": ["**/*"], "overrides": [ { - "files": ["*.ts", "*.tsx"], - "extends": ["plugin:@nx/typescript"], - "rules": {} - }, - { - "files": ["*.js", "*.jsx"], - "extends": ["plugin:@nx/javascript"], - "rules": {} - }, - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], "rules": { - "@angular-eslint/directive-selector": [ + "@nx/enforce-module-boundaries": [ "error", { - "type": "attribute", - "prefix": "app", - "style": "camelCase" - } - ], - "@angular-eslint/component-selector": [ - "error", - { - "type": "element", - "prefix": "app", - "style": "kebab-case" + "enforceBuildableLibDependency": true, + "allow": [], + "depConstraints": [ + { + "sourceTag": "*", + "onlyDependOnLibsWithTags": ["*"] + } + ] } ] } }, { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], "rules": {} } - ] + ], + "extends": ["./.eslintrc.json"] } diff --git a/apps/demo-app/.eslintrc.json b/apps/demo-app/.eslintrc.json new file mode 100644 index 0000000..3fe6bac --- /dev/null +++ b/apps/demo-app/.eslintrc.json @@ -0,0 +1,44 @@ +{ + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts"], + "extends": [ + "plugin:@nx/angular", + "plugin:@angular-eslint/template/process-inline-templates" + ], + "rules": { + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "app", + "style": "camelCase" + } + ], + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "app", + "style": "kebab-case" + } + ] + } + }, + { + "files": ["*.html"], + "extends": ["plugin:@nx/angular-template"], + "rules": {} + } + ], + "extends": ["../../.eslintrc.json"] +} diff --git a/apps/demo-app/jest.config.ts b/apps/demo-app/jest.config.ts new file mode 100644 index 0000000..2a167d1 --- /dev/null +++ b/apps/demo-app/jest.config.ts @@ -0,0 +1,26 @@ +/* eslint-disable */ +export default { + displayName: 'demo-app', + preset: '../../jest.preset.js', + setupFilesAfterEnv: ['/src/test-setup.ts'], + coverageDirectory: '../../coverage/sketch', + transform: { + '^.+\\.(ts|mjs|js|html)$': [ + 'jest-preset-angular', + { + tsconfig: '/tsconfig.spec.json', + stringifyContentPathRegex: '\\.(html|svg)$', + }, + ], + }, + transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'], + snapshotSerializers: [ + 'jest-preset-angular/build/serializers/no-ng-attributes', + 'jest-preset-angular/build/serializers/ng-snapshot', + 'jest-preset-angular/build/serializers/html-comment', + ], + testMatch: [ + '/src/**/__tests__/**/*.[jt]s?(x)', + '/src/**/*(*.)@(spec|test).[jt]s?(x)', + ], +}; diff --git a/project.json b/apps/demo-app/project.json similarity index 69% rename from project.json rename to apps/demo-app/project.json index 5fc6169..eacfd8f 100644 --- a/project.json +++ b/apps/demo-app/project.json @@ -1,9 +1,9 @@ { - "name": "sketch", - "$schema": "node_modules/nx/schemas/project-schema.json", + "name": "demo-app", + "$schema": "../../node_modules/nx/schemas/project-schema.json", "projectType": "application", "prefix": "app", - "sourceRoot": "./src", + "sourceRoot": "apps/demo-app/src", "tags": [], "targets": { "build": { @@ -11,12 +11,12 @@ "outputs": ["{options.outputPath}"], "options": { "outputPath": "dist/sketch", - "index": "./src/index.html", - "browser": "./src/main.ts", + "index": "apps/demo-app/src/index.html", + "browser": "apps/demo-app/src/main.ts", "polyfills": ["zone.js"], - "tsConfig": "./tsconfig.app.json", - "assets": ["./src/favicon.ico", "./src/assets"], - "styles": ["./src/styles.css"], + "tsConfig": "apps/demo-app/tsconfig.app.json", + "assets": ["apps/demo-app/src/favicon.ico", "apps/demo-app/src/assets"], + "styles": ["apps/demo-app/src/styles.css"], "scripts": [] }, "configurations": { @@ -47,10 +47,10 @@ "executor": "@angular-devkit/build-angular:dev-server", "configurations": { "production": { - "buildTarget": "sketch:build:production" + "buildTarget": "demo-app:build:production" }, "development": { - "buildTarget": "sketch:build:development" + "buildTarget": "demo-app:build:development" } }, "defaultConfiguration": "development" @@ -58,20 +58,20 @@ "extract-i18n": { "executor": "@angular-devkit/build-angular:extract-i18n", "options": { - "buildTarget": "sketch:build" + "buildTarget": "demo-app:build" } }, "lint": { "executor": "@nx/eslint:lint", "options": { - "lintFilePatterns": ["./src"] + "lintFilePatterns": ["apps/demo-app/src"] } }, "test": { "executor": "@nx/jest:jest", "outputs": ["{workspaceRoot}/coverage/{projectName}"], "options": { - "jestConfig": "jest.config.ts" + "jestConfig": "apps/demo-app/jest.config.ts" } } } diff --git a/src/app/app.component.css b/apps/demo-app/src/app/app.component.css similarity index 100% rename from src/app/app.component.css rename to apps/demo-app/src/app/app.component.css diff --git a/src/assets/.gitkeep b/apps/demo-app/src/app/app.component.html similarity index 100% rename from src/assets/.gitkeep rename to apps/demo-app/src/app/app.component.html diff --git a/src/app/app.component.spec.ts b/apps/demo-app/src/app/app.component.spec.ts similarity index 100% rename from src/app/app.component.spec.ts rename to apps/demo-app/src/app/app.component.spec.ts diff --git a/src/app/app.component.ts b/apps/demo-app/src/app/app.component.ts similarity index 66% rename from src/app/app.component.ts rename to apps/demo-app/src/app/app.component.ts index d68f84f..cbaa890 100644 --- a/src/app/app.component.ts +++ b/apps/demo-app/src/app/app.component.ts @@ -1,14 +1,12 @@ import { Component } from '@angular/core'; import { RouterModule } from '@angular/router'; -import { NxWelcomeComponent } from './nx-welcome.component'; @Component({ standalone: true, - imports: [NxWelcomeComponent, RouterModule], + imports: [RouterModule], selector: 'app-root', templateUrl: './app.component.html', styleUrl: './app.component.css', }) export class AppComponent { - title = 'sketch'; } diff --git a/src/app/app.config.ts b/apps/demo-app/src/app/app.config.ts similarity index 100% rename from src/app/app.config.ts rename to apps/demo-app/src/app/app.config.ts diff --git a/src/app/app.routes.ts b/apps/demo-app/src/app/app.routes.ts similarity index 100% rename from src/app/app.routes.ts rename to apps/demo-app/src/app/app.routes.ts diff --git a/apps/demo-app/src/assets/.gitkeep b/apps/demo-app/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/favicon.ico b/apps/demo-app/src/favicon.ico similarity index 100% rename from src/favicon.ico rename to apps/demo-app/src/favicon.ico diff --git a/src/index.html b/apps/demo-app/src/index.html similarity index 100% rename from src/index.html rename to apps/demo-app/src/index.html diff --git a/src/main.ts b/apps/demo-app/src/main.ts similarity index 100% rename from src/main.ts rename to apps/demo-app/src/main.ts diff --git a/src/styles.css b/apps/demo-app/src/styles.css similarity index 100% rename from src/styles.css rename to apps/demo-app/src/styles.css diff --git a/src/test-setup.ts b/apps/demo-app/src/test-setup.ts similarity index 100% rename from src/test-setup.ts rename to apps/demo-app/src/test-setup.ts diff --git a/tsconfig.app.json b/apps/demo-app/tsconfig.app.json similarity index 85% rename from tsconfig.app.json rename to apps/demo-app/tsconfig.app.json index 3c5c0c5..fff4a41 100644 --- a/tsconfig.app.json +++ b/apps/demo-app/tsconfig.app.json @@ -1,7 +1,7 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "outDir": "./dist/out-tsc", + "outDir": "../../dist/out-tsc", "types": [] }, "files": ["src/main.ts"], diff --git a/tsconfig.json b/apps/demo-app/tsconfig.json similarity index 61% rename from tsconfig.json rename to apps/demo-app/tsconfig.json index dda787f..bd6f08b 100644 --- a/tsconfig.json +++ b/apps/demo-app/tsconfig.json @@ -1,19 +1,5 @@ { "compilerOptions": { - "rootDir": ".", - "sourceMap": true, - "declaration": false, - "moduleResolution": "node", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "importHelpers": true, - "target": "es2022", - "module": "esnext", - "lib": ["es2020", "dom"], - "skipLibCheck": true, - "skipDefaultLibCheck": true, - "baseUrl": ".", - "paths": {}, "useDefineForClassFields": false, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, @@ -36,12 +22,11 @@ "path": "./tsconfig.spec.json" } ], - "compileOnSave": false, - "exclude": ["node_modules", "tmp"], "angularCompilerOptions": { "enableI18nLegacyMessageIdFormat": false, "strictInjectionParameters": true, "strictInputAccessModifiers": true, "strictTemplates": true - } + }, + "extends": "../../tsconfig.base.json" } diff --git a/tsconfig.spec.json b/apps/demo-app/tsconfig.spec.json similarity index 88% rename from tsconfig.spec.json rename to apps/demo-app/tsconfig.spec.json index 1dbe7f6..53fbfcd 100644 --- a/tsconfig.spec.json +++ b/apps/demo-app/tsconfig.spec.json @@ -1,7 +1,7 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "outDir": "./dist/out-tsc", + "outDir": "../../dist/out-tsc", "module": "commonjs", "target": "es2016", "types": ["jest", "node"] diff --git a/e2e/.eslintrc.json b/e2e/.eslintrc.json index 79529f9..f8788b5 100644 --- a/e2e/.eslintrc.json +++ b/e2e/.eslintrc.json @@ -15,7 +15,6 @@ }, { "files": ["*.js", "*.jsx"], - "extends": ["plugin:@nx/javascript"], "rules": {} }, { @@ -23,6 +22,5 @@ "rules": {} } ], - "extends": ["plugin:playwright/recommended"], - "plugins": ["@nx"] + "extends": ["plugin:playwright/recommended", "../.eslintrc.json"] } diff --git a/e2e/project.json b/e2e/project.json index bfe1067..8dd5452 100644 --- a/e2e/project.json +++ b/e2e/project.json @@ -3,7 +3,7 @@ "$schema": "../node_modules/nx/schemas/project-schema.json", "projectType": "application", "sourceRoot": "e2e/src", - "implicitDependencies": ["sketch"], + "implicitDependencies": ["demo-app"], "// targets": "to see all targets run: nx show project e2e --web", "targets": {} } diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json index 97fd7c2..f4f5e54 100644 --- a/e2e/tsconfig.json +++ b/e2e/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../tsconfig.json", + "extends": "../tsconfig.base.json", "compilerOptions": { "allowJs": true, "outDir": "../dist/out-tsc", diff --git a/jest.config.ts b/jest.config.ts index 832e5a1..6b3f2d6 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -1,26 +1,5 @@ -/* eslint-disable */ -export default { - displayName: 'sketch', - preset: './jest.preset.js', - setupFilesAfterEnv: ['/src/test-setup.ts'], - coverageDirectory: './coverage/sketch', - transform: { - '^.+\\.(ts|mjs|js|html)$': [ - 'jest-preset-angular', - { - tsconfig: '/tsconfig.spec.json', - stringifyContentPathRegex: '\\.(html|svg)$', - }, - ], - }, - transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'], - snapshotSerializers: [ - 'jest-preset-angular/build/serializers/no-ng-attributes', - 'jest-preset-angular/build/serializers/ng-snapshot', - 'jest-preset-angular/build/serializers/html-comment', - ], - testMatch: [ - '/src/**/__tests__/**/*.[jt]s?(x)', - '/src/**/*(*.)@(spec|test).[jt]s?(x)', - ], -}; +import { getJestProjectsAsync } from '@nx/jest'; + +export default async () => ({ + projects: await getJestProjectsAsync(), +}); diff --git a/libs/sketch/.eslintrc.json b/libs/sketch/.eslintrc.json new file mode 100644 index 0000000..8c1aae4 --- /dev/null +++ b/libs/sketch/.eslintrc.json @@ -0,0 +1,43 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts"], + "extends": [ + "plugin:@nx/angular", + "plugin:@angular-eslint/template/process-inline-templates" + ], + "rules": { + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "sk", + "style": "camelCase" + } + ], + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "sk", + "style": "kebab-case" + } + ] + } + }, + { + "files": ["*.html"], + "extends": ["plugin:@nx/angular-template"], + "rules": {} + }, + { + "files": ["*.json"], + "parser": "jsonc-eslint-parser", + "rules": { + "@nx/dependency-checks": "error" + } + } + ] +} diff --git a/libs/sketch/README.md b/libs/sketch/README.md new file mode 100644 index 0000000..44da085 --- /dev/null +++ b/libs/sketch/README.md @@ -0,0 +1,7 @@ +# sketch + +This library was generated with [Nx](https://nx.dev). + +## Running unit tests + +Run `nx test sketch` to execute the unit tests. diff --git a/libs/sketch/jest.config.ts b/libs/sketch/jest.config.ts new file mode 100644 index 0000000..3b085da --- /dev/null +++ b/libs/sketch/jest.config.ts @@ -0,0 +1,22 @@ +/* eslint-disable */ +export default { + displayName: 'sketch', + preset: '../../jest.preset.js', + setupFilesAfterEnv: ['/src/test-setup.ts'], + coverageDirectory: '../../coverage/libs/sketch', + transform: { + '^.+\\.(ts|mjs|js|html)$': [ + 'jest-preset-angular', + { + tsconfig: '/tsconfig.spec.json', + stringifyContentPathRegex: '\\.(html|svg)$', + }, + ], + }, + transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'], + snapshotSerializers: [ + 'jest-preset-angular/build/serializers/no-ng-attributes', + 'jest-preset-angular/build/serializers/ng-snapshot', + 'jest-preset-angular/build/serializers/html-comment', + ], +}; diff --git a/libs/sketch/ng-package.json b/libs/sketch/ng-package.json new file mode 100644 index 0000000..972ad7b --- /dev/null +++ b/libs/sketch/ng-package.json @@ -0,0 +1,7 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/libs/sketch", + "lib": { + "entryFile": "src/index.ts" + } +} diff --git a/libs/sketch/package.json b/libs/sketch/package.json new file mode 100644 index 0000000..b9a3b1a --- /dev/null +++ b/libs/sketch/package.json @@ -0,0 +1,12 @@ +{ + "name": "@qupaya/sketch", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^17.3.0", + "@angular/core": "^17.3.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false +} diff --git a/libs/sketch/project.json b/libs/sketch/project.json new file mode 100644 index 0000000..8885b7f --- /dev/null +++ b/libs/sketch/project.json @@ -0,0 +1,36 @@ +{ + "name": "sketch", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "libs/sketch/src", + "prefix": "sk", + "projectType": "library", + "tags": [], + "targets": { + "build": { + "executor": "@nx/angular:package", + "outputs": ["{workspaceRoot}/dist/{projectRoot}"], + "options": { + "project": "libs/sketch/ng-package.json" + }, + "configurations": { + "production": { + "tsConfig": "libs/sketch/tsconfig.lib.prod.json" + }, + "development": { + "tsConfig": "libs/sketch/tsconfig.lib.json" + } + }, + "defaultConfiguration": "production" + }, + "test": { + "executor": "@nx/jest:jest", + "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], + "options": { + "jestConfig": "libs/sketch/jest.config.ts" + } + }, + "lint": { + "executor": "@nx/eslint:lint" + } + } +} diff --git a/libs/sketch/src/index.ts b/libs/sketch/src/index.ts new file mode 100644 index 0000000..1a42582 --- /dev/null +++ b/libs/sketch/src/index.ts @@ -0,0 +1 @@ +export * from './lib/sketch/sketch.component'; diff --git a/libs/sketch/src/lib/sketch/sketch.component.css b/libs/sketch/src/lib/sketch/sketch.component.css new file mode 100644 index 0000000..e69de29 diff --git a/libs/sketch/src/lib/sketch/sketch.component.html b/libs/sketch/src/lib/sketch/sketch.component.html new file mode 100644 index 0000000..1454f86 --- /dev/null +++ b/libs/sketch/src/lib/sketch/sketch.component.html @@ -0,0 +1 @@ +

sketch works!

diff --git a/libs/sketch/src/lib/sketch/sketch.component.spec.ts b/libs/sketch/src/lib/sketch/sketch.component.spec.ts new file mode 100644 index 0000000..2534c91 --- /dev/null +++ b/libs/sketch/src/lib/sketch/sketch.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { SketchComponent } from './sketch.component'; + +describe('SketchComponent', () => { + let component: SketchComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [SketchComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(SketchComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/libs/sketch/src/lib/sketch/sketch.component.ts b/libs/sketch/src/lib/sketch/sketch.component.ts new file mode 100644 index 0000000..450db16 --- /dev/null +++ b/libs/sketch/src/lib/sketch/sketch.component.ts @@ -0,0 +1,17 @@ +import { + ChangeDetectionStrategy, + Component, + ViewEncapsulation, +} from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'sk-sketch', + standalone: true, + imports: [CommonModule], + templateUrl: './sketch.component.html', + styleUrl: './sketch.component.css', + encapsulation: ViewEncapsulation.ShadowDom, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class SketchComponent {} diff --git a/libs/sketch/src/test-setup.ts b/libs/sketch/src/test-setup.ts new file mode 100644 index 0000000..ab1eeeb --- /dev/null +++ b/libs/sketch/src/test-setup.ts @@ -0,0 +1,8 @@ +// @ts-expect-error https://thymikee.github.io/jest-preset-angular/docs/getting-started/test-environment +globalThis.ngJest = { + testEnvironmentOptions: { + errorOnUnknownElements: true, + errorOnUnknownProperties: true, + }, +}; +import 'jest-preset-angular/setup-jest'; diff --git a/libs/sketch/tsconfig.json b/libs/sketch/tsconfig.json new file mode 100644 index 0000000..9204973 --- /dev/null +++ b/libs/sketch/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "target": "es2022", + "useDefineForClassFields": false, + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ], + "extends": "../../tsconfig.base.json", + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/libs/sketch/tsconfig.lib.json b/libs/sketch/tsconfig.lib.json new file mode 100644 index 0000000..063e525 --- /dev/null +++ b/libs/sketch/tsconfig.lib.json @@ -0,0 +1,17 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [] + }, + "exclude": [ + "src/**/*.spec.ts", + "src/test-setup.ts", + "jest.config.ts", + "src/**/*.test.ts" + ], + "include": ["src/**/*.ts"] +} diff --git a/libs/sketch/tsconfig.lib.prod.json b/libs/sketch/tsconfig.lib.prod.json new file mode 100644 index 0000000..2a2faa8 --- /dev/null +++ b/libs/sketch/tsconfig.lib.prod.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "declarationMap": false + }, + "angularCompilerOptions": { + "compilationMode": "partial" + } +} diff --git a/libs/sketch/tsconfig.spec.json b/libs/sketch/tsconfig.spec.json new file mode 100644 index 0000000..53fbfcd --- /dev/null +++ b/libs/sketch/tsconfig.spec.json @@ -0,0 +1,16 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "module": "commonjs", + "target": "es2016", + "types": ["jest", "node"] + }, + "files": ["src/test-setup.ts"], + "include": [ + "jest.config.ts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/nx.json b/nx.json index 3c3f609..5086ec2 100644 --- a/nx.json +++ b/nx.json @@ -41,6 +41,11 @@ "codeCoverage": true } } + }, + "@nx/angular:package": { + "cache": true, + "dependsOn": ["^build"], + "inputs": ["production", "^production"] } }, "plugins": [ @@ -63,8 +68,15 @@ "linter": "eslint", "style": "css", "unitTestRunner": "jest" + }, + "@nx/angular:library": { + "linter": "eslint", + "unitTestRunner": "jest" + }, + "@nx/angular:component": { + "style": "css" } }, - "defaultProject": "sketch", + "defaultProject": "demo-app", "nxCloudAccessToken": "ZDI5MjU3NmYtYWU2OS00OGJkLWI0ODEtY2I1NDM2MGM1MDJifHJlYWQtd3JpdGU=" } diff --git a/package-lock.json b/package-lock.json index 6711678..3b5d36b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,13 +48,18 @@ "@types/node": "18.16.9", "@typescript-eslint/eslint-plugin": "^7.3.0", "@typescript-eslint/parser": "^7.3.0", + "autoprefixer": "^10.4.0", "eslint": "~8.57.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-playwright": "^0.15.3", "jest": "^29.4.1", "jest-environment-jsdom": "^29.4.1", "jest-preset-angular": "~14.0.3", + "jsonc-eslint-parser": "^2.1.0", + "ng-packagr": "~17.3.0", "nx": "18.2.2", + "postcss": "^8.4.5", + "postcss-url": "~10.1.3", "prettier": "^2.6.2", "ts-jest": "^29.1.0", "ts-node": "10.9.1", @@ -5689,6 +5694,85 @@ "node": ">=16" } }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.14.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.0.tgz", @@ -5884,6 +5968,25 @@ "win32" ] }, + "node_modules/@rollup/wasm-node": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.14.0.tgz", + "integrity": "sha512-efST/LGEoabKrDzCgA26GJFSJ6B7y9qA6DY1lGUDamfObWtEjrsybaD0CoUZetpHaSFf/rv4ulYg80iWLyYrcQ==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/@schematics/angular": { "version": "17.3.3", "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.3.tgz", @@ -6578,6 +6681,12 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", @@ -7957,6 +8066,18 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/builtins": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", @@ -8899,6 +9020,12 @@ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true }, + "node_modules/cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==", + "dev": true + }, "node_modules/data-urls": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", @@ -9024,6 +9151,15 @@ "node": ">= 0.8" } }, + "node_modules/dependency-graph": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", + "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -9705,6 +9841,12 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -11067,6 +11209,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/injection-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.4.0.tgz", + "integrity": "sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.0" + } + }, "node_modules/inquirer": { "version": "9.2.15", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.15.tgz", @@ -11201,6 +11352,21 @@ "node": ">=8" } }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -11276,6 +11442,12 @@ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -13156,6 +13328,164 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "node_modules/ng-packagr": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-17.3.0.tgz", + "integrity": "sha512-kMSqxeDgv88SWCoapWNRRN1UdBgwu9/Pw/j7u2WFGmzrIWUFivNWBBSSL94kMxr2La+Z9wMwiL8EwKNvmCpg2A==", + "dev": true, + "dependencies": { + "@rollup/plugin-json": "^6.0.1", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/wasm-node": "^4.5.0", + "ajv": "^8.12.0", + "ansi-colors": "^4.1.3", + "browserslist": "^4.22.1", + "cacache": "^18.0.0", + "chokidar": "^3.5.3", + "commander": "^12.0.0", + "convert-source-map": "^2.0.0", + "dependency-graph": "^1.0.0", + "esbuild-wasm": "^0.20.0", + "fast-glob": "^3.3.1", + "find-cache-dir": "^3.3.2", + "injection-js": "^2.4.0", + "jsonc-parser": "^3.2.0", + "less": "^4.2.0", + "ora": "^5.1.0", + "piscina": "^4.4.0", + "postcss": "^8.4.31", + "rxjs": "^7.8.1", + "sass": "^1.69.5" + }, + "bin": { + "ng-packagr": "cli/main.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "optionalDependencies": { + "esbuild": "^0.20.0", + "rollup": "^4.5.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0 || ^17.2.0-next.0 || ^17.3.0-next.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "tslib": "^2.3.0", + "typescript": ">=5.2 <5.5" + }, + "peerDependenciesMeta": { + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/ng-packagr/node_modules/commander": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", + "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/ng-packagr/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ng-packagr/node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/ng-packagr/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ng-packagr/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ng-packagr/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ng-packagr/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/nice-napi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", @@ -14623,6 +14953,58 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-url": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-10.1.3.tgz", + "integrity": "sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==", + "dev": true, + "dependencies": { + "make-dir": "~3.1.0", + "mime": "~2.5.2", + "minimatch": "~3.0.4", + "xxhashjs": "~0.2.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-url/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/postcss-url/node_modules/mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-url/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", @@ -17921,6 +18303,15 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, + "node_modules/xxhashjs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", + "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", + "dev": true, + "dependencies": { + "cuint": "^0.2.2" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index 86553c0..dd4fab5 100644 --- a/package.json +++ b/package.json @@ -48,13 +48,18 @@ "@types/node": "18.16.9", "@typescript-eslint/eslint-plugin": "^7.3.0", "@typescript-eslint/parser": "^7.3.0", + "autoprefixer": "^10.4.0", "eslint": "~8.57.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-playwright": "^0.15.3", "jest": "^29.4.1", "jest-environment-jsdom": "^29.4.1", "jest-preset-angular": "~14.0.3", + "jsonc-eslint-parser": "^2.1.0", + "ng-packagr": "~17.3.0", "nx": "18.2.2", + "postcss": "^8.4.5", + "postcss-url": "~10.1.3", "prettier": "^2.6.2", "ts-jest": "^29.1.0", "ts-node": "10.9.1", diff --git a/src/app/app.component.html b/src/app/app.component.html deleted file mode 100644 index 0f4018b..0000000 --- a/src/app/app.component.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/app/nx-welcome.component.ts b/src/app/nx-welcome.component.ts deleted file mode 100644 index 7416de1..0000000 --- a/src/app/nx-welcome.component.ts +++ /dev/null @@ -1,907 +0,0 @@ -import { Component, ViewEncapsulation } from '@angular/core'; -import { CommonModule } from '@angular/common'; - -@Component({ - selector: 'app-nx-welcome', - standalone: true, - imports: [CommonModule], - template: ` - - -
-
- -
-

- Hello there, - Welcome sketch 👋 -

-
- -
-
-

- - - - You're up and running -

- What's next? -
-
- - - -
-
- - - -
-

Next steps

-

Here are some things you can do with Nx:

-
- - - - - Add UI library - -
# Generate UI lib
-nx g @nx/angular:lib ui
-# Add a component
-nx g @nx/angular:component ui/src/lib/button
-
-
- - - - - View project details - -
nx show project sketch --web
-
-
- - - - - 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 - - - -

-
-
- `, - styles: [], - encapsulation: ViewEncapsulation.None, -}) -export class NxWelcomeComponent {} diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 0000000..09c5d28 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,22 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "rootDir": ".", + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "importHelpers": true, + "target": "es2022", + "module": "esnext", + "lib": ["es2020", "dom"], + "skipLibCheck": true, + "skipDefaultLibCheck": true, + "baseUrl": ".", + "paths": { + "@qupaya/sketch": ["libs/sketch/src/index.ts"] + } + }, + "exclude": ["node_modules", "tmp"] +}