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

@dsnp/graph-sdk

Package Overview
Dependencies
Maintainers
2
Versions
57
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dsnp/graph-sdk - npm Package Compare versions

Comparing version 0.0.0-c347d7 to 0.0.0-daee06

dist/js/models/action.d.ts

20

dist/js/graph.d.ts

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

import { Config } from "./models/config";
import { ImportBundle, Update, DsnpGraphEdge, Action, DsnpPublicKey, DsnpKeys, Config } from "./models";
import { EnvironmentInterface } from "./models/environment";

@@ -6,5 +6,21 @@ export declare class Graph {

constructor(environment: EnvironmentInterface, capacity?: number);
getGraphConfig(environment: EnvironmentInterface): Config;
getGraphHandle(): number;
getGraphConfig(environment: EnvironmentInterface): Promise<Config>;
getGraphCapacity(): Promise<number>;
getGraphStatesCount(): Promise<number>;
containsUserGraph(dsnpUserId: number): Promise<boolean>;
getGraphUsersCount(): Promise<number>;
removeUserGraph(dsnpUserId: number): Promise<boolean>;
importUserData(payload: ImportBundle[]): Promise<boolean>;
exportUpdates(): Promise<Update[]>;
getConnectionsForUserGraph(dsnpUserId: number, schemaId: number, includePending: boolean): Promise<DsnpGraphEdge[]>;
applyActions(actions: Action[]): Promise<boolean>;
forceCalculateGraphs(dsnpUserId: number): Promise<Update[]>;
getConnectionsWithoutKeys(): Promise<number[]>;
getOneSidedPrivateFriendshipConnections(dsnpUserId: number): Promise<DsnpGraphEdge[]>;
getPublicKeys(dsnpUserId: number): Promise<DsnpPublicKey[]>;
deserializeDsnpKeys(keys: DsnpKeys): Promise<DsnpPublicKey[]>;
freeGraphState(): Promise<boolean>;
printHelloGraph(): void;
}
//# sourceMappingURL=graph.d.ts.map

