griddo-sdk 2.0.3 → 2.0.4-rc.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 +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -59,7 +59,7 @@ Mapping modules ${r} from ${i?.template||"all"} pages with callback function ${e
|
|
|
59
59
|
Mapping ${r||"all"} structured data with callback function ${e.name}...`),He.checkCallbackStructureData(e,"StructuredDataFacade.updateStructuredData");let n=await this._structuredData(r,i?.toString());if(!n?.length){this.loggingService.verbose("- No structured data found.");return}let o=n.map(A=>this.concurrencyLimiter.run(async()=>{let c=structuredClone(A),l=await e(c);l&&JSON.stringify(A)!==JSON.stringify(l)&&await this.save(l)}));await Promise.allSettled(o)}};var Za=class{constructor(e,r,i){if(!e||!r)throw new vi({context:"AuthService.constructor",error:Si.REQUIRED_AUTHENTICATION_PROPERTIES.message,detail:Si.REQUIRED_AUTHENTICATION_PROPERTIES});this.authService=e,this.configService=r,this.loggingService=i}async authenticate(){this.loggingService.verbose("Logging to API...");let e=await this.authService.authenticate();if(!e?.token)throw new vi({context:"AuthService.authenticate",error:e,detail:Si.AUTHENTICATION_ERROR});return this.loggingService.verbose("Authenticated."),e}async connect(){let e=this.configService.getEnvironment(),{api:r,publicApi:i}=e,{token:n}=await this.authenticate(),o=r.endsWith("/")?r.slice(0,-1):r,A=i&&(i.endsWith("/")?i.slice(0,-1):i),c={...e,api:o,publicApi:A,token:n};this.configService.setEnvironment(c)}};var xn=(i=>(i.FETCH="fetch",i.NODE_FETCH="node-fetch",i.UNDICI="undici",i))(xn||{}),ve=(o=>(o.GET="GET",o.POST="POST",o.PUT="PUT",o.DELETE="DELETE",o.PATCH="PATCH",o))(ve||{}),Ru=(o=>(o.ACTIVE="active",o.UPLOAD_PENDING="upload-pending",o.OFFLINE="offline",o.OFFLINE_PENDING="offline-pending",o.SCHEDULED="scheduled",o))(Ru||{});var Ka=class{constructor(e){this.client=e}async get(e,r){return this.handleRequest(()=>this.client.get(e,r),e,"GET")}async post(e,r,i){return this.handleRequest(()=>this.client.post(e,r,i),e,"POST")}async put(e,r,i){return this.handleRequest(()=>this.client.put(e,r,i),e,"PUT")}async delete(e,r){return this.handleRequest(()=>this.client.delete(e,r),e,"DELETE")}async request(e,r){return this.handleRequest(()=>this.client.request(e,r),e,r.method)}async handleRequest(e,r,i){try{return await e()}catch(n){throw new vi({context:`HttpClientErrorHandler.${i} - ${r}`,error:n,detail:Si.ERROR_DURING_FETCH_HTTP_CLIENT_REQUEST})}}};var Xa=class{constructor(e,r){this.client=e;this.loggingService=r}async request(e,r){this.loggingService.log(`[HttpClientLogger] Request: ${r.method} ${e}`,r);let i=Date.now(),n=await this.client.request(e,r),o=Date.now()-i;return this.loggingService.log(`[HttpClientLogger] Response (${o}ms):`,n),n}async get(e,r){return this.request(e,{...r,method:"GET"})}async post(e,r,i){return this.request(e,{...i,method:"POST",body:r})}async put(e,r,i){return this.request(e,{...i,method:"PUT",body:r})}async delete(e,r){return this.request(e,{...r,method:"DELETE"})}};var $a=class{constructor(e,r,i=3,n=500){this.client=e,this.loggingService=r,this.retries=i,this.delay=n}async wait(e){return new Promise(r=>setTimeout(r,e))}async executeWithRetry(e,r,i){let n=0,o;for(;n<this.retries;)try{return await e()}catch(A){o=A,n++;let c=this.delay*n;if(this.loggingService.logError(`[HttpClientRetry] Error in ${i} ${r}, attempt ${n}/${this.retries}. Retrying in ${c}ms`,A),n>=this.retries)throw this.loggingService.logError(`[HttpClientRetry] Final failure after ${n} attempts for ${i} ${r}`,A),A;await this.wait(c)}throw o??new Error("Unexpected retry failure")}async request(e,r){return this.executeWithRetry(()=>this.client.request(e,r),e,r.method)}async get(e,r){return this.request(e,{...r,method:"GET"})}async post(e,r,i){return this.request(e,{...i,method:"POST",body:r})}async put(e,r,i){return this.request(e,{...i,method:"PUT",body:r})}async delete(e,r){return this.request(e,{...r,method:"DELETE"})}};var eA=class{constructor(e,r=3e3){this.client=e;this.timeoutMs=r}async withTimeout(e){let r=new AbortController,i=setTimeout(()=>r.abort(),this.timeoutMs);try{return await e}catch(n){throw n.name==="AbortError"?new Error(`Request aborted after ${this.timeoutMs}ms`):n}finally{clearTimeout(i)}}async request(e,r){let i=AbortSignal.timeout?.(this.timeoutMs),n={...r,signal:i??void 0};return this.withTimeout(this.client.request(e,n))}async get(e,r){return this.request(e,{...r,method:"GET"})}async post(e,r,i){return this.request(e,{...i,method:"POST",body:r})}async put(e,r,i){return this.request(e,{...i,method:"PUT",body:r})}async delete(e,r){return this.request(e,{...r,method:"DELETE"})}};var tA=class{constructor(){this.name="Fetch"}async get(e,r){return this.request(e,{...r,method:"GET"})}async post(e,r,i){return this.request(e,{...i,method:"POST",body:r})}async put(e,r,i){return this.request(e,{...i,method:"PUT",body:r})}async delete(e,r){return this.request(e,{...r,method:"DELETE"})}async request(e,r){return await(await fetch(e,{method:r.method,headers:r.headers,body:r.body})).json()}};var TE=Qt(require("node:http"),1),UE=Qt(require("node:https"),1),Ti=Qt(require("node:zlib"),1),ot=Qt(require("node:stream"),1),Xs=require("node:buffer");function CD(t){if(!/^data:/i.test(t))throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")');t=t.replace(/\r?\n/g,"");let e=t.indexOf(",");if(e===-1||e<=4)throw new TypeError("malformed data: URI");let r=t.substring(5,e).split(";"),i="",n=!1,o=r[0]||"text/plain",A=o;for(let g=1;g<r.length;g++)r[g]==="base64"?n=!0:r[g]&&(A+=`;${r[g]}`,r[g].indexOf("charset=")===0&&(i=r[g].substring(8)));!r[0]&&!i.length&&(A+=";charset=US-ASCII",i="US-ASCII");let c=n?"base64":"ascii",l=unescape(t.substring(e+1)),p=Buffer.from(l,c);return p.type=o,p.typeFull=A,p.charset=i,p}var iE=CD;var mt=Qt(require("node:stream"),1),br=require("node:util"),nt=require("node:buffer");Ws();iA();var yr=class extends Error{constructor(e,r){super(e),Error.captureStackTrace(this,this.constructor),this.type=r}get name(){return this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}};var ze=class extends yr{constructor(e,r,i){super(e,r),i&&(this.code=this.errno=i.code,this.erroredSysCall=i.syscall)}};var nA=Symbol.toStringTag,Tu=t=>typeof t=="object"&&typeof t.append=="function"&&typeof t.delete=="function"&&typeof t.get=="function"&&typeof t.getAll=="function"&&typeof t.has=="function"&&typeof t.set=="function"&&typeof t.sort=="function"&&t[nA]==="URLSearchParams",zs=t=>t&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&typeof t.constructor=="function"&&/^(Blob|File)$/.test(t[nA]),pE=t=>typeof t=="object"&&(t[nA]==="AbortSignal"||t[nA]==="EventTarget"),gE=(t,e)=>{let r=new URL(e).hostname,i=new URL(t).hostname;return r===i||r.endsWith(`.${i}`)},dE=(t,e)=>{let r=new URL(e).protocol,i=new URL(t).protocol;return r===i};var LD=(0,br.promisify)(mt.default.pipeline),je=Symbol("Body internals"),tr=class{constructor(e,{size:r=0}={}){let i=null;e===null?e=null:Tu(e)?e=nt.Buffer.from(e.toString()):zs(e)||nt.Buffer.isBuffer(e)||(br.types.isAnyArrayBuffer(e)?e=nt.Buffer.from(e):ArrayBuffer.isView(e)?e=nt.Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof mt.default||(e instanceof ki?(e=uE(e),i=e.type.split("=")[1]):e=nt.Buffer.from(String(e))));let n=e;nt.Buffer.isBuffer(e)?n=mt.default.Readable.from(e):zs(e)&&(n=mt.default.Readable.from(e.stream())),this[je]={body:e,stream:n,boundary:i,disturbed:!1,error:null},this.size=r,e instanceof mt.default&&e.on("error",o=>{let A=o instanceof yr?o:new ze(`Invalid response body while trying to fetch ${this.url}: ${o.message}`,"system",o);this[je].error=A})}get body(){return this[je].stream}get bodyUsed(){return this[je].disturbed}async arrayBuffer(){let{buffer:e,byteOffset:r,byteLength:i}=await Lu(this);return e.slice(r,r+i)}async formData(){let e=this.headers.get("content-type");if(e.startsWith("application/x-www-form-urlencoded")){let i=new ki,n=new URLSearchParams(await this.text());for(let[o,A]of n)i.append(o,A);return i}let{toFormData:r}=await Promise.resolve().then(()=>(mE(),QE));return r(this.body,e)}async blob(){let e=this.headers&&this.headers.get("content-type")||this[je].body&&this[je].body.type||"",r=await this.arrayBuffer();return new Cr([r],{type:e})}async json(){let e=await this.text();return JSON.parse(e)}async text(){let e=await Lu(this);return new TextDecoder().decode(e)}buffer(){return Lu(this)}};tr.prototype.buffer=(0,br.deprecate)(tr.prototype.buffer,"Please use 'response.arrayBuffer()' instead of 'response.buffer()'","node-fetch#buffer");Object.defineProperties(tr.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0},data:{get:(0,br.deprecate)(()=>{},"data doesn't exist, use json(), text(), arrayBuffer(), or body instead","https://github.com/node-fetch/node-fetch/issues/1000 (response)")}});async function Lu(t){if(t[je].disturbed)throw new TypeError(`body used already for: ${t.url}`);if(t[je].disturbed=!0,t[je].error)throw t[je].error;let{body:e}=t;if(e===null)return nt.Buffer.alloc(0);if(!(e instanceof mt.default))return nt.Buffer.alloc(0);let r=[],i=0;try{for await(let n of e){if(t.size>0&&i+n.length>t.size){let o=new ze(`content size at ${t.url} over limit: ${t.size}`,"max-size");throw e.destroy(o),o}i+=n.length,r.push(n)}}catch(n){throw n instanceof yr?n:new ze(`Invalid response body while trying to fetch ${t.url}: ${n.message}`,"system",n)}if(e.readableEnded===!0||e._readableState.ended===!0)try{return r.every(n=>typeof n=="string")?nt.Buffer.from(r.join("")):nt.Buffer.concat(r,i)}catch(n){throw new ze(`Could not create Buffer from response body for ${t.url}: ${n.message}`,"system",n)}else throw new ze(`Premature close of server response while trying to fetch ${t.url}`)}var Sn=(t,e)=>{let r,i,{body:n}=t[je];if(t.bodyUsed)throw new Error("cannot clone body after it is used");return n instanceof mt.default&&typeof n.getBoundary!="function"&&(r=new mt.PassThrough({highWaterMark:e}),i=new mt.PassThrough({highWaterMark:e}),n.pipe(r),n.pipe(i),t[je].stream=r,n=i),n},PD=(0,br.deprecate)(t=>t.getBoundary(),"form-data doesn't follow the spec and requires special treatment. Use alternative package","https://github.com/node-fetch/node-fetch/issues/1167"),AA=(t,e)=>t===null?null:typeof t=="string"?"text/plain;charset=UTF-8":Tu(t)?"application/x-www-form-urlencoded;charset=UTF-8":zs(t)?t.type||null:nt.Buffer.isBuffer(t)||br.types.isAnyArrayBuffer(t)||ArrayBuffer.isView(t)?null:t instanceof ki?`multipart/form-data; boundary=${e[je].boundary}`:t&&typeof t.getBoundary=="function"?`multipart/form-data;boundary=${PD(t)}`:t instanceof mt.default?null:"text/plain;charset=UTF-8",BE=t=>{let{body:e}=t[je];return e===null?0:zs(e)?e.size:nt.Buffer.isBuffer(e)?e.length:e&&typeof e.getLengthSync=="function"&&e.hasKnownLength&&e.hasKnownLength()?e.getLengthSync():null},IE=async(t,{body:e})=>{e===null?t.end():await LD(e,t)};var Pu=require("node:util"),Zs=Qt(require("node:http"),1),cA=typeof Zs.default.validateHeaderName=="function"?Zs.default.validateHeaderName:t=>{if(!/^[\^`\-\w!#$%&'*+.|~]+$/.test(t)){let e=new TypeError(`Header name must be a valid HTTP token [${t}]`);throw Object.defineProperty(e,"code",{value:"ERR_INVALID_HTTP_TOKEN"}),e}},Yu=typeof Zs.default.validateHeaderValue=="function"?Zs.default.validateHeaderValue:(t,e)=>{if(/[^\t\u0020-\u007E\u0080-\u00FF]/.test(e)){let r=new TypeError(`Invalid character in header content ["${t}"]`);throw Object.defineProperty(r,"code",{value:"ERR_INVALID_CHAR"}),r}},st=class t extends URLSearchParams{constructor(e){let r=[];if(e instanceof t){let i=e.raw();for(let[n,o]of Object.entries(i))r.push(...o.map(A=>[n,A]))}else if(e!=null)if(typeof e=="object"&&!Pu.types.isBoxedPrimitive(e)){let i=e[Symbol.iterator];if(i==null)r.push(...Object.entries(e));else{if(typeof i!="function")throw new TypeError("Header pairs must be iterable");r=[...e].map(n=>{if(typeof n!="object"||Pu.types.isBoxedPrimitive(n))throw new TypeError("Each header pair must be an iterable object");return[...n]}).map(n=>{if(n.length!==2)throw new TypeError("Each header pair must be a name/value tuple");return[...n]})}}else throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)");return r=r.length>0?r.map(([i,n])=>(cA(i),Yu(i,String(n)),[String(i).toLowerCase(),String(n)])):void 0,super(r),new Proxy(this,{get(i,n,o){switch(n){case"append":case"set":return(A,c)=>(cA(A),Yu(A,String(c)),URLSearchParams.prototype[n].call(i,String(A).toLowerCase(),String(c)));case"delete":case"has":case"getAll":return A=>(cA(A),URLSearchParams.prototype[n].call(i,String(A).toLowerCase()));case"keys":return()=>(i.sort(),new Set(URLSearchParams.prototype.keys.call(i)).keys());default:return Reflect.get(i,n,o)}}})}get[Symbol.toStringTag](){return this.constructor.name}toString(){return Object.prototype.toString.call(this)}get(e){let r=this.getAll(e);if(r.length===0)return null;let i=r.join(", ");return/^content-encoding$/i.test(e)&&(i=i.toLowerCase()),i}forEach(e,r=void 0){for(let i of this.keys())Reflect.apply(e,r,[this.get(i),i,this])}*values(){for(let e of this.keys())yield this.get(e)}*entries(){for(let e of this.keys())yield[e,this.get(e)]}[Symbol.iterator](){return this.entries()}raw(){return[...this.keys()].reduce((e,r)=>(e[r]=this.getAll(r),e),{})}[Symbol.for("nodejs.util.inspect.custom")](){return[...this.keys()].reduce((e,r)=>{let i=this.getAll(r);return r==="host"?e[r]=i[0]:e[r]=i.length>1?i:i[0],e},{})}};Object.defineProperties(st.prototype,["get","entries","forEach","values"].reduce((t,e)=>(t[e]={enumerable:!0},t),{}));function CE(t=[]){return new st(t.reduce((e,r,i,n)=>(i%2===0&&e.push(n.slice(i,i+2)),e),[]).filter(([e,r])=>{try{return cA(e),Yu(e,String(r)),!0}catch{return!1}}))}var YD=new Set([301,302,303,307,308]),lA=t=>YD.has(t);var Pt=Symbol("Response internals"),Bt=class t extends tr{constructor(e=null,r={}){super(e,r);let i=r.status!=null?r.status:200,n=new st(r.headers);if(e!==null&&!n.has("Content-Type")){let o=AA(e,this);o&&n.append("Content-Type",o)}this[Pt]={type:"default",url:r.url,status:i,statusText:r.statusText||"",headers:n,counter:r.counter,highWaterMark:r.highWaterMark}}get type(){return this[Pt].type}get url(){return this[Pt].url||""}get status(){return this[Pt].status}get ok(){return this[Pt].status>=200&&this[Pt].status<300}get redirected(){return this[Pt].counter>0}get statusText(){return this[Pt].statusText}get headers(){return this[Pt].headers}get highWaterMark(){return this[Pt].highWaterMark}clone(){return new t(Sn(this,this.highWaterMark),{type:this.type,url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,size:this.size,highWaterMark:this.highWaterMark})}static redirect(e,r=302){if(!lA(r))throw new RangeError('Failed to execute "redirect" on "response": Invalid status code');return new t(null,{headers:{location:new URL(e).toString()},status:r})}static error(){let e=new t(null,{status:0,statusText:""});return e[Pt].type="error",e}static json(e=void 0,r={}){let i=JSON.stringify(e);if(i===void 0)throw new TypeError("data is not JSON serializable");let n=new st(r&&r.headers);return n.has("content-type")||n.set("content-type","application/json"),new t(i,{...r,headers:n})}get[Symbol.toStringTag](){return"Response"}};Object.defineProperties(Bt.prototype,{type:{enumerable:!0},url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});var kE=require("node:url"),FE=require("node:util");var yE=t=>{if(t.search)return t.search;let e=t.href.length-1,r=t.hash||(t.href[e]==="#"?"#":"");return t.href[e-r.length]==="?"?"?":""};var wE=require("node:net");function bE(t,e=!1){return t==null||(t=new URL(t),/^(about|blob|data):$/.test(t.protocol))?"no-referrer":(t.username="",t.password="",t.hash="",e&&(t.pathname="",t.search=""),t)}var xE=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]),vE="strict-origin-when-cross-origin";function SE(t){if(!xE.has(t))throw new TypeError(`Invalid referrerPolicy: ${t}`);return t}function GD(t){if(/^(http|ws)s:$/.test(t.protocol))return!0;let e=t.host.replace(/(^\[)|(]$)/g,""),r=(0,wE.isIP)(e);return r===4&&/^127\./.test(e)||r===6&&/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(e)?!0:t.host==="localhost"||t.host.endsWith(".localhost")?!1:t.protocol==="file:"}function Rn(t){return/^about:(blank|srcdoc)$/.test(t)||t.protocol==="data:"||/^(blob|filesystem):$/.test(t.protocol)?!0:GD(t)}function RE(t,{referrerURLCallback:e,referrerOriginCallback:r}={}){if(t.referrer==="no-referrer"||t.referrerPolicy==="")return null;let i=t.referrerPolicy;if(t.referrer==="about:client")return"no-referrer";let n=t.referrer,o=bE(n),A=bE(n,!0);o.toString().length>4096&&(o=A),e&&(o=e(o)),r&&(A=r(A));let c=new URL(t.url);switch(i){case"no-referrer":return"no-referrer";case"origin":return A;case"unsafe-url":return o;case"strict-origin":return Rn(o)&&!Rn(c)?"no-referrer":A.toString();case"strict-origin-when-cross-origin":return o.origin===c.origin?o:Rn(o)&&!Rn(c)?"no-referrer":A;case"same-origin":return o.origin===c.origin?o:"no-referrer";case"origin-when-cross-origin":return o.origin===c.origin?o:A;case"no-referrer-when-downgrade":return Rn(o)&&!Rn(c)?"no-referrer":o;default:throw new TypeError(`Invalid referrerPolicy: ${i}`)}}function DE(t){let e=(t.get("referrer-policy")||"").split(/[,\s]+/),r="";for(let i of e)i&&xE.has(i)&&(r=i);return r}var Se=Symbol("Request internals"),Ks=t=>typeof t=="object"&&typeof t[Se]=="object",HD=(0,FE.deprecate)(()=>{},".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)"),Ni=class t extends tr{constructor(e,r={}){let i;if(Ks(e)?i=new URL(e.url):(i=new URL(e),e={}),i.username!==""||i.password!=="")throw new TypeError(`${i} is an url with embedded credentials.`);let n=r.method||e.method||"GET";if(/^(delete|get|head|options|post|put)$/i.test(n)&&(n=n.toUpperCase()),!Ks(r)&&"data"in r&&HD(),(r.body!=null||Ks(e)&&e.body!==null)&&(n==="GET"||n==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let o=r.body?r.body:Ks(e)&&e.body!==null?Sn(e):null;super(o,{size:r.size||e.size||0});let A=new st(r.headers||e.headers||{});if(o!==null&&!A.has("Content-Type")){let p=AA(o,this);p&&A.set("Content-Type",p)}let c=Ks(e)?e.signal:null;if("signal"in r&&(c=r.signal),c!=null&&!pE(c))throw new TypeError("Expected signal to be an instanceof AbortSignal or EventTarget");let l=r.referrer==null?e.referrer:r.referrer;if(l==="")l="no-referrer";else if(l){let p=new URL(l);l=/^about:(\/\/)?client$/.test(p)?"client":p}else l=void 0;this[Se]={method:n,redirect:r.redirect||e.redirect||"follow",headers:A,parsedURL:i,signal:c,referrer:l},this.follow=r.follow===void 0?e.follow===void 0?20:e.follow:r.follow,this.compress=r.compress===void 0?e.compress===void 0?!0:e.compress:r.compress,this.counter=r.counter||e.counter||0,this.agent=r.agent||e.agent,this.highWaterMark=r.highWaterMark||e.highWaterMark||16384,this.insecureHTTPParser=r.insecureHTTPParser||e.insecureHTTPParser||!1,this.referrerPolicy=r.referrerPolicy||e.referrerPolicy||""}get method(){return this[Se].method}get url(){return(0,kE.format)(this[Se].parsedURL)}get headers(){return this[Se].headers}get redirect(){return this[Se].redirect}get signal(){return this[Se].signal}get referrer(){if(this[Se].referrer==="no-referrer")return"";if(this[Se].referrer==="client")return"about:client";if(this[Se].referrer)return this[Se].referrer.toString()}get referrerPolicy(){return this[Se].referrerPolicy}set referrerPolicy(e){this[Se].referrerPolicy=SE(e)}clone(){return new t(this)}get[Symbol.toStringTag](){return"Request"}};Object.defineProperties(Ni.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0},referrer:{enumerable:!0},referrerPolicy:{enumerable:!0}});var NE=t=>{let{parsedURL:e}=t[Se],r=new st(t[Se].headers);r.has("Accept")||r.set("Accept","*/*");let i=null;if(t.body===null&&/^(post|put)$/i.test(t.method)&&(i="0"),t.body!==null){let c=BE(t);typeof c=="number"&&!Number.isNaN(c)&&(i=String(c))}i&&r.set("Content-Length",i),t.referrerPolicy===""&&(t.referrerPolicy=vE),t.referrer&&t.referrer!=="no-referrer"?t[Se].referrer=RE(t):t[Se].referrer="no-referrer",t[Se].referrer instanceof URL&&r.set("Referer",t.referrer),r.has("User-Agent")||r.set("User-Agent","node-fetch"),t.compress&&!r.has("Accept-Encoding")&&r.set("Accept-Encoding","gzip, deflate, br");let{agent:n}=t;typeof n=="function"&&(n=n(e));let o=yE(e),A={path:e.pathname+o,method:t.method,headers:r[Symbol.for("nodejs.util.inspect.custom")](),insecureHTTPParser:t.insecureHTTPParser,agent:n};return{parsedURL:e,options:A}};var uA=class extends yr{constructor(e,r="aborted"){super(e,r)}};iA();Uu();var _D=new Set(["data:","http:","https:"]);async function pA(t,e){return new Promise((r,i)=>{let n=new Ni(t,e),{parsedURL:o,options:A}=NE(n);if(!_D.has(o.protocol))throw new TypeError(`node-fetch cannot load ${t}. URL scheme "${o.protocol.replace(/:$/,"")}" is not supported.`);if(o.protocol==="data:"){let Q=iE(n.url),y=new Bt(Q,{headers:{"Content-Type":Q.typeFull}});r(y);return}let c=(o.protocol==="https:"?UE.default:TE.default).request,{signal:l}=n,p=null,g=()=>{let Q=new uA("The operation was aborted.");i(Q),n.body&&n.body instanceof ot.default.Readable&&n.body.destroy(Q),!(!p||!p.body)&&p.body.emit("error",Q)};if(l&&l.aborted){g();return}let h=()=>{g(),C()},f=c(o.toString(),A);l&&l.addEventListener("abort",h);let C=()=>{f.abort(),l&&l.removeEventListener("abort",h)};f.on("error",Q=>{i(new ze(`request to ${n.url} failed, reason: ${Q.message}`,"system",Q)),C()}),JD(f,Q=>{p&&p.body&&p.body.destroy(Q)}),process.version<"v14"&&f.on("socket",Q=>{let y;Q.prependListener("end",()=>{y=Q._eventsCount}),Q.prependListener("close",w=>{if(p&&y<Q._eventsCount&&!w){let m=new Error("Premature close");m.code="ERR_STREAM_PREMATURE_CLOSE",p.body.emit("error",m)}})}),f.on("response",Q=>{f.setTimeout(0);let y=CE(Q.rawHeaders);if(lA(Q.statusCode)){let R=y.get("Location"),F=null;try{F=R===null?null:new URL(R,n.url)}catch{if(n.redirect!=="manual"){i(new ze(`uri requested responds with an invalid redirect URL: ${R}`,"invalid-redirect")),C();return}}switch(n.redirect){case"error":i(new ze(`uri requested responds with a redirect, redirect mode is set to error: ${n.url}`,"no-redirect")),C();return;case"manual":break;case"follow":{if(F===null)break;if(n.counter>=n.follow){i(new ze(`maximum redirect reached at: ${n.url}`,"max-redirect")),C();return}let J={headers:new st(n.headers),follow:n.follow,counter:n.counter+1,agent:n.agent,compress:n.compress,method:n.method,body:Sn(n),signal:n.signal,size:n.size,referrer:n.referrer,referrerPolicy:n.referrerPolicy};if(!gE(n.url,F)||!dE(n.url,F))for(let qe of["authorization","www-authenticate","cookie","cookie2"])J.headers.delete(qe);if(Q.statusCode!==303&&n.body&&e.body instanceof ot.default.Readable){i(new ze("Cannot follow redirect with body being a readable stream","unsupported-redirect")),C();return}(Q.statusCode===303||(Q.statusCode===301||Q.statusCode===302)&&n.method==="POST")&&(J.method="GET",J.body=void 0,J.headers.delete("content-length"));let $=DE(y);$&&(J.referrerPolicy=$),r(pA(new Ni(F,J))),C();return}default:return i(new TypeError(`Redirect option '${n.redirect}' is not a valid value of RequestRedirect`))}}l&&Q.once("end",()=>{l.removeEventListener("abort",h)});let w=(0,ot.pipeline)(Q,new ot.PassThrough,R=>{R&&i(R)});process.version<"v12.10"&&Q.on("aborted",h);let m={url:n.url,status:Q.statusCode,statusText:Q.statusMessage,headers:y,size:n.size,counter:n.counter,highWaterMark:n.highWaterMark},x=y.get("Content-Encoding");if(!n.compress||n.method==="HEAD"||x===null||Q.statusCode===204||Q.statusCode===304){p=new Bt(w,m),r(p);return}let D={flush:Ti.default.Z_SYNC_FLUSH,finishFlush:Ti.default.Z_SYNC_FLUSH};if(x==="gzip"||x==="x-gzip"){w=(0,ot.pipeline)(w,Ti.default.createGunzip(D),R=>{R&&i(R)}),p=new Bt(w,m),r(p);return}if(x==="deflate"||x==="x-deflate"){let R=(0,ot.pipeline)(Q,new ot.PassThrough,F=>{F&&i(F)});R.once("data",F=>{(F[0]&15)===8?w=(0,ot.pipeline)(w,Ti.default.createInflate(),J=>{J&&i(J)}):w=(0,ot.pipeline)(w,Ti.default.createInflateRaw(),J=>{J&&i(J)}),p=new Bt(w,m),r(p)}),R.once("end",()=>{p||(p=new Bt(w,m),r(p))});return}if(x==="br"){w=(0,ot.pipeline)(w,Ti.default.createBrotliDecompress(),R=>{R&&i(R)}),p=new Bt(w,m),r(p);return}p=new Bt(w,m),r(p)}),IE(f,n).catch(i)})}function JD(t,e){let r=Xs.Buffer.from(`0\r
|
|
60
60
|
\r
|
|
61
61
|
`),i=!1,n=!1,o;t.on("response",A=>{let{headers:c}=A;i=c["transfer-encoding"]==="chunked"&&!c["content-length"]}),t.on("socket",A=>{let c=()=>{if(i&&!n){let p=new Error("Premature close");p.code="ERR_STREAM_PREMATURE_CLOSE",e(p)}},l=p=>{n=Xs.Buffer.compare(p.slice(-5),r)===0,!n&&o&&(n=Xs.Buffer.compare(o.slice(-3),r.slice(0,3))===0&&Xs.Buffer.compare(p.slice(-2),r.slice(3))===0),o=p};A.prependListener("close",c),A.on("data",l),t.on("close",()=>{A.removeListener("close",c),A.removeListener("data",l)})})}var gA=class{constructor(){this.name="NodeFetch"}async get(e,r){return this.request(e,{...r,method:"GET"})}async post(e,r,i){return this.request(e,{...i,method:"POST",body:r})}async put(e,r,i){return this.request(e,{...i,method:"PUT",body:r})}async delete(e,r){return this.request(e,{...r,method:"DELETE"})}async request(e,r){return await(await pA(e,{method:r.method,headers:r.headers,body:r.body})).json()}};var nx=require("stream"),sx=require("url"),ox=Qt(ix());var cl=class{constructor(){this.name="Undici";this.agent=new ox.Agent({connections:100,pipelining:1})}async get(e,r){return this.request(e,{...r,method:"GET"})}async post(e,r,i){return this.request(e,{...i,method:"POST",body:r})}async put(e,r,i){return this.request(e,{...i,method:"PUT",body:r})}async delete(e,r){return this.request(e,{...r,method:"DELETE"})}async request(e,r){let{method:i,headers:n,body:o}=r,A=new sx.URL(e),c=A.origin,l=`${A.pathname}${A.search}`,p={origin:c,method:i,path:l,headers:n,body:o??void 0};o instanceof nx.Readable&&(p.duplex="half");let{body:g}=await this.agent.request(p);return await g.json()}async closeAll(){await this.agent.close()}};var ll=class{static create(e="fetch",r,i){let n=this.createBaseHttpClient(e);return n=this.applyTimeout(n,r),n=this.applyErrorHandler(n),n=this.applyLogging(n,r,i),n=this.applyRetry(n,r,i),n}static createBaseHttpClient(e){let r={"node-fetch":()=>new gA,fetch:()=>new tA,undici:()=>{let i=new cl;return process.once("SIGINT",async()=>{await i.closeAll?.()}),i}};return(r[e]||r.fetch)()}static applyTimeout(e,r){return r?.timeoutMs?new eA(e,r.timeoutMs):e}static applyErrorHandler(e){return new Ka(e)}static applyLogging(e,r,i){return i&&r?.httpLog?new Xa(e,i):e}static applyRetry(e,r,i){if(r?.retries&&r.retries>0){let n=r.retryDelay||500;return new $a(e,i,r.retries,n)}return e}};var Xo=Qt(require("node:fs")),ax=Qt(require("node:path"));var ul=class{constructor(e,r){this.filePath=e,this.environment=r,this._verbose=this.environment?.verbose||!1,this.ensureDirectoryExists()}ensureDirectoryExists(){let e=ax.default.dirname(this.filePath);Xo.default.existsSync(e)||Xo.default.mkdirSync(e,{recursive:!0})}formatLog(e,...r){let i=new Date().toISOString(),n=r.map(o=>typeof o=="object"?JSON.stringify(o,null,2):o).join(" ");return`${i} - ${e} ${n}
|
|
62
|
-
`}verbose(e,...r){this._verbose&&this.log(e,...r)}log(e,...r){try{let i=this.formatLog(e,...r);Xo.default.appendFileSync(this.filePath,i)}catch(i){throw new Vs({context:"FileLogger.log",error:i,detail:Ja.INVALID_ARRAY_RESPONSE})}}logError(e,...r){try{let i=this.formatLog(`ERROR: ${e}`,...r);Xo.default.appendFileSync(this.filePath,i)}catch(i){throw new Vs({context:"FileLogger.logError",error:i,detail:Ja.INVALID_ARRAY_RESPONSE})}}isVerbose(){return this._verbose}};var pl=class{constructor(e){this.environment=e,this._verbose=this.environment?.verbose||!1}log(e,...r){console.info(e,...r)}logError(e,...r){console.error(e,...r)}verbose(e,...r){this._verbose&&this.log(e,...r)}isVerbose(){return this._verbose}};var gl=class{static create(e){let r=this.determineType(e);return this.createInstance(r,e)}static determineType(e){return e.logFilePath?"file":"stdout"}static createInstance(e,r){return{file:()=>this.createFileLogger(r),stdout:()=>new pl(r)}[e]()}static createFileLogger(e){let r=e.logFilePath;if(!r)throw new Error("File path is required for FileLogger");return new ul(r,e)}};var dl=class{constructor(e){this.apiService=e}async send(e){return this.apiService.publicApi({method:"POST",endpoint:"/alert",body:e})}async paginate(e){let{page:r=1,items:i=10,level:n,area:o}=e,A=new URLSearchParams({page:r.toString(),items:i.toString(),...n?{level:n}:{},...o?{area:o}:{}}).toString();return this.apiService.api({method:"GET",endpoint:`/logs/alert?${A}`})}};var hl=class{constructor(e,r){this.HTTP_CLIENT="fetch";this.httpClient=e,this.configService=r,this.verbose=this.configService.getEnvironment().verbose||!1,this.HTTP_CLIENT=this.configService.getEnvironment().client||"fetch"}async apiCall({api:e,token:r,method:i,endpoint:n,body:o=void 0,headers:A={},isFormData:c=!1}){let l=`${e}${n?.startsWith("/")?"":"/"}${n}`;r&&(A.authorization=r);let p=this.configService.getEnvironment(),h={...{"X-Client-Name":p.clientName,"X-Client-Version":p.clientVersion,"X-Application-Id":p.applicationId??"griddo-sdk"},...A};r&&(h.authorization=r);let f={method:i,headers:h,body:o};return!c&&o&&(f.body=JSON.stringify(o)),c&&o&&(f.body=o),o&&!["GET","DELETE"].includes(i)&&!c&&(h["Content-Type"]="application/json"),this.httpClient.request(l,f)}async api(e){let{api:r,token:i}=this.configService.getEnvironment(),{method:n,endpoint:o,body:A,headers:c,isFormData:l}=e;return this.apiCall({api:r,token:i,method:n,endpoint:o,body:A,headers:c||{},isFormData:l})}async publicApi(e){let{publicApi:r,token:i}=this.configService.getEnvironment(),{method:n,endpoint:o,body:A,headers:c}=e;return this.apiCall({api:r,token:i,method:n,endpoint:o,body:A,headers:c||{}})}};var fl=class{constructor(e,r){if(!e?.user||!e?.password)throw new _a({context:"AuthService.constructor",error:"Missing required username or password properties into authUserParams",detail:Su.REQUIRED_AUTH_USER_PARAMS});this.authUserParams=e,this.apiService=r}async authenticate(){let{user:e,password:r}=this.authUserParams;return this.apiService.api({method:"POST",endpoint:"/login_check",body:{email:e,password:r}})}};var Ax={name:"griddo-sdk",version:"2.0.
|
|
62
|
+
`}verbose(e,...r){this._verbose&&this.log(e,...r)}log(e,...r){try{let i=this.formatLog(e,...r);Xo.default.appendFileSync(this.filePath,i)}catch(i){throw new Vs({context:"FileLogger.log",error:i,detail:Ja.INVALID_ARRAY_RESPONSE})}}logError(e,...r){try{let i=this.formatLog(`ERROR: ${e}`,...r);Xo.default.appendFileSync(this.filePath,i)}catch(i){throw new Vs({context:"FileLogger.logError",error:i,detail:Ja.INVALID_ARRAY_RESPONSE})}}isVerbose(){return this._verbose}};var pl=class{constructor(e){this.environment=e,this._verbose=this.environment?.verbose||!1}log(e,...r){console.info(e,...r)}logError(e,...r){console.error(e,...r)}verbose(e,...r){this._verbose&&this.log(e,...r)}isVerbose(){return this._verbose}};var gl=class{static create(e){let r=this.determineType(e);return this.createInstance(r,e)}static determineType(e){return e.logFilePath?"file":"stdout"}static createInstance(e,r){return{file:()=>this.createFileLogger(r),stdout:()=>new pl(r)}[e]()}static createFileLogger(e){let r=e.logFilePath;if(!r)throw new Error("File path is required for FileLogger");return new ul(r,e)}};var dl=class{constructor(e){this.apiService=e}async send(e){return this.apiService.publicApi({method:"POST",endpoint:"/alert",body:e})}async paginate(e){let{page:r=1,items:i=10,level:n,area:o}=e,A=new URLSearchParams({page:r.toString(),items:i.toString(),...n?{level:n}:{},...o?{area:o}:{}}).toString();return this.apiService.api({method:"GET",endpoint:`/logs/alert?${A}`})}};var hl=class{constructor(e,r){this.HTTP_CLIENT="fetch";this.httpClient=e,this.configService=r,this.verbose=this.configService.getEnvironment().verbose||!1,this.HTTP_CLIENT=this.configService.getEnvironment().client||"fetch"}async apiCall({api:e,token:r,method:i,endpoint:n,body:o=void 0,headers:A={},isFormData:c=!1}){let l=`${e}${n?.startsWith("/")?"":"/"}${n}`;r&&(A.authorization=r);let p=this.configService.getEnvironment(),h={...{"X-Client-Name":p.clientName,"X-Client-Version":p.clientVersion,"X-Application-Id":p.applicationId??"griddo-sdk"},...A};r&&(h.authorization=r);let f={method:i,headers:h,body:o};return!c&&o&&(f.body=JSON.stringify(o)),c&&o&&(f.body=o),o&&!["GET","DELETE"].includes(i)&&!c&&(h["Content-Type"]="application/json"),this.httpClient.request(l,f)}async api(e){let{api:r,token:i}=this.configService.getEnvironment(),{method:n,endpoint:o,body:A,headers:c,isFormData:l}=e;return this.apiCall({api:r,token:i,method:n,endpoint:o,body:A,headers:c||{},isFormData:l})}async publicApi(e){let{publicApi:r,token:i}=this.configService.getEnvironment(),{method:n,endpoint:o,body:A,headers:c}=e;return this.apiCall({api:r,token:i,method:n,endpoint:o,body:A,headers:c||{}})}};var fl=class{constructor(e,r){if(!e?.user||!e?.password)throw new _a({context:"AuthService.constructor",error:"Missing required username or password properties into authUserParams",detail:Su.REQUIRED_AUTH_USER_PARAMS});this.authUserParams=e,this.apiService=r}async authenticate(){let{user:e,password:r}=this.authUserParams;return this.apiService.api({method:"POST",endpoint:"/login_check",body:{email:e,password:r}})}};var Ax={name:"griddo-sdk",version:"2.0.4-rc.0",descripcion:"Griddo SDK es una biblioteca que facilita la integraci\xF3n con la API de Griddo, permitiendo a los desarrolladores conectarse, realizar consultas estructuradas de datos con facilidad. Este SDK proporciona m\xE9todos sencillos para interactuar con los diferentes servicios de Griddo, manejando detalles como la autenticaci\xF3n y la paginaci\xF3n de resultados, y permitiendo personalizar consultas con diversos par\xE1metros.",main:"dist/index.js",scripts:{build:"node scripts/build.cjs && tsc --emitDeclarationOnly && tsc-alias","build:tsc":"esbuild src/index.ts --bundle --platform=node --minify --outfile=./dist/index.js && tsc --emitDeclarationOnly","build:examples":"esbuild examples/*.ts --bundle --platform=node --outdir=dist/examples && tsc --emitDeclarationOnly","build:doc":"npx typedoc","build:doc:md":"npx typedoc --plugin typedoc-plugin-markdown --out ./docs-sdk/sdk","build:doc:errors":"esbuild scripts/generate_errors_md.ts --bundle --platform=node --outfile=scripts/generate_errors_md.js && node scripts/generate_errors_md.js && rm -Rf scripts/generate_errors_md.js","dev:connection":"npx tsc examples/connection.ts",start:"node dist/index.js",lint:"eslint 'src/**/*.{js,ts}'","lint:fix":"eslint --fix 'src/**/*.{ts,js}'",prettier:"prettier --write 'src/**/*.{js,ts}'",release:"release-it","run:example":"node examples/run_example.js images/add",test:"vitest","test:sync":"vitest --pool=forks --no-file-parallelism","test:coverage":"npx vitest run --coverage","test:ui":"npx vitest --ui"},repository:{type:"git",url:"git+https://github.com/griddo/griddo-sdk.git"},author:"",license:"ISC",bugs:{url:"https://github.com/griddo/griddo-sdk/issues"},homepage:"https://github.com/griddo/griddo-sdk#readme",dependencies:{"@griddo/api-types":"^1.0.1","form-data-encoder":"^4.0.2","formdata-node":"^6.0.3","node-fetch":"^3.3.2","p-limit":"^6.2.0",undici:"^6.21.2"},devDependencies:{"@eslint/compat":"^1.2.6","@eslint/eslintrc":"^3.2.0","@eslint/js":"^9.21.0","@faker-js/faker":"^9.0.3","@griddo/api-types":"^1.0.14","@types/eslint__js":"^8.42.3","@types/form-data":"^2.5.0","@types/node":"^22.5.0","@types/prettier":"^3.0.0","@typescript-eslint/eslint-plugin":"^8.23.0","@typescript-eslint/parser":"^8.23.0","@vitest/coverage-v8":"^3.0.7","@vitest/ui":"^3.0.7",dotenv:"^16.4.5",esbuild:"^0.25.0","esbuild-plugin-alias":"^0.2.1",eslint:"^9.21.0","eslint-config-prettier":"^9.1.0","eslint-import-resolver-typescript":"^3.7.0","eslint-plugin-import":"^2.31.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^5.1.3",globals:"^15.15.0",prettier:"^3.3.3","release-it":"^18.1.2",rollup:"^4.22.4","ts-node":"^10.9.2","ts-node-dev":"^2.0.0","tsc-alias":"^1.8.11",typedoc:"^0.28.1","typedoc-plugin-markdown":"^4.6.0",typescript:"^5.5.3","typescript-eslint":"^8.25.0","typescript-transform-paths":"^3.5.3",vite:"^6.1.1","vite-tsconfig-paths":"^5.1.4",vitest:"^3.0.7"}};var $o=class{constructor(e){this.ensureValidApiUrl(e),this.applyDefaults(e),this.config=e}ensureValidApiUrl(e){!e?.api.includes("http://")&&!e?.api.includes("https://")&&(e.api=`https://${e?.api}`)}applyDefaults(e){e.clientName||(e.clientName="SDK"),e.clientVersion||(e.clientVersion=Ax.version),e.applicationId||(e.applicationId="griddo-sdk")}getConfig(){return this.config}};var El=class{constructor(e){if(!e||!e?.api)throw new qs({context:"ConfigService.constructor",error:In.REQUIRED_ENVIRONMENT_PROPERTIES.message,detail:In.REQUIRED_ENVIRONMENT_PROPERTIES});this.environment=new $o(e)}getEnvironment(){return this.environment.getConfig()}setEnvironment(e){if(!e||!e?.token)throw new qs({context:"ConfigService.constructor",error:In.REQUIRED_ENVIRONMENT_PROPERTIES.message,detail:In.REQUIRED_ENVIRONMENT_PROPERTIES});this.environment=new $o(e)}};var Nh=require("stream"),Th=Qt(uS());var QS=t=>{throw TypeError(t)},bh=(t,e,r)=>e.has(t)||QS("Cannot "+r),me=(t,e,r)=>(bh(t,e,"read from private field"),r?r.call(t):e.get(t)),Pr=(t,e,r)=>e.has(t)?QS("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),na=(t,e,r,i)=>(bh(t,e,"write to private field"),i?i.call(t,r):e.set(t,r),r),yh=(t,e,r)=>(bh(t,e,"access private method"),r),pS=65536;function*mS(t){if(t.byteLength<=pS){yield t;return}let e=0;for(;e<t.byteLength;){let r=Math.min(t.byteLength-e,pS),i=t.buffer.slice(e,e+r);e+=i.byteLength,yield new Uint8Array(i)}}var gS="abcdefghijklmnopqrstuvwxyz0123456789";function LJ(){let t=16,e="";for(;t--;)e+=gS[Math.random()*gS.length<<0];return e}var dS=t=>String(t).replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/"/g,"%22"),Yr=t=>typeof t=="function",PJ=t=>!!t&&typeof t=="object"&&!Array.isArray(t)&&Yr(t.getReader),YJ=t=>Yr(t[Symbol.asyncIterator]);async function*GJ(t){let e=t.getReader();for(;;){let{done:r,value:i}=await e.read();if(r)break;yield i}}async function*hS(t){for await(let e of t)yield*mS(e)}var HJ=t=>{if(YJ(t))return hS(t);if(PJ(t))return hS(GJ(t));throw new TypeError("Unsupported data source: Expected either ReadableStream or async iterable.")},Rs=t=>!!(t&&typeof t=="object"&&Yr(t.constructor)&&t[Symbol.toStringTag]==="File"&&Yr(t.stream)&&t.name!=null),_J=t=>!!(t&&Yr(t.constructor)&&t[Symbol.toStringTag]==="FormData"&&Yr(t.append)&&Yr(t.getAll)&&Yr(t.entries)&&Yr(t[Symbol.iterator])),JJ=t=>Object.prototype.toString.call(t).slice(8,-1).toLowerCase();function fS(t){if(JJ(t)!=="object")return!1;let e=Object.getPrototypeOf(t);return e==null?!0:e.constructor?.toString?.()===Object.toString()}var BS=t=>String(t).replace(/\r|\n/g,(e,r,i)=>e==="\r"&&i[r+1]!==`
|
|
63
63
|
`||e===`
|
|
64
64
|
`&&i[r-1]!=="\r"?`\r
|
|
65
65
|
`:e);function ES(t,e){if(typeof e=="string"){for(let[r,i]of Object.entries(t))if(e.toLowerCase()===r.toLowerCase())return i}}var qJ=t=>new Proxy(t,{get:(e,r)=>ES(e,r),has:(e,r)=>ES(e,r)!==void 0}),VJ={enableAdditionalHeaders:!1},Sl={writable:!1,configurable:!1},Qi,sa,Rl,oa,on,aa,Aa,Dl,ca,wh,IS,xh=class{constructor(t,e,r){if(Pr(this,ca),Pr(this,Qi,`\r
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "griddo-sdk",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.4-rc.0",
|
|
4
4
|
"descripcion": "Griddo SDK es una biblioteca que facilita la integración con la API de Griddo, permitiendo a los desarrolladores conectarse, realizar consultas estructuradas de datos con facilidad. Este SDK proporciona métodos sencillos para interactuar con los diferentes servicios de Griddo, manejando detalles como la autenticación y la paginación de resultados, y permitiendo personalizar consultas con diversos parámetros.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|