web-app/angular.json
Felix van Hove 7fd1486c08 Upgrading to Angular 20:
Replaced checked in package-lock.json by regenerated one.
Ran ng update @angular/core@20 @angular/cli@20
Ran npm install @angular-builders/jest@^20.0.0 @fortawesome/angular-fontawesome@^3.0.0 @swimlane/ngx-graph@^11
Ran npm install ngx-mat-select-search@^8.0.2.
Ran ng update @angular/material@20.
Updated all eslint and typescript to the latest versions.
Removed @angular-devkit/schematics.
Updated fontawesome.
Updated rxjs and tslib.
Moved required node version from 16 to 20.
Updated jest-preset-angular.
Set preserveWhitespaces to false.
Corrected two type declarations in two typescript files to make ng serve run without errors.
Removed unused angular-devkit/schematics from view-user.component.ts .
Updated list of supported browsers.
Upgraded prettier.
Ran prettier . --write the first time.
Ran prettier . --write the second time.
Ran ng generate @angular/core:inject with defaults, excepted a handful of files.
Fixed remaining eslint problems.
Added dist directory to ignores in eslint.config.js.
Let prettier fix formatting, almost everything is just line breaks.
Made htmlhint ignore @if and @for Angular constructs.
Updated node version in Github workflow to 22.12.0 (build.yml).
Updated .env.ts.
Updated Angular datetime format strings from YYYY-MM-DD to yyyy-MM-dd.
Merged changes from dev into angular20 branch.
2025-12-08 11:01:01 +01:00

261 lines
7.1 KiB
JSON

{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"mifosx-web-app": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "mifosx",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
},
"@schematics/angular:application": {
"strict": true
}
},
"architect": {
"build": {
"builder": "@angular/build:application",
"options": {
"aot": true,
"outputPath": {
"base": "dist/web-app"
},
"index": "src/index.html",
"tsConfig": "src/tsconfig.app.json",
"polyfills": [
"src/polyfills.ts",
"@angular/localize/init"
],
"assets": [
"src/favicon.ico",
"src/robots.txt",
"src/manifest.json",
"src/assets",
{
"glob": "**/*",
"input": "node_modules/tinymce",
"output": "assets/tinymce"
}
],
"styles": [
"node_modules/@fortawesome/fontawesome-free/css/all.css",
"node_modules/@fortawesome/fontawesome-free/css/v4-shims.css",
"src/main.scss",
{
"inject": false,
"input": "src/theme/mifosx-theme.scss",
"bundleName": "mifosx-theme"
}
],
"scripts": [],
"allowedCommonJsDependencies": [
"lodash",
"tinymce",
"moment"
],
"browser": "src/main.ts",
"stylePreprocessorOptions": {
"includePaths": [
"src"
]
}
},
"configurations": {
"production": {
"budgets": [
{
"type": "initial",
"maximumWarning": "12mb",
"maximumError": "12mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "64kb",
"maximumError": "128kb"
}
],
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"sourceMap": false,
"namedChunks": true,
"outputHashing": "all",
"extractLicenses": true,
"aot": true
},
"development": {
"optimization": false,
"sourceMap": true,
"namedChunks": true,
"extractLicenses": true,
"aot": true
}
},
"defaultConfiguration": "production"
},
"serve": {
"builder": "@angular/build:dev-server",
"options": {
"buildTarget": "mifosx-web-app:build"
},
"configurations": {
"development": {
"buildTarget": "mifosx-web-app:build:development"
},
"production": {
"buildTarget": "mifosx-web-app:build:production"
}
},
"defaultConfiguration": "development"
},
"extract-i18n": {
"builder": "@angular/build:extract-i18n",
"options": {
"buildTarget": "mifosx-web-app:build"
}
},
"test": {
"builder": "@angular-builders/jest:run",
"options": {
"configPath": "./jest.config.ts"
}
},
"lint": {
"builder": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"src/**/*.ts",
"src/**/*.html"
]
}
},
"cypress-run": {
"builder": "@cypress/schematic:cypress",
"options": {
"devServerTarget": "mifosx-web-app:serve"
},
"configurations": {
"production": {
"devServerTarget": "mifosx-web-app:serve:production"
}
}
},
"cypress-open": {
"builder": "@cypress/schematic:cypress",
"options": {
"watch": true,
"headless": false
}
},
"e2e": {
"builder": "@cypress/schematic:cypress",
"options": {
"devServerTarget": "mifosx-web-app:serve",
"watch": true,
"headless": false
},
"configurations": {
"production": {
"devServerTarget": "mifosx-web-app:serve:production"
}
}
}
}
},
"mifosx-web-app-e2e": {
"root": "e2e",
"projectType": "application",
"architect": {
"e2e": {
"builder": "@cypress/schematic:cypress",
"options": {
"devServerTarget": "mifosx-web-app-e2e:serve",
"watch": true,
"headless": false
},
"configurations": {
"production": {
"devServerTarget": "mifosx-web-app-e2e:serve:production"
}
}
},
"lint": {
"builder": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"e2e/**/*.ts",
"e2e/**/*.html"
]
}
},
"cypress-run": {
"builder": "@cypress/schematic:cypress",
"options": {
"devServerTarget": "mifosx-web-app-e2e:serve",
"configFile": "e2e/cypress.json"
},
"configurations": {
"production": {
"devServerTarget": "mifosx-web-app-e2e:serve:production"
}
}
},
"cypress-open": {
"builder": "@cypress/schematic:cypress",
"options": {
"watch": true,
"headless": false,
"configFile": "e2e/cypress.json"
}
}
}
}
},
"cli": {
"analytics": false,
"schematicCollections": [
"@angular-eslint/schematics"
]
},
"schematics": {
"@angular-eslint/schematics:application": {
"setParserOptionsProject": true
},
"@angular-eslint/schematics:library": {
"setParserOptionsProject": true
},
"@schematics/angular:component": {
"type": "component"
},
"@schematics/angular:directive": {
"type": "directive"
},
"@schematics/angular:service": {
"type": "service"
},
"@schematics/angular:guard": {
"typeSeparator": "."
},
"@schematics/angular:interceptor": {
"typeSeparator": "."
},
"@schematics/angular:module": {
"typeSeparator": "."
},
"@schematics/angular:pipe": {
"typeSeparator": "."
},
"@schematics/angular:resolver": {
"typeSeparator": "."
}
}
}