@corva/ui 3.54.0-8 → 3.54.0-9

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 (47) hide show
  1. package/cjs-bundle/clients/api/apiCore.js +1 -1
  2. package/cjs-bundle/clients/api/apiCore.js.map +1 -1
  3. package/cjs-bundle/clients/api/constants.js +2 -0
  4. package/cjs-bundle/clients/api/constants.js.map +1 -0
  5. package/cjs-bundle/clients/api/rateLimiter.js +2 -0
  6. package/cjs-bundle/clients/api/rateLimiter.js.map +1 -0
  7. package/cjs-bundle/clients/index.js +1 -1
  8. package/cjs-bundle/clients/utils.js +1 -1
  9. package/cjs-bundle/clients/utils.js.map +1 -1
  10. package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js +1 -1
  11. package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map +1 -1
  12. package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js +1 -1
  13. package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js.map +1 -1
  14. package/cjs-bundle/effects/subscriptions/useSubscriptions.v1.js +1 -1
  15. package/cjs-bundle/effects/subscriptions/useSubscriptions.v1.js.map +1 -1
  16. package/cjs-bundle/effects/subscriptions/useSubscriptions.v2.js +1 -1
  17. package/clients/api/apiCore.d.ts.map +1 -1
  18. package/clients/api/apiCore.js +1 -1
  19. package/clients/api/apiCore.js.map +1 -1
  20. package/clients/api/constants.d.ts +37 -0
  21. package/clients/api/constants.d.ts.map +1 -0
  22. package/clients/api/constants.js +2 -0
  23. package/clients/api/constants.js.map +1 -0
  24. package/clients/api/rateLimiter.d.ts +24 -0
  25. package/clients/api/rateLimiter.d.ts.map +1 -0
  26. package/clients/api/rateLimiter.js +2 -0
  27. package/clients/api/rateLimiter.js.map +1 -0
  28. package/clients/index.js +1 -1
  29. package/clients/index.js.map +1 -1
  30. package/clients/utils.d.ts +4 -2
  31. package/clients/utils.d.ts.map +1 -1
  32. package/clients/utils.js +1 -1
  33. package/clients/utils.js.map +1 -1
  34. package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.d.ts.map +1 -1
  35. package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js +1 -1
  36. package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map +1 -1
  37. package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.d.ts.map +1 -1
  38. package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js +1 -1
  39. package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js.map +1 -1
  40. package/effects/subscriptions/useSubscriptions.v1.js +1 -1
  41. package/effects/subscriptions/useSubscriptions.v1.js.map +1 -1
  42. package/effects/subscriptions/useSubscriptions.v2.d.ts.map +1 -1
  43. package/effects/subscriptions/useSubscriptions.v2.js +1 -1
  44. package/effects/useSubscriptions.d.ts.map +1 -1
  45. package/mcp-server/server.mjs +1 -1
  46. package/package.json +1 -1
  47. package/tsconfig.tsbuildinfo +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),t=require("@babel/runtime/helpers/asyncToGenerator"),r=require("@babel/runtime/helpers/defineProperty"),n=require("@babel/runtime/helpers/classCallCheck"),a=require("@babel/runtime/helpers/createClass"),o=require("@babel/runtime/regenerator"),i=require("query-string"),s=require("../utils.js"),u=require("../constants.js"),c=require("./httpMessages.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var d=p(e),f=p(t),h=p(r),y=p(n),v=p(a),g=p(o),b=l(i);function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function P(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach((function(t){h.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var x={400:"Request Failed",403:"No Permission",404:"Not Found"},w=["POST","PUT","PATCH","DELETE"],k=function(){function e(t,r){y.default(this,e),this.status=t.status,this.statusText=t.statusText,this.message=r.message||"No Message",this.errorBody=r}return v.default(e,[{key:"isAuthenticationProblem",value:function(){return 401===this.status}},{key:"isTermsProblem",value:function(){return 401===this.status&&"Please accept the latest terms of service"===this.message}},{key:"isLoginProblem",value:function(){var e,t;return 401===this.status&&(null===(e=this.errorBody)||void 0===e||null===(t=e.errors)||void 0===t?void 0:t.login)}},{key:"isLockedAccountProblem",value:function(){var e,t,r;return 401===this.status&&(null===(e=this.errorBody)||void 0===e||null===(t=e.errors)||void 0===t||null===(r=t.login)||void 0===r?void 0:r.includes("Account has been locked"))}},{key:"isInvalidVerificationCode",value:function(){var e,t,r;return 401===this.status&&(null===(e=this.errorBody)||void 0===e||null===(t=e.errors)||void 0===t||null===(r=t.login)||void 0===r?void 0:r.includes("Invalid verification code"))}},{key:"isMissingVerificationCode",value:function(){var e,t,r;return 401===this.status&&(null===(e=this.errorBody)||void 0===e||null===(t=e.errors)||void 0===t||null===(r=t.identity)||void 0===r?void 0:r.includes("Missing verification code"))}}]),e}(),A=u.CORVA_API_URLS.API,j=s.getAuthorizationHeaders(),O=P({"Content-Type":"application/json",Accept:"application/json"},j);function T(e){var t;null===(t=e.isAuthenticationProblem)||void 0===t||!t.call(e)||e.isTermsProblem()||e.isLoginProblem()||(console.error("Problem with user"),"/login"!==window.location.pathname&&(window.location.href="/login"))}var K=/^\/v1\/assets.*/;function S(){return S=f.default(g.default.mark((function e(t){var r,n,a,o,i,u=arguments;return g.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=u.length>1&&void 0!==u[1]?u[1]:{},n=u.length>2&&void 0!==u[2]?u[2]:{},a=n.apiUrl,o=void 0===a?A:a,i=n.appKey,K.test(t)&&(r.cache="reload"),r.credentials="include",e.abrupt("return",fetch("".concat(o).concat(t),s.attachHTTPHeaders(P({config:r,appKey:i},j))));case 6:case"end":return e.stop()}}),e)}))),S.apply(this,arguments)}var F,E,U=(F=function(e){return S.apply(this,arguments)},E=f.default(g.default.mark((function e(t,r,n){var a,o,i,s,u,p,l;return g.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,F(t,r,n);case 2:if(a=e.sent,o=a.status,!a.ok){e.next=6;break}return e.abrupt("return",204===o?null:a);case 6:return e.prev=6,e.next=9,a.json();case 9:i=e.sent,e.next=15;break;case 12:e.prev=12,e.t0=e.catch(6),i={};case 15:throw s=r.method,u=!n.hideNotification&&w.includes(s),p=c.DISPLAY_HTTP_MESSAGES[i.message]||x[o],u&&p&&console.error(p),T(l=new k(a,i)),l;case 22:case"end":return e.stop()}}),e,null,[[6,12]])}))),function(e,t,r){return E.apply(this,arguments)});function q(){return q=f.default(g.default.mark((function e(t,r){var n,a,o,i,u,c=arguments;return g.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=c.length>2&&void 0!==c[2]?c[2]:{},a=n.apiUrl,o=n.withHeaders,i=void 0!==o&&o,e.next=4,U(t,{method:"POST",headers:O,body:JSON.stringify(r)},{apiUrl:a,appKey:s.getAppKeyFromXProps()||s.getAppKeyFromStackTrace()});case 4:if(u=e.sent,!i){e.next=7;break}return e.abrupt("return",u);case 7:return e.abrupt("return",u&&u.json());case 8:case"end":return e.stop()}}),e)}))),q.apply(this,arguments)}function D(e){return C.apply(this,arguments)}function C(){return C=f.default(g.default.mark((function e(t){var r,n,a,o,i,u,c,p=arguments;return g.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=p.length>1&&void 0!==p[1]?p[1]:{},n=p.length>2&&void 0!==p[2]?p[2]:{},a=n.apiUrl,o=n.appKey,i=n.signal,u=b.stringify(r,{arrayFormat:"bracket"}),e.next=6,U("".concat(t).concat(u?"?":"").concat(u),{method:"GET",signal:i},{apiUrl:a,appKey:o||s.getAppKeyFromXProps()||s.getAppKeyFromStackTrace()});case 6:if(c=e.sent,e.t0=c,!e.t0){e.next=12;break}return e.next=11,c.json();case 11:e.t0=e.sent;case 12:return e.t1=e.t0,e.t2=c&&c.headers,e.abrupt("return",{data:e.t1,headers:e.t2});case 15:case"end":return e.stop()}}),e)}))),C.apply(this,arguments)}function H(){return H=f.default(g.default.mark((function e(t){var r,n,a,o=arguments;return g.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=o.length>1&&void 0!==o[1]?o[1]:{},n=o.length>2&&void 0!==o[2]?o[2]:{},e.next=4,D(t,r,P(P({},n),{},{appKey:n.appKey||s.getAppKeyFromXProps()||s.getAppKeyFromStackTrace()}));case 4:return a=e.sent,e.abrupt("return",a.data);case 6:case"end":return e.stop()}}),e)}))),H.apply(this,arguments)}function _(){return _=f.default(g.default.mark((function e(t,r){var n,a,o,i,u,c,p=arguments;return g.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=p.length>2&&void 0!==p[2]?p[2]:{},a=p.length>3&&void 0!==p[3]?p[3]:{},o=a.apiUrl,i=a.signal,u=b.stringify(n),e.next=6,U("".concat(t).concat(u?"?":"").concat(u),{method:"PUT",headers:O,body:JSON.stringify(r)},{apiUrl:o,appKey:s.getAppKeyFromXProps()||s.getAppKeyFromStackTrace(),signal:i});case 6:return c=e.sent,e.abrupt("return",c&&c.json());case 8:case"end":return e.stop()}}),e)}))),_.apply(this,arguments)}function L(){return L=f.default(g.default.mark((function e(t,r){var n,a,o,i,u,c,p=arguments;return g.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=p.length>2&&void 0!==p[2]?p[2]:{},a=p.length>3&&void 0!==p[3]?p[3]:{},o=a.apiUrl,i=a.signal,u=b.stringify(n),e.next=6,U("".concat(t).concat(u?"?":"").concat(u),{method:"PATCH",headers:O,body:JSON.stringify(r)},{apiUrl:o,appKey:s.getAppKeyFromXProps()||s.getAppKeyFromStackTrace(),signal:i});case 6:return c=e.sent,e.abrupt("return",c&&c.json());case 8:case"end":return e.stop()}}),e)}))),L.apply(this,arguments)}function M(){return M=f.default(g.default.mark((function e(t){var r,n,a,o,i,u,c=arguments;return g.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=c.length>1&&void 0!==c[1]?c[1]:{},n=c.length>2&&void 0!==c[2]?c[2]:{},a=n.apiUrl,o=n.signal,i=b.stringify(r),e.next=6,U(i?"".concat(t,"?").concat(i):t,{method:"DELETE",headers:O},{apiUrl:a,appKey:s.getAppKeyFromXProps()||s.getAppKeyFromStackTrace(),signal:o});case 6:return u=e.sent,e.abrupt("return",u&&u.json());case 8:case"end":return e.stop()}}),e)}))),M.apply(this,arguments)}function N(){return N=f.default(g.default.mark((function e(t,r){var n,a,o,i,u,c,p,l,f=arguments;return g.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=f.length>2&&void 0!==f[2]?f[2]:{},a=f.length>3&&void 0!==f[3]?f[3]:{},o=b.stringify(n),i=a.method,u=void 0===i?"POST":i,c=a.signal,p=new FormData,Object.entries(r).forEach((function(e){var t=d.default(e,2),r=t[0],n=t[1];Array.isArray(n)?n.forEach((function(e){p.append(r,e)})):p.append(r,n)})),e.next=8,U(o?"".concat(t,"?").concat(o):t,{method:u,headers:{Accept:"application/json"},body:p},{appKey:s.getAppKeyFromXProps()||s.getAppKeyFromStackTrace(),signal:c});case 8:return l=e.sent,e.abrupt("return",l&&l.json());case 10:case"end":return e.stop()}}),e)}))),N.apply(this,arguments)}exports.APIException=k,exports.baseUrl=A,exports.del=function(e){return M.apply(this,arguments)},exports.get=function(e){return H.apply(this,arguments)},exports.getWithHeaders=D,exports.handleAuthenticationProblem=T,exports.patch=function(e,t){return L.apply(this,arguments)},exports.post=function(e,t){return q.apply(this,arguments)},exports.put=function(e,t){return _.apply(this,arguments)},exports.sendFormData=function(e,t){return N.apply(this,arguments)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),t=require("@babel/runtime/helpers/objectWithoutProperties"),r=require("@babel/runtime/helpers/asyncToGenerator"),n=require("@babel/runtime/helpers/defineProperty"),a=require("@babel/runtime/helpers/classCallCheck"),i=require("@babel/runtime/helpers/createClass"),s=require("@babel/runtime/regenerator"),o=require("query-string"),u=require("../utils.js"),c=require("../constants.js"),l=require("./httpMessages.js"),p=require("./rateLimiter.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function f(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var h=d(e),v=d(t),y=d(r),g=d(n),b=d(a),m=d(i),x=d(s),P=f(o),j=["appKey"],w=["appKey"];function A(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?A(Object(r),!0).forEach((function(t){g.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):A(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var k={400:"Request Failed",403:"No Permission",404:"Not Found"},T=["POST","PUT","PATCH","DELETE"],K=function(){function e(t,r){b.default(this,e),this.status=t.status,this.statusText=t.statusText,this.message=r.message||"No Message",this.errorBody=r}return m.default(e,[{key:"isAuthenticationProblem",value:function(){return 401===this.status}},{key:"isTermsProblem",value:function(){return 401===this.status&&"Please accept the latest terms of service"===this.message}},{key:"isLoginProblem",value:function(){var e,t;return 401===this.status&&(null===(e=this.errorBody)||void 0===e||null===(t=e.errors)||void 0===t?void 0:t.login)}},{key:"isLockedAccountProblem",value:function(){var e,t,r;return 401===this.status&&(null===(e=this.errorBody)||void 0===e||null===(t=e.errors)||void 0===t||null===(r=t.login)||void 0===r?void 0:r.includes("Account has been locked"))}},{key:"isInvalidVerificationCode",value:function(){var e,t,r;return 401===this.status&&(null===(e=this.errorBody)||void 0===e||null===(t=e.errors)||void 0===t||null===(r=t.login)||void 0===r?void 0:r.includes("Invalid verification code"))}},{key:"isMissingVerificationCode",value:function(){var e,t,r;return 401===this.status&&(null===(e=this.errorBody)||void 0===e||null===(t=e.errors)||void 0===t||null===(r=t.identity)||void 0===r?void 0:r.includes("Missing verification code"))}}]),e}(),q=c.CORVA_API_URLS.API,E=u.getAuthorizationHeaders(),I=O({"Content-Type":"application/json",Accept:"application/json"},E);function U(e){var t;null===(t=e.isAuthenticationProblem)||void 0===t||!t.call(e)||e.isTermsProblem()||e.isLoginProblem()||(console.error("Problem with user"),"/login"!==window.location.pathname&&(window.location.href="/login"))}var S=/^\/v1\/assets.*/;function D(){return D=y.default(x.default.mark((function e(t){var r,n,a,i,s,o,c=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=c.length>1&&void 0!==c[1]?c[1]:{},n=c.length>2&&void 0!==c[2]?c[2]:{},a=n.apiUrl,i=void 0===a?q:a,s=n.appKey,o=n.appInstanceId,!s||!o){e.next=6;break}return e.next=6,p.apiRequestsRateLimiter.acquire(s,o);case 6:return S.test(t)&&(r.cache="reload"),r.credentials="include",e.abrupt("return",fetch("".concat(i).concat(t),u.attachHTTPHeaders(O({config:r,appKey:s},E))));case 9:case"end":return e.stop()}}),e)}))),D.apply(this,arguments)}var C,L,H=(C=function(e){return D.apply(this,arguments)},L=y.default(x.default.mark((function e(t,r,n){var a,i,s,o,u,c,p;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,C(t,r,n);case 2:if(a=e.sent,i=a.status,!a.ok){e.next=6;break}return e.abrupt("return",204===i?null:a);case 6:return e.prev=6,e.next=9,a.json();case 9:s=e.sent,e.next=15;break;case 12:e.prev=12,e.t0=e.catch(6),s={};case 15:throw o=r.method,u=!n.hideNotification&&T.includes(o),c=l.DISPLAY_HTTP_MESSAGES[s.message]||k[i],u&&c&&console.error(c),U(p=new K(a,s)),p;case 22:case"end":return e.stop()}}),e,null,[[6,12]])}))),function(e,t,r){return L.apply(this,arguments)});function _(){return _=y.default(x.default.mark((function e(t,r){var n,a,i,s,o,c=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=c.length>2&&void 0!==c[2]?c[2]:{},a=n.apiUrl,i=n.withHeaders,s=void 0!==i&&i,e.next=4,H(t,{method:"POST",headers:I,body:JSON.stringify(r)},O({apiUrl:a},u.getAppKeyAndId()));case 4:if(o=e.sent,!s){e.next=7;break}return e.abrupt("return",o);case 7:return e.abrupt("return",o&&o.json());case 8:case"end":return e.stop()}}),e)}))),_.apply(this,arguments)}function M(e){return N.apply(this,arguments)}function N(){return N=y.default(x.default.mark((function e(t){var r,n,a,i,s,o,c,l,p,d=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=d.length>1&&void 0!==d[1]?d[1]:{},n=d.length>2&&void 0!==d[2]?d[2]:{},a=n.apiUrl,i=n.signal,s=P.stringify(r,{arrayFormat:"bracket"}),o=u.getAppKeyAndId()||{},c=o.appKey,l=v.default(o,j),e.next=7,H("".concat(t).concat(s?"?":"").concat(s),{method:"GET",signal:i},O({apiUrl:a,appKey:n.appKey||c},l));case 7:if(p=e.sent,e.t0=p,!e.t0){e.next=13;break}return e.next=12,p.json();case 12:e.t0=e.sent;case 13:return e.t1=e.t0,e.t2=p&&p.headers,e.abrupt("return",{data:e.t1,headers:e.t2});case 16:case"end":return e.stop()}}),e)}))),N.apply(this,arguments)}function B(){return B=y.default(x.default.mark((function e(t){var r,n,a,i,s,o,c=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=c.length>1&&void 0!==c[1]?c[1]:{},n=c.length>2&&void 0!==c[2]?c[2]:{},a=u.getAppKeyAndId()||{},i=a.appKey,s=v.default(a,w),e.next=5,M(t,r,O(O({},n),{},{appKey:n.appKey||i},s));case 5:return o=e.sent,e.abrupt("return",o.data);case 7:case"end":return e.stop()}}),e)}))),B.apply(this,arguments)}function F(){return F=y.default(x.default.mark((function e(t,r){var n,a,i,s,o,c,l=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=l.length>2&&void 0!==l[2]?l[2]:{},a=l.length>3&&void 0!==l[3]?l[3]:{},i=a.apiUrl,s=a.signal,o=P.stringify(n),e.next=6,H("".concat(t).concat(o?"?":"").concat(o),{method:"PUT",headers:I,body:JSON.stringify(r)},O(O({apiUrl:i},u.getAppKeyAndId()),{},{signal:s}));case 6:return c=e.sent,e.abrupt("return",c&&c.json());case 8:case"end":return e.stop()}}),e)}))),F.apply(this,arguments)}function R(){return R=y.default(x.default.mark((function e(t,r){var n,a,i,s,o,c,l=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=l.length>2&&void 0!==l[2]?l[2]:{},a=l.length>3&&void 0!==l[3]?l[3]:{},i=a.apiUrl,s=a.signal,o=P.stringify(n),e.next=6,H("".concat(t).concat(o?"?":"").concat(o),{method:"PATCH",headers:I,body:JSON.stringify(r)},O(O({apiUrl:i},u.getAppKeyAndId()),{},{signal:s}));case 6:return c=e.sent,e.abrupt("return",c&&c.json());case 8:case"end":return e.stop()}}),e)}))),R.apply(this,arguments)}function G(){return G=y.default(x.default.mark((function e(t){var r,n,a,i,s,o,c=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=c.length>1&&void 0!==c[1]?c[1]:{},n=c.length>2&&void 0!==c[2]?c[2]:{},a=n.apiUrl,i=n.signal,s=P.stringify(r),e.next=6,H(s?"".concat(t,"?").concat(s):t,{method:"DELETE",headers:I},O(O({apiUrl:a},u.getAppKeyAndId()),{},{signal:i}));case 6:return o=e.sent,e.abrupt("return",o&&o.json());case 8:case"end":return e.stop()}}),e)}))),G.apply(this,arguments)}function J(){return J=y.default(x.default.mark((function e(t,r){var n,a,i,s,o,c,l,p,d=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=d.length>2&&void 0!==d[2]?d[2]:{},a=d.length>3&&void 0!==d[3]?d[3]:{},i=P.stringify(n),s=a.method,o=void 0===s?"POST":s,c=a.signal,l=new FormData,Object.entries(r).forEach((function(e){var t=h.default(e,2),r=t[0],n=t[1];Array.isArray(n)?n.forEach((function(e){l.append(r,e)})):l.append(r,n)})),e.next=8,H(i?"".concat(t,"?").concat(i):t,{method:o,headers:{Accept:"application/json"},body:l},O(O({},u.getAppKeyAndId()),{},{signal:c}));case 8:return p=e.sent,e.abrupt("return",p&&p.json());case 10:case"end":return e.stop()}}),e)}))),J.apply(this,arguments)}exports.APIException=K,exports.baseUrl=q,exports.del=function(e){return G.apply(this,arguments)},exports.get=function(e){return B.apply(this,arguments)},exports.getWithHeaders=M,exports.handleAuthenticationProblem=U,exports.patch=function(e,t){return R.apply(this,arguments)},exports.post=function(e,t){return _.apply(this,arguments)},exports.put=function(e,t){return F.apply(this,arguments)},exports.sendFormData=function(e,t){return J.apply(this,arguments)};
