@geekbears/gb-ngrx-stack-base 17.0.5 → 20.0.0
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.
- package/fesm2022/geekbears-gb-ngrx-stack-base.mjs.map +1 -1
- package/index.d.ts +152 -4
- package/package.json +7 -5
- package/domain/entities/index.d.ts +0 -1
- package/domain/entities/user.d.ts +0 -9
- package/domain/index.d.ts +0 -1
- package/esm2022/domain/entities/index.mjs +0 -2
- package/esm2022/domain/entities/user.mjs +0 -2
- package/esm2022/domain/index.mjs +0 -2
- package/esm2022/geekbears-gb-ngrx-stack-base.mjs +0 -5
- package/esm2022/index.mjs +0 -5
- package/esm2022/infrastructure/index.mjs +0 -2
- package/esm2022/infrastructure/models/index.mjs +0 -3
- package/esm2022/infrastructure/models/loaded-data.model.mjs +0 -55
- package/esm2022/infrastructure/models/user.model.mjs +0 -16
- package/esm2022/types/api-response.type.mjs +0 -2
- package/esm2022/types/do-interface.type.mjs +0 -2
- package/esm2022/types/failure.type.mjs +0 -6
- package/esm2022/types/index.mjs +0 -4
- package/esm2022/utils/authentication-change-base-action-token.mjs +0 -7
- package/esm2022/utils/failure.helper.mjs +0 -44
- package/esm2022/utils/http-response-handle.helper.mjs +0 -41
- package/esm2022/utils/index.mjs +0 -6
- package/esm2022/utils/rxjs.helper.mjs +0 -62
- package/esm2022/utils/test.mjs +0 -6
- package/infrastructure/index.d.ts +0 -1
- package/infrastructure/models/index.d.ts +0 -2
- package/infrastructure/models/loaded-data.model.d.ts +0 -22
- package/infrastructure/models/user.model.d.ts +0 -12
- package/types/api-response.type.d.ts +0 -18
- package/types/do-interface.type.d.ts +0 -3
- package/types/failure.type.d.ts +0 -8
- package/types/index.d.ts +0 -3
- package/utils/authentication-change-base-action-token.d.ts +0 -14
- package/utils/failure.helper.d.ts +0 -17
- package/utils/http-response-handle.helper.d.ts +0 -9
- package/utils/index.d.ts +0 -5
- package/utils/rxjs.helper.d.ts +0 -30
- package/utils/test.d.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geekbears-gb-ngrx-stack-base.mjs","sources":["../../../projects/gb-ngrx-stack-base/src/infrastructure/models/user.model.ts","../../../projects/gb-ngrx-stack-base/src/infrastructure/models/loaded-data.model.ts","../../../projects/gb-ngrx-stack-base/src/types/failure.type.ts","../../../projects/gb-ngrx-stack-base/src/utils/authentication-change-base-action-token.ts","../../../projects/gb-ngrx-stack-base/src/utils/failure.helper.ts","../../../projects/gb-ngrx-stack-base/src/utils/http-response-handle.helper.ts","../../../projects/gb-ngrx-stack-base/src/utils/rxjs.helper.ts","../../../projects/gb-ngrx-stack-base/src/utils/test.ts","../../../projects/gb-ngrx-stack-base/src/geekbears-gb-ngrx-stack-base.ts"],"sourcesContent":["import { IUser } from \"../../domain\";\n\nexport class UserModel implements IUser {\n email: string;\n firstName: string;\n lastName: string;\n roles: string[];\n permissions: string[];\n accountConfirmedAt?: Date | undefined;\n id: string;\n\n constructor(data: Partial<IUser>) {\n this.email = data.email ?? \"\";\n this.id = data.id ?? \"\";\n this.firstName = data.firstName ?? \"\";\n this.lastName = data.lastName ?? \"\";\n this.roles = data.permissions ?? [];\n this.permissions = data.permissions ?? [];\n this.accountConfirmedAt = data.accountConfirmedAt;\n }\n\n get fullName(): string {\n return `${this.firstName} ${this.lastName}`\n };\n}\n","import { isNil } from 'lodash-es';\nimport { Failure } from '../../types';\n\nexport interface ILoadedData<T> {\n loading: boolean;\n timestamp: Date | null;\n failure: Failure | null;\n value: T | null;\n}\n\nexport class LoadedData<T> {\n _class: 'LoadedData' = 'LoadedData';\n loading: boolean = false;\n timestamp: Date | null = null;\n failure: Failure | null = null;\n value: T | null = null;\n\n get errored(): boolean {\n return this.failure != undefined && this.failure != null;\n }\n\n constructor(data?: Partial<ILoadedData<T>>) {\n this.loading = data?.loading ?? this.loading;\n this.timestamp = data?.timestamp ?? !isNil(data?.value) ? new Date() : this.timestamp;\n this.value = data?.value ?? this.value;\n this.failure = data?.failure ?? this.failure;\n }\n\n equals(other: LoadedData<T>): boolean {\n if (this === other) return true;\n\n return (\n other instanceof LoadedData &&\n other.loading === this.loading &&\n other.timestamp === this.timestamp &&\n other.value === this.value &&\n other.failure?.code === this.failure?.code &&\n JSON.stringify(other.failure?.messages) === JSON.stringify(this.failure?.messages)\n );\n }\n\n copyWith(data: Partial<LoadedData<T>>): LoadedData<T> {\n return new LoadedData<T>(Object.assign({}, this, data));\n }\n\n copyWithData({ loading = false, value }: Partial<LoadedData<T>>): LoadedData<T> {\n return new LoadedData<T>({\n loading,\n timestamp: !isNil(value) ? new Date() : this.timestamp,\n value,\n failure: null,\n });\n }\n\n copyWithLoading(): LoadedData<T> {\n return this.copyWith({\n loading: true,\n });\n }\n\n toObject(): ILoadedData<T> {\n return {\n loading: this.loading,\n timestamp: this.timestamp,\n value: this.value,\n failure: this.failure,\n };\n }\n\n toString(): string {\n return JSON.stringify(this);\n }\n}\n","export interface Failure {\n code: FailureType | string;\n messages?: string[];\n}\n\nexport enum FailureType {\n RateLimitExceeded = 'RateLimitExceeded',\n}\n\nexport const UnkownFailureCode = \"unknown\";\n","import { InjectionToken } from '@angular/core';\nimport { Action, ActionCreator, Creator, NotAllowedCheck } from '@ngrx/store';\nimport { TypedAction } from '@ngrx/store/src/models';\nimport { IAuthenticationResponse } from '../types';\n\n/**\n * The idea of this token is to have a way to register a general action that deals with authentication changes\n * this way different libraries can rely on it either by subscribing it or dispatching it\n */\nexport const AuthenticationChangeBaseActionToken = new InjectionToken<AuthenticationChangeAction>(\n 'AuthenticationChangeBaseActionToken',\n);\n\nexport type AuthenticationChangeAction = ActionCreator<\n string,\n (\n props: AuthenticationChangeActionProps & NotAllowedCheck<AuthenticationChangeActionProps>,\n ) => AuthenticationChangeActionProps & TypedAction<string>\n>;\n\nexport interface AuthenticationChangeActionProps {\n authenticated: boolean;\n data: IAuthenticationResponse | null;\n}\n","import { get, has, isEmpty, isNil, isObject } from \"lodash-es\";\nimport { OperatorFunction } from \"rxjs\";\nimport { Failure } from \"../types\";\n\nexport type FailureMessageWrapper = (message: string) => string;\n\n/**\n * \n * @param failure The Failure as input\n * @param or If failure is null or couln't not retrieve any message from it, use this instead. Defaults to '' empty string\n * @param messageWrapper Failures often return an array of messages, this give you the oportunity to wrap each message between whatever you want\n * @param joiner The postfix that will join each message together, default behavior is to join by line break '\\n'\n * @returns A sigle string with the failure messages.\n */\nexport function getFailureMessageOr(failure: Failure | null | undefined, or: string = \"\", messageWrapper?: FailureMessageWrapper, joiner?: string): string {\n let messages: string[] = [];\n\n if(isNil(failure)) {\n return or;\n }\n\n if(!isNil(failure.messages) && !isEmpty(failure.messages)) {\n messages = failure.messages.map((message) => {\n if(isNil(messageWrapper)) {\n return message;\n }\n return messageWrapper(message);\n })\n } else if (!isNil(failure.code)) {\n messages = [failure.code];\n }\n\n if(isEmpty(messages)) {\n return or;\n }\n\n return messages.join(joiner?? \"\\n\");\n}\n\n/**\n * Since Failure is not a runtime type but just an interface this check if given object can be treated as a Failure\n * @param object Any object expected to be a Failure\n * @returns {boolean}\n */\nexport function maybeFailure(object: any): boolean {\n if(!isObject(object)) return false;\n\n if(has(object, \"code\")) {\n return true;\n }\n\n return false;\n}","import { HttpErrorResponse } from '@angular/common/http';\nimport { get, isEmpty, isNil, isObject, first, camelCase } from 'lodash-es';\nimport { Failure, UnkownFailureCode } from '../types';\n\nexport function httpResponseHandle(params: any) {}\n\n/**\n *\n * @param error Throwed error by a function on the call stack\n * @returns Returns a valid {Failure}\n */\nexport function httpResponseFailureHandle(error: Error | HttpErrorResponse): Failure {\n if (isObject(error) && error instanceof HttpErrorResponse) {\n let messages: string[] = get(error.error, 'messages', []);\n\n // to support old applications\n let singleMessage = get(error.error, 'message');\n if (isEmpty(messages) && !isNil(singleMessage)) {\n messages.push(singleMessage);\n }\n // to support old applications\n if (isNil(singleMessage) && !isNil(get(error.error, 'error'))) {\n let message = get(get(error.error, 'error'), 'message');\n if (!isNil(message)) messages.push(message);\n }\n return {\n code: get(error.error, 'errorCode') || camelCase(first(messages)) || error.message,\n messages: messages,\n };\n } else if (isObject(error) && error instanceof Error) {\n return {\n code: error.name,\n messages: !isNil(error.message) && !isEmpty(error.message) ? [error.message] : [],\n };\n } else {\n return {\n code: UnkownFailureCode,\n };\n }\n}\n","import { HttpErrorResponse } from \"@angular/common/http\"\nimport { isObject } from \"lodash-es\"\nimport { of, OperatorFunction, throwError } from \"rxjs\"\nimport { catchError, map } from \"rxjs/operators\"\nimport { Failure } from \"../types\"\nimport { FailureMessageWrapper, getFailureMessageOr, maybeFailure } from \"./failure.helper\"\nimport { httpResponseFailureHandle } from \"./http-response-handle.helper\"\n\n/**\n * This operator helps you catching any exception on your API call and tries to get a Failure form it and provides you with an easy way \n * of proccessing that failure into something else\n * @param converter Mapper function to dispatch given value instead of the Failure\n * @returns Returns any value provided ny the converter\n */\nexport function catchAndGetFromFailureRxOp<T>(converter: (failure: Failure) => T): OperatorFunction<any, T> {\n return catchError((error) => {\n let failure: Failure;\n if(isObject(error) && (error instanceof Error || error instanceof HttpErrorResponse)) {\n failure = httpResponseFailureHandle(error);\n } else if (maybeFailure(error)) {\n failure = error;\n } else {\n failure = httpResponseFailureHandle(error);\n }\n return of(\n converter(failure),\n );\n });\n}\n\n/**\n * Catch an error, throws a Failure in the onservabe pipeline\n * @returns Catch any error from the proccesed pipeline and throws a Failure instead\n */\nexport const catchAndThrowFailureRxOp = (): OperatorFunction<any, Failure> => {\n return catchError((error) => {\n let failure: Failure = httpResponseFailureHandle(error);\n return throwError(failure);\n });\n}\n\n/**\n * Catch an error and gets a Failure from it\n * @returns Returns a Failure\n */\nexport const catchGetFailureRxOp = (): OperatorFunction<any, Failure> => {\n return catchError((error) => {\n let failure: Failure = httpResponseFailureHandle(error);\n return of(failure);\n });\n}\n\n/**\n * This converts failure to a message using same logic as '[getFailureMessageOr]'\n * @see {@link getFailureMessageOr}\n * \n * @param or \n * @param messageWrapper \n * @param joiner \n * @returns \n */\nexport const getFailureMessageRxOp = (or: string = \"\", messageWrapper?: FailureMessageWrapper, joiner?: string): OperatorFunction<Failure | null | undefined, string> => {\n return map((failure) => {\n return getFailureMessageOr(failure, or, messageWrapper, joiner);\n });\n}","export function mockHttpResponse(data: object): object {\n return {\n data: data,\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"geekbears-gb-ngrx-stack-base.mjs","sources":["../../../projects/gb-ngrx-stack-base/src/infrastructure/models/user.model.ts","../../../projects/gb-ngrx-stack-base/src/infrastructure/models/loaded-data.model.ts","../../../projects/gb-ngrx-stack-base/src/types/failure.type.ts","../../../projects/gb-ngrx-stack-base/src/utils/authentication-change-base-action-token.ts","../../../projects/gb-ngrx-stack-base/src/utils/failure.helper.ts","../../../projects/gb-ngrx-stack-base/src/utils/http-response-handle.helper.ts","../../../projects/gb-ngrx-stack-base/src/utils/rxjs.helper.ts","../../../projects/gb-ngrx-stack-base/src/utils/test.ts","../../../projects/gb-ngrx-stack-base/src/geekbears-gb-ngrx-stack-base.ts"],"sourcesContent":["import { IUser } from \"../../domain\";\n\nexport class UserModel implements IUser {\n email: string;\n firstName: string;\n lastName: string;\n roles: string[];\n permissions: string[];\n accountConfirmedAt?: Date | undefined;\n id: string;\n\n constructor(data: Partial<IUser>) {\n this.email = data.email ?? \"\";\n this.id = data.id ?? \"\";\n this.firstName = data.firstName ?? \"\";\n this.lastName = data.lastName ?? \"\";\n this.roles = data.permissions ?? [];\n this.permissions = data.permissions ?? [];\n this.accountConfirmedAt = data.accountConfirmedAt;\n }\n\n get fullName(): string {\n return `${this.firstName} ${this.lastName}`\n };\n}\n","import { isNil } from 'lodash-es';\nimport { Failure } from '../../types';\n\nexport interface ILoadedData<T> {\n loading: boolean;\n timestamp: Date | null;\n failure: Failure | null;\n value: T | null;\n}\n\nexport class LoadedData<T> {\n _class: 'LoadedData' = 'LoadedData';\n loading: boolean = false;\n timestamp: Date | null = null;\n failure: Failure | null = null;\n value: T | null = null;\n\n get errored(): boolean {\n return this.failure != undefined && this.failure != null;\n }\n\n constructor(data?: Partial<ILoadedData<T>>) {\n this.loading = data?.loading ?? this.loading;\n this.timestamp = data?.timestamp ?? !isNil(data?.value) ? new Date() : this.timestamp;\n this.value = data?.value ?? this.value;\n this.failure = data?.failure ?? this.failure;\n }\n\n equals(other: LoadedData<T>): boolean {\n if (this === other) return true;\n\n return (\n other instanceof LoadedData &&\n other.loading === this.loading &&\n other.timestamp === this.timestamp &&\n other.value === this.value &&\n other.failure?.code === this.failure?.code &&\n JSON.stringify(other.failure?.messages) === JSON.stringify(this.failure?.messages)\n );\n }\n\n copyWith(data: Partial<LoadedData<T>>): LoadedData<T> {\n return new LoadedData<T>(Object.assign({}, this, data));\n }\n\n copyWithData({ loading = false, value }: Partial<LoadedData<T>>): LoadedData<T> {\n return new LoadedData<T>({\n loading,\n timestamp: !isNil(value) ? new Date() : this.timestamp,\n value,\n failure: null,\n });\n }\n\n copyWithLoading(): LoadedData<T> {\n return this.copyWith({\n loading: true,\n });\n }\n\n toObject(): ILoadedData<T> {\n return {\n loading: this.loading,\n timestamp: this.timestamp,\n value: this.value,\n failure: this.failure,\n };\n }\n\n toString(): string {\n return JSON.stringify(this);\n }\n}\n","export interface Failure {\n code: FailureType | string;\n messages?: string[];\n}\n\nexport enum FailureType {\n RateLimitExceeded = 'RateLimitExceeded',\n}\n\nexport const UnkownFailureCode = \"unknown\";\n","import { InjectionToken } from '@angular/core';\nimport { Action, ActionCreator, NotAllowedCheck } from '@ngrx/store';\nexport interface TypedAction<T extends string> extends Action {\n readonly type: T;\n}\nimport { IAuthenticationResponse } from '../types';\n\n/**\n * The idea of this token is to have a way to register a general action that deals with authentication changes\n * this way different libraries can rely on it either by subscribing it or dispatching it\n */\nexport const AuthenticationChangeBaseActionToken = new InjectionToken<AuthenticationChangeAction>(\n 'AuthenticationChangeBaseActionToken',\n);\n\nexport type AuthenticationChangeAction = ActionCreator<\n string,\n (\n props: AuthenticationChangeActionProps & NotAllowedCheck<AuthenticationChangeActionProps>,\n ) => AuthenticationChangeActionProps & TypedAction<string>\n>;\n\nexport interface AuthenticationChangeActionProps {\n authenticated: boolean;\n data: IAuthenticationResponse | null;\n}\n","import { get, has, isEmpty, isNil, isObject } from \"lodash-es\";\nimport { OperatorFunction } from \"rxjs\";\nimport { Failure } from \"../types\";\n\nexport type FailureMessageWrapper = (message: string) => string;\n\n/**\n * \n * @param failure The Failure as input\n * @param or If failure is null or couln't not retrieve any message from it, use this instead. Defaults to '' empty string\n * @param messageWrapper Failures often return an array of messages, this give you the oportunity to wrap each message between whatever you want\n * @param joiner The postfix that will join each message together, default behavior is to join by line break '\\n'\n * @returns A sigle string with the failure messages.\n */\nexport function getFailureMessageOr(failure: Failure | null | undefined, or: string = \"\", messageWrapper?: FailureMessageWrapper, joiner?: string): string {\n let messages: string[] = [];\n\n if(isNil(failure)) {\n return or;\n }\n\n if(!isNil(failure.messages) && !isEmpty(failure.messages)) {\n messages = failure.messages.map((message) => {\n if(isNil(messageWrapper)) {\n return message;\n }\n return messageWrapper(message);\n })\n } else if (!isNil(failure.code)) {\n messages = [failure.code];\n }\n\n if(isEmpty(messages)) {\n return or;\n }\n\n return messages.join(joiner?? \"\\n\");\n}\n\n/**\n * Since Failure is not a runtime type but just an interface this check if given object can be treated as a Failure\n * @param object Any object expected to be a Failure\n * @returns {boolean}\n */\nexport function maybeFailure(object: any): boolean {\n if(!isObject(object)) return false;\n\n if(has(object, \"code\")) {\n return true;\n }\n\n return false;\n}","import { HttpErrorResponse } from '@angular/common/http';\nimport { get, isEmpty, isNil, isObject, first, camelCase } from 'lodash-es';\nimport { Failure, UnkownFailureCode } from '../types';\n\nexport function httpResponseHandle(params: any) {}\n\n/**\n *\n * @param error Throwed error by a function on the call stack\n * @returns Returns a valid {Failure}\n */\nexport function httpResponseFailureHandle(error: Error | HttpErrorResponse): Failure {\n if (isObject(error) && error instanceof HttpErrorResponse) {\n let messages: string[] = get(error.error, 'messages', []);\n\n // to support old applications\n let singleMessage = get(error.error, 'message');\n if (isEmpty(messages) && !isNil(singleMessage)) {\n messages.push(singleMessage);\n }\n // to support old applications\n if (isNil(singleMessage) && !isNil(get(error.error, 'error'))) {\n let message = get(get(error.error, 'error'), 'message');\n if (!isNil(message)) messages.push(message);\n }\n return {\n code: get(error.error, 'errorCode') || camelCase(first(messages)) || error.message,\n messages: messages,\n };\n } else if (isObject(error) && error instanceof Error) {\n return {\n code: error.name,\n messages: !isNil(error.message) && !isEmpty(error.message) ? [error.message] : [],\n };\n } else {\n return {\n code: UnkownFailureCode,\n };\n }\n}\n","import { HttpErrorResponse } from \"@angular/common/http\"\nimport { isObject } from \"lodash-es\"\nimport { of, OperatorFunction, throwError } from \"rxjs\"\nimport { catchError, map } from \"rxjs/operators\"\nimport { Failure } from \"../types\"\nimport { FailureMessageWrapper, getFailureMessageOr, maybeFailure } from \"./failure.helper\"\nimport { httpResponseFailureHandle } from \"./http-response-handle.helper\"\n\n/**\n * This operator helps you catching any exception on your API call and tries to get a Failure form it and provides you with an easy way \n * of proccessing that failure into something else\n * @param converter Mapper function to dispatch given value instead of the Failure\n * @returns Returns any value provided ny the converter\n */\nexport function catchAndGetFromFailureRxOp<T>(converter: (failure: Failure) => T): OperatorFunction<any, T> {\n return catchError((error) => {\n let failure: Failure;\n if(isObject(error) && (error instanceof Error || error instanceof HttpErrorResponse)) {\n failure = httpResponseFailureHandle(error);\n } else if (maybeFailure(error)) {\n failure = error;\n } else {\n failure = httpResponseFailureHandle(error);\n }\n return of(\n converter(failure),\n );\n });\n}\n\n/**\n * Catch an error, throws a Failure in the onservabe pipeline\n * @returns Catch any error from the proccesed pipeline and throws a Failure instead\n */\nexport const catchAndThrowFailureRxOp = (): OperatorFunction<any, Failure> => {\n return catchError((error) => {\n let failure: Failure = httpResponseFailureHandle(error);\n return throwError(failure);\n });\n}\n\n/**\n * Catch an error and gets a Failure from it\n * @returns Returns a Failure\n */\nexport const catchGetFailureRxOp = (): OperatorFunction<any, Failure> => {\n return catchError((error) => {\n let failure: Failure = httpResponseFailureHandle(error);\n return of(failure);\n });\n}\n\n/**\n * This converts failure to a message using same logic as '[getFailureMessageOr]'\n * @see {@link getFailureMessageOr}\n * \n * @param or \n * @param messageWrapper \n * @param joiner \n * @returns \n */\nexport const getFailureMessageRxOp = (or: string = \"\", messageWrapper?: FailureMessageWrapper, joiner?: string): OperatorFunction<Failure | null | undefined, string> => {\n return map((failure) => {\n return getFailureMessageOr(failure, or, messageWrapper, joiner);\n });\n}","export function mockHttpResponse(data: object): object {\n return {\n data: data,\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAEa,SAAS,CAAA;AASlB,IAAA,WAAA,CAAY,IAAoB,EAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE;AACzC,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB;IACrD;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAA,CAAE;IAC7C;;AACH;;MCdY,UAAU,CAAA;AAOnB,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI;IAC5D;AAEA,IAAA,WAAA,CAAY,IAA8B,EAAA;QAV1C,IAAA,CAAA,MAAM,GAAiB,YAAY;QACnC,IAAA,CAAA,OAAO,GAAY,KAAK;QACxB,IAAA,CAAA,SAAS,GAAgB,IAAI;QAC7B,IAAA,CAAA,OAAO,GAAmB,IAAI;QAC9B,IAAA,CAAA,KAAK,GAAa,IAAI;QAOlB,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS;QACrF,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO;IAChD;AAEA,IAAA,MAAM,CAAC,KAAoB,EAAA;QACvB,IAAI,IAAI,KAAK,KAAK;AAAE,YAAA,OAAO,IAAI;QAE/B,QACI,KAAK,YAAY,UAAU;AAC3B,YAAA,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;AAC9B,YAAA,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;AAClC,YAAA,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;YAC1B,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,IAAI;YAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;IAE1F;AAEA,IAAA,QAAQ,CAAC,IAA4B,EAAA;AACjC,QAAA,OAAO,IAAI,UAAU,CAAI,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D;AAEA,IAAA,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAA0B,EAAA;QAC3D,OAAO,IAAI,UAAU,CAAI;YACrB,OAAO;AACP,YAAA,SAAS,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS;YACtD,KAAK;AACL,YAAA,OAAO,EAAE,IAAI;AAChB,SAAA,CAAC;IACN;IAEA,eAAe,GAAA;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC;AACjB,YAAA,OAAO,EAAE,IAAI;AAChB,SAAA,CAAC;IACN;IAEA,QAAQ,GAAA;QACJ,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB;IACL;IAEA,QAAQ,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC/B;AACH;;ICnEW;AAAZ,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC;AACzC,CAAC,EAFW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;AAIhB,MAAM,iBAAiB,GAAG;;ACFjC;;;AAGG;MACU,mCAAmC,GAAG,IAAI,cAAc,CACjE,qCAAqC;;ACNzC;;;;;;;AAOG;AACG,SAAU,mBAAmB,CAAC,OAAmC,EAAE,KAAa,EAAE,EAAE,cAAsC,EAAE,MAAe,EAAA;IAC7I,IAAI,QAAQ,GAAa,EAAE;AAE3B,IAAA,IAAG,KAAK,CAAC,OAAO,CAAC,EAAE;AACf,QAAA,OAAO,EAAE;IACb;AAEA,IAAA,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACvD,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAI;AACxC,YAAA,IAAG,KAAK,CAAC,cAAc,CAAC,EAAE;AACtB,gBAAA,OAAO,OAAO;YAClB;AACA,YAAA,OAAO,cAAc,CAAC,OAAO,CAAC;AAClC,QAAA,CAAC,CAAC;IACN;SAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC7B,QAAA,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B;AAEA,IAAA,IAAG,OAAO,CAAC,QAAQ,CAAC,EAAE;AAClB,QAAA,OAAO,EAAE;IACb;IAEA,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAG,IAAI,CAAC;AACvC;AAEA;;;;AAIG;AACG,SAAU,YAAY,CAAC,MAAW,EAAA;AACpC,IAAA,IAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,KAAK;AAElC,IAAA,IAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;AACpB,QAAA,OAAO,IAAI;IACf;AAEA,IAAA,OAAO,KAAK;AAChB;;AChDM,SAAU,kBAAkB,CAAC,MAAW,IAAG;AAEjD;;;;AAIG;AACG,SAAU,yBAAyB,CAAC,KAAgC,EAAA;IACtE,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,iBAAiB,EAAE;AACvD,QAAA,IAAI,QAAQ,GAAa,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC;;QAGzD,IAAI,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC;QAC/C,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;AAC5C,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;QAChC;;AAEA,QAAA,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE;AAC3D,YAAA,IAAI,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC;AACvD,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAAE,gBAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;QAC/C;QACA,OAAO;YACH,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO;AAClF,YAAA,QAAQ,EAAE,QAAQ;SACrB;IACL;SAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,KAAK,EAAE;QAClD,OAAO;YACH,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;SACpF;IACL;SAAO;QACH,OAAO;AACH,YAAA,IAAI,EAAE,iBAAiB;SAC1B;IACL;AACJ;;AC/BA;;;;;AAKG;AACG,SAAU,0BAA0B,CAAI,SAAkC,EAAA;AAC5E,IAAA,OAAO,UAAU,CAAC,CAAC,KAAK,KAAI;AACxB,QAAA,IAAI,OAAgB;AACpB,QAAA,IAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,YAAY,KAAK,IAAI,KAAK,YAAY,iBAAiB,CAAC,EAAE;AAClF,YAAA,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC;QAC9C;AAAO,aAAA,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,GAAG,KAAK;QACnB;aAAO;AACH,YAAA,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC;QAC9C;AACA,QAAA,OAAO,EAAE,CACL,SAAS,CAAC,OAAO,CAAC,CACrB;AACL,IAAA,CAAC,CAAC;AACN;AAEA;;;AAGG;AACI,MAAM,wBAAwB,GAAG,MAAqC;AACzE,IAAA,OAAO,UAAU,CAAC,CAAC,KAAK,KAAI;AACxB,QAAA,IAAI,OAAO,GAAY,yBAAyB,CAAC,KAAK,CAAC;AACvD,QAAA,OAAO,UAAU,CAAC,OAAO,CAAC;AAC9B,IAAA,CAAC,CAAC;AACN;AAEA;;;AAGG;AACI,MAAM,mBAAmB,GAAG,MAAqC;AACpE,IAAA,OAAO,UAAU,CAAC,CAAC,KAAK,KAAI;AACxB,QAAA,IAAI,OAAO,GAAY,yBAAyB,CAAC,KAAK,CAAC;AACvD,QAAA,OAAO,EAAE,CAAC,OAAO,CAAC;AACtB,IAAA,CAAC,CAAC;AACN;AAEA;;;;;;;;AAQG;AACI,MAAM,qBAAqB,GAAG,CAAC,EAAA,GAAa,EAAE,EAAE,cAAsC,EAAE,MAAe,KAA0D;AACpK,IAAA,OAAO,GAAG,CAAC,CAAC,OAAO,KAAI;QACnB,OAAO,mBAAmB,CAAC,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC;AACnE,IAAA,CAAC,CAAC;AACN;;ACjEM,SAAU,gBAAgB,CAAC,IAAY,EAAA;IACzC,OAAO;AACH,QAAA,IAAI,EAAE,IAAI;KACb;AACL;;ACJA;;AAEG;;;;"}
|
package/index.d.ts
CHANGED
|
@@ -1,4 +1,152 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { Action, ActionCreator, NotAllowedCheck } from '@ngrx/store';
|
|
3
|
+
import { HttpErrorResponse } from '@angular/common/http';
|
|
4
|
+
import { OperatorFunction } from 'rxjs';
|
|
5
|
+
|
|
6
|
+
interface IUser {
|
|
7
|
+
id: string;
|
|
8
|
+
email: string;
|
|
9
|
+
firstName: string;
|
|
10
|
+
lastName: string;
|
|
11
|
+
roles: string[] | undefined;
|
|
12
|
+
permissions: string[] | undefined;
|
|
13
|
+
accountConfirmedAt?: Date;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare class UserModel implements IUser {
|
|
17
|
+
email: string;
|
|
18
|
+
firstName: string;
|
|
19
|
+
lastName: string;
|
|
20
|
+
roles: string[];
|
|
21
|
+
permissions: string[];
|
|
22
|
+
accountConfirmedAt?: Date | undefined;
|
|
23
|
+
id: string;
|
|
24
|
+
constructor(data: Partial<IUser>);
|
|
25
|
+
get fullName(): string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
interface IAuthenticationResponse {
|
|
29
|
+
id: string;
|
|
30
|
+
token: string;
|
|
31
|
+
expired: boolean;
|
|
32
|
+
user?: IUser | null;
|
|
33
|
+
refreshToken?: string | null;
|
|
34
|
+
deviceInfo?: IAuthDeviceInfo;
|
|
35
|
+
copyWith(data: Partial<IAuthenticationResponse>): IAuthenticationResponse;
|
|
36
|
+
}
|
|
37
|
+
interface IAuthDeviceInfo {
|
|
38
|
+
id: string;
|
|
39
|
+
name: string;
|
|
40
|
+
toJson(): string;
|
|
41
|
+
toMap(): {
|
|
42
|
+
[key: string]: any;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
interface Failure {
|
|
47
|
+
code: FailureType | string;
|
|
48
|
+
messages?: string[];
|
|
49
|
+
}
|
|
50
|
+
declare enum FailureType {
|
|
51
|
+
RateLimitExceeded = "RateLimitExceeded"
|
|
52
|
+
}
|
|
53
|
+
declare const UnkownFailureCode = "unknown";
|
|
54
|
+
|
|
55
|
+
type DoInterface<T, K extends PropertyKey = never> = Omit<{
|
|
56
|
+
[P in keyof T as T[P] extends Function ? never : P extends K ? never : P]: T[P];
|
|
57
|
+
}, '_class'>;
|
|
58
|
+
|
|
59
|
+
interface ILoadedData<T> {
|
|
60
|
+
loading: boolean;
|
|
61
|
+
timestamp: Date | null;
|
|
62
|
+
failure: Failure | null;
|
|
63
|
+
value: T | null;
|
|
64
|
+
}
|
|
65
|
+
declare class LoadedData<T> {
|
|
66
|
+
_class: 'LoadedData';
|
|
67
|
+
loading: boolean;
|
|
68
|
+
timestamp: Date | null;
|
|
69
|
+
failure: Failure | null;
|
|
70
|
+
value: T | null;
|
|
71
|
+
get errored(): boolean;
|
|
72
|
+
constructor(data?: Partial<ILoadedData<T>>);
|
|
73
|
+
equals(other: LoadedData<T>): boolean;
|
|
74
|
+
copyWith(data: Partial<LoadedData<T>>): LoadedData<T>;
|
|
75
|
+
copyWithData({ loading, value }: Partial<LoadedData<T>>): LoadedData<T>;
|
|
76
|
+
copyWithLoading(): LoadedData<T>;
|
|
77
|
+
toObject(): ILoadedData<T>;
|
|
78
|
+
toString(): string;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
interface TypedAction<T extends string> extends Action {
|
|
82
|
+
readonly type: T;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* The idea of this token is to have a way to register a general action that deals with authentication changes
|
|
87
|
+
* this way different libraries can rely on it either by subscribing it or dispatching it
|
|
88
|
+
*/
|
|
89
|
+
declare const AuthenticationChangeBaseActionToken: InjectionToken<AuthenticationChangeAction>;
|
|
90
|
+
type AuthenticationChangeAction = ActionCreator<string, (props: AuthenticationChangeActionProps & NotAllowedCheck<AuthenticationChangeActionProps>) => AuthenticationChangeActionProps & TypedAction<string>>;
|
|
91
|
+
interface AuthenticationChangeActionProps {
|
|
92
|
+
authenticated: boolean;
|
|
93
|
+
data: IAuthenticationResponse | null;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
type FailureMessageWrapper = (message: string) => string;
|
|
97
|
+
/**
|
|
98
|
+
*
|
|
99
|
+
* @param failure The Failure as input
|
|
100
|
+
* @param or If failure is null or couln't not retrieve any message from it, use this instead. Defaults to '' empty string
|
|
101
|
+
* @param messageWrapper Failures often return an array of messages, this give you the oportunity to wrap each message between whatever you want
|
|
102
|
+
* @param joiner The postfix that will join each message together, default behavior is to join by line break '\n'
|
|
103
|
+
* @returns A sigle string with the failure messages.
|
|
104
|
+
*/
|
|
105
|
+
declare function getFailureMessageOr(failure: Failure | null | undefined, or?: string, messageWrapper?: FailureMessageWrapper, joiner?: string): string;
|
|
106
|
+
/**
|
|
107
|
+
* Since Failure is not a runtime type but just an interface this check if given object can be treated as a Failure
|
|
108
|
+
* @param object Any object expected to be a Failure
|
|
109
|
+
* @returns {boolean}
|
|
110
|
+
*/
|
|
111
|
+
declare function maybeFailure(object: any): boolean;
|
|
112
|
+
|
|
113
|
+
declare function httpResponseHandle(params: any): void;
|
|
114
|
+
/**
|
|
115
|
+
*
|
|
116
|
+
* @param error Throwed error by a function on the call stack
|
|
117
|
+
* @returns Returns a valid {Failure}
|
|
118
|
+
*/
|
|
119
|
+
declare function httpResponseFailureHandle(error: Error | HttpErrorResponse): Failure;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* This operator helps you catching any exception on your API call and tries to get a Failure form it and provides you with an easy way
|
|
123
|
+
* of proccessing that failure into something else
|
|
124
|
+
* @param converter Mapper function to dispatch given value instead of the Failure
|
|
125
|
+
* @returns Returns any value provided ny the converter
|
|
126
|
+
*/
|
|
127
|
+
declare function catchAndGetFromFailureRxOp<T>(converter: (failure: Failure) => T): OperatorFunction<any, T>;
|
|
128
|
+
/**
|
|
129
|
+
* Catch an error, throws a Failure in the onservabe pipeline
|
|
130
|
+
* @returns Catch any error from the proccesed pipeline and throws a Failure instead
|
|
131
|
+
*/
|
|
132
|
+
declare const catchAndThrowFailureRxOp: () => OperatorFunction<any, Failure>;
|
|
133
|
+
/**
|
|
134
|
+
* Catch an error and gets a Failure from it
|
|
135
|
+
* @returns Returns a Failure
|
|
136
|
+
*/
|
|
137
|
+
declare const catchGetFailureRxOp: () => OperatorFunction<any, Failure>;
|
|
138
|
+
/**
|
|
139
|
+
* This converts failure to a message using same logic as '[getFailureMessageOr]'
|
|
140
|
+
* @see {@link getFailureMessageOr}
|
|
141
|
+
*
|
|
142
|
+
* @param or
|
|
143
|
+
* @param messageWrapper
|
|
144
|
+
* @param joiner
|
|
145
|
+
* @returns
|
|
146
|
+
*/
|
|
147
|
+
declare const getFailureMessageRxOp: (or?: string, messageWrapper?: FailureMessageWrapper, joiner?: string) => OperatorFunction<Failure | null | undefined, string>;
|
|
148
|
+
|
|
149
|
+
declare function mockHttpResponse(data: object): object;
|
|
150
|
+
|
|
151
|
+
export { AuthenticationChangeBaseActionToken, FailureType, LoadedData, UnkownFailureCode, UserModel, catchAndGetFromFailureRxOp, catchAndThrowFailureRxOp, catchGetFailureRxOp, getFailureMessageOr, getFailureMessageRxOp, httpResponseFailureHandle, httpResponseHandle, maybeFailure, mockHttpResponse };
|
|
152
|
+
export type { AuthenticationChangeAction, AuthenticationChangeActionProps, DoInterface, Failure, FailureMessageWrapper, IAuthDeviceInfo, IAuthenticationResponse, ILoadedData, IUser, TypedAction };
|
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geekbears/gb-ngrx-stack-base",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "20.0.0",
|
|
4
|
+
"license": "MIT",
|
|
4
5
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
6
|
+
"@angular/common": "^20.0.0",
|
|
7
|
+
"@angular/core": "^20.0.0",
|
|
8
|
+
"@ngrx/store": "^20.0.0",
|
|
9
|
+
"lodash-es": "^4.17.0",
|
|
10
|
+
"rxjs": "^7.8.0"
|
|
7
11
|
},
|
|
8
12
|
"dependencies": {
|
|
9
13
|
"tslib": "^2.3.0"
|
|
@@ -16,8 +20,6 @@
|
|
|
16
20
|
},
|
|
17
21
|
".": {
|
|
18
22
|
"types": "./index.d.ts",
|
|
19
|
-
"esm2022": "./esm2022/geekbears-gb-ngrx-stack-base.mjs",
|
|
20
|
-
"esm": "./esm2022/geekbears-gb-ngrx-stack-base.mjs",
|
|
21
23
|
"default": "./fesm2022/geekbears-gb-ngrx-stack-base.mjs"
|
|
22
24
|
}
|
|
23
25
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./user";
|
package/domain/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./entities";
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from "./user";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYi1uZ3J4LXN0YWNrLWJhc2Uvc3JjL2RvbWFpbi9lbnRpdGllcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3VzZXJcIjsiXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2diLW5ncngtc3RhY2stYmFzZS9zcmMvZG9tYWluL2VudGl0aWVzL3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVVzZXIge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgICBmaXJzdE5hbWU6IHN0cmluZztcbiAgICBsYXN0TmFtZTogc3RyaW5nO1xuICAgIHJvbGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICBwZXJtaXNzaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgYWNjb3VudENvbmZpcm1lZEF0PzogRGF0ZTtcbn1cbiJdfQ==
|
package/esm2022/domain/index.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from "./entities";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9nYi1uZ3J4LXN0YWNrLWJhc2Uvc3JjL2RvbWFpbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzXCI7Il19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2Vla2JlYXJzLWdiLW5ncngtc3RhY2stYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2diLW5ncngtc3RhY2stYmFzZS9zcmMvZ2Vla2JlYXJzLWdiLW5ncngtc3RhY2stYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
package/esm2022/index.mjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from "./domain";
|
|
2
|
-
export * from "./infrastructure";
|
|
3
|
-
export * from "./types";
|
|
4
|
-
export * from "./utils";
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9nYi1uZ3J4LXN0YWNrLWJhc2Uvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9kb21haW5cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2luZnJhc3RydWN0dXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjsiXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from "./models";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9nYi1uZ3J4LXN0YWNrLWJhc2Uvc3JjL2luZnJhc3RydWN0dXJlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzXCI7Il19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './user.model';
|
|
2
|
-
export * from './loaded-data.model';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYi1uZ3J4LXN0YWNrLWJhc2Uvc3JjL2luZnJhc3RydWN0dXJlL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91c2VyLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGVkLWRhdGEubW9kZWwnO1xuIl19
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { isNil } from 'lodash-es';
|
|
2
|
-
export class LoadedData {
|
|
3
|
-
get errored() {
|
|
4
|
-
return this.failure != undefined && this.failure != null;
|
|
5
|
-
}
|
|
6
|
-
constructor(data) {
|
|
7
|
-
this._class = 'LoadedData';
|
|
8
|
-
this.loading = false;
|
|
9
|
-
this.timestamp = null;
|
|
10
|
-
this.failure = null;
|
|
11
|
-
this.value = null;
|
|
12
|
-
this.loading = data?.loading ?? this.loading;
|
|
13
|
-
this.timestamp = data?.timestamp ?? !isNil(data?.value) ? new Date() : this.timestamp;
|
|
14
|
-
this.value = data?.value ?? this.value;
|
|
15
|
-
this.failure = data?.failure ?? this.failure;
|
|
16
|
-
}
|
|
17
|
-
equals(other) {
|
|
18
|
-
if (this === other)
|
|
19
|
-
return true;
|
|
20
|
-
return (other instanceof LoadedData &&
|
|
21
|
-
other.loading === this.loading &&
|
|
22
|
-
other.timestamp === this.timestamp &&
|
|
23
|
-
other.value === this.value &&
|
|
24
|
-
other.failure?.code === this.failure?.code &&
|
|
25
|
-
JSON.stringify(other.failure?.messages) === JSON.stringify(this.failure?.messages));
|
|
26
|
-
}
|
|
27
|
-
copyWith(data) {
|
|
28
|
-
return new LoadedData(Object.assign({}, this, data));
|
|
29
|
-
}
|
|
30
|
-
copyWithData({ loading = false, value }) {
|
|
31
|
-
return new LoadedData({
|
|
32
|
-
loading,
|
|
33
|
-
timestamp: !isNil(value) ? new Date() : this.timestamp,
|
|
34
|
-
value,
|
|
35
|
-
failure: null,
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
copyWithLoading() {
|
|
39
|
-
return this.copyWith({
|
|
40
|
-
loading: true,
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
toObject() {
|
|
44
|
-
return {
|
|
45
|
-
loading: this.loading,
|
|
46
|
-
timestamp: this.timestamp,
|
|
47
|
-
value: this.value,
|
|
48
|
-
failure: this.failure,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
toString() {
|
|
52
|
-
return JSON.stringify(this);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVkLWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYi1uZ3J4LXN0YWNrLWJhc2Uvc3JjL2luZnJhc3RydWN0dXJlL21vZGVscy9sb2FkZWQtZGF0YS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBVWxDLE1BQU0sT0FBTyxVQUFVO0lBT25CLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUM7SUFDN0QsQ0FBQztJQUVELFlBQVksSUFBOEI7UUFWMUMsV0FBTSxHQUFpQixZQUFZLENBQUM7UUFDcEMsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixjQUFTLEdBQWdCLElBQUksQ0FBQztRQUM5QixZQUFPLEdBQW1CLElBQUksQ0FBQztRQUMvQixVQUFLLEdBQWEsSUFBSSxDQUFDO1FBT25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxFQUFFLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDdEYsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDakQsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFvQjtRQUN2QixJQUFJLElBQUksS0FBSyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFaEMsT0FBTyxDQUNILEtBQUssWUFBWSxVQUFVO1lBQzNCLEtBQUssQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLE9BQU87WUFDOUIsS0FBSyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsU0FBUztZQUNsQyxLQUFLLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLO1lBQzFCLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSTtZQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUNyRixDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUE0QjtRQUNqQyxPQUFPLElBQUksVUFBVSxDQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxZQUFZLENBQUMsRUFBRSxPQUFPLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBMEI7UUFDM0QsT0FBTyxJQUFJLFVBQVUsQ0FBSTtZQUNyQixPQUFPO1lBQ1AsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUN0RCxLQUFLO1lBQ0wsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDakIsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixPQUFPO1lBQ0gsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3hCLENBQUM7SUFDTixDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc05pbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBGYWlsdXJlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElMb2FkZWREYXRhPFQ+IHtcbiAgICBsb2FkaW5nOiBib29sZWFuO1xuICAgIHRpbWVzdGFtcDogRGF0ZSB8IG51bGw7XG4gICAgZmFpbHVyZTogRmFpbHVyZSB8IG51bGw7XG4gICAgdmFsdWU6IFQgfCBudWxsO1xufVxuXG5leHBvcnQgY2xhc3MgTG9hZGVkRGF0YTxUPiB7XG4gICAgX2NsYXNzOiAnTG9hZGVkRGF0YScgPSAnTG9hZGVkRGF0YSc7XG4gICAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHRpbWVzdGFtcDogRGF0ZSB8IG51bGwgPSBudWxsO1xuICAgIGZhaWx1cmU6IEZhaWx1cmUgfCBudWxsID0gbnVsbDtcbiAgICB2YWx1ZTogVCB8IG51bGwgPSBudWxsO1xuXG4gICAgZ2V0IGVycm9yZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZhaWx1cmUgIT0gdW5kZWZpbmVkICYmIHRoaXMuZmFpbHVyZSAhPSBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBQYXJ0aWFsPElMb2FkZWREYXRhPFQ+Pikge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBkYXRhPy5sb2FkaW5nID8/IHRoaXMubG9hZGluZztcbiAgICAgICAgdGhpcy50aW1lc3RhbXAgPSBkYXRhPy50aW1lc3RhbXAgPz8gIWlzTmlsKGRhdGE/LnZhbHVlKSA/IG5ldyBEYXRlKCkgOiB0aGlzLnRpbWVzdGFtcDtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGE/LnZhbHVlID8/IHRoaXMudmFsdWU7XG4gICAgICAgIHRoaXMuZmFpbHVyZSA9IGRhdGE/LmZhaWx1cmUgPz8gdGhpcy5mYWlsdXJlO1xuICAgIH1cblxuICAgIGVxdWFscyhvdGhlcjogTG9hZGVkRGF0YTxUPik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcyA9PT0gb3RoZXIpIHJldHVybiB0cnVlO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBvdGhlciBpbnN0YW5jZW9mIExvYWRlZERhdGEgJiZcbiAgICAgICAgICAgIG90aGVyLmxvYWRpbmcgPT09IHRoaXMubG9hZGluZyAmJlxuICAgICAgICAgICAgb3RoZXIudGltZXN0YW1wID09PSB0aGlzLnRpbWVzdGFtcCAmJlxuICAgICAgICAgICAgb3RoZXIudmFsdWUgPT09IHRoaXMudmFsdWUgJiZcbiAgICAgICAgICAgIG90aGVyLmZhaWx1cmU/LmNvZGUgPT09IHRoaXMuZmFpbHVyZT8uY29kZSAmJlxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkob3RoZXIuZmFpbHVyZT8ubWVzc2FnZXMpID09PSBKU09OLnN0cmluZ2lmeSh0aGlzLmZhaWx1cmU/Lm1lc3NhZ2VzKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvcHlXaXRoKGRhdGE6IFBhcnRpYWw8TG9hZGVkRGF0YTxUPj4pOiBMb2FkZWREYXRhPFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBMb2FkZWREYXRhPFQ+KE9iamVjdC5hc3NpZ24oe30sIHRoaXMsIGRhdGEpKTtcbiAgICB9XG5cbiAgICBjb3B5V2l0aERhdGEoeyBsb2FkaW5nID0gZmFsc2UsIHZhbHVlIH06IFBhcnRpYWw8TG9hZGVkRGF0YTxUPj4pOiBMb2FkZWREYXRhPFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBMb2FkZWREYXRhPFQ+KHtcbiAgICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgICB0aW1lc3RhbXA6ICFpc05pbCh2YWx1ZSkgPyBuZXcgRGF0ZSgpIDogdGhpcy50aW1lc3RhbXAsXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGZhaWx1cmU6IG51bGwsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvcHlXaXRoTG9hZGluZygpOiBMb2FkZWREYXRhPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29weVdpdGgoe1xuICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdG9PYmplY3QoKTogSUxvYWRlZERhdGE8VD4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbG9hZGluZzogdGhpcy5sb2FkaW5nLFxuICAgICAgICAgICAgdGltZXN0YW1wOiB0aGlzLnRpbWVzdGFtcCxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgZmFpbHVyZTogdGhpcy5mYWlsdXJlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export class UserModel {
|
|
2
|
-
constructor(data) {
|
|
3
|
-
this.email = data.email ?? "";
|
|
4
|
-
this.id = data.id ?? "";
|
|
5
|
-
this.firstName = data.firstName ?? "";
|
|
6
|
-
this.lastName = data.lastName ?? "";
|
|
7
|
-
this.roles = data.permissions ?? [];
|
|
8
|
-
this.permissions = data.permissions ?? [];
|
|
9
|
-
this.accountConfirmedAt = data.accountConfirmedAt;
|
|
10
|
-
}
|
|
11
|
-
get fullName() {
|
|
12
|
-
return `${this.firstName} ${this.lastName}`;
|
|
13
|
-
}
|
|
14
|
-
;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2diLW5ncngtc3RhY2stYmFzZS9zcmMvaW5mcmFzdHJ1Y3R1cmUvbW9kZWxzL3VzZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFNBQVM7SUFTbEIsWUFBWSxJQUFvQjtRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDN0MsQ0FBQztJQUFBLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElVc2VyIH0gZnJvbSBcIi4uLy4uL2RvbWFpblwiO1xuXG5leHBvcnQgY2xhc3MgVXNlck1vZGVsIGltcGxlbWVudHMgSVVzZXIge1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gICAgbGFzdE5hbWU6IHN0cmluZztcbiAgICByb2xlczogc3RyaW5nW107XG4gICAgcGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICAgIGFjY291bnRDb25maXJtZWRBdD86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgaWQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8SVVzZXI+KSB7XG4gICAgICAgIHRoaXMuZW1haWwgPSBkYXRhLmVtYWlsID8/IFwiXCI7XG4gICAgICAgIHRoaXMuaWQgPSBkYXRhLmlkID8/IFwiXCI7XG4gICAgICAgIHRoaXMuZmlyc3ROYW1lID0gZGF0YS5maXJzdE5hbWUgPz8gXCJcIjtcbiAgICAgICAgdGhpcy5sYXN0TmFtZSA9IGRhdGEubGFzdE5hbWUgPz8gXCJcIjtcbiAgICAgICAgdGhpcy5yb2xlcyA9IGRhdGEucGVybWlzc2lvbnMgPz8gW107XG4gICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSBkYXRhLnBlcm1pc3Npb25zID8/IFtdO1xuICAgICAgICB0aGlzLmFjY291bnRDb25maXJtZWRBdCA9IGRhdGEuYWNjb3VudENvbmZpcm1lZEF0O1xuICAgIH1cblxuICAgIGdldCBmdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIGAke3RoaXMuZmlyc3ROYW1lfSAke3RoaXMubGFzdE5hbWV9YFxuICAgIH07XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlc3BvbnNlLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9nYi1uZ3J4LXN0YWNrLWJhc2Uvc3JjL3R5cGVzL2FwaS1yZXNwb25zZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVXNlciB9IGZyb20gJy4uJztcblxuZXhwb3J0IGludGVyZmFjZSBJQXV0aGVudGljYXRpb25SZXNwb25zZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0b2tlbjogc3RyaW5nO1xuICAgIGV4cGlyZWQ6IGJvb2xlYW47XG4gICAgdXNlcj86IElVc2VyIHwgbnVsbDtcbiAgICByZWZyZXNoVG9rZW4/OiBzdHJpbmcgfCBudWxsO1xuICAgIGRldmljZUluZm8/OiBJQXV0aERldmljZUluZm87XG4gICAgY29weVdpdGgoZGF0YTogUGFydGlhbDxJQXV0aGVudGljYXRpb25SZXNwb25zZT4pOiBJQXV0aGVudGljYXRpb25SZXNwb25zZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQXV0aERldmljZUluZm8ge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgdG9Kc29uKCk6IHN0cmluZztcbiAgICB0b01hcCgpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG8taW50ZXJmYWNlLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9nYi1uZ3J4LXN0YWNrLWJhc2Uvc3JjL3R5cGVzL2RvLWludGVyZmFjZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBEb0ludGVyZmFjZTxULCBLIGV4dGVuZHMgUHJvcGVydHlLZXkgPSBuZXZlcj4gPSBPbWl0PFxuICAgIHtcbiAgICAgICAgW1AgaW4ga2V5b2YgVCBhcyBUW1BdIGV4dGVuZHMgRnVuY3Rpb24gPyBuZXZlciA6IFAgZXh0ZW5kcyBLID8gbmV2ZXIgOiBQXTogVFtQXTtcbiAgICB9LFxuICAgICdfY2xhc3MnXG4+O1xuIl19
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export var FailureType;
|
|
2
|
-
(function (FailureType) {
|
|
3
|
-
FailureType["RateLimitExceeded"] = "RateLimitExceeded";
|
|
4
|
-
})(FailureType || (FailureType = {}));
|
|
5
|
-
export const UnkownFailureCode = "unknown";
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFpbHVyZS50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2ItbmdyeC1zdGFjay1iYXNlL3NyYy90eXBlcy9mYWlsdXJlLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxDQUFOLElBQVksV0FFWDtBQUZELFdBQVksV0FBVztJQUNyQixzREFBdUMsQ0FBQTtBQUN6QyxDQUFDLEVBRlcsV0FBVyxLQUFYLFdBQVcsUUFFdEI7QUFFRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZhaWx1cmUge1xuICAgIGNvZGU6IEZhaWx1cmVUeXBlIHwgc3RyaW5nO1xuICAgIG1lc3NhZ2VzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBlbnVtIEZhaWx1cmVUeXBlIHtcbiAgUmF0ZUxpbWl0RXhjZWVkZWQgPSAnUmF0ZUxpbWl0RXhjZWVkZWQnLFxufVxuXG5leHBvcnQgY29uc3QgVW5rb3duRmFpbHVyZUNvZGUgPSBcInVua25vd25cIjtcbiJdfQ==
|
package/esm2022/types/index.mjs
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './api-response.type';
|
|
2
|
-
export * from './failure.type';
|
|
3
|
-
export * from './do-interface.type';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9nYi1uZ3J4LXN0YWNrLWJhc2Uvc3JjL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcGktcmVzcG9uc2UudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZhaWx1cmUudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2RvLWludGVyZmFjZS50eXBlJztcbiJdfQ==
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* The idea of this token is to have a way to register a general action that deals with authentication changes
|
|
4
|
-
* this way different libraries can rely on it either by subscribing it or dispatching it
|
|
5
|
-
*/
|
|
6
|
-
export const AuthenticationChangeBaseActionToken = new InjectionToken('AuthenticationChangeBaseActionToken');
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24tY2hhbmdlLWJhc2UtYWN0aW9uLXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2ItbmdyeC1zdGFjay1iYXNlL3NyYy91dGlscy9hdXRoZW50aWNhdGlvbi1jaGFuZ2UtYmFzZS1hY3Rpb24tdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsvQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxJQUFJLGNBQWMsQ0FDakUscUNBQXFDLENBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uLCBBY3Rpb25DcmVhdG9yLCBDcmVhdG9yLCBOb3RBbGxvd2VkQ2hlY2sgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBUeXBlZEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlL3NyYy9tb2RlbHMnO1xuaW1wb3J0IHsgSUF1dGhlbnRpY2F0aW9uUmVzcG9uc2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogVGhlIGlkZWEgb2YgdGhpcyB0b2tlbiBpcyB0byBoYXZlIGEgd2F5IHRvIHJlZ2lzdGVyIGEgZ2VuZXJhbCBhY3Rpb24gdGhhdCBkZWFscyB3aXRoIGF1dGhlbnRpY2F0aW9uIGNoYW5nZXNcbiAqIHRoaXMgd2F5IGRpZmZlcmVudCBsaWJyYXJpZXMgY2FuIHJlbHkgb24gaXQgZWl0aGVyIGJ5IHN1YnNjcmliaW5nIGl0IG9yIGRpc3BhdGNoaW5nIGl0XG4gKi9cbmV4cG9ydCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYW5nZUJhc2VBY3Rpb25Ub2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBdXRoZW50aWNhdGlvbkNoYW5nZUFjdGlvbj4oXG4gICAgJ0F1dGhlbnRpY2F0aW9uQ2hhbmdlQmFzZUFjdGlvblRva2VuJyxcbik7XG5cbmV4cG9ydCB0eXBlIEF1dGhlbnRpY2F0aW9uQ2hhbmdlQWN0aW9uID0gQWN0aW9uQ3JlYXRvcjxcbiAgICBzdHJpbmcsXG4gICAgKFxuICAgICAgICBwcm9wczogQXV0aGVudGljYXRpb25DaGFuZ2VBY3Rpb25Qcm9wcyAmIE5vdEFsbG93ZWRDaGVjazxBdXRoZW50aWNhdGlvbkNoYW5nZUFjdGlvblByb3BzPixcbiAgICApID0+IEF1dGhlbnRpY2F0aW9uQ2hhbmdlQWN0aW9uUHJvcHMgJiBUeXBlZEFjdGlvbjxzdHJpbmc+XG4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhlbnRpY2F0aW9uQ2hhbmdlQWN0aW9uUHJvcHMge1xuICAgIGF1dGhlbnRpY2F0ZWQ6IGJvb2xlYW47XG4gICAgZGF0YTogSUF1dGhlbnRpY2F0aW9uUmVzcG9uc2UgfCBudWxsO1xufVxuIl19
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { has, isEmpty, isNil, isObject } from "lodash-es";
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @param failure The Failure as input
|
|
5
|
-
* @param or If failure is null or couln't not retrieve any message from it, use this instead. Defaults to '' empty string
|
|
6
|
-
* @param messageWrapper Failures often return an array of messages, this give you the oportunity to wrap each message between whatever you want
|
|
7
|
-
* @param joiner The postfix that will join each message together, default behavior is to join by line break '\n'
|
|
8
|
-
* @returns A sigle string with the failure messages.
|
|
9
|
-
*/
|
|
10
|
-
export function getFailureMessageOr(failure, or = "", messageWrapper, joiner) {
|
|
11
|
-
let messages = [];
|
|
12
|
-
if (isNil(failure)) {
|
|
13
|
-
return or;
|
|
14
|
-
}
|
|
15
|
-
if (!isNil(failure.messages) && !isEmpty(failure.messages)) {
|
|
16
|
-
messages = failure.messages.map((message) => {
|
|
17
|
-
if (isNil(messageWrapper)) {
|
|
18
|
-
return message;
|
|
19
|
-
}
|
|
20
|
-
return messageWrapper(message);
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
else if (!isNil(failure.code)) {
|
|
24
|
-
messages = [failure.code];
|
|
25
|
-
}
|
|
26
|
-
if (isEmpty(messages)) {
|
|
27
|
-
return or;
|
|
28
|
-
}
|
|
29
|
-
return messages.join(joiner ?? "\n");
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Since Failure is not a runtime type but just an interface this check if given object can be treated as a Failure
|
|
33
|
-
* @param object Any object expected to be a Failure
|
|
34
|
-
* @returns {boolean}
|
|
35
|
-
*/
|
|
36
|
-
export function maybeFailure(object) {
|
|
37
|
-
if (!isObject(object))
|
|
38
|
-
return false;
|
|
39
|
-
if (has(object, "code")) {
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFpbHVyZS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9nYi1uZ3J4LXN0YWNrLWJhc2Uvc3JjL3V0aWxzL2ZhaWx1cmUuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFNL0Q7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxPQUFtQyxFQUFFLEtBQWEsRUFBRSxFQUFFLGNBQXNDLEVBQUUsTUFBZTtJQUM3SSxJQUFJLFFBQVEsR0FBYSxFQUFFLENBQUM7SUFFNUIsSUFBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNoQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN4RCxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN4QyxJQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLE9BQU8sQ0FBQztZQUNuQixDQUFDO1lBQ0QsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO1NBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5QixRQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDbkIsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBRyxJQUFJLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBVztJQUNwQyxJQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRW5DLElBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0LCBoYXMsIGlzRW1wdHksIGlzTmlsLCBpc09iamVjdCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRmFpbHVyZSB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBGYWlsdXJlTWVzc2FnZVdyYXBwZXIgPSAobWVzc2FnZTogc3RyaW5nKSA9PiBzdHJpbmc7XG5cbi8qKlxuICogXG4gKiBAcGFyYW0gZmFpbHVyZSBUaGUgRmFpbHVyZSBhcyBpbnB1dFxuICogQHBhcmFtIG9yIElmIGZhaWx1cmUgaXMgbnVsbCBvciBjb3Vsbid0IG5vdCByZXRyaWV2ZSBhbnkgbWVzc2FnZSBmcm9tIGl0LCB1c2UgdGhpcyBpbnN0ZWFkLiBEZWZhdWx0cyB0byAnJyBlbXB0eSBzdHJpbmdcbiAqIEBwYXJhbSBtZXNzYWdlV3JhcHBlciBGYWlsdXJlcyBvZnRlbiByZXR1cm4gYW4gYXJyYXkgb2YgbWVzc2FnZXMsIHRoaXMgZ2l2ZSB5b3UgdGhlIG9wb3J0dW5pdHkgdG8gd3JhcCBlYWNoIG1lc3NhZ2UgYmV0d2VlbiB3aGF0ZXZlciB5b3Ugd2FudFxuICogQHBhcmFtIGpvaW5lciBUaGUgcG9zdGZpeCB0aGF0IHdpbGwgam9pbiBlYWNoIG1lc3NhZ2UgdG9nZXRoZXIsIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gam9pbiBieSBsaW5lIGJyZWFrICdcXG4nXG4gKiBAcmV0dXJucyBBIHNpZ2xlIHN0cmluZyB3aXRoIHRoZSBmYWlsdXJlIG1lc3NhZ2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmFpbHVyZU1lc3NhZ2VPcihmYWlsdXJlOiBGYWlsdXJlIHwgbnVsbCB8IHVuZGVmaW5lZCwgb3I6IHN0cmluZyA9IFwiXCIsIG1lc3NhZ2VXcmFwcGVyPzogRmFpbHVyZU1lc3NhZ2VXcmFwcGVyLCBqb2luZXI/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmKGlzTmlsKGZhaWx1cmUpKSB7XG4gICAgICAgIHJldHVybiBvcjtcbiAgICB9XG5cbiAgICBpZighaXNOaWwoZmFpbHVyZS5tZXNzYWdlcykgJiYgIWlzRW1wdHkoZmFpbHVyZS5tZXNzYWdlcykpIHtcbiAgICAgICAgbWVzc2FnZXMgPSBmYWlsdXJlLm1lc3NhZ2VzLm1hcCgobWVzc2FnZSkgPT4ge1xuICAgICAgICAgICAgaWYoaXNOaWwobWVzc2FnZVdyYXBwZXIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbWVzc2FnZVdyYXBwZXIobWVzc2FnZSk7XG4gICAgICAgIH0pXG4gICAgfSBlbHNlIGlmICghaXNOaWwoZmFpbHVyZS5jb2RlKSkge1xuICAgICAgICBtZXNzYWdlcyA9IFtmYWlsdXJlLmNvZGVdO1xuICAgIH1cblxuICAgIGlmKGlzRW1wdHkobWVzc2FnZXMpKSB7XG4gICAgICAgIHJldHVybiBvcjtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVzc2FnZXMuam9pbihqb2luZXI/PyBcIlxcblwiKTtcbn1cblxuLyoqXG4gKiBTaW5jZSBGYWlsdXJlIGlzIG5vdCBhIHJ1bnRpbWUgdHlwZSBidXQganVzdCBhbiBpbnRlcmZhY2UgdGhpcyBjaGVjayBpZiBnaXZlbiBvYmplY3QgY2FuIGJlIHRyZWF0ZWQgYXMgYSBGYWlsdXJlXG4gKiBAcGFyYW0gb2JqZWN0IEFueSBvYmplY3QgZXhwZWN0ZWQgdG8gYmUgYSBGYWlsdXJlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1heWJlRmFpbHVyZShvYmplY3Q6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmKCFpc09iamVjdChvYmplY3QpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZihoYXMob2JqZWN0LCBcImNvZGVcIikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufSJdfQ==
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { HttpErrorResponse } from '@angular/common/http';
|
|
2
|
-
import { get, isEmpty, isNil, isObject, first, camelCase } from 'lodash-es';
|
|
3
|
-
import { UnkownFailureCode } from '../types';
|
|
4
|
-
export function httpResponseHandle(params) { }
|
|
5
|
-
/**
|
|
6
|
-
*
|
|
7
|
-
* @param error Throwed error by a function on the call stack
|
|
8
|
-
* @returns Returns a valid {Failure}
|
|
9
|
-
*/
|
|
10
|
-
export function httpResponseFailureHandle(error) {
|
|
11
|
-
if (isObject(error) && error instanceof HttpErrorResponse) {
|
|
12
|
-
let messages = get(error.error, 'messages', []);
|
|
13
|
-
// to support old applications
|
|
14
|
-
let singleMessage = get(error.error, 'message');
|
|
15
|
-
if (isEmpty(messages) && !isNil(singleMessage)) {
|
|
16
|
-
messages.push(singleMessage);
|
|
17
|
-
}
|
|
18
|
-
// to support old applications
|
|
19
|
-
if (isNil(singleMessage) && !isNil(get(error.error, 'error'))) {
|
|
20
|
-
let message = get(get(error.error, 'error'), 'message');
|
|
21
|
-
if (!isNil(message))
|
|
22
|
-
messages.push(message);
|
|
23
|
-
}
|
|
24
|
-
return {
|
|
25
|
-
code: get(error.error, 'errorCode') || camelCase(first(messages)) || error.message,
|
|
26
|
-
messages: messages,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
else if (isObject(error) && error instanceof Error) {
|
|
30
|
-
return {
|
|
31
|
-
code: error.name,
|
|
32
|
-
messages: !isNil(error.message) && !isEmpty(error.message) ? [error.message] : [],
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
return {
|
|
37
|
-
code: UnkownFailureCode,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXNwb25zZS1oYW5kbGUuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2ItbmdyeC1zdGFjay1iYXNlL3NyYy91dGlscy9odHRwLXJlc3BvbnNlLWhhbmRsZS5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVFLE9BQU8sRUFBVyxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV0RCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsTUFBVyxJQUFHLENBQUM7QUFFbEQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxLQUFnQztJQUN0RSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksaUJBQWlCLEVBQUUsQ0FBQztRQUN4RCxJQUFJLFFBQVEsR0FBYSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFMUQsOEJBQThCO1FBQzlCLElBQUksYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDN0MsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsOEJBQThCO1FBQzlCLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM1RCxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7Z0JBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsT0FBTztZQUNILElBQUksRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU87WUFDbEYsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQztJQUNOLENBQUM7U0FBTSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDbkQsT0FBTztZQUNILElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDcEYsQ0FBQztJQUNOLENBQUM7U0FBTSxDQUFDO1FBQ0osT0FBTztZQUNILElBQUksRUFBRSxpQkFBaUI7U0FDMUIsQ0FBQztJQUNOLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBnZXQsIGlzRW1wdHksIGlzTmlsLCBpc09iamVjdCwgZmlyc3QsIGNhbWVsQ2FzZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBGYWlsdXJlLCBVbmtvd25GYWlsdXJlQ29kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGh0dHBSZXNwb25zZUhhbmRsZShwYXJhbXM6IGFueSkge31cblxuLyoqXG4gKlxuICogQHBhcmFtIGVycm9yIFRocm93ZWQgZXJyb3IgYnkgYSBmdW5jdGlvbiBvbiB0aGUgY2FsbCBzdGFja1xuICogQHJldHVybnMgUmV0dXJucyBhIHZhbGlkIHtGYWlsdXJlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaHR0cFJlc3BvbnNlRmFpbHVyZUhhbmRsZShlcnJvcjogRXJyb3IgfCBIdHRwRXJyb3JSZXNwb25zZSk6IEZhaWx1cmUge1xuICAgIGlmIChpc09iamVjdChlcnJvcikgJiYgZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICBsZXQgbWVzc2FnZXM6IHN0cmluZ1tdID0gZ2V0KGVycm9yLmVycm9yLCAnbWVzc2FnZXMnLCBbXSk7XG5cbiAgICAgICAgLy8gdG8gc3VwcG9ydCBvbGQgYXBwbGljYXRpb25zXG4gICAgICAgIGxldCBzaW5nbGVNZXNzYWdlID0gZ2V0KGVycm9yLmVycm9yLCAnbWVzc2FnZScpO1xuICAgICAgICBpZiAoaXNFbXB0eShtZXNzYWdlcykgJiYgIWlzTmlsKHNpbmdsZU1lc3NhZ2UpKSB7XG4gICAgICAgICAgICBtZXNzYWdlcy5wdXNoKHNpbmdsZU1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRvIHN1cHBvcnQgb2xkIGFwcGxpY2F0aW9uc1xuICAgICAgICBpZiAoaXNOaWwoc2luZ2xlTWVzc2FnZSkgJiYgIWlzTmlsKGdldChlcnJvci5lcnJvciwgJ2Vycm9yJykpKSB7XG4gICAgICAgICAgICBsZXQgbWVzc2FnZSA9IGdldChnZXQoZXJyb3IuZXJyb3IsICdlcnJvcicpLCAnbWVzc2FnZScpO1xuICAgICAgICAgICAgaWYgKCFpc05pbChtZXNzYWdlKSkgbWVzc2FnZXMucHVzaChtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29kZTogZ2V0KGVycm9yLmVycm9yLCAnZXJyb3JDb2RlJykgfHwgY2FtZWxDYXNlKGZpcnN0KG1lc3NhZ2VzKSkgfHwgZXJyb3IubWVzc2FnZSxcbiAgICAgICAgICAgIG1lc3NhZ2VzOiBtZXNzYWdlcyxcbiAgICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KGVycm9yKSAmJiBlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2RlOiBlcnJvci5uYW1lLFxuICAgICAgICAgICAgbWVzc2FnZXM6ICFpc05pbChlcnJvci5tZXNzYWdlKSAmJiAhaXNFbXB0eShlcnJvci5tZXNzYWdlKSA/IFtlcnJvci5tZXNzYWdlXSA6IFtdLFxuICAgICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2RlOiBVbmtvd25GYWlsdXJlQ29kZSxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
|
package/esm2022/utils/index.mjs
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * from "./authentication-change-base-action-token";
|
|
2
|
-
export * from "./failure.helper";
|
|
3
|
-
export * from "./http-response-handle.helper";
|
|
4
|
-
export * from "./rxjs.helper";
|
|
5
|
-
export * from "./test";
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9nYi1uZ3J4LXN0YWNrLWJhc2Uvc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYXV0aGVudGljYXRpb24tY2hhbmdlLWJhc2UtYWN0aW9uLXRva2VuXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mYWlsdXJlLmhlbHBlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaHR0cC1yZXNwb25zZS1oYW5kbGUuaGVscGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yeGpzLmhlbHBlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGVzdFwiOyJdfQ==
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { HttpErrorResponse } from "@angular/common/http";
|
|
2
|
-
import { isObject } from "lodash-es";
|
|
3
|
-
import { of, throwError } from "rxjs";
|
|
4
|
-
import { catchError, map } from "rxjs/operators";
|
|
5
|
-
import { getFailureMessageOr, maybeFailure } from "./failure.helper";
|
|
6
|
-
import { httpResponseFailureHandle } from "./http-response-handle.helper";
|
|
7
|
-
/**
|
|
8
|
-
* This operator helps you catching any exception on your API call and tries to get a Failure form it and provides you with an easy way
|
|
9
|
-
* of proccessing that failure into something else
|
|
10
|
-
* @param converter Mapper function to dispatch given value instead of the Failure
|
|
11
|
-
* @returns Returns any value provided ny the converter
|
|
12
|
-
*/
|
|
13
|
-
export function catchAndGetFromFailureRxOp(converter) {
|
|
14
|
-
return catchError((error) => {
|
|
15
|
-
let failure;
|
|
16
|
-
if (isObject(error) && (error instanceof Error || error instanceof HttpErrorResponse)) {
|
|
17
|
-
failure = httpResponseFailureHandle(error);
|
|
18
|
-
}
|
|
19
|
-
else if (maybeFailure(error)) {
|
|
20
|
-
failure = error;
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
failure = httpResponseFailureHandle(error);
|
|
24
|
-
}
|
|
25
|
-
return of(converter(failure));
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Catch an error, throws a Failure in the onservabe pipeline
|
|
30
|
-
* @returns Catch any error from the proccesed pipeline and throws a Failure instead
|
|
31
|
-
*/
|
|
32
|
-
export const catchAndThrowFailureRxOp = () => {
|
|
33
|
-
return catchError((error) => {
|
|
34
|
-
let failure = httpResponseFailureHandle(error);
|
|
35
|
-
return throwError(failure);
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Catch an error and gets a Failure from it
|
|
40
|
-
* @returns Returns a Failure
|
|
41
|
-
*/
|
|
42
|
-
export const catchGetFailureRxOp = () => {
|
|
43
|
-
return catchError((error) => {
|
|
44
|
-
let failure = httpResponseFailureHandle(error);
|
|
45
|
-
return of(failure);
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* This converts failure to a message using same logic as '[getFailureMessageOr]'
|
|
50
|
-
* @see {@link getFailureMessageOr}
|
|
51
|
-
*
|
|
52
|
-
* @param or
|
|
53
|
-
* @param messageWrapper
|
|
54
|
-
* @param joiner
|
|
55
|
-
* @returns
|
|
56
|
-
*/
|
|
57
|
-
export const getFailureMessageRxOp = (or = "", messageWrapper, joiner) => {
|
|
58
|
-
return map((failure) => {
|
|
59
|
-
return getFailureMessageOr(failure, or, messageWrapper, joiner);
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9nYi1uZ3J4LXN0YWNrLWJhc2Uvc3JjL3V0aWxzL3J4anMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDcEMsT0FBTyxFQUFFLEVBQUUsRUFBb0IsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFaEQsT0FBTyxFQUF5QixtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMzRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUV6RTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBSSxTQUFrQztJQUM1RSxPQUFPLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3hCLElBQUksT0FBZ0IsQ0FBQztRQUNyQixJQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssWUFBWSxLQUFLLElBQUksS0FBSyxZQUFZLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUNuRixPQUFPLEdBQUcseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsQ0FBQzthQUFNLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNwQixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQ0wsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUNyQixDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsR0FBbUMsRUFBRTtJQUN6RSxPQUFPLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3hCLElBQUksT0FBTyxHQUFZLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFBO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBbUMsRUFBRTtJQUNwRSxPQUFPLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3hCLElBQUksT0FBTyxHQUFZLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFBO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLGNBQXNDLEVBQUUsTUFBZSxFQUF3RCxFQUFFO0lBQ3BLLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDbkIsT0FBTyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRSxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCJcbmltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSBcImxvZGFzaC1lc1wiXG5pbXBvcnQgeyBvZiwgT3BlcmF0b3JGdW5jdGlvbiwgdGhyb3dFcnJvciB9IGZyb20gXCJyeGpzXCJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiXG5pbXBvcnQgeyBGYWlsdXJlIH0gZnJvbSBcIi4uL3R5cGVzXCJcbmltcG9ydCB7IEZhaWx1cmVNZXNzYWdlV3JhcHBlciwgZ2V0RmFpbHVyZU1lc3NhZ2VPciwgbWF5YmVGYWlsdXJlIH0gZnJvbSBcIi4vZmFpbHVyZS5oZWxwZXJcIlxuaW1wb3J0IHsgaHR0cFJlc3BvbnNlRmFpbHVyZUhhbmRsZSB9IGZyb20gXCIuL2h0dHAtcmVzcG9uc2UtaGFuZGxlLmhlbHBlclwiXG5cbi8qKlxuICogVGhpcyBvcGVyYXRvciBoZWxwcyB5b3UgY2F0Y2hpbmcgYW55IGV4Y2VwdGlvbiBvbiB5b3VyIEFQSSBjYWxsIGFuZCB0cmllcyB0byBnZXQgYSBGYWlsdXJlIGZvcm0gaXQgYW5kIHByb3ZpZGVzIHlvdSB3aXRoIGFuIGVhc3kgd2F5IFxuICogb2YgcHJvY2Nlc3NpbmcgdGhhdCBmYWlsdXJlIGludG8gc29tZXRoaW5nIGVsc2VcbiAqIEBwYXJhbSBjb252ZXJ0ZXIgTWFwcGVyIGZ1bmN0aW9uIHRvIGRpc3BhdGNoIGdpdmVuIHZhbHVlIGluc3RlYWQgb2YgdGhlIEZhaWx1cmVcbiAqIEByZXR1cm5zIFJldHVybnMgYW55IHZhbHVlIHByb3ZpZGVkIG55IHRoZSBjb252ZXJ0ZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhdGNoQW5kR2V0RnJvbUZhaWx1cmVSeE9wPFQ+KGNvbnZlcnRlcjogKGZhaWx1cmU6IEZhaWx1cmUpID0+IFQpOiBPcGVyYXRvckZ1bmN0aW9uPGFueSwgVD4ge1xuICAgIHJldHVybiBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBsZXQgZmFpbHVyZTogRmFpbHVyZTtcbiAgICAgICAgaWYoaXNPYmplY3QoZXJyb3IpICYmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yIHx8IGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpKSB7XG4gICAgICAgICAgICBmYWlsdXJlID0gaHR0cFJlc3BvbnNlRmFpbHVyZUhhbmRsZShlcnJvcik7XG4gICAgICAgIH0gZWxzZSBpZiAobWF5YmVGYWlsdXJlKGVycm9yKSkge1xuICAgICAgICAgICAgZmFpbHVyZSA9IGVycm9yO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmFpbHVyZSA9IGh0dHBSZXNwb25zZUZhaWx1cmVIYW5kbGUoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZihcbiAgICAgICAgICAgIGNvbnZlcnRlcihmYWlsdXJlKSxcbiAgICAgICAgKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBDYXRjaCBhbiBlcnJvciwgdGhyb3dzIGEgRmFpbHVyZSBpbiB0aGUgb25zZXJ2YWJlIHBpcGVsaW5lXG4gKiBAcmV0dXJucyBDYXRjaCBhbnkgZXJyb3IgZnJvbSB0aGUgcHJvY2Nlc2VkIHBpcGVsaW5lIGFuZCB0aHJvd3MgYSBGYWlsdXJlIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IGNhdGNoQW5kVGhyb3dGYWlsdXJlUnhPcCA9ICgpOiBPcGVyYXRvckZ1bmN0aW9uPGFueSwgRmFpbHVyZT4gPT4ge1xuICAgIHJldHVybiBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBsZXQgZmFpbHVyZTogRmFpbHVyZSA9IGh0dHBSZXNwb25zZUZhaWx1cmVIYW5kbGUoZXJyb3IpO1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihmYWlsdXJlKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBDYXRjaCBhbiBlcnJvciBhbmQgZ2V0cyBhIEZhaWx1cmUgZnJvbSBpdFxuICogQHJldHVybnMgUmV0dXJucyBhIEZhaWx1cmVcbiAqL1xuZXhwb3J0IGNvbnN0IGNhdGNoR2V0RmFpbHVyZVJ4T3AgPSAoKTogT3BlcmF0b3JGdW5jdGlvbjxhbnksIEZhaWx1cmU+ID0+IHtcbiAgICByZXR1cm4gY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgbGV0IGZhaWx1cmU6IEZhaWx1cmUgPSBodHRwUmVzcG9uc2VGYWlsdXJlSGFuZGxlKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIG9mKGZhaWx1cmUpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFRoaXMgY29udmVydHMgZmFpbHVyZSB0byBhIG1lc3NhZ2UgdXNpbmcgc2FtZSBsb2dpYyBhcyAnW2dldEZhaWx1cmVNZXNzYWdlT3JdJ1xuICogQHNlZSB7QGxpbmsgZ2V0RmFpbHVyZU1lc3NhZ2VPcn1cbiAqIFxuICogQHBhcmFtIG9yIFxuICogQHBhcmFtIG1lc3NhZ2VXcmFwcGVyIFxuICogQHBhcmFtIGpvaW5lciBcbiAqIEByZXR1cm5zIFxuICovXG5leHBvcnQgY29uc3QgZ2V0RmFpbHVyZU1lc3NhZ2VSeE9wID0gKG9yOiBzdHJpbmcgPSBcIlwiLCBtZXNzYWdlV3JhcHBlcj86IEZhaWx1cmVNZXNzYWdlV3JhcHBlciwgam9pbmVyPzogc3RyaW5nKTogT3BlcmF0b3JGdW5jdGlvbjxGYWlsdXJlIHwgbnVsbCB8IHVuZGVmaW5lZCwgc3RyaW5nPiA9PiB7XG4gICAgcmV0dXJuIG1hcCgoZmFpbHVyZSkgPT4ge1xuICAgICAgICByZXR1cm4gZ2V0RmFpbHVyZU1lc3NhZ2VPcihmYWlsdXJlLCBvciwgbWVzc2FnZVdyYXBwZXIsIGpvaW5lcik7XG4gICAgfSk7XG59Il19
|
package/esm2022/utils/test.mjs
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export function mockHttpResponse(data) {
|
|
2
|
-
return {
|
|
3
|
-
data: data,
|
|
4
|
-
};
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2diLW5ncngtc3RhY2stYmFzZS9zcmMvdXRpbHMvdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWTtJQUN6QyxPQUFPO1FBQ0gsSUFBSSxFQUFFLElBQUk7S0FDYixDQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBtb2NrSHR0cFJlc3BvbnNlKGRhdGE6IG9iamVjdCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YTogZGF0YSxcbiAgICB9XG59Il19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./models";
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Failure } from '../../types';
|
|
2
|
-
export interface ILoadedData<T> {
|
|
3
|
-
loading: boolean;
|
|
4
|
-
timestamp: Date | null;
|
|
5
|
-
failure: Failure | null;
|
|
6
|
-
value: T | null;
|
|
7
|
-
}
|
|
8
|
-
export declare class LoadedData<T> {
|
|
9
|
-
_class: 'LoadedData';
|
|
10
|
-
loading: boolean;
|
|
11
|
-
timestamp: Date | null;
|
|
12
|
-
failure: Failure | null;
|
|
13
|
-
value: T | null;
|
|
14
|
-
get errored(): boolean;
|
|
15
|
-
constructor(data?: Partial<ILoadedData<T>>);
|
|
16
|
-
equals(other: LoadedData<T>): boolean;
|
|
17
|
-
copyWith(data: Partial<LoadedData<T>>): LoadedData<T>;
|
|
18
|
-
copyWithData({ loading, value }: Partial<LoadedData<T>>): LoadedData<T>;
|
|
19
|
-
copyWithLoading(): LoadedData<T>;
|
|
20
|
-
toObject(): ILoadedData<T>;
|
|
21
|
-
toString(): string;
|
|
22
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { IUser } from "../../domain";
|
|
2
|
-
export declare class UserModel implements IUser {
|
|
3
|
-
email: string;
|
|
4
|
-
firstName: string;
|
|
5
|
-
lastName: string;
|
|
6
|
-
roles: string[];
|
|
7
|
-
permissions: string[];
|
|
8
|
-
accountConfirmedAt?: Date | undefined;
|
|
9
|
-
id: string;
|
|
10
|
-
constructor(data: Partial<IUser>);
|
|
11
|
-
get fullName(): string;
|
|
12
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { IUser } from '..';
|
|
2
|
-
export interface IAuthenticationResponse {
|
|
3
|
-
id: string;
|
|
4
|
-
token: string;
|
|
5
|
-
expired: boolean;
|
|
6
|
-
user?: IUser | null;
|
|
7
|
-
refreshToken?: string | null;
|
|
8
|
-
deviceInfo?: IAuthDeviceInfo;
|
|
9
|
-
copyWith(data: Partial<IAuthenticationResponse>): IAuthenticationResponse;
|
|
10
|
-
}
|
|
11
|
-
export interface IAuthDeviceInfo {
|
|
12
|
-
id: string;
|
|
13
|
-
name: string;
|
|
14
|
-
toJson(): string;
|
|
15
|
-
toMap(): {
|
|
16
|
-
[key: string]: any;
|
|
17
|
-
};
|
|
18
|
-
}
|
package/types/failure.type.d.ts
DELETED
package/types/index.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import { ActionCreator, NotAllowedCheck } from '@ngrx/store';
|
|
3
|
-
import { TypedAction } from '@ngrx/store/src/models';
|
|
4
|
-
import { IAuthenticationResponse } from '../types';
|
|
5
|
-
/**
|
|
6
|
-
* The idea of this token is to have a way to register a general action that deals with authentication changes
|
|
7
|
-
* this way different libraries can rely on it either by subscribing it or dispatching it
|
|
8
|
-
*/
|
|
9
|
-
export declare const AuthenticationChangeBaseActionToken: InjectionToken<AuthenticationChangeAction>;
|
|
10
|
-
export type AuthenticationChangeAction = ActionCreator<string, (props: AuthenticationChangeActionProps & NotAllowedCheck<AuthenticationChangeActionProps>) => AuthenticationChangeActionProps & TypedAction<string>>;
|
|
11
|
-
export interface AuthenticationChangeActionProps {
|
|
12
|
-
authenticated: boolean;
|
|
13
|
-
data: IAuthenticationResponse | null;
|
|
14
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Failure } from "../types";
|
|
2
|
-
export type FailureMessageWrapper = (message: string) => string;
|
|
3
|
-
/**
|
|
4
|
-
*
|
|
5
|
-
* @param failure The Failure as input
|
|
6
|
-
* @param or If failure is null or couln't not retrieve any message from it, use this instead. Defaults to '' empty string
|
|
7
|
-
* @param messageWrapper Failures often return an array of messages, this give you the oportunity to wrap each message between whatever you want
|
|
8
|
-
* @param joiner The postfix that will join each message together, default behavior is to join by line break '\n'
|
|
9
|
-
* @returns A sigle string with the failure messages.
|
|
10
|
-
*/
|
|
11
|
-
export declare function getFailureMessageOr(failure: Failure | null | undefined, or?: string, messageWrapper?: FailureMessageWrapper, joiner?: string): string;
|
|
12
|
-
/**
|
|
13
|
-
* Since Failure is not a runtime type but just an interface this check if given object can be treated as a Failure
|
|
14
|
-
* @param object Any object expected to be a Failure
|
|
15
|
-
* @returns {boolean}
|
|
16
|
-
*/
|
|
17
|
-
export declare function maybeFailure(object: any): boolean;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { HttpErrorResponse } from '@angular/common/http';
|
|
2
|
-
import { Failure } from '../types';
|
|
3
|
-
export declare function httpResponseHandle(params: any): void;
|
|
4
|
-
/**
|
|
5
|
-
*
|
|
6
|
-
* @param error Throwed error by a function on the call stack
|
|
7
|
-
* @returns Returns a valid {Failure}
|
|
8
|
-
*/
|
|
9
|
-
export declare function httpResponseFailureHandle(error: Error | HttpErrorResponse): Failure;
|
package/utils/index.d.ts
DELETED
package/utils/rxjs.helper.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { OperatorFunction } from "rxjs";
|
|
2
|
-
import { Failure } from "../types";
|
|
3
|
-
import { FailureMessageWrapper } from "./failure.helper";
|
|
4
|
-
/**
|
|
5
|
-
* This operator helps you catching any exception on your API call and tries to get a Failure form it and provides you with an easy way
|
|
6
|
-
* of proccessing that failure into something else
|
|
7
|
-
* @param converter Mapper function to dispatch given value instead of the Failure
|
|
8
|
-
* @returns Returns any value provided ny the converter
|
|
9
|
-
*/
|
|
10
|
-
export declare function catchAndGetFromFailureRxOp<T>(converter: (failure: Failure) => T): OperatorFunction<any, T>;
|
|
11
|
-
/**
|
|
12
|
-
* Catch an error, throws a Failure in the onservabe pipeline
|
|
13
|
-
* @returns Catch any error from the proccesed pipeline and throws a Failure instead
|
|
14
|
-
*/
|
|
15
|
-
export declare const catchAndThrowFailureRxOp: () => OperatorFunction<any, Failure>;
|
|
16
|
-
/**
|
|
17
|
-
* Catch an error and gets a Failure from it
|
|
18
|
-
* @returns Returns a Failure
|
|
19
|
-
*/
|
|
20
|
-
export declare const catchGetFailureRxOp: () => OperatorFunction<any, Failure>;
|
|
21
|
-
/**
|
|
22
|
-
* This converts failure to a message using same logic as '[getFailureMessageOr]'
|
|
23
|
-
* @see {@link getFailureMessageOr}
|
|
24
|
-
*
|
|
25
|
-
* @param or
|
|
26
|
-
* @param messageWrapper
|
|
27
|
-
* @param joiner
|
|
28
|
-
* @returns
|
|
29
|
-
*/
|
|
30
|
-
export declare const getFailureMessageRxOp: (or?: string, messageWrapper?: FailureMessageWrapper, joiner?: string) => OperatorFunction<Failure | null | undefined, string>;
|
package/utils/test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function mockHttpResponse(data: object): object;
|