mirror of
				https://github.com/crypto-pro-web/crypto-pro-js.git
				synced 2025-10-31 06:13:22 +03:00 
			
		
		
		
	актуализировал пример для Angular 15
This commit is contained in:
		
							parent
							
								
									c784890145
								
							
						
					
					
						commit
						e44fe10232
					
				| @ -8,6 +8,9 @@ indent_size = 2 | ||||
| insert_final_newline = true | ||||
| trim_trailing_whitespace = true | ||||
| 
 | ||||
| [*.ts] | ||||
| quote_type = single | ||||
| 
 | ||||
| [*.md] | ||||
| max_line_length = off | ||||
| trim_trailing_whitespace = false | ||||
|  | ||||
							
								
								
									
										24
									
								
								examples/angular/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								examples/angular/.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,21 +1,18 @@ | ||||
| # See http://help.github.com/ignore-files/ for more about ignoring files. | ||||
| 
 | ||||
| # compiled output | ||||
| # Compiled output | ||||
| /dist | ||||
| /tmp | ||||
| /out-tsc | ||||
| # Only exists if Bazel was run | ||||
| /bazel-out | ||||
| 
 | ||||
| # dependencies | ||||
| # Node | ||||
| /node_modules | ||||
| 
 | ||||
| # profiling files | ||||
| chrome-profiler-events*.json | ||||
| speed-measure-plugin*.json | ||||
| npm-debug.log | ||||
| yarn-error.log | ||||
| 
 | ||||
| # IDEs and editors | ||||
| /.idea | ||||
| .idea/ | ||||
| .project | ||||
| .classpath | ||||
| .c9/ | ||||
| @ -23,7 +20,7 @@ speed-measure-plugin*.json | ||||
| .settings/ | ||||
| *.sublime-workspace | ||||
| 
 | ||||
