Socket
Socket
Sign inDemoInstall

@algolia/ingestion

Package Overview
Dependencies
Maintainers
73
Versions
126
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@algolia/ingestion - npm Package Compare versions

Comparing version 1.0.0-alpha.18 to 1.0.0-alpha.19

2

dist/ingestion.cjs.js

@@ -9,3 +9,3 @@ 'use strict';

// This file is generated, manual changes will be lost - read more on https://github.com/algolia/api-clients-automation.
const apiClientVersion = '1.0.0-alpha.18';
const apiClientVersion = '1.0.0-alpha.19';
const REGIONS = ['us'];

@@ -12,0 +12,0 @@ function getDefaultHosts(region) {

@@ -5,3 +5,3 @@ import { createAuth, createTransporter, getAlgoliaAgent, DEFAULT_CONNECT_TIMEOUT_NODE, DEFAULT_READ_TIMEOUT_NODE, DEFAULT_WRITE_TIMEOUT_NODE, createNullCache, createMemoryCache } from '@algolia/client-common';

// This file is generated, manual changes will be lost - read more on https://github.com/algolia/api-clients-automation.
const apiClientVersion = '1.0.0-alpha.18';
const apiClientVersion = '1.0.0-alpha.19';
const REGIONS = ['us'];

@@ -8,0 +8,0 @@ function getDefaultHosts(region) {

@@ -1,2 +0,2 @@

/*! ingestion.umd.js | 1.0.0-alpha.18 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/ingestion"]={})}(this,(function(e){"use strict";function t(e){let t;const r=`algolia-client-js-${e.key}`;function a(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function n(){return JSON.parse(a().getItem(r)||"{}")}return{get:(e,t,r={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>{const r=JSON.stringify(e),a=n()[r];return Promise.all([a||t(),void 0!==a])})).then((([e,t])=>Promise.all([e,t||r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve().then((()=>{const s=n();return s[JSON.stringify(e)]=t,a().setItem(r,JSON.stringify(s)),t})),delete:e=>Promise.resolve().then((()=>{const t=n();delete t[JSON.stringify(e)],a().setItem(r,JSON.stringify(t))})),clear:()=>Promise.resolve().then((()=>{a().removeItem(r)}))}}function r(e){const t=[...e.caches],a=t.shift();return void 0===a?{get:(e,t,r={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,n,s={miss:()=>Promise.resolve()})=>a.get(e,n,s).catch((()=>r({caches:t}).get(e,n,s))),set:(e,n)=>a.set(e,n).catch((()=>r({caches:t}).set(e,n))),delete:e=>a.delete(e).catch((()=>r({caches:t}).delete(e))),clear:()=>a.clear().catch((()=>r({caches:t}).clear()))}}function a(e={serializable:!0}){let t={};return{get(r,a,n={miss:()=>Promise.resolve()}){const s=JSON.stringify(r);if(s in t)return Promise.resolve(e.serializable?JSON.parse(t[s]):t[s]);const o=a();return o.then((e=>n.miss(e))).then((()=>o))},set:(r,a)=>(t[JSON.stringify(r)]=e.serializable?JSON.stringify(a):a,Promise.resolve(a)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}const n=12e4;function s(e,t="up"){const r=Date.now();return{...e,status:t,lastUpdate:r,isUp:function(){return"up"===t||Date.now()-r>n},isTimedOut:function(){return"timed out"===t&&Date.now()-r<=n}}}function o(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,t||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class i extends Error{constructor(e,t){super(e),o(this,"name","AlgoliaError"),t&&(this.name=t)}}class u extends i{constructor(e,t,r){super(e,r),o(this,"stackTrace",void 0),this.stackTrace=t}}class c extends u{constructor(e){super("Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",e,"RetryError")}}class d extends u{constructor(e,t,r,a="ApiError"){super(e,r,a),o(this,"status",void 0),this.status=t}}class h extends i{constructor(e,t){super(e,"DeserializationError"),o(this,"response",void 0),this.response=t}}class l extends d{constructor(e,t,r,a){super(e,t,a,"DetailedApiError"),o(this,"error",void 0),this.error=r}}function m(e,t,r){const a=function(e){const t=e=>"[object Object]"===Object.prototype.toString.call(e)||"[object Array]"===Object.prototype.toString.call(e);return Object.keys(e).map((r=>`${r}=${encodeURIComponent(t(e[r])?JSON.stringify(e[r]):e[r])}`)).join("&")}(r);let n=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return a.length&&(n+=`?${a}`),n}function g(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function p({hosts:e,hostsCache:t,baseHeaders:r,baseQueryParameters:a,algoliaAgent:n,timeouts:o,requester:i,requestsCache:u,responsesCache:p}){async function w(u,p,w=!0){const P=[],f=function(e,t){if("GET"===e.method||void 0===e.data&&void 0===t.data)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}(u,p),q=function(e,t,r){const a={Accept:"application/json",...e,...t,...r},n={};return Object.keys(a).forEach((e=>{const t=a[e];n[e.toLowerCase()]=t})),n}(r,u.headers,p.headers),I="GET"===u.method?{...u.data,...p.data}:{},D={...a,...u.queryParameters,...I};if(n.value&&(D["x-algolia-agent"]=n.value),p&&p.queryParameters)for(const e of Object.keys(p.queryParameters))p.queryParameters[e]&&"[object Object]"!==Object.prototype.toString.call(p.queryParameters[e])?D[e]=p.queryParameters[e].toString():D[e]=p.queryParameters[e];let y=0;const v=async(e,r)=>{const a=e.pop();if(void 0===a)throw new c(function(e){return e.map((e=>g(e)))}(P));let n=p.timeout;void 0===n&&(n=w?o.read:o.write);const I={data:f,headers:q,method:u.method,url:m(a,u.path,D),connectTimeout:r(y,o.connect),responseTimeout:r(y,n)},S=t=>{const r={request:I,response:t,host:a,triesLeft:e.length};return P.push(r),r},T=await i.send(I);if(function({isTimedOut:e,status:t}){return e||function({isTimedOut:e,status:t}){return!e&&0==~~t}({isTimedOut:e,status:t})||2!=~~(t/100)&&4!=~~(t/100)}(T)){const n=S(T);return T.isTimedOut&&y++,console.log("Retryable failure",g(n)),await t.set(a,s(a,T.isTimedOut?"timed out":"down")),v(e,r)}if(function({status:e}){return 2==~~(e/100)}(T))return function(e){try{return JSON.parse(e.content)}catch(t){throw new h(t.message,e)}}(T);throw S(T),function({content:e,status:t},r){try{const a=JSON.parse(e);return"error"in a?new l(a.message,t,a.error,r):new d(a.message,t,r)}catch(e){}return new d(e,t,r)}(T,P)},S=e.filter((e=>"readWrite"===e.accept||(w?"read"===e.accept:"write"===e.accept))),T=await async function(e){const r=await Promise.all(e.map((e=>t.get(e,(()=>Promise.resolve(s(e))))))),a=r.filter((e=>e.isUp())),n=r.filter((e=>e.isTimedOut())),o=[...a,...n];return{hosts:o.length>0?o:e,getTimeout:(e,t)=>(0===n.length&&0===e?1:n.length+3+e)*t}}(S);return v([...T.hosts].reverse(),T.getTimeout)}return{hostsCache:t,requester:i,timeouts:o,algoliaAgent:n,baseHeaders:r,baseQueryParameters:a,hosts:e,request:function(e,t={}){const n=e.useReadTransporter||"GET"===e.method;if(!n)return w(e,t,n);const s=()=>w(e,t);if(!0!==(t.cacheable||e.cacheable))return s();const o={request:e,requestOptions:t,transporter:{queryParameters:a,headers:r}};return p.get(o,(()=>u.get(o,(()=>u.set(o,s()).then((e=>Promise.all([u.delete(o),e])),(e=>Promise.all([u.delete(o),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>p.set(o,e)})},requestsCache:u,responsesCache:p}}function w({algoliaAgents:e,client:t,version:r}){const a=function(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const r=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(r)&&(t.value=`${t.value}${r}`),t}};return t}(r).add({segment:t,version:r});return e.forEach((e=>a.add(e))),a}const P="1.0.0-alpha.18",f=["us"];e.apiClientVersion=P,e.ingestionClient=function(e,n,s,o){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!n||"string"!=typeof n)throw new Error("`apiKey` is missing.");if(!s||s&&("string"!=typeof s||!f.includes(s)))throw new Error(`\`region\` is required and must be one of the following: ${f.join(", ")}`);return function({appId:e,apiKey:t,authMode:r,algoliaAgents:a,region:n,...s}){const o=function(e,t,r="WithinHeaders"){const a={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers:()=>"WithinHeaders"===r?a:{},queryParameters:()=>"WithinQueryParameters"===r?a:{}}}(e,t,r),i=p({hosts:(u=n,[{url:"data.{region}.algolia.com".replace("{region}",u),accept:"readWrite",protocol:"https"}]),...s,algoliaAgent:{...w({algoliaAgents:a,client:"Ingestion",version:P}),value:""},baseHeaders:{"content-type":"text/plain",...o.headers(),...s.baseHeaders},baseQueryParameters:{...o.queryParameters(),...s.baseQueryParameters}});var u;return{transporter:i,appId:e,clearCache:()=>Promise.all([i.requestsCache.clear(),i.responsesCache.clear()]).then((()=>{})),get _ua(){return i.algoliaAgent.value},addAlgoliaAgent(e,t){i.algoliaAgent.add({segment:e,version:t})},createAuthentication(e,t){if(!e)throw new Error("Parameter `authenticationCreate` is required when calling `createAuthentication`.");const r={method:"POST",path:"/1/authentications",queryParameters:{},headers:{},data:e};return i.request(r,t)},createDestination(e,t){if(!e)throw new Error("Parameter `destinationCreate` is required when calling `createDestination`.");const r={method:"POST",path:"/1/destinations",queryParameters:{},headers:{},data:e};return i.request(r,t)},createSource(e,t){if(!e)throw new Error("Parameter `sourceCreate` is required when calling `createSource`.");if(!e.type)throw new Error("Parameter `sourceCreate.type` is required when calling `createSource`.");if(!e.input)throw new Error("Parameter `sourceCreate.input` is required when calling `createSource`.");const r={method:"POST",path:"/1/sources",queryParameters:{},headers:{},data:e};return i.request(r,t)},createTask(e,t){if(!e)throw new Error("Parameter `taskCreate` is required when calling `createTask`.");if(!e.sourceID)throw new Error("Parameter `taskCreate.sourceID` is required when calling `createTask`.");if(!e.trigger)throw new Error("Parameter `taskCreate.trigger` is required when calling `createTask`.");if(!e.action)throw new Error("Parameter `taskCreate.action` is required when calling `createTask`.");const r={method:"POST",path:"/1/tasks",queryParameters:{},headers:{},data:e};return i.request(r,t)},deleteAuthentication({authenticationID:e},t){if(!e)throw new Error("Parameter `authenticationID` is required when calling `deleteAuthentication`.");const r={method:"DELETE",path:"/1/authentications/{authenticationID}".replace("{authenticationID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},deleteDestination({destinationID:e},t){if(!e)throw new Error("Parameter `destinationID` is required when calling `deleteDestination`.");const r={method:"DELETE",path:"/1/destinations/{destinationID}".replace("{destinationID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},deleteSource({sourceID:e},t){if(!e)throw new Error("Parameter `sourceID` is required when calling `deleteSource`.");const r={method:"DELETE",path:"/1/sources/{sourceID}".replace("{sourceID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},deleteTask({taskID:e},t){if(!e)throw new Error("Parameter `taskID` is required when calling `deleteTask`.");const r={method:"DELETE",path:"/1/tasks/{taskID}".replace("{taskID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},disableTask({taskID:e},t){if(!e)throw new Error("Parameter `taskID` is required when calling `disableTask`.");const r={method:"PUT",path:"/1/tasks/{taskID}/disable".replace("{taskID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},enableTask({taskID:e},t){if(!e)throw new Error("Parameter `taskID` is required when calling `enableTask`.");const r={method:"PUT",path:"/1/tasks/{taskID}/enable".replace("{taskID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},getAuthentication({authenticationID:e},t){if(!e)throw new Error("Parameter `authenticationID` is required when calling `getAuthentication`.");const r={method:"GET",path:"/1/authentications/{authenticationID}".replace("{authenticationID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},getAuthentications({itemsPerPage:e,page:t,type:r,platform:a,sort:n,order:s}={},o){const u={};void 0!==e&&(u.itemsPerPage=e.toString()),void 0!==t&&(u.page=t.toString()),void 0!==r&&(u.type=r.toString()),void 0!==a&&(u.platform=a.toString()),void 0!==n&&(u.sort=n.toString()),void 0!==s&&(u.order=s.toString());const c={method:"GET",path:"/1/authentications",queryParameters:u,headers:{}};return i.request(c,o)},getDestination({destinationID:e},t){if(!e)throw new Error("Parameter `destinationID` is required when calling `getDestination`.");const r={method:"GET",path:"/1/destinations/{destinationID}".replace("{destinationID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},getDestinations({itemsPerPage:e,page:t,type:r,authenticationID:a,sort:n,order:s}={},o){const u={};void 0!==e&&(u.itemsPerPage=e.toString()),void 0!==t&&(u.page=t.toString()),void 0!==r&&(u.type=r.toString()),void 0!==a&&(u.authenticationID=a.toString()),void 0!==n&&(u.sort=n.toString()),void 0!==s&&(u.order=s.toString());const c={method:"GET",path:"/1/destinations",queryParameters:u,headers:{}};return i.request(c,o)},getEvent({runID:e,eventID:t},r){if(!e)throw new Error("Parameter `runID` is required when calling `getEvent`.");if(!t)throw new Error("Parameter `eventID` is required when calling `getEvent`.");const a={method:"GET",path:"/1/runs/{runID}/events/{eventID}".replace("{runID}",encodeURIComponent(e)).replace("{eventID}",encodeURIComponent(t)),queryParameters:{},headers:{}};return i.request(a,r)},getEvents({runID:e,status:t,type:r,sort:a,order:n},s){if(!e)throw new Error("Parameter `runID` is required when calling `getEvents`.");const o="/1/runs/{runID}/events".replace("{runID}",encodeURIComponent(e)),u={};void 0!==t&&(u.status=t.toString()),void 0!==r&&(u.type=r.toString()),void 0!==a&&(u.sort=a.toString()),void 0!==n&&(u.order=n.toString());const c={method:"GET",path:o,queryParameters:u,headers:{}};return i.request(c,s)},getRun({runID:e},t){if(!e)throw new Error("Parameter `runID` is required when calling `getRun`.");const r={method:"GET",path:"/1/runs/{runID}".replace("{runID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},getRuns({itemsPerPage:e,page:t,status:r,taskID:a,sort:n,order:s}={},o){const u={};void 0!==e&&(u.itemsPerPage=e.toString()),void 0!==t&&(u.page=t.toString()),void 0!==r&&(u.status=r.toString()),void 0!==a&&(u.taskID=a.toString()),void 0!==n&&(u.sort=n.toString()),void 0!==s&&(u.order=s.toString());const c={method:"GET",path:"/1/runs",queryParameters:u,headers:{}};return i.request(c,o)},getSource({sourceID:e},t){if(!e)throw new Error("Parameter `sourceID` is required when calling `getSource`.");const r={method:"GET",path:"/1/sources/{sourceID}".replace("{sourceID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},getSources({itemsPerPage:e,page:t,type:r,authenticationID:a,sort:n,order:s}={},o){const u={};void 0!==e&&(u.itemsPerPage=e.toString()),void 0!==t&&(u.page=t.toString()),void 0!==r&&(u.type=r.toString()),void 0!==a&&(u.authenticationID=a.toString()),void 0!==n&&(u.sort=n.toString()),void 0!==s&&(u.order=s.toString());const c={method:"GET",path:"/1/sources",queryParameters:u,headers:{}};return i.request(c,o)},getTask({taskID:e},t){if(!e)throw new Error("Parameter `taskID` is required when calling `getTask`.");const r={method:"GET",path:"/1/tasks/{taskID}".replace("{taskID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},getTasks({itemsPerPage:e,page:t,action:r,enabled:a,sourceID:n,destinationID:s,triggerType:o,sort:u,order:c}={},d){const h={};void 0!==e&&(h.itemsPerPage=e.toString()),void 0!==t&&(h.page=t.toString()),void 0!==r&&(h.action=r.toString()),void 0!==a&&(h.enabled=a.toString()),void 0!==n&&(h.sourceID=n.toString()),void 0!==s&&(h.destinationID=s.toString()),void 0!==o&&(h.triggerType=o.toString()),void 0!==u&&(h.sort=u.toString()),void 0!==c&&(h.order=c.toString());const l={method:"GET",path:"/1/tasks",queryParameters:h,headers:{}};return i.request(l,d)},runTask({taskID:e},t){if(!e)throw new Error("Parameter `taskID` is required when calling `runTask`.");const r={method:"POST",path:"/1/tasks/{taskID}/run".replace("{taskID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},searchAuthentications(e,t){if(!e)throw new Error("Parameter `authenticationSearch` is required when calling `searchAuthentications`.");if(!e.authenticationIDs)throw new Error("Parameter `authenticationSearch.authenticationIDs` is required when calling `searchAuthentications`.");const r={method:"POST",path:"/1/authentications/search",queryParameters:{},headers:{},data:e};return i.request(r,t)},searchDestinations(e,t){if(!e)throw new Error("Parameter `destinationSearch` is required when calling `searchDestinations`.");if(!e.destinationIDs)throw new Error("Parameter `destinationSearch.destinationIDs` is required when calling `searchDestinations`.");const r={method:"POST",path:"/1/destinations/search",queryParameters:{},headers:{},data:e};return i.request(r,t)},searchSources(e,t){if(!e)throw new Error("Parameter `sourceSearch` is required when calling `searchSources`.");if(!e.sourceIDs)throw new Error("Parameter `sourceSearch.sourceIDs` is required when calling `searchSources`.");const r={method:"POST",path:"/1/sources/search",queryParameters:{},headers:{},data:e};return i.request(r,t)},searchTasks(e,t){if(!e)throw new Error("Parameter `taskSearch` is required when calling `searchTasks`.");if(!e.taskIDs)throw new Error("Parameter `taskSearch.taskIDs` is required when calling `searchTasks`.");const r={method:"POST",path:"/1/tasks/search",queryParameters:{},headers:{},data:e};return i.request(r,t)},updateAuthentication({authenticationID:e,authenticationUpdate:t},r){if(!e)throw new Error("Parameter `authenticationID` is required when calling `updateAuthentication`.");if(!t)throw new Error("Parameter `authenticationUpdate` is required when calling `updateAuthentication`.");const a={method:"PUT",path:"/1/authentications/{authenticationID}".replace("{authenticationID}",encodeURIComponent(e)),queryParameters:{},headers:{},data:t};return i.request(a,r)},updateDestination({destinationID:e,destinationUpdate:t},r){if(!e)throw new Error("Parameter `destinationID` is required when calling `updateDestination`.");if(!t)throw new Error("Parameter `destinationUpdate` is required when calling `updateDestination`.");const a={method:"PUT",path:"/1/destinations/{destinationID}".replace("{destinationID}",encodeURIComponent(e)),queryParameters:{},headers:{},data:t};return i.request(a,r)},updateSource({sourceID:e,sourceUpdate:t},r){if(!e)throw new Error("Parameter `sourceID` is required when calling `updateSource`.");if(!t)throw new Error("Parameter `sourceUpdate` is required when calling `updateSource`.");const a={method:"PUT",path:"/1/sources/{sourceID}".replace("{sourceID}",encodeURIComponent(e)),queryParameters:{},headers:{},data:t};return i.request(a,r)},updateTask({taskID:e,taskUpdate:t},r){if(!e)throw new Error("Parameter `taskID` is required when calling `updateTask`.");if(!t)throw new Error("Parameter `taskUpdate` is required when calling `updateTask`.");const a={method:"PUT",path:"/1/tasks/{taskID}".replace("{taskID}",encodeURIComponent(e)),queryParameters:{},headers:{},data:t};return i.request(a,r)}}}({appId:e,apiKey:n,region:s,timeouts:{connect:1e3,read:2e3,write:3e4},requester:{send:function(e){return new Promise((t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>r.setRequestHeader(t,e.headers[t])));const a=(e,a)=>setTimeout((()=>{r.abort(),t({status:0,content:a,isTimedOut:!0})}),e),n=a(e.connectTimeout,"Connection timeout");let s;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===s&&(clearTimeout(n),s=a(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(n),clearTimeout(s),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(n),clearTimeout(s),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:a(),requestsCache:a({serializable:!1}),hostsCache:r({caches:[t({key:`1.0.0-alpha.18-${e}`}),a()]}),...o})},e.isOnDemandTrigger=function(e){return"onDemand"===e.type},e.isScheduleTrigger=function(e){return"schedule"===e.type},e.isSubscriptionTrigger=function(e){return"subscription"===e.type}}));
/*! ingestion.umd.js | 1.0.0-alpha.19 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/ingestion"]={})}(this,(function(e){"use strict";function t(e){let t;const r=`algolia-client-js-${e.key}`;function a(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function n(){return JSON.parse(a().getItem(r)||"{}")}return{get:(e,t,r={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>{const r=JSON.stringify(e),a=n()[r];return Promise.all([a||t(),void 0!==a])})).then((([e,t])=>Promise.all([e,t||r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve().then((()=>{const s=n();return s[JSON.stringify(e)]=t,a().setItem(r,JSON.stringify(s)),t})),delete:e=>Promise.resolve().then((()=>{const t=n();delete t[JSON.stringify(e)],a().setItem(r,JSON.stringify(t))})),clear:()=>Promise.resolve().then((()=>{a().removeItem(r)}))}}function r(e){const t=[...e.caches],a=t.shift();return void 0===a?{get:(e,t,r={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,n,s={miss:()=>Promise.resolve()})=>a.get(e,n,s).catch((()=>r({caches:t}).get(e,n,s))),set:(e,n)=>a.set(e,n).catch((()=>r({caches:t}).set(e,n))),delete:e=>a.delete(e).catch((()=>r({caches:t}).delete(e))),clear:()=>a.clear().catch((()=>r({caches:t}).clear()))}}function a(e={serializable:!0}){let t={};return{get(r,a,n={miss:()=>Promise.resolve()}){const s=JSON.stringify(r);if(s in t)return Promise.resolve(e.serializable?JSON.parse(t[s]):t[s]);const o=a();return o.then((e=>n.miss(e))).then((()=>o))},set:(r,a)=>(t[JSON.stringify(r)]=e.serializable?JSON.stringify(a):a,Promise.resolve(a)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}const n=12e4;function s(e,t="up"){const r=Date.now();return{...e,status:t,lastUpdate:r,isUp:function(){return"up"===t||Date.now()-r>n},isTimedOut:function(){return"timed out"===t&&Date.now()-r<=n}}}function o(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,t||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class i extends Error{constructor(e,t){super(e),o(this,"name","AlgoliaError"),t&&(this.name=t)}}class u extends i{constructor(e,t,r){super(e,r),o(this,"stackTrace",void 0),this.stackTrace=t}}class c extends u{constructor(e){super("Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",e,"RetryError")}}class d extends u{constructor(e,t,r,a="ApiError"){super(e,r,a),o(this,"status",void 0),this.status=t}}class h extends i{constructor(e,t){super(e,"DeserializationError"),o(this,"response",void 0),this.response=t}}class l extends d{constructor(e,t,r,a){super(e,t,a,"DetailedApiError"),o(this,"error",void 0),this.error=r}}function m(e,t,r){const a=function(e){const t=e=>"[object Object]"===Object.prototype.toString.call(e)||"[object Array]"===Object.prototype.toString.call(e);return Object.keys(e).map((r=>`${r}=${encodeURIComponent(t(e[r])?JSON.stringify(e[r]):e[r])}`)).join("&")}(r);let n=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return a.length&&(n+=`?${a}`),n}function g(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function p({hosts:e,hostsCache:t,baseHeaders:r,baseQueryParameters:a,algoliaAgent:n,timeouts:o,requester:i,requestsCache:u,responsesCache:p}){async function w(u,p,w=!0){const P=[],f=function(e,t){if("GET"===e.method||void 0===e.data&&void 0===t.data)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}(u,p),q=function(e,t,r){const a={Accept:"application/json",...e,...t,...r},n={};return Object.keys(a).forEach((e=>{const t=a[e];n[e.toLowerCase()]=t})),n}(r,u.headers,p.headers),I="GET"===u.method?{...u.data,...p.data}:{},D={...a,...u.queryParameters,...I};if(n.value&&(D["x-algolia-agent"]=n.value),p&&p.queryParameters)for(const e of Object.keys(p.queryParameters))p.queryParameters[e]&&"[object Object]"!==Object.prototype.toString.call(p.queryParameters[e])?D[e]=p.queryParameters[e].toString():D[e]=p.queryParameters[e];let y=0;const v=async(e,r)=>{const a=e.pop();if(void 0===a)throw new c(function(e){return e.map((e=>g(e)))}(P));let n=p.timeout;void 0===n&&(n=w?o.read:o.write);const I={data:f,headers:q,method:u.method,url:m(a,u.path,D),connectTimeout:r(y,o.connect),responseTimeout:r(y,n)},S=t=>{const r={request:I,response:t,host:a,triesLeft:e.length};return P.push(r),r},T=await i.send(I);if(function({isTimedOut:e,status:t}){return e||function({isTimedOut:e,status:t}){return!e&&0==~~t}({isTimedOut:e,status:t})||2!=~~(t/100)&&4!=~~(t/100)}(T)){const n=S(T);return T.isTimedOut&&y++,console.log("Retryable failure",g(n)),await t.set(a,s(a,T.isTimedOut?"timed out":"down")),v(e,r)}if(function({status:e}){return 2==~~(e/100)}(T))return function(e){try{return JSON.parse(e.content)}catch(t){throw new h(t.message,e)}}(T);throw S(T),function({content:e,status:t},r){try{const a=JSON.parse(e);return"error"in a?new l(a.message,t,a.error,r):new d(a.message,t,r)}catch(e){}return new d(e,t,r)}(T,P)},S=e.filter((e=>"readWrite"===e.accept||(w?"read"===e.accept:"write"===e.accept))),T=await async function(e){const r=await Promise.all(e.map((e=>t.get(e,(()=>Promise.resolve(s(e))))))),a=r.filter((e=>e.isUp())),n=r.filter((e=>e.isTimedOut())),o=[...a,...n];return{hosts:o.length>0?o:e,getTimeout:(e,t)=>(0===n.length&&0===e?1:n.length+3+e)*t}}(S);return v([...T.hosts].reverse(),T.getTimeout)}return{hostsCache:t,requester:i,timeouts:o,algoliaAgent:n,baseHeaders:r,baseQueryParameters:a,hosts:e,request:function(e,t={}){const n=e.useReadTransporter||"GET"===e.method;if(!n)return w(e,t,n);const s=()=>w(e,t);if(!0!==(t.cacheable||e.cacheable))return s();const o={request:e,requestOptions:t,transporter:{queryParameters:a,headers:r}};return p.get(o,(()=>u.get(o,(()=>u.set(o,s()).then((e=>Promise.all([u.delete(o),e])),(e=>Promise.all([u.delete(o),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>p.set(o,e)})},requestsCache:u,responsesCache:p}}function w({algoliaAgents:e,client:t,version:r}){const a=function(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const r=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(r)&&(t.value=`${t.value}${r}`),t}};return t}(r).add({segment:t,version:r});return e.forEach((e=>a.add(e))),a}const P="1.0.0-alpha.19",f=["us"];e.apiClientVersion=P,e.ingestionClient=function(e,n,s,o){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!n||"string"!=typeof n)throw new Error("`apiKey` is missing.");if(!s||s&&("string"!=typeof s||!f.includes(s)))throw new Error(`\`region\` is required and must be one of the following: ${f.join(", ")}`);return function({appId:e,apiKey:t,authMode:r,algoliaAgents:a,region:n,...s}){const o=function(e,t,r="WithinHeaders"){const a={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers:()=>"WithinHeaders"===r?a:{},queryParameters:()=>"WithinQueryParameters"===r?a:{}}}(e,t,r),i=p({hosts:(u=n,[{url:"data.{region}.algolia.com".replace("{region}",u),accept:"readWrite",protocol:"https"}]),...s,algoliaAgent:{...w({algoliaAgents:a,client:"Ingestion",version:P}),value:""},baseHeaders:{"content-type":"text/plain",...o.headers(),...s.baseHeaders},baseQueryParameters:{...o.queryParameters(),...s.baseQueryParameters}});var u;return{transporter:i,appId:e,clearCache:()=>Promise.all([i.requestsCache.clear(),i.responsesCache.clear()]).then((()=>{})),get _ua(){return i.algoliaAgent.value},addAlgoliaAgent(e,t){i.algoliaAgent.add({segment:e,version:t})},createAuthentication(e,t){if(!e)throw new Error("Parameter `authenticationCreate` is required when calling `createAuthentication`.");const r={method:"POST",path:"/1/authentications",queryParameters:{},headers:{},data:e};return i.request(r,t)},createDestination(e,t){if(!e)throw new Error("Parameter `destinationCreate` is required when calling `createDestination`.");const r={method:"POST",path:"/1/destinations",queryParameters:{},headers:{},data:e};return i.request(r,t)},createSource(e,t){if(!e)throw new Error("Parameter `sourceCreate` is required when calling `createSource`.");if(!e.type)throw new Error("Parameter `sourceCreate.type` is required when calling `createSource`.");if(!e.input)throw new Error("Parameter `sourceCreate.input` is required when calling `createSource`.");const r={method:"POST",path:"/1/sources",queryParameters:{},headers:{},data:e};return i.request(r,t)},createTask(e,t){if(!e)throw new Error("Parameter `taskCreate` is required when calling `createTask`.");if(!e.sourceID)throw new Error("Parameter `taskCreate.sourceID` is required when calling `createTask`.");if(!e.trigger)throw new Error("Parameter `taskCreate.trigger` is required when calling `createTask`.");if(!e.action)throw new Error("Parameter `taskCreate.action` is required when calling `createTask`.");const r={method:"POST",path:"/1/tasks",queryParameters:{},headers:{},data:e};return i.request(r,t)},deleteAuthentication({authenticationID:e},t){if(!e)throw new Error("Parameter `authenticationID` is required when calling `deleteAuthentication`.");const r={method:"DELETE",path:"/1/authentications/{authenticationID}".replace("{authenticationID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},deleteDestination({destinationID:e},t){if(!e)throw new Error("Parameter `destinationID` is required when calling `deleteDestination`.");const r={method:"DELETE",path:"/1/destinations/{destinationID}".replace("{destinationID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},deleteSource({sourceID:e},t){if(!e)throw new Error("Parameter `sourceID` is required when calling `deleteSource`.");const r={method:"DELETE",path:"/1/sources/{sourceID}".replace("{sourceID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},deleteTask({taskID:e},t){if(!e)throw new Error("Parameter `taskID` is required when calling `deleteTask`.");const r={method:"DELETE",path:"/1/tasks/{taskID}".replace("{taskID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},disableTask({taskID:e},t){if(!e)throw new Error("Parameter `taskID` is required when calling `disableTask`.");const r={method:"PUT",path:"/1/tasks/{taskID}/disable".replace("{taskID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},enableTask({taskID:e},t){if(!e)throw new Error("Parameter `taskID` is required when calling `enableTask`.");const r={method:"PUT",path:"/1/tasks/{taskID}/enable".replace("{taskID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},getAuthentication({authenticationID:e},t){if(!e)throw new Error("Parameter `authenticationID` is required when calling `getAuthentication`.");const r={method:"GET",path:"/1/authentications/{authenticationID}".replace("{authenticationID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},getAuthentications({itemsPerPage:e,page:t,type:r,platform:a,sort:n,order:s}={},o){const u={};void 0!==e&&(u.itemsPerPage=e.toString()),void 0!==t&&(u.page=t.toString()),void 0!==r&&(u.type=r.toString()),void 0!==a&&(u.platform=a.toString()),void 0!==n&&(u.sort=n.toString()),void 0!==s&&(u.order=s.toString());const c={method:"GET",path:"/1/authentications",queryParameters:u,headers:{}};return i.request(c,o)},getDestination({destinationID:e},t){if(!e)throw new Error("Parameter `destinationID` is required when calling `getDestination`.");const r={method:"GET",path:"/1/destinations/{destinationID}".replace("{destinationID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},getDestinations({itemsPerPage:e,page:t,type:r,authenticationID:a,sort:n,order:s}={},o){const u={};void 0!==e&&(u.itemsPerPage=e.toString()),void 0!==t&&(u.page=t.toString()),void 0!==r&&(u.type=r.toString()),void 0!==a&&(u.authenticationID=a.toString()),void 0!==n&&(u.sort=n.toString()),void 0!==s&&(u.order=s.toString());const c={method:"GET",path:"/1/destinations",queryParameters:u,headers:{}};return i.request(c,o)},getEvent({runID:e,eventID:t},r){if(!e)throw new Error("Parameter `runID` is required when calling `getEvent`.");if(!t)throw new Error("Parameter `eventID` is required when calling `getEvent`.");const a={method:"GET",path:"/1/runs/{runID}/events/{eventID}".replace("{runID}",encodeURIComponent(e)).replace("{eventID}",encodeURIComponent(t)),queryParameters:{},headers:{}};return i.request(a,r)},getEvents({runID:e,status:t,type:r,sort:a,order:n},s){if(!e)throw new Error("Parameter `runID` is required when calling `getEvents`.");const o="/1/runs/{runID}/events".replace("{runID}",encodeURIComponent(e)),u={};void 0!==t&&(u.status=t.toString()),void 0!==r&&(u.type=r.toString()),void 0!==a&&(u.sort=a.toString()),void 0!==n&&(u.order=n.toString());const c={method:"GET",path:o,queryParameters:u,headers:{}};return i.request(c,s)},getRun({runID:e},t){if(!e)throw new Error("Parameter `runID` is required when calling `getRun`.");const r={method:"GET",path:"/1/runs/{runID}".replace("{runID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},getRuns({itemsPerPage:e,page:t,status:r,taskID:a,sort:n,order:s}={},o){const u={};void 0!==e&&(u.itemsPerPage=e.toString()),void 0!==t&&(u.page=t.toString()),void 0!==r&&(u.status=r.toString()),void 0!==a&&(u.taskID=a.toString()),void 0!==n&&(u.sort=n.toString()),void 0!==s&&(u.order=s.toString());const c={method:"GET",path:"/1/runs",queryParameters:u,headers:{}};return i.request(c,o)},getSource({sourceID:e},t){if(!e)throw new Error("Parameter `sourceID` is required when calling `getSource`.");const r={method:"GET",path:"/1/sources/{sourceID}".replace("{sourceID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},getSources({itemsPerPage:e,page:t,type:r,authenticationID:a,sort:n,order:s}={},o){const u={};void 0!==e&&(u.itemsPerPage=e.toString()),void 0!==t&&(u.page=t.toString()),void 0!==r&&(u.type=r.toString()),void 0!==a&&(u.authenticationID=a.toString()),void 0!==n&&(u.sort=n.toString()),void 0!==s&&(u.order=s.toString());const c={method:"GET",path:"/1/sources",queryParameters:u,headers:{}};return i.request(c,o)},getTask({taskID:e},t){if(!e)throw new Error("Parameter `taskID` is required when calling `getTask`.");const r={method:"GET",path:"/1/tasks/{taskID}".replace("{taskID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},getTasks({itemsPerPage:e,page:t,action:r,enabled:a,sourceID:n,destinationID:s,triggerType:o,sort:u,order:c}={},d){const h={};void 0!==e&&(h.itemsPerPage=e.toString()),void 0!==t&&(h.page=t.toString()),void 0!==r&&(h.action=r.toString()),void 0!==a&&(h.enabled=a.toString()),void 0!==n&&(h.sourceID=n.toString()),void 0!==s&&(h.destinationID=s.toString()),void 0!==o&&(h.triggerType=o.toString()),void 0!==u&&(h.sort=u.toString()),void 0!==c&&(h.order=c.toString());const l={method:"GET",path:"/1/tasks",queryParameters:h,headers:{}};return i.request(l,d)},runTask({taskID:e},t){if(!e)throw new Error("Parameter `taskID` is required when calling `runTask`.");const r={method:"POST",path:"/1/tasks/{taskID}/run".replace("{taskID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return i.request(r,t)},searchAuthentications(e,t){if(!e)throw new Error("Parameter `authenticationSearch` is required when calling `searchAuthentications`.");if(!e.authenticationIDs)throw new Error("Parameter `authenticationSearch.authenticationIDs` is required when calling `searchAuthentications`.");const r={method:"POST",path:"/1/authentications/search",queryParameters:{},headers:{},data:e};return i.request(r,t)},searchDestinations(e,t){if(!e)throw new Error("Parameter `destinationSearch` is required when calling `searchDestinations`.");if(!e.destinationIDs)throw new Error("Parameter `destinationSearch.destinationIDs` is required when calling `searchDestinations`.");const r={method:"POST",path:"/1/destinations/search",queryParameters:{},headers:{},data:e};return i.request(r,t)},searchSources(e,t){if(!e)throw new Error("Parameter `sourceSearch` is required when calling `searchSources`.");if(!e.sourceIDs)throw new Error("Parameter `sourceSearch.sourceIDs` is required when calling `searchSources`.");const r={method:"POST",path:"/1/sources/search",queryParameters:{},headers:{},data:e};return i.request(r,t)},searchTasks(e,t){if(!e)throw new Error("Parameter `taskSearch` is required when calling `searchTasks`.");if(!e.taskIDs)throw new Error("Parameter `taskSearch.taskIDs` is required when calling `searchTasks`.");const r={method:"POST",path:"/1/tasks/search",queryParameters:{},headers:{},data:e};return i.request(r,t)},updateAuthentication({authenticationID:e,authenticationUpdate:t},r){if(!e)throw new Error("Parameter `authenticationID` is required when calling `updateAuthentication`.");if(!t)throw new Error("Parameter `authenticationUpdate` is required when calling `updateAuthentication`.");const a={method:"PUT",path:"/1/authentications/{authenticationID}".replace("{authenticationID}",encodeURIComponent(e)),queryParameters:{},headers:{},data:t};return i.request(a,r)},updateDestination({destinationID:e,destinationUpdate:t},r){if(!e)throw new Error("Parameter `destinationID` is required when calling `updateDestination`.");if(!t)throw new Error("Parameter `destinationUpdate` is required when calling `updateDestination`.");const a={method:"PUT",path:"/1/destinations/{destinationID}".replace("{destinationID}",encodeURIComponent(e)),queryParameters:{},headers:{},data:t};return i.request(a,r)},updateSource({sourceID:e,sourceUpdate:t},r){if(!e)throw new Error("Parameter `sourceID` is required when calling `updateSource`.");if(!t)throw new Error("Parameter `sourceUpdate` is required when calling `updateSource`.");const a={method:"PUT",path:"/1/sources/{sourceID}".replace("{sourceID}",encodeURIComponent(e)),queryParameters:{},headers:{},data:t};return i.request(a,r)},updateTask({taskID:e,taskUpdate:t},r){if(!e)throw new Error("Parameter `taskID` is required when calling `updateTask`.");if(!t)throw new Error("Parameter `taskUpdate` is required when calling `updateTask`.");const a={method:"PUT",path:"/1/tasks/{taskID}".replace("{taskID}",encodeURIComponent(e)),queryParameters:{},headers:{},data:t};return i.request(a,r)}}}({appId:e,apiKey:n,region:s,timeouts:{connect:1e3,read:2e3,write:3e4},requester:{send:function(e){return new Promise((t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>r.setRequestHeader(t,e.headers[t])));const a=(e,a)=>setTimeout((()=>{r.abort(),t({status:0,content:a,isTimedOut:!0})}),e),n=a(e.connectTimeout,"Connection timeout");let s;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===s&&(clearTimeout(n),s=a(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(n),clearTimeout(s),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(n),clearTimeout(s),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:a(),requestsCache:a({serializable:!1}),hostsCache:r({caches:[t({key:`1.0.0-alpha.19-${e}`}),a()]}),...o})},e.isOnDemandTrigger=function(e){return"onDemand"===e.type},e.isScheduleTrigger=function(e){return"schedule"===e.type},e.isSubscriptionTrigger=function(e){return"subscription"===e.type}}));

@@ -38,3 +38,3 @@ import type { CreateClientOptions, RequestOptions } from '@algolia/client-common';

import type { Trigger } from '../model/trigger';
export declare const apiClientVersion = "1.0.0-alpha.18";
export declare const apiClientVersion = "1.0.0-alpha.19";
export declare const REGIONS: readonly ["us"];

@@ -41,0 +41,0 @@ export declare type Region = typeof REGIONS[number];

{
"name": "@algolia/ingestion",
"version": "1.0.0-alpha.18",
"version": "1.0.0-alpha.19",
"description": "JavaScript client for ingestion",

@@ -41,5 +41,5 @@ "repository": "algolia/algoliasearch-client-javascript",

"dependencies": {
"@algolia/client-common": "5.0.0-alpha.44",
"@algolia/requester-browser-xhr": "5.0.0-alpha.44",
"@algolia/requester-node-http": "5.0.0-alpha.44"
"@algolia/client-common": "5.0.0-alpha.45",
"@algolia/requester-browser-xhr": "5.0.0-alpha.45",
"@algolia/requester-node-http": "5.0.0-alpha.45"
},

@@ -46,0 +46,0 @@ "devDependencies": {

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc