@xmtp/agent-sdk 1.2.4 → 1.2.5-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/debug.d.ts +141 -1
  2. package/dist/debug.js +85 -2
  3. package/dist/debug.js.map +1 -1
  4. package/dist/index.d.ts +176 -4
  5. package/dist/index.js +703 -5
  6. package/dist/index.js.map +1 -1
  7. package/dist/middleware.d.ts +81 -1
  8. package/dist/middleware.js +59 -2
  9. package/dist/middleware.js.map +1 -1
  10. package/dist/user.d.ts +16 -1
  11. package/dist/user.js +111 -2
  12. package/dist/user.js.map +1 -1
  13. package/dist/util.d.ts +46 -1
  14. package/dist/util.js +74 -2
  15. package/dist/util.js.map +1 -1
  16. package/package.json +14 -21
  17. package/dist/bin/generateKeys.d.ts +0 -2
  18. package/dist/bin/generateKeys.js +0 -44
  19. package/dist/bin/generateKeys.js.map +0 -1
  20. package/dist/core/Agent.d.ts +0 -84
  21. package/dist/core/Agent.js +0 -394
  22. package/dist/core/Agent.js.map +0 -1
  23. package/dist/core/AgentError.d.ts +0 -7
  24. package/dist/core/AgentError.js +0 -13
  25. package/dist/core/AgentError.js.map +0 -1
  26. package/dist/core/ClientContext.d.ts +0 -9
  27. package/dist/core/ClientContext.js +0 -13
  28. package/dist/core/ClientContext.js.map +0 -1
  29. package/dist/core/ConversationContext.d.ts +0 -19
  30. package/dist/core/ConversationContext.js +0 -43
  31. package/dist/core/ConversationContext.js.map +0 -1
  32. package/dist/core/MessageContext.d.ts +0 -33
  33. package/dist/core/MessageContext.js +0 -75
  34. package/dist/core/MessageContext.js.map +0 -1
  35. package/dist/core/filter.d.ts +0 -84
  36. package/dist/core/filter.js +0 -88
  37. package/dist/core/filter.js.map +0 -1
  38. package/dist/core/index.d.ts +0 -6
  39. package/dist/core/index.js +0 -7
  40. package/dist/core/index.js.map +0 -1
  41. package/dist/debug/index.d.ts +0 -1
  42. package/dist/debug/index.js +0 -2
  43. package/dist/debug/index.js.map +0 -1
  44. package/dist/debug/log.d.ts +0 -18
  45. package/dist/debug/log.js +0 -80
  46. package/dist/debug/log.js.map +0 -1
  47. package/dist/middleware/CommandRouter.d.ts +0 -14
  48. package/dist/middleware/CommandRouter.js +0 -57
  49. package/dist/middleware/CommandRouter.js.map +0 -1
  50. package/dist/middleware/index.d.ts +0 -1
  51. package/dist/middleware/index.js +0 -2
  52. package/dist/middleware/index.js.map +0 -1
  53. package/dist/user/NameResolver.d.ts +0 -1
  54. package/dist/user/NameResolver.js +0 -45
  55. package/dist/user/NameResolver.js.map +0 -1
  56. package/dist/user/User.d.ts +0 -10
  57. package/dist/user/User.js +0 -35
  58. package/dist/user/User.js.map +0 -1
  59. package/dist/user/index.d.ts +0 -2
  60. package/dist/user/index.js +0 -3
  61. package/dist/user/index.js.map +0 -1
  62. package/dist/util/AttachmentUtil.d.ts +0 -41
  63. package/dist/util/AttachmentUtil.js +0 -67
  64. package/dist/util/AttachmentUtil.js.map +0 -1
  65. package/dist/util/LimitedMap.d.ts +0 -6
  66. package/dist/util/LimitedMap.js +0 -20
  67. package/dist/util/LimitedMap.js.map +0 -1
  68. package/dist/util/TestUtil.d.ts +0 -35
  69. package/dist/util/TestUtil.js +0 -83
  70. package/dist/util/TestUtil.js.map +0 -1
  71. package/dist/util/index.d.ts +0 -1
  72. package/dist/util/index.js +0 -2
  73. package/dist/util/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/user/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC"}
