@influxdata/influxdb-client-giraffe 1.25.0-nightly.1908 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.gz CHANGED
Binary file
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../core/dist/index.browser.mjs","../src/csvToTable.ts","../src/queryTable.ts"],"sourcesContent":["function t(){const t=new TextDecoder(\"utf-8\");return{concat(t,e){const r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r},copy(t,e,r){const s=new Uint8Array(r-e);return s.set(t.subarray(e,r)),s},toUtf8String:(e,r,s)=>t.decode(e.subarray(r,s))}}function e(e,r){const s=null!=r?r:t();let n,i=!1,o=!1;return{next(t){if(!i)try{!function(t){let r,l=0;for(n?(t=s.concat(n,t),r=n.length):r=0;r<t.length;){const n=t[r];if(10===n){if(!o){const n=r>0&&13===t[r-1]?r-1:r;if(i)return;e.next(s.toUtf8String(t,l,n)),l=r+1}}else 34===n&&(o=!o);r++}n=l<r?s.copy(t,l,r):void 0}(t)}catch(t){this.error(t)}},error(t){i||(i=!0,e.error(t))},complete(){i||(n&&e.next(s.toUtf8String(n,0,n.length)),i=!0,e.complete())},useCancellable(t){if(e.useCancellable){const r=this;e.useCancellable({cancel(){t.cancel(),n=void 0,r.complete()},isCancelled:()=>t.isCancelled()})}}}}class r{constructor(){this._reuse=!1}get reuse(){return this._reuse}set reuse(t){t&&!this.reusedValues&&(this.reusedValues=new Array(10)),this._reuse=t}withReuse(){return this.reuse=!0,this}splitLine(t){if(null==t)return this.lastSplitLength=0,[];let e=0,r=0;const s=this._reuse?this.reusedValues:[];let n=0;for(let i=0;i<t.length;i++){const o=t[i];if(\",\"===o){if(e%2==0){const o=this.getValue(t,r,i,e);this._reuse?s[n++]=o:s.push(o),r=i+1,e=0}}else'\"'===o&&e++}const i=this.getValue(t,r,t.length,e);return this._reuse?(s[n]=i,this.lastSplitLength=n+1):(s.push(i),this.lastSplitLength=s.length),s}getValue(t,e,r,s){return e===t.length?\"\":0===s?t.substring(e,r):2===s?t.substring(e+1,r-1):t.substring(e+1,r-1).replace(/\"\"/gi,'\"')}}const s=t=>t,n={boolean:t=>\"true\"===t,unsignedLong:t=>\"\"===t?null:+t,long:t=>\"\"===t?null:+t,double(t){switch(t){case\"\":return null;case\"+Inf\":return Number.POSITIVE_INFINITY;case\"-Inf\":return Number.NEGATIVE_INFINITY;default:return+t}},string:s,base64Binary:s,duration:t=>\"\"===t?null:t,\"dateTime:RFC3339\":t=>\"\"===t?null:t};class i{get(t){var e;let r=t[this.index];return\"\"!==r&&void 0!==r||!this.defaultValue||(r=this.defaultValue),(null!==(e=n[this.dataType])&&void 0!==e?e:s)(r)}}const o=Object.freeze({label:\"\",dataType:\"\",group:!1,defaultValue:\"\",index:Number.MAX_SAFE_INTEGER,get:()=>{}});function l(){return new i}function a(t){var e,r;const s=new i;return s.label=String(t.label),s.dataType=t.dataType,s.group=Boolean(t.group),s.defaultValue=null!==(e=t.defaultValue)&&void 0!==e?e:\"\",s.index=null!==(r=t.index)&&void 0!==r?r:0,s}const h=[404,408,425,429,500,502,503,504];function u(t){return h.includes(t)}class c extends Error{constructor(t){super(t),this.name=\"IllegalArgumentError\",Object.setPrototypeOf(this,c.prototype)}}class f extends Error{constructor(t,e,r,s,n,i){if(super(),this.statusCode=t,this.statusMessage=e,this.body=r,this.contentType=n,Object.setPrototypeOf(this,f.prototype),i)this.message=i;else if(r){if(null==n?void 0:n.startsWith(\"application/json\"))try{this.json=JSON.parse(r),this.message=this.json.message,this.code=this.json.code}catch(t){}this.message||(this.message=`${t} ${e} : ${r}`)}else this.message=`${t} ${e}`;this.name=\"HttpError\",this.setRetryAfter(s)}setRetryAfter(t){\"string\"==typeof t&&/^[0-9]+$/.test(t)?this._retryAfter=parseInt(t):this._retryAfter=0}canRetry(){return u(this.statusCode)}retryAfter(){return this._retryAfter}}const d=[\"ECONNRESET\",\"ENOTFOUND\",\"ESOCKETTIMEDOUT\",\"ETIMEDOUT\",\"ECONNREFUSED\",\"EHOSTUNREACH\",\"EPIPE\"];function p(t){return!!t&&(\"function\"==typeof t.canRetry?!!t.canRetry():!(!t.code||!d.includes(t.code)))}function g(t,e){if(t){let r;return\"function\"==typeof t.retryAfter?t.retryAfter():(r=0,e&&e>0?r+Math.round(Math.random()*e):r)}return 0}class y extends Error{constructor(){super(),Object.setPrototypeOf(this,y.prototype),this.name=\"RequestTimedOutError\",this.message=\"Request timed out\"}canRetry(){return!0}retryAfter(){return 0}}class m extends Error{constructor(){super(),this.name=\"AbortError\",Object.setPrototypeOf(this,m.prototype),this.message=\"Response aborted\"}canRetry(){return!0}retryAfter(){return 0}}function w(){n[\"dateTime:RFC3339\"]=t=>\"\"===t?null:new Date(Date.parse(t))}function b(){n[\"dateTime:RFC3339\"]=t=>\"\"===t?null:Date.parse(t)}function x(){n[\"dateTime:RFC3339\"]=t=>\"\"===t?null:t}class v{constructor(t){t.forEach(((t,e)=>t.index=e)),this.columns=t}column(t,e=!0){for(let e=0;e<this.columns.length;e++){const r=this.columns[e];if(r.label===t)return r}if(e)throw new c(`Column ${t} not found!`);return o}toObject(t){const e={};for(let r=0;r<this.columns.length&&r<t.length;r++){const s=this.columns[r];e[s.label]=s.get(t)}return e}get(t,e){return this.column(e,!1).get(t)}}function O(t){return new v(t)}function R(t){const e=(new r).withReuse();let s,n,i=!0,o=0;return{error(e){t.error(e)},next(r){if(\"\"===r)i=!0,s=void 0;else{const a=e.splitLine(r),h=e.lastSplitLength;if(i){if(!s){s=new Array(h);for(let t=0;t<h;t++)s[t]=l()}if(a[0].startsWith(\"#\")){if(\"#datatype\"===a[0])for(let t=1;t<h;t++)s[t].dataType=a[t];else if(\"#default\"===a[0])for(let t=1;t<h;t++)s[t].defaultValue=a[t];else if(\"#group\"===a[0])for(let t=1;t<h;t++)s[t].group=\"t\"===a[t][0]}else{\"\"===a[0]?(o=1,s=s.slice(1)):o=0;for(let t=o;t<h;t++)s[t-o].label=a[t];n=O(s),i=!1}}else t.next(a.slice(o,h),n)}},complete(){t.complete()},useCancellable(e){t.useCancellable&&t.useCancellable(e)}}}function T(t,e){let r=!1,s=0,n=0;for(;n<t.length;){const i=t.charCodeAt(n);if(10===i){if(!r){const r=n>0&&13===t.charCodeAt(n-1)?n-1:n;e.next(t.substring(s,r)),s=n+1}}else 34===i&&(r=!r);n++}s<n&&e.next(t.substring(s,n)),e.complete()}const S={timeout:1e4},$={retryJitter:200,minRetryDelay:5e3,maxRetryDelay:125e3,exponentialBase:5,randomRetry:!0},E={batchSize:1e3,maxBatchBytes:5e7,flushInterval:6e4,writeFailed:function(){},writeSuccess:function(){},maxRetries:5,maxRetryTime:18e4,maxBufferLines:32e3,retryJitter:200,minRetryDelay:5e3,maxRetryDelay:125e3,exponentialBase:2,gzipThreshold:1e3,randomRetry:!0};function C(t,e){return function(r){let s=\"\",n=0,i=0;for(;i<r.length;){const o=t.indexOf(r[i]);o>=0&&(s+=r.substring(n,i),s+=e[o],n=i+1),i++}return 0==n?r:(n<r.length&&(s+=r.substring(n,r.length)),s)}}const D={measurement:C(\", \\n\\r\\t\",[\"\\\\,\",\"\\\\ \",\"\\\\n\",\"\\\\r\",\"\\\\t\"]),quoted:function(t,e){const r=C(t,e);return t=>'\"'+r(t)+'\"'}('\"\\\\',['\\\\\"',\"\\\\\\\\\"]),tag:C(\", =\\n\\r\\t\",[\"\\\\,\",\"\\\\ \",\"\\\\=\",\"\\\\n\",\"\\\\r\",\"\\\\t\"])};function B(t){return!1}let j=Date.now(),A=0;function _(){{const t=Date.now();t!==j?(j=t,A=0):A++;const e=String(A);return String(t)+\"000000000\".substr(0,6-e.length)+e}}function I(){return String(Date.now())+\"000000000\".substr(0,3)}function L(){return String(Date.now())}function P(){return String(Math.floor(Date.now()/1e3))}const M={s:P,ms:L,us:I,ns:_,seconds:P,millis:L,micros:I,nanos:_},N={s:t=>`${Math.floor(t.getTime()/1e3)}`,ms:t=>`${t.getTime()}`,us:t=>`${t.getTime()}000`,ns:t=>`${t.getTime()}000000`};function F(t){return void 0===t?_():\"string\"==typeof t?t.length>0?t:void 0:t instanceof Date?`${t.getTime()}000000`:String(\"number\"==typeof t?Math.floor(t):t)}const k={error(t,e){console.error(\"ERROR: \"+t,e||\"\")},warn(t,e){console.warn(\"WARN: \"+t,e||\"\")}};let V=k;const z={error(t,e){V.error(t,e)},warn(t,e){V.warn(t,e)}};function q(t){const e=V;return V=t,e}const H=Symbol(\"FLUX_VALUE\");class U{constructor(t){this.fluxValue=t}toString(){return this.fluxValue}[H](){return this.fluxValue}}function W(t){if(null==t)return\"\";let e;t=t.toString();let r=0;function s(){void 0===e&&(e=t.substring(0,r))}for(;r<t.length;r++){const n=t.charAt(r);switch(n){case\"\\r\":s(),e+=\"\\\\r\";break;case\"\\n\":s(),e+=\"\\\\n\";break;case\"\\t\":s(),e+=\"\\\\t\";break;case'\"':case\"\\\\\":s(),e=e+\"\\\\\"+n;break;case\"$\":if(r+1<t.length&&\"{\"===t.charAt(r+1)){s(),r++,e+=\"\\\\${\";break}null!=e&&(e+=n);break;default:null!=e&&(e+=n)}}return void 0!==e?e:t}function J(t){return new U(`\"${W(t)}\"`)}function G(t){if(\"number\"==typeof t){if(!isFinite(t))throw new Error(`not a flux float: ${t}`);return t.toString()}const e=String(t);let r=!1;for(const t of e)if(\".\"!==t){if(\".\"!==t&&\"-\"!==t&&(t<\"0\"||t>\"9\"))throw new Error(`not a flux float: ${e}`)}else{if(r)throw new Error(`not a flux float: ${e}`);r=!r}return e}function X(t){return new U(G(t))}function Y(t){const e=G(t);for(const t of e)if(\".\"===t)throw new Error(`not a flux integer: ${e}`);return new U(e)}function K(t){return new U(function(t){return`time(v: \"${W(t)}\")`}(t))}function Q(t){return new U(`duration(v: \"${W(t)}\")`)}function Z(t){return`regexp.compile(v: \"${W(t)}\")`}function tt(t){return new U(Z(t))}function et(t){return new U(\"true\"===t||\"false\"===t?t:(!!t).toString())}function rt(t){return new U(String(t))}function st(t){if(void 0===t)return\"\";if(null===t)return\"null\";if(\"boolean\"==typeof t)return t.toString();if(\"string\"==typeof t)return`\"${W(t)}\"`;if(\"number\"==typeof t)return G(t);if(\"object\"==typeof t){if(\"function\"==typeof t[H])return t[H]();if(t instanceof Date)return t.toISOString();if(t instanceof RegExp)return Z(t);if(Array.isArray(t))return`[${t.map(st).join(\",\")}]`}return st(t.toString())}function nt(t,...e){if(1==t.length&&0===e.length)return rt(t[0]);const r=new Array(t.length+e.length);let s=0;for(let i=0;i<t.length;i++){const o=t[i];if(r[s++]=o,i<e.length){const l=e[i];let a;if(o.endsWith('\"')&&i+1<t.length&&t[i+1].startsWith('\"'))a=W(l);else if(a=st(l),\"\"===a&&(\"object\"!=typeof(n=l)||\"function\"!=typeof n[H]))throw new Error(`Unsupported parameter literal '${l}' at index: ${i}, type: ${typeof l}`);r[s++]=a}else if(i<t.length-1)throw new Error(\"Too few parameters supplied!\")}var n;return rt(r.join(\"\"))}const it=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";class ot{constructor(t){this.tags={},this.fields={},t&&(this.name=t)}measurement(t){return this.name=t,this}tag(t,e){return this.tags[t]=e,this}booleanField(t,e){return this.fields[t]=e?\"T\":\"F\",this}intField(t,e){let r;if(r=\"number\"==typeof e?e:parseInt(String(e)),isNaN(r)||r<=-0x8000000000000000||r>=0x8000000000000000)throw new Error(`invalid integer value for field '${t}': '${e}'!`);return this.fields[t]=`${Math.floor(r)}i`,this}uintField(t,e){if(\"number\"==typeof e){if(isNaN(e)||e<0||e>Number.MAX_SAFE_INTEGER)throw new Error(`uint value for field '${t}' out of range: ${e}`);this.fields[t]=`${Math.floor(e)}u`}else{const r=String(e);for(let t=0;t<r.length;t++){const s=r.charCodeAt(t);if(s<48||s>57)throw new Error(`uint value has an unsupported character at pos ${t}: ${e}`)}if(r.length>20||20===r.length&&r.localeCompare(\"18446744073709551615\")>0)throw new Error(`uint value for field '${t}' out of range: ${r}`);this.fields[t]=`${r}u`}return this}floatField(t,e){let r;if(r=\"number\"==typeof e?e:parseFloat(e),!isFinite(r))throw new Error(`invalid float value for field '${t}': ${e}`);return this.fields[t]=String(r),this}stringField(t,e){return null!=e&&(\"string\"!=typeof e&&(e=String(e)),this.fields[t]=D.quoted(e)),this}timestamp(t){return this.time=t,this}toLineProtocol(t){if(!this.name)return;let e=\"\";if(Object.keys(this.fields).sort().forEach((t=>{if(t){const r=this.fields[t];e.length>0&&(e+=\",\"),e+=`${D.tag(t)}=${r}`}})),0===e.length)return;let r=\"\";const s=t&&t.defaultTags?Object.assign(Object.assign({},t.defaultTags),this.tags):this.tags;Object.keys(s).sort().forEach((t=>{if(t){const e=s[t];e&&(r+=\",\",r+=`${D.tag(t)}=${D.tag(e)}`)}}));let n=this.time;return n=t&&t.convertTime?t.convertTime(n):F(n),`${D.measurement(this.name)}${r} ${e}${void 0!==n?\" \"+n:\"\"}`}toString(){const t=this.toLineProtocol(void 0);return t||`invalid point: ${JSON.stringify(this,void 0)}`}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function lt(t,e,r,s){return new(r||(r=Promise))((function(n,i){function o(t){try{a(s.next(t))}catch(t){i(t)}}function l(t){try{a(s.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?n(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,l)}a((s=s.apply(t,e||[])).next())}))}class at{constructor(t){this.options=Object.assign(Object.assign({},$),t),this.success()}nextDelay(t,e){const r=g(t);if(r&&r>0)return r+Math.round(Math.random()*this.options.retryJitter);if(e&&e>0){if(this.options.randomRetry){let t=Math.max(this.options.minRetryDelay,1),r=t*this.options.exponentialBase;for(let s=1;s<e;s++)if(t=r,r*=this.options.exponentialBase,r>=this.options.maxRetryDelay){r=this.options.maxRetryDelay;break}return t+Math.round(Math.random()*(r-t)+Math.random()*this.options.retryJitter)}let t=Math.max(this.options.minRetryDelay,1);for(let r=1;r<e;r++)if(t*=this.options.exponentialBase,t>=this.options.maxRetryDelay){t=this.options.maxRetryDelay;break}return t+Math.round(Math.random()*this.options.retryJitter)}return this.currentDelay?this.currentDelay=Math.min(Math.max(this.currentDelay*this.options.exponentialBase,1)+Math.round(Math.random()*this.options.retryJitter),this.options.maxRetryDelay):this.currentDelay=this.options.minRetryDelay+Math.round(Math.random()*this.options.retryJitter),this.currentDelay}success(){this.currentDelay=void 0}}class ht{constructor(t,e){this.maxLines=t,this.retryLines=e,this.size=0,this.nextRetryTime=0,this.closed=!1,this._timeoutHandle=void 0}addLines(t,e,r,s){if(this.closed)return;if(!t.length)return;let n=Date.now()+r;if(s<n&&(r=s-Date.now(),n=s),n>this.nextRetryTime&&(this.nextRetryTime=n),this.first&&this.size+t.length>this.maxLines){const e=this.size,r=.7*e;do{const t=this.first.next;this.size-=this.first.lines.length,this.first.next=void 0,this.first=t,this.first||(this.last=void 0)}while(this.first&&this.size+t.length>r);z.error(`RetryBuffer: ${e-this.size} oldest lines removed to keep buffer size under the limit of ${this.maxLines} lines`)}const i={lines:t,retryCount:e,expires:s};this.last?(this.last.next=i,this.last=i):(this.first=i,this.last=i,this.scheduleRetry(r)),this.size+=t.length}removeLines(){if(this.first){const t=this.first;return this.first=this.first.next,t.next=void 0,this.size-=t.lines.length,this.first||(this.last=void 0),t}}scheduleRetry(t){this._timeoutHandle=setTimeout((()=>{const t=this.removeLines();t?this.retryLines(t.lines,t.retryCount,t.expires).then((()=>{this.scheduleRetry(1)})).catch((t=>{this.scheduleRetry(this.nextRetryTime-Date.now())})):this._timeoutHandle=void 0}),Math.max(t,0))}flush(){return lt(this,void 0,void 0,(function*(){let t;for(;t=this.removeLines();)yield this.retryLines(t.lines,t.retryCount,t.expires)}))}close(){return this._timeoutHandle&&(clearTimeout(this._timeoutHandle),this._timeoutHandle=void 0),this.closed=!0,this.size}}class ut{constructor(t,e,r,s){this.maxChunkRecords=t,this.maxBatchBytes=e,this.flushFn=r,this.scheduleSend=s,this.length=0,this.bytes=-1,this.lines=new Array(t)}add(t){const e=function(t){let e=t.length;for(let r=0;r<t.length;r++){const s=t.charCodeAt(r);s<128||(s>=128&&s<=2047?e++:s>=2048&&s<=65535?s>=55296&&s<=57343?e++:e+=2:e+=3)}return e}(t);0===this.length?this.scheduleSend():this.bytes+e+1>=this.maxBatchBytes&&this.flush().catch((t=>{})),this.lines[this.length]=t,this.length++,this.bytes+=e+1,(this.length>=this.maxChunkRecords||this.bytes>=this.maxBatchBytes)&&this.flush().catch((t=>{}))}flush(){const t=this.reset();return t.length>0?this.flushFn(t):Promise.resolve()}reset(){const t=this.lines.slice(0,this.length);return this.length=0,this.bytes=-1,t}}class ct{constructor(t,e,r,s,n){this.transport=t,this.closed=!1,this._timeoutHandle=void 0,this.httpPath=`/api/v2/write?org=${encodeURIComponent(e)}&bucket=${encodeURIComponent(r)}&precision=${s}`,this.writeOptions=Object.assign(Object.assign({},E),n),this.currentTime=M[s],this.dateToProtocolTimestamp=N[s],this.writeOptions.defaultTags&&this.useDefaultTags(this.writeOptions.defaultTags),this.sendOptions={method:\"POST\",headers:Object.assign({\"content-type\":\"text/plain; charset=utf-8\"},null==n?void 0:n.headers),gzipThreshold:this.writeOptions.gzipThreshold};var i;this.writeBuffer=new ut(this.writeOptions.batchSize,this.writeOptions.maxBatchBytes,(t=>(this._clearFlushTimeout(),this.sendBatch(t,this.writeOptions.maxRetries))),(()=>{this.writeOptions.flushInterval>0&&(this._clearFlushTimeout(),this.closed||(this._timeoutHandle=setTimeout((()=>this.sendBatch(this.writeBuffer.reset(),this.writeOptions.maxRetries).catch((t=>{}))),this.writeOptions.flushInterval)))})),this.sendBatch=this.sendBatch.bind(this),this.retryStrategy=(i=this.writeOptions,new at(i)),this.retryBuffer=new ht(this.writeOptions.maxBufferLines,this.sendBatch)}sendBatch(t,e,r=Date.now()+this.writeOptions.maxRetryTime){const s=this,n=s.writeOptions.maxRetries+1-e;if(!this.closed&&t.length>0){if(r<=Date.now()){const e=new Error(\"Max retry time exceeded.\"),i=s.writeOptions.writeFailed.call(s,e,t,n,r);return i||(z.error(`Write to InfluxDB failed (attempt: ${n}).`,e),Promise.reject(e))}return new Promise(((i,o)=>{let l;const a={responseStarted(t,e){l=e},error(l){const a=s.writeOptions.writeFailed.call(s,l,t,n,r);if(a)a.then(i,o);else{if(!s.closed&&e>0&&(!(l instanceof f)||l.statusCode>=429))return z.warn(`Write to InfluxDB failed (attempt: ${n}).`,l),s.retryBuffer.addLines(t,e-1,s.retryStrategy.nextDelay(l,n),r),void o(l);z.error(\"Write to InfluxDB failed.\",l),o(l)}},complete(){if(204==l||null==l)s.writeOptions.writeSuccess.call(s,t),s.retryStrategy.success(),i();else{const t=`204 HTTP response status code expected, but ${l} returned`,e=new f(l,t,void 0,\"0\");e.message=t,a.error(e)}}};this.transport.send(this.httpPath,t.join(\"\\n\"),this.sendOptions,a)}))}return Promise.resolve()}_clearFlushTimeout(){void 0!==this._timeoutHandle&&(clearTimeout(this._timeoutHandle),this._timeoutHandle=void 0)}writeRecord(t){if(this.closed)throw new Error(\"writeApi: already closed!\");this.writeBuffer.add(t)}writeRecords(t){if(this.closed)throw new Error(\"writeApi: already closed!\");for(let e=0;e<t.length;e++)this.writeBuffer.add(t[e])}writePoint(t){if(this.closed)throw new Error(\"writeApi: already closed!\");const e=t.toLineProtocol(this);e&&this.writeBuffer.add(e)}writePoints(t){if(this.closed)throw new Error(\"writeApi: already closed!\");for(let e=0;e<t.length;e++){const r=t[e].toLineProtocol(this);r&&this.writeBuffer.add(r)}}flush(t){return lt(this,void 0,void 0,(function*(){if(yield this.writeBuffer.flush(),t)return yield this.retryBuffer.flush()}))}close(){return this.writeBuffer.flush().finally((()=>{const t=this.retryBuffer.close();t&&z.error(`Retry buffer closed with ${t} items that were not written to InfluxDB!`,null),this.closed=!0}))}dispose(){return this._clearFlushTimeout(),this.closed=!0,this.retryBuffer.close()+this.writeBuffer.length}useDefaultTags(t){return this.defaultTags=t,this}convertTime(t){return void 0===t?this.currentTime():\"string\"==typeof t?t.length>0?t:void 0:t instanceof Date?this.dateToProtocolTimestamp(t):String(\"number\"==typeof t?Math.floor(t):t)}}function ft(t){const e={};return t.headers.forEach(((t,r)=>{const s=e[r];void 0===s?e[r]=t:Array.isArray(s)?s.push(t):e[r]=[s,t]})),e}class dt{constructor(e){this.connectionOptions=e,this.chunkCombiner=t(),this.requestDecorator=function(){},this.defaultHeaders=Object.assign({\"content-type\":\"application/json; charset=utf-8\"},e.headers),this.connectionOptions.token&&(this.defaultHeaders.Authorization=\"Token \"+this.connectionOptions.token),this.url=String(this.connectionOptions.url),this.url.endsWith(\"/\")&&(this.url=this.url.substring(0,this.url.length-1)),this.url.endsWith(\"/api/v2\")&&(this.url=this.url.substring(0,this.url.length-\"/api/v2\".length),z.warn(`Please remove '/api/v2' context path from InfluxDB base url, using ${this.url} !`))}send(t,e,r,s){const n=function(t={}){let e=0;return{next:r=>{0===e&&t.next&&null!=r&&t.next(r)},error:r=>{0===e&&(e=1,t.error&&t.error(r))},complete:()=>{0===e&&(e=2,t.complete&&t.complete())},responseStarted:(e,r)=>{t.responseStarted&&t.responseStarted(e,r)}}}(s);let i=!1,o=r.signal;if(s&&s.useCancellable){const t=new AbortController;o||(o=t.signal,r=Object.assign(Object.assign({},r),o)),s.useCancellable({cancel(){i=!0,t.abort()},isCancelled:()=>i||o.aborted})}this.fetch(t,e,r).then((t=>lt(this,void 0,void 0,(function*(){if((null==s?void 0:s.responseStarted)&&n.responseStarted(ft(t),t.status),t.status>=300)return t.text().then((e=>{if(!e){const r=t.headers.get(\"x-influxdb-error\");r&&(e=r)}n.error(new f(t.status,t.statusText,e,t.headers.get(\"retry-after\"),t.headers.get(\"content-type\")))})).catch((e=>{z.warn(\"Unable to receive error body\",e),n.error(new f(t.status,t.statusText,void 0,t.headers.get(\"retry-after\"),t.headers.get(\"content-type\")))}));if(t.body){const e=t.body.getReader();let r;do{r=yield e.read(),n.next(r.value)}while(!r.done)}else if(t.arrayBuffer){const e=yield t.arrayBuffer();n.next(new Uint8Array(e))}else{const e=yield t.text();n.next((new TextEncoder).encode(e))}})))).catch((t=>{i||n.error(t)})).finally((()=>n.complete()))}request(t,e,r,s){var n,i;return lt(this,void 0,void 0,(function*(){const o=yield this.fetch(t,e,r),{status:l,headers:a}=o,h=a.get(\"content-type\")||\"\";if(s&&s(ft(o),o.status),l>=300){let t=yield o.text();if(!t){const e=a.get(\"x-influxdb-error\");e&&(t=e)}throw new f(l,o.statusText,t,o.headers.get(\"retry-after\"),o.headers.get(\"content-type\"))}const u=null!==(i=null===(n=r.headers)||void 0===n?void 0:n.accept)&&void 0!==i?i:h;return u.includes(\"json\")?yield o.json():u.includes(\"text\")||u.startsWith(\"application/csv\")?yield o.text():void 0}))}fetch(t,e,r){const{method:s,headers:n}=r,i=function(t,e){var r={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(null!=t&&\"function\"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(t);n<s.length;n++)e.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(t,s[n])&&(r[s[n]]=t[s[n]])}return r}(r,[\"method\",\"headers\"]),o=`${this.url}${t}`,l=Object.assign({method:s,body:\"GET\"===s||\"HEAD\"===s?void 0:\"string\"==typeof e?e:JSON.stringify(e),headers:Object.assign(Object.assign({},this.defaultHeaders),n),credentials:\"omit\"},i);return this.requestDecorator(l,r,o),fetch(o,l)}}const pt={header:!0,delimiter:\",\",quoteChar:'\"',commentPrefix:\"#\",annotations:[\"datatype\",\"group\",\"default\"]};class gt{constructor(t,e,r){this.transport=t,this.createCSVResponse=e,this.options=\"string\"==typeof r?{org:r}:r}with(t){return new gt(this.transport,this.createCSVResponse,Object.assign(Object.assign({},this.options),t))}response(t){return this.createCSVResponse(this.createExecutor(t))}lines(t){return this.response(t).lines()}rows(t){return this.response(t).rows()}queryLines(t,e){return this.response(t).consumeLines(e)}queryRows(t,e){return this.response(t).consumeRows(e)}collectRows(t,e){return this.response(t).collectRows(e)}collectLines(t){return this.response(t).collectLines()}queryRaw(t){const{org:e,type:r,gzip:s,headers:n}=this.options;return this.transport.request(`/api/v2/query?org=${encodeURIComponent(e)}`,JSON.stringify(this.decorateRequest({query:t.toString(),dialect:pt,type:r})),{method:\"POST\",headers:Object.assign({accept:\"text/csv\",\"accept-encoding\":s?\"gzip\":\"identity\",\"content-type\":\"application/json; encoding=utf-8\"},n)})}createExecutor(t){const{org:e,type:r,gzip:s,headers:n}=this.options;return i=>{this.transport.send(`/api/v2/query?org=${encodeURIComponent(e)}`,JSON.stringify(this.decorateRequest({query:t.toString(),dialect:pt,type:r})),{method:\"POST\",headers:Object.assign({\"content-type\":\"application/json; encoding=utf-8\",\"accept-encoding\":s?\"gzip\":\"identity\"},n)},i)}}decorateRequest(t){var e;return\"function\"==typeof this.options.now&&(t.now=this.options.now()),t.type=null!==(e=this.options.type)&&void 0!==e?e:\"flux\",t}}class yt{constructor(t,e){this.isClosed=!1;try{e({next:e=>{t.next(e)},error:e=>{this.isClosed=!0,t.error(e)},complete:()=>{this.isClosed=!0,t.complete()},useCancellable:t=>{this.cancellable=t}})}catch(e){this.isClosed=!0,t.error(e)}}get closed(){return this.isClosed}unsubscribe(){var t;null===(t=this.cancellable)||void 0===t||t.cancel(),this.isClosed=!0}}function mt(){}class wt{constructor(t,e){this.executor=t,this.decorator=e}subscribe(t,e,r){const s=function(t){const{next:e,error:r,complete:s}=t;return{next:e?e.bind(t):mt,error:r?r.bind(t):mt,complete:s?s.bind(t):mt}}(\"object\"!=typeof t||null===t?{next:t,error:e,complete:r}:t);return new yt(this.decorator(s),this.executor)}[it](){return this}}function bt(t,e){return e.toObject(t)}class xt{constructor(t,e){this.executor=t,this.chunkCombiner=e}lines(){return new wt(this.executor,(t=>e(t,this.chunkCombiner)))}rows(){return new wt(this.executor,(t=>e(R({next(e,r){t.next({values:e,tableMeta:r})},error(e){t.error(e)},complete(){t.complete()}}),this.chunkCombiner)))}consumeLines(t){this.executor(e(t,this.chunkCombiner))}consumeRows(t){this.executor(e(R(t),this.chunkCombiner))}collectRows(t=bt){const e=[];return new Promise(((r,s)=>{this.consumeRows({next(r,s){const n=t.call(this,r,s);void 0!==n&&e.push(n)},error(t){s(t)},complete(){r(e)}})}))}collectLines(){const t=[];return new Promise(((e,r)=>{this.consumeLines({next(e){t.push(e)},error(t){r(t)},complete(){e(t)}})}))}}class vt{constructor(t){var e;if(\"string\"==typeof t)this._options={url:t};else{if(null===t||\"object\"!=typeof t)throw new c(\"No url or configuration specified!\");this._options=t}const r=this._options.url;if(\"string\"!=typeof r)throw new c(\"No url specified!\");r.endsWith(\"/\")&&(this._options.url=r.substring(0,r.length-1)),this.transport=null!==(e=this._options.transport)&&void 0!==e?e:new dt(this._options),this.processCSVResponse=t=>new xt(t,this.transport.chunkCombiner)}getWriteApi(t,e,r=\"ns\",s){return new ct(this.transport,t,e,r,null!=s?s:this._options.writeOptions)}getQueryApi(t){return new gt(this.transport,this.processCSVResponse,t)}}export{m as AbortError,S as DEFAULT_ConnectionOptions,$ as DEFAULT_RetryDelayStrategyOptions,E as DEFAULT_WriteOptions,H as FLUX_VALUE,f as HttpError,c as IllegalArgumentError,vt as InfluxDB,r as LineSplitter,z as Log,ot as Point,y as RequestTimedOutError,o as UNKNOWN_COLUMN,p as canRetryHttpCall,e as chunksToLines,k as consoleLogger,F as convertTimeToNanos,a as createFluxTableColumn,O as createFluxTableMetaData,t as createTextDecoderCombiner,M as currentTime,N as dateToProtocolTimestamp,D as escape,nt as flux,et as fluxBool,K as fluxDateTime,Q as fluxDuration,rt as fluxExpression,X as fluxFloat,Y as fluxInteger,tt as fluxRegExp,J as fluxString,g as getRetryDelay,u as isStatusCodeRetriable,R as linesToTables,l as newFluxTableColumn,G as sanitizeFloat,w as serializeDateTimeAsDate,b as serializeDateTimeAsNumber,x as serializeDateTimeAsString,q as setLogger,T as stringToLines,it as symbolObservable,st as toFluxValue,n as typeSerializers,B as useProcessHrtime};\n//# sourceMappingURL=index.browser.mjs.map\n","import {\n Table,\n FromFluxResult,\n ColumnType,\n FluxDataType,\n ColumnData,\n} from '@influxdata/giraffe'\nimport {\n stringToLines,\n linesToTables,\n ColumnType as ClientColumnType,\n FluxTableMetaData,\n FluxResultObserver,\n Cancellable,\n} from '@influxdata/influxdb-client'\n\n/** A type of a function that creates a new giraffe table of a specified length */\nexport type GiraffeTableFactory = (length: number) => Table\n\n/**\n * Stores data and metadata of a result column.\n */\ninterface Column {\n /** column name */\n name: string\n /** giraffe column type */\n type: ColumnType\n /** flux data type */\n fluxDataType: FluxDataType\n /** column data */\n data: ColumnData\n /** convert result row to column value */\n toValue: (row: string[]) => number | string | boolean | null\n /** when true, it is a no-data column to indicate that multiple columns of the same label exist (distinguished also by column type) */\n multipleTypes?: true\n /** group key membership of this column */\n group?: boolean\n}\n\nfunction createResult(\n tableLength: number,\n columns: Record<string, Column>,\n tableFactory: GiraffeTableFactory,\n {computeFluxGroupKeyUnion, computeResultColumnNames}: TableOptions\n): FromFluxResult {\n let table = tableFactory(tableLength)\n const fluxGroupKeyUnion: string[] = []\n const resultColumnNames = new Set<string>()\n Object.keys(columns).forEach(key => {\n const col = columns[key]\n if (!col.multipleTypes) {\n ;(col.data as any).length = tableLength // extend the array length, required (and tested)\n table = table.addColumn(\n key,\n col.fluxDataType,\n col.type,\n col.data,\n col.name\n )\n if (computeFluxGroupKeyUnion && col.group) {\n fluxGroupKeyUnion.push(key)\n }\n if (computeResultColumnNames && col.name === 'result') {\n col.data.forEach(x => resultColumnNames.add(x as string))\n }\n }\n })\n\n return {\n table,\n fluxGroupKeyUnion,\n resultColumnNames: Array.from(resultColumnNames),\n }\n}\n\n/**\n * AcceptRowFunction allows to accept/reject specific rows or terminate processing.\n * @param row - CSV result data row\n * @param tableMeta - CSV table metadata with column descriptors\n * @returns true to accept row, false to skip row, undefined means stop processing\n **/\nexport type AcceptRowFunction = (\n row: string[],\n tableMeta: FluxTableMetaData\n) => true | false | undefined\n\n/**\n * Contains parameters that optimize/drive creation of the query result Table.\n */\nexport interface TableOptions {\n /**\n * Accept allows to accept/reject specific rows or terminate processing.\n **/\n accept?: AcceptRowFunction | AcceptRowFunction[]\n /**\n * Sets maximum table length, QUERY_MAX_TABLE_LENGTH when undefined.\n */\n maxTableLength?: number\n\n /** column keys to collect in the table, undefined means all columns */\n columns?: string[]\n\n /** compute also fluxGroupKeyUnion */\n computeFluxGroupKeyUnion?: boolean\n\n /** compute also resultColumnNames */\n computeResultColumnNames?: boolean\n}\n\n/**\n * QUERY_MAX_TABLE_LENGTH is a default max table length,\n * it can be overriden in TableOptions.\n */\nexport const QUERY_MAX_TABLE_LENGTH = 100_000\n\n/**\n * Creates an accept function that stops processing\n * if the table reaches the specified max rows.\n * @param size - maximum processed rows\n * @returns AcceptRowFunction that enforces that most max rows are processed\n */\nexport function acceptMaxTableLength(max: number): AcceptRowFunction {\n let size = 0\n return (): true | undefined => {\n if (size >= max) {\n // eslint-disable-next-line no-console\n console.log(\n `csv2Table: max table length ${max} reached, processing stopped`\n )\n return undefined\n }\n size++\n return true\n }\n}\n\n/**\n * Creates a single accept function for the TableOptions supplied.\n * @param options - table options\n * @returns accept function\n */\nfunction createAcceptRowFunction(options: TableOptions): AcceptRowFunction {\n const maxTableLength =\n options.maxTableLength === undefined\n ? QUERY_MAX_TABLE_LENGTH\n : options.maxTableLength\n const acceptors: AcceptRowFunction[] = []\n if (options.accept) {\n if (Array.isArray(options.accept)) {\n acceptors.push(...options.accept)\n } else {\n acceptors.push(options.accept)\n }\n }\n acceptors.push(acceptMaxTableLength(maxTableLength))\n\n return (\n row: string[],\n tableMeta: FluxTableMetaData\n ): true | false | undefined => {\n for (let i = 0; i < acceptors.length; i++) {\n const retVal = acceptors[i](row, tableMeta)\n if (retVal === undefined || retVal === false) {\n return retVal\n }\n }\n return true\n }\n}\n\n/**\n * Creates a function that returns a column value from row data.\n *\n * @param rowIndex - index of a string value in the row data\n * @param type - column type\n * @param def - default value\n * @returns column value to store in a table\n */\nfunction toValueFn(\n rowIndex: number,\n type: ColumnType,\n def: string\n): (row: string[]) => number | string | boolean | null {\n switch (type) {\n case 'boolean':\n return (row: string[]): boolean =>\n (row[rowIndex] === '' ? def : row[rowIndex]) === 'true'\n case 'number':\n return (row: string[]): number | null => {\n const val = row[rowIndex] === '' ? def : row[rowIndex]\n return val === '' ? null : Number(val)\n }\n case 'time':\n return (row: string[]): number =>\n Date.parse(row[rowIndex] === '' ? def : row[rowIndex])\n default:\n return (row: string[]): string =>\n row[rowIndex] === '' ? def : row[rowIndex]\n }\n}\n\n/**\n * Converts between influxdb-client and giraffe columns types.\n *\n * @param clientType - `@influxdata/influxdb-client` column type\n * @returns `@influxdata/giraffe` column type\n */\nfunction toGiraffeColumnType(clientType: ClientColumnType): ColumnType {\n // from: 'boolean' | 'unsignedLong' | 'long' | 'double' | 'string' | 'base64Binary' | 'dateTime:RFC3339' | 'duration'\n // to: 'number' | 'string' | 'time' | 'boolean'\n switch (clientType) {\n case 'boolean':\n return 'boolean'\n case 'unsignedLong':\n case 'long':\n case 'double':\n return 'number'\n default:\n return clientType && clientType.startsWith('dateTime') ? 'time' : 'string'\n }\n}\n\n/**\n * Creates influxdb-client-js's FluxResultObserver that collects row results to a Table instance\n * @param resolve - called when the Table is collected\n * @param reject - called upon error\n * @param tableOptions - tableOptions allow to filter or even stop the processing of rows, or restrict the columns to collect\n * @returns FluxResultObserver that collects table data from result rows\n */\nexport function createCollector(\n resolve: (value: FromFluxResult) => void,\n reject: (reason?: any) => void,\n tableFactory: GiraffeTableFactory,\n tableOptions: TableOptions = {}\n): FluxResultObserver<string[]> {\n const {columns: onlyColumns} = tableOptions\n const accept = createAcceptRowFunction(tableOptions)\n const columns: Record<string, Column> = {}\n let dataColumns: Column[]\n let lastTableMeta: FluxTableMetaData | undefined = undefined\n let tableSize = 0\n let cancellable: Cancellable\n return {\n next(row: string[], tableMeta: FluxTableMetaData): void {\n switch (accept(row, tableMeta)) {\n case true:\n break\n case false:\n return\n default:\n cancellable?.cancel()\n return\n }\n if (tableMeta !== lastTableMeta) {\n dataColumns = []\n for (const metaCol of tableMeta.columns) {\n const type = toGiraffeColumnType(metaCol.dataType)\n if (onlyColumns && !onlyColumns.includes(metaCol.label)) {\n continue // exclude this column\n }\n\n // handle the rare situation of having columns with the same name, but different type\n let columnKey = metaCol.label\n let existingColumn = columns[columnKey]\n if (existingColumn) {\n if (existingColumn.multipleTypes) {\n // multiple column types of the same name already found\n // use type-specific column key\n columnKey = `${metaCol.label} (${type})`\n existingColumn = columns[columnKey]\n } else if (existingColumn.type !== type) {\n // move the existing key to a type-specific key\n columns[\n `${existingColumn.name} (${existingColumn.type})`\n ] = existingColumn\n // create a multiType (virtual) column\n columns[metaCol.label] = {\n name: metaCol.label,\n multipleTypes: true,\n // other values are not used\n } as Column\n columnKey = `${metaCol.label} (${type})`\n existingColumn = columns[columnKey]\n }\n }\n const column = {\n name: metaCol.label,\n fluxDataType: metaCol.dataType as FluxDataType,\n type,\n data: existingColumn ? existingColumn.data : [],\n group: existingColumn?.group || metaCol.group,\n toValue: toValueFn(metaCol.index, type, metaCol.defaultValue),\n }\n\n dataColumns.push(column)\n columns[columnKey] = column\n }\n lastTableMeta = tableMeta\n }\n for (let i = 0; i < dataColumns.length; i++) {\n const column = dataColumns[i]\n // cast is required because of wrong type definition in Giraffe\n column.data[tableSize] = column.toValue(row) as\n | string\n | number\n | boolean\n }\n tableSize++\n },\n complete(): void {\n resolve(createResult(tableSize, columns, tableFactory, tableOptions))\n },\n error(e: Error): void {\n if (e.name === 'AbortError') {\n // eslint-disable-next-line no-console\n console.log('queryTable: request aborted:', e)\n resolve(createResult(tableSize, columns, tableFactory, tableOptions))\n }\n reject(e)\n },\n useCancellable(val: Cancellable): void {\n cancellable = val\n },\n }\n}\n\n/**\n * Transforms annotated CSV query response to Giraffe's FromFluxResult.\n *\n * @param csv - annotated CSV flux query response\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect\n * @returns a new FromFluxResult instance\n */\nexport function csvToFromFluxResult(\n csv: string,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): FromFluxResult {\n let result: FromFluxResult | undefined\n let error: Error | undefined = undefined\n const collector = createCollector(\n r => (result = r),\n /* istanbul ignore next because error is never thrown */\n e => (error = e),\n tableFactory,\n {\n computeFluxGroupKeyUnion: true,\n computeResultColumnNames: true,\n ...tableOptions,\n }\n )\n stringToLines(csv, linesToTables(collector))\n /* istanbul ignore if error is never thrown */\n if (error) {\n throw error\n } else {\n return result as FromFluxResult\n }\n}\n\n/**\n * Transforms annotated CSV query response to Giraffe's Table.\n *\n * @param csv - annotated CSV flux query response\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect.\n * @returns a new Table instance\n */\nexport function csvToTable(\n csv: string,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): Table {\n return csvToFromFluxResult(csv, tableFactory, {\n computeFluxGroupKeyUnion: false,\n ...tableOptions,\n }).table\n}\n","import {ParameterizedQuery, QueryApi} from '@influxdata/influxdb-client'\nimport {Table, FromFluxResult} from '@influxdata/giraffe'\nimport {createCollector, GiraffeTableFactory, TableOptions} from './csvToTable'\n\n/**\n * Executes a flux query and collects results into a Giraffe's Table.\n *\n * @param queryApi - InfluxDB client's QueryApi instance\n * @param query - query to execute\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect.\n * @returns Promise with query results\n */\nexport function queryToTable(\n queryApi: QueryApi,\n query: string | ParameterizedQuery,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): Promise<Table> {\n return new Promise<FromFluxResult>((resolve, reject) => {\n queryApi.queryRows(\n query,\n createCollector(resolve, reject, tableFactory, tableOptions)\n )\n }).then(result => result.table)\n}\n\n/**\n * Executes a flux query and iterrativelly collects results into a Giraffe's FromFluxResult.\n *\n * @param queryApi - InfluxDB client's QueryApi instance\n * @param query - query to execute\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect\n * @returns a Promise with query results\n */\nexport function queryToFromFluxResult(\n queryApi: QueryApi,\n query: string | ParameterizedQuery,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): Promise<FromFluxResult> {\n return new Promise<FromFluxResult>((resolve, reject) => {\n queryApi.queryRows(\n query,\n createCollector(resolve, reject, tableFactory, {\n ...tableOptions,\n computeFluxGroupKeyUnion: true,\n })\n )\n })\n}\n"],"names":["r","constructor","this","_reuse","reuse","t","reusedValues","Array","withReuse","splitLine","lastSplitLength","e","s","n","i","length","o","getValue","push","substring","replace","boolean","unsignedLong","long","double","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","string","base64Binary","duration","get","index","defaultValue","dataType","Object","freeze","label","group","MAX_SAFE_INTEGER","l","c","Error","super","name","setPrototypeOf","prototype","v","forEach","columns","column","toObject","R","error","next","a","h","startsWith","slice","O","complete","useCancellable","createResult","tableLength","tableFactory","computeFluxGroupKeyUnion","computeResultColumnNames","table","fluxGroupKeyUnion","resultColumnNames","Set","keys","key","col","multipleTypes","data","addColumn","fluxDataType","type","x","add","from","QUERY_MAX_TABLE_LENGTH","acceptMaxTableLength","max","size","console","log","toValueFn","rowIndex","def","row","val","Date","parse","toGiraffeColumnType","clientType","createCollector","resolve","reject","tableOptions","onlyColumns","accept","options","maxTableLength","undefined","acceptors","isArray","tableMeta","retVal","createAcceptRowFunction","dataColumns","lastTableMeta","cancellable","tableSize","cancel","metaCol","includes","columnKey","existingColumn","toValue","csvToFromFluxResult","csv","result","collector","charCodeAt","stringToLines","linesToTables","assign","queryApi","query","Promise","queryRows","then"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../core/dist/index.browser.mjs","../src/csvToTable.ts","../src/queryTable.ts"],"sourcesContent":["function t(){const t=new TextDecoder(\"utf-8\");return{concat(t,e){const r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r},copy(t,e,r){const s=new Uint8Array(r-e);return s.set(t.subarray(e,r)),s},toUtf8String:(e,r,s)=>t.decode(e.subarray(r,s))}}function e(e,r){const s=null!=r?r:t();let n,i=!1,o=!1;return{next(t){if(!i)try{!function(t){let r,l=0;for(n?(t=s.concat(n,t),r=n.length):r=0;r<t.length;){const n=t[r];if(10===n){if(!o){const n=r>0&&13===t[r-1]?r-1:r;if(i)return;e.next(s.toUtf8String(t,l,n)),l=r+1}}else 34===n&&(o=!o);r++}n=l<r?s.copy(t,l,r):void 0}(t)}catch(t){this.error(t)}},error(t){i||(i=!0,e.error(t))},complete(){i||(n&&e.next(s.toUtf8String(n,0,n.length)),i=!0,e.complete())},useCancellable(t){if(e.useCancellable){const r=this;e.useCancellable({cancel(){t.cancel(),n=void 0,r.complete()},isCancelled:()=>t.isCancelled()})}}}}class r{constructor(){this._reuse=!1}get reuse(){return this._reuse}set reuse(t){t&&!this.reusedValues&&(this.reusedValues=new Array(10)),this._reuse=t}withReuse(){return this.reuse=!0,this}splitLine(t){if(null==t)return this.lastSplitLength=0,[];let e=0,r=0;const s=this._reuse?this.reusedValues:[];let n=0;for(let i=0;i<t.length;i++){const o=t[i];if(\",\"===o){if(e%2==0){const o=this.getValue(t,r,i,e);this._reuse?s[n++]=o:s.push(o),r=i+1,e=0}}else'\"'===o&&e++}const i=this.getValue(t,r,t.length,e);return this._reuse?(s[n]=i,this.lastSplitLength=n+1):(s.push(i),this.lastSplitLength=s.length),s}getValue(t,e,r,s){return e===t.length?\"\":0===s?t.substring(e,r):2===s?t.substring(e+1,r-1):t.substring(e+1,r-1).replace(/\"\"/gi,'\"')}}const s=t=>t,n={boolean:t=>\"true\"===t,unsignedLong:t=>\"\"===t?null:+t,long:t=>\"\"===t?null:+t,double(t){switch(t){case\"\":return null;case\"+Inf\":return Number.POSITIVE_INFINITY;case\"-Inf\":return Number.NEGATIVE_INFINITY;default:return+t}},string:s,base64Binary:s,duration:t=>\"\"===t?null:t,\"dateTime:RFC3339\":t=>\"\"===t?null:t};class i{get(t){var e;let r=t[this.index];return\"\"!==r&&void 0!==r||!this.defaultValue||(r=this.defaultValue),(null!==(e=n[this.dataType])&&void 0!==e?e:s)(r)}}const o=Object.freeze({label:\"\",dataType:\"\",group:!1,defaultValue:\"\",index:Number.MAX_SAFE_INTEGER,get:()=>{}});function l(){return new i}function a(t){var e,r;const s=new i;return s.label=String(t.label),s.dataType=t.dataType,s.group=Boolean(t.group),s.defaultValue=null!==(e=t.defaultValue)&&void 0!==e?e:\"\",s.index=null!==(r=t.index)&&void 0!==r?r:0,s}const h=[404,408,425,429,500,502,503,504];function u(t){return h.includes(t)}class c extends Error{constructor(t){super(t),this.name=\"IllegalArgumentError\",Object.setPrototypeOf(this,c.prototype)}}class f extends Error{constructor(t,e,r,s,n,i){if(super(),this.statusCode=t,this.statusMessage=e,this.body=r,this.contentType=n,Object.setPrototypeOf(this,f.prototype),i)this.message=i;else if(r){if(null==n?void 0:n.startsWith(\"application/json\"))try{this.json=JSON.parse(r),this.message=this.json.message,this.code=this.json.code}catch(t){}this.message||(this.message=`${t} ${e} : ${r}`)}else this.message=`${t} ${e}`;this.name=\"HttpError\",this.setRetryAfter(s)}setRetryAfter(t){\"string\"==typeof t&&/^[0-9]+$/.test(t)?this._retryAfter=parseInt(t):this._retryAfter=0}canRetry(){return u(this.statusCode)}retryAfter(){return this._retryAfter}}const d=[\"ECONNRESET\",\"ENOTFOUND\",\"ESOCKETTIMEDOUT\",\"ETIMEDOUT\",\"ECONNREFUSED\",\"EHOSTUNREACH\",\"EPIPE\"];function p(t){return!!t&&(\"function\"==typeof t.canRetry?!!t.canRetry():!(!t.code||!d.includes(t.code)))}function y(t,e){if(t){let r;return\"function\"==typeof t.retryAfter?t.retryAfter():(r=0,e&&e>0?r+Math.round(Math.random()*e):r)}return 0}class g extends Error{constructor(){super(),Object.setPrototypeOf(this,g.prototype),this.name=\"RequestTimedOutError\",this.message=\"Request timed out\"}canRetry(){return!0}retryAfter(){return 0}}class m extends Error{constructor(){super(),this.name=\"AbortError\",Object.setPrototypeOf(this,m.prototype),this.message=\"Response aborted\"}canRetry(){return!0}retryAfter(){return 0}}function w(){n[\"dateTime:RFC3339\"]=t=>\"\"===t?null:new Date(Date.parse(t))}function b(){n[\"dateTime:RFC3339\"]=t=>\"\"===t?null:Date.parse(t)}function x(){n[\"dateTime:RFC3339\"]=t=>\"\"===t?null:t}class v{constructor(t){t.forEach(((t,e)=>t.index=e)),this.columns=t}column(t,e=!0){for(let e=0;e<this.columns.length;e++){const r=this.columns[e];if(r.label===t)return r}if(e)throw new c(`Column ${t} not found!`);return o}toObject(t){const e={};for(let r=0;r<this.columns.length&&r<t.length;r++){const s=this.columns[r];e[s.label]=s.get(t)}return e}get(t,e){return this.column(e,!1).get(t)}}function O(t){return new v(t)}function R(t){const e=(new r).withReuse();let s,n,i=!0,o=0;return{error(e){t.error(e)},next(r){if(\"\"===r)i=!0,s=void 0;else{const a=e.splitLine(r),h=e.lastSplitLength;if(i){if(!s){s=new Array(h);for(let t=0;t<h;t++)s[t]=l()}if(a[0].startsWith(\"#\")){if(\"#datatype\"===a[0])for(let t=1;t<h;t++)s[t].dataType=a[t];else if(\"#default\"===a[0])for(let t=1;t<h;t++)s[t].defaultValue=a[t];else if(\"#group\"===a[0])for(let t=1;t<h;t++)s[t].group=\"t\"===a[t][0]}else{\"\"===a[0]?(o=1,s=s.slice(1)):o=0;for(let t=o;t<h;t++)s[t-o].label=a[t];n=O(s),i=!1}}else t.next(a.slice(o,h),n)}},complete(){t.complete()},useCancellable(e){t.useCancellable&&t.useCancellable(e)}}}function T(t,e){let r=!1,s=0,n=0;for(;n<t.length;){const i=t.charCodeAt(n);if(10===i){if(!r){const r=n>0&&13===t.charCodeAt(n-1)?n-1:n;e.next(t.substring(s,r)),s=n+1}}else 34===i&&(r=!r);n++}s<n&&e.next(t.substring(s,n)),e.complete()}const S={timeout:1e4},$={retryJitter:200,minRetryDelay:5e3,maxRetryDelay:125e3,exponentialBase:5,randomRetry:!0},E={batchSize:1e3,maxBatchBytes:5e7,flushInterval:6e4,writeFailed:function(){},writeSuccess:function(){},maxRetries:5,maxRetryTime:18e4,maxBufferLines:32e3,retryJitter:200,minRetryDelay:5e3,maxRetryDelay:125e3,exponentialBase:2,gzipThreshold:1e3,randomRetry:!0};function C(t,e){return function(r){let s=\"\",n=0,i=0;for(;i<r.length;){const o=t.indexOf(r[i]);o>=0&&(s+=r.substring(n,i),s+=e[o],n=i+1),i++}return 0==n?r:(n<r.length&&(s+=r.substring(n,r.length)),s)}}const D={measurement:C(\", \\n\\r\\t\",[\"\\\\,\",\"\\\\ \",\"\\\\n\",\"\\\\r\",\"\\\\t\"]),quoted:function(t,e){const r=C(t,e);return t=>'\"'+r(t)+'\"'}('\"\\\\',['\\\\\"',\"\\\\\\\\\"]),tag:C(\", =\\n\\r\\t\",[\"\\\\,\",\"\\\\ \",\"\\\\=\",\"\\\\n\",\"\\\\r\",\"\\\\t\"])};function B(t){return!1}let j=Date.now(),A=0;function _(){{const t=Date.now();t!==j?(j=t,A=0):A++;const e=String(A);return String(t)+\"000000000\".substr(0,6-e.length)+e}}function I(){return String(Date.now())+\"000000000\".substr(0,3)}function P(){return String(Date.now())}function L(){return String(Math.floor(Date.now()/1e3))}const M={s:L,ms:P,us:I,ns:_,seconds:L,millis:P,micros:I,nanos:_},N={s:t=>`${Math.floor(t.getTime()/1e3)}`,ms:t=>`${t.getTime()}`,us:t=>`${t.getTime()}000`,ns:t=>`${t.getTime()}000000`};function F(t){return void 0===t?_():\"string\"==typeof t?t.length>0?t:void 0:t instanceof Date?`${t.getTime()}000000`:String(\"number\"==typeof t?Math.floor(t):t)}const k={error(t,e){console.error(\"ERROR: \"+t,e||\"\")},warn(t,e){console.warn(\"WARN: \"+t,e||\"\")}};let V=k;const z={error(t,e){V.error(t,e)},warn(t,e){V.warn(t,e)}};function U(t){const e=V;return V=t,e}const q=Symbol(\"FLUX_VALUE\");class H{constructor(t){this.fluxValue=t}toString(){return this.fluxValue}[q](){return this.fluxValue}}function W(t){if(null==t)return\"\";let e;t=t.toString();let r=0;function s(){void 0===e&&(e=t.substring(0,r))}for(;r<t.length;r++){const n=t.charAt(r);switch(n){case\"\\r\":s(),e+=\"\\\\r\";break;case\"\\n\":s(),e+=\"\\\\n\";break;case\"\\t\":s(),e+=\"\\\\t\";break;case'\"':case\"\\\\\":s(),e=e+\"\\\\\"+n;break;case\"$\":if(r+1<t.length&&\"{\"===t.charAt(r+1)){s(),r++,e+=\"\\\\${\";break}null!=e&&(e+=n);break;default:null!=e&&(e+=n)}}return void 0!==e?e:t}function J(t){return new H(`\"${W(t)}\"`)}function G(t){if(\"number\"==typeof t){if(!isFinite(t))throw new Error(`not a flux float: ${t}`);return t.toString()}const e=String(t);let r=!1;for(const t of e)if(\".\"!==t){if(\".\"!==t&&\"-\"!==t&&(t<\"0\"||t>\"9\"))throw new Error(`not a flux float: ${e}`)}else{if(r)throw new Error(`not a flux float: ${e}`);r=!r}return e}function X(t){return new H(G(t))}function Y(t){const e=G(t);for(const t of e)if(\".\"===t)throw new Error(`not a flux integer: ${e}`);return new H(e)}function K(t){return new H(function(t){return`time(v: \"${W(t)}\")`}(t))}function Q(t){return new H(`duration(v: \"${W(t)}\")`)}function Z(t){return`regexp.compile(v: \"${W(t)}\")`}function tt(t){return new H(Z(t))}function et(t){return new H(\"true\"===t||\"false\"===t?t:(!!t).toString())}function rt(t){return new H(String(t))}function st(t){if(void 0===t)return\"\";if(null===t)return\"null\";if(\"boolean\"==typeof t)return t.toString();if(\"string\"==typeof t)return`\"${W(t)}\"`;if(\"number\"==typeof t)return G(t);if(\"object\"==typeof t){if(\"function\"==typeof t[q])return t[q]();if(t instanceof Date)return t.toISOString();if(t instanceof RegExp)return Z(t);if(Array.isArray(t))return`[${t.map(st).join(\",\")}]`}return st(t.toString())}function nt(t,...e){if(1==t.length&&0===e.length)return rt(t[0]);const r=new Array(t.length+e.length);let s=0;for(let i=0;i<t.length;i++){const o=t[i];if(r[s++]=o,i<e.length){const l=e[i];let a;if(o.endsWith('\"')&&i+1<t.length&&t[i+1].startsWith('\"'))a=W(l);else if(a=st(l),\"\"===a&&(\"object\"!=typeof(n=l)||\"function\"!=typeof n[q]))throw new Error(`Unsupported parameter literal '${l}' at index: ${i}, type: ${typeof l}`);r[s++]=a}else if(i<t.length-1)throw new Error(\"Too few parameters supplied!\")}var n;return rt(r.join(\"\"))}const it=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";class ot{constructor(t){this.tags={},this.fields={},t&&(this.name=t)}measurement(t){return this.name=t,this}tag(t,e){return this.tags[t]=e,this}booleanField(t,e){return this.fields[t]=e?\"T\":\"F\",this}intField(t,e){let r;if(r=\"number\"==typeof e?e:parseInt(String(e)),isNaN(r)||r<=-0x8000000000000000||r>=0x8000000000000000)throw new Error(`invalid integer value for field '${t}': '${e}'!`);return this.fields[t]=`${Math.floor(r)}i`,this}uintField(t,e){if(\"number\"==typeof e){if(isNaN(e)||e<0||e>Number.MAX_SAFE_INTEGER)throw new Error(`uint value for field '${t}' out of range: ${e}`);this.fields[t]=`${Math.floor(e)}u`}else{const r=String(e);for(let t=0;t<r.length;t++){const s=r.charCodeAt(t);if(s<48||s>57)throw new Error(`uint value has an unsupported character at pos ${t}: ${e}`)}if(r.length>20||20===r.length&&r.localeCompare(\"18446744073709551615\")>0)throw new Error(`uint value for field '${t}' out of range: ${r}`);this.fields[t]=`${r}u`}return this}floatField(t,e){let r;if(r=\"number\"==typeof e?e:parseFloat(e),!isFinite(r))throw new Error(`invalid float value for field '${t}': ${e}`);return this.fields[t]=String(r),this}stringField(t,e){return null!=e&&(\"string\"!=typeof e&&(e=String(e)),this.fields[t]=D.quoted(e)),this}timestamp(t){return this.time=t,this}toLineProtocol(t){if(!this.name)return;let e=\"\";if(Object.keys(this.fields).sort().forEach((t=>{if(t){const r=this.fields[t];e.length>0&&(e+=\",\"),e+=`${D.tag(t)}=${r}`}})),0===e.length)return;let r=\"\";const s=t&&t.defaultTags?Object.assign(Object.assign({},t.defaultTags),this.tags):this.tags;Object.keys(s).sort().forEach((t=>{if(t){const e=s[t];e&&(r+=\",\",r+=`${D.tag(t)}=${D.tag(e)}`)}}));let n=this.time;return n=t&&t.convertTime?t.convertTime(n):F(n),`${D.measurement(this.name)}${r} ${e}${void 0!==n?\" \"+n:\"\"}`}toString(){const t=this.toLineProtocol(void 0);return t||`invalid point: ${JSON.stringify(this,void 0)}`}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function lt(t,e,r,s){return new(r||(r=Promise))((function(n,i){function o(t){try{a(s.next(t))}catch(t){i(t)}}function l(t){try{a(s.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?n(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,l)}a((s=s.apply(t,e||[])).next())}))}class at{constructor(t){this.options=Object.assign(Object.assign({},$),t),this.success()}nextDelay(t,e){const r=y(t);if(r&&r>0)return r+Math.round(Math.random()*this.options.retryJitter);if(e&&e>0){if(this.options.randomRetry){let t=Math.max(this.options.minRetryDelay,1),r=t*this.options.exponentialBase;for(let s=1;s<e;s++)if(t=r,r*=this.options.exponentialBase,r>=this.options.maxRetryDelay){r=this.options.maxRetryDelay;break}return t+Math.round(Math.random()*(r-t)+Math.random()*this.options.retryJitter)}let t=Math.max(this.options.minRetryDelay,1);for(let r=1;r<e;r++)if(t*=this.options.exponentialBase,t>=this.options.maxRetryDelay){t=this.options.maxRetryDelay;break}return t+Math.round(Math.random()*this.options.retryJitter)}return this.currentDelay?this.currentDelay=Math.min(Math.max(this.currentDelay*this.options.exponentialBase,1)+Math.round(Math.random()*this.options.retryJitter),this.options.maxRetryDelay):this.currentDelay=this.options.minRetryDelay+Math.round(Math.random()*this.options.retryJitter),this.currentDelay}success(){this.currentDelay=void 0}}class ht{constructor(t,e){this.maxLines=t,this.retryLines=e,this.size=0,this.nextRetryTime=0,this.closed=!1,this._timeoutHandle=void 0}addLines(t,e,r,s){if(this.closed)return;if(!t.length)return;let n=Date.now()+r;if(s<n&&(r=s-Date.now(),n=s),n>this.nextRetryTime&&(this.nextRetryTime=n),this.first&&this.size+t.length>this.maxLines){const e=this.size,r=.7*e;do{const t=this.first.next;this.size-=this.first.lines.length,this.first.next=void 0,this.first=t,this.first||(this.last=void 0)}while(this.first&&this.size+t.length>r);z.error(`RetryBuffer: ${e-this.size} oldest lines removed to keep buffer size under the limit of ${this.maxLines} lines`)}const i={lines:t,retryCount:e,expires:s};this.last?(this.last.next=i,this.last=i):(this.first=i,this.last=i,this.scheduleRetry(r)),this.size+=t.length}removeLines(){if(this.first){const t=this.first;return this.first=this.first.next,t.next=void 0,this.size-=t.lines.length,this.first||(this.last=void 0),t}}scheduleRetry(t){this._timeoutHandle=setTimeout((()=>{const t=this.removeLines();t?this.retryLines(t.lines,t.retryCount,t.expires).then((()=>{this.scheduleRetry(1)})).catch((t=>{this.scheduleRetry(this.nextRetryTime-Date.now())})):this._timeoutHandle=void 0}),Math.max(t,0))}flush(){return lt(this,void 0,void 0,(function*(){let t;for(;t=this.removeLines();)yield this.retryLines(t.lines,t.retryCount,t.expires)}))}close(){return this._timeoutHandle&&(clearTimeout(this._timeoutHandle),this._timeoutHandle=void 0),this.closed=!0,this.size}}class ut{constructor(t,e,r,s){this.maxChunkRecords=t,this.maxBatchBytes=e,this.flushFn=r,this.scheduleSend=s,this.length=0,this.bytes=-1,this.lines=new Array(t)}add(t){const e=function(t){let e=t.length;for(let r=0;r<t.length;r++){const s=t.charCodeAt(r);s<128||(s>=128&&s<=2047?e++:s>=2048&&s<=65535?s>=55296&&s<=57343?e++:e+=2:e+=3)}return e}(t);0===this.length?this.scheduleSend():this.bytes+e+1>=this.maxBatchBytes&&this.flush().catch((t=>{})),this.lines[this.length]=t,this.length++,this.bytes+=e+1,(this.length>=this.maxChunkRecords||this.bytes>=this.maxBatchBytes)&&this.flush().catch((t=>{}))}flush(){const t=this.reset();return t.length>0?this.flushFn(t):Promise.resolve()}reset(){const t=this.lines.slice(0,this.length);return this.length=0,this.bytes=-1,t}}class ct{constructor(t,e,r,s,n){this.transport=t,this.closed=!1,this._timeoutHandle=void 0,this.httpPath=`/api/v2/write?org=${encodeURIComponent(e)}&bucket=${encodeURIComponent(r)}&precision=${s}`,(null==n?void 0:n.consistency)&&(this.httpPath+=`&consistency=${encodeURIComponent(n.consistency)}`),this.writeOptions=Object.assign(Object.assign({},E),n),this.currentTime=M[s],this.dateToProtocolTimestamp=N[s],this.writeOptions.defaultTags&&this.useDefaultTags(this.writeOptions.defaultTags),this.sendOptions={method:\"POST\",headers:Object.assign({\"content-type\":\"text/plain; charset=utf-8\"},null==n?void 0:n.headers),gzipThreshold:this.writeOptions.gzipThreshold};var i;this.writeBuffer=new ut(this.writeOptions.batchSize,this.writeOptions.maxBatchBytes,(t=>(this._clearFlushTimeout(),this.sendBatch(t,this.writeOptions.maxRetries))),(()=>{this.writeOptions.flushInterval>0&&(this._clearFlushTimeout(),this.closed||(this._timeoutHandle=setTimeout((()=>this.sendBatch(this.writeBuffer.reset(),this.writeOptions.maxRetries).catch((t=>{}))),this.writeOptions.flushInterval)))})),this.sendBatch=this.sendBatch.bind(this),this.retryStrategy=(i=this.writeOptions,new at(i)),this.retryBuffer=new ht(this.writeOptions.maxBufferLines,this.sendBatch)}sendBatch(t,e,r=Date.now()+this.writeOptions.maxRetryTime){const s=this,n=s.writeOptions.maxRetries+1-e;if(!this.closed&&t.length>0){if(r<=Date.now()){const e=new Error(\"Max retry time exceeded.\"),i=s.writeOptions.writeFailed.call(s,e,t,n,r);return i||(z.error(`Write to InfluxDB failed (attempt: ${n}).`,e),Promise.reject(e))}return new Promise(((i,o)=>{let l;const a={responseStarted(t,e){l=e},error(l){const a=s.writeOptions.writeFailed.call(s,l,t,n,r);if(a)a.then(i,o);else{if(!s.closed&&e>0&&(!(l instanceof f)||l.statusCode>=429))return z.warn(`Write to InfluxDB failed (attempt: ${n}).`,l),s.retryBuffer.addLines(t,e-1,s.retryStrategy.nextDelay(l,n),r),void o(l);z.error(\"Write to InfluxDB failed.\",l),o(l)}},complete(){if(204==l||null==l)s.writeOptions.writeSuccess.call(s,t),s.retryStrategy.success(),i();else{const t=`204 HTTP response status code expected, but ${l} returned`,e=new f(l,t,void 0,\"0\");e.message=t,a.error(e)}}};this.transport.send(this.httpPath,t.join(\"\\n\"),this.sendOptions,a)}))}return Promise.resolve()}_clearFlushTimeout(){void 0!==this._timeoutHandle&&(clearTimeout(this._timeoutHandle),this._timeoutHandle=void 0)}writeRecord(t){if(this.closed)throw new Error(\"writeApi: already closed!\");this.writeBuffer.add(t)}writeRecords(t){if(this.closed)throw new Error(\"writeApi: already closed!\");for(let e=0;e<t.length;e++)this.writeBuffer.add(t[e])}writePoint(t){if(this.closed)throw new Error(\"writeApi: already closed!\");const e=t.toLineProtocol(this);e&&this.writeBuffer.add(e)}writePoints(t){if(this.closed)throw new Error(\"writeApi: already closed!\");for(let e=0;e<t.length;e++){const r=t[e].toLineProtocol(this);r&&this.writeBuffer.add(r)}}flush(t){return lt(this,void 0,void 0,(function*(){if(yield this.writeBuffer.flush(),t)return yield this.retryBuffer.flush()}))}close(){return this.writeBuffer.flush().finally((()=>{const t=this.retryBuffer.close();t&&z.error(`Retry buffer closed with ${t} items that were not written to InfluxDB!`,null),this.closed=!0}))}dispose(){return this._clearFlushTimeout(),this.closed=!0,this.retryBuffer.close()+this.writeBuffer.length}useDefaultTags(t){return this.defaultTags=t,this}convertTime(t){return void 0===t?this.currentTime():\"string\"==typeof t?t.length>0?t:void 0:t instanceof Date?this.dateToProtocolTimestamp(t):String(\"number\"==typeof t?Math.floor(t):t)}}function ft(t){const e={};return t.headers.forEach(((t,r)=>{const s=e[r];void 0===s?e[r]=t:Array.isArray(s)?s.push(t):e[r]=[s,t]})),e}class dt{constructor(e){this.connectionOptions=e,this.chunkCombiner=t(),this.requestDecorator=function(){},this.defaultHeaders=Object.assign({\"content-type\":\"application/json; charset=utf-8\"},e.headers),this.connectionOptions.token&&(this.defaultHeaders.Authorization=\"Token \"+this.connectionOptions.token),this.url=String(this.connectionOptions.url),this.url.endsWith(\"/\")&&(this.url=this.url.substring(0,this.url.length-1)),this.url.endsWith(\"/api/v2\")&&(this.url=this.url.substring(0,this.url.length-\"/api/v2\".length),z.warn(`Please remove '/api/v2' context path from InfluxDB base url, using ${this.url} !`))}send(t,e,r,s){const n=function(t={}){let e=0;return{next:r=>{0===e&&t.next&&null!=r&&t.next(r)},error:r=>{0===e&&(e=1,t.error&&t.error(r))},complete:()=>{0===e&&(e=2,t.complete&&t.complete())},responseStarted:(e,r)=>{t.responseStarted&&t.responseStarted(e,r)}}}(s);let i=!1,o=r.signal;if(s&&s.useCancellable){const t=new AbortController;o||(o=t.signal,r=Object.assign(Object.assign({},r),o)),s.useCancellable({cancel(){i=!0,t.abort()},isCancelled:()=>i||o.aborted})}this.fetch(t,e,r).then((t=>lt(this,void 0,void 0,(function*(){if((null==s?void 0:s.responseStarted)&&n.responseStarted(ft(t),t.status),t.status>=300)return t.text().then((e=>{if(!e){const r=t.headers.get(\"x-influxdb-error\");r&&(e=r)}n.error(new f(t.status,t.statusText,e,t.headers.get(\"retry-after\"),t.headers.get(\"content-type\")))})).catch((e=>{z.warn(\"Unable to receive error body\",e),n.error(new f(t.status,t.statusText,void 0,t.headers.get(\"retry-after\"),t.headers.get(\"content-type\")))}));if(t.body){const e=t.body.getReader();let r;do{r=yield e.read(),n.next(r.value)}while(!r.done)}else if(t.arrayBuffer){const e=yield t.arrayBuffer();n.next(new Uint8Array(e))}else{const e=yield t.text();n.next((new TextEncoder).encode(e))}})))).catch((t=>{i||n.error(t)})).finally((()=>n.complete()))}request(t,e,r,s){var n,i;return lt(this,void 0,void 0,(function*(){const o=yield this.fetch(t,e,r),{status:l,headers:a}=o,h=a.get(\"content-type\")||\"\";if(s&&s(ft(o),o.status),l>=300){let t=yield o.text();if(!t){const e=a.get(\"x-influxdb-error\");e&&(t=e)}throw new f(l,o.statusText,t,o.headers.get(\"retry-after\"),o.headers.get(\"content-type\"))}const u=null!==(i=null===(n=r.headers)||void 0===n?void 0:n.accept)&&void 0!==i?i:h;return u.includes(\"json\")?yield o.json():u.includes(\"text\")||u.startsWith(\"application/csv\")?yield o.text():void 0}))}fetch(t,e,r){const{method:s,headers:n}=r,i=function(t,e){var r={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(null!=t&&\"function\"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(t);n<s.length;n++)e.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(t,s[n])&&(r[s[n]]=t[s[n]])}return r}(r,[\"method\",\"headers\"]),o=`${this.url}${t}`,l=Object.assign({method:s,body:\"GET\"===s||\"HEAD\"===s?void 0:\"string\"==typeof e?e:JSON.stringify(e),headers:Object.assign(Object.assign({},this.defaultHeaders),n),credentials:\"omit\"},i);return this.requestDecorator(l,r,o),fetch(o,l)}}const pt={header:!0,delimiter:\",\",quoteChar:'\"',commentPrefix:\"#\",annotations:[\"datatype\",\"group\",\"default\"]};class yt{constructor(t,e,r){this.transport=t,this.createCSVResponse=e,this.options=\"string\"==typeof r?{org:r}:r}with(t){return new yt(this.transport,this.createCSVResponse,Object.assign(Object.assign({},this.options),t))}response(t){return this.createCSVResponse(this.createExecutor(t))}lines(t){return this.response(t).lines()}rows(t){return this.response(t).rows()}queryLines(t,e){return this.response(t).consumeLines(e)}queryRows(t,e){return this.response(t).consumeRows(e)}collectRows(t,e){return this.response(t).collectRows(e)}collectLines(t){return this.response(t).collectLines()}queryRaw(t){const{org:e,type:r,gzip:s,headers:n}=this.options;return this.transport.request(`/api/v2/query?org=${encodeURIComponent(e)}`,JSON.stringify(this.decorateRequest({query:t.toString(),dialect:pt,type:r})),{method:\"POST\",headers:Object.assign({accept:\"text/csv\",\"accept-encoding\":s?\"gzip\":\"identity\",\"content-type\":\"application/json; encoding=utf-8\"},n)})}createExecutor(t){const{org:e,type:r,gzip:s,headers:n}=this.options;return i=>{this.transport.send(`/api/v2/query?org=${encodeURIComponent(e)}`,JSON.stringify(this.decorateRequest({query:t.toString(),dialect:pt,type:r})),{method:\"POST\",headers:Object.assign({\"content-type\":\"application/json; encoding=utf-8\",\"accept-encoding\":s?\"gzip\":\"identity\"},n)},i)}}decorateRequest(t){var e;return\"function\"==typeof this.options.now&&(t.now=this.options.now()),t.type=null!==(e=this.options.type)&&void 0!==e?e:\"flux\",t}}class gt{constructor(t,e){this.isClosed=!1;try{e({next:e=>{t.next(e)},error:e=>{this.isClosed=!0,t.error(e)},complete:()=>{this.isClosed=!0,t.complete()},useCancellable:t=>{this.cancellable=t}})}catch(e){this.isClosed=!0,t.error(e)}}get closed(){return this.isClosed}unsubscribe(){var t;null===(t=this.cancellable)||void 0===t||t.cancel(),this.isClosed=!0}}function mt(){}class wt{constructor(t,e){this.executor=t,this.decorator=e}subscribe(t,e,r){const s=function(t){const{next:e,error:r,complete:s}=t;return{next:e?e.bind(t):mt,error:r?r.bind(t):mt,complete:s?s.bind(t):mt}}(\"object\"!=typeof t||null===t?{next:t,error:e,complete:r}:t);return new gt(this.decorator(s),this.executor)}[it](){return this}}function bt(t,e){return e.toObject(t)}class xt{constructor(t,e){this.executor=t,this.chunkCombiner=e}lines(){return new wt(this.executor,(t=>e(t,this.chunkCombiner)))}rows(){return new wt(this.executor,(t=>e(R({next(e,r){t.next({values:e,tableMeta:r})},error(e){t.error(e)},complete(){t.complete()}}),this.chunkCombiner)))}consumeLines(t){this.executor(e(t,this.chunkCombiner))}consumeRows(t){this.executor(e(R(t),this.chunkCombiner))}collectRows(t=bt){const e=[];return new Promise(((r,s)=>{this.consumeRows({next(r,s){const n=t.call(this,r,s);void 0!==n&&e.push(n)},error(t){s(t)},complete(){r(e)}})}))}collectLines(){const t=[];return new Promise(((e,r)=>{this.consumeLines({next(e){t.push(e)},error(t){r(t)},complete(){e(t)}})}))}}class vt{constructor(t){var e;if(\"string\"==typeof t)this._options={url:t};else{if(null===t||\"object\"!=typeof t)throw new c(\"No url or configuration specified!\");this._options=t}const r=this._options.url;if(\"string\"!=typeof r)throw new c(\"No url specified!\");r.endsWith(\"/\")&&(this._options.url=r.substring(0,r.length-1)),this.transport=null!==(e=this._options.transport)&&void 0!==e?e:new dt(this._options),this.processCSVResponse=t=>new xt(t,this.transport.chunkCombiner)}getWriteApi(t,e,r=\"ns\",s){return new ct(this.transport,t,e,r,null!=s?s:this._options.writeOptions)}getQueryApi(t){return new yt(this.transport,this.processCSVResponse,t)}}export{m as AbortError,S as DEFAULT_ConnectionOptions,$ as DEFAULT_RetryDelayStrategyOptions,E as DEFAULT_WriteOptions,q as FLUX_VALUE,f as HttpError,c as IllegalArgumentError,vt as InfluxDB,r as LineSplitter,z as Log,ot as Point,g as RequestTimedOutError,o as UNKNOWN_COLUMN,p as canRetryHttpCall,e as chunksToLines,k as consoleLogger,F as convertTimeToNanos,a as createFluxTableColumn,O as createFluxTableMetaData,t as createTextDecoderCombiner,M as currentTime,N as dateToProtocolTimestamp,D as escape,nt as flux,et as fluxBool,K as fluxDateTime,Q as fluxDuration,rt as fluxExpression,X as fluxFloat,Y as fluxInteger,tt as fluxRegExp,J as fluxString,y as getRetryDelay,u as isStatusCodeRetriable,R as linesToTables,l as newFluxTableColumn,G as sanitizeFloat,w as serializeDateTimeAsDate,b as serializeDateTimeAsNumber,x as serializeDateTimeAsString,U as setLogger,T as stringToLines,it as symbolObservable,st as toFluxValue,n as typeSerializers,B as useProcessHrtime};\n//# sourceMappingURL=index.browser.mjs.map\n","import {\n Table,\n FromFluxResult,\n ColumnType,\n FluxDataType,\n ColumnData,\n} from '@influxdata/giraffe'\nimport {\n stringToLines,\n linesToTables,\n ColumnType as ClientColumnType,\n FluxTableMetaData,\n FluxResultObserver,\n Cancellable,\n} from '@influxdata/influxdb-client'\n\n/** A type of a function that creates a new giraffe table of a specified length */\nexport type GiraffeTableFactory = (length: number) => Table\n\n/**\n * Stores data and metadata of a result column.\n */\ninterface Column {\n /** column name */\n name: string\n /** giraffe column type */\n type: ColumnType\n /** flux data type */\n fluxDataType: FluxDataType\n /** column data */\n data: ColumnData\n /** convert result row to column value */\n toValue: (row: string[]) => number | string | boolean | null\n /** when true, it is a no-data column to indicate that multiple columns of the same label exist (distinguished also by column type) */\n multipleTypes?: true\n /** group key membership of this column */\n group?: boolean\n}\n\nfunction createResult(\n tableLength: number,\n columns: Record<string, Column>,\n tableFactory: GiraffeTableFactory,\n {computeFluxGroupKeyUnion, computeResultColumnNames}: TableOptions\n): FromFluxResult {\n let table = tableFactory(tableLength)\n const fluxGroupKeyUnion: string[] = []\n const resultColumnNames = new Set<string>()\n Object.keys(columns).forEach(key => {\n const col = columns[key]\n if (!col.multipleTypes) {\n ;(col.data as any).length = tableLength // extend the array length, required (and tested)\n table = table.addColumn(\n key,\n col.fluxDataType,\n col.type,\n col.data,\n col.name\n )\n if (computeFluxGroupKeyUnion && col.group) {\n fluxGroupKeyUnion.push(key)\n }\n if (computeResultColumnNames && col.name === 'result') {\n col.data.forEach(x => resultColumnNames.add(x as string))\n }\n }\n })\n\n return {\n table,\n fluxGroupKeyUnion,\n resultColumnNames: Array.from(resultColumnNames),\n }\n}\n\n/**\n * AcceptRowFunction allows to accept/reject specific rows or terminate processing.\n * @param row - CSV result data row\n * @param tableMeta - CSV table metadata with column descriptors\n * @returns true to accept row, false to skip row, undefined means stop processing\n **/\nexport type AcceptRowFunction = (\n row: string[],\n tableMeta: FluxTableMetaData\n) => true | false | undefined\n\n/**\n * Contains parameters that optimize/drive creation of the query result Table.\n */\nexport interface TableOptions {\n /**\n * Accept allows to accept/reject specific rows or terminate processing.\n **/\n accept?: AcceptRowFunction | AcceptRowFunction[]\n /**\n * Sets maximum table length, QUERY_MAX_TABLE_LENGTH when undefined.\n */\n maxTableLength?: number\n\n /** column keys to collect in the table, undefined means all columns */\n columns?: string[]\n\n /** compute also fluxGroupKeyUnion */\n computeFluxGroupKeyUnion?: boolean\n\n /** compute also resultColumnNames */\n computeResultColumnNames?: boolean\n}\n\n/**\n * QUERY_MAX_TABLE_LENGTH is a default max table length,\n * it can be overriden in TableOptions.\n */\nexport const QUERY_MAX_TABLE_LENGTH = 100_000\n\n/**\n * Creates an accept function that stops processing\n * if the table reaches the specified max rows.\n * @param size - maximum processed rows\n * @returns AcceptRowFunction that enforces that most max rows are processed\n */\nexport function acceptMaxTableLength(max: number): AcceptRowFunction {\n let size = 0\n return (): true | undefined => {\n if (size >= max) {\n // eslint-disable-next-line no-console\n console.log(\n `csv2Table: max table length ${max} reached, processing stopped`\n )\n return undefined\n }\n size++\n return true\n }\n}\n\n/**\n * Creates a single accept function for the TableOptions supplied.\n * @param options - table options\n * @returns accept function\n */\nfunction createAcceptRowFunction(options: TableOptions): AcceptRowFunction {\n const maxTableLength =\n options.maxTableLength === undefined\n ? QUERY_MAX_TABLE_LENGTH\n : options.maxTableLength\n const acceptors: AcceptRowFunction[] = []\n if (options.accept) {\n if (Array.isArray(options.accept)) {\n acceptors.push(...options.accept)\n } else {\n acceptors.push(options.accept)\n }\n }\n acceptors.push(acceptMaxTableLength(maxTableLength))\n\n return (\n row: string[],\n tableMeta: FluxTableMetaData\n ): true | false | undefined => {\n for (let i = 0; i < acceptors.length; i++) {\n const retVal = acceptors[i](row, tableMeta)\n if (retVal === undefined || retVal === false) {\n return retVal\n }\n }\n return true\n }\n}\n\n/**\n * Creates a function that returns a column value from row data.\n *\n * @param rowIndex - index of a string value in the row data\n * @param type - column type\n * @param def - default value\n * @returns column value to store in a table\n */\nfunction toValueFn(\n rowIndex: number,\n type: ColumnType,\n def: string\n): (row: string[]) => number | string | boolean | null {\n switch (type) {\n case 'boolean':\n return (row: string[]): boolean =>\n (row[rowIndex] === '' ? def : row[rowIndex]) === 'true'\n case 'number':\n return (row: string[]): number | null => {\n const val = row[rowIndex] === '' ? def : row[rowIndex]\n return val === '' ? null : Number(val)\n }\n case 'time':\n return (row: string[]): number =>\n Date.parse(row[rowIndex] === '' ? def : row[rowIndex])\n default:\n return (row: string[]): string =>\n row[rowIndex] === '' ? def : row[rowIndex]\n }\n}\n\n/**\n * Converts between influxdb-client and giraffe columns types.\n *\n * @param clientType - `@influxdata/influxdb-client` column type\n * @returns `@influxdata/giraffe` column type\n */\nfunction toGiraffeColumnType(clientType: ClientColumnType): ColumnType {\n // from: 'boolean' | 'unsignedLong' | 'long' | 'double' | 'string' | 'base64Binary' | 'dateTime:RFC3339' | 'duration'\n // to: 'number' | 'string' | 'time' | 'boolean'\n switch (clientType) {\n case 'boolean':\n return 'boolean'\n case 'unsignedLong':\n case 'long':\n case 'double':\n return 'number'\n default:\n return clientType && clientType.startsWith('dateTime') ? 'time' : 'string'\n }\n}\n\n/**\n * Creates influxdb-client-js's FluxResultObserver that collects row results to a Table instance\n * @param resolve - called when the Table is collected\n * @param reject - called upon error\n * @param tableOptions - tableOptions allow to filter or even stop the processing of rows, or restrict the columns to collect\n * @returns FluxResultObserver that collects table data from result rows\n */\nexport function createCollector(\n resolve: (value: FromFluxResult) => void,\n reject: (reason?: any) => void,\n tableFactory: GiraffeTableFactory,\n tableOptions: TableOptions = {}\n): FluxResultObserver<string[]> {\n const {columns: onlyColumns} = tableOptions\n const accept = createAcceptRowFunction(tableOptions)\n const columns: Record<string, Column> = {}\n let dataColumns: Column[]\n let lastTableMeta: FluxTableMetaData | undefined = undefined\n let tableSize = 0\n let cancellable: Cancellable\n return {\n next(row: string[], tableMeta: FluxTableMetaData): void {\n switch (accept(row, tableMeta)) {\n case true:\n break\n case false:\n return\n default:\n cancellable?.cancel()\n return\n }\n if (tableMeta !== lastTableMeta) {\n dataColumns = []\n for (const metaCol of tableMeta.columns) {\n const type = toGiraffeColumnType(metaCol.dataType)\n if (onlyColumns && !onlyColumns.includes(metaCol.label)) {\n continue // exclude this column\n }\n\n // handle the rare situation of having columns with the same name, but different type\n let columnKey = metaCol.label\n let existingColumn = columns[columnKey]\n if (existingColumn) {\n if (existingColumn.multipleTypes) {\n // multiple column types of the same name already found\n // use type-specific column key\n columnKey = `${metaCol.label} (${type})`\n existingColumn = columns[columnKey]\n } else if (existingColumn.type !== type) {\n // move the existing key to a type-specific key\n columns[\n `${existingColumn.name} (${existingColumn.type})`\n ] = existingColumn\n // create a multiType (virtual) column\n columns[metaCol.label] = {\n name: metaCol.label,\n multipleTypes: true,\n // other values are not used\n } as Column\n columnKey = `${metaCol.label} (${type})`\n existingColumn = columns[columnKey]\n }\n }\n const column = {\n name: metaCol.label,\n fluxDataType: metaCol.dataType as FluxDataType,\n type,\n data: existingColumn ? existingColumn.data : [],\n group: existingColumn?.group || metaCol.group,\n toValue: toValueFn(metaCol.index, type, metaCol.defaultValue),\n }\n\n dataColumns.push(column)\n columns[columnKey] = column\n }\n lastTableMeta = tableMeta\n }\n for (let i = 0; i < dataColumns.length; i++) {\n const column = dataColumns[i]\n // cast is required because of wrong type definition in Giraffe\n column.data[tableSize] = column.toValue(row) as\n | string\n | number\n | boolean\n }\n tableSize++\n },\n complete(): void {\n resolve(createResult(tableSize, columns, tableFactory, tableOptions))\n },\n error(e: Error): void {\n if (e.name === 'AbortError') {\n // eslint-disable-next-line no-console\n console.log('queryTable: request aborted:', e)\n resolve(createResult(tableSize, columns, tableFactory, tableOptions))\n }\n reject(e)\n },\n useCancellable(val: Cancellable): void {\n cancellable = val\n },\n }\n}\n\n/**\n * Transforms annotated CSV query response to Giraffe's FromFluxResult.\n *\n * @param csv - annotated CSV flux query response\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect\n * @returns a new FromFluxResult instance\n */\nexport function csvToFromFluxResult(\n csv: string,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): FromFluxResult {\n let result: FromFluxResult | undefined\n let error: Error | undefined = undefined\n const collector = createCollector(\n r => (result = r),\n /* istanbul ignore next because error is never thrown */\n e => (error = e),\n tableFactory,\n {\n computeFluxGroupKeyUnion: true,\n computeResultColumnNames: true,\n ...tableOptions,\n }\n )\n stringToLines(csv, linesToTables(collector))\n /* istanbul ignore if error is never thrown */\n if (error) {\n throw error\n } else {\n return result as FromFluxResult\n }\n}\n\n/**\n * Transforms annotated CSV query response to Giraffe's Table.\n *\n * @param csv - annotated CSV flux query response\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect.\n * @returns a new Table instance\n */\nexport function csvToTable(\n csv: string,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): Table {\n return csvToFromFluxResult(csv, tableFactory, {\n computeFluxGroupKeyUnion: false,\n ...tableOptions,\n }).table\n}\n","import {ParameterizedQuery, QueryApi} from '@influxdata/influxdb-client'\nimport {Table, FromFluxResult} from '@influxdata/giraffe'\nimport {createCollector, GiraffeTableFactory, TableOptions} from './csvToTable'\n\n/**\n * Executes a flux query and collects results into a Giraffe's Table.\n *\n * @param queryApi - InfluxDB client's QueryApi instance\n * @param query - query to execute\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect.\n * @returns Promise with query results\n */\nexport function queryToTable(\n queryApi: QueryApi,\n query: string | ParameterizedQuery,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): Promise<Table> {\n return new Promise<FromFluxResult>((resolve, reject) => {\n queryApi.queryRows(\n query,\n createCollector(resolve, reject, tableFactory, tableOptions)\n )\n }).then(result => result.table)\n}\n\n/**\n * Executes a flux query and iterrativelly collects results into a Giraffe's FromFluxResult.\n *\n * @param queryApi - InfluxDB client's QueryApi instance\n * @param query - query to execute\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect\n * @returns a Promise with query results\n */\nexport function queryToFromFluxResult(\n queryApi: QueryApi,\n query: string | ParameterizedQuery,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): Promise<FromFluxResult> {\n return new Promise<FromFluxResult>((resolve, reject) => {\n queryApi.queryRows(\n query,\n createCollector(resolve, reject, tableFactory, {\n ...tableOptions,\n computeFluxGroupKeyUnion: true,\n })\n )\n })\n}\n"],"names":["r","constructor","this","_reuse","reuse","t","reusedValues","Array","withReuse","splitLine","lastSplitLength","e","s","n","i","length","o","getValue","push","substring","replace","boolean","unsignedLong","long","double","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","string","base64Binary","duration","get","index","defaultValue","dataType","Object","freeze","label","group","MAX_SAFE_INTEGER","l","c","Error","super","name","setPrototypeOf","prototype","v","forEach","columns","column","toObject","R","error","next","a","h","startsWith","slice","O","complete","useCancellable","createResult","tableLength","tableFactory","computeFluxGroupKeyUnion","computeResultColumnNames","table","fluxGroupKeyUnion","resultColumnNames","Set","keys","key","col","multipleTypes","data","addColumn","fluxDataType","type","x","add","from","QUERY_MAX_TABLE_LENGTH","acceptMaxTableLength","max","size","console","log","toValueFn","rowIndex","def","row","val","Date","parse","toGiraffeColumnType","clientType","createCollector","resolve","reject","tableOptions","onlyColumns","accept","options","maxTableLength","undefined","acceptors","isArray","tableMeta","retVal","createAcceptRowFunction","dataColumns","lastTableMeta","cancellable","tableSize","cancel","metaCol","includes","columnKey","existingColumn","toValue","csvToFromFluxResult","csv","result","collector","charCodeAt","stringToLines","linesToTables","assign","queryApi","query","Promise","queryRows","then"],"mappings":"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"}
package/dist/index.mjs.gz CHANGED
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../core/dist/index.browser.mjs","../src/csvToTable.ts","../src/queryTable.ts"],"sourcesContent":["function t(){const t=new TextDecoder(\"utf-8\");return{concat(t,e){const r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r},copy(t,e,r){const s=new Uint8Array(r-e);return s.set(t.subarray(e,r)),s},toUtf8String:(e,r,s)=>t.decode(e.subarray(r,s))}}function e(e,r){const s=null!=r?r:t();let n,i=!1,o=!1;return{next(t){if(!i)try{!function(t){let r,l=0;for(n?(t=s.concat(n,t),r=n.length):r=0;r<t.length;){const n=t[r];if(10===n){if(!o){const n=r>0&&13===t[r-1]?r-1:r;if(i)return;e.next(s.toUtf8String(t,l,n)),l=r+1}}else 34===n&&(o=!o);r++}n=l<r?s.copy(t,l,r):void 0}(t)}catch(t){this.error(t)}},error(t){i||(i=!0,e.error(t))},complete(){i||(n&&e.next(s.toUtf8String(n,0,n.length)),i=!0,e.complete())},useCancellable(t){if(e.useCancellable){const r=this;e.useCancellable({cancel(){t.cancel(),n=void 0,r.complete()},isCancelled:()=>t.isCancelled()})}}}}class r{constructor(){this._reuse=!1}get reuse(){return this._reuse}set reuse(t){t&&!this.reusedValues&&(this.reusedValues=new Array(10)),this._reuse=t}withReuse(){return this.reuse=!0,this}splitLine(t){if(null==t)return this.lastSplitLength=0,[];let e=0,r=0;const s=this._reuse?this.reusedValues:[];let n=0;for(let i=0;i<t.length;i++){const o=t[i];if(\",\"===o){if(e%2==0){const o=this.getValue(t,r,i,e);this._reuse?s[n++]=o:s.push(o),r=i+1,e=0}}else'\"'===o&&e++}const i=this.getValue(t,r,t.length,e);return this._reuse?(s[n]=i,this.lastSplitLength=n+1):(s.push(i),this.lastSplitLength=s.length),s}getValue(t,e,r,s){return e===t.length?\"\":0===s?t.substring(e,r):2===s?t.substring(e+1,r-1):t.substring(e+1,r-1).replace(/\"\"/gi,'\"')}}const s=t=>t,n={boolean:t=>\"true\"===t,unsignedLong:t=>\"\"===t?null:+t,long:t=>\"\"===t?null:+t,double(t){switch(t){case\"\":return null;case\"+Inf\":return Number.POSITIVE_INFINITY;case\"-Inf\":return Number.NEGATIVE_INFINITY;default:return+t}},string:s,base64Binary:s,duration:t=>\"\"===t?null:t,\"dateTime:RFC3339\":t=>\"\"===t?null:t};class i{get(t){var e;let r=t[this.index];return\"\"!==r&&void 0!==r||!this.defaultValue||(r=this.defaultValue),(null!==(e=n[this.dataType])&&void 0!==e?e:s)(r)}}const o=Object.freeze({label:\"\",dataType:\"\",group:!1,defaultValue:\"\",index:Number.MAX_SAFE_INTEGER,get:()=>{}});function l(){return new i}function a(t){var e,r;const s=new i;return s.label=String(t.label),s.dataType=t.dataType,s.group=Boolean(t.group),s.defaultValue=null!==(e=t.defaultValue)&&void 0!==e?e:\"\",s.index=null!==(r=t.index)&&void 0!==r?r:0,s}const h=[404,408,425,429,500,502,503,504];function u(t){return h.includes(t)}class c extends Error{constructor(t){super(t),this.name=\"IllegalArgumentError\",Object.setPrototypeOf(this,c.prototype)}}class f extends Error{constructor(t,e,r,s,n,i){if(super(),this.statusCode=t,this.statusMessage=e,this.body=r,this.contentType=n,Object.setPrototypeOf(this,f.prototype),i)this.message=i;else if(r){if(null==n?void 0:n.startsWith(\"application/json\"))try{this.json=JSON.parse(r),this.message=this.json.message,this.code=this.json.code}catch(t){}this.message||(this.message=`${t} ${e} : ${r}`)}else this.message=`${t} ${e}`;this.name=\"HttpError\",this.setRetryAfter(s)}setRetryAfter(t){\"string\"==typeof t&&/^[0-9]+$/.test(t)?this._retryAfter=parseInt(t):this._retryAfter=0}canRetry(){return u(this.statusCode)}retryAfter(){return this._retryAfter}}const d=[\"ECONNRESET\",\"ENOTFOUND\",\"ESOCKETTIMEDOUT\",\"ETIMEDOUT\",\"ECONNREFUSED\",\"EHOSTUNREACH\",\"EPIPE\"];function p(t){return!!t&&(\"function\"==typeof t.canRetry?!!t.canRetry():!(!t.code||!d.includes(t.code)))}function g(t,e){if(t){let r;return\"function\"==typeof t.retryAfter?t.retryAfter():(r=0,e&&e>0?r+Math.round(Math.random()*e):r)}return 0}class y extends Error{constructor(){super(),Object.setPrototypeOf(this,y.prototype),this.name=\"RequestTimedOutError\",this.message=\"Request timed out\"}canRetry(){return!0}retryAfter(){return 0}}class m extends Error{constructor(){super(),this.name=\"AbortError\",Object.setPrototypeOf(this,m.prototype),this.message=\"Response aborted\"}canRetry(){return!0}retryAfter(){return 0}}function w(){n[\"dateTime:RFC3339\"]=t=>\"\"===t?null:new Date(Date.parse(t))}function b(){n[\"dateTime:RFC3339\"]=t=>\"\"===t?null:Date.parse(t)}function x(){n[\"dateTime:RFC3339\"]=t=>\"\"===t?null:t}class v{constructor(t){t.forEach(((t,e)=>t.index=e)),this.columns=t}column(t,e=!0){for(let e=0;e<this.columns.length;e++){const r=this.columns[e];if(r.label===t)return r}if(e)throw new c(`Column ${t} not found!`);return o}toObject(t){const e={};for(let r=0;r<this.columns.length&&r<t.length;r++){const s=this.columns[r];e[s.label]=s.get(t)}return e}get(t,e){return this.column(e,!1).get(t)}}function O(t){return new v(t)}function R(t){const e=(new r).withReuse();let s,n,i=!0,o=0;return{error(e){t.error(e)},next(r){if(\"\"===r)i=!0,s=void 0;else{const a=e.splitLine(r),h=e.lastSplitLength;if(i){if(!s){s=new Array(h);for(let t=0;t<h;t++)s[t]=l()}if(a[0].startsWith(\"#\")){if(\"#datatype\"===a[0])for(let t=1;t<h;t++)s[t].dataType=a[t];else if(\"#default\"===a[0])for(let t=1;t<h;t++)s[t].defaultValue=a[t];else if(\"#group\"===a[0])for(let t=1;t<h;t++)s[t].group=\"t\"===a[t][0]}else{\"\"===a[0]?(o=1,s=s.slice(1)):o=0;for(let t=o;t<h;t++)s[t-o].label=a[t];n=O(s),i=!1}}else t.next(a.slice(o,h),n)}},complete(){t.complete()},useCancellable(e){t.useCancellable&&t.useCancellable(e)}}}function T(t,e){let r=!1,s=0,n=0;for(;n<t.length;){const i=t.charCodeAt(n);if(10===i){if(!r){const r=n>0&&13===t.charCodeAt(n-1)?n-1:n;e.next(t.substring(s,r)),s=n+1}}else 34===i&&(r=!r);n++}s<n&&e.next(t.substring(s,n)),e.complete()}const S={timeout:1e4},$={retryJitter:200,minRetryDelay:5e3,maxRetryDelay:125e3,exponentialBase:5,randomRetry:!0},E={batchSize:1e3,maxBatchBytes:5e7,flushInterval:6e4,writeFailed:function(){},writeSuccess:function(){},maxRetries:5,maxRetryTime:18e4,maxBufferLines:32e3,retryJitter:200,minRetryDelay:5e3,maxRetryDelay:125e3,exponentialBase:2,gzipThreshold:1e3,randomRetry:!0};function C(t,e){return function(r){let s=\"\",n=0,i=0;for(;i<r.length;){const o=t.indexOf(r[i]);o>=0&&(s+=r.substring(n,i),s+=e[o],n=i+1),i++}return 0==n?r:(n<r.length&&(s+=r.substring(n,r.length)),s)}}const D={measurement:C(\", \\n\\r\\t\",[\"\\\\,\",\"\\\\ \",\"\\\\n\",\"\\\\r\",\"\\\\t\"]),quoted:function(t,e){const r=C(t,e);return t=>'\"'+r(t)+'\"'}('\"\\\\',['\\\\\"',\"\\\\\\\\\"]),tag:C(\", =\\n\\r\\t\",[\"\\\\,\",\"\\\\ \",\"\\\\=\",\"\\\\n\",\"\\\\r\",\"\\\\t\"])};function B(t){return!1}let j=Date.now(),A=0;function _(){{const t=Date.now();t!==j?(j=t,A=0):A++;const e=String(A);return String(t)+\"000000000\".substr(0,6-e.length)+e}}function I(){return String(Date.now())+\"000000000\".substr(0,3)}function L(){return String(Date.now())}function P(){return String(Math.floor(Date.now()/1e3))}const M={s:P,ms:L,us:I,ns:_,seconds:P,millis:L,micros:I,nanos:_},N={s:t=>`${Math.floor(t.getTime()/1e3)}`,ms:t=>`${t.getTime()}`,us:t=>`${t.getTime()}000`,ns:t=>`${t.getTime()}000000`};function F(t){return void 0===t?_():\"string\"==typeof t?t.length>0?t:void 0:t instanceof Date?`${t.getTime()}000000`:String(\"number\"==typeof t?Math.floor(t):t)}const k={error(t,e){console.error(\"ERROR: \"+t,e||\"\")},warn(t,e){console.warn(\"WARN: \"+t,e||\"\")}};let V=k;const z={error(t,e){V.error(t,e)},warn(t,e){V.warn(t,e)}};function q(t){const e=V;return V=t,e}const H=Symbol(\"FLUX_VALUE\");class U{constructor(t){this.fluxValue=t}toString(){return this.fluxValue}[H](){return this.fluxValue}}function W(t){if(null==t)return\"\";let e;t=t.toString();let r=0;function s(){void 0===e&&(e=t.substring(0,r))}for(;r<t.length;r++){const n=t.charAt(r);switch(n){case\"\\r\":s(),e+=\"\\\\r\";break;case\"\\n\":s(),e+=\"\\\\n\";break;case\"\\t\":s(),e+=\"\\\\t\";break;case'\"':case\"\\\\\":s(),e=e+\"\\\\\"+n;break;case\"$\":if(r+1<t.length&&\"{\"===t.charAt(r+1)){s(),r++,e+=\"\\\\${\";break}null!=e&&(e+=n);break;default:null!=e&&(e+=n)}}return void 0!==e?e:t}function J(t){return new U(`\"${W(t)}\"`)}function G(t){if(\"number\"==typeof t){if(!isFinite(t))throw new Error(`not a flux float: ${t}`);return t.toString()}const e=String(t);let r=!1;for(const t of e)if(\".\"!==t){if(\".\"!==t&&\"-\"!==t&&(t<\"0\"||t>\"9\"))throw new Error(`not a flux float: ${e}`)}else{if(r)throw new Error(`not a flux float: ${e}`);r=!r}return e}function X(t){return new U(G(t))}function Y(t){const e=G(t);for(const t of e)if(\".\"===t)throw new Error(`not a flux integer: ${e}`);return new U(e)}function K(t){return new U(function(t){return`time(v: \"${W(t)}\")`}(t))}function Q(t){return new U(`duration(v: \"${W(t)}\")`)}function Z(t){return`regexp.compile(v: \"${W(t)}\")`}function tt(t){return new U(Z(t))}function et(t){return new U(\"true\"===t||\"false\"===t?t:(!!t).toString())}function rt(t){return new U(String(t))}function st(t){if(void 0===t)return\"\";if(null===t)return\"null\";if(\"boolean\"==typeof t)return t.toString();if(\"string\"==typeof t)return`\"${W(t)}\"`;if(\"number\"==typeof t)return G(t);if(\"object\"==typeof t){if(\"function\"==typeof t[H])return t[H]();if(t instanceof Date)return t.toISOString();if(t instanceof RegExp)return Z(t);if(Array.isArray(t))return`[${t.map(st).join(\",\")}]`}return st(t.toString())}function nt(t,...e){if(1==t.length&&0===e.length)return rt(t[0]);const r=new Array(t.length+e.length);let s=0;for(let i=0;i<t.length;i++){const o=t[i];if(r[s++]=o,i<e.length){const l=e[i];let a;if(o.endsWith('\"')&&i+1<t.length&&t[i+1].startsWith('\"'))a=W(l);else if(a=st(l),\"\"===a&&(\"object\"!=typeof(n=l)||\"function\"!=typeof n[H]))throw new Error(`Unsupported parameter literal '${l}' at index: ${i}, type: ${typeof l}`);r[s++]=a}else if(i<t.length-1)throw new Error(\"Too few parameters supplied!\")}var n;return rt(r.join(\"\"))}const it=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";class ot{constructor(t){this.tags={},this.fields={},t&&(this.name=t)}measurement(t){return this.name=t,this}tag(t,e){return this.tags[t]=e,this}booleanField(t,e){return this.fields[t]=e?\"T\":\"F\",this}intField(t,e){let r;if(r=\"number\"==typeof e?e:parseInt(String(e)),isNaN(r)||r<=-0x8000000000000000||r>=0x8000000000000000)throw new Error(`invalid integer value for field '${t}': '${e}'!`);return this.fields[t]=`${Math.floor(r)}i`,this}uintField(t,e){if(\"number\"==typeof e){if(isNaN(e)||e<0||e>Number.MAX_SAFE_INTEGER)throw new Error(`uint value for field '${t}' out of range: ${e}`);this.fields[t]=`${Math.floor(e)}u`}else{const r=String(e);for(let t=0;t<r.length;t++){const s=r.charCodeAt(t);if(s<48||s>57)throw new Error(`uint value has an unsupported character at pos ${t}: ${e}`)}if(r.length>20||20===r.length&&r.localeCompare(\"18446744073709551615\")>0)throw new Error(`uint value for field '${t}' out of range: ${r}`);this.fields[t]=`${r}u`}return this}floatField(t,e){let r;if(r=\"number\"==typeof e?e:parseFloat(e),!isFinite(r))throw new Error(`invalid float value for field '${t}': ${e}`);return this.fields[t]=String(r),this}stringField(t,e){return null!=e&&(\"string\"!=typeof e&&(e=String(e)),this.fields[t]=D.quoted(e)),this}timestamp(t){return this.time=t,this}toLineProtocol(t){if(!this.name)return;let e=\"\";if(Object.keys(this.fields).sort().forEach((t=>{if(t){const r=this.fields[t];e.length>0&&(e+=\",\"),e+=`${D.tag(t)}=${r}`}})),0===e.length)return;let r=\"\";const s=t&&t.defaultTags?Object.assign(Object.assign({},t.defaultTags),this.tags):this.tags;Object.keys(s).sort().forEach((t=>{if(t){const e=s[t];e&&(r+=\",\",r+=`${D.tag(t)}=${D.tag(e)}`)}}));let n=this.time;return n=t&&t.convertTime?t.convertTime(n):F(n),`${D.measurement(this.name)}${r} ${e}${void 0!==n?\" \"+n:\"\"}`}toString(){const t=this.toLineProtocol(void 0);return t||`invalid point: ${JSON.stringify(this,void 0)}`}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function lt(t,e,r,s){return new(r||(r=Promise))((function(n,i){function o(t){try{a(s.next(t))}catch(t){i(t)}}function l(t){try{a(s.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?n(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,l)}a((s=s.apply(t,e||[])).next())}))}class at{constructor(t){this.options=Object.assign(Object.assign({},$),t),this.success()}nextDelay(t,e){const r=g(t);if(r&&r>0)return r+Math.round(Math.random()*this.options.retryJitter);if(e&&e>0){if(this.options.randomRetry){let t=Math.max(this.options.minRetryDelay,1),r=t*this.options.exponentialBase;for(let s=1;s<e;s++)if(t=r,r*=this.options.exponentialBase,r>=this.options.maxRetryDelay){r=this.options.maxRetryDelay;break}return t+Math.round(Math.random()*(r-t)+Math.random()*this.options.retryJitter)}let t=Math.max(this.options.minRetryDelay,1);for(let r=1;r<e;r++)if(t*=this.options.exponentialBase,t>=this.options.maxRetryDelay){t=this.options.maxRetryDelay;break}return t+Math.round(Math.random()*this.options.retryJitter)}return this.currentDelay?this.currentDelay=Math.min(Math.max(this.currentDelay*this.options.exponentialBase,1)+Math.round(Math.random()*this.options.retryJitter),this.options.maxRetryDelay):this.currentDelay=this.options.minRetryDelay+Math.round(Math.random()*this.options.retryJitter),this.currentDelay}success(){this.currentDelay=void 0}}class ht{constructor(t,e){this.maxLines=t,this.retryLines=e,this.size=0,this.nextRetryTime=0,this.closed=!1,this._timeoutHandle=void 0}addLines(t,e,r,s){if(this.closed)return;if(!t.length)return;let n=Date.now()+r;if(s<n&&(r=s-Date.now(),n=s),n>this.nextRetryTime&&(this.nextRetryTime=n),this.first&&this.size+t.length>this.maxLines){const e=this.size,r=.7*e;do{const t=this.first.next;this.size-=this.first.lines.length,this.first.next=void 0,this.first=t,this.first||(this.last=void 0)}while(this.first&&this.size+t.length>r);z.error(`RetryBuffer: ${e-this.size} oldest lines removed to keep buffer size under the limit of ${this.maxLines} lines`)}const i={lines:t,retryCount:e,expires:s};this.last?(this.last.next=i,this.last=i):(this.first=i,this.last=i,this.scheduleRetry(r)),this.size+=t.length}removeLines(){if(this.first){const t=this.first;return this.first=this.first.next,t.next=void 0,this.size-=t.lines.length,this.first||(this.last=void 0),t}}scheduleRetry(t){this._timeoutHandle=setTimeout((()=>{const t=this.removeLines();t?this.retryLines(t.lines,t.retryCount,t.expires).then((()=>{this.scheduleRetry(1)})).catch((t=>{this.scheduleRetry(this.nextRetryTime-Date.now())})):this._timeoutHandle=void 0}),Math.max(t,0))}flush(){return lt(this,void 0,void 0,(function*(){let t;for(;t=this.removeLines();)yield this.retryLines(t.lines,t.retryCount,t.expires)}))}close(){return this._timeoutHandle&&(clearTimeout(this._timeoutHandle),this._timeoutHandle=void 0),this.closed=!0,this.size}}class ut{constructor(t,e,r,s){this.maxChunkRecords=t,this.maxBatchBytes=e,this.flushFn=r,this.scheduleSend=s,this.length=0,this.bytes=-1,this.lines=new Array(t)}add(t){const e=function(t){let e=t.length;for(let r=0;r<t.length;r++){const s=t.charCodeAt(r);s<128||(s>=128&&s<=2047?e++:s>=2048&&s<=65535?s>=55296&&s<=57343?e++:e+=2:e+=3)}return e}(t);0===this.length?this.scheduleSend():this.bytes+e+1>=this.maxBatchBytes&&this.flush().catch((t=>{})),this.lines[this.length]=t,this.length++,this.bytes+=e+1,(this.length>=this.maxChunkRecords||this.bytes>=this.maxBatchBytes)&&this.flush().catch((t=>{}))}flush(){const t=this.reset();return t.length>0?this.flushFn(t):Promise.resolve()}reset(){const t=this.lines.slice(0,this.length);return this.length=0,this.bytes=-1,t}}class ct{constructor(t,e,r,s,n){this.transport=t,this.closed=!1,this._timeoutHandle=void 0,this.httpPath=`/api/v2/write?org=${encodeURIComponent(e)}&bucket=${encodeURIComponent(r)}&precision=${s}`,this.writeOptions=Object.assign(Object.assign({},E),n),this.currentTime=M[s],this.dateToProtocolTimestamp=N[s],this.writeOptions.defaultTags&&this.useDefaultTags(this.writeOptions.defaultTags),this.sendOptions={method:\"POST\",headers:Object.assign({\"content-type\":\"text/plain; charset=utf-8\"},null==n?void 0:n.headers),gzipThreshold:this.writeOptions.gzipThreshold};var i;this.writeBuffer=new ut(this.writeOptions.batchSize,this.writeOptions.maxBatchBytes,(t=>(this._clearFlushTimeout(),this.sendBatch(t,this.writeOptions.maxRetries))),(()=>{this.writeOptions.flushInterval>0&&(this._clearFlushTimeout(),this.closed||(this._timeoutHandle=setTimeout((()=>this.sendBatch(this.writeBuffer.reset(),this.writeOptions.maxRetries).catch((t=>{}))),this.writeOptions.flushInterval)))})),this.sendBatch=this.sendBatch.bind(this),this.retryStrategy=(i=this.writeOptions,new at(i)),this.retryBuffer=new ht(this.writeOptions.maxBufferLines,this.sendBatch)}sendBatch(t,e,r=Date.now()+this.writeOptions.maxRetryTime){const s=this,n=s.writeOptions.maxRetries+1-e;if(!this.closed&&t.length>0){if(r<=Date.now()){const e=new Error(\"Max retry time exceeded.\"),i=s.writeOptions.writeFailed.call(s,e,t,n,r);return i||(z.error(`Write to InfluxDB failed (attempt: ${n}).`,e),Promise.reject(e))}return new Promise(((i,o)=>{let l;const a={responseStarted(t,e){l=e},error(l){const a=s.writeOptions.writeFailed.call(s,l,t,n,r);if(a)a.then(i,o);else{if(!s.closed&&e>0&&(!(l instanceof f)||l.statusCode>=429))return z.warn(`Write to InfluxDB failed (attempt: ${n}).`,l),s.retryBuffer.addLines(t,e-1,s.retryStrategy.nextDelay(l,n),r),void o(l);z.error(\"Write to InfluxDB failed.\",l),o(l)}},complete(){if(204==l||null==l)s.writeOptions.writeSuccess.call(s,t),s.retryStrategy.success(),i();else{const t=`204 HTTP response status code expected, but ${l} returned`,e=new f(l,t,void 0,\"0\");e.message=t,a.error(e)}}};this.transport.send(this.httpPath,t.join(\"\\n\"),this.sendOptions,a)}))}return Promise.resolve()}_clearFlushTimeout(){void 0!==this._timeoutHandle&&(clearTimeout(this._timeoutHandle),this._timeoutHandle=void 0)}writeRecord(t){if(this.closed)throw new Error(\"writeApi: already closed!\");this.writeBuffer.add(t)}writeRecords(t){if(this.closed)throw new Error(\"writeApi: already closed!\");for(let e=0;e<t.length;e++)this.writeBuffer.add(t[e])}writePoint(t){if(this.closed)throw new Error(\"writeApi: already closed!\");const e=t.toLineProtocol(this);e&&this.writeBuffer.add(e)}writePoints(t){if(this.closed)throw new Error(\"writeApi: already closed!\");for(let e=0;e<t.length;e++){const r=t[e].toLineProtocol(this);r&&this.writeBuffer.add(r)}}flush(t){return lt(this,void 0,void 0,(function*(){if(yield this.writeBuffer.flush(),t)return yield this.retryBuffer.flush()}))}close(){return this.writeBuffer.flush().finally((()=>{const t=this.retryBuffer.close();t&&z.error(`Retry buffer closed with ${t} items that were not written to InfluxDB!`,null),this.closed=!0}))}dispose(){return this._clearFlushTimeout(),this.closed=!0,this.retryBuffer.close()+this.writeBuffer.length}useDefaultTags(t){return this.defaultTags=t,this}convertTime(t){return void 0===t?this.currentTime():\"string\"==typeof t?t.length>0?t:void 0:t instanceof Date?this.dateToProtocolTimestamp(t):String(\"number\"==typeof t?Math.floor(t):t)}}function ft(t){const e={};return t.headers.forEach(((t,r)=>{const s=e[r];void 0===s?e[r]=t:Array.isArray(s)?s.push(t):e[r]=[s,t]})),e}class dt{constructor(e){this.connectionOptions=e,this.chunkCombiner=t(),this.requestDecorator=function(){},this.defaultHeaders=Object.assign({\"content-type\":\"application/json; charset=utf-8\"},e.headers),this.connectionOptions.token&&(this.defaultHeaders.Authorization=\"Token \"+this.connectionOptions.token),this.url=String(this.connectionOptions.url),this.url.endsWith(\"/\")&&(this.url=this.url.substring(0,this.url.length-1)),this.url.endsWith(\"/api/v2\")&&(this.url=this.url.substring(0,this.url.length-\"/api/v2\".length),z.warn(`Please remove '/api/v2' context path from InfluxDB base url, using ${this.url} !`))}send(t,e,r,s){const n=function(t={}){let e=0;return{next:r=>{0===e&&t.next&&null!=r&&t.next(r)},error:r=>{0===e&&(e=1,t.error&&t.error(r))},complete:()=>{0===e&&(e=2,t.complete&&t.complete())},responseStarted:(e,r)=>{t.responseStarted&&t.responseStarted(e,r)}}}(s);let i=!1,o=r.signal;if(s&&s.useCancellable){const t=new AbortController;o||(o=t.signal,r=Object.assign(Object.assign({},r),o)),s.useCancellable({cancel(){i=!0,t.abort()},isCancelled:()=>i||o.aborted})}this.fetch(t,e,r).then((t=>lt(this,void 0,void 0,(function*(){if((null==s?void 0:s.responseStarted)&&n.responseStarted(ft(t),t.status),t.status>=300)return t.text().then((e=>{if(!e){const r=t.headers.get(\"x-influxdb-error\");r&&(e=r)}n.error(new f(t.status,t.statusText,e,t.headers.get(\"retry-after\"),t.headers.get(\"content-type\")))})).catch((e=>{z.warn(\"Unable to receive error body\",e),n.error(new f(t.status,t.statusText,void 0,t.headers.get(\"retry-after\"),t.headers.get(\"content-type\")))}));if(t.body){const e=t.body.getReader();let r;do{r=yield e.read(),n.next(r.value)}while(!r.done)}else if(t.arrayBuffer){const e=yield t.arrayBuffer();n.next(new Uint8Array(e))}else{const e=yield t.text();n.next((new TextEncoder).encode(e))}})))).catch((t=>{i||n.error(t)})).finally((()=>n.complete()))}request(t,e,r,s){var n,i;return lt(this,void 0,void 0,(function*(){const o=yield this.fetch(t,e,r),{status:l,headers:a}=o,h=a.get(\"content-type\")||\"\";if(s&&s(ft(o),o.status),l>=300){let t=yield o.text();if(!t){const e=a.get(\"x-influxdb-error\");e&&(t=e)}throw new f(l,o.statusText,t,o.headers.get(\"retry-after\"),o.headers.get(\"content-type\"))}const u=null!==(i=null===(n=r.headers)||void 0===n?void 0:n.accept)&&void 0!==i?i:h;return u.includes(\"json\")?yield o.json():u.includes(\"text\")||u.startsWith(\"application/csv\")?yield o.text():void 0}))}fetch(t,e,r){const{method:s,headers:n}=r,i=function(t,e){var r={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(null!=t&&\"function\"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(t);n<s.length;n++)e.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(t,s[n])&&(r[s[n]]=t[s[n]])}return r}(r,[\"method\",\"headers\"]),o=`${this.url}${t}`,l=Object.assign({method:s,body:\"GET\"===s||\"HEAD\"===s?void 0:\"string\"==typeof e?e:JSON.stringify(e),headers:Object.assign(Object.assign({},this.defaultHeaders),n),credentials:\"omit\"},i);return this.requestDecorator(l,r,o),fetch(o,l)}}const pt={header:!0,delimiter:\",\",quoteChar:'\"',commentPrefix:\"#\",annotations:[\"datatype\",\"group\",\"default\"]};class gt{constructor(t,e,r){this.transport=t,this.createCSVResponse=e,this.options=\"string\"==typeof r?{org:r}:r}with(t){return new gt(this.transport,this.createCSVResponse,Object.assign(Object.assign({},this.options),t))}response(t){return this.createCSVResponse(this.createExecutor(t))}lines(t){return this.response(t).lines()}rows(t){return this.response(t).rows()}queryLines(t,e){return this.response(t).consumeLines(e)}queryRows(t,e){return this.response(t).consumeRows(e)}collectRows(t,e){return this.response(t).collectRows(e)}collectLines(t){return this.response(t).collectLines()}queryRaw(t){const{org:e,type:r,gzip:s,headers:n}=this.options;return this.transport.request(`/api/v2/query?org=${encodeURIComponent(e)}`,JSON.stringify(this.decorateRequest({query:t.toString(),dialect:pt,type:r})),{method:\"POST\",headers:Object.assign({accept:\"text/csv\",\"accept-encoding\":s?\"gzip\":\"identity\",\"content-type\":\"application/json; encoding=utf-8\"},n)})}createExecutor(t){const{org:e,type:r,gzip:s,headers:n}=this.options;return i=>{this.transport.send(`/api/v2/query?org=${encodeURIComponent(e)}`,JSON.stringify(this.decorateRequest({query:t.toString(),dialect:pt,type:r})),{method:\"POST\",headers:Object.assign({\"content-type\":\"application/json; encoding=utf-8\",\"accept-encoding\":s?\"gzip\":\"identity\"},n)},i)}}decorateRequest(t){var e;return\"function\"==typeof this.options.now&&(t.now=this.options.now()),t.type=null!==(e=this.options.type)&&void 0!==e?e:\"flux\",t}}class yt{constructor(t,e){this.isClosed=!1;try{e({next:e=>{t.next(e)},error:e=>{this.isClosed=!0,t.error(e)},complete:()=>{this.isClosed=!0,t.complete()},useCancellable:t=>{this.cancellable=t}})}catch(e){this.isClosed=!0,t.error(e)}}get closed(){return this.isClosed}unsubscribe(){var t;null===(t=this.cancellable)||void 0===t||t.cancel(),this.isClosed=!0}}function mt(){}class wt{constructor(t,e){this.executor=t,this.decorator=e}subscribe(t,e,r){const s=function(t){const{next:e,error:r,complete:s}=t;return{next:e?e.bind(t):mt,error:r?r.bind(t):mt,complete:s?s.bind(t):mt}}(\"object\"!=typeof t||null===t?{next:t,error:e,complete:r}:t);return new yt(this.decorator(s),this.executor)}[it](){return this}}function bt(t,e){return e.toObject(t)}class xt{constructor(t,e){this.executor=t,this.chunkCombiner=e}lines(){return new wt(this.executor,(t=>e(t,this.chunkCombiner)))}rows(){return new wt(this.executor,(t=>e(R({next(e,r){t.next({values:e,tableMeta:r})},error(e){t.error(e)},complete(){t.complete()}}),this.chunkCombiner)))}consumeLines(t){this.executor(e(t,this.chunkCombiner))}consumeRows(t){this.executor(e(R(t),this.chunkCombiner))}collectRows(t=bt){const e=[];return new Promise(((r,s)=>{this.consumeRows({next(r,s){const n=t.call(this,r,s);void 0!==n&&e.push(n)},error(t){s(t)},complete(){r(e)}})}))}collectLines(){const t=[];return new Promise(((e,r)=>{this.consumeLines({next(e){t.push(e)},error(t){r(t)},complete(){e(t)}})}))}}class vt{constructor(t){var e;if(\"string\"==typeof t)this._options={url:t};else{if(null===t||\"object\"!=typeof t)throw new c(\"No url or configuration specified!\");this._options=t}const r=this._options.url;if(\"string\"!=typeof r)throw new c(\"No url specified!\");r.endsWith(\"/\")&&(this._options.url=r.substring(0,r.length-1)),this.transport=null!==(e=this._options.transport)&&void 0!==e?e:new dt(this._options),this.processCSVResponse=t=>new xt(t,this.transport.chunkCombiner)}getWriteApi(t,e,r=\"ns\",s){return new ct(this.transport,t,e,r,null!=s?s:this._options.writeOptions)}getQueryApi(t){return new gt(this.transport,this.processCSVResponse,t)}}export{m as AbortError,S as DEFAULT_ConnectionOptions,$ as DEFAULT_RetryDelayStrategyOptions,E as DEFAULT_WriteOptions,H as FLUX_VALUE,f as HttpError,c as IllegalArgumentError,vt as InfluxDB,r as LineSplitter,z as Log,ot as Point,y as RequestTimedOutError,o as UNKNOWN_COLUMN,p as canRetryHttpCall,e as chunksToLines,k as consoleLogger,F as convertTimeToNanos,a as createFluxTableColumn,O as createFluxTableMetaData,t as createTextDecoderCombiner,M as currentTime,N as dateToProtocolTimestamp,D as escape,nt as flux,et as fluxBool,K as fluxDateTime,Q as fluxDuration,rt as fluxExpression,X as fluxFloat,Y as fluxInteger,tt as fluxRegExp,J as fluxString,g as getRetryDelay,u as isStatusCodeRetriable,R as linesToTables,l as newFluxTableColumn,G as sanitizeFloat,w as serializeDateTimeAsDate,b as serializeDateTimeAsNumber,x as serializeDateTimeAsString,q as setLogger,T as stringToLines,it as symbolObservable,st as toFluxValue,n as typeSerializers,B as useProcessHrtime};\n//# sourceMappingURL=index.browser.mjs.map\n","import {\n Table,\n FromFluxResult,\n ColumnType,\n FluxDataType,\n ColumnData,\n} from '@influxdata/giraffe'\nimport {\n stringToLines,\n linesToTables,\n ColumnType as ClientColumnType,\n FluxTableMetaData,\n FluxResultObserver,\n Cancellable,\n} from '@influxdata/influxdb-client'\n\n/** A type of a function that creates a new giraffe table of a specified length */\nexport type GiraffeTableFactory = (length: number) => Table\n\n/**\n * Stores data and metadata of a result column.\n */\ninterface Column {\n /** column name */\n name: string\n /** giraffe column type */\n type: ColumnType\n /** flux data type */\n fluxDataType: FluxDataType\n /** column data */\n data: ColumnData\n /** convert result row to column value */\n toValue: (row: string[]) => number | string | boolean | null\n /** when true, it is a no-data column to indicate that multiple columns of the same label exist (distinguished also by column type) */\n multipleTypes?: true\n /** group key membership of this column */\n group?: boolean\n}\n\nfunction createResult(\n tableLength: number,\n columns: Record<string, Column>,\n tableFactory: GiraffeTableFactory,\n {computeFluxGroupKeyUnion, computeResultColumnNames}: TableOptions\n): FromFluxResult {\n let table = tableFactory(tableLength)\n const fluxGroupKeyUnion: string[] = []\n const resultColumnNames = new Set<string>()\n Object.keys(columns).forEach(key => {\n const col = columns[key]\n if (!col.multipleTypes) {\n ;(col.data as any).length = tableLength // extend the array length, required (and tested)\n table = table.addColumn(\n key,\n col.fluxDataType,\n col.type,\n col.data,\n col.name\n )\n if (computeFluxGroupKeyUnion && col.group) {\n fluxGroupKeyUnion.push(key)\n }\n if (computeResultColumnNames && col.name === 'result') {\n col.data.forEach(x => resultColumnNames.add(x as string))\n }\n }\n })\n\n return {\n table,\n fluxGroupKeyUnion,\n resultColumnNames: Array.from(resultColumnNames),\n }\n}\n\n/**\n * AcceptRowFunction allows to accept/reject specific rows or terminate processing.\n * @param row - CSV result data row\n * @param tableMeta - CSV table metadata with column descriptors\n * @returns true to accept row, false to skip row, undefined means stop processing\n **/\nexport type AcceptRowFunction = (\n row: string[],\n tableMeta: FluxTableMetaData\n) => true | false | undefined\n\n/**\n * Contains parameters that optimize/drive creation of the query result Table.\n */\nexport interface TableOptions {\n /**\n * Accept allows to accept/reject specific rows or terminate processing.\n **/\n accept?: AcceptRowFunction | AcceptRowFunction[]\n /**\n * Sets maximum table length, QUERY_MAX_TABLE_LENGTH when undefined.\n */\n maxTableLength?: number\n\n /** column keys to collect in the table, undefined means all columns */\n columns?: string[]\n\n /** compute also fluxGroupKeyUnion */\n computeFluxGroupKeyUnion?: boolean\n\n /** compute also resultColumnNames */\n computeResultColumnNames?: boolean\n}\n\n/**\n * QUERY_MAX_TABLE_LENGTH is a default max table length,\n * it can be overriden in TableOptions.\n */\nexport const QUERY_MAX_TABLE_LENGTH = 100_000\n\n/**\n * Creates an accept function that stops processing\n * if the table reaches the specified max rows.\n * @param size - maximum processed rows\n * @returns AcceptRowFunction that enforces that most max rows are processed\n */\nexport function acceptMaxTableLength(max: number): AcceptRowFunction {\n let size = 0\n return (): true | undefined => {\n if (size >= max) {\n // eslint-disable-next-line no-console\n console.log(\n `csv2Table: max table length ${max} reached, processing stopped`\n )\n return undefined\n }\n size++\n return true\n }\n}\n\n/**\n * Creates a single accept function for the TableOptions supplied.\n * @param options - table options\n * @returns accept function\n */\nfunction createAcceptRowFunction(options: TableOptions): AcceptRowFunction {\n const maxTableLength =\n options.maxTableLength === undefined\n ? QUERY_MAX_TABLE_LENGTH\n : options.maxTableLength\n const acceptors: AcceptRowFunction[] = []\n if (options.accept) {\n if (Array.isArray(options.accept)) {\n acceptors.push(...options.accept)\n } else {\n acceptors.push(options.accept)\n }\n }\n acceptors.push(acceptMaxTableLength(maxTableLength))\n\n return (\n row: string[],\n tableMeta: FluxTableMetaData\n ): true | false | undefined => {\n for (let i = 0; i < acceptors.length; i++) {\n const retVal = acceptors[i](row, tableMeta)\n if (retVal === undefined || retVal === false) {\n return retVal\n }\n }\n return true\n }\n}\n\n/**\n * Creates a function that returns a column value from row data.\n *\n * @param rowIndex - index of a string value in the row data\n * @param type - column type\n * @param def - default value\n * @returns column value to store in a table\n */\nfunction toValueFn(\n rowIndex: number,\n type: ColumnType,\n def: string\n): (row: string[]) => number | string | boolean | null {\n switch (type) {\n case 'boolean':\n return (row: string[]): boolean =>\n (row[rowIndex] === '' ? def : row[rowIndex]) === 'true'\n case 'number':\n return (row: string[]): number | null => {\n const val = row[rowIndex] === '' ? def : row[rowIndex]\n return val === '' ? null : Number(val)\n }\n case 'time':\n return (row: string[]): number =>\n Date.parse(row[rowIndex] === '' ? def : row[rowIndex])\n default:\n return (row: string[]): string =>\n row[rowIndex] === '' ? def : row[rowIndex]\n }\n}\n\n/**\n * Converts between influxdb-client and giraffe columns types.\n *\n * @param clientType - `@influxdata/influxdb-client` column type\n * @returns `@influxdata/giraffe` column type\n */\nfunction toGiraffeColumnType(clientType: ClientColumnType): ColumnType {\n // from: 'boolean' | 'unsignedLong' | 'long' | 'double' | 'string' | 'base64Binary' | 'dateTime:RFC3339' | 'duration'\n // to: 'number' | 'string' | 'time' | 'boolean'\n switch (clientType) {\n case 'boolean':\n return 'boolean'\n case 'unsignedLong':\n case 'long':\n case 'double':\n return 'number'\n default:\n return clientType && clientType.startsWith('dateTime') ? 'time' : 'string'\n }\n}\n\n/**\n * Creates influxdb-client-js's FluxResultObserver that collects row results to a Table instance\n * @param resolve - called when the Table is collected\n * @param reject - called upon error\n * @param tableOptions - tableOptions allow to filter or even stop the processing of rows, or restrict the columns to collect\n * @returns FluxResultObserver that collects table data from result rows\n */\nexport function createCollector(\n resolve: (value: FromFluxResult) => void,\n reject: (reason?: any) => void,\n tableFactory: GiraffeTableFactory,\n tableOptions: TableOptions = {}\n): FluxResultObserver<string[]> {\n const {columns: onlyColumns} = tableOptions\n const accept = createAcceptRowFunction(tableOptions)\n const columns: Record<string, Column> = {}\n let dataColumns: Column[]\n let lastTableMeta: FluxTableMetaData | undefined = undefined\n let tableSize = 0\n let cancellable: Cancellable\n return {\n next(row: string[], tableMeta: FluxTableMetaData): void {\n switch (accept(row, tableMeta)) {\n case true:\n break\n case false:\n return\n default:\n cancellable?.cancel()\n return\n }\n if (tableMeta !== lastTableMeta) {\n dataColumns = []\n for (const metaCol of tableMeta.columns) {\n const type = toGiraffeColumnType(metaCol.dataType)\n if (onlyColumns && !onlyColumns.includes(metaCol.label)) {\n continue // exclude this column\n }\n\n // handle the rare situation of having columns with the same name, but different type\n let columnKey = metaCol.label\n let existingColumn = columns[columnKey]\n if (existingColumn) {\n if (existingColumn.multipleTypes) {\n // multiple column types of the same name already found\n // use type-specific column key\n columnKey = `${metaCol.label} (${type})`\n existingColumn = columns[columnKey]\n } else if (existingColumn.type !== type) {\n // move the existing key to a type-specific key\n columns[\n `${existingColumn.name} (${existingColumn.type})`\n ] = existingColumn\n // create a multiType (virtual) column\n columns[metaCol.label] = {\n name: metaCol.label,\n multipleTypes: true,\n // other values are not used\n } as Column\n columnKey = `${metaCol.label} (${type})`\n existingColumn = columns[columnKey]\n }\n }\n const column = {\n name: metaCol.label,\n fluxDataType: metaCol.dataType as FluxDataType,\n type,\n data: existingColumn ? existingColumn.data : [],\n group: existingColumn?.group || metaCol.group,\n toValue: toValueFn(metaCol.index, type, metaCol.defaultValue),\n }\n\n dataColumns.push(column)\n columns[columnKey] = column\n }\n lastTableMeta = tableMeta\n }\n for (let i = 0; i < dataColumns.length; i++) {\n const column = dataColumns[i]\n // cast is required because of wrong type definition in Giraffe\n column.data[tableSize] = column.toValue(row) as\n | string\n | number\n | boolean\n }\n tableSize++\n },\n complete(): void {\n resolve(createResult(tableSize, columns, tableFactory, tableOptions))\n },\n error(e: Error): void {\n if (e.name === 'AbortError') {\n // eslint-disable-next-line no-console\n console.log('queryTable: request aborted:', e)\n resolve(createResult(tableSize, columns, tableFactory, tableOptions))\n }\n reject(e)\n },\n useCancellable(val: Cancellable): void {\n cancellable = val\n },\n }\n}\n\n/**\n * Transforms annotated CSV query response to Giraffe's FromFluxResult.\n *\n * @param csv - annotated CSV flux query response\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect\n * @returns a new FromFluxResult instance\n */\nexport function csvToFromFluxResult(\n csv: string,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): FromFluxResult {\n let result: FromFluxResult | undefined\n let error: Error | undefined = undefined\n const collector = createCollector(\n r => (result = r),\n /* istanbul ignore next because error is never thrown */\n e => (error = e),\n tableFactory,\n {\n computeFluxGroupKeyUnion: true,\n computeResultColumnNames: true,\n ...tableOptions,\n }\n )\n stringToLines(csv, linesToTables(collector))\n /* istanbul ignore if error is never thrown */\n if (error) {\n throw error\n } else {\n return result as FromFluxResult\n }\n}\n\n/**\n * Transforms annotated CSV query response to Giraffe's Table.\n *\n * @param csv - annotated CSV flux query response\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect.\n * @returns a new Table instance\n */\nexport function csvToTable(\n csv: string,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): Table {\n return csvToFromFluxResult(csv, tableFactory, {\n computeFluxGroupKeyUnion: false,\n ...tableOptions,\n }).table\n}\n","import {ParameterizedQuery, QueryApi} from '@influxdata/influxdb-client'\nimport {Table, FromFluxResult} from '@influxdata/giraffe'\nimport {createCollector, GiraffeTableFactory, TableOptions} from './csvToTable'\n\n/**\n * Executes a flux query and collects results into a Giraffe's Table.\n *\n * @param queryApi - InfluxDB client's QueryApi instance\n * @param query - query to execute\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect.\n * @returns Promise with query results\n */\nexport function queryToTable(\n queryApi: QueryApi,\n query: string | ParameterizedQuery,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): Promise<Table> {\n return new Promise<FromFluxResult>((resolve, reject) => {\n queryApi.queryRows(\n query,\n createCollector(resolve, reject, tableFactory, tableOptions)\n )\n }).then(result => result.table)\n}\n\n/**\n * Executes a flux query and iterrativelly collects results into a Giraffe's FromFluxResult.\n *\n * @param queryApi - InfluxDB client's QueryApi instance\n * @param query - query to execute\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect\n * @returns a Promise with query results\n */\nexport function queryToFromFluxResult(\n queryApi: QueryApi,\n query: string | ParameterizedQuery,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): Promise<FromFluxResult> {\n return new Promise<FromFluxResult>((resolve, reject) => {\n queryApi.queryRows(\n query,\n createCollector(resolve, reject, tableFactory, {\n ...tableOptions,\n computeFluxGroupKeyUnion: true,\n })\n )\n })\n}\n"],"names":["r","constructor","this","_reuse","reuse","t","reusedValues","Array","withReuse","splitLine","lastSplitLength","e","s","n","i","length","o","getValue","push","substring","replace","boolean","unsignedLong","long","double","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","string","base64Binary","duration","get","index","defaultValue","dataType","Object","freeze","label","group","MAX_SAFE_INTEGER","l","c","Error","super","name","setPrototypeOf","prototype","v","forEach","columns","column","toObject","R","error","next","a","h","startsWith","slice","O","complete","useCancellable","createResult","tableLength","tableFactory","computeFluxGroupKeyUnion","computeResultColumnNames","table","fluxGroupKeyUnion","resultColumnNames","Set","keys","key","col","multipleTypes","data","addColumn","fluxDataType","type","x","add","from","QUERY_MAX_TABLE_LENGTH","acceptMaxTableLength","max","size","console","log","toValueFn","rowIndex","def","row","val","Date","parse","toGiraffeColumnType","clientType","createCollector","resolve","reject","tableOptions","onlyColumns","accept","options","maxTableLength","undefined","acceptors","isArray","tableMeta","retVal","createAcceptRowFunction","dataColumns","lastTableMeta","cancellable","tableSize","cancel","metaCol","includes","columnKey","existingColumn","toValue","csvToFromFluxResult","csv","result","collector","charCodeAt","stringToLines","linesToTables","csvToTable","assign","queryToTable","queryApi","query","Promise","queryRows","then","queryToFromFluxResult"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../core/dist/index.browser.mjs","../src/csvToTable.ts","../src/queryTable.ts"],"sourcesContent":["function t(){const t=new TextDecoder(\"utf-8\");return{concat(t,e){const r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r},copy(t,e,r){const s=new Uint8Array(r-e);return s.set(t.subarray(e,r)),s},toUtf8String:(e,r,s)=>t.decode(e.subarray(r,s))}}function e(e,r){const s=null!=r?r:t();let n,i=!1,o=!1;return{next(t){if(!i)try{!function(t){let r,l=0;for(n?(t=s.concat(n,t),r=n.length):r=0;r<t.length;){const n=t[r];if(10===n){if(!o){const n=r>0&&13===t[r-1]?r-1:r;if(i)return;e.next(s.toUtf8String(t,l,n)),l=r+1}}else 34===n&&(o=!o);r++}n=l<r?s.copy(t,l,r):void 0}(t)}catch(t){this.error(t)}},error(t){i||(i=!0,e.error(t))},complete(){i||(n&&e.next(s.toUtf8String(n,0,n.length)),i=!0,e.complete())},useCancellable(t){if(e.useCancellable){const r=this;e.useCancellable({cancel(){t.cancel(),n=void 0,r.complete()},isCancelled:()=>t.isCancelled()})}}}}class r{constructor(){this._reuse=!1}get reuse(){return this._reuse}set reuse(t){t&&!this.reusedValues&&(this.reusedValues=new Array(10)),this._reuse=t}withReuse(){return this.reuse=!0,this}splitLine(t){if(null==t)return this.lastSplitLength=0,[];let e=0,r=0;const s=this._reuse?this.reusedValues:[];let n=0;for(let i=0;i<t.length;i++){const o=t[i];if(\",\"===o){if(e%2==0){const o=this.getValue(t,r,i,e);this._reuse?s[n++]=o:s.push(o),r=i+1,e=0}}else'\"'===o&&e++}const i=this.getValue(t,r,t.length,e);return this._reuse?(s[n]=i,this.lastSplitLength=n+1):(s.push(i),this.lastSplitLength=s.length),s}getValue(t,e,r,s){return e===t.length?\"\":0===s?t.substring(e,r):2===s?t.substring(e+1,r-1):t.substring(e+1,r-1).replace(/\"\"/gi,'\"')}}const s=t=>t,n={boolean:t=>\"true\"===t,unsignedLong:t=>\"\"===t?null:+t,long:t=>\"\"===t?null:+t,double(t){switch(t){case\"\":return null;case\"+Inf\":return Number.POSITIVE_INFINITY;case\"-Inf\":return Number.NEGATIVE_INFINITY;default:return+t}},string:s,base64Binary:s,duration:t=>\"\"===t?null:t,\"dateTime:RFC3339\":t=>\"\"===t?null:t};class i{get(t){var e;let r=t[this.index];return\"\"!==r&&void 0!==r||!this.defaultValue||(r=this.defaultValue),(null!==(e=n[this.dataType])&&void 0!==e?e:s)(r)}}const o=Object.freeze({label:\"\",dataType:\"\",group:!1,defaultValue:\"\",index:Number.MAX_SAFE_INTEGER,get:()=>{}});function l(){return new i}function a(t){var e,r;const s=new i;return s.label=String(t.label),s.dataType=t.dataType,s.group=Boolean(t.group),s.defaultValue=null!==(e=t.defaultValue)&&void 0!==e?e:\"\",s.index=null!==(r=t.index)&&void 0!==r?r:0,s}const h=[404,408,425,429,500,502,503,504];function u(t){return h.includes(t)}class c extends Error{constructor(t){super(t),this.name=\"IllegalArgumentError\",Object.setPrototypeOf(this,c.prototype)}}class f extends Error{constructor(t,e,r,s,n,i){if(super(),this.statusCode=t,this.statusMessage=e,this.body=r,this.contentType=n,Object.setPrototypeOf(this,f.prototype),i)this.message=i;else if(r){if(null==n?void 0:n.startsWith(\"application/json\"))try{this.json=JSON.parse(r),this.message=this.json.message,this.code=this.json.code}catch(t){}this.message||(this.message=`${t} ${e} : ${r}`)}else this.message=`${t} ${e}`;this.name=\"HttpError\",this.setRetryAfter(s)}setRetryAfter(t){\"string\"==typeof t&&/^[0-9]+$/.test(t)?this._retryAfter=parseInt(t):this._retryAfter=0}canRetry(){return u(this.statusCode)}retryAfter(){return this._retryAfter}}const d=[\"ECONNRESET\",\"ENOTFOUND\",\"ESOCKETTIMEDOUT\",\"ETIMEDOUT\",\"ECONNREFUSED\",\"EHOSTUNREACH\",\"EPIPE\"];function p(t){return!!t&&(\"function\"==typeof t.canRetry?!!t.canRetry():!(!t.code||!d.includes(t.code)))}function y(t,e){if(t){let r;return\"function\"==typeof t.retryAfter?t.retryAfter():(r=0,e&&e>0?r+Math.round(Math.random()*e):r)}return 0}class g extends Error{constructor(){super(),Object.setPrototypeOf(this,g.prototype),this.name=\"RequestTimedOutError\",this.message=\"Request timed out\"}canRetry(){return!0}retryAfter(){return 0}}class m extends Error{constructor(){super(),this.name=\"AbortError\",Object.setPrototypeOf(this,m.prototype),this.message=\"Response aborted\"}canRetry(){return!0}retryAfter(){return 0}}function w(){n[\"dateTime:RFC3339\"]=t=>\"\"===t?null:new Date(Date.parse(t))}function b(){n[\"dateTime:RFC3339\"]=t=>\"\"===t?null:Date.parse(t)}function x(){n[\"dateTime:RFC3339\"]=t=>\"\"===t?null:t}class v{constructor(t){t.forEach(((t,e)=>t.index=e)),this.columns=t}column(t,e=!0){for(let e=0;e<this.columns.length;e++){const r=this.columns[e];if(r.label===t)return r}if(e)throw new c(`Column ${t} not found!`);return o}toObject(t){const e={};for(let r=0;r<this.columns.length&&r<t.length;r++){const s=this.columns[r];e[s.label]=s.get(t)}return e}get(t,e){return this.column(e,!1).get(t)}}function O(t){return new v(t)}function R(t){const e=(new r).withReuse();let s,n,i=!0,o=0;return{error(e){t.error(e)},next(r){if(\"\"===r)i=!0,s=void 0;else{const a=e.splitLine(r),h=e.lastSplitLength;if(i){if(!s){s=new Array(h);for(let t=0;t<h;t++)s[t]=l()}if(a[0].startsWith(\"#\")){if(\"#datatype\"===a[0])for(let t=1;t<h;t++)s[t].dataType=a[t];else if(\"#default\"===a[0])for(let t=1;t<h;t++)s[t].defaultValue=a[t];else if(\"#group\"===a[0])for(let t=1;t<h;t++)s[t].group=\"t\"===a[t][0]}else{\"\"===a[0]?(o=1,s=s.slice(1)):o=0;for(let t=o;t<h;t++)s[t-o].label=a[t];n=O(s),i=!1}}else t.next(a.slice(o,h),n)}},complete(){t.complete()},useCancellable(e){t.useCancellable&&t.useCancellable(e)}}}function T(t,e){let r=!1,s=0,n=0;for(;n<t.length;){const i=t.charCodeAt(n);if(10===i){if(!r){const r=n>0&&13===t.charCodeAt(n-1)?n-1:n;e.next(t.substring(s,r)),s=n+1}}else 34===i&&(r=!r);n++}s<n&&e.next(t.substring(s,n)),e.complete()}const S={timeout:1e4},$={retryJitter:200,minRetryDelay:5e3,maxRetryDelay:125e3,exponentialBase:5,randomRetry:!0},E={batchSize:1e3,maxBatchBytes:5e7,flushInterval:6e4,writeFailed:function(){},writeSuccess:function(){},maxRetries:5,maxRetryTime:18e4,maxBufferLines:32e3,retryJitter:200,minRetryDelay:5e3,maxRetryDelay:125e3,exponentialBase:2,gzipThreshold:1e3,randomRetry:!0};function C(t,e){return function(r){let s=\"\",n=0,i=0;for(;i<r.length;){const o=t.indexOf(r[i]);o>=0&&(s+=r.substring(n,i),s+=e[o],n=i+1),i++}return 0==n?r:(n<r.length&&(s+=r.substring(n,r.length)),s)}}const D={measurement:C(\", \\n\\r\\t\",[\"\\\\,\",\"\\\\ \",\"\\\\n\",\"\\\\r\",\"\\\\t\"]),quoted:function(t,e){const r=C(t,e);return t=>'\"'+r(t)+'\"'}('\"\\\\',['\\\\\"',\"\\\\\\\\\"]),tag:C(\", =\\n\\r\\t\",[\"\\\\,\",\"\\\\ \",\"\\\\=\",\"\\\\n\",\"\\\\r\",\"\\\\t\"])};function B(t){return!1}let j=Date.now(),A=0;function _(){{const t=Date.now();t!==j?(j=t,A=0):A++;const e=String(A);return String(t)+\"000000000\".substr(0,6-e.length)+e}}function I(){return String(Date.now())+\"000000000\".substr(0,3)}function P(){return String(Date.now())}function L(){return String(Math.floor(Date.now()/1e3))}const M={s:L,ms:P,us:I,ns:_,seconds:L,millis:P,micros:I,nanos:_},N={s:t=>`${Math.floor(t.getTime()/1e3)}`,ms:t=>`${t.getTime()}`,us:t=>`${t.getTime()}000`,ns:t=>`${t.getTime()}000000`};function F(t){return void 0===t?_():\"string\"==typeof t?t.length>0?t:void 0:t instanceof Date?`${t.getTime()}000000`:String(\"number\"==typeof t?Math.floor(t):t)}const k={error(t,e){console.error(\"ERROR: \"+t,e||\"\")},warn(t,e){console.warn(\"WARN: \"+t,e||\"\")}};let V=k;const z={error(t,e){V.error(t,e)},warn(t,e){V.warn(t,e)}};function U(t){const e=V;return V=t,e}const q=Symbol(\"FLUX_VALUE\");class H{constructor(t){this.fluxValue=t}toString(){return this.fluxValue}[q](){return this.fluxValue}}function W(t){if(null==t)return\"\";let e;t=t.toString();let r=0;function s(){void 0===e&&(e=t.substring(0,r))}for(;r<t.length;r++){const n=t.charAt(r);switch(n){case\"\\r\":s(),e+=\"\\\\r\";break;case\"\\n\":s(),e+=\"\\\\n\";break;case\"\\t\":s(),e+=\"\\\\t\";break;case'\"':case\"\\\\\":s(),e=e+\"\\\\\"+n;break;case\"$\":if(r+1<t.length&&\"{\"===t.charAt(r+1)){s(),r++,e+=\"\\\\${\";break}null!=e&&(e+=n);break;default:null!=e&&(e+=n)}}return void 0!==e?e:t}function J(t){return new H(`\"${W(t)}\"`)}function G(t){if(\"number\"==typeof t){if(!isFinite(t))throw new Error(`not a flux float: ${t}`);return t.toString()}const e=String(t);let r=!1;for(const t of e)if(\".\"!==t){if(\".\"!==t&&\"-\"!==t&&(t<\"0\"||t>\"9\"))throw new Error(`not a flux float: ${e}`)}else{if(r)throw new Error(`not a flux float: ${e}`);r=!r}return e}function X(t){return new H(G(t))}function Y(t){const e=G(t);for(const t of e)if(\".\"===t)throw new Error(`not a flux integer: ${e}`);return new H(e)}function K(t){return new H(function(t){return`time(v: \"${W(t)}\")`}(t))}function Q(t){return new H(`duration(v: \"${W(t)}\")`)}function Z(t){return`regexp.compile(v: \"${W(t)}\")`}function tt(t){return new H(Z(t))}function et(t){return new H(\"true\"===t||\"false\"===t?t:(!!t).toString())}function rt(t){return new H(String(t))}function st(t){if(void 0===t)return\"\";if(null===t)return\"null\";if(\"boolean\"==typeof t)return t.toString();if(\"string\"==typeof t)return`\"${W(t)}\"`;if(\"number\"==typeof t)return G(t);if(\"object\"==typeof t){if(\"function\"==typeof t[q])return t[q]();if(t instanceof Date)return t.toISOString();if(t instanceof RegExp)return Z(t);if(Array.isArray(t))return`[${t.map(st).join(\",\")}]`}return st(t.toString())}function nt(t,...e){if(1==t.length&&0===e.length)return rt(t[0]);const r=new Array(t.length+e.length);let s=0;for(let i=0;i<t.length;i++){const o=t[i];if(r[s++]=o,i<e.length){const l=e[i];let a;if(o.endsWith('\"')&&i+1<t.length&&t[i+1].startsWith('\"'))a=W(l);else if(a=st(l),\"\"===a&&(\"object\"!=typeof(n=l)||\"function\"!=typeof n[q]))throw new Error(`Unsupported parameter literal '${l}' at index: ${i}, type: ${typeof l}`);r[s++]=a}else if(i<t.length-1)throw new Error(\"Too few parameters supplied!\")}var n;return rt(r.join(\"\"))}const it=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";class ot{constructor(t){this.tags={},this.fields={},t&&(this.name=t)}measurement(t){return this.name=t,this}tag(t,e){return this.tags[t]=e,this}booleanField(t,e){return this.fields[t]=e?\"T\":\"F\",this}intField(t,e){let r;if(r=\"number\"==typeof e?e:parseInt(String(e)),isNaN(r)||r<=-0x8000000000000000||r>=0x8000000000000000)throw new Error(`invalid integer value for field '${t}': '${e}'!`);return this.fields[t]=`${Math.floor(r)}i`,this}uintField(t,e){if(\"number\"==typeof e){if(isNaN(e)||e<0||e>Number.MAX_SAFE_INTEGER)throw new Error(`uint value for field '${t}' out of range: ${e}`);this.fields[t]=`${Math.floor(e)}u`}else{const r=String(e);for(let t=0;t<r.length;t++){const s=r.charCodeAt(t);if(s<48||s>57)throw new Error(`uint value has an unsupported character at pos ${t}: ${e}`)}if(r.length>20||20===r.length&&r.localeCompare(\"18446744073709551615\")>0)throw new Error(`uint value for field '${t}' out of range: ${r}`);this.fields[t]=`${r}u`}return this}floatField(t,e){let r;if(r=\"number\"==typeof e?e:parseFloat(e),!isFinite(r))throw new Error(`invalid float value for field '${t}': ${e}`);return this.fields[t]=String(r),this}stringField(t,e){return null!=e&&(\"string\"!=typeof e&&(e=String(e)),this.fields[t]=D.quoted(e)),this}timestamp(t){return this.time=t,this}toLineProtocol(t){if(!this.name)return;let e=\"\";if(Object.keys(this.fields).sort().forEach((t=>{if(t){const r=this.fields[t];e.length>0&&(e+=\",\"),e+=`${D.tag(t)}=${r}`}})),0===e.length)return;let r=\"\";const s=t&&t.defaultTags?Object.assign(Object.assign({},t.defaultTags),this.tags):this.tags;Object.keys(s).sort().forEach((t=>{if(t){const e=s[t];e&&(r+=\",\",r+=`${D.tag(t)}=${D.tag(e)}`)}}));let n=this.time;return n=t&&t.convertTime?t.convertTime(n):F(n),`${D.measurement(this.name)}${r} ${e}${void 0!==n?\" \"+n:\"\"}`}toString(){const t=this.toLineProtocol(void 0);return t||`invalid point: ${JSON.stringify(this,void 0)}`}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function lt(t,e,r,s){return new(r||(r=Promise))((function(n,i){function o(t){try{a(s.next(t))}catch(t){i(t)}}function l(t){try{a(s.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?n(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,l)}a((s=s.apply(t,e||[])).next())}))}class at{constructor(t){this.options=Object.assign(Object.assign({},$),t),this.success()}nextDelay(t,e){const r=y(t);if(r&&r>0)return r+Math.round(Math.random()*this.options.retryJitter);if(e&&e>0){if(this.options.randomRetry){let t=Math.max(this.options.minRetryDelay,1),r=t*this.options.exponentialBase;for(let s=1;s<e;s++)if(t=r,r*=this.options.exponentialBase,r>=this.options.maxRetryDelay){r=this.options.maxRetryDelay;break}return t+Math.round(Math.random()*(r-t)+Math.random()*this.options.retryJitter)}let t=Math.max(this.options.minRetryDelay,1);for(let r=1;r<e;r++)if(t*=this.options.exponentialBase,t>=this.options.maxRetryDelay){t=this.options.maxRetryDelay;break}return t+Math.round(Math.random()*this.options.retryJitter)}return this.currentDelay?this.currentDelay=Math.min(Math.max(this.currentDelay*this.options.exponentialBase,1)+Math.round(Math.random()*this.options.retryJitter),this.options.maxRetryDelay):this.currentDelay=this.options.minRetryDelay+Math.round(Math.random()*this.options.retryJitter),this.currentDelay}success(){this.currentDelay=void 0}}class ht{constructor(t,e){this.maxLines=t,this.retryLines=e,this.size=0,this.nextRetryTime=0,this.closed=!1,this._timeoutHandle=void 0}addLines(t,e,r,s){if(this.closed)return;if(!t.length)return;let n=Date.now()+r;if(s<n&&(r=s-Date.now(),n=s),n>this.nextRetryTime&&(this.nextRetryTime=n),this.first&&this.size+t.length>this.maxLines){const e=this.size,r=.7*e;do{const t=this.first.next;this.size-=this.first.lines.length,this.first.next=void 0,this.first=t,this.first||(this.last=void 0)}while(this.first&&this.size+t.length>r);z.error(`RetryBuffer: ${e-this.size} oldest lines removed to keep buffer size under the limit of ${this.maxLines} lines`)}const i={lines:t,retryCount:e,expires:s};this.last?(this.last.next=i,this.last=i):(this.first=i,this.last=i,this.scheduleRetry(r)),this.size+=t.length}removeLines(){if(this.first){const t=this.first;return this.first=this.first.next,t.next=void 0,this.size-=t.lines.length,this.first||(this.last=void 0),t}}scheduleRetry(t){this._timeoutHandle=setTimeout((()=>{const t=this.removeLines();t?this.retryLines(t.lines,t.retryCount,t.expires).then((()=>{this.scheduleRetry(1)})).catch((t=>{this.scheduleRetry(this.nextRetryTime-Date.now())})):this._timeoutHandle=void 0}),Math.max(t,0))}flush(){return lt(this,void 0,void 0,(function*(){let t;for(;t=this.removeLines();)yield this.retryLines(t.lines,t.retryCount,t.expires)}))}close(){return this._timeoutHandle&&(clearTimeout(this._timeoutHandle),this._timeoutHandle=void 0),this.closed=!0,this.size}}class ut{constructor(t,e,r,s){this.maxChunkRecords=t,this.maxBatchBytes=e,this.flushFn=r,this.scheduleSend=s,this.length=0,this.bytes=-1,this.lines=new Array(t)}add(t){const e=function(t){let e=t.length;for(let r=0;r<t.length;r++){const s=t.charCodeAt(r);s<128||(s>=128&&s<=2047?e++:s>=2048&&s<=65535?s>=55296&&s<=57343?e++:e+=2:e+=3)}return e}(t);0===this.length?this.scheduleSend():this.bytes+e+1>=this.maxBatchBytes&&this.flush().catch((t=>{})),this.lines[this.length]=t,this.length++,this.bytes+=e+1,(this.length>=this.maxChunkRecords||this.bytes>=this.maxBatchBytes)&&this.flush().catch((t=>{}))}flush(){const t=this.reset();return t.length>0?this.flushFn(t):Promise.resolve()}reset(){const t=this.lines.slice(0,this.length);return this.length=0,this.bytes=-1,t}}class ct{constructor(t,e,r,s,n){this.transport=t,this.closed=!1,this._timeoutHandle=void 0,this.httpPath=`/api/v2/write?org=${encodeURIComponent(e)}&bucket=${encodeURIComponent(r)}&precision=${s}`,(null==n?void 0:n.consistency)&&(this.httpPath+=`&consistency=${encodeURIComponent(n.consistency)}`),this.writeOptions=Object.assign(Object.assign({},E),n),this.currentTime=M[s],this.dateToProtocolTimestamp=N[s],this.writeOptions.defaultTags&&this.useDefaultTags(this.writeOptions.defaultTags),this.sendOptions={method:\"POST\",headers:Object.assign({\"content-type\":\"text/plain; charset=utf-8\"},null==n?void 0:n.headers),gzipThreshold:this.writeOptions.gzipThreshold};var i;this.writeBuffer=new ut(this.writeOptions.batchSize,this.writeOptions.maxBatchBytes,(t=>(this._clearFlushTimeout(),this.sendBatch(t,this.writeOptions.maxRetries))),(()=>{this.writeOptions.flushInterval>0&&(this._clearFlushTimeout(),this.closed||(this._timeoutHandle=setTimeout((()=>this.sendBatch(this.writeBuffer.reset(),this.writeOptions.maxRetries).catch((t=>{}))),this.writeOptions.flushInterval)))})),this.sendBatch=this.sendBatch.bind(this),this.retryStrategy=(i=this.writeOptions,new at(i)),this.retryBuffer=new ht(this.writeOptions.maxBufferLines,this.sendBatch)}sendBatch(t,e,r=Date.now()+this.writeOptions.maxRetryTime){const s=this,n=s.writeOptions.maxRetries+1-e;if(!this.closed&&t.length>0){if(r<=Date.now()){const e=new Error(\"Max retry time exceeded.\"),i=s.writeOptions.writeFailed.call(s,e,t,n,r);return i||(z.error(`Write to InfluxDB failed (attempt: ${n}).`,e),Promise.reject(e))}return new Promise(((i,o)=>{let l;const a={responseStarted(t,e){l=e},error(l){const a=s.writeOptions.writeFailed.call(s,l,t,n,r);if(a)a.then(i,o);else{if(!s.closed&&e>0&&(!(l instanceof f)||l.statusCode>=429))return z.warn(`Write to InfluxDB failed (attempt: ${n}).`,l),s.retryBuffer.addLines(t,e-1,s.retryStrategy.nextDelay(l,n),r),void o(l);z.error(\"Write to InfluxDB failed.\",l),o(l)}},complete(){if(204==l||null==l)s.writeOptions.writeSuccess.call(s,t),s.retryStrategy.success(),i();else{const t=`204 HTTP response status code expected, but ${l} returned`,e=new f(l,t,void 0,\"0\");e.message=t,a.error(e)}}};this.transport.send(this.httpPath,t.join(\"\\n\"),this.sendOptions,a)}))}return Promise.resolve()}_clearFlushTimeout(){void 0!==this._timeoutHandle&&(clearTimeout(this._timeoutHandle),this._timeoutHandle=void 0)}writeRecord(t){if(this.closed)throw new Error(\"writeApi: already closed!\");this.writeBuffer.add(t)}writeRecords(t){if(this.closed)throw new Error(\"writeApi: already closed!\");for(let e=0;e<t.length;e++)this.writeBuffer.add(t[e])}writePoint(t){if(this.closed)throw new Error(\"writeApi: already closed!\");const e=t.toLineProtocol(this);e&&this.writeBuffer.add(e)}writePoints(t){if(this.closed)throw new Error(\"writeApi: already closed!\");for(let e=0;e<t.length;e++){const r=t[e].toLineProtocol(this);r&&this.writeBuffer.add(r)}}flush(t){return lt(this,void 0,void 0,(function*(){if(yield this.writeBuffer.flush(),t)return yield this.retryBuffer.flush()}))}close(){return this.writeBuffer.flush().finally((()=>{const t=this.retryBuffer.close();t&&z.error(`Retry buffer closed with ${t} items that were not written to InfluxDB!`,null),this.closed=!0}))}dispose(){return this._clearFlushTimeout(),this.closed=!0,this.retryBuffer.close()+this.writeBuffer.length}useDefaultTags(t){return this.defaultTags=t,this}convertTime(t){return void 0===t?this.currentTime():\"string\"==typeof t?t.length>0?t:void 0:t instanceof Date?this.dateToProtocolTimestamp(t):String(\"number\"==typeof t?Math.floor(t):t)}}function ft(t){const e={};return t.headers.forEach(((t,r)=>{const s=e[r];void 0===s?e[r]=t:Array.isArray(s)?s.push(t):e[r]=[s,t]})),e}class dt{constructor(e){this.connectionOptions=e,this.chunkCombiner=t(),this.requestDecorator=function(){},this.defaultHeaders=Object.assign({\"content-type\":\"application/json; charset=utf-8\"},e.headers),this.connectionOptions.token&&(this.defaultHeaders.Authorization=\"Token \"+this.connectionOptions.token),this.url=String(this.connectionOptions.url),this.url.endsWith(\"/\")&&(this.url=this.url.substring(0,this.url.length-1)),this.url.endsWith(\"/api/v2\")&&(this.url=this.url.substring(0,this.url.length-\"/api/v2\".length),z.warn(`Please remove '/api/v2' context path from InfluxDB base url, using ${this.url} !`))}send(t,e,r,s){const n=function(t={}){let e=0;return{next:r=>{0===e&&t.next&&null!=r&&t.next(r)},error:r=>{0===e&&(e=1,t.error&&t.error(r))},complete:()=>{0===e&&(e=2,t.complete&&t.complete())},responseStarted:(e,r)=>{t.responseStarted&&t.responseStarted(e,r)}}}(s);let i=!1,o=r.signal;if(s&&s.useCancellable){const t=new AbortController;o||(o=t.signal,r=Object.assign(Object.assign({},r),o)),s.useCancellable({cancel(){i=!0,t.abort()},isCancelled:()=>i||o.aborted})}this.fetch(t,e,r).then((t=>lt(this,void 0,void 0,(function*(){if((null==s?void 0:s.responseStarted)&&n.responseStarted(ft(t),t.status),t.status>=300)return t.text().then((e=>{if(!e){const r=t.headers.get(\"x-influxdb-error\");r&&(e=r)}n.error(new f(t.status,t.statusText,e,t.headers.get(\"retry-after\"),t.headers.get(\"content-type\")))})).catch((e=>{z.warn(\"Unable to receive error body\",e),n.error(new f(t.status,t.statusText,void 0,t.headers.get(\"retry-after\"),t.headers.get(\"content-type\")))}));if(t.body){const e=t.body.getReader();let r;do{r=yield e.read(),n.next(r.value)}while(!r.done)}else if(t.arrayBuffer){const e=yield t.arrayBuffer();n.next(new Uint8Array(e))}else{const e=yield t.text();n.next((new TextEncoder).encode(e))}})))).catch((t=>{i||n.error(t)})).finally((()=>n.complete()))}request(t,e,r,s){var n,i;return lt(this,void 0,void 0,(function*(){const o=yield this.fetch(t,e,r),{status:l,headers:a}=o,h=a.get(\"content-type\")||\"\";if(s&&s(ft(o),o.status),l>=300){let t=yield o.text();if(!t){const e=a.get(\"x-influxdb-error\");e&&(t=e)}throw new f(l,o.statusText,t,o.headers.get(\"retry-after\"),o.headers.get(\"content-type\"))}const u=null!==(i=null===(n=r.headers)||void 0===n?void 0:n.accept)&&void 0!==i?i:h;return u.includes(\"json\")?yield o.json():u.includes(\"text\")||u.startsWith(\"application/csv\")?yield o.text():void 0}))}fetch(t,e,r){const{method:s,headers:n}=r,i=function(t,e){var r={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(null!=t&&\"function\"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(t);n<s.length;n++)e.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(t,s[n])&&(r[s[n]]=t[s[n]])}return r}(r,[\"method\",\"headers\"]),o=`${this.url}${t}`,l=Object.assign({method:s,body:\"GET\"===s||\"HEAD\"===s?void 0:\"string\"==typeof e?e:JSON.stringify(e),headers:Object.assign(Object.assign({},this.defaultHeaders),n),credentials:\"omit\"},i);return this.requestDecorator(l,r,o),fetch(o,l)}}const pt={header:!0,delimiter:\",\",quoteChar:'\"',commentPrefix:\"#\",annotations:[\"datatype\",\"group\",\"default\"]};class yt{constructor(t,e,r){this.transport=t,this.createCSVResponse=e,this.options=\"string\"==typeof r?{org:r}:r}with(t){return new yt(this.transport,this.createCSVResponse,Object.assign(Object.assign({},this.options),t))}response(t){return this.createCSVResponse(this.createExecutor(t))}lines(t){return this.response(t).lines()}rows(t){return this.response(t).rows()}queryLines(t,e){return this.response(t).consumeLines(e)}queryRows(t,e){return this.response(t).consumeRows(e)}collectRows(t,e){return this.response(t).collectRows(e)}collectLines(t){return this.response(t).collectLines()}queryRaw(t){const{org:e,type:r,gzip:s,headers:n}=this.options;return this.transport.request(`/api/v2/query?org=${encodeURIComponent(e)}`,JSON.stringify(this.decorateRequest({query:t.toString(),dialect:pt,type:r})),{method:\"POST\",headers:Object.assign({accept:\"text/csv\",\"accept-encoding\":s?\"gzip\":\"identity\",\"content-type\":\"application/json; encoding=utf-8\"},n)})}createExecutor(t){const{org:e,type:r,gzip:s,headers:n}=this.options;return i=>{this.transport.send(`/api/v2/query?org=${encodeURIComponent(e)}`,JSON.stringify(this.decorateRequest({query:t.toString(),dialect:pt,type:r})),{method:\"POST\",headers:Object.assign({\"content-type\":\"application/json; encoding=utf-8\",\"accept-encoding\":s?\"gzip\":\"identity\"},n)},i)}}decorateRequest(t){var e;return\"function\"==typeof this.options.now&&(t.now=this.options.now()),t.type=null!==(e=this.options.type)&&void 0!==e?e:\"flux\",t}}class gt{constructor(t,e){this.isClosed=!1;try{e({next:e=>{t.next(e)},error:e=>{this.isClosed=!0,t.error(e)},complete:()=>{this.isClosed=!0,t.complete()},useCancellable:t=>{this.cancellable=t}})}catch(e){this.isClosed=!0,t.error(e)}}get closed(){return this.isClosed}unsubscribe(){var t;null===(t=this.cancellable)||void 0===t||t.cancel(),this.isClosed=!0}}function mt(){}class wt{constructor(t,e){this.executor=t,this.decorator=e}subscribe(t,e,r){const s=function(t){const{next:e,error:r,complete:s}=t;return{next:e?e.bind(t):mt,error:r?r.bind(t):mt,complete:s?s.bind(t):mt}}(\"object\"!=typeof t||null===t?{next:t,error:e,complete:r}:t);return new gt(this.decorator(s),this.executor)}[it](){return this}}function bt(t,e){return e.toObject(t)}class xt{constructor(t,e){this.executor=t,this.chunkCombiner=e}lines(){return new wt(this.executor,(t=>e(t,this.chunkCombiner)))}rows(){return new wt(this.executor,(t=>e(R({next(e,r){t.next({values:e,tableMeta:r})},error(e){t.error(e)},complete(){t.complete()}}),this.chunkCombiner)))}consumeLines(t){this.executor(e(t,this.chunkCombiner))}consumeRows(t){this.executor(e(R(t),this.chunkCombiner))}collectRows(t=bt){const e=[];return new Promise(((r,s)=>{this.consumeRows({next(r,s){const n=t.call(this,r,s);void 0!==n&&e.push(n)},error(t){s(t)},complete(){r(e)}})}))}collectLines(){const t=[];return new Promise(((e,r)=>{this.consumeLines({next(e){t.push(e)},error(t){r(t)},complete(){e(t)}})}))}}class vt{constructor(t){var e;if(\"string\"==typeof t)this._options={url:t};else{if(null===t||\"object\"!=typeof t)throw new c(\"No url or configuration specified!\");this._options=t}const r=this._options.url;if(\"string\"!=typeof r)throw new c(\"No url specified!\");r.endsWith(\"/\")&&(this._options.url=r.substring(0,r.length-1)),this.transport=null!==(e=this._options.transport)&&void 0!==e?e:new dt(this._options),this.processCSVResponse=t=>new xt(t,this.transport.chunkCombiner)}getWriteApi(t,e,r=\"ns\",s){return new ct(this.transport,t,e,r,null!=s?s:this._options.writeOptions)}getQueryApi(t){return new yt(this.transport,this.processCSVResponse,t)}}export{m as AbortError,S as DEFAULT_ConnectionOptions,$ as DEFAULT_RetryDelayStrategyOptions,E as DEFAULT_WriteOptions,q as FLUX_VALUE,f as HttpError,c as IllegalArgumentError,vt as InfluxDB,r as LineSplitter,z as Log,ot as Point,g as RequestTimedOutError,o as UNKNOWN_COLUMN,p as canRetryHttpCall,e as chunksToLines,k as consoleLogger,F as convertTimeToNanos,a as createFluxTableColumn,O as createFluxTableMetaData,t as createTextDecoderCombiner,M as currentTime,N as dateToProtocolTimestamp,D as escape,nt as flux,et as fluxBool,K as fluxDateTime,Q as fluxDuration,rt as fluxExpression,X as fluxFloat,Y as fluxInteger,tt as fluxRegExp,J as fluxString,y as getRetryDelay,u as isStatusCodeRetriable,R as linesToTables,l as newFluxTableColumn,G as sanitizeFloat,w as serializeDateTimeAsDate,b as serializeDateTimeAsNumber,x as serializeDateTimeAsString,U as setLogger,T as stringToLines,it as symbolObservable,st as toFluxValue,n as typeSerializers,B as useProcessHrtime};\n//# sourceMappingURL=index.browser.mjs.map\n","import {\n Table,\n FromFluxResult,\n ColumnType,\n FluxDataType,\n ColumnData,\n} from '@influxdata/giraffe'\nimport {\n stringToLines,\n linesToTables,\n ColumnType as ClientColumnType,\n FluxTableMetaData,\n FluxResultObserver,\n Cancellable,\n} from '@influxdata/influxdb-client'\n\n/** A type of a function that creates a new giraffe table of a specified length */\nexport type GiraffeTableFactory = (length: number) => Table\n\n/**\n * Stores data and metadata of a result column.\n */\ninterface Column {\n /** column name */\n name: string\n /** giraffe column type */\n type: ColumnType\n /** flux data type */\n fluxDataType: FluxDataType\n /** column data */\n data: ColumnData\n /** convert result row to column value */\n toValue: (row: string[]) => number | string | boolean | null\n /** when true, it is a no-data column to indicate that multiple columns of the same label exist (distinguished also by column type) */\n multipleTypes?: true\n /** group key membership of this column */\n group?: boolean\n}\n\nfunction createResult(\n tableLength: number,\n columns: Record<string, Column>,\n tableFactory: GiraffeTableFactory,\n {computeFluxGroupKeyUnion, computeResultColumnNames}: TableOptions\n): FromFluxResult {\n let table = tableFactory(tableLength)\n const fluxGroupKeyUnion: string[] = []\n const resultColumnNames = new Set<string>()\n Object.keys(columns).forEach(key => {\n const col = columns[key]\n if (!col.multipleTypes) {\n ;(col.data as any).length = tableLength // extend the array length, required (and tested)\n table = table.addColumn(\n key,\n col.fluxDataType,\n col.type,\n col.data,\n col.name\n )\n if (computeFluxGroupKeyUnion && col.group) {\n fluxGroupKeyUnion.push(key)\n }\n if (computeResultColumnNames && col.name === 'result') {\n col.data.forEach(x => resultColumnNames.add(x as string))\n }\n }\n })\n\n return {\n table,\n fluxGroupKeyUnion,\n resultColumnNames: Array.from(resultColumnNames),\n }\n}\n\n/**\n * AcceptRowFunction allows to accept/reject specific rows or terminate processing.\n * @param row - CSV result data row\n * @param tableMeta - CSV table metadata with column descriptors\n * @returns true to accept row, false to skip row, undefined means stop processing\n **/\nexport type AcceptRowFunction = (\n row: string[],\n tableMeta: FluxTableMetaData\n) => true | false | undefined\n\n/**\n * Contains parameters that optimize/drive creation of the query result Table.\n */\nexport interface TableOptions {\n /**\n * Accept allows to accept/reject specific rows or terminate processing.\n **/\n accept?: AcceptRowFunction | AcceptRowFunction[]\n /**\n * Sets maximum table length, QUERY_MAX_TABLE_LENGTH when undefined.\n */\n maxTableLength?: number\n\n /** column keys to collect in the table, undefined means all columns */\n columns?: string[]\n\n /** compute also fluxGroupKeyUnion */\n computeFluxGroupKeyUnion?: boolean\n\n /** compute also resultColumnNames */\n computeResultColumnNames?: boolean\n}\n\n/**\n * QUERY_MAX_TABLE_LENGTH is a default max table length,\n * it can be overriden in TableOptions.\n */\nexport const QUERY_MAX_TABLE_LENGTH = 100_000\n\n/**\n * Creates an accept function that stops processing\n * if the table reaches the specified max rows.\n * @param size - maximum processed rows\n * @returns AcceptRowFunction that enforces that most max rows are processed\n */\nexport function acceptMaxTableLength(max: number): AcceptRowFunction {\n let size = 0\n return (): true | undefined => {\n if (size >= max) {\n // eslint-disable-next-line no-console\n console.log(\n `csv2Table: max table length ${max} reached, processing stopped`\n )\n return undefined\n }\n size++\n return true\n }\n}\n\n/**\n * Creates a single accept function for the TableOptions supplied.\n * @param options - table options\n * @returns accept function\n */\nfunction createAcceptRowFunction(options: TableOptions): AcceptRowFunction {\n const maxTableLength =\n options.maxTableLength === undefined\n ? QUERY_MAX_TABLE_LENGTH\n : options.maxTableLength\n const acceptors: AcceptRowFunction[] = []\n if (options.accept) {\n if (Array.isArray(options.accept)) {\n acceptors.push(...options.accept)\n } else {\n acceptors.push(options.accept)\n }\n }\n acceptors.push(acceptMaxTableLength(maxTableLength))\n\n return (\n row: string[],\n tableMeta: FluxTableMetaData\n ): true | false | undefined => {\n for (let i = 0; i < acceptors.length; i++) {\n const retVal = acceptors[i](row, tableMeta)\n if (retVal === undefined || retVal === false) {\n return retVal\n }\n }\n return true\n }\n}\n\n/**\n * Creates a function that returns a column value from row data.\n *\n * @param rowIndex - index of a string value in the row data\n * @param type - column type\n * @param def - default value\n * @returns column value to store in a table\n */\nfunction toValueFn(\n rowIndex: number,\n type: ColumnType,\n def: string\n): (row: string[]) => number | string | boolean | null {\n switch (type) {\n case 'boolean':\n return (row: string[]): boolean =>\n (row[rowIndex] === '' ? def : row[rowIndex]) === 'true'\n case 'number':\n return (row: string[]): number | null => {\n const val = row[rowIndex] === '' ? def : row[rowIndex]\n return val === '' ? null : Number(val)\n }\n case 'time':\n return (row: string[]): number =>\n Date.parse(row[rowIndex] === '' ? def : row[rowIndex])\n default:\n return (row: string[]): string =>\n row[rowIndex] === '' ? def : row[rowIndex]\n }\n}\n\n/**\n * Converts between influxdb-client and giraffe columns types.\n *\n * @param clientType - `@influxdata/influxdb-client` column type\n * @returns `@influxdata/giraffe` column type\n */\nfunction toGiraffeColumnType(clientType: ClientColumnType): ColumnType {\n // from: 'boolean' | 'unsignedLong' | 'long' | 'double' | 'string' | 'base64Binary' | 'dateTime:RFC3339' | 'duration'\n // to: 'number' | 'string' | 'time' | 'boolean'\n switch (clientType) {\n case 'boolean':\n return 'boolean'\n case 'unsignedLong':\n case 'long':\n case 'double':\n return 'number'\n default:\n return clientType && clientType.startsWith('dateTime') ? 'time' : 'string'\n }\n}\n\n/**\n * Creates influxdb-client-js's FluxResultObserver that collects row results to a Table instance\n * @param resolve - called when the Table is collected\n * @param reject - called upon error\n * @param tableOptions - tableOptions allow to filter or even stop the processing of rows, or restrict the columns to collect\n * @returns FluxResultObserver that collects table data from result rows\n */\nexport function createCollector(\n resolve: (value: FromFluxResult) => void,\n reject: (reason?: any) => void,\n tableFactory: GiraffeTableFactory,\n tableOptions: TableOptions = {}\n): FluxResultObserver<string[]> {\n const {columns: onlyColumns} = tableOptions\n const accept = createAcceptRowFunction(tableOptions)\n const columns: Record<string, Column> = {}\n let dataColumns: Column[]\n let lastTableMeta: FluxTableMetaData | undefined = undefined\n let tableSize = 0\n let cancellable: Cancellable\n return {\n next(row: string[], tableMeta: FluxTableMetaData): void {\n switch (accept(row, tableMeta)) {\n case true:\n break\n case false:\n return\n default:\n cancellable?.cancel()\n return\n }\n if (tableMeta !== lastTableMeta) {\n dataColumns = []\n for (const metaCol of tableMeta.columns) {\n const type = toGiraffeColumnType(metaCol.dataType)\n if (onlyColumns && !onlyColumns.includes(metaCol.label)) {\n continue // exclude this column\n }\n\n // handle the rare situation of having columns with the same name, but different type\n let columnKey = metaCol.label\n let existingColumn = columns[columnKey]\n if (existingColumn) {\n if (existingColumn.multipleTypes) {\n // multiple column types of the same name already found\n // use type-specific column key\n columnKey = `${metaCol.label} (${type})`\n existingColumn = columns[columnKey]\n } else if (existingColumn.type !== type) {\n // move the existing key to a type-specific key\n columns[\n `${existingColumn.name} (${existingColumn.type})`\n ] = existingColumn\n // create a multiType (virtual) column\n columns[metaCol.label] = {\n name: metaCol.label,\n multipleTypes: true,\n // other values are not used\n } as Column\n columnKey = `${metaCol.label} (${type})`\n existingColumn = columns[columnKey]\n }\n }\n const column = {\n name: metaCol.label,\n fluxDataType: metaCol.dataType as FluxDataType,\n type,\n data: existingColumn ? existingColumn.data : [],\n group: existingColumn?.group || metaCol.group,\n toValue: toValueFn(metaCol.index, type, metaCol.defaultValue),\n }\n\n dataColumns.push(column)\n columns[columnKey] = column\n }\n lastTableMeta = tableMeta\n }\n for (let i = 0; i < dataColumns.length; i++) {\n const column = dataColumns[i]\n // cast is required because of wrong type definition in Giraffe\n column.data[tableSize] = column.toValue(row) as\n | string\n | number\n | boolean\n }\n tableSize++\n },\n complete(): void {\n resolve(createResult(tableSize, columns, tableFactory, tableOptions))\n },\n error(e: Error): void {\n if (e.name === 'AbortError') {\n // eslint-disable-next-line no-console\n console.log('queryTable: request aborted:', e)\n resolve(createResult(tableSize, columns, tableFactory, tableOptions))\n }\n reject(e)\n },\n useCancellable(val: Cancellable): void {\n cancellable = val\n },\n }\n}\n\n/**\n * Transforms annotated CSV query response to Giraffe's FromFluxResult.\n *\n * @param csv - annotated CSV flux query response\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect\n * @returns a new FromFluxResult instance\n */\nexport function csvToFromFluxResult(\n csv: string,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): FromFluxResult {\n let result: FromFluxResult | undefined\n let error: Error | undefined = undefined\n const collector = createCollector(\n r => (result = r),\n /* istanbul ignore next because error is never thrown */\n e => (error = e),\n tableFactory,\n {\n computeFluxGroupKeyUnion: true,\n computeResultColumnNames: true,\n ...tableOptions,\n }\n )\n stringToLines(csv, linesToTables(collector))\n /* istanbul ignore if error is never thrown */\n if (error) {\n throw error\n } else {\n return result as FromFluxResult\n }\n}\n\n/**\n * Transforms annotated CSV query response to Giraffe's Table.\n *\n * @param csv - annotated CSV flux query response\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect.\n * @returns a new Table instance\n */\nexport function csvToTable(\n csv: string,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): Table {\n return csvToFromFluxResult(csv, tableFactory, {\n computeFluxGroupKeyUnion: false,\n ...tableOptions,\n }).table\n}\n","import {ParameterizedQuery, QueryApi} from '@influxdata/influxdb-client'\nimport {Table, FromFluxResult} from '@influxdata/giraffe'\nimport {createCollector, GiraffeTableFactory, TableOptions} from './csvToTable'\n\n/**\n * Executes a flux query and collects results into a Giraffe's Table.\n *\n * @param queryApi - InfluxDB client's QueryApi instance\n * @param query - query to execute\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect.\n * @returns Promise with query results\n */\nexport function queryToTable(\n queryApi: QueryApi,\n query: string | ParameterizedQuery,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): Promise<Table> {\n return new Promise<FromFluxResult>((resolve, reject) => {\n queryApi.queryRows(\n query,\n createCollector(resolve, reject, tableFactory, tableOptions)\n )\n }).then(result => result.table)\n}\n\n/**\n * Executes a flux query and iterrativelly collects results into a Giraffe's FromFluxResult.\n *\n * @param queryApi - InfluxDB client's QueryApi instance\n * @param query - query to execute\n * @param tableFactory - creates a new Giraffe table\n * @param tableOptions - tableOptions allows to filter or even stop the processing of rows, specify maximum rows or restrict the columns to collect\n * @returns a Promise with query results\n */\nexport function queryToFromFluxResult(\n queryApi: QueryApi,\n query: string | ParameterizedQuery,\n tableFactory: GiraffeTableFactory,\n tableOptions?: TableOptions\n): Promise<FromFluxResult> {\n return new Promise<FromFluxResult>((resolve, reject) => {\n queryApi.queryRows(\n query,\n createCollector(resolve, reject, tableFactory, {\n ...tableOptions,\n computeFluxGroupKeyUnion: true,\n })\n )\n })\n}\n"],"names":["r","constructor","this","_reuse","reuse","t","reusedValues","Array","withReuse","splitLine","lastSplitLength","e","s","n","i","length","o","getValue","push","substring","replace","boolean","unsignedLong","long","double","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","string","base64Binary","duration","get","index","defaultValue","dataType","Object","freeze","label","group","MAX_SAFE_INTEGER","l","c","Error","super","name","setPrototypeOf","prototype","v","forEach","columns","column","toObject","R","error","next","a","h","startsWith","slice","O","complete","useCancellable","createResult","tableLength","tableFactory","computeFluxGroupKeyUnion","computeResultColumnNames","table","fluxGroupKeyUnion","resultColumnNames","Set","keys","key","col","multipleTypes","data","addColumn","fluxDataType","type","x","add","from","QUERY_MAX_TABLE_LENGTH","acceptMaxTableLength","max","size","console","log","toValueFn","rowIndex","def","row","val","Date","parse","toGiraffeColumnType","clientType","createCollector","resolve","reject","tableOptions","onlyColumns","accept","options","maxTableLength","undefined","acceptors","isArray","tableMeta","retVal","createAcceptRowFunction","dataColumns","lastTableMeta","cancellable","tableSize","cancel","metaCol","includes","columnKey","existingColumn","toValue","csvToFromFluxResult","csv","result","collector","charCodeAt","stringToLines","linesToTables","csvToTable","assign","queryToTable","queryApi","query","Promise","queryRows","then","queryToFromFluxResult"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@influxdata/influxdb-client-giraffe",
3
- "version": "1.25.0-nightly.1908",
3
+ "version": "1.25.0",
4
4
  "description": "InfluxDB 2.1 client - giraffe integration",
5
5
  "scripts": {
6
6
  "apidoc:extract": "api-extractor run",
@@ -44,7 +44,7 @@
44
44
  "license": "MIT",
45
45
  "devDependencies": {
46
46
  "@influxdata/giraffe": "*",
47
- "@influxdata/influxdb-client": "^1.25.0-nightly.1908",
47
+ "@influxdata/influxdb-client": "^1.25.0",
48
48
  "@microsoft/api-extractor": "^7.18.4",
49
49
  "@rollup/plugin-node-resolve": "^10.0.0",
50
50
  "@rollup/plugin-replace": "^2.3.0",
@@ -76,5 +76,5 @@
76
76
  "ts-node": "^8.5.4",
77
77
  "typescript": "^4.3.5"
78
78
  },
79
- "gitHead": "2cb6e4de1afb08466b558f508caa3d0ba8e9d96c"
79
+ "gitHead": "55cd136a048e2824d62e4b0cdcbeadcd24ad0dc5"
80
80
  }