| # IDE - VSCode | ||||
| # Visual Studio Code | ||||
| .vscode/* | ||||
| !.vscode/settings.json | ||||
| !.vscode/tasks.json | ||||
| @ -31,16 +28,15 @@ speed-measure-plugin*.json | ||||
| !.vscode/extensions.json | ||||
| .history/* | ||||
| 
 | ||||
| # misc | ||||
| /.sass-cache | ||||
| # Miscellaneous | ||||
| /.angular/cache | ||||
| .sass-cache/ | ||||
| /connect.lock | ||||
| /coverage | ||||
| /libpeerconnection.log | ||||
| npm-debug.log | ||||
| yarn-error.log | ||||
| testem.log | ||||
| /typings | ||||
| 
 | ||||
| # System Files | ||||
| # System files | ||||
| .DS_Store | ||||
| Thumbs.db | ||||
|  | ||||
							
								
								
									
										4
									
								
								examples/angular/.vscode/extensions.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								examples/angular/.vscode/extensions.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| { | ||||
|   // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 | ||||
|   "recommendations": ["angular.ng-template"] | ||||
| } | ||||
							
								
								
									
										20
									
								
								examples/angular/.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								examples/angular/.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | ||||
| { | ||||
|   // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | ||||
|   "version": "0.2.0", | ||||
|   "configurations": [ | ||||
|     { | ||||
|       "name": "ng serve", | ||||
|       "type": "pwa-chrome", | ||||
|       "request": "launch", | ||||
|       "preLaunchTask": "npm: start", | ||||
|       "url": "http://localhost:4200/" | ||||
|     }, | ||||
|     { | ||||
|       "name": "ng test", | ||||
|       "type": "chrome", | ||||
|       "request": "launch", | ||||
|       "preLaunchTask": "npm: test", | ||||
|       "url": "http://localhost:9876/debug.html" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
							
								
								
									
										42
									
								
								examples/angular/.vscode/tasks.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								examples/angular/.vscode/tasks.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,42 @@ | ||||
| { | ||||
|   // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 | ||||
|   "version": "2.0.0", | ||||
|   "tasks": [ | ||||
|     { | ||||
|       "type": "npm", | ||||
|       "script": "start", | ||||
|       "isBackground": true, | ||||
|       "problemMatcher": { | ||||
|         "owner": "typescript", | ||||
|         "pattern": "$tsc", | ||||
|         "background": { | ||||
|           "activeOnStart": true, | ||||
|           "beginsPattern": { | ||||
|             "regexp": "(.*?)" | ||||
|           }, | ||||
|           "endsPattern": { | ||||
|             "regexp": "bundle generation complete" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "npm", | ||||
|       "script": "test", | ||||
|       "isBackground": true, | ||||
|       "problemMatcher": { | ||||
|         "owner": "typescript", | ||||
|         "pattern": "$tsc", | ||||
|         "background": { | ||||
|           "activeOnStart": true, | ||||
|           "beginsPattern": { | ||||
|             "regexp": "(.*?)" | ||||
|           }, | ||||
|           "endsPattern": { | ||||
|             "regexp": "bundle generation complete" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   ] | ||||
| } | ||||
| @ -1,10 +1,10 @@ | ||||
| # Angular | ||||
| # CryptoProExampleAngular | ||||
| 
 | ||||
| This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.0.7. | ||||
| This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.0.5. | ||||
| 
 | ||||
| ## Development server | ||||
| 
 | ||||
| Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. | ||||
| Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. | ||||
| 
 | ||||
| ## Code scaffolding | ||||
| 
 | ||||
| @ -12,7 +12,7 @@ Run `ng generate component component-name` to generate a new component. You can | ||||
| 
 | ||||
| ## Build | ||||
| 
 | ||||
| Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. | ||||
| Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. | ||||
| 
 | ||||
| ## Running unit tests | ||||
| 
 | ||||
| @ -20,8 +20,8 @@ Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github. | ||||
| 
 | ||||
| ## Running end-to-end tests | ||||
| 
 | ||||
| Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). | ||||
| Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. | ||||
| 
 | ||||
| ## Further help | ||||
| 
 | ||||
| To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). | ||||
| To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. | ||||
|  | ||||
| @ -1,9 +1,9 @@ | ||||
| { | ||||
|   "$schema": "./node_modules/@angular/cli/lib/config/schema.json", | ||||
|   "version": 1,  | ||||
|   "version": 1, | ||||
|   "newProjectRoot": "projects", | ||||
|   "projects": { | ||||
|     "angular": { | ||||
|     "crypto-pro-example-angular": { | ||||
|       "projectType": "application", | ||||
|       "schematics": {}, | ||||
|       "root": "", | ||||
| @ -13,12 +13,13 @@ | ||||
|         "build": { | ||||
|           "builder": "@angular-devkit/build-angular:browser", | ||||
|           "options": { | ||||
|             "outputPath": "dist/angular", | ||||
|             "outputPath": "dist/crypto-pro-example-angular", | ||||
|             "index": "src/index.html", | ||||
|             "main": "src/main.ts", | ||||
|             "polyfills": "src/polyfills.ts", | ||||
|             "polyfills": [ | ||||
|               "zone.js" | ||||
|             ], | ||||
|             "tsConfig": "tsconfig.app.json", | ||||
|             "aot": true, | ||||
|             "assets": [ | ||||
|               "src/favicon.ico", | ||||
|               "src/assets" | ||||
| @ -30,59 +31,57 @@ | ||||
|           }, | ||||
|           "configurations": { | ||||
|             "production": { | ||||
|               "fileReplacements": [ | ||||
|                 { | ||||
|                   "replace": "src/environments/environment.ts", | ||||
|                   "with": "src/environments/environment.prod.ts" | ||||
|                 } | ||||
|               ], | ||||
|               "optimization": true, | ||||
|               "outputHashing": "all", | ||||
|               "sourceMap": false, | ||||
|               "extractCss": true, | ||||
|               "namedChunks": false, | ||||
|               "extractLicenses": true, | ||||
|               "vendorChunk": false, | ||||
|               "buildOptimizer": true, | ||||
|               "budgets": [ | ||||
|                 { | ||||
|                   "type": "initial", | ||||
|                   "maximumWarning": "2mb", | ||||
|                   "maximumError": "5mb" | ||||
|                   "maximumWarning": "500kb", | ||||
|                   "maximumError": "1mb" | ||||
|                 }, | ||||
|                 { | ||||
|                   "type": "anyComponentStyle", | ||||
|                   "maximumWarning": "6kb", | ||||
|                   "maximumError": "10kb" | ||||
|                   "maximumWarning": "2kb", | ||||
|                   "maximumError": "4kb" | ||||
|                 } | ||||
|               ] | ||||
|               ], | ||||
|               "outputHashing": "all" | ||||
|             }, | ||||
|             "development": { | ||||
|               "buildOptimizer": false, | ||||
|               "optimization": false, | ||||
|               "vendorChunk": true, | ||||
|               "extractLicenses": false, | ||||
|               "sourceMap": true, | ||||
|               "namedChunks": true | ||||
|             } | ||||
|           } | ||||
|           }, | ||||
|           "defaultConfiguration": "production" | ||||
|         }, | ||||
|         "serve": { | ||||
|           "builder": "@angular-devkit/build-angular:dev-server", | ||||
|           "options": { | ||||
|             "browserTarget": "angular:build" | ||||
|           }, | ||||
|           "configurations": { | ||||
|             "production": { | ||||
|               "browserTarget": "angular:build:production" | ||||
|               "browserTarget": "crypto-pro-example-angular:build:production" | ||||
|             }, | ||||
|             "development": { | ||||
|               "browserTarget": "crypto-pro-example-angular:build:development" | ||||
|             } | ||||
|           } | ||||
|           }, | ||||
|           "defaultConfiguration": "development" | ||||
|         }, | ||||
|         "extract-i18n": { | ||||
|           "builder": "@angular-devkit/build-angular:extract-i18n", | ||||
|           "options": { | ||||
|             "browserTarget": "angular:build" | ||||
|             "browserTarget": "crypto-pro-example-angular:build" | ||||
|           } | ||||
|         }, | ||||
|         "test": { | ||||
|           "builder": "@angular-devkit/build-angular:karma", | ||||
|           "options": { | ||||
|             "main": "src/test.ts", | ||||
|             "polyfills": "src/polyfills.ts", | ||||
|             "polyfills": [ | ||||
|               "zone.js", | ||||
|               "zone.js/testing" | ||||
|             ], | ||||
|             "tsConfig": "tsconfig.spec.json", | ||||
|             "karmaConfig": "karma.conf.js", | ||||
|             "assets": [ | ||||
|               "src/favicon.ico", | ||||
|               "src/assets" | ||||
| @ -92,33 +91,8 @@ | ||||
|             ], | ||||
|             "scripts": [] | ||||
|           } | ||||
|         }, | ||||
|         "lint": { | ||||
|           "builder": "@angular-devkit/build-angular:tslint", | ||||
|           "options": { | ||||
|             "tsConfig": [ | ||||
|               "tsconfig.app.json", | ||||
|               "tsconfig.spec.json", | ||||
|               "e2e/tsconfig.json" | ||||
|             ], | ||||
|             "exclude": [ | ||||
|               "**/node_modules/**" | ||||
|             ] | ||||
|           } | ||||
|         }, | ||||
|         "e2e": { | ||||
|           "builder": "@angular-devkit/build-angular:protractor", | ||||
|           "options": { | ||||
|             "protractorConfig": "e2e/protractor.conf.js", | ||||
|             "devServerTarget": "angular:serve" | ||||
|           }, | ||||
|           "configurations": { | ||||
|             "production": { | ||||
|               "devServerTarget": "angular:serve:production" | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }}, | ||||
|   "defaultProject": "angular" | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -1,12 +0,0 @@ | ||||
| # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. | ||||
| # For additional information regarding the format and rule options, please see: | ||||
| # https://github.com/browserslist/browserslist#queries | ||||
| 
 | ||||
| # You can see what browsers were selected by your queries by running: | ||||
| #   npx browserslist | ||||
| 
 | ||||
| > 0.5% | ||||
| last 2 versions | ||||
| Firefox ESR | ||||
| not dead | ||||
| not IE 9-11 # For IE 9-11 support, remove 'not'. | ||||
| @ -1,32 +0,0 @@ | ||||
| // @ts-check
 | ||||
| // Protractor configuration file, see link for more information
 | ||||
| // https://github.com/angular/protractor/blob/master/lib/config.ts
 | ||||
| 
 | ||||
| const { SpecReporter } = require('jasmine-spec-reporter'); | ||||
| 
 | ||||
| /** | ||||
|  * @type { import("protractor").Config } | ||||
|  */ | ||||
| exports.config = { | ||||
|   allScriptsTimeout: 11000, | ||||
|   specs: [ | ||||
|     './src/**/*.e2e-spec.ts' | ||||
|   ], | ||||
|   capabilities: { | ||||
|     browserName: 'chrome' | ||||
|   }, | ||||
|   directConnect: true, | ||||
|   baseUrl: 'http://localhost:4200/', | ||||
|   framework: 'jasmine', | ||||
|   jasmineNodeOpts: { | ||||
|     showColors: true, | ||||
|     defaultTimeoutInterval: 30000, | ||||
|     print: function() {} | ||||
|   }, | ||||
|   onPrepare() { | ||||
|     require('ts-node').register({ | ||||
|       project: require('path').join(__dirname, './tsconfig.json') | ||||
|     }); | ||||
|     jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); | ||||
|   } | ||||
| }; | ||||
| @ -1,23 +0,0 @@ | ||||
| import { AppPage } from './app.po'; | ||||
| import { browser, logging } from 'protractor'; | ||||
| 
 | ||||
