Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@holochain/conductor-api

Package Overview
Dependencies
Maintainers
12
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@holochain/conductor-api - npm Package Compare versions

Comparing version 0.0.1 to 0.0.2

3

lib/api/admin.d.ts

@@ -114,2 +114,4 @@ /// <reference types="node" />

export declare type ListActiveAppsResponse = Array<InstalledAppId>;
export declare type ListAppInterfacesRequest = void;
export declare type ListAppInterfacesResponse = Array<number>;
export declare type AgentInfoSigned = any;

@@ -137,2 +139,3 @@ export declare type RequestAgentInfoRequest = {

listActiveApps: Requester<ListActiveAppsRequest, ListActiveAppsResponse>;
listAppInterfaces: Requester<ListAppInterfacesRequest, ListAppInterfacesResponse>;
requestAgentInfo: Requester<RequestAgentInfoRequest, RequestAgentInfoResponse>;

@@ -139,0 +142,0 @@ addAgentInfo: Requester<AddAgentInfoRequest, AddAgentInfoResponse>;

@@ -38,4 +38,5 @@ /**

listActiveApps: Requester<Api.ListActiveAppsRequest, Api.ListActiveAppsResponse>;
listAppInterfaces: Requester<Api.ListAppInterfacesRequest, Api.ListAppInterfacesResponse>;
requestAgentInfo: Requester<Api.RequestAgentInfoRequest, Api.RequestAgentInfoResponse>;
addAgentInfo: Requester<Api.AddAgentInfoRequest, Api.AddAgentInfoResponse>;
}

@@ -49,2 +49,3 @@ "use strict";

this.listActiveApps = this._requester('list_active_apps');
this.listAppInterfaces = this._requester('list_app_interfaces');
this.requestAgentInfo = this._requester('request_agent_info');

@@ -51,0 +52,0 @@ this.addAgentInfo = this._requester('add_agent_info');

26

lib/websocket/app.js
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

@@ -49,3 +30,3 @@ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }

*/
const msgpack = __importStar(require("@msgpack/msgpack"));
const msgpack_1 = require("@msgpack/msgpack");
const client_1 = require("./client");

@@ -72,9 +53,8 @@ const common_1 = require("./common");

input: (req) => {
req.payload = msgpack.encode(req.payload);
return req;
return Object.assign(Object.assign({}, req), { payload: Buffer.from(msgpack_1.encode(req.payload)) });
},
output: (res) => {
return msgpack.decode(res);
return msgpack_1.decode(res);
}
};
//# sourceMappingURL=app.js.map
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

@@ -36,3 +17,3 @@ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }

const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
const msgpack = __importStar(require("@msgpack/msgpack"));
const msgpack_1 = require("@msgpack/msgpack");
/**

@@ -57,6 +38,6 @@ * A Websocket client which can make requests and receive responses,

}
const msg = msgpack.decode(data);
const msg = msgpack_1.decode(data);
if (msg.type === "Signal") {
if (signalCb) {
const decodedMessage = msgpack.decode(msg.data);
const decodedMessage = msgpack_1.decode(msg.data);
// Note: holochain currently returns signals as an array of two values: cellId and the serialized signal payload

@@ -89,5 +70,5 @@ // and this array is nested within the App key within the returned message.

emitSignal(data) {
const encodedMsg = msgpack.encode({
const encodedMsg = msgpack_1.encode({
type: "Signal",
data: msgpack.encode(data),
data: msgpack_1.encode(data),
});

@@ -99,6 +80,6 @@ this.socket.send(encodedMsg);

this.index += 1;
const encodedMsg = msgpack.encode({
const encodedMsg = msgpack_1.encode({
id,
type: "Request",
data: msgpack.encode(data),
data: msgpack_1.encode(data),
});

@@ -124,3 +105,3 @@ const promise = new Promise((fulfill, reject) => {

else {
this.pendingRequests[id].fulfill(msgpack.decode(msg.data));
this.pendingRequests[id].fulfill(msgpack_1.decode(msg.data));
}

@@ -156,4 +137,4 @@ }

const signalTransform = (res) => {
return msgpack.decode(res);
return msgpack_1.decode(res);
};
//# sourceMappingURL=client.js.map
{
"name": "@holochain/conductor-api",
"version": "0.0.1",
"version": "0.0.2",
"description": "Encode/decode messages to/from the Holochain Conductor API over Websocket",

@@ -12,3 +12,3 @@ "repository": {

"scripts": {
"build": "rm -rf ./lib ; tsc -d ",
"build": "rm -rf ./lib ; tsc -d",
"dev": "rm -rf ./lib ; tsc -d -w",

@@ -23,5 +23,4 @@ "doc": "typedoc",

"author": "",
"license": "CAL-1.0",
"dependencies": {
"@msgpack/msgpack": "^2.1.0",
"@msgpack/msgpack": "2.4.0",
"@types/ws": "^7.2.4",

@@ -28,0 +27,0 @@ "isomorphic-ws": "^4.0.1",

@@ -28,3 +28,3 @@ # holochain/conductor-api

### Use AdminWebsocket
```
```typescript
const admin = await AdminWebsocket.connect(`http://localhost:8000`, TIMEOUT)

@@ -35,3 +35,3 @@ await admin.generateAgentPubKey()

### Use AppWebsocket
```
```typescript
const signalCb = (signal: AppSignal) => {

@@ -38,0 +38,0 @@ // impl...

@@ -149,2 +149,5 @@ import { Requester } from "./common"

export type ListAppInterfacesRequest = void
export type ListAppInterfacesResponse = Array<number>
// this type is meant to be opaque

@@ -176,2 +179,3 @@ export type AgentInfoSigned = any

listActiveApps: Requester<ListActiveAppsRequest, ListActiveAppsResponse>
listAppInterfaces: Requester<ListAppInterfacesRequest, ListAppInterfacesResponse>
requestAgentInfo: Requester<RequestAgentInfoRequest, RequestAgentInfoResponse>

@@ -178,0 +182,0 @@ addAgentInfo: Requester<AddAgentInfoRequest, AddAgentInfoResponse>

@@ -22,2 +22,3 @@ /**

import { Transformer, requesterTransformer, Requester } from '../api/common'
import {ListAppInterfacesRequest} from "../api/admin";

@@ -71,2 +72,4 @@ export class AdminWebsocket implements Api.AdminApi {

= this._requester('list_active_apps')
listAppInterfaces: Requester<Api.ListAppInterfacesRequest, Api.ListAppInterfacesResponse>
= this._requester('list_app_interfaces')
requestAgentInfo: Requester<Api.RequestAgentInfoRequest, Api.RequestAgentInfoResponse>

@@ -73,0 +76,0 @@ = this._requester('request_agent_info')

@@ -18,3 +18,3 @@ /**

*/
import * as msgpack from '@msgpack/msgpack';
import { encode, decode} from '@msgpack/msgpack';

