@corva/ui 3.19.0 → 3.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs-bundle/clients/index.js +1 -1
- package/cjs-bundle/clients/index.js.map +1 -1
- package/cjs-bundle/clients/subscriptions/constants.js +1 -1
- package/cjs-bundle/clients/subscriptions/socket-client.v2.js +1 -1
- package/cjs-bundle/clients/subscriptions/subscriptions-client.dummy.js +1 -1
- package/cjs-bundle/clients/subscriptions/subscriptions-client.factory.js +1 -1
- package/cjs-bundle/clients/subscriptions/subscriptions-client.js +1 -1
- package/cjs-bundle/clients/subscriptions.v1.js +1 -1
- package/cjs-bundle/clients/subscriptions.v1.js.map +1 -1
- package/clients/index.d.ts +2 -0
- package/clients/index.d.ts.map +1 -1
- package/clients/index.js +1 -1
- package/clients/index.js.map +1 -1
- package/clients/subscriptions/constants.d.ts.map +1 -1
- package/clients/subscriptions/constants.js +1 -1
- package/clients/subscriptions/socket-client.v2.d.ts +2 -1
- package/clients/subscriptions/socket-client.v2.d.ts.map +1 -1
- package/clients/subscriptions/socket-client.v2.js +1 -1
- package/clients/subscriptions/subscriptions-client.d.ts +2 -1
- package/clients/subscriptions/subscriptions-client.d.ts.map +1 -1
- package/clients/subscriptions/subscriptions-client.dummy.d.ts +2 -1
- package/clients/subscriptions/subscriptions-client.dummy.d.ts.map +1 -1
- package/clients/subscriptions/subscriptions-client.dummy.js +1 -1
- package/clients/subscriptions/subscriptions-client.factory.js +1 -1
- package/clients/subscriptions/subscriptions-client.js +1 -1
- package/clients/subscriptions/types.d.ts +10 -1
- package/clients/subscriptions/types.d.ts.map +1 -1
- package/clients/subscriptions.v1.js +1 -1
- package/clients/subscriptions.v1.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("uuid"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("uuid"),n=require("lodash"),r=require("./clientStorage/index.js"),o=require("./jsonApi/index.js"),i=require("./subscriptions.js"),c=require("./api/apiCore.js"),s=require("./constants.js"),u=require("./corvaUrls.js"),a=require("./subscriptions/constants.js"),p=require("./subscriptions/socket-client.v2.js"),l=require("./sso/index.js"),d=require("./utils.js");function v(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=v(e);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){f.default(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var A={get:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.get(e,t,n)},getWithHeaders:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.getWithHeaders(e,t,n)},put:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return c.put(e,t,n,r)},patch:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return c.patch(e,t,n,r)},post:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.post(e,t,n)},del:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.del(e,t,n)}},b={get:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.get(e,t,h({apiUrl:s.CORVA_API_URLS.DATA_API},n))},put:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return c.put(e,t,n,h({apiUrl:s.CORVA_API_URLS.DATA_API},r))},patch:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return c.patch(e,t,n,h({apiUrl:s.CORVA_API_URLS.DATA_API},r))},post:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.post(e,t,h({apiUrl:s.CORVA_API_URLS.DATA_API},n))},del:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.del(e,t,h({apiUrl:s.CORVA_API_URLS.DATA_API},n))}};function j(){if(window.xprops){var e,n,r,o,i,c=(null===(e=window.xprops)||void 0===e||null===(n=e.app)||void 0===n||null===(r=n.app)||void 0===r?void 0:r.id)||"unknown-app-id",s=(null===(o=window.xprops)||void 0===o||null===(i=o.app)||void 0===i?void 0:i.id)||"unknown-instance-id";return"".concat(c,":").concat(s,":").concat(t.v4())}return"non-dc-app:".concat(t.v4())}var P={subscribe:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.onDataReceive,o=window[Symbol.for("socket")]||{},i=o.subscribe,c=o.unsubscribe,s=o.socket;if(!s)return console.error("Socket is not initialized!"),n.noop;var u=j(),a=h(h({},e),{},{collection:e.collection||e.dataset,appInstanceId:u}),p=r&&function(e){return e.appInstanceId===u&&r(e)};return i(a),p&&s.on("data",p),function(){p&&s.off("data",p),c(a)}},onConnectionChange:function(e){var t=(window[Symbol.for("socket")]||{}).socket;if(!t)return function(){};var n=function(){return e({status:"connected"})},r=function(t){return e({status:"disconnected",reason:t})},o=function(){return e({status:"reconnecting"})},i=function(t){return e({status:"error",reason:(null==t?void 0:t.message)||String(t)})};return t.on("connect",n),t.on("disconnect",r),t.on("reconnect",o),t.on("connect_error",i),function(){t.off("connect",n),t.off("disconnect",r),t.off("reconnect",o),t.off("connect_error",i)}}},O=a.handleSubscriptionsVersion(P,p.socketClientV2);exports.clientStorage=r,exports.jsonApi=o,exports.subscriptions=i,exports.corvaUrls=u,exports.sso=l,exports.attachHTTPHeaders=d.attachHTTPHeaders,exports.getAppKeyFromStackTrace=d.getAppKeyFromStackTrace,exports.getAuthorizationHeaders=d.getAuthorizationHeaders,exports.getAuthorizationToken=d.getAuthorizationToken,exports.corvaAPI=A,exports.corvaDataAPI=b,exports.socketClient=O;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/clients/index.js"],"sourcesContent":["import { v4 as uuidV4 } from 'uuid';\nimport { noop } from 'lodash';\n\nimport * as clientStorage from './clientStorage';\nimport * as jsonApi from './jsonApi';\nimport * as subscriptions from './subscriptions';\nimport { get, put, patch, post, del, getWithHeaders } from './api/apiCore';\nimport { CORVA_API_URLS } from './constants';\nimport * as corvaUrls from './corvaUrls';\nimport { handleSubscriptionsVersion } from './subscriptions/constants';\nimport { socketClientV2 } from './subscriptions/socket-client.v2';\n\nexport { clientStorage, jsonApi, subscriptions, corvaUrls };\nexport * as sso from './sso';\nexport * from './utils';\n\nexport const corvaAPI = {\n get: (path, queryParams = {}, requestOptions = {}) => {\n return get(path, queryParams, requestOptions);\n },\n getWithHeaders: (path, queryParams = {}, requestOptions = {}) => {\n return getWithHeaders(path, queryParams, requestOptions);\n },\n put: (path, content, queryParams = {}, requestOptions = {}) => {\n return put(path, content, queryParams, requestOptions);\n },\n patch: (path, content, queryParams = {}, requestOptions = {}) => {\n return patch(path, content, queryParams, requestOptions);\n },\n post: (path, entity, requestOptions = {}) => {\n return post(path, entity, requestOptions);\n },\n del: (path, queryParams = {}, requestOptions = {}) => {\n return del(path, queryParams, requestOptions);\n },\n};\n\nexport const corvaDataAPI = {\n get: (path, queryParams = {}, requestOptions = {}) =>\n get(path, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n put: (path, content, queryParams = {}, requestOptions = {}) =>\n put(path, content, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n patch: (path, content, queryParams = {}, requestOptions = {}) =>\n patch(path, content, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n post: (path, entity, requestOptions = {}) =>\n post(path, entity, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n del: (path, queryParams = {}, requestOptions = {}) =>\n del(path, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n};\n\nconst SOCKET_NOT_INITIALIZED_ERROR = 'Socket is not initialized!';\n\nfunction getAppInstanceId() {\n if (window.xprops) {\n const appId = window.xprops?.app?.app?.id || 'unknown-app-id';\n const appInstanceId = window.xprops?.app?.id || 'unknown-instance-id';\n\n return `${appId}:${appInstanceId}:${uuidV4()}`;\n }\n\n return `non-dc-app:${uuidV4()}`;\n}\n\nconst socketClientV1 = {\n subscribe: (subscription, { onDataReceive } = {}) => {\n const { subscribe, unsubscribe, socket } = window[Symbol.for('socket')] || {};\n\n if (!socket) {\n console.error(SOCKET_NOT_INITIALIZED_ERROR);\n // In some environments, like PDF Dashboard Report, socket is not initialized\n // But socketClient should not throw errors to prevent apps crashing\n return noop;\n }\n const subId = getAppInstanceId();\n const subscriptionWithId = {\n ...subscription,\n // NOTE: Add ability to pass dataset (because we don't use \"collection\" in new data api)\n collection: subscription.collection || subscription.dataset,\n // NOTE: Unique id is required for subscriptions server\n appInstanceId: subId,\n };\n\n const onData =\n onDataReceive && (event => event.appInstanceId === subId && onDataReceive(event));\n\n subscribe(subscriptionWithId);\n if (onData) socket.on('data', onData);\n\n // NOTE: Return unsubscribe\n return () => {\n if (onData) socket.off('data', onData);\n unsubscribe(subscriptionWithId);\n };\n },\n};\n\nexport const socketClient = handleSubscriptionsVersion(socketClientV1, socketClientV2);\n"],"names":["corvaAPI","get","path","queryParams","arguments","length","undefined","requestOptions","getWithHeaders","put","content","patch","post","entity","del","corvaDataAPI","_objectSpread","apiUrl","CORVA_API_URLS","DATA_API","getAppInstanceId","window","xprops","_window$xprops","_window$xprops$app","_window$xprops$app$ap","_window$xprops2","_window$xprops2$app","appId","app","id","appInstanceId","concat","uuidV4","v4","socketClientV1","subscribe","subscription","_ref","onDataReceive","Symbol","for","unsubscribe","socket","console","error","noop","subId","subscriptionWithId","collection","dataset","onData","event","on","off","socketClient","handleSubscriptionsVersion","socketClientV2"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/clients/index.js"],"sourcesContent":["import { v4 as uuidV4 } from 'uuid';\nimport { noop } from 'lodash';\n\nimport * as clientStorage from './clientStorage';\nimport * as jsonApi from './jsonApi';\nimport * as subscriptions from './subscriptions';\nimport { get, put, patch, post, del, getWithHeaders } from './api/apiCore';\nimport { CORVA_API_URLS } from './constants';\nimport * as corvaUrls from './corvaUrls';\nimport { handleSubscriptionsVersion } from './subscriptions/constants';\nimport { socketClientV2 } from './subscriptions/socket-client.v2';\n\nexport { clientStorage, jsonApi, subscriptions, corvaUrls };\nexport * as sso from './sso';\nexport * from './utils';\n\nexport const corvaAPI = {\n get: (path, queryParams = {}, requestOptions = {}) => {\n return get(path, queryParams, requestOptions);\n },\n getWithHeaders: (path, queryParams = {}, requestOptions = {}) => {\n return getWithHeaders(path, queryParams, requestOptions);\n },\n put: (path, content, queryParams = {}, requestOptions = {}) => {\n return put(path, content, queryParams, requestOptions);\n },\n patch: (path, content, queryParams = {}, requestOptions = {}) => {\n return patch(path, content, queryParams, requestOptions);\n },\n post: (path, entity, requestOptions = {}) => {\n return post(path, entity, requestOptions);\n },\n del: (path, queryParams = {}, requestOptions = {}) => {\n return del(path, queryParams, requestOptions);\n },\n};\n\nexport const corvaDataAPI = {\n get: (path, queryParams = {}, requestOptions = {}) =>\n get(path, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n put: (path, content, queryParams = {}, requestOptions = {}) =>\n put(path, content, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n patch: (path, content, queryParams = {}, requestOptions = {}) =>\n patch(path, content, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n post: (path, entity, requestOptions = {}) =>\n post(path, entity, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n del: (path, queryParams = {}, requestOptions = {}) =>\n del(path, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n};\n\nconst SOCKET_NOT_INITIALIZED_ERROR = 'Socket is not initialized!';\n\nfunction getAppInstanceId() {\n if (window.xprops) {\n const appId = window.xprops?.app?.app?.id || 'unknown-app-id';\n const appInstanceId = window.xprops?.app?.id || 'unknown-instance-id';\n\n return `${appId}:${appInstanceId}:${uuidV4()}`;\n }\n\n return `non-dc-app:${uuidV4()}`;\n}\n\nconst socketClientV1 = {\n subscribe: (subscription, { onDataReceive } = {}) => {\n const { subscribe, unsubscribe, socket } = window[Symbol.for('socket')] || {};\n\n if (!socket) {\n console.error(SOCKET_NOT_INITIALIZED_ERROR);\n // In some environments, like PDF Dashboard Report, socket is not initialized\n // But socketClient should not throw errors to prevent apps crashing\n return noop;\n }\n const subId = getAppInstanceId();\n const subscriptionWithId = {\n ...subscription,\n // NOTE: Add ability to pass dataset (because we don't use \"collection\" in new data api)\n collection: subscription.collection || subscription.dataset,\n // NOTE: Unique id is required for subscriptions server\n appInstanceId: subId,\n };\n\n const onData =\n onDataReceive && (event => event.appInstanceId === subId && onDataReceive(event));\n\n subscribe(subscriptionWithId);\n if (onData) socket.on('data', onData);\n\n // NOTE: Return unsubscribe\n return () => {\n if (onData) socket.off('data', onData);\n unsubscribe(subscriptionWithId);\n };\n },\n onConnectionChange: handler => {\n const { socket } = window[Symbol.for('socket')] || {};\n if (!socket) return () => {};\n const onConnect = () => handler({ status: 'connected' });\n const onDisconnect = reason => handler({ status: 'disconnected', reason });\n const onReconnect = () => handler({ status: 'reconnecting' });\n const onConnectError = err => handler({ status: 'error', reason: err?.message || String(err) });\n\n socket.on('connect', onConnect);\n socket.on('disconnect', onDisconnect);\n socket.on('reconnect', onReconnect);\n socket.on('connect_error', onConnectError);\n\n return () => {\n socket.off('connect', onConnect);\n socket.off('disconnect', onDisconnect);\n socket.off('reconnect', onReconnect);\n socket.off('connect_error', onConnectError);\n };\n },\n};\n\nexport const socketClient = handleSubscriptionsVersion(socketClientV1, socketClientV2);\n"],"names":["corvaAPI","get","path","queryParams","arguments","length","undefined","requestOptions","getWithHeaders","put","content","patch","post","entity","del","corvaDataAPI","_objectSpread","apiUrl","CORVA_API_URLS","DATA_API","getAppInstanceId","window","xprops","_window$xprops","_window$xprops$app","_window$xprops$app$ap","_window$xprops2","_window$xprops2$app","appId","app","id","appInstanceId","concat","uuidV4","v4","socketClientV1","subscribe","subscription","_ref","onDataReceive","Symbol","for","unsubscribe","socket","console","error","noop","subId","subscriptionWithId","collection","dataset","onData","event","on","off","onConnectionChange","handler","onConnect","status","onDisconnect","reason","onReconnect","onConnectError","err","message","String","socketClient","handleSubscriptionsVersion","socketClientV2"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("query-string"),r=require("../../utils/env.js");function t(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,s.get?s:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var s=t(e).parse(window.location.search),o=r.isDevOrQAEnv?"2":"1",
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("query-string"),r=require("../../utils/env.js");function t(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,s.get?s:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var s=t(e).parse(window.location.search),o=r.isDevOrQAEnv||r.isBetaEnv,n=o?"2":"1",i=s.subscriptions_version||localStorage.getItem("subscriptions_version")||n;o&&"2"!==localStorage.getItem("subscriptions_version_forced")&&(localStorage.setItem("subscriptions_version","2"),localStorage.setItem("subscriptions_version_forced","2"));var c=function(){return"1"===i?"/":"/".concat(i)},a=process.env.REACT_APP_SUBSCRIPTIONS_URL||s.subscriptions_url||"https://subscriptions.qa.corva.ai",u="".concat(a).concat(c()),p=new RegExp("^/reports.*$");exports.IGNORED_ROUTES_REGEXP=p,exports.SUBSCRIPTIONS_URL=u,exports.getNamespace=c,exports.handleSubscriptionsVersion=function(e,r){return"1"===i?e:r};
|
|
2
2
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require('./../../ext-esm/tslib/tslib.es6.js'),e=require("./get-channel-name.js"),t=require("./subscriptions-client.factory.js"),i={subscribe:function(i,s){var r=s.onDataReceive,o=t.SubscriptionsClientFactory.init(),c=e.getChannelName(i);return o.subscribe(c,(function(e){return r(n.__assign(n.__assign({},i),{data:e}))}))},onConnectionChange:function(n){return t.SubscriptionsClientFactory.init().onConnectionChange(n)},disconnect:function(){t.SubscriptionsClientFactory.init().disconnect()}};exports.socketClientV2=i;
|
|
2
2
|
//# sourceMappingURL=socket-client.v2.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=function(){function n(){}return n.prototype.subscribe=function(n,t,o){return function(){}},n.prototype.unsubscribe=function(n,t,o){},n.prototype.disconnect=function(){},n.prototype.onConnectionChange=function(n){return function(){}},n}();exports.DummySubscriptionsClient=n;
|
|
2
2
|
//# sourceMappingURL=subscriptions-client.dummy.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("socket.io-client"),e=require("./constants.js"),n=require("./subscriptions-client.js"),i=require("./subscriptions-client.dummy.js"),r=function(){function r(){}return r.init=function(){return this.instance||(this.instance=this.create()),this.instance},r.create=function(){if(e.IGNORED_ROUTES_REGEXP.test(window.location.pathname))return new i.DummySubscriptionsClient;var r=t.io(e.SUBSCRIPTIONS_URL,{transports:["websocket"],autoConnect:!0}),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("socket.io-client"),e=require("./constants.js"),n=require("./subscriptions-client.js"),i=require("./subscriptions-client.dummy.js"),r=function(){function r(){}return r.init=function(){return this.instance||(this.instance=this.create()),this.instance},r.create=function(){if(e.IGNORED_ROUTES_REGEXP.test(window.location.pathname))return new i.DummySubscriptionsClient;var r=t.io(e.SUBSCRIPTIONS_URL,{transports:["websocket"],autoConnect:!0}),c=0;return r.on("connect",(function(){(c+=1,r.recovered)||1!==c&&Object.keys(r._callbacks).filter((function(t){return t.startsWith("$data#")})).map((function(t){return t.replace("$data#","")})).forEach((function(t){r.emit("subscribe",{channel:t,_current_location_href:window.top.location.href})}))})),new n.SubscriptionsClientV2(r)},r}();exports.SubscriptionsClientFactory=r;
|
|
2
2
|
//# sourceMappingURL=subscriptions-client.factory.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=function(){function t(t){this._socket=t}return t.prototype.subscribe=function(t,e
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=function(){function t(t){var n=this;this._socket=t,this.onConnectionChange=function(t){var e=function(){return t({status:"connected"})},o=function(n){return t({status:"disconnected",reason:n})},r=function(){return t({status:"reconnecting"})},c=function(n){return t({status:"error",reason:(null==n?void 0:n.message)||String(n)})};return n._socket.on("connect",e),n._socket.on("disconnect",o),n._socket.on("reconnect",r),n._socket.on("connect_error",c),function(){n._socket.off("connect",e),n._socket.off("disconnect",o),n._socket.off("reconnect",r),n._socket.off("connect_error",c)}}}return t.prototype.subscribe=function(t,n,e){var o=this;this._validateArgs(t,n,e),this._socket.on("data#".concat(t),n),this._emit("subscribe",t,e);var r=function(){return o.unsubscribe(t,n,e)};return Object.defineProperty(r,"name",{value:"unsubscribe_".concat(t.replace(/[^\w]/g,"_")),writable:!1}),r},t.prototype.unsubscribe=function(t,n,e){this._validateArgs(t,n,e),this._emit("unsubscribe",t,e),this._socket.off("data#".concat(t),n)},t.prototype.disconnect=function(){return this._socket.disconnect(),this._socket.removeAllListeners(),this},t.prototype._validateArgs=function(t,n,e){if("string"!=typeof t||!t)throw new Error("Channel must be a non-empty string");if("function"!=typeof n)throw new Error("onData handler must be a function");if(void 0!==e&&"function"!=typeof e)throw new Error("ack must be a function")},t.prototype._shouldEmitToServer=function(t){return 1===this._socket.listeners("data#".concat(t)).length},t.prototype._emit=function(t,n,e){if(!this._shouldEmitToServer(n))return null==e?void 0:e();e?this._socket.emitWithAck(t,{channel:n,_current_location_href:window.top.location.href},(function(o){return o.ok?e():e(new Error("Failed to ".concat(t," to channel ").concat(n,": ").concat(o.error)))})):this._socket.emit(t,{channel:n,_current_location_href:window.top.location.href})},t}();exports.SubscriptionsClientV2=t;
|
|
2
2
|
//# sourceMappingURL=subscriptions-client.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("socket.io-client"),n=require("query-string"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("socket.io-client"),n=require("query-string"),o=require("lodash/noop");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var i=c(e),a=c(t),s=r(n),u=c(o);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){i.default(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var f=new RegExp("^/reports.*$"),d=s.parse(window.location.search).subscriptions_url||process.env.REACT_APP_SUBSCRIPTIONS_URL||"https://subscriptions.qa.corva.ai";function p(e){return f.test(window.location.pathname)?u.default:e}function v(e,t){return"".concat(e.appInstanceId||t,":").concat(e.companyId,":").concat(e.userId,":").concat(e.collection)}function w(e,t){return"".concat(e.appInstanceId||t,":").concat(e.companyId,":").concat(e.collection)}function O(e,t){return e.event?"".concat(e.appInstanceId||t,":").concat(e.provider,":").concat(e.collection,":").concat(e.assetId,":").concat(e.event):"".concat(e.appInstanceId||t,":").concat(e.provider,":").concat(e.collection,":").concat(e.assetId)}function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"userId"in e?v(e,t):"companyId"in e?w(e,t):O(e,t)}function h(){var e,t={},n=!1,o=p((function(n){if(!e)throw new Error("Not connected");var o=y(n);o in t&&(delete t[o],e.emit("unsubscribe",b(b({},n),{},{_current_location_href:window.top.location.href})))})),c=p((function(o){if(!e)throw new Error("Not connected");var c=y(o);t[c]=o,n&&e.emit("subscribe",b(b({},o),{},{_current_location_href:window.top.location.href}))})),r=p((function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=o.onDataReceive,i=void 0===r?void 0:r,s=o.onResubscribe,u=void 0===s?void 0:s,l=!1;return(e=a.default(d,{transports:["websocket"]})).on("authenticated",(function(){n=!0,Object.values(t).forEach((function(e){c(e),l&&u&&u(e)})),l=!1})),i&&e.on("data",i),e.on("reconnect",(function(){l=!0})),e}));return{connect:r,disconnect:p((function(){e&&(e.disconnect(),e=null)})),subscribe:c,unsubscribe:o}}exports.getSubscriptionId=y,exports.getSubscriptionsClient=h,exports.initializeSocketClient=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.onDataReceive,n=e.onResubscribe,o=window[Symbol.for("socket")];null!=o&&o.socket&&(console.warn("Existing socket, disconnecting."),o.disconnect());var c=h(),r=c.connect,i=c.disconnect,a=c.subscribe,s=c.unsubscribe,u=r({onDataReceive:t,onResubscribe:n});window[Symbol.for("socket")]={subscribe:a,unsubscribe:s,disconnect:i,socket:u}};
|
|
2
2
|
//# sourceMappingURL=subscriptions.v1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.v1.js","sources":["../../../src/clients/subscriptions.v1.js"],"sourcesContent":["import io from 'socket.io-client';\nimport * as queryString from 'query-string';\nimport noop from 'lodash/noop';\n\nconst REPORTS_ROUTE_REG_EXP = new RegExp('^/reports.*$');\n\nconst parameters = queryString.parse(window.location.search);\nconst socketUrl =\n parameters.subscriptions_url ||\n process.env.REACT_APP_SUBSCRIPTIONS_URL ||\n 'https://subscriptions.qa.corva.ai';\n\nfunction reportsDisableDecorator(func) {\n // NOTE: Disable subscription events on reports pages\n return REPORTS_ROUTE_REG_EXP.test(window.location.pathname) ? noop : func;\n}\n\nfunction getUserSubscriptionId(options, hookId) {\n return `${options.appInstanceId || hookId}:${options.companyId}:${options.userId}:${\n options.collection\n }`;\n}\n\nfunction getCompanySubscriptionId(options, hookId) {\n return `${options.appInstanceId || hookId}:${options.companyId}:${options.collection}`;\n}\n\nfunction getAssetSubscriptionId(options, hookId) {\n return options.event\n ? `${options.appInstanceId || hookId}:${options.provider}:${options.collection}:${\n options.assetId\n }:${options.event}`\n : `${options.appInstanceId || hookId}:${options.provider}:${options.collection}:${\n options.assetId\n }`;\n}\n\nexport function getSubscriptionId(options, hookId = '') {\n if ('userId' in options) return getUserSubscriptionId(options, hookId);\n else if ('companyId' in options) return getCompanySubscriptionId(options, hookId);\n return getAssetSubscriptionId(options, hookId);\n}\n\nexport function getSubscriptionsClient() {\n let socket;\n\n // NOTE: Is used in order to reset subscriptions in case of network failure\n const subscriptions = {};\n let isAuthenticated = false;\n\n const unsubscribe = reportsDisableDecorator(options => {\n if (!socket) {\n throw new Error('Not connected');\n }\n const subscriptionId = getSubscriptionId(options);\n\n if (subscriptionId in subscriptions) {\n delete subscriptions[subscriptionId];\n socket.emit('unsubscribe', options);\n }\n });\n\n const subscribe = reportsDisableDecorator(options => {\n if (!socket) {\n throw new Error('Not connected');\n }\n\n const subscriptionId = getSubscriptionId(options);\n subscriptions[subscriptionId] = options;\n\n // NOTE: Events could be:\n // 1) 'update' - fires in case of records are updated;\n // 2) 'destroy' - fires in case or records are destroyed;\n // 3) '' (empty) - fires in case of new records are created;\n if (isAuthenticated) {\n socket.emit('subscribe', options);\n }\n });\n\n const connect = reportsDisableDecorator(\n ({ onDataReceive = undefined, onResubscribe = undefined } = {}) => {\n let resubscribe = false;\n\n socket = io(socketUrl, { transports: ['websocket'] });\n // TODO: Once authentication is moved on connect, move this as well\n socket.on('authenticated', () => {\n isAuthenticated = true;\n Object.values(subscriptions).forEach(subscription => {\n subscribe(subscription);\n if (resubscribe && onResubscribe) onResubscribe(subscription);\n });\n resubscribe = false;\n });\n if (onDataReceive) socket.on('data', onDataReceive);\n\n socket.on('reconnect', () => {\n resubscribe = true;\n });\n\n return socket;\n }\n );\n\n const disconnect = reportsDisableDecorator(() => {\n if (socket) {\n socket.disconnect();\n socket = null;\n }\n });\n\n return { connect, disconnect, subscribe, unsubscribe };\n}\n\nexport const initializeSocketClient = ({ onDataReceive, onResubscribe } = {}) => {\n const existingSocket = window[Symbol.for('socket')];\n if (existingSocket?.socket) {\n console.warn('Existing socket, disconnecting.');\n existingSocket.disconnect();\n }\n const { connect, disconnect, subscribe, unsubscribe } = getSubscriptionsClient();\n const socket = connect({ onDataReceive, onResubscribe });\n window[Symbol.for('socket')] = {\n subscribe,\n unsubscribe,\n disconnect,\n socket,\n };\n};\n"],"names":["REPORTS_ROUTE_REG_EXP","RegExp","socketUrl","queryString","parse","window","location","search","subscriptions_url","process","env","REACT_APP_SUBSCRIPTIONS_URL","reportsDisableDecorator","func","test","pathname","noop","getUserSubscriptionId","options","hookId","concat","appInstanceId","companyId","userId","collection","getCompanySubscriptionId","getAssetSubscriptionId","event","provider","assetId","getSubscriptionId","getSubscriptionsClient","socket","subscriptions","isAuthenticated","unsubscribe","Error","subscriptionId","emit","subscribe","connect","_ref","arguments","length","undefined","_ref$onDataReceive","onDataReceive","_ref$onResubscribe","onResubscribe","resubscribe","io","transports","on","Object","values","forEach","subscription","disconnect","_ref2","existingSocket","Symbol","for","console","warn","_getSubscriptionsClie"],"mappings":"
|
|
1
|
+
{"version":3,"file":"subscriptions.v1.js","sources":["../../../src/clients/subscriptions.v1.js"],"sourcesContent":["import io from 'socket.io-client';\nimport * as queryString from 'query-string';\nimport noop from 'lodash/noop';\n\nconst REPORTS_ROUTE_REG_EXP = new RegExp('^/reports.*$');\n\nconst parameters = queryString.parse(window.location.search);\nconst socketUrl =\n parameters.subscriptions_url ||\n process.env.REACT_APP_SUBSCRIPTIONS_URL ||\n 'https://subscriptions.qa.corva.ai';\n\nfunction reportsDisableDecorator(func) {\n // NOTE: Disable subscription events on reports pages\n return REPORTS_ROUTE_REG_EXP.test(window.location.pathname) ? noop : func;\n}\n\nfunction getUserSubscriptionId(options, hookId) {\n return `${options.appInstanceId || hookId}:${options.companyId}:${options.userId}:${\n options.collection\n }`;\n}\n\nfunction getCompanySubscriptionId(options, hookId) {\n return `${options.appInstanceId || hookId}:${options.companyId}:${options.collection}`;\n}\n\nfunction getAssetSubscriptionId(options, hookId) {\n return options.event\n ? `${options.appInstanceId || hookId}:${options.provider}:${options.collection}:${\n options.assetId\n }:${options.event}`\n : `${options.appInstanceId || hookId}:${options.provider}:${options.collection}:${\n options.assetId\n }`;\n}\n\nexport function getSubscriptionId(options, hookId = '') {\n if ('userId' in options) return getUserSubscriptionId(options, hookId);\n else if ('companyId' in options) return getCompanySubscriptionId(options, hookId);\n return getAssetSubscriptionId(options, hookId);\n}\n\nexport function getSubscriptionsClient() {\n let socket;\n\n // NOTE: Is used in order to reset subscriptions in case of network failure\n const subscriptions = {};\n let isAuthenticated = false;\n\n const unsubscribe = reportsDisableDecorator(options => {\n if (!socket) {\n throw new Error('Not connected');\n }\n const subscriptionId = getSubscriptionId(options);\n\n if (subscriptionId in subscriptions) {\n delete subscriptions[subscriptionId];\n socket.emit('unsubscribe', { ...options, _current_location_href: window.top.location.href });\n }\n });\n\n const subscribe = reportsDisableDecorator(options => {\n if (!socket) {\n throw new Error('Not connected');\n }\n\n const subscriptionId = getSubscriptionId(options);\n subscriptions[subscriptionId] = options;\n\n // NOTE: Events could be:\n // 1) 'update' - fires in case of records are updated;\n // 2) 'destroy' - fires in case or records are destroyed;\n // 3) '' (empty) - fires in case of new records are created;\n if (isAuthenticated) {\n socket.emit('subscribe', { ...options, _current_location_href: window.top.location.href });\n }\n });\n\n const connect = reportsDisableDecorator(\n ({ onDataReceive = undefined, onResubscribe = undefined } = {}) => {\n let resubscribe = false;\n\n socket = io(socketUrl, { transports: ['websocket'] });\n // TODO: Once authentication is moved on connect, move this as well\n socket.on('authenticated', () => {\n isAuthenticated = true;\n Object.values(subscriptions).forEach(subscription => {\n subscribe(subscription);\n if (resubscribe && onResubscribe) onResubscribe(subscription);\n });\n resubscribe = false;\n });\n if (onDataReceive) socket.on('data', onDataReceive);\n\n socket.on('reconnect', () => {\n resubscribe = true;\n });\n\n return socket;\n }\n );\n\n const disconnect = reportsDisableDecorator(() => {\n if (socket) {\n socket.disconnect();\n socket = null;\n }\n });\n\n return { connect, disconnect, subscribe, unsubscribe };\n}\n\nexport const initializeSocketClient = ({ onDataReceive, onResubscribe } = {}) => {\n const existingSocket = window[Symbol.for('socket')];\n if (existingSocket?.socket) {\n console.warn('Existing socket, disconnecting.');\n existingSocket.disconnect();\n }\n const { connect, disconnect, subscribe, unsubscribe } = getSubscriptionsClient();\n const socket = connect({ onDataReceive, onResubscribe });\n window[Symbol.for('socket')] = {\n subscribe,\n unsubscribe,\n disconnect,\n socket,\n };\n};\n"],"names":["REPORTS_ROUTE_REG_EXP","RegExp","socketUrl","queryString","parse","window","location","search","subscriptions_url","process","env","REACT_APP_SUBSCRIPTIONS_URL","reportsDisableDecorator","func","test","pathname","noop","getUserSubscriptionId","options","hookId","concat","appInstanceId","companyId","userId","collection","getCompanySubscriptionId","getAssetSubscriptionId","event","provider","assetId","getSubscriptionId","getSubscriptionsClient","socket","subscriptions","isAuthenticated","unsubscribe","Error","subscriptionId","emit","_current_location_href","top","href","subscribe","connect","_ref","arguments","length","undefined","_ref$onDataReceive","onDataReceive","_ref$onResubscribe","onResubscribe","resubscribe","io","transports","on","Object","values","forEach","subscription","disconnect","_ref2","existingSocket","Symbol","for","console","warn","_getSubscriptionsClie"],"mappings":"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"}
|
package/clients/index.d.ts
CHANGED
|
@@ -29,9 +29,11 @@ export const socketClient: {
|
|
|
29
29
|
data: T;
|
|
30
30
|
}) => any;
|
|
31
31
|
}) => () => void;
|
|
32
|
+
onConnectionChange: (handler: import("./subscriptions/types").OnConnectionChange) => () => void;
|
|
32
33
|
disconnect: () => void;
|
|
33
34
|
} | {
|
|
34
35
|
subscribe: (subscription: any, { onDataReceive }?: {}) => (...args: any[]) => void;
|
|
36
|
+
onConnectionChange: (handler: any) => () => void;
|
|
35
37
|
};
|
|
36
38
|
import * as clientStorage from './clientStorage';
|
|
37
39
|
import * as jsonApi from './jsonApi';
|
package/clients/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.js"],"names":[],"mappings":";;;IAiBO,6EAEJ;IACe;;;OAEf;IACI,2FAEJ;IACM,6FAEN;IACK,yEAEL;IACI,6EAEJ;;;IAII,sFAC2E;;IAC3E,oGACoF;;IAClF,sGACoF;;IACrF,kFACsE;;IACvE,sFAC2E;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.js"],"names":[],"mappings":";;;IAiBO,6EAEJ;IACe;;;OAEf;IACI,2FAEJ;IACM,6FAEN;IACK,yEAEL;IACI,6EAEJ;;;IAII,sFAC2E;;IAC3E,oGACoF;;IAClF,sGACoF;;IACrF,kFACsE;;IACvE,sFAC2E;;;AAqElF;;;;;;;;;;;EAAuF;+BAjHxD,iBAAiB;yBACvB,WAAW;+BACL,iBAAiB;2BAGrB,aAAa"}
|
package/clients/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import n from"@babel/runtime/helpers/defineProperty";import{v4 as t}from"uuid";import{noop as o}from"lodash";import*as r from"./clientStorage/index.js";export{r as clientStorage};import*as e from"./jsonApi/index.js";export{e as jsonApi};import*as i from"./subscriptions.js";export{i as subscriptions};import{get as c,getWithHeaders as s,put as a,patch as u,post as p,del as l}from"./api/apiCore.js";import{CORVA_API_URLS as d}from"./constants.js";import*as f from"./corvaUrls.js";export{f as corvaUrls};import{handleSubscriptionsVersion as v}from"./subscriptions/constants.js";import{socketClientV2 as g}from"./subscriptions/socket-client.v2.js";import*as h from"./sso/index.js";export{h as sso};export{attachHTTPHeaders,getAppKeyFromStackTrace,getAuthorizationHeaders,getAuthorizationToken}from"./utils.js";function m(n,t){var o=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),o.push.apply(o,r)}return o}function b(t){for(var o=1;o<arguments.length;o++){var r=null!=arguments[o]?arguments[o]:{};o%2?m(Object(r),!0).forEach((function(o){n(t,o,r[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))}))}return t}var j={get:function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(n,t,o)},getWithHeaders:function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(n,t,o)},put:function(n,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return a(n,t,o,r)},patch:function(n,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return u(n,t,o,r)},post:function(n,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return p(n,t,o)},del:function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return l(n,t,o)}},A={get:function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(n,t,b({apiUrl:d.DATA_API},o))},put:function(n,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return a(n,t,o,b({apiUrl:d.DATA_API},r))},patch:function(n,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return u(n,t,o,b({apiUrl:d.DATA_API},r))},post:function(n,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return p(n,t,b({apiUrl:d.DATA_API},o))},del:function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return l(n,t,b({apiUrl:d.DATA_API},o))}};function w(){if(window.xprops){var n,o,r,e,i,c=(null===(n=window.xprops)||void 0===n||null===(o=n.app)||void 0===o||null===(r=o.app)||void 0===r?void 0:r.id)||"unknown-app-id",s=(null===(e=window.xprops)||void 0===e||null===(i=e.app)||void 0===i?void 0:i.id)||"unknown-instance-id";return"".concat(c,":").concat(s,":").concat(t())}return"non-dc-app:".concat(t())}var O=v({subscribe:function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.onDataReceive,e=window[Symbol.for("socket")]||{},i=e.subscribe,c=e.unsubscribe,s=e.socket;if(!s)return console.error("Socket is not initialized!"),o;var a=w(),u=b(b({},n),{},{collection:n.collection||n.dataset,appInstanceId:a}),p=r&&function(n){return n.appInstanceId===a&&r(n)};return i(u),p&&s.on("data",p),function(){p&&s.off("data",p),c(u)}},onConnectionChange:function(n){var t=(window[Symbol.for("socket")]||{}).socket;if(!t)return function(){};var o=function(){return n({status:"connected"})},r=function(t){return n({status:"disconnected",reason:t})},e=function(){return n({status:"reconnecting"})},i=function(t){return n({status:"error",reason:(null==t?void 0:t.message)||String(t)})};return t.on("connect",o),t.on("disconnect",r),t.on("reconnect",e),t.on("connect_error",i),function(){t.off("connect",o),t.off("disconnect",r),t.off("reconnect",e),t.off("connect_error",i)}}},g);export{j as corvaAPI,A as corvaDataAPI,O as socketClient};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/clients/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/clients/index.js"],"sourcesContent":["import { v4 as uuidV4 } from 'uuid';\nimport { noop } from 'lodash';\n\nimport * as clientStorage from './clientStorage';\nimport * as jsonApi from './jsonApi';\nimport * as subscriptions from './subscriptions';\nimport { get, put, patch, post, del, getWithHeaders } from './api/apiCore';\nimport { CORVA_API_URLS } from './constants';\nimport * as corvaUrls from './corvaUrls';\nimport { handleSubscriptionsVersion } from './subscriptions/constants';\nimport { socketClientV2 } from './subscriptions/socket-client.v2';\n\nexport { clientStorage, jsonApi, subscriptions, corvaUrls };\nexport * as sso from './sso';\nexport * from './utils';\n\nexport const corvaAPI = {\n get: (path, queryParams = {}, requestOptions = {}) => {\n return get(path, queryParams, requestOptions);\n },\n getWithHeaders: (path, queryParams = {}, requestOptions = {}) => {\n return getWithHeaders(path, queryParams, requestOptions);\n },\n put: (path, content, queryParams = {}, requestOptions = {}) => {\n return put(path, content, queryParams, requestOptions);\n },\n patch: (path, content, queryParams = {}, requestOptions = {}) => {\n return patch(path, content, queryParams, requestOptions);\n },\n post: (path, entity, requestOptions = {}) => {\n return post(path, entity, requestOptions);\n },\n del: (path, queryParams = {}, requestOptions = {}) => {\n return del(path, queryParams, requestOptions);\n },\n};\n\nexport const corvaDataAPI = {\n get: (path, queryParams = {}, requestOptions = {}) =>\n get(path, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n put: (path, content, queryParams = {}, requestOptions = {}) =>\n put(path, content, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n patch: (path, content, queryParams = {}, requestOptions = {}) =>\n patch(path, content, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n post: (path, entity, requestOptions = {}) =>\n post(path, entity, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n del: (path, queryParams = {}, requestOptions = {}) =>\n del(path, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n};\n\nconst SOCKET_NOT_INITIALIZED_ERROR = 'Socket is not initialized!';\n\nfunction getAppInstanceId() {\n if (window.xprops) {\n const appId = window.xprops?.app?.app?.id || 'unknown-app-id';\n const appInstanceId = window.xprops?.app?.id || 'unknown-instance-id';\n\n return `${appId}:${appInstanceId}:${uuidV4()}`;\n }\n\n return `non-dc-app:${uuidV4()}`;\n}\n\nconst socketClientV1 = {\n subscribe: (subscription, { onDataReceive } = {}) => {\n const { subscribe, unsubscribe, socket } = window[Symbol.for('socket')] || {};\n\n if (!socket) {\n console.error(SOCKET_NOT_INITIALIZED_ERROR);\n // In some environments, like PDF Dashboard Report, socket is not initialized\n // But socketClient should not throw errors to prevent apps crashing\n return noop;\n }\n const subId = getAppInstanceId();\n const subscriptionWithId = {\n ...subscription,\n // NOTE: Add ability to pass dataset (because we don't use \"collection\" in new data api)\n collection: subscription.collection || subscription.dataset,\n // NOTE: Unique id is required for subscriptions server\n appInstanceId: subId,\n };\n\n const onData =\n onDataReceive && (event => event.appInstanceId === subId && onDataReceive(event));\n\n subscribe(subscriptionWithId);\n if (onData) socket.on('data', onData);\n\n // NOTE: Return unsubscribe\n return () => {\n if (onData) socket.off('data', onData);\n unsubscribe(subscriptionWithId);\n };\n },\n};\n\nexport const socketClient = handleSubscriptionsVersion(socketClientV1, socketClientV2);\n"],"names":["corvaAPI","get","path","queryParams","arguments","length","undefined","requestOptions","getWithHeaders","put","content","patch","post","entity","del","corvaDataAPI","_objectSpread","apiUrl","CORVA_API_URLS","DATA_API","getAppInstanceId","window","xprops","_window$xprops","_window$xprops$app","_window$xprops$app$ap","_window$xprops2","_window$xprops2$app","appId","app","id","appInstanceId","concat","uuidV4","socketClient","handleSubscriptionsVersion","subscribe","subscription","_ref","onDataReceive","Symbol","for","unsubscribe","socket","console","error","noop","subId","subscriptionWithId","collection","dataset","onData","event","on","off","socketClientV2"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/clients/index.js"],"sourcesContent":["import { v4 as uuidV4 } from 'uuid';\nimport { noop } from 'lodash';\n\nimport * as clientStorage from './clientStorage';\nimport * as jsonApi from './jsonApi';\nimport * as subscriptions from './subscriptions';\nimport { get, put, patch, post, del, getWithHeaders } from './api/apiCore';\nimport { CORVA_API_URLS } from './constants';\nimport * as corvaUrls from './corvaUrls';\nimport { handleSubscriptionsVersion } from './subscriptions/constants';\nimport { socketClientV2 } from './subscriptions/socket-client.v2';\n\nexport { clientStorage, jsonApi, subscriptions, corvaUrls };\nexport * as sso from './sso';\nexport * from './utils';\n\nexport const corvaAPI = {\n get: (path, queryParams = {}, requestOptions = {}) => {\n return get(path, queryParams, requestOptions);\n },\n getWithHeaders: (path, queryParams = {}, requestOptions = {}) => {\n return getWithHeaders(path, queryParams, requestOptions);\n },\n put: (path, content, queryParams = {}, requestOptions = {}) => {\n return put(path, content, queryParams, requestOptions);\n },\n patch: (path, content, queryParams = {}, requestOptions = {}) => {\n return patch(path, content, queryParams, requestOptions);\n },\n post: (path, entity, requestOptions = {}) => {\n return post(path, entity, requestOptions);\n },\n del: (path, queryParams = {}, requestOptions = {}) => {\n return del(path, queryParams, requestOptions);\n },\n};\n\nexport const corvaDataAPI = {\n get: (path, queryParams = {}, requestOptions = {}) =>\n get(path, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n put: (path, content, queryParams = {}, requestOptions = {}) =>\n put(path, content, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n patch: (path, content, queryParams = {}, requestOptions = {}) =>\n patch(path, content, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n post: (path, entity, requestOptions = {}) =>\n post(path, entity, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n del: (path, queryParams = {}, requestOptions = {}) =>\n del(path, queryParams, { apiUrl: CORVA_API_URLS.DATA_API, ...requestOptions }),\n};\n\nconst SOCKET_NOT_INITIALIZED_ERROR = 'Socket is not initialized!';\n\nfunction getAppInstanceId() {\n if (window.xprops) {\n const appId = window.xprops?.app?.app?.id || 'unknown-app-id';\n const appInstanceId = window.xprops?.app?.id || 'unknown-instance-id';\n\n return `${appId}:${appInstanceId}:${uuidV4()}`;\n }\n\n return `non-dc-app:${uuidV4()}`;\n}\n\nconst socketClientV1 = {\n subscribe: (subscription, { onDataReceive } = {}) => {\n const { subscribe, unsubscribe, socket } = window[Symbol.for('socket')] || {};\n\n if (!socket) {\n console.error(SOCKET_NOT_INITIALIZED_ERROR);\n // In some environments, like PDF Dashboard Report, socket is not initialized\n // But socketClient should not throw errors to prevent apps crashing\n return noop;\n }\n const subId = getAppInstanceId();\n const subscriptionWithId = {\n ...subscription,\n // NOTE: Add ability to pass dataset (because we don't use \"collection\" in new data api)\n collection: subscription.collection || subscription.dataset,\n // NOTE: Unique id is required for subscriptions server\n appInstanceId: subId,\n };\n\n const onData =\n onDataReceive && (event => event.appInstanceId === subId && onDataReceive(event));\n\n subscribe(subscriptionWithId);\n if (onData) socket.on('data', onData);\n\n // NOTE: Return unsubscribe\n return () => {\n if (onData) socket.off('data', onData);\n unsubscribe(subscriptionWithId);\n };\n },\n onConnectionChange: handler => {\n const { socket } = window[Symbol.for('socket')] || {};\n if (!socket) return () => {};\n const onConnect = () => handler({ status: 'connected' });\n const onDisconnect = reason => handler({ status: 'disconnected', reason });\n const onReconnect = () => handler({ status: 'reconnecting' });\n const onConnectError = err => handler({ status: 'error', reason: err?.message || String(err) });\n\n socket.on('connect', onConnect);\n socket.on('disconnect', onDisconnect);\n socket.on('reconnect', onReconnect);\n socket.on('connect_error', onConnectError);\n\n return () => {\n socket.off('connect', onConnect);\n socket.off('disconnect', onDisconnect);\n socket.off('reconnect', onReconnect);\n socket.off('connect_error', onConnectError);\n };\n },\n};\n\nexport const socketClient = handleSubscriptionsVersion(socketClientV1, socketClientV2);\n"],"names":["corvaAPI","get","path","queryParams","arguments","length","undefined","requestOptions","getWithHeaders","put","content","patch","post","entity","del","corvaDataAPI","_objectSpread","apiUrl","CORVA_API_URLS","DATA_API","getAppInstanceId","window","xprops","_window$xprops","_window$xprops$app","_window$xprops$app$ap","_window$xprops2","_window$xprops2$app","appId","app","id","appInstanceId","concat","uuidV4","socketClient","handleSubscriptionsVersion","subscribe","subscription","_ref","onDataReceive","Symbol","for","unsubscribe","socket","console","error","noop","subId","subscriptionWithId","collection","dataset","onData","event","on","off","onConnectionChange","handler","onConnect","status","onDisconnect","reason","onReconnect","onConnectError","err","message","String","socketClientV2"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/clients/subscriptions/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/clients/subscriptions/constants.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,0BAA0B,GAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAMhE,CAAC;AAEF,eAAO,MAAM,YAAY,cAMxB,CAAC;AAOF,eAAO,MAAM,iBAAiB,QAA4B,CAAC;AAC3D,eAAO,MAAM,qBAAqB,QAA6B,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as o from"query-string";import{isDevOrQAEnv as r}from"../../utils/env.js";var
|
|
1
|
+
import*as o from"query-string";import{isDevOrQAEnv as r,isBetaEnv as s}from"../../utils/env.js";var t=o.parse(window.location.search),e=r||s,i=e?"2":"1",n=t.subscriptions_version||localStorage.getItem("subscriptions_version")||i;e&&"2"!==localStorage.getItem("subscriptions_version_forced")&&(localStorage.setItem("subscriptions_version","2"),localStorage.setItem("subscriptions_version_forced","2"));var c=function(o,r){return"1"===n?o:r},a=function(){return"1"===n?"/":"/".concat(n)},p=process.env.REACT_APP_SUBSCRIPTIONS_URL||t.subscriptions_url||"https://subscriptions.qa.corva.ai",u="".concat(p).concat(a()),l=new RegExp("^/reports.*$");export{l as IGNORED_ROUTES_REGEXP,u as SUBSCRIPTIONS_URL,a as getNamespace,c as handleSubscriptionsVersion};
|
|
2
2
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { SubscribeOptions } from
|
|
1
|
+
import { SubscribeOptions, OnConnectionChange } from './types';
|
|
2
2
|
export declare const socketClientV2: {
|
|
3
3
|
subscribe: <O extends SubscribeOptions = SubscribeOptions, T = Record<string, any>>(subscription: O, { onDataReceive }: {
|
|
4
4
|
onDataReceive: (data: O & {
|
|
5
5
|
data: T;
|
|
6
6
|
}) => any;
|
|
7
7
|
}) => () => void;
|
|
8
|
+
onConnectionChange: (handler: OnConnectionChange) => () => void;
|
|
8
9
|
disconnect: () => void;
|
|
9
10
|
};
|
|
10
11
|
//# sourceMappingURL=socket-client.v2.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-client.v2.d.ts","sourceRoot":"","sources":["../../../src/clients/subscriptions/socket-client.v2.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"socket-client.v2.d.ts","sourceRoot":"","sources":["../../../src/clients/subscriptions/socket-client.v2.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE/D,eAAO,MAAM,cAAc;gBACb,CAAC,SAAS,gBAAgB,qBAAqB,CAAC,sCAC5C,CAAC,qBACI;QAAE,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG;YAAE,IAAI,EAAE,CAAC,CAAA;SAAE,KAAK,GAAG,CAAA;KAAE;kCAOxC,kBAAkB;;CASjD,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign as n}from'./../../ext-esm/tslib/tslib.es6.js';import{getChannelName as t}from"./get-channel-name.js";import{SubscriptionsClientFactory as i}from"./subscriptions-client.factory.js";var
|
|
1
|
+
import{__assign as n}from'./../../ext-esm/tslib/tslib.es6.js';import{getChannelName as t}from"./get-channel-name.js";import{SubscriptionsClientFactory as i}from"./subscriptions-client.factory.js";var o={subscribe:function(o,e){var r=e.onDataReceive,c=i.init(),s=t(o);return c.subscribe(s,(function(t){return r(n(n({},o),{data:t}))}))},onConnectionChange:function(n){return i.init().onConnectionChange(n)},disconnect:function(){i.init().disconnect()}};export{o as socketClientV2};
|
|
2
2
|
//# sourceMappingURL=socket-client.v2.js.map
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Socket } from "socket.io-client";
|
|
2
|
-
import { SubcriptionsClient, SubscriptionsClientV2Events, SubscriptionsClientV2ServerEvents, AcknowledgeCb, OnDataReceive } from "./types";
|
|
2
|
+
import { SubcriptionsClient, SubscriptionsClientV2Events, SubscriptionsClientV2ServerEvents, AcknowledgeCb, OnDataReceive, OnConnectionChange } from "./types";
|
|
3
3
|
export declare class SubscriptionsClientV2 implements SubcriptionsClient {
|
|
4
4
|
private readonly _socket;
|
|
5
5
|
constructor(_socket: Socket<SubscriptionsClientV2Events, SubscriptionsClientV2ServerEvents>);
|
|
6
6
|
subscribe<T>(channel: string, onData: OnDataReceive<T>, ack?: AcknowledgeCb): () => void;
|
|
7
7
|
unsubscribe<T>(channel: string, onData: OnDataReceive<T>, ack?: AcknowledgeCb): void;
|
|
8
8
|
disconnect(): this;
|
|
9
|
+
onConnectionChange: (handler: OnConnectionChange) => () => void;
|
|
9
10
|
private _validateArgs;
|
|
10
11
|
private _shouldEmitToServer;
|
|
11
12
|
private _emit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions-client.d.ts","sourceRoot":"","sources":["../../../src/clients/subscriptions/subscriptions-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,iCAAiC,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"subscriptions-client.d.ts","sourceRoot":"","sources":["../../../src/clients/subscriptions/subscriptions-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,iCAAiC,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE/J,qBAAa,qBAAsB,YAAW,kBAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM,CAAC,2BAA2B,EAAE,iCAAiC,CAAC;IAE5G,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa;IAiB3E,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa;IAQ7E,UAAU;IAOV,kBAAkB,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,MAAM,IAAI,CAmB9D;IAED,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,KAAK;CAmBd"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { AcknowledgeCb, OnDataReceive, SubcriptionsClient } from "./types";
|
|
1
|
+
import { AcknowledgeCb, OnConnectionChange, OnDataReceive, SubcriptionsClient } from "./types";
|
|
2
2
|
export declare class DummySubscriptionsClient implements SubcriptionsClient {
|
|
3
3
|
subscribe<T>(channel: string, onData: OnDataReceive<T>, ack?: AcknowledgeCb): () => void;
|
|
4
4
|
unsubscribe<T>(channel: string, onData: OnDataReceive<T>, ack?: AcknowledgeCb): void;
|
|
5
5
|
disconnect(): void;
|
|
6
|
+
onConnectionChange(handler: OnConnectionChange): () => void;
|
|
6
7
|
}
|
|
7
8
|
//# sourceMappingURL=subscriptions-client.dummy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions-client.dummy.d.ts","sourceRoot":"","sources":["../../../src/clients/subscriptions/subscriptions-client.dummy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"subscriptions-client.dummy.d.ts","sourceRoot":"","sources":["../../../src/clients/subscriptions/subscriptions-client.dummy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE/F,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,MAAM,IAAI;IAIxF,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI;IAIpF,UAAU,IAAI,IAAI;IAIlB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,IAAI;CAI5D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var n=function(){function n(){}return n.prototype.subscribe=function(n,t,o){return function(){}},n.prototype.unsubscribe=function(n,t,o){},n.prototype.disconnect=function(){},n}();export{n as DummySubscriptionsClient};
|
|
1
|
+
var n=function(){function n(){}return n.prototype.subscribe=function(n,t,o){return function(){}},n.prototype.unsubscribe=function(n,t,o){},n.prototype.disconnect=function(){},n.prototype.onConnectionChange=function(n){return function(){}},n}();export{n as DummySubscriptionsClient};
|
|
2
2
|
//# sourceMappingURL=subscriptions-client.dummy.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{io as t}from"socket.io-client";import{IGNORED_ROUTES_REGEXP as n,SUBSCRIPTIONS_URL as e}from"./constants.js";import{SubscriptionsClientV2 as
|
|
1
|
+
import{io as t}from"socket.io-client";import{IGNORED_ROUTES_REGEXP as n,SUBSCRIPTIONS_URL as e}from"./constants.js";import{SubscriptionsClientV2 as r}from"./subscriptions-client.js";import{DummySubscriptionsClient as i}from"./subscriptions-client.dummy.js";var o=function(){function o(){}return o.init=function(){return this.instance||(this.instance=this.create()),this.instance},o.create=function(){if(n.test(window.location.pathname))return new i;var o=t(e,{transports:["websocket"],autoConnect:!0}),c=0;return o.on("connect",(function(){(c+=1,o.recovered)||1!==c&&Object.keys(o._callbacks).filter((function(t){return t.startsWith("$data#")})).map((function(t){return t.replace("$data#","")})).forEach((function(t){o.emit("subscribe",{channel:t,_current_location_href:window.top.location.href})}))})),new r(o)},o}();export{o as SubscriptionsClientFactory};
|
|
2
2
|
//# sourceMappingURL=subscriptions-client.factory.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var t=function(){function t(t){this._socket=t}return t.prototype.subscribe=function(t,
|
|
1
|
+
var t=function(){function t(t){var n=this;this._socket=t,this.onConnectionChange=function(t){var o=function(){return t({status:"connected"})},e=function(n){return t({status:"disconnected",reason:n})},r=function(){return t({status:"reconnecting"})},c=function(n){return t({status:"error",reason:(null==n?void 0:n.message)||String(n)})};return n._socket.on("connect",o),n._socket.on("disconnect",e),n._socket.on("reconnect",r),n._socket.on("connect_error",c),function(){n._socket.off("connect",o),n._socket.off("disconnect",e),n._socket.off("reconnect",r),n._socket.off("connect_error",c)}}}return t.prototype.subscribe=function(t,n,o){var e=this;this._validateArgs(t,n,o),this._socket.on("data#".concat(t),n),this._emit("subscribe",t,o);var r=function(){return e.unsubscribe(t,n,o)};return Object.defineProperty(r,"name",{value:"unsubscribe_".concat(t.replace(/[^\w]/g,"_")),writable:!1}),r},t.prototype.unsubscribe=function(t,n,o){this._validateArgs(t,n,o),this._emit("unsubscribe",t,o),this._socket.off("data#".concat(t),n)},t.prototype.disconnect=function(){return this._socket.disconnect(),this._socket.removeAllListeners(),this},t.prototype._validateArgs=function(t,n,o){if("string"!=typeof t||!t)throw new Error("Channel must be a non-empty string");if("function"!=typeof n)throw new Error("onData handler must be a function");if(void 0!==o&&"function"!=typeof o)throw new Error("ack must be a function")},t.prototype._shouldEmitToServer=function(t){return 1===this._socket.listeners("data#".concat(t)).length},t.prototype._emit=function(t,n,o){if(!this._shouldEmitToServer(n))return null==o?void 0:o();o?this._socket.emitWithAck(t,{channel:n,_current_location_href:window.top.location.href},(function(e){return e.ok?o():o(new Error("Failed to ".concat(t," to channel ").concat(n,": ").concat(e.error)))})):this._socket.emit(t,{channel:n,_current_location_href:window.top.location.href})},t}();export{t as SubscriptionsClientV2};
|
|
2
2
|
//# sourceMappingURL=subscriptions-client.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type CollectionEvent =
|
|
1
|
+
export type CollectionEvent = '' | 'update' | 'destroy';
|
|
2
2
|
export interface SubscribeOptions {
|
|
3
3
|
companyId?: number;
|
|
4
4
|
userId?: number;
|
|
@@ -24,14 +24,23 @@ export interface SubscriptionsClientV2Events {
|
|
|
24
24
|
export interface SubscriptionsClientV2ServerEvents {
|
|
25
25
|
subscribe: (opts: {
|
|
26
26
|
channel: string;
|
|
27
|
+
_current_location_href?: string;
|
|
27
28
|
}, ack?: AcknowledgeCb) => void;
|
|
28
29
|
unsubscribe: (opts: {
|
|
29
30
|
channel: string;
|
|
31
|
+
_current_location_href?: string;
|
|
30
32
|
}, ack?: AcknowledgeCb) => void;
|
|
31
33
|
}
|
|
32
34
|
export interface SubcriptionsClient {
|
|
33
35
|
subscribe<T>(channel: string, onData: OnDataReceive<T>, ack?: AcknowledgeCb): () => void;
|
|
34
36
|
unsubscribe<T>(channel: string, onData: OnDataReceive<T>, ack?: AcknowledgeCb): void;
|
|
35
37
|
disconnect(): void;
|
|
38
|
+
onConnectionChange(handler: OnConnectionChange): () => void;
|
|
36
39
|
}
|
|
40
|
+
export type ConnectionStatus = 'connected' | 'disconnected' | 'reconnecting' | 'error';
|
|
41
|
+
export type ConnectionChange = {
|
|
42
|
+
status: ConnectionStatus;
|
|
43
|
+
reason?: string;
|
|
44
|
+
};
|
|
45
|
+
export type OnConnectionChange = (change: ConnectionChange) => void;
|
|
37
46
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/clients/subscriptions/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,2BAA2B;IAC1C,CAAC,KAAK,EAAE,QAAQ,MAAM,EAAE,GAAG,GAAG,CAAC;CAChC;AAED,MAAM,WAAW,iCAAiC;IAChD,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/clients/subscriptions/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,2BAA2B;IAC1C,CAAC,KAAK,EAAE,QAAQ,MAAM,EAAE,GAAG,GAAG,CAAC;CAChC;AAED,MAAM,WAAW,iCAAiC;IAChD,SAAS,EAAE,CACT,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1D,GAAG,CAAC,EAAE,aAAa,KAChB,IAAI,CAAC;IACV,WAAW,EAAE,CACX,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1D,GAAG,CAAC,EAAE,aAAa,KAChB,IAAI,CAAC;CACX;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,MAAM,IAAI,CAAC;IACzF,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrF,UAAU,IAAI,IAAI,CAAC;IACnB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAAC;CAC7D;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,OAAO,CAAC;AACvF,MAAM,MAAM,gBAAgB,GAAG;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7E,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import n from"socket.io-client";import*as
|
|
1
|
+
import n from"@babel/runtime/helpers/defineProperty";import t from"socket.io-client";import*as e from"query-string";import o from"lodash/noop";function c(n,t){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(n);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),e.push.apply(e,o)}return e}function r(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?c(Object(o),!0).forEach((function(e){n(t,e,o[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):c(Object(o)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(o,n))}))}return t}var i=new RegExp("^/reports.*$"),s=e.parse(window.location.search).subscriptions_url||process.env.REACT_APP_SUBSCRIPTIONS_URL||"https://subscriptions.qa.corva.ai";function a(n){return i.test(window.location.pathname)?o:n}function u(n,t){return"".concat(n.appInstanceId||t,":").concat(n.companyId,":").concat(n.userId,":").concat(n.collection)}function p(n,t){return"".concat(n.appInstanceId||t,":").concat(n.companyId,":").concat(n.collection)}function b(n,t){return n.event?"".concat(n.appInstanceId||t,":").concat(n.provider,":").concat(n.collection,":").concat(n.assetId,":").concat(n.event):"".concat(n.appInstanceId||t,":").concat(n.provider,":").concat(n.collection,":").concat(n.assetId)}function d(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"userId"in n?u(n,t):"companyId"in n?p(n,t):b(n,t)}function f(){var n,e={},o=!1,c=a((function(t){if(!n)throw new Error("Not connected");var o=d(t);o in e&&(delete e[o],n.emit("unsubscribe",r(r({},t),{},{_current_location_href:window.top.location.href})))})),i=a((function(t){if(!n)throw new Error("Not connected");var c=d(t);e[c]=t,o&&n.emit("subscribe",r(r({},t),{},{_current_location_href:window.top.location.href}))})),u=a((function(){var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=c.onDataReceive,a=void 0===r?void 0:r,u=c.onResubscribe,p=void 0===u?void 0:u,b=!1;return(n=t(s,{transports:["websocket"]})).on("authenticated",(function(){o=!0,Object.values(e).forEach((function(n){i(n),b&&p&&p(n)})),b=!1})),a&&n.on("data",a),n.on("reconnect",(function(){b=!0})),n}));return{connect:u,disconnect:a((function(){n&&(n.disconnect(),n=null)})),subscribe:i,unsubscribe:c}}var l=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=n.onDataReceive,e=n.onResubscribe,o=window[Symbol.for("socket")];null!=o&&o.socket&&(console.warn("Existing socket, disconnecting."),o.disconnect());var c=f(),r=c.connect,i=c.disconnect,s=c.subscribe,a=c.unsubscribe,u=r({onDataReceive:t,onResubscribe:e});window[Symbol.for("socket")]={subscribe:s,unsubscribe:a,disconnect:i,socket:u}};export{d as getSubscriptionId,f as getSubscriptionsClient,l as initializeSocketClient};
|
|
2
2
|
//# sourceMappingURL=subscriptions.v1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.v1.js","sources":["../../src/clients/subscriptions.v1.js"],"sourcesContent":["import io from 'socket.io-client';\nimport * as queryString from 'query-string';\nimport noop from 'lodash/noop';\n\nconst REPORTS_ROUTE_REG_EXP = new RegExp('^/reports.*$');\n\nconst parameters = queryString.parse(window.location.search);\nconst socketUrl =\n parameters.subscriptions_url ||\n process.env.REACT_APP_SUBSCRIPTIONS_URL ||\n 'https://subscriptions.qa.corva.ai';\n\nfunction reportsDisableDecorator(func) {\n // NOTE: Disable subscription events on reports pages\n return REPORTS_ROUTE_REG_EXP.test(window.location.pathname) ? noop : func;\n}\n\nfunction getUserSubscriptionId(options, hookId) {\n return `${options.appInstanceId || hookId}:${options.companyId}:${options.userId}:${\n options.collection\n }`;\n}\n\nfunction getCompanySubscriptionId(options, hookId) {\n return `${options.appInstanceId || hookId}:${options.companyId}:${options.collection}`;\n}\n\nfunction getAssetSubscriptionId(options, hookId) {\n return options.event\n ? `${options.appInstanceId || hookId}:${options.provider}:${options.collection}:${\n options.assetId\n }:${options.event}`\n : `${options.appInstanceId || hookId}:${options.provider}:${options.collection}:${\n options.assetId\n }`;\n}\n\nexport function getSubscriptionId(options, hookId = '') {\n if ('userId' in options) return getUserSubscriptionId(options, hookId);\n else if ('companyId' in options) return getCompanySubscriptionId(options, hookId);\n return getAssetSubscriptionId(options, hookId);\n}\n\nexport function getSubscriptionsClient() {\n let socket;\n\n // NOTE: Is used in order to reset subscriptions in case of network failure\n const subscriptions = {};\n let isAuthenticated = false;\n\n const unsubscribe = reportsDisableDecorator(options => {\n if (!socket) {\n throw new Error('Not connected');\n }\n const subscriptionId = getSubscriptionId(options);\n\n if (subscriptionId in subscriptions) {\n delete subscriptions[subscriptionId];\n socket.emit('unsubscribe', options);\n }\n });\n\n const subscribe = reportsDisableDecorator(options => {\n if (!socket) {\n throw new Error('Not connected');\n }\n\n const subscriptionId = getSubscriptionId(options);\n subscriptions[subscriptionId] = options;\n\n // NOTE: Events could be:\n // 1) 'update' - fires in case of records are updated;\n // 2) 'destroy' - fires in case or records are destroyed;\n // 3) '' (empty) - fires in case of new records are created;\n if (isAuthenticated) {\n socket.emit('subscribe', options);\n }\n });\n\n const connect = reportsDisableDecorator(\n ({ onDataReceive = undefined, onResubscribe = undefined } = {}) => {\n let resubscribe = false;\n\n socket = io(socketUrl, { transports: ['websocket'] });\n // TODO: Once authentication is moved on connect, move this as well\n socket.on('authenticated', () => {\n isAuthenticated = true;\n Object.values(subscriptions).forEach(subscription => {\n subscribe(subscription);\n if (resubscribe && onResubscribe) onResubscribe(subscription);\n });\n resubscribe = false;\n });\n if (onDataReceive) socket.on('data', onDataReceive);\n\n socket.on('reconnect', () => {\n resubscribe = true;\n });\n\n return socket;\n }\n );\n\n const disconnect = reportsDisableDecorator(() => {\n if (socket) {\n socket.disconnect();\n socket = null;\n }\n });\n\n return { connect, disconnect, subscribe, unsubscribe };\n}\n\nexport const initializeSocketClient = ({ onDataReceive, onResubscribe } = {}) => {\n const existingSocket = window[Symbol.for('socket')];\n if (existingSocket?.socket) {\n console.warn('Existing socket, disconnecting.');\n existingSocket.disconnect();\n }\n const { connect, disconnect, subscribe, unsubscribe } = getSubscriptionsClient();\n const socket = connect({ onDataReceive, onResubscribe });\n window[Symbol.for('socket')] = {\n subscribe,\n unsubscribe,\n disconnect,\n socket,\n };\n};\n"],"names":["REPORTS_ROUTE_REG_EXP","RegExp","socketUrl","queryString","parse","window","location","search","subscriptions_url","process","env","REACT_APP_SUBSCRIPTIONS_URL","reportsDisableDecorator","func","test","pathname","noop","getUserSubscriptionId","options","hookId","concat","appInstanceId","companyId","userId","collection","getCompanySubscriptionId","getAssetSubscriptionId","event","provider","assetId","getSubscriptionId","getSubscriptionsClient","socket","subscriptions","isAuthenticated","unsubscribe","Error","subscriptionId","emit","subscribe","connect","_ref","arguments","length","undefined","_ref$onDataReceive","onDataReceive","_ref$onResubscribe","onResubscribe","resubscribe","io","transports","on","Object","values","forEach","subscription","disconnect","initializeSocketClient","_ref2","existingSocket","Symbol","for","console","warn","_getSubscriptionsClie"],"mappings":"
|
|
1
|
+
{"version":3,"file":"subscriptions.v1.js","sources":["../../src/clients/subscriptions.v1.js"],"sourcesContent":["import io from 'socket.io-client';\nimport * as queryString from 'query-string';\nimport noop from 'lodash/noop';\n\nconst REPORTS_ROUTE_REG_EXP = new RegExp('^/reports.*$');\n\nconst parameters = queryString.parse(window.location.search);\nconst socketUrl =\n parameters.subscriptions_url ||\n process.env.REACT_APP_SUBSCRIPTIONS_URL ||\n 'https://subscriptions.qa.corva.ai';\n\nfunction reportsDisableDecorator(func) {\n // NOTE: Disable subscription events on reports pages\n return REPORTS_ROUTE_REG_EXP.test(window.location.pathname) ? noop : func;\n}\n\nfunction getUserSubscriptionId(options, hookId) {\n return `${options.appInstanceId || hookId}:${options.companyId}:${options.userId}:${\n options.collection\n }`;\n}\n\nfunction getCompanySubscriptionId(options, hookId) {\n return `${options.appInstanceId || hookId}:${options.companyId}:${options.collection}`;\n}\n\nfunction getAssetSubscriptionId(options, hookId) {\n return options.event\n ? `${options.appInstanceId || hookId}:${options.provider}:${options.collection}:${\n options.assetId\n }:${options.event}`\n : `${options.appInstanceId || hookId}:${options.provider}:${options.collection}:${\n options.assetId\n }`;\n}\n\nexport function getSubscriptionId(options, hookId = '') {\n if ('userId' in options) return getUserSubscriptionId(options, hookId);\n else if ('companyId' in options) return getCompanySubscriptionId(options, hookId);\n return getAssetSubscriptionId(options, hookId);\n}\n\nexport function getSubscriptionsClient() {\n let socket;\n\n // NOTE: Is used in order to reset subscriptions in case of network failure\n const subscriptions = {};\n let isAuthenticated = false;\n\n const unsubscribe = reportsDisableDecorator(options => {\n if (!socket) {\n throw new Error('Not connected');\n }\n const subscriptionId = getSubscriptionId(options);\n\n if (subscriptionId in subscriptions) {\n delete subscriptions[subscriptionId];\n socket.emit('unsubscribe', { ...options, _current_location_href: window.top.location.href });\n }\n });\n\n const subscribe = reportsDisableDecorator(options => {\n if (!socket) {\n throw new Error('Not connected');\n }\n\n const subscriptionId = getSubscriptionId(options);\n subscriptions[subscriptionId] = options;\n\n // NOTE: Events could be:\n // 1) 'update' - fires in case of records are updated;\n // 2) 'destroy' - fires in case or records are destroyed;\n // 3) '' (empty) - fires in case of new records are created;\n if (isAuthenticated) {\n socket.emit('subscribe', { ...options, _current_location_href: window.top.location.href });\n }\n });\n\n const connect = reportsDisableDecorator(\n ({ onDataReceive = undefined, onResubscribe = undefined } = {}) => {\n let resubscribe = false;\n\n socket = io(socketUrl, { transports: ['websocket'] });\n // TODO: Once authentication is moved on connect, move this as well\n socket.on('authenticated', () => {\n isAuthenticated = true;\n Object.values(subscriptions).forEach(subscription => {\n subscribe(subscription);\n if (resubscribe && onResubscribe) onResubscribe(subscription);\n });\n resubscribe = false;\n });\n if (onDataReceive) socket.on('data', onDataReceive);\n\n socket.on('reconnect', () => {\n resubscribe = true;\n });\n\n return socket;\n }\n );\n\n const disconnect = reportsDisableDecorator(() => {\n if (socket) {\n socket.disconnect();\n socket = null;\n }\n });\n\n return { connect, disconnect, subscribe, unsubscribe };\n}\n\nexport const initializeSocketClient = ({ onDataReceive, onResubscribe } = {}) => {\n const existingSocket = window[Symbol.for('socket')];\n if (existingSocket?.socket) {\n console.warn('Existing socket, disconnecting.');\n existingSocket.disconnect();\n }\n const { connect, disconnect, subscribe, unsubscribe } = getSubscriptionsClient();\n const socket = connect({ onDataReceive, onResubscribe });\n window[Symbol.for('socket')] = {\n subscribe,\n unsubscribe,\n disconnect,\n socket,\n };\n};\n"],"names":["REPORTS_ROUTE_REG_EXP","RegExp","socketUrl","queryString","parse","window","location","search","subscriptions_url","process","env","REACT_APP_SUBSCRIPTIONS_URL","reportsDisableDecorator","func","test","pathname","noop","getUserSubscriptionId","options","hookId","concat","appInstanceId","companyId","userId","collection","getCompanySubscriptionId","getAssetSubscriptionId","event","provider","assetId","getSubscriptionId","getSubscriptionsClient","socket","subscriptions","isAuthenticated","unsubscribe","Error","subscriptionId","emit","_current_location_href","top","href","subscribe","connect","_ref","arguments","length","undefined","_ref$onDataReceive","onDataReceive","_ref$onResubscribe","onResubscribe","resubscribe","io","transports","on","Object","values","forEach","subscription","disconnect","initializeSocketClient","_ref2","existingSocket","Symbol","for","console","warn","_getSubscriptionsClie"],"mappings":"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"}
|