| describe('workspace-project App', () => { | ||||
|   let page: AppPage; | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     page = new AppPage(); | ||||
|   }); | ||||
| 
 | ||||
|   it('should display welcome message', () => { | ||||
|     page.navigateTo(); | ||||
|     expect(page.getTitleText()).toEqual('angular app is running!'); | ||||
|   }); | ||||
| 
 | ||||
|   afterEach(async () => { | ||||
|     // Assert that there are no errors emitted from the browser
 | ||||
|     const logs = await browser.manage().logs().get(logging.Type.BROWSER); | ||||
|     expect(logs).not.toContain(jasmine.objectContaining({ | ||||
|       level: logging.Level.SEVERE, | ||||
|     } as logging.Entry)); | ||||
|   }); | ||||
| }); | ||||
| @ -1,11 +0,0 @@ | ||||
| import { browser, by, element } from 'protractor'; | ||||
| 
 | ||||
| export class AppPage { | ||||
|   navigateTo(): Promise<unknown> { | ||||
|     return browser.get(browser.baseUrl) as Promise<unknown>; | ||||
|   } | ||||
| 
 | ||||
|   getTitleText(): Promise<string> { | ||||
|     return element(by.css('app-root .content span')).getText() as Promise<string>; | ||||
|   } | ||||
| } | ||||
| @ -1,13 +0,0 @@ | ||||
| { | ||||
|   "extends": "../tsconfig.json", | ||||
|   "compilerOptions": { | ||||
|     "outDir": "../out-tsc/e2e", | ||||
|     "module": "commonjs", | ||||
|     "target": "es5", | ||||
|     "types": [ | ||||
|       "jasmine", | ||||
|       "jasminewd2", | ||||
|       "node" | ||||
|     ] | ||||
|   } | ||||
| } | ||||
| @ -1,32 +0,0 @@ | ||||
| // Karma configuration file, see link for more information
 | ||||