@@ -54,9 +54,11 @@ import { AppApi, CallZomeRequest, CallZomeResponse, AppInfoRequest, AppInfoResponse, CallZomeRequestGeneric, CallZomeResponseGeneric, AppSignalCb } from '../api/app'

const callZomeTransform: Transformer<CallZomeRequestGeneric<any>, CallZomeRequestGeneric<Buffer>, CallZomeResponseGeneric<Buffer>, CallZomeResponseGeneric<any>> = {
input: (req: CallZomeRequestGeneric<any>): CallZomeRequestGeneric<Buffer> => {
req.payload = msgpack.encode(req.payload)
return req
input: (req: CallZomeRequestGeneric<any>): CallZomeRequestGeneric<Buffer> => {
return {
...req,
payload: Buffer.from(encode(req.payload))
}
},
output: (res: CallZomeResponseGeneric<Buffer>): CallZomeResponseGeneric<any> => {
return msgpack.decode(res)
return decode(res)
}
}
import Websocket from "isomorphic-ws";
import * as msgpack from "@msgpack/msgpack";
import { encode, decode } from "@msgpack/msgpack";
import { nanoid } from "nanoid";

@@ -32,6 +32,6 @@ import { AppSignal, AppSignalCb, SignalResponseGeneric } from "../api/app";

const msg: any = msgpack.decode(data);
const msg: any = decode(data);
if (msg.type === "Signal") {
if (signalCb) {
const decodedMessage: SignalResponseGeneric<any> = msgpack.decode(
const decodedMessage: SignalResponseGeneric<any> = decode(
msg.data

@@ -68,5 +68,5 @@ );

emitSignal(data: any) {
const encodedMsg = msgpack.encode({
const encodedMsg = encode({
type: "Signal",
data: msgpack.encode(data),
data: encode(data),
});

@@ -79,6 +79,6 @@ this.socket.send(encodedMsg);

this.index += 1;
const encodedMsg = msgpack.encode({
const encodedMsg = encode({
id,
type: "Request",
data: msgpack.encode(data),
data: encode(data),
});

@@ -105,3 +105,3 @@ const promise = new Promise((fulfill, reject) => {

} else {
this.pendingRequests[id].fulfill(msgpack.decode(msg.data));
this.pendingRequests[id].fulfill(decode(msg.data));
}

@@ -145,3 +145,3 @@ } else {

): SignalResponseGeneric<any> => {
return msgpack.decode(res);
return decode(res);
};

@@ -169,2 +169,23 @@ const test = require('tape')

test('can call a zome function twice, reusing args', withConductor(ADMIN_PORT, async t => {
const [installed_app_id, cell_id, nick, client] = await installAppAndDna(ADMIN_PORT)
const info = await client.appInfo({ installed_app_id }, 1000)
t.deepEqual(info.cell_data[0].cell_id, cell_id)
t.equal(info.cell_data[0].cell_nick, nick)
const args = {
// TODO: write a test with a real capability secret.
cap: null,
cell_id,
zome_name: TEST_ZOME_NAME,
fn_name: 'foo',
provenance: fakeAgentPubKey('TODO'),
payload: null,
}
const response = await client.callZome(args, 30000)
t.equal(response, "foo")
const response2 = await client.callZome(args, 30000)
t.equal(response, "foo")
}))
test('can handle canceled response', withConductor(ADMIN_PORT, async t => {

@@ -171,0 +192,0 @@ // const client = await WsClient.connect(`http://localhost:${ADMIN_PORT}`);A

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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