+1
deno.lock
+1
deno.lock
+4
-15
packages/consumer/mod.ts
+4
-15
packages/consumer/mod.ts
···
1
-
import { Client, CredentialManager } from "@atcute/client";
2
-
import { resolveMiniDoc } from "@cistern/shared";
1
+
import type { Client, CredentialManager } from "@atcute/client";
2
+
import { produceRequirements } from "@cistern/shared";
3
3
import type { Did } from "@atcute/lexicons/syntax";
4
4
import type { ConsumerOptions, ConsumerParams, LocalKeyPair } from "./types.ts";
5
5
6
6
export async function createConsumer(
7
7
options: ConsumerOptions,
8
8
): Promise<Consumer> {
9
-
const miniDoc = await resolveMiniDoc(options.handle);
10
-
const manager = new CredentialManager({ service: miniDoc.pds });
11
-
const rpc = new Client({ handler: manager });
12
-
await manager.login({
13
-
identifier: miniDoc.handle,
14
-
password: options.appPassword,
15
-
});
9
+
const reqs = await produceRequirements(options);
16
10
17
-
return new Consumer({
18
-
miniDoc,
19
-
manager,
20
-
rpc,
21
-
options,
22
-
});
11
+
return new Consumer(reqs);
23
12
}
24
13
25
14
/**
+3
-11
packages/consumer/types.ts
+3
-11
packages/consumer/types.ts
···
1
-
import type { Client, CredentialManager } from "@atcute/client";
2
-
import type { MiniDoc } from "@cistern/shared";
1
+
import type { BaseClientOptions, ClientRequirements } from "@cistern/shared";
3
2
import type { AppCisternLexiconPubkey } from "@cistern/lexicon";
4
3
5
4
export interface LocalKeyPair {
···
7
6
publicKey: AppCisternLexiconPubkey.Main;
8
7
}
9
8
10
-
export interface ConsumerOptions {
11
-
handle: string;
12
-
appPassword: string;
9
+
export interface ConsumerOptions extends BaseClientOptions {
13
10
keypair?: LocalKeyPair;
14
11
}
15
12
16
-
export interface ConsumerParams {
17
-
miniDoc: MiniDoc;
18
-
manager: CredentialManager;
19
-
rpc: Client;
20
-
options: ConsumerOptions;
21
-
}
13
+
export type ConsumerParams = ClientRequirements<ConsumerOptions>;