@albi_scando/as-user-lib 0.0.1-rc8 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/.editorconfig +16 -0
  2. package/.vscode/extensions.json +4 -0
  3. package/.vscode/launch.json +20 -0
  4. package/.vscode/tasks.json +42 -0
  5. package/README.md +11 -8
  6. package/angular.json +40 -0
  7. package/package.json +37 -20
  8. package/projects/as-user-lib/README.md +24 -0
  9. package/projects/as-user-lib/ng-package.json +7 -0
  10. package/projects/as-user-lib/package.json +12 -0
  11. package/projects/as-user-lib/src/lib/services/user/user.service.interface.ts +8 -0
  12. package/projects/as-user-lib/src/lib/services/user/user.service.spec.ts +16 -0
  13. package/projects/as-user-lib/src/lib/services/user/user.service.ts +16 -0
  14. package/{public-api.d.ts → projects/as-user-lib/src/public-api.ts} +5 -1
  15. package/projects/as-user-lib/tsconfig.lib.json +14 -0
  16. package/projects/as-user-lib/tsconfig.lib.prod.json +10 -0
  17. package/projects/as-user-lib/tsconfig.spec.json +14 -0
  18. package/tsconfig.json +38 -0
  19. package/esm2022/albi_scando-as-user-lib.mjs +0 -5
  20. package/esm2022/lib/default/default-user.mjs +0 -8
  21. package/esm2022/lib/default/default.mjs +0 -8
  22. package/esm2022/lib/enums/user-levels.enum.mjs +0 -2
  23. package/esm2022/lib/interfaces/setup.interface.mjs +0 -3
  24. package/esm2022/lib/interfaces/user.interface.mjs +0 -2
  25. package/esm2022/lib/services/user/user.service.interface.mjs +0 -2
  26. package/esm2022/lib/services/user/user.service.mjs +0 -93
  27. package/esm2022/public-api.mjs +0 -7
  28. package/fesm2022/albi_scando-as-user-lib.mjs +0 -117
  29. package/fesm2022/albi_scando-as-user-lib.mjs.map +0 -1
  30. package/index.d.ts +0 -5
  31. package/lib/default/default-user.d.ts +0 -5
  32. package/lib/default/default.d.ts +0 -2
  33. package/lib/enums/user-levels.enum.d.ts +0 -3
  34. package/lib/interfaces/setup.interface.d.ts +0 -10
  35. package/lib/interfaces/user.interface.d.ts +0 -7
  36. package/lib/services/user/user.service.d.ts +0 -50
  37. package/lib/services/user/user.service.interface.d.ts +0 -32
