EdgeAIG/opencode / .opencode /node_modules /effect /dist /unstable /eventlog /EventLogServerEncrypted.d.ts
EdgeAIG's picture
download
raw
4.66 kB
import * as Context from "../../Context.ts";
import * as Effect from "../../Effect.ts";
import * as Layer from "../../Layer.ts";
import * as Schema from "../../Schema.ts";
import type * as Scope from "../../Scope.ts";
import * as Stream from "../../Stream.ts";
import * as RpcServer from "../rpc/RpcServer.ts";
import * as Transferable from "../workers/Transferable.ts";
import { type RemoteId } from "./EventJournal.ts";
import type { EncryptedRemoteEntry } from "./EventLogEncryption.ts";
import { type StoreId } from "./EventLogMessage.ts";
/**
* Provides RPC handlers for the encrypted event-log server.
*
* **Details**
*
* Incoming encrypted write payloads are decoded and persisted through `Storage`;
* change streams read encrypted entries from storage and encode them for the
* remote protocol.
*
* @category layers
* @since 4.0.0
*/
export declare const layerRpcHandlers: Layer.Layer<import("./EventLogMessage.ts").EventLogAuthentication | import("../rpc/Rpc.ts").Handler<"EventLog.Hello"> | import("../rpc/Rpc.ts").Handler<"EventLog.Authenticate"> | import("../rpc/Rpc.ts").Handler<"EventLog.WriteChunked"> | import("../rpc/Rpc.ts").Handler<"EventLog.WriteSingle"> | import("../rpc/Rpc.ts").Handler<"EventLog.Changes">, never, Storage>;
/**
* Provides an encrypted event-log RPC server using `EventLogRemoteRpcs` and the
* encrypted server RPC handlers.
*
* **When to use**
*
* Use when you need an encrypted event-log RPC server for encrypted
* `EventLogRemote` replication over an existing `RpcServer.Protocol`.
*
* **Details**
*
* This layer installs `EventLogRemoteRpcs` on the provided RPC server protocol
* and wires those RPCs to `layerRpcHandlers`. Encrypted entries, session
* authentication bindings, remote ids, and change streams are delegated to
* `Storage`.
*
* @see {@link layerRpcHandlers} for the encrypted handler layer without installing an RPC server protocol
* @see {@link Storage} for the storage service required by this layer
* @see {@link layerStorageMemory} for the process-local in-memory storage layer
*
* @category layers
* @since 4.0.0
*/
export declare const layer: Layer.Layer<never, never, RpcServer.Protocol | Storage>;
declare const PersistedEntry_base: Schema.Class<PersistedEntry, Schema.Struct<{
readonly entryId: Schema.brand<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>, "effect/eventlog/EventJournal/EntryId">;
readonly iv: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
readonly encryptedEntry: Transferable.Transferable<Schema.instanceOf<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
}>, {}>;
/**
* Schema for encrypted entries persisted by the encrypted event-log server.
*
* @category storage
* @since 4.0.0
*/
export declare class PersistedEntry extends PersistedEntry_base {
/**
* String representation of the encrypted entry id.
*
* @since 4.0.0
*/
get entryIdString(): string;
}
declare const Storage_base: Context.ServiceClass<Storage, "effect/eventlog/EventLogServer/Storage", {
readonly getId: Effect.Effect<RemoteId>;
readonly getOrCreateSessionAuthBinding: (publicKey: string, signingPublicKey: Uint8Array<ArrayBuffer>) => Effect.Effect<Uint8Array<ArrayBuffer>>;
readonly write: (publicKey: string, storeId: StoreId, entries: ReadonlyArray<PersistedEntry>) => Effect.Effect<ReadonlyArray<EncryptedRemoteEntry>>;
readonly changes: (publicKey: string, storeId: StoreId, startSequence: number) => Stream.Stream<EncryptedRemoteEntry>;
}>;
/**
* Defines the backing store service used by the encrypted event-log server.
*
* **When to use**
*
* Use to provide durable encrypted event-log persistence for an encrypted
* event-log server layer.
*
* **Details**
*
* It provides the server remote id, stores session authentication bindings,
* persists encrypted entries, and streams encrypted changes for a public key and
* store id.
*
* @category storage
* @since 4.0.0
*/
export declare class Storage extends Storage_base {
}
/**
* Creates an in-memory encrypted server `Storage`.
*
* **Details**
*
* Data, session authentication bindings, and streams are process-local and are
* released with the surrounding scope.
*
* @category storage
* @since 4.0.0
*/
export declare const makeStorageMemory: Effect.Effect<Storage["Service"], never, Scope.Scope>;
/**
* Provides encrypted server `Storage` using the in-memory implementation.
*
* @category storage
* @since 4.0.0
*/
export declare const layerStorageMemory: Layer.Layer<Storage>;
export {};
//# sourceMappingURL=EventLogServerEncrypted.d.ts.map

Xet Storage Details

Size:
4.66 kB
·
Xet hash:
d438afaf20bee9bca35898b809be2150c2614e6341996a7e6d08159a513417f0

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.