@genesislcap/foundation-filters 10.3.1 → 11.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/esm/clientFilter.js +0 -1
  2. package/dist/esm/index.federated.js +0 -1
  3. package/dist/esm/index.js +0 -1
  4. package/dist/esm/logger.js +0 -1
  5. package/dist/esm/nodeEnv.js +0 -1
  6. package/dist/esm/percentage.js +0 -1
  7. package/dist/esm/timeWindow.js +0 -1
  8. package/dist/esm/urlTargeting.js +0 -1
  9. package/dist/esm/userAgent.js +0 -1
  10. package/dist/esm/userTargeting.js +0 -1
  11. package/package.json +9 -9
  12. package/dist/1.0.0.remoteEntry.js +0 -1
  13. package/dist/191.191.64feeeeeb6c4132a6cae.js +0 -2
  14. package/dist/191.d7c8a7fc5c69e4190ea53a04618e0459.js.map +0 -1
  15. package/dist/195.195.2c71a4e018ba860ab228.js +0 -3
  16. package/dist/195.195.2c71a4e018ba860ab228.js.LICENSE.txt +0 -4
  17. package/dist/195.331a5c4d39a8a3d001d3344cb66ef3b8.js.map +0 -1
  18. package/dist/259.0acac2573f700ecd1acac239926438a5.js.map +0 -1
  19. package/dist/259.259.3aa926921ed1388957f1.js +0 -2
  20. package/dist/338.338.c434e489a32baf39cd87.js +0 -3
  21. package/dist/338.338.c434e489a32baf39cd87.js.LICENSE.txt +0 -1
  22. package/dist/338.7599ca6bfb22a577f22bd3c11b2c0572.js.map +0 -1
  23. package/dist/410.410.031f66ffbcf4bf05afae.js +0 -2
  24. package/dist/410.b5df595dde82c180f8072c152d5025dc.js.map +0 -1
  25. package/dist/755.4c1f4222984d24c7013718b57103ff64.js.map +0 -1
  26. package/dist/755.755.9f354749affd2774fbd7.js +0 -2
  27. package/dist/dashboard.json +0 -1
  28. package/dist/esm/clientFilter.js.map +0 -1
  29. package/dist/esm/index.federated.js.map +0 -1
  30. package/dist/esm/index.js.map +0 -1
  31. package/dist/esm/logger.js.map +0 -1
  32. package/dist/esm/nodeEnv.js.map +0 -1
  33. package/dist/esm/percentage.js.map +0 -1
  34. package/dist/esm/timeWindow.js.map +0 -1
  35. package/dist/esm/urlTargeting.js.map +0 -1
  36. package/dist/esm/userAgent.js.map +0 -1
  37. package/dist/esm/userTargeting.js.map +0 -1
  38. package/dist/favicon.ico +0 -0
  39. package/dist/foundation-filters.iife.min.js +0 -3
  40. package/dist/foundation-filters.js +0 -8600
  41. package/dist/foundation-filters.min.js +0 -3
  42. package/dist/foundationFilters.c215c391804c7400e051faaa0c3bf084.js.map +0 -1
  43. package/dist/index.ejs +0 -23
  44. package/dist/index.html +0 -16
  45. package/dist/info.ejs +0 -13
  46. package/dist/main.0dbc201064444b951ecd1ab1970f319a.js.map +0 -1
  47. package/dist/main.911a7c169eb76daac8fb.js +0 -2
  48. package/dist/npm.analytics.343.d4561facd9660fd45482.js +0 -2
  49. package/dist/npm.analytics.50acd47759b15e99bc3ad79caad7c672.js.map +0 -1
  50. package/dist/npm.consola.0f92c98545c00deac8a01e6e5c25e63c.js.map +0 -1
  51. package/dist/npm.consola.713.4cfd0e26a2fd1e472409.js +0 -2
  52. package/dist/npm.finos.690.4b909dcccf246b8fb074.js +0 -2
  53. package/dist/npm.finos.83f8bd7cc8c58aabd1049256a8d005fe.js.map +0 -1
  54. package/dist/npm.microsoft.127.2934a743e3e0797a43e6.js +0 -1469
  55. package/dist/npm.microsoft.127.2934a743e3e0797a43e6.js.LICENSE.txt +0 -14
  56. package/dist/npm.microsoft.e17056c760df168ceb07617558d61f7e.js.map +0 -1
  57. package/dist/npm.rxjs.271.11caf676e6c2aaf1715a.js +0 -2
  58. package/dist/npm.rxjs.2d42120c7dd915e4ea92bdec64a19f45.js.map +0 -1
  59. package/dist/npm.ua-parser-js.809.92491f7cd444ab77d377.js +0 -2
  60. package/dist/npm.ua-parser-js.b1390f6f6c6080318a30bc73abe8add8.js.map +0 -1
  61. package/dist/remoteEntry.js +0 -2
  62. package/dist/serve.json +0 -3
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack://@genesislcap/foundation-filters/../node_modules/analytics-utils/dist/analytics-utils.module.js","webpack://@genesislcap/foundation-filters/../node_modules/dlv/dist/dlv.umd.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/utils/logger.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/analytics/analytics.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/metadata/metadata.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/utils/regex.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/utils/until.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/session/session.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/connect/serializers.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/connect/http.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/auth/auth.types.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/connect/message.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/connect/connect.types.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/connect/http.connect.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/connect/reconnectStrategy.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/connect/socket.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/connect/env-variables.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/connect/connect.js","webpack://@genesislcap/foundation-filters/../node_modules/js-cookie/dist/js.cookie.mjs","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/credentialManager/credentialManager.types.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/credentialManager/credentialManager.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/user/user.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/auth/auth.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/datasource/datasource.types.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/metadata/metadata.types.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/metadata/metadata.utils.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/datasource/datasource.js","webpack://@genesislcap/foundation-filters/../foundation-comms/dist/esm/fdc3/fdc3.js"],"names":["n","e","decodeURIComponent","replace","o","r","navigator","t","languages","userLanguage","length","language","a","Intl","DateTimeFormat","resolvedOptions","timeZone","s","Object","create","exec","i","substring","push","u","c","split","m","map","match","window","location","search","y","Math","random","toString","module","exports","logger","createLogger","FoundationAnalyticsEventType","FoundationAnalyticsService","constructor","config","this","analytics","trackEvent","eventName","payload","debug","JSON","stringify","track","FoundationAnalytics","DI","x","singleton","MetadataService","cachedMetadata","Map","getMetadataFor","resourceName","get","hasMetadataFor","has","setMetadataFor","metadata","set","__decorate","observable","prototype","MetadataCache","isWebSocketExpression","RegExp","until","conditionFunc","timeoutMs","poll","resolve","setTimeout","Promise","SessionService","storageKeyPrefix","returnUrl","getSessionStorageItem","deleteUserFromSessionStorage","forEach","key","removeSessionStorageItem","setStorageKeyPrefix","prefix","setAuthResult","result","setSessionStorageItem","SESSION_AUTH_TOKEN","REFRESH_AUTH_TOKEN","USER_NAME","SESSION_ID","captureReturnUrl","pathname","hash","path","setItem","value","storage","localStorage","sessionStorage","getItem","removeItem","setLocalStorageItem","getLocalStorageItem","removeLocalStorageItem","Session","JSONSerializer","serialize","object","deserialize","input","parse","data","text","then","Serializer","HttpService","serializer","url","requestInit","__awaiter","response","fetch","assign","method","post","__param","Http","AuthType","MessageType","EventMessageType","MessageCode","AuthError","Error","sent","received","message","super","setPrototypeOf","isIgnorableError","_a","_b","_c","_d","DETAILS","ERROR","toLowerCase","includes","getMessageError","Array","isArray","error","errorDetailFormatter","join","getDetailsError","hasPasswordExpiredError","hasErrorCode","code","some","CODE","TEXT","messageOrThrow","MessageBuilderService","session","uuid","createLoginMessage","credentials","type","BASIC","username","PASSWORD","password","REFRESH","refreshToken","SSO","SSO_TOKEN","ssoToken","JWT","jwt","DOMAIN","domain","SOURCE_REF","createId","MESSAGE_TYPE","EVENT_LOGIN_AUTH","createLogoutMessage","loginResult","EVENT_LOGOUT","authToken","sessionId","createDataLogonMessage","params","DATA_LOGON","DATASOURCE_NAME","createDataLogoffMessage","sourceRef","DATA_LOGOFF","createRequestMessage","startsWith","createMetaRequestMessage","messageType","META_REQUEST","FEATURE","createCommitMessage","createRefreshTokenMessage","createChangePasswordMessage","oldPassword","newPassword","EVENT_CHANGE_USER_PASSWORD","OLD_PASSWORD","NEW_PASSWORD","createForgotPasswordMessage","requester","EVENT_SELF_SERVICE_PASSWORD_RESET","RETURN_URL","createForgotPasswordTokenMessage","resetToken","EVENT_PASSWORD_RESET_ACTION","RESET_TOKEN","createMoreRowsMessage","MORE_ROWS","UUID","MessageBuilder","ConnectConfig","HttpConnectConfig","defaultHttpConnectConfig","polling","POLLING_MAP","EVENT_AMEND_USER","TEMP_FREQUENCY","AMOUNT_OF_POLLS","QUERIES","POLLING_INTERVAL_MAP","ALL_TRADES","ALL_USERS","ALL_PROCESSES_STATUS","POLLING_FREQUENCY","HttpConnectService","isConnected","_isConnected","isConnectedSubject","next","http","messageBuilder","metaCache","isWorking","BehaviorSubject","ongoingTurbo","streams","checkHost","getMessage","HEARTBEAT_PING","HEARTBEAT_PONG","send","needsHandling","getUrl","host","body","getBody","headers","getHeaders","httpMode","setValidSession","valid","warn","connect","endsWith","concat","connected","disconnect","clear","undefined","snapshot","snapshotMessage","dataLogoff","catch","stream","onMessage","onError","streamMessage","RESOURCE_NAME","interval$","from","pipe","switchMap","ms","interval","takeWhile","finalize","STREAM","getMoreRows","moreRowsMessage","streamSourceRef","dataLogoffMessage","res","delete","getMetadata","useCache","metaRequestMessage","getJSONSchema","JSON_SCHEMA_REQUEST","request","requestMessage","commitEvent","commitMessage","reply","maybeTurbo","turbo","freq","duration","originalPollingIntervalMap","tempPollingMap","q","updateIntervals","handlePollingIntervalMapUpdate","pollingIntervalMap","resource","hasOwnProperty","newFreq","values","filter","static","apiEndpoint","volatile","optional","HttpConnect","DEFAULT_RECONNECT_INTERVAL","MAX_RECONNECT_INTERVAL","MAX_RECONNECT_ATTEMPTS","SocketReconnectStrategy","retryInterval","reconnectOptions","scheduler","Observable","observer","timeoutId","count","recursiveTimeout","clearTimeout","exponentialScheduler","attempt","reconnectInterval","baseInterval","attemptsBreakPoint","round","log2","pow","linearScheduler","SocketSubject","Subject","SocketObservable","args","SocketMessageHandler","isSubscription","_message","_onMessage","_onError","_isSubscription","sentMessage","onReceivedMessage","onReceivedError","SocketService","isConnectedChanged","_","defaultInterval","secondsMultiplier","hasValidSession","heartbeatIsEnabled","heartbeatInterval","isReconnecting","socketMessages","wsMessages","heartbeatLoggingIsEnabled","connectOptions","enableHeartbeatLogging","messageLoggingIsEnabled","enableMessageLogging","info","reconnectStreams","cleanMessages","socketSubscription","unsubscribe","websocket","WebSocketSubject","openObserver","prepareHeartbeat","closeObserver","closeEvent","disconnectedByServer","wasClean","reason","deserializer","subscribe","connectObserver","receivedMessage","_e","responseMessageReceivedLog","logMessageTypeFlow","messageHandler","getMessageHandler","nacked","EVENT_LOGIN_AUTH_ACK","systemDetails","HEARTBEAT_INTERVAL_SECS","LOGOUT_ACK","call","LOGON_ACK","LOGOFF_ACK","LOGGED_OUT","refreshTokenMessage","refreshTokenResult","wsMessageHandlers","mh","QUERY_UPDATE","MSG_NACK","removeMessageHandler","reconnect","complete","alwaysOn","heartbeatSubscription","sendHeartbeat","ping","pong","enableHeartbeat","intervalInMillisecocnds","timer","tap","notAlwaysOnAndHeartbeating","reconnectStrategy","Exponential","reconnectObservable","asObservable","of","mergeMap","attemptsAmount","reconnectAttempts","throwError","reconnectObserver","reset","reject","sendingMessasgeLog","msg","err","setMessageHandler","sendForStream","sendingMessageLog","settingMessageHandlerLog","gettingMessageHandlerLog","logFunc","logMsg","Socket","_HTTP_CONFIG","_FORCE_HTTP","defaultConnectConfig","DefaultConnect","socket","test","details","metaResponse","useHttpConnect","WSConnect","Connect","aliasTo","target","arguments","source","api","init","converter","defaultAttributes","attributes","document","expires","Date","now","toUTCString","encodeURIComponent","escape","stringifiedAttributes","attributeName","cookie","write","cookies","jar","parts","slice","foundKey","read","remove","withAttributes","withConverter","freeze","CredentialManagerConfig","supportsCredentialsContainer","defaultCredentialRequestOptions","mediation","defaultCredentialManagerConfig","name","storePasswords","DefaultCredentialManager","createBasicCredentials","inputs","createRefreshCredentials","getUsername","getRefreshToken","createSSOCredentials","getSSOToken","validateBasicCredentials","validateRefreshCredentials","validateSSOCredentials","storeCredentialsInContainer","PasswordCredential","store","getCredentialsFromContainer","options","storeCredentialsInCookie","rest","__rest","hostname","secure","getCredentialsFromCookie","storeCredentials","credential","getCredentials","removeCookie","removeSSOToken","removeUsername","removeRefreshToken","removeAll","preventSilentAccess","CredentialManager","CurrentUser","hasAdminProfile","hasProfile","hasPermission","permission","hasKey","permissions","profile","profiles","keys","k","AuthService","isLoggedIn","loggedUserResult","credentialManager","currentUser","login","loginMessage","authResult","applyAuthResults","PROFILE","PERMISSION","removeAuthResults","logout","logoutResult","success","logoutMessage","SESSION_NOT_FOUND","logoutError","reAuthFromSession","hostUrl","getLoggedUserFromSession","sessionAuthToken","refreshAuthToken","Auth","ResourceType","FieldTypeEnum","DatasourceDefaults","MAX_ROWS_250","MAX_VIEW_1000","REQ_REP_POLLING_INTERVAL_MS","TYPES_MAP","STRING","ENUM","BOOLEAN","INT","NUMBER","DOUBLE","BIGDECIMAL","DATE","DATETIME","toFieldMetadata","fieldDef","field","meta","NAME","TYPE","VALID_VALUES","enumOptions","extractFieldDefinitions","DATASERVER","FIELD","REQUEST_SERVER","REPLY_FIELD","DatasourceService","auth","initialized","readOnly","originalFieldDef","requestFields","fieldMetadata","availableIndexes","defaultOptions","criteria","isSnapshot","maxRows","maxView","orderBy","reverse","fetchMeta","validResourceName","resourceType","INDEXES","REQUEST_FIELD","_stream","createStream","CRITERIA_MATCH","FIELDS","fields","MAX_ROWS","MAX_VIEW","REQUEST","REVERSE","findIndex","ORDER_BY","validIndexes","index","reqParams","reqFields","rf","fromCriteria","criteriaToReqFields","snapshotFiltered","rowId","REPLY","ROW","filterRows","inserts","toRowData","row","tmp","deletes","updates","OPERATION","createDataserverStream","createReqRepStream","trim","concatCriteria","substr","indexOf","val","lastIndexOf","Datasource","transient","FDC3Service","isReady","addIntentListeners","listeners","handler","intent","listener","findIntent","context","findIntentsByContext","raiseIntent","joinChannel","channelId","getOrCreateChannel","broadcastOnChannel","channel","broadcast","FDC3"],"mappings":"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","file":"338.338.xxxxxxxxxxxxxxxxxxxx.js","sourcesContent":["export{default as dotProp}from\"dlv\";import{isBrowser as e,isString as r,isRegex as t}from\"@analytics/type-utils\";function n(e){try{return decodeURIComponent(e.replace(/\\+/g,\" \"))}catch(e){return null}}function o(){if(e){var r=navigator,t=r.languages;return r.userLanguage||(t&&t.length?t[0]:r.language)}}function a(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){}}function i(r){if(!e)return!1;var t=r||document.referrer;if(t){var n=window.document.location.port,o=t.split(\"/\")[2];return n&&(o=o.replace(\":\"+n,\"\")),o!==window.location.hostname}return!1}function u(n){if(!e)return!0;var o=document.getElementsByTagName(\"script\");return!!Object.keys(o).filter(function(e){var a=o[e].src;return r(n)?-1!==a.indexOf(n):!!t(n)&&a.match(n)}).length}function c(e,r){var t=(e.split(\"?\")||[,])[1];if(!t||-1===t.indexOf(r))return e;var n=new RegExp(\"(\\\\&|\\\\?)\"+r+'([_A-Za-z0-9\"+=.\\\\/\\\\-@%]+)',\"g\"),o=(\"?\"+t).replace(n,\"\").replace(/^&/,\"?\");return e.replace(\"?\"+t,o)}function l(e,r){return n((RegExp(e+\"=(.+?)(&|$)\").exec(r)||[,\"\"])[1])}function s(r){return function(e){for(var r,t=Object.create(null),o=/([^&=]+)=?([^&]*)/g;r=o.exec(e);){var a=n(r[1]),i=n(r[2]);\"[]\"===a.substring(a.length-2)?(t[a=a.substring(0,a.length-2)]||(t[a]=[])).push(i):t[a]=\"\"===i||i}for(var u in t){var c=u.split(\"[\");c.length>1&&(m(t,c.map(function(e){return e.replace(/[?[\\]\\\\ ]/g,\"\")}),t[u]),delete t[u])}return t}(function(r){if(r){var t=r.match(/\\?(.*)/);return t&&t[1]?t[1].split(\"#\")[0]:\"\"}return e&&window.location.search.substring(1)}(r))}function m(e,r,t){for(var n=r.length-1,o=0;o<n;++o){var a=r[o];if(\"__proto__\"===a||\"constructor\"===a)break;a in e||(e[a]={}),e=e[a]}e[r[n]]=t}function f(r,t){return e?new Promise(function(e,n){if(window.history&&window.history.replaceState){var o=window.location.href,a=c(o,r);o!==a&&history.replaceState({},\"\",a)}return t&&t(),e()}):Promise.resolve()}function g(r){if(!e)return null;var t=document.createElement(\"a\");return t.setAttribute(\"href\",r),t.hostname}function p(e){return(g(e)||\"\").split(\".\").slice(-2).join(\".\")}function x(e){var r=e.split(\".\");return r.length>1?r.slice(0,-1).join(\".\"):e}var d={trimTld:x,getDomainBase:p,getDomainHost:g};function v(r,t){if(!e)return!1;var n={source:\"(direct)\",medium:\"(none)\",campaign:\"(not set)\"};r&&i(r)&&(n.referrer=r);var o=function(r){if(!r||!e)return!1;var t=p(r),n=document.createElement(\"a\");if(n.href=r,n.hostname.indexOf(\"google\")>-1&&(t=\"google\"),w[t]){var o=w[t],a=new RegExp((\"string\"==typeof o?o:o.p)+\"=.*?([^&#]*|$)\",\"gi\"),u=n.search.match(a);return{source:o.n||x(t),medium:\"organic\",term:(u?u[0].split(\"=\")[1]:\"\")||\"(not provided)\"}}var c=i(r)?\"referral\":\"internal\";return{source:n.hostname,medium:c}}(r);o&&Object.keys(o).length&&(n=Object.assign({},n,o));var a=s(t),u=Object.keys(a);if(!u.length)return n;var c=u.reduce(function(e,r){return r.match(/^utm_/)&&(e[\"\"+r.replace(/^utm_/,\"\")]=a[r]),r.match(/^(d|g)clid/)&&(e.source=\"google\",e.medium=a.gclid?\"cpc\":\"cpm\",e[r]=a[r]),e},{});return Object.assign({},n,c)}var h=\"q\",w={\"daum.net\":h,\"eniro.se\":\"search_word\",\"naver.com\":\"query\",\"yahoo.com\":\"p\",\"msn.com\":h,\"aol.com\":h,\"ask.com\":h,\"baidu.com\":\"wd\",\"yandex.com\":\"text\",\"rambler.ru\":\"words\",google:h,\"bing.com\":{p:h,n:\"live\"}};function y(){for(var e=\"\",r=0,t=4294967295*Math.random()|0;r++<36;){var n=\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\"[r-1],o=15&t;e+=\"-\"==n||\"4\"==n?n:(\"x\"==n?o:3&o|8).toString(16),t=r%8==0?4294967295*Math.random()|0:t>>4}return e}function b(e,r){var t,n,o,a=null,i=0,u=function(){i=new Date,a=null,o=e.apply(t,n)};return function(){var c=new Date;i||(i=c);var l=r-(c-i);return t=this,n=arguments,l<=0?(clearTimeout(a),a=null,i=c,o=e.apply(t,n)):a||(a=setTimeout(u,l)),o}}export{n as decodeUri,o as getBrowserLocale,a as getTimeZone,i as isExternalReferrer,u as isScriptLoaded,c as paramsClean,l as paramsGet,s as paramsParse,f as paramsRemove,v as parseReferrer,b as throttle,d as url,y as uuid};\n//# sourceMappingURL=analytics-utils.module.js.map\n","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=function(t,n,e,i,o){for(n=n.split?n.split(\".\"):n,i=0;i<n.length;i++)t=t?t[n[i]]:o;return t===o?e:t}:\"function\"==typeof define&&define.amd?define(function(){return function(t,n,e,i,o){for(n=n.split?n.split(\".\"):n,i=0;i<n.length;i++)t=t?t[n[i]]:o;return t===o?e:t}}):t.dlv=function(t,n,e,i,o){for(n=n.split?n.split(\".\"):n,i=0;i<n.length;i++)t=t?t[n[i]]:o;return t===o?e:t}}(this);\n//# sourceMappingURL=dlv.umd.js.map\n","import { createLogger } from '@genesislcap/foundation-utils';\nexport const logger = createLogger('foundation-comms');\n//# sourceMappingURL=logger.js.map","import Analytics from 'analytics';\nimport { DI } from '@microsoft/fast-foundation';\nimport { logger } from '../utils';\nexport var FoundationAnalyticsEventType;\n(function (FoundationAnalyticsEventType) {\n FoundationAnalyticsEventType[\"controlClicked\"] = \"controlClicked\";\n FoundationAnalyticsEventType[\"routeChanged\"] = \"routeChanged\";\n})(FoundationAnalyticsEventType || (FoundationAnalyticsEventType = {}));\nclass FoundationAnalyticsService {\n constructor(config) {\n this.analytics = Analytics(config);\n }\n trackEvent(eventName, payload) {\n logger.debug(`FoundationAnalytics.trackEvent ${eventName} : ${JSON.stringify(payload)}`);\n this.analytics.track(eventName, payload);\n }\n}\nexport const FoundationAnalytics = DI.createInterface((x) => x.singleton(FoundationAnalyticsService));\n//# sourceMappingURL=analytics.js.map","import { __decorate } from \"tslib\";\nimport { observable } from '@microsoft/fast-element';\nimport { DI } from '@microsoft/fast-foundation';\nclass MetadataService {\n constructor() {\n this.cachedMetadata = new Map();\n }\n getMetadataFor(resourceName) {\n return this.cachedMetadata.get(resourceName);\n }\n hasMetadataFor(resourceName) {\n return this.cachedMetadata.has(resourceName);\n }\n setMetadataFor(resourceName, metadata) {\n this.cachedMetadata.set(resourceName, metadata);\n }\n}\n__decorate([\n observable\n], MetadataService.prototype, \"cachedMetadata\", void 0);\nexport const MetadataCache = DI.createInterface((x) => x.singleton(MetadataService));\n//# sourceMappingURL=metadata.js.map","export const isWebSocketExpression = new RegExp(/wss?:\\/\\/[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\b([-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)\\b\\/*$/, 'i');\n//# sourceMappingURL=regex.js.map","export function until(conditionFunc, timeoutMs = 300) {\n const poll = (resolve) => {\n if (conditionFunc()) {\n resolve();\n return;\n }\n setTimeout(() => poll(resolve), timeoutMs);\n };\n return new Promise(poll);\n}\n//# sourceMappingURL=until.js.map","import { DI } from '@microsoft/fast-foundation';\nclass SessionService {\n constructor() {\n this.storageKeyPrefix = '';\n this.returnUrl = this.getSessionStorageItem('returnUrl') || '';\n }\n deleteUserFromSessionStorage() {\n const storageKeys = ['authToken', 'refreshToken', 'sessionId', 'ssoToken'];\n storageKeys.forEach((key) => this.removeSessionStorageItem(key));\n }\n setStorageKeyPrefix(prefix) {\n this.storageKeyPrefix = `${prefix.replace(/\\s/g, '')}/`;\n }\n setAuthResult(result) {\n this.setSessionStorageItem('authToken', result.SESSION_AUTH_TOKEN);\n this.setSessionStorageItem('refreshToken', result.REFRESH_AUTH_TOKEN);\n this.setSessionStorageItem('username', result.USER_NAME);\n this.setSessionStorageItem('sessionId', result.SESSION_ID);\n }\n captureReturnUrl() {\n const { pathname, search, hash } = location;\n if (pathname === '/login') {\n return;\n }\n const path = `${pathname !== '/' ? pathname : ''}`;\n this.returnUrl = `${path}${search}${hash}`;\n this.setSessionStorageItem('returnUrl', this.returnUrl);\n }\n setItem(key, value, storage) {\n if (storage === 'local') {\n localStorage.setItem(this.storageKeyPrefix + key, value);\n }\n else {\n sessionStorage.setItem(this.storageKeyPrefix + key, value);\n }\n }\n getItem(key, storage) {\n if (storage === 'local')\n return localStorage.getItem(this.storageKeyPrefix + key);\n return sessionStorage.getItem(this.storageKeyPrefix + key);\n }\n removeItem(key, storage) {\n if (storage === 'local') {\n localStorage.removeItem(this.storageKeyPrefix + key);\n }\n else {\n sessionStorage.removeItem(this.storageKeyPrefix + key);\n }\n }\n setLocalStorageItem(key, value) {\n this.setItem(key, value, 'local');\n }\n setSessionStorageItem(key, value) {\n this.setItem(key, value, 'session');\n }\n getLocalStorageItem(key) {\n return this.getItem(key, 'local');\n }\n getSessionStorageItem(key) {\n return this.getItem(key, 'session');\n }\n removeLocalStorageItem(key) {\n this.removeItem(key, 'local');\n }\n removeSessionStorageItem(key) {\n this.removeItem(key, 'session');\n }\n}\nexport const Session = DI.createInterface((x) => x.singleton(SessionService));\n//# sourceMappingURL=session.js.map","import { DI } from '@microsoft/fast-foundation';\nclass JSONSerializer {\n serialize(object) {\n return JSON.stringify(object);\n }\n deserialize(input) {\n if (!input) {\n return Promise.resolve({});\n }\n if (typeof input === 'string') {\n return JSON.parse(input);\n }\n if (input.data) {\n return JSON.parse(input.data);\n }\n return input.text().then((text) => JSON.parse(text));\n }\n}\nexport const Serializer = DI.createInterface((x) => x.singleton(JSONSerializer));\n//# sourceMappingURL=serializers.js.map","import { __awaiter, __decorate, __param } from \"tslib\";\nimport { DI } from '@microsoft/fast-foundation';\nimport { Serializer } from './serializers';\nlet HttpService = class HttpService {\n constructor(serializer) {\n this.serializer = serializer;\n }\n get(url, requestInit) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield fetch(url, Object.assign(Object.assign({}, requestInit), { method: 'GET' }));\n const serializer = requestInit.serializer || this.serializer;\n return serializer.deserialize(response);\n });\n }\n post(url, requestInit) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield fetch(url, Object.assign(Object.assign({}, requestInit), { method: 'POST' }));\n const serializer = requestInit.serializer || this.serializer;\n return serializer.deserialize(response);\n });\n }\n};\nHttpService = __decorate([\n __param(0, Serializer)\n], HttpService);\nexport const Http = DI.createInterface((x) => x.singleton(HttpService));\n//# sourceMappingURL=http.js.map","export var AuthType;\n(function (AuthType) {\n AuthType[\"BASIC\"] = \"BASIC\";\n AuthType[\"SSO\"] = \"SSO\";\n AuthType[\"JWT\"] = \"JWT\";\n AuthType[\"REFRESH\"] = \"REFRESH\";\n})(AuthType || (AuthType = {}));\nexport class AuthError extends Error {\n constructor(sent, received, message = 'Auth Failed \\n') {\n super(message);\n this.sent = sent;\n this.received = received;\n Object.setPrototypeOf(this, AuthError.prototype);\n }\n isIgnorableError() {\n var _a, _b, _c, _d;\n return (_d = (_c = (_b = (_a = this.received) === null || _a === void 0 ? void 0 : _a.DETAILS) === null || _b === void 0 ? void 0 : _b.ERROR) === null || _c === void 0 ? void 0 : _c.toLowerCase()) === null || _d === void 0 ? void 0 : _d.includes('request needs the user to be logged');\n }\n getMessageError() {\n var _a, _b;\n return Array.isArray((_a = this.received) === null || _a === void 0 ? void 0 : _a.ERROR)\n ? (_b = this.received) === null || _b === void 0 ? void 0 : _b.ERROR.map((error) => this.errorDetailFormatter(error)).join('\\n')\n : '';\n }\n getDetailsError() {\n var _a, _b, _c, _d;\n return Array.isArray((_b = (_a = this.received) === null || _a === void 0 ? void 0 : _a.DETAILS) === null || _b === void 0 ? void 0 : _b.ERROR)\n ? (_d = (_c = this.received) === null || _c === void 0 ? void 0 : _c.DETAILS) === null || _d === void 0 ? void 0 : _d.ERROR.map((error) => this.errorDetailFormatter(error)).join('\\n')\n : '';\n }\n hasPasswordExpiredError() {\n return this.hasErrorCode('PASSWORD_EXPIRED');\n }\n hasErrorCode(code) {\n var _a, _b;\n return Array.isArray((_a = this.received) === null || _a === void 0 ? void 0 : _a.ERROR)\n ? (_b = this.received) === null || _b === void 0 ? void 0 : _b.ERROR.some((error) => error.CODE === code)\n : false;\n }\n errorDetailFormatter(error) {\n return `\\n ${error.CODE}: \\n ${error.TEXT}`;\n }\n}\n//# sourceMappingURL=auth.types.js.map","import { __decorate, __param } from \"tslib\";\nimport { UUID } from '@genesislcap/foundation-utils';\nimport { DI } from '@microsoft/fast-foundation';\nimport { AuthType } from '../auth/auth.types';\nimport { Session } from '../session';\nexport var MessageType;\n(function (MessageType) {\n MessageType[\"LOGON_ACK\"] = \"LOGON_ACK\";\n MessageType[\"LOGON_NACK\"] = \"LOGON_NACK\";\n MessageType[\"LOGOFF_ACK\"] = \"LOGOFF_ACK\";\n MessageType[\"LOGOFF_NACK\"] = \"LOGOFF_NACK\";\n MessageType[\"HEARTBEAT_PING\"] = \"HEARTBEAT_PING\";\n MessageType[\"HEARTBEAT_PONG\"] = \"HEARTBEAT_PONG\";\n MessageType[\"MORE_ROWS\"] = \"MORE_ROWS\";\n MessageType[\"MSG_ACK\"] = \"MSG_ACK\";\n MessageType[\"MSG_NACK\"] = \"MSG_NACK\";\n MessageType[\"LOGOUT_ACK\"] = \"LOGOUT_ACK\";\n MessageType[\"LOGOUT_NACK\"] = \"LOGOUT_NACK\";\n MessageType[\"QUERY_UPDATE\"] = \"QUERY_UPDATE\";\n})(MessageType || (MessageType = {}));\nexport var EventMessageType;\n(function (EventMessageType) {\n EventMessageType[\"EVENT_LOGIN_AUTH\"] = \"EVENT_LOGIN_AUTH\";\n EventMessageType[\"EVENT_LOGIN_AUTH_ACK\"] = \"EVENT_LOGIN_AUTH_ACK\";\n EventMessageType[\"EVENT_LOGIN_AUTH_NACK\"] = \"EVENT_LOGIN_AUTH_NACK\";\n EventMessageType[\"EVENT_LOGOUT\"] = \"EVENT_LOGOUT\";\n EventMessageType[\"DATA_LOGON\"] = \"DATA_LOGON\";\n EventMessageType[\"DATA_LOGOFF\"] = \"DATA_LOGOFF\";\n EventMessageType[\"META_REQUEST\"] = \"META_REQUEST\";\n EventMessageType[\"JSON_SCHEMA_REQUEST\"] = \"JSON_SCHEMA_REQUEST\";\n EventMessageType[\"RESOURCES_REQUEST\"] = \"RESOURCES_REQUEST\";\n EventMessageType[\"EVENT_CHANGE_USER_PASSWORD\"] = \"EVENT_CHANGE_USER_PASSWORD\";\n EventMessageType[\"EVENT_SELF_SERVICE_PASSWORD_RESET\"] = \"EVENT_SELF_SERVICE_PASSWORD_RESET\";\n EventMessageType[\"EVENT_PASSWORD_RESET_ACTION\"] = \"EVENT_PASSWORD_RESET_ACTION\";\n})(EventMessageType || (EventMessageType = {}));\nexport var MessageCode;\n(function (MessageCode) {\n MessageCode[\"SESSION_NOT_FOUND\"] = \"SESSION_NOT_FOUND\";\n MessageCode[\"UNKNOWN_MESSAGE_TYPE\"] = \"UNKNOWN_MESSAGE_TYPE\";\n})(MessageCode || (MessageCode = {}));\nexport const messageOrThrow = (message) => {\n if (message.ERROR) {\n throw new Error(message.ERROR.map((error) => error.TEXT).join());\n }\n return message;\n};\nlet MessageBuilderService = class MessageBuilderService {\n constructor(session, uuid) {\n this.session = session;\n this.uuid = uuid;\n }\n createLoginMessage(credentials) {\n let DETAILS;\n switch (credentials.type) {\n case AuthType.BASIC:\n DETAILS = {\n USER_NAME: credentials.username,\n PASSWORD: credentials.password,\n };\n break;\n case AuthType.REFRESH:\n DETAILS = {\n USER_NAME: credentials.username,\n REFRESH_AUTH_TOKEN: credentials.refreshToken,\n };\n break;\n case AuthType.SSO:\n DETAILS = {\n SSO_TOKEN: credentials.ssoToken,\n };\n break;\n case AuthType.JWT:\n DETAILS = {\n JWT: credentials.jwt,\n DOMAIN: credentials.domain,\n };\n break;\n }\n return {\n DETAILS,\n SOURCE_REF: this.uuid.createId(),\n MESSAGE_TYPE: EventMessageType.EVENT_LOGIN_AUTH,\n };\n }\n createLogoutMessage(loginResult) {\n var _a, _b;\n return {\n SOURCE_REF: this.uuid.createId(),\n MESSAGE_TYPE: EventMessageType.EVENT_LOGOUT,\n SESSION_AUTH_TOKEN: (_a = loginResult.authToken) !== null && _a !== void 0 ? _a : this.session.getSessionStorageItem('authToken'),\n SESSION_ID: (_b = loginResult.sessionId) !== null && _b !== void 0 ? _b : this.session.getSessionStorageItem('sessionId'),\n };\n }\n createDataLogonMessage(resourceName, params) {\n return {\n SOURCE_REF: this.uuid.createId(),\n MESSAGE_TYPE: EventMessageType.DATA_LOGON,\n DETAILS: Object.assign({ DATASOURCE_NAME: resourceName }, params),\n SESSION_AUTH_TOKEN: this.session.getSessionStorageItem('authToken'),\n };\n }\n createDataLogoffMessage(sourceRef) {\n return {\n SOURCE_REF: sourceRef,\n MESSAGE_TYPE: EventMessageType.DATA_LOGOFF,\n SESSION_AUTH_TOKEN: this.session.getSessionStorageItem('authToken'),\n };\n }\n createRequestMessage(resourceName, params) {\n return Object.assign({ SOURCE_REF: this.uuid.createId(), SESSION_AUTH_TOKEN: this.session.getSessionStorageItem('authToken'), MESSAGE_TYPE: resourceName.startsWith('REQ_') ? resourceName : `REQ_${resourceName}` }, params);\n }\n createMetaRequestMessage(resourceName, messageType = EventMessageType.META_REQUEST) {\n return {\n SOURCE_REF: this.uuid.createId(),\n MESSAGE_TYPE: messageType,\n DETAILS: {\n FEATURE: resourceName,\n },\n SESSION_AUTH_TOKEN: this.session.getSessionStorageItem('authToken'),\n };\n }\n createCommitMessage(eventName, params) {\n return Object.assign({ SOURCE_REF: this.uuid.createId(), SESSION_AUTH_TOKEN: this.session.getSessionStorageItem('authToken'), MESSAGE_TYPE: eventName }, params);\n }\n createRefreshTokenMessage() {\n return {\n SOURCE_REF: this.uuid.createId(),\n SESSION_AUTH_TOKEN: this.session.getSessionStorageItem('authToken'),\n MESSAGE_TYPE: EventMessageType.EVENT_LOGIN_AUTH,\n DETAILS: {\n REFRESH_AUTH_TOKEN: this.session.getSessionStorageItem('refreshToken'),\n },\n };\n }\n createChangePasswordMessage(username, oldPassword, newPassword) {\n return {\n USER_NAME: username,\n SOURCE_REF: this.uuid.createId(),\n MESSAGE_TYPE: EventMessageType.EVENT_CHANGE_USER_PASSWORD,\n DETAILS: {\n OLD_PASSWORD: oldPassword,\n NEW_PASSWORD: newPassword,\n },\n };\n }\n createForgotPasswordMessage(username, returnUrl, requester = username) {\n return {\n USER_NAME: requester,\n SOURCE_REF: this.uuid.createId(),\n MESSAGE_TYPE: EventMessageType.EVENT_SELF_SERVICE_PASSWORD_RESET,\n DETAILS: {\n USER_NAME: username,\n RETURN_URL: returnUrl,\n },\n };\n }\n createForgotPasswordTokenMessage(username, resetToken, newPassword, requester = username) {\n return {\n USER_NAME: requester,\n SOURCE_REF: this.uuid.createId(),\n MESSAGE_TYPE: EventMessageType.EVENT_PASSWORD_RESET_ACTION,\n DETAILS: {\n USER_NAME: username,\n RESET_TOKEN: resetToken,\n NEW_PASSWORD: newPassword,\n },\n };\n }\n createMoreRowsMessage(sourceRef) {\n return {\n SOURCE_REF: this.uuid.createId(),\n MESSAGE_TYPE: MessageType.MORE_ROWS,\n DETAILS: {\n SOURCE_REF: sourceRef,\n },\n SESSION_AUTH_TOKEN: this.session.getSessionStorageItem('authToken'),\n };\n }\n};\nMessageBuilderService = __decorate([\n __param(0, Session),\n __param(1, UUID)\n], MessageBuilderService);\nexport const MessageBuilder = DI.createInterface((x) => x.singleton(MessageBuilderService));\n//# sourceMappingURL=message.js.map","import { DI } from '@microsoft/fast-foundation';\nexport const ConnectConfig = DI.createInterface();\nexport const HttpConnectConfig = DI.createInterface();\n//# sourceMappingURL=connect.types.js.map","import { __awaiter, __decorate, __param } from \"tslib\";\nimport { JSONSerializer } from '@genesislcap/foundation-utils';\nimport { observable, volatile } from '@microsoft/fast-element';\nimport { DI, optional } from '@microsoft/fast-foundation';\nimport { BehaviorSubject, concat, finalize, from, interval, switchMap, takeWhile } from 'rxjs';\nimport { MetadataCache } from '../metadata';\nimport { Session } from '../session';\nimport { logger } from '../utils';\nimport { Http } from './http';\nimport { EventMessageType, MessageBuilder, MessageType, } from './message';\nimport { HttpConnectConfig } from './connect.types';\nimport { HTTP_CONFIG } from './env-variables';\nexport const defaultHttpConnectConfig = {\n polling: Object.assign({ POLLING_MAP: {\n EVENT_AMEND_USER: {\n TEMP_FREQUENCY: 500,\n AMOUNT_OF_POLLS: 5,\n QUERIES: ['ALL_USERS'],\n },\n }, POLLING_INTERVAL_MAP: {\n ALL_TRADES: 5000,\n ALL_USERS: 5000,\n ALL_PROCESSES_STATUS: 10000,\n }, POLLING_FREQUENCY: 5000 }, (HTTP_CONFIG && HTTP_CONFIG.length ? JSON.parse(HTTP_CONFIG) : {})),\n};\nlet HttpConnectService = class HttpConnectService {\n get isConnected() {\n return this._isConnected;\n }\n set isConnected(value) {\n this._isConnected = value;\n this.isConnectedSubject.next(this._isConnected);\n }\n constructor(http, messageBuilder, session, metaCache, serializer, config = defaultHttpConnectConfig) {\n this.http = http;\n this.messageBuilder = messageBuilder;\n this.session = session;\n this.metaCache = metaCache;\n this.serializer = serializer;\n this.config = config;\n this.isWorking = false;\n this._isConnected = false;\n this.isConnectedSubject = new BehaviorSubject(this._isConnected);\n this.ongoingTurbo = {};\n this.streams = new Map();\n }\n checkHost() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return this.getMessage({\n MESSAGE_TYPE: MessageType.HEARTBEAT_PING,\n SOURCE_REF: 'host check',\n }).then((response) => {\n return response.MESSAGE_TYPE === MessageType.HEARTBEAT_PONG;\n });\n }\n catch (e) {\n logger.error(e);\n return false;\n }\n });\n }\n send(message, needsHandling) {\n return this.http.post(HttpConnectService.getUrl(this.host, message), {\n body: HttpConnectService.getBody(message),\n headers: HttpConnectService.getHeaders(message),\n });\n }\n httpMode() {\n return true;\n }\n setValidSession(valid) {\n logger.warn(`setValidSession() called while in http polling mode.`);\n }\n connect(host) {\n return __awaiter(this, void 0, void 0, function* () {\n this.host = host;\n if (!this.host.endsWith('/')) {\n this.host = this.host.concat('/');\n }\n return this.checkHost().then((connected) => {\n this.isConnected = connected;\n this.session.setSessionStorageItem('hostUrl', this.host);\n return connected;\n });\n });\n }\n disconnect() {\n this.isConnected = false;\n this.streams.clear();\n this.ongoingTurbo = {};\n this.host = undefined;\n }\n snapshot(resourceName, params) {\n return __awaiter(this, void 0, void 0, function* () {\n const snapshotMessage = this.messageBuilder.createDataLogonMessage(resourceName, params);\n logger.debug(`HTTP MODE - ${snapshotMessage.MESSAGE_TYPE} (snapshot) message created -> `, snapshotMessage);\n return this.send(snapshotMessage).then((message) => {\n this.dataLogoff(snapshotMessage.SOURCE_REF).catch((e) => logger.error(e));\n return message;\n });\n });\n }\n stream(resourceName, onMessage, onError, params) {\n const streamMessage = this.messageBuilder.createDataLogonMessage(resourceName, params);\n logger.debug(`HTTP MODE - ${streamMessage.MESSAGE_TYPE} (stream) message created -> `, streamMessage);\n const SOURCE_REF = streamMessage.SOURCE_REF;\n this.streams.set(SOURCE_REF, {\n SOURCE_REF,\n POLLING_FREQUENCY: new BehaviorSubject(this.config.polling.POLLING_FREQUENCY),\n RESOURCE_NAME: resourceName,\n });\n const interval$ = this.streams.get(SOURCE_REF).POLLING_FREQUENCY;\n const stream = concat(from(this.send(streamMessage)), interval$\n .pipe(switchMap((ms) => interval(ms)))\n .pipe(switchMap(() => from(this.getMessage(streamMessage))))).pipe(takeWhile(() => this.streams.has(SOURCE_REF)), finalize(() => {\n logger.debug(`Terminating stream for ${resourceName} - ${SOURCE_REF}`);\n this.dataLogoff(SOURCE_REF);\n }));\n this.streams.get(SOURCE_REF).STREAM = stream;\n return stream;\n }\n getMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.http.get(HttpConnectService.getUrl(this.host, message), {\n headers: HttpConnectService.getHeaders(message),\n });\n });\n }\n getMoreRows(sourceRef) {\n return __awaiter(this, void 0, void 0, function* () {\n const moreRowsMessage = this.messageBuilder.createMoreRowsMessage(sourceRef);\n logger.debug(`HTTP MODE - ${moreRowsMessage.MESSAGE_TYPE} message created -> `, moreRowsMessage);\n return this.send(moreRowsMessage);\n });\n }\n dataLogoff(streamSourceRef) {\n return __awaiter(this, void 0, void 0, function* () {\n const dataLogoffMessage = this.messageBuilder.createDataLogoffMessage(streamSourceRef);\n return this.send(dataLogoffMessage).then((res) => {\n if (this.streams.has(streamSourceRef)) {\n logger.debug(`Removing stream ${streamSourceRef}`);\n this.streams.delete(streamSourceRef);\n }\n return res;\n });\n });\n }\n getMetadata(resourceName, useCache = true) {\n return __awaiter(this, void 0, void 0, function* () {\n const metaRequestMessage = this.messageBuilder.createMetaRequestMessage(resourceName);\n logger.debug(`HTTP MODE - ${metaRequestMessage.MESSAGE_TYPE} (metadata) message created -> `, metaRequestMessage);\n return this.send(metaRequestMessage).then((res) => res.DETAILS);\n });\n }\n getJSONSchema(resourceName) {\n return __awaiter(this, void 0, void 0, function* () {\n const metaRequestMessage = this.messageBuilder.createMetaRequestMessage(resourceName, EventMessageType.JSON_SCHEMA_REQUEST);\n logger.debug(`HTTP MODE! - ${metaRequestMessage.MESSAGE_TYPE} (json schema) message created -> `, metaRequestMessage);\n return this.send(metaRequestMessage);\n });\n }\n request(resourceName, params) {\n const requestMessage = this.messageBuilder.createRequestMessage(resourceName, params);\n logger.debug(`HTTP MODE! - ${requestMessage.MESSAGE_TYPE} (request server) message created -> `, requestMessage);\n return this.send(requestMessage);\n }\n commitEvent(eventName, params) {\n return __awaiter(this, void 0, void 0, function* () {\n const commitMessage = this.messageBuilder.createCommitMessage(eventName, params);\n logger.debug(`HTTP MODE! - ${commitMessage.MESSAGE_TYPE} (commit) message created -> `, commitMessage);\n return this.send(commitMessage).then((reply) => {\n this.maybeTurbo(eventName, reply);\n return reply;\n });\n });\n }\n maybeTurbo(eventName, message) {\n var _a;\n if (!((_a = message === null || message === void 0 ? void 0 : message.MESSAGE_TYPE) === null || _a === void 0 ? void 0 : _a.endsWith('_ACK')))\n return;\n if (this.ongoingTurbo[eventName]) {\n logger.debug(`${eventName} polling frequency is already accelerated.`);\n return;\n }\n const turbo = this.config.polling.POLLING_MAP[eventName];\n if (!((turbo === null || turbo === void 0 ? void 0 : turbo.TEMP_FREQUENCY) && turbo.AMOUNT_OF_POLLS)) {\n return;\n }\n const freq = turbo.TEMP_FREQUENCY;\n const duration = freq * turbo.AMOUNT_OF_POLLS;\n const originalPollingIntervalMap = JSON.parse(JSON.stringify(this.config.polling.POLLING_INTERVAL_MAP));\n const tempPollingMap = JSON.parse(JSON.stringify(this.config.polling.POLLING_INTERVAL_MAP));\n for (const q of turbo.QUERIES) {\n tempPollingMap[q] = freq;\n if (!originalPollingIntervalMap[q]) {\n originalPollingIntervalMap[q] = this.config.polling.POLLING_FREQUENCY;\n }\n }\n logger.debug(`${eventName} TRIGGERED -> ENFORCING TURBO | FREQUENCY=${freq}ms DURATION=${duration}`);\n this.ongoingTurbo[eventName] = true;\n this.updateIntervals({\n polling: {\n POLLING_INTERVAL_MAP: tempPollingMap,\n },\n });\n setTimeout(() => {\n logger.debug(`RESTORED ORIGINAL POLLING INTERVALS FOR ${eventName}`);\n this.updateIntervals({\n polling: {\n POLLING_INTERVAL_MAP: originalPollingIntervalMap,\n },\n });\n this.ongoingTurbo[eventName] = false;\n }, duration);\n }\n updateIntervals(config) {\n const { POLLING_INTERVAL_MAP } = config.polling;\n if (!POLLING_INTERVAL_MAP)\n return;\n this.config.polling.POLLING_INTERVAL_MAP = POLLING_INTERVAL_MAP;\n this.handlePollingIntervalMapUpdate(POLLING_INTERVAL_MAP);\n }\n handlePollingIntervalMapUpdate(pollingIntervalMap) {\n if (!pollingIntervalMap) {\n return;\n }\n for (const resource in pollingIntervalMap) {\n if (!pollingIntervalMap.hasOwnProperty(resource))\n continue;\n const newFreq = pollingIntervalMap[resource];\n this.config.polling.POLLING_INTERVAL_MAP[resource] = newFreq;\n logger.debug(`Setting polling frequency for ${resource} = ${newFreq}`);\n [...this.streams.values()]\n .filter((s) => s.RESOURCE_NAME === resource)\n .forEach((s) => { var _a; return (_a = s === null || s === void 0 ? void 0 : s.POLLING_FREQUENCY) === null || _a === void 0 ? void 0 : _a.next(newFreq); });\n }\n }\n static getHeaders(message) {\n const headers = {\n 'Content-type': 'application/json; charset=UTF-8',\n 'source-ref': message.SOURCE_REF,\n };\n if (message.SESSION_AUTH_TOKEN) {\n headers['SESSION-AUTH-TOKEN'] = message.SESSION_AUTH_TOKEN;\n }\n if (message.MESSAGE_TYPE === EventMessageType.EVENT_LOGOUT) {\n headers['SESSION-ID'] = message.SESSION_ID;\n }\n return headers;\n }\n static getBody(message) {\n return JSON.stringify(message);\n }\n static getUrl(host, message) {\n const type = message.MESSAGE_TYPE;\n let apiEndpoint = message.MESSAGE_TYPE.replace(/_/g, '-').toLowerCase();\n if (type === EventMessageType.DATA_LOGON) {\n apiEndpoint = message.DETAILS.DATASOURCE_NAME.replace(/_/g, '-').toLowerCase();\n }\n return `${host}${apiEndpoint}`;\n }\n};\n__decorate([\n observable\n], HttpConnectService.prototype, \"host\", void 0);\n__decorate([\n observable\n], HttpConnectService.prototype, \"isWorking\", void 0);\n__decorate([\n observable\n], HttpConnectService.prototype, \"_isConnected\", void 0);\n__decorate([\n volatile\n], HttpConnectService.prototype, \"isConnected\", null);\nHttpConnectService = __decorate([\n __param(0, Http),\n __param(1, MessageBuilder),\n __param(2, Session),\n __param(3, MetadataCache),\n __param(4, JSONSerializer),\n __param(5, optional(HttpConnectConfig))\n], HttpConnectService);\nexport const HttpConnect = DI.createInterface((x) => x.singleton(HttpConnectService));\n//# sourceMappingURL=http.connect.js.map","import { Observable } from 'rxjs';\nconst DEFAULT_RECONNECT_INTERVAL = 10000;\nconst MAX_RECONNECT_INTERVAL = 60000;\nexport const MAX_RECONNECT_ATTEMPTS = 10;\nexport var SocketReconnectStrategy;\n(function (SocketReconnectStrategy) {\n SocketReconnectStrategy[\"Linear\"] = \"linear\";\n SocketReconnectStrategy[\"Exponential\"] = \"exponential\";\n})(SocketReconnectStrategy || (SocketReconnectStrategy = {}));\nexport const retryInterval = (reconnectOptions, scheduler) => {\n return new Observable((observer) => {\n let count = 0;\n let timeoutId;\n function recursiveTimeout() {\n observer.next(count);\n clearTimeout(timeoutId);\n timeoutId = setTimeout(recursiveTimeout, scheduler(reconnectOptions, count));\n count = count + 1;\n }\n recursiveTimeout();\n return () => {\n clearTimeout(timeoutId);\n };\n });\n};\nexport const exponentialScheduler = (reconnectOptions, attempt) => {\n const { reconnectInterval = DEFAULT_RECONNECT_INTERVAL } = reconnectOptions;\n const baseInterval = reconnectInterval > MAX_RECONNECT_INTERVAL ? MAX_RECONNECT_INTERVAL : reconnectInterval;\n const attemptsBreakPoint = Math.round(Math.log2(MAX_RECONNECT_INTERVAL / baseInterval));\n return baseInterval * Math.pow(2, (attempt % attemptsBreakPoint));\n};\nexport const linearScheduler = (reconnectOptions, attempt) => {\n const { reconnectInterval = DEFAULT_RECONNECT_INTERVAL } = reconnectOptions;\n const baseInterval = reconnectInterval > MAX_RECONNECT_INTERVAL ? MAX_RECONNECT_INTERVAL : reconnectInterval;\n return baseInterval;\n};\n//# sourceMappingURL=reconnectStrategy.js.map","import { __awaiter, __decorate, __param } from \"tslib\";\nimport { observable } from '@microsoft/fast-element';\nimport { DI } from '@microsoft/fast-foundation';\nimport { BehaviorSubject, from, Observable, of, Subject, Subscription, throwError, timer, } from 'rxjs';\nimport { filter, mergeMap, switchMap, takeWhile, tap } from 'rxjs/operators';\nimport { WebSocketSubject } from 'rxjs/webSocket';\nimport { UUID } from '@genesislcap/foundation-utils';\nimport { Serializer } from './serializers';\nimport { logger } from '../utils';\nimport { EventMessageType, MessageBuilder, MessageType } from './message';\nimport { Session } from '../session';\nimport { SocketReconnectStrategy, retryInterval, exponentialScheduler, linearScheduler, MAX_RECONNECT_ATTEMPTS, } from './reconnectStrategy';\nexport class SocketSubject extends Subject {\n constructor() {\n super();\n }\n}\nexport class SocketObservable extends Observable {\n constructor(...args) {\n super(...args);\n }\n}\nexport { Subscription as SocketSubscription };\nexport class SocketMessageHandler {\n constructor(message, onMessage, onError, isSubscription) {\n this._message = message;\n this._onMessage = onMessage;\n this._onError = onError;\n this._isSubscription = isSubscription;\n }\n get sentMessage() {\n return this._message;\n }\n get onReceivedMessage() {\n return this._onMessage;\n }\n get onReceivedError() {\n return this._onError;\n }\n get isSubscription() {\n return this._isSubscription;\n }\n}\nlet SocketService = class SocketService {\n isConnectedChanged(_, isConnected) {\n this.isConnectedSubject.next(isConnected);\n }\n constructor(messageBuilder, session, serializer, uuid) {\n this.messageBuilder = messageBuilder;\n this.session = session;\n this.serializer = serializer;\n this.uuid = uuid;\n this.defaultInterval = 10000;\n this.secondsMultiplier = 1000;\n this.isConnectedSubject = new BehaviorSubject(false);\n this.isConnected = false;\n this.hasValidSession = false;\n this.heartbeatIsEnabled = true;\n this.heartbeatInterval = this.defaultInterval;\n this.isReconnecting = false;\n this.socketMessages = () => this.wsMessages;\n }\n get heartbeatLoggingIsEnabled() {\n var _a, _b;\n return (_b = (_a = this.connectOptions) === null || _a === void 0 ? void 0 : _a.enableHeartbeatLogging) !== null && _b !== void 0 ? _b : false;\n }\n get messageLoggingIsEnabled() {\n var _a, _b;\n return (_b = (_a = this.connectOptions) === null || _a === void 0 ? void 0 : _a.enableMessageLogging) !== null && _b !== void 0 ? _b : false;\n }\n connect(host, connectOptions, reconnectOptions) {\n this.url = host;\n this.connectOptions = connectOptions;\n this.reconnectOptions = reconnectOptions;\n return new Promise((resolve) => {\n var _a, _b, _c, _d;\n logger.info(`${this.isReconnecting ? 'Reconnecting' : 'Connecting'} to ${this.url}`);\n const cleanMessages = !this.isReconnecting || !((_a = this.reconnectOptions) === null || _a === void 0 ? void 0 : _a.reconnectStreams);\n if (cleanMessages) {\n this.cleanMessages();\n }\n (_b = this.socketSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();\n this.websocket = new WebSocketSubject({\n url: this.url,\n openObserver: {\n next: () => {\n this.isConnected = true;\n this.session.setSessionStorageItem('hostUrl', this.url);\n this.prepareHeartbeat();\n logger.info(`WebSocket connection is now open`);\n resolve(this.isConnected);\n },\n },\n closeObserver: {\n next: (closeEvent) => {\n this.disconnectedByServer = !closeEvent.wasClean;\n this.isConnected = false;\n logger.info(`WebSocket connection was closed due an error - Code: ${closeEvent.code} ${closeEvent.reason ? ' | Reason: ' + closeEvent.reason : ''}`);\n resolve(this.isConnected);\n },\n },\n serializer: this.serializer.serialize,\n deserializer: this.serializer.deserialize,\n });\n const onNextMessage = (receivedMessage) => __awaiter(this, void 0, void 0, function* () {\n var _e;\n const responseMessageReceivedLog = `Response Message received for SourceRef: ${receivedMessage.SOURCE_REF} | MessageType: ${receivedMessage.MESSAGE_TYPE}`;\n this.logMessageTypeFlow(receivedMessage.MESSAGE_TYPE, logger.info, responseMessageReceivedLog);\n const { SOURCE_REF, MESSAGE_TYPE } = receivedMessage;\n const messageHandler = this.getMessageHandler(SOURCE_REF, MESSAGE_TYPE);\n if (!messageHandler) {\n return;\n }\n let nacked = false;\n switch (receivedMessage.MESSAGE_TYPE) {\n case EventMessageType.EVENT_LOGIN_AUTH_ACK: {\n this.hasValidSession = true;\n const systemDetails = receivedMessage.DETAILS;\n if (systemDetails.HEARTBEAT_INTERVAL_SECS &&\n ((_e = this.connectOptions) === null || _e === void 0 ? void 0 : _e.heartbeatInterval) === undefined) {\n this.heartbeatInterval =\n systemDetails.HEARTBEAT_INTERVAL_SECS * this.secondsMultiplier;\n this.prepareHeartbeat();\n }\n break;\n }\n case MessageType.LOGOUT_ACK: {\n this.hasValidSession = false;\n messageHandler.onReceivedMessage.call(this, receivedMessage);\n this.cleanMessages();\n return;\n }\n case MessageType.LOGON_ACK:\n return;\n case MessageType.LOGOFF_ACK: {\n if (receivedMessage.LOGGED_OUT && this.hasValidSession) {\n const refreshTokenMessage = this.messageBuilder.createRefreshTokenMessage();\n const refreshTokenResult = yield this.send(refreshTokenMessage);\n if (!refreshTokenResult) {\n this.hasValidSession = false;\n }\n else if (refreshTokenResult.MESSAGE_TYPE === EventMessageType.EVENT_LOGIN_AUTH_ACK) {\n this.session.setAuthResult(refreshTokenResult);\n this.wsMessageHandlers.forEach((mh) => {\n if (mh.isSubscription) {\n mh.sentMessage.SESSION_AUTH_TOKEN = refreshTokenResult.SESSION_AUTH_TOKEN;\n this.websocket.next(mh.sentMessage);\n }\n });\n }\n }\n break;\n }\n case MessageType.QUERY_UPDATE: {\n if (!messageHandler.isSubscription) {\n const dataLogoffMessage = this.messageBuilder.createDataLogoffMessage(SOURCE_REF);\n this.send(dataLogoffMessage);\n }\n break;\n }\n case MessageType.MSG_NACK: {\n nacked = true;\n break;\n }\n }\n if (nacked) {\n messageHandler.onReceivedError.call(this, {\n receivedMessage,\n sentMessage: messageHandler.sentMessage,\n });\n }\n else {\n messageHandler.onReceivedMessage.call(this, receivedMessage);\n }\n this.wsMessages.next(receivedMessage);\n if (!messageHandler.isSubscription) {\n this.removeMessageHandler(SOURCE_REF);\n }\n });\n const onError = (error) => {\n logger.debug('Error found: ', error);\n this.reconnect();\n };\n const onComplete = () => {\n var _a;\n if (this.disconnectedByServer && ((_a = this.connectOptions) === null || _a === void 0 ? void 0 : _a.alwaysOn)) {\n this.reconnect();\n return;\n }\n logger.info('Connection is now closed');\n };\n this.socketSubscription = this.websocket.subscribe((_d = (_c = this.connectOptions) === null || _c === void 0 ? void 0 : _c.connectObserver) !== null && _d !== void 0 ? _d : {\n next: onNextMessage,\n error: onError,\n complete: onComplete,\n });\n });\n }\n prepareHeartbeat() {\n var _a, _b, _c, _d;\n if (this.heartbeatSubscription) {\n this.heartbeatSubscription.unsubscribe();\n }\n const sendHeartbeat = () => __awaiter(this, void 0, void 0, function* () {\n if (!this.isConnected)\n return;\n const ping = {\n MESSAGE_TYPE: MessageType.HEARTBEAT_PING,\n SOURCE_REF: this.uuid.createId(),\n };\n const pong = yield this.send(ping);\n this.heartbeatIsEnabled =\n pong.MESSAGE_TYPE === MessageType.HEARTBEAT_PONG && pong.SOURCE_REF === ping.SOURCE_REF;\n });\n if ((_b = (_a = this.connectOptions) === null || _a === void 0 ? void 0 : _a.enableHeartbeat) !== null && _b !== void 0 ? _b : this.heartbeatIsEnabled) {\n const intervalInMillisecocnds = (_d = (_c = this.connectOptions) === null || _c === void 0 ? void 0 : _c.heartbeatInterval) !== null && _d !== void 0 ? _d : this.heartbeatInterval;\n this.heartbeatSubscription = timer(intervalInMillisecocnds, intervalInMillisecocnds)\n .pipe(takeWhile(() => this.websocket && this.isConnected), tap(() => this.heartbeatLoggingIsEnabled &&\n logger.debug(`Sending a heartbeat ping every ${intervalInMillisecocnds} ms`)))\n .subscribe(() => sendHeartbeat());\n }\n }\n reconnect() {\n var _a, _b, _c, _d, _e;\n const notAlwaysOnAndHeartbeating = !((_a = this.connectOptions) === null || _a === void 0 ? void 0 : _a.alwaysOn) && ((_b = this.connectOptions) === null || _b === void 0 ? void 0 : _b.enableHeartbeat) === false;\n if (this.isReconnecting || notAlwaysOnAndHeartbeating) {\n return;\n }\n this.isReconnecting = true;\n const scheduler = ((_c = this.reconnectOptions) === null || _c === void 0 ? void 0 : _c.reconnectStrategy) === SocketReconnectStrategy.Exponential\n ? exponentialScheduler\n : linearScheduler;\n const reconnectObservable = this.isConnectedSubject.asObservable().pipe(switchMap((isConnected) => !isConnected\n ? retryInterval(this.reconnectOptions, scheduler).pipe(mergeMap((value) => {\n var _a, _b, _c;\n let attemptsAmount;\n if ((_a = this.connectOptions) === null || _a === void 0 ? void 0 : _a.alwaysOn) {\n attemptsAmount = value + 1;\n }\n else {\n attemptsAmount =\n (_c = (_b = this.reconnectOptions) === null || _b === void 0 ? void 0 : _b.reconnectAttempts) !== null && _c !== void 0 ? _c : MAX_RECONNECT_ATTEMPTS;\n }\n if (value < attemptsAmount) {\n return of(value);\n }\n return throwError(() => new Error(`Max reconnect attempts ${attemptsAmount} reached.`));\n }))\n : of(-1)), takeWhile(() => this.websocket && !this.isConnected));\n reconnectObservable.subscribe((_e = (_d = this.reconnectOptions) === null || _d === void 0 ? void 0 : _d.reconnectObserver) !== null && _e !== void 0 ? _e : {\n next: (value) => {\n logger.debug(`Attempt no. ${value + 1} to reconnect`);\n this.websocket.complete();\n this.connect(this.url, this.connectOptions, this.reconnectOptions);\n },\n error: (error) => {\n var _a;\n logger.debug(error);\n (_a = this.socketSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n this.isReconnecting = false;\n },\n complete: () => {\n logger.info(this.isConnected ? 'Reconnected' : 'Disconnected');\n this.isReconnecting = false;\n this.wsMessageHandlers.forEach((mh) => {\n if (mh.isSubscription) {\n this.websocket.next(mh.sentMessage);\n }\n });\n },\n });\n }\n reset() {\n this.isConnected = false;\n this.websocket && this.websocket.complete();\n this.websocket = null;\n this.cleanMessages();\n }\n cleanMessages() {\n this.wsMessages && this.wsMessages.complete();\n this.wsMessages = new SocketSubject();\n this.wsMessageHandlers = new Map();\n }\n send(message, needsHandling = true) {\n if (!this.isConnected) {\n Promise.reject(new Error('WebSocket connection is closed'));\n return;\n }\n const sendingMessasgeLog = `Sending Message for SourceRef: ${message.SOURCE_REF} | MessageType: ${message.MESSAGE_TYPE}`;\n this.logMessageTypeFlow(message.MESSAGE_TYPE, logger.info, sendingMessasgeLog);\n return new Promise((resolve, reject) => {\n const onMessage = (msg) => {\n resolve(msg);\n };\n const onError = (err) => {\n reject(err);\n };\n if (needsHandling) {\n this.setMessageHandler(message, onMessage, onError);\n }\n this.websocket.next(message);\n });\n }\n sendForStream(message, onMessage, onError) {\n if (!this.isConnected) {\n return throwError(() => new Error('WebSocket connection is closed'));\n }\n if (!this.hasValidSession) {\n return throwError(() => new Error(`WebSocket connection is open but there is no valid/active session, please check your auth flow`));\n }\n const sendingMessageLog = `Sending Message (stream) for SourceRef: ${message.SOURCE_REF} | MessageType: ${message.MESSAGE_TYPE}`;\n this.logMessageTypeFlow(message.MESSAGE_TYPE, logger.info, sendingMessageLog);\n this.setMessageHandler(message, onMessage, onError, true);\n this.websocket.next(message);\n return from(this.wsMessages.pipe(filter((msg) => msg.SOURCE_REF === message.SOURCE_REF)));\n }\n setMessageHandler(message, onMessage, onError, isSubscription = false) {\n const settingMessageHandlerLog = `Setting Message Handler for SourceRef: ${message.SOURCE_REF} | MessageType: ${message.MESSAGE_TYPE}`;\n this.logMessageTypeFlow(message.MESSAGE_TYPE, logger.debug, settingMessageHandlerLog);\n this.wsMessageHandlers.set(message.SOURCE_REF, new SocketMessageHandler(message, onMessage, onError, isSubscription));\n }\n removeMessageHandler(sourceRef) {\n this.wsMessageHandlers.delete(sourceRef);\n }\n getMessageHandler(sourceRef, messageType) {\n const gettingMessageHandlerLog = `Getting Message Handler for SourceRef: ${sourceRef} | MessageType: ${messageType}`;\n this.logMessageTypeFlow(messageType, logger.debug, gettingMessageHandlerLog);\n return this.wsMessageHandlers.get(sourceRef);\n }\n logMessageTypeFlow(messageType, logFunc, logMsg) {\n switch (messageType) {\n case MessageType.HEARTBEAT_PING:\n case MessageType.HEARTBEAT_PONG:\n if (this.heartbeatLoggingIsEnabled) {\n logFunc(logMsg);\n }\n break;\n default:\n if (this.messageLoggingIsEnabled) {\n logFunc(logMsg);\n }\n break;\n }\n }\n};\n__decorate([\n observable\n], SocketService.prototype, \"websocket\", void 0);\n__decorate([\n observable\n], SocketService.prototype, \"wsMessages\", void 0);\n__decorate([\n observable\n], SocketService.prototype, \"wsMessageHandlers\", void 0);\n__decorate([\n observable\n], SocketService.prototype, \"isConnected\", void 0);\n__decorate([\n observable\n], SocketService.prototype, \"disconnectedByServer\", void 0);\n__decorate([\n observable\n], SocketService.prototype, \"hasValidSession\", void 0);\n__decorate([\n observable\n], SocketService.prototype, \"heartbeatIsEnabled\", void 0);\n__decorate([\n observable\n], SocketService.prototype, \"isReconnecting\", void 0);\nSocketService = __decorate([\n __param(0, MessageBuilder),\n __param(1, Session),\n __param(2, Serializer),\n __param(3, UUID)\n], SocketService);\nexport const Socket = DI.createInterface((x) => x.singleton(SocketService));\n//# sourceMappingURL=socket.js.map","let _HTTP_CONFIG;\ntry {\n _HTTP_CONFIG = HTTP_CONFIG;\n}\ncatch (_a) { }\nexport { _HTTP_CONFIG as HTTP_CONFIG };\nlet _FORCE_HTTP;\ntry {\n _FORCE_HTTP = FORCE_HTTP;\n}\ncatch (_b) { }\nexport { _FORCE_HTTP as FORCE_HTTP };\n//# sourceMappingURL=env-variables.js.map","import { __awaiter, __decorate, __param } from \"tslib\";\nimport { observable, volatile } from '@microsoft/fast-element';\nimport { DI, optional } from '@microsoft/fast-foundation';\nimport { MetadataCache } from '../metadata';\nimport { isWebSocketExpression, logger, until } from '../utils';\nimport { HttpConnect } from './http.connect';\nimport { EventMessageType, MessageBuilder } from './message';\nimport { Socket } from './socket';\nimport { ConnectConfig } from './connect.types';\nimport { FORCE_HTTP } from './env-variables';\nexport const defaultConnectConfig = {\n connect: {\n alwaysOn: false,\n enableHeartbeat: true,\n enableHeartbeatLogging: false,\n heartbeatInterval: 10000,\n enableMessageLogging: false,\n },\n reconnect: {\n reconnectAttempts: 10,\n reconnectInterval: 10000,\n reconnectStreams: true,\n },\n};\nlet DefaultConnect = class DefaultConnect {\n get isConnected() {\n return this.socket.isConnected;\n }\n get isConnectedSubject() {\n return this.socket.isConnectedSubject;\n }\n constructor(socket, messageBuilder, metaCache, config = defaultConnectConfig) {\n this.socket = socket;\n this.messageBuilder = messageBuilder;\n this.metaCache = metaCache;\n this.config = config;\n this.isWorking = false;\n }\n httpMode() {\n return false;\n }\n setValidSession(valid) {\n this.socket.hasValidSession = valid;\n }\n send(message, needsHandling) {\n return this.socket.send(message, needsHandling);\n }\n connect(host) {\n return __awaiter(this, void 0, void 0, function* () {\n this.socket.reset();\n if (!isWebSocketExpression.test(host)) {\n logger.error(`Specified host (${host}) is not valid WebSocket url. Connection will not proceed.`);\n logger.warn(`Make sure the host url starts with wss:// or ws://`);\n return;\n }\n return this.socket.connect(host, this.config.connect, this.config.reconnect);\n });\n }\n disconnect() {\n this.socket.reset();\n }\n snapshot(resourceName, params) {\n return __awaiter(this, void 0, void 0, function* () {\n const snapshotMessage = this.messageBuilder.createDataLogonMessage(resourceName, params);\n logger.debug(`${snapshotMessage.MESSAGE_TYPE} (snapshot) message created -> `, snapshotMessage);\n return this.socket.send(snapshotMessage);\n });\n }\n stream(resourceName, onMessage, onError, params) {\n const streamMessage = this.messageBuilder.createDataLogonMessage(resourceName, params);\n logger.debug(`${streamMessage.MESSAGE_TYPE} (stream) message created -> `, streamMessage);\n return this.socket.sendForStream(streamMessage, onMessage, onError);\n }\n getMoreRows(sourceRef) {\n return __awaiter(this, void 0, void 0, function* () {\n const moreRowsMessage = this.messageBuilder.createMoreRowsMessage(sourceRef);\n logger.debug(`${moreRowsMessage.MESSAGE_TYPE} message created -> `, moreRowsMessage);\n return this.socket.send(moreRowsMessage, false);\n });\n }\n dataLogoff(streamSourceRef) {\n return __awaiter(this, void 0, void 0, function* () {\n const dataLogoffMessage = this.messageBuilder.createDataLogoffMessage(streamSourceRef);\n logger.debug(`${dataLogoffMessage.MESSAGE_TYPE} message created -> `, dataLogoffMessage);\n return this.socket.send(dataLogoffMessage);\n });\n }\n getMetadata(resourceName, useCache = true) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n if (useCache) {\n yield until(() => this.isWorking === false);\n if (this.metaCache.hasMetadataFor(resourceName)) {\n logger.debug(`Cached metadata retrieved for ${resourceName}`);\n return this.metaCache.getMetadataFor(resourceName);\n }\n }\n const metaRequestMessage = this.messageBuilder.createMetaRequestMessage(resourceName);\n logger.debug(`${metaRequestMessage.MESSAGE_TYPE} (metadata) message created -> `, metaRequestMessage);\n let details;\n try {\n this.isWorking = true;\n const metaResponse = yield this.socket.send(metaRequestMessage);\n details = (_a = metaResponse === null || metaResponse === void 0 ? void 0 : metaResponse.DETAILS) !== null && _a !== void 0 ? _a : [];\n }\n finally {\n if (details) {\n this.metaCache.setMetadataFor(resourceName, details);\n }\n this.isWorking = false;\n }\n return details;\n });\n }\n getJSONSchema(resourceName) {\n return __awaiter(this, void 0, void 0, function* () {\n const metaRequestMessage = this.messageBuilder.createMetaRequestMessage(resourceName, EventMessageType.JSON_SCHEMA_REQUEST);\n logger.debug(`${metaRequestMessage.MESSAGE_TYPE} (json schema) message created -> `, metaRequestMessage);\n return this.socket.send(metaRequestMessage);\n });\n }\n request(resourceName, params) {\n const requestMessage = this.messageBuilder.createRequestMessage(resourceName, params);\n logger.debug(`${requestMessage.MESSAGE_TYPE} (request server) message created -> `, requestMessage);\n return this.socket.send(requestMessage);\n }\n commitEvent(eventName, params) {\n return __awaiter(this, void 0, void 0, function* () {\n const commitMessage = this.messageBuilder.createCommitMessage(eventName, params);\n logger.debug(`${commitMessage.MESSAGE_TYPE} (commit) message created -> `, commitMessage);\n return this.socket.send(commitMessage);\n });\n }\n};\n__decorate([\n observable\n], DefaultConnect.prototype, \"isWorking\", void 0);\n__decorate([\n volatile\n], DefaultConnect.prototype, \"isConnected\", null);\nDefaultConnect = __decorate([\n __param(0, Socket),\n __param(1, MessageBuilder),\n __param(2, MetadataCache),\n __param(3, optional(ConnectConfig))\n], DefaultConnect);\nconst useHttpConnect = FORCE_HTTP === 'true' || false;\nexport const WSConnect = DI.createInterface((x) => x.singleton(DefaultConnect));\nexport const Connect = DI.createInterface((x) => useHttpConnect ? x.aliasTo(HttpConnect) : x.aliasTo(WSConnect));\n//# sourceMappingURL=connect.js.map","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","import { DI } from '@microsoft/fast-foundation';\nexport const CredentialManagerConfig = DI.createInterface();\n//# sourceMappingURL=credentialManager.types.js.map","import { __awaiter, __decorate, __param, __rest } from \"tslib\";\nimport { DI, optional } from '@microsoft/fast-foundation';\nimport jsCookie from 'js-cookie';\nimport { Session } from '../session';\nimport { AuthType } from '../auth/auth.types';\nimport { CredentialManagerConfig } from './credentialManager.types';\nimport { logger } from '../utils';\nfunction supportsCredentialsContainer() {\n if (!(navigator === null || navigator === void 0 ? void 0 : navigator.credentials)) {\n logger.warn('CredentialsContainer not available in this browser.');\n return false;\n }\n if (!('PasswordCredential' in window)) {\n logger.warn('PasswordCredential not available in this browser.');\n return false;\n }\n return true;\n}\nexport const defaultCredentialRequestOptions = {\n password: true,\n mediation: 'optional',\n};\nexport const defaultCredentialManagerConfig = {\n cookie: {\n path: '/',\n name: 'credentials',\n expires: 20 * 365,\n storePasswords: false,\n },\n};\nlet DefaultCredentialManager = class DefaultCredentialManager {\n constructor(session, config = defaultCredentialManagerConfig) {\n this.session = session;\n this.config = config;\n }\n createBasicCredentials(inputs) {\n return {\n type: AuthType.BASIC,\n username: inputs.username,\n password: inputs.password,\n };\n }\n createRefreshCredentials(inputs) {\n var _a, _b;\n return {\n type: AuthType.REFRESH,\n username: (_a = inputs === null || inputs === void 0 ? void 0 : inputs.username) !== null && _a !== void 0 ? _a : this.getUsername(),\n refreshToken: (_b = inputs === null || inputs === void 0 ? void 0 : inputs.refreshToken) !== null && _b !== void 0 ? _b : this.getRefreshToken(),\n };\n }\n createSSOCredentials(inputs) {\n var _a;\n return {\n type: AuthType.SSO,\n ssoToken: (_a = inputs === null || inputs === void 0 ? void 0 : inputs.ssoToken) !== null && _a !== void 0 ? _a : this.getSSOToken(),\n };\n }\n validateBasicCredentials(credentials) {\n return credentials && !!credentials.username && !!credentials.password;\n }\n validateRefreshCredentials(credentials) {\n return credentials && !!credentials.refreshToken && !!credentials.username;\n }\n validateSSOCredentials(credentials) {\n return credentials && !!credentials.ssoToken;\n }\n storeCredentialsInContainer(data) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!supportsCredentialsContainer()) {\n return;\n }\n const credentials = new PasswordCredential(data);\n logger.debug('Storing credentials in CredentialsContainer');\n return navigator.credentials.store(credentials);\n });\n }\n getCredentialsFromContainer(options = defaultCredentialRequestOptions) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!supportsCredentialsContainer()) {\n return;\n }\n logger.debug('Getting credentials from CredentialsContainer');\n return (yield navigator.credentials.get(options));\n });\n }\n storeCredentialsInCookie(data) {\n const { password } = data, rest = __rest(data, [\"password\"]);\n const credentials = this.config.cookie.storePasswords ? data : rest;\n logger.debug('Storing credentials in cookie');\n return !!jsCookie.set(this.config.cookie.name, JSON.stringify(credentials), {\n expires: this.config.cookie.expires,\n domain: location.hostname,\n path: this.config.cookie.path,\n secure: true,\n });\n }\n getCredentialsFromCookie() {\n logger.debug('Getting credentials from cookie');\n const cookie = jsCookie.get(this.config.cookie.name);\n return cookie ? JSON.parse(cookie) : undefined;\n }\n storeCredentials(data) {\n return __awaiter(this, void 0, void 0, function* () {\n if (supportsCredentialsContainer()) {\n const credential = yield this.storeCredentialsInContainer(data);\n return Promise.resolve(!!credential);\n }\n return Promise.resolve(this.storeCredentialsInCookie(data));\n });\n }\n getCredentials(options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (supportsCredentialsContainer()) {\n return this.getCredentialsFromContainer(options);\n }\n return Promise.resolve(this.getCredentialsFromCookie());\n });\n }\n getSSOToken() {\n return this.session.getSessionStorageItem('ssoToken');\n }\n getUsername() {\n return this.session.getSessionStorageItem('username');\n }\n getRefreshToken() {\n return this.session.getSessionStorageItem('refreshToken');\n }\n removeCookie() {\n jsCookie.remove(this.config.cookie.name, {\n domain: location.hostname,\n path: this.config.cookie.path,\n });\n }\n removeSSOToken() {\n this.session.removeSessionStorageItem('ssoToken');\n }\n removeUsername() {\n this.session.removeSessionStorageItem('username');\n }\n removeRefreshToken() {\n this.session.removeSessionStorageItem('refreshToken');\n }\n removeAll() {\n this.removeCookie();\n this.removeSSOToken();\n this.removeUsername();\n this.removeRefreshToken();\n }\n preventSilentAccess() {\n return supportsCredentialsContainer() && navigator.credentials.preventSilentAccess();\n }\n};\nDefaultCredentialManager = __decorate([\n __param(0, Session),\n __param(1, optional(CredentialManagerConfig))\n], DefaultCredentialManager);\nexport const CredentialManager = DI.createInterface((x) => x.singleton(DefaultCredentialManager));\n//# sourceMappingURL=credentialManager.js.map","import { __decorate } from \"tslib\";\nimport { observable } from '@microsoft/fast-element';\nexport class CurrentUser {\n constructor(options) {\n Object.assign(this, options);\n }\n hasAdminProfile() {\n return this.hasProfile('ADMIN');\n }\n hasPermission(permission) {\n return this.hasKey(this.permissions, permission);\n }\n hasProfile(profile) {\n return this.hasKey(this.profiles, profile);\n }\n hasKey(keys, key) {\n if (!keys || !keys.length || !key) {\n return false;\n }\n if (!Array.isArray(key)) {\n key = [key];\n }\n return key.some((k) => keys.includes(k));\n }\n}\n__decorate([\n observable\n], CurrentUser.prototype, \"permissions\", void 0);\n__decorate([\n observable\n], CurrentUser.prototype, \"profiles\", void 0);\n__decorate([\n observable\n], CurrentUser.prototype, \"username\", void 0);\n//# sourceMappingURL=user.js.map","import { __awaiter, __decorate, __param } from \"tslib\";\nimport { observable, volatile } from '@microsoft/fast-element';\nimport { DI } from '@microsoft/fast-foundation';\nimport { Connect } from '../connect';\nimport { EventMessageType, MessageBuilder, MessageCode, MessageType, } from '../connect/message';\nimport { Session } from '../session';\nimport { logger } from '../utils';\nimport { AuthError } from './auth.types';\nimport { CredentialManager } from '../credentialManager';\nimport { CurrentUser } from '../user';\nlet AuthService = class AuthService {\n get isLoggedIn() {\n return this.loggedUserResult\n ? !!(this.loggedUserResult.authToken && this.loggedUserResult.sessionId)\n : false;\n }\n constructor(session, connect, messageBuilder, credentialManager) {\n this.session = session;\n this.connect = connect;\n this.messageBuilder = messageBuilder;\n this.credentialManager = credentialManager;\n this.isWorking = false;\n this.loggedUserResult = null;\n this.currentUser = null;\n }\n login(credentials) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n this.isWorking = true;\n try {\n const loginMessage = this.messageBuilder.createLoginMessage(credentials);\n const authResult = yield this.connect.send(loginMessage);\n if (!authResult || authResult.ERROR || ((_a = authResult.DETAILS) === null || _a === void 0 ? void 0 : _a.ERROR)) {\n throw new AuthError(loginMessage, authResult);\n }\n this.applyAuthResults({\n authToken: authResult.SESSION_AUTH_TOKEN,\n refreshToken: authResult.REFRESH_AUTH_TOKEN,\n profiles: authResult.PROFILE,\n username: authResult.USER_NAME,\n permissions: authResult.PERMISSION,\n sessionId: authResult.SESSION_ID,\n });\n this.session.setAuthResult(authResult);\n logger.debug('Login Authentication Result:', authResult);\n }\n catch (err) {\n logger.error('Login Authentication Error:', err);\n if (err instanceof AuthError && err.isIgnorableError()) {\n logger.warn(`Ignoring authentication error as it is a known edge case.`);\n }\n else {\n this.removeAuthResults();\n throw err;\n }\n }\n finally {\n this.isWorking = false;\n }\n return this.loggedUserResult;\n });\n }\n logout() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n this.isWorking = true;\n let logoutResult = {\n success: false,\n };\n try {\n const logoutMessage = this.messageBuilder.createLogoutMessage(this.loggedUserResult);\n this.session.deleteUserFromSessionStorage();\n this.connect.setValidSession(false);\n const { CODE, DETAILS, MESSAGE_TYPE } = yield this.connect.send(logoutMessage);\n logoutResult = {\n success: MESSAGE_TYPE === MessageType.LOGOUT_ACK || CODE === MessageCode.SESSION_NOT_FOUND,\n error: (_a = DETAILS === null || DETAILS === void 0 ? void 0 : DETAILS.ERROR) !== null && _a !== void 0 ? _a : undefined,\n };\n }\n catch (err) {\n const logoutError = new AuthError(err.sentMessage, err.receivedMessage);\n logger.error('Logout Authentication Error:', logoutError);\n if (logoutError.isIgnorableError()) {\n logger.warn(`Ignoring authentication error as it is a known edge case.`);\n logoutResult.success = true;\n }\n else {\n throw err;\n }\n }\n finally {\n this.removeAuthResults();\n this.isWorking = false;\n }\n return logoutResult;\n });\n }\n reAuthFromSession() {\n return __awaiter(this, void 0, void 0, function* () {\n const hostUrl = this.session.getSessionStorageItem('hostUrl');\n const isConnected = hostUrl && (yield this.connect.connect(hostUrl));\n if (isConnected) {\n const refreshTokenMessage = this.messageBuilder.createRefreshTokenMessage();\n const refreshTokenResult = yield this.connect.send(refreshTokenMessage);\n if ((refreshTokenResult === null || refreshTokenResult === void 0 ? void 0 : refreshTokenResult.MESSAGE_TYPE) === EventMessageType.EVENT_LOGIN_AUTH_ACK) {\n this.session.setAuthResult(refreshTokenResult);\n this.connect.setValidSession(true);\n this.applyAuthResults(this.getLoggedUserFromSession(refreshTokenResult));\n return true;\n }\n }\n this.session.deleteUserFromSessionStorage();\n this.connect.setValidSession(false);\n return false;\n });\n }\n getLoggedUserFromSession(result) {\n const username = result.USER_NAME;\n const sessionAuthToken = result.SESSION_AUTH_TOKEN;\n const refreshAuthToken = result.REFRESH_AUTH_TOKEN;\n if (!username || !sessionAuthToken || !refreshAuthToken) {\n return null;\n }\n return {\n username,\n authToken: sessionAuthToken,\n refreshToken: refreshAuthToken,\n profiles: result.PROFILE,\n permissions: result.PERMISSION,\n sessionId: result.SESSION_ID,\n };\n }\n applyAuthResults(result) {\n if (!result) {\n this.removeAuthResults();\n return;\n }\n this.loggedUserResult = {\n authToken: result.authToken,\n refreshToken: result.refreshToken,\n profiles: result.profiles,\n username: result.username,\n permissions: result.permissions,\n sessionId: result.sessionId,\n };\n this.currentUser = new CurrentUser({\n permissions: result.permissions,\n profiles: result.profiles,\n username: result.username,\n });\n }\n removeAuthResults() {\n this.loggedUserResult = null;\n this.currentUser = null;\n }\n};\n__decorate([\n observable\n], AuthService.prototype, \"isWorking\", void 0);\n__decorate([\n observable\n], AuthService.prototype, \"loggedUserResult\", void 0);\n__decorate([\n observable\n], AuthService.prototype, \"currentUser\", void 0);\n__decorate([\n volatile\n], AuthService.prototype, \"isLoggedIn\", null);\nAuthService = __decorate([\n __param(0, Session),\n __param(1, Connect),\n __param(2, MessageBuilder),\n __param(3, CredentialManager)\n], AuthService);\nexport const Auth = DI.createInterface((x) => x.singleton(AuthService));\n//# sourceMappingURL=auth.js.map","export var ResourceType;\n(function (ResourceType) {\n ResourceType[\"DATASERVER\"] = \"DATASERVER\";\n ResourceType[\"EVENT_HANDLER\"] = \"EVENT_HANDLER\";\n ResourceType[\"REQUEST_SERVER\"] = \"REQUEST_SERVER\";\n})(ResourceType || (ResourceType = {}));\nexport class DatasourceDefaults {\n}\nDatasourceDefaults.MAX_ROWS_250 = 250;\nDatasourceDefaults.MAX_VIEW_1000 = 1000;\nDatasourceDefaults.REQ_REP_POLLING_INTERVAL_MS = 10000;\n//# sourceMappingURL=datasource.types.js.map","export var FieldTypeEnum;\n(function (FieldTypeEnum) {\n FieldTypeEnum[\"STRING\"] = \"STRING\";\n FieldTypeEnum[\"NUMBER\"] = \"NUMBER\";\n FieldTypeEnum[\"BOOLEAN\"] = \"BOOLEAN\";\n FieldTypeEnum[\"ENUM\"] = \"ENUM\";\n FieldTypeEnum[\"DATE\"] = \"DATE\";\n FieldTypeEnum[\"DATETIME\"] = \"DATETIME\";\n FieldTypeEnum[\"CUSTOM\"] = \"CUSTOM\";\n})(FieldTypeEnum || (FieldTypeEnum = {}));\nexport const TYPES_MAP = {\n STRING: FieldTypeEnum.STRING,\n ENUM: FieldTypeEnum.ENUM,\n BOOLEAN: FieldTypeEnum.BOOLEAN,\n INT: FieldTypeEnum.NUMBER,\n DOUBLE: FieldTypeEnum.NUMBER,\n BIGDECIMAL: FieldTypeEnum.NUMBER,\n DATE: FieldTypeEnum.DATE,\n DATETIME: FieldTypeEnum.DATETIME,\n};\n//# sourceMappingURL=metadata.types.js.map","import { ResourceType } from '../datasource/datasource.types';\nimport { logger } from '../utils';\nimport { FieldTypeEnum, TYPES_MAP } from './metadata.types';\nexport const toFieldMetadata = (fieldDef) => {\n if (!fieldDef)\n return null;\n return fieldDef.map((field) => {\n const meta = {\n name: field.NAME,\n type: TYPES_MAP[field.TYPE] || FieldTypeEnum.STRING,\n };\n if (field.TYPE === FieldTypeEnum.ENUM && field.VALID_VALUES) {\n try {\n meta.enumOptions = Array.isArray(field.VALID_VALUES)\n ? field.VALID_VALUES\n : field.VALID_VALUES.split('|');\n }\n catch (err) {\n logger.error(err);\n meta.enumOptions = [];\n }\n }\n return meta;\n });\n};\nexport const extractFieldDefinitions = (metadata) => {\n const type = metadata === null || metadata === void 0 ? void 0 : metadata.TYPE;\n if (type === ResourceType.DATASERVER) {\n return metadata.FIELD || [];\n }\n if (type === ResourceType.REQUEST_SERVER) {\n return metadata.REPLY_FIELD || [];\n }\n throw new Error(`Unsupported resource type: ${type}`);\n};\n//# sourceMappingURL=metadata.utils.js.map","import { __awaiter, __decorate, __param } from \"tslib\";\nimport { observable, volatile } from '@microsoft/fast-element';\nimport { DI } from '@microsoft/fast-foundation';\nimport { from, timer } from 'rxjs';\nimport { switchMap, takeWhile } from 'rxjs/operators';\nimport { Auth } from '../auth';\nimport { Connect } from '../connect';\nimport { extractFieldDefinitions, toFieldMetadata } from '../metadata/metadata.utils';\nimport { logger } from '../utils';\nimport { DatasourceDefaults, ResourceType } from './datasource.types';\nlet DatasourceService = class DatasourceService {\n constructor(connect, auth) {\n this.connect = connect;\n this.auth = auth;\n this.initialized = false;\n this.readOnly = true;\n this.originalFieldDef = [];\n this.requestFields = [];\n this.fieldMetadata = [];\n this.availableIndexes = [];\n this.defaultOptions = {\n criteria: '',\n isSnapshot: false,\n maxRows: DatasourceDefaults.MAX_ROWS_250,\n maxView: DatasourceDefaults.MAX_VIEW_1000,\n orderBy: '',\n resourceName: '',\n reverse: false,\n };\n }\n init(options, fetchMeta = true) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.validResourceName(options === null || options === void 0 ? void 0 : options.resourceName)) {\n return false;\n }\n this.options = Object.assign(Object.assign({}, this.defaultOptions), options);\n if (fetchMeta) {\n logger.debug(`Initializing ${this.options.resourceName} Datasource`);\n const meta = yield this.connect\n .getMetadata(this.options.resourceName)\n .catch((e) => logger.error(`Metadata Fetch failed for ${options.resourceName}:`, e));\n if (!meta)\n return false;\n this.resourceType = meta.TYPE;\n this.availableIndexes = (_a = meta.INDEXES) !== null && _a !== void 0 ? _a : [];\n this.originalFieldDef = extractFieldDefinitions(meta);\n this.fieldMetadata = toFieldMetadata(this.originalFieldDef);\n this.requestFields = meta.REQUEST_FIELD || [];\n logger.debug(`Datasource for ${this.options.resourceName} is ready`);\n }\n if (!this.options.isSnapshot) {\n this._stream = yield this.createStream();\n }\n this.initialized = true;\n return this.initialized;\n });\n }\n get stream() {\n return this._stream;\n }\n get params() {\n const params = {\n CRITERIA_MATCH: this.options.criteria,\n FIELDS: this.options.fields,\n MAX_ROWS: this.options.maxRows,\n MAX_VIEW: this.options.maxView,\n REQUEST: this.options.request,\n REVERSE: this.options.reverse,\n };\n if (this.options.orderBy) {\n if (this.availableIndexes.findIndex((i) => i.NAME === this.options.orderBy) > -1) {\n params.ORDER_BY = this.options.orderBy;\n }\n else {\n const validIndexes = this.availableIndexes.map((index) => index.NAME);\n logger.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:', validIndexes);\n }\n }\n logger.debug('Getting configured params:', params);\n return params;\n }\n snapshot() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n logger.debug(`Requesting snapshot for ${this.options.resourceName} (${this.resourceType}).`);\n switch (this.resourceType) {\n case ResourceType.DATASERVER:\n return this.connect.snapshot(this.options.resourceName, this.params);\n case ResourceType.REQUEST_SERVER: {\n const reqParams = { DETAILS: Object.assign({}, this.params), REQUEST: null };\n const reqFields = {};\n this.requestFields.forEach((rf) => {\n reqFields[rf.NAME] = '*';\n });\n reqParams.REQUEST = reqFields;\n if ((_a = this === null || this === void 0 ? void 0 : this.options) === null || _a === void 0 ? void 0 : _a.criteria) {\n const fromCriteria = this.criteriaToReqFields(this.options.criteria);\n reqParams.REQUEST = Object.assign(Object.assign({}, reqParams.REQUEST), fromCriteria);\n }\n return this.connect.request(this.options.resourceName, reqParams);\n }\n default:\n throw new Error(`Snapshot not supported for selected resource type: ${this.resourceType}`);\n }\n });\n }\n snapshotFiltered(rowId = 'ROW_REF') {\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield this.snapshot();\n if (Array.isArray(result)) {\n return result;\n }\n else if (result.REPLY) {\n return result.REPLY;\n }\n else if (result.ROW) {\n return this.filterRows(result, rowId).inserts;\n }\n });\n }\n filterRows(data, rowId) {\n const toRowData = (row) => {\n const tmp = Object.assign(Object.assign({}, row), { [rowId]: row.DETAILS[rowId] });\n delete tmp.DETAILS;\n return tmp;\n };\n const inserts = [];\n const deletes = [];\n const updates = [];\n for (const row of data.ROW) {\n if (!row.DETAILS)\n continue;\n switch (row.DETAILS.OPERATION) {\n case 'INSERT':\n inserts.push(toRowData(row));\n break;\n case 'MODIFY':\n updates.push(toRowData(row));\n break;\n case 'DELETE':\n deletes.push(toRowData(row));\n break;\n default:\n logger.error(`Unsupported operation type: ${row.DETAILS.OPERATION}`);\n }\n }\n return { inserts, deletes, updates, SOURCE_REF: data.SOURCE_REF };\n }\n createStream() {\n return __awaiter(this, void 0, void 0, function* () {\n if (![ResourceType.DATASERVER, ResourceType.REQUEST_SERVER].includes(this.resourceType)) {\n throw new Error(`Streaming not supported for selected resource type: ${this.resourceType}`);\n }\n if (this.resourceType === ResourceType.DATASERVER) {\n return this.createDataserverStream();\n }\n logger.debug(`Creating fake stream by polling ${this.options.resourceName} REQUEST_SERVER`);\n return this.createReqRepStream();\n });\n }\n createDataserverStream() {\n return __awaiter(this, void 0, void 0, function* () {\n const onMessage = (message) => { };\n const onError = (error) => logger.error(error);\n return this.connect.stream(this.options.resourceName, onMessage, onError, this.params);\n });\n }\n createReqRepStream() {\n return timer(0, DatasourceDefaults.REQ_REP_POLLING_INTERVAL_MS).pipe(takeWhile(() => this.connect.isConnected && this.auth.isLoggedIn), switchMap(() => from(this.snapshot())));\n }\n validResourceName(resourceName) {\n if (!resourceName)\n return false;\n if (!resourceName.trim().length)\n return false;\n return true;\n }\n criteriaToReqFields(concatCriteria) {\n const criteria = concatCriteria.split('&&').map((s) => s.trim());\n const reqFields = {};\n criteria.forEach((c) => {\n const key = c.substr(0, c.indexOf('=')).trim().replace(/[\"']/g, '');\n const val = c\n .substr(c.lastIndexOf('=') + 1, c.length)\n .trim()\n .replace(/[\"']/g, '');\n reqFields[key] = val;\n });\n return reqFields;\n }\n};\n__decorate([\n observable\n], DatasourceService.prototype, \"initialized\", void 0);\n__decorate([\n observable\n], DatasourceService.prototype, \"readOnly\", void 0);\n__decorate([\n volatile\n], DatasourceService.prototype, \"stream\", null);\nDatasourceService = __decorate([\n __param(0, Connect),\n __param(1, Auth)\n], DatasourceService);\nexport const Datasource = DI.createInterface((x) => x.transient(DatasourceService));\n//# sourceMappingURL=datasource.js.map","import { __awaiter, __decorate } from \"tslib\";\nimport { addIntentListener, fdc3Ready, findIntent, findIntentsByContext, getOrCreateChannel, getInfo, joinChannel, raiseIntent, raiseIntentForContext, versionIsAtLeast, } from '@finos/fdc3';\nimport { observable } from '@microsoft/fast-element';\nimport { DI } from '@microsoft/fast-foundation';\nimport { logger } from '../utils';\nclass FDC3Service {\n constructor() {\n this.isReady = false;\n this.connect();\n }\n connect() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n this.isReady = false;\n yield fdc3Ready();\n logger.debug('fdc3 connection success');\n }\n catch (err) {\n logger.error('fdc3 connection error', err);\n throw err;\n }\n });\n }\n addIntentListeners(listeners) {\n listeners.forEach((handler, intent) => {\n const listener = addIntentListener(intent, handler);\n logger.debug(`fdc3 addIntentListener for '${intent}', ${listener}`);\n });\n }\n findIntent(intent, context) {\n logger.debug(`fdc3 findIntent '${intent}' '${context}'`);\n return findIntent(intent, context);\n }\n findIntentsByContext(context) {\n logger.debug(`fdc3 findIntentsByContext '${context}'`);\n return findIntentsByContext(context);\n }\n raiseIntent(context, intent) {\n if (getInfo && versionIsAtLeast(getInfo(), '1.2')) {\n logger.debug(`fdc3 raiseIntentForContext '${context}'`);\n return raiseIntentForContext(context);\n }\n if (intent) {\n logger.debug(`fdc3 raiseIntent '${intent}' '${context}'`);\n return raiseIntent(intent, context);\n }\n logger.error(`fdc3 unable to raiseIntent using context '${context}' and intent '${intent}'.`);\n }\n joinChannel(channelId) {\n logger.debug(`fdc3 joinChannel '${channelId}'`);\n return joinChannel(channelId);\n }\n getOrCreateChannel(channelId) {\n logger.debug(`fdc3 getOrCreateChannel '${channelId}'`);\n return getOrCreateChannel(channelId);\n }\n broadcastOnChannel(channelId, context) {\n return __awaiter(this, void 0, void 0, function* () {\n const channel = yield this.getOrCreateChannel(channelId);\n logger.debug(`fdc3 broadcast '${channelId}' '${context}'`);\n channel.broadcast(context);\n });\n }\n}\n__decorate([\n observable\n], FDC3Service.prototype, \"isReady\", void 0);\nexport const FDC3 = DI.createInterface((x) => x.singleton(FDC3Service));\n//# sourceMappingURL=fdc3.js.map"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (self.webpackChunk_genesislcap_foundation_filters=self.webpackChunk_genesislcap_foundation_filters||[]).push([[410],{4410:(e,r,t)=>{"use strict";t.r(r),t.d(r,{ClientFilterName:()=>y,ClientFilterRunner:()=>b,DefaultClientFilterRunner:()=>W,DefaultNodeEnv:()=>u,DefaultPercentage:()=>c,DefaultTimeWindow:()=>f,DefaultURLTargeting:()=>p,DefaultUserAgent:()=>I,DefaultUserTargeting:()=>F,NodeEnv:()=>l,Percentage:()=>g,TimeWindow:()=>m,URLTargeting:()=>h,UserAgent:()=>U,UserTargeting:()=>L,getFilterByName:()=>E,logger:()=>s,nodeEnvFilter:()=>a,percentageFilter:()=>o,runner:()=>R,timeWindowFilter:()=>d,urlTargetingFilter:()=>v,userAgentFilter:()=>D,userTargetingFilter:()=>A});var n=t(779),i=t(5951);const s=(0,t(622).createLogger)("foundation-filters");function a(e){return e?e.includes("production"):(s.warn("NodeEnv filter parameters must include envs."),!0)}class u{filter(e){return a(null==e?void 0:e.envs)}get isDevelopment(){return a(["development"])}get isTesting(){return a(["testing","test"])}get isProduction(){return a(["production"])}}const l=i.DI.createInterface((e=>e.transient(u)));function o(e,r=Math.random()){return e>=0&&e<=1?r<e:(s.warn("Percentage filter parameters must include a numeric percent between 0 and 1."),!0)}class c{filter(e){return o(null==e?void 0:e.percent,null==e?void 0:e.random)}}const g=i.DI.createInterface((e=>e.transient(c)));function d(e,r){if(!e&&!r)return s.warn("TimeWindow filter parameters must include start, end, or both."),!0;const t=new Date;let n=!0;if(e){n=t>=new Date(e)}if(r&&n){n=t<new Date(r)}return n}class f{filter(e){return d(null==e?void 0:e.start,null==e?void 0:e.end)}}const m=i.DI.createInterface((e=>e.transient(f)));function v(e,r,t,n,i){var a;if(!e)return s.warn("URLTargeting filter needs a url to filter on."),!0;if(!(r||t||n||i))return s.warn("URLTargeting filter parameters must include pattern, schemes, hosts, or paths."),!0;if(r&&r.test(e))return!0;let u;try{u=new URL(e)}catch(e){return!0}return!(!t||!t.includes(null===(a=u.protocol)||void 0===a?void 0:a.slice(0,-1)))||(!(!n||!n.includes(u.host))||!!i&&i.includes(u.pathname))}class p{filter(e){return v(null==e?void 0:e.url,null==e?void 0:e.pattern,null==e?void 0:e.schemes,null==e?void 0:e.hosts,null==e?void 0:e.paths)}isSecure(e){return v(e,null,["https","wss"])}}const h=i.DI.createInterface((e=>e.transient(p)));var w=t(3729),T=t.n(w);function D(e,r,t,n){if(!e&&!r&&!t)return s.warn("UserAgent filter parameters must include browsers, devices, oss, or all three."),!0;const i=new(T())(n),a=e&&i.getBrowser();if(a&&a.name&&e.includes(a.name))return!0;const u=r&&i.getDevice();if(u&&u.type&&r.includes(u.type))return!0;const l=t&&i.getOS();return!!l&&!!l.name&&t.includes(l.name)}class I{filter(e){return D(null==e?void 0:e.browsers,null==e?void 0:e.devices,null==e?void 0:e.oss,null==e?void 0:e.ua)}get isSafari(){return D(["Safari"])}}const U=i.DI.createInterface((e=>e.transient(I)));var _=t(697);function A(e,r,t,n){return e?r||t||n?!(!r||!r.includes(e.username))||(!(!t||!t.some((r=>e.profiles.includes(r))))||!!n&&n.some((r=>e.permissions.includes(r)))):(s.warn("UserTargeting filter parameters must include usernames, profiles, permissions, or all three."),!0):(s.warn("UserTargeting filter needs a user to filter on."),!0)}let F=class{constructor(e){this.auth=e}filter(e){return A(this.auth.currentUser,null==e?void 0:e.usernames,null==e?void 0:e.profiles,null==e?void 0:e.permissions)}get hasAdminProfile(){return A(this.auth.currentUser,void 0,["ADMIN"])}get isLoggedIn(){return this.auth.isLoggedIn}};F=(0,n.__decorate)([(0,n.__param)(0,_.Auth)],F);const L=i.DI.createInterface((e=>e.transient(F))),y={nodeEnv:"nodeEnv",percentage:"percentage",timeWindow:"timeWindow",urlTargeting:"urlTargeting",userAgent:"userAgent",userTargeting:"userTargeting"};function E(e,r){switch(e){case y.nodeEnv:return r.get(l);case y.percentage:return r.get(g);case y.timeWindow:return r.get(m);case y.urlTargeting:return r.get(h);case y.userAgent:return r.get(U);case y.userTargeting:return r.get(L)}}function R(e,r){return e&&e.length?e.every((e=>{const t=E(e.name,r);return!t||t.filter(e.parameters)})):(s.warn("The client filter runner requires an array of filters to run, received:",e),!0)}class W{run(e,r=this.container){return R(e,r)}}(0,n.__decorate)([i.Container],W.prototype,"container",void 0);const b=i.DI.createInterface((e=>e.transient(W)))}}]);
2
- //# sourceMappingURL=410.b5df595dde82c180f8072c152d5025dc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack://@genesislcap/foundation-filters/./src/logger.ts","webpack://@genesislcap/foundation-filters/./src/nodeEnv.ts","webpack://@genesislcap/foundation-filters/./src/percentage.ts","webpack://@genesislcap/foundation-filters/./src/timeWindow.ts","webpack://@genesislcap/foundation-filters/./src/urlTargeting.ts","webpack://@genesislcap/foundation-filters/./src/userAgent.ts","webpack://@genesislcap/foundation-filters/./src/userTargeting.ts","webpack://@genesislcap/foundation-filters/./src/clientFilter.ts"],"names":["logger","createLogger","nodeEnvFilter","envs","includes","warn","DefaultNodeEnv","filter","params","isDevelopment","isTesting","isProduction","NodeEnv","DI","x","transient","percentageFilter","percent","random","Math","DefaultPercentage","Percentage","timeWindowFilter","start","end","now","Date","result","DefaultTimeWindow","TimeWindow","urlTargetingFilter","url","pattern","schemes","hosts","paths","test","urlObj","URL","e","protocol","slice","host","pathname","DefaultURLTargeting","isSecure","URLTargeting","userAgentFilter","browsers","devices","oss","ua","parser","browser","getBrowser","name","device","getDevice","type","os","getOS","DefaultUserAgent","isSafari","UserAgent","userTargetingFilter","user","usernames","profiles","permissions","username","some","p","DefaultUserTargeting","constructor","auth","this","currentUser","hasAdminProfile","undefined","isLoggedIn","Auth","UserTargeting","ClientFilterName","nodeEnv","percentage","timeWindow","urlTargeting","userAgent","userTargeting","getFilterByName","container","get","runner","filters","length","every","cf","target","parameters","DefaultClientFilterRunner","run","Container","ClientFilterRunner"],"mappings":"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","file":"410.410.xxxxxxxxxxxxxxxxxxxx.js","sourcesContent":["import { createLogger } from '@genesislcap/foundation-utils';\n\n/**\n * Client filter logger\n *\n * @remarks\n * Exposed so that the logging level within this package can be tailored differently to the default level when needed.\n *\n * @example\n * ```ts\n * import { LogLevel } from '@genesislcap/foundation-utils';\n * import { logger as clientFilterLogger } from '@genesislcap/foundation-filters';\n * clientFilterLogger.level = LogLevel.Error;\n * ```\n *\n * @public\n */\nexport const logger = createLogger('foundation-filters');\n","import { DI } from '@microsoft/fast-foundation';\nimport type { ClientFilter, ClientFilterName, ClientFilterSchema } from './clientFilter';\nimport { logger } from './logger';\n\n/**\n * NodeEnv client filter function.\n * @remarks\n * This will return true when the current node env matches target parameters.\n * @param envs - Environments to target.\n * @public\n */\nexport function nodeEnvFilter(envs: string[]): boolean {\n if (!envs) {\n logger.warn('NodeEnv filter parameters must include envs.');\n return true;\n }\n return !!process.env.NODE_ENV && envs.includes(process.env.NODE_ENV);\n}\n\n/**\n * NodeEnvParams\n *\n * @example\n * ```json\n * {\n * \"envs\": [\"development\", \"testing\"],\n * }\n * ```\n *\n * @public\n */\nexport type NodeEnvParams = {\n /**\n * Envs to target.\n */\n readonly envs: string[];\n};\n\n/**\n * NodeEnvSchema type.\n *\n * @remarks\n * JSON schema type.\n *\n * @public\n */\nexport type NodeEnvSchema = ClientFilterSchema<typeof ClientFilterName.nodeEnv, NodeEnvParams>;\n\n/**\n * NodeEnv client filter DI interface.\n * @public\n */\nexport interface NodeEnv extends ClientFilter<NodeEnvParams> {\n /**\n * @remarks\n * Running in development mode.\n */\n readonly isDevelopment: boolean;\n /**\n * @remarks\n * Running in test mode.\n */\n readonly isTesting: boolean;\n /**\n * @remarks\n * Running in production mode.\n */\n readonly isProduction: boolean;\n}\n\n/**\n * Default NodeEnv DI implementation.\n * @public\n */\nexport class DefaultNodeEnv implements NodeEnv {\n /** {@inheritDoc ClientFilter.filter} */\n filter(params: NodeEnvParams) {\n return nodeEnvFilter(params?.envs);\n }\n\n /** {@inheritDoc NodeEnv.isDevelopment} */\n get isDevelopment() {\n return nodeEnvFilter(['development']);\n }\n\n /** {@inheritDoc NodeEnv.isTesting} */\n get isTesting() {\n return nodeEnvFilter(['testing', 'test']);\n }\n\n /** {@inheritDoc NodeEnv.isProduction} */\n get isProduction() {\n return nodeEnvFilter(['production']);\n }\n}\n\n/**\n * NodeEnv DI key.\n *\n * @privateRemarks\n * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.\n *\n * @internal\n */\nexport const NodeEnv = DI.createInterface<NodeEnv>((x) => x.transient(DefaultNodeEnv));\n","import { DI } from '@microsoft/fast-foundation';\nimport type { ClientFilter, ClientFilterName, ClientFilterSchema } from './clientFilter';\nimport { logger } from './logger';\n\n/**\n * Percentage client filter function.\n * @remarks\n * This will return true a certain percentage of the time.\n * @param percent - The percent of the time to pass, a numeric value between 0 and 1.\n * @param random - Math.random() generated floating-point.\n * @public\n */\nexport function percentageFilter(percent: number, random = Math.random()): boolean {\n const withinRange = percent >= 0 && percent <= 1;\n if (!withinRange) {\n logger.warn('Percentage filter parameters must include a numeric percent between 0 and 1.');\n return true;\n }\n return random < percent;\n}\n\n/**\n * PercentageParams\n *\n * @remarks\n * Percent should be a numeric value between 0 and 1.\n *\n * @example\n * ```json\n * {\n * \"percent\": 0.5\n * }\n * ```\n *\n * @example\n * In a rare case where you need to control the random floating-point creation, you can do so externally and provide it.\n * ```json\n * {\n * \"percent\": 0.34\n * \"random\": 0.08901819974272063\n * }\n * ```\n *\n * @public\n */\nexport type PercentageParams = {\n readonly percent: number;\n /**\n * @remarks\n * Provided for fine-grain control over the random floating-point\n */\n readonly random?: number;\n};\n\n/**\n * PercentageSchema type.\n *\n * @remarks\n * JSON schema type.\n *\n * @public\n */\nexport type PercentageSchema = ClientFilterSchema<\n typeof ClientFilterName.percentage,\n PercentageParams\n>;\n\n/**\n * Percentage client filter DI interface.\n *\n * @remarks\n * Simplifies access to runtime data / state contained within the DI container.\n *\n * @public\n * @privateRemarks\n * Created for consistency with other filters that required DI container access.\n */\nexport interface Percentage extends ClientFilter<PercentageParams> {}\n\n/**\n * Default Percentage DI implementation.\n * @public\n */\nexport class DefaultPercentage implements Percentage {\n /** {@inheritDoc ClientFilter.filter} */\n filter(params: PercentageParams) {\n return percentageFilter(params?.percent, params?.random);\n }\n}\n\n/**\n * Percentage DI key.\n *\n * @privateRemarks\n * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.\n *\n * @internal\n */\nexport const Percentage = DI.createInterface<Percentage>((x) => x.transient(DefaultPercentage));\n","import { DI } from '@microsoft/fast-foundation';\nimport type { ClientFilter, ClientFilterName, ClientFilterSchema } from './clientFilter';\nimport { logger } from './logger';\n\n/**\n * TimeWindow client filter function.\n * @remarks\n * This will return true between a certain time window. Start and end can be provided in any format recognized by the\n * Date.parse() method.\n *\n * @param start - The start of the time window.\n * @param end - The end of the time window.\n * @public\n */\nexport function timeWindowFilter(start?: string, end?: string): boolean {\n if (!start && !end) {\n logger.warn('TimeWindow filter parameters must include start, end, or both.');\n return true;\n }\n const now = new Date();\n let result = true;\n if (start) {\n const startDate = new Date(start);\n result = now >= startDate;\n }\n if (end && result) {\n const endDate = new Date(end);\n result = now < endDate;\n }\n return result;\n}\n\n/**\n * TimeWindowParams\n *\n * @remarks\n * Both params can be provided in any format recognized by the Date.parse() method.\n *\n * @example\n * ```json\n * {\n * \"start\": \"Sun Sep 25 2022 16:51:55 GMT+0000\",\n * \"end\": \"Fri Nov 25 2022 17:51:55 GMT+0000\"\n * }\n * ```\n *\n * @example\n * ```json\n * {\n * \"start\": \"2022-10-01\",\n * \"end\": \"2022-12-01\"\n * }\n * ```\n *\n * @example\n * ```json\n * {\n * \"end\": \"Dec 31, 2022\"\n * }\n * ```\n *\n * @example\n * ```json\n * {\n * \"start\": \"2023-01-01T00:00:00.000+00:00\"\n * }\n * ```\n *\n * @public\n */\nexport type TimeWindowParams = {\n readonly start?: string;\n readonly end?: string;\n};\n\n/**\n * TimeWindowSchema type.\n *\n * @remarks\n * JSON schema type.\n *\n * @public\n */\nexport type TimeWindowSchema = ClientFilterSchema<\n typeof ClientFilterName.timeWindow,\n TimeWindowParams\n>;\n\n/**\n * TimeWindow client filter DI interface.\n *\n * @remarks\n * Simplifies access to runtime data / state contained within the DI container.\n *\n * @public\n */\nexport interface TimeWindow extends ClientFilter<TimeWindowParams> {}\n\n/**\n * Default TimeWindow DI implementation.\n * @public\n */\nexport class DefaultTimeWindow implements TimeWindow {\n /** {@inheritDoc ClientFilter.filter} */\n filter(params: TimeWindowParams) {\n return timeWindowFilter(params?.start, params?.end);\n }\n}\n\n/**\n * TimeWindow DI key.\n *\n * @privateRemarks\n * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.\n *\n * @internal\n */\nexport const TimeWindow = DI.createInterface<TimeWindow>((x) => x.transient(DefaultTimeWindow));\n","import { DI } from '@microsoft/fast-foundation';\nimport type { ClientFilter, ClientFilterName, ClientFilterSchema } from './clientFilter';\nimport { logger } from './logger';\n\n/**\n * URLTargeting client filter function.\n * @remarks\n * This will return true when the current URL matches on ANY of the parameters. If you wish to match on multiple\n * parameters, consider chaining an array of urlTargeting filters together.\n * @param url - A url.\n * @param pattern - A regex.\n * @param schemes - Schemes/protocols to target.\n * @param hosts - Hosts to target.\n * @param paths - Paths to target.\n * @public\n * @privateRemarks\n * The pattern regex can cover everything here, but some devs will likely welcome the explicit arguments.\n */\nexport function urlTargetingFilter(\n url: string,\n pattern?: RegExp,\n schemes?: string[],\n hosts?: string[],\n paths?: string[]\n): boolean {\n if (!url) {\n logger.warn('URLTargeting filter needs a url to filter on.');\n return true;\n }\n if (!pattern && !schemes && !hosts && !paths) {\n logger.warn('URLTargeting filter parameters must include pattern, schemes, hosts, or paths.');\n return true;\n }\n if (pattern && pattern.test(url)) {\n return true;\n }\n let urlObj: URL;\n try {\n urlObj = new URL(url);\n } catch (e) {\n return true;\n }\n if (schemes && schemes.includes(urlObj.protocol?.slice(0, -1))) {\n return true;\n }\n if (hosts && hosts.includes(urlObj.host)) {\n return true;\n }\n return !!paths && paths.includes(urlObj.pathname);\n}\n\n/**\n * URLTargetingParams\n *\n * @example\n * ```json\n * {\n * \"schemes\": [\"https\"],\n * \"hosts\": [\"neptx.genesislab.global\", \"neptune-uat2-axes-server2\"]\n * }\n * ```\n *\n * @public\n */\nexport type URLTargetingParams = {\n /**\n * A url.\n */\n readonly url?: string;\n /**\n * A regex.\n */\n readonly pattern?: RegExp;\n /**\n * Schemes/protocols to target.\n */\n readonly schemes?: string[];\n /**\n * Hosts to target.\n */\n readonly hosts?: string[];\n /**\n * Paths to target.\n */\n readonly paths?: string[];\n};\n\n/**\n * URLTargetingSchema type.\n *\n * @remarks\n * JSON schema type.\n *\n * @public\n */\nexport type URLTargetingSchema = ClientFilterSchema<\n typeof ClientFilterName.urlTargeting,\n URLTargetingParams\n>;\n\n/**\n * URLTargeting client filter DI interface.\n *\n * @public\n */\nexport interface URLTargeting extends ClientFilter<URLTargetingParams> {\n /**\n * @remarks\n * Check if a url is secure.\n *\n * @param url - A url.\n */\n isSecure(url: string): boolean;\n}\n\n/**\n * Default URLTargeting DI implementation.\n * @public\n */\nexport class DefaultURLTargeting implements URLTargeting {\n /** {@inheritDoc ClientFilter.filter} */\n filter(params: URLTargetingParams) {\n return urlTargetingFilter(\n params?.url,\n params?.pattern,\n params?.schemes,\n params?.hosts,\n params?.paths\n );\n }\n\n /** {@inheritDoc URLTargeting.isSecure} */\n isSecure(url) {\n return urlTargetingFilter(url, null, ['https', 'wss']);\n }\n}\n\n/**\n * URLTargeting DI key.\n *\n * @privateRemarks\n * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.\n *\n * @internal\n */\nexport const URLTargeting = DI.createInterface<URLTargeting>((x) =>\n x.transient(DefaultURLTargeting)\n);\n","import { DI } from '@microsoft/fast-foundation';\nimport UAParser from 'ua-parser-js';\nimport type { ClientFilter, ClientFilterName, ClientFilterSchema } from './clientFilter';\nimport { logger } from './logger';\n\n/**\n * UserAgent client filter function.\n *\n * @remarks\n * See {@link https://github.com/faisalman/ua-parser-js} for more information.\n *\n * @param browsers - Browser names to target.\n * @param devices - Device types to target.\n * @param oss - Operating system names to target.\n * @param ua - User-agent string (required in nodejs environment).\n * @public\n */\nexport function userAgentFilter(\n browsers?: string[],\n devices?: string[],\n oss?: string[],\n ua?: string\n): boolean {\n if (!browsers && !devices && !oss) {\n logger.warn('UserAgent filter parameters must include browsers, devices, oss, or all three.');\n return true;\n }\n const parser = new UAParser(ua);\n const browser = browsers && parser.getBrowser();\n if (browser && browser.name && browsers.includes(browser.name)) {\n return true;\n }\n const device = devices && parser.getDevice();\n if (device && device.type && devices.includes(device.type)) {\n return true;\n }\n const os = oss && parser.getOS();\n return !!os && !!os.name && oss.includes(os.name);\n}\n\n/**\n * UserAgentParams\n *\n * @example\n * ```json\n * {\n * \"browsers\": [\"Safari\", \"Firefox\", \"Chrome\", \"Chromium\"],\n * \"devices\": [\"mobile\", \"tablet\"],\n * \"oss\": [\"Mac OS\", \"Linux\"]\n * }\n * ```\n *\n * @public\n */\nexport type UserAgentParams = {\n /**\n * Browser names to target.\n */\n readonly browsers?: string[];\n /**\n * Device types to target.\n */\n readonly devices?: string[];\n /**\n * Operating system names to target.\n */\n readonly oss?: string[];\n /**\n * @remarks\n * Provided for fine-grain control over the user-agent string in browser, and nodejs usage.\n */\n readonly ua?: string;\n};\n\n/**\n * UserAgentSchema type.\n *\n * @remarks\n * JSON schema type.\n *\n * @public\n */\nexport type UserAgentSchema = ClientFilterSchema<\n typeof ClientFilterName.userAgent,\n UserAgentParams\n>;\n\n/**\n * UserAgent client filter DI interface.\n *\n * @remarks\n * Simplifies access to runtime data / state contained within the DI container.\n *\n * @public\n * @privateRemarks\n * Created for consistency with other filters that required DI container access.\n */\nexport interface UserAgent extends ClientFilter<UserAgentParams> {\n /**\n * @remarks\n * Is the user-agent safari.\n *\n * @privateRemarks\n * Added as an example, see comment in implementation.\n */\n readonly isSafari: boolean;\n}\n\n/**\n * Default UserAgent DI implementation.\n * @public\n */\nexport class DefaultUserAgent implements UserAgent {\n /** {@inheritDoc ClientFilter.filter} */\n filter(params: UserAgentParams) {\n return userAgentFilter(params?.browsers, params?.devices, params?.oss, params?.ua);\n }\n\n /** {@inheritDoc UserAgent.isSafari} */\n get isSafari() {\n /**\n * You can use pre-defined params to encapsulate common requests.\n */\n return userAgentFilter(['Safari']);\n }\n}\n\n/**\n * UserAgent DI key.\n *\n * @privateRemarks\n * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.\n *\n * @internal\n */\nexport const UserAgent = DI.createInterface<UserAgent>((x) => x.transient(DefaultUserAgent));\n","import { Auth, User } from '@genesislcap/foundation-comms';\nimport { DI } from '@microsoft/fast-foundation';\nimport type { ClientFilter, ClientFilterName, ClientFilterSchema } from './clientFilter';\nimport { logger } from './logger';\n\n/**\n * UserTargeting client filter function.\n * @remarks\n * This will return true when the current user matches on ANY of the parameters. If you wish to match on multiple\n * parameters, consider chaining an array of userTargeting filters together.\n * @param user - A user object.\n * @param usernames - Usernames to target.\n * @param profiles - Profiles to target.\n * @param permissions - Permissions to target.\n * @public\n * @privateRemarks\n * We could provide another parameter to indicate a complete match is required?\n */\nexport function userTargetingFilter(\n user: User,\n usernames?: string[],\n profiles?: string[],\n permissions?: string[]\n): boolean {\n if (!user) {\n logger.warn('UserTargeting filter needs a user to filter on.');\n return true;\n }\n if (!usernames && !profiles && !permissions) {\n logger.warn(\n 'UserTargeting filter parameters must include usernames, profiles, permissions, or all three.'\n );\n return true;\n }\n if (usernames && usernames.includes(user.username)) {\n return true;\n }\n if (profiles && profiles.some((p) => user.profiles.includes(p))) {\n return true;\n }\n return !!permissions && permissions.some((p) => user.permissions.includes(p));\n}\n\n/**\n * UserTargetingParams\n *\n * @example\n * ```json\n * {\n * \"usernames\": [\"JohnDoe\"],\n * \"profiles\": [\"ADMIN\", \"READ_WRITE_DEALER\"],\n * \"permissions\": [\"ExportClientDashboard\"]\n * }\n * ```\n *\n * @public\n */\nexport type UserTargetingParams = {\n /**\n * Usernames to target.\n */\n readonly usernames?: string[];\n /**\n * Profiles to target.\n *\n * @remarks\n * Profiles are assigned to users, and users may have multiple profiles assigned to them.\n */\n readonly profiles?: string[];\n /**\n * Permissions to target.\n *\n * @remarks\n * Permissions are assigned to profiles, NEVER to users directly.\n * The user permissions array will contain everything from the assigned profiles for fine-grained control.\n */\n readonly permissions?: string[];\n};\n\n/**\n * UserTargetingSchema type.\n *\n * @remarks\n * JSON schema type.\n *\n * @public\n */\nexport type UserTargetingSchema = ClientFilterSchema<\n typeof ClientFilterName.userTargeting,\n UserTargetingParams\n>;\n\n/**\n * UserTargeting client filter DI interface.\n *\n * @remarks\n * Simplifies access to runtime data / state contained within the DI container.\n *\n * @public\n */\nexport interface UserTargeting extends ClientFilter<UserTargetingParams> {\n /**\n * @remarks\n * Has the user got the 'ADMIN' profile assigned.\n *\n * @privateRemarks\n * Added as an example, see comment in implementation.\n */\n readonly hasAdminProfile: boolean;\n\n /**\n * @remarks\n * Has the user logged in, regardless of their identity.\n */\n readonly isLoggedIn: boolean;\n}\n\n/**\n * Default UserTargeting DI implementation.\n * @public\n */\nexport class DefaultUserTargeting implements UserTargeting {\n constructor(@Auth public auth: Auth) {}\n\n /** {@inheritDoc ClientFilter.filter} */\n filter(params: UserTargetingParams) {\n return userTargetingFilter(\n this.auth.currentUser,\n params?.usernames,\n params?.profiles,\n params?.permissions\n );\n }\n\n /** {@inheritDoc UserTargeting.hasAdminProfile} */\n get hasAdminProfile() {\n /**\n * This could simply be `return this.auth.currentUser.hasAdminProfile()`, but the purpose was to show how we\n * might leverage the baseline filter function with pre-defined params to encapsulate common requests.\n */\n return userTargetingFilter(this.auth.currentUser, undefined, ['ADMIN']);\n }\n\n /** {@inheritDoc UserTargeting.isLoggedIn} */\n get isLoggedIn() {\n return this.auth.isLoggedIn;\n }\n}\n\n/**\n * UserTargeting DI key.\n *\n * @privateRemarks\n * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.\n *\n * @internal\n */\nexport const UserTargeting = DI.createInterface<UserTargeting>((x) =>\n x.transient(DefaultUserTargeting)\n);\n","import { Container, DI } from '@microsoft/fast-foundation';\nimport { logger } from './logger';\nimport { NodeEnv, NodeEnvSchema } from './nodeEnv';\nimport { Percentage, PercentageSchema } from './percentage';\nimport { TimeWindow, TimeWindowSchema } from './timeWindow';\nimport { URLTargeting, URLTargetingSchema } from './urlTargeting';\nimport { UserAgent, UserAgentSchema } from './userAgent';\nimport { UserTargeting, UserTargetingSchema } from './userTargeting';\n\n/**\n * @public\n */\nexport const ClientFilterName = {\n nodeEnv: 'nodeEnv',\n percentage: 'percentage',\n timeWindow: 'timeWindow',\n urlTargeting: 'urlTargeting',\n userAgent: 'userAgent',\n userTargeting: 'userTargeting',\n} as const;\n\n/**\n * @public\n */\nexport type ClientFilterName = (typeof ClientFilterName)[keyof typeof ClientFilterName];\n\n/**\n * Filer lookup by name.\n *\n * @public\n */\nexport function getFilterByName(name: ClientFilterName, container: Container) {\n switch (name) {\n case ClientFilterName.nodeEnv:\n return container.get(NodeEnv);\n case ClientFilterName.percentage:\n return container.get(Percentage);\n case ClientFilterName.timeWindow:\n return container.get(TimeWindow);\n case ClientFilterName.urlTargeting:\n return container.get(URLTargeting);\n case ClientFilterName.userAgent:\n return container.get(UserAgent);\n case ClientFilterName.userTargeting:\n return container.get(UserTargeting);\n }\n}\n\n/**\n * ClientFilter interface.\n *\n * @remarks\n * Simplifies access to runtime data / state contained within the DI container.\n *\n * @typeParam P - The filter parameter type.\n *\n * @public\n */\nexport interface ClientFilter<P = any> {\n /**\n * @param parameters - The filter parameters.\n *\n * @returns The filter outcome.\n *\n * @privateRemarks\n * Not sure if there's a need for an async api here.\n */\n filter(parameters: P): boolean;\n}\n\n/**\n * ClientFilterSchema type.\n *\n * @remarks\n * JSON schema type.\n *\n * @typeParam N - The filter name type.\n * @typeParam P - The filter parameters type.\n *\n * @public\n */\nexport type ClientFilterSchema<N extends ClientFilterName, P> = {\n readonly name: N;\n readonly parameters: P;\n};\n\n/**\n * ClientFilterSchemas type.\n *\n * @public\n */\nexport type ClientFilterSchemas =\n | NodeEnvSchema\n | PercentageSchema\n | TimeWindowSchema\n | URLTargetingSchema\n | UserAgentSchema\n | UserTargetingSchema;\n\n/**\n * Client filter runner function.\n * @remarks\n * This will return true when all the filters in the array pass.\n * @param filters - An array of client filters to run.\n * @param container - The DI container.\n * @public\n * @privateRemarks\n * As a runner working off static input, we can't know or source the runtime dependencies of each filter. As such we use\n * the DI version of each which have those encapsulated.\n */\nexport function runner(filters: ClientFilterSchemas[], container: Container): boolean {\n if (!filters || !filters.length) {\n logger.warn('The client filter runner requires an array of filters to run, received:', filters);\n return true;\n }\n return filters.every((cf) => {\n const target = getFilterByName(cf.name, container) as ClientFilter;\n return target ? target.filter(cf.parameters) : true;\n });\n}\n\n/**\n * ClientFilterRunner DI interface.\n *\n * @public\n */\nexport interface ClientFilterRunner {\n run(filters: ClientFilterSchemas[], container?: Container): boolean;\n}\n\n/**\n * Default ClientFilterRunner DI implementation.\n * @public\n */\nexport class DefaultClientFilterRunner implements ClientFilterRunner {\n @Container container!: Container;\n run(filters: ClientFilterSchemas[], container = this.container) {\n return runner(filters, container);\n }\n}\n\n/**\n * ClientFilterRunner DI key.\n *\n * @privateRemarks\n * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.\n *\n * @internal\n */\nexport const ClientFilterRunner = DI.createInterface<ClientFilterRunner>((x) =>\n x.transient(DefaultClientFilterRunner)\n);\n"],"sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack://@genesislcap/foundation-filters/./src/index.federated.ts"],"names":[],"mappings":"wIAAA,8D","file":"755.755.xxxxxxxxxxxxxxxxxxxx.js","sourcesContent":["import('./index');\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (self.webpackChunk_genesislcap_foundation_filters=self.webpackChunk_genesislcap_foundation_filters||[]).push([[755,179],{8755:(e,n,s)=>{Promise.all([s.e(758),s.e(622),s.e(410)]).then(s.bind(s,4410))}}]);
2
- //# sourceMappingURL=755.4c1f4222984d24c7013718b57103ff64.js.map
@@ -1 +0,0 @@
1
- {"dependencies":[{"name":"@microsoft/fast-element","version":"1.11"},{"name":"@microsoft/fast-foundation","version":"2.47"},{"name":"tslib","version":"2.5"},{"name":"ua-parser-js","version":"1.0"}],"devDependencies":[{"name":"@microsoft/api-documenter","version":"7.21"},{"name":"@microsoft/api-extractor","version":"7.34"},{"name":"@module-federation/dashboard-plugin","version":"2.3"},{"name":"@playwright/test","version":"1.31"},{"name":"@rollup/plugin-commonjs","version":"21.1"},{"name":"@rollup/plugin-node-resolve","version":"13.3"},{"name":"@rollup/plugin-typescript","version":"8.5"},{"name":"analytics","version":"0.8"},{"name":"c8","version":"7.13"},{"name":"camel-case","version":"4.1"},{"name":"clean-webpack-plugin","version":"4.0"},{"name":"copyfiles","version":"2.4"},{"name":"cross-env","version":"7.0"},{"name":"csp-html-webpack-plugin","version":"5.1"},{"name":"css-loader","version":"6.7"},{"name":"cssnano","version":"5.1"},{"name":"esm","version":"3.2"},{"name":"file-loader","version":"6.2"},{"name":"html-webpack-plugin","version":"5.5"},{"name":"jsdom","version":"19.0"},{"name":"mini-css-extract-plugin","version":"2.7"},{"name":"playwright-test","version":"7.4"},{"name":"portfinder-sync","version":"0.0"},{"name":"postcss","version":"8.4"},{"name":"postcss-import","version":"14.1"},{"name":"postcss-loader","version":"6.2"},{"name":"postcss-preset-env","version":"7.8"},{"name":"rollup","version":"2.79"},{"name":"rollup-plugin-commonjs","version":"10.1"},{"name":"rollup-plugin-filesize","version":"9.1"},{"name":"rollup-plugin-node-resolve","version":"5.2"},{"name":"rollup-plugin-terser","version":"7.0"},{"name":"rollup-plugin-visualizer","version":"5.9"},{"name":"terser-webpack-plugin","version":"5.3"},{"name":"to-string-loader","version":"1.2"},{"name":"ts-loader","version":"9.3"},{"name":"tsconfig-paths-webpack-plugin","version":"3.5"},{"name":"tsm","version":"2.3"},{"name":"typescript","version":"4.9"},{"name":"uvu","version":"0.5"},{"name":"watchlist","version":"0.3"},{"name":"webpack","version":"5.45"},{"name":"webpack-bundle-analyzer","version":"4.8"},{"name":"webpack-cli","version":"4.10"},{"name":"webpack-dev-server","version":"4.11"},{"name":"webpack-merge","version":"5.8"}],"optionalDependencies":[],"id":"foundationFilters","name":"foundationFilters","remote":"","metadata":{},"overrides":[{"id":"tslib","name":"tslib","version":"2.5","location":"tslib","applicationID":"foundationFilters"},{"id":"@microsoft/fast-foundation","name":"@microsoft/fast-foundation","version":"2.47","location":"@microsoft/fast-foundation","applicationID":"foundationFilters"},{"id":"@genesislcap/foundation-utils","name":"@genesislcap/foundation-utils","version":"","location":"@genesislcap/foundation-utils","applicationID":"foundationFilters"},{"id":"ua-parser-js","name":"ua-parser-js","version":"1.0","location":"ua-parser-js","applicationID":"foundationFilters"},{"id":"@genesislcap/foundation-comms","name":"@genesislcap/foundation-comms","version":"","location":"@genesislcap/foundation-comms","applicationID":"foundationFilters"},{"id":"@microsoft/fast-element","name":"@microsoft/fast-element","version":"1.11","location":"@microsoft/fast-element","applicationID":"foundationFilters"}],"consumes":[],"modules":[{"id":"foundationFilters:index","name":"index","applicationID":"foundationFilters","requires":[],"file":"./src/index.federated.ts"}],"version":"1.0.0"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"clientFilter.js","sourceRoot":"","sources":["../../src/clientFilter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAiB,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAoB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAoB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAmB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,aAAa,EAAuB,MAAM,iBAAiB,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;IACtB,aAAa,EAAE,eAAe;CACtB,CAAC;AAOX;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAsB,EAAE,SAAoB;IAC1E,QAAQ,IAAI,EAAE;QACZ,KAAK,gBAAgB,CAAC,OAAO;YAC3B,OAAO,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,gBAAgB,CAAC,UAAU;YAC9B,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,KAAK,gBAAgB,CAAC,UAAU;YAC9B,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,KAAK,gBAAgB,CAAC,YAAY;YAChC,OAAO,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrC,KAAK,gBAAgB,CAAC,SAAS;YAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClC,KAAK,gBAAgB,CAAC,aAAa;YACjC,OAAO,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KACvC;AACH,CAAC;AAqDD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAAC,OAA8B,EAAE,SAAoB;IACzE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QAC/B,MAAM,CAAC,IAAI,CAAC,yEAAyE,EAAE,OAAO,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC;KACb;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAiB,CAAC;QACnE,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC;AAWD;;;GAGG;AACH,MAAM,OAAO,yBAAyB;IAEpC,GAAG,CAAC,OAA8B,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS;QAC5D,OAAO,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;CACF;AAJY;IAAV,SAAS;4DAAuB;AAMnC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC,eAAe,CAAqB,CAAC,CAAC,EAAE,EAAE,CAC7E,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CACvC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.federated.js","sourceRoot":"","sources":["../../src/index.federated.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,SAAS,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"nodeEnv.js","sourceRoot":"","sources":["../../src/nodeEnv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;KACb;IACD,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACvE,CAAC;AAqDD;;;GAGG;AACH,MAAM,OAAO,cAAc;IACzB,wCAAwC;IACxC,MAAM,CAAC,MAAqB;QAC1B,OAAO,aAAa,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,0CAA0C;IAC1C,IAAI,aAAa;QACf,OAAO,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,sCAAsC;IACtC,IAAI,SAAS;QACX,OAAO,aAAa,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,yCAAyC;IACzC,IAAI,YAAY;QACd,OAAO,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IACvC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,CAAC,eAAe,CAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"percentage.js","sourceRoot":"","sources":["../../src/percentage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;IACtE,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC;KACb;IACD,OAAO,MAAM,GAAG,OAAO,CAAC;AAC1B,CAAC;AA4DD;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAC5B,wCAAwC;IACxC,MAAM,CAAC,MAAwB;QAC7B,OAAO,gBAAgB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC,eAAe,CAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeWindow.js","sourceRoot":"","sources":["../../src/timeWindow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,GAAY;IAC3D,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE;QAClB,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;KACb;IACD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,KAAK,EAAE;QACT,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC;KAC3B;IACD,IAAI,GAAG,IAAI,MAAM,EAAE;QACjB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC;KACxB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAoED;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAC5B,wCAAwC;IACxC,MAAM,CAAC,MAAwB;QAC7B,OAAO,gBAAgB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,CAAC;IACtD,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC,eAAe,CAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"urlTargeting.js","sourceRoot":"","sources":["../../src/urlTargeting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAW,EACX,OAAgB,EAChB,OAAkB,EAClB,KAAgB,EAChB,KAAgB;;IAEhB,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;KACb;IACD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;QAC5C,MAAM,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QAC9F,OAAO,IAAI,CAAC;KACb;IACD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAChC,OAAO,IAAI,CAAC;KACb;IACD,IAAI,MAAW,CAAC;IAChB,IAAI;QACF,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;KACvB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IACD,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAA,MAAM,CAAC,QAAQ,0CAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QAC9D,OAAO,IAAI,CAAC;KACb;IACD,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACxC,OAAO,IAAI,CAAC;KACb;IACD,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpD,CAAC;AAkED;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAC9B,wCAAwC;IACxC,MAAM,CAAC,MAA0B;QAC/B,OAAO,kBAAkB,CACvB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,EACX,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EACf,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EACf,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EACb,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CACd,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,QAAQ,CAAC,GAAG;QACV,OAAO,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC,eAAe,CAAe,CAAC,CAAC,EAAE,EAAE,CACjE,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CACjC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"userAgent.js","sourceRoot":"","sources":["../../src/userAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAChD,OAAO,QAAQ,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAmB,EACnB,OAAkB,EAClB,GAAc,EACd,EAAW;IAEX,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE;QACjC,MAAM,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QAC9F,OAAO,IAAI,CAAC;KACb;IACD,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;IAChD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC9D,OAAO,IAAI,CAAC;KACb;IACD,MAAM,MAAM,GAAG,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;IAC7C,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC1D,OAAO,IAAI,CAAC;KACb;IACD,MAAM,EAAE,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;IACjC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAsED;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAC3B,wCAAwC;IACxC,MAAM,CAAC,MAAuB;QAC5B,OAAO,eAAe,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,uCAAuC;IACvC,IAAI,QAAQ;QACV;;WAEG;QACH,OAAO,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC,eAAe,CAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"userTargeting.js","sourceRoot":"","sources":["../../src/userTargeting.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAQ,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAU,EACV,SAAoB,EACpB,QAAmB,EACnB,WAAsB;IAEtB,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;KACb;IACD,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE;QAC3C,MAAM,CAAC,IAAI,CACT,8FAA8F,CAC/F,CAAC;QACF,OAAO,IAAI,CAAC;KACb;IACD,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAClD,OAAO,IAAI,CAAC;KACb;IACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/D,OAAO,IAAI,CAAC;KACb;IACD,OAAO,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AA4ED;;;GAGG;AACI,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,YAAyB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAEvC,wCAAwC;IACxC,MAAM,CAAC,MAA2B;QAChC,OAAO,mBAAmB,CACxB,IAAI,CAAC,IAAI,CAAC,WAAW,EACrB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EACjB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAChB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CACpB,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,IAAI,eAAe;QACjB;;;WAGG;QACH,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,6CAA6C;IAC7C,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC9B,CAAC;CACF,CAAA;AA1BY,oBAAoB;IAClB,WAAA,IAAI,CAAA;GADN,oBAAoB,CA0BhC;SA1BY,oBAAoB;AA4BjC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC,eAAe,CAAgB,CAAC,CAAC,EAAE,EAAE,CACnE,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAClC,CAAC"}
package/dist/favicon.ico DELETED
Binary file