@abp/ng.account.core 5.0.0-rc.1 → 5.1.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 (43) hide show
  1. package/README.md +3 -3
  2. package/{esm2015/abp-ng.account.core.js → esm2020/abp-ng.account.core.mjs} +0 -0
  3. package/esm2020/lib/auth-wrapper.service.mjs +42 -0
  4. package/esm2020/lib/tenant-box.service.mjs +55 -0
  5. package/{esm2015/proxy/abp-ng.account.core-proxy.js → esm2020/proxy/abp-ng.account.core-proxy.mjs} +0 -0
  6. package/{esm2015/proxy/lib/index.js → esm2020/proxy/lib/index.mjs} +1 -1
  7. package/{esm2015/proxy/lib/proxy/account/account.service.js → esm2020/proxy/lib/proxy/account/account.service.mjs} +4 -4
  8. package/{esm2015/proxy/lib/proxy/account/index.js → esm2020/proxy/lib/proxy/account/index.mjs} +1 -1
  9. package/esm2020/proxy/lib/proxy/account/models.mjs +2 -0
  10. package/{esm2015/proxy/lib/proxy/account/profile.service.js → esm2020/proxy/lib/proxy/account/profile.service.mjs} +4 -4
  11. package/{esm2015/proxy/lib/proxy/account/web/areas/account/controllers/account.service.js → esm2020/proxy/lib/proxy/account/web/areas/account/controllers/account.service.mjs} +4 -4
  12. package/{esm2015/proxy/lib/proxy/account/web/areas/account/controllers/index.js → esm2020/proxy/lib/proxy/account/web/areas/account/controllers/index.mjs} +1 -1
  13. package/{esm2015/proxy/lib/proxy/account/web/areas/account/controllers/models/index.js → esm2020/proxy/lib/proxy/account/web/areas/account/controllers/models/index.mjs} +1 -1
  14. package/{esm2015/proxy/lib/proxy/account/web/areas/account/controllers/models/login-result-type.enum.js → esm2020/proxy/lib/proxy/account/web/areas/account/controllers/models/login-result-type.enum.mjs} +1 -1
  15. package/{esm2015/proxy/lib/proxy/account/web/areas/account/controllers/models/models.js → esm2020/proxy/lib/proxy/account/web/areas/account/controllers/models/models.mjs} +1 -1
  16. package/{esm2015/proxy/lib/proxy/account/web/areas/account/index.js → esm2020/proxy/lib/proxy/account/web/areas/account/index.mjs} +1 -1
  17. package/{esm2015/proxy/lib/proxy/account/web/areas/index.js → esm2020/proxy/lib/proxy/account/web/areas/index.mjs} +1 -1
  18. package/{esm2015/proxy/lib/proxy/account/web/index.js → esm2020/proxy/lib/proxy/account/web/index.mjs} +1 -1
  19. package/{esm2015/proxy/lib/proxy/identity/index.js → esm2020/proxy/lib/proxy/identity/index.mjs} +1 -1
  20. package/esm2020/proxy/lib/proxy/identity/models.mjs +2 -0
  21. package/{esm2015/proxy/public-api.js → esm2020/proxy/public-api.mjs} +1 -1
  22. package/{esm2015/public-api.js → esm2020/public-api.mjs} +1 -1
  23. package/fesm2015/{abp-ng.account.core-proxy.js → abp-ng.account.core-proxy.mjs} +10 -10
  24. package/fesm2015/abp-ng.account.core-proxy.mjs.map +1 -0
  25. package/fesm2015/{abp-ng.account.core.js → abp-ng.account.core.mjs} +7 -7
  26. package/fesm2015/abp-ng.account.core.mjs.map +1 -0
  27. package/fesm2020/abp-ng.account.core-proxy.mjs +136 -0
  28. package/fesm2020/abp-ng.account.core-proxy.mjs.map +1 -0
  29. package/fesm2020/abp-ng.account.core.mjs +101 -0
  30. package/fesm2020/abp-ng.account.core.mjs.map +1 -0
  31. package/package.json +29 -8
  32. package/proxy/package.json +5 -5
  33. package/proxy/src/lib/proxy/README.md +17 -0
  34. package/bundles/abp-ng.account.core-proxy.umd.js +0 -170
  35. package/bundles/abp-ng.account.core-proxy.umd.js.map +0 -1
  36. package/bundles/abp-ng.account.core.umd.js +0 -462
  37. package/bundles/abp-ng.account.core.umd.js.map +0 -1
  38. package/esm2015/lib/auth-wrapper.service.js +0 -43
  39. package/esm2015/lib/tenant-box.service.js +0 -57
  40. package/esm2015/proxy/lib/proxy/account/models.js +0 -2
  41. package/esm2015/proxy/lib/proxy/identity/models.js +0 -2
  42. package/fesm2015/abp-ng.account.core-proxy.js.map +0 -1
  43. package/fesm2015/abp-ng.account.core.js.map +0 -1
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC1jb3JlL3Byb3h5L3NyYy9saWIvcHJveHkvYWNjb3VudC9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXh0ZW5zaWJsZU9iamVjdCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlUGFzc3dvcmRJbnB1dCB7XG4gIGN1cnJlbnRQYXNzd29yZD86IHN0cmluZztcbiAgbmV3UGFzc3dvcmQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlRHRvIGV4dGVuZHMgRXh0ZW5zaWJsZU9iamVjdCB7XG4gIHVzZXJOYW1lPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgc3VybmFtZT86IHN0cmluZztcbiAgcGhvbmVOdW1iZXI/OiBzdHJpbmc7XG4gIGlzRXh0ZXJuYWw6IGJvb2xlYW47XG4gIGhhc1Bhc3N3b3JkOiBib29sZWFuO1xuICBjb25jdXJyZW5jeVN0YW1wPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyRHRvIGV4dGVuZHMgRXh0ZW5zaWJsZU9iamVjdCB7XG4gIHVzZXJOYW1lOiBzdHJpbmc7XG4gIGVtYWlsQWRkcmVzczogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xuICBhcHBOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXRQYXNzd29yZER0byB7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgcmVzZXRUb2tlbjogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbmRQYXNzd29yZFJlc2V0Q29kZUR0byB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGFwcE5hbWU6IHN0cmluZztcbiAgcmV0dXJuVXJsPzogc3RyaW5nO1xuICByZXR1cm5VcmxIYXNoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVByb2ZpbGVEdG8gZXh0ZW5kcyBFeHRlbnNpYmxlT2JqZWN0IHtcbiAgdXNlck5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBzdXJuYW1lPzogc3RyaW5nO1xuICBwaG9uZU51bWJlcj86IHN0cmluZztcbiAgY29uY3VycmVuY3lTdGFtcD86IHN0cmluZztcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC1jb3JlL3Byb3h5L3NyYy9saWIvcHJveHkvaWRlbnRpdHkvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEV4dGVuc2libGVGdWxsQXVkaXRlZEVudGl0eUR0byB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdHlVc2VyRHRvIGV4dGVuZHMgRXh0ZW5zaWJsZUZ1bGxBdWRpdGVkRW50aXR5RHRvPHN0cmluZz4ge1xuICB0ZW5hbnRJZD86IHN0cmluZztcbiAgdXNlck5hbWU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHN1cm5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBlbWFpbENvbmZpcm1lZDogYm9vbGVhbjtcbiAgcGhvbmVOdW1iZXI/OiBzdHJpbmc7XG4gIHBob25lTnVtYmVyQ29uZmlybWVkOiBib29sZWFuO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgbG9ja291dEVuYWJsZWQ6IGJvb2xlYW47XG4gIGxvY2tvdXRFbmQ/OiBzdHJpbmc7XG4gIGNvbmN1cnJlbmN5U3RhbXA/OiBzdHJpbmc7XG59XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"abp-ng.account.core-proxy.js","sources":["../../../../packages/account-core/proxy/src/lib/proxy/account/web/areas/account/controllers/models/login-result-type.enum.ts","../../../../packages/account-core/proxy/src/lib/proxy/account/web/areas/account/controllers/account.service.ts","../../../../packages/account-core/proxy/src/lib/proxy/account/account.service.ts","../../../../packages/account-core/proxy/src/lib/proxy/account/profile.service.ts","../../../../packages/account-core/proxy/src/abp-ng.account.core-proxy.ts"],"sourcesContent":["import { mapEnumToOptions } from '@abp/ng.core';\n\nexport enum LoginResultType {\n Success = 1,\n InvalidUserNameOrPassword = 2,\n NotAllowed = 3,\n LockedOut = 4,\n RequiresTwoFactor = 5,\n}\n\nexport const loginResultTypeOptions = mapEnumToOptions(LoginResultType);\n","import type { AbpLoginResult, UserLoginInfo } from './models/models';\nimport { RestService } from '@abp/ng.core';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountService {\n apiName = 'AbpAccount';\n\n checkPasswordByLogin = (login: UserLoginInfo) =>\n this.restService.request<any, AbpLoginResult>({\n method: 'POST',\n url: '/api/account/check-password',\n body: login,\n },\n { apiName: this.apiName });\n\n loginByLogin = (login: UserLoginInfo) =>\n this.restService.request<any, AbpLoginResult>({\n method: 'POST',\n url: '/api/account/login',\n body: login,\n },\n { apiName: this.apiName });\n\n logout = () =>\n this.restService.request<any, void>({\n method: 'GET',\n url: '/api/account/logout',\n },\n { apiName: this.apiName });\n\n constructor(private restService: RestService) {}\n}\n","import type { RegisterDto, ResetPasswordDto, SendPasswordResetCodeDto } from './models';\nimport { RestService } from '@abp/ng.core';\nimport { Injectable } from '@angular/core';\nimport type { IdentityUserDto } from '../identity/models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountService {\n apiName = 'AbpAccount';\n\n register = (input: RegisterDto) =>\n this.restService.request<any, IdentityUserDto>({\n method: 'POST',\n url: '/api/account/register',\n body: input,\n },\n { apiName: this.apiName });\n\n resetPassword = (input: ResetPasswordDto) =>\n this.restService.request<any, void>({\n method: 'POST',\n url: '/api/account/reset-password',\n body: input,\n },\n { apiName: this.apiName });\n\n sendPasswordResetCode = (input: SendPasswordResetCodeDto) =>\n this.restService.request<any, void>({\n method: 'POST',\n url: '/api/account/send-password-reset-code',\n body: input,\n },\n { apiName: this.apiName });\n\n constructor(private restService: RestService) {}\n}\n","import type { ChangePasswordInput, ProfileDto, UpdateProfileDto } from './models';\nimport { RestService } from '@abp/ng.core';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileService {\n apiName = 'AbpAccount';\n\n changePassword = (input: ChangePasswordInput) =>\n this.restService.request<any, void>({\n method: 'POST',\n url: '/api/account/my-profile/change-password',\n body: input,\n },\n { apiName: this.apiName });\n\n get = () =>\n this.restService.request<any, ProfileDto>({\n method: 'GET',\n url: '/api/account/my-profile',\n },\n { apiName: this.apiName });\n\n update = (input: UpdateProfileDto) =>\n this.restService.request<any, ProfileDto>({\n method: 'PUT',\n url: '/api/account/my-profile',\n body: input,\n },\n { apiName: this.apiName });\n\n constructor(private restService: RestService) {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["AccountService"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"abp-ng.account.core.js","sources":["../../../../packages/account-core/src/lib/auth-wrapper.service.ts","../../../../packages/account-core/src/lib/tenant-box.service.ts","../../../../packages/account-core/src/public-api.ts","../../../../packages/account-core/src/abp-ng.account.core.ts"],"sourcesContent":["import { Injectable, Injector } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ActivatedRoute } from '@angular/router';\nimport { ConfigStateService, MultiTenancyService } from '@abp/ng.core';\n\n@Injectable()\nexport class AuthWrapperService {\n isMultiTenancyEnabled$ = this.configState.getDeep$('multiTenancy.isEnabled');\n\n get enableLocalLogin$(): Observable<boolean> {\n return this.configState\n .getSetting$('Abp.Account.EnableLocalLogin')\n .pipe(map(value => value?.toLowerCase() !== 'false'));\n }\n\n tenantBoxKey = 'Account.TenantBoxComponent';\n route: ActivatedRoute;\n\n get isTenantBoxVisibleForCurrentRoute() {\n return this.getMostInnerChild().data.tenantBoxVisible ?? true;\n }\n\n get isTenantBoxVisible() {\n return this.isTenantBoxVisibleForCurrentRoute && this.multiTenancy.isTenantBoxVisible;\n }\n\n constructor(\n public readonly multiTenancy: MultiTenancyService,\n private configState: ConfigStateService,\n injector: Injector,\n ) {\n this.route = injector.get(ActivatedRoute);\n }\n\n private getMostInnerChild() {\n let child = this.route.snapshot;\n let depth = 0;\n const depthLimit = 10;\n while (child.firstChild && depth < depthLimit) {\n child = child.firstChild;\n depth++;\n }\n return child;\n }\n}\n","import {\n AbpTenantService,\n ConfigStateService,\n CurrentTenantDto,\n SessionStateService,\n} from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Injectable } from '@angular/core';\nimport { finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class TenantBoxService {\n currentTenant$ = this.sessionState.getTenant$();\n\n name: string;\n\n isModalVisible: boolean;\n\n modalBusy: boolean;\n\n constructor(\n private toasterService: ToasterService,\n private tenantService: AbpTenantService,\n private sessionState: SessionStateService,\n private configState: ConfigStateService,\n ) {}\n\n onSwitch() {\n const tenant = this.sessionState.getTenant();\n this.name = tenant?.name;\n this.isModalVisible = true;\n }\n\n save() {\n if (!this.name) {\n this.setTenant(null);\n this.isModalVisible = false;\n return;\n }\n\n this.modalBusy = true;\n this.tenantService\n .findTenantByName(this.name, {})\n .pipe(finalize(() => (this.modalBusy = false)))\n .subscribe(({ success, tenantId: id, ...tenant }) => {\n if (!success) {\n this.showError();\n return;\n }\n\n this.setTenant({ ...tenant, id, isAvailable: true });\n this.isModalVisible = false;\n });\n }\n\n private setTenant(tenant: CurrentTenantDto) {\n this.sessionState.setTenant(tenant);\n this.configState.refreshAppState();\n }\n\n private showError() {\n this.toasterService.error('AbpUiMultiTenancy::GivenTenantIsNotAvailable', 'AbpUi::Error', {\n messageLocalizationParams: [this.name],\n });\n }\n}\n","/*\n * Public API Surface of account-core\n */\n\nexport * from './lib/auth-wrapper.service';\nexport * from './lib/tenant-box.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}