| // https://karma-runner.github.io/1.0/config/configuration-file.html
 | ||||
| 
 | ||||
| module.exports = function (config) { | ||||
|   config.set({ | ||||
|     basePath: '', | ||||
|     frameworks: ['jasmine', '@angular-devkit/build-angular'], | ||||
|     plugins: [ | ||||
|       require('karma-jasmine'), | ||||
|       require('karma-chrome-launcher'), | ||||
|       require('karma-jasmine-html-reporter'), | ||||
|       require('karma-coverage-istanbul-reporter'), | ||||
|       require('@angular-devkit/build-angular/plugins/karma') | ||||
|     ], | ||||
|     client: { | ||||
|       clearContext: false // leave Jasmine Spec Runner output visible in browser
 | ||||
|     }, | ||||
|     coverageIstanbulReporter: { | ||||
|       dir: require('path').join(__dirname, './coverage/angular'), | ||||
|       reports: ['html', 'lcovonly', 'text-summary'], | ||||
|       fixWebpackSourcePaths: true | ||||
|     }, | ||||
|     reporters: ['progress', 'kjhtml'], | ||||
|     port: 9876, | ||||
|     colors: true, | ||||
|     logLevel: config.LOG_INFO, | ||||
|     autoWatch: true, | ||||
|     browsers: ['Chrome'], | ||||
|     singleRun: false, | ||||
|     restartOnFileChange: true | ||||
|   }); | ||||
| }; | ||||
							
								
								
									
										26190
									
								
								examples/angular/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										26190
									
								
								examples/angular/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,51 +1,39 @@ | ||||
| { | ||||
|   "name": "crypto-pro-example-angular", | ||||
|   "version": "0.0.0", | ||||
|   "description": "Пример использования пакета crypto-pro в typescript проекте с angular", | ||||
|   "scripts": { | ||||
|     "serve": "static --host-address localhost --port 8082 dist/angular", | ||||
|     "ng": "ng", | ||||
|     "start": "ng serve", | ||||
|     "build": "ng build", | ||||
|     "test": "ng test", | ||||
|     "lint": "ng lint", | ||||
|     "e2e": "ng e2e" | ||||
|     "watch": "ng build --watch --configuration development", | ||||
|     "test": "ng test" | ||||
|   }, | ||||
|   "private": true, | ||||
|   "dependencies": { | ||||
|     "@angular/animations": "~9.0.7", | ||||
|     "@angular/common": "~9.0.7", | ||||
|     "@angular/compiler": "~9.0.7", | ||||
|     "@angular/core": "~9.0.7", | ||||
|     "@angular/forms": "~9.0.7", | ||||
|     "@angular/platform-browser": "~9.0.7", | ||||
|     "@angular/platform-browser-dynamic": "~9.0.7", | ||||
|     "@angular/router": "~9.0.7", | ||||
|     "@angular/animations": "^15.0.0", | ||||
|     "@angular/common": "^15.0.0", | ||||
|     "@angular/compiler": "^15.0.0", | ||||
|     "@angular/core": "^15.0.0", | ||||
|     "@angular/forms": "^15.0.0", | ||||
|     "@angular/platform-browser": "^15.0.0", | ||||
|     "@angular/platform-browser-dynamic": "^15.0.0", | ||||
|     "@angular/router": "^15.0.0", | ||||
|     "crypto-pro": "^2.3.1", | ||||
|     "rxjs": "~6.5.4", | ||||
|     "tslib": "^1.10.0", | ||||
|     "zone.js": "~0.10.2" | ||||
|     "rxjs": "~7.5.0", | ||||
|     "tslib": "^2.3.0", | ||||
|     "zone.js": "~0.12.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@angular-devkit/build-angular": "~0.900.7", | ||||
|     "@angular/cli": "~9.0.7", | ||||
|     "@angular/compiler-cli": "~9.0.7", | ||||
|     "@angular/language-service": "~9.0.7", | ||||
|     "@types/node": "^12.11.1", | ||||
|     "@types/jasmine": "~3.5.0", | ||||
|     "@types/jasminewd2": "~2.0.3", | ||||
|     "codelyzer": "^5.1.2", | ||||
|     "jasmine-core": "~3.5.0", | ||||
|     "jasmine-spec-reporter": "~4.2.1", | ||||
|     "karma": "~4.3.0", | ||||
|     "@angular-devkit/build-angular": "^15.0.5", | ||||
|     "@angular/cli": "~15.0.5", | ||||
|     "@angular/compiler-cli": "^15.0.0", | ||||
|     "@types/jasmine": "~4.3.0", | ||||
|     "jasmine-core": "~4.5.0", | ||||
|     "karma": "~6.4.0", | ||||
|     "karma-chrome-launcher": "~3.1.0", | ||||
|     "karma-coverage-istanbul-reporter": "~2.1.0", | ||||
|     "karma-jasmine": "~2.0.1", | ||||
|     "karma-jasmine-html-reporter": "^1.4.2", | ||||
|     "node-static": "0.7.11", | ||||
|     "protractor": "~5.4.3", | ||||
|     "ts-node": "~8.3.0", | ||||
|     "tslint": "~5.18.0", | ||||
|     "typescript": "~3.7.5" | ||||
|     "karma-coverage": "~2.2.0", | ||||
|     "karma-jasmine": "~5.1.0", | ||||
|     "karma-jasmine-html-reporter": "~2.0.0", | ||||
|     "typescript": "~4.8.2" | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -1,24 +0,0 @@ | ||||
| import { TestBed, async } from '@angular/core/testing'; | ||||
| import { AppComponent } from './app.component'; | ||||
| 
 | ||||
| describe('AppComponent', () => { | ||||
|   beforeEach(async(() => { | ||||
|     TestBed.configureTestingModule({ | ||||
|       declarations: [ | ||||
|         AppComponent | ||||
|       ], | ||||
|     }).compileComponents(); | ||||
|   })); | ||||
| 
 | ||||
|   it('should create the app', () => { | ||||
|     const fixture = TestBed.createComponent(AppComponent); | ||||
|     const app = fixture.componentInstance; | ||||
|     expect(app).toBeTruthy(); | ||||
|   }); | ||||
| 
 | ||||
|   it(`should have as title 'angular'`, () => { | ||||
|     const fixture = TestBed.createComponent(AppComponent); | ||||
|     const app = fixture.componentInstance; | ||||
|     expect(app.title).toEqual('angular'); | ||||
|   }); | ||||
| }); | ||||
| @ -6,5 +6,5 @@ import { Component } from '@angular/core'; | ||||
|   styleUrls: ['./app.component.css'] | ||||
| }) | ||||
| export class AppComponent { | ||||
|   title = 'angular'; | ||||
|   title = 'crypto-pro-example-angular'; | ||||
| } | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| import { BrowserModule } from '@angular/platform-browser'; | ||||
| import { FormsModule } from '@angular/forms'; | ||||
| import { NgModule } from '@angular/core'; | ||||
| import { FormsModule } from '@angular/forms'; | ||||
| import { BrowserModule } from '@angular/platform-browser'; | ||||
| 
 | ||||
