@dsnp/graph-sdk
Advanced tools
Comparing version 0.0.0-15e0b5 to 0.0.0-30cf27
@@ -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,22 @@ export declare class Graph { | ||
constructor(environment: EnvironmentInterface, capacity?: number); | ||
getGraphConfig(environment: EnvironmentInterface): Config; | ||
getGraphHandle(): number; | ||
getGraphConfig(environment: EnvironmentInterface): Promise<Config>; | ||
getGraphCapacity(): Promise<number>; | ||
getGraphSize(): Promise<number>; | ||
containsUserGraph(dsnpUserId: number): Promise<boolean>; | ||
getGraphUsersCount(): Promise<number>; | ||
removeUserGraph(dsnpUserId: number): Promise<void>; | ||
importUserData(payload: [ImportBundle]): Promise<void>; | ||
exportUpdates(): Promise<Update>; | ||
getConnectionsForUserGraphUpdates(dsnpUserId: number, schemaId: string, includePending: boolean): Promise<[DsnpGraphEdge]>; | ||
applyActions(actions: [Action]): Promise<void>; | ||
forceCalculateGraphs(dsnpUserId: number): Promise<Update>; | ||
getConnectionsWithoutKeys(): Promise<[number]>; | ||
getOneSidedPrivateFriendshipConnections(dsnpUserId: number): Promise<[DsnpGraphEdge]>; | ||
getPublicKeys(dsnpUserId: number): Promise<[DsnpPublicKey]>; | ||
deserializeDsnpKeys(keys: DsnpKeys): Promise<[DsnpPublicKey]>; | ||
private registerFinalizer; | ||
freeGraphState(): Promise<void>; | ||
printHelloGraph(): void; | ||
} | ||
//# sourceMappingURL=graph.d.ts.map |
@@ -13,6 +13,75 @@ "use strict"; | ||
} | ||
// Register the finalizer | ||
this.registerFinalizer(); | ||
} | ||
getGraphHandle() { | ||
return this.handle; | ||
} | ||
getGraphConfig(environment) { | ||
return index_1.graphsdkModule.getGraphConfig(environment); | ||
} | ||
getGraphCapacity() { | ||
return index_1.graphsdkModule.getGraphCapacity(this.handle); | ||
} | ||
getGraphSize() { | ||
return index_1.graphsdkModule.getGraphSize(this.handle); | ||
} | ||
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); | ||
} | ||
getConnectionsForUserGraphUpdates(dsnpUserId, schemaId, includePending) { | ||
return index_1.graphsdkModule.getConnectionsForUserGraphUpdates(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); | ||
} | ||
// Finalizer to free the graph state | ||
registerFinalizer() { | ||
const finalizer = () => { | ||
this.freeGraphState(); | ||
}; | ||
// Register the finalizer | ||
if (typeof FinalizationRegistry !== "undefined") { | ||
const registry = new FinalizationRegistry(() => { | ||
finalizer(); | ||
}); | ||
registry.register({}, this); | ||
} | ||
else if (typeof process !== "undefined" && typeof process.on === "function") { | ||
process.on("exit", finalizer); | ||
} | ||
else { | ||
console.warn("Unable to register finalizer. Memory may not be freed correctly."); | ||
} | ||
} | ||
freeGraphState() { | ||
return index_1.graphsdkModule.freeGraphState(this.handle); | ||
} | ||
printHelloGraph() { | ||
@@ -19,0 +88,0 @@ console.log(index_1.graphsdkModule.printHelloGraph()); |
@@ -5,3 +5,3 @@ "use strict"; | ||
const environment_1 = require("./models/environment"); | ||
test('printHelloGraph should print "Hello, Graph!"', () => { | ||
test('printHelloGraph should print "Hello, Graph!"', async () => { | ||
// Mock the console.log function | ||
@@ -11,11 +11,39 @@ const consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); | ||
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', () => { | ||
test('getGraphConfig should return the graph config', async () => { | ||
const environment = { environmentType: environment_1.EnvironmentType.Dev, config: {} }; | ||
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(1000); | ||
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 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(); | ||
}); | ||
//# sourceMappingURL=graph.test.js.map |
@@ -1,23 +0,25 @@ | ||
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>; | ||
getGraphSize(handle: number): Promise<number>; | ||
containsUserGraph(handle: number, dsnpUserId: number): Promise<boolean>; | ||
getGraphUsersCount(handle: number): Promise<number>; | ||
removeUserGraph(handle: number, dsnpUserId: number): Promise<void>; | ||
importUserData(handle: number, payload: [ImportBundle]): Promise<void>; | ||
exportUpdates(handle: number): Promise<Update>; | ||
getConnectionsForUserGraphUpdates(handle: number, dsnpUserId: number, schemaId: string, includePending: boolean): Promise<[DsnpGraphEdge]>; | ||
applyActions(handle: number, actions: [Action]): Promise<void>; | ||
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<void>; | ||
freeAllGraphStates(): Promise<void>; | ||
} | ||
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 |
@@ -5,3 +5,3 @@ "use strict"; | ||
const environment_1 = require("./models/environment"); | ||
test('printHelloGraph should print "Hello, Graph!"', () => { | ||
test('printHelloGraph should print "Hello, Graph!"', async () => { | ||
// Mock the console.log function | ||
@@ -11,5 +11,6 @@ const consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); | ||
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: { | ||
sdkMaxUsersGraphSize: number; | ||
sdkMaxStaleFriendshipDays: number; | ||
maxGraphPageSizeBytes: number; | ||
maxPageId: number; | ||
maxKeyPageSizeBytes: number; | ||
schemaMap: { | ||
[key: string]: SchemaConfig; | ||
}; | ||
dsnp_versions: DsnpVersion[]; | ||
dsnpVersions: DsnpVersion[]; | ||
} | ||
export { Config, ConnectionType, DsnpVersion, SchemaConfig }; | ||
//# sourceMappingURL=config.d.ts.map |
@@ -13,2 +13,7 @@ "use strict"; | ||
})(ConnectionType || (exports.ConnectionType = ConnectionType = {})); | ||
var PrivacyType; | ||
(function (PrivacyType) { | ||
PrivacyType["Public"] = "public"; | ||
PrivacyType["Private"] = "private"; | ||
})(PrivacyType || (PrivacyType = {})); | ||
//# sourceMappingURL=config.js.map |
{ | ||
"name": "@dsnp/graph-sdk", | ||
"version": "0.0.0-15e0b5", | ||
"version": "0.0.0-30cf27", | ||
"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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
4484726
55
423
91
2