2
2
  //# sourceMappingURL=apiCore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiCore.js","sources":["../../../../src/clients/api/apiCore.js"],"sourcesContent":["import * as queryString from 'query-string';\n\nimport {\n getAppKeyFromStackTrace,\n attachHTTPHeaders,\n getAuthorizationHeaders,\n getAppKeyFromXProps,\n} from '../utils';\nimport { CORVA_API_URLS } from '../constants';\n\nimport { DISPLAY_HTTP_MESSAGES } from './httpMessages';\n\nconst HTTP_ERROR_MESSAGES = {\n 400: 'Request Failed',\n 403: 'No Permission',\n 404: 'Not Found',\n};\n\nconst TOS_ERROR_MESSAGE = 'Please accept the latest terms of service';\nconst LOCKED_ERROR_MESSAGE = 'Account has been locked';\nconst INVALID_VERIFICATION_CODE_MESSAGE = 'Invalid verification code';\nconst MISSING_VERIFICATION_CODE_MESSAGE = 'Missing verification code';\n\nconst HTTP_METHODS_TO_SHOW_ERROR_NOTIFICATIONS = [\n // NOTE: Do not show error notifications for GET method. Because users may request a deleted item\n 'POST',\n 'PUT',\n 'PATCH',\n 'DELETE',\n];\n\nexport class APIException {\n constructor(response, json) {\n this.status = response.status;\n this.statusText = response.statusText;\n this.message = json.message || 'No Message';\n this.errorBody = json;\n }\n\n isAuthenticationProblem() {\n return this.status === 401;\n }\n\n isTermsProblem() {\n // FIXME: this.message === TOS_ERROR_MESSAGE is a hack. Back-end team should come\n // with another solution.\n return this.status === 401 && this.message === TOS_ERROR_MESSAGE;\n }\n\n isLoginProblem() {\n return this.status === 401 && this.errorBody?.errors?.login;\n }\n\n isLockedAccountProblem() {\n return this.status === 401 && this.errorBody?.errors?.login?.includes(LOCKED_ERROR_MESSAGE);\n }\n\n isInvalidVerificationCode() {\n return (\n this.status === 401 &&\n this.errorBody?.errors?.login?.includes(INVALID_VERIFICATION_CODE_MESSAGE)\n );\n }\n\n isMissingVerificationCode() {\n return (\n this.status === 401 &&\n this.errorBody?.errors?.identity?.includes(MISSING_VERIFICATION_CODE_MESSAGE)\n );\n }\n}\n\nexport const baseUrl = CORVA_API_URLS.API;\n\nconst AUTH_HEADERS = getAuthorizationHeaders();\nconst JSON_HEADERS = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n ...AUTH_HEADERS,\n};\n\nexport function handleAuthenticationProblem(e) {\n if (e.isAuthenticationProblem?.() && !e.isTermsProblem() && !e.isLoginProblem()) {\n console.error('Problem with user');\n // NOTE: Redirect to login page\n if (window.location.pathname !== '/login') window.location.href = '/login';\n }\n}\n\nfunction errorHandlerDecorator(requestCoreFunc) {\n return async function errorHandler(path, config, overrides) {\n const response = await requestCoreFunc(path, config, overrides);\n\n const { status } = response;\n\n if (response.ok) {\n return status === 204 // NOTE: No content\n ? null\n : response;\n }\n\n // NOTE: Handle Error response logic\n let json;\n try {\n json = await response.json();\n } catch (e) {\n json = {};\n }\n const requestMethod = config.method;\n const isMethodToShowNotification =\n !overrides.hideNotification &&\n HTTP_METHODS_TO_SHOW_ERROR_NOTIFICATIONS.includes(requestMethod);\n\n const httpErrorMessage = DISPLAY_HTTP_MESSAGES[json.message] || HTTP_ERROR_MESSAGES[status];\n\n if (isMethodToShowNotification && httpErrorMessage) {\n console.error(httpErrorMessage);\n }\n\n const exception = new APIException(response, json);\n handleAuthenticationProblem(exception);\n\n throw exception;\n };\n}\n\nconst V1_ASSETS_REGEXP = /^\\/v1\\/assets.*/;\n\nasync function requestCore(path, config = {}, overrides = {}) {\n const { apiUrl = baseUrl, appKey } = overrides;\n // temporary enable cache for the heaviest request\n if (V1_ASSETS_REGEXP.test(path)) {\n config.cache = 'reload'; // eslint-disable-line no-param-reassign\n }\n\n config.credentials = 'include'; // eslint-disable-line no-param-reassign\n\n return fetch(`${apiUrl}${path}`, attachHTTPHeaders({ config, appKey, ...AUTH_HEADERS }));\n}\n\nconst request = errorHandlerDecorator(requestCore);\n\n/**\n * The post method is most-often utilized to **create** new resources.\n * @async\n * @param {string} path - path to resource.\n * @param {Object=} entity - API entity to create\n * @returns {Promise<*>}\n */\nexport async function post(path, entity, requestOptions = {}) {\n const { apiUrl, withHeaders = false } = requestOptions;\n const response = await request(\n path,\n {\n method: 'POST',\n headers: JSON_HEADERS,\n body: JSON.stringify(entity),\n },\n { apiUrl, appKey: getAppKeyFromXProps() || getAppKeyFromStackTrace() }\n );\n\n if (withHeaders) return response;\n\n return response && response.json();\n}\n\nexport async function getWithHeaders(path, queryParams = {}, requestOptions = {}) {\n const { apiUrl, appKey, signal } = requestOptions;\n const qry = queryString.stringify(queryParams, { arrayFormat: 'bracket' });\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n {\n method: 'GET',\n signal,\n },\n { apiUrl, appKey: appKey || getAppKeyFromXProps() || getAppKeyFromStackTrace() }\n );\n\n return {\n data: response && (await response.json()),\n headers: response && response.headers,\n };\n}\n\n/**\n * The get method is used to **read** (or retrieve) a representation of a resource\n * @async\n * @param {string} path - path to resource.\n * @param {Object=} queryParams - Object with query params such as per_page, sort, asset_id, etc.\n * @param {Object=} requestOptions - Additional options for request. For example: apiUrl, signal etc.\n * @returns {Promise<*>}\n */\nexport async function get(path, queryParams = {}, requestOptions = {}) {\n const dataAndHeaders = await getWithHeaders(path, queryParams, {\n ...requestOptions,\n appKey: requestOptions.appKey || getAppKeyFromXProps() || getAppKeyFromStackTrace(),\n });\n return dataAndHeaders.data;\n}\n\nexport async function getFile(path, queryParams = {}, requestOptions = {}) {\n const qry = queryString.stringify(queryParams);\n const { signal } = requestOptions;\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n { method: 'GET' },\n { appKey: getAppKeyFromXProps() || getAppKeyFromStackTrace(), signal }\n );\n\n return response && response.blob();\n}\n\nexport async function put(path, content, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const qry = queryString.stringify(queryParams);\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n {\n method: 'PUT',\n headers: JSON_HEADERS,\n body: JSON.stringify(content),\n },\n { apiUrl, appKey: getAppKeyFromXProps() || getAppKeyFromStackTrace(), signal }\n );\n\n return response && response.json();\n}\n\nexport async function patch(path, content, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const qry = queryString.stringify(queryParams);\n\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n {\n method: 'PATCH',\n headers: JSON_HEADERS,\n body: JSON.stringify(content),\n },\n {\n apiUrl,\n appKey: getAppKeyFromXProps() || getAppKeyFromStackTrace(),\n signal,\n }\n );\n\n return response && response.json();\n}\n\nexport async function del(path, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const query = queryString.stringify(queryParams);\n const response = await request(\n query ? `${path}?${query}` : path,\n {\n method: 'DELETE',\n headers: JSON_HEADERS,\n },\n {\n apiUrl,\n appKey: getAppKeyFromXProps() || getAppKeyFromStackTrace(),\n signal,\n }\n );\n\n return response && response.json();\n}\n\nexport async function sendFormData(path, data, queryParams = {}, requestOptions = {}) {\n const query = queryString.stringify(queryParams);\n const { method = 'POST', signal } = requestOptions;\n const formData = new FormData();\n\n Object.entries(data).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach(arrayValueEntity => {\n formData.append(key, arrayValueEntity);\n });\n } else {\n formData.append(key, value);\n }\n });\n\n const response = await request(\n query ? `${path}?${query}` : path,\n {\n method,\n headers: {\n Accept: 'application/json',\n },\n body: formData,\n },\n { appKey: getAppKeyFromXProps() || getAppKeyFromStackTrace(), signal }\n );\n\n return response && response.json();\n}\n"],"names":["HTTP_ERROR_MESSAGES","HTTP_METHODS_TO_SHOW_ERROR_NOTIFICATIONS","APIException","response","json","_classCallCheck","this","status","statusText","message","errorBody","_createClass","key","value","_this$errorBody","_this$errorBody$error","errors","login","_this$errorBody2","_this$errorBody2$erro","_this$errorBody2$erro2","includes","_this$errorBody3","_this$errorBody3$erro","_this$errorBody3$erro2","_this$errorBody4","_this$errorBody4$erro","_this$errorBody4$erro2","identity","baseUrl","CORVA_API_URLS","API","AUTH_HEADERS","getAuthorizationHeaders","JSON_HEADERS","_objectSpread","Accept","handleAuthenticationProblem","e","_e$isAuthenticationPr","isAuthenticationProblem","isTermsProblem","isLoginProblem","console","error","window","location","pathname","href","V1_ASSETS_REGEXP","_requestCore","_asyncToGenerator","_regeneratorRuntime","mark","path","config","overrides","_overrides$apiUrl","apiUrl","appKey","_args2","arguments","wrap","_context2","prev","next","length","undefined","test","cache","credentials","abrupt","fetch","attachHTTPHeaders","stop","_callee2","apply","requestCoreFunc","_errorHandler","request","_x4","requestMethod","isMethodToShowNotification","httpErrorMessage","exception","_context","sent","ok","t0","method","hideNotification","DISPLAY_HTTP_MESSAGES","_callee","_x","_x2","_x3","_post","_callee3","entity","requestOptions","_requestOptions$withH","withHeaders","_args3","_context3","headers","body","JSON","stringify","getAppKeyFromXProps","getAppKeyFromStackTrace","getWithHeaders","_x7","_getWithHeaders","queryParams","signal","qry","_args4","_context4","queryString","arrayFormat","t1","t2","data","_callee4","_get","dataAndHeaders","_args5","_context5","_callee5","_put","_callee7","content","_args7","_context7","_patch","_callee8","_args8","_context8","_del","query","_args9","_context9","concat","_callee9","_sendFormData","_callee10","_requestOptions$metho","formData","_args10","_context10","FormData","Object","entries","forEach","_ref","_ref2","_slicedToArray","Array","isArray","arrayValueEntity","append","_x14","_x8","_x12","_x13","_x5","_x6","_x10","_x11","_x15","_x16"],"mappings":"+7CAYA,IAAMA,EAAsB,CAC1B,IAAK,iBACL,IAAK,gBACL,IAAK,aAQDC,EAA2C,CAE/C,OACA,MACA,QACA,UAGWC,EAAY,WACvB,SAAYC,EAAAA,EAAUC,GAAMC,UAAAC,KAAAJ,GAC1BI,KAAKC,OAASJ,EAASI,OACvBD,KAAKE,WAAaL,EAASK,WAC3BF,KAAKG,QAAUL,EAAKK,SAAW,aAC/BH,KAAKI,UAAYN,CACnB,CAgCC,OAhCAO,EAAA,QAAAT,EAAA,CAAA,CAAAU,IAAA,0BAAAC,MAED,WACE,OAAuB,MAAhBP,KAAKC,MACd,GAAC,CAAAK,IAAA,iBAAAC,MAED,WAGE,OAAuB,MAAhBP,KAAKC,QA5BU,8CA4BQD,KAAKG,OACrC,GAAC,CAAAG,IAAA,iBAAAC,MAED,WAAiB,IAAAC,EAAAC,EACf,OAAuB,MAAhBT,KAAKC,SAAkB,QAAAO,EAAAR,KAAKI,iBAAL,IAAAI,GAAsB,QAAtBC,EAAAD,EAAgBE,cAAM,IAAAD,OAAtB,EAAAA,EAAwBE,MACxD,GAAC,CAAAL,IAAA,yBAAAC,MAED,WAAyB,IAAAK,EAAAC,EAAAC,EACvB,OAAuB,MAAhBd,KAAKC,SAAgC,QAAdW,EAAAZ,KAAKI,iBAAS,IAAAQ,GAAQ,QAARC,EAAdD,EAAgBF,cAAM,IAAAG,GAAO,QAAPC,EAAtBD,EAAwBF,aAAK,IAAAG,OAAf,EAAdA,EAA+BC,SAnCpC,2BAoC3B,GAAC,CAAAT,IAAA,4BAAAC,MAED,WAA4B,IAAAS,EAAAC,EAAAC,EAC1B,OACkB,MAAhBlB,KAAKC,SACS,QAAde,EAAAhB,KAAKI,iBAAS,IAAAY,GAAQ,QAARC,EAAdD,EAAgBN,cAAM,IAAAO,GAAO,QAAPC,EAAtBD,EAAwBN,aAAK,IAAAO,OAAf,EAAdA,EAA+BH,SAxCK,6BA0CxC,GAAC,CAAAT,IAAA,4BAAAC,MAED,WAA4B,IAAAY,EAAAC,EAAAC,EAC1B,OACkB,MAAhBrB,KAAKC,SACS,QAAdkB,EAAAnB,KAAKI,iBAAS,IAAAe,GAAQ,QAARC,EAAdD,EAAgBT,cAAM,IAAAU,GAAU,QAAVC,EAAtBD,EAAwBE,gBAAQ,IAAAD,OAAlB,EAAdA,EAAkCN,SA9CE,6BAgDxC,KAACnB,CAAA,CAtCsB,GAyCZ2B,EAAUC,EAAcA,eAACC,IAEhCC,EAAeC,EAAuBA,0BACtCC,EAAYC,EAAA,CAChB,eAAgB,mBAChBC,OAAQ,oBACLJ,GAGE,SAASK,EAA4BC,GAAG,IAAAC,UACzCA,EAAAD,EAAEE,uCAAFD,EAAAD,KAAAA,IAAkCA,EAAEG,kBAAqBH,EAAEI,mBAC7DC,QAAQC,MAAM,qBAEmB,WAA7BC,OAAOC,SAASC,WAAuBF,OAAOC,SAASE,KAAO,UAEtE,CAuCA,IAAMC,EAAmB,kBAEC,SAAAC,IAUzB,OAVyBA,EAAAC,EAAA,QAAAC,EAAA,QAAAC,MAA1B,WAA2BC,GAAI,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,UAAA,OAAAT,UAAAU,MAAA,SAAAC,GAAA,OAAA,OAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAOG,OAPDV,EAAMK,EAAAM,OAAA,QAAAC,IAAAP,EAAA,GAAAA,EAAA,GAAG,CAAA,EAAIJ,EAASI,EAAAM,OAAA,QAAAC,IAAAP,EAAA,GAAAA,EAAA,GAAG,CAAA,EAAEH,EACrBD,EAA7BE,OAAAA,OAAM,IAAAD,EAAG5B,EAAO4B,EAAEE,EAAWH,EAAXG,OAEtBV,EAAiBmB,KAAKd,KACxBC,EAAOc,MAAQ,UAGjBd,EAAOe,YAAc,UAAWP,EAAAQ,OAAA,SAEzBC,MAASd,GAAAA,OAAAA,GAASJ,OAAAA,GAAQmB,EAAAA,kBAAiBtC,EAAA,CAAGoB,OAAAA,EAAQI,OAAAA,GAAW3B,MAAgB,KAAA,EAAA,IAAA,MAAA,OAAA+B,EAAAW,OAAA,GAAAC,EACzF,KAAAzB,EAAA0B,MAAAtE,KAAAuD,UAAA,CAED,IAnD+BgB,EAC7BC,EAkDIC,GAnDyBF,EAqCY,SAEjBG,GAAA,OAAA9B,EAAA0B,MAAAtE,KAAAuD,UAAA,EAtCxBiB,EAAA3B,EAAA,QAAAC,UAAAC,MAAO,SAA4BC,EAAAA,EAAMC,EAAQC,GAAS,IAAArD,EAAAI,EAAAH,EAAA6E,EAAAC,EAAAC,EAAAC,EAAA,OAAAhC,UAAAU,MAAA,SAAAuB,GAAA,OAAA,OAAAA,EAAArB,KAAAqB,EAAApB,MAAA,KAAA,EAAA,OAAAoB,EAAApB,KAAA,EACjCY,EAAgBvB,EAAMC,EAAQC,GAAU,KAAA,EAEjD,GAFRrD,EAAQkF,EAAAC,KAEN/E,EAAWJ,EAAXI,QAEJJ,EAASoF,GAAE,CAAAF,EAAApB,KAAA,EAAA,KAAA,CAAA,OACN1D,EAAAA,OAAAA,SAAW,MAAXA,EACH,KACAJ,GAAQ,KAAA,EAAA,OAAAkF,EAAArB,KAAA,EAAAqB,EAAApB,KAAA,EAMC9D,EAASC,OAAM,KAAA,EAA5BA,EAAIiF,EAAAC,KAAAD,EAAApB,KAAA,GAAA,MAAA,KAAA,GAAAoB,EAAArB,KAAA,GAAAqB,EAAAG,GAAAH,EAAA,MAAA,GAEJjF,EAAO,CAAA,EAAG,KAAA,GAc2B,MAZjC6E,EAAgB1B,EAAOkC,OACvBP,GACH1B,EAAUkC,kBACXzF,EAAyCoB,SAAS4D,GAE9CE,EAAmBQ,EAAqBA,sBAACvF,EAAKK,UAAYT,EAAoBO,GAEhF2E,GAA8BC,GAChCxC,QAAQC,MAAMuC,GAIhB9C,EADM+C,EAAY,IAAIlF,EAAaC,EAAUC,IAGvCgF,EAAS,KAAA,GAAA,IAAA,MAAA,OAAAC,EAAAX,OAAA,GAAAkB,EAAA,KAAA,CAAA,CAAA,EAAA,KAChB,KAAA,SAjCiCC,EAAAC,EAAAC,GAAA,OAAAjB,EAAAF,MAAAtE,KAAAuD,UAAA,GA0EnC,SAAAmC,IAAA,OAAAA,EAfM7C,EAAA,QAAAC,UAAAC,MAAA,SAAA4C,EAAoB3C,EAAM4C,GAAM,IAAAC,EAAAzC,EAAA0C,EAAAC,EAAAlG,EAAAmG,EAAAzC,UAAA,OAAAT,UAAAU,MAAA,SAAAyC,GAAA,OAAA,OAAAA,EAAAvC,KAAAuC,EAAAtC,MAAA,KAAA,EACF,OADIkC,EAAcG,EAAApC,OAAA,QAAAC,IAAAmC,EAAA,GAAAA,EAAA,GAAG,CAAA,EAChD5C,EAAgCyC,EAAhCzC,OAAM0C,EAA0BD,EAAxBE,YAAAA,OAAW,IAAAD,GAAQA,EAAAG,EAAAtC,KAAA,EACZc,EACrBzB,EACA,CACEmC,OAAQ,OACRe,QAAStE,EACTuE,KAAMC,KAAKC,UAAUT,IAEvB,CAAExC,OAAAA,EAAQC,OAAQiD,EAAAA,uBAAyBC,8BAC5C,KAAA,EARa,GAAR1G,EAAQoG,EAAAjB,MAUVe,EAAW,CAAAE,EAAAtC,KAAA,EAAA,KAAA,CAAA,OAAAsC,EAAAhC,OAAA,SAASpE,GAAQ,KAAA,EAAA,OAAAoG,EAAAhC,OAAA,SAEzBpE,GAAYA,EAASC,QAAM,KAAA,EAAA,IAAA,MAAA,OAAAmG,EAAA7B,OAAA,GAAAuB,EACnC,KAAAD,EAAApB,MAAAtE,KAAAuD,UAAA,CAED,SAAsBiD,EAAcC,GAAA,OAAAC,EAAApC,MAAAtE,KAAAuD,UAAA,CAkBpC,SAAAmD,IAFC,OAEDA,EAAA7D,EAAA,QAAAC,EAAA,QAAAC,MAlBO,WAA8BC,GAAI,IAAA2D,EAAAd,EAAAzC,EAAAC,EAAAuD,EAAAC,EAAAhH,EAAAiH,EAAAvD,UAAA,OAAAT,UAAAU,MAAA,SAAAuD,GAAA,OAAA,OAAAA,EAAArD,KAAAqD,EAAApD,MAAA,KAAA,EAEmC,OAFjCgD,EAAWG,EAAAlD,OAAA,QAAAC,IAAAiD,EAAA,GAAAA,EAAA,GAAG,CAAA,EAAIjB,EAAciB,EAAAlD,OAAA,QAAAC,IAAAiD,EAAA,GAAAA,EAAA,GAAG,CAAA,EACpE1D,EAA2ByC,EAA3BzC,OAAQC,EAAmBwC,EAAnBxC,OAAQuD,EAAWf,EAAXe,OAClBC,EAAMG,EAAYX,UAAUM,EAAa,CAAEM,YAAa,YAAYF,EAAApD,KAAA,EACnDc,EAClBzB,GAAAA,OAAAA,GAAO6D,OAAAA,EAAM,IAAM,IAAKA,OAAAA,GAC3B,CACE1B,OAAQ,MACRyB,OAAAA,GAEF,CAAExD,OAAAA,EAAQC,OAAQA,GAAUiD,yBAAyBC,8BACtD,KAAA,EAGe,GAVV1G,EAAQkH,EAAA/B,KAAA+B,EAAA7B,GAUNrF,GAAQkH,EAAA7B,GAAA,CAAA6B,EAAApD,KAAA,GAAA,KAAA,CAAA,OAAAoD,EAAApD,KAAA,GAAW9D,EAASC,OAAM,KAAA,GAAAiH,EAAA7B,GAAA6B,EAAA/B,KAAA,KAAA,GACH,OADG+B,EAAAG,GAAAH,EAAA7B,GAAA6B,EAAAI,GAC/BtH,GAAYA,EAASqG,QAAOa,EAAA9C,OAAA,SAAA,CADrCmD,KAAIL,EAAAG,GACJhB,QAAOa,EAAAI,KAAA,KAAA,GAAA,IAAA,MAAA,OAAAJ,EAAA3C,OAAA,GAAAiD,EAEV,KAAAX,EAAApC,MAAAtE,KAAAuD,UAAA,CAgBA,SAAA+D,IAAA,OAAAA,EAAAzE,EAAA,QAAAC,EAAA,QAAAC,MANM,WAAmBC,GAAI,IAAA2D,EAAAd,EAAA0B,EAAAC,EAAAjE,UAAA,OAAAT,UAAAU,MAAA,SAAAiE,GAAA,OAAA,OAAAA,EAAA/D,KAAA+D,EAAA9D,MAAA,KAAA,EAAuC,OAArCgD,EAAWa,EAAA5D,OAAA,QAAAC,IAAA2D,EAAA,GAAAA,EAAA,GAAG,CAAA,EAAI3B,EAAc2B,EAAA5D,OAAA,QAAAC,IAAA2D,EAAA,GAAAA,EAAA,GAAG,CAAA,EAAEC,EAAA9D,KAAA,EACtC6C,EAAexD,EAAM2D,SAC7Cd,GAAc,GAAA,CACjBxC,OAAQwC,EAAexC,QAAUiD,EAAmBA,uBAAMC,EAAAA,6BAC1D,KAAA,EAHkB,OAAdgB,EAAcE,EAAAzC,KAIbuC,EAAAA,OAAAA,SAAAA,EAAeH,MAAI,KAAA,EAAA,IAAA,MAAA,OAAAK,EAAArD,OAAA,GAAAsD,EAC3B,KAAAJ,EAAAhD,MAAAtE,KAAAuD,UAAA,CA4BA,SAAAoE,IAAA,OAAAA,EAdM9E,EAAA,QAAAC,UAAAC,MAAA,SAAA6E,EAAmB5E,EAAM6E,GAAO,IAAAlB,EAAAd,EAAAzC,EAAAwD,EAAAC,EAAAhH,EAAAiI,EAAAvE,UAAA,OAAAT,UAAAU,MAAA,SAAAuE,GAAA,OAAA,OAAAA,EAAArE,KAAAqE,EAAApE,MAAA,KAAA,EAES,OAFPgD,EAAWmB,EAAAlE,OAAA,QAAAC,IAAAiE,EAAA,GAAAA,EAAA,GAAG,CAAA,EAAIjC,EAAciC,EAAAlE,OAAA,QAAAC,IAAAiE,EAAA,GAAAA,EAAA,GAAG,CAAA,EAClE1E,EAAmByC,EAAnBzC,OAAQwD,EAAWf,EAAXe,OACVC,EAAMG,EAAYX,UAAUM,GAAYoB,EAAApE,KAAA,EACvBc,EAClBzB,GAAAA,OAAAA,GAAO6D,OAAAA,EAAM,IAAM,IAAKA,OAAAA,GAC3B,CACE1B,OAAQ,MACRe,QAAStE,EACTuE,KAAMC,KAAKC,UAAUwB,IAEvB,CAAEzE,OAAAA,EAAQC,OAAQiD,EAAAA,uBAAyBC,4BAA2BK,OAAAA,IACvE,KAAA,EARa,OAAR/G,EAAQkI,EAAA/C,KAAA+C,EAAA9D,OAAA,SAUPpE,GAAYA,EAASC,QAAM,KAAA,EAAA,IAAA,MAAA,OAAAiI,EAAA3D,OAAA,GAAAwD,EACnC,KAAAD,EAAArD,MAAAtE,KAAAuD,UAAA,CAqBA,SAAAyE,IAAA,OAAAA,EAnBMnF,EAAA,QAAAC,UAAAC,MAAA,SAAAkF,EAAqBjF,EAAM6E,GAAO,IAAAlB,EAAAd,EAAAzC,EAAAwD,EAAAC,EAAAhH,EAAAqI,EAAA3E,UAAA,OAAAT,UAAAU,MAAA,SAAA2E,GAAA,OAAA,OAAAA,EAAAzE,KAAAyE,EAAAxE,MAAA,KAAA,EAEO,OAFLgD,EAAWuB,EAAAtE,OAAA,QAAAC,IAAAqE,EAAA,GAAAA,EAAA,GAAG,CAAA,EAAIrC,EAAcqC,EAAAtE,OAAA,QAAAC,IAAAqE,EAAA,GAAAA,EAAA,GAAG,CAAA,EACpE9E,EAAmByC,EAAnBzC,OAAQwD,EAAWf,EAAXe,OACVC,EAAMG,EAAYX,UAAUM,GAAYwB,EAAAxE,KAAA,EAEvBc,EAClBzB,GAAAA,OAAAA,GAAO6D,OAAAA,EAAM,IAAM,IAAKA,OAAAA,GAC3B,CACE1B,OAAQ,QACRe,QAAStE,EACTuE,KAAMC,KAAKC,UAAUwB,IAEvB,CACEzE,OAAAA,EACAC,OAAQiD,EAAAA,uBAAyBC,4BACjCK,OAAAA,IAEH,KAAA,EAZa,OAAR/G,EAAQsI,EAAAnD,KAAAmD,EAAAlE,OAAA,SAcPpE,GAAYA,EAASC,QAAM,KAAA,EAAA,IAAA,MAAA,OAAAqI,EAAA/D,OAAA,GAAA6D,EACnC,KAAAD,EAAA1D,MAAAtE,KAAAuD,UAAA,CAmBA,SAAA6E,IAAA,OAAAA,EAAAvF,EAAA,QAAAC,EAAA,QAAAC,MAjBM,WAAmBC,GAAI,IAAA2D,EAAAd,EAAAzC,EAAAwD,EAAAyB,EAAAxI,EAAAyI,EAAA/E,UAAA,OAAAT,UAAAU,MAAA,SAAA+E,GAAA,OAAA,OAAAA,EAAA7E,KAAA6E,EAAA5E,MAAA,KAAA,EAEoB,OAFlBgD,EAAW2B,EAAA1E,OAAA,QAAAC,IAAAyE,EAAA,GAAAA,EAAA,GAAG,CAAA,EAAIzC,EAAcyC,EAAA1E,OAAA,QAAAC,IAAAyE,EAAA,GAAAA,EAAA,GAAG,CAAA,EACzDlF,EAAmByC,EAAnBzC,OAAQwD,EAAWf,EAAXe,OACVyB,EAAQrB,EAAYX,UAAUM,GAAY4B,EAAA5E,KAAA,EACzBc,EACrB4D,EAAK,GAAAG,OAAMxF,EAAQqF,KAAAA,OAAAA,GAAUrF,EAC7B,CACEmC,OAAQ,SACRe,QAAStE,GAEX,CACEwB,OAAAA,EACAC,OAAQiD,EAAAA,uBAAyBC,4BACjCK,OAAAA,IAEH,KAAA,EAXa,OAAR/G,EAAQ0I,EAAAvD,KAAAuD,EAAAtE,OAAA,SAaPpE,GAAYA,EAASC,QAAM,KAAA,EAAA,IAAA,MAAA,OAAAyI,EAAAnE,OAAA,GAAAqE,EACnC,KAAAL,EAAA9D,MAAAtE,KAAAuD,UAAA,CA8BA,SAAAmF,IAAA,OAAAA,EA5BM7F,EAAA,QAAAC,UAAAC,MAAA,SAAA4F,EAA4B3F,EAAMoE,GAAI,IAAAT,EAAAd,EAAAwC,EAAAO,EAAAzD,EAAAyB,EAAAiC,EAAAhJ,EAAAiJ,EAAAvF,UAAA,OAAAT,UAAAU,MAAA,SAAAuF,GAAA,OAAA,OAAAA,EAAArF,KAAAqF,EAAApF,MAAA,KAAA,EAaxC,OAb0CgD,EAAWmC,EAAAlF,OAAA,QAAAC,IAAAiF,EAAA,GAAAA,EAAA,GAAG,CAAA,EAAIjD,EAAciD,EAAAlF,OAAA,QAAAC,IAAAiF,EAAA,GAAAA,EAAA,GAAG,CAAA,EAC1ET,EAAQrB,EAAYX,UAAUM,GAAYiC,EACZ/C,EAA5BV,OAAAA,OAAM,IAAAyD,EAAG,OAAMA,EAAEhC,EAAWf,EAAXe,OACnBiC,EAAW,IAAIG,SAErBC,OAAOC,QAAQ9B,GAAM+B,SAAQ,SAAkBC,GAAA,IAAAC,EAAAC,EAAAA,QAAAF,EAAA,GAAhB9I,EAAG+I,EAAA,GAAE9I,EAAK8I,EAAA,GACnCE,MAAMC,QAAQjJ,GAChBA,EAAM4I,SAAQ,SAAAM,GACZZ,EAASa,OAAOpJ,EAAKmJ,EACvB,IAEAZ,EAASa,OAAOpJ,EAAKC,EAEzB,IAAGwI,EAAApF,KAAA,EAEoBc,EACrB4D,EAAK,GAAAG,OAAMxF,EAAQqF,KAAAA,OAAAA,GAAUrF,EAC7B,CACEmC,OAAAA,EACAe,QAAS,CACPpE,OAAQ,oBAEVqE,KAAM0C,GAER,CAAExF,OAAQiD,EAAAA,uBAAyBC,4BAA2BK,OAAAA,IAC/D,KAAA,EAVa,OAAR/G,EAAQkJ,EAAA/D,KAAA+D,EAAA9E,OAAA,SAYPpE,GAAYA,EAASC,QAAM,KAAA,GAAA,IAAA,MAAA,OAAAiJ,EAAA3E,OAAA,GAAAuE,EACnC,KAAAD,EAAApE,MAAAtE,KAAAuD,UAAA,sDA/CD,SAAyBoG,GAAA,OAAAvB,EAAA9D,MAAAtE,KAAAuD,UAAA,cAzDzB,SAAyBqG,GAAA,OAAAtC,EAAAhD,MAAAtE,KAAAuD,UAAA,+EAoCzB,SAA2BsG,EAAAC,GAAA,OAAA9B,EAAA1D,MAAAtE,KAAAuD,UAAA,eA/E3B,SAA0BwG,EAAAC,GAAA,OAAAtE,EAAApB,MAAAtE,KAAAuD,UAAA,cA+D1B,SAAyB0G,EAAAC,GAAA,OAAAvC,EAAArD,MAAAtE,KAAAuD,UAAA,uBAwDzB,SAAkC4G,EAAAC,GAAA,OAAA1B,EAAApE,MAAAtE,KAAAuD,UAAA"}
