6 lines
28 KiB
JavaScript
6 lines
28 KiB
JavaScript
"use strict";var influxdb=(()=>{var k=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var De=Object.getOwnPropertyNames;var Ee=Object.prototype.hasOwnProperty;var Pe=(r,e)=>{for(var t in e)k(r,t,{get:e[t],enumerable:!0})},Fe=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of De(e))!Ee.call(r,i)&&i!==t&&k(r,i,{get:()=>e[i],enumerable:!(n=Ae(e,i))||n.enumerable});return r};var Le=r=>Fe(k({},"__esModule",{value:!0}),r);var nt={};Pe(nt,{AbortError:()=>x,DEFAULT_ConnectionOptions:()=>We,DEFAULT_RetryDelayStrategyOptions:()=>Y,DEFAULT_WriteOptions:()=>Z,FLUX_VALUE:()=>D,HttpError:()=>m,IllegalArgumentError:()=>y,InfluxDB:()=>U,LineSplitter:()=>b,Log:()=>p,Point:()=>ue,RequestTimedOutError:()=>v,UNKNOWN_COLUMN:()=>Q,canRetryHttpCall:()=>Be,chunksToLines:()=>R,chunksToLinesIterable:()=>M,consoleLogger:()=>Te,convertTimeToNanos:()=>se,createFluxTableColumn:()=>Ie,createFluxTableMetaData:()=>A,createTextDecoderCombiner:()=>g,currentTime:()=>ne,dateToProtocolTimestamp:()=>ie,escape:()=>w,flux:()=>et,fluxBool:()=>Ze,fluxDateTime:()=>Ge,fluxDuration:()=>Ke,fluxExpression:()=>oe,fluxFloat:()=>qe,fluxInteger:()=>Je,fluxRegExp:()=>Ye,fluxString:()=>je,getRetryDelay:()=>j,isStatusCodeRetriable:()=>pe,linesToRowsIterable:()=>J,linesToTables:()=>V,newFluxTableColumn:()=>S,sanitizeFloat:()=>ae,sanitizeInteger:()=>le,serializeDateTimeAsDate:()=>Me,serializeDateTimeAsNumber:()=>_e,serializeDateTimeAsString:()=>Ve,setLogger:()=>Ne,stringToLines:()=>ze,symbolObservable:()=>X,toFluxValue:()=>H,typeSerializers:()=>C,useProcessHrtime:()=>we});function g(){let r=new TextDecoder("utf-8");return{concat(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n},copy(e,t,n){let i=new Uint8Array(n-t);return i.set(e.subarray(t,n)),i},toUtf8String(e,t,n){return r.decode(e.subarray(t,n))}}}function R(r,e){let t=e!=null?e:g(),n,i=!1,s=!1,o=!1,a;function f(l){let c,d=0;for(n?(c=l.length===0?0:n.length,l=t.concat(n,l)):c=0;c<l.length;){let T=l[c];if(T===10){if(!s){let $=c>0&&l[c-1]===13?c-1:c;if(i)return;if(o=r.next(t.toUtf8String(l,d,$))===!1,d=c+1,o)break}}else T===34&&(s=!s);c++}if(d<l.length?n=t.copy(l,d,l.length):n=void 0,o){if(r.useResume){r.useResume(()=>{o=!1,f(new Uint8Array(0))});return}u.error(new Error("Unable to pause, useResume is not configured!")),o=!1}a&&(a(),a=void 0)}let u={next(l){if(!i)try{return f(l),!o}catch(c){this.error(c)}return!0},error(l){i||(i=!0,r.error(l))},complete(){i||(n&&r.next(t.toUtf8String(n,0,n.length)),i=!0,r.complete())}};return r.useCancellable&&(u.useCancellable=l=>{r.useCancellable&&r.useCancellable({cancel(){l.cancel(),n=void 0,u.complete()},isCancelled(){return l.isCancelled()}})}),r.useResume&&(u.useResume=l=>{a=l}),u}async function*M(r,e){let t=e!=null?e:g(),n,i=!1;for await(let s of r){let o,a=0;for(n?(o=n.length,s=t.concat(n,s)):o=0;o<s.length;){let f=s[o];if(f===10){if(!i){let u=o>0&&s[o-1]===13?o-1:o;yield t.toUtf8String(s,a,u),a=o+1}}else f===34&&(i=!i);o++}a<s.length?n=t.copy(s,a,s.length):n=void 0}n&&(yield t.toUtf8String(n,0,n.length))}var b=class{constructor(){this._reuse=!1}get reuse(){return this._reuse}set reuse(e){e&&!this.reusedValues&&(this.reusedValues=new Array(10)),this._reuse=e}withReuse(){return this.reuse=!0,this}splitLine(e){if(e==null)return this.lastSplitLength=0,[];let t=0,n=0,i=this._reuse?this.reusedValues:[],s=0;for(let a=0;a<e.length;a++){let f=e[a];if(f===","){if(t%2===0){let u=this.getValue(e,n,a,t);this._reuse?i[s++]=u:i.push(u),n=a+1,t=0}}else f==='"'&&t++}let o=this.getValue(e,n,e.length,t);return this._reuse?(i[s]=o,this.lastSplitLength=s+1):(i.push(o),this.lastSplitLength=i.length),i}getValue(e,t,n,i){return t===e.length?"":i===0?e.substring(t,n):i===2?e.substring(t+1,n-1):e.substring(t+1,n-1).replace(/""/gi,'"')}};var N=r=>r,C={boolean:r=>r===""?null:r==="true",unsignedLong:r=>r===""?null:+r,long:r=>r===""?null:+r,double(r){switch(r){case"":return null;case"+Inf":return Number.POSITIVE_INFINITY;case"-Inf":return Number.NEGATIVE_INFINITY;default:return+r}},string:N,base64Binary:N,duration:r=>r===""?null:r,"dateTime:RFC3339":r=>r===""?null:r},_=class{get(e){var n;let t=e[this.index];return(t===""||t===void 0)&&this.defaultValue&&(t=this.defaultValue),((n=C[this.dataType])!=null?n:N)(t)}},Q=Object.freeze({label:"",dataType:"",group:!1,defaultValue:"",index:Number.MAX_SAFE_INTEGER,get:()=>{}});function S(){return new _}function Ie(r){var t,n;let e=new _;return e.label=String(r.label),e.dataType=r.dataType,e.group=Boolean(r.group),e.defaultValue=(t=r.defaultValue)!=null?t:"",e.index=(n=r.index)!=null?n:0,e}var Ue=[404,408,425,429,500,502,503,504];function pe(r){return Ue.includes(r)}var y=class extends Error{constructor(e){super(e),this.name="IllegalArgumentError",Object.setPrototypeOf(this,y.prototype)}},m=class extends Error{constructor(t,n,i,s,o,a){super();this.statusCode=t;this.statusMessage=n;this.body=i;this.contentType=o;if(Object.setPrototypeOf(this,m.prototype),a)this.message=a;else if(i){if(o!=null&&o.startsWith("application/json"))try{this.json=JSON.parse(i),this.message=this.json.message,this.code=this.json.code}catch(f){}this.message||(this.message=`${t} ${n} : ${i}`)}else this.message=`${t} ${n}`;this.name="HttpError",this.setRetryAfter(s)}setRetryAfter(t){typeof t=="string"?/^[0-9]+$/.test(t)?this._retryAfter=parseInt(t):this._retryAfter=0:this._retryAfter=0}canRetry(){return pe(this.statusCode)}retryAfter(){return this._retryAfter}},$e=["ECONNRESET","ENOTFOUND","ESOCKETTIMEDOUT","ETIMEDOUT","ECONNREFUSED","EHOSTUNREACH","EPIPE"];function Be(r){if(r){if(typeof r.canRetry=="function")return!!r.canRetry();if(r.code&&$e.includes(r.code))return!0}else return!1;return!1}function j(r,e){if(r){let t;return typeof r.retryAfter=="function"?r.retryAfter():(t=0,e&&e>0?t+Math.round(Math.random()*e):t)}else return 0}var v=class extends Error{constructor(){super(),Object.setPrototypeOf(this,v.prototype),this.name="RequestTimedOutError",this.message="Request timed out"}canRetry(){return!0}retryAfter(){return 0}},x=class extends Error{constructor(){super(),this.name="AbortError",Object.setPrototypeOf(this,x.prototype),this.message="Response aborted"}canRetry(){return!0}retryAfter(){return 0}};function Me(){C["dateTime:RFC3339"]=r=>r===""?null:new Date(Date.parse(r))}function _e(){C["dateTime:RFC3339"]=r=>r===""?null:Date.parse(r)}function Ve(){C["dateTime:RFC3339"]=r=>r===""?null:r}var q=class{constructor(e){e.forEach((t,n)=>t.index=n),this.columns=e}column(e,t=!0){for(let n=0;n<this.columns.length;n++){let i=this.columns[n];if(i.label===e)return i}if(t)throw new y(`Column ${e} not found!`);return Q}toObject(e){let t={};for(let n=0;n<this.columns.length&&n<e.length;n++){let i=this.columns[n];t[i.label]=i.get(e)}return t}get(e,t){return this.column(t,!1).get(e)}};function A(r){return new q(r)}function V(r){let e=new b().withReuse(),t,n=!0,i=0,s,o={error(a){r.error(a)},next(a){if(a==="")n=!0,t=void 0;else{let f=e.splitLine(a),u=e.lastSplitLength;if(n){if(!t){t=new Array(u);for(let l=0;l<u;l++)t[l]=S()}if(f[0].startsWith("#")){if(f[0]==="#datatype")for(let l=1;l<u;l++)t[l].dataType=f[l];else if(f[0]==="#default")for(let l=1;l<u;l++)t[l].defaultValue=f[l];else if(f[0]==="#group")for(let l=1;l<u;l++)t[l].group=f[l][0]==="t"}else{f[0]===""?(i=1,t=t.slice(1)):i=0;for(let l=i;l<u;l++)t[l-i].label=f[l];s=A(t),n=!1}}else return r.next(f.slice(i,u),s)}return!0},complete(){r.complete()}};return r.useCancellable&&(o.useCancellable=r.useCancellable.bind(r)),r.useResume&&(o.useResume=r.useResume.bind(r)),o}async function*J(r){let e=new b().withReuse(),t,n=!0,i=0,s;for await(let o of r)if(o==="")n=!0,t=void 0;else{let a=e.splitLine(o),f=e.lastSplitLength;if(n){if(!t){t=new Array(f);for(let u=0;u<f;u++)t[u]=S()}if(a[0].startsWith("#")){if(a[0]==="#datatype")for(let u=1;u<f;u++)t[u].dataType=a[u];else if(a[0]==="#default")for(let u=1;u<f;u++)t[u].defaultValue=a[u];else if(a[0]==="#group")for(let u=1;u<f;u++)t[u].group=a[u][0]==="t"}else{a[0]===""?(i=1,t=t.slice(1)):i=0;for(let u=i;u<f;u++)t[u-i].label=a[u];s=A(t),n=!1}}else yield{values:a.slice(i,f),tableMeta:s}}}function ze(r,e){let t=!1,n=0,i=0;for(;i<r.length;){let s=r.charCodeAt(i);if(s===10){if(!t){let o=i>0&&r.charCodeAt(i-1)===13?i-1:i;e.next(r.substring(n,o)),n=i+1}}else s===34&&(t=!t);i++}n<i&&e.next(r.substring(n,i)),e.complete()}var X=(()=>typeof Symbol=="function"&&Symbol.observable||"@@observable")();var K=class{constructor(e,t){this.isClosed=!1;try{t({next:n=>{e.next(n)},error:n=>{this.isClosed=!0,e.error(n)},complete:()=>{this.isClosed=!0,e.complete()},useCancellable:n=>{this.cancellable=n}})}catch(n){this.isClosed=!0,e.error(n)}}get closed(){return this.isClosed}unsubscribe(){var e;(e=this.cancellable)==null||e.cancel(),this.isClosed=!0}};function G(){}function He(r){let{next:e,error:t,complete:n}=r;return{next:e?e.bind(r):G,error:t?t.bind(r):G,complete:n?n.bind(r):G}}var O=class{constructor(e,t){this.executor=e;this.decorator=t}subscribe(e,t,n){let i=He(typeof e!="object"||e===null?{next:e,error:t,complete:n}:e);return new K(this.decorator(i),this.executor)}[X](){return this}};Symbol.observable;var We={timeout:1e4},Y={retryJitter:200,minRetryDelay:5e3,maxRetryDelay:125e3,exponentialBase:5,randomRetry:!0},Z={batchSize:1e3,maxBatchBytes:5e7,flushInterval:6e4,writeFailed:function(){},writeSuccess:function(){},writeRetrySkipped:function(){},maxRetries:5,maxRetryTime:18e4,maxBufferLines:32e3,retryJitter:200,minRetryDelay:5e3,maxRetryDelay:125e3,exponentialBase:2,gzipThreshold:1e3,randomRetry:!0};function ee(r,e){return function(t){let n="",i=0,s=0;for(;s<t.length;){let o=r.indexOf(t[s]);o>=0&&(n+=t.substring(i,s),n+=e[o],i=s+1),s++}return i==0?t:(i<t.length&&(n+=t.substring(i,t.length)),n)}}function ke(r,e){let t=ee(r,e);return n=>'"'+t(n)+'"'}var w={measurement:ee(`,
|
|
\r `,["\\,","\\ ","\\n","\\r","\\t"]),quoted:ke('"\\',['\\"',"\\\\"]),tag:ee(`, =
|
|
\r `,["\\,","\\ ","\\=","\\n","\\r","\\t"])};var xe="000000000";function we(r){return!1}we(!0);var he=Date.now(),te=0;function re(){{let r=Date.now();r!==he?(he=r,te=0):te++;let e=String(te);return String(r)+xe.substr(0,6-e.length)+e}}function ye(){return String(Date.now())+xe.substr(0,3)}function ge(){return String(Date.now())}function be(){return String(Math.floor(Date.now()/1e3))}var ne={s:be,ms:ge,us:ye,ns:re,seconds:be,millis:ge,micros:ye,nanos:re},ie={s:r=>`${Math.floor(r.getTime()/1e3)}`,ms:r=>`${r.getTime()}`,us:r=>`${r.getTime()}000`,ns:r=>`${r.getTime()}000000`};function se(r){return r===void 0?re():typeof r=="string"?r.length>0?r:void 0:r instanceof Date?`${r.getTime()}000000`:String(typeof r=="number"?Math.floor(r):r)}var Te={error(r,e){console.error("ERROR: "+r,e||"")},warn(r,e){console.warn("WARN: "+r,e||"")}},z=Te,p={error(r,e){z.error(r,e)},warn(r,e){z.warn(r,e)}};function Ne(r){let e=z;return z=r,e}var D=Symbol("FLUX_VALUE"),h=class{constructor(e){this.fluxValue=e}toString(){return this.fluxValue}[D](){return this.fluxValue}};function Qe(r){return typeof r=="object"&&typeof r[D]=="function"}function E(r){if(r==null)return"";r=r.toString();let e,t=0;function n(){e===void 0&&(e=r.substring(0,t))}for(;t<r.length;t++){let i=r.charAt(t);switch(i){case"\r":n(),e+="\\r";break;case`
|
|
`:n(),e+="\\n";break;case" ":n(),e+="\\t";break;case'"':case"\\":n(),e=e+"\\"+i;break;case"$":if(t+1<r.length&&r.charAt(t+1)==="{"){n(),t++,e+="\\${";break}e!=null&&(e+=i);break;default:e!=null&&(e+=i)}}return e!==void 0?e:r}function je(r){return new h(`"${E(r)}"`)}function ae(r){let e=Number(r);if(!isFinite(e)){if(typeof r=="number")return`float(v: "${e}")`;throw new Error(`not a flux float: ${r}`)}let t=e.toString(),n=!1;for(let i of t)if(!(i>="0"&&i<="9"||i=="-")){if(i==="."){n=!0;continue}return`float(v: "${t}")`}return n?t:t+".0"}function qe(r){return new h(ae(r))}function le(r){let e=String(r),t=e.startsWith("-"),n=t?e.substring(1):e;if(n.length===0||n.length>19)throw new Error(`not a flux integer: ${e}`);for(let i of n)if(i<"0"||i>"9")throw new Error(`not a flux integer: ${e}`);if(n.length===19){if(t&&n>"9223372036854775808")throw new Error(`flux integer out of bounds: ${e}`);if(!t&&n>"9223372036854775807")throw new Error(`flux integer out of bounds: ${e}`)}return e}function Je(r){return new h(le(r))}function Xe(r){return`time(v: "${E(r)}")`}function Ge(r){return new h(Xe(r))}function Ke(r){return new h(`duration(v: "${E(r)}")`)}function Re(r){return r instanceof RegExp?r.toString():new RegExp(r).toString()}function Ye(r){return new h(Re(r))}function Ze(r){return r==="true"||r==="false"?new h(r):new h((!!r).toString())}function oe(r){return new h(String(r))}function H(r){if(r===void 0)return"";if(r===null)return"null";if(typeof r=="boolean")return r.toString();if(typeof r=="string")return`"${E(r)}"`;if(typeof r=="number")return Number.isSafeInteger(r)?le(r):ae(r);if(typeof r=="object"){if(typeof r[D]=="function")return r[D]();if(r instanceof Date)return r.toISOString();if(r instanceof RegExp)return Re(r);if(Array.isArray(r))return`[${r.map(H).join(",")}]`}else if(typeof r=="bigint")return`${r}.0`;return H(r.toString())}function et(r,...e){if(r.length==1&&e.length===0)return oe(r[0]);let t=new Array(r.length+e.length),n=0;for(let i=0;i<r.length;i++){let s=r[i];if(t[n++]=s,i<e.length){let o=e[i],a;if(s.endsWith('"')&&i+1<r.length&&r[i+1].startsWith('"'))a=E(o);else if(a=H(o),a===""&&!Qe(o))throw new Error(`Unsupported parameter literal '${o}' at index: ${i}, type: ${typeof o}`);t[n++]=a}else if(i<r.length-1)throw new Error("Too few parameters supplied!")}return oe(t.join(""))}var ue=class{constructor(e){this.tags={};this.fields={};e&&(this.name=e)}measurement(e){return this.name=e,this}tag(e,t){return this.tags[e]=t,this}booleanField(e,t){return this.fields[e]=t?"T":"F",this}intField(e,t){let n;if(typeof t=="number"?n=t:n=parseInt(String(t)),isNaN(n)||n<=-9223372036854776e3||n>=9223372036854776e3)throw new Error(`invalid integer value for field '${e}': '${t}'!`);return this.fields[e]=`${Math.floor(n)}i`,this}uintField(e,t){if(typeof t=="number"){if(isNaN(t)||t<0||t>Number.MAX_SAFE_INTEGER)throw new Error(`uint value for field '${e}' out of range: ${t}`);this.fields[e]=`${Math.floor(t)}u`}else{let n=String(t);for(let i=0;i<n.length;i++){let s=n.charCodeAt(i);if(s<48||s>57)throw new Error(`uint value has an unsupported character at pos ${i}: ${t}`)}if(n.length>20||n.length===20&&n.localeCompare("18446744073709551615")>0)throw new Error(`uint value for field '${e}' out of range: ${n}`);this.fields[e]=`${n}u`}return this}floatField(e,t){let n;if(typeof t=="number"?n=t:n=parseFloat(t),!isFinite(n))throw new Error(`invalid float value for field '${e}': ${t}`);return this.fields[e]=String(n),this}stringField(e,t){return t!=null&&(typeof t!="string"&&(t=String(t)),this.fields[e]=w.quoted(t)),this}timestamp(e){return this.time=e,this}toLineProtocol(e){if(!this.name)return;let t="";if(Object.keys(this.fields).sort().forEach(o=>{if(o){let a=this.fields[o];t.length>0&&(t+=","),t+=`${w.tag(o)}=${a}`}}),t.length===0)return;let n="",i=e&&e.defaultTags?{...e.defaultTags,...this.tags}:this.tags;Object.keys(i).sort().forEach(o=>{if(o){let a=i[o];a&&(n+=",",n+=`${w.tag(o)}=${w.tag(a)}`)}});let s=this.time;return e&&e.convertTime?s=e.convertTime(s):s=se(s),`${w.measurement(this.name)}${n} ${t}${s!==void 0?" "+s:""}`}toString(){let e=this.toLineProtocol(void 0);return e||`invalid point: ${JSON.stringify(this,void 0)}`}};var fe=class{constructor(e){this.options={...Y,...e},this.success()}nextDelay(e,t){let n=j(e);if(n&&n>0)return n+Math.round(Math.random()*this.options.retryJitter);if(t&&t>0){if(this.options.randomRetry){let s=Math.max(this.options.minRetryDelay,1),o=s*this.options.exponentialBase;for(let a=1;a<t;a++)if(s=o,o=o*this.options.exponentialBase,o>=this.options.maxRetryDelay){o=this.options.maxRetryDelay;break}return s+Math.round(Math.random()*(o-s)+Math.random()*this.options.retryJitter)}let i=Math.max(this.options.minRetryDelay,1);for(let s=1;s<t;s++)if(i=i*this.options.exponentialBase,i>=this.options.maxRetryDelay){i=this.options.maxRetryDelay;break}return i+Math.round(Math.random()*this.options.retryJitter)}else 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);return this.currentDelay}success(){this.currentDelay=void 0}};function Ce(r){return new fe(r)}function tt(r){let e,t=r,n=r;for(;n.next;)n.next.expires<t.expires&&(e=n,t=n.next),n=n.next;return[t,e]}var P=class{constructor(e,t,n=()=>{}){this.maxLines=e;this.retryLines=t;this.onShrink=n;this.size=0;this.closed=!1;this._timeoutHandle=void 0}addLines(e,t,n,i){if(this.closed||!e.length)return;let s=Date.now()+n;if(i<s&&(s=i),this.first&&this.size+e.length>this.maxLines){let u=this.size,l=u*.7;do{let[c,d]=tt(this.first);this.size-=c.lines.length,d?d.next=c.next:(this.first=c.next,this.first&&this.scheduleRetry(this.first.retryTime-Date.now())),c.next=void 0,this.onShrink(c)}while(this.first&&this.size+e.length>l);p.error(`RetryBuffer: ${u-this.size} oldest lines removed to keep buffer size under the limit of ${this.maxLines} lines.`)}let o={lines:e,retryCount:t,retryTime:s,expires:i},a=this.first,f;for(;;){if(!a||a.retryTime>s){o.next=a,f?f.next=o:(this.first=o,this.scheduleRetry(s-Date.now()));break}f=a,a=a.next}this.size+=e.length}removeLines(){if(this.first){let e=this.first;return this.first=this.first.next,e.next=void 0,this.size-=e.lines.length,e}}scheduleRetry(e){this._timeoutHandle&&clearTimeout(this._timeoutHandle),this._timeoutHandle=setTimeout(()=>{let t=this.removeLines();t?this.retryLines(t.lines,t.retryCount,t.expires).catch(()=>{}).finally(()=>{this.first&&this.scheduleRetry(this.first.retryTime-Date.now())}):this._timeoutHandle=void 0},Math.max(e,0))}async flush(){let e;for(;e=this.removeLines();)await this.retryLines(e.lines,e.retryCount,e.expires)}close(){return this._timeoutHandle&&(clearTimeout(this._timeoutHandle),this._timeoutHandle=void 0),this.closed=!0,this.size}};function ce(r){let e=r.length;for(let t=0;t<r.length;t++){let n=r.charCodeAt(t);n<128||(n>=128&&n<=2047?e++:n>=2048&&n<=65535?n>=55296&&n<=57343?e++:e+=2:e+=3)}return e}var de=class{constructor(e,t,n,i){this.maxChunkRecords=e;this.maxBatchBytes=t;this.flushFn=n;this.scheduleSend=i;this.length=0;this.bytes=-1;this.lines=new Array(e)}add(e){let t=ce(e);this.length===0?this.scheduleSend():this.bytes+t+1>=this.maxBatchBytes&&this.flush().catch(n=>{}),this.lines[this.length]=e,this.length++,this.bytes+=t+1,(this.length>=this.maxChunkRecords||this.bytes>=this.maxBatchBytes)&&this.flush().catch(n=>{})}flush(){let e=this.reset();return e.length>0?this.flushFn(e):Promise.resolve()}reset(){let e=this.lines.slice(0,this.length);return this.length=0,this.bytes=-1,e}},F=class{constructor(e,t,n,i,s){this.transport=e;this.closed=!1;this._timeoutHandle=void 0;this.path=`/api/v2/write?org=${encodeURIComponent(t)}&bucket=${encodeURIComponent(n)}&precision=${i}`,s!=null&&s.consistency&&(this.path+=`&consistency=${encodeURIComponent(s.consistency)}`),this.writeOptions={...Z,...s},this.currentTime=ne[i],this.dateToProtocolTimestamp=ie[i],this.writeOptions.defaultTags&&this.useDefaultTags(this.writeOptions.defaultTags),this.sendOptions={method:"POST",headers:{"content-type":"text/plain; charset=utf-8",...s==null?void 0:s.headers},gzipThreshold:this.writeOptions.gzipThreshold};let o=()=>{this.writeOptions.flushInterval>0&&(this._clearFlushTimeout(),this.closed||(this._timeoutHandle=setTimeout(()=>this.sendBatch(this.writeBuffer.reset(),this.writeOptions.maxRetries).catch(a=>{}),this.writeOptions.flushInterval)))};this.writeBuffer=new de(this.writeOptions.batchSize,this.writeOptions.maxBatchBytes,a=>(this._clearFlushTimeout(),this.sendBatch(a,this.writeOptions.maxRetries)),o),this.sendBatch=this.sendBatch.bind(this),this.retryStrategy=Ce(this.writeOptions),this.retryBuffer=new P(this.writeOptions.maxBufferLines,this.sendBatch,this.writeOptions.writeRetrySkipped)}sendBatch(e,t,n=Date.now()+this.writeOptions.maxRetryTime){let i=this,s=i.writeOptions.maxRetries+1-t;if(!this.closed&&e.length>0){if(n<=Date.now()){let o=new Error("Max retry time exceeded."),a=i.writeOptions.writeFailed.call(i,o,e,s,n);return a||(p.error(`Write to InfluxDB failed (attempt: ${s}).`,o),Promise.reject(o))}return new Promise((o,a)=>{let f,u={responseStarted(l,c){f=c},error(l){let c=i.writeOptions.writeFailed.call(i,l,e,s,n);if(c){c.then(o,a);return}if(l instanceof m&&l.json&&typeof l.json.error=="string"&&l.json.error.includes("hinted handoff queue not empty")){p.warn("Write to InfluxDB returns: "+l.json.error),f=204,u.complete();return}if(!i.closed&&t>0&&(!(l instanceof m)||l.statusCode>=429)){p.warn(`Write to InfluxDB failed (attempt: ${s}).`,l),i.retryBuffer.addLines(e,t-1,i.retryStrategy.nextDelay(l,s),n),a(l);return}p.error("Write to InfluxDB failed.",l),a(l)},complete(){if(f==204||f==null)i.writeOptions.writeSuccess.call(i,e),i.retryStrategy.success(),o();else{let l=`204 HTTP response status code expected, but ${f} returned`,c=new m(f,l,void 0,"0");c.message=l,u.error(c)}}};this.transport.send(this.path,e.join(`
|
|
`),this.sendOptions,u)})}else return Promise.resolve()}_clearFlushTimeout(){this._timeoutHandle!==void 0&&(clearTimeout(this._timeoutHandle),this._timeoutHandle=void 0)}writeRecord(e){if(this.closed)throw new Error("writeApi: already closed!");this.writeBuffer.add(e)}writeRecords(e){if(this.closed)throw new Error("writeApi: already closed!");for(let t=0;t<e.length;t++)this.writeBuffer.add(e[t])}writePoint(e){if(this.closed)throw new Error("writeApi: already closed!");let t=e.toLineProtocol(this);t&&this.writeBuffer.add(t)}writePoints(e){if(this.closed)throw new Error("writeApi: already closed!");for(let t=0;t<e.length;t++){let n=e[t].toLineProtocol(this);n&&this.writeBuffer.add(n)}}async flush(e){if(await this.writeBuffer.flush(),e)return await this.retryBuffer.flush()}close(){return this.writeBuffer.flush().finally(()=>{let t=this.retryBuffer.close();t&&p.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(e){return this.defaultTags=e,this}convertTime(e){return e===void 0?this.currentTime():typeof e=="string"?e.length>0?e:void 0:e instanceof Date?this.dateToProtocolTimestamp(e):String(typeof e=="number"?Math.floor(e):e)}};function me(r={}){let e=0,t={next:n=>{if(e===0&&r.next&&n!==null&&n!==void 0)return r.next(n)},error:n=>{e===0&&(e=1,r.error&&r.error(n))},complete:()=>{e===0&&(e=2,r.complete&&r.complete())},responseStarted:(n,i)=>{r.responseStarted&&r.responseStarted(n,i)}};return r.useCancellable&&(t.useCancellable=r.useCancellable.bind(r)),r.useResume&&(t.useResume=r.useResume.bind(r)),t}function Oe(r){let e={};return r.headers.forEach((t,n)=>{let i=e[n];i===void 0?e[n]=t:Array.isArray(i)?i.push(t):e[n]=[i,t]}),e}var L=class{constructor(e){this.connectionOptions=e;this.chunkCombiner=g();this.requestDecorator=function(){};this.defaultHeaders={"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-7),p.warn(`Please remove '/api/v2' context path from InfluxDB base url, using ${this.url} !`))}send(e,t,n,i){let s=me(i),o=!1,a=n.signal,f,u=()=>{},l=u;if(i&&i.useCancellable){let c=new AbortController;a||(a=c.signal,n={...n,signal:a}),a.addEventListener("abort",()=>{l()}),i.useCancellable({cancel(){o=!0,c.abort()},isCancelled(){return o||a.aborted}})}this.fetch(e,t,n).then(async c=>{if(i!=null&&i.responseStarted&&s.responseStarted(Oe(c),c.status),await this.throwOnErrorResponse(c),c.body){let d=c.body.getReader(),T;do{if(f&&await f,o)break;if(T=await d.read(),s.next(T.value)===!1){let $=s.useResume;if(!$){let B="Unable to pause, useResume is not configured!";return await d.cancel(B),Promise.reject(new Error(B))}f=new Promise(B=>{l=()=>{B(),f=void 0,l=u},$(l)})}}while(!T.done)}else if(c.arrayBuffer){let d=await c.arrayBuffer();s.next(new Uint8Array(d))}else{let d=await c.text();s.next(new TextEncoder().encode(d))}}).catch(c=>{o||s.error(c)}).finally(()=>s.complete())}async throwOnErrorResponse(e){if(e.status>=300){let t="";try{if(t=await e.text(),!t){let n=e.headers.get("x-influxdb-error");n&&(t=n)}}catch(n){throw p.warn("Unable to receive error body",n),new m(e.status,e.statusText,void 0,e.headers.get("retry-after"),e.headers.get("content-type"))}throw new m(e.status,e.statusText,t,e.headers.get("retry-after"),e.headers.get("content-type"))}}async*iterate(e,t,n){var s;let i=await this.fetch(e,t,n);if(await this.throwOnErrorResponse(i),i.body){let o=i.body.getReader();for(;;){let{value:a,done:f}=await o.read();if(f)break;if((s=n.signal)!=null&&s.aborted)throw await i.body.cancel(),new x;yield a}}else if(i.arrayBuffer){let o=await i.arrayBuffer();yield new Uint8Array(o)}else{let o=await i.text();yield new TextEncoder().encode(o)}}async request(e,t,n,i){var u,l;let s=await this.fetch(e,t,n),{headers:o}=s,a=o.get("content-type")||"";i&&i(Oe(s),s.status),await this.throwOnErrorResponse(s);let f=(l=(u=n.headers)==null?void 0:u.accept)!=null?l:a;if(f.includes("json"))return await s.json();if(f.includes("text")||f.startsWith("application/csv"))return await s.text()}fetch(e,t,n){let{method:i,headers:s,...o}=n,a=`${this.url}${e}`,f={method:i,body:i==="GET"||i==="HEAD"?void 0:typeof t=="string"?t:JSON.stringify(t),headers:{...this.defaultHeaders,...s},credentials:"omit",...this.connectionOptions.transportOptions,...o};return this.requestDecorator(f,n,a),fetch(a,f)}};var Se={header:!0,delimiter:",",quoteChar:'"',commentPrefix:"#",annotations:["datatype","group","default"]},I=class{constructor(e,t,n){this.transport=e;this.createCSVResponse=t;this.options=typeof n=="string"?{org:n}:n}with(e){return new I(this.transport,this.createCSVResponse,{...this.options,...e})}response(e){let{org:t,type:n,gzip:i,headers:s}=this.options,o=`/api/v2/query?org=${encodeURIComponent(t)}`,a=JSON.stringify(this.decorateRequest({query:e.toString(),dialect:Se,type:n})),f={method:"POST",headers:{"content-type":"application/json; encoding=utf-8","accept-encoding":i?"gzip":"identity",...s}};return this.createCSVResponse(u=>this.transport.send(o,a,f,u),()=>this.transport.iterate(o,a,f))}iterateLines(e){return this.response(e).iterateLines()}iterateRows(e){return this.response(e).iterateRows()}lines(e){return this.response(e).lines()}rows(e){return this.response(e).rows()}queryLines(e,t){return this.response(e).consumeLines(t)}queryRows(e,t){return this.response(e).consumeRows(t)}collectRows(e,t){return this.response(e).collectRows(t)}collectLines(e){return this.response(e).collectLines()}queryRaw(e){let{org:t,type:n,gzip:i,headers:s}=this.options;return this.transport.request(`/api/v2/query?org=${encodeURIComponent(t)}`,JSON.stringify(this.decorateRequest({query:e.toString(),dialect:Se,type:n})),{method:"POST",headers:{accept:"text/csv","accept-encoding":i?"gzip":"identity","content-type":"application/json; encoding=utf-8",...s}})}decorateRequest(e){var t;return typeof this.options.now=="function"&&(e.now=this.options.now()),e.type=(t=this.options.type)!=null?t:"flux",e}},ve=I;function rt(r,e){return e.toObject(r)}var W=class{constructor(e,t,n){this.executor=e;this.iterableResultExecutor=t;this.chunkCombiner=n}iterateLines(){return M(this.iterableResultExecutor())}iterateRows(){return J(M(this.iterableResultExecutor()))}lines(){return new O(this.executor,e=>R(e,this.chunkCombiner))}rows(){return new O(this.executor,e=>R(V({next(t,n){e.next({values:t,tableMeta:n})},error(t){e.error(t)},complete(){e.complete()}}),this.chunkCombiner))}consumeLines(e){this.executor(R(e,this.chunkCombiner))}consumeRows(e){this.executor(R(V(e),this.chunkCombiner))}collectRows(e=rt){let t=[];return new Promise((n,i)=>{this.consumeRows({next(s,o){let a=e.call(this,s,o);a!==void 0&&t.push(a)},error(s){i(s)},complete(){n(t)}})})}collectLines(){let e=[];return new Promise((t,n)=>{this.consumeLines({next(i){e.push(i)},error(i){n(i)},complete(){t(e)}})})}};var U=class{constructor(e){var n;if(typeof e=="string")this._options={url:e};else if(e!==null&&typeof e=="object")this._options=e;else throw new y("No url or configuration specified!");let t=this._options.url;if(typeof t!="string")throw new y("No url specified!");t.endsWith("/")&&(this._options.url=t.substring(0,t.length-1)),this.transport=(n=this._options.transport)!=null?n:new L(this._options),this.processCSVResponse=(i,s)=>new W(i,s,this.transport.chunkCombiner)}getWriteApi(e,t,n="ns",i){return new F(this.transport,e,t,n,i!=null?i:this._options.writeOptions)}getQueryApi(e){return new ve(this.transport,this.processCSVResponse,e)}};return Le(nt);})();
|
|
//# sourceMappingURL=influxdb.js.map
|