@@ -1,41 +0,0 @@
1
- import { RemoteAttachmentCodec, type Attachment, type RemoteAttachment } from "@xmtp/content-type-remote-attachment";
2
- import type { Agent } from "../core/Agent.js";
3
- export type EncryptedAttachment = {
4
- content: Awaited<ReturnType<typeof RemoteAttachmentCodec.encodeEncrypted>>;
5
- filename: string;
6
- mimeType: string;
7
- };
8
- export type AttachmentUploadCallback = (attachment: EncryptedAttachment) => Promise<string>;
9
- /**
10
- * Downloads and decrypts a remote attachment.
11
- *
12
- * @param remoteAttachment - The remote attachment metadata containing the downloadd URL and encryption keys
13
- * @param agent - The agent instance used to lookup the necessary decoding codec
14
- * @returns A promise that resolves with the decrypted attachment
15
- */
16
- export declare function downloadRemoteAttachment<ContentTypes>(remoteAttachment: RemoteAttachment, agent: Agent<ContentTypes>): Promise<Attachment>;
17
- /**
18
- * Encrypts an attachment for secure remote storage.
19
- *
20
- * @param attachmentData - The attachment to encrypt, including its data, filename, and MIME type
21
- * @returns A promise that resolves with the encrypted attachment containing the encrypted content and metadata
22
- */
23
- export declare function encryptAttachment(attachmentData: Attachment): Promise<EncryptedAttachment>;
24
- /**
25
- * Creates a remote attachment object from an encrypted attachment and file URL.
26
- *
27
- * @param encryptedAttachment - The encrypted attachment containing encryption keys and metadata
28
- * @param fileUrl - The URL where the encrypted attachment can be downloaded
29
- * @returns A remote attachment object with all necessary metadata for retrieval and decryption
30
- */
31
- export declare function createRemoteAttachment(encryptedAttachment: EncryptedAttachment, fileUrl: string): RemoteAttachment;
32
- /**
33
- * Creates a remote attachment from a file by encrypting it and uploading it to a remote storage.
34
- * This is a convenience function that combines file processing, encryption, uploading, and
35
- * remote attachment creation into a single operation.
36
- *
37
- * @param unencryptedFile - The unencrypted file to process and upload
38
- * @param uploadCallback - A callback function that receives the encrypted attachment and returns the URL where it was uploaded
39
- * @returns A promise that resolves with a remote attachment containing all necessary metadata for retrieval and decryption
40
- */
41
- export declare function createRemoteAttachmentFromFile(unencryptedFile: File, uploadCallback: AttachmentUploadCallback): Promise<RemoteAttachment>;
@@ -1,67 +0,0 @@
1
- import { AttachmentCodec, RemoteAttachmentCodec, } from "@xmtp/content-type-remote-attachment";
2
- /**
3
- * Downloads and decrypts a remote attachment.
4
- *
5
- * @param remoteAttachment - The remote attachment metadata containing the downloadd URL and encryption keys
6
- * @param agent - The agent instance used to lookup the necessary decoding codec
7
- * @returns A promise that resolves with the decrypted attachment
8
- */
9
- export function downloadRemoteAttachment(remoteAttachment, agent) {
10
- return RemoteAttachmentCodec.load(remoteAttachment, agent.client);
11
- }
12
- /**
13
- * Encrypts an attachment for secure remote storage.
14
- *
15
- * @param attachmentData - The attachment to encrypt, including its data, filename, and MIME type
16
- * @returns A promise that resolves with the encrypted attachment containing the encrypted content and metadata
17
- */
18
- export async function encryptAttachment(attachmentData) {
19
- const encryptedAttachment = await RemoteAttachmentCodec.encodeEncrypted(attachmentData, new AttachmentCodec());
20
- return {
21
- content: encryptedAttachment,
22
- filename: attachmentData.filename,
23
- mimeType: attachmentData.mimeType,
24
- };
25
- }
26
- /**
27
- * Creates a remote attachment object from an encrypted attachment and file URL.
28
- *
29
- * @param encryptedAttachment - The encrypted attachment containing encryption keys and metadata
30
- * @param fileUrl - The URL where the encrypted attachment can be downloaded
31
- * @returns A remote attachment object with all necessary metadata for retrieval and decryption
32
- */
33
- export function createRemoteAttachment(encryptedAttachment, fileUrl) {
34
- const url = new URL(fileUrl);
35
- return {
36
- url: url.toString(),
37
- contentDigest: encryptedAttachment.content.digest,
38
- salt: encryptedAttachment.content.salt,
39
- nonce: encryptedAttachment.content.nonce,
40
- secret: encryptedAttachment.content.secret,
41
- scheme: url.protocol,
42
- contentLength: encryptedAttachment.content.payload.length,
43
- filename: encryptedAttachment.filename,
44
- };
45
- }
46
- /**
47
- * Creates a remote attachment from a file by encrypting it and uploading it to a remote storage.
48
- * This is a convenience function that combines file processing, encryption, uploading, and
49
- * remote attachment creation into a single operation.
50
- *
51
- * @param unencryptedFile - The unencrypted file to process and upload
52
- * @param uploadCallback - A callback function that receives the encrypted attachment and returns the URL where it was uploaded
53
- * @returns A promise that resolves with a remote attachment containing all necessary metadata for retrieval and decryption
54
- */
55
- export async function createRemoteAttachmentFromFile(unencryptedFile, uploadCallback) {
56
- const arrayBuffer = await unencryptedFile.arrayBuffer();
57
- const attachment = new Uint8Array(arrayBuffer);
58
- const attachmentData = {
59
- data: attachment,
60
- filename: unencryptedFile.name,
61
- mimeType: unencryptedFile.type,
62
- };
63
- const encryptedAttachment = await encryptAttachment(attachmentData);
64
- const fileUrl = await uploadCallback(encryptedAttachment);
65
- return createRemoteAttachment(encryptedAttachment, fileUrl);
66
- }
67
- //# sourceMappingURL=AttachmentUtil.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AttachmentUtil.js","sourceRoot":"","sources":["../../src/util/AttachmentUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,qBAAqB,GAGtB,MAAM,sCAAsC,CAAC;AAa9C;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,gBAAkC,EAClC,KAA0B;IAE1B,OAAO,qBAAqB,CAAC,IAAI,CAAa,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAChF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,cAA0B;IAE1B,MAAM,mBAAmB,GAAG,MAAM,qBAAqB,CAAC,eAAe,CACrE,cAAc,EACd,IAAI,eAAe,EAAE,CACtB,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,QAAQ,EAAE,cAAc,CAAC,QAAQ;KAClC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,mBAAwC,EACxC,OAAe;IAEf,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAE7B,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,aAAa,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM;QACjD,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI;QACtC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK;QACxC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM;QAC1C,MAAM,EAAE,GAAG,CAAC,QAAQ;QACpB,aAAa,EAAE,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM;QACzD,QAAQ,EAAE,mBAAmB,CAAC,QAAQ;KACvC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,eAAqB,EACrB,cAAwC;IAExC,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,CAAC;IACxD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAE/C,MAAM,cAAc,GAAe;QACjC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,eAAe,CAAC,IAAI;QAC9B,QAAQ,EAAE,eAAe,CAAC,IAAI;KAC/B,CAAC;IAEF,MAAM,mBAAmB,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAE1D,OAAO,sBAAsB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC"}
@@ -1,6 +0,0 @@
1
- export declare class LimitedMap<K, V> {
2
- #private;
3
- constructor(limit: number);
4
- set(key: K, value: V): void;
5
- get(key: K): V | undefined;
6
- }
@@ -1,20 +0,0 @@
1
- export class LimitedMap {
2
- #map = new Map();
3
- #limit;
4
- constructor(limit) {
5
- this.#limit = limit;
6
- }
7
- set(key, value) {
8
- if (this.#map.size >= this.#limit) {
9
- const it = this.#map.keys().next();
10
- if (!it.done) {
11
- this.#map.delete(it.value);
12
- }
13
- }
14
- this.#map.set(key, value);
15
- }
16
- get(key) {
17
- return this.#map.get(key);
18
- }
19
- }
20
- //# sourceMappingURL=LimitedMap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LimitedMap.js","sourceRoot":"","sources":["../../src/util/LimitedMap.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAU;IACrB,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;IACvB,MAAM,CAAS;IAEf,YAAY,KAAa;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF"}
@@ -1,35 +0,0 @@
1
- import type { GroupUpdated } from "@xmtp/content-type-group-updated";
2
- import type { Reaction } from "@xmtp/content-type-reaction";
3
- import type { ReadReceipt } from "@xmtp/content-type-read-receipt";
4
- import { type RemoteAttachment } from "@xmtp/content-type-remote-attachment";
5
- import type { Reply } from "@xmtp/content-type-reply";
6
- import type { TransactionReference } from "@xmtp/content-type-transaction-reference";
7
- import type { WalletSendCallsParams } from "@xmtp/content-type-wallet-send-calls";
8
- import type { Client, Conversation, DecodedMessage } from "@xmtp/node-sdk";
9
- import type { Mock } from "vitest";
10
- import { Agent } from "../core/Agent.js";
11
- import type { DecodedMessageWithContent } from "../core/filter.js";
12
- import type { MessageContext } from "../core/MessageContext.js";
13
- export type CurrentClientTypes = GroupUpdated | Reaction | ReadReceipt | RemoteAttachment | Reply | string | TransactionReference | WalletSendCallsParams;
14
- export declare const createMockMessage: <ContentType>(overrides: Partial<DecodedMessage> & {
15
- content: ContentType;
16
- }) => DecodedMessageWithContent<ContentType>;
17
- export declare const makeAgent: () => {
18
- agent: Agent<string | import("@xmtp/proto/ts/dist/types/mls/message_contents/transcript_messages.pb.js").GroupUpdated>;
19
- mockClient: Client<string | import("@xmtp/proto/ts/dist/types/mls/message_contents/transcript_messages.pb.js").GroupUpdated> & {
20
- conversations: {
21
- stream: Mock;
22
- streamAllMessages: Mock;
23
- };
24
- };
25
- };
26
- export declare const makeClient: () => Client & {
27
- conversations: {
28
- stream: Mock;
29
- streamAllMessages: Mock;
30
- };
31
- };
32
- export declare const createMockStreamWithCallbacks: (messages: DecodedMessage[]) => Mock<(...args: any[]) => any>;
33
- export declare const createMockConversationStreamWithCallbacks: (conversations: Conversation[]) => Mock<(...args: any[]) => any>;
34
- export declare const flushMicrotasks: () => Promise<void>;
35
- export declare const expectMessage: (decodedMessage: object) => MessageContext;
@@ -1,83 +0,0 @@
1
- import { AttachmentCodec, } from "@xmtp/content-type-remote-attachment";
2
- import { ContentTypeText } from "@xmtp/content-type-text";
3
- import { Agent } from "../core/Agent.js";
4
- export const createMockMessage = (overrides) => {
5
- const { content, ...rest } = overrides;
6
- return {
7
- id: "mock-message-id",
8
- conversationId: "test-conversation-id",
9
- senderInboxId: "sender-inbox-id",
10
- contentType: ContentTypeText,
11
- ...rest,
12
- content,
13
- };
14
- };
15
- export const makeAgent = () => {
16
- const mockClient = makeClient();
17
- return { agent: new Agent({ client: mockClient }), mockClient };
18
- };
19
- export const makeClient = () => {
20
- const attachmentCodec = new AttachmentCodec();
21
- return {
22
- inboxId: "test-inbox-id",
23
- codecFor: (contentType) => {
24
- if (contentType.sameAs(attachmentCodec.contentType)) {
25
- return attachmentCodec;
26
- }
27
- },
28
- conversations: {
29
- sync: vi.fn().mockResolvedValue(undefined),
30
- stream: vi.fn().mockResolvedValue(undefined),
31
- streamAllMessages: vi.fn(),
32
- getConversationById: vi.fn().mockResolvedValue({
33
- send: vi.fn().mockResolvedValue(undefined),
34
- }),
35
- },
36
- preferences: {
37
- inboxStateFromInboxIds: vi.fn(),
38
- },
39
- };
40
- };
41
- export const createMockStreamWithCallbacks = (messages) => {
42
- const mockStream = {
43
- end: vi.fn().mockResolvedValue(undefined),
44
- [Symbol.asyncIterator]: vi.fn(),
45
- };
46
- return vi
47
- .fn()
48
- .mockImplementation((options) => {
49
- // Simulate async message delivery
50
- queueMicrotask(() => {
51
- messages.forEach((message) => {
52
- options.onValue(message);
53
- });
54
- });
55
- return Promise.resolve(mockStream);
56
- });
57
- };
58
- export const createMockConversationStreamWithCallbacks = (conversations) => {
59
- const mockStream = {
60
- end: vi.fn().mockResolvedValue(undefined),
61
- [Symbol.asyncIterator]: vi.fn(),
62
- };
63
- return vi
64
- .fn()
65
- .mockImplementation((options) => {
66
- // Simulate async conversation delivery
67
- queueMicrotask(() => {
68
- conversations.forEach((conversation) => {
69
- options.onValue(conversation);
70
- });
71
- });
72
- return Promise.resolve(mockStream);
73
- });
74
- };
75
- export const flushMicrotasks = async () => {
76
- await new Promise((resolve) => setTimeout(resolve, 0));
77
- };
78
- export const expectMessage = (decodedMessage) => {
79
- return {
80
- message: expect.objectContaining(decodedMessage),
81
- };
82
- };
83
- //# sourceMappingURL=TestUtil.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TestUtil.js","sourceRoot":"","sources":["../../src/util/TestUtil.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export * from "./AttachmentUtil.js";
@@ -1,2 +0,0 @@
1
- export * from "./AttachmentUtil.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}