1
+ {"version":3,"file":"apiCore.js","sources":["../../../../src/clients/api/apiCore.js"],"sourcesContent":["import * as queryString from 'query-string';\n\nimport { attachHTTPHeaders, getAppKeyAndId, getAuthorizationHeaders } from '../utils';\nimport { CORVA_API_URLS } from '../constants';\n\nimport { DISPLAY_HTTP_MESSAGES } from './httpMessages';\n\nimport { apiRequestsRateLimiter } from '~/clients/api/rateLimiter';\n\nconst HTTP_ERROR_MESSAGES = {\n 400: 'Request Failed',\n 403: 'No Permission',\n 404: 'Not Found',\n};\n\nconst TOS_ERROR_MESSAGE = 'Please accept the latest terms of service';\nconst LOCKED_ERROR_MESSAGE = 'Account has been locked';\nconst INVALID_VERIFICATION_CODE_MESSAGE = 'Invalid verification code';\nconst MISSING_VERIFICATION_CODE_MESSAGE = 'Missing verification code';\n\nconst HTTP_METHODS_TO_SHOW_ERROR_NOTIFICATIONS = [\n // NOTE: Do not show error notifications for GET method. Because users may request a deleted item\n 'POST',\n 'PUT',\n 'PATCH',\n 'DELETE',\n];\n\nexport class APIException {\n constructor(response, json) {\n this.status = response.status;\n this.statusText = response.statusText;\n this.message = json.message || 'No Message';\n this.errorBody = json;\n }\n\n isAuthenticationProblem() {\n return this.status === 401;\n }\n\n isTermsProblem() {\n // FIXME: this.message === TOS_ERROR_MESSAGE is a hack. Back-end team should come\n // with another solution.\n return this.status === 401 && this.message === TOS_ERROR_MESSAGE;\n }\n\n isLoginProblem() {\n return this.status === 401 && this.errorBody?.errors?.login;\n }\n\n isLockedAccountProblem() {\n return this.status === 401 && this.errorBody?.errors?.login?.includes(LOCKED_ERROR_MESSAGE);\n }\n\n isInvalidVerificationCode() {\n return (\n this.status === 401 &&\n this.errorBody?.errors?.login?.includes(INVALID_VERIFICATION_CODE_MESSAGE)\n );\n }\n\n isMissingVerificationCode() {\n return (\n this.status === 401 &&\n this.errorBody?.errors?.identity?.includes(MISSING_VERIFICATION_CODE_MESSAGE)\n );\n }\n}\n\nexport const baseUrl = CORVA_API_URLS.API;\n\nconst AUTH_HEADERS = getAuthorizationHeaders();\nconst JSON_HEADERS = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n ...AUTH_HEADERS,\n};\n\nexport function handleAuthenticationProblem(e) {\n if (e.isAuthenticationProblem?.() && !e.isTermsProblem() && !e.isLoginProblem()) {\n console.error('Problem with user');\n // NOTE: Redirect to login page\n if (window.location.pathname !== '/login') window.location.href = '/login';\n }\n}\n\nfunction errorHandlerDecorator(requestCoreFunc) {\n return async function errorHandler(path, config, overrides) {\n const response = await requestCoreFunc(path, config, overrides);\n\n const { status } = response;\n\n if (response.ok) {\n return status === 204 // NOTE: No content\n ? null\n : response;\n }\n\n // NOTE: Handle Error response logic\n let json;\n try {\n json = await response.json();\n } catch (e) {\n json = {};\n }\n const requestMethod = config.method;\n const isMethodToShowNotification =\n !overrides.hideNotification &&\n HTTP_METHODS_TO_SHOW_ERROR_NOTIFICATIONS.includes(requestMethod);\n\n const httpErrorMessage = DISPLAY_HTTP_MESSAGES[json.message] || HTTP_ERROR_MESSAGES[status];\n\n if (isMethodToShowNotification && httpErrorMessage) {\n console.error(httpErrorMessage);\n }\n\n const exception = new APIException(response, json);\n handleAuthenticationProblem(exception);\n\n throw exception;\n };\n}\n\nconst V1_ASSETS_REGEXP = /^\\/v1\\/assets.*/;\n\nasync function requestCore(path, config = {}, overrides = {}) {\n const { apiUrl = baseUrl, appKey, appInstanceId } = overrides;\n\n if (appKey && appInstanceId) {\n await apiRequestsRateLimiter.acquire(appKey, appInstanceId);\n }\n\n // temporary enable cache for the heaviest request\n if (V1_ASSETS_REGEXP.test(path)) {\n config.cache = 'reload'; // eslint-disable-line no-param-reassign\n }\n\n config.credentials = 'include'; // eslint-disable-line no-param-reassign\n\n return fetch(`${apiUrl}${path}`, attachHTTPHeaders({ config, appKey, ...AUTH_HEADERS }));\n}\n\nconst request = errorHandlerDecorator(requestCore);\n\n/**\n * The post method is most-often utilized to **create** new resources.\n * @async\n * @param {string} path - path to resource.\n * @param {Object=} entity - API entity to create\n * @returns {Promise<*>}\n */\nexport async function post(path, entity, requestOptions = {}) {\n const { apiUrl, withHeaders = false } = requestOptions;\n const response = await request(\n path,\n {\n method: 'POST',\n headers: JSON_HEADERS,\n body: JSON.stringify(entity),\n },\n { apiUrl, ...getAppKeyAndId() }\n );\n\n if (withHeaders) return response;\n\n return response && response.json();\n}\n\nexport async function getWithHeaders(path, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const qry = queryString.stringify(queryParams, { arrayFormat: 'bracket' });\n const { appKey, ...rest } = getAppKeyAndId() || {};\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n {\n method: 'GET',\n signal,\n },\n { apiUrl, appKey: requestOptions.appKey || appKey, ...rest }\n );\n\n return {\n data: response && (await response.json()),\n headers: response && response.headers,\n };\n}\n\n/**\n * The get method is used to **read** (or retrieve) a representation of a resource\n * @async\n * @param {string} path - path to resource.\n * @param {Object=} queryParams - Object with query params such as per_page, sort, asset_id, etc.\n * @param {Object=} requestOptions - Additional options for request. For example: apiUrl, signal etc.\n * @returns {Promise<*>}\n */\nexport async function get(path, queryParams = {}, requestOptions = {}) {\n const { appKey, ...rest } = getAppKeyAndId() || {};\n const dataAndHeaders = await getWithHeaders(path, queryParams, {\n ...requestOptions,\n appKey: requestOptions.appKey || appKey,\n ...rest,\n });\n return dataAndHeaders.data;\n}\n\nexport async function getFile(path, queryParams = {}, requestOptions = {}) {\n const qry = queryString.stringify(queryParams);\n const { signal } = requestOptions;\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n { method: 'GET' },\n { ...getAppKeyAndId(), signal }\n );\n\n return response && response.blob();\n}\n\nexport async function put(path, content, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const qry = queryString.stringify(queryParams);\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n {\n method: 'PUT',\n headers: JSON_HEADERS,\n body: JSON.stringify(content),\n },\n { apiUrl, ...getAppKeyAndId(), signal }\n );\n\n return response && response.json();\n}\n\nexport async function patch(path, content, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const qry = queryString.stringify(queryParams);\n\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n {\n method: 'PATCH',\n headers: JSON_HEADERS,\n body: JSON.stringify(content),\n },\n {\n apiUrl,\n ...getAppKeyAndId(),\n signal,\n }\n );\n\n return response && response.json();\n}\n\nexport async function del(path, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const query = queryString.stringify(queryParams);\n const response = await request(\n query ? `${path}?${query}` : path,\n {\n method: 'DELETE',\n headers: JSON_HEADERS,\n },\n {\n apiUrl,\n ...getAppKeyAndId(),\n signal,\n }\n );\n\n return response && response.json();\n}\n\nexport async function sendFormData(path, data, queryParams = {}, requestOptions = {}) {\n const query = queryString.stringify(queryParams);\n const { method = 'POST', signal } = requestOptions;\n const formData = new FormData();\n\n Object.entries(data).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach(arrayValueEntity => {\n formData.append(key, arrayValueEntity);\n });\n } else {\n formData.append(key, value);\n }\n });\n\n const response = await request(\n query ? `${path}?${query}` : path,\n {\n method,\n headers: {\n Accept: 'application/json',\n },\n body: formData,\n },\n { ...getAppKeyAndId(), signal }\n );\n\n return response && response.json();\n}\n"],"names":["HTTP_ERROR_MESSAGES","HTTP_METHODS_TO_SHOW_ERROR_NOTIFICATIONS","APIException","response","json","_classCallCheck","this","status","statusText","message","errorBody","_createClass","key","value","_this$errorBody","_this$errorBody$error","errors","login","_this$errorBody2","_this$errorBody2$erro","_this$errorBody2$erro2","includes","_this$errorBody3","_this$errorBody3$erro","_this$errorBody3$erro2","_this$errorBody4","_this$errorBody4$erro","_this$errorBody4$erro2","identity","baseUrl","CORVA_API_URLS","API","AUTH_HEADERS","getAuthorizationHeaders","JSON_HEADERS","_objectSpread","Accept","handleAuthenticationProblem","e","_e$isAuthenticationPr","isAuthenticationProblem","isTermsProblem","isLoginProblem","console","error","window","location","pathname","href","V1_ASSETS_REGEXP","_requestCore","_asyncToGenerator","_regeneratorRuntime","mark","path","config","overrides","_overrides$apiUrl","apiUrl","appKey","appInstanceId","_args2","arguments","wrap","_context2","prev","next","length","undefined","apiRequestsRateLimiter","acquire","test","cache","credentials","abrupt","fetch","attachHTTPHeaders","stop","_callee2","apply","requestCoreFunc","_errorHandler","request","_x4","requestMethod","isMethodToShowNotification","httpErrorMessage","exception","_context","sent","ok","t0","method","hideNotification","DISPLAY_HTTP_MESSAGES","_callee","_x","_x2","_x3","_post","_callee3","entity","requestOptions","_requestOptions$withH","withHeaders","_args3","_context3","headers","body","JSON","stringify","getAppKeyAndId","getWithHeaders","_x7","_getWithHeaders","queryParams","signal","qry","_ref","rest","_args4","_context4","queryString","arrayFormat","_objectWithoutProperties","_excluded","t1","t2","data","_callee4","_get","_ref2","dataAndHeaders","_args5","_context5","_excluded2","_callee5","_put","_callee7","content","_args7","_context7","_patch","_callee8","_args8","_context8","_del","query","_args9","_context9","concat","_callee9","_sendFormData","_callee10","_requestOptions$metho","formData","_args10","_context10","FormData","Object","entries","forEach","_ref3","_ref4","_slicedToArray","Array","isArray","arrayValueEntity","append","_x14","_x8","_x12","_x13","_x5","_x6","_x10","_x11","_x15","_x16"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.DEFAULT_CONFIG={defaults:{maxTokens:35,refillRate:10,queueTimeout:3e4},overrides:{"corva.treatment_plot_plus.ui":{maxTokens:60,refillRate:30}}},exports.IDLE_CLEANUP_AFTER_MS=6e4;
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/classCallCheck"),t=require("@babel/runtime/helpers/createClass"),r=require("@babel/runtime/helpers/defineProperty"),i=require("./constants.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=u(e),n=u(t),o=u(r);function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){o.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var c=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a.default(this,e),o.default(this,"buckets",new Map),o.default(this,"config",void 0),this.config={defaults:s(s({},i.DEFAULT_CONFIG.defaults),t.defaults),overrides:s({},t.overrides)}}return n.default(e,[{key:"getOrCreateBucket",value:function(e,t,r){var i=this.buckets.get(e);if(!i){var u=s(s({},this.config.defaults),this.config.overrides[t]),a=u.maxTokens,n=u.refillRate,o=u.queueTimeout,l=u.maxQueueSize,c={appKey:t,appInstanceId:r,tokens:a,maxTokens:a,refillRate:n,queueTimeout:o,lastRefill:Date.now(),lastActivity:Date.now(),queue:[],refillTimer:null,maxQueueSize:l};return this.buckets.set(e,c),this.startRefillTimer(e,c),c}return i}},{key:"refill",value:function(e){var t=Date.now(),r=(t-e.lastRefill)/1e3*e.refillRate;r>0&&(e.tokens=Math.min(e.maxTokens,e.tokens+r),e.lastRefill=t)}},{key:"startRefillTimer",value:function(e,t){var r=this;t.refillTimer=setInterval((function(){r.refill(t),r.drainQueue(t),r.cleanupIdleIfNeeded(e,t)}),200)}},{key:"drainQueue",value:function(e){for(;e.queue.length>0&&e.tokens>=1;){e.tokens-=1,e.lastActivity=Date.now();var t=e.queue.shift();clearTimeout(null==t?void 0:t.timeoutId),null==t||t.resolve()}}},{key:"cleanupIdleIfNeeded",value:function(e,t){t.queue.length>0||Date.now()-t.lastActivity>=i.IDLE_CLEANUP_AFTER_MS&&(this.destroyBucket(t),this.buckets.delete(e))}},{key:"destroyBucket",value:function(e){e.refillTimer&&clearInterval(e.refillTimer),e.queue.forEach((function(e){clearTimeout(e.timeoutId),e.reject(new Error("[RateLimiter] Destroyed while request was queued"))})),e.queue=[]}},{key:"acquire",value:function(e,t){var r,i,u="".concat(e,"|").concat(t),a=this.getOrCreateBucket(u,e,String(t));if(this.refill(a),a.tokens>=1)return a.tokens-=1,a.lastActivity=Date.now(),Promise.resolve();var n=a.queue.length+1;return null===(r=(i=window)[Symbol.for("corvaAPI.rateLimiterReport")])||void 0===r||r.call(i,{message:"[RateLimiter] Rate limit reached",bucket:{id:u,appKey:a.appKey,appInstanceId:a.appInstanceId,maxTokens:a.maxTokens,queueLength:n,queueTimeout:a.queueTimeout,refillRate:a.refillRate}}),void 0!==a.maxQueueSize&&n>a.maxQueueSize?Promise.reject(new Error('[RateLimiter] Queue size limit exceeded for "'.concat(u,'". Limit: ').concat(a.maxQueueSize))):Promise.resolve()}},{key:"updateConfig",value:function(e){this.config=s(s({},this.config),{},{defaults:s(s({},this.config.defaults),e.defaults),overrides:s(s({},this.config.overrides),e.overrides)})}},{key:"destroy",value:function(){this.buckets.forEach(this.destroyBucket),this.buckets.clear()}}]),e}(),f=new c;exports.RateLimiter=c,exports.apiRequestsRateLimiter=f;
2
+ //# sourceMappingURL=rateLimiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimiter.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
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 P(){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 j={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=P(),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(j,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.getAppKeyFromXProps=d.getAppKeyFromXProps,exports.getAuthorizationHeaders=d.getAuthorizationHeaders,exports.getAuthorizationToken=d.getAuthorizationToken,exports.corvaAPI=A,exports.corvaDataAPI=b,exports.socketClient=O;
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"),d=require("./sso/index.js"),l=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=d,exports.attachHTTPHeaders=l.attachHTTPHeaders,exports.getAppKeyAndId=l.getAppKeyAndId,exports.getAuthorizationHeaders=l.getAuthorizationHeaders,exports.getAuthorizationToken=l.getAuthorizationToken,exports.corvaAPI=A,exports.corvaDataAPI=b,exports.socketClient=O;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("@babel/runtime/helpers/defineProperty"),e=require("../constants/mobile.js");function t(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}var o=t(r);function n(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(r);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.push.apply(t,o)}return t}function a(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?n(Object(t),!0).forEach((function(e){o.default(r,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):n(Object(t)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))}))}return r}var i=/corva\.ai\/(.+?)\/packages/,c=/app\/(.+?)\/.*\.chunk\.js/,p=window.self!==window.top;var u=function(){try{var r=sessionStorage.getItem(e.MOBILE_AUTH_TOKEN_STORAGE_KEY);if(r)return r;var t=p?window.parent.location.href:window.location.href;return new URL(t).searchParams.get("token")}catch(r){return null}};exports.attachHTTPHeaders=function(r){var e=r.config,t=r.appKey,o=r.Authorization,n=a({},e.headers||{});return t&&(n["x-corva-app"]=t),o&&(n.Authorization=o),a(a({},e),{},{headers:n})},exports.getAppKeyFromStackTrace=function(){var r=Error.stackTraceLimit;Error.stackTraceLimit=300;var e=new Error,t=e.stack.match(i)||e.stack.match(c);return Error.stackTraceLimit=r,t?t[1].replace("/app/","."):null},exports.getAppKeyFromXProps=function(){var r,e,t,o;return null===(r=window)||void 0===r||null===(e=r.xprops)||void 0===e||null===(t=e.app)||void 0===t||null===(o=t.app)||void 0===o?void 0:o.app_key},exports.getAuthorizationHeaders=function(){var r=u();return r?{Authorization:"Bearer ".concat(r)}:{}},exports.getAuthorizationToken=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),r=require("../constants/mobile.js");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?o(Object(t),!0).forEach((function(r){n.default(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var i=/corva\.ai\/(.+?)\/packages/,p=/app\/(.+?)\/.*\.chunk\.js/,c=window.self!==window.top;var u=function(){try{var e=sessionStorage.getItem(r.MOBILE_AUTH_TOKEN_STORAGE_KEY);if(e)return e;var t=c?window.parent.location.href:window.location.href;return new URL(t).searchParams.get("token")}catch(e){return null}};exports.attachHTTPHeaders=function(e){var r=e.config,t=e.appKey,n=e.Authorization,o=a({},r.headers||{});return t&&(o["x-corva-app"]=t),n&&(o.Authorization=n),a(a({},r),{},{headers:o})},exports.getAppKeyAndId=function(){var e,r,t,n,o,a,c,u=null===(e=window)||void 0===e||null===(r=e.xprops)||void 0===r||null===(t=r.app)||void 0===t||null===(n=t.app)||void 0===n?void 0:n.app_key;if(u)return{appKey:u,appInstanceId:String(null===(o=window)||void 0===o||null===(a=o.xprops)||void 0===a||null===(c=a.app)||void 0===c?void 0:c.id)};var s=Error.stackTraceLimit;Error.stackTraceLimit=300;var l=new Error,d=l.stack.match(i)||l.stack.match(p);return Error.stackTraceLimit=s,d?{appKey:d[1].replace("/app/","."),appInstanceId:"nonisolated"}:void 0},exports.getAuthorizationHeaders=function(){var e=u();return e?{Authorization:"Bearer ".concat(e)}:{}},exports.getAuthorizationToken=u;
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/clients/utils.js"],"sourcesContent":["import { MOBILE_AUTH_TOKEN_STORAGE_KEY } from '~/constants/mobile';\n\n// NOTE: Non-greedy regexp to find the app key from filename\nconst DEVCENTER_APP_KEY_EXTRACTOR_REGEXP = /corva\\.ai\\/(.+?)\\/packages/;\nconst PLATFORM_APP_KEY_EXTRACTOR_REGEXP = /app\\/(.+?)\\/.*\\.chunk\\.js/;\n\nconst isInsideIframe = window.self !== window.top;\n\nexport function getAppKeyFromStackTrace() {\n const prevStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = 300;\n\n const error = new Error();\n const match =\n error.stack.match(DEVCENTER_APP_KEY_EXTRACTOR_REGEXP) ||\n error.stack.match(PLATFORM_APP_KEY_EXTRACTOR_REGEXP);\n\n Error.stackTraceLimit = prevStackTraceLimit;\n return match ? match[1].replace('/app/', '.') : null;\n}\n\nexport function getAppKeyFromXProps() {\n // window.xprops object is available only in devcenter app in iframe. This is ZOID library API\n return window?.xprops?.app?.app?.app_key;\n}\n\nexport function attachHTTPHeaders({ config, appKey, Authorization }) {\n const headers = { ...(config.headers || {}) };\n if (appKey) headers['x-corva-app'] = appKey;\n if (Authorization) headers.Authorization = Authorization;\n\n return { ...config, headers };\n}\n\nexport const getAuthorizationToken = () => {\n try {\n const mobileAuthToken = sessionStorage.getItem(MOBILE_AUTH_TOKEN_STORAGE_KEY);\n if (mobileAuthToken) return mobileAuthToken;\n\n const url = isInsideIframe ? window.parent.location.href : window.location.href; // Get the current URL\n const params = new URL(url).searchParams; // Parse the URL query parameters\n return params.get('token'); // Extract the 'token' parameter\n } catch (error) {\n return null;\n }\n};\n\nexport const getAuthorizationHeaders = () => {\n const token = getAuthorizationToken();\n return token ? { Authorization: `Bearer ${token}` } : {};\n};\n"],"names":["DEVCENTER_APP_KEY_EXTRACTOR_REGEXP","PLATFORM_APP_KEY_EXTRACTOR_REGEXP","isInsideIframe","window","self","top","getAuthorizationToken","mobileAuthToken","sessionStorage","getItem","MOBILE_AUTH_TOKEN_STORAGE_KEY","url","parent","location","href","URL","searchParams","get","error","_ref","config","appKey","Authorization","headers","_objectSpread","prevStackTraceLimit","Error","stackTraceLimit","match","stack","replace","_window","_window$xprops","_window$xprops$app","_window$xprops$app$ap","xprops","app","app_key","token"],"mappings":"yzBAGA,IAAMA,EAAqC,6BACrCC,EAAoC,4BAEpCC,EAAiBC,OAAOC,OAASD,OAAOE,IA4BjCC,IAAAA,EAAwB,WACnC,IACE,IAAMC,EAAkBC,eAAeC,QAAQC,EAA6BA,+BAC5E,GAAIH,EAAiB,OAAOA,EAE5B,IAAMI,EAAMT,EAAiBC,OAAOS,OAAOC,SAASC,KAAOX,OAAOU,SAASC,KAE3E,OADe,IAAIC,IAAIJ,GAAKK,aACdC,IAAI,QAGpB,CAFE,MAAOC,GACP,OAAO,IACT,CACF,4BAnBO,SAA8DC,GAAA,IAAjCC,IAAAA,OAAQC,IAAAA,OAAQC,IAAAA,cAC5CC,OAAgBH,EAAOG,SAAW,CAAA,GAIxC,OAHIF,IAAQE,EAAQ,eAAiBF,GACjCC,IAAeC,EAAQD,cAAgBA,GAE3CE,EAAAA,EAAA,CAAA,EAAYJ,GAAM,CAAA,EAAA,CAAEG,QAAAA,GACtB,kCAxBO,WACL,IAAME,EAAsBC,MAAMC,gBAClCD,MAAMC,gBAAkB,IAExB,IAAMT,EAAQ,IAAIQ,MACZE,EACJV,EAAMW,MAAMD,MAAM5B,IAClBkB,EAAMW,MAAMD,MAAM3B,GAGpB,OADAyB,MAAMC,gBAAkBF,EACjBG,EAAQA,EAAM,GAAGE,QAAQ,QAAS,KAAO,IAClD,8BAEO,WAA+B,IAAAC,EAAAC,EAAAC,EAAAC,EAEpC,OAAa,QAAbH,EAAO5B,cAAM,IAAA4B,GAAN,QAAMC,EAAND,EAAQI,cAAR,IAAAH,GAAmB,QAAnBC,EAAAD,EAAgBI,WAAG,IAAAH,GAAnB,QAAmBC,EAAnBD,EAAqBG,WAArB,IAAAF,OAAM,EAANA,EAA0BG,OACnC,kCAuBuC,WACrC,IAAMC,EAAQhC,IACd,OAAOgC,EAAQ,CAAEhB,+BAAyBgB,IAAY,EACxD"}
1
+ {"version":3,"file":"utils.js","sources":["../../../src/clients/utils.js"],"sourcesContent":["import { MOBILE_AUTH_TOKEN_STORAGE_KEY } from '~/constants/mobile';\n\n// NOTE: Non-greedy regexp to find the app key from filename\nconst DEVCENTER_APP_KEY_EXTRACTOR_REGEXP = /corva\\.ai\\/(.+?)\\/packages/;\nconst PLATFORM_APP_KEY_EXTRACTOR_REGEXP = /app\\/(.+?)\\/.*\\.chunk\\.js/;\n\nconst isInsideIframe = window.self !== window.top;\n\nexport const getAppKeyAndId = () => {\n const xpropsAppKey = window?.xprops?.app?.app?.app_key;\n\n if (xpropsAppKey) {\n return {\n appKey: xpropsAppKey,\n appInstanceId: String(window?.xprops?.app?.id),\n };\n } else {\n const prevStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = 300;\n\n const error = new Error();\n const match =\n error.stack.match(DEVCENTER_APP_KEY_EXTRACTOR_REGEXP) ||\n error.stack.match(PLATFORM_APP_KEY_EXTRACTOR_REGEXP);\n\n Error.stackTraceLimit = prevStackTraceLimit;\n\n if (match) {\n return {\n appKey: match[1].replace('/app/', '.'),\n appInstanceId: 'nonisolated',\n };\n }\n }\n\n return undefined;\n};\n\nexport function attachHTTPHeaders({ config, appKey, Authorization }) {\n const headers = { ...(config.headers || {}) };\n if (appKey) headers['x-corva-app'] = appKey;\n if (Authorization) headers.Authorization = Authorization;\n\n return { ...config, headers };\n}\n\nexport const getAuthorizationToken = () => {\n try {\n const mobileAuthToken = sessionStorage.getItem(MOBILE_AUTH_TOKEN_STORAGE_KEY);\n if (mobileAuthToken) return mobileAuthToken;\n\n const url = isInsideIframe ? window.parent.location.href : window.location.href; // Get the current URL\n const params = new URL(url).searchParams; // Parse the URL query parameters\n return params.get('token'); // Extract the 'token' parameter\n } catch (error) {\n return null;\n }\n};\n\nexport const getAuthorizationHeaders = () => {\n const token = getAuthorizationToken();\n return token ? { Authorization: `Bearer ${token}` } : {};\n};\n"],"names":["DEVCENTER_APP_KEY_EXTRACTOR_REGEXP","PLATFORM_APP_KEY_EXTRACTOR_REGEXP","isInsideIframe","window","self","top","getAuthorizationToken","mobileAuthToken","sessionStorage","getItem","MOBILE_AUTH_TOKEN_STORAGE_KEY","url","parent","location","href","URL","searchParams","get","error","_ref","config","appKey","Authorization","headers","_objectSpread","_window","_window$xprops","_window$xprops$app","_window$xprops$app$ap","_window2","_window2$xprops","_window2$xprops$app","xpropsAppKey","xprops","app","app_key","appInstanceId","String","id","prevStackTraceLimit","Error","stackTraceLimit","match","stack","replace","token"],"mappings":"yzBAGA,IAAMA,EAAqC,6BACrCC,EAAoC,4BAEpCC,EAAiBC,OAAOC,OAASD,OAAOE,IAwCjCC,IAAAA,EAAwB,WACnC,IACE,IAAMC,EAAkBC,eAAeC,QAAQC,EAA6BA,+BAC5E,GAAIH,EAAiB,OAAOA,EAE5B,IAAMI,EAAMT,EAAiBC,OAAOS,OAAOC,SAASC,KAAOX,OAAOU,SAASC,KAE3E,OADe,IAAIC,IAAIJ,GAAKK,aACdC,IAAI,QAGpB,CAFE,MAAOC,GACP,OAAO,IACT,CACF,4BAnBO,SAA8DC,GAAA,IAAjCC,IAAAA,OAAQC,IAAAA,OAAQC,IAAAA,cAC5CC,OAAgBH,EAAOG,SAAW,CAAA,GAIxC,OAHIF,IAAQE,EAAQ,eAAiBF,GACjCC,IAAeC,EAAQD,cAAgBA,GAE3CE,EAAAA,EAAA,CAAA,EAAYJ,GAAM,CAAA,EAAA,CAAEG,QAAAA,GACtB,yBApC8B,WAAM,IAAAE,EAAAC,EAAAC,EAAAC,EAGhBC,EAAAC,EAAAC,EAFZC,EAAqB,QAATP,EAAGtB,cAAM,IAAAsB,GAAQ,QAARC,EAAND,EAAQQ,cAAM,IAAAP,GAAd,QAAcC,EAAdD,EAAgBQ,WAAhB,IAAAP,GAAwB,QAAxBC,EAAAD,EAAqBO,WAAG,IAAAN,OAAlB,EAANA,EAA0BO,QAE/C,GAAIH,EACF,MAAO,CACLX,OAAQW,EACRI,cAAeC,OAAO,QAAAlC,EAAAA,cAAA,IAAA0B,GAAc,QAAdC,EAAAD,EAAQI,cAAM,IAAAH,GAAd,QAAcC,EAAdD,EAAgBI,WAAhB,IAAAH,OAAA,EAAAA,EAAqBO,KAG7C,IAAMC,EAAsBC,MAAMC,gBAClCD,MAAMC,gBAAkB,IAExB,IAAMvB,EAAQ,IAAIsB,MACZE,EACJxB,EAAMyB,MAAMD,MAAM1C,IAClBkB,EAAMyB,MAAMD,MAAMzC,GAIpB,OAFAuC,MAAMC,gBAAkBF,EAEpBG,EACK,CACLrB,OAAQqB,EAAM,GAAGE,QAAQ,QAAS,KAClCR,cAAe,oBAHnB,CASJ,kCAuBuC,WACrC,IAAMS,EAAQvC,IACd,OAAOuC,EAAQ,CAAEvB,+BAAyBuB,IAAY,EACxD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),n=require("@babel/runtime/helpers/slicedToArray"),r=require("@babel/runtime/helpers/objectWithoutProperties"),t=require("react"),o=require("classnames"),i=require("react-router-dom"),a=require("lodash"),s=require("query-string"),u=require("prop-types"),p=require("./IsolatedPage.js"),l=require("./constants.js"),d=require("./DevCenterIsolatedApp.module.css.js"),c=require("../AppContext.js"),f=require("../../../permissions/PermissionsContext.js");require("../../../permissions/constants/index.js"),require("../../../permissions/withPermissionsHOC.js"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("../../../clients/jsonApi/index.js"),require("../../../permissions/ProvidePermissions.js");var v=require("../../../utils/index.js");require("../AppHeader/AppHeader.js"),require("../AppSideBar/AppSideBar.js"),require("../AppsDataProvider/AppsDataProvider.js");var C=require("../DevCenterAppContainer/DevCenterAppContainer.js");require("../NavigationBar/NavigationBar.js"),require("../SideBar/SideBar.js"),require("../AppSettingsPopover/AppSettingsPopover.js"),require("../AppFilterPanelLayout/AppFilterPanelLayout.js"),require("../DevCenterRouterContext/DevCenterRouterContext.js"),require("../DevCenterRouterContext/UniversalLink/UniversalLink.js");var b=require("react/jsx-runtime");require("./DevCenterIsolatedAppPage.js");var m=require("../DevCenterAppContainer/utils.js"),A=require("../../../utils/mobileDetect.js"),g=require("../../../utils/devcenter.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=j(e),q=j(n),I=j(r),M=j(o),y=j(s),x=j(u),P=["isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn"];function E(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function R(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?E(Object(r),!0).forEach((function(n){h.default(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):E(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function D(e){var n,r,o,i,a,s,u,j=e.isIsolationFeatureEnabled,h=e.onAppFullscreenTransparentMode,x=e.onIsMaximizedChange,E=e.onInnerContainerMouseEnter,D=e.onInnerContainerMouseLeave,w=e.onAppContainerClick,O=e.setInnerContainerRefFn,S=I.default(e,P),T=t.useMemo((function(){return g.createDevCenterRouter(S.history)}),[null===(n=S.history)||void 0===n?void 0:n.location]),F=g.isCorvaApp(null==S||null===(r=S.app)||void 0===r?void 0:r.app)&&!g.isIsolationEnabledInPackageManifest(null==S||null===(o=S.app)||void 0===o?void 0:o.package)||!j,L=F?C:p.IsolatedPage,_=null===(i=S.app)||void 0===i||null===(a=i.app)||void 0===a?void 0:a.app_key,k=m.getAppVersion(S.app),z="".concat(_,"-").concat(k),U=t.useRef(),B=t.useRef(),N=t.useRef(),W=t.useRef(!1),H=t.useRef(!1),V=g.isAppMaximized(y.default.parse(null===(s=S.history)||void 0===s||null===(u=s.location)||void 0===u?void 0:u.search),S.app.id),G=t.useRef(V);G.current=V;var J=t.useState(v.getUserUnits()),K=q.default(J,2),Q=K[0],X=K[1];t.useEffect((function(){var e=v.subscribeForUserUnitsUpdates((function(e){return X(e)}));return function(){return e()}}),[]);var Y=t.useContext(c),Z=f.default();function $(){h({appId:S.app.id,isModeEnabled:!1}),document.body.classList.remove("dc-isolated-app__body-overflow",d.compensateScroll)}var ee=t.useCallback((function(e){var n,r,t,o,i,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!j||F||G.current&&!W.current||W.current===e){var s;a&&H.current!==a&&(H.current=a,null===(s=B.current)||void 0===s||s.classList.add(d.containerMaximizedTransparentModal))}else{var u,c=e?"add":"remove";if(null===(n=B.current)||void 0===n||n.classList[c](d.containerMaximizedTransparent),a||"remove"===c)null===(u=B.current)||void 0===u||u.classList[c](d.containerMaximizedTransparentModal);U.current=null===(r=B.current)||void 0===r||null===(t=r.querySelector("[".concat(p.APP_IFRAME_ATTRIBUTE,"]")))||void 0===t||null===(o=t.contentWindow)||void 0===o?void 0:o.document;var f=null===(i=U.current)||void 0===i?void 0:i.getElementById(l.ISOLATED_PAGE_APP_CONTAINER_ID);if(f){if(e){var v=N.current.getBoundingClientRect(),C=v.top,b=v.left,m=v.width,A=v.height;f.setAttribute("style","\n top: ".concat(C,"px;\n left: ").concat(b,"px;\n width: ").concat(m,"px;\n height: ").concat(A,"px;\n position: absolute;\n ")),h({appId:S.app.id,isModeEnabled:!0});var g=window.innerWidth!==document.body.clientWidth;document.body.classList.add("dc-isolated-app__body-overflow",g&&d.compensateScroll)}else f.setAttribute("style",""),$();W.current=e,H.current=a}}}),[j,F,G]);t.useEffect((function(){return $}),[]),t.useEffect((function(){V&&W.current&&ee(!1)}),[V]);var ne=t.useCallback((function(e){B.current=e,O(e)}),[]);return b.jsx("div",{className:M.default("dc-isolated-app",d.fixedSizeContainer),ref:N,children:b.jsx("div",{ref:ne,onMouseEnter:E,onMouseLeave:D,"data-testid":"".concat("DevCenter_AppContainer","_").concat(S.app.app.name),className:M.default(d.container,A.isInsideNewMobileApp&&d.newMobileAppContainer,V&&d.containerMaximized),children:b.jsx(L,R(R({},S),{},{appContextValue:Y,devCenterRouter:T,globalNotificationToastsAPI:window[Symbol.for("notificationToasts")],globalMixpanelEventTracker:window[Symbol.for("logToMixpanel")],onAppContainerClick:w,onIsMaximizedChange:x,permissionsContextValue:Z,setIsFullscreenModalMode:ee,userUnits:Q}),z)})})}D.propTypes={app:x.default.shape({id:x.default.number,app:x.default.shape({name:x.default.string})}).isRequired,currentUser:x.default.shape({}).isRequired,isIsolationFeatureEnabled:x.default.bool,onAppContainerClick:x.default.func,onAppFullscreenTransparentMode:x.default.func,onAppRemove:x.default.func,onInnerContainerMouseEnter:x.default.func,onInnerContainerMouseLeave:x.default.func,onIsMaximizedChange:x.default.func,onSettingChange:x.default.func,onSettingsChange:x.default.func,setInnerContainerRefFn:x.default.func,updateCurrentDashboardAppLastAnnotation:x.default.func},D.defaultProps={isIsolationFeatureEnabled:!1,onAppContainerClick:a.noop,onAppFullscreenTransparentMode:a.noop,onAppRemove:void 0,onInnerContainerMouseEnter:a.noop,onInnerContainerMouseLeave:a.noop,onIsMaximizedChange:a.noop,onSettingChange:a.noop,onSettingsChange:a.noop,setInnerContainerRefFn:a.noop,updateCurrentDashboardAppLastAnnotation:a.noop};var w=i.withRouter(D);exports.DevCenterIsolatedApp=w;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),n=require("@babel/runtime/helpers/slicedToArray"),r=require("@babel/runtime/helpers/objectWithoutProperties"),t=require("react"),o=require("classnames"),i=require("react-router-dom"),a=require("lodash"),s=require("query-string"),u=require("prop-types"),p=require("./IsolatedPage.js"),l=require("./constants.js"),d=require("./DevCenterIsolatedApp.module.css.js"),c=require("../AppContext.js"),f=require("../../../permissions/PermissionsContext.js");require("../../../permissions/constants/index.js"),require("../../../permissions/withPermissionsHOC.js"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("../../../clients/jsonApi/index.js"),require("../../../permissions/ProvidePermissions.js");var v=require("../../../utils/index.js");require("../AppHeader/AppHeader.js"),require("../AppSideBar/AppSideBar.js"),require("../AppsDataProvider/AppsDataProvider.js");var C=require("../DevCenterAppContainer/DevCenterAppContainer.js");require("../NavigationBar/NavigationBar.js"),require("../SideBar/SideBar.js"),require("../AppSettingsPopover/AppSettingsPopover.js"),require("../AppFilterPanelLayout/AppFilterPanelLayout.js"),require("../DevCenterRouterContext/DevCenterRouterContext.js"),require("../DevCenterRouterContext/UniversalLink/UniversalLink.js");var b=require("react/jsx-runtime");require("./DevCenterIsolatedAppPage.js");var m=require("../DevCenterAppContainer/utils.js"),A=require("../../../utils/mobileDetect.js"),g=require("../../../utils/devcenter.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=j(e),q=j(n),I=j(r),M=j(o),x=j(s),y=j(u),P=["isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn","trackApiRateLimiterException"];function E(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function R(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?E(Object(r),!0).forEach((function(n){h.default(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):E(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function D(e){var n,r,o,i,a,s,u,j=e.isIsolationFeatureEnabled,h=e.onAppFullscreenTransparentMode,y=e.onIsMaximizedChange,E=e.onInnerContainerMouseEnter,D=e.onInnerContainerMouseLeave,w=e.onAppContainerClick,O=e.setInnerContainerRefFn,L=e.trackApiRateLimiterException,S=I.default(e,P),T=t.useMemo((function(){return g.createDevCenterRouter(S.history)}),[null===(n=S.history)||void 0===n?void 0:n.location]),k=g.isCorvaApp(null==S||null===(r=S.app)||void 0===r?void 0:r.app)&&!g.isIsolationEnabledInPackageManifest(null==S||null===(o=S.app)||void 0===o?void 0:o.package)||!j,F=k?C:p.IsolatedPage,_=null===(i=S.app)||void 0===i||null===(a=i.app)||void 0===a?void 0:a.app_key,z=m.getAppVersion(S.app),U="".concat(_,"-").concat(z),B=t.useRef(),N=t.useRef(),W=t.useRef(),H=t.useRef(!1),V=t.useRef(!1),G=g.isAppMaximized(x.default.parse(null===(s=S.history)||void 0===s||null===(u=s.location)||void 0===u?void 0:u.search),S.app.id),J=t.useRef(G);J.current=G;var K=t.useState(v.getUserUnits()),Q=q.default(K,2),X=Q[0],Y=Q[1];t.useEffect((function(){var e=v.subscribeForUserUnitsUpdates((function(e){return Y(e)}));return function(){return e()}}),[]);var Z=t.useContext(c),$=f.default();function ee(){h({appId:S.app.id,isModeEnabled:!1}),document.body.classList.remove("dc-isolated-app__body-overflow",d.compensateScroll)}var ne=t.useCallback((function(e){var n,r,t,o,i,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!j||k||J.current&&!H.current||H.current===e){var s;a&&V.current!==a&&(V.current=a,null===(s=N.current)||void 0===s||s.classList.add(d.containerMaximizedTransparentModal))}else{var u,c=e?"add":"remove";if(null===(n=N.current)||void 0===n||n.classList[c](d.containerMaximizedTransparent),a||"remove"===c)null===(u=N.current)||void 0===u||u.classList[c](d.containerMaximizedTransparentModal);B.current=null===(r=N.current)||void 0===r||null===(t=r.querySelector("[".concat(p.APP_IFRAME_ATTRIBUTE,"]")))||void 0===t||null===(o=t.contentWindow)||void 0===o?void 0:o.document;var f=null===(i=B.current)||void 0===i?void 0:i.getElementById(l.ISOLATED_PAGE_APP_CONTAINER_ID);if(f){if(e){var v=W.current.getBoundingClientRect(),C=v.top,b=v.left,m=v.width,A=v.height;f.setAttribute("style","\n top: ".concat(C,"px;\n left: ").concat(b,"px;\n width: ").concat(m,"px;\n height: ").concat(A,"px;\n position: absolute;\n ")),h({appId:S.app.id,isModeEnabled:!0});var g=window.innerWidth!==document.body.clientWidth;document.body.classList.add("dc-isolated-app__body-overflow",g&&d.compensateScroll)}else f.setAttribute("style",""),ee();H.current=e,V.current=a}}}),[j,k,J]);t.useEffect((function(){return ee}),[]),t.useEffect((function(){G&&H.current&&ne(!1)}),[G]);var re=t.useCallback((function(e){N.current=e,O(e)}),[]);return b.jsx("div",{className:M.default("dc-isolated-app",d.fixedSizeContainer),ref:W,children:b.jsx("div",{ref:re,onMouseEnter:E,onMouseLeave:D,"data-testid":"".concat("DevCenter_AppContainer","_").concat(S.app.app.name),className:M.default(d.container,A.isInsideNewMobileApp&&d.newMobileAppContainer,G&&d.containerMaximized),children:b.jsx(F,R(R({},S),{},{appContextValue:Z,devCenterRouter:T,globalNotificationToastsAPI:window[Symbol.for("notificationToasts")],globalMixpanelEventTracker:window[Symbol.for("logToMixpanel")],onAppContainerClick:w,onIsMaximizedChange:y,permissionsContextValue:$,setIsFullscreenModalMode:ne,userUnits:X,trackApiRateLimiterException:L}),U)})})}D.propTypes={app:y.default.shape({id:y.default.number,app:y.default.shape({name:y.default.string})}).isRequired,currentUser:y.default.shape({}).isRequired,isIsolationFeatureEnabled:y.default.bool,onAppContainerClick:y.default.func,onAppFullscreenTransparentMode:y.default.func,onAppRemove:y.default.func,onInnerContainerMouseEnter:y.default.func,onInnerContainerMouseLeave:y.default.func,onIsMaximizedChange:y.default.func,onSettingChange:y.default.func,onSettingsChange:y.default.func,setInnerContainerRefFn:y.default.func,updateCurrentDashboardAppLastAnnotation:y.default.func},D.defaultProps={isIsolationFeatureEnabled:!1,onAppContainerClick:a.noop,onAppFullscreenTransparentMode:a.noop,onAppRemove:void 0,onInnerContainerMouseEnter:a.noop,onInnerContainerMouseLeave:a.noop,onIsMaximizedChange:a.noop,onSettingChange:a.noop,onSettingsChange:a.noop,setInnerContainerRefFn:a.noop,updateCurrentDashboardAppLastAnnotation:a.noop};var w=i.withRouter(D);exports.DevCenterIsolatedApp=w;
2
2
  //# sourceMappingURL=DevCenterIsolatedApp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DevCenterIsolatedApp.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { withRouter } from 'react-router-dom';\nimport { noop } from 'lodash';\nimport queryString from 'query-string';\nimport PropTypes from 'prop-types';\n\nimport { IsolatedPage, APP_IFRAME_ATTRIBUTE } from './IsolatedPage';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\n\nimport styles from './DevCenterIsolatedApp.module.css';\n\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { usePermissionsContext } from '~/permissions';\nimport { devcenter as devCenterUtils, getUserUnits, subscribeForUserUnitsUpdates } from '~/utils';\nimport { DevCenterAppContainer } from '~/components/DevCenter';\nimport { getAppVersion } from '~/components/DevCenter/DevCenterAppContainer/utils';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nfunction DevCenterIsolatedAppComponent({\n isIsolationFeatureEnabled,\n onAppFullscreenTransparentMode,\n onIsMaximizedChange,\n onInnerContainerMouseEnter,\n onInnerContainerMouseLeave,\n onAppContainerClick,\n setInnerContainerRefFn,\n ...props\n}) {\n const devCenterRouter = useMemo(\n () => devCenterUtils.createDevCenterRouter(props.history),\n [props.history?.location]\n );\n\n const isNonIsolatedApp =\n (devCenterUtils.isCorvaApp(props?.app?.app) &&\n !devCenterUtils.isIsolationEnabledInPackageManifest(props?.app?.package)) ||\n !isIsolationFeatureEnabled;\n\n const DCAppComponent = isNonIsolatedApp ? DevCenterAppContainer : IsolatedPage;\n\n // Key to force iframe recreation when app version changes.\n // This ensures global dependencies are re-initialized for the new version.\n const appKey = props.app?.app?.app_key;\n const appVersion = getAppVersion(props.app);\n const iframeKey = `${appKey}-${appVersion}`;\n\n const appIframeDocument = useRef();\n const containerRef = useRef();\n const fixedSizeContainerRef = useRef();\n const fullscreenModeRef = useRef(false);\n const fullscreenModalModeRef = useRef(false);\n\n const isAppMaximized = devCenterUtils.isAppMaximized(\n queryString.parse(props.history?.location?.search),\n props.app.id\n );\n\n // save to ref to not re-create setIsFullscreenModalMode callback on change and reduce the amoount of DC apps re-renders\n const isAppMaximizedRef = useRef(isAppMaximized);\n isAppMaximizedRef.current = isAppMaximized;\n\n const [userUnits, setUserUnits] = useState(getUserUnits());\n\n useEffect(() => {\n const unsubscribeFn = subscribeForUserUnitsUpdates(newUserUnits => setUserUnits(newUserUnits));\n\n return () => unsubscribeFn();\n }, []);\n\n const appContextValue = useContext(AppContext);\n const permissionsContextValue = usePermissionsContext();\n\n /*\n What is fullscreen modal mode?\n\n Our apps, are shown in isolated iFrames. Because of it, when an app has some modal\n and opens it - it's opened inside of its iframe, instead of opening at the center of the screen.\n\n To make app modals & other elements be opened at the center of the screen, as if they are not inside of an iframe,\n we use some hacks.\n\n When the app wants to open a fullscreen element, we make its iframe fullscreen, but with transparent background,\n and we set width/height & position of that app iframe to inner app container that is located inside of the iframe.\n So when iframe's fullscreen element is opened, it looks like it's a part of the platform, and the app which shows the element, looks like\n usual, not in fullscreen\n\n So the platform provides this setIsFullscreenModalMode function to DC apps.\n When DC app wants to open a modal that should be opened at the center of the screen - it needs to\n call setIsFullscreenModalMode(true) first. And when it closes the modal - setIsFullscreenModalMode(false)\n\n Two things are important about this\n - all these styles that make this invisible background work should be applied at once\n - enter and exit from the mode, shouldn't trigger even a single re-render, as it may impact\n some elements inside the DC app\n\n There's a second parameter to `setIsFullscreenModalMode`: `isModal`. It should be used when a fullscreen overlay is displayed\n (Modal, for instance) that should cover everything on screen.\n\n What it does - it basically sets the stretched element's z-index to a very high value, so it covers every other UI element in CWF\n */\n\n function handleAppFullscreenTransparentModeExit() {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n\n const setIsFullscreenModalMode = useCallback(\n function setIsFullscreenModalMode(nextIsFullscreenModalModeValue, isModal = false) {\n // When an app is already in fullscreen mode, no need to use this\n // invisible fullscreen mode to make elements take the whole screen\n\n if (\n !isIsolationFeatureEnabled ||\n isNonIsolatedApp ||\n (isAppMaximizedRef.current && !fullscreenModeRef.current) ||\n fullscreenModeRef.current === nextIsFullscreenModalModeValue\n ) {\n // Adding modal class if modal is opened when non-modal is already open\n if (isModal && fullscreenModalModeRef.current !== isModal) {\n fullscreenModalModeRef.current = isModal;\n containerRef.current?.classList.add(styles.containerMaximizedTransparentModal);\n }\n\n return;\n }\n\n const classesEditMethod = nextIsFullscreenModalModeValue ? 'add' : 'remove';\n\n containerRef.current?.classList[classesEditMethod](styles.containerMaximizedTransparent);\n\n if (isModal || classesEditMethod === 'remove') {\n containerRef.current?.classList[classesEditMethod](\n styles.containerMaximizedTransparentModal\n );\n }\n\n appIframeDocument.current = containerRef.current?.querySelector(\n `[${APP_IFRAME_ATTRIBUTE}]`\n )?.contentWindow?.document;\n\n const isolatedPageAppContainer = appIframeDocument.current?.getElementById(\n ISOLATED_PAGE_APP_CONTAINER_ID\n );\n\n if (!isolatedPageAppContainer) {\n return;\n }\n\n if (nextIsFullscreenModalModeValue) {\n const { top, left, width, height } = fixedSizeContainerRef.current.getBoundingClientRect();\n\n // We need to directly set inner iFrame container sizes together with DC platform styles\n // as passing this as props and using some effect inside of an iframe\n // results in a slight delay, which looks like a quick layout jump\n isolatedPageAppContainer.setAttribute(\n 'style',\n `\n top: ${top}px;\n left: ${left}px;\n width: ${width}px;\n height: ${height}px;\n position: absolute;\n `\n );\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: true });\n const isBodyScrollVisible = window.innerWidth !== document.body.clientWidth;\n document.body.classList.add(\n 'dc-isolated-app__body-overflow',\n isBodyScrollVisible && styles.compensateScroll\n );\n } else {\n isolatedPageAppContainer.setAttribute('style', '');\n handleAppFullscreenTransparentModeExit();\n }\n fullscreenModeRef.current = nextIsFullscreenModalModeValue;\n fullscreenModalModeRef.current = isModal;\n },\n [isIsolationFeatureEnabled, isNonIsolatedApp, isAppMaximizedRef]\n );\n\n useEffect(() => {\n return handleAppFullscreenTransparentModeExit;\n }, []);\n\n useEffect(() => {\n if (isAppMaximized && fullscreenModeRef.current) {\n setIsFullscreenModalMode(false);\n }\n }, [isAppMaximized]);\n\n /**\n * This should be the same function as calling react-intersection-observer's ref setter actually triggers re-render.\n * Which in its turn causes infinite re-render loop.\n */\n const setContainerRefs = useCallback(node => {\n containerRef.current = node;\n setInnerContainerRefFn(node);\n }, []);\n\n return (\n <div\n className={classNames('dc-isolated-app', styles.fixedSizeContainer)}\n ref={fixedSizeContainerRef}\n >\n <div\n ref={setContainerRefs}\n onMouseEnter={onInnerContainerMouseEnter}\n onMouseLeave={onInnerContainerMouseLeave}\n data-testid={`${PAGE_NAME}_${props.app.app.name}`}\n className={classNames(\n styles.container,\n isInsideNewMobileApp && styles.newMobileAppContainer,\n isAppMaximized && styles.containerMaximized\n )}\n >\n <DCAppComponent\n key={iframeKey}\n {...props}\n appContextValue={appContextValue}\n devCenterRouter={devCenterRouter}\n globalNotificationToastsAPI={window[Symbol.for('notificationToasts')]}\n globalMixpanelEventTracker={window[Symbol.for('logToMixpanel')]}\n onAppContainerClick={onAppContainerClick}\n onIsMaximizedChange={onIsMaximizedChange}\n permissionsContextValue={permissionsContextValue}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n userUnits={userUnits}\n />\n </div>\n </div>\n );\n}\n\nDevCenterIsolatedAppComponent.propTypes = {\n app: PropTypes.shape({\n id: PropTypes.number,\n app: PropTypes.shape({\n name: PropTypes.string,\n }),\n }).isRequired,\n currentUser: PropTypes.shape({}).isRequired,\n isIsolationFeatureEnabled: PropTypes.bool,\n onAppContainerClick: PropTypes.func,\n onAppFullscreenTransparentMode: PropTypes.func,\n onAppRemove: PropTypes.func,\n onInnerContainerMouseEnter: PropTypes.func,\n onInnerContainerMouseLeave: PropTypes.func,\n onIsMaximizedChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n onSettingsChange: PropTypes.func,\n setInnerContainerRefFn: PropTypes.func,\n updateCurrentDashboardAppLastAnnotation: PropTypes.func,\n};\n\nDevCenterIsolatedAppComponent.defaultProps = {\n isIsolationFeatureEnabled: false,\n onAppContainerClick: noop,\n onAppFullscreenTransparentMode: noop,\n onAppRemove: undefined,\n onInnerContainerMouseEnter: noop,\n onInnerContainerMouseLeave: noop,\n onIsMaximizedChange: noop,\n onSettingChange: noop,\n onSettingsChange: noop,\n setInnerContainerRefFn: noop,\n updateCurrentDashboardAppLastAnnotation: noop,\n};\n\nexport const DevCenterIsolatedApp = withRouter(DevCenterIsolatedAppComponent);\n"],"names":["DevCenterIsolatedAppComponent","_ref","_props$history","_props$app","_props$app2","_props$app3","_props$app3$app","_props$history2","_props$history2$locat","isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn","props","_objectWithoutProperties","_excluded","devCenterRouter","useMemo","devCenterUtils","createDevCenterRouter","history","location","isNonIsolatedApp","isCorvaApp","app","package","DCAppComponent","DevCenterAppContainer","IsolatedPage","appKey","app_key","appVersion","getAppVersion","iframeKey","concat","appIframeDocument","useRef","containerRef","fixedSizeContainerRef","fullscreenModeRef","fullscreenModalModeRef","isAppMaximized","queryString","parse","search","id","isAppMaximizedRef","current","_useState","useState","getUserUnits","_useState2","_slicedToArray","userUnits","setUserUnits","useEffect","unsubscribeFn","subscribeForUserUnitsUpdates","newUserUnits","appContextValue","useContext","AppContext","permissionsContextValue","usePermissionsContext","handleAppFullscreenTransparentModeExit","appId","isModeEnabled","document","body","classList","remove","styles","compensateScroll","setIsFullscreenModalMode","useCallback","nextIsFullscreenModalModeValue","_containerRef$current2","_containerRef$current4","_containerRef$current5","_containerRef$current6","_appIframeDocument$cu","isModal","_containerRef$current","add","containerMaximizedTransparentModal","_containerRef$current3","classesEditMethod","containerMaximizedTransparent","querySelector","APP_IFRAME_ATTRIBUTE","contentWindow","isolatedPageAppContainer","getElementById","ISOLATED_PAGE_APP_CONTAINER_ID","_fixedSizeContainerRe","getBoundingClientRect","top","left","width","height","setAttribute","isBodyScrollVisible","window","innerWidth","clientWidth","setContainerRefs","node","_jsx","className","classNames","fixedSizeContainer","ref","children","jsx","onMouseEnter","onMouseLeave","PAGE_NAME","name","container","isInsideNewMobileApp","newMobileAppContainer","containerMaximized","_objectSpread","globalNotificationToastsAPI","Symbol","for","globalMixpanelEventTracker","propTypes","PropTypes","shape","number","string","isRequired","currentUser","bool","func","onAppRemove","onSettingChange","onSettingsChange","updateCurrentDashboardAppLastAnnotation","defaultProps","noop","undefined","DevCenterIsolatedApp","withRouter"],"mappings":"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"}
1
+ {"version":3,"file":"DevCenterIsolatedApp.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { withRouter } from 'react-router-dom';\nimport { noop } from 'lodash';\nimport queryString from 'query-string';\nimport PropTypes from 'prop-types';\n\nimport { APP_IFRAME_ATTRIBUTE, IsolatedPage } from './IsolatedPage';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\n\nimport styles from './DevCenterIsolatedApp.module.css';\n\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { usePermissionsContext } from '~/permissions';\nimport { devcenter as devCenterUtils, getUserUnits, subscribeForUserUnitsUpdates } from '~/utils';\nimport { DevCenterAppContainer } from '~/components/DevCenter';\nimport { getAppVersion } from '~/components/DevCenter/DevCenterAppContainer/utils';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nfunction DevCenterIsolatedAppComponent({\n isIsolationFeatureEnabled,\n onAppFullscreenTransparentMode,\n onIsMaximizedChange,\n onInnerContainerMouseEnter,\n onInnerContainerMouseLeave,\n onAppContainerClick,\n setInnerContainerRefFn,\n trackApiRateLimiterException,\n ...props\n}) {\n const devCenterRouter = useMemo(\n () => devCenterUtils.createDevCenterRouter(props.history),\n [props.history?.location]\n );\n\n const isNonIsolatedApp =\n (devCenterUtils.isCorvaApp(props?.app?.app) &&\n !devCenterUtils.isIsolationEnabledInPackageManifest(props?.app?.package)) ||\n !isIsolationFeatureEnabled;\n\n const DCAppComponent = isNonIsolatedApp ? DevCenterAppContainer : IsolatedPage;\n\n // Key to force iframe recreation when app version changes.\n // This ensures global dependencies are re-initialized for the new version.\n const appKey = props.app?.app?.app_key;\n const appVersion = getAppVersion(props.app);\n const iframeKey = `${appKey}-${appVersion}`;\n\n const appIframeDocument = useRef();\n const containerRef = useRef();\n const fixedSizeContainerRef = useRef();\n const fullscreenModeRef = useRef(false);\n const fullscreenModalModeRef = useRef(false);\n\n const isAppMaximized = devCenterUtils.isAppMaximized(\n queryString.parse(props.history?.location?.search),\n props.app.id\n );\n\n // save to ref to not re-create setIsFullscreenModalMode callback on change and reduce the amoount of DC apps re-renders\n const isAppMaximizedRef = useRef(isAppMaximized);\n isAppMaximizedRef.current = isAppMaximized;\n\n const [userUnits, setUserUnits] = useState(getUserUnits());\n\n useEffect(() => {\n const unsubscribeFn = subscribeForUserUnitsUpdates(newUserUnits => setUserUnits(newUserUnits));\n\n return () => unsubscribeFn();\n }, []);\n\n const appContextValue = useContext(AppContext);\n const permissionsContextValue = usePermissionsContext();\n\n /*\n What is fullscreen modal mode?\n\n Our apps, are shown in isolated iFrames. Because of it, when an app has some modal\n and opens it - it's opened inside of its iframe, instead of opening at the center of the screen.\n\n To make app modals & other elements be opened at the center of the screen, as if they are not inside of an iframe,\n we use some hacks.\n\n When the app wants to open a fullscreen element, we make its iframe fullscreen, but with transparent background,\n and we set width/height & position of that app iframe to inner app container that is located inside of the iframe.\n So when iframe's fullscreen element is opened, it looks like it's a part of the platform, and the app which shows the element, looks like\n usual, not in fullscreen\n\n So the platform provides this setIsFullscreenModalMode function to DC apps.\n When DC app wants to open a modal that should be opened at the center of the screen - it needs to\n call setIsFullscreenModalMode(true) first. And when it closes the modal - setIsFullscreenModalMode(false)\n\n Two things are important about this\n - all these styles that make this invisible background work should be applied at once\n - enter and exit from the mode, shouldn't trigger even a single re-render, as it may impact\n some elements inside the DC app\n\n There's a second parameter to `setIsFullscreenModalMode`: `isModal`. It should be used when a fullscreen overlay is displayed\n (Modal, for instance) that should cover everything on screen.\n\n What it does - it basically sets the stretched element's z-index to a very high value, so it covers every other UI element in CWF\n */\n\n function handleAppFullscreenTransparentModeExit() {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n\n const setIsFullscreenModalMode = useCallback(\n function setIsFullscreenModalMode(nextIsFullscreenModalModeValue, isModal = false) {\n // When an app is already in fullscreen mode, no need to use this\n // invisible fullscreen mode to make elements take the whole screen\n\n if (\n !isIsolationFeatureEnabled ||\n isNonIsolatedApp ||\n (isAppMaximizedRef.current && !fullscreenModeRef.current) ||\n fullscreenModeRef.current === nextIsFullscreenModalModeValue\n ) {\n // Adding modal class if modal is opened when non-modal is already open\n if (isModal && fullscreenModalModeRef.current !== isModal) {\n fullscreenModalModeRef.current = isModal;\n containerRef.current?.classList.add(styles.containerMaximizedTransparentModal);\n }\n\n return;\n }\n\n const classesEditMethod = nextIsFullscreenModalModeValue ? 'add' : 'remove';\n\n containerRef.current?.classList[classesEditMethod](styles.containerMaximizedTransparent);\n\n if (isModal || classesEditMethod === 'remove') {\n containerRef.current?.classList[classesEditMethod](\n styles.containerMaximizedTransparentModal\n );\n }\n\n appIframeDocument.current = containerRef.current?.querySelector(\n `[${APP_IFRAME_ATTRIBUTE}]`\n )?.contentWindow?.document;\n\n const isolatedPageAppContainer = appIframeDocument.current?.getElementById(\n ISOLATED_PAGE_APP_CONTAINER_ID\n );\n\n if (!isolatedPageAppContainer) {\n return;\n }\n\n if (nextIsFullscreenModalModeValue) {\n const { top, left, width, height } = fixedSizeContainerRef.current.getBoundingClientRect();\n\n // We need to directly set inner iFrame container sizes together with DC platform styles\n // as passing this as props and using some effect inside of an iframe\n // results in a slight delay, which looks like a quick layout jump\n isolatedPageAppContainer.setAttribute(\n 'style',\n `\n top: ${top}px;\n left: ${left}px;\n width: ${width}px;\n height: ${height}px;\n position: absolute;\n `\n );\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: true });\n const isBodyScrollVisible = window.innerWidth !== document.body.clientWidth;\n document.body.classList.add(\n 'dc-isolated-app__body-overflow',\n isBodyScrollVisible && styles.compensateScroll\n );\n } else {\n isolatedPageAppContainer.setAttribute('style', '');\n handleAppFullscreenTransparentModeExit();\n }\n fullscreenModeRef.current = nextIsFullscreenModalModeValue;\n fullscreenModalModeRef.current = isModal;\n },\n [isIsolationFeatureEnabled, isNonIsolatedApp, isAppMaximizedRef]\n );\n\n useEffect(() => {\n return handleAppFullscreenTransparentModeExit;\n }, []);\n\n useEffect(() => {\n if (isAppMaximized && fullscreenModeRef.current) {\n setIsFullscreenModalMode(false);\n }\n }, [isAppMaximized]);\n\n /**\n * This should be the same function as calling react-intersection-observer's ref setter actually triggers re-render.\n * Which in its turn causes infinite re-render loop.\n */\n const setContainerRefs = useCallback(node => {\n containerRef.current = node;\n setInnerContainerRefFn(node);\n }, []);\n\n return (\n <div\n className={classNames('dc-isolated-app', styles.fixedSizeContainer)}\n ref={fixedSizeContainerRef}\n >\n <div\n ref={setContainerRefs}\n onMouseEnter={onInnerContainerMouseEnter}\n onMouseLeave={onInnerContainerMouseLeave}\n data-testid={`${PAGE_NAME}_${props.app.app.name}`}\n className={classNames(\n styles.container,\n isInsideNewMobileApp && styles.newMobileAppContainer,\n isAppMaximized && styles.containerMaximized\n )}\n >\n <DCAppComponent\n key={iframeKey}\n {...props}\n appContextValue={appContextValue}\n devCenterRouter={devCenterRouter}\n globalNotificationToastsAPI={window[Symbol.for('notificationToasts')]}\n globalMixpanelEventTracker={window[Symbol.for('logToMixpanel')]}\n onAppContainerClick={onAppContainerClick}\n onIsMaximizedChange={onIsMaximizedChange}\n permissionsContextValue={permissionsContextValue}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n userUnits={userUnits}\n trackApiRateLimiterException={trackApiRateLimiterException}\n />\n </div>\n </div>\n );\n}\n\nDevCenterIsolatedAppComponent.propTypes = {\n app: PropTypes.shape({\n id: PropTypes.number,\n app: PropTypes.shape({\n name: PropTypes.string,\n }),\n }).isRequired,\n currentUser: PropTypes.shape({}).isRequired,\n isIsolationFeatureEnabled: PropTypes.bool,\n onAppContainerClick: PropTypes.func,\n onAppFullscreenTransparentMode: PropTypes.func,\n onAppRemove: PropTypes.func,\n onInnerContainerMouseEnter: PropTypes.func,\n onInnerContainerMouseLeave: PropTypes.func,\n onIsMaximizedChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n onSettingsChange: PropTypes.func,\n setInnerContainerRefFn: PropTypes.func,\n updateCurrentDashboardAppLastAnnotation: PropTypes.func,\n};\n\nDevCenterIsolatedAppComponent.defaultProps = {\n isIsolationFeatureEnabled: false,\n onAppContainerClick: noop,\n onAppFullscreenTransparentMode: noop,\n onAppRemove: undefined,\n onInnerContainerMouseEnter: noop,\n onInnerContainerMouseLeave: noop,\n onIsMaximizedChange: noop,\n onSettingChange: noop,\n onSettingsChange: noop,\n setInnerContainerRefFn: noop,\n updateCurrentDashboardAppLastAnnotation: noop,\n};\n\nexport const DevCenterIsolatedApp = withRouter(DevCenterIsolatedAppComponent);\n"],"names":["DevCenterIsolatedAppComponent","_ref","_props$history","_props$app","_props$app2","_props$app3","_props$app3$app","_props$history2","_props$history2$locat","isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn","trackApiRateLimiterException","props","_objectWithoutProperties","_excluded","devCenterRouter","useMemo","devCenterUtils","createDevCenterRouter","history","location","isNonIsolatedApp","isCorvaApp","app","package","DCAppComponent","DevCenterAppContainer","IsolatedPage","appKey","app_key","appVersion","getAppVersion","iframeKey","concat","appIframeDocument","useRef","containerRef","fixedSizeContainerRef","fullscreenModeRef","fullscreenModalModeRef","isAppMaximized","queryString","parse","search","id","isAppMaximizedRef","current","_useState","useState","getUserUnits","_useState2","_slicedToArray","userUnits","setUserUnits","useEffect","unsubscribeFn","subscribeForUserUnitsUpdates","newUserUnits","appContextValue","useContext","AppContext","permissionsContextValue","usePermissionsContext","handleAppFullscreenTransparentModeExit","appId","isModeEnabled","document","body","classList","remove","styles","compensateScroll","setIsFullscreenModalMode","useCallback","nextIsFullscreenModalModeValue","_containerRef$current2","_containerRef$current4","_containerRef$current5","_containerRef$current6","_appIframeDocument$cu","isModal","_containerRef$current","add","containerMaximizedTransparentModal","_containerRef$current3","classesEditMethod","containerMaximizedTransparent","querySelector","APP_IFRAME_ATTRIBUTE","contentWindow","isolatedPageAppContainer","getElementById","ISOLATED_PAGE_APP_CONTAINER_ID","_fixedSizeContainerRe","getBoundingClientRect","top","left","width","height","setAttribute","isBodyScrollVisible","window","innerWidth","clientWidth","setContainerRefs","node","_jsx","className","classNames","fixedSizeContainer","ref","children","jsx","onMouseEnter","onMouseLeave","PAGE_NAME","name","container","isInsideNewMobileApp","newMobileAppContainer","containerMaximized","_objectSpread","globalNotificationToastsAPI","Symbol","for","globalMixpanelEventTracker","propTypes","PropTypes","shape","number","string","isRequired","currentUser","bool","func","onAppRemove","onSettingChange","onSettingsChange","updateCurrentDashboardAppLastAnnotation","defaultProps","noop","undefined","DevCenterIsolatedApp","withRouter"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/objectWithoutProperties"),o=require("react"),r=require("prop-types"),n=require("@material-ui/core"),i=require("classnames"),t=require("moment-timezone"),c=require("react-router-dom"),u=require("./effects/useXProps.js"),l=require("./constants.js"),a=require("./utils/replaceUndefinedValuesWithNull.js"),p=require("./utils/dashboardCapturing.js"),d=require("../DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js"),m=require("../DevCenterAppContainer/DevCenterAppContainer.js"),j=require("react/jsx-runtime");require("@icon-park/react/es/all");var q=require("../../../icons/IconParkProvider.js");require("../../../icons/customIcons/icons/AddMessage.js"),require("../../../icons/customIcons/icons/Attention.js"),require("../../../icons/customIcons/icons/Collapse.js"),require("../../../icons/customIcons/icons/Dashboard.js"),require("../../../icons/customIcons/icons/Expand.js"),require("../../../icons/customIcons/icons/FolderClosed.js"),require("../../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../../icons/customIcons/icons/FolderOpened.js"),require("../../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../../icons/customIcons/icons/LessOrEqual.js"),require("../../../icons/customIcons/icons/Search.js"),require("../../../icons/customIcons/icons/SearchOne.js"),require("../../../icons/customIcons/icons/Wellhub.js"),require("../../../icons/customIcons/icons/MultiRuler.js"),require("../../../icons/customIcons/icons/Checkbox.js"),require("../../../icons/customIcons/icons/CheckboxChecked.js"),require("../../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../../icons/customIcons/icons/Radio.js"),require("../../../icons/customIcons/icons/RadioChecked.js"),require("../../../icons/customIcons/icons/SimulFrac.js"),require("../../../icons/customIcons/icons/ZipperFrac.js"),require("../../../icons/customIcons/icons/CautionFilled.js"),require("../../../icons/customIcons/icons/MoreApp.js"),require("../../../icons/customIcons/icons/Pad.js"),require("../../../icons/customIcons/icons/DrilloutUnit.js"),require("../../../icons/customIcons/icons/FracFleet.js"),require("../../../icons/customIcons/icons/Global.js"),require("../../../icons/customIcons/icons/Program.js"),require("../../../icons/customIcons/icons/Rig.js"),require("../../../icons/customIcons/icons/Well.js"),require("../../../icons/customIcons/icons/Gap.js"),require("../../../icons/customIcons/icons/Pin.js"),require("../../../icons/customIcons/icons/CloseOneFilled.js"),require("../../../icons/customIcons/icons/AttentionFilled.js"),require("../../../icons/customIcons/icons/CheckOneFilled.js"),require("../../../icons/customIcons/icons/Archive.js"),require("../../../icons/customIcons/icons/ArchiveCancel.js"),require("../../../icons/customIcons/icons/Unarchive.js"),require("../../../icons/customIcons/icons/Archived.js"),require("../../../icons/customIcons/icons/InterventionUnit.js"),require("../../../icons/customIcons/icons/CloudDelete.js"),require("../../../icons/customIcons/icons/Lasso.js"),require("../../../icons/customIcons/icons/Radius.js");var I=require("../../../hocs/withMUIProvidersHOC.js");require("../../../hocs/withAssetEditorLockHOC.js");var f=require("../AppContext.js"),C=require("../../../constants/theme.js"),h=require("../../../CLI/hocs/constants.js"),g=require("../../../utils/themeVariables.js"),b=require("../../../CLI/hocs/utils.js"),v=require("../../../permissions/PermissionsContext.js"),P=require("../../../utils/index.js");function A(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../../styles/iconPark.global.css.js"),require("../../../styles/index.global.css.js"),require("../../../styles/reactVirtualized.global.css.js"),require("../../../styles/emojiMart.global.css.js"),require("../../../styles/mapbox.global.css.js"),require("../../../styles/lightbox.global.css.js"),require("../../../styles/generatedThemesVariables.global.css.js"),require("../../../styles/customScrollbars.global.css.js");var E=A(e),O=A(s),y=A(r),x=A(i),S=A(t),D=["appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits"];function L(e,s){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);s&&(r=r.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),o.push.apply(o,r)}return o}function T(e){for(var s=1;s<arguments.length;s++){var o=null!=arguments[s]?arguments[s]:{};s%2?L(Object(o),!0).forEach((function(s){E.default(e,s,o[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):L(Object(o)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(o,s))}))}return e}var w=I(m),k=n.makeStyles((function(){return{"@global":{body:{backgroundColor:"transparent",overflow:"hidden"}}}}));function M(e){var s,r,n,i,t,m,I=e.CLIAppComponent,A=e.CLIAppSettings,E=e.containerReportClassName;k();var y=u.useXProps(),L=y.appContextValue,M=y.globalMixpanelEventTracker,R=y.globalNotificationToastsAPI,F=y.onSettingChange,U=y.onSettingsChange,V=y.permissionsContextValue,N=y.timezone,H=y.userUnits,_=O.default(y,D),G=_.location.pathname.startsWith("/reports/")||b.isPDFReportView,W=null==_||null===(s=_.app)||void 0===s?void 0:s.id,z=localStorage.getItem(h.LOCAL_STORAGE_APP_THEME_KEY)||(null===(r=_.currentUser)||void 0===r||null===(n=r.settings)||void 0===n||null===(i=n.uiSettings)||void 0===i?void 0:i.theme)||C.THEMES.DARK,K=!G&&z!==C.THEMES.LIGHT;o.useEffect((function(){g.setThemeVariables(K)}),[K]),o.useEffect((function(){window[Symbol.for("notificationToasts")]=R,window[Symbol.for("logToMixpanel")]=M}),[R,M]);var X=o.useRef(!0);return(X.current||G)&&(X.current=!1,P.updateUserUnits({userUnits:H})),o.useEffect((function(){return N&&S.default.tz.setDefault(N),function(){return S.default.tz.setDefault(null)}}),[N]),o.useEffect((function(){var e=p.getDashboardCapturingHandler(W);return window.addEventListener("message",e),function(){return window.removeEventListener("message",e)}}),[W]),j.jsx(c.MemoryRouter,{initialEntries:[((null===(t=_.location)||void 0===t?void 0:t.pathname)||"/")+((null===(m=_.location)||void 0===m?void 0:m.search)||"")],children:j.jsx(v.PermissionsContext.Provider,{value:V,children:j.jsx(f.Provider,{value:L,children:j.jsx(d.IsInsideIsolatedDcAppProvider,{value:!0,children:j.jsx(q.IconParkProvider,{children:j.jsx("div",{id:l.ISOLATED_PAGE_APP_CONTAINER_ID,className:x.default(G&&E),children:j.jsx(w,T(T({},_),{},{theme:K?C.THEMES.DARK:C.THEMES.LIGHT,onSettingsChange:function(e){return U(a.replaceUndefinedValuesWithNull(e))},onSettingChange:function(e,s){return F(e,a.replaceUndefinedValuesWithNull(s))},CLIAppComponent:I,CLIAppSettings:A}))})})})})})})}M.propTypes={CLIAppComponent:y.default.func,CLIAppSettings:y.default.func,containerReportClassName:y.default.string},M.defaultProps={CLIAppComponent:null,CLIAppSettings:null,containerReportClassName:null},exports.DevCenterIsolatedAppPage=M;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/objectWithoutProperties"),o=require("react"),r=require("prop-types"),i=require("@material-ui/core"),n=require("classnames"),t=require("moment-timezone"),c=require("react-router-dom"),u=require("./effects/useXProps.js"),a=require("./constants.js"),l=require("./utils/replaceUndefinedValuesWithNull.js"),p=require("./utils/dashboardCapturing.js"),d=require("../DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js"),m=require("../DevCenterAppContainer/DevCenterAppContainer.js"),j=require("react/jsx-runtime");require("@icon-park/react/es/all");var q=require("../../../icons/IconParkProvider.js");require("../../../icons/customIcons/icons/AddMessage.js"),require("../../../icons/customIcons/icons/Attention.js"),require("../../../icons/customIcons/icons/Collapse.js"),require("../../../icons/customIcons/icons/Dashboard.js"),require("../../../icons/customIcons/icons/Expand.js"),require("../../../icons/customIcons/icons/FolderClosed.js"),require("../../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../../icons/customIcons/icons/FolderOpened.js"),require("../../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../../icons/customIcons/icons/LessOrEqual.js"),require("../../../icons/customIcons/icons/Search.js"),require("../../../icons/customIcons/icons/SearchOne.js"),require("../../../icons/customIcons/icons/Wellhub.js"),require("../../../icons/customIcons/icons/MultiRuler.js"),require("../../../icons/customIcons/icons/Checkbox.js"),require("../../../icons/customIcons/icons/CheckboxChecked.js"),require("../../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../../icons/customIcons/icons/Radio.js"),require("../../../icons/customIcons/icons/RadioChecked.js"),require("../../../icons/customIcons/icons/SimulFrac.js"),require("../../../icons/customIcons/icons/ZipperFrac.js"),require("../../../icons/customIcons/icons/CautionFilled.js"),require("../../../icons/customIcons/icons/MoreApp.js"),require("../../../icons/customIcons/icons/Pad.js"),require("../../../icons/customIcons/icons/DrilloutUnit.js"),require("../../../icons/customIcons/icons/FracFleet.js"),require("../../../icons/customIcons/icons/Global.js"),require("../../../icons/customIcons/icons/Program.js"),require("../../../icons/customIcons/icons/Rig.js"),require("../../../icons/customIcons/icons/Well.js"),require("../../../icons/customIcons/icons/Gap.js"),require("../../../icons/customIcons/icons/Pin.js"),require("../../../icons/customIcons/icons/CloseOneFilled.js"),require("../../../icons/customIcons/icons/AttentionFilled.js"),require("../../../icons/customIcons/icons/CheckOneFilled.js"),require("../../../icons/customIcons/icons/Archive.js"),require("../../../icons/customIcons/icons/ArchiveCancel.js"),require("../../../icons/customIcons/icons/Unarchive.js"),require("../../../icons/customIcons/icons/Archived.js"),require("../../../icons/customIcons/icons/InterventionUnit.js"),require("../../../icons/customIcons/icons/CloudDelete.js"),require("../../../icons/customIcons/icons/Lasso.js"),require("../../../icons/customIcons/icons/Radius.js");var I=require("../../../hocs/withMUIProvidersHOC.js");require("../../../hocs/withAssetEditorLockHOC.js");var f=require("../AppContext.js"),C=require("../../../constants/theme.js"),h=require("../../../CLI/hocs/constants.js"),g=require("../../../utils/themeVariables.js"),b=require("../../../CLI/hocs/utils.js"),v=require("../../../permissions/PermissionsContext.js"),P=require("../../../utils/index.js");function A(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../../styles/iconPark.global.css.js"),require("../../../styles/index.global.css.js"),require("../../../styles/reactVirtualized.global.css.js"),require("../../../styles/emojiMart.global.css.js"),require("../../../styles/mapbox.global.css.js"),require("../../../styles/lightbox.global.css.js"),require("../../../styles/generatedThemesVariables.global.css.js"),require("../../../styles/customScrollbars.global.css.js");var E=A(e),x=A(s),y=A(r),O=A(n),S=A(t),L=["appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","trackApiRateLimiterException"];function D(e,s){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);s&&(r=r.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),o.push.apply(o,r)}return o}function w(e){for(var s=1;s<arguments.length;s++){var o=null!=arguments[s]?arguments[s]:{};s%2?D(Object(o),!0).forEach((function(s){E.default(e,s,o[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):D(Object(o)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(o,s))}))}return e}var k=I(m),R=i.makeStyles((function(){return{"@global":{body:{backgroundColor:"transparent",overflow:"hidden"}}}}));function T(e){var s,r,i,n,t,m,I=e.CLIAppComponent,A=e.CLIAppSettings,E=e.containerReportClassName;R();var y=u.useXProps(),D=y.appContextValue,T=y.globalMixpanelEventTracker,M=y.globalNotificationToastsAPI,F=y.onSettingChange,U=y.onSettingsChange,V=y.permissionsContextValue,N=y.timezone,H=y.userUnits,_=y.trackApiRateLimiterException,G=x.default(y,L),W=G.location.pathname.startsWith("/reports/")||b.isPDFReportView,z=null==G||null===(s=G.app)||void 0===s?void 0:s.id,K=localStorage.getItem(h.LOCAL_STORAGE_APP_THEME_KEY)||(null===(r=G.currentUser)||void 0===r||null===(i=r.settings)||void 0===i||null===(n=i.uiSettings)||void 0===n?void 0:n.theme)||C.THEMES.DARK,X=!W&&K!==C.THEMES.LIGHT;o.useEffect((function(){g.setThemeVariables(X)}),[X]),o.useEffect((function(){window[Symbol.for("notificationToasts")]=M,window[Symbol.for("logToMixpanel")]=T,window[Symbol.for("corvaAPI.rateLimiterReport")]=_}),[M,T,_]);var Y=o.useRef(!0);return(Y.current||W)&&(Y.current=!1,P.updateUserUnits({userUnits:H})),o.useEffect((function(){return N&&S.default.tz.setDefault(N),function(){return S.default.tz.setDefault(null)}}),[N]),o.useEffect((function(){var e=p.getDashboardCapturingHandler(z);return window.addEventListener("message",e),function(){return window.removeEventListener("message",e)}}),[z]),j.jsx(c.MemoryRouter,{initialEntries:[((null===(t=G.location)||void 0===t?void 0:t.pathname)||"/")+((null===(m=G.location)||void 0===m?void 0:m.search)||"")],children:j.jsx(v.PermissionsContext.Provider,{value:V,children:j.jsx(f.Provider,{value:D,children:j.jsx(d.IsInsideIsolatedDcAppProvider,{value:!0,children:j.jsx(q.IconParkProvider,{children:j.jsx("div",{id:a.ISOLATED_PAGE_APP_CONTAINER_ID,className:O.default(W&&E),children:j.jsx(k,w(w({},G),{},{theme:X?C.THEMES.DARK:C.THEMES.LIGHT,onSettingsChange:function(e){return U(l.replaceUndefinedValuesWithNull(e))},onSettingChange:function(e,s){return F(e,l.replaceUndefinedValuesWithNull(s))},CLIAppComponent:I,CLIAppSettings:A,trackApiRateLimiterException:_}))})})})})})})}T.propTypes={CLIAppComponent:y.default.func,CLIAppSettings:y.default.func,containerReportClassName:y.default.string},T.defaultProps={CLIAppComponent:null,CLIAppSettings:null,containerReportClassName:null},exports.DevCenterIsolatedAppPage=T;
2
2
  //# sourceMappingURL=DevCenterIsolatedAppPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DevCenterIsolatedAppPage.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { useXProps } from './effects/useXProps';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\nimport { replaceUndefinedValuesWithNull } from './utils/replaceUndefinedValuesWithNull';\nimport { getDashboardCapturingHandler } from './utils/dashboardCapturing';\n\nimport { IsInsideIsolatedDcAppProvider } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport DevCenterAppContainer from '~/components/DevCenter/DevCenterAppContainer';\nimport { IconParkProvider } from '~/icons';\nimport { withMUIProvidersHOC } from '~/hocs';\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { THEMES } from '~/constants/theme';\nimport { LOCAL_STORAGE_APP_THEME_KEY } from '~/CLI/hocs/constants';\nimport { setThemeVariables } from '~/utils/themeVariables';\nimport { isPDFReportView } from '~/CLI/hocs/utils';\nimport { PermissionsContext } from '~/permissions/PermissionsContext';\nimport { updateUserUnits } from '~/utils';\nimport '~/styles/globalStyles';\n\nconst DevCenterAppContainerWithMUI = withMUIProvidersHOC(DevCenterAppContainer);\n\n/**\n * It's important to keep these global styles in js, to apply only\n * when the component is actually used, if moved to CSS - they'll be\n * applied to whatever somehow imports the code\n */\nconst useStyles = makeStyles(() => ({\n '@global': {\n body: {\n backgroundColor: 'transparent',\n overflow: 'hidden',\n },\n },\n}));\n\n/**\n * Root component that is rendered inside of app's iframe.\n * Receives CLIAppComponent, CLIAppSettings when used\n * in local development\n */\nexport function DevCenterIsolatedAppPage({\n CLIAppComponent,\n CLIAppSettings,\n containerReportClassName,\n}) {\n useStyles();\n\n const {\n appContextValue,\n globalMixpanelEventTracker,\n globalNotificationToastsAPI,\n onSettingChange,\n onSettingsChange,\n permissionsContextValue,\n timezone,\n userUnits,\n ...xProps\n } = useXProps();\n const isReportsPage = xProps.location.pathname.startsWith('/reports/') || isPDFReportView;\n const appId = xProps?.app?.id;\n\n // Force light theme for PDF reports view\n const selectedTheme =\n localStorage.getItem(LOCAL_STORAGE_APP_THEME_KEY) ||\n xProps.currentUser?.settings?.uiSettings?.theme ||\n THEMES.DARK;\n const isDarkTheme = !isReportsPage && selectedTheme !== THEMES.LIGHT;\n\n useEffect(() => {\n setThemeVariables(isDarkTheme);\n }, [isDarkTheme]);\n\n useEffect(() => {\n window[Symbol.for('notificationToasts')] = globalNotificationToastsAPI;\n window[Symbol.for('logToMixpanel')] = globalMixpanelEventTracker;\n }, [globalNotificationToastsAPI, globalMixpanelEventTracker]);\n\n const isFirstRenderRef = useRef(true);\n if (isFirstRenderRef.current || isReportsPage) {\n isFirstRenderRef.current = false;\n updateUserUnits({ userUnits });\n }\n\n useEffect(() => {\n if (timezone) moment.tz.setDefault(timezone);\n return () => moment.tz.setDefault(null);\n }, [timezone]);\n\n useEffect(() => {\n const dashboardCapturingHandler = getDashboardCapturingHandler(appId);\n window.addEventListener('message', dashboardCapturingHandler);\n return () => window.removeEventListener('message', dashboardCapturingHandler);\n }, [appId]);\n\n return (\n <MemoryRouter\n initialEntries={[(xProps.location?.pathname || '/') + (xProps.location?.search || '')]}\n >\n <PermissionsContext.Provider value={permissionsContextValue}>\n <AppContext.Provider value={appContextValue}>\n <IsInsideIsolatedDcAppProvider value>\n <IconParkProvider>\n <div\n id={ISOLATED_PAGE_APP_CONTAINER_ID}\n className={classNames(isReportsPage && containerReportClassName)}\n >\n <DevCenterAppContainerWithMUI\n {...xProps}\n theme={isDarkTheme ? THEMES.DARK : THEMES.LIGHT}\n // zoid serializes passed arguments using JSON.stringify.\n // All undefined values are removed as they are not valid JSON values\n // so we replace undefined values with null to not drop them\n // Any future cb function that passes arbitrary objects as args\n // also should be wrapped in this mapper\n // ⚠️⚠️⚠️ When refactoring this to referentially stable callbacks, remove `useStableCallback` from\n // /src/componentsV2/AppCommonsProvider/AppCommonsProvider.tsx\n onSettingsChange={nextSettings =>\n onSettingsChange(replaceUndefinedValuesWithNull(nextSettings))\n }\n onSettingChange={(key, value) =>\n onSettingChange(key, replaceUndefinedValuesWithNull(value))\n }\n CLIAppComponent={CLIAppComponent}\n CLIAppSettings={CLIAppSettings}\n />\n </div>\n </IconParkProvider>\n </IsInsideIsolatedDcAppProvider>\n </AppContext.Provider>\n </PermissionsContext.Provider>\n </MemoryRouter>\n );\n}\n\nDevCenterIsolatedAppPage.propTypes = {\n CLIAppComponent: PropTypes.func,\n CLIAppSettings: PropTypes.func,\n containerReportClassName: PropTypes.string,\n};\n\nDevCenterIsolatedAppPage.defaultProps = {\n CLIAppComponent: null,\n CLIAppSettings: null,\n containerReportClassName: null,\n};\n"],"names":["DevCenterAppContainerWithMUI","withMUIProvidersHOC","DevCenterAppContainer","useStyles","makeStyles","body","backgroundColor","overflow","DevCenterIsolatedAppPage","_ref","_xProps$app","_xProps$currentUser","_xProps$currentUser$s","_xProps$currentUser$s2","_xProps$location","_xProps$location2","CLIAppComponent","CLIAppSettings","containerReportClassName","_useXProps","useXProps","appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","xProps","_objectWithoutProperties","_excluded","isReportsPage","location","pathname","startsWith","isPDFReportView","appId","app","id","selectedTheme","localStorage","getItem","LOCAL_STORAGE_APP_THEME_KEY","currentUser","settings","uiSettings","theme","THEMES","DARK","isDarkTheme","LIGHT","useEffect","setThemeVariables","window","Symbol","for","isFirstRenderRef","useRef","current","updateUserUnits","moment","tz","setDefault","dashboardCapturingHandler","getDashboardCapturingHandler","addEventListener","removeEventListener","_jsx","MemoryRouter","initialEntries","search","children","PermissionsContext","Provider","value","AppContext","IsInsideIsolatedDcAppProvider","IconParkProvider","jsx","ISOLATED_PAGE_APP_CONTAINER_ID","className","classNames","_objectSpread","nextSettings","replaceUndefinedValuesWithNull","key","propTypes","PropTypes","func","string","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"DevCenterIsolatedAppPage.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { useXProps } from './effects/useXProps';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\nimport { replaceUndefinedValuesWithNull } from './utils/replaceUndefinedValuesWithNull';\nimport { getDashboardCapturingHandler } from './utils/dashboardCapturing';\n\nimport { IsInsideIsolatedDcAppProvider } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport DevCenterAppContainer from '~/components/DevCenter/DevCenterAppContainer';\nimport { IconParkProvider } from '~/icons';\nimport { withMUIProvidersHOC } from '~/hocs';\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { THEMES } from '~/constants/theme';\nimport { LOCAL_STORAGE_APP_THEME_KEY } from '~/CLI/hocs/constants';\nimport { setThemeVariables } from '~/utils/themeVariables';\nimport { isPDFReportView } from '~/CLI/hocs/utils';\nimport { PermissionsContext } from '~/permissions/PermissionsContext';\nimport { updateUserUnits } from '~/utils';\nimport '~/styles/globalStyles';\n\nconst DevCenterAppContainerWithMUI = withMUIProvidersHOC(DevCenterAppContainer);\n\n/**\n * It's important to keep these global styles in js, to apply only\n * when the component is actually used, if moved to CSS - they'll be\n * applied to whatever somehow imports the code\n */\nconst useStyles = makeStyles(() => ({\n '@global': {\n body: {\n backgroundColor: 'transparent',\n overflow: 'hidden',\n },\n },\n}));\n\n/**\n * Root component that is rendered inside of app's iframe.\n * Receives CLIAppComponent, CLIAppSettings when used\n * in local development\n */\nexport function DevCenterIsolatedAppPage({\n CLIAppComponent,\n CLIAppSettings,\n containerReportClassName,\n}) {\n useStyles();\n\n const {\n appContextValue,\n globalMixpanelEventTracker,\n globalNotificationToastsAPI,\n onSettingChange,\n onSettingsChange,\n permissionsContextValue,\n timezone,\n userUnits,\n trackApiRateLimiterException,\n ...xProps\n } = useXProps();\n const isReportsPage = xProps.location.pathname.startsWith('/reports/') || isPDFReportView;\n const appId = xProps?.app?.id;\n\n // Force light theme for PDF reports view\n const selectedTheme =\n localStorage.getItem(LOCAL_STORAGE_APP_THEME_KEY) ||\n xProps.currentUser?.settings?.uiSettings?.theme ||\n THEMES.DARK;\n const isDarkTheme = !isReportsPage && selectedTheme !== THEMES.LIGHT;\n\n useEffect(() => {\n setThemeVariables(isDarkTheme);\n }, [isDarkTheme]);\n\n useEffect(() => {\n window[Symbol.for('notificationToasts')] = globalNotificationToastsAPI;\n window[Symbol.for('logToMixpanel')] = globalMixpanelEventTracker;\n window[Symbol.for('corvaAPI.rateLimiterReport')] = trackApiRateLimiterException;\n }, [globalNotificationToastsAPI, globalMixpanelEventTracker, trackApiRateLimiterException]);\n\n const isFirstRenderRef = useRef(true);\n if (isFirstRenderRef.current || isReportsPage) {\n isFirstRenderRef.current = false;\n updateUserUnits({ userUnits });\n }\n\n useEffect(() => {\n if (timezone) moment.tz.setDefault(timezone);\n return () => moment.tz.setDefault(null);\n }, [timezone]);\n\n useEffect(() => {\n const dashboardCapturingHandler = getDashboardCapturingHandler(appId);\n window.addEventListener('message', dashboardCapturingHandler);\n return () => window.removeEventListener('message', dashboardCapturingHandler);\n }, [appId]);\n\n return (\n <MemoryRouter\n initialEntries={[(xProps.location?.pathname || '/') + (xProps.location?.search || '')]}\n >\n <PermissionsContext.Provider value={permissionsContextValue}>\n <AppContext.Provider value={appContextValue}>\n <IsInsideIsolatedDcAppProvider value>\n <IconParkProvider>\n <div\n id={ISOLATED_PAGE_APP_CONTAINER_ID}\n className={classNames(isReportsPage && containerReportClassName)}\n >\n <DevCenterAppContainerWithMUI\n {...xProps}\n theme={isDarkTheme ? THEMES.DARK : THEMES.LIGHT}\n // zoid serializes passed arguments using JSON.stringify.\n // All undefined values are removed as they are not valid JSON values\n // so we replace undefined values with null to not drop them\n // Any future cb function that passes arbitrary objects as args\n // also should be wrapped in this mapper\n // ⚠️⚠️⚠️ When refactoring this to referentially stable callbacks, remove `useStableCallback` from\n // /src/componentsV2/AppCommonsProvider/AppCommonsProvider.tsx\n onSettingsChange={nextSettings =>\n onSettingsChange(replaceUndefinedValuesWithNull(nextSettings))\n }\n onSettingChange={(key, value) =>\n onSettingChange(key, replaceUndefinedValuesWithNull(value))\n }\n CLIAppComponent={CLIAppComponent}\n CLIAppSettings={CLIAppSettings}\n trackApiRateLimiterException={trackApiRateLimiterException}\n />\n </div>\n </IconParkProvider>\n </IsInsideIsolatedDcAppProvider>\n </AppContext.Provider>\n </PermissionsContext.Provider>\n </MemoryRouter>\n );\n}\n\nDevCenterIsolatedAppPage.propTypes = {\n CLIAppComponent: PropTypes.func,\n CLIAppSettings: PropTypes.func,\n containerReportClassName: PropTypes.string,\n};\n\nDevCenterIsolatedAppPage.defaultProps = {\n CLIAppComponent: null,\n CLIAppSettings: null,\n containerReportClassName: null,\n};\n"],"names":["DevCenterAppContainerWithMUI","withMUIProvidersHOC","DevCenterAppContainer","useStyles","makeStyles","body","backgroundColor","overflow","DevCenterIsolatedAppPage","_ref","_xProps$app","_xProps$currentUser","_xProps$currentUser$s","_xProps$currentUser$s2","_xProps$location","_xProps$location2","CLIAppComponent","CLIAppSettings","containerReportClassName","_useXProps","useXProps","appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","trackApiRateLimiterException","xProps","_objectWithoutProperties","_excluded","isReportsPage","location","pathname","startsWith","isPDFReportView","appId","app","id","selectedTheme","localStorage","getItem","LOCAL_STORAGE_APP_THEME_KEY","currentUser","settings","uiSettings","theme","THEMES","DARK","isDarkTheme","LIGHT","useEffect","setThemeVariables","window","Symbol","for","isFirstRenderRef","useRef","current","updateUserUnits","moment","tz","setDefault","dashboardCapturingHandler","getDashboardCapturingHandler","addEventListener","removeEventListener","_jsx","MemoryRouter","initialEntries","search","children","PermissionsContext","Provider","value","AppContext","IsInsideIsolatedDcAppProvider","IconParkProvider","jsx","ISOLATED_PAGE_APP_CONTAINER_ID","className","classNames","_objectSpread","nextSettings","replaceUndefinedValuesWithNull","key","propTypes","PropTypes","func","string","defaultProps"],"mappings":"+3JAyBA,IAAMA,EAA+BC,EAAoBC,GAOnDC,EAAYC,EAAUA,YAAC,WAAA,MAAO,CAClC,UAAW,CACTC,KAAM,CACJC,gBAAiB,cACjBC,SAAU,WAGf,IAOM,SAASC,EAIbC,GAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAHDC,IAAAA,gBACAC,IAAAA,eACAC,IAAAA,yBAEAf,IAEA,IAAAgB,EAWIC,EAAAA,YAVFC,IAAAA,gBACAC,IAAAA,2BACAC,IAAAA,4BACAC,IAAAA,gBACAC,IAAAA,iBACAC,IAAAA,wBACAC,IAAAA,SACAC,IAAAA,UACAC,IAAAA,6BACGC,EAAMC,EAAA,QAAAZ,EAAAa,GAELC,EAAgBH,EAAOI,SAASC,SAASC,WAAW,cAAgBC,kBACpEC,EAAQR,SAAA,QAAAA,EAAAA,EAAQS,WAAR,IAAA7B,OAAAoB,EAAApB,EAAa8B,GAGrBC,EACJC,aAAaC,QAAQC,EAA2BA,uCAChDd,EAAAA,EAAOe,0BAAP,UAAAlC,EAAoBmC,gBAApB,IAAAlC,GAAwC,QAAxCC,EAAAD,EAA8BmC,kBAAU,IAAAlC,SAAxCA,EAA0CmC,QAC1CC,EAAMA,OAACC,KACHC,GAAelB,GAAiBQ,IAAkBQ,EAAAA,OAAOG,MAE/DC,EAAAA,WAAU,WACRC,EAAiBA,kBAACH,EACpB,GAAG,CAACA,IAEJE,EAAAA,WAAU,WACRE,OAAOC,OAAOC,IAAI,uBAAyBlC,EAC3CgC,OAAOC,OAAOC,IAAI,kBAAoBnC,EACtCiC,OAAOC,OAAOC,IAAI,+BAAiC5B,CACpD,GAAE,CAACN,EAA6BD,EAA4BO,IAE7D,IAAM6B,EAAmBC,UAAO,GAiBhC,OAhBID,EAAiBE,SAAW3B,KAC9ByB,EAAiBE,SAAU,EAC3BC,kBAAgB,CAAEjC,UAAAA,KAGpByB,EAAAA,WAAU,WAER,OADI1B,GAAUmC,EAAM,QAACC,GAAGC,WAAWrC,GAC5B,WAAA,OAAMmC,UAAOC,GAAGC,WAAW,KAAK,CACzC,GAAG,CAACrC,IAEJ0B,EAAAA,WAAU,WACR,IAAMY,EAA4BC,+BAA6B5B,GAE/D,OADAiB,OAAOY,iBAAiB,UAAWF,GAC5B,WAAA,OAAMV,OAAOa,oBAAoB,UAAWH,EAA0B,CAC/E,GAAG,CAAC3B,IAGF+B,EAAAA,IAACC,EAAAA,aAAY,CACXC,eAAgB,GAAE,QAAAzD,EAAAgB,EAAOI,gBAAP,IAAApB,OAAA,EAAAA,EAAiBqB,WAAY,OAAuB,QAAfpB,EAAAe,EAAOI,gBAAQ,IAAAnB,OAAA,EAAfA,EAAiByD,SAAU,KAAKC,SAEvFJ,EAAAA,IAACK,EAAkBA,mBAACC,SAAQ,CAACC,MAAOlD,EAAwB+C,SAC1DJ,EAAAA,IAACQ,EAAWF,SAAQ,CAACC,MAAOvD,EAAgBoD,SAC1CJ,MAACS,gCAA6B,CAACF,OAAK,EAAAH,SAClCJ,MAACU,mBAAgB,CAAAN,SACfJ,EAAAW,IAAA,MAAA,CACExC,GAAIyC,EAA+BA,+BACnCC,UAAWC,EAAAA,QAAWlD,GAAiBf,GAA0BuD,SAEjEJ,EAAAA,IAACrE,EAA4BoF,EAAAA,EAAA,GACvBtD,GAAM,GAAA,CACVkB,MAAOG,EAAcF,EAAAA,OAAOC,KAAOD,EAAMA,OAACG,MAQ1C3B,iBAAkB,SAAA4D,GAAY,OAC5B5D,EAAiB6D,EAAAA,+BAA+BD,GACjD,EACD7D,gBAAiB,SAAC+D,EAAKX,GAAK,OAC1BpD,EAAgB+D,EAAKD,iCAA+BV,GACrD,EACD5D,gBAAiBA,EACjBC,eAAgBA,EAChBY,6BAA8BA,gBAShD,CAEArB,EAAyBgF,UAAY,CACnCxE,gBAAiByE,EAAS,QAACC,KAC3BzE,eAAgBwE,EAAS,QAACC,KAC1BxE,yBAA0BuE,EAAS,QAACE,QAGtCnF,EAAyBoF,aAAe,CACtC5E,gBAAiB,KACjBC,eAAgB,KAChBC,yBAA0B"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),r=require("@babel/runtime/helpers/asyncToGenerator"),t=require("@babel/runtime/helpers/defineProperty"),n=require("@babel/runtime/regenerator"),u=require("querystring"),a=require("react"),i=require("uuid/v1"),c=require("lodash"),s=require("../../clients/subscriptions.v1.js"),o=require("../../clients/utils.js"),p=require("../../clients/jsonApi/index.js");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=f(e),d=f(r),b=f(t),m=f(n),y=f(i);function v(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function h(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?v(Object(t),!0).forEach((function(r){b.default(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):v(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function g(e,r,t){var n=s.getSubscriptionId(e,r);return h(h({},e),{},{hookId:r,subId:n,appInstanceId:n,app_key:t})}function O(e,r){return w.apply(this,arguments)}function w(){return w=d.default(m.default.mark((function e(r,t){var n,u,a;return m.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.timeQuery,u=t.appKey,a=r.map(function(){var e=d.default(m.default.mark((function e(r){var t,a,i,c,s,o,f,l,d;return m.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=r.provider,a=r.collection,i=r.assetId,c=r.subscribeOnly,s=r.params,!c){e.next=3;break}return e.abrupt("return",null);case 3:return o=s.query,f=n?"{timestamp#lte#".concat(n.timestamp.$lte):"",l=o&&f?"AND":"",d="".concat(o).concat(l).concat(f),e.prev=7,e.next=10,p.getAppStorage(t,a,i,h(h(h({},s),d?{query:d}:{}),{},{appKey:u}));case 10:return e.abrupt("return",e.sent);case 13:return e.prev=13,e.t0=e.catch(7),e.abrupt("return",[]);case 16:case"end":return e.stop()}}),e,null,[[7,13]])})));return function(r){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(a));case 3:case"end":return e.stop()}}),e)}))),w.apply(this,arguments)}function I(e,r){return j.apply(this,arguments)}function j(){return j=d.default(m.default.mark((function e(r,t){var n,u,a;return m.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.timeQuery,u=t.appKey,a=r.map(function(){var e=d.default(m.default.mark((function e(r){var t,a,i,s,o,f,l,d,b,y,v,g;return m.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=r.provider,a=r.collection,i=r.assetId,s=r.subscribeOnly,o=r.params,f=void 0===o?{}:o,!s){e.next=3;break}return e.abrupt("return",null);case 3:if(!f.aggregate){e.next=5;break}return e.abrupt("return",p.getDataAppStorageAggregate(t,a,h({},c.mapValues(f.aggregate,JSON.stringify))));case 5:return l=JSON.stringify(c.merge({asset_id:i},f.query,n)),d=f.limit,b=void 0===d?1:d,y=f.sort,v=void 0===y?'{"timestamp": 1}':y,e.prev=7,g=h(h({},f),{},{limit:b,sort:v,query:l,appKey:u}),e.next=11,p.getDataAppStorage(t,a,g);case 11:return e.abrupt("return",e.sent);case 14:return e.prev=14,e.t0=e.catch(7),e.abrupt("return",[]);case 17:case"end":return e.stop()}}),e,null,[[7,14]])})));return function(r){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(a));case 3:case"end":return e.stop()}}),e)}))),j.apply(this,arguments)}exports.fetchInitialSubscriptionsData=I,exports.fetchInitialSubscriptionsDataDeprecated=O,exports.useSubscriptionsV1=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=r.timestamp,n=r.isOldApiUsed,i=a.useState({}),s=l.default(i,2),p=s[0],f=s[1],d=a.useRef();d.current||(d.current=y.default());var m=window[Symbol.for("socket")],v=m.subscribe,w=m.unsubscribe,j=m.socket,q=a.useMemo((function(){return o.getAppKeyFromStackTrace()}),[]),S=a.useRef([]),k=c.castArray(e).map((function(e){return g(e,d.current,q)})),x=k.map((function(e){return e.subId})).join(),P=a.useMemo((function(){if(t)return{timestamp:{$lte:t}};var e=u.parse(window.location.search).time;return e?{timestamp:{$lte:new Date(e)/1e3}}:null}),[window.location.search,t]);return a.useEffect((function(){var e=function(e){e.hookId===d.current&&f((function(r){var t=e.data;return e.subId in r&&!e.subscribeOnly&&(t=c.concat(r[e.subId],e.data)),e.params&&e.params.limit&&(t=t.slice(-e.params.limit)),h(h({},r),{},b.default({},e.subId,t))}))};return j&&j.on("data",e),function(){j&&j.off("data",e)}}),[]),a.useEffect((function(){S.current.forEach(w),S.current=[]}),[P]),a.useEffect((function(){var e=S.current,r=c.differenceBy(k,e,"subId"),t=c.differenceBy(e,k,"subId");r.forEach((function(e){P&&!e.alwaysSubscribe||v(e)})),t.forEach(w),S.current=k,(n?O:I)(r,{timeQuery:P,appKey:q,isOldApiUsed:n}).then((function(e){return f((function(n){var u=c.omit(n,t.map((function(e){return e.subId})));return r.forEach((function(r,t){null!==e[t]&&(u[r.subId]=e[t])})),u}))}))}),[x,P]),a.useEffect((function(){return function(){return S.current.forEach(w)}}),[]),a.useMemo((function(){return k.map((function(e){var r=e.subId;return{loading:!(r in p),data:p[r]}}))}),[p,x])};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),r=require("@babel/runtime/helpers/asyncToGenerator"),t=require("@babel/runtime/helpers/defineProperty"),n=require("@babel/runtime/regenerator"),u=require("querystring"),a=require("react"),i=require("uuid/v1"),c=require("lodash"),s=require("../../clients/subscriptions.v1.js"),o=require("../../clients/utils.js"),p=require("../../clients/jsonApi/index.js");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=f(e),d=f(r),b=f(t),m=f(n),y=f(i);function v(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function h(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?v(Object(t),!0).forEach((function(r){b.default(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):v(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function g(e,r,t){var n=s.getSubscriptionId(e,r);return h(h({},e),{},{hookId:r,subId:n,appInstanceId:n,app_key:t})}function O(e,r){return w.apply(this,arguments)}function w(){return w=d.default(m.default.mark((function e(r,t){var n,u,a;return m.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.timeQuery,u=t.appKey,a=r.map(function(){var e=d.default(m.default.mark((function e(r){var t,a,i,c,s,o,f,l,d;return m.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=r.provider,a=r.collection,i=r.assetId,c=r.subscribeOnly,s=r.params,!c){e.next=3;break}return e.abrupt("return",null);case 3:return o=s.query,f=n?"{timestamp#lte#".concat(n.timestamp.$lte):"",l=o&&f?"AND":"",d="".concat(o).concat(l).concat(f),e.prev=7,e.next=10,p.getAppStorage(t,a,i,h(h(h({},s),d?{query:d}:{}),{},{appKey:u}));case 10:return e.abrupt("return",e.sent);case 13:return e.prev=13,e.t0=e.catch(7),e.abrupt("return",[]);case 16:case"end":return e.stop()}}),e,null,[[7,13]])})));return function(r){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(a));case 3:case"end":return e.stop()}}),e)}))),w.apply(this,arguments)}function I(e,r){return j.apply(this,arguments)}function j(){return j=d.default(m.default.mark((function e(r,t){var n,u,a;return m.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.timeQuery,u=t.appKey,a=r.map(function(){var e=d.default(m.default.mark((function e(r){var t,a,i,s,o,f,l,d,b,y,v,g;return m.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=r.provider,a=r.collection,i=r.assetId,s=r.subscribeOnly,o=r.params,f=void 0===o?{}:o,!s){e.next=3;break}return e.abrupt("return",null);case 3:if(!f.aggregate){e.next=5;break}return e.abrupt("return",p.getDataAppStorageAggregate(t,a,h({},c.mapValues(f.aggregate,JSON.stringify))));case 5:return l=JSON.stringify(c.merge({asset_id:i},f.query,n)),d=f.limit,b=void 0===d?1:d,y=f.sort,v=void 0===y?'{"timestamp": 1}':y,e.prev=7,g=h(h({},f),{},{limit:b,sort:v,query:l,appKey:u}),e.next=11,p.getDataAppStorage(t,a,g);case 11:return e.abrupt("return",e.sent);case 14:return e.prev=14,e.t0=e.catch(7),e.abrupt("return",[]);case 17:case"end":return e.stop()}}),e,null,[[7,14]])})));return function(r){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(a));case 3:case"end":return e.stop()}}),e)}))),j.apply(this,arguments)}exports.fetchInitialSubscriptionsData=I,exports.fetchInitialSubscriptionsDataDeprecated=O,exports.useSubscriptionsV1=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=r.timestamp,n=r.isOldApiUsed,i=a.useState({}),s=l.default(i,2),p=s[0],f=s[1],d=a.useRef();d.current||(d.current=y.default());var m=window[Symbol.for("socket")],v=m.subscribe,w=m.unsubscribe,j=m.socket,q=a.useMemo((function(){var e;return null===(e=o.getAppKeyAndId())||void 0===e?void 0:e.appKey}),[]),x=a.useRef([]),S=c.castArray(e).map((function(e){return g(e,d.current,q)})),k=S.map((function(e){return e.subId})).join(),A=a.useMemo((function(){if(t)return{timestamp:{$lte:t}};var e=u.parse(window.location.search).time;return e?{timestamp:{$lte:new Date(e)/1e3}}:null}),[window.location.search,t]);return a.useEffect((function(){var e=function(e){e.hookId===d.current&&f((function(r){var t=e.data;return e.subId in r&&!e.subscribeOnly&&(t=c.concat(r[e.subId],e.data)),e.params&&e.params.limit&&(t=t.slice(-e.params.limit)),h(h({},r),{},b.default({},e.subId,t))}))};return j&&j.on("data",e),function(){j&&j.off("data",e)}}),[]),a.useEffect((function(){x.current.forEach(w),x.current=[]}),[A]),a.useEffect((function(){var e=x.current,r=c.differenceBy(S,e,"subId"),t=c.differenceBy(e,S,"subId");r.forEach((function(e){A&&!e.alwaysSubscribe||v(e)})),t.forEach(w),x.current=S,(n?O:I)(r,{timeQuery:A,appKey:q,isOldApiUsed:n}).then((function(e){return f((function(n){var u=c.omit(n,t.map((function(e){return e.subId})));return r.forEach((function(r,t){null!==e[t]&&(u[r.subId]=e[t])})),u}))}))}),[k,A]),a.useEffect((function(){return function(){return x.current.forEach(w)}}),[]),a.useMemo((function(){return S.map((function(e){var r=e.subId;return{loading:!(r in p),data:p[r]}}))}),[p,k])};
2
2
  //# sourceMappingURL=useSubscriptions.v1.js.map