Socket
Socket
Sign inDemoInstall

@solana/rpc-transport

Package Overview
Dependencies
Maintainers
14
Versions
602
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@solana/rpc-transport - npm Package Compare versions

Comparing version 2.0.0-experimental.6d18167 to 2.0.0-experimental.6d27574

dist/types/apis/api-types.d.ts

77

dist/index.browser.js
// ../build-scripts/env-shim.ts
var __DEV__ = /* @__PURE__ */ (() => process["env"].NODE_ENV === "development")();
// src/apis/methods/methods-api.ts
function createJsonRpcApi(config) {
return new Proxy({}, {
defineProperty() {
return false;
},
deleteProperty() {
return false;
},
get(...args) {
const [_, p] = args;
const methodName = p.toString();
return function(...rawParams) {
const params = config?.parametersTransformer ? config?.parametersTransformer(rawParams, methodName) : rawParams;
const responseTransformer = config?.responseTransformer ? config?.responseTransformer : (rawResponse) => rawResponse;
return {
methodName,
params,
responseTransformer
};
};
}
});
}
// src/apis/subscriptions/subscriptions-api.ts
function createJsonRpcSubscriptionsApi(config) {
return new Proxy({}, {
defineProperty() {
return false;
},
deleteProperty() {
return false;
},
get(...args) {
const [_, p] = args;
const notificationName = p.toString();
return function(...rawParams) {
const params = config?.parametersTransformer ? config?.parametersTransformer(rawParams, notificationName) : rawParams;
const responseTransformer = config?.responseTransformer ? config?.responseTransformer : (rawResponse) => rawResponse;
const subscribeMethodName = config?.subscribeNotificationNameTransformer ? config?.subscribeNotificationNameTransformer(notificationName) : notificationName;
const unsubscribeMethodName = config?.unsubscribeNotificationNameTransformer ? config?.unsubscribeNotificationNameTransformer(notificationName) : notificationName;
return {
params,
responseTransformer,
subscribeMethodName,
unsubscribeMethodName
};
};
}
});
}
// src/json-rpc-errors.ts
var SolanaJsonRpcError = class extends Error {
code;
data;
constructor(details) {

@@ -39,3 +94,3 @@ super(`JSON-RPC 2.0 error (${details.code}): ${details.message}`);

async send(options) {
const { methodName, params, responseProcessor } = pendingRequest;
const { methodName, params, responseTransformer } = pendingRequest;
const payload = createJsonRpcMessage(methodName, params);

@@ -49,3 +104,3 @@ const response = await rpcConfig.transport({

} else {
return responseProcessor ? responseProcessor(response.result) : response.result;
return responseTransformer ? responseTransformer(response.result, methodName) : response.result;
}

@@ -89,3 +144,3 @@ }

}
function createPendingRpcSubscription(rpcConfig, { params, subscribeMethodName, unsubscribeMethodName, responseProcessor }) {
function createPendingRpcSubscription(rpcConfig, { params, subscribeMethodName, unsubscribeMethodName, responseTransformer }) {
return {

@@ -136,3 +191,3 @@ async subscribe({ abortSignal }) {

const notification = message.params.result;
yield responseProcessor ? responseProcessor(notification) : notification;
yield responseTransformer ? responseTransformer(notification, subscribeMethodName) : notification;
}

@@ -180,2 +235,3 @@ }

var SolanaHttpError = class extends Error {
statusCode;
constructor(details) {

@@ -242,12 +298,6 @@ super(`HTTP error (${details.statusCode}): ${details.message}`);

// src/transports/http/http-transport.ts
function createHttpTransport({ httpAgentNodeOnly, headers, url }) {
function createHttpTransport({ headers, url }) {
if (__DEV__ && headers) {
assertIsAllowedHttpRequestHeaders(headers);
}
const agent = void 0;
if (__DEV__ && httpAgentNodeOnly != null) {
console.warn(
"createHttpTransport(): The `httpAgentNodeOnly` config you supplied has been ignored; HTTP agents are only usable in Node environments."
);
}
const customHeaders = headers && normalizeHeaders(headers);

@@ -260,3 +310,2 @@ return async function makeHttpRequest({

const requestInfo = {
agent,
body,

@@ -289,3 +338,3 @@ headers: {

var EXPLICIT_ABORT_TOKEN = Symbol(
__DEV__ ? "This symbol is thrown from a socket's iterator when the connection is explicity aborted by the user" : void 0
__DEV__ ? "This symbol is thrown from a socket's iterator when the connection is explicitly aborted by the user" : void 0
);

@@ -457,4 +506,4 @@ async function createWebSocketConnection({

export { createHttpTransport, createJsonRpc, createJsonSubscriptionRpc, createWebSocketTransport };
export { createHttpTransport, createJsonRpc, createJsonRpcApi, createJsonRpcSubscriptionsApi, createJsonSubscriptionRpc, createWebSocketTransport };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.browser.js.map
// ../build-scripts/env-shim.ts
var __DEV__ = /* @__PURE__ */ (() => process["env"].NODE_ENV === "development")();
// src/apis/methods/methods-api.ts
function createJsonRpcApi(config) {
return new Proxy({}, {
defineProperty() {
return false;
},
deleteProperty() {
return false;
},
get(...args) {
const [_, p] = args;
const methodName = p.toString();
return function(...rawParams) {
const params = config?.parametersTransformer ? config?.parametersTransformer(rawParams, methodName) : rawParams;
const responseTransformer = config?.responseTransformer ? config?.responseTransformer : (rawResponse) => rawResponse;
return {
methodName,
params,
responseTransformer
};
};
}
});
}
// src/apis/subscriptions/subscriptions-api.ts
function createJsonRpcSubscriptionsApi(config) {
return new Proxy({}, {
defineProperty() {
return false;
},
deleteProperty() {
return false;
},
get(...args) {
const [_, p] = args;
const notificationName = p.toString();
return function(...rawParams) {
const params = config?.parametersTransformer ? config?.parametersTransformer(rawParams, notificationName) : rawParams;
const responseTransformer = config?.responseTransformer ? config?.responseTransformer : (rawResponse) => rawResponse;
const subscribeMethodName = config?.subscribeNotificationNameTransformer ? config?.subscribeNotificationNameTransformer(notificationName) : notificationName;
const unsubscribeMethodName = config?.unsubscribeNotificationNameTransformer ? config?.unsubscribeNotificationNameTransformer(notificationName) : notificationName;
return {
params,
responseTransformer,
subscribeMethodName,
unsubscribeMethodName
};
};
}
});
}
// src/json-rpc-errors.ts
var SolanaJsonRpcError = class extends Error {
code;
data;
constructor(details) {

@@ -39,3 +94,3 @@ super(`JSON-RPC 2.0 error (${details.code}): ${details.message}`);

async send(options) {
const { methodName, params, responseProcessor } = pendingRequest;
const { methodName, params, responseTransformer } = pendingRequest;
const payload = createJsonRpcMessage(methodName, params);

@@ -49,3 +104,3 @@ const response = await rpcConfig.transport({

} else {
return responseProcessor ? responseProcessor(response.result) : response.result;
return responseTransformer ? responseTransformer(response.result, methodName) : response.result;
}

@@ -89,3 +144,3 @@ }

}
function createPendingRpcSubscription(rpcConfig, { params, subscribeMethodName, unsubscribeMethodName, responseProcessor }) {
function createPendingRpcSubscription(rpcConfig, { params, subscribeMethodName, unsubscribeMethodName, responseTransformer }) {
return {

@@ -136,3 +191,3 @@ async subscribe({ abortSignal }) {

const notification = message.params.result;
yield responseProcessor ? responseProcessor(notification) : notification;
yield responseTransformer ? responseTransformer(notification, subscribeMethodName) : notification;
}

@@ -180,2 +235,3 @@ }

var SolanaHttpError = class extends Error {
statusCode;
constructor(details) {

@@ -242,12 +298,6 @@ super(`HTTP error (${details.statusCode}): ${details.message}`);

// src/transports/http/http-transport.ts
function createHttpTransport({ httpAgentNodeOnly, headers, url }) {
function createHttpTransport({ headers, url }) {
if (__DEV__ && headers) {
assertIsAllowedHttpRequestHeaders(headers);
}
const agent = void 0;
if (__DEV__ && httpAgentNodeOnly != null) {
console.warn(
"createHttpTransport(): The `httpAgentNodeOnly` config you supplied has been ignored; HTTP agents are only usable in Node environments."
);
}
const customHeaders = headers && normalizeHeaders(headers);

@@ -260,3 +310,2 @@ return async function makeHttpRequest({

const requestInfo = {
agent,
body,

@@ -289,3 +338,3 @@ headers: {

var EXPLICIT_ABORT_TOKEN = Symbol(
__DEV__ ? "This symbol is thrown from a socket's iterator when the connection is explicity aborted by the user" : void 0
__DEV__ ? "This symbol is thrown from a socket's iterator when the connection is explicitly aborted by the user" : void 0
);

@@ -457,4 +506,4 @@ async function createWebSocketConnection({

export { createHttpTransport, createJsonRpc, createJsonSubscriptionRpc, createWebSocketTransport };
export { createHttpTransport, createJsonRpc, createJsonRpcApi, createJsonRpcSubscriptionsApi, createJsonSubscriptionRpc, createWebSocketTransport };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.native.js.map

102

dist/index.node.js

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

import t from 'node-fetch';
import e from 'ws';
import e2 from 'ws';

@@ -7,4 +6,59 @@ // ../build-scripts/env-shim.ts

// src/apis/methods/methods-api.ts
function createJsonRpcApi(config) {
return new Proxy({}, {
defineProperty() {
return false;
},
deleteProperty() {
return false;
},
get(...args) {
const [_, p] = args;
const methodName = p.toString();
return function(...rawParams) {
const params = config?.parametersTransformer ? config?.parametersTransformer(rawParams, methodName) : rawParams;
const responseTransformer = config?.responseTransformer ? config?.responseTransformer : (rawResponse) => rawResponse;
return {
methodName,
params,
responseTransformer
};
};
}
});
}
// src/apis/subscriptions/subscriptions-api.ts
function createJsonRpcSubscriptionsApi(config) {
return new Proxy({}, {
defineProperty() {
return false;
},
deleteProperty() {
return false;
},
get(...args) {
const [_, p] = args;
const notificationName = p.toString();
return function(...rawParams) {
const params = config?.parametersTransformer ? config?.parametersTransformer(rawParams, notificationName) : rawParams;
const responseTransformer = config?.responseTransformer ? config?.responseTransformer : (rawResponse) => rawResponse;
const subscribeMethodName = config?.subscribeNotificationNameTransformer ? config?.subscribeNotificationNameTransformer(notificationName) : notificationName;
const unsubscribeMethodName = config?.unsubscribeNotificationNameTransformer ? config?.unsubscribeNotificationNameTransformer(notificationName) : notificationName;
return {
params,
responseTransformer,
subscribeMethodName,
unsubscribeMethodName
};
};
}
});
}
// src/json-rpc-errors.ts
var SolanaJsonRpcError = class extends Error {
code;
data;
constructor(details) {

@@ -43,3 +97,3 @@ super(`JSON-RPC 2.0 error (${details.code}): ${details.message}`);

async send(options) {
const { methodName, params, responseProcessor } = pendingRequest;
const { methodName, params, responseTransformer } = pendingRequest;
const payload = createJsonRpcMessage(methodName, params);

@@ -53,3 +107,3 @@ const response = await rpcConfig.transport({

} else {
return responseProcessor ? responseProcessor(response.result) : response.result;
return responseTransformer ? responseTransformer(response.result, methodName) : response.result;
}

@@ -93,3 +147,3 @@ }

}
function createPendingRpcSubscription(rpcConfig, { params, subscribeMethodName, unsubscribeMethodName, responseProcessor }) {
function createPendingRpcSubscription(rpcConfig, { params, subscribeMethodName, unsubscribeMethodName, responseTransformer }) {
return {

@@ -140,3 +194,3 @@ async subscribe({ abortSignal }) {

const notification = message.params.result;
yield responseProcessor ? responseProcessor(notification) : notification;
yield responseTransformer ? responseTransformer(notification, subscribeMethodName) : notification;
}

@@ -178,6 +232,9 @@ }

}
var o = typeof globalThis.fetch == "function" ? globalThis.fetch : t;
// ../fetch-impl/dist/index.node.js
var e = globalThis.fetch;
// src/transports/http/http-transport-errors.ts
var SolanaHttpError = class extends Error {
statusCode;
constructor(details) {

@@ -244,12 +301,6 @@ super(`HTTP error (${details.statusCode}): ${details.message}`);

// src/transports/http/http-transport.ts
function createHttpTransport({ httpAgentNodeOnly, headers, url }) {
function createHttpTransport({ headers, url }) {
if (__DEV__ && headers) {
assertIsAllowedHttpRequestHeaders(headers);
}
const agent = httpAgentNodeOnly ;
if (__DEV__ && httpAgentNodeOnly != null) {
console.warn(
"createHttpTransport(): The `httpAgentNodeOnly` config you supplied has been ignored; HTTP agents are only usable in Node environments."
);
}
const customHeaders = headers && normalizeHeaders(headers);

@@ -262,3 +313,2 @@ return async function makeHttpRequest({

const requestInfo = {
agent,
body,

@@ -275,3 +325,3 @@ headers: {

};
const response = await o(url, requestInfo);
const response = await e(url, requestInfo);
if (!response.ok) {

@@ -286,7 +336,7 @@ throw new SolanaHttpError({

}
var t2 = e;
var t = e2;
// src/transports/websocket/websocket-connection.ts
var EXPLICIT_ABORT_TOKEN = Symbol(
__DEV__ ? "This symbol is thrown from a socket's iterator when the connection is explicity aborted by the user" : void 0
__DEV__ ? "This symbol is thrown from a socket's iterator when the connection is explicitly aborted by the user" : void 0
);

@@ -313,3 +363,3 @@ async function createWebSocketConnection({

errorAndClearAllIteratorStates(EXPLICIT_ABORT_TOKEN);
if (webSocket.readyState !== t2.CLOSED && webSocket.readyState !== t2.CLOSING) {
if (webSocket.readyState !== t.CLOSED && webSocket.readyState !== t.CLOSING) {
webSocket.close(1e3);

@@ -342,7 +392,7 @@ }

const message = JSON.stringify(payload);
if (!bufferDrainWatcher && webSocket.readyState === t2.OPEN && webSocket.bufferedAmount > sendBufferHighWatermark) {
if (!bufferDrainWatcher && webSocket.readyState === t.OPEN && webSocket.bufferedAmount > sendBufferHighWatermark) {
let onCancel;
const promise = new Promise((resolve2, reject2) => {
const intervalId = setInterval(() => {
if (webSocket.readyState !== t2.OPEN || !(webSocket.bufferedAmount > sendBufferHighWatermark)) {
if (webSocket.readyState !== t.OPEN || !(webSocket.bufferedAmount > sendBufferHighWatermark)) {
clearInterval(intervalId);

@@ -401,7 +451,7 @@ bufferDrainWatcher = void 0;

});
} catch (e2) {
if (e2 === EXPLICIT_ABORT_TOKEN) {
} catch (e3) {
if (e3 === EXPLICIT_ABORT_TOKEN) {
return;
} else {
throw new Error("WebSocket connection closed", { cause: e2 });
throw new Error("WebSocket connection closed", { cause: e3 });
}

@@ -429,3 +479,3 @@ }

}
const webSocket = new t2(url);
const webSocket = new t(url);
webSocket.addEventListener("close", handleClose);

@@ -462,4 +512,4 @@ webSocket.addEventListener("error", handleError);

export { createHttpTransport, createJsonRpc, createJsonSubscriptionRpc, createWebSocketTransport };
export { createHttpTransport, createJsonRpc, createJsonRpcApi, createJsonRpcSubscriptionsApi, createJsonSubscriptionRpc, createWebSocketTransport };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.node.js.map

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

export * from './json-rpc';
export * from './json-rpc-subscription';
export * from './transports/http/http-transport';
export * from './transports/websocket/websocket-transport';
export * from './apis/api-types.js';
export * from './apis/methods/methods-api.js';
export * from './apis/subscriptions/subscriptions-api.js';
export * from './json-rpc.js';
export type { SolanaJsonRpcErrorCode } from './json-rpc-errors.js';
export * from './json-rpc-subscription.js';
export type { IRpcApi, IRpcSubscriptionsApi, IRpcWebSocketTransport, PendingRpcSubscription, Rpc, RpcRequest, RpcSubscription, RpcSubscriptions, } from './json-rpc-types.js';
export * from './transports/http/http-transport.js';
export * from './transports/websocket/websocket-transport.js';
export type { IRpcTransport } from './transports/transport-types.js';
export * from './transports/websocket/websocket-transport.js';
//# sourceMappingURL=index.d.ts.map

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

import { RpcSubscriptionConfig, RpcSubscriptions } from './json-rpc-types';
import { RpcSubscriptionConfig, RpcSubscriptions } from './json-rpc-types.js';
export declare function createJsonSubscriptionRpc<TRpcSubscriptionMethods>(rpcConfig: RpcSubscriptionConfig<TRpcSubscriptionMethods>): RpcSubscriptions<TRpcSubscriptionMethods>;
//# sourceMappingURL=json-rpc-subscription.d.ts.map

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

import { IRpcTransport, IRpcWebSocketTransport } from './transports/transport-types';
import { IRpcTransport, IRpcWebSocketTransport } from './transports/transport-types.js';
/**

@@ -27,7 +27,7 @@ * Public RPC API.

params: unknown[];
responseProcessor?: (response: unknown) => TResponse;
responseTransformer?: (response: unknown, methodName: string) => TResponse;
};
export type RpcSubscription<TResponse> = {
params: unknown[];
responseProcessor?: (response: unknown) => TResponse;
responseTransformer?: (response: unknown, notificationName: string) => TResponse;
subscribeMethodName: string;

@@ -727,3 +727,3 @@ unsubscribeMethodName: string;

type UnionToIntersection<T> = (T extends unknown ? (x: T) => unknown : never) extends (x: infer R) => unknown ? R : never;
export {};
export type { IRpcWebSocketTransport };
//# sourceMappingURL=json-rpc-types.d.ts.map

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

import { Rpc, RpcConfig } from './json-rpc-types';
import { Rpc, RpcConfig } from './json-rpc-types.js';
interface IHasIdentifier {

@@ -3,0 +3,0 @@ readonly id: number;

@@ -1,14 +0,9 @@

/// <reference types="node" />
/// <reference types="node" />
import type { Agent as NodeHttpAgent } from 'node:http';
import type { Agent as NodeHttpsAgent } from 'node:https';
import { IRpcTransport } from '../transport-types';
import { AllowedHttpRequestHeaders } from './http-transport-headers';
import { IRpcTransport } from '../transport-types.js';
import { AllowedHttpRequestHeaders } from './http-transport-headers.js';
type Config = Readonly<{
headers?: AllowedHttpRequestHeaders;
httpAgentNodeOnly?: NodeHttpAgent | NodeHttpsAgent | ((parsedUrl: URL) => NodeHttpAgent | NodeHttpsAgent);
url: string;
}>;
export declare function createHttpTransport({ httpAgentNodeOnly, headers, url }: Config): IRpcTransport;
export declare function createHttpTransport({ headers, url }: Config): IRpcTransport;
export {};
//# sourceMappingURL=http-transport.d.ts.map

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

import { RpcWebSocketConnection } from './websocket/websocket-connection';
import { RpcWebSocketConnection } from './websocket/websocket-connection.js';
type RpcTransportConfig = Readonly<{

@@ -3,0 +3,0 @@ payload: unknown;

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

import { IRpcWebSocketTransport } from '../transport-types';
import { IRpcWebSocketTransport } from '../transport-types.js';
type Config = Readonly<{

@@ -3,0 +3,0 @@ sendBufferHighWatermark: number;

{
"name": "@solana/rpc-transport",
"version": "2.0.0-experimental.6d18167",
"version": "2.0.0-experimental.6d27574",
"description": "Network transports for accessing the Solana JSON RPC API",

@@ -51,5 +51,5 @@ "exports": {

"@swc/jest": "^0.2.29",
"@types/jest": "^29.5.6",
"@types/node": "^20",
"@typescript-eslint/eslint-plugin": "^6.7.0",
"@types/jest": "^29.5.11",
"@types/node": "18.11.19",
"@typescript-eslint/eslint-plugin": "^6.13.2",
"@typescript-eslint/parser": "^6.3.0",

@@ -66,5 +66,5 @@ "agadoo": "^3.0.0",

"jest-runner-prettier": "^1.0.0",
"jest-websocket-mock": "^2.4.1",
"prettier": "^2.8",
"tsup": "7.2.0",
"jest-websocket-mock": "^2.5.0",
"prettier": "^3.1",
"tsup": "^8.0.1",
"typescript": "^5.2.2",

@@ -74,8 +74,7 @@ "version-from-git": "^1.1.1",

"fetch-impl": "0.0.0",
"tsconfig": "0.0.0",
"test-config": "0.0.0",
"tsconfig": "0.0.0",
"ws-impl": "0.0.0"
},
"peerDependencies": {
"node-fetch": "^2.6.7",
"ws": "^8.14.0"

@@ -93,3 +92,3 @@ },

"compile:js": "tsup --config build-scripts/tsup.config.package.ts",
"compile:typedefs": "tsc -p ./tsconfig.declarations.json",
"compile:typedefs": "tsc -p ./tsconfig.declarations.json && node node_modules/build-scripts/add-js-extension-to-types.mjs",
"dev": "jest -c node_modules/test-config/jest-dev.config.ts --rootDir . --watch",

@@ -96,0 +95,0 @@ "publish-packages": "pnpm publish --tag experimental --access public --no-git-checks",

@@ -58,3 +58,3 @@ [![npm][npm-image]][npm-url]

// Provide an optional function to modify the response.
responseProcessor: response => ({
responseTransformer: response => ({
confirmedBlocks: response,

@@ -61,0 +61,0 @@ queryRange: [startSlot, endSlot],

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

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

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

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

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