···6import type { Did, Handle, ResourceUri } from "@atcute/lexicons";
7import { now } from "@atcute/tid";
8import type { AppCisternMemo } from "@cistern/lexicon";
0910// Helper to create a mock Consumer instance
11function createMockConsumer(
···31}
3233// Helper to create a mock RPC client
34-function createMockRpcClient(): Client {
35 return {
36 get: () => {
37 throw new Error("Mock RPC get not implemented");
···39 post: () => {
40 throw new Error("Mock RPC post not implemented");
41 },
42- } as unknown as Client;
43}
4445Deno.test({
···101 }
102 return Promise.resolve({ ok: false, status: 500, data: {} });
103 },
104- } as unknown as Client;
105106 const consumer = createMockConsumer({ rpc: mockRpc });
107 const keypair = await consumer.generateKeyPair();
···152 status: 500,
153 data: { error: "Internal Server Error" },
154 }),
155- } as unknown as Client;
156157 const consumer = createMockConsumer({ rpc: mockRpc });
158···210 }
211 return Promise.resolve({ ok: false, status: 500, data: {} });
212 },
213- } as unknown as Client;
214215 const consumer = createMockConsumer({
216 rpc: mockRpc,
···272 }
273 return Promise.resolve({ ok: false, status: 500, data: {} });
274 },
275- } as unknown as Client;
276277 const consumer = createMockConsumer({
278 rpc: mockRpc,
···363 }
364 return Promise.resolve({ ok: false, status: 500, data: {} });
365 },
366- } as unknown as Client;
367368 const consumer = createMockConsumer({
369 rpc: mockRpc,
···399 status: 401,
400 data: { error: "Unauthorized" },
401 }),
402- } as unknown as Client;
403404 const consumer = createMockConsumer({
405 rpc: mockRpc,
···448 }
449 return Promise.resolve({ ok: false, status: 500, data: {} });
450 },
451- } as unknown as Client;
452453 const consumer = createMockConsumer({ rpc: mockRpc });
454···468 status: 404,
469 data: { error: "Not Found" },
470 }),
471- } as unknown as Client;
472473 const consumer = createMockConsumer({ rpc: mockRpc });
474
···6import type { Did, Handle, ResourceUri } from "@atcute/lexicons";
7import { now } from "@atcute/tid";
8import type { AppCisternMemo } from "@cistern/lexicon";
9+import type { XRPCProcedures, XRPCQueries } from "@cistern/shared";
1011// Helper to create a mock Consumer instance
12function createMockConsumer(
···32}
3334// Helper to create a mock RPC client
35+function createMockRpcClient(): Client<XRPCQueries, XRPCProcedures> {
36 return {
37 get: () => {
38 throw new Error("Mock RPC get not implemented");
···40 post: () => {
41 throw new Error("Mock RPC post not implemented");
42 },
43+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
44}
4546Deno.test({
···102 }
103 return Promise.resolve({ ok: false, status: 500, data: {} });
104 },
105+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
106107 const consumer = createMockConsumer({ rpc: mockRpc });
108 const keypair = await consumer.generateKeyPair();
···153 status: 500,
154 data: { error: "Internal Server Error" },
155 }),
156+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
157158 const consumer = createMockConsumer({ rpc: mockRpc });
159···211 }
212 return Promise.resolve({ ok: false, status: 500, data: {} });
213 },
214+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
215216 const consumer = createMockConsumer({
217 rpc: mockRpc,
···273 }
274 return Promise.resolve({ ok: false, status: 500, data: {} });
275 },
276+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
277278 const consumer = createMockConsumer({
279 rpc: mockRpc,
···364 }
365 return Promise.resolve({ ok: false, status: 500, data: {} });
366 },
367+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
368369 const consumer = createMockConsumer({
370 rpc: mockRpc,
···400 status: 401,
401 data: { error: "Unauthorized" },
402 }),
403+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
404405 const consumer = createMockConsumer({
406 rpc: mockRpc,
···449 }
450 return Promise.resolve({ ok: false, status: 500, data: {} });
451 },
452+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
453454 const consumer = createMockConsumer({ rpc: mockRpc });
455···469 status: 404,
470 data: { error: "Not Found" },
471 }),
472+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
473474 const consumer = createMockConsumer({ rpc: mockRpc });
475
+6-4
packages/consumer/mod.ts
···1-import { produceRequirements } from "@cistern/shared";
00002import { decryptText, generateKeys } from "@cistern/crypto";
3import { generateRandomName } from "@puregarlic/randimal";
4import { is, parse, type RecordKey } from "@atcute/lexicons";
···12 DecryptedMemo,
13 LocalKeyPair,
14} from "./types.ts";
15-16-import type {} from "@atcute/atproto";
1718export async function createConsumer(
19 options: ConsumerOptions,
···29export class Consumer {
30 did: Did;
31 keypair?: LocalKeyPair;
32- rpc: Client;
33 manager: CredentialManager;
3435 constructor(params: ConsumerParams) {
···1+import {
2+ produceRequirements,
3+ type XRPCProcedures,
4+ type XRPCQueries,
5+} from "@cistern/shared";
6import { decryptText, generateKeys } from "@cistern/crypto";
7import { generateRandomName } from "@puregarlic/randimal";
8import { is, parse, type RecordKey } from "@atcute/lexicons";
···16 DecryptedMemo,
17 LocalKeyPair,
18} from "./types.ts";
001920export async function createConsumer(
21 options: ConsumerOptions,
···31export class Consumer {
32 did: Did;
33 keypair?: LocalKeyPair;
34+ rpc: Client<XRPCQueries, XRPCProcedures>;
35 manager: CredentialManager;
3637 constructor(params: ConsumerParams) {
-7
packages/lexicon/src/types/app/cistern/memo.ts
···1import type {} from "@atcute/lexicons";
2import * as v from "@atcute/lexicons/validations";
3-import type {} from "@atcute/lexicons/ambient";
45const _mainSchema = /*#__PURE__*/ v.record(
6 /*#__PURE__*/ v.string(),
···50export const mainSchema = _mainSchema as mainSchema;
5152export interface Main extends v.InferInput<typeof mainSchema> {}
53-54-declare module "@atcute/lexicons/ambient" {
55- interface Records {
56- "app.cistern.memo": mainSchema;
57- }
58-}
···1import type {} from "@atcute/lexicons";
2import * as v from "@atcute/lexicons/validations";
034const _mainSchema = /*#__PURE__*/ v.record(
5 /*#__PURE__*/ v.string(),
···49export const mainSchema = _mainSchema as mainSchema;
5051export interface Main extends v.InferInput<typeof mainSchema> {}
000000
-7
packages/lexicon/src/types/app/cistern/pubkey.ts
···1import type {} from "@atcute/lexicons";
2import * as v from "@atcute/lexicons/validations";
3-import type {} from "@atcute/lexicons/ambient";
45const _mainSchema = /*#__PURE__*/ v.record(
6 /*#__PURE__*/ v.string(),
···32export const mainSchema = _mainSchema as mainSchema;
3334export interface Main extends v.InferInput<typeof mainSchema> {}
35-36-declare module "@atcute/lexicons/ambient" {
37- interface Records {
38- "app.cistern.pubkey": mainSchema;
39- }
40-}
···1import type {} from "@atcute/lexicons";
2import * as v from "@atcute/lexicons/validations";
034const _mainSchema = /*#__PURE__*/ v.record(
5 /*#__PURE__*/ v.string(),
···31export const mainSchema = _mainSchema as mainSchema;
3233export interface Main extends v.InferInput<typeof mainSchema> {}
000000
···5import type { Client, CredentialManager } from "@atcute/client";
6import type { Did, Handle, ResourceUri } from "@atcute/lexicons";
7import type { AppCisternPubkey } from "@cistern/lexicon";
089// Helper to create a mock Producer instance
10function createMockProducer(
···30}
3132// Helper to create a mock RPC client
33-function createMockRpcClient(): Client {
34 return {
35 get: () => {
36 throw new Error("Mock RPC get not implemented");
···38 post: () => {
39 throw new Error("Mock RPC post not implemented");
40 },
41- } as unknown as Client;
42}
4344Deno.test({
···98 }
99 return Promise.resolve({ ok: false, status: 500, data: {} });
100 },
101- } as unknown as Client;
102103 const producer = createMockProducer({
104 rpc: mockRpc,
···142 status: 500,
143 data: { error: "Internal Server Error" },
144 }),
145- } as unknown as Client;
146147 const producer = createMockProducer({
148 rpc: mockRpc,
···196 }
197 return Promise.resolve({ ok: false, status: 500, data: {} });
198 },
199- } as unknown as Client;
200201 const producer = createMockProducer({ rpc: mockRpc });
202···262 }
263 return Promise.resolve({ ok: false, status: 500, data: {} });
264 },
265- } as unknown as Client;
266267 const producer = createMockProducer({ rpc: mockRpc });
268···288 status: 401,
289 data: { error: "Unauthorized" },
290 }),
291- } as unknown as Client;
292293 const producer = createMockProducer({ rpc: mockRpc });
294
···5import type { Client, CredentialManager } from "@atcute/client";
6import type { Did, Handle, ResourceUri } from "@atcute/lexicons";
7import type { AppCisternPubkey } from "@cistern/lexicon";
8+import type { XRPCProcedures, XRPCQueries } from "@cistern/shared";
910// Helper to create a mock Producer instance
11function createMockProducer(
···31}
3233// Helper to create a mock RPC client
34+function createMockRpcClient(): Client<XRPCQueries, XRPCProcedures> {
35 return {
36 get: () => {
37 throw new Error("Mock RPC get not implemented");
···39 post: () => {
40 throw new Error("Mock RPC post not implemented");
41 },
42+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
43}
4445Deno.test({
···99 }
100 return Promise.resolve({ ok: false, status: 500, data: {} });
101 },
102+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
103104 const producer = createMockProducer({
105 rpc: mockRpc,
···143 status: 500,
144 data: { error: "Internal Server Error" },
145 }),
146+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
147148 const producer = createMockProducer({
149 rpc: mockRpc,
···197 }
198 return Promise.resolve({ ok: false, status: 500, data: {} });
199 },
200+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
201202 const producer = createMockProducer({ rpc: mockRpc });
203···263 }
264 return Promise.resolve({ ok: false, status: 500, data: {} });
265 },
266+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
267268 const producer = createMockProducer({ rpc: mockRpc });
269···289 status: 401,
290 data: { error: "Unauthorized" },
291 }),
292+ } as unknown as Client<XRPCQueries, XRPCProcedures>;
293294 const producer = createMockProducer({ rpc: mockRpc });
295
-2
packages/producer/mod.ts
···10import { now } from "@atcute/tid";
11import { type AppCisternMemo, AppCisternPubkey } from "@cistern/lexicon";
1213-import type {} from "@atcute/atproto";
14-15export async function createProducer(
16 { publicKey: rkey, ...opts }: ProducerOptions,
17): Promise<Producer> {
···10import { now } from "@atcute/tid";
11import { type AppCisternMemo, AppCisternPubkey } from "@cistern/lexicon";
120013export async function createProducer(
14 { publicKey: rkey, ...opts }: ProducerOptions,
15): Promise<Producer> {