| import { AppComponent } from './app.component'; | ||||
| import { CryptoProComponent } from './crypto-pro/crypto-pro.component'; | ||||
|  | ||||
| @ -1,25 +0,0 @@ | ||||
| import { async, ComponentFixture, TestBed } from '@angular/core/testing'; | ||||
| 
 | ||||
| import { CryptoProComponent } from './crypto-pro.component'; | ||||
| 
 | ||||
| describe('CryptoProComponent', () => { | ||||
|   let component: CryptoProComponent; | ||||
|   let fixture: ComponentFixture<CryptoProComponent>; | ||||
| 
 | ||||
|   beforeEach(async(() => { | ||||
|     TestBed.configureTestingModule({ | ||||
|       declarations: [ CryptoProComponent ] | ||||
|     }) | ||||
|     .compileComponents(); | ||||
|   })); | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     fixture = TestBed.createComponent(CryptoProComponent); | ||||
|     component = fixture.componentInstance; | ||||
|     fixture.detectChanges(); | ||||
|   }); | ||||
| 
 | ||||
|   it('should create', () => { | ||||
|     expect(component).toBeTruthy(); | ||||
|   }); | ||||
| }); | ||||
| @ -20,23 +20,23 @@ import { | ||||
| export class CryptoProComponent implements OnInit { | ||||
|   public message = 'Привет мир!'; | ||||
|   public certificateList: Certificate[] = []; | ||||
|   public hash: string = null; | ||||
|   public hash: string | null = null; | ||||
|   public hashStatus = 'Не вычислен'; | ||||
|   public detachedSignature = true; | ||||
|   public thumbprint: string = null; | ||||
|   public signature: string = null; | ||||
|   public thumbprint: string | null = null; | ||||
|   public signature: string | null = null; | ||||
|   public signatureStatus = 'Не создана'; | ||||
|   public customSystemInfo: string = null; | ||||
|   public customSystemInfoError: string = null; | ||||
|   public systemInfo: SystemInfo & { | ||||
|   public customSystemInfo: string | null = null; | ||||
|   public customSystemInfoError: string | null = null; | ||||
|   public systemInfo: undefined | SystemInfo & { | ||||
|     isValidSystemSetup: boolean; | ||||
|   }; | ||||
|   public certificateListError: string = null; | ||||
|   public certificateInfoError: string = null; | ||||
|   public hashError: string = null; | ||||
|   public signatureError: string = null; | ||||
|   public systemInfoError: string = null; | ||||
|   public certInfo = null; | ||||
|   public certificateListError: string | null = null; | ||||
|   public certificateInfoError: string | null = null; | ||||
|   public hashError: string | null = null; | ||||
|   public signatureError: string | null = null; | ||||
|   public systemInfoError: string | null = null; | ||||
|   public certInfo: { [key: string]: unknown } | null = null; | ||||
| 
 | ||||
|   constructor() { } | ||||
| 
 | ||||
| @ -46,7 +46,11 @@ export class CryptoProComponent implements OnInit { | ||||
|     this.displaySystemInfo(); | ||||
|   } | ||||
| 
 | ||||
|   public async createSignature(thumbprint) { | ||||
|   public async createSignature(thumbprint: string | null) { | ||||
|     if (!thumbprint) { | ||||
|       return; | ||||
|     } | ||||
| 
 | ||||
|     this.hash = null; | ||||
|     this.hashError = null; | ||||
|     this.signature = null; | ||||
| @ -56,7 +60,7 @@ export class CryptoProComponent implements OnInit { | ||||
|     try { | ||||
|       this.hash = await createHash(this.message); | ||||
|     } catch (error) { | ||||
|       this.hashError = error.message; | ||||
|       this.hashError = (error as Error).message; | ||||
| 
 | ||||
|       return; | ||||
|     } | ||||
| @ -68,7 +72,7 @@ export class CryptoProComponent implements OnInit { | ||||
|       try { | ||||
|         this.signature = await createDetachedSignature(thumbprint, this.hash); | ||||
|       } catch (error) { | ||||
|         this.signatureError = error.message; | ||||
|         this.signatureError = (error as Error).message; | ||||
|       } | ||||
| 
 | ||||
|       this.signatureStatus = 'Не создана'; | ||||
| @ -79,13 +83,17 @@ export class CryptoProComponent implements OnInit { | ||||
|     try { | ||||
|       this.signature = await createAttachedSignature(thumbprint, this.message); | ||||
|     } catch (error) { | ||||
|       this.signatureError = error.message; | ||||
|       this.signatureError = (error as Error).message; | ||||
|     } | ||||
| 
 | ||||
|     this.signatureStatus = 'Не создана'; | ||||
|   } | ||||
| 
 | ||||
|   public async showCertInfo(thumbprint) { | ||||
|   public async showCertInfo(thumbprint: string | null) { | ||||
|     if (!thumbprint) { | ||||
|       return; | ||||
|     } | ||||
| 
 | ||||
|     this.certInfo = null; | ||||
|     this.certificateInfoError = null; | ||||
| 
 | ||||
| @ -119,7 +127,7 @@ export class CryptoProComponent implements OnInit { | ||||
|         ]), | ||||
|       }; | ||||
|     } catch (error) { | ||||
|       this.certificateInfoError = error.message; | ||||
|       this.certificateInfoError = (error as Error).message; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
| @ -129,7 +137,7 @@ export class CryptoProComponent implements OnInit { | ||||
|     try { | ||||
|       this.certificateList = await getUserCertificates(); | ||||
|     } catch (error) { | ||||
|       this.certificateListError = error.message; | ||||
|       this.certificateListError = (error as Error).message; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
| @ -142,7 +150,7 @@ export class CryptoProComponent implements OnInit { | ||||
|         isValidSystemSetup: await isValidSystemSetup() | ||||
|       }; | ||||
|     } catch (error) { | ||||
|       this.systemInfoError = error.message; | ||||
|       this.systemInfoError = (error as Error).message; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
| @ -169,7 +177,7 @@ export class CryptoProComponent implements OnInit { | ||||
|             } catch (error) { | ||||
|               console.error(error); | ||||
| 
 | ||||
|               throw new Error(utils._extractMeaningfulErrorMessage(error) || 'Ошибка при извлечении информации'); | ||||
|               throw new Error(utils._extractMeaningfulErrorMessage(error as Error) || 'Ошибка при извлечении информации'); | ||||
|             } | ||||
| 
 | ||||
|             return [ | ||||
| @ -181,7 +189,7 @@ export class CryptoProComponent implements OnInit { | ||||
|         ); | ||||
|       }); | ||||
|     } catch (error) { | ||||
|       this.customSystemInfoError = error.message; | ||||
|       this.customSystemInfoError = (error as Error).message; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -1,3 +0,0 @@ | ||||
| export const environment = { | ||||
|   production: true | ||||
| }; | ||||
| @ -1,16 +0,0 @@ | ||||
| // This file can be replaced during build by using the `fileReplacements` array.
 | ||||
| // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
 | ||||
| // The list of file replacements can be found in `angular.json`.
 | ||||
| 
 | ||||
| export const environment = { | ||||
|   production: false | ||||
| }; | ||||
| 
 | ||||
| /* | ||||
|  * For easier debugging in development mode, you can import the following file | ||||
|  * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. | ||||
|  * | ||||
|  * This import should be commented out in production mode because it will have a negative impact | ||||
|  * on performance if an error is thrown. | ||||
|  */ | ||||
| // import 'zone.js/dist/zone-error';  // Included with Angular CLI.
 | ||||
| @ -2,7 +2,7 @@ | ||||
| <html lang="en"> | ||||
| <head> | ||||
|   <meta charset="utf-8"> | ||||
|   <title>Angular</title> | ||||
|   <title>CryptoProExampleAngular</title> | ||||
|   <base href="/"> | ||||
|   <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||
|   <link rel="icon" type="image/x-icon" href="favicon.ico"> | ||||
|  | ||||
| @ -1,12 +1,7 @@ | ||||
| import { enableProdMode } from '@angular/core'; | ||||
| import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; | ||||
| 
 | ||||
| import { AppModule } from './app/app.module'; | ||||
| import { environment } from './environments/environment'; | ||||
| 
 | ||||
| if (environment.production) { | ||||
|   enableProdMode(); | ||||
| } | ||||
| 
 | ||||
| platformBrowserDynamic().bootstrapModule(AppModule) | ||||
|   .catch(err => console.error(err)); | ||||
|  | ||||
| @ -1,63 +0,0 @@ | ||||
| /** | ||||
|  * This file includes polyfills needed by Angular and is loaded before the app. | ||||
|  * You can add your own extra polyfills to this file. | ||||
|  * | ||||
|  * This file is divided into 2 sections: | ||||
|  *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. | ||||
|  *   2. Application imports. Files imported after ZoneJS that should be loaded before your main | ||||
|  *      file. | ||||
|  * | ||||
|  * The current setup is for so-called "evergreen" browsers; the last versions of browsers that | ||||
|  * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), | ||||
|  * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. | ||||
|  * | ||||
|  * Learn more in https://angular.io/guide/browser-support
 | ||||
|  */ | ||||
| 
 | ||||
| /*************************************************************************************************** | ||||
|  * BROWSER POLYFILLS | ||||
|  */ | ||||
| 
 | ||||
| /** IE10 and IE11 requires the following for NgClass support on SVG elements */ | ||||
| // import 'classlist.js';  // Run `npm install --save classlist.js`.
 | ||||
| 
 | ||||
| /** | ||||
|  * Web Animations `@angular/platform-browser/animations` | ||||
|  * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. | ||||
|  * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). | ||||
|  */ | ||||
| // import 'web-animations-js';  // Run `npm install --save web-animations-js`.
 | ||||
| 
 | ||||
| /** | ||||
|  * By default, zone.js will patch all possible macroTask and DomEvents | ||||
|  * user can disable parts of macroTask/DomEvents patch by setting following flags | ||||
|  * because those flags need to be set before `zone.js` being loaded, and webpack | ||||
|  * will put import in the top of bundle, so user need to create a separate file | ||||
|  * in this directory (for example: zone-flags.ts), and put the following flags | ||||
|  * into that file, and then add the following code before importing zone.js. | ||||
|  * import './zone-flags'; | ||||
|  * | ||||
|  * The flags allowed in zone-flags.ts are listed here. | ||||
|  * | ||||
|  * The following flags will work for all browsers. | ||||
|  * | ||||
|  * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
 | ||||
|  * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
 | ||||
|  * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
 | ||||
|  * | ||||
|  *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js | ||||
|  *  with the following flag, it will bypass `zone.js` patch for IE/Edge | ||||
|  * | ||||
|  *  (window as any).__Zone_enable_cross_context_check = true; | ||||
|  * | ||||
|  */ | ||||
| 
 | ||||
| /*************************************************************************************************** | ||||
|  * Zone JS is required by default for Angular itself. | ||||
|  */ | ||||
| import 'zone.js/dist/zone';  // Included with Angular CLI.
 | ||||
| 
 | ||||
| 
 | ||||
| /*************************************************************************************************** | ||||
|  * APPLICATION IMPORTS | ||||
|  */ | ||||
| @ -1,25 +0,0 @@ | ||||
| // This file is required by karma.conf.js and loads recursively all the .spec and framework files
 | ||||
| 
 | ||||
| import 'zone.js/dist/zone-testing'; | ||||
| import { getTestBed } from '@angular/core/testing'; | ||||
| import { | ||||
|   BrowserDynamicTestingModule, | ||||
|   platformBrowserDynamicTesting | ||||
| } from '@angular/platform-browser-dynamic/testing'; | ||||
| 
 | ||||
| declare const require: { | ||||
|   context(path: string, deep?: boolean, filter?: RegExp): { | ||||
|     keys(): string[]; | ||||
|     <T>(id: string): T; | ||||
|   }; | ||||
| }; | ||||
| 
 | ||||
| // First, initialize the Angular testing environment.
 | ||||
| getTestBed().initTestEnvironment( | ||||
|   BrowserDynamicTestingModule, | ||||
|   platformBrowserDynamicTesting() | ||||
| ); | ||||
| // Then we find all the tests.
 | ||||
| const context = require.context('./', true, /\.spec\.ts$/); | ||||
| // And load the modules.
 | ||||
| context.keys().map(context); | ||||
| @ -1,3 +1,4 @@ | ||||
| /* To learn more about this file see: https://angular.io/config/tsconfig. */ | ||||
| { | ||||
|   "extends": "./tsconfig.json", | ||||
|   "compilerOptions": { | ||||
| @ -5,8 +6,7 @@ | ||||
|     "types": [] | ||||
|   }, | ||||
|   "files": [ | ||||
|     "src/main.ts", | ||||
|     "src/polyfills.ts" | ||||
|     "src/main.ts" | ||||
|   ], | ||||
|   "include": [ | ||||
|     "src/**/*.d.ts" | ||||
|  | ||||
| @ -1,23 +1,33 @@ | ||||
| /* To learn more about this file see: https://angular.io/config/tsconfig. */ | ||||
| { | ||||
|   "compileOnSave": false, | ||||
|   "compilerOptions": { | ||||
|     "baseUrl": "./", | ||||
|     "outDir": "./dist/out-tsc", | ||||
|     "forceConsistentCasingInFileNames": true, | ||||
|     "strict": true, | ||||
|     "noImplicitOverride": true, | ||||
|     "noPropertyAccessFromIndexSignature": true, | ||||
|     "noImplicitReturns": true, | ||||
|     "noFallthroughCasesInSwitch": true, | ||||
|     "sourceMap": true, | ||||
|     "declaration": false, | ||||
|     "downlevelIteration": true, | ||||
|     "experimentalDecorators": true, | ||||
|     "module": "esnext", | ||||
|     "moduleResolution": "node", | ||||
|     "importHelpers": true, | ||||
|     "target": "es2015", | ||||
|     "target": "ES2022", | ||||
|     "module": "ES2022", | ||||
|     "useDefineForClassFields": false, | ||||
|     "lib": [ | ||||
|       "es2018", | ||||
|       "ES2022", | ||||
|       "dom" | ||||
|     ] | ||||
|   }, | ||||
|   "angularCompilerOptions": { | ||||
|     "fullTemplateTypeCheck": true, | ||||
|     "strictInjectionParameters": true | ||||
|     "enableI18nLegacyMessageIdFormat": false, | ||||
|     "strictInjectionParameters": true, | ||||
|     "strictInputAccessModifiers": true, | ||||
|     "strictTemplates": true | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -1,16 +1,12 @@ | ||||
| /* To learn more about this file see: https://angular.io/config/tsconfig. */ | ||||
| { | ||||
|   "extends": "./tsconfig.json", | ||||
|   "compilerOptions": { | ||||
|     "outDir": "./out-tsc/spec", | ||||
|     "types": [ | ||||
|       "jasmine", | ||||
|       "node" | ||||
|       "jasmine" | ||||
|     ] | ||||
|   }, | ||||
|   "files": [ | ||||
|     "src/test.ts", | ||||
|     "src/polyfills.ts" | ||||
|   ], | ||||
|   "include": [ | ||||
|     "src/**/*.spec.ts", | ||||
|     "src/**/*.d.ts" | ||||
|  | ||||
| @ -1,91 +0,0 @@ | ||||
| { | ||||
|   "extends": "tslint:recommended", | ||||
|   "rules": { | ||||
|     "array-type": false, | ||||
|     "arrow-parens": false, | ||||
|     "deprecation": { | ||||
|       "severity": "warning" | ||||
|     }, | ||||
|     "component-class-suffix": true, | ||||
|     "contextual-lifecycle": true, | ||||
|     "directive-class-suffix": true, | ||||
|     "directive-selector": [ | ||||
|       true, | ||||
|       "attribute", | ||||
|       "app", | ||||
|       "camelCase" | ||||
|     ], | ||||
|     "component-selector": [ | ||||
|       true, | ||||
|       "element", | ||||
|       "app", | ||||
|       "kebab-case" | ||||
|     ], | ||||
|     "import-blacklist": [ | ||||
|       true, | ||||
|       "rxjs/Rx" | ||||
|     ], | ||||
|     "interface-name": false, | ||||
|     "max-classes-per-file": false, | ||||
|     "max-line-length": [ | ||||
|       true, | ||||
|       140 | ||||
|     ], | ||||
|     "member-access": false, | ||||
|     "member-ordering": [ | ||||
|       true, | ||||
|       { | ||||
|         "order": [ | ||||
|           "static-field", | ||||
|           "instance-field", | ||||
|           "static-method", | ||||
|           "instance-method" | ||||
|         ] | ||||
|       } | ||||
|     ], | ||||
|     "no-consecutive-blank-lines": false, | ||||
|     "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" | ||||
|     ], | ||||
|     "object-literal-sort-keys": false, | ||||
|     "ordered-imports": false, | ||||
|     "quotemark": [ | ||||
|       true, | ||||
|       "single" | ||||
|     ], | ||||
|     "trailing-comma": false, | ||||
|     "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 | ||||
|   }, | ||||
|   "rulesDirectory": [ | ||||
|     "codelyzer" | ||||
|   ] | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 vgoma
						vgoma