Compare commits
No commits in common. "v0.0.2-develop.1" and "v0.0.1" have entirely different histories.
v0.0.2-dev
...
v0.0.1
|
@ -1,13 +0,0 @@
|
|||
name: Build/Publish
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
- develop-*
|
||||
|
||||
jobs:
|
||||
main:
|
||||
uses: lumeweb/github-node-deploy-workflow/.github/workflows/main.yml@master
|
||||
secrets: inherit
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"preset": [
|
||||
"@lumeweb/node-library-preset"
|
||||
]
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
## [0.0.2-develop.1](https://git.lumeweb.com/LumeWeb/interface-relay/compare/v0.0.1...v0.0.2-develop.1) (2023-07-04)
|
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2022 Hammmer Technologies LLC
|
||||
Copyright (c) 2022 Lume Web
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
File diff suppressed because it is too large
Load Diff
36
package.json
36
package.json
|
@ -1,36 +0,0 @@
|
|||
{
|
||||
"name": "@lumeweb/interface-relay",
|
||||
"version": "0.0.2-develop.1",
|
||||
"main": "lib/index.js",
|
||||
"type": "module",
|
||||
"types": "lib/index.d.ts",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "gitea@git.lumeweb.com:LumeWeb/interface-relay.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@lumeweb/node-library-preset": "^0.2.7",
|
||||
"@types/b4a": "^1.6.0",
|
||||
"compact-encoding": "^2.12.0",
|
||||
"ed25519-keygen": "^0.4.1",
|
||||
"eventemitter2": "^6.4.9",
|
||||
"fastify": "^4.19.2",
|
||||
"node-cache": "^5.1.2",
|
||||
"presetter": "*"
|
||||
},
|
||||
"readme": "ERROR: No README data found!",
|
||||
"scripts": {
|
||||
"prepare": "presetter bootstrap",
|
||||
"build": "run build",
|
||||
"semantic-release": "semantic-release"
|
||||
},
|
||||
"dependencies": {
|
||||
"@lumeweb/relay-cfg": "0.1.9"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"files": [
|
||||
"lib"
|
||||
]
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
export * from "./rpc.js";
|
||||
export * from "./plugin.js";
|
||||
export * from "./swarm.js";
|
|
@ -1,45 +0,0 @@
|
|||
import type { EventEmitter2 } from "eventemitter2";
|
||||
import type { RPCMethod, RPCServer } from "./rpc.js";
|
||||
import type { Logger } from "pino";
|
||||
import type SSLManager from "./ssl.js";
|
||||
import type { HDKey } from "ed25519-keygen/hdkey";
|
||||
import type { Config } from "@lumeweb/relay-cfg";
|
||||
import type { ProtocolManager } from "./swarm.js";
|
||||
import type { Util } from "./util.js";
|
||||
import type { FastifyInstance } from "fastify";
|
||||
|
||||
export type PluginFunction = (api: PluginAPI) => Promise<void>;
|
||||
|
||||
export interface Plugin {
|
||||
name: string;
|
||||
plugin: PluginFunction;
|
||||
exports?: any;
|
||||
default?: Plugin;
|
||||
}
|
||||
|
||||
export declare class PluginAPI extends EventEmitter2 {
|
||||
constructor({
|
||||
config,
|
||||
logger,
|
||||
server,
|
||||
swarm,
|
||||
}: {
|
||||
config: Config;
|
||||
logger: Logger;
|
||||
server: RPCServer;
|
||||
swarm: any;
|
||||
});
|
||||
get util(): Util;
|
||||
get swarm(): any;
|
||||
get config(): Config;
|
||||
get pluginConfig(): Config;
|
||||
get logger(): Logger;
|
||||
get rpcServer(): RPCServer;
|
||||
get seed(): Uint8Array;
|
||||
get identity(): HDKey;
|
||||
get ssl(): SSLManager;
|
||||
get protocols(): ProtocolManager;
|
||||
get app(): FastifyInstance;
|
||||
loadPlugin(moduleName: string): (moduleName: string) => Promise<Plugin>;
|
||||
registerMethod(methodName: string, method: RPCMethod): void;
|
||||
}
|
66
src/rpc.ts
66
src/rpc.ts
|
@ -1,66 +0,0 @@
|
|||
import type EventEmitter from "events";
|
||||
import type NodeCache from "node-cache";
|
||||
|
||||
export interface RPCRequest {
|
||||
module: string;
|
||||
method: string;
|
||||
data: any;
|
||||
}
|
||||
|
||||
export interface ClientRPCRequest extends RPCRequest {
|
||||
bypassCache?: boolean;
|
||||
}
|
||||
|
||||
export interface RPCResponse {
|
||||
updated?: number;
|
||||
data?: any | RPCResponse;
|
||||
error?: string;
|
||||
signature?: string;
|
||||
signedField?: string;
|
||||
}
|
||||
|
||||
export interface RPCMethod {
|
||||
cacheable: boolean;
|
||||
handler: (req: any) => Promise<any>;
|
||||
}
|
||||
|
||||
export interface RPCCacheData {
|
||||
[query: string]: RPCCacheItem | null;
|
||||
}
|
||||
|
||||
export interface RPCCacheItem extends RPCResponse {
|
||||
value: RPCResponse;
|
||||
signature: string;
|
||||
}
|
||||
|
||||
export interface RPCBroadcastRequest {
|
||||
request: RPCRequest;
|
||||
relays: string[];
|
||||
timeout: number;
|
||||
}
|
||||
|
||||
export interface RPCBroadcastResponse extends RPCResponse {
|
||||
relays: { [relay: string]: RPCResponse };
|
||||
}
|
||||
|
||||
export declare class RPCServer extends EventEmitter {
|
||||
get cache(): RPCCache;
|
||||
registerMethod(
|
||||
moduleName: string,
|
||||
methodName: string,
|
||||
options: RPCMethod,
|
||||
): void;
|
||||
public getMethods(): string[];
|
||||
public setup(stream: any): any;
|
||||
public signData(data: any): string;
|
||||
public static hashQuery(query: RPCRequest): string;
|
||||
public handleRequest(request: RPCRequest): Promise<RPCResponse>;
|
||||
}
|
||||
export declare class RPCCache extends EventEmitter {
|
||||
get data(): NodeCache;
|
||||
constructor(server: RPCServer);
|
||||
public signResponse(item: RPCCacheItem): any;
|
||||
public verifyResponse(pubkey: Buffer, item: RPCCacheItem): boolean | Buffer;
|
||||
public addItem(query: RPCRequest, response: RPCResponse): void;
|
||||
public deleteItem(queryHash: string): boolean;
|
||||
}
|
25
src/ssl.ts
25
src/ssl.ts
|
@ -1,25 +0,0 @@
|
|||
import type tls from "tls";
|
||||
|
||||
export type SSLManagerRenewHandler = (domain: string) => Promise<boolean>;
|
||||
export type SSLCert = string | Buffer | Array<string | Buffer>;
|
||||
|
||||
declare class SSLManager {
|
||||
constructor(domain: string);
|
||||
|
||||
get context(): tls.SecureContext;
|
||||
|
||||
set privateKey(key: Buffer);
|
||||
|
||||
set cert(cert: SSLCert);
|
||||
|
||||
renew(): Promise<boolean>;
|
||||
|
||||
get enabled(): boolean;
|
||||
|
||||
get ready(): boolean;
|
||||
|
||||
get renewHandler(): SSLManagerRenewHandler;
|
||||
set renewHandler(value: SSLManagerRenewHandler);
|
||||
}
|
||||
|
||||
export default SSLManager;
|
|
@ -1,6 +0,0 @@
|
|||
export type ProtocolHandler = (peer: any, muxer: any) => void;
|
||||
|
||||
export declare class ProtocolManager {
|
||||
constructor(swarm: any);
|
||||
register(name: string, handler: ProtocolHandler): boolean;
|
||||
}
|
12
src/util.ts
12
src/util.ts
|
@ -1,12 +0,0 @@
|
|||
import type b4a from "b4a";
|
||||
import type c from "compact-encoding";
|
||||
export declare class Util {
|
||||
private _crypto;
|
||||
get crypto(): Crypto;
|
||||
get bufferEncoding(): typeof b4a;
|
||||
get binaryEncoding(): typeof c;
|
||||
}
|
||||
|
||||
export declare class Crypto {
|
||||
createHash(data: string): Buffer;
|
||||
}
|
Loading…
Reference in New Issue