@ubiquity-os/plugin-sdk
Version:
SDK for plugin support.
45 lines (41 loc) • 1.6 kB
text/typescript
import { EmitterWebhookEventName, EmitterWebhookEvent } from '@octokit/webhooks';
import * as _sinclair_typebox from '@sinclair/typebox';
import { StaticDecode } from '@sinclair/typebox';
declare const commandCallSchema: _sinclair_typebox.TUnion<[_sinclair_typebox.TNull, _sinclair_typebox.TObject<{
name: _sinclair_typebox.TString;
parameters: _sinclair_typebox.TUnknown;
}>]>;
type CommandCall = StaticDecode<typeof commandCallSchema>;
declare class PluginInput<T extends EmitterWebhookEventName = EmitterWebhookEventName> {
private _privateKey;
stateId: string;
eventName: T;
eventPayload: EmitterWebhookEvent<T>["payload"];
settings: unknown;
authToken: string;
ref: string;
command: CommandCall;
constructor(privateKey: string, stateId: string, eventName: T, eventPayload: EmitterWebhookEvent<T>["payload"], settings: unknown, authToken: string, ref: string, command: CommandCall);
getInputs(): Promise<{
signature: string;
stateId: string;
eventName: T;
eventPayload: string;
settings: string;
authToken: string;
ref: string;
command: string;
}>;
}
interface Inputs {
stateId: unknown;
eventName: unknown;
eventPayload: unknown;
authToken: unknown;
settings: unknown;
ref: unknown;
command: unknown;
}
declare function verifySignature(publicKeyPem: string, inputs: Inputs, signature: string): Promise<boolean>;
declare function signPayload(payload: string, privateKey: string): Promise<string>;
export { PluginInput, signPayload, verifySignature };