cbcore-ts 1.0.21 → 1.0.25
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/compiledScripts/CBCore.d.ts +0 -10
- package/compiledScripts/CBCore.js +7 -18
- package/compiledScripts/CBCore.js.map +2 -2
- package/compiledScripts/CBDataInterfaces.d.ts +14 -14
- package/compiledScripts/CBLanguageService.js +2 -1
- package/compiledScripts/CBLanguageService.js.map +2 -2
- package/compiledScripts/CBSocketClient.js +6 -4
- package/compiledScripts/CBSocketClient.js.map +2 -2
- package/package.json +4 -4
- package/scripts/CBCore.ts +19 -129
- package/scripts/CBLanguageService.ts +1 -1
- package/scripts/CBSocketClient.ts +9 -7
|
@@ -38,16 +38,6 @@ export declare class CBCore extends UIObject {
|
|
|
38
38
|
set languageKey(languageKey: string);
|
|
39
39
|
get languageKey(): string;
|
|
40
40
|
didSetLanguageKey(): void;
|
|
41
|
-
get externalServiceIdentifier(): {
|
|
42
|
-
accessKey: string;
|
|
43
|
-
serviceID: string;
|
|
44
|
-
organizationID: string;
|
|
45
|
-
};
|
|
46
|
-
set externalServiceIdentifier(externalServiceIdentifier: {
|
|
47
|
-
accessKey: string;
|
|
48
|
-
serviceID: string;
|
|
49
|
-
organizationID: string;
|
|
50
|
-
});
|
|
51
41
|
reloadSocketConnection(): void;
|
|
52
42
|
callFunctionForEachSocketClient(functionToCall: () => void): void;
|
|
53
43
|
}
|
|
@@ -83,8 +83,7 @@ const _CBCore = class extends import_uicore_ts.UIObject {
|
|
|
83
83
|
} else if (previousValue != isUserLoggedIn) {
|
|
84
84
|
this.performFunctionWithDelay(0.01, function() {
|
|
85
85
|
import_uicore_ts.UIRoute.currentRoute.routeByRemovingComponentsOtherThanOnesNamed([
|
|
86
|
-
"settings"
|
|
87
|
-
"inquiry"
|
|
86
|
+
"settings"
|
|
88
87
|
]).apply();
|
|
89
88
|
this.broadcastMessageInRootViewTree({
|
|
90
89
|
name: _CBCore.broadcastEventName.userDidLogOut,
|
|
@@ -102,16 +101,14 @@ const _CBCore = class extends import_uicore_ts.UIObject {
|
|
|
102
101
|
});
|
|
103
102
|
}
|
|
104
103
|
get isUserLoggedIn() {
|
|
105
|
-
|
|
106
|
-
return result;
|
|
104
|
+
return localStorage.getItem("CBIsUserLoggedIn") == "true";
|
|
107
105
|
}
|
|
108
106
|
get userProfile() {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
} catch (error) {
|
|
107
|
+
const text = localStorage.getItem("CBUserProfile");
|
|
108
|
+
if (text) {
|
|
109
|
+
return JSON.parse(text);
|
|
113
110
|
}
|
|
114
|
-
return
|
|
111
|
+
return void 0;
|
|
115
112
|
}
|
|
116
113
|
set userProfile(userProfile) {
|
|
117
114
|
if ((0, import_uicore_ts.IS_NOT)(userProfile)) {
|
|
@@ -131,11 +128,10 @@ const _CBCore = class extends import_uicore_ts.UIObject {
|
|
|
131
128
|
this.didSetLanguageKey();
|
|
132
129
|
}
|
|
133
130
|
get languageKey() {
|
|
134
|
-
|
|
131
|
+
return (0, import_uicore_ts.FIRST)(localStorage.getItem("CBLanguageKey"), import_CBLanguageService.CBLanguageService.defaultLanguageKey).replace(
|
|
135
132
|
'"',
|
|
136
133
|
""
|
|
137
134
|
).replace('"', "");
|
|
138
|
-
return result;
|
|
139
135
|
}
|
|
140
136
|
didSetLanguageKey() {
|
|
141
137
|
import_uicore_ts.UIRoute.currentRoute.routeWithComponent(
|
|
@@ -144,13 +140,6 @@ const _CBCore = class extends import_uicore_ts.UIObject {
|
|
|
144
140
|
import_uicore_ts.YES
|
|
145
141
|
).applyByReplacingCurrentRouteInHistory();
|
|
146
142
|
}
|
|
147
|
-
get externalServiceIdentifier() {
|
|
148
|
-
const result = JSON.parse(localStorage.getItem("CBExternalServiceIdentifier"));
|
|
149
|
-
return result;
|
|
150
|
-
}
|
|
151
|
-
set externalServiceIdentifier(externalServiceIdentifier) {
|
|
152
|
-
localStorage.setItem("CBExternalServiceIdentifier", JSON.stringify(externalServiceIdentifier));
|
|
153
|
-
}
|
|
154
143
|
reloadSocketConnection() {
|
|
155
144
|
this.socketClient.socket.disconnect();
|
|
156
145
|
const messagesToBeSent = this.socketClient._messagesToBeSent.filter(function(messageItem, index, array) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../scripts/CBCore.ts"],
|
|
4
|
-
"sourcesContent": ["import {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
4
|
+
"sourcesContent": ["import { FIRST, IS, IS_NOT, nil, UICore, UILink, UIObject, UIRoute, UIViewBroadcastEvent, YES } from \"../../uicore-ts\"\nimport { CBLocalizedTextObject, CBUserProfile } from \"./CBDataInterfaces\"\nimport { CBLanguageService } from \"./CBLanguageService\"\nimport { CBServerClient } from \"./CBServerClient\"\nimport { CBSocketClient } from \"./CBSocketClient\"\n\n\ndeclare interface CBDialogViewShower {\n \n alert(text: string, dismissCallback?: Function): void\n \n localizedAlert(textObject: CBLocalizedTextObject, dismissCallback?: Function): void\n \n showActionIndicatorDialog(message: string, dismissCallback?: Function): void\n \n hideActionIndicatorDialog(): void\n \n}\n\n\ndeclare const CBCoreInitializerObject: any\n\n\nexport class CBCore extends UIObject {\n \n private static _sharedInstance: CBCore\n \n viewCores: UICore[] = []\n \n _isUserLoggedIn: boolean = nil\n _cachedMinimizedChatInquiryIDs: string[] = nil\n _socketClient: CBSocketClient = new CBSocketClient(this)\n _serverClient: CBServerClient = new CBServerClient(this)\n \n _functionsToCallForEachSocketClient: (() => void)[] = []\n \n _models: any[] = []\n \n dialogViewShowerClass: CBDialogViewShower = nil\n \n constructor() {\n \n super()\n \n if (CBCoreInitializerObject) {\n \n CBLanguageService.useStoredLanguageValues(CBCoreInitializerObject.languageValues)\n \n }\n \n \n window.addEventListener(\"storage\", function (this: CBCore, event: StorageEvent) {\n \n if (event.newValue == event.oldValue) {\n return\n }\n \n //console.log(\"\" + event.key + \" changed to \" + event.newValue + \" from \" + event.oldValue);\n \n \n if (event.key == \"CBLanguageKey\") {\n this.didSetLanguageKey()\n }\n \n }.bind(this))\n \n \n //this.checkIfUserIsAuthenticated();\n \n this.didSetLanguageKey()\n \n \n }\n \n \n static initIfNeededWithViewCore(viewCore: UICore) {\n \n CBCore.sharedInstance.viewCores.push(viewCore)\n \n }\n \n \n static get sharedInstance() {\n if (!CBCore._sharedInstance) {\n CBCore._sharedInstance = new CBCore()\n }\n return CBCore._sharedInstance\n }\n \n \n static broadcastEventName = {\n \n \"userDidLogIn\": \"UserDidLogIn\",\n \"userDidLogOut\": \"UserDidLogOut\"\n \n } as const\n \n broadcastMessageInRootViewTree(message: UIViewBroadcastEvent) {\n \n this.viewCores.everyElement.rootViewController.view.broadcastEventInSubtree(message)\n \n }\n \n \n get socketClient() {\n return this._socketClient\n }\n \n get serverClient() {\n return this._serverClient\n }\n \n \n set isUserLoggedIn(isUserLoggedIn: boolean) {\n const previousValue = this.isUserLoggedIn\n localStorage.setItem(\"CBIsUserLoggedIn\", \"\" + isUserLoggedIn)\n this.didSetIsUserLoggedIn(previousValue)\n }\n \n didSetIsUserLoggedIn(previousValue: boolean) {\n \n const isUserLoggedIn = this.isUserLoggedIn\n \n if (isUserLoggedIn && previousValue != isUserLoggedIn) {\n \n // Send message to views\n this.broadcastMessageInRootViewTree({\n name: CBCore.broadcastEventName.userDidLogIn,\n parameters: nil\n })\n \n this.updateLinkTargets()\n \n }\n else if (previousValue != isUserLoggedIn) {\n \n this.performFunctionWithDelay(0.01, function (this: CBCore) {\n \n UIRoute.currentRoute.routeByRemovingComponentsOtherThanOnesNamed([\n \"settings\"\n ]).apply()\n \n this.broadcastMessageInRootViewTree({\n name: CBCore.broadcastEventName.userDidLogOut,\n parameters: nil\n })\n \n this.updateLinkTargets()\n \n }.bind(this))\n \n }\n \n }\n \n private updateLinkTargets() {\n this.viewCores.everyElement.rootViewController.view.forEachViewInSubtree(function (view) {\n if (view instanceof UILink) {\n view.updateTarget()\n }\n })\n }\n \n get isUserLoggedIn() {\n return (localStorage.getItem(\"CBIsUserLoggedIn\") == \"true\")\n }\n \n \n get userProfile() {\n const text = localStorage.getItem(\"CBUserProfile\")\n if (text) {\n return JSON.parse(text) as CBUserProfile\n }\n return undefined\n }\n \n set userProfile(userProfile: CBUserProfile) {\n if (IS_NOT(userProfile)) {\n localStorage.removeItem(\"CBUserProfile\")\n }\n localStorage.setItem(\"CBUserProfile\", JSON.stringify(userProfile))\n this.didSetUserProfile()\n }\n \n didSetUserProfile() {\n this.isUserLoggedIn = IS(this.userProfile)\n }\n \n \n set languageKey(languageKey: string) {\n if (IS_NOT(languageKey)) {\n localStorage.removeItem(\"CBLanguageKey\")\n }\n localStorage.setItem(\"CBLanguageKey\", JSON.stringify(languageKey))\n this.didSetLanguageKey()\n }\n \n get languageKey() {\n return FIRST(localStorage.getItem(\"CBLanguageKey\"), CBLanguageService.defaultLanguageKey).replace(\n \"\\\"\",\n \"\"\n ).replace(\"\\\"\", \"\")\n }\n \n didSetLanguageKey() {\n UIRoute.currentRoute.routeWithComponent(\n \"settings\",\n { \"language\": this.languageKey },\n YES\n ).applyByReplacingCurrentRouteInHistory()\n }\n \n \n reloadSocketConnection() {\n \n // @ts-ignore\n this.socketClient.socket.disconnect()\n \n const messagesToBeSent = this.socketClient._messagesToBeSent.filter(function (messageItem, index, array) {\n \n return (!messageItem.isBoundToUserWithID || messageItem.isBoundToUserWithID ==\n CBCore.sharedInstance.userProfile._id)\n \n })\n \n this._socketClient = new CBSocketClient(this)\n this._socketClient._messagesToBeSent = messagesToBeSent\n \n const socketClient = this._socketClient\n \n this._models.forEach(function (model, index, array) {\n \n model.setSocketClient(socketClient)\n \n })\n \n this._functionsToCallForEachSocketClient.forEach(function (functionToCall, index, array) {\n \n functionToCall()\n \n })\n \n \n }\n \n \n callFunctionForEachSocketClient(functionToCall: () => void) {\n this._functionsToCallForEachSocketClient.push(functionToCall)\n functionToCall()\n }\n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type CBReferenceID = string;
|
|
2
2
|
export interface CBLanguageItem {
|
|
3
3
|
value: string;
|
|
4
4
|
languageKey: string;
|
|
@@ -86,8 +86,8 @@ export interface CBSubscription {
|
|
|
86
86
|
createdAt: Date;
|
|
87
87
|
updatedAt: Date;
|
|
88
88
|
}
|
|
89
|
-
export
|
|
90
|
-
export
|
|
89
|
+
export type CBUserProfilePublic = any;
|
|
90
|
+
export type CBUserProfile = any;
|
|
91
91
|
export interface SocketClientInterface {
|
|
92
92
|
[x: string]: SocketClientFunction<any, any>;
|
|
93
93
|
}
|
|
@@ -97,8 +97,8 @@ export interface SocketClientResult<ResultType> {
|
|
|
97
97
|
errorResult: any;
|
|
98
98
|
respondWithMessage: CBSocketMessageSendResponseFunction;
|
|
99
99
|
}
|
|
100
|
-
export
|
|
101
|
-
export
|
|
100
|
+
export type SocketClientFunction<MessageType, ResultType> = (messageData: MessageType, completionPolicy?: string, isUserBound?: boolean) => Promise<SocketClientResult<ResultType>>;
|
|
101
|
+
export type SocketClientNoMessageFunction<ResultType> = (messageData?: null, completionPolicy?: string, isUserBound?: boolean) => Promise<SocketClientResult<ResultType>>;
|
|
102
102
|
export interface CBSocketMultipleMessageObject<MessageDataType = any> {
|
|
103
103
|
key: string;
|
|
104
104
|
message: CBSocketMessage<MessageDataType>;
|
|
@@ -118,10 +118,10 @@ export interface CBSocketMessage<MessageDataType = any> {
|
|
|
118
118
|
export interface CBSocketMultipleMessage extends CBSocketMessage<CBSocketMultipleMessageObject[]> {
|
|
119
119
|
shouldGroupResponses: boolean;
|
|
120
120
|
}
|
|
121
|
-
export
|
|
122
|
-
export
|
|
123
|
-
export
|
|
124
|
-
export
|
|
121
|
+
export type CBSocketMessageSendResponseFunctionBase<ResponseMessageType> = (responseMessage: ResponseMessageType, completion?: CBSocketMessageCompletionFunction) => Promise<string>;
|
|
122
|
+
export type CBSocketMessageCompletionFunction = (responseMessage: any, respondWithMessage: CBSocketMessageSendResponseFunction) => void;
|
|
123
|
+
export type CBSocketMessageHandlerFunction<ResponseMessageType = any> = (message: any, respondWithMessage: CBSocketMessageSendResponseFunction<ResponseMessageType>) => void;
|
|
124
|
+
export type CBSocketMultipleMessagecompletionFunction = (responseMessages: any[], callcompletionFunctions: () => void) => void;
|
|
125
125
|
export interface CBSocketMessageSendResponseFunction<ResponseMessageType = any> extends CBSocketMessageSendResponseFunctionBase<ResponseMessageType> {
|
|
126
126
|
respondingToMainResponse: boolean;
|
|
127
127
|
excludeMessageFromAutomaticConnectionEvents: () => void;
|
|
@@ -147,16 +147,16 @@ export interface CBSocketHandshakeResponseMessage {
|
|
|
147
147
|
accepted: boolean;
|
|
148
148
|
userProfile?: CBUserProfile;
|
|
149
149
|
}
|
|
150
|
-
export
|
|
151
|
-
export
|
|
152
|
-
export
|
|
150
|
+
export type TypeWithoutKey<Type, Key> = Pick<Type, Exclude<keyof Type, Key>>;
|
|
151
|
+
export type TypeWithoutID<Type> = TypeWithoutKey<Type, "_id">;
|
|
152
|
+
export type Diff<T extends keyof any, U extends keyof any> = ({
|
|
153
153
|
[P in T]: P;
|
|
154
154
|
} & {
|
|
155
155
|
[P in U]: never;
|
|
156
156
|
} & {
|
|
157
157
|
[x: string]: never;
|
|
158
158
|
})[T];
|
|
159
|
-
export
|
|
160
|
-
export
|
|
159
|
+
export type Overwrite<T, U> = Pick<T, Diff<keyof T, keyof U>> & U;
|
|
160
|
+
export type RecursivePartial<T> = {
|
|
161
161
|
[P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object ? RecursivePartial<T[P]> : T[P];
|
|
162
162
|
};
|
|
@@ -53,7 +53,8 @@ const _CBLanguageService = class {
|
|
|
53
53
|
_CBLanguageService.updateCurrentLanguageKey();
|
|
54
54
|
}
|
|
55
55
|
static updateCurrentLanguageKey(route = import_uicore_ts.UIRoute.currentRoute) {
|
|
56
|
-
|
|
56
|
+
var _a, _b;
|
|
57
|
+
let result = (_b = (_a = route.componentWithName("settings")) == null ? void 0 : _a.parameters) == null ? void 0 : _b.language;
|
|
57
58
|
if ((0, import_uicore_ts.IS_NOT)(result)) {
|
|
58
59
|
result = _CBLanguageService.defaultLanguageKey;
|
|
59
60
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../scripts/CBLanguageService.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n FIRST_OR_NIL,\n IS,\n IS_DEFINED,\n IS_NOT,\n nil,\n UICore,\n UILanguageService,\n UILocalizedTextObject,\n UIRoute,\n UIView\n} from \"uicore-ts\"\nimport { CBCore } from \"./CBCore\"\nimport { CBLocalizedTextObject } from \"./CBDataInterfaces\"\n\n\nexport interface ParticularLanguageValues {\n \n [x: string]: string\n \n topBarTitle: string;\n selectLanguageTitle: string;\n languageNameShort: string;\n leftBarTitle: string;\n languageName: string\n \n}\n\n\nexport interface LanguageValues {\n \n [x: string]: ParticularLanguageValues\n \n en: ParticularLanguageValues\n est: ParticularLanguageValues\n \n}\n\n\nexport class CBLanguageService implements UILanguageService {\n \n static _currentLanguageKey: string\n \n static languageValues: LanguageValues = {\n \n en: {\n \n languageName: \"English\",\n languageNameShort: \"ENG\",\n \n topBarTitle: \"UICore application\",\n \n selectLanguageTitle: \"Select language\",\n leftBarTitle: \"Title\"\n \n \n },\n est: {\n \n languageName: \"Eesti keel\",\n languageNameShort: \"EST\",\n \n topBarTitle: \"UICore rakendus\",\n \n selectLanguageTitle: \"Vali keel\",\n leftBarTitle: \"Pealkiri\"\n \n \n }\n \n \n \n \n }\n \n static languages = JSON.parse(JSON.stringify(CBLanguageService.languageValues))\n \n static useStoredLanguageValues(values = {}) {\n \n const result = JSON.parse(JSON.stringify(CBLanguageService.languageValues))\n .objectByCopyingValuesRecursivelyFromObject(\n values) as any\n \n if (JSON.stringify(result) != JSON.stringify(CBLanguageService.languages)) {\n \n CBLanguageService.languages = result\n \n CBLanguageService.broadcastLanguageChangeEvent()\n \n }\n \n }\n \n \n static broadcastLanguageChangeEvent(view?: UIView) {\n \n view = view as any || CBCore.sharedInstance.viewCores.everyElement.rootViewController.view.rootView as any\n \n view?.broadcastEventInSubtree({\n name: UIView.broadcastEventName.LanguageChanged,\n parameters: {}\n })\n \n }\n \n static get defaultLanguageKey() {\n \n // @ts-ignore\n return (CBCoreInitializerObject.defaultLanguageKey || \"en\")\n \n }\n \n static get currentLanguageKey() {\n \n if (!CBLanguageService._currentLanguageKey) {\n \n CBLanguageService.updateCurrentLanguageKey()\n \n }\n \n return CBLanguageService._currentLanguageKey\n \n }\n \n updateCurrentLanguageKey() {\n \n CBLanguageService.updateCurrentLanguageKey()\n \n }\n \n static updateCurrentLanguageKey(route = UIRoute.currentRoute) {\n \n let result = route.componentWithName(\"settings\")
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAWO;AACP,oBAAuB;AA2BhB,MAAM,qBAAN,MAAqD;AAAA,EAsCxD,OAAO,wBAAwB,SAAS,CAAC,GAAG;AAExC,UAAM,SAAS,KAAK,MAAM,KAAK,UAAU,mBAAkB,cAAc,CAAC,EACrE;AAAA,MACG;AAAA,IAAM;AAEd,QAAI,KAAK,UAAU,MAAM,KAAK,KAAK,UAAU,mBAAkB,SAAS,GAAG;AAEvE,yBAAkB,YAAY;AAE9B,yBAAkB,6BAA6B;AAAA,IAEnD;AAAA,EAEJ;AAAA,EAGA,OAAO,6BAA6B,MAAe;AAE/C,WAAO,QAAe,qBAAO,eAAe,UAAU,aAAa,mBAAmB,KAAK;AAE3F,iCAAM,wBAAwB;AAAA,MAC1B,MAAM,wBAAO,mBAAmB;AAAA,MAChC,YAAY,CAAC;AAAA,IACjB;AAAA,EAEJ;AAAA,EAEA,WAAW,qBAAqB;AAG5B,WAAQ,wBAAwB,sBAAsB;AAAA,EAE1D;AAAA,EAEA,WAAW,qBAAqB;AAE5B,QAAI,CAAC,mBAAkB,qBAAqB;AAExC,yBAAkB,yBAAyB;AAAA,IAE/C;AAEA,WAAO,mBAAkB;AAAA,EAE7B;AAAA,EAEA,2BAA2B;AAEvB,uBAAkB,yBAAyB;AAAA,EAE/C;AAAA,EAEA,OAAO,yBAAyB,QAAQ,yBAAQ,cAAc;
|
|
4
|
+
"sourcesContent": ["import {\n FIRST_OR_NIL,\n IS,\n IS_DEFINED,\n IS_NOT,\n nil,\n UICore,\n UILanguageService,\n UILocalizedTextObject,\n UIRoute,\n UIView\n} from \"uicore-ts\"\nimport { CBCore } from \"./CBCore\"\nimport { CBLocalizedTextObject } from \"./CBDataInterfaces\"\n\n\nexport interface ParticularLanguageValues {\n \n [x: string]: string\n \n topBarTitle: string;\n selectLanguageTitle: string;\n languageNameShort: string;\n leftBarTitle: string;\n languageName: string\n \n}\n\n\nexport interface LanguageValues {\n \n [x: string]: ParticularLanguageValues\n \n en: ParticularLanguageValues\n est: ParticularLanguageValues\n \n}\n\n\nexport class CBLanguageService implements UILanguageService {\n \n static _currentLanguageKey: string\n \n static languageValues: LanguageValues = {\n \n en: {\n \n languageName: \"English\",\n languageNameShort: \"ENG\",\n \n topBarTitle: \"UICore application\",\n \n selectLanguageTitle: \"Select language\",\n leftBarTitle: \"Title\"\n \n \n },\n est: {\n \n languageName: \"Eesti keel\",\n languageNameShort: \"EST\",\n \n topBarTitle: \"UICore rakendus\",\n \n selectLanguageTitle: \"Vali keel\",\n leftBarTitle: \"Pealkiri\"\n \n \n }\n \n \n \n \n }\n \n static languages = JSON.parse(JSON.stringify(CBLanguageService.languageValues))\n \n static useStoredLanguageValues(values = {}) {\n \n const result = JSON.parse(JSON.stringify(CBLanguageService.languageValues))\n .objectByCopyingValuesRecursivelyFromObject(\n values) as any\n \n if (JSON.stringify(result) != JSON.stringify(CBLanguageService.languages)) {\n \n CBLanguageService.languages = result\n \n CBLanguageService.broadcastLanguageChangeEvent()\n \n }\n \n }\n \n \n static broadcastLanguageChangeEvent(view?: UIView) {\n \n view = view as any || CBCore.sharedInstance.viewCores.everyElement.rootViewController.view.rootView as any\n \n view?.broadcastEventInSubtree({\n name: UIView.broadcastEventName.LanguageChanged,\n parameters: {}\n })\n \n }\n \n static get defaultLanguageKey() {\n \n // @ts-ignore\n return (CBCoreInitializerObject.defaultLanguageKey || \"en\")\n \n }\n \n static get currentLanguageKey() {\n \n if (!CBLanguageService._currentLanguageKey) {\n \n CBLanguageService.updateCurrentLanguageKey()\n \n }\n \n return CBLanguageService._currentLanguageKey\n \n }\n \n updateCurrentLanguageKey() {\n \n CBLanguageService.updateCurrentLanguageKey()\n \n }\n \n static updateCurrentLanguageKey(route = UIRoute.currentRoute) {\n \n let result = route.componentWithName(\"settings\")?.parameters?.language\n \n if (IS_NOT(result)) {\n \n result = CBLanguageService.defaultLanguageKey\n \n }\n \n const isChanged = (result != CBLanguageService._currentLanguageKey)\n \n CBLanguageService._currentLanguageKey = result\n \n if (isChanged) {\n \n CBCore.sharedInstance.languageKey = result\n \n CBLanguageService.broadcastLanguageChangeEvent()\n \n }\n \n }\n \n get currentLanguageKey() {\n \n const result = CBLanguageService.currentLanguageKey\n \n return result\n \n }\n \n \n \n static stringForKey(\n key: string,\n languageKey: string,\n defaultString: string,\n parameters?: { [x: string]: string | UILocalizedTextObject; }\n ) {\n \n var result: string\n \n if (IS(key) && CBLanguageService.languages[languageKey] &&\n IS_DEFINED(CBLanguageService.languages[languageKey][key])) {\n \n result = CBLanguageService.languages[languageKey][key]\n \n }\n else {\n \n result = defaultString\n \n }\n \n if (IS(parameters)) {\n \n const parameterKeys = Object.keys(parameters)\n \n parameterKeys.forEach(function (key, index, array) {\n \n const keyString = \"%\" + key + \"%\"\n \n const parameter = parameters[key]\n \n var parameterString\n \n if (parameter instanceof Object) {\n \n parameterString = UICore.languageService.stringForCurrentLanguage(parameter as UILocalizedTextObject)\n \n }\n else {\n \n parameterString = parameter\n \n }\n \n \n result = result.replace(new RegExp(keyString, \"g\"), parameterString)\n \n })\n \n }\n \n return result\n \n }\n \n stringForKey(\n key: string,\n languageKey: string,\n defaultString: string,\n parameters?: { [x: string]: string | UILocalizedTextObject; }\n ) {\n \n \n return CBLanguageService.stringForKey(key, languageKey, defaultString, parameters)\n \n \n }\n \n \n static localizedTextObjectForKey(\n key: string,\n defaultString = key,\n parameters?: { [x: string]: string | UILocalizedTextObject; }\n ) {\n \n const result = {}\n \n CBLanguageService.languages.forEach(function (languageObject: any, languageKey: string) {\n \n // @ts-ignore\n result[languageKey] = CBLanguageService.stringForKey(key, languageKey, defaultString, parameters)\n \n })\n \n return result\n \n }\n \n localizedTextObjectForKey(\n key: string,\n defaultString?: string,\n parameters?: { [x: string]: string | UILocalizedTextObject; }\n ) {\n \n const result = CBLanguageService.localizedTextObjectForKey(key, defaultString, parameters)\n \n return result\n \n }\n \n \n static localizedTextObjectForText(text: string) {\n \n if (IS_NOT(text)) {\n \n return nil\n \n }\n \n const result = {\n \n [CBLanguageService.defaultLanguageKey]: text\n \n }\n \n return result\n \n }\n \n localizedTextObjectForText(text: string) {\n \n const result = CBLanguageService.localizedTextObjectForText(text)\n \n return result\n \n }\n \n \n static stringForCurrentLanguage(localizedTextObject: CBLocalizedTextObject | string) {\n \n if (!CBLanguageService || !localizedTextObject) {\n \n const asd = 1\n \n }\n \n if (localizedTextObject === \"\" + localizedTextObject) {\n \n return localizedTextObject\n \n }\n \n localizedTextObject = FIRST_OR_NIL(localizedTextObject)\n \n // @ts-ignore\n let result: string = localizedTextObject[CBLanguageService.currentLanguageKey]\n \n if (IS_NOT(result)) {\n \n // @ts-ignore\n result = localizedTextObject[CBLanguageService.defaultLanguageKey]\n \n }\n \n if (IS_NOT(result)) {\n \n // @ts-ignore\n result = localizedTextObject[\"en\"]\n \n }\n \n if (IS_NOT(result)) {\n \n result = \"\"\n \n }\n \n return result\n \n }\n \n stringForCurrentLanguage(localizedTextObject: CBLocalizedTextObject) {\n \n return CBLanguageService.stringForCurrentLanguage(localizedTextObject)\n \n }\n \n \n \n \n}\n\n\nUICore.languageService = CBLanguageService\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["key"]
|
|
7
7
|
}
|
|
@@ -46,7 +46,8 @@ const _CBSocketClient = class extends import_uicore_ts.UIObject {
|
|
|
46
46
|
this._callbackHolder = new import_CBSocketCallbackHolder.CBSocketCallbackHolder(this);
|
|
47
47
|
this._core = core;
|
|
48
48
|
this.socket.on("connect", () => {
|
|
49
|
-
|
|
49
|
+
var _a;
|
|
50
|
+
console.log("Socket.io connected to server. clientID = ", this.socket, " socketID = ", this.socket);
|
|
50
51
|
var instanceIdentifier = localStorage.getItem("InstanceIdentifier");
|
|
51
52
|
if ((0, import_uicore_ts.IS_NOT)(instanceIdentifier)) {
|
|
52
53
|
instanceIdentifier = (0, import_uicore_ts.MAKE_ID)();
|
|
@@ -54,7 +55,7 @@ const _CBSocketClient = class extends import_uicore_ts.UIObject {
|
|
|
54
55
|
}
|
|
55
56
|
const handshakeMessage = {
|
|
56
57
|
accessToken: void 0,
|
|
57
|
-
userID: this._core.userProfile._id,
|
|
58
|
+
userID: (_a = this._core.userProfile) == null ? void 0 : _a._id,
|
|
58
59
|
inquiryAccessKey: void 0,
|
|
59
60
|
instanceIdentifier
|
|
60
61
|
};
|
|
@@ -66,6 +67,7 @@ const _CBSocketClient = class extends import_uicore_ts.UIObject {
|
|
|
66
67
|
this.socket.on(
|
|
67
68
|
"CBSocketHandshakeResponseMessage",
|
|
68
69
|
(message) => {
|
|
70
|
+
var _a;
|
|
69
71
|
this._isConnectionEstablished = message.messageData.accepted;
|
|
70
72
|
if (!message.messageData.accepted) {
|
|
71
73
|
console.log("SocketIO connection failed.");
|
|
@@ -77,13 +79,13 @@ const _CBSocketClient = class extends import_uicore_ts.UIObject {
|
|
|
77
79
|
} else {
|
|
78
80
|
console.log("SocketIO connection handshake completed.");
|
|
79
81
|
this._callbackHolder = new import_CBSocketCallbackHolder.CBSocketCallbackHolder(this, this._callbackHolder);
|
|
80
|
-
core.userProfile = message.messageData.userProfile;
|
|
82
|
+
core.userProfile = (_a = message.messageData.userProfile) != null ? _a : {};
|
|
81
83
|
this.sendUnsentMessages();
|
|
82
84
|
}
|
|
83
85
|
}
|
|
84
86
|
);
|
|
85
87
|
this.socket.on("disconnect", () => {
|
|
86
|
-
console.log("Socket.io disconnected from server. clientID = "
|
|
88
|
+
console.log("Socket.io disconnected from server. clientID = ", this.socket);
|
|
87
89
|
this._isConnectionEstablished = import_uicore_ts.NO;
|
|
88
90
|
this._callbackHolder.isValid = import_uicore_ts.NO;
|
|
89
91
|
this._callbackHolder.triggerDisconnectHandlers();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../scripts/CBSocketClient.ts"],
|
|
4
|
-
"sourcesContent": ["import { io, Socket } from \"socket.io-client\"\nimport { FIRST_OR_NIL, IF, IS, IS_NIL, IS_NOT, MAKE_ID, nil, NO, RETURNER, UIObject, YES } from \"../../uicore-ts\"\nimport { CBCore } from \"./CBCore\"\nimport {\n CBSocketHandshakeInitMessage,\n CBSocketHandshakeResponseMessage,\n CBSocketMessage,\n CBSocketMessageCompletionFunction,\n CBSocketMessageHandlerFunction,\n CBSocketMessageSendResponseFunction,\n CBSocketMultipleMessage,\n CBSocketMultipleMessagecompletionFunction,\n CBSocketMultipleMessageObject,\n SocketClientInterface\n} from \"./CBDataInterfaces\"\nimport { CBSocketCallbackHolder } from \"./CBSocketCallbackHolder\"\n\n\ndeclare interface CBSocketClientMessageToBeSent {\n \n key: string;\n message: any;\n \n inResponseToMessage: CBSocketMessage<any>;\n keepWaitingForResponses: boolean;\n \n isBoundToUserWithID: string;\n \n completionPolicy: string;\n \n didSendFunction?: () => void;\n \n completion: CBSocketMessageCompletionFunction;\n \n}\n\n\ndeclare interface CBSocketClientErrorMessage {\n \n _isCBSocketErrorMessage: boolean;\n \n messageData: any;\n \n}\n\n\ntype FilterConditionally<Source, Condition> = Pick<Source, { [K in keyof Source]: Source[K] extends Condition ? K : never }[keyof Source]>;\n\n\nexport function IS_SOCKET_ERROR(object: any): object is CBSocketClientErrorMessage {\n \n const result = (IS(object) && object._isCBSocketErrorMessage)\n \n return result\n \n}\n\nexport function IS_NOT_SOCKET_ERROR(object: any) {\n \n return !IS_SOCKET_ERROR(object)\n \n}\n\n\nexport class CBSocketClient extends UIObject {\n \n _socket: Socket = io()\n _isConnectionEstablished = NO\n \n _collectMessagesToSendLater = NO\n \n _messagesToBeSent: CBSocketClientMessageToBeSent[] = []\n \n static _sharedInstance: CBSocketClient\n \n _core: CBCore\n \n _subscribedKeys: {\n [x: string]: boolean\n } = {}\n \n _callbackHolder = new CBSocketCallbackHolder(this)\n \n static responseMessageKey = \"CBSocketResponseMessage\"\n static multipleMessageKey = \"CBSocketMultipleMessage\"\n \n \n static disconnectionMessage: CBSocketClientErrorMessage = {\n \n _isCBSocketErrorMessage: YES,\n \n messageData: \"Server disconnected\"\n \n }\n \n \n constructor(core: CBCore) {\n \n super()\n \n this._core = core\n \n \n this.socket.on(\"connect\", () => {\n \n console.log(\"Socket.io connected to server. clientID = \" + this.socket + \", socketID = \" + this.socket)\n \n var instanceIdentifier = localStorage.getItem(\"InstanceIdentifier\")\n \n if (IS_NOT(instanceIdentifier)) {\n \n instanceIdentifier = MAKE_ID()\n localStorage.setItem(\"InstanceIdentifier\", instanceIdentifier)\n \n }\n \n const handshakeMessage: CBSocketHandshakeInitMessage = {\n \n accessToken: undefined,\n userID: this._core.userProfile._id,\n \n inquiryAccessKey: undefined,\n \n instanceIdentifier: instanceIdentifier\n \n }\n \n this.socket.emit(\"CBSocketHandshakeInitMessage\", {\n \n identifier: MAKE_ID(),\n messageData: handshakeMessage\n \n })\n \n \n })\n \n \n this.socket.on(\n \"CBSocketHandshakeResponseMessage\",\n (message: CBSocketMessage<CBSocketHandshakeResponseMessage>) => {\n \n \n this._isConnectionEstablished = message.messageData.accepted\n \n if (!message.messageData.accepted) {\n \n console.log(\"SocketIO connection failed.\")\n \n this._core.dialogViewShowerClass.alert(\n \"Failed to establish connection to server.\",\n () => {\n }\n )\n \n }\n else {\n \n console.log(\"SocketIO connection handshake completed.\")\n \n this._callbackHolder = new CBSocketCallbackHolder(this, this._callbackHolder)\n \n core.userProfile = message.messageData.userProfile\n \n this.sendUnsentMessages()\n \n }\n \n \n }\n )\n \n \n this.socket.on(\"disconnect\", () => {\n \n console.log(\"Socket.io disconnected from server. clientID = \" + this.socket + \".\")\n \n this._isConnectionEstablished = NO\n \n this._callbackHolder.isValid = NO\n \n this._callbackHolder.triggerDisconnectHandlers()\n \n \n })\n \n \n this.socket.on(\"CBPerformReconnect\", (message?: string) => {\n \n console.log(\"Performing socket reconnection.\")\n \n core.reloadSocketConnection()\n \n if (message) {\n \n this._core.dialogViewShowerClass.alert(message)\n \n }\n \n \n })\n \n \n this._socket.on(\n CBSocketClient.responseMessageKey,\n (message: CBSocketMessage<any>) => {\n \n this.didReceiveMessageForKey(CBSocketClient.responseMessageKey, message)\n \n }\n )\n \n this._socket.on(\n CBSocketClient.multipleMessageKey,\n (message: CBSocketMessage<CBSocketMultipleMessageObject[]>) => {\n \n console.log(\"Received \" + message.messageData.length + \" messages.\")\n this.didReceiveMessageForKey(CBSocketClient.multipleMessageKey, message)\n \n }\n )\n \n \n }\n \n \n get socket() {\n return this._socket\n }\n \n \n cancelUnsentMessages(messagesToCancel: CBSocketClientMessageToBeSent[]) {\n \n this._messagesToBeSent = this._messagesToBeSent.filter((\n messageObject: CBSocketClientMessageToBeSent,\n index: number,\n array: CBSocketClientMessageToBeSent[]\n ) => !messagesToCancel.contains(messageObject))\n \n }\n \n \n sendUnsentMessages(receiveResponsesTogether = NO, completion?: CBSocketMultipleMessagecompletionFunction) {\n \n if (!this._isConnectionEstablished || this._collectMessagesToSendLater) {\n \n return\n \n }\n \n const groupedMessages: CBSocketMultipleMessageObject<any>[] = []\n const didSendFunctions: (() => void)[] = []\n \n \n this._messagesToBeSent.copy().forEach((messageToBeSentObject: CBSocketClientMessageToBeSent) => {\n \n if (this._isConnectionEstablished) {\n \n var message = messageToBeSentObject.message\n if (IS_NOT(message)) {\n message = \"\"\n }\n \n const identifier = MAKE_ID()\n \n const completion = messageToBeSentObject.completion\n \n const messageObject: CBSocketMessage<any> = {\n \n messageData: message,\n identifier: identifier,\n keepWaitingForResponses: messageToBeSentObject.keepWaitingForResponses,\n inResponseToIdentifier: messageToBeSentObject.inResponseToMessage.identifier,\n completionPolicy: messageToBeSentObject.completionPolicy\n \n }\n \n const shouldSendMessage = this._callbackHolder.socketShouldSendMessage(\n messageToBeSentObject.key,\n messageObject,\n messageToBeSentObject.completionPolicy,\n completion\n )\n \n if (shouldSendMessage) {\n \n \n groupedMessages.push({\n \n key: messageToBeSentObject.key,\n message: messageObject\n \n })\n \n \n }\n \n didSendFunctions.push(messageToBeSentObject.didSendFunction!)\n \n \n }\n \n })\n \n \n this._messagesToBeSent = []\n \n if (IS_NOT(groupedMessages.length)) {\n \n return\n \n }\n \n if (groupedMessages.length == 1) {\n \n console.log(\"sending 1 unsent message.\")\n \n }\n else {\n \n console.log(\"Sending \" + groupedMessages.length + \" unsent messages.\")\n \n }\n \n \n const messageObject: CBSocketMultipleMessage = {\n \n messageData: groupedMessages,\n identifier: MAKE_ID(),\n completionPolicy: CBSocketClient.completionPolicy.all,\n \n shouldGroupResponses: receiveResponsesTogether\n \n }\n \n //if (receiveResponsesTogether) {\n \n this._callbackHolder.socketWillSendMultipleMessage(messageObject, completion)\n \n //}\n \n this.socket.emit(CBSocketClient.multipleMessageKey, messageObject)\n \n \n didSendFunctions.forEach((didSendFunction, index, array) => {\n didSendFunction()\n })\n \n }\n \n \n static completionPolicy = {\n \n \"all\": \"all\",\n \"allDifferent\": \"allDifferent\",\n \"first\": \"first\",\n \"last\": \"last\",\n \"firstAndLast\": \"firstAndLast\",\n \"firstAndLastIfDifferent\": \"firstAndLastIfDifferent\",\n \"directOnly\": \"directOnly\",\n \"firstOnly\": \"firstOnly\",\n \"storedOrFirst\": \"storedOrFirst\"\n \n } as const\n \n \n sendUserBoundMessageForKeyWithPolicy(\n key: keyof SocketClientInterface,\n message: any,\n completionPolicy: keyof typeof CBSocketClient.completionPolicy,\n completion?: CBSocketMessageCompletionFunction\n ) {\n \n \n this._sendMessageForKey(key as string, message, undefined, NO, completionPolicy, YES, nil, completion)\n \n }\n \n sendUserBoundMessageForKey(\n key: keyof SocketClientInterface,\n message: any,\n completion?: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(key as string, message, undefined, NO, undefined, YES, nil, completion)\n \n }\n \n sendMessageForKeyWithPolicy(\n key: keyof SocketClientInterface,\n message: any,\n completionPolicy: keyof typeof CBSocketClient.completionPolicy,\n completion?: CBSocketMessageCompletionFunction\n ) {\n \n \n this._sendMessageForKey(key as string, message, undefined, NO, completionPolicy, NO, nil, completion)\n \n }\n \n sendMessageForKey(key: keyof SocketClientInterface, message: any, completion?: CBSocketMessageCompletionFunction) {\n \n this._sendMessageForKey(key as string, message, undefined, NO, undefined, NO, nil, completion)\n \n }\n \n \n resultForMessageForKey(\n key: keyof SocketClientInterface,\n message: any,\n completionPolicy?: keyof typeof CBSocketClient.completionPolicy,\n isUserBound = NO\n ) {\n \n const result = new Promise<{\n \n responseMessage: any,\n result: any,\n errorResult: any,\n \n respondWithMessage: CBSocketMessageSendResponseFunction\n \n }>((resolve, reject) => {\n \n this._sendMessageForKey(\n key as string,\n message,\n undefined,\n NO,\n completionPolicy,\n isUserBound,\n nil,\n (responseMessage, respondWithMessage) => resolve({\n \n responseMessage: responseMessage,\n result: IF(IS_NOT_SOCKET_ERROR(responseMessage))(() => responseMessage).ELSE(RETURNER(undefined)),\n errorResult: IF(IS_SOCKET_ERROR(responseMessage))(() => responseMessage).ELSE(RETURNER(undefined)),\n \n respondWithMessage: respondWithMessage\n \n })\n )\n \n })\n \n return result\n \n }\n \n \n _sendMessageForKey(\n key: string,\n message: any,\n inResponseToMessage: CBSocketMessage<any> = {} as any,\n keepMessageConnectionOpen = NO,\n completionPolicy: keyof typeof CBSocketClient.completionPolicy = CBSocketClient.completionPolicy.directOnly,\n isUserBound = NO,\n didSendFunction: () => void = nil,\n completion: CBSocketMessageCompletionFunction = nil\n ) {\n \n if (IS_NIL(message)) {\n \n message = \"\"\n \n }\n \n if (this._isConnectionEstablished && !this._collectMessagesToSendLater) {\n \n const identifier = MAKE_ID()\n \n const messageObject: CBSocketMessage<any> = {\n \n messageData: message,\n identifier: identifier,\n keepWaitingForResponses: keepMessageConnectionOpen,\n inResponseToIdentifier: inResponseToMessage.identifier,\n completionPolicy: completionPolicy\n \n }\n \n const shouldSendMessage = this._callbackHolder.socketShouldSendMessage(\n key,\n messageObject,\n completionPolicy,\n completion\n )\n \n if (shouldSendMessage) {\n \n this.socket.emit(key, messageObject)\n \n }\n \n didSendFunction()\n \n }\n else {\n \n this._messagesToBeSent.push({\n \n key: key,\n message: message,\n inResponseToMessage: inResponseToMessage,\n keepWaitingForResponses: keepMessageConnectionOpen,\n completionPolicy: completionPolicy,\n isBoundToUserWithID: IF(isUserBound)(RETURNER(FIRST_OR_NIL(CBCore.sharedInstance.userProfile._id)))(),\n didSendFunction: didSendFunction,\n completion: completion\n \n })\n \n return this._messagesToBeSent.lastElement\n \n }\n \n }\n \n \n sendMessagesAsGroup<FunctionReturnType extends object>(functionToCall: () => FunctionReturnType) {\n \n const collectMessagesToSendLater = this._collectMessagesToSendLater\n \n this._collectMessagesToSendLater = YES\n \n var result = functionToCall()\n \n this._collectMessagesToSendLater = collectMessagesToSendLater\n \n this.sendUnsentMessages()\n \n return result\n \n }\n \n sendAndReceiveMessagesAsGroup<FunctionReturnType extends object>(\n functionToCall: () => FunctionReturnType,\n completion?: CBSocketMultipleMessagecompletionFunction\n ) {\n \n const collectMessagesToSendLater = this._collectMessagesToSendLater\n \n this._collectMessagesToSendLater = YES\n \n var result = functionToCall()\n \n this._collectMessagesToSendLater = collectMessagesToSendLater\n \n this.sendUnsentMessages(YES, completion)\n \n return result\n \n }\n \n \n didReceiveMessageForKey(key: string, message: CBSocketMessage<any>) {\n \n \n const sendResponseFunction: CBSocketMessageSendResponseFunction = function (\n this: CBSocketClient,\n responseMessage: any,\n completion: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(\n CBSocketClient.responseMessageKey,\n responseMessage,\n message,\n NO,\n undefined,\n NO,\n nil,\n completion\n )\n \n }.bind(this) as any\n \n sendResponseFunction.sendIntermediateResponse = function (\n this: CBSocketClient,\n updateMessage: any,\n completion: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(\n CBSocketClient.responseMessageKey,\n updateMessage,\n message,\n YES,\n undefined,\n NO,\n nil,\n completion\n )\n \n }.bind(this)\n \n const sendUserBoundResponseFunction: CBSocketMessageSendResponseFunction = function (\n this: CBSocketClient,\n responseMessage: any,\n completion: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(\n CBSocketClient.responseMessageKey,\n responseMessage,\n message,\n NO,\n undefined,\n YES,\n nil,\n completion\n )\n \n }.bind(this) as any\n \n sendUserBoundResponseFunction.sendIntermediateResponse = function (\n this: CBSocketClient,\n updateMessage: any,\n completion: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(\n CBSocketClient.responseMessageKey,\n updateMessage,\n message,\n YES,\n undefined,\n YES,\n nil,\n completion\n )\n \n }.bind(this)\n \n if (IS_SOCKET_ERROR(message.messageData)) {\n \n console.log(\"CBSocketClient did receive error message.\")\n \n console.log(message.messageData)\n \n \n }\n \n \n this._callbackHolder.socketDidReceiveMessageForKey(key, message, sendResponseFunction)\n \n }\n \n \n addTargetForMessagesForKeys(keys: string[], handlerFunction: CBSocketMessageHandlerFunction) {\n keys.forEach(function (this: CBSocketClient, key: string, index: number, array: string[]) {\n this.addTargetForMessagesForKey(key, handlerFunction)\n }.bind(this))\n }\n \n \n addTargetForMessagesForKey(key: string, handlerFunction: CBSocketMessageHandlerFunction) {\n \n this._callbackHolder.registerHandler(key, handlerFunction)\n \n if (IS_NOT(this._subscribedKeys[key])) {\n \n this._socket.on(key, function (this: CBSocketClient, message: CBSocketMessage<any>) {\n \n this.didReceiveMessageForKey(key, message)\n \n }.bind(this))\n \n this._subscribedKeys[key] = true\n \n }\n \n \n }\n \n addTargetForOneMessageForKey(key: string, handlerFunction: CBSocketMessageHandlerFunction) {\n \n this._callbackHolder.registerOnetimeHandler(key, handlerFunction)\n \n if (IS_NOT(this._subscribedKeys[key])) {\n \n this._socket.on(key, function (this: CBSocketClient, message: CBSocketMessage<any>) {\n \n this.didReceiveMessageForKey(key, message)\n \n }.bind(this))\n \n this._subscribedKeys[key] = true\n \n }\n \n \n }\n \n \n}\n\n\nexport const SocketClient: SocketClientInterface = new Proxy({ \"name\": \"SocketClient\" }, {\n \n get(target, key) {\n \n const result = (\n messageData: any,\n completionPolicy: string | undefined,\n isUserBound: boolean | undefined\n ) => CBCore.sharedInstance.socketClient.resultForMessageForKey(\n key as string,\n messageData,\n completionPolicy as any,\n isUserBound\n )\n \n \n return result\n \n }\n \n}) as any\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,uBAAgG;AAChG,oBAAuB;AAavB,oCAAuC;AAkChC,SAAS,gBAAgB,QAAmD;AAE/E,QAAM,aAAU,qBAAG,MAAM,KAAK,OAAO;AAErC,SAAO;AAEX;AAEO,SAAS,oBAAoB,QAAa;AAE7C,SAAO,CAAC,gBAAgB,MAAM;AAElC;AAGO,MAAM,kBAAN,cAA6B,0BAAS;AAAA,EAgCzC,YAAY,MAAc;AAEtB,UAAM;AAhCV,uBAAkB,kBAAG;AACrB,oCAA2B;AAE3B,uCAA8B;AAE9B,6BAAqD,CAAC;AAMtD,2BAEI,CAAC;AAEL,2BAAkB,IAAI,qDAAuB,IAAI;AAmB7C,SAAK,QAAQ;AAGb,SAAK,OAAO,GAAG,WAAW,MAAM;
|
|
4
|
+
"sourcesContent": ["import { io, Socket } from \"socket.io-client\"\nimport { FIRST_OR_NIL, IF, IS, IS_NIL, IS_NOT, MAKE_ID, nil, NO, RETURNER, UIObject, YES } from \"../../uicore-ts\"\nimport { CBCore } from \"./CBCore\"\nimport {\n CBSocketHandshakeInitMessage,\n CBSocketHandshakeResponseMessage,\n CBSocketMessage,\n CBSocketMessageCompletionFunction,\n CBSocketMessageHandlerFunction,\n CBSocketMessageSendResponseFunction,\n CBSocketMultipleMessage,\n CBSocketMultipleMessagecompletionFunction,\n CBSocketMultipleMessageObject,\n SocketClientInterface\n} from \"./CBDataInterfaces\"\nimport { CBSocketCallbackHolder } from \"./CBSocketCallbackHolder\"\n\n\ndeclare interface CBSocketClientMessageToBeSent {\n \n key: string;\n message: any;\n \n inResponseToMessage: CBSocketMessage<any>;\n keepWaitingForResponses: boolean;\n \n isBoundToUserWithID: string;\n \n completionPolicy: string;\n \n didSendFunction?: () => void;\n \n completion: CBSocketMessageCompletionFunction;\n \n}\n\n\ndeclare interface CBSocketClientErrorMessage {\n \n _isCBSocketErrorMessage: boolean;\n \n messageData: any;\n \n}\n\n\ntype FilterConditionally<Source, Condition> = Pick<Source, { [K in keyof Source]: Source[K] extends Condition ? K : never }[keyof Source]>;\n\n\nexport function IS_SOCKET_ERROR(object: any): object is CBSocketClientErrorMessage {\n \n const result = (IS(object) && object._isCBSocketErrorMessage)\n \n return result\n \n}\n\nexport function IS_NOT_SOCKET_ERROR(object: any) {\n \n return !IS_SOCKET_ERROR(object)\n \n}\n\n\nexport class CBSocketClient extends UIObject {\n \n _socket: Socket = io()\n _isConnectionEstablished = NO\n \n _collectMessagesToSendLater = NO\n \n _messagesToBeSent: CBSocketClientMessageToBeSent[] = []\n \n static _sharedInstance: CBSocketClient\n \n _core: CBCore\n \n _subscribedKeys: {\n [x: string]: boolean\n } = {}\n \n _callbackHolder = new CBSocketCallbackHolder(this)\n \n static responseMessageKey = \"CBSocketResponseMessage\"\n static multipleMessageKey = \"CBSocketMultipleMessage\"\n \n \n static disconnectionMessage: CBSocketClientErrorMessage = {\n \n _isCBSocketErrorMessage: YES,\n \n messageData: \"Server disconnected\"\n \n }\n \n \n constructor(core: CBCore) {\n \n super()\n \n this._core = core\n \n \n this.socket.on(\"connect\", () => {\n \n console.log(\"Socket.io connected to server. clientID = \", this.socket, \" socketID = \", this.socket)\n \n var instanceIdentifier = localStorage.getItem(\"InstanceIdentifier\")\n \n if (IS_NOT(instanceIdentifier)) {\n \n instanceIdentifier = MAKE_ID()\n localStorage.setItem(\"InstanceIdentifier\", instanceIdentifier)\n \n }\n \n const handshakeMessage: CBSocketHandshakeInitMessage = {\n \n accessToken: undefined,\n userID: this._core.userProfile?._id,\n \n inquiryAccessKey: undefined,\n \n instanceIdentifier: instanceIdentifier\n \n }\n \n this.socket.emit(\"CBSocketHandshakeInitMessage\", {\n \n identifier: MAKE_ID(),\n messageData: handshakeMessage\n \n })\n \n \n })\n \n \n this.socket.on(\n \"CBSocketHandshakeResponseMessage\",\n (message: CBSocketMessage<CBSocketHandshakeResponseMessage>) => {\n \n \n this._isConnectionEstablished = message.messageData.accepted\n \n if (!message.messageData.accepted) {\n \n console.log(\"SocketIO connection failed.\")\n \n this._core.dialogViewShowerClass.alert(\n \"Failed to establish connection to server.\",\n () => {\n }\n )\n \n }\n else {\n \n console.log(\"SocketIO connection handshake completed.\")\n \n this._callbackHolder = new CBSocketCallbackHolder(this, this._callbackHolder)\n \n \n core.userProfile = message.messageData.userProfile ?? {}\n \n \n this.sendUnsentMessages()\n \n }\n \n \n }\n )\n \n \n this.socket.on(\"disconnect\", () => {\n \n console.log(\"Socket.io disconnected from server. clientID = \", this.socket)\n \n this._isConnectionEstablished = NO\n \n this._callbackHolder.isValid = NO\n \n this._callbackHolder.triggerDisconnectHandlers()\n \n \n })\n \n \n this.socket.on(\"CBPerformReconnect\", (message?: string) => {\n \n console.log(\"Performing socket reconnection.\")\n \n core.reloadSocketConnection()\n \n if (message) {\n \n this._core.dialogViewShowerClass.alert(message)\n \n }\n \n \n })\n \n \n this._socket.on(\n CBSocketClient.responseMessageKey,\n (message: CBSocketMessage<any>) => {\n \n this.didReceiveMessageForKey(CBSocketClient.responseMessageKey, message)\n \n }\n )\n \n this._socket.on(\n CBSocketClient.multipleMessageKey,\n (message: CBSocketMessage<CBSocketMultipleMessageObject[]>) => {\n \n console.log(\"Received \" + message.messageData.length + \" messages.\")\n this.didReceiveMessageForKey(CBSocketClient.multipleMessageKey, message)\n \n }\n )\n \n \n }\n \n \n get socket() {\n return this._socket\n }\n \n \n cancelUnsentMessages(messagesToCancel: CBSocketClientMessageToBeSent[]) {\n \n this._messagesToBeSent = this._messagesToBeSent.filter((\n messageObject: CBSocketClientMessageToBeSent,\n index: number,\n array: CBSocketClientMessageToBeSent[]\n ) => !messagesToCancel.contains(messageObject))\n \n }\n \n \n sendUnsentMessages(receiveResponsesTogether = NO, completion?: CBSocketMultipleMessagecompletionFunction) {\n \n if (!this._isConnectionEstablished || this._collectMessagesToSendLater) {\n \n return\n \n }\n \n const groupedMessages: CBSocketMultipleMessageObject<any>[] = []\n const didSendFunctions: (() => void)[] = []\n \n \n this._messagesToBeSent.copy().forEach((messageToBeSentObject: CBSocketClientMessageToBeSent) => {\n \n if (this._isConnectionEstablished) {\n \n var message = messageToBeSentObject.message\n if (IS_NOT(message)) {\n message = \"\"\n }\n \n const identifier = MAKE_ID()\n \n const completion = messageToBeSentObject.completion\n \n const messageObject: CBSocketMessage<any> = {\n \n messageData: message,\n identifier: identifier,\n keepWaitingForResponses: messageToBeSentObject.keepWaitingForResponses,\n inResponseToIdentifier: messageToBeSentObject.inResponseToMessage.identifier,\n completionPolicy: messageToBeSentObject.completionPolicy\n \n }\n \n const shouldSendMessage = this._callbackHolder.socketShouldSendMessage(\n messageToBeSentObject.key,\n messageObject,\n messageToBeSentObject.completionPolicy,\n completion\n )\n \n if (shouldSendMessage) {\n \n \n groupedMessages.push({\n \n key: messageToBeSentObject.key,\n message: messageObject\n \n })\n \n \n }\n \n didSendFunctions.push(messageToBeSentObject.didSendFunction!)\n \n \n }\n \n })\n \n \n this._messagesToBeSent = []\n \n if (IS_NOT(groupedMessages.length)) {\n \n return\n \n }\n \n if (groupedMessages.length == 1) {\n \n console.log(\"sending 1 unsent message.\")\n \n }\n else {\n \n console.log(\"Sending \" + groupedMessages.length + \" unsent messages.\")\n \n }\n \n \n const messageObject: CBSocketMultipleMessage = {\n \n messageData: groupedMessages,\n identifier: MAKE_ID(),\n completionPolicy: CBSocketClient.completionPolicy.all,\n \n shouldGroupResponses: receiveResponsesTogether\n \n }\n \n //if (receiveResponsesTogether) {\n \n this._callbackHolder.socketWillSendMultipleMessage(messageObject, completion)\n \n //}\n \n this.socket.emit(CBSocketClient.multipleMessageKey, messageObject)\n \n \n didSendFunctions.forEach((didSendFunction, index, array) => {\n didSendFunction()\n })\n \n }\n \n \n static completionPolicy = {\n \n \"all\": \"all\",\n \"allDifferent\": \"allDifferent\",\n \"first\": \"first\",\n \"last\": \"last\",\n \"firstAndLast\": \"firstAndLast\",\n \"firstAndLastIfDifferent\": \"firstAndLastIfDifferent\",\n \"directOnly\": \"directOnly\",\n \"firstOnly\": \"firstOnly\",\n \"storedOrFirst\": \"storedOrFirst\"\n \n } as const\n \n \n sendUserBoundMessageForKeyWithPolicy(\n key: keyof SocketClientInterface,\n message: any,\n completionPolicy: keyof typeof CBSocketClient.completionPolicy,\n completion?: CBSocketMessageCompletionFunction\n ) {\n \n \n this._sendMessageForKey(key as string, message, undefined, NO, completionPolicy, YES, nil, completion)\n \n }\n \n sendUserBoundMessageForKey(\n key: keyof SocketClientInterface,\n message: any,\n completion?: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(key as string, message, undefined, NO, undefined, YES, nil, completion)\n \n }\n \n sendMessageForKeyWithPolicy(\n key: keyof SocketClientInterface,\n message: any,\n completionPolicy: keyof typeof CBSocketClient.completionPolicy,\n completion?: CBSocketMessageCompletionFunction\n ) {\n \n \n this._sendMessageForKey(key as string, message, undefined, NO, completionPolicy, NO, nil, completion)\n \n }\n \n sendMessageForKey(key: keyof SocketClientInterface, message: any, completion?: CBSocketMessageCompletionFunction) {\n \n this._sendMessageForKey(key as string, message, undefined, NO, undefined, NO, nil, completion)\n \n }\n \n \n resultForMessageForKey(\n key: keyof SocketClientInterface,\n message: any,\n completionPolicy?: keyof typeof CBSocketClient.completionPolicy,\n isUserBound = NO\n ) {\n \n const result = new Promise<{\n \n responseMessage: any,\n result: any,\n errorResult: any,\n \n respondWithMessage: CBSocketMessageSendResponseFunction\n \n }>((resolve, reject) => {\n \n this._sendMessageForKey(\n key as string,\n message,\n undefined,\n NO,\n completionPolicy,\n isUserBound,\n nil,\n (responseMessage, respondWithMessage) => resolve({\n \n responseMessage: responseMessage,\n result: IF(IS_NOT_SOCKET_ERROR(responseMessage))(() => responseMessage).ELSE(RETURNER(undefined)),\n errorResult: IF(IS_SOCKET_ERROR(responseMessage))(() => responseMessage).ELSE(RETURNER(undefined)),\n \n respondWithMessage: respondWithMessage\n \n })\n )\n \n })\n \n return result\n \n }\n \n \n _sendMessageForKey(\n key: string,\n message: any,\n inResponseToMessage: CBSocketMessage<any> = {} as any,\n keepMessageConnectionOpen = NO,\n completionPolicy: keyof typeof CBSocketClient.completionPolicy = CBSocketClient.completionPolicy.directOnly,\n isUserBound = NO,\n didSendFunction: () => void = nil,\n completion: CBSocketMessageCompletionFunction = nil\n ) {\n \n if (IS_NIL(message)) {\n \n message = \"\"\n \n }\n \n if (this._isConnectionEstablished && !this._collectMessagesToSendLater) {\n \n const identifier = MAKE_ID()\n \n const messageObject: CBSocketMessage<any> = {\n \n messageData: message,\n identifier: identifier,\n keepWaitingForResponses: keepMessageConnectionOpen,\n inResponseToIdentifier: inResponseToMessage.identifier,\n completionPolicy: completionPolicy\n \n }\n \n const shouldSendMessage = this._callbackHolder.socketShouldSendMessage(\n key,\n messageObject,\n completionPolicy,\n completion\n )\n \n if (shouldSendMessage) {\n \n this.socket.emit(key, messageObject)\n \n }\n \n didSendFunction()\n \n }\n else {\n \n this._messagesToBeSent.push({\n \n key: key,\n message: message,\n inResponseToMessage: inResponseToMessage,\n keepWaitingForResponses: keepMessageConnectionOpen,\n completionPolicy: completionPolicy,\n isBoundToUserWithID: IF(isUserBound)(RETURNER(FIRST_OR_NIL(CBCore.sharedInstance.userProfile._id)))(),\n didSendFunction: didSendFunction,\n completion: completion\n \n })\n \n return this._messagesToBeSent.lastElement\n \n }\n \n }\n \n \n sendMessagesAsGroup<FunctionReturnType extends object>(functionToCall: () => FunctionReturnType) {\n \n const collectMessagesToSendLater = this._collectMessagesToSendLater\n \n this._collectMessagesToSendLater = YES\n \n var result = functionToCall()\n \n this._collectMessagesToSendLater = collectMessagesToSendLater\n \n this.sendUnsentMessages()\n \n return result\n \n }\n \n sendAndReceiveMessagesAsGroup<FunctionReturnType extends object>(\n functionToCall: () => FunctionReturnType,\n completion?: CBSocketMultipleMessagecompletionFunction\n ) {\n \n const collectMessagesToSendLater = this._collectMessagesToSendLater\n \n this._collectMessagesToSendLater = YES\n \n var result = functionToCall()\n \n this._collectMessagesToSendLater = collectMessagesToSendLater\n \n this.sendUnsentMessages(YES, completion)\n \n return result\n \n }\n \n \n didReceiveMessageForKey(key: string, message: CBSocketMessage<any>) {\n \n \n const sendResponseFunction: CBSocketMessageSendResponseFunction = function (\n this: CBSocketClient,\n responseMessage: any,\n completion: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(\n CBSocketClient.responseMessageKey,\n responseMessage,\n message,\n NO,\n undefined,\n NO,\n nil,\n completion\n )\n \n }.bind(this) as any\n \n sendResponseFunction.sendIntermediateResponse = function (\n this: CBSocketClient,\n updateMessage: any,\n completion: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(\n CBSocketClient.responseMessageKey,\n updateMessage,\n message,\n YES,\n undefined,\n NO,\n nil,\n completion\n )\n \n }.bind(this)\n \n const sendUserBoundResponseFunction: CBSocketMessageSendResponseFunction = function (\n this: CBSocketClient,\n responseMessage: any,\n completion: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(\n CBSocketClient.responseMessageKey,\n responseMessage,\n message,\n NO,\n undefined,\n YES,\n nil,\n completion\n )\n \n }.bind(this) as any\n \n sendUserBoundResponseFunction.sendIntermediateResponse = function (\n this: CBSocketClient,\n updateMessage: any,\n completion: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(\n CBSocketClient.responseMessageKey,\n updateMessage,\n message,\n YES,\n undefined,\n YES,\n nil,\n completion\n )\n \n }.bind(this)\n \n if (IS_SOCKET_ERROR(message.messageData)) {\n \n console.log(\"CBSocketClient did receive error message.\")\n \n console.log(message.messageData)\n \n \n }\n \n \n this._callbackHolder.socketDidReceiveMessageForKey(key, message, sendResponseFunction)\n \n }\n \n \n addTargetForMessagesForKeys(keys: string[], handlerFunction: CBSocketMessageHandlerFunction) {\n keys.forEach(function (this: CBSocketClient, key: string, index: number, array: string[]) {\n this.addTargetForMessagesForKey(key, handlerFunction)\n }.bind(this))\n }\n \n \n addTargetForMessagesForKey(key: string, handlerFunction: CBSocketMessageHandlerFunction) {\n \n this._callbackHolder.registerHandler(key, handlerFunction)\n \n if (IS_NOT(this._subscribedKeys[key])) {\n \n this._socket.on(key, function (this: CBSocketClient, message: CBSocketMessage<any>) {\n \n this.didReceiveMessageForKey(key, message)\n \n }.bind(this))\n \n this._subscribedKeys[key] = true\n \n }\n \n \n }\n \n addTargetForOneMessageForKey(key: string, handlerFunction: CBSocketMessageHandlerFunction) {\n \n this._callbackHolder.registerOnetimeHandler(key, handlerFunction)\n \n if (IS_NOT(this._subscribedKeys[key])) {\n \n this._socket.on(key, function (this: CBSocketClient, message: CBSocketMessage<any>) {\n \n this.didReceiveMessageForKey(key, message)\n \n }.bind(this))\n \n this._subscribedKeys[key] = true\n \n }\n \n \n }\n \n \n}\n\n\nexport const SocketClient: SocketClientInterface = new Proxy({ \"name\": \"SocketClient\" }, {\n \n get(target, key) {\n \n const result = (\n messageData: any,\n completionPolicy: string | undefined,\n isUserBound: boolean | undefined\n ) => CBCore.sharedInstance.socketClient.resultForMessageForKey(\n key as string,\n messageData,\n completionPolicy as any,\n isUserBound\n )\n \n \n return result\n \n }\n \n}) as any\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["completion", "messageObject"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cbcore-ts",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.25",
|
|
4
4
|
"description": "CBCore is a library to build web applications using pure Typescript.",
|
|
5
5
|
"main": "compiledScripts/index.js",
|
|
6
6
|
"types": "compiledScripts/index.d.ts",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@types/object-hash": "^2.1.1",
|
|
35
35
|
"object-hash": "^2.1.1",
|
|
36
|
-
"socket.io-client": "^4.5
|
|
37
|
-
"uicore-ts": "1.0.
|
|
36
|
+
"socket.io-client": "^4.7.5",
|
|
37
|
+
"uicore-ts": "1.0.525"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@rollup/plugin-commonjs": "^23.0.0",
|
|
@@ -46,6 +46,6 @@
|
|
|
46
46
|
"rollup-plugin-sourcemaps": "^0.6.3",
|
|
47
47
|
"rollup-plugin-typescript2": "^0.32.1",
|
|
48
48
|
"rollup-plugin-web-worker-loader": "^1.6.1",
|
|
49
|
-
"typescript": "^4.
|
|
49
|
+
"typescript": "^5.4.5"
|
|
50
50
|
}
|
|
51
51
|
}
|
package/scripts/CBCore.ts
CHANGED
|
@@ -1,18 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
FIRST,
|
|
3
|
-
FIRST_OR_NIL,
|
|
4
|
-
IS,
|
|
5
|
-
IS_NOT,
|
|
6
|
-
nil,
|
|
7
|
-
UICore,
|
|
8
|
-
UILink,
|
|
9
|
-
UIObject,
|
|
10
|
-
UIRoute,
|
|
11
|
-
UIViewBroadcastEvent,
|
|
12
|
-
YES
|
|
13
|
-
} from "../../uicore-ts"
|
|
14
|
-
import { CBLanguageService } from "./CBLanguageService"
|
|
1
|
+
import { FIRST, IS, IS_NOT, nil, UICore, UILink, UIObject, UIRoute, UIViewBroadcastEvent, YES } from "../../uicore-ts"
|
|
15
2
|
import { CBLocalizedTextObject, CBUserProfile } from "./CBDataInterfaces"
|
|
3
|
+
import { CBLanguageService } from "./CBLanguageService"
|
|
16
4
|
import { CBServerClient } from "./CBServerClient"
|
|
17
5
|
import { CBSocketClient } from "./CBSocketClient"
|
|
18
6
|
|
|
@@ -20,13 +8,16 @@ import { CBSocketClient } from "./CBSocketClient"
|
|
|
20
8
|
declare interface CBDialogViewShower {
|
|
21
9
|
|
|
22
10
|
alert(text: string, dismissCallback?: Function): void
|
|
11
|
+
|
|
23
12
|
localizedAlert(textObject: CBLocalizedTextObject, dismissCallback?: Function): void
|
|
24
13
|
|
|
25
14
|
showActionIndicatorDialog(message: string, dismissCallback?: Function): void
|
|
15
|
+
|
|
26
16
|
hideActionIndicatorDialog(): void
|
|
27
17
|
|
|
28
18
|
}
|
|
29
19
|
|
|
20
|
+
|
|
30
21
|
declare const CBCoreInitializerObject: any
|
|
31
22
|
|
|
32
23
|
|
|
@@ -61,40 +52,34 @@ export class CBCore extends UIObject {
|
|
|
61
52
|
window.addEventListener("storage", function (this: CBCore, event: StorageEvent) {
|
|
62
53
|
|
|
63
54
|
if (event.newValue == event.oldValue) {
|
|
64
|
-
|
|
65
55
|
return
|
|
66
|
-
|
|
67
56
|
}
|
|
68
57
|
|
|
69
58
|
//console.log("" + event.key + " changed to " + event.newValue + " from " + event.oldValue);
|
|
70
59
|
|
|
71
60
|
|
|
72
|
-
|
|
73
61
|
if (event.key == "CBLanguageKey") {
|
|
74
|
-
|
|
75
62
|
this.didSetLanguageKey()
|
|
76
|
-
|
|
77
63
|
}
|
|
78
64
|
|
|
79
65
|
}.bind(this))
|
|
80
|
-
|
|
81
|
-
|
|
66
|
+
|
|
67
|
+
|
|
82
68
|
//this.checkIfUserIsAuthenticated();
|
|
83
|
-
|
|
69
|
+
|
|
84
70
|
this.didSetLanguageKey()
|
|
85
|
-
|
|
86
|
-
|
|
71
|
+
|
|
72
|
+
|
|
87
73
|
}
|
|
88
74
|
|
|
89
75
|
|
|
90
76
|
static initIfNeededWithViewCore(viewCore: UICore) {
|
|
91
77
|
|
|
92
|
-
CBCore.sharedInstance.viewCores.push(viewCore)
|
|
78
|
+
CBCore.sharedInstance.viewCores.push(viewCore)
|
|
93
79
|
|
|
94
80
|
}
|
|
95
81
|
|
|
96
82
|
|
|
97
|
-
|
|
98
83
|
static get sharedInstance() {
|
|
99
84
|
if (!CBCore._sharedInstance) {
|
|
100
85
|
CBCore._sharedInstance = new CBCore()
|
|
@@ -103,9 +88,6 @@ export class CBCore extends UIObject {
|
|
|
103
88
|
}
|
|
104
89
|
|
|
105
90
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
91
|
static broadcastEventName = {
|
|
110
92
|
|
|
111
93
|
"userDidLogIn": "UserDidLogIn",
|
|
@@ -114,15 +96,12 @@ export class CBCore extends UIObject {
|
|
|
114
96
|
} as const
|
|
115
97
|
|
|
116
98
|
broadcastMessageInRootViewTree(message: UIViewBroadcastEvent) {
|
|
117
|
-
|
|
99
|
+
|
|
118
100
|
this.viewCores.everyElement.rootViewController.view.broadcastEventInSubtree(message)
|
|
119
101
|
|
|
120
102
|
}
|
|
121
103
|
|
|
122
104
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
105
|
get socketClient() {
|
|
127
106
|
return this._socketClient
|
|
128
107
|
}
|
|
@@ -132,21 +111,10 @@ export class CBCore extends UIObject {
|
|
|
132
111
|
}
|
|
133
112
|
|
|
134
113
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
114
|
set isUserLoggedIn(isUserLoggedIn: boolean) {
|
|
139
|
-
|
|
140
115
|
const previousValue = this.isUserLoggedIn
|
|
141
|
-
|
|
142
|
-
|
|
143
116
|
localStorage.setItem("CBIsUserLoggedIn", "" + isUserLoggedIn)
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
//this._isUserLoggedIn = isUserLoggedIn;
|
|
147
|
-
|
|
148
117
|
this.didSetIsUserLoggedIn(previousValue)
|
|
149
|
-
|
|
150
118
|
}
|
|
151
119
|
|
|
152
120
|
didSetIsUserLoggedIn(previousValue: boolean) {
|
|
@@ -156,167 +124,90 @@ export class CBCore extends UIObject {
|
|
|
156
124
|
if (isUserLoggedIn && previousValue != isUserLoggedIn) {
|
|
157
125
|
|
|
158
126
|
// Send message to views
|
|
159
|
-
|
|
160
127
|
this.broadcastMessageInRootViewTree({
|
|
161
|
-
|
|
162
128
|
name: CBCore.broadcastEventName.userDidLogIn,
|
|
163
129
|
parameters: nil
|
|
164
|
-
|
|
165
130
|
})
|
|
166
131
|
|
|
167
132
|
this.updateLinkTargets()
|
|
168
133
|
|
|
169
|
-
|
|
170
134
|
}
|
|
171
135
|
else if (previousValue != isUserLoggedIn) {
|
|
172
136
|
|
|
173
|
-
|
|
174
137
|
this.performFunctionWithDelay(0.01, function (this: CBCore) {
|
|
175
138
|
|
|
176
139
|
UIRoute.currentRoute.routeByRemovingComponentsOtherThanOnesNamed([
|
|
177
|
-
|
|
178
|
-
"settings",
|
|
179
|
-
"inquiry"
|
|
180
|
-
|
|
140
|
+
"settings"
|
|
181
141
|
]).apply()
|
|
182
142
|
|
|
183
143
|
this.broadcastMessageInRootViewTree({
|
|
184
|
-
|
|
185
144
|
name: CBCore.broadcastEventName.userDidLogOut,
|
|
186
145
|
parameters: nil
|
|
187
|
-
|
|
188
146
|
})
|
|
189
147
|
|
|
190
148
|
this.updateLinkTargets()
|
|
191
149
|
|
|
192
|
-
|
|
193
150
|
}.bind(this))
|
|
194
151
|
|
|
195
152
|
}
|
|
196
153
|
|
|
197
|
-
|
|
198
154
|
}
|
|
199
155
|
|
|
200
156
|
private updateLinkTargets() {
|
|
201
|
-
|
|
202
157
|
this.viewCores.everyElement.rootViewController.view.forEachViewInSubtree(function (view) {
|
|
203
158
|
if (view instanceof UILink) {
|
|
204
159
|
view.updateTarget()
|
|
205
160
|
}
|
|
206
161
|
})
|
|
207
|
-
|
|
208
162
|
}
|
|
209
163
|
|
|
210
164
|
get isUserLoggedIn() {
|
|
211
|
-
|
|
212
|
-
const result = (localStorage.getItem("CBIsUserLoggedIn") == "true")
|
|
213
|
-
|
|
214
|
-
return result
|
|
215
|
-
|
|
165
|
+
return (localStorage.getItem("CBIsUserLoggedIn") == "true")
|
|
216
166
|
}
|
|
217
167
|
|
|
218
168
|
|
|
219
|
-
|
|
220
169
|
get userProfile() {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
try {
|
|
226
|
-
// @ts-ignore
|
|
227
|
-
result = JSON.parse(localStorage.getItem("CBUserProfile"))
|
|
228
|
-
} catch (error) {
|
|
229
|
-
|
|
170
|
+
const text = localStorage.getItem("CBUserProfile")
|
|
171
|
+
if (text) {
|
|
172
|
+
return JSON.parse(text) as CBUserProfile
|
|
230
173
|
}
|
|
231
|
-
|
|
232
|
-
// if (IS_NOT(result)) {
|
|
233
|
-
|
|
234
|
-
// // Get userID from inquiryAccessKey if possible
|
|
235
|
-
// var inquiryKey = this.inquiryAccessKey;
|
|
236
|
-
|
|
237
|
-
// if (IS(inquiryKey)) {
|
|
238
|
-
|
|
239
|
-
// result = FIRST_OR_NIL(this.inquiriesModel.inquiriesByCurrentUser.firstElement).inquirer
|
|
240
|
-
|
|
241
|
-
// }
|
|
242
|
-
|
|
243
|
-
// }
|
|
244
|
-
|
|
245
|
-
return FIRST_OR_NIL(result)
|
|
246
|
-
|
|
174
|
+
return undefined
|
|
247
175
|
}
|
|
248
176
|
|
|
249
177
|
set userProfile(userProfile: CBUserProfile) {
|
|
250
|
-
|
|
251
178
|
if (IS_NOT(userProfile)) {
|
|
252
|
-
|
|
253
179
|
localStorage.removeItem("CBUserProfile")
|
|
254
|
-
|
|
255
180
|
}
|
|
256
|
-
|
|
257
181
|
localStorage.setItem("CBUserProfile", JSON.stringify(userProfile))
|
|
258
|
-
|
|
259
182
|
this.didSetUserProfile()
|
|
260
|
-
|
|
261
183
|
}
|
|
262
184
|
|
|
263
185
|
didSetUserProfile() {
|
|
264
|
-
|
|
265
186
|
this.isUserLoggedIn = IS(this.userProfile)
|
|
266
|
-
|
|
267
187
|
}
|
|
268
188
|
|
|
269
189
|
|
|
270
190
|
set languageKey(languageKey: string) {
|
|
271
|
-
|
|
272
191
|
if (IS_NOT(languageKey)) {
|
|
273
|
-
|
|
274
192
|
localStorage.removeItem("CBLanguageKey")
|
|
275
|
-
|
|
276
193
|
}
|
|
277
|
-
|
|
278
194
|
localStorage.setItem("CBLanguageKey", JSON.stringify(languageKey))
|
|
279
|
-
|
|
280
195
|
this.didSetLanguageKey()
|
|
281
|
-
|
|
282
196
|
}
|
|
283
197
|
|
|
284
198
|
get languageKey() {
|
|
285
|
-
|
|
286
|
-
const result = FIRST(localStorage.getItem("CBLanguageKey"), CBLanguageService.defaultLanguageKey).replace(
|
|
199
|
+
return FIRST(localStorage.getItem("CBLanguageKey"), CBLanguageService.defaultLanguageKey).replace(
|
|
287
200
|
"\"",
|
|
288
201
|
""
|
|
289
202
|
).replace("\"", "")
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
return result
|
|
293
|
-
|
|
294
203
|
}
|
|
295
204
|
|
|
296
205
|
didSetLanguageKey() {
|
|
297
|
-
|
|
298
206
|
UIRoute.currentRoute.routeWithComponent(
|
|
299
207
|
"settings",
|
|
300
208
|
{ "language": this.languageKey },
|
|
301
209
|
YES
|
|
302
210
|
).applyByReplacingCurrentRouteInHistory()
|
|
303
|
-
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
get externalServiceIdentifier(): { accessKey: string; serviceID: string; organizationID: string } {
|
|
308
|
-
|
|
309
|
-
// @ts-ignore
|
|
310
|
-
const result = JSON.parse(localStorage.getItem("CBExternalServiceIdentifier"))
|
|
311
|
-
|
|
312
|
-
return result
|
|
313
|
-
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
set externalServiceIdentifier(externalServiceIdentifier: { accessKey: string; serviceID: string; organizationID: string }) {
|
|
317
|
-
|
|
318
|
-
localStorage.setItem("CBExternalServiceIdentifier", JSON.stringify(externalServiceIdentifier))
|
|
319
|
-
|
|
320
211
|
}
|
|
321
212
|
|
|
322
213
|
|
|
@@ -350,7 +241,6 @@ export class CBCore extends UIObject {
|
|
|
350
241
|
})
|
|
351
242
|
|
|
352
243
|
|
|
353
|
-
|
|
354
244
|
}
|
|
355
245
|
|
|
356
246
|
|
|
@@ -130,7 +130,7 @@ export class CBLanguageService implements UILanguageService {
|
|
|
130
130
|
|
|
131
131
|
static updateCurrentLanguageKey(route = UIRoute.currentRoute) {
|
|
132
132
|
|
|
133
|
-
let result = route.componentWithName("settings")
|
|
133
|
+
let result = route.componentWithName("settings")?.parameters?.language
|
|
134
134
|
|
|
135
135
|
if (IS_NOT(result)) {
|
|
136
136
|
|
|
@@ -103,7 +103,7 @@ export class CBSocketClient extends UIObject {
|
|
|
103
103
|
|
|
104
104
|
this.socket.on("connect", () => {
|
|
105
105
|
|
|
106
|
-
console.log("Socket.io connected to server. clientID = "
|
|
106
|
+
console.log("Socket.io connected to server. clientID = ", this.socket, " socketID = ", this.socket)
|
|
107
107
|
|
|
108
108
|
var instanceIdentifier = localStorage.getItem("InstanceIdentifier")
|
|
109
109
|
|
|
@@ -117,7 +117,7 @@ export class CBSocketClient extends UIObject {
|
|
|
117
117
|
const handshakeMessage: CBSocketHandshakeInitMessage = {
|
|
118
118
|
|
|
119
119
|
accessToken: undefined,
|
|
120
|
-
userID: this._core.userProfile
|
|
120
|
+
userID: this._core.userProfile?._id,
|
|
121
121
|
|
|
122
122
|
inquiryAccessKey: undefined,
|
|
123
123
|
|
|
@@ -160,7 +160,9 @@ export class CBSocketClient extends UIObject {
|
|
|
160
160
|
|
|
161
161
|
this._callbackHolder = new CBSocketCallbackHolder(this, this._callbackHolder)
|
|
162
162
|
|
|
163
|
-
|
|
163
|
+
|
|
164
|
+
core.userProfile = message.messageData.userProfile ?? {}
|
|
165
|
+
|
|
164
166
|
|
|
165
167
|
this.sendUnsentMessages()
|
|
166
168
|
|
|
@@ -173,7 +175,7 @@ export class CBSocketClient extends UIObject {
|
|
|
173
175
|
|
|
174
176
|
this.socket.on("disconnect", () => {
|
|
175
177
|
|
|
176
|
-
console.log("Socket.io disconnected from server. clientID = "
|
|
178
|
+
console.log("Socket.io disconnected from server. clientID = ", this.socket)
|
|
177
179
|
|
|
178
180
|
this._isConnectionEstablished = NO
|
|
179
181
|
|
|
@@ -192,7 +194,7 @@ export class CBSocketClient extends UIObject {
|
|
|
192
194
|
core.reloadSocketConnection()
|
|
193
195
|
|
|
194
196
|
if (message) {
|
|
195
|
-
|
|
197
|
+
|
|
196
198
|
this._core.dialogViewShowerClass.alert(message)
|
|
197
199
|
|
|
198
200
|
}
|
|
@@ -360,7 +362,7 @@ export class CBSocketClient extends UIObject {
|
|
|
360
362
|
"directOnly": "directOnly",
|
|
361
363
|
"firstOnly": "firstOnly",
|
|
362
364
|
"storedOrFirst": "storedOrFirst"
|
|
363
|
-
|
|
365
|
+
|
|
364
366
|
} as const
|
|
365
367
|
|
|
366
368
|
|
|
@@ -431,7 +433,7 @@ export class CBSocketClient extends UIObject {
|
|
|
431
433
|
isUserBound,
|
|
432
434
|
nil,
|
|
433
435
|
(responseMessage, respondWithMessage) => resolve({
|
|
434
|
-
|
|
436
|
+
|
|
435
437
|
responseMessage: responseMessage,
|
|
436
438
|
result: IF(IS_NOT_SOCKET_ERROR(responseMessage))(() => responseMessage).ELSE(RETURNER(undefined)),
|
|
437
439
|
errorResult: IF(IS_SOCKET_ERROR(responseMessage))(() => responseMessage).ELSE(RETURNER(undefined)),
|