You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

ipfsd-ctl

Package Overview
Dependencies
Maintainers
5
Versions
184
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ipfsd-ctl - npm Package Compare versions

Comparing version
14.0.6
to
14.1.0
+1
-1
dist/index.min.js
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.IpfsdCtl = factory()}(typeof self !== 'undefined' ? self : this, function () {
"use strict";var IpfsdCtl=(()=>{var J=Object.create;var f=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var d=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),F=(e,t)=>{for(var o in t)f(e,o,{get:t[o],enumerable:!0})},O=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of G(t))!B.call(e,n)&&n!==o&&f(e,n,{get:()=>t[n],enumerable:!(r=q(t,n))||r.enumerable});return e};var E=(e,t,o)=>(o=e!=null?J(M(e)):{},O(t||!e||!e.__esModule?f(o,"default",{value:e,enumerable:!0}):o,e)),V=e=>O(f({},"__esModule",{value:!0}),e);var x=d((it,S)=>{"use strict";S.exports=e=>{if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}});var k=d(($,v)=>{"use strict";var h=x(),{hasOwnProperty:A}=Object.prototype,{propertyIsEnumerable:z}=Object,p=(e,t,o)=>Object.defineProperty(e,t,{value:o,writable:!0,enumerable:!0,configurable:!0}),C=$,P={concatArrays:!1,ignoreUndefined:!1},u=e=>{let t=[];for(let o in e)A.call(e,o)&&t.push(o);if(Object.getOwnPropertySymbols){let o=Object.getOwnPropertySymbols(e);for(let r of o)z.call(e,r)&&t.push(r)}return t};function a(e){return Array.isArray(e)?H(e):h(e)?Q(e):e}function H(e){let t=e.slice(0,0);return u(e).forEach(o=>{p(t,o,a(e[o]))}),t}function Q(e){let t=Object.getPrototypeOf(e)===null?Object.create(null):{};return u(e).forEach(o=>{p(t,o,a(e[o]))}),t}var T=(e,t,o,r)=>(o.forEach(n=>{typeof t[n]>"u"&&r.ignoreUndefined||(n in e&&e[n]!==Object.getPrototypeOf(e)?p(e,n,w(e[n],t[n],r)):p(e,n,a(t[n])))}),e),X=(e,t,o)=>{let r=e.slice(0,0),n=0;return[e,t].forEach(s=>{let l=[];for(let i=0;i<s.length;i++)A.call(s,i)&&(l.push(String(i)),s===e?p(r,n++,s[i]):p(r,n++,a(s[i])));r=T(r,s,u(s).filter(i=>!l.includes(i)),o)}),r};function w(e,t,o){return o.concatArrays&&Array.isArray(e)&&Array.isArray(t)?X(e,t,o):!h(t)||!h(e)?a(t):T(e,t,u(t),o)}v.exports=function(...e){let t=w(a(P),this!==C&&this||{},P),o={_:{}};for(let r of e)if(r!==void 0){if(!h(r))throw new TypeError("`"+r+"` is not an Option Object");o=w(o,{_:r},t)}return o._}});var U=d((pt,_)=>{function Y(){return!!(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&process.versions.electron||typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Electron")>=0)}_.exports=Y});var rt={};F(rt,{createFactory:()=>I,createNode:()=>et,createServer:()=>ot});var y=class{options;port;host;constructor(t={port:43134,host:"localhost"}){this.options=t,this.port=this.options.port??43134,this.host=this.options.host??"localhost",console.warn("Server not implemented in the browser")}async start(){return console.warn("Server not implemented in the browser"),this}async stop(){console.warn("Server not implemented in the browser")}},j=y;var N=E(k(),1),R=N.default;var L=E(U(),1),Z=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,K=(0,L.default)();var W=K&&!Z;var D=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!K,at=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,lt=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+"_"+"ENV"]==="test",ft=typeof navigator<"u"&&navigator.product==="ReactNative";var c=class{options;peerInfo;id;disposable;repo;endpoint;_api;initArgs;startArgs;stopArgs;constructor(t){if(t.rpc==null)throw new Error("Please pass an rpc option");this.options=t,this.endpoint=t.endpoint,this.disposable=t.disposable,this.id=t.id,this.repo=t.repo,t.init!=null&&typeof t.init!="boolean"&&(this.initArgs=t.init),t.start!=null&&typeof t.start!="boolean"&&(this.startArgs=t.start),t.stop!=null&&(this.stopArgs=t.stop)}get api(){if(this._api==null)throw new Error("Not started");return this._api}async info(){let t=await fetch(`${this.endpoint}/info?${new URLSearchParams({id:this.id})}`,{method:"GET"});if(!t.ok)throw new Error(`Error getting remote kubo info - ${await t.text()}`);return t.json()}async init(t){let o=await fetch(`${this.endpoint}/init?${new URLSearchParams({id:this.id})}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...this.initArgs??{},...t??{}})});if(!o.ok)throw new Error(`Error initializing remote kubo - ${await o.text()}`)}async start(t){let o=await fetch(`${this.endpoint}/start?${new URLSearchParams({id:this.id})}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...this.startArgs??{},...t??{}})});if(!o.ok)throw new Error(`Error starting remote kubo - ${await o.text()}`);let r=await o.json();this._api=this.options.rpc(r.api)}async stop(t){let o=await fetch(`${this.endpoint}/stop?${new URLSearchParams({id:this.id})}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...this.stopArgs??{},...t??{}})});if(!o.ok)throw new Error(`Error stopping remote kubo - ${await o.text()}`);this.disposable&&await this.cleanup()}async cleanup(){let t=await fetch(`${this.endpoint}/cleanup?${new URLSearchParams({id:this.id})}`,{method:"POST"});if(!t.ok)throw new Error(`Error cleaning up remote kubo - ${await t.text()}`)}};var b=R.bind({ignoreUndefined:!0}),tt={endpoint:process.env.IPFSD_CTL_SERVER??"http://localhost:43134",remote:!D&&!W,disposable:!0,test:!1,type:"kubo",env:{},args:[],forceKill:!0,forceKillTimeout:5e3},m=class{options;controllers;overrides;constructor(t={},o={}){this.options=b({},tt,t),this.overrides=b({kubo:this.options},o),this.controllers=[]}async spawn(t){let o=t?.type??this.options.type??"kubo",r=b({},this.options,this.overrides[o],t),n;if(o==="kubo")if(r.remote===!0){let l=await(await fetch(`${r.endpoint}/spawn`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...r,remote:!1})})).json();n=new c({...r,...l})}else n=new c(r);if(n==null)throw new Error(`Unsupported type "${o}" - configured types [${[...new Set([this.options.type,...Object.keys(this.overrides)].filter(Boolean))].join(", ")}]`);return this.controllers.push(n),r.init!==!1&&await n.init(r.init),r.start!==!1&&await n.start(r.start),n}async clean(){await Promise.all(this.controllers.map(async t=>t.stop())),this.controllers=[]}},g=m;function I(e,t){return new g(e,t)}async function et(e){return new g().spawn(e)}var ot=(e,t={},o={})=>{let r;return typeof e=="number"?r=e:e!=null&&(r=e.port),new j({port:r,host:"127.0.0.1"},()=>I(t,o))};return V(rt);})();
"use strict";var IpfsdCtl=(()=>{var J=Object.create;var f=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var d=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),F=(e,t)=>{for(var o in t)f(e,o,{get:t[o],enumerable:!0})},O=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of G(t))!B.call(e,n)&&n!==o&&f(e,n,{get:()=>t[n],enumerable:!(r=q(t,n))||r.enumerable});return e};var E=(e,t,o)=>(o=e!=null?J(M(e)):{},O(t||!e||!e.__esModule?f(o,"default",{value:e,enumerable:!0}):o,e)),V=e=>O(f({},"__esModule",{value:!0}),e);var x=d((it,S)=>{"use strict";S.exports=e=>{if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}});var k=d(($,v)=>{"use strict";var h=x(),{hasOwnProperty:A}=Object.prototype,{propertyIsEnumerable:z}=Object,p=(e,t,o)=>Object.defineProperty(e,t,{value:o,writable:!0,enumerable:!0,configurable:!0}),C=$,P={concatArrays:!1,ignoreUndefined:!1},u=e=>{let t=[];for(let o in e)A.call(e,o)&&t.push(o);if(Object.getOwnPropertySymbols){let o=Object.getOwnPropertySymbols(e);for(let r of o)z.call(e,r)&&t.push(r)}return t};function a(e){return Array.isArray(e)?H(e):h(e)?Q(e):e}function H(e){let t=e.slice(0,0);return u(e).forEach(o=>{p(t,o,a(e[o]))}),t}function Q(e){let t=Object.getPrototypeOf(e)===null?Object.create(null):{};return u(e).forEach(o=>{p(t,o,a(e[o]))}),t}var T=(e,t,o,r)=>(o.forEach(n=>{typeof t[n]>"u"&&r.ignoreUndefined||(n in e&&e[n]!==Object.getPrototypeOf(e)?p(e,n,w(e[n],t[n],r)):p(e,n,a(t[n])))}),e),X=(e,t,o)=>{let r=e.slice(0,0),n=0;return[e,t].forEach(s=>{let l=[];for(let i=0;i<s.length;i++)A.call(s,i)&&(l.push(String(i)),s===e?p(r,n++,s[i]):p(r,n++,a(s[i])));r=T(r,s,u(s).filter(i=>!l.includes(i)),o)}),r};function w(e,t,o){return o.concatArrays&&Array.isArray(e)&&Array.isArray(t)?X(e,t,o):!h(t)||!h(e)?a(t):T(e,t,u(t),o)}v.exports=function(...e){let t=w(a(P),this!==C&&this||{},P),o={_:{}};for(let r of e)if(r!==void 0){if(!h(r))throw new TypeError("`"+r+"` is not an Option Object");o=w(o,{_:r},t)}return o._}});var U=d((pt,_)=>{function Y(){return!!(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&process.versions.electron||typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Electron")>=0)}_.exports=Y});var rt={};F(rt,{createFactory:()=>I,createNode:()=>et,createServer:()=>ot});var y=class{options;port;host;constructor(t={port:43134,host:"localhost"}){this.options=t,this.port=this.options.port??43134,this.host=this.options.host??"localhost",console.warn("Server not implemented in the browser")}async start(){return console.warn("Server not implemented in the browser"),this}async stop(){console.warn("Server not implemented in the browser")}},j=y;var N=E(k(),1),R=N.default;var L=E(U(),1),Z=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,K=(0,L.default)();var W=K&&!Z;var D=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!K,at=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,lt=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+"_"+"ENV"]==="test",ft=typeof navigator<"u"&&navigator.product==="ReactNative";var c=class{options;peerInfo;id;disposable;repo;endpoint;_api;initArgs;startArgs;stopArgs;constructor(t){if(t.rpc==null)throw new Error("Please pass an rpc option");this.options=t,this.endpoint=t.endpoint,this.disposable=t.disposable,this.id=t.id,this.repo=t.repo,t.init!=null&&typeof t.init!="boolean"&&(this.initArgs=t.init),t.start!=null&&typeof t.start!="boolean"&&(this.startArgs=t.start),t.stop!=null&&(this.stopArgs=t.stop)}get api(){if(this._api==null)throw new Error("Not started");return this._api}async info(){let t=await fetch(`${this.endpoint}/info?${new URLSearchParams({id:this.id})}`,{method:"GET"});if(!t.ok)throw new Error(`Error getting remote kubo info - ${await t.text()}`);return t.json()}async init(t){let o=await fetch(`${this.endpoint}/init?${new URLSearchParams({id:this.id})}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...this.initArgs??{},...t??{}})});if(!o.ok)throw new Error(`Error initializing remote kubo - ${await o.text()}`)}async start(t){let o=await fetch(`${this.endpoint}/start?${new URLSearchParams({id:this.id})}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...this.startArgs??{},...t??{}})});if(!o.ok)throw new Error(`Error starting remote kubo - ${await o.text()}`);let r=await o.json();this._api=this.options.rpc(r.api)}async stop(t){let o=await fetch(`${this.endpoint}/stop?${new URLSearchParams({id:this.id})}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...this.stopArgs??{},...t??{}})});if(!o.ok)throw new Error(`Error stopping remote kubo - ${await o.text()}`);this.disposable&&await this.cleanup()}async cleanup(){let t=await fetch(`${this.endpoint}/cleanup?${new URLSearchParams({id:this.id})}`,{method:"POST"});if(!t.ok)throw new Error(`Error cleaning up remote kubo - ${await t.text()}`)}};var b=R.bind({ignoreUndefined:!0}),tt={endpoint:process.env.IPFSD_CTL_SERVER??"http://localhost:43134",remote:!D&&!W,disposable:!0,test:!1,type:"kubo",env:{},args:[],forceKill:!0,forceKillTimeout:5e3},m=class{options;controllers;overrides;constructor(t={},o={}){this.options=b({},tt,t),this.overrides=b({kubo:this.options},o),this.controllers=[]}async spawn(t){let o=t?.type??this.options.type??"kubo",r=b({},this.options,this.overrides[o],t),n;if(o==="kubo")if(r.remote===!0){let l=await(await fetch(`${r.endpoint}/spawn`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...r,remote:!1})})).json();n=new c({...r,...l})}else n=new c(r);if(n==null)throw new Error(`Unsupported type "${o}" - configured types [${[...new Set([this.options.type,...Object.keys(this.overrides)].filter(Boolean))].join(", ")}]`);return this.controllers.push(n),r.init!==!1&&await n.init(r.init),r.start!==!1&&await n.start(r.start),n}async clean(){await Promise.all(this.controllers.map(async t=>t.stop())),this.controllers=[]}},g=m;function I(e,t){return new g(e,t)}async function et(e){return new g().spawn(e)}var ot=(e,t={},o={})=>{let r;return typeof e=="number"?r=e:e!=null&&(r=e.port),new j({port:r,host:"127.0.0.1"},I(t,o))};return V(rt);})();
return IpfsdCtl}));

@@ -1,5 +0,5 @@

import type { Factory } from '../index.js';
import type { Node, Factory } from '../index.js';
import type { Server } from '@hapi/hapi';
declare const _default: (server: Server, createFactory: () => Factory | Promise<Factory>) => void;
declare const _default: (server: Server, ipfsd: Factory, nodes: Record<string, Node>) => void;
export default _default;
//# sourceMappingURL=routes.d.ts.map

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

{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/endpoint/routes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;iCAyBhB,MAAM,iBAAiB,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,KAAG,IAAI;AAAtF,wBAqIC"}
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/endpoint/routes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;iCAuBhB,MAAM,SAAS,OAAO,SAAS,OAAO,MAAM,EAAE,IAAI,CAAC,KAAG,IAAI;AAAlF,wBAoIC"}

@@ -24,4 +24,3 @@ import boom from '@hapi/boom';

};
const nodes = {};
export default (server, createFactory) => {
export default (server, ipfsd, nodes) => {
/**

@@ -36,3 +35,2 @@ * Spawn a controller

try {
const ipfsd = await createFactory();
const id = nanoid();

@@ -39,0 +37,0 @@ nodes[id] = await ipfsd.spawn({

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

{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/endpoint/routes.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/endpoint/routes.ts"],"names":[],"mappings":"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"}

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

import type { Factory } from '../index.js';
interface CreateFactory {
(): Factory;
}
import type { Node, Factory } from '../index.js';
export interface ServerInit {

@@ -17,4 +14,5 @@ port?: number;

host: string;
private readonly createFactory;
constructor(options: ServerInit | undefined, createFactory: CreateFactory);
private readonly ipfsd;
readonly nodes: Record<string, Node>;
constructor(options: ServerInit | undefined, factory: Factory);
/**

@@ -30,4 +28,8 @@ * Start the server

}): Promise<void>;
/**
* Stop any nodes created by this server
*/
clean(): Promise<void>;
}
export default Server;
//# sourceMappingURL=server.d.ts.map

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

{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/endpoint/server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,UAAU,aAAa;IACrB,IAAI,OAAO,CAAA;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,cAAM,MAAM;IACV,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,MAAM,CAAoB;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;gBAEhC,OAAO,wBAAiD,EAAE,aAAa,EAAE,aAAa;IAQnG;;OAEG;IACG,KAAK,CAAE,IAAI,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB/C;;OAEG;IACG,IAAI,CAAE,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAK1D;AAED,eAAe,MAAM,CAAA"}
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/endpoint/server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEhD,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,cAAM,MAAM;IACV,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,MAAM,CAAoB;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,SAAgB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;gBAE9B,OAAO,wBAAiD,EAAE,OAAO,EAAE,OAAO;IASvF;;OAEG;IACG,KAAK,CAAE,IAAI,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB/C;;OAEG;IACG,IAAI,CAAE,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;CAS9B;AAED,eAAe,MAAM,CAAA"}

@@ -11,4 +11,5 @@ import Hapi from '@hapi/hapi';

host;
createFactory;
constructor(options = { port: 43134, host: 'localhost' }, createFactory) {
ipfsd;
nodes;
constructor(options = { port: 43134, host: 'localhost' }, factory) {
this.options = options;

@@ -18,3 +19,4 @@ this.server = null;

this.host = this.options.host ?? 'localhost';
this.createFactory = createFactory;
this.ipfsd = factory;
this.nodes = {};
}

@@ -33,3 +35,3 @@ /**

});
routes(this.server, this.createFactory);
routes(this.server, this.ipfsd, this.nodes);
await this.server.start();

@@ -45,5 +47,17 @@ return this;

}
await this.clean();
}
/**
* Stop any nodes created by this server
*/
async clean() {
await this.ipfsd.clean();
// remove references to nodes
for (const key of Object.getOwnPropertyNames(this.nodes)) {
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
delete this.nodes[key];
}
}
}
export default Server;
//# sourceMappingURL=server.js.map

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

{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/endpoint/server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,YAAY,CAAA;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAA;AAYhC;;GAEG;AACH,MAAM,MAAM;IACO,OAAO,CAAY;IAC5B,MAAM,CAAoB;IAC3B,IAAI,CAAQ;IACZ,IAAI,CAAQ;IACF,aAAa,CAAe;IAE7C,YAAa,UAAsB,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAA4B;QACjG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,CAAA;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,CAAA;QAC5C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAE,IAAI,GAAG,IAAI,CAAC,IAAI;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC;YAC5B,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI;aACX;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAEvC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QAEzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAE,OAA6B;QACvC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;CACF;AAED,eAAe,MAAM,CAAA"}
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/endpoint/server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,YAAY,CAAA;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAA;AAQhC;;GAEG;AACH,MAAM,MAAM;IACO,OAAO,CAAY;IAC5B,MAAM,CAAoB;IAC3B,IAAI,CAAQ;IACZ,IAAI,CAAQ;IACF,KAAK,CAAS;IACf,KAAK,CAAsB;IAE3C,YAAa,UAAsB,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,OAAgB;QACrF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,CAAA;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,CAAA;QAC5C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAE,IAAI,GAAG,IAAI,CAAC,IAAI;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC;YAC5B,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI;aACX;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAE3C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QAEzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAE,OAA6B;QACvC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACjC,CAAC;QAED,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAExB,6BAA6B;QAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,gEAAgE;YAChE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;CACF;AAED,eAAe,MAAM,CAAA"}

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

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}

@@ -146,6 +146,4 @@ /**

host: '127.0.0.1'
}, () => {
return createFactory(factoryOptions, factoryOverrides);
});
}, createFactory(factoryOptions, factoryOverrides));
};
//# sourceMappingURL=index.js.map

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

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwHG;AAEH,OAAO,MAAM,MAAM,sBAAsB,CAAA;AACzC,OAAO,cAAc,MAAM,cAAc,CAAA;AAGzC,cAAc,iBAAiB,CAAA;AAsI/B,MAAM,UAAU,aAAa,CAAE,OAAqB,EAAE,SAAgC;IACpF,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;AAC/C,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAE,OAAa;IAC7C,MAAM,CAAC,GAAG,IAAI,cAAc,EAAE,CAAA;IAC9B,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAmC,EAAE,iBAA4C,EAAE,EAAE,mBAAyC,EAAE,EAAU,EAAE;IACvK,IAAI,IAAwB,CAAA;IAE5B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,IAAI,GAAG,OAAO,CAAA;IAChB,CAAC;SAAM,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IACrB,CAAC;IAED,OAAO,IAAI,MAAM,CAAC;QAChB,IAAI;QACJ,IAAI,EAAE,WAAW;KAClB,EAAE,GAAG,EAAE;QACN,OAAO,aAAa,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwHG;AAEH,OAAO,MAAM,MAAM,sBAAsB,CAAA;AACzC,OAAO,cAAc,MAAM,cAAc,CAAA;AAGzC,cAAc,iBAAiB,CAAA;AAsI/B,MAAM,UAAU,aAAa,CAAE,OAAqB,EAAE,SAAgC;IACpF,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;AAC/C,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAE,OAAa;IAC7C,MAAM,CAAC,GAAG,IAAI,cAAc,EAAE,CAAA;IAC9B,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAmC,EAAE,iBAA4C,EAAE,EAAE,mBAAyC,EAAE,EAAU,EAAE;IACvK,IAAI,IAAwB,CAAA;IAE5B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,IAAI,GAAG,OAAO,CAAA;IAChB,CAAC;SAAM,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IACrB,CAAC;IAED,OAAO,IAAI,MAAM,CAAC;QAChB,IAAI;QACJ,IAAI,EAAE,WAAW;KAClB,EAAE,aAAa,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAA;AACrD,CAAC,CAAA"}
{
"name": "ipfsd-ctl",
"version": "14.0.6",
"version": "14.1.0",
"description": "Spawn IPFS Daemons, Kubo or...",

@@ -5,0 +5,0 @@ "license": "Apache-2.0 OR MIT",

@@ -29,5 +29,3 @@ import boom from '@hapi/boom'

const nodes: Record<string, Node> = {}
export default (server: Server, createFactory: () => Factory | Promise<Factory>): void => {
export default (server: Server, ipfsd: Factory, nodes: Record<string, Node>): void => {
/**

@@ -42,3 +40,2 @@ * Spawn a controller

try {
const ipfsd = await createFactory()
const id = nanoid()

@@ -45,0 +42,0 @@ nodes[id] = await ipfsd.spawn({

import Hapi from '@hapi/hapi'
import routes from './routes.js'
import type { Factory } from '../index.js'
import type { Node, Factory } from '../index.js'
interface CreateFactory {
(): Factory
}
export interface ServerInit {

@@ -22,5 +18,6 @@ port?: number

public host: string
private readonly createFactory: CreateFactory
private readonly ipfsd: Factory
public readonly nodes: Record<string, Node>
constructor (options: ServerInit = { port: 43134, host: 'localhost' }, createFactory: CreateFactory) {
constructor (options: ServerInit = { port: 43134, host: 'localhost' }, factory: Factory) {
this.options = options

@@ -30,3 +27,4 @@ this.server = null

this.host = this.options.host ?? 'localhost'
this.createFactory = createFactory
this.ipfsd = factory
this.nodes = {}
}

@@ -47,3 +45,3 @@

routes(this.server, this.createFactory)
routes(this.server, this.ipfsd, this.nodes)

@@ -62,5 +60,20 @@ await this.server.start()

}
await this.clean()
}
/**
* Stop any nodes created by this server
*/
async clean (): Promise<void> {
await this.ipfsd.clean()
// remove references to nodes
for (const key of Object.getOwnPropertyNames(this.nodes)) {
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
delete this.nodes[key]
}
}
}
export default Server

@@ -289,5 +289,3 @@ /**

host: '127.0.0.1'
}, () => {
return createFactory(factoryOptions, factoryOverrides)
})
}, createFactory(factoryOptions, factoryOverrides))
}