@genesislcap/design-system-configurator 14.11.3 → 14.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/1.0.0.remoteEntry.js +1 -1
  2. package/dist/{657.657.dc328a519b5a5f2e22df.js → 657.657.7576f2f8a8df8c62b816.js} +2 -2
  3. package/dist/{657.d3627065d52dee1fc66d483fdef1959e6e8dc3ddbb720e706494f939ff364d94.js.map → 657.af1d80556c7039fe00d3272c460a45c56fca0c58924fcec30e65ee95b1d72671.js.map} +1 -1
  4. package/dist/{755.755.a54a67823c654ad33551.js → 755.755.d5afeae11fba5e8bf977.js} +1 -1
  5. package/dist/{842.842.273a6610a0c31f5a7473.js → 842.842.2705a01cf5b99608634f.js} +2 -2
  6. package/dist/{842.ff24e7396733a9b583a92136677cfb73f519108ee5ed7700396e765d9fea16de.js.map → 842.d1fda99787a0ad682a56b42253307b4fac7a6e7c03f60674f4e7e22c688d693b.js.map} +1 -1
  7. package/dist/{88.88.6492b6f421035e7ccb13.js → 88.88.6ce8c6fd476d9d844172.js} +21 -21
  8. package/dist/88.cf131278c0290789116f8aab8151e9f5346dcd4196152ed4a1946c28f8027998.js.map +1 -0
  9. package/dist/{905.905.eae9a71d258f30d2affd.js → 905.905.8273beefe52abb3d5751.js} +3 -3
  10. package/dist/905.985440d3dae56c80a6835dc0b8d576c95452fb3c9b02f8f2a2d6cb87c7b70db8.js.map +1 -0
  11. package/dist/{93.93.26be72a9a9611d259802.js → 93.93.e85c420a31109efb3437.js} +1 -1
  12. package/dist/{designSystemConfigurator.88f339b58978e0226761b3776f2538df1b69b38e37c9ec8eb017fa0b23da547c.js.map → designSystemConfigurator.bd76484a17fd0eff17e73242065882b9adec345a070f26c0b1e4cccaa34571ee.js.map} +1 -1
  13. package/dist/index.html +1 -1
  14. package/dist/info.html +4 -4
  15. package/dist/main.621a650aba78153c87ea7100f89429695991896e7a0ec0534e70c62b45bd5593.js.map +1 -0
  16. package/dist/main.7b167f466cef3082d45c.js +2 -0
  17. package/dist/{npm.microsoft.127.593a4777a747c145ba82.js → npm.microsoft.127.0b628a80d301157df78f.js} +4 -4
  18. package/dist/npm.microsoft.a4f70bebc47801a4c8f6d266bec78f96751f919d93afc36954ebb52237a3ea44.js.map +1 -0
  19. package/dist/remoteEntry.js +2 -2
  20. package/package.json +6 -6
  21. package/dist/88.a5c05358c8614908d90d67522e8855269fc6c4328b6e668a6aa2f4d9980d065a.js.map +0 -1
  22. package/dist/905.5531d13d5df076edbd0f30ba591e04af439388ad950f6f87615e3a632cca7ec6.js.map +0 -1
  23. package/dist/main.48e25c0970c758b41a3d.js +0 -2
  24. package/dist/main.a063636ef38c84587a6d3f2133df7fd9a6982f8fe06bed1a1af9b1a81a47decb.js.map +0 -1
  25. package/dist/npm.microsoft.cbd4c4fe1944f55577179cf88060e7f08eea586fc22f2016ce4074cad6dad380.js.map +0 -1
  26. /package/dist/{905.905.eae9a71d258f30d2affd.js.LICENSE.txt → 905.905.8273beefe52abb3d5751.js.LICENSE.txt} +0 -0