package/.editorconfig ADDED
@@ -0,0 +1,16 @@
1
+ # Editor configuration, see https://editorconfig.org
2
+ root = true
3
+
4
+ [*]
5
+ charset = utf-8
6
+ indent_style = space
7
+ indent_size = 2
8
+ insert_final_newline = true
9
+ trim_trailing_whitespace = true
10
+
11
+ [*.ts]
12
+ quote_type = single
13
+
14
+ [*.md]
15
+ max_line_length = off
16
+ trim_trailing_whitespace = false
@@ -0,0 +1,4 @@
1
+ {
2
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
3
+ "recommendations": ["angular.ng-template"]
4
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
3
+ "version": "0.2.0",
4
+ "configurations": [
5
+ {
6
+ "name": "ng serve",
7
+ "type": "chrome",
8
+ "request": "launch",
9
+ "preLaunchTask": "npm: start",
10
+ "url": "http://localhost:4200/"
11
+ },
12
+ {
13
+ "name": "ng test",
14
+ "type": "chrome",
15
+ "request": "launch",
16
+ "preLaunchTask": "npm: test",
17
+ "url": "http://localhost:9876/debug.html"
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
3
+ "version": "2.0.0",
4
+ "tasks": [
5
+ {
6
+ "type": "npm",
7
+ "script": "start",
8
+ "isBackground": true,
9
+ "problemMatcher": {
10
+ "owner": "typescript",
11
+ "pattern": "$tsc",
12
+ "background": {
13
+ "activeOnStart": true,
14
+ "beginsPattern": {
15
+ "regexp": "(.*?)"
16
+ },
17
+ "endsPattern": {
18
+ "regexp": "bundle generation complete"
19
+ }
20
+ }
21
+ }
22
+ },
23
+ {
24
+ "type": "npm",
25
+ "script": "test",
26
+ "isBackground": true,
27
+ "problemMatcher": {
28
+ "owner": "typescript",
29
+ "pattern": "$tsc",
30
+ "background": {
31
+ "activeOnStart": true,
32
+ "beginsPattern": {
33
+ "regexp": "(.*?)"
34
+ },
35
+ "endsPattern": {
36
+ "regexp": "bundle generation complete"
37
+ }
38
+ }
39
+ }
40
+ }
41
+ ]
42
+ }
package/README.md CHANGED
@@ -1,23 +1,26 @@
1
1
  # AsUserLib
2
2
 
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.2.0.
3
+ This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.2.0.
4
+
5
+ ## Development server
6
+
7
+ 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.
4
8
 
5
9
  ## Code scaffolding
6
10
 
7
- Run `ng generate component component-name --project as-user-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project as-user-lib`.
8
- > Note: Don't forget to add `--project as-user-lib` or else it will be added to the default project in your `angular.json` file.
11
+ Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
9
12
 
10
13
  ## Build
11
14
 
12
- Run `ng build as-user-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
15
+ Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
13
16
 
14
- ## Publishing
17
+ ## Running unit tests
15
18
 
16
- After building your library with `ng build as-user-lib`, go to the dist folder `cd dist/as-user-lib` and run `npm publish`.
19
+ Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
17
20
 
18
- ## Running unit tests
21
+ ## Running end-to-end tests
19
22
 
20
- Run `ng test as-user-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
23
+ 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.
21
24
 
22
25
  ## Further help
23
26
 
package/angular.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3
+ "version": 1,
4
+ "newProjectRoot": "projects",
5
+ "projects": {
6
+ "as-user-lib": {
7
+ "projectType": "library",
8
+ "root": "projects/as-user-lib",
9
+ "sourceRoot": "projects/as-user-lib/src",
10
+ "prefix": "lib",
11
+ "architect": {
12
+ "build": {
13
+ "builder": "@angular-devkit/build-angular:ng-packagr",
14
+ "options": {
15
+ "project": "projects/as-user-lib/ng-package.json"
16
+ },
17
+ "configurations": {
18
+ "production": {
19
+ "tsConfig": "projects/as-user-lib/tsconfig.lib.prod.json"
20
+ },
21
+ "development": {
22
+ "tsConfig": "projects/as-user-lib/tsconfig.lib.json"
23
+ }
24
+ },
25
+ "defaultConfiguration": "production"
26
+ },
27
+ "test": {
28
+ "builder": "@angular-devkit/build-angular:karma",
29
+ "options": {
30
+ "tsConfig": "projects/as-user-lib/tsconfig.spec.json",
31
+ "polyfills": [
32
+ "zone.js",
33
+ "zone.js/testing"
34
+ ]
35
+ }
36
+ }
37
+ }
38
+ }
39
+ }
40
+ }
package/package.json CHANGED
@@ -1,25 +1,42 @@
1
1
  {
2
2
  "name": "@albi_scando/as-user-lib",
3
- "version": "0.0.1-rc8",
4
- "peerDependencies": {
5
- "@angular/common": "^17.2.0",
6
- "@angular/core": "^17.2.0"
3
+ "version": "0.0.1",
4
+ "scripts": {
5
+ "ng": "ng",
6
+ "start": "ng serve",
7
+ "build": "ng build",
8
+ "watch": "ng build --watch --configuration development",
9
+ "test": "ng test"
7
10
  },
8
11
  "dependencies": {
9
- "tslib": "^2.3.0"
12
+ "@angular/animations": "^17.2.0",
13
+ "@angular/common": "^17.2.0",
14
+ "@angular/compiler": "^17.2.0",
15
+ "@angular/core": "^17.2.0",
16
+ "@angular/forms": "^17.2.0",
17
+ "@angular/platform-browser": "^17.2.0",
18
+ "@angular/platform-browser-dynamic": "^17.2.0",
19
+ "@angular/router": "^17.2.0",
20
+ "rxjs": "~7.8.0",
21
+ "tslib": "^2.3.0",
22
+ "zone.js": "~0.14.3"
23
+ },
24
+ "devDependencies": {
25
+ "@angular-devkit/build-angular": "^17.2.2",
26
+ "@angular/cli": "^17.2.0",
27
+ "@angular/compiler-cli": "^17.2.0",
28
+ "@types/jasmine": "~5.1.0",
29
+ "jasmine-core": "~5.1.0",
30
+ "karma": "~6.4.0",
31
+ "karma-chrome-launcher": "~3.2.0",
32
+ "karma-coverage": "~2.2.0",
33
+ "karma-jasmine": "~5.1.0",
34
+ "karma-jasmine-html-reporter": "~2.1.0",
35
+ "ng-packagr": "^17.2.0",
36
+ "typescript": "~5.3.2"
10
37
  },
11
- "sideEffects": false,
12
- "module": "fesm2022/albi_scando-as-user-lib.mjs",
13
- "typings": "index.d.ts",
14
- "exports": {
15
- "./package.json": {
16
- "default": "./package.json"
17
- },
18
- ".": {
19
- "types": "./index.d.ts",
20
- "esm2022": "./esm2022/albi_scando-as-user-lib.mjs",
21
- "esm": "./esm2022/albi_scando-as-user-lib.mjs",
22
- "default": "./fesm2022/albi_scando-as-user-lib.mjs"
23
- }
24
- }
25
- }
38
+ "description": "This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.2.0.",
39
+ "main": "index.js",
40
+ "author": "Alberto Scandolara",
41
+ "license": "ISC"
42
+ }
@@ -0,0 +1,24 @@
1
+ # AsUserLib
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project as-user-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project as-user-lib`.
8
+ > Note: Don't forget to add `--project as-user-lib` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build as-user-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build as-user-lib`, go to the dist folder `cd dist/as-user-lib` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test as-user-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ 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.
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
+ "dest": "../../dist/as-user-lib",
4
+ "lib": {
5
+ "entryFile": "src/public-api.ts"
6
+ }
7
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "as-user-lib",
3
+ "version": "0.0.1",
4
+ "peerDependencies": {
5
+ "@angular/common": "^17.2.0",
6
+ "@angular/core": "^17.2.0"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^2.3.0"
10
+ },
11
+ "sideEffects": false
12
+ }
@@ -0,0 +1,8 @@
1
+ import { WritableSignal } from '@angular/core';
2
+
3
+ export interface IUserService {
4
+ /**
5
+ * Token signal
6
+ */
7
+ token: WritableSignal<string>;
8
+ }
@@ -0,0 +1,16 @@
1
+ import { TestBed } from '@angular/core/testing';
2
+
3
+ import { UserService } from './user.service';
4
+
5
+ describe('UserService', () => {
6
+ let service: UserService;
7
+
8
+ beforeEach(() => {
9
+ TestBed.configureTestingModule({});
10
+ service = TestBed.inject(UserService);
11
+ });
12
+
13
+ it('should be created', () => {
14
+ expect(service).toBeTruthy();
15
+ });
16
+ });
@@ -0,0 +1,16 @@
1
+ import { Injectable, WritableSignal, signal } from '@angular/core';
2
+
3
+ import { IUserService } from './user.service.interface';
4
+
5
+ /**
6
+ *
7
+ */
8
+ @Injectable({
9
+ providedIn: 'root',
10
+ })
11
+ export class UserService implements IUserService {
12
+ /**
13
+ * {@link IUserService.token}
14
+ */
15
+ public token: WritableSignal<string> = signal('');
16
+ }
@@ -1 +1,5 @@
1
- export * from './lib/services/user/user.service';
1
+ /*
2
+ * Public API Surface of as-user-lib
3
+ */
4
+
5
+ export * from './lib/services/user/user.service';
@@ -0,0 +1,14 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "../../tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "../../out-tsc/lib",
6
+ "declaration": true,
7
+ "declarationMap": true,
8
+ "inlineSources": true,
9
+ "types": []
10
+ },
11
+ "exclude": [
12
+ "**/*.spec.ts"
13
+ ]
14
+ }
@@ -0,0 +1,10 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "./tsconfig.lib.json",
4
+ "compilerOptions": {
5
+ "declarationMap": false
6
+ },
7
+ "angularCompilerOptions": {
8
+ "compilationMode": "partial"
9
+ }
10
+ }
@@ -0,0 +1,14 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "../../tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "../../out-tsc/spec",
6
+ "types": [
7
+ "jasmine"
8
+ ]
9
+ },
10
+ "include": [
11
+ "**/*.spec.ts",
12
+ "**/*.d.ts"
13
+ ]
14
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,38 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "compileOnSave": false,
4
+ "compilerOptions": {
5
+ "paths": {
6
+ "as-user-lib": [
7
+ "./dist/as-user-lib"
8
+ ]
9
+ },
10
+ "outDir": "./dist/out-tsc",
11
+ "forceConsistentCasingInFileNames": true,
12
+ "strict": true,
13
+ "noImplicitOverride": true,
14
+ "noPropertyAccessFromIndexSignature": true,
15
+ "noImplicitReturns": true,
16
+ "noFallthroughCasesInSwitch": true,
17
+ "skipLibCheck": true,
18
+ "esModuleInterop": true,
19
+ "sourceMap": true,
20
+ "declaration": false,
21
+ "experimentalDecorators": true,
22
+ "moduleResolution": "node",
23
+ "importHelpers": true,
24
+ "target": "ES2022",
25
+ "module": "ES2022",
26
+ "useDefineForClassFields": false,
27
+ "lib": [
28
+ "ES2022",
29
+ "dom"
30
+ ]
31
+ },
32
+ "angularCompilerOptions": {
33
+ "enableI18nLegacyMessageIdFormat": false,
34
+ "strictInjectionParameters": true,
35
+ "strictInputAccessModifiers": true,
36
+ "strictTemplates": true
37
+ }
38
+ }
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxiaV9zY2FuZG8tYXMtdXNlci1saWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9hcy11c2VyLWxpYi9zcmMvYWxiaV9zY2FuZG8tYXMtdXNlci1saWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,8 +0,0 @@
1
- export const DEFAULT_USERNAME = 'guest';
2
- export const DEFAULT_LEVEL = "guest" /* USER_LEVELS.GUEST */;
3
- export const defaultUser = {
4
- username: DEFAULT_USERNAME,
5
- level: DEFAULT_LEVEL,
6
- language: undefined,
7
- };
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC11c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXMtdXNlci1saWIvc3JjL2xpYi9kZWZhdWx0L2RlZmF1bHQtdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBVyxPQUFPLENBQUM7QUFDaEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxrQ0FBaUMsQ0FBQztBQUU1RCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQVM7SUFDL0IsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixLQUFLLEVBQUUsYUFBNEI7SUFDbkMsUUFBUSxFQUFFLFNBQVM7Q0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVudW1zXHJcbmltcG9ydCB7IFVTRVJfTEVWRUxTIH0gZnJvbSAnLi4vZW51bXMvdXNlci1sZXZlbHMuZW51bSc7XHJcblxyXG4vLyBpbnRlcmZhY2VcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvdXNlci5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVVNFUk5BTUU6IHN0cmluZyA9ICdndWVzdCc7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xFVkVMOiBVU0VSX0xFVkVMUyA9IFVTRVJfTEVWRUxTLkdVRVNUO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRVc2VyOiBVc2VyID0ge1xyXG4gIHVzZXJuYW1lOiBERUZBVUxUX1VTRVJOQU1FLFxyXG4gIGxldmVsOiBERUZBVUxUX0xFVkVMIGFzIFVTRVJfTEVWRUxTLFxyXG4gIGxhbmd1YWdlOiB1bmRlZmluZWQsXHJcbn07XHJcbiJdfQ==
@@ -1,8 +0,0 @@
1
- import { stringEmpty } from '@albi_scando/as-constants-lib';
2
- export const defaultUserLibSetup = {
3
- api: {
4
- patchUserDataAPIUrl: stringEmpty,
5
- getUserDataAPIUrl: stringEmpty,
6
- },
7
- };
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzLXVzZXItbGliL3NyYy9saWIvZGVmYXVsdC9kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUs1RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBa0I7SUFDaEQsR0FBRyxFQUFFO1FBQ0gsbUJBQW1CLEVBQUUsV0FBVztRQUNoQyxpQkFBaUIsRUFBRSxXQUFXO0tBQy9CO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0cmluZ0VtcHR5IH0gZnJvbSAnQGFsYmlfc2NhbmRvL2FzLWNvbnN0YW50cy1saWInO1xyXG5cclxuLy8gaW50ZXJmYWNlc1xyXG5pbXBvcnQgeyBJVXNlckxpYlNldHVwIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zZXR1cC5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRVc2VyTGliU2V0dXA6IElVc2VyTGliU2V0dXAgPSB7XHJcbiAgYXBpOiB7XHJcbiAgICBwYXRjaFVzZXJEYXRhQVBJVXJsOiBzdHJpbmdFbXB0eSxcclxuICAgIGdldFVzZXJEYXRhQVBJVXJsOiBzdHJpbmdFbXB0eSxcclxuICB9LFxyXG59O1xyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1sZXZlbHMuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzLXVzZXItbGliL3NyYy9saWIvZW51bXMvdXNlci1sZXZlbHMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gVVNFUl9MRVZFTFMge1xyXG4gIEdVRVNUID0gJ2d1ZXN0JyxcclxufVxyXG4iXX0=
@@ -1,3 +0,0 @@
1
- // enums
2
- export {};
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXMtdXNlci1saWIvc3JjL2xpYi9pbnRlcmZhY2VzL3NldHVwLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZW51bXNcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGludGVyZmFjZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJVXNlckxpYlNldHVwIHtcclxuICBhcGk6IEFQSTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUEkge1xyXG4gIHBhdGNoVXNlckRhdGFBUElVcmw6IHN0cmluZztcclxuICBnZXRVc2VyRGF0YUFQSVVybDogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcy11c2VyLWxpYi9zcmMvbGliL2ludGVyZmFjZXMvdXNlci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVudW1zXHJcbmltcG9ydCB7IExBTkdVQUdFUyB9IGZyb20gJ0BhbGJpX3NjYW5kby9hcy1jb25zdGFudHMtbGliJztcclxuaW1wb3J0IHsgVVNFUl9MRVZFTFMgfSBmcm9tICcuLi9lbnVtcy91c2VyLWxldmVscy5lbnVtJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlciB7XHJcbiAgdXNlcm5hbWU6IHN0cmluZztcclxuICBsZXZlbDogVVNFUl9MRVZFTFM7XHJcbiAgbGFuZ3VhZ2U6IExBTkdVQUdFUyB8IHVuZGVmaW5lZDtcclxufVxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzLXVzZXItbGliL3NyYy9saWIvc2VydmljZXMvdXNlci91c2VyLnNlcnZpY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vLyBJbnRlcmZhY2VzXHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3VzZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSVVzZXJMaWJTZXR1cCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc2V0dXAuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVVzZXJTZXJ2aWNlIHtcclxuICAvKipcclxuICAgKiBVc2VyIG9iamVjdFxyXG4gICAqL1xyXG4gIHVzZXI6IFVzZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBzZXJ2aWNlIGNvbmZpZ3VyYXRpb25cclxuICAgKiBAcGFyYW0ge1BhcnRpYWw8SVVzZXJMaWJTZXR1cD59IHNldHVwIGNvbmZpZ3VyYXRpb24gb2JqZWN0XHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8dm9pZD59XHJcbiAgICovXHJcbiAgc2V0dXAkKHNldHVwOiBQYXJ0aWFsPElVc2VyTGliU2V0dXA+KTogT2JzZXJ2YWJsZTx2b2lkPjtcclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHVzZXIgb2JqZWN0IHdpdGggcHJvdmlkZWQgZGF0YVxyXG4gICAqIEBwYXJhbSB7UGFydGlhbDxVc2VyPn0gdXNlciBwYXJ0aWFsIHVzZXIgaW5mbyB0byBtb2RpZnlcclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTx2b2lkPn1cclxuICAgKi9cclxuICBwYXRjaFVzZXJEYXRhJCh1c2VyOiBQYXJ0aWFsPFVzZXI+KTogT2JzZXJ2YWJsZTx2b2lkPjtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHVzZXIgZGF0YVxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFVzZXI+fSB1c2VyIGRhdGFcclxuICAgKi9cclxuICBnZXRVc2VyRGF0YSQoKTogT2JzZXJ2YWJsZTxVc2VyPjtcclxuXHJcbiAgLyoqXHJcbiAgICogSWYgdXNlciBkYXRhIHJlc2lkZSBvbiBhIGRiLCBmZXRjaCBpdCBhbmQgdXNlIGl0IHRvIHN5bmNocm9uaXplIHNlcnZpY2UgdXNlciBvYmplY3QuXHJcbiAgICogSWYgbm8gZGIgaXMgYXZhaWxhYmxlLCBzZXQgY3VycmVudCB1c2VyIGVxdWFsIHRvIGl0c2VsZi5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTx2b2lkPn1cclxuICAgKi9cclxuICBzeW5jVXNlckRhdGEkKCk6IE9ic2VydmFibGU8dm9pZD47XHJcbn1cclxuIl19
@@ -1,93 +0,0 @@
1
- import { Injectable, inject } from '@angular/core';
2
- import { of, switchMap } from 'rxjs';
3
- import { HttpService } from '@albi_scando/as-http-lib';
4
- // Assets
5
- import { defaultUserLibSetup } from '../../default/default';
6
- import { defaultUser } from '../../default/default-user';
7
- // Constants
8
- import { observableEmpty$, stringEmpty } from '@albi_scando/as-constants-lib';
9
- import * as i0 from "@angular/core";
10
- /**
11
- *
12
- */
13
- export class UserService {
14
- /**
15
- * Constructor
16
- * @constructor
17
- * @ignore
18
- */
19
- constructor() {
20
- /**
21
- * {@link IUserService.user}
22
- */
23
- this.user = defaultUser;
24
- /**
25
- * {@link HttpService}
26
- */
27
- this._httpService = inject(HttpService);
28
- /**
29
- * PATCH user data api url
30
- */
31
- this._patchUserDataAPIUrl = stringEmpty;
32
- /**
33
- * GET user data api url
34
- */
35
- this._getUserDataAPIUrl = stringEmpty;
36
- this.setup$(defaultUserLibSetup).subscribe();
37
- }
38
- /**
39
- * {@link IUserService.setup$}
40
- */
41
- setup$(setup) {
42
- this._patchUserDataAPIUrl = setup.api?.patchUserDataAPIUrl || stringEmpty;
43
- this._getUserDataAPIUrl = setup.api?.getUserDataAPIUrl || stringEmpty;
44
- return observableEmpty$;
45
- }
46
- /**
47
- * {@link IUserService.patchUserData$}
48
- */
49
- patchUserData$(user) {
50
- const httpRequest = {
51
- url: this._patchUserDataAPIUrl,
52
- body: user,
53
- };
54
- const updateUserData$ = this._httpService.patch(httpRequest);
55
- return observableEmpty$.pipe(switchMap(() => {
56
- if (httpRequest.url) {
57
- return updateUserData$;
58
- }
59
- else {
60
- this.user = { ...this.user, ...user };
61
- return observableEmpty$;
62
- }
63
- }), switchMap(() => this.syncUserData$()));
64
- }
65
- /**
66
- * {@link IUserService.syncUserData$}
67
- */
68
- syncUserData$() {
69
- return this.getUserData$().pipe(switchMap((user) => {
70
- this.user = user;
71
- return observableEmpty$;
72
- }));
73
- }
74
- /**
75
- * {@link IUserService.getUserData$}
76
- */
77
- getUserData$() {
78
- const httpRequest = {
79
- url: this._getUserDataAPIUrl,
80
- };
81
- const getUserData$ = this._httpService.get(httpRequest);
82
- return httpRequest.url ? getUserData$ : of(this.user);
83
- }
84
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
85
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UserService, providedIn: 'root' }); }
86
- }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UserService, decorators: [{
88
- type: Injectable,
89
- args: [{
90
- providedIn: 'root',
91
- }]
92
- }], ctorParameters: () => [] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXMtdXNlci1saWIvc3JjL2xpYi9zZXJ2aWNlcy91c2VyL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsU0FBUztBQUNULE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxZQUFZO0FBQ1osT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQVc5RTs7R0FFRztBQUlILE1BQU0sT0FBTyxXQUFXO0lBcUJ0Qjs7OztPQUlHO0lBQ0g7UUF6QkE7O1dBRUc7UUFDSSxTQUFJLEdBQVMsV0FBVyxDQUFDO1FBRWhDOztXQUVHO1FBQ0ssaUJBQVksR0FBZ0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXhEOztXQUVHO1FBQ0sseUJBQW9CLEdBQVcsV0FBVyxDQUFDO1FBRW5EOztXQUVHO1FBQ0ssdUJBQWtCLEdBQVcsV0FBVyxDQUFDO1FBUS9DLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBNkI7UUFDekMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLElBQUksV0FBVyxDQUFDO1FBQzFFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLGlCQUFpQixJQUFJLFdBQVcsQ0FBQztRQUV0RSxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWMsQ0FBQyxJQUFtQjtRQUN2QyxNQUFNLFdBQVcsR0FBVTtZQUN6QixHQUFHLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtZQUM5QixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUM7UUFDRixNQUFNLGVBQWUsR0FDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQzFCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxlQUFlLENBQUM7WUFDekIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztnQkFDdEMsT0FBTyxnQkFBZ0IsQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQzdCLFNBQVMsQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLE9BQU8sZ0JBQWdCLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVk7UUFDakIsTUFBTSxXQUFXLEdBQVE7WUFDdkIsR0FBRyxFQUFFLElBQUksQ0FBQyxrQkFBa0I7U0FDN0IsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFxQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRSxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDOzhHQXBGVSxXQUFXO2tIQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJ0BhbGJpX3NjYW5kby9hcy1odHRwLWxpYic7XHJcblxyXG4vLyBBc3NldHNcclxuaW1wb3J0IHsgZGVmYXVsdFVzZXJMaWJTZXR1cCB9IGZyb20gJy4uLy4uL2RlZmF1bHQvZGVmYXVsdCc7XHJcbmltcG9ydCB7IGRlZmF1bHRVc2VyIH0gZnJvbSAnLi4vLi4vZGVmYXVsdC9kZWZhdWx0LXVzZXInO1xyXG5cclxuLy8gQ29uc3RhbnRzXHJcbmltcG9ydCB7IG9ic2VydmFibGVFbXB0eSQsIHN0cmluZ0VtcHR5IH0gZnJvbSAnQGFsYmlfc2NhbmRvL2FzLWNvbnN0YW50cy1saWInO1xyXG5cclxuLy8gRW51bXNcclxuXHJcbi8vIEludGVyZmFjZXNcclxuaW1wb3J0IHsgUGF0Y2ggfSBmcm9tICdAYWxiaV9zY2FuZG8vYXMtaHR0cC1saWIvbGliL21vZGVscy9wYXRjaCc7XHJcbmltcG9ydCB7IEdldCB9IGZyb20gJ0BhbGJpX3NjYW5kby9hcy1odHRwLWxpYi9saWIvbW9kZWxzL2dldCc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3VzZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSVVzZXJTZXJ2aWNlIH0gZnJvbSAnLi91c2VyLnNlcnZpY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSVVzZXJMaWJTZXR1cCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc2V0dXAuaW50ZXJmYWNlJztcclxuXHJcbi8qKlxyXG4gKlxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIGltcGxlbWVudHMgSVVzZXJTZXJ2aWNlIHtcclxuICAvKipcclxuICAgKiB7QGxpbmsgSVVzZXJTZXJ2aWNlLnVzZXJ9XHJcbiAgICovXHJcbiAgcHVibGljIHVzZXI6IFVzZXIgPSBkZWZhdWx0VXNlcjtcclxuXHJcbiAgLyoqXHJcbiAgICoge0BsaW5rIEh0dHBTZXJ2aWNlfVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2h0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSA9IGluamVjdChIdHRwU2VydmljZSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFBBVENIIHVzZXIgZGF0YSBhcGkgdXJsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcGF0Y2hVc2VyRGF0YUFQSVVybDogc3RyaW5nID0gc3RyaW5nRW1wdHk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEdFVCB1c2VyIGRhdGEgYXBpIHVybFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2dldFVzZXJEYXRhQVBJVXJsOiBzdHJpbmcgPSBzdHJpbmdFbXB0eTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAY29uc3RydWN0b3JcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnNldHVwJChkZWZhdWx0VXNlckxpYlNldHVwKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHtAbGluayBJVXNlclNlcnZpY2Uuc2V0dXAkfVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXR1cCQoc2V0dXA6IFBhcnRpYWw8SVVzZXJMaWJTZXR1cD4pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgIHRoaXMuX3BhdGNoVXNlckRhdGFBUElVcmwgPSBzZXR1cC5hcGk/LnBhdGNoVXNlckRhdGFBUElVcmwgfHwgc3RyaW5nRW1wdHk7XHJcbiAgICB0aGlzLl9nZXRVc2VyRGF0YUFQSVVybCA9IHNldHVwLmFwaT8uZ2V0VXNlckRhdGFBUElVcmwgfHwgc3RyaW5nRW1wdHk7XHJcblxyXG4gICAgcmV0dXJuIG9ic2VydmFibGVFbXB0eSQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiB7QGxpbmsgSVVzZXJTZXJ2aWNlLnBhdGNoVXNlckRhdGEkfVxyXG4gICAqL1xyXG4gIHB1YmxpYyBwYXRjaFVzZXJEYXRhJCh1c2VyOiBQYXJ0aWFsPFVzZXI+KTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICBjb25zdCBodHRwUmVxdWVzdDogUGF0Y2ggPSB7XHJcbiAgICAgIHVybDogdGhpcy5fcGF0Y2hVc2VyRGF0YUFQSVVybCxcclxuICAgICAgYm9keTogdXNlcixcclxuICAgIH07XHJcbiAgICBjb25zdCB1cGRhdGVVc2VyRGF0YSQ6IE9ic2VydmFibGU8dm9pZD4gPVxyXG4gICAgICB0aGlzLl9odHRwU2VydmljZS5wYXRjaChodHRwUmVxdWVzdCk7XHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZUVtcHR5JC5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgIGlmIChodHRwUmVxdWVzdC51cmwpIHtcclxuICAgICAgICAgIHJldHVybiB1cGRhdGVVc2VyRGF0YSQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudXNlciA9IHsgLi4udGhpcy51c2VyLCAuLi51c2VyIH07XHJcbiAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZUVtcHR5JDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zeW5jVXNlckRhdGEkKCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICoge0BsaW5rIElVc2VyU2VydmljZS5zeW5jVXNlckRhdGEkfVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzeW5jVXNlckRhdGEkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlckRhdGEkKCkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKCh1c2VyOiBVc2VyKSA9PiB7XHJcbiAgICAgICAgdGhpcy51c2VyID0gdXNlcjtcclxuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZUVtcHR5JDtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiB7QGxpbmsgSVVzZXJTZXJ2aWNlLmdldFVzZXJEYXRhJH1cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0VXNlckRhdGEkKCk6IE9ic2VydmFibGU8VXNlcj4ge1xyXG4gICAgY29uc3QgaHR0cFJlcXVlc3Q6IEdldCA9IHtcclxuICAgICAgdXJsOiB0aGlzLl9nZXRVc2VyRGF0YUFQSVVybCxcclxuICAgIH07XHJcbiAgICBjb25zdCBnZXRVc2VyRGF0YSQ6IE9ic2VydmFibGU8VXNlcj4gPSB0aGlzLl9odHRwU2VydmljZS5nZXQoaHR0cFJlcXVlc3QpO1xyXG4gICAgcmV0dXJuIGh0dHBSZXF1ZXN0LnVybCA/IGdldFVzZXJEYXRhJCA6IG9mKHRoaXMudXNlcik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,7 +0,0 @@
1
- /*
2
- * Public API Surface of as-user-lib
3
- */
4
- // enums
5
- // services
6
- export * from './lib/services/user/user.service';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FzLXVzZXItbGliL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsUUFBUTtBQUVSLFdBQVc7QUFDWCxjQUFjLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFzLXVzZXItbGliXHJcbiAqL1xyXG5cclxuLy8gZW51bXNcclxuXHJcbi8vIHNlcnZpY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3VzZXIvdXNlci5zZXJ2aWNlJztcclxuIl19
@@ -1,117 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { inject, Injectable } from '@angular/core';
3
- import { switchMap, of } from 'rxjs';
4
- import { HttpService } from '@albi_scando/as-http-lib';
5
- import { stringEmpty, observableEmpty$ } from '@albi_scando/as-constants-lib';
6
-
7
- const defaultUserLibSetup = {
8
- api: {
9
- patchUserDataAPIUrl: stringEmpty,
10
- getUserDataAPIUrl: stringEmpty,
11
- },
12
- };
13
-
14
- const DEFAULT_USERNAME = 'guest';
15
- const DEFAULT_LEVEL = "guest" /* USER_LEVELS.GUEST */;
16
- const defaultUser = {
17
- username: DEFAULT_USERNAME,
18
- level: DEFAULT_LEVEL,
19
- language: undefined,
20
- };
21
-
22
- /**
23
- *
24
- */
25
- class UserService {
26
- /**
27
- * Constructor
28
- * @constructor
29
- * @ignore
30
- */
31
- constructor() {
32
- /**
33
- * {@link IUserService.user}
34
- */
35
- this.user = defaultUser;
36
- /**
37
- * {@link HttpService}
38
- */
39
- this._httpService = inject(HttpService);
40
- /**
41
- * PATCH user data api url
42
- */
43
- this._patchUserDataAPIUrl = stringEmpty;
44
- /**
45
- * GET user data api url
46
- */
47
- this._getUserDataAPIUrl = stringEmpty;
48
- this.setup$(defaultUserLibSetup).subscribe();
49
- }
50
- /**
51
- * {@link IUserService.setup$}
52
- */
53
- setup$(setup) {
54
- this._patchUserDataAPIUrl = setup.api?.patchUserDataAPIUrl || stringEmpty;
55
- this._getUserDataAPIUrl = setup.api?.getUserDataAPIUrl || stringEmpty;
56
- return observableEmpty$;
57
- }
58
- /**
59
- * {@link IUserService.patchUserData$}
60
- */
61
- patchUserData$(user) {
62
- const httpRequest = {
63
- url: this._patchUserDataAPIUrl,
64
- body: user,
65
- };
66
- const updateUserData$ = this._httpService.patch(httpRequest);
67
- return observableEmpty$.pipe(switchMap(() => {
68
- if (httpRequest.url) {
69
- return updateUserData$;
70
- }
71
- else {
72
- this.user = { ...this.user, ...user };
73
- return observableEmpty$;
74
- }
75
- }), switchMap(() => this.syncUserData$()));
76
- }
77
- /**
78
- * {@link IUserService.syncUserData$}
79
- */
80
- syncUserData$() {
81
- return this.getUserData$().pipe(switchMap((user) => {
82
- this.user = user;
83
- return observableEmpty$;
84
- }));
85
- }
86
- /**
87
- * {@link IUserService.getUserData$}
88
- */
89
- getUserData$() {
90
- const httpRequest = {
91
- url: this._getUserDataAPIUrl,
92
- };
93
- const getUserData$ = this._httpService.get(httpRequest);
94
- return httpRequest.url ? getUserData$ : of(this.user);
95
- }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
97
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UserService, providedIn: 'root' }); }
98
- }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UserService, decorators: [{
100
- type: Injectable,
101
- args: [{
102
- providedIn: 'root',
103
- }]
104
- }], ctorParameters: () => [] });
105
-
106
- /*
107
- * Public API Surface of as-user-lib
108
- */
109
- // enums
110
- // services
111
-
112
- /**
113
- * Generated bundle index. Do not edit.
114
- */
115
-
116
- export { UserService };
117
- //# sourceMappingURL=albi_scando-as-user-lib.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"albi_scando-as-user-lib.mjs","sources":["../../../projects/as-user-lib/src/lib/default/default.ts","../../../projects/as-user-lib/src/lib/default/default-user.ts","../../../projects/as-user-lib/src/lib/services/user/user.service.ts","../../../projects/as-user-lib/src/public-api.ts","../../../projects/as-user-lib/src/albi_scando-as-user-lib.ts"],"sourcesContent":["import { stringEmpty } from '@albi_scando/as-constants-lib';\r\n\r\n// interfaces\r\nimport { IUserLibSetup } from '../interfaces/setup.interface';\r\n\r\nexport const defaultUserLibSetup: IUserLibSetup = {\r\n api: {\r\n patchUserDataAPIUrl: stringEmpty,\r\n getUserDataAPIUrl: stringEmpty,\r\n },\r\n};\r\n","// enums\r\nimport { USER_LEVELS } from '../enums/user-levels.enum';\r\n\r\n// interface\r\nimport { User } from '../interfaces/user.interface';\r\n\r\nexport const DEFAULT_USERNAME: string = 'guest';\r\nexport const DEFAULT_LEVEL: USER_LEVELS = USER_LEVELS.GUEST;\r\n\r\nexport const defaultUser: User = {\r\n username: DEFAULT_USERNAME,\r\n level: DEFAULT_LEVEL as USER_LEVELS,\r\n language: undefined,\r\n};\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Observable, of, switchMap } from 'rxjs';\r\n\r\nimport { HttpService } from '@albi_scando/as-http-lib';\r\n\r\n// Assets\r\nimport { defaultUserLibSetup } from '../../default/default';\r\nimport { defaultUser } from '../../default/default-user';\r\n\r\n// Constants\r\nimport { observableEmpty$, stringEmpty } from '@albi_scando/as-constants-lib';\r\n\r\n// Enums\r\n\r\n// Interfaces\r\nimport { Patch } from '@albi_scando/as-http-lib/lib/models/patch';\r\nimport { Get } from '@albi_scando/as-http-lib/lib/models/get';\r\nimport { User } from '../../interfaces/user.interface';\r\nimport { IUserService } from './user.service.interface';\r\nimport { IUserLibSetup } from '../../interfaces/setup.interface';\r\n\r\n/**\r\n *\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UserService implements IUserService {\r\n /**\r\n * {@link IUserService.user}\r\n */\r\n public user: User = defaultUser;\r\n\r\n /**\r\n * {@link HttpService}\r\n */\r\n private _httpService: HttpService = inject(HttpService);\r\n\r\n /**\r\n * PATCH user data api url\r\n */\r\n private _patchUserDataAPIUrl: string = stringEmpty;\r\n\r\n /**\r\n * GET user data api url\r\n */\r\n private _getUserDataAPIUrl: string = stringEmpty;\r\n\r\n /**\r\n * Constructor\r\n * @constructor\r\n * @ignore\r\n */\r\n constructor() {\r\n this.setup$(defaultUserLibSetup).subscribe();\r\n }\r\n\r\n /**\r\n * {@link IUserService.setup$}\r\n */\r\n public setup$(setup: Partial<IUserLibSetup>): Observable<void> {\r\n this._patchUserDataAPIUrl = setup.api?.patchUserDataAPIUrl || stringEmpty;\r\n this._getUserDataAPIUrl = setup.api?.getUserDataAPIUrl || stringEmpty;\r\n\r\n return observableEmpty$;\r\n }\r\n\r\n /**\r\n * {@link IUserService.patchUserData$}\r\n */\r\n public patchUserData$(user: Partial<User>): Observable<void> {\r\n const httpRequest: Patch = {\r\n url: this._patchUserDataAPIUrl,\r\n body: user,\r\n };\r\n const updateUserData$: Observable<void> =\r\n this._httpService.patch(httpRequest);\r\n return observableEmpty$.pipe(\r\n switchMap(() => {\r\n if (httpRequest.url) {\r\n return updateUserData$;\r\n } else {\r\n this.user = { ...this.user, ...user };\r\n return observableEmpty$;\r\n }\r\n }),\r\n switchMap(() => this.syncUserData$())\r\n );\r\n }\r\n\r\n /**\r\n * {@link IUserService.syncUserData$}\r\n */\r\n public syncUserData$(): Observable<void> {\r\n return this.getUserData$().pipe(\r\n switchMap((user: User) => {\r\n this.user = user;\r\n return observableEmpty$;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * {@link IUserService.getUserData$}\r\n */\r\n public getUserData$(): Observable<User> {\r\n const httpRequest: Get = {\r\n url: this._getUserDataAPIUrl,\r\n };\r\n const getUserData$: Observable<User> = this._httpService.get(httpRequest);\r\n return httpRequest.url ? getUserData$ : of(this.user);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of as-user-lib\r\n */\r\n\r\n// enums\r\n\r\n// services\r\nexport * from './lib/services/user/user.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAKO,MAAM,mBAAmB,GAAkB;AAChD,IAAA,GAAG,EAAE;AACH,QAAA,mBAAmB,EAAE,WAAW;AAChC,QAAA,iBAAiB,EAAE,WAAW;AAC/B,KAAA;CACF;;ACJM,MAAM,gBAAgB,GAAW,OAAO,CAAC;AACzC,MAAM,aAAa,GAAA,OAAA,yBAAkC;AAErD,MAAM,WAAW,GAAS;AAC/B,IAAA,QAAQ,EAAE,gBAAgB;AAC1B,IAAA,KAAK,EAAE,aAA4B;AACnC,IAAA,QAAQ,EAAE,SAAS;CACpB;;ACQD;;AAEG;MAIU,WAAW,CAAA;AAqBtB;;;;AAIG;AACH,IAAA,WAAA,GAAA;AAzBA;;AAEG;QACI,IAAI,CAAA,IAAA,GAAS,WAAW,CAAC;AAEhC;;AAEG;AACK,QAAA,IAAA,CAAA,YAAY,GAAgB,MAAM,CAAC,WAAW,CAAC,CAAC;AAExD;;AAEG;QACK,IAAoB,CAAA,oBAAA,GAAW,WAAW,CAAC;AAEnD;;AAEG;QACK,IAAkB,CAAA,kBAAA,GAAW,WAAW,CAAC;QAQ/C,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,SAAS,EAAE,CAAC;KAC9C;AAED;;AAEG;AACI,IAAA,MAAM,CAAC,KAA6B,EAAA;QACzC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,GAAG,EAAE,mBAAmB,IAAI,WAAW,CAAC;QAC1E,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,GAAG,EAAE,iBAAiB,IAAI,WAAW,CAAC;AAEtE,QAAA,OAAO,gBAAgB,CAAC;KACzB;AAED;;AAEG;AACI,IAAA,cAAc,CAAC,IAAmB,EAAA;AACvC,QAAA,MAAM,WAAW,GAAU;YACzB,GAAG,EAAE,IAAI,CAAC,oBAAoB;AAC9B,YAAA,IAAI,EAAE,IAAI;SACX,CAAC;QACF,MAAM,eAAe,GACnB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACvC,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAC1B,SAAS,CAAC,MAAK;AACb,YAAA,IAAI,WAAW,CAAC,GAAG,EAAE;AACnB,gBAAA,OAAO,eAAe,CAAC;aACxB;iBAAM;AACL,gBAAA,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;AACtC,gBAAA,OAAO,gBAAgB,CAAC;aACzB;AACH,SAAC,CAAC,EACF,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CACtC,CAAC;KACH;AAED;;AAEG;IACI,aAAa,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAC7B,SAAS,CAAC,CAAC,IAAU,KAAI;AACvB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,YAAA,OAAO,gBAAgB,CAAC;SACzB,CAAC,CACH,CAAC;KACH;AAED;;AAEG;IACI,YAAY,GAAA;AACjB,QAAA,MAAM,WAAW,GAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,kBAAkB;SAC7B,CAAC;QACF,MAAM,YAAY,GAAqB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1E,QAAA,OAAO,WAAW,CAAC,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACvD;8GApFU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;AC1BD;;AAEG;AAEH;AAEA;;ACNA;;AAEG;;;;"}
package/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@albi_scando/as-user-lib" />
5
- export * from './public-api';
@@ -1,5 +0,0 @@
1
- import { USER_LEVELS } from '../enums/user-levels.enum';
2
- import { User } from '../interfaces/user.interface';
3
- export declare const DEFAULT_USERNAME: string;
4
- export declare const DEFAULT_LEVEL: USER_LEVELS;
5
- export declare const defaultUser: User;
@@ -1,2 +0,0 @@
1
- import { IUserLibSetup } from '../interfaces/setup.interface';
2
- export declare const defaultUserLibSetup: IUserLibSetup;
@@ -1,3 +0,0 @@
1
- export declare const enum USER_LEVELS {
2
- GUEST = "guest"
3
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * Configuration interface
3
- */
4
- export interface IUserLibSetup {
5
- api: API;
6
- }
7
- export interface API {
8
- patchUserDataAPIUrl: string;
9
- getUserDataAPIUrl: string;
10
- }
@@ -1,7 +0,0 @@
1
- import { LANGUAGES } from '@albi_scando/as-constants-lib';
2
- import { USER_LEVELS } from '../enums/user-levels.enum';
3
- export interface User {
4
- username: string;
5
- level: USER_LEVELS;
6
- language: LANGUAGES | undefined;
7
- }
@@ -1,50 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { User } from '../../interfaces/user.interface';
3
- import { IUserService } from './user.service.interface';
4
- import { IUserLibSetup } from '../../interfaces/setup.interface';
5
- import * as i0 from "@angular/core";
6
- /**
7
- *
8
- */
9
- export declare class UserService implements IUserService {
10
- /**
11
- * {@link IUserService.user}
12
- */
13
- user: User;
14
- /**
15
- * {@link HttpService}
16
- */
17
- private _httpService;
18
- /**
19
- * PATCH user data api url
20
- */
21
- private _patchUserDataAPIUrl;
22
- /**
23
- * GET user data api url
24
- */
25
- private _getUserDataAPIUrl;
26
- /**
27
- * Constructor
28
- * @constructor
29
- * @ignore
30
- */
31
- constructor();
32
- /**
33
- * {@link IUserService.setup$}
34
- */
35
- setup$(setup: Partial<IUserLibSetup>): Observable<void>;
36
- /**
37
- * {@link IUserService.patchUserData$}
38
- */
39
- patchUserData$(user: Partial<User>): Observable<void>;
40
- /**
41
- * {@link IUserService.syncUserData$}
42
- */
43
- syncUserData$(): Observable<void>;
44
- /**
45
- * {@link IUserService.getUserData$}
46
- */
47
- getUserData$(): Observable<User>;
48
- static ɵfac: i0.ɵɵFactoryDeclaration<UserService, never>;
49
- static ɵprov: i0.ɵɵInjectableDeclaration<UserService>;
50
- }
@@ -1,32 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { User } from '../../interfaces/user.interface';
3
- import { IUserLibSetup } from '../../interfaces/setup.interface';
4
- export interface IUserService {
5
- /**
6
- * User object
7
- */
8
- user: User;
9
- /**
10
- * Set service configuration
11
- * @param {Partial<IUserLibSetup>} setup configuration object
12
- * @returns {Observable<void>}
13
- */
14
- setup$(setup: Partial<IUserLibSetup>): Observable<void>;
15
- /**
16
- * Update user object with provided data
17
- * @param {Partial<User>} user partial user info to modify
18
- * @returns {Observable<void>}
19
- */
20
- patchUserData$(user: Partial<User>): Observable<void>;
21
- /**
22
- * Get user data
23
- * @returns {Observable<User>} user data
24
- */
25
- getUserData$(): Observable<User>;
26
- /**
27
- * If user data reside on a db, fetch it and use it to synchronize service user object.
28
- * If no db is available, set current user equal to itself.
29
- * @returns {Observable<void>}
30
- */
31
- syncUserData$(): Observable<void>;
32
- }