From 30ff1103963c2cd7b3178a7121ba12969591d375 Mon Sep 17 00:00:00 2001 From: Nitish Tiwari Date: Tue, 7 Mar 2023 11:43:54 +0530 Subject: [PATCH] Optimise to avoid looping the response --- dist/MANIFEST.txt | 20 +++++++++---------- dist/module.js | 2 +- dist/module.js.map | 2 +- dist/plugin.json | 2 +- releases/parseable-datasource-1.0.2.zip | Bin 1026233 -> 1026197 bytes releases/parseable-datasource-1.0.2.zip.sha1 | 2 +- src/datasource.ts | 14 ++++++------- 7 files changed, 20 insertions(+), 22 deletions(-) diff --git a/dist/MANIFEST.txt b/dist/MANIFEST.txt index cb2dc4f..02f1704 100644 --- a/dist/MANIFEST.txt +++ b/dist/MANIFEST.txt @@ -9,13 +9,13 @@ Hash: SHA512 "signedByOrgName": "parseable", "plugin": "parseable-parseable-datasource", "version": "1.0.2", - "time": 1678116427014, + "time": 1678169515198, "keyId": "7e4d0c6a708866e7", "files": { "LICENSE": "20b067f86de375aae6db0f283ab2e65de24d537733b89bd58432c101259d84cf", "CHANGELOG.md": "ba613d6f914b27dce9ace4d8c0cb074273c9eb6c536d8e7ac24c5ce6ae941fd0", - "module.js.map": "7189edd1ce6145446698271b0a58dfc3f14444d1e3ffe3ea885e07ca1620af8a", - "plugin.json": "9aeb4b12dc39425b139e9818c0b9f4c30314de6387bf5c8802deb7e36eed6a57", + "module.js.map": "c3eb00d2db427c37d1a8dbd72c46a1f91a16817cce31e10c8c1e0d12b06e2845", + "plugin.json": "f8966d9ecd731dc904e033d179218965fea4dab8a9483a28ce33f857d89f105c", "README.md": "030a05e0d49d3746ef272d53c99936e3b98e3219a1cac96ca1df48ddee475934", "img/configuration.png": "c545a51bcc88809b2b4f87aac517a7d27ad61281344b0485c9826370b915b4d8", "img/log-view-text.png": "8c6555af9c391cb1a8368c79b9bcc7386887beeea061e3483b0e020feec9d73d", @@ -30,7 +30,7 @@ Hash: SHA512 "stories/assets/code-brackets.svg": "9ef6443ebd43351be1a6edbab492003b84f2e30c8f80207ec8c4138fa440f7f4", "stories/assets/flow.svg": "275142c67bb630246cbdfb0fc3493f17dd695544777ec8da852dbbe94976d323", "stories/assets/repo.svg": "fb4ece472009833a03b9f1fbc775f13a010d9432cae3844e8b05710ba028100d", - "module.js": "08c7db3293d45747bf8aa5c99a3b6bb9e6a12d48f358b4e034c60ec3f2381f7f", + "module.js": "15358a59697f68c4f7951c04b481c01c76989211702ccd762a247d6b4d7d1f56", "dashboards/log-view.json": "224d921c8a5a4c3ed426de83f8f70ddb6406690687423b15e6e5822190bcb64c" } } @@ -38,10 +38,10 @@ Hash: SHA512 Version: OpenPGP.js v4.10.10 Comment: https://openpgpjs.org -wrcEARMKAAYFAmQGBksAIQkQfk0ManCIZucWIQTzOyW2kQdOhGNlcPN+TQxq -cIhm5xzGAgY8M1HwqILkK/r9A/kbQdqZUMnRwWoqmk/rF0Iy/QZBJwtOxfx/ -1as1g5GpBzNshpJttopD0cQuyjcu89ZFYRWIwAIFFfp1noxjDozs/Dex0yKV -wiwDqSjus2rxBNm3Yw7YSqXNgLymJRC/BnG+3g0MYeK1iKccy9tWqG9iBpuw -Cdjl1Uk= -=aVxm +wrgEARMKAAYFAmQG1asAIQkQfk0ManCIZucWIQTzOyW2kQdOhGNlcPN+TQxq +cIhm55wRAgYtpv30X4rrnRzulBUA5hUEfEFEhKDzcO1r1wDMFwcFMIouTNEY +5BZN7+1rhq1kJ/9QFwD7cEV5I7w53ivWI1boLQIJAazsCIsKX0cos12s+vwy +zfUAAsOiPtEhfPeKfb7mhVyUOwZ9lKGzzjxJqh7iozuWz8OgixbsE6ZZyt7d +TE1nbEN/ +=7oRX -----END PGP SIGNATURE----- diff --git a/dist/module.js b/dist/module.js index 961382b..40921f0 100644 --- a/dist/module.js +++ b/dist/module.js @@ -1,2 +1,2 @@ -define(["@grafana/data","@grafana/runtime","rxjs","lodash","react","@grafana/ui"],((e,t,r,n,o,i)=>(()=>{"use strict";var a={305:t=>{t.exports=e},545:e=>{e.exports=t},388:e=>{e.exports=i},980:e=>{e.exports=n},650:e=>{e.exports=o},177:e=>{e.exports=r}},u={};function s(e){var t=u[e];if(void 0!==t)return t.exports;var r=u[e]={exports:{}};return a[e](r,r.exports,s),r.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var c={};return(()=>{s.r(c),s.d(c,{plugin:()=>ue});var e=s(305),t=s(545),r=s(177);function n(e){return"function"==typeof e}function o(e){return function(t){if(function(e){return n(null==e?void 0:e.lift)}(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}}var i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},i(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function u(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function f(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function p(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o1||u(e,t)}))})}function u(e,t){try{(r=o[e](t)).value instanceof h?Promise.resolve(r.value.v).then(s,c):l(i[0][2],r)}catch(e){l(i[0][3],e)}var r}function s(e){u("next",e)}function c(e){u("throw",e)}function l(e,t){e(t),i.shift(),i.length&&u(i[0][0],i[0][1])}}Object.create,Object.create;var v,y=((v=function(e){var t;t=this,Error.call(t),t.stack=(new Error).stack,this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e}).prototype=Object.create(Error.prototype),v.prototype.constructor=v,v);function b(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var m=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}var t;return e.prototype.unsubscribe=function(){var e,t,r,o,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var u=l(a),s=u.next();!s.done;s=u.next())s.value.remove(this)}catch(t){e={error:t}}finally{try{s&&!s.done&&(t=u.return)&&t.call(u)}finally{if(e)throw e.error}}else a.remove(this);var c=this.initialTeardown;if(n(c))try{c()}catch(e){i=e instanceof y?e.errors:[e]}var h=this._finalizers;if(h){this._finalizers=null;try{for(var d=l(h),v=d.next();!v.done;v=d.next()){var b=v.value;try{g(b)}catch(e){i=null!=i?i:[],e instanceof y?i=p(p([],f(i)),f(e.errors)):i.push(e)}}}catch(e){r={error:e}}finally{try{v&&!v.done&&(o=d.return)&&o.call(d)}finally{if(r)throw r.error}}}if(i)throw new y(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)g(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(r=this._finalizers)&&void 0!==r?r:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&b(t,e)},e.prototype.remove=function(t){var r=this._finalizers;r&&b(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();function w(e){return e instanceof m||e&&"closed"in e&&n(e.remove)&&n(e.add)&&n(e.unsubscribe)}function g(e){n(e)?e():e.unsubscribe()}m.EMPTY;var S=null,x=null,T=void 0,O=!1,_=!1,E={setTimeout:function(e,t){for(var r=[],n=2;n!e.hide)),0===e.targets.length)return Promise.resolve({data:[]});const{range:n}=e;if(!n)return Promise.resolve({data:[]});const o=n.from,i=n.to,a=e.targets.map((e=>{const n={query:e.queryText,startTime:o.toISOString(),endTime:i.toISOString(),send_null:!0};return(0,r.lastValueFrom)(t.doFetch({url:t.url+"/api/v1/query",data:n,method:"POST"}).pipe(V((e=>t.arrayToDataFrame(e.data))),J((e=>(0,r.of)({data:[]})))))}));return{data:yield Promise.all(a)}}))()}arrayToDataFrame(t){let r=new e.MutableDataFrame;if(t.length>0){const n=Object.keys(t[0]).map((r=>({name:r,type:(0,e.guessFieldTypeFromValue)(t[0][r])})));for(const t of n)if("p_timestamp"===t.name.toLowerCase()){t.type=e.FieldType.time;break}r=new e.MutableDataFrame({fields:n})}return t.forEach((e=>{r.appendRow(Object.values(e))})),r}doFetch(e){return e.withCredentials=this.withCredentials,e.headers=this.headers,(0,t.getBackendSrv)().fetch(e)}listStreams(){var e=this;return Z((function*(){return(0,r.lastValueFrom)(e.doFetch({url:e.url+"/api/v1/logstream",method:"GET"}).pipe(V((e=>(0,K.isArray)(e.data)?e.data:[])),J((e=>(0,r.of)([])))))}))()}streamStats(e){var t=this;return Z((function*(){return e?(0,r.lastValueFrom)(t.doFetch({url:t.url+"/api/v1/logstream/"+e.value+"/stats",method:"GET"}).pipe(V((e=>"object"!=typeof e.data||(0,K.isNull)(e.data)?{}:e.data)),J((e=>(0,r.of)({status:"error",message:e.statusText}))))):{}}))()}streamSchema(e){var t=this;return Z((function*(){return e?(0,r.lastValueFrom)(t.doFetch({url:t.url+"/api/v1/logstream/"+e.value+"/schema",method:"GET"}).pipe(V((e=>"object"!=typeof e.data||(0,K.isNull)(e.data)?{}:e.data)),J((e=>(0,r.of)({status:"error",message:e.statusText}))))):{fields:[]}}))()}testDatasource(){var e=this;return Z((function*(){const t="Parseable server is not reachable";try{const n=yield(0,r.lastValueFrom)(e.doFetch({url:e.url+"/api/v1/readiness",method:"GET"}).pipe(V((e=>e))));return 200===n.status?{status:"success",message:"Parseable server is reachable",title:"Success"}:{message:n.statusText?n.statusText:t,status:"error",title:"Error"}}catch(e){var n,o;if("string"==typeof e)return{status:"error",message:e};let r=e;var i;let a=null!==(i=r.statusText)&&void 0!==i?i:t;return void 0!==(null===(n=r.data)||void 0===n||null===(o=n.error)||void 0===o?void 0:o.code)&&(a+=`: ${r.data.error.code}. ${r.data.error.message}`),{status:"error",message:a,title:"Error"}}}))()}constructor(e){var t,r;super(e),this.url=void 0===e.url?"":e.url,this.withCredentials=void 0!==e.withCredentials,this.defaultEditorMode=null!==(r=null===(t=e.jsonData)||void 0===t?void 0:t.defaultEditorMode)&&void 0!==r?r:"code"}}var te=s(650),re=s.n(te),ne=s(388);class oe extends te.PureComponent{render(){const{onOptionsChange:e,options:t}=this.props;return re().createElement("div",{className:"gf-form-group"},re().createElement(ne.DataSourceHttpSettings,{defaultUrl:"https://demo.parseable.io",dataSourceConfig:t,showAccessOptions:!0,onChange:e}))}}function ie(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const{FormField:ae}=ne.LegacyForms,ue=new e.DataSourcePlugin(ee).setConfigEditor(oe).setQueryEditor((({datasource:e,onChange:t,onRunQuery:r,query:n})=>{const{queryText:o}=n,i=re().useCallback((()=>e.listStreams().then((e=>e.map((e=>({label:e.name,value:e.name})))),(e=>{throw new Error(e.statusText)}))),[e]),[a,u]=(0,te.useState)(),[s="",c]=re().useState(),[l="",f]=re().useState(),[p="",h]=re().useState(),[d="",v]=re().useState(),[y="",b]=re().useState(),[m="",w]=re().useState(),g=re().useCallback((t=>t?e.streamSchema(t).then((e=>{if(e.fields){const t=e.fields.map((e=>e.name)),r=t.join(", ");return c(r),t}return s}),(e=>{throw new Error(e.statusText)})):""),[e,s]),S=re().useCallback((t=>t?e.streamStats(t).then((e=>{if(e.ingestion){var t;const r=e.ingestion.count,n=e.ingestion.size,o=null===(t=e.storage)||void 0===t?void 0:t.size,i=e.stream,a=e.time;return h(n),v(o),b(i),f(r),w(a),r}return l}),(e=>{throw new Error(e.statusText)})):""),[e,l]);return re().useEffect((()=>{const e=setTimeout((()=>{r()}),2e3);return()=>clearTimeout(e)}),[r,o]),re().useEffect((()=>{g(a)}),[g,a]),re().useEffect((()=>{S(a)}),[S,a]),re().createElement(re().Fragment,null,re().createElement(ne.InlineFieldRow,null,re().createElement(ne.InlineField,null,re().createElement(ne.Label,null,"Select a log stream:")),re().createElement(ne.InlineField,null,re().createElement(ne.AsyncSelect,{loadOptions:i,defaultOptions:!0,value:a,onChange:e=>{u(e)}}))),re().createElement(ne.InlineFieldRow,null,re().createElement(ne.InlineField,null,re().createElement(ne.SeriesTable,{series:[{color:"#299c46",isActive:!0,label:"Stream name",value:y},{color:"#299c46",isActive:!1,label:"Column names",value:s},{color:"#299c46",isActive:!1,label:"Total ingested event count",value:l},{color:"#299c46",isActive:!1,label:"Total ingested json size",value:p},{color:"#299c46",isActive:!1,label:"Total stored data size",value:d}],timestamp:m}))),re().createElement("br",null),re().createElement(ae,{labelWidth:12,inputWidth:100,value:o||"",onChange:e=>{var r,o;t((r=function(e){for(var t=1;t(()=>{"use strict";var a={305:t=>{t.exports=e},545:e=>{e.exports=t},388:e=>{e.exports=i},980:e=>{e.exports=n},650:e=>{e.exports=o},177:e=>{e.exports=r}},u={};function s(e){var t=u[e];if(void 0!==t)return t.exports;var r=u[e]={exports:{}};return a[e](r,r.exports,s),r.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var c={};return(()=>{s.r(c),s.d(c,{plugin:()=>ue});var e=s(305),t=s(545),r=s(177);function n(e){return"function"==typeof e}function o(e){return function(t){if(function(e){return n(null==e?void 0:e.lift)}(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}}var i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},i(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function u(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function f(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function p(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o1||u(e,t)}))})}function u(e,t){try{(r=o[e](t)).value instanceof h?Promise.resolve(r.value.v).then(s,c):l(i[0][2],r)}catch(e){l(i[0][3],e)}var r}function s(e){u("next",e)}function c(e){u("throw",e)}function l(e,t){e(t),i.shift(),i.length&&u(i[0][0],i[0][1])}}Object.create,Object.create;var v,y=((v=function(e){var t;t=this,Error.call(t),t.stack=(new Error).stack,this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e}).prototype=Object.create(Error.prototype),v.prototype.constructor=v,v);function b(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var m=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}var t;return e.prototype.unsubscribe=function(){var e,t,r,o,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var u=l(a),s=u.next();!s.done;s=u.next())s.value.remove(this)}catch(t){e={error:t}}finally{try{s&&!s.done&&(t=u.return)&&t.call(u)}finally{if(e)throw e.error}}else a.remove(this);var c=this.initialTeardown;if(n(c))try{c()}catch(e){i=e instanceof y?e.errors:[e]}var h=this._finalizers;if(h){this._finalizers=null;try{for(var d=l(h),v=d.next();!v.done;v=d.next()){var b=v.value;try{g(b)}catch(e){i=null!=i?i:[],e instanceof y?i=p(p([],f(i)),f(e.errors)):i.push(e)}}}catch(e){r={error:e}}finally{try{v&&!v.done&&(o=d.return)&&o.call(d)}finally{if(r)throw r.error}}}if(i)throw new y(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)g(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(r=this._finalizers)&&void 0!==r?r:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&b(t,e)},e.prototype.remove=function(t){var r=this._finalizers;r&&b(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();function w(e){return e instanceof m||e&&"closed"in e&&n(e.remove)&&n(e.add)&&n(e.unsubscribe)}function g(e){n(e)?e():e.unsubscribe()}m.EMPTY;var S=null,x=null,T=void 0,O=!1,_=!1,E={setTimeout:function(e,t){for(var r=[],n=2;n!e.hide)),0===e.targets.length)return Promise.resolve({data:[]});const{range:n}=e;if(!n)return Promise.resolve({data:[]});const o=n.from,i=n.to,a=e.targets.map((e=>{const n={query:e.queryText,startTime:o.toISOString(),endTime:i.toISOString(),send_null:!0};return(0,r.lastValueFrom)(t.doFetch({url:t.url+"/api/v1/query",data:n,method:"POST"}).pipe(V((e=>t.arrayToDataFrame(e.data))),J((e=>(0,r.of)({data:[]})))))}));return{data:yield Promise.all(a)}}))()}arrayToDataFrame(t){let r=new e.MutableDataFrame;if(t.length>0){const n=Object.keys(t[0]).map((r=>{let n=(0,e.guessFieldTypeFromValue)(t[0][r]);return"p_timestamp"===r.toLowerCase()&&(n=e.FieldType.time),{name:r,type:n}}));r=new e.MutableDataFrame({fields:n})}return t.forEach((e=>{r.appendRow(Object.values(e))})),r}doFetch(e){return e.withCredentials=this.withCredentials,e.headers=this.headers,(0,t.getBackendSrv)().fetch(e)}listStreams(){var e=this;return Z((function*(){return(0,r.lastValueFrom)(e.doFetch({url:e.url+"/api/v1/logstream",method:"GET"}).pipe(V((e=>(0,K.isArray)(e.data)?e.data:[])),J((e=>(0,r.of)([])))))}))()}streamStats(e){var t=this;return Z((function*(){return e?(0,r.lastValueFrom)(t.doFetch({url:t.url+"/api/v1/logstream/"+e.value+"/stats",method:"GET"}).pipe(V((e=>"object"!=typeof e.data||(0,K.isNull)(e.data)?{}:e.data)),J((e=>(0,r.of)({status:"error",message:e.statusText}))))):{}}))()}streamSchema(e){var t=this;return Z((function*(){return e?(0,r.lastValueFrom)(t.doFetch({url:t.url+"/api/v1/logstream/"+e.value+"/schema",method:"GET"}).pipe(V((e=>"object"!=typeof e.data||(0,K.isNull)(e.data)?{}:e.data)),J((e=>(0,r.of)({status:"error",message:e.statusText}))))):{fields:[]}}))()}testDatasource(){var e=this;return Z((function*(){const t="Parseable server is not reachable";try{const n=yield(0,r.lastValueFrom)(e.doFetch({url:e.url+"/api/v1/readiness",method:"GET"}).pipe(V((e=>e))));return 200===n.status?{status:"success",message:"Parseable server is reachable",title:"Success"}:{message:n.statusText?n.statusText:t,status:"error",title:"Error"}}catch(e){var n,o;if("string"==typeof e)return{status:"error",message:e};let r=e;var i;let a=null!==(i=r.statusText)&&void 0!==i?i:t;return void 0!==(null===(n=r.data)||void 0===n||null===(o=n.error)||void 0===o?void 0:o.code)&&(a+=`: ${r.data.error.code}. ${r.data.error.message}`),{status:"error",message:a,title:"Error"}}}))()}constructor(e){var t,r;super(e),this.url=void 0===e.url?"":e.url,this.withCredentials=void 0!==e.withCredentials,this.defaultEditorMode=null!==(r=null===(t=e.jsonData)||void 0===t?void 0:t.defaultEditorMode)&&void 0!==r?r:"code"}}var te=s(650),re=s.n(te),ne=s(388);class oe extends te.PureComponent{render(){const{onOptionsChange:e,options:t}=this.props;return re().createElement("div",{className:"gf-form-group"},re().createElement(ne.DataSourceHttpSettings,{defaultUrl:"https://demo.parseable.io",dataSourceConfig:t,showAccessOptions:!0,onChange:e}))}}function ie(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const{FormField:ae}=ne.LegacyForms,ue=new e.DataSourcePlugin(ee).setConfigEditor(oe).setQueryEditor((({datasource:e,onChange:t,onRunQuery:r,query:n})=>{const{queryText:o}=n,i=re().useCallback((()=>e.listStreams().then((e=>e.map((e=>({label:e.name,value:e.name})))),(e=>{throw new Error(e.statusText)}))),[e]),[a,u]=(0,te.useState)(),[s="",c]=re().useState(),[l="",f]=re().useState(),[p="",h]=re().useState(),[d="",v]=re().useState(),[y="",b]=re().useState(),[m="",w]=re().useState(),g=re().useCallback((t=>t?e.streamSchema(t).then((e=>{if(e.fields){const t=e.fields.map((e=>e.name)),r=t.join(", ");return c(r),t}return s}),(e=>{throw new Error(e.statusText)})):""),[e,s]),S=re().useCallback((t=>t?e.streamStats(t).then((e=>{if(e.ingestion){var t;const r=e.ingestion.count,n=e.ingestion.size,o=null===(t=e.storage)||void 0===t?void 0:t.size,i=e.stream,a=e.time;return h(n),v(o),b(i),f(r),w(a),r}return l}),(e=>{throw new Error(e.statusText)})):""),[e,l]);return re().useEffect((()=>{const e=setTimeout((()=>{r()}),2e3);return()=>clearTimeout(e)}),[r,o]),re().useEffect((()=>{g(a)}),[g,a]),re().useEffect((()=>{S(a)}),[S,a]),re().createElement(re().Fragment,null,re().createElement(ne.InlineFieldRow,null,re().createElement(ne.InlineField,null,re().createElement(ne.Label,null,"Select a log stream:")),re().createElement(ne.InlineField,null,re().createElement(ne.AsyncSelect,{loadOptions:i,defaultOptions:!0,value:a,onChange:e=>{u(e)}}))),re().createElement(ne.InlineFieldRow,null,re().createElement(ne.InlineField,null,re().createElement(ne.SeriesTable,{series:[{color:"#299c46",isActive:!0,label:"Stream name",value:y},{color:"#299c46",isActive:!1,label:"Column names",value:s},{color:"#299c46",isActive:!1,label:"Total ingested event count",value:l},{color:"#299c46",isActive:!1,label:"Total ingested json size",value:p},{color:"#299c46",isActive:!1,label:"Total stored data size",value:d}],timestamp:m}))),re().createElement("br",null),re().createElement(ae,{labelWidth:12,inputWidth:100,value:o||"",onChange:e=>{var r,o;t((r=function(e){for(var t=1;t {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate(function (source, subscriber) {\n var innerSub = null;\n var syncUnsub = false;\n var handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, function (err) {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n//# sourceMappingURL=catchError.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","import { getBackendSrv, BackendSrvRequest, FetchResponse } from \"@grafana/runtime\";\nimport {\n DataQueryRequest,\n DataQueryResponse,\n DataSourceApi,\n DataSourceInstanceSettings,\n MutableDataFrame,\n DataFrame,\n FieldType,\n guessFieldTypeFromValue,\n} from '@grafana/data';\nimport { lastValueFrom, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { isArray, isNull } from \"lodash\";\n\nimport {\n MyQuery,\n MyDataSourceOptions,\n QueryEditorMode,\n StreamName,\n StreamList,\n StreamSchemaResponse,\n StreamStatsResponse\n} from './types';\nexport class DataSource extends DataSourceApi {\n url: string;\n withCredentials: boolean;\n headers: any;\n defaultEditorMode: QueryEditorMode;\n constructor(instanceSettings: DataSourceInstanceSettings) {\n super(instanceSettings);\n this.url = instanceSettings.url === undefined ? '' : instanceSettings.url;\n this.withCredentials = instanceSettings.withCredentials !== undefined;\n this.defaultEditorMode = instanceSettings.jsonData?.defaultEditorMode ?? \"code\"\n }\n\n async doRequest(query: MyQuery) {\n const routePath = '/api/v1'\n const result = await getBackendSrv().datasourceRequest({\n method: \"GET\",\n url: this.url + routePath + '/readiness',\n params: query,\n })\n return result;\n }\n\n async query(options: DataQueryRequest): Promise {\n options.targets = options.targets.filter((t) => !t.hide);\n if (options.targets.length === 0) {\n return Promise.resolve({ data: [] });\n }\n\n const { range } = options;\n if (!range) {\n return Promise.resolve({ data: [] });\n }\n const start = range!.from;\n const end = range!.to;\n\n const calls = options.targets.map(target => {\n const request = {\n \"query\": target.queryText,\n \"startTime\": start.toISOString(),\n \"endTime\": end.toISOString(),\n \"send_null\": true\n };\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/query',\n data: request,\n method: 'POST',\n }).pipe(\n map((response) => {\n return this.arrayToDataFrame(response.data);\n }),\n catchError((err) => {\n return of({ data: [] });\n })\n )\n );\n });\n\n const data = await Promise.all(calls);\n return {\n data,\n };\n }\n\n arrayToDataFrame(array: any[]): DataFrame {\n let dataFrame: MutableDataFrame = new MutableDataFrame();\n\n if (array.length > 0) {\n const fields = Object.keys(array[0]).map(field => {\n return { name: field, type: guessFieldTypeFromValue(array[0][field]) };\n });\n for (const field of fields) {\n // p_timestamp is always a time field present in the log\n // stream as server adds it to the log\n if (field.name.toLowerCase() === 'p_timestamp') {\n field.type = FieldType.time;\n break;\n }\n }\n dataFrame = new MutableDataFrame({ fields });\n }\n\n array.forEach((row) => {\n dataFrame.appendRow(Object.values(row));\n });\n\n return dataFrame;\n }\n\n doFetch(options: BackendSrvRequest) {\n options.withCredentials = this.withCredentials;\n options.headers = this.headers;\n\n return getBackendSrv().fetch(options);\n }\n\n async listStreams(): Promise {\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/logstream',\n method: 'GET',\n }).pipe(\n map((response) =>\n isArray(response.data)\n ? response.data\n : []\n ),\n catchError((err) => {\n return of([]);\n }))\n );\n }\n\n async streamStats(streamname: StreamName): Promise {\n if (streamname) {\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/logstream/' + streamname.value + '/stats',\n method: 'GET',\n }).pipe(\n map((response) =>\n (typeof response.data === 'object' && !isNull(response.data))\n ? response.data\n : {}\n ),\n catchError((err) => {\n return of({\n status: 'error',\n message: err.statusText\n })\n\n }))\n )\n }\n return {}\n }\n\n async streamSchema(streamname: StreamName): Promise {\n if (streamname) {\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/logstream/' + streamname.value + '/schema',\n method: 'GET',\n }).pipe(\n map((response) =>\n (typeof response.data === 'object' && !isNull(response.data))\n ? response.data\n : {}\n ),\n catchError((err) => {\n return of({\n status: 'error',\n message: err.statusText\n })\n\n }))\n )\n }\n return { fields: [] }\n }\n\n async testDatasource() {\n const errorMessageBase = 'Parseable server is not reachable';\n try {\n const response = await lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/readiness',\n method: 'GET',\n }).pipe(map((response) => response))\n );\n\n if (response.status === 200) {\n return { status: 'success', message: 'Parseable server is reachable', title: 'Success' };\n }\n\n return {\n message: response.statusText ? response.statusText : errorMessageBase,\n status: 'error',\n title: 'Error',\n };\n } catch (err) {\n if (typeof err === 'string') {\n return {\n status: 'error',\n message: err,\n };\n }\n\n let error = err as FetchResponse;\n let message = error.statusText ?? errorMessageBase;\n if (error.data?.error?.code !== undefined) {\n message += `: ${error.data.error.code}. ${error.data.error.message}`;\n }\n\n return { status: 'error', message, title: 'Error' };\n }\n }\n}\n","import React, { PureComponent } from 'react';\nimport { DataSourceHttpSettings } from '@grafana/ui';\nimport { DataSourcePluginOptionsEditorProps } from '@grafana/data';\nimport { MyDataSourceOptions, MySecureJsonData } from '../types';\n\n//const { SecretFormField, FormField } = LegacyForms;\n\ninterface Props extends DataSourcePluginOptionsEditorProps {}\n\ninterface State {}\n\nexport class ConfigEditor extends PureComponent {\n render() {\n const { onOptionsChange, options } = this.props;\n return (\n
\n \n
\n );\n }\n}\n","import React, { ComponentType, ChangeEvent, useState } from 'react';\nimport { LegacyForms, AsyncSelect, InlineField, InlineFieldRow, SeriesTable, Label} from '@grafana/ui';\nimport { QueryEditorProps, SelectableValue, GraphSeriesValue } from '@grafana/data';\nimport { DataSource } from '../datasource';\nimport { SchemaFields, MyDataSourceOptions, MyQuery } from '../types';\n\nconst { FormField } = LegacyForms;\n\ninterface Props extends QueryEditorProps {\n payload?: string;\n}\n\nexport const QueryEditor: ComponentType = ({ datasource, onChange, onRunQuery, query }) => {\n\n const { queryText } = query;\n //const [stream, setStream] = React.useState>();\n\n const loadAsyncOptions = React.useCallback(() => {\n return datasource.listStreams().then(\n (result) => {\n const stream = result.map((data) => ({ label: data.name, value: data.name }));\n return stream;\n },\n (response) => {\n //setStream({ label: '', value: '' });\n throw new Error(response.statusText);\n }\n );\n }, [datasource]);\n\n const [value, setValue] = useState>();\n const [schema = '', setSchema] = React.useState();\n const [count = '', setEventCount] = React.useState();\n const [jsonsize = '', setJsonSize] = React.useState();\n const [parquetsize = '', setParquetSize] = React.useState();\n const [streamname = '', setStreamName] = React.useState();\n const [time = '', setTime] = React.useState();\n //const [fielder, setFielder] = React.useState();\n\n const loadStreamSchema = React.useCallback((value) => {\n if (value) {\n return datasource.streamSchema(value).then(\n (result) => {\n if (result.fields) {\n const schema = result.fields.map((data: SchemaFields) => (data.name));\n const schemaToText = schema.join(\", \")\n setSchema(schemaToText);\n return schema;\n }\n return schema;\n },\n (response) => {\n throw new Error(response.statusText);\n }\n );\n }\n return '';\n }, [datasource, schema]);\n\n const loadStreamStats = React.useCallback((value) => {\n if (value) {\n return datasource.streamStats(value).then(\n (result) => {\n if (result.ingestion) {\n const count = result.ingestion.count;\n const jsonsize = result.ingestion.size;\n const parquetsize = result.storage?.size;\n const streamname = result.stream;\n const time = result.time;\n setJsonSize(jsonsize);\n setParquetSize(parquetsize);\n setStreamName(streamname);\n setEventCount(count);\n setTime(time);\n return count;\n }\n return count;\n },\n (response) => {\n throw new Error(response.statusText);\n }\n );\n }\n return '';\n }, [datasource, count]);\n\n const onQueryTextChange = (event: ChangeEvent) => {\n onChange({ ...query, queryText: event.target.value });\n };\n\n React.useEffect(() => {\n const getData = setTimeout(() => {\n onRunQuery()\n },\n 2000)\n return () => clearTimeout(getData)\n }, [onRunQuery, queryText])\n\n React.useEffect(() => {\n loadStreamSchema(value)\n }, [loadStreamSchema, value]);\n\n React.useEffect(() => {\n loadStreamStats(value)\n }, [loadStreamStats, value]);\n\n return (\n <>\n \n \n \n \n \n {\n setValue(v);\n }}/>\n \n {/* \n \n */}\n \n\n \n \n \n \n \n\n

\n \n \n );\n};\n","import { DataSourcePlugin } from '@grafana/data';\nimport { DataSource } from './datasource';\nimport { ConfigEditor } from './components/ConfigEditor';\nimport { QueryEditor } from './components/QueryEditor';\nimport { MyQuery, MyDataSourceOptions } from './types';\n\nexport const plugin = new DataSourcePlugin(DataSource)\n .setConfigEditor(ConfigEditor)\n .setQueryEditor(QueryEditor);\n"],"names":["module","exports","__WEBPACK_EXTERNAL_MODULE__305__","__WEBPACK_EXTERNAL_MODULE__545__","__WEBPACK_EXTERNAL_MODULE__388__","__WEBPACK_EXTERNAL_MODULE__980__","__WEBPACK_EXTERNAL_MODULE__650__","__WEBPACK_EXTERNAL_MODULE__177__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","isFunction","operate","init","source","lift","hasLift","liftedSource","this","err","error","TypeError","extendStatics","b","setPrototypeOf","__proto__","Array","p","__extends","String","__","constructor","create","__generator","thisArg","body","f","y","t","g","_","label","sent","trys","ops","next","verb","iterator","v","op","done","pop","length","push","e","step","__values","s","m","i","__read","ar","__spreadArray","to","from","pack","arguments","l","slice","concat","__await","__asyncGenerator","_arguments","generator","asyncIterator","apply","q","Promise","resume","resolve","then","fulfill","reject","settle","shift","ctorFunc","UnsubscriptionError","errors","instance","Error","stack","message","map","toString","join","name","arrRemove","arr","item","index","indexOf","splice","Subscription","initialTeardown","closed","_parentage","_finalizers","empty","unsubscribe","e_1","_a","e_2","_b","isArray","_parentage_1","_parentage_1_1","remove","e_1_1","return","initialFinalizer","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","add","teardown","_hasParent","_addParent","parent","includes","_removeParent","EMPTY","isSubscription","config","timeoutProvider","setTimeout","handler","timeout","args","_i","delegate","clearTimeout","handle","reportUnhandledError","noop","COMPLETE_NOTIFICATION","createNotification","kind","context","Subscriber","_super","destination","_this","isStopped","EMPTY_OBSERVER","complete","SafeSubscriber","handleStoppedNotification","nextNotification","_next","_error","_complete","_bind","Function","bind","fn","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","context_1","errorThrown","notification","subscriber","onStoppedNotification","createOperatorSubscriber","onNext","onComplete","onError","onFinalize","OperatorSubscriber","shouldUnsubscribe","closed_1","project","subscribe","observable","identity","x","pipeFromArray","fns","input","reduce","prev","Observable","_subscribe","operator","isObserver","cb","isRoot","errorContext","_trySubscribe","sink","forEach","promiseCtor","getPromiseCtor","pipe","operations","toPromise","fromAsyncIterable","asyncIterable","asyncIterable_1","asyncIterable_1_1","P","__asyncValues","fulfilled","rejected","result","process","catch","catchError","selector","handledResult","innerSub","syncUnsub","isInteropObservable","obs","array","promise","isAsyncIterable","isIterable","iterable","iterable_1","iterable_1_1","getReader","isReadableStreamLike","readableStream","reader","read","releaseLock","readableStreamLikeToAsyncGenerator","createInvalidObservableTypeError","innerFrom","DataSource","DataSourceApi","doRequest","query","getBackendSrv","datasourceRequest","method","url","params","options","targets","filter","hide","data","range","start","end","calls","target","request","queryText","toISOString","lastValueFrom","doFetch","response","arrayToDataFrame","of","all","dataFrame","MutableDataFrame","fields","keys","field","type","guessFieldTypeFromValue","toLowerCase","FieldType","row","appendRow","values","withCredentials","headers","fetch","listStreams","streamStats","streamname","isNull","status","statusText","streamSchema","testDatasource","errorMessageBase","title","code","instanceSettings","super","defaultEditorMode","jsonData","ConfigEditor","PureComponent","render","onOptionsChange","props","div","className","DataSourceHttpSettings","defaultUrl","dataSourceConfig","showAccessOptions","onChange","FormField","LegacyForms","plugin","DataSourcePlugin","setConfigEditor","setQueryEditor","datasource","onRunQuery","loadAsyncOptions","React","setValue","useState","schema","setSchema","count","setEventCount","jsonsize","setJsonSize","parquetsize","setParquetSize","setStreamName","time","setTime","loadStreamSchema","schemaToText","loadStreamStats","ingestion","size","storage","stream","getData","InlineFieldRow","InlineField","Label","AsyncSelect","loadOptions","defaultOptions","SeriesTable","series","color","isActive","timestamp","br","labelWidth","inputWidth","event","tooltip"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"module.js","mappings":"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","sources":["webpack:///external amd \"@grafana/data\"","webpack:///external amd \"@grafana/runtime\"","webpack:///external amd \"@grafana/ui\"","webpack:///external amd \"lodash\"","webpack:///external amd \"react\"","webpack:///external amd \"rxjs\"","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/lift.js","webpack:///../node_modules/tslib/tslib.es6.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","webpack:///../node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack:///../node_modules/rxjs/dist/esm5/internal/config.js","webpack:///../node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack:///../node_modules/rxjs/dist/esm5/internal/NotificationFactories.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/errorContext.js","webpack:///../node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack:///../node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","webpack:///../node_modules/rxjs/dist/esm5/internal/operators/map.js","webpack:///../node_modules/rxjs/dist/esm5/internal/symbol/observable.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/identity.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/pipe.js","webpack:///../node_modules/rxjs/dist/esm5/internal/Observable.js","webpack:///../node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","webpack:///../node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","webpack:///../node_modules/rxjs/dist/esm5/internal/operators/catchError.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isPromise.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isIterable.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","webpack:///./datasource.ts","webpack:///./components/ConfigEditor.tsx","webpack:///./components/QueryEditor.tsx","webpack:///./module.ts"],"sourcesContent":["module.exports = __WEBPACK_EXTERNAL_MODULE__305__;","module.exports = __WEBPACK_EXTERNAL_MODULE__545__;","module.exports = __WEBPACK_EXTERNAL_MODULE__388__;","module.exports = __WEBPACK_EXTERNAL_MODULE__980__;","module.exports = __WEBPACK_EXTERNAL_MODULE__650__;","module.exports = __WEBPACK_EXTERNAL_MODULE__177__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate(function (source, subscriber) {\n var innerSub = null;\n var syncUnsub = false;\n var handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, function (err) {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n//# sourceMappingURL=catchError.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","import { getBackendSrv, BackendSrvRequest, FetchResponse } from \"@grafana/runtime\";\nimport {\n DataQueryRequest,\n DataQueryResponse,\n DataSourceApi,\n DataSourceInstanceSettings,\n MutableDataFrame,\n DataFrame,\n FieldType,\n guessFieldTypeFromValue,\n} from '@grafana/data';\nimport { lastValueFrom, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { isArray, isNull } from \"lodash\";\n\nimport {\n MyQuery,\n MyDataSourceOptions,\n QueryEditorMode,\n StreamName,\n StreamList,\n StreamSchemaResponse,\n StreamStatsResponse\n} from './types';\nexport class DataSource extends DataSourceApi {\n url: string;\n withCredentials: boolean;\n headers: any;\n defaultEditorMode: QueryEditorMode;\n constructor(instanceSettings: DataSourceInstanceSettings) {\n super(instanceSettings);\n this.url = instanceSettings.url === undefined ? '' : instanceSettings.url;\n this.withCredentials = instanceSettings.withCredentials !== undefined;\n this.defaultEditorMode = instanceSettings.jsonData?.defaultEditorMode ?? \"code\"\n }\n\n async doRequest(query: MyQuery) {\n const routePath = '/api/v1'\n const result = await getBackendSrv().datasourceRequest({\n method: \"GET\",\n url: this.url + routePath + '/readiness',\n params: query,\n })\n return result;\n }\n\n async query(options: DataQueryRequest): Promise {\n options.targets = options.targets.filter((t) => !t.hide);\n if (options.targets.length === 0) {\n return Promise.resolve({ data: [] });\n }\n\n const { range } = options;\n if (!range) {\n return Promise.resolve({ data: [] });\n }\n const start = range!.from;\n const end = range!.to;\n\n const calls = options.targets.map(target => {\n const request = {\n \"query\": target.queryText,\n \"startTime\": start.toISOString(),\n \"endTime\": end.toISOString(),\n \"send_null\": true\n };\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/query',\n data: request,\n method: 'POST',\n }).pipe(\n map((response) => {\n return this.arrayToDataFrame(response.data);\n }),\n catchError((err) => {\n return of({ data: [] });\n })\n )\n );\n });\n\n const data = await Promise.all(calls);\n return {\n data,\n };\n }\n\n arrayToDataFrame(array: any[]): DataFrame {\n let dataFrame: MutableDataFrame = new MutableDataFrame();\n\n if (array.length > 0) {\n const fields = Object.keys(array[0]).map(field => {\n let fieldType = guessFieldTypeFromValue(array[0][field])\n // p_timestamp is always a time field present in the log\n // stream as parseable adds it to the log event\n if (field.toLowerCase() === 'p_timestamp') {\n fieldType = FieldType.time;\n }\n return { name: field, type: fieldType};\n });\n dataFrame = new MutableDataFrame({ fields });\n }\n\n array.forEach((row) => {\n dataFrame.appendRow(Object.values(row));\n });\n\n return dataFrame;\n }\n\n doFetch(options: BackendSrvRequest) {\n options.withCredentials = this.withCredentials;\n options.headers = this.headers;\n\n return getBackendSrv().fetch(options);\n }\n\n async listStreams(): Promise {\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/logstream',\n method: 'GET',\n }).pipe(\n map((response) =>\n isArray(response.data)\n ? response.data\n : []\n ),\n catchError((err) => {\n return of([]);\n }))\n );\n }\n\n async streamStats(streamname: StreamName): Promise {\n if (streamname) {\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/logstream/' + streamname.value + '/stats',\n method: 'GET',\n }).pipe(\n map((response) =>\n (typeof response.data === 'object' && !isNull(response.data))\n ? response.data\n : {}\n ),\n catchError((err) => {\n return of({\n status: 'error',\n message: err.statusText\n })\n\n }))\n )\n }\n return {}\n }\n\n async streamSchema(streamname: StreamName): Promise {\n if (streamname) {\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/logstream/' + streamname.value + '/schema',\n method: 'GET',\n }).pipe(\n map((response) =>\n (typeof response.data === 'object' && !isNull(response.data))\n ? response.data\n : {}\n ),\n catchError((err) => {\n return of({\n status: 'error',\n message: err.statusText\n })\n\n }))\n )\n }\n return { fields: [] }\n }\n\n async testDatasource() {\n const errorMessageBase = 'Parseable server is not reachable';\n try {\n const response = await lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/readiness',\n method: 'GET',\n }).pipe(map((response) => response))\n );\n\n if (response.status === 200) {\n return { status: 'success', message: 'Parseable server is reachable', title: 'Success' };\n }\n\n return {\n message: response.statusText ? response.statusText : errorMessageBase,\n status: 'error',\n title: 'Error',\n };\n } catch (err) {\n if (typeof err === 'string') {\n return {\n status: 'error',\n message: err,\n };\n }\n\n let error = err as FetchResponse;\n let message = error.statusText ?? errorMessageBase;\n if (error.data?.error?.code !== undefined) {\n message += `: ${error.data.error.code}. ${error.data.error.message}`;\n }\n\n return { status: 'error', message, title: 'Error' };\n }\n }\n}\n","import React, { PureComponent } from 'react';\nimport { DataSourceHttpSettings } from '@grafana/ui';\nimport { DataSourcePluginOptionsEditorProps } from '@grafana/data';\nimport { MyDataSourceOptions, MySecureJsonData } from '../types';\n\n//const { SecretFormField, FormField } = LegacyForms;\n\ninterface Props extends DataSourcePluginOptionsEditorProps {}\n\ninterface State {}\n\nexport class ConfigEditor extends PureComponent {\n render() {\n const { onOptionsChange, options } = this.props;\n return (\n
\n \n
\n );\n }\n}\n","import React, { ComponentType, ChangeEvent, useState } from 'react';\nimport { LegacyForms, AsyncSelect, InlineField, InlineFieldRow, SeriesTable, Label} from '@grafana/ui';\nimport { QueryEditorProps, SelectableValue, GraphSeriesValue } from '@grafana/data';\nimport { DataSource } from '../datasource';\nimport { SchemaFields, MyDataSourceOptions, MyQuery } from '../types';\n\nconst { FormField } = LegacyForms;\n\ninterface Props extends QueryEditorProps {\n payload?: string;\n}\n\nexport const QueryEditor: ComponentType = ({ datasource, onChange, onRunQuery, query }) => {\n\n const { queryText } = query;\n //const [stream, setStream] = React.useState>();\n\n const loadAsyncOptions = React.useCallback(() => {\n return datasource.listStreams().then(\n (result) => {\n const stream = result.map((data) => ({ label: data.name, value: data.name }));\n return stream;\n },\n (response) => {\n //setStream({ label: '', value: '' });\n throw new Error(response.statusText);\n }\n );\n }, [datasource]);\n\n const [value, setValue] = useState>();\n const [schema = '', setSchema] = React.useState();\n const [count = '', setEventCount] = React.useState();\n const [jsonsize = '', setJsonSize] = React.useState();\n const [parquetsize = '', setParquetSize] = React.useState();\n const [streamname = '', setStreamName] = React.useState();\n const [time = '', setTime] = React.useState();\n //const [fielder, setFielder] = React.useState();\n\n const loadStreamSchema = React.useCallback((value) => {\n if (value) {\n return datasource.streamSchema(value).then(\n (result) => {\n if (result.fields) {\n const schema = result.fields.map((data: SchemaFields) => (data.name));\n const schemaToText = schema.join(\", \")\n setSchema(schemaToText);\n return schema;\n }\n return schema;\n },\n (response) => {\n throw new Error(response.statusText);\n }\n );\n }\n return '';\n }, [datasource, schema]);\n\n const loadStreamStats = React.useCallback((value) => {\n if (value) {\n return datasource.streamStats(value).then(\n (result) => {\n if (result.ingestion) {\n const count = result.ingestion.count;\n const jsonsize = result.ingestion.size;\n const parquetsize = result.storage?.size;\n const streamname = result.stream;\n const time = result.time;\n setJsonSize(jsonsize);\n setParquetSize(parquetsize);\n setStreamName(streamname);\n setEventCount(count);\n setTime(time);\n return count;\n }\n return count;\n },\n (response) => {\n throw new Error(response.statusText);\n }\n );\n }\n return '';\n }, [datasource, count]);\n\n const onQueryTextChange = (event: ChangeEvent) => {\n onChange({ ...query, queryText: event.target.value });\n };\n\n React.useEffect(() => {\n const getData = setTimeout(() => {\n onRunQuery()\n },\n 2000)\n return () => clearTimeout(getData)\n }, [onRunQuery, queryText])\n\n React.useEffect(() => {\n loadStreamSchema(value)\n }, [loadStreamSchema, value]);\n\n React.useEffect(() => {\n loadStreamStats(value)\n }, [loadStreamStats, value]);\n\n return (\n <>\n \n \n \n \n \n {\n setValue(v);\n }}/>\n \n {/* \n \n */}\n \n\n \n \n \n \n \n\n

\n \n \n );\n};\n","import { DataSourcePlugin } from '@grafana/data';\nimport { DataSource } from './datasource';\nimport { ConfigEditor } from './components/ConfigEditor';\nimport { QueryEditor } from './components/QueryEditor';\nimport { MyQuery, MyDataSourceOptions } from './types';\n\nexport const plugin = new DataSourcePlugin(DataSource)\n .setConfigEditor(ConfigEditor)\n .setQueryEditor(QueryEditor);\n"],"names":["module","exports","__WEBPACK_EXTERNAL_MODULE__305__","__WEBPACK_EXTERNAL_MODULE__545__","__WEBPACK_EXTERNAL_MODULE__388__","__WEBPACK_EXTERNAL_MODULE__980__","__WEBPACK_EXTERNAL_MODULE__650__","__WEBPACK_EXTERNAL_MODULE__177__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","isFunction","operate","init","source","lift","hasLift","liftedSource","this","err","error","TypeError","extendStatics","b","setPrototypeOf","__proto__","Array","p","__extends","String","__","constructor","create","__generator","thisArg","body","f","y","t","g","_","label","sent","trys","ops","next","verb","iterator","v","op","done","pop","length","push","e","step","__values","s","m","i","__read","ar","__spreadArray","to","from","pack","arguments","l","slice","concat","__await","__asyncGenerator","_arguments","generator","asyncIterator","apply","q","Promise","resume","resolve","then","fulfill","reject","settle","shift","ctorFunc","UnsubscriptionError","errors","instance","Error","stack","message","map","toString","join","name","arrRemove","arr","item","index","indexOf","splice","Subscription","initialTeardown","closed","_parentage","_finalizers","empty","unsubscribe","e_1","_a","e_2","_b","isArray","_parentage_1","_parentage_1_1","remove","e_1_1","return","initialFinalizer","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","add","teardown","_hasParent","_addParent","parent","includes","_removeParent","EMPTY","isSubscription","config","timeoutProvider","setTimeout","handler","timeout","args","_i","delegate","clearTimeout","handle","reportUnhandledError","noop","COMPLETE_NOTIFICATION","createNotification","kind","context","Subscriber","_super","destination","_this","isStopped","EMPTY_OBSERVER","complete","SafeSubscriber","handleStoppedNotification","nextNotification","_next","_error","_complete","_bind","Function","bind","fn","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","context_1","errorThrown","notification","subscriber","onStoppedNotification","createOperatorSubscriber","onNext","onComplete","onError","onFinalize","OperatorSubscriber","shouldUnsubscribe","closed_1","project","subscribe","observable","identity","x","pipeFromArray","fns","input","reduce","prev","Observable","_subscribe","operator","isObserver","cb","isRoot","errorContext","_trySubscribe","sink","forEach","promiseCtor","getPromiseCtor","pipe","operations","toPromise","fromAsyncIterable","asyncIterable","asyncIterable_1","asyncIterable_1_1","P","__asyncValues","fulfilled","rejected","result","process","catch","catchError","selector","handledResult","innerSub","syncUnsub","isInteropObservable","obs","array","promise","isAsyncIterable","isIterable","iterable","iterable_1","iterable_1_1","getReader","isReadableStreamLike","readableStream","reader","read","releaseLock","readableStreamLikeToAsyncGenerator","createInvalidObservableTypeError","innerFrom","DataSource","DataSourceApi","doRequest","query","getBackendSrv","datasourceRequest","method","url","params","options","targets","filter","hide","data","range","start","end","calls","target","request","queryText","toISOString","lastValueFrom","doFetch","response","arrayToDataFrame","of","all","dataFrame","MutableDataFrame","fields","keys","field","fieldType","guessFieldTypeFromValue","toLowerCase","FieldType","type","row","appendRow","values","withCredentials","headers","fetch","listStreams","streamStats","streamname","isNull","status","statusText","streamSchema","testDatasource","errorMessageBase","title","code","instanceSettings","super","defaultEditorMode","jsonData","ConfigEditor","PureComponent","render","onOptionsChange","props","div","className","DataSourceHttpSettings","defaultUrl","dataSourceConfig","showAccessOptions","onChange","FormField","LegacyForms","plugin","DataSourcePlugin","setConfigEditor","setQueryEditor","datasource","onRunQuery","loadAsyncOptions","React","setValue","useState","schema","setSchema","count","setEventCount","jsonsize","setJsonSize","parquetsize","setParquetSize","setStreamName","time","setTime","loadStreamSchema","schemaToText","loadStreamStats","ingestion","size","storage","stream","getData","InlineFieldRow","InlineField","Label","AsyncSelect","loadOptions","defaultOptions","SeriesTable","series","color","isActive","timestamp","br","labelWidth","inputWidth","event","tooltip"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/plugin.json b/dist/plugin.json index c5a4f5e..6c8a136 100644 --- a/dist/plugin.json +++ b/dist/plugin.json @@ -26,7 +26,7 @@ {"name": "Log Dashboard", "path": "img/log-visualisation.png"} ], "version": "1.0.2", - "updated": "2023-03-06" + "updated": "2023-03-07" }, "routes": [ { diff --git a/releases/parseable-datasource-1.0.2.zip b/releases/parseable-datasource-1.0.2.zip index 26cd8cf966ffbe8bb1f3f36d07a3fafe4c37023d..ed2f587257fd6bd51e0df2d6cdfd58f93caa1648 100644 GIT binary patch delta 27971 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 TKm!2q->w&A0Kh*J^!D~&?3<2~ delta 27716 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 { if (array.length > 0) { const fields = Object.keys(array[0]).map(field => { - return { name: field, type: guessFieldTypeFromValue(array[0][field]) }; - }); - for (const field of fields) { + let fieldType = guessFieldTypeFromValue(array[0][field]) // p_timestamp is always a time field present in the log - // stream as server adds it to the log - if (field.name.toLowerCase() === 'p_timestamp') { - field.type = FieldType.time; - break; + // stream as parseable adds it to the log event + if (field.toLowerCase() === 'p_timestamp') { + fieldType = FieldType.time; } - } + return { name: field, type: fieldType}; + }); dataFrame = new MutableDataFrame({ fields }); }