@@ -1,3 +1,3 @@
1
- /*! For license information please see 905.905.eae9a71d258f30d2affd.js.LICENSE.txt */
2
- (self.webpackChunk_genesislcap_design_system_configurator=self.webpackChunk_genesislcap_design_system_configurator||[]).push([[905],{4077:(e,t,s)=>{"use strict";var r;s.d(t,{G:()=>r,l:()=>i}),function(e){e.BASIC="BASIC",e.SSO="SSO",e.JWT="JWT",e.REFRESH="REFRESH"}(r||(r={}));class i extends Error{constructor(e,t,s="Auth Failed \n"){super(s),this.sent=e,this.received=t,Object.setPrototypeOf(this,i.prototype)}isIgnorableError(){var e,t,s,r;return null===(r=null===(s=null===(t=null===(e=this.received)||void 0===e?void 0:e.DETAILS)||void 0===t?void 0:t.ERROR)||void 0===s?void 0:s.toLowerCase())||void 0===r?void 0:r.includes("request needs the user to be logged")}getMessageError(){var e,t;return Array.isArray(null===(e=this.received)||void 0===e?void 0:e.ERROR)?null===(t=this.received)||void 0===t?void 0:t.ERROR.map((e=>this.errorDetailFormatter(e))).join("\n"):""}getDetailsError(){var e,t,s,r;return Array.isArray(null===(t=null===(e=this.received)||void 0===e?void 0:e.DETAILS)||void 0===t?void 0:t.ERROR)?null===(r=null===(s=this.received)||void 0===s?void 0:s.DETAILS)||void 0===r?void 0:r.ERROR.map((e=>this.errorDetailFormatter(e))).join("\n"):""}hasPasswordExpiredError(){return this.hasErrorCode("PASSWORD_EXPIRED")}hasErrorCode(e){var t,s;return!!Array.isArray(null===(t=this.received)||void 0===t?void 0:t.ERROR)&&(null===(s=this.received)||void 0===s?void 0:s.ERROR.some((t=>t.CODE===e)))}errorDetailFormatter(e){return`\n ${e.CODE}: \n ${e.TEXT}`}}},1440:(e,t,s)=>{"use strict";s.d(t,{lj:()=>q});var r=s(186),i=s(7554),o=s(3147),n=s(5951);class a{constructor(){this.cachedMetadata=new Map,this.cachedJsonSchema=new Map}getMetadataFor(e){return this.cachedMetadata.get(e)}getJsonSchemaFor(e){return this.cachedJsonSchema.get(e)}hasMetadataFor(e){return this.cachedMetadata.has(e)}hasJsonSchemaFor(e){return this.cachedJsonSchema.has(e)}setMetadataFor(e,t){this.cachedMetadata.set(e,t)}setJsonSchemaFor(e,t){this.cachedJsonSchema.set(e,t)}}const c=n.DI.createInterface((e=>e.singleton(a))),d=new RegExp(/wss?:\/\/[-a-zA-Z0-9@:%._\+~#=]{1,256}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=]*)\b\/*$/,"i");var h=s(2296);const E=n.DI.createInterface(),l=n.DI.createInterface();var u=s(6714),S=s(5373),g=s(1966),_=s(9866),T=s(804),R=s(7211),p=s(4866),v=s(5527);class m{serialize(e){return JSON.stringify(e)}deserialize(e){return e?"string"==typeof e?JSON.parse(e):e.data?JSON.parse(e.data):e.text().then((e=>JSON.parse(e))):Promise.resolve({})}}const O=n.DI.createInterface((e=>e.singleton(m)));let A=class{constructor(e){this.serializer=e}get(e,t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const s=yield fetch(e,Object.assign(Object.assign({},t),{method:"GET"}));return(t.serializer||this.serializer).deserialize(s)}))}post(e,t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const s=yield fetch(e,Object.assign(Object.assign({},t),{method:"POST"}));return(t.serializer||this.serializer).deserialize(s)}))}};A=(0,r.__decorate)([(0,r.__param)(0,O)],A);const f=n.DI.createInterface((e=>e.singleton(A)));var I=s(9162);const M={polling:Object.assign({POLLING_MAP:{EVENT_AMEND_USER:{TEMP_FREQUENCY:500,AMOUNT_OF_POLLS:5,QUERIES:["ALL_USERS"]}},POLLING_INTERVAL_MAP:{ALL_TRADES:5e3,ALL_USERS:5e3,ALL_PROCESSES_STATUS:1e4},POLLING_FREQUENCY:5e3},{})};let N=class e{get isConnected(){return this._isConnected}set isConnected(e){this._isConnected=e,this.isConnectedSubject.next(this._isConnected)}constructor(e,t,s,r,i,o=M){this.http=e,this.messageBuilder=t,this.session=s,this.metaCache=r,this.serializer=i,this.config=o,this.isWorking=!1,this._isConnected=!1,this.isConnectedSubject=new u.X(this._isConnected),this.ongoingTurbo={},this.streams=new Map}checkHost(){return(0,r.__awaiter)(this,void 0,void 0,(function*(){try{return this.getMessage({MESSAGE_TYPE:I.Cs.HEARTBEAT_PING,SOURCE_REF:"host check"}).then((e=>e.MESSAGE_TYPE===I.Cs.HEARTBEAT_PONG))}catch(e){return h.k.error(e),!1}}))}send(t,s){return this.http.post(e.getUrl(this.host,t),{body:e.getBody(t),headers:e.getHeaders(t)})}httpMode(){return!0}setValidSession(e){h.k.warn("setValidSession() called while in http polling mode.")}connect(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){return this.host=e,this.host.endsWith("/")||(this.host=this.host.concat("/")),this.checkHost().then((e=>(this.isConnected=e,this.session.setSessionStorageItem("hostUrl",this.host),e)))}))}disconnect(){this.isConnected=!1,this.streams.clear(),this.ongoingTurbo={},this.host=void 0}snapshot(e,t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const s=this.messageBuilder.createDataLogonMessage(e,t);return h.k.debug(`HTTP MODE - ${s.MESSAGE_TYPE} (snapshot) message created -> `,s),this.send(s).then((e=>(this.dataLogoff(s.SOURCE_REF).catch((e=>h.k.error(e))),e)))}))}stream(e,t,s,r){const i=this.messageBuilder.createDataLogonMessage(e,r);h.k.debug(`HTTP MODE - ${i.MESSAGE_TYPE} (stream) message created -> `,i);const o=i.SOURCE_REF;this.streams.set(o,{SOURCE_REF:o,POLLING_FREQUENCY:new u.X(this.config.polling.POLLING_FREQUENCY),RESOURCE_NAME:e});const n=this.streams.get(o).POLLING_FREQUENCY,a=(0,S.z)((0,g.D)(this.send(i)),n.pipe((0,_.w)((e=>(0,T.F)(e)))).pipe((0,_.w)((()=>(0,g.D)(this.getMessage(i)))))).pipe((0,R.o)((()=>this.streams.has(o))),(0,p.x)((()=>{h.k.debug(`Terminating stream for ${e} - ${o}`),this.dataLogoff(o)})));return this.streams.get(o).STREAM=a,a}getMessage(t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){return this.http.get(e.getUrl(this.host,t),{headers:e.getHeaders(t)})}))}getMoreRows(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createMoreRowsMessage(e);return h.k.debug(`HTTP MODE - ${t.MESSAGE_TYPE} message created -> `,t),this.send(t)}))}dataLogoff(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createDataLogoffMessage(e);return this.send(t).then((t=>(this.streams.has(e)&&(h.k.debug(`Removing stream ${e}`),this.streams.delete(e)),t)))}))}getMetadata(e,t=!0){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createMetaRequestMessage(e);return h.k.debug(`HTTP MODE - ${t.MESSAGE_TYPE} (metadata) message created -> `,t),this.send(t).then((e=>e.DETAILS))}))}getJSONSchema(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createMetaRequestMessage(e,I.N$.JSON_SCHEMA_REQUEST);return h.k.debug(`HTTP MODE! - ${t.MESSAGE_TYPE} (json schema) message created -> `,t),this.send(t)}))}request(e,t){const s=this.messageBuilder.createRequestMessage(e,t);return h.k.debug(`HTTP MODE! - ${s.MESSAGE_TYPE} (request server) message created -> `,s),this.send(s)}commitEvent(e,t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const s=this.messageBuilder.createCommitMessage(e,t);return h.k.debug(`HTTP MODE! - ${s.MESSAGE_TYPE} (commit) message created -> `,s),this.send(s).then((t=>(this.maybeTurbo(e,t),t)))}))}maybeTurbo(e,t){var s;if(!(null===(s=null==t?void 0:t.MESSAGE_TYPE)||void 0===s?void 0:s.endsWith("_ACK")))return;if(this.ongoingTurbo[e])return void h.k.debug(`${e} polling frequency is already accelerated.`);const r=this.config.polling.POLLING_MAP[e];if(!(null==r?void 0:r.TEMP_FREQUENCY)||!r.AMOUNT_OF_POLLS)return;const i=r.TEMP_FREQUENCY,o=i*r.AMOUNT_OF_POLLS,n=JSON.parse(JSON.stringify(this.config.polling.POLLING_INTERVAL_MAP)),a=JSON.parse(JSON.stringify(this.config.polling.POLLING_INTERVAL_MAP));for(const e of r.QUERIES)a[e]=i,n[e]||(n[e]=this.config.polling.POLLING_FREQUENCY);h.k.debug(`${e} TRIGGERED -> ENFORCING TURBO | FREQUENCY=${i}ms DURATION=${o}`),this.ongoingTurbo[e]=!0,this.updateIntervals({polling:{POLLING_INTERVAL_MAP:a}}),setTimeout((()=>{h.k.debug(`RESTORED ORIGINAL POLLING INTERVALS FOR ${e}`),this.updateIntervals({polling:{POLLING_INTERVAL_MAP:n}}),this.ongoingTurbo[e]=!1}),o)}updateIntervals(e){const{POLLING_INTERVAL_MAP:t}=e.polling;t&&(this.config.polling.POLLING_INTERVAL_MAP=t,this.handlePollingIntervalMapUpdate(t))}handlePollingIntervalMapUpdate(e){if(e)for(const t in e){if(!e.hasOwnProperty(t))continue;const s=e[t];this.config.polling.POLLING_INTERVAL_MAP[t]=s,h.k.debug(`Setting polling frequency for ${t} = ${s}`),[...this.streams.values()].filter((e=>e.RESOURCE_NAME===t)).forEach((e=>{var t;return null===(t=null==e?void 0:e.POLLING_FREQUENCY)||void 0===t?void 0:t.next(s)}))}}static getHeaders(e){const t={"Content-type":"application/json; charset=UTF-8","source-ref":e.SOURCE_REF};return e.SESSION_AUTH_TOKEN&&(t["SESSION-AUTH-TOKEN"]=e.SESSION_AUTH_TOKEN),e.MESSAGE_TYPE===I.N$.EVENT_LOGOUT&&(t["SESSION-ID"]=e.SESSION_ID),t}static getBody(e){return JSON.stringify(e)}static getUrl(e,t){const s=t.MESSAGE_TYPE;let r=t.MESSAGE_TYPE.replace(/_/g,"-").toLowerCase();return s===I.N$.DATA_LOGON&&(r=t.DETAILS.DATASOURCE_NAME.replace(/_/g,"-").toLowerCase()),`${e}${r}`}};(0,r.__decorate)([o.observable],N.prototype,"host",void 0),(0,r.__decorate)([o.observable],N.prototype,"isWorking",void 0),(0,r.__decorate)([o.observable],N.prototype,"_isConnected",void 0),(0,r.__decorate)([o.volatile],N.prototype,"isConnected",null),N=(0,r.__decorate)([(0,r.__param)(0,f),(0,r.__param)(1,I.sW),(0,r.__param)(2,v.z),(0,r.__param)(3,c),(0,r.__param)(4,i.JSONSerializer),(0,r.__param)(5,(0,n.optional)(l))],N);const b=n.DI.createInterface((e=>e.singleton(N)));var C=s(3344),U=s(1057),k=s(7674),L=s(94),w=s(526),P=s(2040),y=s(8370),D=s(1262),G=s(9262);const F=1e4,H=6e4;var V;!function(e){e.Linear="linear",e.Exponential="exponential"}(V||(V={}));const $=(e,t)=>{const{reconnectInterval:s=F}=e,r=s>H?H:s,i=Math.round(Math.log2(H/r));return r*Math.pow(2,t%i)},Y=e=>{const{reconnectInterval:t=F}=e;return t>H?H:t};class B extends C.x{constructor(){super()}}class K{constructor(e,t,s,r){this._message=e,this._onMessage=t,this._onError=s,this._isSubscription=r}get sentMessage(){return this._message}get onReceivedMessage(){return this._onMessage}get onReceivedError(){return this._onError}get isSubscription(){return this._isSubscription}}let W=class{isConnectedChanged(e,t){this.isConnectedSubject.next(t)}constructor(e,t,s,r){this.messageBuilder=e,this.session=t,this.serializer=s,this.uuid=r,this.defaultInterval=1e4,this.secondsMultiplier=1e3,this.isConnectedSubject=new u.X(!1),this.isConnected=!1,this.hasValidSession=!1,this.heartbeatIsEnabled=!0,this.heartbeatInterval=this.defaultInterval,this.isReconnecting=!1,this.socketMessages=()=>this.wsMessages}get heartbeatLoggingIsEnabled(){var e,t;return null!==(t=null===(e=this.connectOptions)||void 0===e?void 0:e.enableHeartbeatLogging)&&void 0!==t&&t}get messageLoggingIsEnabled(){var e,t;return null!==(t=null===(e=this.connectOptions)||void 0===e?void 0:e.enableMessageLogging)&&void 0!==t&&t}connect(e,t,s){return this.url=e,this.connectOptions=t,this.reconnectOptions=s,new Promise((e=>{var t,s,i,o;h.k.info(`${this.isReconnecting?"Reconnecting":"Connecting"} to ${this.url}`);(!this.isReconnecting||!(null===(t=this.reconnectOptions)||void 0===t?void 0:t.reconnectStreams))&&this.cleanMessages(),null===(s=this.socketSubscription)||void 0===s||s.unsubscribe(),this.websocket=new D.p({url:this.url,openObserver:{next:()=>{this.isConnected=!0,this.session.setSessionStorageItem("hostUrl",this.url),this.prepareHeartbeat(),h.k.info("WebSocket connection is now open"),e(this.isConnected)}},closeObserver:{next:t=>{this.disconnectedByServer=!t.wasClean,this.isConnected=!1,this.disconnectedByServer&&h.k.info(`WebSocket connection was closed due an error - Code: ${t.code} ${t.reason?" | Reason: "+t.reason:""}`),e(this.isConnected)}},serializer:this.serializer.serialize,deserializer:this.serializer.deserialize});this.socketSubscription=this.websocket.subscribe(null!==(o=null===(i=this.connectOptions)||void 0===i?void 0:i.connectObserver)&&void 0!==o?o:{next:e=>(0,r.__awaiter)(this,void 0,void 0,(function*(){var t;const s=`Response Message received for SourceRef: ${e.SOURCE_REF} | MessageType: ${e.MESSAGE_TYPE}`;this.logMessageTypeFlow(e.MESSAGE_TYPE,h.k.info,s);const{SOURCE_REF:r,MESSAGE_TYPE:i}=e,o=this.getMessageHandler(r,i);if(!o)return;let n=!1;switch(e.MESSAGE_TYPE){case I.N$.EVENT_LOGIN_AUTH_ACK:{this.hasValidSession=!0;const s=e.DETAILS;s.HEARTBEAT_INTERVAL_SECS&&void 0===(null===(t=this.connectOptions)||void 0===t?void 0:t.heartbeatInterval)&&(this.heartbeatInterval=s.HEARTBEAT_INTERVAL_SECS*this.secondsMultiplier,this.prepareHeartbeat());break}case I.Cs.LOGOUT_ACK:return this.hasValidSession=!1,o.onReceivedMessage.call(this,e),void this.cleanMessages();case I.Cs.LOGON_ACK:return;case I.Cs.LOGOFF_ACK:if(e.LOGGED_OUT&&this.hasValidSession){const e=this.messageBuilder.createRefreshTokenMessage(),t=yield this.send(e);t?t.MESSAGE_TYPE===I.N$.EVENT_LOGIN_AUTH_ACK&&(this.session.setAuthResult(t),this.wsMessageHandlers.forEach((e=>{e.isSubscription&&(e.sentMessage.SESSION_AUTH_TOKEN=t.SESSION_AUTH_TOKEN,this.websocket.next(e.sentMessage))}))):this.hasValidSession=!1}break;case I.Cs.QUERY_UPDATE:if(!o.isSubscription){const e=this.messageBuilder.createDataLogoffMessage(r);this.send(e)}break;case I.Cs.MSG_NACK:n=!0}n?o.onReceivedError.call(this,{receivedMessage:e,sentMessage:o.sentMessage}):o.onReceivedMessage.call(this,e),this.wsMessages.next(e),o.isSubscription||this.removeMessageHandler(r)})),error:e=>{h.k.debug("Error found: ",e),this.reconnect()},complete:()=>{var e;this.disconnectedByServer&&(null===(e=this.connectOptions)||void 0===e?void 0:e.alwaysOn)?this.reconnect():h.k.info("Connection is now closed")}})}))}prepareHeartbeat(){var e,t,s,i;this.heartbeatSubscription&&this.heartbeatSubscription.unsubscribe();const o=()=>(0,r.__awaiter)(this,void 0,void 0,(function*(){if(!this.isConnected)return;const e={MESSAGE_TYPE:I.Cs.HEARTBEAT_PING,SOURCE_REF:this.uuid.createId()},t=yield this.send(e);this.heartbeatIsEnabled=t.MESSAGE_TYPE===I.Cs.HEARTBEAT_PONG&&t.SOURCE_REF===e.SOURCE_REF}));if(null!==(t=null===(e=this.connectOptions)||void 0===e?void 0:e.enableHeartbeat)&&void 0!==t?t:this.heartbeatIsEnabled){const e=null!==(i=null===(s=this.connectOptions)||void 0===s?void 0:s.heartbeatInterval)&&void 0!==i?i:this.heartbeatInterval;this.heartbeatSubscription=(0,U.H)(e,e).pipe((0,R.o)((()=>this.websocket&&this.isConnected)),(0,w.b)((()=>this.heartbeatLoggingIsEnabled&&h.k.debug(`Sending a heartbeat ping every ${e} ms`)))).subscribe((()=>o()))}}reconnect(){var e,t,s,r,i;const o=!(null===(e=this.connectOptions)||void 0===e?void 0:e.alwaysOn)&&!1===(null===(t=this.connectOptions)||void 0===t?void 0:t.enableHeartbeat);if(this.isReconnecting||o)return;this.isReconnecting=!0;const n=(null===(s=this.reconnectOptions)||void 0===s?void 0:s.reconnectStrategy)===V.Exponential?$:Y,a=this.isConnectedSubject.asObservable().pipe((0,_.w)((e=>e?(0,k.of)(-1):((e,t)=>new G.y((s=>{let r,i=0;return function o(){s.next(i),clearTimeout(r),r=setTimeout(o,t(e,i)),i+=1}(),()=>{clearTimeout(r)}})))(this.reconnectOptions,n).pipe((0,P.z)((e=>{var t,s,r;let i;return i=(null===(t=this.connectOptions)||void 0===t?void 0:t.alwaysOn)?e+1:null!==(r=null===(s=this.reconnectOptions)||void 0===s?void 0:s.reconnectAttempts)&&void 0!==r?r:10,e<i?(0,k.of)(e):(0,L._)((()=>new Error(`Max reconnect attempts ${i} reached.`)))}))))),(0,R.o)((()=>this.websocket&&!this.isConnected)));a.subscribe(null!==(i=null===(r=this.reconnectOptions)||void 0===r?void 0:r.reconnectObserver)&&void 0!==i?i:{next:e=>{h.k.debug(`Attempt no. ${e+1} to reconnect`),this.websocket.complete(),this.connect(this.url,this.connectOptions,this.reconnectOptions)},error:e=>{var t;h.k.debug(e),null===(t=this.socketSubscription)||void 0===t||t.unsubscribe(),this.isReconnecting=!1},complete:()=>{h.k.info(this.isConnected?"Reconnected":"Disconnected"),this.isReconnecting=!1,this.wsMessageHandlers.forEach((e=>{e.isSubscription&&this.websocket.next(e.sentMessage)}))}})}reset(){this.isConnected=!1,this.websocket&&this.websocket.complete(),this.websocket=null,this.cleanMessages()}cleanMessages(){this.wsMessages&&this.wsMessages.complete(),this.wsMessages=new B,this.wsMessageHandlers=new Map}send(e,t=!0){if(!this.isConnected)return void Promise.reject(new Error("WebSocket connection is closed"));const s=`Sending Message for SourceRef: ${e.SOURCE_REF} | MessageType: ${e.MESSAGE_TYPE}`;return this.logMessageTypeFlow(e.MESSAGE_TYPE,h.k.info,s),new Promise(((s,r)=>{const i=e=>{s(e)},o=e=>{r(e)};t&&this.setMessageHandler(e,i,o),this.websocket.next(e)}))}sendForStream(e,t,s){if(!this.isConnected)return(0,L._)((()=>new Error("WebSocket connection is closed")));if(!this.hasValidSession)return(0,L._)((()=>new Error("WebSocket connection is open but there is no valid/active session, please check your auth flow")));const r=`Sending Message (stream) for SourceRef: ${e.SOURCE_REF} | MessageType: ${e.MESSAGE_TYPE}`;return this.logMessageTypeFlow(e.MESSAGE_TYPE,h.k.info,r),this.setMessageHandler(e,t,s,!0),this.websocket.next(e),(0,g.D)(this.wsMessages.pipe((0,y.h)((t=>t.SOURCE_REF===e.SOURCE_REF))))}setMessageHandler(e,t,s,r=!1){const i=`Setting Message Handler for SourceRef: ${e.SOURCE_REF} | MessageType: ${e.MESSAGE_TYPE}`;this.logMessageTypeFlow(e.MESSAGE_TYPE,h.k.debug,i),this.wsMessageHandlers.set(e.SOURCE_REF,new K(e,t,s,r))}removeMessageHandler(e){this.wsMessageHandlers.delete(e)}getMessageHandler(e,t){const s=`Getting Message Handler for SourceRef: ${e} | MessageType: ${t}`;return this.logMessageTypeFlow(t,h.k.debug,s),this.wsMessageHandlers.get(e)}logMessageTypeFlow(e,t,s){switch(e){case I.Cs.HEARTBEAT_PING:case I.Cs.HEARTBEAT_PONG:this.heartbeatLoggingIsEnabled&&t(s);break;default:this.messageLoggingIsEnabled&&t(s)}}};(0,r.__decorate)([o.observable],W.prototype,"websocket",void 0),(0,r.__decorate)([o.observable],W.prototype,"wsMessages",void 0),(0,r.__decorate)([o.observable],W.prototype,"wsMessageHandlers",void 0),(0,r.__decorate)([o.observable],W.prototype,"isConnected",void 0),(0,r.__decorate)([o.observable],W.prototype,"disconnectedByServer",void 0),(0,r.__decorate)([o.observable],W.prototype,"hasValidSession",void 0),(0,r.__decorate)([o.observable],W.prototype,"heartbeatIsEnabled",void 0),(0,r.__decorate)([o.observable],W.prototype,"isReconnecting",void 0),W=(0,r.__decorate)([(0,r.__param)(0,I.sW),(0,r.__param)(1,v.z),(0,r.__param)(2,O),(0,r.__param)(3,i.UUID)],W);const x=n.DI.createInterface((e=>e.singleton(W))),Q={connect:{alwaysOn:!1,enableHeartbeat:!0,enableHeartbeatLogging:!1,heartbeatInterval:1e4,enableMessageLogging:!1},reconnect:{reconnectAttempts:10,reconnectInterval:1e4,reconnectStreams:!0}};let j=class{get isConnected(){return this.socket.isConnected}get isConnectedSubject(){return this.socket.isConnectedSubject}constructor(e,t,s,r=Q){this.socket=e,this.messageBuilder=t,this.metaCache=s,this.config=r,this.isWorking=!1}httpMode(){return!1}setValidSession(e){this.socket.hasValidSession=e}send(e,t){return this.socket.send(e,t)}connect(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){return this.socket.reset(),d.test(e)?this.socket.connect(e,this.config.connect,this.config.reconnect):(h.k.error(`Specified host (${e}) is not valid WebSocket url. Connection will not proceed.`),void h.k.warn("Make sure the host url starts with wss:// or ws://"))}))}disconnect(){this.socket.reset()}snapshot(e,t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const s=this.messageBuilder.createDataLogonMessage(e,t);return h.k.debug(`${s.MESSAGE_TYPE} (snapshot) message created -> `,s),this.socket.send(s)}))}stream(e,t,s,r){const i=this.messageBuilder.createDataLogonMessage(e,r);return h.k.debug(`${i.MESSAGE_TYPE} (stream) message created -> `,i),this.socket.sendForStream(i,t,s)}getMoreRows(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createMoreRowsMessage(e);return h.k.debug(`${t.MESSAGE_TYPE} message created -> `,t),this.socket.send(t,!1)}))}dataLogoff(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createDataLogoffMessage(e);return h.k.debug(`${t.MESSAGE_TYPE} message created -> `,t),this.socket.send(t)}))}getMetadata(e,t=!0){var s;return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(t&&this.metaCache.hasMetadataFor(e))return h.k.debug(`Cached metadata retrieved for ${e}`),this.metaCache.getMetadataFor(e);const r=this.messageBuilder.createMetaRequestMessage(e);let i;h.k.debug(`${r.MESSAGE_TYPE} (metadata) message created -> `,r);try{this.isWorking=!0;const t=yield this.socket.send(r);i=null!==(s=null==t?void 0:t.DETAILS)&&void 0!==s?s:{},Object.keys(i).length&&this.metaCache.setMetadataFor(e,i)}catch(e){h.k.error(e)}finally{this.isWorking=!1}return i}))}getJSONSchema(e,t=!0){var s;return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(t&&this.metaCache.hasJsonSchemaFor(e))return h.k.debug(`Cached JsonSchema retrieved for ${e}`),this.metaCache.getJsonSchemaFor(e);const r=this.messageBuilder.createMetaRequestMessage(e,I.N$.JSON_SCHEMA_REQUEST);let i;h.k.debug(`${r.MESSAGE_TYPE} (json schema) message created -> `,r);try{this.isWorking=!0,i=null!==(s=yield this.socket.send(r))&&void 0!==s?s:{},Object.keys(i).length&&this.metaCache.setJsonSchemaFor(e,i)}catch(e){h.k.error(e)}finally{this.isWorking=!1}return i}))}request(e,t){const s=this.messageBuilder.createRequestMessage(e,t);return h.k.debug(`${s.MESSAGE_TYPE} (request server) message created -> `,s),this.socket.send(s)}commitEvent(e,t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const s=this.messageBuilder.createCommitMessage(e,t);return h.k.debug(`${s.MESSAGE_TYPE} (commit) message created -> `,s),this.socket.send(s)}))}};(0,r.__decorate)([o.observable],j.prototype,"isWorking",void 0),(0,r.__decorate)([o.volatile],j.prototype,"isConnected",null),j=(0,r.__decorate)([(0,r.__param)(0,x),(0,r.__param)(1,I.sW),(0,r.__param)(2,c),(0,r.__param)(3,(0,n.optional)(E))],j);const J="true"===i.FORCE_HTTP||!1,z=n.DI.createInterface((e=>e.singleton(j))),q=n.DI.createInterface((e=>J?e.aliasTo(b):e.aliasTo(z)))},9162:(e,t,s)=>{"use strict";s.d(t,{Cs:()=>r,N$:()=>i,QT:()=>o,sW:()=>l});var r,i,o,n=s(186),a=s(7554),c=s(5951),d=s(4077),h=s(5527);!function(e){e.LOGON_ACK="LOGON_ACK",e.LOGON_NACK="LOGON_NACK",e.LOGOFF_ACK="LOGOFF_ACK",e.LOGOFF_NACK="LOGOFF_NACK",e.HEARTBEAT_PING="HEARTBEAT_PING",e.HEARTBEAT_PONG="HEARTBEAT_PONG",e.MORE_ROWS="MORE_ROWS",e.MSG_ACK="MSG_ACK",e.MSG_NACK="MSG_NACK",e.LOGOUT_ACK="LOGOUT_ACK",e.LOGOUT_NACK="LOGOUT_NACK",e.QUERY_UPDATE="QUERY_UPDATE"}(r||(r={})),function(e){e.EVENT_LOGIN_AUTH="EVENT_LOGIN_AUTH",e.EVENT_LOGIN_AUTH_ACK="EVENT_LOGIN_AUTH_ACK",e.EVENT_LOGIN_AUTH_NACK="EVENT_LOGIN_AUTH_NACK",e.EVENT_LOGOUT="EVENT_LOGOUT",e.DATA_LOGON="DATA_LOGON",e.DATA_LOGOFF="DATA_LOGOFF",e.META_REQUEST="META_REQUEST",e.JSON_SCHEMA_REQUEST="JSON_SCHEMA_REQUEST",e.RESOURCES_REQUEST="RESOURCES_REQUEST",e.EVENT_CHANGE_USER_PASSWORD="EVENT_CHANGE_USER_PASSWORD",e.EVENT_SELF_SERVICE_PASSWORD_RESET="EVENT_SELF_SERVICE_PASSWORD_RESET",e.EVENT_PASSWORD_RESET_ACTION="EVENT_PASSWORD_RESET_ACTION"}(i||(i={})),function(e){e.SESSION_NOT_FOUND="SESSION_NOT_FOUND",e.UNKNOWN_MESSAGE_TYPE="UNKNOWN_MESSAGE_TYPE"}(o||(o={}));let E=class{constructor(e,t){this.session=e,this.uuid=t}createLoginMessage(e){let t;switch(e.type){case d.G.BASIC:t={USER_NAME:e.username,PASSWORD:e.password};break;case d.G.REFRESH:t={USER_NAME:e.username,REFRESH_AUTH_TOKEN:e.refreshToken};break;case d.G.SSO:t={SSO_TOKEN:e.ssoToken};break;case d.G.JWT:t={JWT:e.jwt,DOMAIN:e.domain}}return{DETAILS:t,SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:i.EVENT_LOGIN_AUTH}}createLogoutMessage(e){var t,s;return{SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:i.EVENT_LOGOUT,SESSION_AUTH_TOKEN:null!==(t=e.authToken)&&void 0!==t?t:this.session.getSessionStorageItem("authToken"),SESSION_ID:null!==(s=e.sessionId)&&void 0!==s?s:this.session.getSessionStorageItem("sessionId")}}createDataLogonMessage(e,t){return{SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:i.DATA_LOGON,DETAILS:Object.assign({DATASOURCE_NAME:e},t),SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken")}}createDataLogoffMessage(e){return{SOURCE_REF:e,MESSAGE_TYPE:i.DATA_LOGOFF,SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken")}}createRequestMessage(e,t){return Object.assign({SOURCE_REF:this.uuid.createId(),SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken"),MESSAGE_TYPE:e.startsWith("REQ_")?e:`REQ_${e}`},t)}createMetaRequestMessage(e,t=i.META_REQUEST){return{SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:t,DETAILS:{FEATURE:e},SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken")}}createCommitMessage(e,t){return Object.assign({SOURCE_REF:this.uuid.createId(),SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken"),MESSAGE_TYPE:e},t)}createRefreshTokenMessage(){return{SOURCE_REF:this.uuid.createId(),SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken"),MESSAGE_TYPE:i.EVENT_LOGIN_AUTH,DETAILS:{REFRESH_AUTH_TOKEN:this.session.getSessionStorageItem("refreshToken")}}}createChangePasswordMessage(e,t,s){return{USER_NAME:e,SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:i.EVENT_CHANGE_USER_PASSWORD,DETAILS:{OLD_PASSWORD:t,NEW_PASSWORD:s}}}createForgotPasswordMessage(e,t,s=e){return{USER_NAME:s,SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:i.EVENT_SELF_SERVICE_PASSWORD_RESET,DETAILS:{USER_NAME:e,RETURN_URL:t}}}createForgotPasswordTokenMessage(e,t,s,r=e){return{USER_NAME:r,SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:i.EVENT_PASSWORD_RESET_ACTION,DETAILS:{USER_NAME:e,RESET_TOKEN:t,NEW_PASSWORD:s}}}createMoreRowsMessage(e){return{SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:r.MORE_ROWS,DETAILS:{SOURCE_REF:e},SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken")}}};E=(0,n.__decorate)([(0,n.__param)(0,h.z),(0,n.__param)(1,a.UUID)],E);const l=c.DI.createInterface((e=>e.singleton(E)))},5127:(e,t,s)=>{"use strict";s.d(t,{$:()=>i});var r=s(2296);function i(e,t="ROW_REF"){const s=e=>{const s=Object.assign(Object.assign({},e),{[t]:e.DETAILS[t]});return delete s.DETAILS,s},i=[],o=[],n=[];for(const t of e.ROW)if(t.DETAILS)switch(t.DETAILS.OPERATION){case"INSERT":i.push(s(t));break;case"MODIFY":n.push(s(t));break;case"DELETE":o.push(s(t));break;default:r.k.error(`Unsupported operation type: '${t.DETAILS.OPERATION}'`)}return{inserts:i,deletes:o,updates:n,SOURCE_REF:e.SOURCE_REF}}},1871:(e,t,s)=>{"use strict";s.d(t,{Yh:()=>F});var r=s(186),i=s(3147),o=s(5951),n=s(1057),a=s(1966),c=s(7211),d=s(9866),h=s(1440),E=s(9162);function l(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var r in s)e[r]=s[r]}return e}var u=function e(t,s){function r(e,r,i){if("undefined"!=typeof document){"number"==typeof(i=l({},s,i)).expires&&(i.expires=new Date(Date.now()+864e5*i.expires)),i.expires&&(i.expires=i.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var o="";for(var n in i)i[n]&&(o+="; "+n,!0!==i[n]&&(o+="="+i[n].split(";")[0]));return document.cookie=e+"="+t.write(r,e)+o}}return Object.create({set:r,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var s=document.cookie?document.cookie.split("; "):[],r={},i=0;i<s.length;i++){var o=s[i].split("="),n=o.slice(1).join("=");try{var a=decodeURIComponent(o[0]);if(r[a]=t.read(n,a),e===a)break}catch(e){}}return e?r[e]:r}},remove:function(e,t){r(e,"",l({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,l({},this.attributes,t))},withConverter:function(t){return e(l({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(s)},converter:{value:Object.freeze(t)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"}),S=s(4077),g=s(5527),_=s(2296);const T=o.DI.createInterface();function R(){return(null===navigator||void 0===navigator?void 0:navigator.credentials)?"PasswordCredential"in window||(_.k.warn("PasswordCredential not available in this browser."),!1):(_.k.warn("CredentialsContainer not available in this browser."),!1)}const p=":";function v(e="",t=p,s){return e.split(t,s).map((e=>e.trim())).filter((e=>""!==e))}function m(e,t=p){const s="string"==typeof e&&e.trim();return!!s&&s.includes(t)}function O(e,t=p){return"string"==typeof e&&e.trim()?(e.match(new RegExp(t,"g"))||[]).length:0}function A(e,t=p){for(const s of e)if(m(s,t))return s;return e.find((e=>"string"==typeof e&&!!e.trim()))}function f(e,t,s){const r="string"==typeof e&&e.trim();return!r||s&&!r.includes(s)||O(r)>1?s&&t&&s!==t?`${t}:${s}`:t||s:r}function I(e="credential"){_.k.warn(`Unable to migrate legacy ${e} to latest format. Please remove from your browser.`)}const M={password:!0,mediation:"optional"},N={cookie:{path:"/",name:"credentials",expires:7300,storePasswords:!1}};let b=class{constructor(e,t=N){this.session=e,this.config=t}createBasicCredentials(e){return{type:S.G.BASIC,username:e.username,password:e.password}}createRefreshCredentials(e){var t,s;return{type:S.G.REFRESH,username:null!==(t=null==e?void 0:e.username)&&void 0!==t?t:this.getUsername(),refreshToken:null!==(s=null==e?void 0:e.refreshToken)&&void 0!==s?s:this.getRefreshToken()}}createSSOCredentials(e){var t;return{type:S.G.SSO,ssoToken:null!==(t=null==e?void 0:e.ssoToken)&&void 0!==t?t:this.getSSOToken()}}validateBasicCredentials(e){return e&&!!e.username&&!!e.password}validateRefreshCredentials(e){return e&&!!e.refreshToken&&!!e.username}validateSSOCredentials(e){return e&&!!e.ssoToken}validateUserCredentialData(e,t){const s=e&&!!e.id&&!!e.name&&!e.name.includes(p)&&O(e.id)<=1;return t?s&&!!e.password:s}normaliseLegacyCredentialData(e,t){if(this.validateUserCredentialData(e,!0))return[e,!0];if(this.validateUserCredentialData(t))return[t,!1];if(e)try{const t=e,[s]=v(t.name||t.id),[r,i]=v(A([t.id,t.name]));return[{id:f(t.id||t.name,s,i),name:s,password:t.password||""},!0]}catch(e){I("PasswordCredential")}if(t)try{const e=t,[s]=v(e.name||e.username||e.organisation),[r,i]=v(A([e.organisation||e.username||e.name]));return[{id:f(e.id||e.username||e.name,s,i),name:s,password:e.password||""},!1]}catch(e){I("cookie")}return[void 0,!1]}storeCredentialsInContainer(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(!R())return;const t=new PasswordCredential(e);return _.k.debug("Storing credentials in CredentialsContainer"),navigator.credentials.store(t)}))}getCredentialsFromContainer(e=M){return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(R())return _.k.debug("Getting credentials from CredentialsContainer"),yield navigator.credentials.get(e)}))}storeCredentialsInCookie(e){const{password:t}=e,s=(0,r.__rest)(e,["password"]),i=this.config.cookie.storePasswords?e:s;return _.k.debug("Storing credentials in cookie"),!!u.set(this.config.cookie.name,JSON.stringify(i),{expires:this.config.cookie.expires,domain:location.hostname,path:this.config.cookie.path,secure:!0})}getCredentialsFromCookie(){_.k.debug("Getting credentials from cookie");const e=u.get(this.config.cookie.name);return e?JSON.parse(e):void 0}storeCredentials(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(R()){const t=yield this.storeCredentialsInContainer(e);return Promise.resolve(!!t)}return Promise.resolve(this.storeCredentialsInCookie(e))}))}getCredentials(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){return R()?this.getCredentialsFromContainer(e):Promise.resolve(this.getCredentialsFromCookie())}))}getSSOToken(){return this.session.getSessionStorageItem("ssoToken")}getUsername(){return this.session.getSessionStorageItem("username")}getRefreshToken(){return this.session.getSessionStorageItem("refreshToken")}removeCookie(){u.remove(this.config.cookie.name,{domain:location.hostname,path:this.config.cookie.path})}removeSSOToken(){this.session.removeSessionStorageItem("ssoToken")}removeUsername(){this.session.removeSessionStorageItem("username")}removeRefreshToken(){this.session.removeSessionStorageItem("refreshToken")}removeAll(){this.removeCookie(),this.removeSSOToken(),this.removeUsername(),this.removeRefreshToken()}preventSilentAccess(){return R()&&navigator.credentials.preventSilentAccess()}};b=(0,r.__decorate)([(0,r.__param)(0,g.z),(0,r.__param)(1,(0,o.optional)(T))],b);const C=o.DI.createInterface((e=>e.singleton(b)));class U{constructor(e){Object.assign(this,e)}hasAdminProfile(){return this.hasProfile("ADMIN")}hasPermission(e){return this.hasKey(this.permissions,e)}hasProfile(e){return this.hasKey(this.profiles,e)}hasKey(e,t){return!!(e&&e.length&&t)&&(Array.isArray(t)||(t=[t]),t.some((t=>e.includes(t))))}}(0,r.__decorate)([i.observable],U.prototype,"permissions",void 0),(0,r.__decorate)([i.observable],U.prototype,"profiles",void 0),(0,r.__decorate)([i.observable],U.prototype,"username",void 0);let k=class{get isLoggedIn(){return!!this.loggedUserResult&&!(!this.loggedUserResult.authToken||!this.loggedUserResult.sessionId)}constructor(e,t,s,r){this.session=e,this.connect=t,this.messageBuilder=s,this.credentialManager=r,this.isWorking=!1,this.loggedUserResult=null,this.currentUser=null}login(e){var t;return(0,r.__awaiter)(this,void 0,void 0,(function*(){this.isWorking=!0;try{const s=this.messageBuilder.createLoginMessage(e),r=yield this.connect.send(s);if(!r||r.ERROR||(null===(t=r.DETAILS)||void 0===t?void 0:t.ERROR))throw new S.l(s,r);this.applyAuthResults({authToken:r.SESSION_AUTH_TOKEN,refreshToken:r.REFRESH_AUTH_TOKEN,profiles:r.PROFILE,username:r.USER_NAME,permissions:r.PERMISSION,sessionId:r.SESSION_ID}),this.session.setAuthResult(r),_.k.debug("Login Authentication Result:",r)}catch(e){if(_.k.error("Login Authentication Error:",e),!(e instanceof S.l&&e.isIgnorableError()))throw this.removeAuthResults(),e;_.k.warn("Ignoring authentication error as it is a known edge case.")}finally{this.isWorking=!1}return this.loggedUserResult}))}logout(){var e;return(0,r.__awaiter)(this,void 0,void 0,(function*(){this.isWorking=!0;let t={success:!1};try{const s=this.messageBuilder.createLogoutMessage(this.loggedUserResult);this.session.deleteUserFromSessionStorage(),this.connect.setValidSession(!1);const{CODE:r,DETAILS:i,ERROR:o,MESSAGE_TYPE:n,OIDC_LOGOUT_URL:a}=yield this.connect.send(s),c=null!==(e=null==i?void 0:i.ERROR)&&void 0!==e?e:o,d=n===E.Cs.LOGOUT_NACK;d&&_.k.warn("Unexpected Logout NACK received during logout.",c),t={success:n===E.Cs.LOGOUT_ACK||r===E.QT.SESSION_NOT_FOUND||d,error:c},a&&window.open(a,"_self")}catch(e){const s=new S.l(e.sentMessage,e.receivedMessage);if(_.k.error("Logout Authentication Error:",s),!s.isIgnorableError())throw e;_.k.warn("Ignoring authentication error as it is a known edge case."),t.success=!0}finally{this.removeAuthResults(),this.isWorking=!1}return t}))}reAuthFromSession(){return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(yield this.ensureConnection()){const e=this.messageBuilder.createRefreshTokenMessage(),t=yield this.connect.send(e);if((null==t?void 0:t.MESSAGE_TYPE)===E.N$.EVENT_LOGIN_AUTH_ACK)return this.session.setAuthResult(t),this.connect.setValidSession(!0),this.applyAuthResults(this.getLoggedUserFromMessage(t)),!0}return this.session.deleteUserFromSessionStorage(),this.connect.setValidSession(!1),!1}))}ensureConnection(){return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(this.connect.isConnected)return!0;const e=this.session.getSessionStorageItem("hostUrl");return!!e&&this.connect.connect(e)}))}getLoggedUserFromMessage(e){const t=e.USER_NAME,s=e.SESSION_AUTH_TOKEN,r=e.REFRESH_AUTH_TOKEN;return t&&s&&r?{username:t,authToken:s,refreshToken:r,profiles:e.PROFILE,permissions:e.PERMISSION,sessionId:e.SESSION_ID}:null}applyAuthResults(e){e?(this.loggedUserResult={authToken:e.authToken,refreshToken:e.refreshToken,profiles:e.profiles,username:e.username,permissions:e.permissions,sessionId:e.sessionId},this.currentUser=new U({permissions:e.permissions,profiles:e.profiles,username:e.username})):this.removeAuthResults()}removeAuthResults(){this.loggedUserResult=null,this.currentUser=null}};(0,r.__decorate)([i.observable],k.prototype,"isWorking",void 0),(0,r.__decorate)([i.observable],k.prototype,"loggedUserResult",void 0),(0,r.__decorate)([i.observable],k.prototype,"currentUser",void 0),(0,r.__decorate)([i.volatile],k.prototype,"isLoggedIn",null),k=(0,r.__decorate)([(0,r.__param)(0,g.z),(0,r.__param)(1,h.lj),(0,r.__param)(2,E.sW),(0,r.__param)(3,C)],k);const L=o.DI.createInterface((e=>e.singleton(k)));var w=s(6306);var P=s(5127),y=s(2940);const D={options:{criteria:"",isSnapshot:!1,maxRows:y.WJ.MAX_ROWS_250,maxView:y.WJ.MAX_VIEW_1000,orderBy:"",resourceName:"",reverse:!1},criteriaToFields:function(e){const t=e.split("&&").map((e=>e.trim())),s={};return t.forEach((e=>{const t=e.substr(0,e.indexOf("=")).trim().replace(/["']/g,""),r=e.substr(e.lastIndexOf("=")+1,e.length).trim().replace(/["']/g,"");s[t]=r})),s},dataServerResultFilter:P.$};let G=class{constructor(e,t,s=D){this.connect=e,this.auth=t,this.config=s,this.initialized=!1,this.readOnly=!0,this.originalFieldDef=[],this.requestFields=[],this.fieldMetadata=[],this.availableIndexes=[]}init(e,t=!0){var s;return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(!this.validResourceName(null==e?void 0:e.resourceName))return!1;if(this.options=Object.assign(Object.assign({},this.config.options),e),t){_.k.debug(`Initializing ${this.options.resourceName} Datasource`);const t=yield this.connect.getMetadata(this.options.resourceName).catch((t=>_.k.error(`Metadata Fetch failed for ${e.resourceName}:`,t)));if(!t)return this.deinit(),!1;this.resourceType=t.TYPE,this.availableIndexes=null!==(s=t.INDEXES)&&void 0!==s?s:[],this.originalFieldDef=(0,w.C)(t),this.fieldMetadata=(0,w.i)(this.originalFieldDef),this.requestFields=t.REQUEST_FIELD||[],_.k.debug(`Datasource for ${this.options.resourceName} is ready`)}return this.options.isSnapshot||(this._stream=yield this.createStream()),this.initialized=!0,this.initialized}))}deinit(){this.initialized=!1,this.options=void 0,this.resourceType=void 0,this.availableIndexes=[],this.originalFieldDef=[],this.fieldMetadata=[],this.requestFields=[]}get stream(){return this._stream}get params(){const e={CRITERIA_MATCH:this.options.criteria,FIELDS:this.options.fields,MAX_ROWS:this.options.maxRows,MAX_VIEW:this.options.maxView,REQUEST:this.options.request,REVERSE:this.options.reverse};if(this.options.orderBy)if(this.availableIndexes.findIndex((e=>e.NAME===this.options.orderBy))>-1)e.ORDER_BY=this.options.orderBy;else{const e=this.availableIndexes.map((e=>e.NAME));_.k.warn("Specified [orderBy] index is not valid and will not be used. See https://learn.genesis.global/docs/database/data-types/index-entities/ - Available indexes:",e)}return _.k.debug("Getting configured params:",e),e}snapshot(){var e;return(0,r.__awaiter)(this,void 0,void 0,(function*(){switch(_.k.debug(`Requesting snapshot for ${this.options.resourceName} (${this.resourceType}).`),this.resourceType){case y._g.DATASERVER:return this.connect.snapshot(this.options.resourceName,this.params);case y._g.REQUEST_SERVER:{const t={DETAILS:Object.assign({},this.params),REQUEST:null},s={};if(this.requestFields.forEach((e=>{s[e.NAME]="*"})),t.REQUEST=s,null===(e=null==this?void 0:this.options)||void 0===e?void 0:e.criteria){const e=this.config.criteriaToFields(this.options.criteria);t.REQUEST=Object.assign(Object.assign({},t.REQUEST),e)}return this.connect.request(this.options.resourceName,t)}default:throw new Error(`Snapshot not supported for selected resource type: ${this.resourceType}`)}}))}snapshotFiltered(e="ROW_REF"){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=yield this.snapshot();return Array.isArray(t)?t:t.REPLY?t.REPLY:t.ROW?this.config.dataServerResultFilter(t,e).inserts:void 0}))}createStream(){return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(![y._g.DATASERVER,y._g.REQUEST_SERVER].includes(this.resourceType))throw new Error(`Streaming not supported for selected resource type: ${this.resourceType}`);return this.resourceType===y._g.DATASERVER?this.createDataserverStream():(_.k.debug(`Creating fake stream by polling ${this.options.resourceName} REQUEST_SERVER`),this.createReqRepStream())}))}createDataserverStream(){return(0,r.__awaiter)(this,void 0,void 0,(function*(){return this.connect.stream(this.options.resourceName,(e=>{}),(e=>_.k.error(e)),this.params)}))}createReqRepStream(){return(0,n.H)(0,y.WJ.REQ_REP_POLLING_INTERVAL_MS).pipe((0,c.o)((()=>this.connect.isConnected&&this.auth.isLoggedIn)),(0,d.w)((()=>(0,a.D)(this.snapshot()))))}validResourceName(e){return!!e&&!!e.trim().length}};(0,r.__decorate)([i.observable],G.prototype,"initialized",void 0),(0,r.__decorate)([i.observable],G.prototype,"readOnly",void 0),(0,r.__decorate)([i.volatile],G.prototype,"stream",null),G=(0,r.__decorate)([(0,r.__param)(0,h.lj),(0,r.__param)(1,L),(0,r.__param)(2,(0,o.optional)(y.tt))],G);const F=o.DI.createInterface((e=>e.transient(G)))},2940:(e,t,s)=>{"use strict";s.d(t,{_g:()=>r,WJ:()=>o,tt:()=>n});var r,i=s(5951);!function(e){e.DATASERVER="DATASERVER",e.EVENT_HANDLER="EVENT_HANDLER",e.REQUEST_SERVER="REQUEST_SERVER"}(r||(r={}));class o{}o.MAX_ROWS_250=250,o.MAX_VIEW_1000=1e3,o.REQ_REP_POLLING_INTERVAL_MS=1e4;const n=i.DI.createInterface()},2449:(e,t,s)=>{"use strict";function r(e,t=";"){return e?e.split(t).map((e=>e.trim())).sort(((e,t)=>e.localeCompare(t))).join(t):e}s.d(t,{p:()=>r})},3123:(e,t,s)=>{"use strict";var r;s.d(t,{r:()=>r,E:()=>i}),function(e){e.STRING="STRING",e.NUMBER="NUMBER",e.BOOLEAN="BOOLEAN",e.ENUM="ENUM",e.DATE="DATE",e.DATETIME="DATETIME",e.CUSTOM="CUSTOM"}(r||(r={}));const i={STRING:r.STRING,ENUM:r.ENUM,BOOLEAN:r.BOOLEAN,INT:r.NUMBER,DOUBLE:r.NUMBER,BIGDECIMAL:r.NUMBER,DATE:r.DATE,DATETIME:r.DATETIME}},6306:(e,t,s)=>{"use strict";s.d(t,{i:()=>n,C:()=>a});var r=s(2940),i=s(2296),o=s(3123);const n=e=>e?e.map((e=>{const t={name:e.NAME,type:o.E[e.TYPE]||o.r.STRING};if(e.TYPE===o.r.ENUM&&e.VALID_VALUES)try{t.enumOptions=Array.isArray(e.VALID_VALUES)?e.VALID_VALUES:e.VALID_VALUES.split("|")}catch(e){i.k.error(e),t.enumOptions=[]}return t})):null,a=e=>{const t=null==e?void 0:e.TYPE;if(t===r._g.DATASERVER)return e.FIELD||[];if(t===r._g.REQUEST_SERVER)return e.REPLY_FIELD||[];throw new Error(`Unsupported resource type: ${t}`)}},5527:(e,t,s)=>{"use strict";s.d(t,{z:()=>o});var r=s(5951);class i{constructor(){this.storageKeyPrefix="",this.returnUrl=this.getSessionStorageItem("returnUrl")||""}deleteUserFromSessionStorage(){["authToken","refreshToken","sessionId","ssoToken"].forEach((e=>this.removeSessionStorageItem(e)))}setStorageKeyPrefix(e){this.storageKeyPrefix=`${e.replace(/\s/g,"")}/`}setAuthResult(e){this.setSessionStorageItem("authToken",e.SESSION_AUTH_TOKEN),this.setSessionStorageItem("refreshToken",e.REFRESH_AUTH_TOKEN),this.setSessionStorageItem("username",e.USER_NAME),this.setSessionStorageItem("sessionId",e.SESSION_ID)}captureReturnUrl(){const{pathname:e,search:t,hash:s}=location;if("/login"===e)return;const r=`${"/"!==e?e:""}`;this.returnUrl=`${r}${t}${s}`,this.setSessionStorageItem("returnUrl",this.returnUrl)}setItem(e,t,s){"local"===s?localStorage.setItem(this.storageKeyPrefix+e,t):sessionStorage.setItem(this.storageKeyPrefix+e,t)}getItem(e,t){return"local"===t?localStorage.getItem(this.storageKeyPrefix+e):sessionStorage.getItem(this.storageKeyPrefix+e)}removeItem(e,t){"local"===t?localStorage.removeItem(this.storageKeyPrefix+e):sessionStorage.removeItem(this.storageKeyPrefix+e)}setLocalStorageItem(e,t){this.setItem(e,t,"local")}setSessionStorageItem(e,t){this.setItem(e,t,"session")}getLocalStorageItem(e){return this.getItem(e,"local")}getSessionStorageItem(e){return this.getItem(e,"session")}removeLocalStorageItem(e){this.removeItem(e,"local")}removeSessionStorageItem(e){this.removeItem(e,"session")}}const o=r.DI.createInterface((e=>e.singleton(i)))},2296:(e,t,s)=>{"use strict";s.d(t,{k:()=>i});var r=s(7554);const i=(0,r.createLogger)("foundation-comms")}}]);
3
- //# sourceMappingURL=905.5531d13d5df076edbd0f30ba591e04af439388ad950f6f87615e3a632cca7ec6.js.map
1
+ /*! For license information please see 905.905.8273beefe52abb3d5751.js.LICENSE.txt */
2
+ (self.webpackChunk_genesislcap_design_system_configurator=self.webpackChunk_genesislcap_design_system_configurator||[]).push([[905],{4077:(e,t,s)=>{"use strict";var r;s.d(t,{G:()=>r,l:()=>i}),function(e){e.BASIC="BASIC",e.SSO="SSO",e.JWT="JWT",e.REFRESH="REFRESH"}(r||(r={}));class i extends Error{constructor(e,t,s="Auth Failed \n"){super(s),this.sent=e,this.received=t,Object.setPrototypeOf(this,i.prototype)}isIgnorableError(){var e,t,s,r;return null===(r=null===(s=null===(t=null===(e=this.received)||void 0===e?void 0:e.DETAILS)||void 0===t?void 0:t.ERROR)||void 0===s?void 0:s.toLowerCase())||void 0===r?void 0:r.includes("request needs the user to be logged")}getMessageError(){var e,t;return Array.isArray(null===(e=this.received)||void 0===e?void 0:e.ERROR)?null===(t=this.received)||void 0===t?void 0:t.ERROR.map((e=>this.errorDetailFormatter(e))).join("\n"):""}getDetailsError(){var e,t,s,r;return Array.isArray(null===(t=null===(e=this.received)||void 0===e?void 0:e.DETAILS)||void 0===t?void 0:t.ERROR)?null===(r=null===(s=this.received)||void 0===s?void 0:s.DETAILS)||void 0===r?void 0:r.ERROR.map((e=>this.errorDetailFormatter(e))).join("\n"):""}hasPasswordExpiredError(){return this.hasErrorCode("PASSWORD_EXPIRED")}hasErrorCode(e){var t,s;return!!Array.isArray(null===(t=this.received)||void 0===t?void 0:t.ERROR)&&(null===(s=this.received)||void 0===s?void 0:s.ERROR.some((t=>t.CODE===e)))}errorDetailFormatter(e){return`\n ${e.CODE}: \n ${e.TEXT}`}}},1440:(e,t,s)=>{"use strict";s.d(t,{lj:()=>q});var r=s(186),i=s(9985),o=s(3147),n=s(5951);class a{constructor(){this.cachedMetadata=new Map,this.cachedJsonSchema=new Map}getMetadataFor(e){return this.cachedMetadata.get(e)}getJsonSchemaFor(e){return this.cachedJsonSchema.get(e)}hasMetadataFor(e){return this.cachedMetadata.has(e)}hasJsonSchemaFor(e){return this.cachedJsonSchema.has(e)}setMetadataFor(e,t){this.cachedMetadata.set(e,t)}setJsonSchemaFor(e,t){this.cachedJsonSchema.set(e,t)}}const c=n.DI.createInterface((e=>e.singleton(a))),d=new RegExp(/wss?:\/\/[-a-zA-Z0-9@:%._\+~#=]{1,256}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=]*)\b\/*$/,"i");var h=s(2296);const E=n.DI.createInterface(),l=n.DI.createInterface();var u=s(6714),S=s(5373),g=s(1966),_=s(9866),T=s(804),R=s(7211),p=s(4866),m=s(5527);class v{serialize(e){return JSON.stringify(e)}deserialize(e){return e?"string"==typeof e?JSON.parse(e):e.data?JSON.parse(e.data):e.text().then((e=>JSON.parse(e))):Promise.resolve({})}}const O=n.DI.createInterface((e=>e.singleton(v)));let A=class{constructor(e){this.serializer=e}get(e,t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const s=yield fetch(e,Object.assign(Object.assign({},t),{method:"GET"}));return(t.serializer||this.serializer).deserialize(s)}))}post(e,t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const s=yield fetch(e,Object.assign(Object.assign({},t),{method:"POST"}));return(t.serializer||this.serializer).deserialize(s)}))}};A=(0,r.__decorate)([(0,r.__param)(0,O)],A);const I=n.DI.createInterface((e=>e.singleton(A)));var f=s(9162);const M={polling:Object.assign({POLLING_MAP:{EVENT_AMEND_USER:{TEMP_FREQUENCY:500,AMOUNT_OF_POLLS:5,QUERIES:["ALL_USERS"]}},POLLING_INTERVAL_MAP:{ALL_TRADES:5e3,ALL_USERS:5e3,ALL_PROCESSES_STATUS:1e4},POLLING_FREQUENCY:5e3},{})};let N=class e{get isConnected(){return this._isConnected}set isConnected(e){this._isConnected=e,this.isConnectedSubject.next(this._isConnected)}constructor(e,t,s,r,i,o=M){this.http=e,this.messageBuilder=t,this.session=s,this.metaCache=r,this.serializer=i,this.config=o,this.isWorking=!1,this._isConnected=!1,this.isConnectedSubject=new u.X(this._isConnected),this.ongoingTurbo={},this.streams=new Map}checkHost(){return(0,r.__awaiter)(this,void 0,void 0,(function*(){try{return this.getMessage({MESSAGE_TYPE:f.Cs.HEARTBEAT_PING,SOURCE_REF:"host check"}).then((e=>e.MESSAGE_TYPE===f.Cs.HEARTBEAT_PONG))}catch(e){return h.k.error(e),!1}}))}send(t,s){return this.http.post(e.getUrl(this.host,t),{body:e.getBody(t),headers:e.getHeaders(t)})}httpMode(){return!0}setValidSession(e){h.k.warn("setValidSession() called while in http polling mode.")}connect(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){return this.host=e,this.host.endsWith("/")||(this.host=this.host.concat("/")),this.checkHost().then((e=>(this.isConnected=e,this.session.setSessionStorageItem("hostUrl",this.host),e)))}))}disconnect(){this.isConnected=!1,this.streams.clear(),this.ongoingTurbo={},this.host=void 0}snapshot(e,t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const s=this.messageBuilder.createDataLogonMessage(e,t);return h.k.debug(`HTTP MODE - ${s.MESSAGE_TYPE} (snapshot) message created -> `,s),this.send(s).then((e=>(this.dataLogoff(s.SOURCE_REF).catch((e=>h.k.error(e))),e)))}))}stream(e,t,s,r){const i=this.messageBuilder.createDataLogonMessage(e,r);h.k.debug(`HTTP MODE - ${i.MESSAGE_TYPE} (stream) message created -> `,i);const o=i.SOURCE_REF;this.streams.set(o,{SOURCE_REF:o,POLLING_FREQUENCY:new u.X(this.config.polling.POLLING_FREQUENCY),RESOURCE_NAME:e});const n=this.streams.get(o).POLLING_FREQUENCY,a=(0,S.z)((0,g.D)(this.send(i)),n.pipe((0,_.w)((e=>(0,T.F)(e)))).pipe((0,_.w)((()=>(0,g.D)(this.getMessage(i)))))).pipe((0,R.o)((()=>this.streams.has(o))),(0,p.x)((()=>{h.k.debug(`Terminating stream for ${e} - ${o}`),this.dataLogoff(o)})));return this.streams.get(o).STREAM=a,a}getMessage(t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){return this.http.get(e.getUrl(this.host,t),{headers:e.getHeaders(t)})}))}getMoreRows(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createMoreRowsMessage(e);return h.k.debug(`HTTP MODE - ${t.MESSAGE_TYPE} message created -> `,t),this.send(t)}))}dataLogoff(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createDataLogoffMessage(e);return this.send(t).then((t=>(this.streams.has(e)&&(h.k.debug(`Removing stream ${e}`),this.streams.delete(e)),t)))}))}getMetadata(e,t=!0){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createMetaRequestMessage(e);return h.k.debug(`HTTP MODE - ${t.MESSAGE_TYPE} (metadata) message created -> `,t),this.send(t).then((e=>e.DETAILS))}))}getJSONSchema(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createMetaRequestMessage(e,f.N$.JSON_SCHEMA_REQUEST);return h.k.debug(`HTTP MODE! - ${t.MESSAGE_TYPE} (json schema) message created -> `,t),this.send(t)}))}request(e,t){const s=this.messageBuilder.createRequestMessage(e,t);return h.k.debug(`HTTP MODE! - ${s.MESSAGE_TYPE} (request server) message created -> `,s),this.send(s)}commitEvent(e,t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const s=this.messageBuilder.createCommitMessage(e,t);return h.k.debug(`HTTP MODE! - ${s.MESSAGE_TYPE} (commit) message created -> `,s),this.send(s).then((t=>(this.maybeTurbo(e,t),t)))}))}maybeTurbo(e,t){var s;if(!(null===(s=null==t?void 0:t.MESSAGE_TYPE)||void 0===s?void 0:s.endsWith("_ACK")))return;if(this.ongoingTurbo[e])return void h.k.debug(`${e} polling frequency is already accelerated.`);const r=this.config.polling.POLLING_MAP[e];if(!(null==r?void 0:r.TEMP_FREQUENCY)||!r.AMOUNT_OF_POLLS)return;const i=r.TEMP_FREQUENCY,o=i*r.AMOUNT_OF_POLLS,n=JSON.parse(JSON.stringify(this.config.polling.POLLING_INTERVAL_MAP)),a=JSON.parse(JSON.stringify(this.config.polling.POLLING_INTERVAL_MAP));for(const e of r.QUERIES)a[e]=i,n[e]||(n[e]=this.config.polling.POLLING_FREQUENCY);h.k.debug(`${e} TRIGGERED -> ENFORCING TURBO | FREQUENCY=${i}ms DURATION=${o}`),this.ongoingTurbo[e]=!0,this.updateIntervals({polling:{POLLING_INTERVAL_MAP:a}}),setTimeout((()=>{h.k.debug(`RESTORED ORIGINAL POLLING INTERVALS FOR ${e}`),this.updateIntervals({polling:{POLLING_INTERVAL_MAP:n}}),this.ongoingTurbo[e]=!1}),o)}updateIntervals(e){const{POLLING_INTERVAL_MAP:t}=e.polling;t&&(this.config.polling.POLLING_INTERVAL_MAP=t,this.handlePollingIntervalMapUpdate(t))}handlePollingIntervalMapUpdate(e){if(e)for(const t in e){if(!e.hasOwnProperty(t))continue;const s=e[t];this.config.polling.POLLING_INTERVAL_MAP[t]=s,h.k.debug(`Setting polling frequency for ${t} = ${s}`),[...this.streams.values()].filter((e=>e.RESOURCE_NAME===t)).forEach((e=>{var t;return null===(t=null==e?void 0:e.POLLING_FREQUENCY)||void 0===t?void 0:t.next(s)}))}}static getHeaders(e){const t={"Content-type":"application/json; charset=UTF-8","source-ref":e.SOURCE_REF};return e.SESSION_AUTH_TOKEN&&(t["SESSION-AUTH-TOKEN"]=e.SESSION_AUTH_TOKEN),e.MESSAGE_TYPE===f.N$.EVENT_LOGOUT&&(t["SESSION-ID"]=e.SESSION_ID),t}static getBody(e){return JSON.stringify(e)}static getUrl(e,t){const s=t.MESSAGE_TYPE;let r=t.MESSAGE_TYPE.replace(/_/g,"-").toLowerCase();return s===f.N$.DATA_LOGON&&(r=t.DETAILS.DATASOURCE_NAME.replace(/_/g,"-").toLowerCase()),`${e}${r}`}};(0,r.__decorate)([o.observable],N.prototype,"host",void 0),(0,r.__decorate)([o.observable],N.prototype,"isWorking",void 0),(0,r.__decorate)([o.observable],N.prototype,"_isConnected",void 0),(0,r.__decorate)([o.volatile],N.prototype,"isConnected",null),N=(0,r.__decorate)([(0,r.__param)(0,I),(0,r.__param)(1,f.sW),(0,r.__param)(2,m.z),(0,r.__param)(3,c),(0,r.__param)(4,i.JSONSerializer),(0,r.__param)(5,(0,n.optional)(l))],N);const b=n.DI.createInterface((e=>e.singleton(N)));var C=s(3344),U=s(1057),k=s(7674),L=s(94),w=s(526),P=s(2040),y=s(8370),D=s(1262),G=s(9262);const F=1e4,H=6e4;var V;!function(e){e.Linear="linear",e.Exponential="exponential"}(V||(V={}));const $=(e,t)=>{const{reconnectInterval:s=F}=e,r=s>H?H:s,i=Math.round(Math.log2(H/r));return r*Math.pow(2,t%i)},Y=e=>{const{reconnectInterval:t=F}=e;return t>H?H:t};class B extends C.x{constructor(){super()}}class K{constructor(e,t,s,r){this._message=e,this._onMessage=t,this._onError=s,this._isSubscription=r}get sentMessage(){return this._message}get onReceivedMessage(){return this._onMessage}get onReceivedError(){return this._onError}get isSubscription(){return this._isSubscription}}let W=class{isConnectedChanged(e,t){this.isConnectedSubject.next(t)}constructor(e,t,s,r){this.messageBuilder=e,this.session=t,this.serializer=s,this.uuid=r,this.defaultInterval=1e4,this.secondsMultiplier=1e3,this.isConnectedSubject=new u.X(!1),this.isConnected=!1,this.hasValidSession=!1,this.heartbeatIsEnabled=!0,this.heartbeatInterval=this.defaultInterval,this.isReconnecting=!1,this.socketMessages=()=>this.wsMessages}get heartbeatLoggingIsEnabled(){var e,t;return null!==(t=null===(e=this.connectOptions)||void 0===e?void 0:e.enableHeartbeatLogging)&&void 0!==t&&t}get messageLoggingIsEnabled(){var e,t;return null!==(t=null===(e=this.connectOptions)||void 0===e?void 0:e.enableMessageLogging)&&void 0!==t&&t}connect(e,t,s){return this.url=e,this.connectOptions=t,this.reconnectOptions=s,new Promise((e=>{var t,s,i,o;h.k.info(`${this.isReconnecting?"Reconnecting":"Connecting"} to ${this.url}`);(!this.isReconnecting||!(null===(t=this.reconnectOptions)||void 0===t?void 0:t.reconnectStreams))&&this.cleanMessages(),null===(s=this.socketSubscription)||void 0===s||s.unsubscribe(),this.websocket=new D.p({url:this.url,openObserver:{next:()=>{this.isConnected=!0,this.session.setSessionStorageItem("hostUrl",this.url),this.prepareHeartbeat(),h.k.info("WebSocket connection is now open"),e(this.isConnected)}},closeObserver:{next:t=>{this.disconnectedByServer=!t.wasClean,this.isConnected=!1,this.disconnectedByServer&&h.k.info(`WebSocket connection was closed due an error - Code: ${t.code} ${t.reason?" | Reason: "+t.reason:""}`),e(this.isConnected)}},serializer:this.serializer.serialize,deserializer:this.serializer.deserialize});this.socketSubscription=this.websocket.subscribe(null!==(o=null===(i=this.connectOptions)||void 0===i?void 0:i.connectObserver)&&void 0!==o?o:{next:e=>(0,r.__awaiter)(this,void 0,void 0,(function*(){var t;const s=`Response Message received for SourceRef: ${e.SOURCE_REF} | MessageType: ${e.MESSAGE_TYPE}`;this.logMessageTypeFlow(e.MESSAGE_TYPE,h.k.info,s);const{SOURCE_REF:r,MESSAGE_TYPE:i}=e,o=this.getMessageHandler(r,i);if(!o)return;let n=!1;switch(e.MESSAGE_TYPE){case f.N$.EVENT_LOGIN_AUTH_ACK:{this.hasValidSession=!0;const s=e.DETAILS;s.HEARTBEAT_INTERVAL_SECS&&void 0===(null===(t=this.connectOptions)||void 0===t?void 0:t.heartbeatInterval)&&(this.heartbeatInterval=s.HEARTBEAT_INTERVAL_SECS*this.secondsMultiplier,this.prepareHeartbeat());break}case f.Cs.LOGOUT_ACK:return this.hasValidSession=!1,o.onReceivedMessage.call(this,e),void this.cleanMessages();case f.Cs.LOGON_ACK:return;case f.Cs.LOGOFF_ACK:if(e.LOGGED_OUT&&this.hasValidSession){const e=this.messageBuilder.createRefreshTokenMessage(),t=yield this.send(e);t?t.MESSAGE_TYPE===f.N$.EVENT_LOGIN_AUTH_ACK&&(this.session.setAuthResult(t),this.wsMessageHandlers.forEach((e=>{e.isSubscription&&(e.sentMessage.SESSION_AUTH_TOKEN=t.SESSION_AUTH_TOKEN,this.websocket.next(e.sentMessage))}))):this.hasValidSession=!1}break;case f.Cs.QUERY_UPDATE:if(!o.isSubscription){const e=this.messageBuilder.createDataLogoffMessage(r);this.send(e)}break;case f.Cs.MSG_NACK:n=!0}n?o.onReceivedError.call(this,{receivedMessage:e,sentMessage:o.sentMessage}):o.onReceivedMessage.call(this,e),this.wsMessages.next(e),o.isSubscription||this.removeMessageHandler(r)})),error:e=>{h.k.debug("Error found: ",e),this.reconnect()},complete:()=>{var e;this.disconnectedByServer&&(null===(e=this.connectOptions)||void 0===e?void 0:e.alwaysOn)?this.reconnect():h.k.info("Connection is now closed")}})}))}prepareHeartbeat(){var e,t,s,i;this.heartbeatSubscription&&this.heartbeatSubscription.unsubscribe();const o=()=>(0,r.__awaiter)(this,void 0,void 0,(function*(){if(!this.isConnected)return;const e={MESSAGE_TYPE:f.Cs.HEARTBEAT_PING,SOURCE_REF:this.uuid.createId()},t=yield this.send(e);this.heartbeatIsEnabled=t.MESSAGE_TYPE===f.Cs.HEARTBEAT_PONG&&t.SOURCE_REF===e.SOURCE_REF}));if(null!==(t=null===(e=this.connectOptions)||void 0===e?void 0:e.enableHeartbeat)&&void 0!==t?t:this.heartbeatIsEnabled){const e=null!==(i=null===(s=this.connectOptions)||void 0===s?void 0:s.heartbeatInterval)&&void 0!==i?i:this.heartbeatInterval;this.heartbeatSubscription=(0,U.H)(e,e).pipe((0,R.o)((()=>this.websocket&&this.isConnected)),(0,w.b)((()=>this.heartbeatLoggingIsEnabled&&h.k.debug(`Sending a heartbeat ping every ${e} ms`)))).subscribe((()=>o()))}}reconnect(){var e,t,s,r,i;const o=!(null===(e=this.connectOptions)||void 0===e?void 0:e.alwaysOn)&&!1===(null===(t=this.connectOptions)||void 0===t?void 0:t.enableHeartbeat);if(this.isReconnecting||o)return;this.isReconnecting=!0;const n=(null===(s=this.reconnectOptions)||void 0===s?void 0:s.reconnectStrategy)===V.Exponential?$:Y,a=this.isConnectedSubject.asObservable().pipe((0,_.w)((e=>e?(0,k.of)(-1):((e,t)=>new G.y((s=>{let r,i=0;return function o(){s.next(i),clearTimeout(r),r=setTimeout(o,t(e,i)),i+=1}(),()=>{clearTimeout(r)}})))(this.reconnectOptions,n).pipe((0,P.z)((e=>{var t,s,r;let i;return i=(null===(t=this.connectOptions)||void 0===t?void 0:t.alwaysOn)?e+1:null!==(r=null===(s=this.reconnectOptions)||void 0===s?void 0:s.reconnectAttempts)&&void 0!==r?r:10,e<i?(0,k.of)(e):(0,L._)((()=>new Error(`Max reconnect attempts ${i} reached.`)))}))))),(0,R.o)((()=>this.websocket&&!this.isConnected)));a.subscribe(null!==(i=null===(r=this.reconnectOptions)||void 0===r?void 0:r.reconnectObserver)&&void 0!==i?i:{next:e=>{h.k.debug(`Attempt no. ${e+1} to reconnect`),this.websocket.complete(),this.connect(this.url,this.connectOptions,this.reconnectOptions)},error:e=>{var t;h.k.debug(e),null===(t=this.socketSubscription)||void 0===t||t.unsubscribe(),this.isReconnecting=!1},complete:()=>{h.k.info(this.isConnected?"Reconnected":"Disconnected"),this.isReconnecting=!1,this.wsMessageHandlers.forEach((e=>{e.isSubscription&&this.websocket.next(e.sentMessage)}))}})}reset(){this.isConnected=!1,this.websocket&&this.websocket.complete(),this.websocket=null,this.cleanMessages()}cleanMessages(){this.wsMessages&&this.wsMessages.complete(),this.wsMessages=new B,this.wsMessageHandlers=new Map}send(e,t=!0){if(!this.isConnected)return void Promise.reject(new Error("WebSocket connection is closed"));const s=`Sending Message for SourceRef: ${e.SOURCE_REF} | MessageType: ${e.MESSAGE_TYPE}`;return this.logMessageTypeFlow(e.MESSAGE_TYPE,h.k.info,s),new Promise(((s,r)=>{const i=e=>{s(e)},o=e=>{r(e)};t&&this.setMessageHandler(e,i,o),this.websocket.next(e)}))}sendForStream(e,t,s){if(!this.isConnected)return(0,L._)((()=>new Error("WebSocket connection is closed")));if(!this.hasValidSession)return(0,L._)((()=>new Error("WebSocket connection is open but there is no valid/active session, please check your auth flow")));const r=`Sending Message (stream) for SourceRef: ${e.SOURCE_REF} | MessageType: ${e.MESSAGE_TYPE}`;return this.logMessageTypeFlow(e.MESSAGE_TYPE,h.k.info,r),this.setMessageHandler(e,t,s,!0),this.websocket.next(e),(0,g.D)(this.wsMessages.pipe((0,y.h)((t=>t.SOURCE_REF===e.SOURCE_REF))))}setMessageHandler(e,t,s,r=!1){const i=`Setting Message Handler for SourceRef: ${e.SOURCE_REF} | MessageType: ${e.MESSAGE_TYPE}`;this.logMessageTypeFlow(e.MESSAGE_TYPE,h.k.debug,i),this.wsMessageHandlers.set(e.SOURCE_REF,new K(e,t,s,r))}removeMessageHandler(e){this.wsMessageHandlers.delete(e)}getMessageHandler(e,t){const s=`Getting Message Handler for SourceRef: ${e} | MessageType: ${t}`;return this.logMessageTypeFlow(t,h.k.debug,s),this.wsMessageHandlers.get(e)}logMessageTypeFlow(e,t,s){switch(e){case f.Cs.HEARTBEAT_PING:case f.Cs.HEARTBEAT_PONG:this.heartbeatLoggingIsEnabled&&t(s);break;default:this.messageLoggingIsEnabled&&t(s)}}};(0,r.__decorate)([o.observable],W.prototype,"websocket",void 0),(0,r.__decorate)([o.observable],W.prototype,"wsMessages",void 0),(0,r.__decorate)([o.observable],W.prototype,"wsMessageHandlers",void 0),(0,r.__decorate)([o.observable],W.prototype,"isConnected",void 0),(0,r.__decorate)([o.observable],W.prototype,"disconnectedByServer",void 0),(0,r.__decorate)([o.observable],W.prototype,"hasValidSession",void 0),(0,r.__decorate)([o.observable],W.prototype,"heartbeatIsEnabled",void 0),(0,r.__decorate)([o.observable],W.prototype,"isReconnecting",void 0),W=(0,r.__decorate)([(0,r.__param)(0,f.sW),(0,r.__param)(1,m.z),(0,r.__param)(2,O),(0,r.__param)(3,i.UUID)],W);const x=n.DI.createInterface((e=>e.singleton(W))),j={connect:{alwaysOn:!1,enableHeartbeat:!0,enableHeartbeatLogging:!1,heartbeatInterval:1e4,enableMessageLogging:!1},reconnect:{reconnectAttempts:10,reconnectInterval:1e4,reconnectStreams:!0}};let Q=class{get isConnected(){return this.socket.isConnected}get isConnectedSubject(){return this.socket.isConnectedSubject}constructor(e,t,s,r=j){this.socket=e,this.messageBuilder=t,this.metaCache=s,this.config=r,this.isWorking=!1}httpMode(){return!1}setValidSession(e){this.socket.hasValidSession=e}send(e,t){return this.socket.send(e,t)}connect(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){return this.socket.reset(),d.test(e)?this.socket.connect(e,this.config.connect,this.config.reconnect):(h.k.error(`Specified host (${e}) is not valid WebSocket url. Connection will not proceed.`),void h.k.warn("Make sure the host url starts with wss:// or ws://"))}))}disconnect(){this.socket.reset()}snapshot(e,t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const s=this.messageBuilder.createDataLogonMessage(e,t);return h.k.debug(`${s.MESSAGE_TYPE} (snapshot) message created -> `,s),this.socket.send(s)}))}stream(e,t,s,r){const i=this.messageBuilder.createDataLogonMessage(e,r);return h.k.debug(`${i.MESSAGE_TYPE} (stream) message created -> `,i),this.socket.sendForStream(i,t,s)}getMoreRows(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createMoreRowsMessage(e);return h.k.debug(`${t.MESSAGE_TYPE} message created -> `,t),this.socket.send(t,!1)}))}dataLogoff(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createDataLogoffMessage(e);return h.k.debug(`${t.MESSAGE_TYPE} message created -> `,t),this.socket.send(t)}))}getMetadata(e,t=!0){var s;return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(t&&this.metaCache.hasMetadataFor(e))return h.k.debug(`Cached metadata retrieved for ${e}`),this.metaCache.getMetadataFor(e);const r=this.messageBuilder.createMetaRequestMessage(e);let i;h.k.debug(`${r.MESSAGE_TYPE} (metadata) message created -> `,r);try{this.isWorking=!0;const t=yield this.socket.send(r);i=null!==(s=null==t?void 0:t.DETAILS)&&void 0!==s?s:{},Object.keys(i).length&&this.metaCache.setMetadataFor(e,i)}catch(e){h.k.error(e)}finally{this.isWorking=!1}return i}))}getJSONSchema(e,t=!0){var s;return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(t&&this.metaCache.hasJsonSchemaFor(e))return h.k.debug(`Cached JsonSchema retrieved for ${e}`),this.metaCache.getJsonSchemaFor(e);const r=this.messageBuilder.createMetaRequestMessage(e,f.N$.JSON_SCHEMA_REQUEST);let i;h.k.debug(`${r.MESSAGE_TYPE} (json schema) message created -> `,r);try{this.isWorking=!0,i=null!==(s=yield this.socket.send(r))&&void 0!==s?s:{},Object.keys(i).length&&this.metaCache.setJsonSchemaFor(e,i)}catch(e){h.k.error(e)}finally{this.isWorking=!1}return i}))}request(e,t){const s=this.messageBuilder.createRequestMessage(e,t);return h.k.debug(`${s.MESSAGE_TYPE} (request server) message created -> `,s),this.socket.send(s)}commitEvent(e,t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const s=this.messageBuilder.createCommitMessage(e,t);return h.k.debug(`${s.MESSAGE_TYPE} (commit) message created -> `,s),this.socket.send(s)}))}};(0,r.__decorate)([o.observable],Q.prototype,"isWorking",void 0),(0,r.__decorate)([o.volatile],Q.prototype,"isConnected",null),Q=(0,r.__decorate)([(0,r.__param)(0,x),(0,r.__param)(1,f.sW),(0,r.__param)(2,c),(0,r.__param)(3,(0,n.optional)(E))],Q);const J="true"===i.FORCE_HTTP||!1,z=n.DI.createInterface((e=>e.singleton(Q))),q=n.DI.createInterface((e=>J?e.aliasTo(b):e.aliasTo(z)))},9162:(e,t,s)=>{"use strict";s.d(t,{Cs:()=>r,N$:()=>i,QT:()=>o,sW:()=>l});var r,i,o,n=s(186),a=s(9985),c=s(5951),d=s(4077),h=s(5527);!function(e){e.LOGON_ACK="LOGON_ACK",e.LOGON_NACK="LOGON_NACK",e.LOGOFF_ACK="LOGOFF_ACK",e.LOGOFF_NACK="LOGOFF_NACK",e.HEARTBEAT_PING="HEARTBEAT_PING",e.HEARTBEAT_PONG="HEARTBEAT_PONG",e.MORE_ROWS="MORE_ROWS",e.MSG_ACK="MSG_ACK",e.MSG_NACK="MSG_NACK",e.LOGOUT_ACK="LOGOUT_ACK",e.LOGOUT_NACK="LOGOUT_NACK",e.QUERY_UPDATE="QUERY_UPDATE"}(r||(r={})),function(e){e.EVENT_LOGIN_AUTH="EVENT_LOGIN_AUTH",e.EVENT_LOGIN_AUTH_ACK="EVENT_LOGIN_AUTH_ACK",e.EVENT_LOGIN_AUTH_NACK="EVENT_LOGIN_AUTH_NACK",e.EVENT_LOGOUT="EVENT_LOGOUT",e.DATA_LOGON="DATA_LOGON",e.DATA_LOGOFF="DATA_LOGOFF",e.META_REQUEST="META_REQUEST",e.JSON_SCHEMA_REQUEST="JSON_SCHEMA_REQUEST",e.RESOURCES_REQUEST="RESOURCES_REQUEST",e.EVENT_CHANGE_USER_PASSWORD="EVENT_CHANGE_USER_PASSWORD",e.EVENT_SELF_SERVICE_PASSWORD_RESET="EVENT_SELF_SERVICE_PASSWORD_RESET",e.EVENT_PASSWORD_RESET_ACTION="EVENT_PASSWORD_RESET_ACTION"}(i||(i={})),function(e){e.SESSION_NOT_FOUND="SESSION_NOT_FOUND",e.UNKNOWN_MESSAGE_TYPE="UNKNOWN_MESSAGE_TYPE"}(o||(o={}));let E=class{constructor(e,t){this.session=e,this.uuid=t}createLoginMessage(e){let t;switch(e.type){case d.G.BASIC:t={USER_NAME:e.username,PASSWORD:e.password};break;case d.G.REFRESH:t={USER_NAME:e.username,REFRESH_AUTH_TOKEN:e.refreshToken};break;case d.G.SSO:t={SSO_TOKEN:e.ssoToken};break;case d.G.JWT:t={JWT:e.jwt,DOMAIN:e.domain}}return{DETAILS:t,SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:i.EVENT_LOGIN_AUTH}}createLogoutMessage(e){var t,s;return{SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:i.EVENT_LOGOUT,SESSION_AUTH_TOKEN:null!==(t=e.authToken)&&void 0!==t?t:this.session.getSessionStorageItem("authToken"),SESSION_ID:null!==(s=e.sessionId)&&void 0!==s?s:this.session.getSessionStorageItem("sessionId")}}createDataLogonMessage(e,t){return{SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:i.DATA_LOGON,DETAILS:Object.assign({DATASOURCE_NAME:e},t),SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken")}}createDataLogoffMessage(e){return{SOURCE_REF:e,MESSAGE_TYPE:i.DATA_LOGOFF,SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken")}}createRequestMessage(e,t){return Object.assign({SOURCE_REF:this.uuid.createId(),SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken"),MESSAGE_TYPE:e.startsWith("REQ_")?e:`REQ_${e}`},t)}createMetaRequestMessage(e,t=i.META_REQUEST){return{SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:t,DETAILS:{FEATURE:e},SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken")}}createCommitMessage(e,t){return Object.assign({SOURCE_REF:this.uuid.createId(),SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken"),MESSAGE_TYPE:e},t)}createRefreshTokenMessage(){return{SOURCE_REF:this.uuid.createId(),SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken"),MESSAGE_TYPE:i.EVENT_LOGIN_AUTH,DETAILS:{REFRESH_AUTH_TOKEN:this.session.getSessionStorageItem("refreshToken")}}}createChangePasswordMessage(e,t,s){return{USER_NAME:e,SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:i.EVENT_CHANGE_USER_PASSWORD,DETAILS:{OLD_PASSWORD:t,NEW_PASSWORD:s}}}createForgotPasswordMessage(e,t,s=e){return{USER_NAME:s,SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:i.EVENT_SELF_SERVICE_PASSWORD_RESET,DETAILS:{USER_NAME:e,RETURN_URL:t}}}createForgotPasswordTokenMessage(e,t,s,r=e){return{USER_NAME:r,SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:i.EVENT_PASSWORD_RESET_ACTION,DETAILS:{USER_NAME:e,RESET_TOKEN:t,NEW_PASSWORD:s}}}createMoreRowsMessage(e){return{SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:r.MORE_ROWS,DETAILS:{SOURCE_REF:e},SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken")}}};E=(0,n.__decorate)([(0,n.__param)(0,h.z),(0,n.__param)(1,a.UUID)],E);const l=c.DI.createInterface((e=>e.singleton(E)))},5127:(e,t,s)=>{"use strict";s.d(t,{$:()=>i});var r=s(2296);function i(e,t="ROW_REF"){const s=e=>{const s=Object.assign(Object.assign({},e),{[t]:e.DETAILS[t]});return delete s.DETAILS,s},i=[],o=[],n=[];for(const t of e.ROW)if(t.DETAILS)switch(t.DETAILS.OPERATION){case"INSERT":i.push(s(t));break;case"MODIFY":n.push(s(t));break;case"DELETE":o.push(s(t));break;default:r.k.error(`Unsupported operation type: '${t.DETAILS.OPERATION}'`)}return{inserts:i,deletes:o,updates:n,SOURCE_REF:e.SOURCE_REF}}},1871:(e,t,s)=>{"use strict";s.d(t,{Yh:()=>F});var r=s(186),i=s(3147),o=s(5951),n=s(1057),a=s(1966),c=s(7211),d=s(9866),h=s(1440),E=s(9162);function l(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var r in s)e[r]=s[r]}return e}var u=function e(t,s){function r(e,r,i){if("undefined"!=typeof document){"number"==typeof(i=l({},s,i)).expires&&(i.expires=new Date(Date.now()+864e5*i.expires)),i.expires&&(i.expires=i.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var o="";for(var n in i)i[n]&&(o+="; "+n,!0!==i[n]&&(o+="="+i[n].split(";")[0]));return document.cookie=e+"="+t.write(r,e)+o}}return Object.create({set:r,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var s=document.cookie?document.cookie.split("; "):[],r={},i=0;i<s.length;i++){var o=s[i].split("="),n=o.slice(1).join("=");try{var a=decodeURIComponent(o[0]);if(r[a]=t.read(n,a),e===a)break}catch(e){}}return e?r[e]:r}},remove:function(e,t){r(e,"",l({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,l({},this.attributes,t))},withConverter:function(t){return e(l({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(s)},converter:{value:Object.freeze(t)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"}),S=s(4077),g=s(5527),_=s(2296);const T=o.DI.createInterface();function R(){return(null===navigator||void 0===navigator?void 0:navigator.credentials)?"PasswordCredential"in window||(_.k.warn("PasswordCredential not available in this browser."),!1):(_.k.warn("CredentialsContainer not available in this browser."),!1)}const p=":";function m(e="",t=p,s){return e.split(t,s).map((e=>e.trim())).filter((e=>""!==e))}function v(e,t=p){const s="string"==typeof e&&e.trim();return!!s&&s.includes(t)}function O(e,t=p){return"string"==typeof e&&e.trim()?(e.match(new RegExp(t,"g"))||[]).length:0}function A(e,t=p){for(const s of e)if(v(s,t))return s;return e.find((e=>"string"==typeof e&&!!e.trim()))}function I(e,t,s){const r="string"==typeof e&&e.trim();return!r||s&&!r.includes(s)||O(r)>1?s&&t&&s!==t?`${t}:${s}`:t||s:r}function f(e="credential"){_.k.warn(`Unable to migrate legacy ${e} to latest format. Please remove from your browser.`)}const M={password:!0,mediation:"optional"},N={cookie:{path:"/",name:"credentials",expires:7300,storePasswords:!1}};let b=class{constructor(e,t=N){this.session=e,this.config=t}createBasicCredentials(e){return{type:S.G.BASIC,username:e.username,password:e.password}}createRefreshCredentials(e){var t,s;return{type:S.G.REFRESH,username:null!==(t=null==e?void 0:e.username)&&void 0!==t?t:this.getUsername(),refreshToken:null!==(s=null==e?void 0:e.refreshToken)&&void 0!==s?s:this.getRefreshToken()}}createSSOCredentials(e){var t;return{type:S.G.SSO,ssoToken:null!==(t=null==e?void 0:e.ssoToken)&&void 0!==t?t:this.getSSOToken()}}validateBasicCredentials(e){return e&&!!e.username&&!!e.password}validateRefreshCredentials(e){return e&&!!e.refreshToken&&!!e.username}validateSSOCredentials(e){return e&&!!e.ssoToken}validateUserCredentialData(e,t){const s=e&&!!e.id&&!!e.name&&!e.name.includes(p)&&O(e.id)<=1;return t?s&&!!e.password:s}normaliseLegacyCredentialData(e,t){if(this.validateUserCredentialData(e,!0))return[e,!0];if(this.validateUserCredentialData(t))return[t,!1];if(e)try{const t=e,[s]=m(t.name||t.id),[r,i]=m(A([t.id,t.name]));return[{id:I(t.id||t.name,s,i),name:s,password:t.password||""},!0]}catch(e){f("PasswordCredential")}if(t)try{const e=t,[s]=m(e.name||e.username||e.organisation),[r,i]=m(A([e.organisation||e.username||e.name]));return[{id:I(e.id||e.username||e.name,s,i),name:s,password:e.password||""},!1]}catch(e){f("cookie")}return[void 0,!1]}storeCredentialsInContainer(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(!R())return;const t=new PasswordCredential(e);return _.k.debug("Storing credentials in CredentialsContainer"),navigator.credentials.store(t)}))}getCredentialsFromContainer(e=M){return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(R())return _.k.debug("Getting credentials from CredentialsContainer"),yield navigator.credentials.get(e)}))}storeCredentialsInCookie(e){const{password:t}=e,s=(0,r.__rest)(e,["password"]),i=this.config.cookie.storePasswords?e:s;return _.k.debug("Storing credentials in cookie"),!!u.set(this.config.cookie.name,JSON.stringify(i),{expires:this.config.cookie.expires,domain:location.hostname,path:this.config.cookie.path,secure:!0})}getCredentialsFromCookie(){_.k.debug("Getting credentials from cookie");const e=u.get(this.config.cookie.name);return e?JSON.parse(e):void 0}storeCredentials(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(R()){const t=yield this.storeCredentialsInContainer(e);return Promise.resolve(!!t)}return Promise.resolve(this.storeCredentialsInCookie(e))}))}getCredentials(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){return R()?this.getCredentialsFromContainer(e):Promise.resolve(this.getCredentialsFromCookie())}))}getSSOToken(){return this.session.getSessionStorageItem("ssoToken")}getUsername(){return this.session.getSessionStorageItem("username")}getRefreshToken(){return this.session.getSessionStorageItem("refreshToken")}removeCookie(){u.remove(this.config.cookie.name,{domain:location.hostname,path:this.config.cookie.path})}removeSSOToken(){this.session.removeSessionStorageItem("ssoToken")}removeUsername(){this.session.removeSessionStorageItem("username")}removeRefreshToken(){this.session.removeSessionStorageItem("refreshToken")}removeAll(){this.removeCookie(),this.removeSSOToken(),this.removeUsername(),this.removeRefreshToken()}preventSilentAccess(){return R()&&navigator.credentials.preventSilentAccess()}};b=(0,r.__decorate)([(0,r.__param)(0,g.z),(0,r.__param)(1,(0,o.optional)(T))],b);const C=o.DI.createInterface((e=>e.singleton(b)));class U{constructor(e){Object.assign(this,e)}hasAdminProfile(){return this.hasProfile("ADMIN")}hasPermission(e){return this.hasKey(this.permissions,e)}hasProfile(e){return this.hasKey(this.profiles,e)}hasKey(e,t){return!!(e&&e.length&&t)&&(Array.isArray(t)||(t=[t]),t.some((t=>e.includes(t))))}}(0,r.__decorate)([i.observable],U.prototype,"permissions",void 0),(0,r.__decorate)([i.observable],U.prototype,"profiles",void 0),(0,r.__decorate)([i.observable],U.prototype,"username",void 0);let k=class{get isLoggedIn(){return!!this.loggedUserResult&&!(!this.loggedUserResult.authToken||!this.loggedUserResult.sessionId)}constructor(e,t,s,r){this.session=e,this.connect=t,this.messageBuilder=s,this.credentialManager=r,this.isWorking=!1,this.loggedUserResult=null,this.currentUser=null}login(e){var t;return(0,r.__awaiter)(this,void 0,void 0,(function*(){this.isWorking=!0;try{const s=this.messageBuilder.createLoginMessage(e),r=yield this.connect.send(s);if(!r||r.ERROR||(null===(t=r.DETAILS)||void 0===t?void 0:t.ERROR))throw new S.l(s,r);this.applyAuthResults({authToken:r.SESSION_AUTH_TOKEN,refreshToken:r.REFRESH_AUTH_TOKEN,profiles:r.PROFILE,username:r.USER_NAME,permissions:r.PERMISSION,sessionId:r.SESSION_ID}),this.session.setAuthResult(r),_.k.debug("Login Authentication Result:",r)}catch(e){if(_.k.error("Login Authentication Error:",e),!(e instanceof S.l&&e.isIgnorableError()))throw this.removeAuthResults(),e;_.k.warn("Ignoring authentication error as it is a known edge case.")}finally{this.isWorking=!1}return this.loggedUserResult}))}logout(){var e;return(0,r.__awaiter)(this,void 0,void 0,(function*(){this.isWorking=!0;let t={success:!1};try{const s=this.messageBuilder.createLogoutMessage(this.loggedUserResult);this.session.deleteUserFromSessionStorage(),this.connect.setValidSession(!1);const{CODE:r,DETAILS:i,ERROR:o,MESSAGE_TYPE:n,OIDC_LOGOUT_URL:a}=yield this.connect.send(s),c=null!==(e=null==i?void 0:i.ERROR)&&void 0!==e?e:o,d=n===E.Cs.LOGOUT_NACK;d&&_.k.warn("Unexpected Logout NACK received during logout.",c),t={success:n===E.Cs.LOGOUT_ACK||r===E.QT.SESSION_NOT_FOUND||d,error:c},a&&window.open(a,"_self")}catch(e){const s=new S.l(e.sentMessage,e.receivedMessage);if(_.k.error("Logout Authentication Error:",s),!s.isIgnorableError())throw e;_.k.warn("Ignoring authentication error as it is a known edge case."),t.success=!0}finally{this.removeAuthResults(),this.isWorking=!1}return t}))}reAuthFromSession(){return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(yield this.ensureConnection()){const e=this.messageBuilder.createRefreshTokenMessage(),t=yield this.connect.send(e);if((null==t?void 0:t.MESSAGE_TYPE)===E.N$.EVENT_LOGIN_AUTH_ACK)return this.session.setAuthResult(t),this.connect.setValidSession(!0),this.applyAuthResults(this.getLoggedUserFromMessage(t)),!0}return this.session.deleteUserFromSessionStorage(),this.connect.setValidSession(!1),!1}))}ensureConnection(){return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(this.connect.isConnected)return!0;const e=this.session.getSessionStorageItem("hostUrl");return!!e&&this.connect.connect(e)}))}getLoggedUserFromMessage(e){const t=e.USER_NAME,s=e.SESSION_AUTH_TOKEN,r=e.REFRESH_AUTH_TOKEN;return t&&s&&r?{username:t,authToken:s,refreshToken:r,profiles:e.PROFILE,permissions:e.PERMISSION,sessionId:e.SESSION_ID}:null}applyAuthResults(e){e?(this.loggedUserResult={authToken:e.authToken,refreshToken:e.refreshToken,profiles:e.profiles,username:e.username,permissions:e.permissions,sessionId:e.sessionId},this.currentUser=new U({permissions:e.permissions,profiles:e.profiles,username:e.username})):this.removeAuthResults()}removeAuthResults(){this.loggedUserResult=null,this.currentUser=null}};(0,r.__decorate)([i.observable],k.prototype,"isWorking",void 0),(0,r.__decorate)([i.observable],k.prototype,"loggedUserResult",void 0),(0,r.__decorate)([i.observable],k.prototype,"currentUser",void 0),(0,r.__decorate)([i.volatile],k.prototype,"isLoggedIn",null),k=(0,r.__decorate)([(0,r.__param)(0,g.z),(0,r.__param)(1,h.lj),(0,r.__param)(2,E.sW),(0,r.__param)(3,C)],k);const L=o.DI.createInterface((e=>e.singleton(k)));var w=s(6306);var P=s(5127),y=s(2940);const D={options:{criteria:"",isSnapshot:!1,maxRows:y.WJ.MAX_ROWS_250,maxView:y.WJ.MAX_VIEW_1000,orderBy:"",resourceName:"",reverse:!1},criteriaToFields:function(e){const t=e.split("&&").map((e=>e.trim())),s={};return t.forEach((e=>{const t=e.substr(0,e.indexOf("=")).trim().replace(/["']/g,""),r=e.substr(e.lastIndexOf("=")+1,e.length).trim().replace(/["']/g,"");s[t]=r})),s},dataServerResultFilter:P.$};let G=class{constructor(e,t,s=D){this.connect=e,this.auth=t,this.config=s,this.initialized=!1,this.readOnly=!0,this.originalFieldDef=[],this.requestFields=[],this.fieldMetadata=[],this.availableIndexes=[]}init(e,t=!0){var s;return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(!this.validResourceName(null==e?void 0:e.resourceName))return!1;if(this.options=Object.assign(Object.assign({},this.config.options),e),t){_.k.debug(`Initializing ${this.options.resourceName} Datasource`);const t=yield this.connect.getMetadata(this.options.resourceName).catch((t=>_.k.error(`Metadata Fetch failed for ${e.resourceName}:`,t)));if(!t)return this.deinit(),!1;this.resourceType=t.TYPE,this.availableIndexes=null!==(s=t.INDEXES)&&void 0!==s?s:[],this.originalFieldDef=(0,w.C)(t),this.fieldMetadata=(0,w.i)(this.originalFieldDef),this.requestFields=t.REQUEST_FIELD||[],_.k.debug(`Datasource for ${this.options.resourceName} is ready`)}return this.options.isSnapshot||(this._stream=yield this.createStream()),this.initialized=!0,this.initialized}))}deinit(){this.initialized=!1,this.options=void 0,this.resourceType=void 0,this.availableIndexes=[],this.originalFieldDef=[],this.fieldMetadata=[],this.requestFields=[]}get stream(){return this._stream}get params(){const e={CRITERIA_MATCH:this.options.criteria,FIELDS:this.options.fields,MAX_ROWS:this.options.maxRows,MAX_VIEW:this.options.maxView,REQUEST:this.options.request,REVERSE:this.options.reverse};if(this.options.orderBy)if(this.availableIndexes.findIndex((e=>e.NAME===this.options.orderBy))>-1)e.ORDER_BY=this.options.orderBy;else{const e=this.availableIndexes.map((e=>e.NAME));_.k.warn("Specified [orderBy] index is not valid and will not be used. See https://learn.genesis.global/docs/database/data-types/index-entities/ - Available indexes:",e)}return _.k.debug("Getting configured params:",e),e}snapshot(){var e;return(0,r.__awaiter)(this,void 0,void 0,(function*(){switch(_.k.debug(`Requesting snapshot for ${this.options.resourceName} (${this.resourceType}).`),this.resourceType){case y._g.DATASERVER:return this.connect.snapshot(this.options.resourceName,this.params);case y._g.REQUEST_SERVER:{const t=this.params,{REQUEST:s,CRITERIA_MATCH:i}=t,o={DETAILS:(0,r.__rest)(t,["REQUEST","CRITERIA_MATCH"]),REQUEST:Object.assign(Object.assign(Object.assign({},Object.fromEntries(this.requestFields.map((e=>[e.NAME,"*"])))),this.params.REQUEST),(null===(e=null==this?void 0:this.options)||void 0===e?void 0:e.criteria)?this.config.criteriaToFields(this.options.criteria):{})};return this.connect.request(this.options.resourceName,o)}default:throw new Error(`Snapshot not supported for selected resource type: ${this.resourceType}`)}}))}snapshotFiltered(e="ROW_REF"){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=yield this.snapshot();return Array.isArray(t)?t:t.REPLY?t.REPLY:t.ROW?this.config.dataServerResultFilter(t,e).inserts:void 0}))}createStream(){return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(![y._g.DATASERVER,y._g.REQUEST_SERVER].includes(this.resourceType))throw new Error(`Streaming not supported for selected resource type: ${this.resourceType}`);return this.resourceType===y._g.DATASERVER?this.createDataserverStream():(_.k.debug(`Creating fake stream by polling ${this.options.resourceName} REQUEST_SERVER`),this.createReqRepStream())}))}createDataserverStream(){return(0,r.__awaiter)(this,void 0,void 0,(function*(){return this.connect.stream(this.options.resourceName,(e=>{}),(e=>_.k.error(e)),this.params)}))}createReqRepStream(){return(0,n.H)(0,y.WJ.REQ_REP_POLLING_INTERVAL_MS).pipe((0,c.o)((()=>this.connect.isConnected&&this.auth.isLoggedIn)),(0,d.w)((()=>(0,a.D)(this.snapshot()))))}validResourceName(e){return!!e&&!!e.trim().length}};(0,r.__decorate)([i.observable],G.prototype,"initialized",void 0),(0,r.__decorate)([i.observable],G.prototype,"readOnly",void 0),(0,r.__decorate)([i.volatile],G.prototype,"stream",null),G=(0,r.__decorate)([(0,r.__param)(0,h.lj),(0,r.__param)(1,L),(0,r.__param)(2,(0,o.optional)(y.tt))],G);const F=o.DI.createInterface((e=>e.transient(G)))},2940:(e,t,s)=>{"use strict";s.d(t,{_g:()=>r,WJ:()=>o,tt:()=>n});var r,i=s(5951);!function(e){e.DATASERVER="DATASERVER",e.EVENT_HANDLER="EVENT_HANDLER",e.REQUEST_SERVER="REQUEST_SERVER"}(r||(r={}));class o{}o.MAX_ROWS_250=250,o.MAX_VIEW_1000=1e3,o.REQ_REP_POLLING_INTERVAL_MS=1e4;const n=i.DI.createInterface()},2449:(e,t,s)=>{"use strict";function r(e,t=";"){return e?e.split(t).map((e=>e.trim())).sort(((e,t)=>e.localeCompare(t))).join(t):e}s.d(t,{p:()=>r})},3123:(e,t,s)=>{"use strict";var r;s.d(t,{r:()=>r,E:()=>i}),function(e){e.STRING="STRING",e.NUMBER="NUMBER",e.BOOLEAN="BOOLEAN",e.ENUM="ENUM",e.DATE="DATE",e.DATETIME="DATETIME",e.CUSTOM="CUSTOM"}(r||(r={}));const i={STRING:r.STRING,ENUM:r.ENUM,BOOLEAN:r.BOOLEAN,INT:r.NUMBER,DOUBLE:r.NUMBER,BIGDECIMAL:r.NUMBER,DATE:r.DATE,DATETIME:r.DATETIME}},6306:(e,t,s)=>{"use strict";s.d(t,{i:()=>n,C:()=>a});var r=s(2940),i=s(2296),o=s(3123);const n=e=>e?e.map((e=>{const t={name:e.NAME,type:o.E[e.TYPE]||o.r.STRING};if(e.TYPE===o.r.ENUM&&e.VALID_VALUES)try{t.enumOptions=Array.isArray(e.VALID_VALUES)?e.VALID_VALUES:e.VALID_VALUES.split("|")}catch(e){i.k.error(e),t.enumOptions=[]}return t})):null,a=e=>{const t=null==e?void 0:e.TYPE;if(t===r._g.DATASERVER)return e.FIELD||[];if(t===r._g.REQUEST_SERVER)return e.REPLY_FIELD||[];throw new Error(`Unsupported resource type: ${t}`)}},5527:(e,t,s)=>{"use strict";s.d(t,{z:()=>o});var r=s(5951);class i{constructor(){this.storageKeyPrefix="",this.returnUrl=this.getSessionStorageItem("returnUrl")||""}deleteUserFromSessionStorage(){["authToken","refreshToken","sessionId","ssoToken"].forEach((e=>this.removeSessionStorageItem(e)))}setStorageKeyPrefix(e){this.storageKeyPrefix=`${e.replace(/\s/g,"")}/`}setAuthResult(e){this.setSessionStorageItem("authToken",e.SESSION_AUTH_TOKEN),this.setSessionStorageItem("refreshToken",e.REFRESH_AUTH_TOKEN),this.setSessionStorageItem("username",e.USER_NAME),this.setSessionStorageItem("sessionId",e.SESSION_ID)}captureReturnUrl(){const{pathname:e,search:t,hash:s}=location;if("/login"===e)return;const r=`${"/"!==e?e:""}`;this.returnUrl=`${r}${t}${s}`,this.setSessionStorageItem("returnUrl",this.returnUrl)}setItem(e,t,s){"local"===s?localStorage.setItem(this.storageKeyPrefix+e,t):sessionStorage.setItem(this.storageKeyPrefix+e,t)}getItem(e,t){return"local"===t?localStorage.getItem(this.storageKeyPrefix+e):sessionStorage.getItem(this.storageKeyPrefix+e)}removeItem(e,t){"local"===t?localStorage.removeItem(this.storageKeyPrefix+e):sessionStorage.removeItem(this.storageKeyPrefix+e)}setLocalStorageItem(e,t){this.setItem(e,t,"local")}setSessionStorageItem(e,t){this.setItem(e,t,"session")}getLocalStorageItem(e){return this.getItem(e,"local")}getSessionStorageItem(e){return this.getItem(e,"session")}removeLocalStorageItem(e){this.removeItem(e,"local")}removeSessionStorageItem(e){this.removeItem(e,"session")}}const o=r.DI.createInterface((e=>e.singleton(i)))},2296:(e,t,s)=>{"use strict";s.d(t,{k:()=>i});var r=s(9985);const i=(0,r.createLogger)("foundation-comms")}}]);
3
+ //# sourceMappingURL=905.985440d3dae56c80a6835dc0b8d576c95452fb3c9b02f8f2a2d6cb87c7b70db8.js.map