@clairejs/client 3.1.20 → 3.1.22
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/.browserslistrc +3 -3
- package/.prettierrc +8 -8
- package/README.md +440 -439
- package/dist/api/AbstractHttpClient.d.ts +10 -10
- package/dist/api/AbstractTokenManager.d.ts +5 -5
- package/dist/api/CrudApi.d.ts +16 -16
- package/dist/api/DefaultHttpClient.d.ts +16 -15
- package/dist/api/DefaultHttpClient.d.ts.map +1 -1
- package/dist/api/DefaultTokenManager.d.ts +11 -11
- package/dist/api/RefreshHttpClient.d.ts +16 -16
- package/dist/constants.d.ts +2 -2
- package/dist/index.d.ts +18 -18
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/routing/AbstractErrorHandler.d.ts +3 -3
- package/dist/routing/AbstractViewMiddleware.d.ts +4 -4
- package/dist/routing/ComponentInfo.d.ts +4 -4
- package/dist/routing/RouterConfig.d.ts +13 -13
- package/dist/routing/UrlInfo.d.ts +10 -10
- package/dist/socket/AbstractClientSocketManager.d.ts +7 -7
- package/dist/socket/DefaultClientSocket.d.ts +13 -13
- package/dist/socket/DefaultClientSocketManager.d.ts +49 -49
- package/dist/socket/IWebSocket.d.ts +7 -7
- package/dist/socket/SocketConfig.d.ts +16 -16
- package/dist/system/AbstractStorage.d.ts +5 -5
- package/dist/system/ClaireClient.d.ts +3 -3
- package/dist/translation/Translator.d.ts +21 -21
- package/dist/translation/types.d.ts +6 -6
- package/package.json +32 -32
- package/tsconfig-build.json +10 -10
- package/webpack.config.js +46 -46
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export declare abstract class AbstractHttpClient {
|
|
2
|
-
readonly apiServerUrl: string;
|
|
3
|
-
constructor(apiServerUrl: string);
|
|
4
|
-
protected resolveHeaders(headers?: object): Promise<object | undefined>;
|
|
5
|
-
protected resolveUrl(url: string): Promise<string>;
|
|
6
|
-
abstract get<T = any>(url: string, headers?: object): Promise<T>;
|
|
7
|
-
abstract post<T = any, R = any>(url: string, body: R, headers?: object): Promise<T>;
|
|
8
|
-
abstract put<T = any, R = any>(url: string, body: R, headers?: object): Promise<T>;
|
|
9
|
-
abstract delete<T = any>(url: string, headers?: object): Promise<T>;
|
|
10
|
-
}
|
|
1
|
+
export declare abstract class AbstractHttpClient {
|
|
2
|
+
readonly apiServerUrl: string;
|
|
3
|
+
constructor(apiServerUrl: string);
|
|
4
|
+
protected resolveHeaders(headers?: object): Promise<object | undefined>;
|
|
5
|
+
protected resolveUrl(url: string): Promise<string>;
|
|
6
|
+
abstract get<T = any>(url: string, headers?: object): Promise<T>;
|
|
7
|
+
abstract post<T = any, R = any>(url: string, body: R, headers?: object): Promise<T>;
|
|
8
|
+
abstract put<T = any, R = any>(url: string, body: R, headers?: object): Promise<T>;
|
|
9
|
+
abstract delete<T = any>(url: string, headers?: object): Promise<T>;
|
|
10
|
+
}
|
|
11
11
|
//# sourceMappingURL=AbstractHttpClient.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AccessToken } from "@clairejs/core";
|
|
2
|
-
export declare abstract class AbstractTokenManager {
|
|
3
|
-
abstract getAccessToken(): Promise<AccessToken | undefined>;
|
|
4
|
-
abstract setAccessToken(token?: AccessToken): Promise<void>;
|
|
5
|
-
}
|
|
1
|
+
import { AccessToken } from "@clairejs/core";
|
|
2
|
+
export declare abstract class AbstractTokenManager {
|
|
3
|
+
abstract getAccessToken(): Promise<AccessToken | undefined>;
|
|
4
|
+
abstract setAccessToken(token?: AccessToken): Promise<void>;
|
|
5
|
+
}
|
|
6
6
|
//# sourceMappingURL=AbstractTokenManager.d.ts.map
|
package/dist/api/CrudApi.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { AbstractModel, Constructor, CreateManyRequestBody, CreateManyResponseBody, GetManyQueries, GetManyResponseBody, Identifiable, UpdateManyBody, UpdateManyQueries, UpdateManyResponse } from "@clairejs/core";
|
|
2
|
-
import { AbstractHttpClient } from "./AbstractHttpClient";
|
|
3
|
-
export declare const stringifyQueries: (queries: Record<string, any>) => string;
|
|
4
|
-
export declare const removeInstances: <T extends Identifiable>(target: T[], source: T[]) => T[];
|
|
5
|
-
export declare const mergeInstances: <T extends Identifiable>(model: Constructor<T>, target: T[], source: Partial<T>[]) => T[];
|
|
6
|
-
export declare class CrudApi<T extends AbstractModel> {
|
|
7
|
-
readonly model: Constructor<T>;
|
|
8
|
-
readonly httpClient: AbstractHttpClient;
|
|
9
|
-
private dirty;
|
|
10
|
-
constructor(model: Constructor<T>, httpClient: AbstractHttpClient);
|
|
11
|
-
protected getEndpointBaseUrl(): string;
|
|
12
|
-
getMany(queries?: GetManyQueries<T>, useCache?: boolean): Promise<GetManyResponseBody<T>>;
|
|
13
|
-
updateMany(body: UpdateManyBody<T>, queries?: UpdateManyQueries<T>): Promise<UpdateManyResponse<T>>;
|
|
14
|
-
deleteMany(queries?: UpdateManyQueries<T>): Promise<UpdateManyResponse<T>>;
|
|
15
|
-
createMany(body: CreateManyRequestBody<T>): Promise<CreateManyResponseBody<T>>;
|
|
16
|
-
}
|
|
1
|
+
import { AbstractModel, Constructor, CreateManyRequestBody, CreateManyResponseBody, GetManyQueries, GetManyResponseBody, Identifiable, UpdateManyBody, UpdateManyQueries, UpdateManyResponse } from "@clairejs/core";
|
|
2
|
+
import { AbstractHttpClient } from "./AbstractHttpClient";
|
|
3
|
+
export declare const stringifyQueries: (queries: Record<string, any>) => string;
|
|
4
|
+
export declare const removeInstances: <T extends Identifiable>(target: T[], source: T[]) => T[];
|
|
5
|
+
export declare const mergeInstances: <T extends Identifiable>(model: Constructor<T>, target: T[], source: Partial<T>[]) => T[];
|
|
6
|
+
export declare class CrudApi<T extends AbstractModel> {
|
|
7
|
+
readonly model: Constructor<T>;
|
|
8
|
+
readonly httpClient: AbstractHttpClient;
|
|
9
|
+
private dirty;
|
|
10
|
+
constructor(model: Constructor<T>, httpClient: AbstractHttpClient);
|
|
11
|
+
protected getEndpointBaseUrl(): string;
|
|
12
|
+
getMany(queries?: GetManyQueries<T>, useCache?: boolean): Promise<GetManyResponseBody<T>>;
|
|
13
|
+
updateMany(body: UpdateManyBody<T>, queries?: UpdateManyQueries<T>): Promise<UpdateManyResponse<T>>;
|
|
14
|
+
deleteMany(queries?: UpdateManyQueries<T>): Promise<UpdateManyResponse<T>>;
|
|
15
|
+
createMany(body: CreateManyRequestBody<T>): Promise<CreateManyResponseBody<T>>;
|
|
16
|
+
}
|
|
17
17
|
//# sourceMappingURL=CrudApi.d.ts.map
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import { AbstractLogger } from "@clairejs/core";
|
|
2
|
-
import { AbstractHttpClient } from "./AbstractHttpClient";
|
|
3
|
-
export declare class DefaultHttpClient extends AbstractHttpClient {
|
|
4
|
-
readonly apiServerUrl: string;
|
|
5
|
-
readonly logger: AbstractLogger;
|
|
6
|
-
readonly maxRetryCount: number;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import { AbstractLogger } from "@clairejs/core";
|
|
2
|
+
import { AbstractHttpClient } from "./AbstractHttpClient";
|
|
3
|
+
export declare class DefaultHttpClient extends AbstractHttpClient {
|
|
4
|
+
readonly apiServerUrl: string;
|
|
5
|
+
readonly logger: AbstractLogger;
|
|
6
|
+
readonly maxRetryCount: number;
|
|
7
|
+
readonly delayMsBetweenRetry: number;
|
|
8
|
+
private issuedGetRequests;
|
|
9
|
+
constructor(apiServerUrl: string, logger: AbstractLogger, maxRetryCount?: number, delayMsBetweenRetry?: number);
|
|
10
|
+
protected retry(apiCall: () => Promise<any>, retryCount?: number): Promise<any>;
|
|
11
|
+
resetCache(pattern: string): void;
|
|
12
|
+
get<T = any>(url: string, headers?: object): Promise<T>;
|
|
13
|
+
post<T = any, R = any>(url: string, body: R, headers?: object): Promise<T>;
|
|
14
|
+
put<T = any, R = any>(url: string, body: R, headers?: object): Promise<T>;
|
|
15
|
+
delete<T = any>(url: string, headers?: object): Promise<T>;
|
|
16
|
+
}
|
|
16
17
|
//# sourceMappingURL=DefaultHttpClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultHttpClient.d.ts","sourceRoot":"","sources":["../../src/api/DefaultHttpClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,iBAAkB,SAAQ,kBAAkB;
|
|
1
|
+
{"version":3,"file":"DefaultHttpClient.d.ts","sourceRoot":"","sources":["../../src/api/DefaultHttpClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,iBAAkB,SAAQ,kBAAkB;IAIjD,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,MAAM,EAAE,cAAc;IAC/B,QAAQ,CAAC,aAAa;IACtB,QAAQ,CAAC,mBAAmB;IANhC,OAAO,CAAC,iBAAiB,CAA+B;gBAG3C,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,cAAc,EACtB,aAAa,SAAI,EACjB,mBAAmB,SAAM;cAKtB,KAAK,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,GAAE,MAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAoBxF,UAAU,CAAC,OAAO,EAAE,MAAM;IAOpB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAcvD,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAO1E,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAOzE,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAMnE"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { AccessToken } from "@clairejs/core";
|
|
2
|
-
import { AbstractStorage } from "../system/AbstractStorage";
|
|
3
|
-
import { AbstractTokenManager } from "./AbstractTokenManager";
|
|
4
|
-
export declare class DefaultTokenManager extends AbstractTokenManager {
|
|
5
|
-
readonly storage: AbstractStorage;
|
|
6
|
-
readonly storageKey: string;
|
|
7
|
-
private accessToken?;
|
|
8
|
-
constructor(storage: AbstractStorage, storageKey?: string);
|
|
9
|
-
getAccessToken(): Promise<AccessToken | undefined>;
|
|
10
|
-
setAccessToken(token?: AccessToken): Promise<void>;
|
|
11
|
-
}
|
|
1
|
+
import { AccessToken } from "@clairejs/core";
|
|
2
|
+
import { AbstractStorage } from "../system/AbstractStorage";
|
|
3
|
+
import { AbstractTokenManager } from "./AbstractTokenManager";
|
|
4
|
+
export declare class DefaultTokenManager extends AbstractTokenManager {
|
|
5
|
+
readonly storage: AbstractStorage;
|
|
6
|
+
readonly storageKey: string;
|
|
7
|
+
private accessToken?;
|
|
8
|
+
constructor(storage: AbstractStorage, storageKey?: string);
|
|
9
|
+
getAccessToken(): Promise<AccessToken | undefined>;
|
|
10
|
+
setAccessToken(token?: AccessToken): Promise<void>;
|
|
11
|
+
}
|
|
12
12
|
//# sourceMappingURL=DefaultTokenManager.d.ts.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { AbstractLogger, AccessToken } from "@clairejs/core";
|
|
2
|
-
import { AbstractTokenManager } from "./AbstractTokenManager";
|
|
3
|
-
import { DefaultHttpClient } from "./DefaultHttpClient";
|
|
4
|
-
export declare class RefreshHttpClient extends DefaultHttpClient {
|
|
5
|
-
readonly apiServerUrl: string;
|
|
6
|
-
readonly logger: AbstractLogger;
|
|
7
|
-
readonly tokenManager: AbstractTokenManager;
|
|
8
|
-
private refreshing;
|
|
9
|
-
private refreshQueue;
|
|
10
|
-
constructor(apiServerUrl: string, logger: AbstractLogger, tokenManager: AbstractTokenManager);
|
|
11
|
-
protected getRefreshedAccessToken(): Promise<AccessToken | undefined>;
|
|
12
|
-
protected resolveHeaders(headers?: object): Promise<{
|
|
13
|
-
authorization: string;
|
|
14
|
-
}>;
|
|
15
|
-
refreshToken(oldToken?: AccessToken): Promise<void>;
|
|
16
|
-
}
|
|
1
|
+
import { AbstractLogger, AccessToken } from "@clairejs/core";
|
|
2
|
+
import { AbstractTokenManager } from "./AbstractTokenManager";
|
|
3
|
+
import { DefaultHttpClient } from "./DefaultHttpClient";
|
|
4
|
+
export declare class RefreshHttpClient extends DefaultHttpClient {
|
|
5
|
+
readonly apiServerUrl: string;
|
|
6
|
+
readonly logger: AbstractLogger;
|
|
7
|
+
readonly tokenManager: AbstractTokenManager;
|
|
8
|
+
private refreshing;
|
|
9
|
+
private refreshQueue;
|
|
10
|
+
constructor(apiServerUrl: string, logger: AbstractLogger, tokenManager: AbstractTokenManager);
|
|
11
|
+
protected getRefreshedAccessToken(): Promise<AccessToken | undefined>;
|
|
12
|
+
protected resolveHeaders(headers?: object): Promise<{
|
|
13
|
+
authorization: string;
|
|
14
|
+
}>;
|
|
15
|
+
refreshToken(oldToken?: AccessToken): Promise<void>;
|
|
16
|
+
}
|
|
17
17
|
//# sourceMappingURL=RefreshHttpClient.d.ts.map
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const SYSTEM_LANGUAGES = "SYSTEM_LANGUAGES";
|
|
2
|
-
export declare const CURRENT_LANGUAGE = "CURRENT_LANGUAGE";
|
|
1
|
+
export declare const SYSTEM_LANGUAGES = "SYSTEM_LANGUAGES";
|
|
2
|
+
export declare const CURRENT_LANGUAGE = "CURRENT_LANGUAGE";
|
|
3
3
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export * from "./system/ClaireClient";
|
|
2
|
-
export * from "./api/RefreshHttpClient";
|
|
3
|
-
export * from "./api/DefaultHttpClient";
|
|
4
|
-
export * from "./api/AbstractHttpClient";
|
|
5
|
-
export * from "./socket/AbstractClientSocketManager";
|
|
6
|
-
export * from "./socket/DefaultClientSocketManager";
|
|
7
|
-
export * from "./system/AbstractStorage";
|
|
8
|
-
export * from "./translation/Translator";
|
|
9
|
-
export * from "./routing/AbstractErrorHandler";
|
|
10
|
-
export * from "./routing/AbstractViewMiddleware";
|
|
11
|
-
export * from "./routing/UrlInfo";
|
|
12
|
-
export * from "./routing/RouterConfig";
|
|
13
|
-
export * from "./routing/ComponentInfo";
|
|
14
|
-
export * from "./api/AbstractTokenManager";
|
|
15
|
-
export * from "./socket/IWebSocket";
|
|
16
|
-
export * from "./translation/types";
|
|
17
|
-
export * from "./api/DefaultTokenManager";
|
|
18
|
-
export * from "./api/CrudApi";
|
|
1
|
+
export * from "./system/ClaireClient";
|
|
2
|
+
export * from "./api/RefreshHttpClient";
|
|
3
|
+
export * from "./api/DefaultHttpClient";
|
|
4
|
+
export * from "./api/AbstractHttpClient";
|
|
5
|
+
export * from "./socket/AbstractClientSocketManager";
|
|
6
|
+
export * from "./socket/DefaultClientSocketManager";
|
|
7
|
+
export * from "./system/AbstractStorage";
|
|
8
|
+
export * from "./translation/Translator";
|
|
9
|
+
export * from "./routing/AbstractErrorHandler";
|
|
10
|
+
export * from "./routing/AbstractViewMiddleware";
|
|
11
|
+
export * from "./routing/UrlInfo";
|
|
12
|
+
export * from "./routing/RouterConfig";
|
|
13
|
+
export * from "./routing/ComponentInfo";
|
|
14
|
+
export * from "./api/AbstractTokenManager";
|
|
15
|
+
export * from "./socket/IWebSocket";
|
|
16
|
+
export * from "./translation/types";
|
|
17
|
+
export * from "./api/DefaultTokenManager";
|
|
18
|
+
export * from "./api/CrudApi";
|
|
19
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{"use strict";var e={560:function(e,t){var n=this&&this.__awaiter||function(e,t,n,s){return new(n||(n=Promise))((function(i,r){function fulfilled(e){try{step(s.next(e))}catch(e){r(e)}}function rejected(e){try{step(s.throw(e))}catch(e){r(e)}}function step(e){e.done?i(e.value):function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractHttpClient=void 0;t.AbstractHttpClient=class AbstractHttpClient{constructor(e){this.apiServerUrl=e}resolveHeaders(e){return n(this,void 0,void 0,(function*(){return e}))}resolveUrl(e){return n(this,void 0,void 0,(function*(){return this.apiServerUrl+e}))}}},805:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractTokenManager=void 0;t.AbstractTokenManager=class AbstractTokenManager{}},814:function(e,t,n){var s=this&&this.__awaiter||function(e,t,n,s){return new(n||(n=Promise))((function(i,r){function fulfilled(e){try{step(s.next(e))}catch(e){r(e)}}function rejected(e){try{step(s.throw(e))}catch(e){r(e)}}function step(e){e.done?i(e.value):function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.CrudApi=t.mergeInstances=t.removeInstances=t.stringifyQueries=void 0;const i=n(318);t.stringifyQueries=e=>Object.keys(e).reduce(((t,n)=>t+`&${n}=${JSON.stringify(e[n])}`),"");t.removeInstances=(e,t)=>{const n=e.slice();for(const e of t){const t=n.findIndex((t=>!!t.id&&!!e.id&&t.id===e.id));t>=0&&n.splice(t,1)}return n};t.mergeInstances=(e,t,n)=>{const s=t.slice();for(const t of n){const n=s.findIndex((e=>!!e.id&&!!t.id&&e.id===t.id));n<0?s.push(Object.assign(new e,t)):(0,i.deepMerge)(s[n],t)}return s};t.CrudApi=class CrudApi{constructor(e,t){this.model=e,this.httpClient=t,this.dirty=!0}getEndpointBaseUrl(){return`/${this.model.name.toLowerCase()}`}getMany(e,n=!0){return s(this,void 0,void 0,(function*(){const s=!n||this.dirty,i=yield this.httpClient.get(`${this.getEndpointBaseUrl()}?${(0,t.stringifyQueries)(e||{})}`,s?{"cache-control":"no-cache"}:void 0);return this.dirty=!1,i}))}updateMany(e,n){return s(this,void 0,void 0,(function*(){return this.dirty=!0,yield this.httpClient.put(`${this.getEndpointBaseUrl()}?${(0,t.stringifyQueries)(n||{})}`,e)}))}deleteMany(e){return s(this,void 0,void 0,(function*(){return this.dirty=!0,yield this.httpClient.delete(`${this.getEndpointBaseUrl()}?${(0,t.stringifyQueries)(e||{})}`)}))}createMany(e){return s(this,void 0,void 0,(function*(){return this.dirty=!0,yield this.httpClient.post(`${this.getEndpointBaseUrl()}`,e)}))}}},854:function(e,t,n){var s=this&&this.__awaiter||function(e,t,n,s){return new(n||(n=Promise))((function(i,r){function fulfilled(e){try{step(s.next(e))}catch(e){r(e)}}function rejected(e){try{step(s.throw(e))}catch(e){r(e)}}function step(e){e.done?i(e.value):function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultHttpClient=void 0;const r=i(n(167)),o=n(560);class DefaultHttpClient extends o.AbstractHttpClient{constructor(e,t,n=1){super(e),this.apiServerUrl=e,this.logger=t,this.maxRetryCount=n,this.issuedGetRequests={}}retry(e,t=0){var n;return s(this,void 0,void 0,(function*(){try{return yield e()}catch(s){if(503===(null===(n=s.response)||void 0===n?void 0:n.status)&&t<this.maxRetryCount)return this.logger.debug(`503 error encountered, retrying request ${t+1}`),yield this.retry(e,t+1);throw s}}))}resetCache(e){const t=new RegExp(e);Object.keys(this.issuedGetRequests).filter((e=>e.match(t))).forEach((e=>this.issuedGetRequests[e]=!1))}get(e,t){return s(this,void 0,void 0,(function*(){const n=yield this.resolveUrl(e),s=yield this.resolveHeaders(t),i=this.issuedGetRequests[n],o=yield this.retry((()=>r.default.get(n,{headers:Object.assign(Object.assign({},s),i?{}:{"cache-control":"no-cache"})})));return this.issuedGetRequests[n]=!0,o.data}))}post(e,t,n){return s(this,void 0,void 0,(function*(){const s=yield this.resolveUrl(e),i=yield this.resolveHeaders(n);return(yield this.retry((()=>r.default.post(s,t,{headers:i})))).data}))}put(e,t,n){return s(this,void 0,void 0,(function*(){const s=yield this.resolveUrl(e),i=yield this.resolveHeaders(n);return(yield this.retry((()=>r.default.put(s,t,{headers:i})))).data}))}delete(e,t){return s(this,void 0,void 0,(function*(){const n=yield this.resolveUrl(e),s=yield this.resolveHeaders(t);return(yield this.retry((()=>r.default.delete(n,{headers:s})))).data}))}}t.DefaultHttpClient=DefaultHttpClient},375:function(e,t,n){var s=this&&this.__decorate||function(e,t,n,s){var i,r=arguments.length,o=r<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,s);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(r<3?i(o):r>3?i(t,n,o):i(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=this&&this.__awaiter||function(e,t,n,s){return new(n||(n=Promise))((function(i,r){function fulfilled(e){try{step(s.next(e))}catch(e){r(e)}}function rejected(e){try{step(s.throw(e))}catch(e){r(e)}}function step(e){e.done?i(e.value):function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultTokenManager=void 0;const o=n(318),a=n(259),c=n(805);let l=class DefaultTokenManager extends c.AbstractTokenManager{constructor(e,t="ACCESS_TOKEN"){super(),this.storage=e,this.storageKey=t,this.accessToken=null}getAccessToken(){return r(this,void 0,void 0,(function*(){return null===this.accessToken&&(this.accessToken=yield this.storage.getItem(this.storageKey)),this.accessToken}))}setAccessToken(e){return r(this,void 0,void 0,(function*(){e?yield this.storage.setItem(this.storageKey,e):yield this.storage.deleteItem(this.storageKey),this.accessToken=e}))}};l=s([(0,o.Injectable)(),i("design:paramtypes",[a.AbstractStorage,String])],l),t.DefaultTokenManager=l},390:function(e,t,n){var s=this&&this.__awaiter||function(e,t,n,s){return new(n||(n=Promise))((function(i,r){function fulfilled(e){try{step(s.next(e))}catch(e){r(e)}}function rejected(e){try{step(s.throw(e))}catch(e){r(e)}}function step(e){e.done?i(e.value):function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.RefreshHttpClient=void 0;const i=n(854);class RefreshHttpClient extends i.DefaultHttpClient{constructor(e,t,n){super(e,t),this.apiServerUrl=e,this.logger=t,this.tokenManager=n,this.refreshing=!1,this.refreshQueue=[]}getRefreshedAccessToken(){return s(this,void 0,void 0,(function*(){}))}resolveHeaders(e){const t=Object.create(null,{resolveHeaders:{get:()=>super.resolveHeaders}});return s(this,void 0,void 0,(function*(){if(!e||!Object.keys(e).map((e=>e.toLowerCase().includes("authorization")))){const e=yield this.tokenManager.getAccessToken();e&&e.expiration<Date.now()+3e4&&(yield this.refreshToken(e))}const n=yield this.tokenManager.getAccessToken(),s=yield t.resolveHeaders.call(this,e);return Object.assign({authorization:(null==n?void 0:n.token)||""},s)}))}refreshToken(e){return s(this,void 0,void 0,(function*(){if(this.refreshing)this.logger.debug("Awaiting refresh token, queued"),yield new Promise((e=>{this.refreshQueue.push({resolver:e})}));else{if(!(e=e||(yield this.tokenManager.getAccessToken()))||!e.refreshToken)return;try{this.refreshing=!0;const e=yield this.getRefreshedAccessToken();yield this.tokenManager.setAccessToken(e),this.logger.debug("Access token was refreshed")}catch(e){this.logger.debug("Cannot refresh access token, clear local token"),yield this.tokenManager.setAccessToken()}finally{this.refreshing=!1;for(const e of this.refreshQueue)e.resolver();this.refreshQueue=[]}}}))}}t.RefreshHttpClient=RefreshHttpClient},396:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CURRENT_LANGUAGE=t.SYSTEM_LANGUAGES=void 0,t.SYSTEM_LANGUAGES="SYSTEM_LANGUAGES",t.CURRENT_LANGUAGE="CURRENT_LANGUAGE"},341:function(e,t,n){var s=this&&this.__createBinding||(Object.create?function(e,t,n,s){void 0===s&&(s=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,s,i)}:function(e,t,n,s){void 0===s&&(s=n),e[s]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||s(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(533),t),i(n(390),t),i(n(854),t),i(n(560),t),i(n(422),t),i(n(548),t),i(n(259),t),i(n(182),t),i(n(332),t),i(n(628),t),i(n(999),t),i(n(23),t),i(n(359),t),i(n(805),t),i(n(819),t),i(n(416),t),i(n(375),t),i(n(814),t)},332:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractErrorHandler=void 0;t.AbstractErrorHandler=class AbstractErrorHandler{}},628:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractViewMiddleware=void 0;t.AbstractViewMiddleware=class AbstractViewMiddleware{}},359:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},23:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},999:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},422:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractClientSocketManager=void 0;t.AbstractClientSocketManager=class AbstractClientSocketManager{}},38:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultClientSocket=void 0;t.DefaultClientSocket=class DefaultClientSocket{constructor(e){this.socketManager=e}joinChannels(e){this.socketManager.subChannels(this,e)}leaveChannels(e){this.socketManager.unsubChannels(this,e)}close(){this.socketManager.removeSocket(this)}onReconnect(e){this.socketManager.registerReconnectionHandler(this,e)}onDisconnect(e){this.socketManager.registerDisconnectionHandler(this,e)}onMessage(e){this.socketManager.registerMessageHandler(this,e)}send(e,t){this.socketManager.sendPlainMessageToChannel(e,t)}}},548:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultClientSocketManager=void 0;const s=n(318),i=n(422),r=n(38);class DefaultClientSocketManager extends i.AbstractClientSocketManager{constructor(e,t,n){super(),this.wsProvider=e,this.logger=t,this.config=n,this.allSockets=[],this.allChannels=[],this.accumulatedPing=0,this.retryDelay=0,this.pingpongId=0,this.pingpong=[]}getPingMs(){const e=this.pingpong.filter((e=>e.sentTimestamp&&e.receivedTimestamp));return e.length?e.map((e=>e.receivedTimestamp-e.sentTimestamp)).reduce(((e,t)=>e+t),0)/e.length:0}subChannels(e,t){const n=this.allSockets.find((t=>t.socket===e));if(!n)return void this.logger.debug("Socket not found");const s=[];for(const e of t){n.registeredChannels.includes(e)||n.registeredChannels.push(e);const t=this.allChannels.find((t=>t.channel===e));t&&t.connected||s.push(e)}this.joinChannels(s)}unsubChannels(e,t){const n=this.allSockets.find((t=>t.socket===e));if(!n)return void this.logger.debug("Socket not found");n.registeredChannels=n.registeredChannels.filter((e=>!t.includes(e)));const s=[];for(const e of t)this.allSockets.find((t=>t.registeredChannels.includes(e)))||s.push(e);this.leaveChannels(s)}removeSocket(e){const t=this.allSockets.find((t=>t.socket===e));t&&t.disconnectionHandler&&t.disconnectionHandler(),this.allSockets=this.allSockets.filter((t=>t.socket!==e)),this.allSockets.length||this.forceDisconnect()}registerReconnectionHandler(e,t){const n=this.allSockets.find((t=>t.socket===e));n&&(n.reconnectionHandler=t)}registerDisconnectionHandler(e,t){const n=this.allSockets.find((t=>t.socket===e));n&&(n.disconnectionHandler=t)}registerMessageHandler(e,t){const n=this.allSockets.find((t=>t.socket===e));n&&(n.messageHandler=t)}sendPlainMessageToChannel(e,t){if(t){let n=this.allChannels.find((e=>e.channel===t));n||(n={channel:t,connected:!1,pendingMessages:[]},this.allChannels.push(n)),n.connected?this.sendRawMessage({type:s.MessageType.PLAIN,data:{channel:t,message:e}}):n.pendingMessages.push(e)}else this.sendRawMessage({type:s.MessageType.PLAIN,data:{message:e}})}joinChannels(e){if(e.length)if(this.socket&&this.socketConnected)this.sendRawMessage({type:s.MessageType.CHANNEL_JOIN,data:e});else for(const t of e){let e=this.allChannels.find((e=>e.channel===t));e||(e={channel:t,connected:!1,pendingMessages:[]},this.allChannels.push(e)),e.connected}}leaveChannels(e){e.length&&(this.handleChannelLeave(e),this.socket&&this.socketConnected&&this.sendRawMessage({type:s.MessageType.CHANNEL_LEAVE,data:e}))}sendPingPong(){this.pingpongId+=1,this.pingpongId%=100;const e={id:this.pingpongId,sentTimestamp:Date.now()};this.pingpong.push(e),this.pingpong.length>10&&this.pingpong.shift(),this.sendRawMessage({type:s.MessageType.PING_PONG,data:e.id})}sendRawMessage(e){if(!this.socket||!this.socketConnected)throw s.ErrorBuilder.error(s.Errors.BAD_STATE,"Socket not available");this.socket.send(e),this.logger.debug("Raw send",e)}handleChannelJoin(e){this.logger.debug("Joinning channels",e);for(const t of e){let e=this.allChannels.find((e=>e.channel===t));if(e||(e={channel:t,connected:!1,pendingMessages:[]},this.allChannels.push(e)),e.connected=!0,e.pendingMessages.length){this.logger.debug(`Flushing ${e.pendingMessages.length} message`);for(const t of e.pendingMessages)this.sendPlainMessageToChannel(t,e.channel);e.pendingMessages=[]}}}handleChannelLeave(e){this.logger.debug("Leaving channels",e),this.allChannels=this.allChannels.filter((t=>!e.includes(t.channel)))}handlePlainMessage(e,t){for(const n of this.allSockets)n.messageHandler&&n.messageHandler(e,t)}handleConnect(){var e,t;this.logger.debug("Socket connected"),this.pingIntervalId&&clearInterval(this.pingIntervalId),this.accumulatedPing=0,this.pingIntervalId=setInterval((()=>{var e,t,n;this.accumulatedPing+=1,this.accumulatedPing>((null===(t=null===(e=this.config)||void 0===e?void 0:e.keepAlive)||void 0===t?void 0:t.deadThreshold)||3)?(this.intendedDisconnection=!1,null===(n=this.socket)||void 0===n||n.close()):this.sendPingPong()}),(null===(t=null===(e=this.config)||void 0===e?void 0:e.keepAlive)||void 0===t?void 0:t.pingIntervalMs)||1e4),this.intendedDisconnection=!1,this.retryTimeoutId&&(clearTimeout(this.retryTimeoutId),this.retryTimeoutId=void 0);for(const e of this.allSockets)e.reconnectionHandler&&e.reconnectionHandler();const n=this.allChannels.filter((e=>!e.connected)).map((e=>e.channel));this.joinChannels(n)}handleDisconnect(e){e&&(this.intendedDisconnection=!0),this.logger.debug("Socket connnection closed, error: ",e),this.pingIntervalId&&clearInterval(this.pingIntervalId),this.socket=void 0,this.socketConnected=!1;for(const t of this.allSockets)t.disconnectionHandler&&t.disconnectionHandler(e);this.intendedDisconnection?(this.allSockets=[],this.allChannels=[],this.logger.debug("Socket connection terminated")):(this.allChannels=this.allChannels.map((e=>Object.assign(Object.assign({},e),{connected:!1}))),this.retryTimeoutId||(this.retryDelay=0,this.retry()))}handleMessage(e){var t;switch(this.logger.debug("Raw receive",e),e.type){case s.MessageType.READY:this.handleConnect();break;case s.MessageType.PING_PONG:this.accumulatedPing=0;const n=e.data;if(n){const e=this.pingpong.find((e=>e.id===n));e&&(e.receivedTimestamp=Date.now())}break;case s.MessageType.CHANNEL_JOIN:(null===(t=e.data)||void 0===t?void 0:t.error)?this.logger.error("Join channel error",e.data.error):this.handleChannelJoin(e.data);break;case s.MessageType.CHANNEL_LEAVE:this.handleChannelLeave(e.data);break;case s.MessageType.PLAIN:this.handlePlainMessage(e.data.message,e.data.channel)}}create(){const e=new r.DefaultClientSocket(this);return this.allSockets.push({socket:e,registeredChannels:[]}),1===this.allSockets.length&&this.forceReconnect(),e}forceDisconnect(){this.intendedDisconnection=!0,this.socket&&(this.socket.close(),this.socket=void 0),this.retryTimeoutId&&clearTimeout(this.retryTimeoutId)}forceReconnect(){var e;this.intendedDisconnection=!1,this.socketConnected?null===(e=this.socket)||void 0===e||e.close():(this.retryDelay=0,void 0===this.socket&&(this.retryTimeoutId&&(clearTimeout(this.retryTimeoutId),this.retryTimeoutId=void 0),this.physicConnect()))}physicConnect(){this.wsProvider().then((e=>{this.socket=e,this.socket.onopen((()=>{this.socketConnected=!0,this.logger.debug("Physic link connected, sending & waiting for READY message"),this.sendRawMessage({type:s.MessageType.READY,data:""})})),this.socket.onmessage((e=>{const t=JSON.parse(e);t&&t.type?this.handleMessage(t):this.logger.debug("Invalid mesasge structure",e)})),this.socket.onclose((e=>{this.handleDisconnect(e)}))}))}retry(){var e;this.logger.debug(`Socket connection retrying in ${this.retryDelay}ms`),this.physicConnect(),this.retryDelay+=(null===(e=this.config)||void 0===e?void 0:e.reconnectTimeDeltaMs)||3e3,this.retryTimeoutId=setTimeout((()=>{this.socketConnected||this.intendedDisconnection||this.retry()}),this.retryDelay)}}t.DefaultClientSocketManager=DefaultClientSocketManager},819:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},259:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStorage=void 0;t.AbstractStorage=class AbstractStorage{}},533:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ClaireClient=void 0;const s=n(318);class ClaireClient extends s.ClaireApp{}t.ClaireClient=ClaireClient},182:function(e,t,n){var s=this&&this.__decorate||function(e,t,n,s){var i,r=arguments.length,o=r<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,s);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(r<3?i(o):r>3?i(t,n,o):i(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=this&&this.__awaiter||function(e,t,n,s){return new(n||(n=Promise))((function(i,r){function fulfilled(e){try{step(s.next(e))}catch(e){r(e)}}function rejected(e){try{step(s.throw(e))}catch(e){r(e)}}function step(e){e.done?i(e.value):function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.Translator=void 0;const o=n(318),a=n(396),c=n(259),keyResolver=e=>`__${e}__`;let l=class Translator{constructor(e){this.storage=e,this.allLangs=null,this.currentLang=null,this.subscribers=[]}init(){return r(this,void 0,void 0,(function*(){const e=yield this.storage.getItem(a.SYSTEM_LANGUAGES);this.allLangs=e||[];const t=yield this.storage.getItem(a.CURRENT_LANGUAGE);t&&this.allLangs.includes(t)&&(this.currentLang=t)}))}exit(){}addLangSubscriber(e){this.subscribers.push(e)}removeLangSubscriber(e){this.subscribers=this.subscribers.filter((t=>t!==e))}getCurrentLanguage(){return r(this,void 0,void 0,(function*(){return null===this.currentLang&&(this.currentLang=yield this.storage.getItem(a.CURRENT_LANGUAGE)),this.currentLang}))}setCurrentLanguage(e){return r(this,void 0,void 0,(function*(){this.currentLang=e,yield this.storage.setItem(a.CURRENT_LANGUAGE,e);for(const t of this.subscribers)t(e)}))}getLanguages(){return r(this,void 0,void 0,(function*(){return null==this.allLangs&&(this.allLangs=yield this.storage.getItem(a.SYSTEM_LANGUAGES)),this.allLangs}))}setLanguages(e){return r(this,void 0,void 0,(function*(){yield this.storage.setItem(a.SYSTEM_LANGUAGES,e),this.allLangs=e,null===this.currentLang&&e.length&&(yield this.setCurrentLanguage(e[0]))}))}getTranslationObject(e){const t=this,n=Object.keys(e),s={},resolveTranslation=(e,s)=>{const i=s.reduce(((e,t)=>(Object.keys(t).forEach((t=>{e.includes(t)||e.push(t)})),e)),[]);for(const r of i){if(s.every((e=>"object"==typeof e[r])))e[r]={},resolveTranslation(e[r],s.map((e=>e[r])));else{const i=keyResolver(r);e[i]=s.map((e=>e[r])),Object.defineProperty(e,r,{value:function(...e){const s=t.currentLang||n[0];if(!s)return"";let r=this[i][n.indexOf(s)];return"string"==typeof r?r:"function"==typeof r?r(...e):i},configurable:!1,writable:!1})}}};return resolveTranslation(s,Object.values(e)),s}};l=s([(0,o.Injectable)(),(0,o.Initable)(),i("design:paramtypes",[c.AbstractStorage])],l),t.Translator=l},416:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},318:e=>{e.exports=require("@clairejs/core")},167:e=>{e.exports=require("axios")}},t={};var n=function __webpack_require__(n){var s=t[n];if(void 0!==s)return s.exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,__webpack_require__),i.exports}(341),s=exports;for(var i in n)s[i]=n[i];n.__esModule&&Object.defineProperty(s,"__esModule",{value:!0})})();
|
|
1
|
+
(()=>{"use strict";var e={560:function(e,t){var n=this&&this.__awaiter||function(e,t,n,s){return new(n||(n=Promise))((function(i,r){function fulfilled(e){try{step(s.next(e))}catch(e){r(e)}}function rejected(e){try{step(s.throw(e))}catch(e){r(e)}}function step(e){e.done?i(e.value):function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractHttpClient=void 0;t.AbstractHttpClient=class AbstractHttpClient{constructor(e){this.apiServerUrl=e}resolveHeaders(e){return n(this,void 0,void 0,(function*(){return e}))}resolveUrl(e){return n(this,void 0,void 0,(function*(){return this.apiServerUrl+e}))}}},805:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractTokenManager=void 0;t.AbstractTokenManager=class AbstractTokenManager{}},814:function(e,t,n){var s=this&&this.__awaiter||function(e,t,n,s){return new(n||(n=Promise))((function(i,r){function fulfilled(e){try{step(s.next(e))}catch(e){r(e)}}function rejected(e){try{step(s.throw(e))}catch(e){r(e)}}function step(e){e.done?i(e.value):function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.CrudApi=t.mergeInstances=t.removeInstances=t.stringifyQueries=void 0;const i=n(318);t.stringifyQueries=e=>Object.keys(e).reduce(((t,n)=>t+`&${n}=${JSON.stringify(e[n])}`),"");t.removeInstances=(e,t)=>{const n=e.slice();for(const e of t){const t=n.findIndex((t=>!!t.id&&!!e.id&&t.id===e.id));t>=0&&n.splice(t,1)}return n};t.mergeInstances=(e,t,n)=>{const s=t.slice();for(const t of n){const n=s.findIndex((e=>!!e.id&&!!t.id&&e.id===t.id));n<0?s.push(Object.assign(new e,t)):(0,i.deepMerge)(s[n],t)}return s};t.CrudApi=class CrudApi{constructor(e,t){this.model=e,this.httpClient=t,this.dirty=!0}getEndpointBaseUrl(){return`/${this.model.name.toLowerCase()}`}getMany(e,n=!0){return s(this,void 0,void 0,(function*(){const s=!n||this.dirty,i=yield this.httpClient.get(`${this.getEndpointBaseUrl()}?${(0,t.stringifyQueries)(e||{})}`,s?{"cache-control":"no-cache"}:void 0);return this.dirty=!1,i}))}updateMany(e,n){return s(this,void 0,void 0,(function*(){return this.dirty=!0,yield this.httpClient.put(`${this.getEndpointBaseUrl()}?${(0,t.stringifyQueries)(n||{})}`,e)}))}deleteMany(e){return s(this,void 0,void 0,(function*(){return this.dirty=!0,yield this.httpClient.delete(`${this.getEndpointBaseUrl()}?${(0,t.stringifyQueries)(e||{})}`)}))}createMany(e){return s(this,void 0,void 0,(function*(){return this.dirty=!0,yield this.httpClient.post(`${this.getEndpointBaseUrl()}`,e)}))}}},854:function(e,t,n){var s=this&&this.__awaiter||function(e,t,n,s){return new(n||(n=Promise))((function(i,r){function fulfilled(e){try{step(s.next(e))}catch(e){r(e)}}function rejected(e){try{step(s.throw(e))}catch(e){r(e)}}function step(e){e.done?i(e.value):function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultHttpClient=void 0;const r=i(n(167)),o=n(560);class DefaultHttpClient extends o.AbstractHttpClient{constructor(e,t,n=1,s=100){super(e),this.apiServerUrl=e,this.logger=t,this.maxRetryCount=n,this.delayMsBetweenRetry=s,this.issuedGetRequests={}}retry(e,t=0){return s(this,void 0,void 0,(function*(){try{return yield e()}catch(n){if((!n.response||503===n.response.status)&&t<this.maxRetryCount)return this.logger.debug(`503 error encountered, retrying request ${t+1}`),yield new Promise((e=>setTimeout(e,this.delayMsBetweenRetry))),yield this.retry(e,t+1);throw n}}))}resetCache(e){const t=new RegExp(e);Object.keys(this.issuedGetRequests).filter((e=>e.match(t))).forEach((e=>this.issuedGetRequests[e]=!1))}get(e,t){return s(this,void 0,void 0,(function*(){const n=yield this.resolveUrl(e),s=yield this.resolveHeaders(t),i=this.issuedGetRequests[n],o=yield this.retry((()=>r.default.get(n,{headers:Object.assign(Object.assign({},s),i?{}:{"cache-control":"no-cache"})})));return this.issuedGetRequests[n]=!0,o.data}))}post(e,t,n){return s(this,void 0,void 0,(function*(){const s=yield this.resolveUrl(e),i=yield this.resolveHeaders(n);return(yield this.retry((()=>r.default.post(s,t,{headers:i})))).data}))}put(e,t,n){return s(this,void 0,void 0,(function*(){const s=yield this.resolveUrl(e),i=yield this.resolveHeaders(n);return(yield this.retry((()=>r.default.put(s,t,{headers:i})))).data}))}delete(e,t){return s(this,void 0,void 0,(function*(){const n=yield this.resolveUrl(e),s=yield this.resolveHeaders(t);return(yield this.retry((()=>r.default.delete(n,{headers:s})))).data}))}}t.DefaultHttpClient=DefaultHttpClient},375:function(e,t,n){var s=this&&this.__decorate||function(e,t,n,s){var i,r=arguments.length,o=r<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,s);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(r<3?i(o):r>3?i(t,n,o):i(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=this&&this.__awaiter||function(e,t,n,s){return new(n||(n=Promise))((function(i,r){function fulfilled(e){try{step(s.next(e))}catch(e){r(e)}}function rejected(e){try{step(s.throw(e))}catch(e){r(e)}}function step(e){e.done?i(e.value):function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultTokenManager=void 0;const o=n(318),a=n(259),c=n(805);let l=class DefaultTokenManager extends c.AbstractTokenManager{constructor(e,t="ACCESS_TOKEN"){super(),this.storage=e,this.storageKey=t,this.accessToken=null}getAccessToken(){return r(this,void 0,void 0,(function*(){return null===this.accessToken&&(this.accessToken=yield this.storage.getItem(this.storageKey)),this.accessToken}))}setAccessToken(e){return r(this,void 0,void 0,(function*(){e?yield this.storage.setItem(this.storageKey,e):yield this.storage.deleteItem(this.storageKey),this.accessToken=e}))}};l=s([(0,o.Injectable)(),i("design:paramtypes",[a.AbstractStorage,String])],l),t.DefaultTokenManager=l},390:function(e,t,n){var s=this&&this.__awaiter||function(e,t,n,s){return new(n||(n=Promise))((function(i,r){function fulfilled(e){try{step(s.next(e))}catch(e){r(e)}}function rejected(e){try{step(s.throw(e))}catch(e){r(e)}}function step(e){e.done?i(e.value):function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.RefreshHttpClient=void 0;const i=n(854);class RefreshHttpClient extends i.DefaultHttpClient{constructor(e,t,n){super(e,t),this.apiServerUrl=e,this.logger=t,this.tokenManager=n,this.refreshing=!1,this.refreshQueue=[]}getRefreshedAccessToken(){return s(this,void 0,void 0,(function*(){}))}resolveHeaders(e){const t=Object.create(null,{resolveHeaders:{get:()=>super.resolveHeaders}});return s(this,void 0,void 0,(function*(){if(!e||!Object.keys(e).map((e=>e.toLowerCase().includes("authorization")))){const e=yield this.tokenManager.getAccessToken();e&&e.expiration<Date.now()+3e4&&(yield this.refreshToken(e))}const n=yield this.tokenManager.getAccessToken(),s=yield t.resolveHeaders.call(this,e);return Object.assign({authorization:(null==n?void 0:n.token)||""},s)}))}refreshToken(e){return s(this,void 0,void 0,(function*(){if(this.refreshing)this.logger.debug("Awaiting refresh token, queued"),yield new Promise((e=>{this.refreshQueue.push({resolver:e})}));else{if(!(e=e||(yield this.tokenManager.getAccessToken()))||!e.refreshToken)return;try{this.refreshing=!0;const e=yield this.getRefreshedAccessToken();yield this.tokenManager.setAccessToken(e),this.logger.debug("Access token was refreshed")}catch(e){this.logger.debug("Cannot refresh access token, clear local token"),yield this.tokenManager.setAccessToken()}finally{this.refreshing=!1;for(const e of this.refreshQueue)e.resolver();this.refreshQueue=[]}}}))}}t.RefreshHttpClient=RefreshHttpClient},396:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CURRENT_LANGUAGE=t.SYSTEM_LANGUAGES=void 0,t.SYSTEM_LANGUAGES="SYSTEM_LANGUAGES",t.CURRENT_LANGUAGE="CURRENT_LANGUAGE"},341:function(e,t,n){var s=this&&this.__createBinding||(Object.create?function(e,t,n,s){void 0===s&&(s=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,s,i)}:function(e,t,n,s){void 0===s&&(s=n),e[s]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||s(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(533),t),i(n(390),t),i(n(854),t),i(n(560),t),i(n(422),t),i(n(548),t),i(n(259),t),i(n(182),t),i(n(332),t),i(n(628),t),i(n(999),t),i(n(23),t),i(n(359),t),i(n(805),t),i(n(819),t),i(n(416),t),i(n(375),t),i(n(814),t)},332:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractErrorHandler=void 0;t.AbstractErrorHandler=class AbstractErrorHandler{}},628:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractViewMiddleware=void 0;t.AbstractViewMiddleware=class AbstractViewMiddleware{}},359:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},23:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},999:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},422:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractClientSocketManager=void 0;t.AbstractClientSocketManager=class AbstractClientSocketManager{}},38:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultClientSocket=void 0;t.DefaultClientSocket=class DefaultClientSocket{constructor(e){this.socketManager=e}joinChannels(e){this.socketManager.subChannels(this,e)}leaveChannels(e){this.socketManager.unsubChannels(this,e)}close(){this.socketManager.removeSocket(this)}onReconnect(e){this.socketManager.registerReconnectionHandler(this,e)}onDisconnect(e){this.socketManager.registerDisconnectionHandler(this,e)}onMessage(e){this.socketManager.registerMessageHandler(this,e)}send(e,t){this.socketManager.sendPlainMessageToChannel(e,t)}}},548:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultClientSocketManager=void 0;const s=n(318),i=n(422),r=n(38);class DefaultClientSocketManager extends i.AbstractClientSocketManager{constructor(e,t,n){super(),this.wsProvider=e,this.logger=t,this.config=n,this.allSockets=[],this.allChannels=[],this.accumulatedPing=0,this.retryDelay=0,this.pingpongId=0,this.pingpong=[]}getPingMs(){const e=this.pingpong.filter((e=>e.sentTimestamp&&e.receivedTimestamp));return e.length?e.map((e=>e.receivedTimestamp-e.sentTimestamp)).reduce(((e,t)=>e+t),0)/e.length:0}subChannels(e,t){const n=this.allSockets.find((t=>t.socket===e));if(!n)return void this.logger.debug("Socket not found");const s=[];for(const e of t){n.registeredChannels.includes(e)||n.registeredChannels.push(e);const t=this.allChannels.find((t=>t.channel===e));t&&t.connected||s.push(e)}this.joinChannels(s)}unsubChannels(e,t){const n=this.allSockets.find((t=>t.socket===e));if(!n)return void this.logger.debug("Socket not found");n.registeredChannels=n.registeredChannels.filter((e=>!t.includes(e)));const s=[];for(const e of t)this.allSockets.find((t=>t.registeredChannels.includes(e)))||s.push(e);this.leaveChannels(s)}removeSocket(e){const t=this.allSockets.find((t=>t.socket===e));t&&t.disconnectionHandler&&t.disconnectionHandler(),this.allSockets=this.allSockets.filter((t=>t.socket!==e)),this.allSockets.length||this.forceDisconnect()}registerReconnectionHandler(e,t){const n=this.allSockets.find((t=>t.socket===e));n&&(n.reconnectionHandler=t)}registerDisconnectionHandler(e,t){const n=this.allSockets.find((t=>t.socket===e));n&&(n.disconnectionHandler=t)}registerMessageHandler(e,t){const n=this.allSockets.find((t=>t.socket===e));n&&(n.messageHandler=t)}sendPlainMessageToChannel(e,t){if(t){let n=this.allChannels.find((e=>e.channel===t));n||(n={channel:t,connected:!1,pendingMessages:[]},this.allChannels.push(n)),n.connected?this.sendRawMessage({type:s.MessageType.PLAIN,data:{channel:t,message:e}}):n.pendingMessages.push(e)}else this.sendRawMessage({type:s.MessageType.PLAIN,data:{message:e}})}joinChannels(e){if(e.length)if(this.socket&&this.socketConnected)this.sendRawMessage({type:s.MessageType.CHANNEL_JOIN,data:e});else for(const t of e){let e=this.allChannels.find((e=>e.channel===t));e||(e={channel:t,connected:!1,pendingMessages:[]},this.allChannels.push(e)),e.connected}}leaveChannels(e){e.length&&(this.handleChannelLeave(e),this.socket&&this.socketConnected&&this.sendRawMessage({type:s.MessageType.CHANNEL_LEAVE,data:e}))}sendPingPong(){this.pingpongId+=1,this.pingpongId%=100;const e={id:this.pingpongId,sentTimestamp:Date.now()};this.pingpong.push(e),this.pingpong.length>10&&this.pingpong.shift(),this.sendRawMessage({type:s.MessageType.PING_PONG,data:e.id})}sendRawMessage(e){if(!this.socket||!this.socketConnected)throw s.ErrorBuilder.error(s.Errors.BAD_STATE,"Socket not available");this.socket.send(e),this.logger.debug("Raw send",e)}handleChannelJoin(e){this.logger.debug("Joinning channels",e);for(const t of e){let e=this.allChannels.find((e=>e.channel===t));if(e||(e={channel:t,connected:!1,pendingMessages:[]},this.allChannels.push(e)),e.connected=!0,e.pendingMessages.length){this.logger.debug(`Flushing ${e.pendingMessages.length} message`);for(const t of e.pendingMessages)this.sendPlainMessageToChannel(t,e.channel);e.pendingMessages=[]}}}handleChannelLeave(e){this.logger.debug("Leaving channels",e),this.allChannels=this.allChannels.filter((t=>!e.includes(t.channel)))}handlePlainMessage(e,t){for(const n of this.allSockets)n.messageHandler&&n.messageHandler(e,t)}handleConnect(){var e,t;this.logger.debug("Socket connected"),this.pingIntervalId&&clearInterval(this.pingIntervalId),this.accumulatedPing=0,this.pingIntervalId=setInterval((()=>{var e,t,n;this.accumulatedPing+=1,this.accumulatedPing>((null===(t=null===(e=this.config)||void 0===e?void 0:e.keepAlive)||void 0===t?void 0:t.deadThreshold)||3)?(this.intendedDisconnection=!1,null===(n=this.socket)||void 0===n||n.close()):this.sendPingPong()}),(null===(t=null===(e=this.config)||void 0===e?void 0:e.keepAlive)||void 0===t?void 0:t.pingIntervalMs)||1e4),this.intendedDisconnection=!1,this.retryTimeoutId&&(clearTimeout(this.retryTimeoutId),this.retryTimeoutId=void 0);for(const e of this.allSockets)e.reconnectionHandler&&e.reconnectionHandler();const n=this.allChannels.filter((e=>!e.connected)).map((e=>e.channel));this.joinChannels(n)}handleDisconnect(e){e&&(this.intendedDisconnection=!0),this.logger.debug("Socket connnection closed, error: ",e),this.pingIntervalId&&clearInterval(this.pingIntervalId),this.socket=void 0,this.socketConnected=!1;for(const t of this.allSockets)t.disconnectionHandler&&t.disconnectionHandler(e);this.intendedDisconnection?(this.allSockets=[],this.allChannels=[],this.logger.debug("Socket connection terminated")):(this.allChannels=this.allChannels.map((e=>Object.assign(Object.assign({},e),{connected:!1}))),this.retryTimeoutId||(this.retryDelay=0,this.retry()))}handleMessage(e){var t;switch(this.logger.debug("Raw receive",e),e.type){case s.MessageType.READY:this.handleConnect();break;case s.MessageType.PING_PONG:this.accumulatedPing=0;const n=e.data;if(n){const e=this.pingpong.find((e=>e.id===n));e&&(e.receivedTimestamp=Date.now())}break;case s.MessageType.CHANNEL_JOIN:(null===(t=e.data)||void 0===t?void 0:t.error)?this.logger.error("Join channel error",e.data.error):this.handleChannelJoin(e.data);break;case s.MessageType.CHANNEL_LEAVE:this.handleChannelLeave(e.data);break;case s.MessageType.PLAIN:this.handlePlainMessage(e.data.message,e.data.channel)}}create(){const e=new r.DefaultClientSocket(this);return this.allSockets.push({socket:e,registeredChannels:[]}),1===this.allSockets.length&&this.forceReconnect(),e}forceDisconnect(){this.intendedDisconnection=!0,this.socket&&(this.socket.close(),this.socket=void 0),this.retryTimeoutId&&clearTimeout(this.retryTimeoutId)}forceReconnect(){var e;this.intendedDisconnection=!1,this.socketConnected?null===(e=this.socket)||void 0===e||e.close():(this.retryDelay=0,void 0===this.socket&&(this.retryTimeoutId&&(clearTimeout(this.retryTimeoutId),this.retryTimeoutId=void 0),this.physicConnect()))}physicConnect(){this.wsProvider().then((e=>{this.socket=e,this.socket.onopen((()=>{this.socketConnected=!0,this.logger.debug("Physic link connected, sending & waiting for READY message"),this.sendRawMessage({type:s.MessageType.READY,data:""})})),this.socket.onmessage((e=>{const t=JSON.parse(e);t&&t.type?this.handleMessage(t):this.logger.debug("Invalid mesasge structure",e)})),this.socket.onclose((e=>{this.handleDisconnect(e)}))}))}retry(){var e;this.logger.debug(`Socket connection retrying in ${this.retryDelay}ms`),this.physicConnect(),this.retryDelay+=(null===(e=this.config)||void 0===e?void 0:e.reconnectTimeDeltaMs)||3e3,this.retryTimeoutId=setTimeout((()=>{this.socketConnected||this.intendedDisconnection||this.retry()}),this.retryDelay)}}t.DefaultClientSocketManager=DefaultClientSocketManager},819:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},259:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStorage=void 0;t.AbstractStorage=class AbstractStorage{}},533:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ClaireClient=void 0;const s=n(318);class ClaireClient extends s.ClaireApp{}t.ClaireClient=ClaireClient},182:function(e,t,n){var s=this&&this.__decorate||function(e,t,n,s){var i,r=arguments.length,o=r<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,s);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(r<3?i(o):r>3?i(t,n,o):i(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=this&&this.__awaiter||function(e,t,n,s){return new(n||(n=Promise))((function(i,r){function fulfilled(e){try{step(s.next(e))}catch(e){r(e)}}function rejected(e){try{step(s.throw(e))}catch(e){r(e)}}function step(e){e.done?i(e.value):function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.Translator=void 0;const o=n(318),a=n(396),c=n(259),keyResolver=e=>`__${e}__`;let l=class Translator{constructor(e){this.storage=e,this.allLangs=null,this.currentLang=null,this.subscribers=[]}init(){return r(this,void 0,void 0,(function*(){const e=yield this.storage.getItem(a.SYSTEM_LANGUAGES);this.allLangs=e||[];const t=yield this.storage.getItem(a.CURRENT_LANGUAGE);t&&this.allLangs.includes(t)&&(this.currentLang=t)}))}exit(){}addLangSubscriber(e){this.subscribers.push(e)}removeLangSubscriber(e){this.subscribers=this.subscribers.filter((t=>t!==e))}getCurrentLanguage(){return r(this,void 0,void 0,(function*(){return null===this.currentLang&&(this.currentLang=yield this.storage.getItem(a.CURRENT_LANGUAGE)),this.currentLang}))}setCurrentLanguage(e){return r(this,void 0,void 0,(function*(){this.currentLang=e,yield this.storage.setItem(a.CURRENT_LANGUAGE,e);for(const t of this.subscribers)t(e)}))}getLanguages(){return r(this,void 0,void 0,(function*(){return null==this.allLangs&&(this.allLangs=yield this.storage.getItem(a.SYSTEM_LANGUAGES)),this.allLangs}))}setLanguages(e){return r(this,void 0,void 0,(function*(){yield this.storage.setItem(a.SYSTEM_LANGUAGES,e),this.allLangs=e,null===this.currentLang&&e.length&&(yield this.setCurrentLanguage(e[0]))}))}getTranslationObject(e){const t=this,n=Object.keys(e),s={},resolveTranslation=(e,s)=>{const i=s.reduce(((e,t)=>(Object.keys(t).forEach((t=>{e.includes(t)||e.push(t)})),e)),[]);for(const r of i){if(s.every((e=>"object"==typeof e[r])))e[r]={},resolveTranslation(e[r],s.map((e=>e[r])));else{const i=keyResolver(r);e[i]=s.map((e=>e[r])),Object.defineProperty(e,r,{value:function(...e){const s=t.currentLang||n[0];if(!s)return"";let r=this[i][n.indexOf(s)];return"string"==typeof r?r:"function"==typeof r?r(...e):i},configurable:!1,writable:!1})}}};return resolveTranslation(s,Object.values(e)),s}};l=s([(0,o.Injectable)(),(0,o.Initable)(),i("design:paramtypes",[c.AbstractStorage])],l),t.Translator=l},416:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},318:e=>{e.exports=require("@clairejs/core")},167:e=>{e.exports=require("axios")}},t={};var n=function __webpack_require__(n){var s=t[n];if(void 0!==s)return s.exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,__webpack_require__),i.exports}(341),s=exports;for(var i in n)s[i]=n[i];n.__esModule&&Object.defineProperty(s,"__esModule",{value:!0})})();
|
|
2
2
|
//# sourceMappingURL=index.js.map
|