@@ -14,5 +14,53 @@ "use strict";

}
getGraphHandle() {
return this.handle;
}
getGraphConfig(environment) {
return index_1.graphsdkModule.getGraphConfig(environment);
}
getGraphCapacity() {
return index_1.graphsdkModule.getGraphCapacity(this.handle);
}
getGraphStatesCount() {
return index_1.graphsdkModule.getGraphStatesCount();
}
containsUserGraph(dsnpUserId) {
return index_1.graphsdkModule.containsUserGraph(this.handle, dsnpUserId);
}
getGraphUsersCount() {
return index_1.graphsdkModule.getGraphUsersCount(this.handle);
}
removeUserGraph(dsnpUserId) {
return index_1.graphsdkModule.removeUserGraph(this.handle, dsnpUserId);
}
importUserData(payload) {
return index_1.graphsdkModule.importUserData(this.handle, payload);
}
exportUpdates() {
return index_1.graphsdkModule.exportUpdates(this.handle);
}
getConnectionsForUserGraph(dsnpUserId, schemaId, includePending) {
return index_1.graphsdkModule.getConnectionsForUserGraph(this.handle, dsnpUserId, schemaId, includePending);
}
applyActions(actions) {
return index_1.graphsdkModule.applyActions(this.handle, actions);
}
forceCalculateGraphs(dsnpUserId) {
return index_1.graphsdkModule.forceCalculateGraphs(this.handle, dsnpUserId);
}
getConnectionsWithoutKeys() {
return index_1.graphsdkModule.getConnectionsWithoutKeys(this.handle);
}
getOneSidedPrivateFriendshipConnections(dsnpUserId) {
return index_1.graphsdkModule.getOneSidedPrivateFriendshipConnections(this.handle, dsnpUserId);
}
getPublicKeys(dsnpUserId) {
return index_1.graphsdkModule.getPublicKeys(this.handle, dsnpUserId);
}
deserializeDsnpKeys(keys) {
return index_1.graphsdkModule.deserializeDsnpKeys(keys);
}
freeGraphState() {
return index_1.graphsdkModule.freeGraphState(this.handle);
}
printHelloGraph() {

@@ -19,0 +67,0 @@ console.log(index_1.graphsdkModule.printHelloGraph());

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const graph_1 = require("./graph");
const config_1 = require("./models/config");
const environment_1 = require("./models/environment");
test('printHelloGraph should print "Hello, Graph!"', () => {
function getTestConfig() {
const config = {};
config.sdkMaxUsersGraphSize = 100;
config.sdkMaxStaleFriendshipDays = 100;
config.maxPageId = 100;
config.dsnpVersions = [config_1.DsnpVersion.Version1_0];
config.maxGraphPageSizeBytes = 100;
config.maxKeyPageSizeBytes = 100;
const schemaConfig = {};
schemaConfig.dsnpVersion = config_1.DsnpVersion.Version1_0;
schemaConfig.connectionType = config_1.ConnectionType.Follow;
schemaConfig.privacyType = config_1.PrivacyType.Public;
config.schemaMap = { 1: schemaConfig };
return config;
}
test('printHelloGraph should print "Hello, Graph!"', async () => {
// Mock the console.log function
const consoleLogMock = jest.spyOn(console, 'log').mockImplementation();
const environment = { environmentType: environment_1.EnvironmentType.Dev, config: {} };
const environment = { environmentType: environment_1.EnvironmentType.Mainnet };
const graph = new graph_1.Graph(environment);
graph.printHelloGraph();
await graph.printHelloGraph();
expect(consoleLogMock).toHaveBeenCalledWith('Hello, Graph!');
await graph.freeGraphState();
});
test('getGraphConfig should return the graph config', () => {
const environment = { environmentType: environment_1.EnvironmentType.Dev, config: {} };
test('getGraphConfig should return the graph config', async () => {
const config_input = getTestConfig();
const environment = { environmentType: environment_1.EnvironmentType.Dev, config: config_input };
const graph = new graph_1.Graph(environment);
const config = graph.getGraphConfig(environment);
const config = await graph.getGraphConfig(environment);
expect(config).toBeDefined();
expect(config.sdkMaxUsersGraphSize).toEqual(100);
await graph.freeGraphState();
});
test('getGraphConfig with Mainnet environment should return the graph config', async () => {
const environment = { environmentType: environment_1.EnvironmentType.Mainnet };
const graph = new graph_1.Graph(environment);
const config = await graph.getGraphConfig(environment);
expect(config).toBeDefined();
expect(config.sdkMaxUsersGraphSize).toEqual(1000);
await graph.freeGraphState();
});
test('getGraphConfig with Rococo environment should return the graph config', async () => {
const environment = { environmentType: environment_1.EnvironmentType.Rococo };
const graph = new graph_1.Graph(environment);
const config = await graph.getGraphConfig(environment);
expect(config).toBeDefined();
expect(config.sdkMaxUsersGraphSize).toEqual(1000);
await graph.freeGraphState();
});
test('initialize graph with low capacity of 100 should return the same capacity', async () => {
const config = getTestConfig();
const environment = { environmentType: environment_1.EnvironmentType.Dev, config };
const graph = new graph_1.Graph(environment, 100);
const handle = graph.getGraphHandle();
expect(handle).toBeDefined();
const capacity = await graph.getGraphCapacity();
expect(capacity).toEqual(100);
await graph.freeGraphState();
});
test('getGraphStatesCount should be zero after previous graph is freed', async () => {
const config = getTestConfig();
const environment = { environmentType: environment_1.EnvironmentType.Dev, config };
const graph = new graph_1.Graph(environment);
const handle = graph.getGraphHandle();
expect(handle).toBeDefined();
await graph.freeGraphState();
const count = await graph.getGraphStatesCount();
expect(count).toEqual(0);
});
test('getGraphStatesCount should be one after graph is initialized', async () => {
const config = getTestConfig();
const environment = { environmentType: environment_1.EnvironmentType.Dev, config };
const graph = new graph_1.Graph(environment);
const handle = graph.getGraphHandle();
expect(handle).toBeDefined();
const count = await graph.getGraphStatesCount();
expect(count).toEqual(1);
await graph.freeGraphState();
});
test('getGraphUsersCount should be zero on initialized graph', async () => {
const config = getTestConfig();
const environment = { environmentType: environment_1.EnvironmentType.Dev, config };
const graph = new graph_1.Graph(environment);
const handle = graph.getGraphHandle();
expect(handle).toBeDefined();
const count = await graph.getGraphUsersCount();
expect(count).toEqual(0);
await graph.freeGraphState();
await expect(async () => {
await graph.getGraphUsersCount();
}).rejects.toThrow('Graph state not found');
});
test('containsUserGraph should return false on initialized graph', async () => {
const config = getTestConfig();
const environment = { environmentType: environment_1.EnvironmentType.Dev, config };
const graph = new graph_1.Graph(environment);
const handle = graph.getGraphHandle();
expect(handle).toBeDefined();
const contains = await graph.containsUserGraph(1);
expect(contains).toEqual(false);
await graph.freeGraphState();
});
test('removeUserGraph should pass through on initialized graph', async () => {
const config = getTestConfig();
const environment = { environmentType: environment_1.EnvironmentType.Dev, config };
const graph = new graph_1.Graph(environment);
const handle = graph.getGraphHandle();
expect(handle).toBeDefined();
const removed = await graph.removeUserGraph(1);
expect(removed).toEqual(true);
await graph.freeGraphState();
});
test('importUserData should pass through on initialized graph', async () => {
const environment = { environmentType: environment_1.EnvironmentType.Mainnet };
const graph = new graph_1.Graph(environment);
const handle = graph.getGraphHandle();
expect(handle).toBeDefined();
// Set up import data
const dsnpUserId1 = 1;
const dsnpUserId2 = 2;
const pageData1 = {
pageId: 1,
content: new Uint8Array([24, 227, 96, 97, 96, 99, 224, 96, 224, 98, 96, 0, 0]),
contentHash: 100,
};
const keyPairs1 = [];
const keyPairs2 = [];
const dsnpKeys1 = {
dsnpUserId: dsnpUserId1,
keysHash: 100,
keys: [],
};
const dsnpKeys2 = {
dsnpUserId: dsnpUserId2,
keysHash: 100,
keys: [],
};
const importBundle1 = {
dsnpUserId: dsnpUserId1,
schemaId: 1,
keyPairs: keyPairs1,
dsnpKeys: dsnpKeys1,
pages: [pageData1],
};
const importBundle2 = {
dsnpUserId: dsnpUserId2,
schemaId: 1,
keyPairs: keyPairs2,
dsnpKeys: dsnpKeys2,
pages: [pageData1],
};
// Import user data for each ImportBundle
const imported = await graph.importUserData([importBundle1, importBundle2]);
expect(imported).toEqual(true);
await graph.freeGraphState();
});
test('applyActions with empty actions should pass through on initialized graph', async () => {
const environment = { environmentType: environment_1.EnvironmentType.Mainnet };
const graph = new graph_1.Graph(environment);
const handle = graph.getGraphHandle();
expect(handle).toBeDefined();
// Set up actions
const actions = [];
const applied = await graph.applyActions(actions);
expect(applied).toEqual(true);
await graph.freeGraphState();
});
test('applyActions with few actions should pass through on initialized graph', async () => {
const config = getTestConfig();
const environment = { environmentType: environment_1.EnvironmentType.Dev, config };
const graph = new graph_1.Graph(environment);
const handle = graph.getGraphHandle();
expect(handle).toBeDefined();
// Set up actions
const actions = [];
const action_1 = {
type: "Connect",
ownerDsnpUserId: 1,
connection: {
dsnpUserId: 2,
schemaId: 1,
},
dsnpKeys: {
dsnpUserId: 2,
keysHash: 100,
keys: [],
},
};
actions.push(action_1);
const applied = await graph.applyActions(actions);
expect(applied).toEqual(true);
const exported = await graph.exportUpdates();
expect(exported).toBeDefined();
expect(exported.length).toEqual(1);
await graph.freeGraphState();
});
test('getConnectionsForUserGraph with empty connections should return empty array', async () => {
const config = getTestConfig();
const environment = { environmentType: environment_1.EnvironmentType.Dev, config };
const graph = new graph_1.Graph(environment);
const handle = graph.getGraphHandle();
expect(handle).toBeDefined();
// Set up actions
const actions = [];
const action_1 = {
type: "Connect",
ownerDsnpUserId: 1,
connection: {
dsnpUserId: 2,
schemaId: 1,
},
dsnpKeys: {
dsnpUserId: 2,
keysHash: 100,
keys: [],
},
};
actions.push(action_1);
const applied = await graph.applyActions(actions);
expect(applied).toEqual(true);
const connections = await graph.getConnectionsForUserGraph(1, 1, true);
expect(connections).toBeDefined();
expect(connections.length).toEqual(1);
const forceCalculateGraphs = await graph.forceCalculateGraphs(1);
expect(forceCalculateGraphs).toBeDefined();
expect(forceCalculateGraphs.length).toEqual(0);
await graph.freeGraphState();
});
test('getConnectionsWithoutKeys with empty connections should return empty array', async () => {
const environment = { environmentType: environment_1.EnvironmentType.Mainnet };
const graph = new graph_1.Graph(environment);
const handle = graph.getGraphHandle();
expect(handle).toBeDefined();
const connections = await graph.getConnectionsWithoutKeys();
expect(connections).toBeDefined();
expect(connections.length).toEqual(0);
expect(async () => {
await graph.getOneSidedPrivateFriendshipConnections(1);
}).rejects.toThrow('User graph for 1 is not imported');
await graph.freeGraphState();
});
test('getPublicKeys with empty connections should return empty array', async () => {
const environment = { environmentType: environment_1.EnvironmentType.Mainnet };
const graph = new graph_1.Graph(environment);
const handle = graph.getGraphHandle();
expect(handle).toBeDefined();
const connections = await graph.getPublicKeys(1);
expect(connections).toBeDefined();
expect(connections.length).toEqual(0);
await graph.freeGraphState();
});
test('deserializeDsnpKeys with empty keys should return empty array', async () => {
const environment = { environmentType: environment_1.EnvironmentType.Mainnet };
const graph = new graph_1.Graph(environment);
const handle = graph.getGraphHandle();
expect(handle).toBeDefined();
const keys = {
dsnpUserId: 2,
keysHash: 100,
keys: [],
};
const connections = await graph.deserializeDsnpKeys(keys);
expect(connections).toBeDefined();
expect(connections.length).toEqual(0);
await graph.freeGraphState();
});
//# sourceMappingURL=graph.test.js.map

33

dist/js/index.d.ts

@@ -1,23 +0,24 @@

import { EnvironmentInterface } from "./models/environment";
import { Config } from "./models/config";
import { Action, Config, DsnpGraphEdge, DsnpKeys, DsnpPublicKey, EnvironmentInterface, ImportBundle, Update } from "./models";
export interface Native {
printHelloGraph(): void;
getGraphConfig(environment: EnvironmentInterface): Config;
initializeGraphState(environment: EnvironmentInterface): number;
initializeGraphStateWithCapacity(environment: EnvironmentInterface, capacity: number): number;
containsUserGraph(handle: number, dsnpUserId: number): boolean;
getGraphUsersLength(handle: number): number;
removeUserGraph(handle: number, dsnpUserId: number): void;
importUserData(handle: number, data: any): void;
exportUpdates(handle: number): any;
applyActions(handle: number, actions: any): void;
forceCalculateGraphs(handle: number, dsnpUserId: number): any;
getConnectionsForUserGraph(handle: number, dsnpUserId: number, schemaId: string, includePending: boolean): any;
getUsersWithoutKeys(handle: number): any;
getOneSidedPrivateFriendshipConnections(handle: number, dsnpUserId: number): any;
getPublicKeys(handle: number, dsnpUserId: number): any;
deserializeDsnpKeys(keys: any): any;
freeGraphState(handle: number): void;
getGraphConfig(environment: EnvironmentInterface): Promise<Config>;
getGraphCapacity(handle: number): Promise<number>;
getGraphStatesCount(): Promise<number>;
getGraphUsersCount(handle: number): Promise<number>;
containsUserGraph(handle: number, dsnpUserId: number): Promise<boolean>;
removeUserGraph(handle: number, dsnpUserId: number): Promise<boolean>;
importUserData(handle: number, payload: ImportBundle[]): Promise<boolean>;
applyActions(handle: number, actions: Action[]): Promise<boolean>;
exportUpdates(handle: number): Promise<Update[]>;
getConnectionsForUserGraph(handle: number, dsnpUserId: number, schemaId: number, includePending: boolean): Promise<DsnpGraphEdge[]>;
forceCalculateGraphs(handle: number, dsnpUserId: number): Promise<Update[]>;
getConnectionsWithoutKeys(handle: number): Promise<number[]>;
getOneSidedPrivateFriendshipConnections(handle: number, dsnpUserId: number): Promise<DsnpGraphEdge[]>;
getPublicKeys(handle: number, dsnpUserId: number): Promise<DsnpPublicKey[]>;
deserializeDsnpKeys(keys: DsnpKeys): Promise<DsnpPublicKey[]>;
freeGraphState(handle: number): Promise<boolean>;
}
export declare const graphsdkModule: Native;
//# sourceMappingURL=index.d.ts.map

@@ -17,6 +17,4 @@ "use strict";

}
const graphsdk = loadNativeModule();
console.log("Loaded graphsdk.node bindings");
// Export the graphsdk module
exports.graphsdkModule = graphsdk;
exports.graphsdkModule = loadNativeModule();
//# sourceMappingURL=index.js.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const graph_1 = require("./graph");
const models_1 = require("./models");
const environment_1 = require("./models/environment");
test('printHelloGraph should print "Hello, Graph!"', () => {
function getTestConfig() {
const config = {};
config.sdkMaxUsersGraphSize = 100;
config.sdkMaxStaleFriendshipDays = 100;
config.maxPageId = 100;
config.dsnpVersions = [models_1.DsnpVersion.Version1_0];
config.maxGraphPageSizeBytes = 100;
config.maxKeyPageSizeBytes = 100;
const schemaConfig = {};
schemaConfig.dsnpVersion = models_1.DsnpVersion.Version1_0;
schemaConfig.connectionType = models_1.ConnectionType.Follow;
schemaConfig.privacyType = models_1.PrivacyType.Public;
config.schemaMap = { 1: schemaConfig };
return config;
}
test('printHelloGraph should print "Hello, Graph!"', async () => {
// Mock the console.log function
const consoleLogMock = jest.spyOn(console, 'log').mockImplementation();
const environment = { environmentType: environment_1.EnvironmentType.Dev, config: {} };
const environment = { environmentType: environment_1.EnvironmentType.Dev, config: getTestConfig() };
const graph = new graph_1.Graph(environment);
graph.printHelloGraph();
await graph.printHelloGraph();
expect(consoleLogMock).toHaveBeenCalledWith('Hello, Graph!');
await graph.freeGraphState();
});
//# sourceMappingURL=index.test.js.map

@@ -8,18 +8,23 @@ declare enum DsnpVersion {

}
declare enum PrivacyType {
Public = "public",
Private = "private"
}
interface SchemaConfig {
dsnp_version: DsnpVersion;
connection_type: ConnectionType;
dsnpVersion: DsnpVersion;
connectionType: ConnectionType;
privacyType: PrivacyType;
}
interface Config {
sdk_max_users_graph_size: number;
sdk_max_stale_friendship_days: number;
max_graph_page_size_bytes: number;
max_page_id: number;
max_key_page_size_bytes: number;
schema_map: {
[key: string]: SchemaConfig;
sdkMaxUsersGraphSize: number;
sdkMaxStaleFriendshipDays: number;
maxGraphPageSizeBytes: number;
maxPageId: number;
maxKeyPageSizeBytes: number;
schemaMap: {
[key: number]: SchemaConfig;
};
dsnp_versions: DsnpVersion[];
dsnpVersions: DsnpVersion[];
}
export { Config, ConnectionType, DsnpVersion, SchemaConfig };
export { Config, ConnectionType, DsnpVersion, SchemaConfig, PrivacyType };
//# sourceMappingURL=config.d.ts.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DsnpVersion = exports.ConnectionType = void 0;
exports.PrivacyType = exports.DsnpVersion = exports.ConnectionType = void 0;
var DsnpVersion;

@@ -13,2 +13,7 @@ (function (DsnpVersion) {

})(ConnectionType || (exports.ConnectionType = ConnectionType = {}));
var PrivacyType;
(function (PrivacyType) {
PrivacyType["Public"] = "public";
PrivacyType["Private"] = "private";
})(PrivacyType || (exports.PrivacyType = PrivacyType = {}));
//# sourceMappingURL=config.js.map
{
"name": "@dsnp/graph-sdk",
"version": "0.0.0-c347d7",
"version": "0.0.0-daee06",
"author": "Amplica Labs",

@@ -5,0 +5,0 @@ "license": "ISC",

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