mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	Migrate to eslint
This commit is contained in:
		
							
								
								
									
										51
									
								
								src-ui/.eslintrc.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								src-ui/.eslintrc.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| { | ||||
|   "root": true, | ||||
|   "ignorePatterns": [ | ||||
|     "projects/**/*" | ||||
|   ], | ||||
|   "overrides": [ | ||||
|     { | ||||
|       "files": [ | ||||
|         "*.ts" | ||||
|       ], | ||||
|       "parserOptions": { | ||||
|         "project": [ | ||||
|           "tsconfig.json", | ||||
|           "e2e/tsconfig.json" | ||||
|         ], | ||||
|         "createDefaultProgram": true | ||||
|       }, | ||||
|       "extends": [ | ||||
|         "plugin:@angular-eslint/recommended", | ||||
|         "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:@angular-eslint/template/recommended" | ||||
|       ], | ||||
|       "rules": {} | ||||
|     } | ||||
|   ] | ||||
| } | ||||
| @@ -1,179 +1,196 @@ | ||||
| { | ||||
| 	"$schema": "./node_modules/@angular/cli/lib/config/schema.json", | ||||
| 	"version": 1, | ||||
| 	"newProjectRoot": "projects", | ||||
| 	"projects": { | ||||
| 		"paperless-ui": { | ||||
| 			"projectType": "application", | ||||
| 			"schematics": { | ||||
| 				"@schematics/angular:component": { | ||||
| 					"style": "scss" | ||||
| 				} | ||||
| 			}, | ||||
| 			"root": "", | ||||
| 			"sourceRoot": "src", | ||||
| 			"prefix": "app", | ||||
| 			"i18n": { | ||||
| 				"sourceLocale": "en-US", | ||||
| 				"locales": { | ||||
| 					"be-BY": "src/locale/messages.be_BY.xlf", | ||||
| 					"cs-CZ": "src/locale/messages.cs_CZ.xlf", | ||||
| 					"da-DK": "src/locale/messages.da_DK.xlf", | ||||
| 					"de-DE": "src/locale/messages.de_DE.xlf", | ||||
| 					"en-GB": "src/locale/messages.en_GB.xlf", | ||||
| 					"es-ES": "src/locale/messages.es_ES.xlf", | ||||
| 					"fr-FR": "src/locale/messages.fr_FR.xlf", | ||||
| 					"it-IT": "src/locale/messages.it_IT.xlf", | ||||
| 					"lb-LU": "src/locale/messages.lb_LU.xlf", | ||||
| 					"nl-NL": "src/locale/messages.nl_NL.xlf", | ||||
| 					"pl-PL": "src/locale/messages.pl_PL.xlf", | ||||
| 					"pt-BR": "src/locale/messages.pt_BR.xlf", | ||||
| 					"pt-PT": "src/locale/messages.pt_PT.xlf", | ||||
| 					"ro-RO": "src/locale/messages.ro_RO.xlf", | ||||
| 					"ru-RU": "src/locale/messages.ru_RU.xlf", | ||||
| 					"sl-SI": "src/locale/messages.sl_SI.xlf", | ||||
| 					"sr-CS": "src/locale/messages.sr_CS.xlf", | ||||
| 					"sv-SE": "src/locale/messages.sv_SE.xlf", | ||||
| 					"tr-TR": "src/locale/messages.tr_TR.xlf", | ||||
| 					"zh-CN": "src/locale/messages.zh_CN.xlf" | ||||
| 				} | ||||
| 			}, | ||||
| 			"architect": { | ||||
| 				"build": { | ||||
| 					"builder": "@angular-devkit/build-angular:browser", | ||||
| 					"options": { | ||||
| 						"outputPath": "dist/paperless-ui", | ||||
| 						"outputHashing": "none", | ||||
| 						"index": "src/index.html", | ||||
| 						"main": "src/main.ts", | ||||
| 						"polyfills": "src/polyfills.ts", | ||||
| 						"tsConfig": "tsconfig.app.json", | ||||
| 						"localize": true, | ||||
| 						"assets": [ | ||||
| 							"src/favicon.ico", | ||||
| 							"src/apple-touch-icon.png", | ||||
| 							"src/assets", | ||||
| 							"src/manifest.webmanifest", { | ||||
| 								"glob": "pdf.worker.min.js", | ||||
| 								"input": "node_modules/pdfjs-dist/build/", | ||||
| 								"output": "/assets/js/" | ||||
| 							} | ||||
| 						], | ||||
| 						"styles": [ | ||||
| 							"src/styles.scss" | ||||
| 						], | ||||
| 						"scripts": [], | ||||
| 						"allowedCommonJsDependencies": [ | ||||
| 							"ng2-pdf-viewer" | ||||
| 						], | ||||
| 						"vendorChunk": true, | ||||
| 						"extractLicenses": false, | ||||
| 						"buildOptimizer": false, | ||||
| 						"sourceMap": true, | ||||
| 						"optimization": false, | ||||
| 						"namedChunks": true | ||||
| 					}, | ||||
| 					"configurations": { | ||||
| 						"production": { | ||||
| 							"fileReplacements": [ | ||||
| 								{ | ||||
| 									"replace": "src/environments/environment.ts", | ||||
| 									"with": "src/environments/environment.prod.ts" | ||||
| 								} | ||||
| 							], | ||||
| 							"outputPath": "../src/documents/static/frontend/", | ||||
| 							"optimization": true, | ||||
| 							"outputHashing": "none", | ||||
| 							"sourceMap": false, | ||||
| 							"namedChunks": false, | ||||
| 							"extractLicenses": true, | ||||
| 							"vendorChunk": false, | ||||
| 							"buildOptimizer": true, | ||||
| 							"budgets": [ | ||||
| 								{ | ||||
| 									"type": "initial", | ||||
| 									"maximumWarning": "2mb", | ||||
| 									"maximumError": "5mb" | ||||
| 								}, | ||||
| 								{ | ||||
| 									"type": "anyComponentStyle", | ||||
| 									"maximumWarning": "6kb", | ||||
| 									"maximumError": "10kb" | ||||
| 								} | ||||
| 							] | ||||
| 						}, | ||||
| 						"en-US": { | ||||
| 							"localize": ["en-US"] | ||||
| 						} | ||||
| 					}, | ||||
| 					"defaultConfiguration": "" | ||||
| 				}, | ||||
| 				"serve": { | ||||
| 					"builder": "@angular-devkit/build-angular:dev-server", | ||||
| 					"options": { | ||||
| 						"browserTarget": "paperless-ui:build:en-US" | ||||
| 					}, | ||||
| 					"configurations": { | ||||
| 						"production": { | ||||
| 							"browserTarget": "paperless-ui:build:production" | ||||
| 						} | ||||
| 					} | ||||
| 				}, | ||||
| 				"extract-i18n": { | ||||
| 					"builder": "@angular-devkit/build-angular:extract-i18n", | ||||
| 					"options": { | ||||
| 						"browserTarget": "paperless-ui:build" | ||||
| 					} | ||||
| 				}, | ||||
| 				"test": { | ||||
| 					"builder": "@angular-builders/jest:run", | ||||
| 					"options": { | ||||
| 						"tsConfig": "tsconfig.spec.json", | ||||
| 						"assets": [ | ||||
| 							"src/favicon.ico", | ||||
| 							"src/apple-touch-icon.png", | ||||
| 							"src/assets", | ||||
| 							"src/manifest.webmanifest" | ||||
| 						], | ||||
| 						"styles": [ | ||||
| 							"src/styles.scss" | ||||
| 						], | ||||
| 						"scripts": [] | ||||
| 					} | ||||
| 				}, | ||||
| 				"e2e": { | ||||
| 					"builder": "@cypress/schematic:cypress", | ||||
| 					"options": { | ||||
| 						"devServerTarget": "paperless-ui:serve", | ||||
| 						"watch": true, | ||||
| 						"headless": false | ||||
| 					}, | ||||
| 					"configurations": { | ||||
| 						"production": { | ||||
| 							"devServerTarget": "paperless-ui:serve:production" | ||||
| 						} | ||||
| 					} | ||||
| 				}, | ||||
| 				"cypress-run": { | ||||
| 					"builder": "@cypress/schematic:cypress", | ||||
| 					"options": { | ||||
| 						"devServerTarget": "paperless-ui:serve" | ||||
| 					}, | ||||
| 					"configurations": { | ||||
| 						"production": { | ||||
| 							"devServerTarget": "paperless-ui:serve:production" | ||||
| 						} | ||||
| 					} | ||||
| 				}, | ||||
| 				"cypress-open": { | ||||
| 					"builder": "@cypress/schematic:cypress", | ||||
| 					"options": { | ||||
| 						"watch": true, | ||||
| 						"headless": false | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	}, | ||||
| 	"defaultProject": "paperless-ui" | ||||
|   "$schema": "./node_modules/@angular/cli/lib/config/schema.json", | ||||
|   "version": 1, | ||||
|   "newProjectRoot": "projects", | ||||
|   "projects": { | ||||
|     "paperless-ui": { | ||||
|       "projectType": "application", | ||||
|       "schematics": { | ||||
|         "@schematics/angular:component": { | ||||
|           "style": "scss" | ||||
|         } | ||||
|       }, | ||||
|       "root": "", | ||||
|       "sourceRoot": "src", | ||||
|       "prefix": "app", | ||||
|       "i18n": { | ||||
|         "sourceLocale": "en-US", | ||||
|         "locales": { | ||||
|           "be-BY": "src/locale/messages.be_BY.xlf", | ||||
|           "cs-CZ": "src/locale/messages.cs_CZ.xlf", | ||||
|           "da-DK": "src/locale/messages.da_DK.xlf", | ||||
|           "de-DE": "src/locale/messages.de_DE.xlf", | ||||
|           "en-GB": "src/locale/messages.en_GB.xlf", | ||||
|           "es-ES": "src/locale/messages.es_ES.xlf", | ||||
|           "fr-FR": "src/locale/messages.fr_FR.xlf", | ||||
|           "it-IT": "src/locale/messages.it_IT.xlf", | ||||
|           "lb-LU": "src/locale/messages.lb_LU.xlf", | ||||
|           "nl-NL": "src/locale/messages.nl_NL.xlf", | ||||
|           "pl-PL": "src/locale/messages.pl_PL.xlf", | ||||
|           "pt-BR": "src/locale/messages.pt_BR.xlf", | ||||
|           "pt-PT": "src/locale/messages.pt_PT.xlf", | ||||
|           "ro-RO": "src/locale/messages.ro_RO.xlf", | ||||
|           "ru-RU": "src/locale/messages.ru_RU.xlf", | ||||
|           "sl-SI": "src/locale/messages.sl_SI.xlf", | ||||
|           "sr-CS": "src/locale/messages.sr_CS.xlf", | ||||
|           "sv-SE": "src/locale/messages.sv_SE.xlf", | ||||
|           "tr-TR": "src/locale/messages.tr_TR.xlf", | ||||
|           "zh-CN": "src/locale/messages.zh_CN.xlf" | ||||
|         } | ||||
|       }, | ||||
|       "architect": { | ||||
|         "build": { | ||||
|           "builder": "@angular-devkit/build-angular:browser", | ||||
|           "options": { | ||||
|             "outputPath": "dist/paperless-ui", | ||||
|             "outputHashing": "none", | ||||
|             "index": "src/index.html", | ||||
|             "main": "src/main.ts", | ||||
|             "polyfills": "src/polyfills.ts", | ||||
|             "tsConfig": "tsconfig.app.json", | ||||
|             "localize": true, | ||||
|             "assets": [ | ||||
|               "src/favicon.ico", | ||||
|               "src/apple-touch-icon.png", | ||||
|               "src/assets", | ||||
|               "src/manifest.webmanifest", | ||||
|               { | ||||
|                 "glob": "pdf.worker.min.js", | ||||
|                 "input": "node_modules/pdfjs-dist/build/", | ||||
|                 "output": "/assets/js/" | ||||
|               } | ||||
|             ], | ||||
|             "styles": [ | ||||
|               "src/styles.scss" | ||||
|             ], | ||||
|             "scripts": [], | ||||
|             "allowedCommonJsDependencies": [ | ||||
|               "ng2-pdf-viewer" | ||||
|             ], | ||||
|             "vendorChunk": true, | ||||
|             "extractLicenses": false, | ||||
|             "buildOptimizer": false, | ||||
|             "sourceMap": true, | ||||
|             "optimization": false, | ||||
|             "namedChunks": true | ||||
|           }, | ||||
|           "configurations": { | ||||
|             "production": { | ||||
|               "fileReplacements": [ | ||||
|                 { | ||||
|                   "replace": "src/environments/environment.ts", | ||||
|                   "with": "src/environments/environment.prod.ts" | ||||
|                 } | ||||
|               ], | ||||
|               "outputPath": "../src/documents/static/frontend/", | ||||
|               "optimization": true, | ||||
|               "outputHashing": "none", | ||||
|               "sourceMap": false, | ||||
|               "namedChunks": false, | ||||
|               "extractLicenses": true, | ||||
|               "vendorChunk": false, | ||||
|               "buildOptimizer": true, | ||||
|               "budgets": [ | ||||
|                 { | ||||
|                   "type": "initial", | ||||
|                   "maximumWarning": "2mb", | ||||
|                   "maximumError": "5mb" | ||||
|                 }, | ||||
|                 { | ||||
|                   "type": "anyComponentStyle", | ||||
|                   "maximumWarning": "6kb", | ||||
|                   "maximumError": "10kb" | ||||
|                 } | ||||
|               ] | ||||
|             }, | ||||
|             "en-US": { | ||||
|               "localize": [ | ||||
|                 "en-US" | ||||
|               ] | ||||
|             } | ||||
|           }, | ||||
|           "defaultConfiguration": "" | ||||
|         }, | ||||
|         "serve": { | ||||
|           "builder": "@angular-devkit/build-angular:dev-server", | ||||
|           "options": { | ||||
|             "browserTarget": "paperless-ui:build:en-US" | ||||
|           }, | ||||
|           "configurations": { | ||||
|             "production": { | ||||
|               "browserTarget": "paperless-ui:build:production" | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         "extract-i18n": { | ||||
|           "builder": "@angular-devkit/build-angular:extract-i18n", | ||||
|           "options": { | ||||
|             "browserTarget": "paperless-ui:build" | ||||
|           } | ||||
|         }, | ||||
|         "test": { | ||||
|           "builder": "@angular-builders/jest:run", | ||||
|           "options": { | ||||
|             "tsConfig": "tsconfig.spec.json", | ||||
|             "assets": [ | ||||
|               "src/favicon.ico", | ||||
|               "src/apple-touch-icon.png", | ||||
|               "src/assets", | ||||
|               "src/manifest.webmanifest" | ||||
|             ], | ||||
|             "styles": [ | ||||
|               "src/styles.scss" | ||||
|             ], | ||||
|             "scripts": [] | ||||
|           } | ||||
|         }, | ||||
|         "e2e": { | ||||
|           "builder": "@cypress/schematic:cypress", | ||||
|           "options": { | ||||
|             "devServerTarget": "paperless-ui:serve", | ||||
|             "watch": true, | ||||
|             "headless": false | ||||
|           }, | ||||
|           "configurations": { | ||||
|             "production": { | ||||
|               "devServerTarget": "paperless-ui:serve:production" | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         "cypress-run": { | ||||
|           "builder": "@cypress/schematic:cypress", | ||||
|           "options": { | ||||
|             "devServerTarget": "paperless-ui:serve" | ||||
|           }, | ||||
|           "configurations": { | ||||
|             "production": { | ||||
|               "devServerTarget": "paperless-ui:serve:production" | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         "cypress-open": { | ||||
|           "builder": "@cypress/schematic:cypress", | ||||
|           "options": { | ||||
|             "watch": true, | ||||
|             "headless": false | ||||
|           } | ||||
|         }, | ||||
|         "lint": { | ||||
|           "builder": "@angular-eslint/builder:lint", | ||||
|           "options": { | ||||
|             "lintFilePatterns": [ | ||||
|               "src/**/*.ts", | ||||
|               "src/**/*.html" | ||||
|             ] | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "defaultProject": "paperless-ui", | ||||
|   "cli": { | ||||
|     "schematicCollections": [ | ||||
|       "@angular-eslint/schematics" | ||||
|     ] | ||||
|   } | ||||
| } | ||||
|   | ||||
							
								
								
									
										3239
									
								
								src-ui/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										3239
									
								
								src-ui/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -40,17 +40,23 @@ | ||||
|   "devDependencies": { | ||||
|     "@angular-builders/jest": "14.1.0", | ||||
|     "@angular-devkit/build-angular": "~14.2.7", | ||||
|     "@angular-eslint/builder": "14.4.0", | ||||
|     "@angular-eslint/eslint-plugin": "14.4.0", | ||||
|     "@angular-eslint/eslint-plugin-template": "14.4.0", | ||||
|     "@angular-eslint/schematics": "14.4.0", | ||||
|     "@angular-eslint/template-parser": "14.4.0", | ||||
|     "@angular/cli": "~14.2.7", | ||||
|     "@angular/compiler-cli": "~14.2.8", | ||||
|     "@types/jest": "28.1.6", | ||||
|     "@types/node": "^18.7.23", | ||||
|     "codelyzer": "^6.0.2", | ||||
|     "@typescript-eslint/eslint-plugin": "5.43.0", | ||||
|     "@typescript-eslint/parser": "5.43.0", | ||||
|     "concurrently": "7.4.0", | ||||
|     "eslint": "^8.28.0", | ||||
|     "jest": "28.1.3", | ||||
|     "jest-environment-jsdom": "^29.2.2", | ||||
|     "jest-preset-angular": "^12.2.3", | ||||
|     "ts-node": "~10.9.1", | ||||
|     "tslint": "~6.1.3", | ||||
|     "typescript": "~4.8.4", | ||||
|     "wait-on": "~6.0.1" | ||||
|   }, | ||||
|   | ||||
| @@ -1,152 +0,0 @@ | ||||
| { | ||||
|   "extends": "tslint:recommended", | ||||
|   "rulesDirectory": [ | ||||
|     "codelyzer" | ||||
|   ], | ||||
|   "rules": { | ||||
|     "align": { | ||||
|       "options": [ | ||||
|         "parameters", | ||||
|         "statements" | ||||
|       ] | ||||
|     }, | ||||
|     "array-type": false, | ||||
|     "arrow-return-shorthand": true, | ||||
|     "curly": true, | ||||
|     "deprecation": { | ||||
|       "severity": "warning" | ||||
|     }, | ||||
|     "eofline": true, | ||||
|     "import-blacklist": [ | ||||
|       true, | ||||
|       "rxjs/Rx" | ||||
|     ], | ||||
|     "import-spacing": true, | ||||
|     "indent": { | ||||
|       "options": [ | ||||
|         "spaces" | ||||
|       ] | ||||
|     }, | ||||
|     "max-classes-per-file": false, | ||||
|     "max-line-length": [ | ||||
|       true, | ||||
|       140 | ||||
|     ], | ||||
|     "member-ordering": [ | ||||
|       true, | ||||
|       { | ||||
|         "order": [ | ||||
|           "static-field", | ||||
|           "instance-field", | ||||
|           "static-method", | ||||
|           "instance-method" | ||||
|         ] | ||||
|       } | ||||
|     ], | ||||
|     "no-console": [ | ||||
|       true, | ||||
|       "debug", | ||||
|       "info", | ||||
|       "time", | ||||
|       "timeEnd", | ||||
|       "trace" | ||||
|     ], | ||||
|     "no-empty": false, | ||||
|     "no-inferrable-types": [ | ||||
|       true, | ||||
|       "ignore-params" | ||||
|     ], | ||||
|     "no-non-null-assertion": true, | ||||
|     "no-redundant-jsdoc": true, | ||||
|     "no-switch-case-fall-through": true, | ||||
|     "no-var-requires": false, | ||||
|     "object-literal-key-quotes": [ | ||||
|       true, | ||||
|       "as-needed" | ||||
|     ], | ||||
|     "quotemark": [ | ||||
|       true, | ||||
|       "single" | ||||
|     ], | ||||
|     "semicolon": { | ||||
|       "options": [ | ||||
|         "always" | ||||
|       ] | ||||
|     }, | ||||
|     "space-before-function-paren": { | ||||
|       "options": { | ||||
|         "anonymous": "never", | ||||
|         "asyncArrow": "always", | ||||
|         "constructor": "never", | ||||
|         "method": "never", | ||||
|         "named": "never" | ||||
|       } | ||||
|     }, | ||||
|     "typedef": [ | ||||
|       true, | ||||
|       "call-signature" | ||||
|     ], | ||||
|     "typedef-whitespace": { | ||||
|       "options": [ | ||||
|         { | ||||
|           "call-signature": "nospace", | ||||
|           "index-signature": "nospace", | ||||
|           "parameter": "nospace", | ||||
|           "property-declaration": "nospace", | ||||
|           "variable-declaration": "nospace" | ||||
|         }, | ||||
|         { | ||||
|           "call-signature": "onespace", | ||||
|           "index-signature": "onespace", | ||||
|           "parameter": "onespace", | ||||
|           "property-declaration": "onespace", | ||||
|           "variable-declaration": "onespace" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "variable-name": { | ||||
|       "options": [ | ||||
|         "ban-keywords", | ||||
|         "check-format", | ||||
|         "allow-pascal-case" | ||||
|       ] | ||||
|     }, | ||||
|     "whitespace": { | ||||
|       "options": [ | ||||
|         "check-branch", | ||||
|         "check-decl", | ||||
|         "check-operator", | ||||
|         "check-separator", | ||||
|         "check-type", | ||||
|         "check-typecast" | ||||
|       ] | ||||
|     }, | ||||
|     "component-class-suffix": true, | ||||
|     "contextual-lifecycle": true, | ||||
|     "directive-class-suffix": true, | ||||
|     "no-conflicting-lifecycle": true, | ||||
|     "no-host-metadata-property": true, | ||||
|     "no-input-rename": true, | ||||
|     "no-inputs-metadata-property": true, | ||||
|     "no-output-native": true, | ||||
|     "no-output-on-prefix": true, | ||||
|     "no-output-rename": true, | ||||
|     "no-outputs-metadata-property": true, | ||||
|     "template-banana-in-box": true, | ||||
|     "template-no-negated-async": true, | ||||
|     "use-lifecycle-interface": true, | ||||
|     "use-pipe-transform-interface": true, | ||||
|     "directive-selector": [ | ||||
|       true, | ||||
|       "attribute", | ||||
|       "app", | ||||
|       "camelCase" | ||||
|     ], | ||||
|     "component-selector": [ | ||||
|       true, | ||||
|       "element", | ||||
|       "app", | ||||
|       "kebab-case" | ||||
|     ] | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Michael Shamoon
					Michael Shamoon