jmap-kit 0.0.0 → 1.0.2
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.
- package/LICENSE +21 -0
- package/README.md +138 -3
- package/dist/src/capabilities/blob/blob.d.ts +83 -0
- package/dist/src/capabilities/blob/blob.js +98 -0
- package/dist/src/capabilities/blob/blob.js.map +1 -0
- package/dist/src/capabilities/blob/types.d.ts +212 -0
- package/dist/src/capabilities/blob/types.js +16 -0
- package/dist/src/capabilities/blob/types.js.map +1 -0
- package/dist/src/capabilities/blob-capability.d.ts +195 -0
- package/dist/src/capabilities/blob-capability.js +277 -0
- package/dist/src/capabilities/blob-capability.js.map +1 -0
- package/dist/src/capabilities/core/core.d.ts +47 -0
- package/dist/src/capabilities/core/core.js +59 -0
- package/dist/src/capabilities/core/core.js.map +1 -0
- package/dist/src/capabilities/core/types.d.ts +13 -0
- package/dist/src/capabilities/core/types.js +2 -0
- package/dist/src/capabilities/core/types.js.map +1 -0
- package/dist/src/capabilities/core-capability.d.ts +307 -0
- package/dist/src/capabilities/core-capability.js +344 -0
- package/dist/src/capabilities/core-capability.js.map +1 -0
- package/dist/src/capabilities/email/email.d.ts +124 -0
- package/dist/src/capabilities/email/email.js +136 -0
- package/dist/src/capabilities/email/email.js.map +1 -0
- package/dist/src/capabilities/email/types.d.ts +776 -0
- package/dist/src/capabilities/email/types.js +2 -0
- package/dist/src/capabilities/email/types.js.map +1 -0
- package/dist/src/capabilities/email-capability.d.ts +266 -0
- package/dist/src/capabilities/email-capability.js +241 -0
- package/dist/src/capabilities/email-capability.js.map +1 -0
- package/dist/src/capabilities/emailsubmission/emailsubmission.d.ts +95 -0
- package/dist/src/capabilities/emailsubmission/emailsubmission.js +107 -0
- package/dist/src/capabilities/emailsubmission/emailsubmission.js.map +1 -0
- package/dist/src/capabilities/emailsubmission/types.d.ts +256 -0
- package/dist/src/capabilities/emailsubmission/types.js +2 -0
- package/dist/src/capabilities/emailsubmission/types.js.map +1 -0
- package/dist/src/capabilities/example/example.d.ts +80 -0
- package/dist/src/capabilities/example/example.js +91 -0
- package/dist/src/capabilities/example/example.js.map +1 -0
- package/dist/src/capabilities/example/types.d.ts +33 -0
- package/dist/src/capabilities/example/types.js +2 -0
- package/dist/src/capabilities/example/types.js.map +1 -0
- package/dist/src/capabilities/identity/identity.d.ts +71 -0
- package/dist/src/capabilities/identity/identity.js +83 -0
- package/dist/src/capabilities/identity/identity.js.map +1 -0
- package/dist/src/capabilities/identity/types.d.ts +110 -0
- package/dist/src/capabilities/identity/types.js +2 -0
- package/dist/src/capabilities/identity/types.js.map +1 -0
- package/dist/src/capabilities/mailbox/mailbox.d.ts +91 -0
- package/dist/src/capabilities/mailbox/mailbox.js +103 -0
- package/dist/src/capabilities/mailbox/mailbox.js.map +1 -0
- package/dist/src/capabilities/mailbox/types.d.ts +248 -0
- package/dist/src/capabilities/mailbox/types.js +2 -0
- package/dist/src/capabilities/mailbox/types.js.map +1 -0
- package/dist/src/capabilities/maskedemail/maskedemail.d.ts +60 -0
- package/dist/src/capabilities/maskedemail/maskedemail.js +72 -0
- package/dist/src/capabilities/maskedemail/maskedemail.js.map +1 -0
- package/dist/src/capabilities/maskedemail/types.d.ts +67 -0
- package/dist/src/capabilities/maskedemail/types.js +4 -0
- package/dist/src/capabilities/maskedemail/types.js.map +1 -0
- package/dist/src/capabilities/maskedemail-capability.d.ts +112 -0
- package/dist/src/capabilities/maskedemail-capability.js +166 -0
- package/dist/src/capabilities/maskedemail-capability.js.map +1 -0
- package/dist/src/capabilities/searchsnippet/searchsnippet.d.ts +51 -0
- package/dist/src/capabilities/searchsnippet/searchsnippet.js +63 -0
- package/dist/src/capabilities/searchsnippet/searchsnippet.js.map +1 -0
- package/dist/src/capabilities/searchsnippet/types.d.ts +88 -0
- package/dist/src/capabilities/searchsnippet/types.js +2 -0
- package/dist/src/capabilities/searchsnippet/types.js.map +1 -0
- package/dist/src/capabilities/submission-capability.d.ts +89 -0
- package/dist/src/capabilities/submission-capability.js +75 -0
- package/dist/src/capabilities/submission-capability.js.map +1 -0
- package/dist/src/capabilities/thread/thread.d.ts +58 -0
- package/dist/src/capabilities/thread/thread.js +70 -0
- package/dist/src/capabilities/thread/thread.js.map +1 -0
- package/dist/src/capabilities/thread/types.d.ts +43 -0
- package/dist/src/capabilities/thread/types.js +2 -0
- package/dist/src/capabilities/thread/types.js.map +1 -0
- package/dist/src/capabilities/utils/assert-invocation-datatype.d.ts +7 -0
- package/dist/src/capabilities/utils/assert-invocation-datatype.js +13 -0
- package/dist/src/capabilities/utils/assert-invocation-datatype.js.map +1 -0
- package/dist/src/capabilities/utils/assert-invocation-method.d.ts +7 -0
- package/dist/src/capabilities/utils/assert-invocation-method.js +13 -0
- package/dist/src/capabilities/utils/assert-invocation-method.js.map +1 -0
- package/dist/src/capabilities/utils/assert-invocation.d.ts +7 -0
- package/dist/src/capabilities/utils/assert-invocation.js +22 -0
- package/dist/src/capabilities/utils/assert-invocation.js.map +1 -0
- package/dist/src/capabilities/utils/assert-non-nullish.d.ts +1 -0
- package/dist/src/capabilities/utils/assert-non-nullish.js +6 -0
- package/dist/src/capabilities/utils/assert-non-nullish.js.map +1 -0
- package/dist/src/capabilities/utils/create-readonly-account-validator.d.ts +49 -0
- package/dist/src/capabilities/utils/create-readonly-account-validator.js +80 -0
- package/dist/src/capabilities/utils/create-readonly-account-validator.js.map +1 -0
- package/dist/src/capabilities/vacationresponse/types.d.ts +100 -0
- package/dist/src/capabilities/vacationresponse/types.js +2 -0
- package/dist/src/capabilities/vacationresponse/types.js.map +1 -0
- package/dist/src/capabilities/vacationresponse/vacationresponse.d.ts +61 -0
- package/dist/src/capabilities/vacationresponse/vacationresponse.js +73 -0
- package/dist/src/capabilities/vacationresponse/vacationresponse.js.map +1 -0
- package/dist/src/capabilities/vacationresponse-capability.d.ts +65 -0
- package/dist/src/capabilities/vacationresponse-capability.js +68 -0
- package/dist/src/capabilities/vacationresponse-capability.js.map +1 -0
- package/dist/src/capability-registry/capability-registry.d.ts +148 -0
- package/dist/src/capability-registry/capability-registry.js +360 -0
- package/dist/src/capability-registry/capability-registry.js.map +1 -0
- package/dist/src/capability-registry/types.d.ts +385 -0
- package/dist/src/capability-registry/types.js +2 -0
- package/dist/src/capability-registry/types.js.map +1 -0
- package/dist/src/capability-registry/utils.d.ts +71 -0
- package/dist/src/capability-registry/utils.js +163 -0
- package/dist/src/capability-registry/utils.js.map +1 -0
- package/dist/src/common/registry.d.ts +366 -0
- package/dist/src/common/registry.js +321 -0
- package/dist/src/common/registry.js.map +1 -0
- package/dist/src/common/types.d.ts +338 -0
- package/dist/src/common/types.js +21 -0
- package/dist/src/common/types.js.map +1 -0
- package/dist/src/common/utils.d.ts +20 -0
- package/dist/src/common/utils.js +26 -0
- package/dist/src/common/utils.js.map +1 -0
- package/dist/src/index.d.ts +40 -0
- package/dist/src/index.js +33 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/invocation/arguments-proxy.d.ts +14 -0
- package/dist/src/invocation/arguments-proxy.js +37 -0
- package/dist/src/invocation/arguments-proxy.js.map +1 -0
- package/dist/src/invocation/error-invocation.d.ts +27 -0
- package/dist/src/invocation/error-invocation.js +39 -0
- package/dist/src/invocation/error-invocation.js.map +1 -0
- package/dist/src/invocation/invocation.d.ts +111 -0
- package/dist/src/invocation/invocation.js +158 -0
- package/dist/src/invocation/invocation.js.map +1 -0
- package/dist/src/invocation/result-reference.d.ts +86 -0
- package/dist/src/invocation/result-reference.js +118 -0
- package/dist/src/invocation/result-reference.js.map +1 -0
- package/dist/src/invocation/types.d.ts +637 -0
- package/dist/src/invocation/types.js +2 -0
- package/dist/src/invocation/types.js.map +1 -0
- package/dist/src/invocation/utils.d.ts +21 -0
- package/dist/src/invocation/utils.js +30 -0
- package/dist/src/invocation/utils.js.map +1 -0
- package/dist/src/invocation-factory/invocation-factory-manager.d.ts +20 -0
- package/dist/src/invocation-factory/invocation-factory-manager.js +50 -0
- package/dist/src/invocation-factory/invocation-factory-manager.js.map +1 -0
- package/dist/src/invocation-factory/invocation-list.d.ts +32 -0
- package/dist/src/invocation-factory/invocation-list.js +77 -0
- package/dist/src/invocation-factory/invocation-list.js.map +1 -0
- package/dist/src/invocation-factory/types.d.ts +11 -0
- package/dist/src/invocation-factory/types.js +2 -0
- package/dist/src/invocation-factory/types.js.map +1 -0
- package/dist/src/jmap-client/jmap-client.d.ts +252 -0
- package/dist/src/jmap-client/jmap-client.js +777 -0
- package/dist/src/jmap-client/jmap-client.js.map +1 -0
- package/dist/src/jmap-client/types.d.ts +427 -0
- package/dist/src/jmap-client/types.js +21 -0
- package/dist/src/jmap-client/types.js.map +1 -0
- package/dist/src/jmap-client/utils/abort-controller.d.ts +8 -0
- package/dist/src/jmap-client/utils/abort-controller.js +24 -0
- package/dist/src/jmap-client/utils/abort-controller.js.map +1 -0
- package/dist/src/jmap-client/utils/assert-connected.d.ts +7 -0
- package/dist/src/jmap-client/utils/assert-connected.js +11 -0
- package/dist/src/jmap-client/utils/assert-connected.js.map +1 -0
- package/dist/src/jmap-client/utils/deep-freeze.d.ts +7 -0
- package/dist/src/jmap-client/utils/deep-freeze.js +17 -0
- package/dist/src/jmap-client/utils/deep-freeze.js.map +1 -0
- package/dist/src/jmap-client/utils/emitter.d.ts +9 -0
- package/dist/src/jmap-client/utils/emitter.js +18 -0
- package/dist/src/jmap-client/utils/emitter.js.map +1 -0
- package/dist/src/jmap-client/utils/filter-session-capabilities.d.ts +22 -0
- package/dist/src/jmap-client/utils/filter-session-capabilities.js +40 -0
- package/dist/src/jmap-client/utils/filter-session-capabilities.js.map +1 -0
- package/dist/src/jmap-client/utils/jmap-request-error.d.ts +28 -0
- package/dist/src/jmap-client/utils/jmap-request-error.js +48 -0
- package/dist/src/jmap-client/utils/jmap-request-error.js.map +1 -0
- package/dist/src/jmap-client/utils/logger.d.ts +6 -0
- package/dist/src/jmap-client/utils/logger.js +22 -0
- package/dist/src/jmap-client/utils/logger.js.map +1 -0
- package/dist/src/jmap-client/utils/merge-headers.d.ts +11 -0
- package/dist/src/jmap-client/utils/merge-headers.js +40 -0
- package/dist/src/jmap-client/utils/merge-headers.js.map +1 -0
- package/dist/src/jmap-client/utils/template-utils.d.ts +27 -0
- package/dist/src/jmap-client/utils/template-utils.js +61 -0
- package/dist/src/jmap-client/utils/template-utils.js.map +1 -0
- package/dist/src/jmap-client/utils/track-utils.d.ts +19 -0
- package/dist/src/jmap-client/utils/track-utils.js +35 -0
- package/dist/src/jmap-client/utils/track-utils.js.map +1 -0
- package/dist/src/jmap-client/utils/transport.d.ts +12 -0
- package/dist/src/jmap-client/utils/transport.js +38 -0
- package/dist/src/jmap-client/utils/transport.js.map +1 -0
- package/dist/src/jmap-client/utils/validate-session.d.ts +19 -0
- package/dist/src/jmap-client/utils/validate-session.js +29 -0
- package/dist/src/jmap-client/utils/validate-session.js.map +1 -0
- package/dist/src/request-builder/request-builder.d.ts +95 -0
- package/dist/src/request-builder/request-builder.js +343 -0
- package/dist/src/request-builder/request-builder.js.map +1 -0
- package/dist/src/request-builder/types.d.ts +32 -0
- package/dist/src/request-builder/types.js +2 -0
- package/dist/src/request-builder/types.js.map +1 -0
- package/package.json +69 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jmap-client.js","sourceRoot":"","sources":["../../../src/jmap-client/jmap-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
import type { AccountCapabilityValidationResult, CapabilityDefinition, CapabilityRegistryInterface, ServerCapabilityValidationResult } from "../capability-registry/types.js";
|
|
3
|
+
import type { Id, IdMap, JMAPAccountCapabilities, JMAPCapability, JMAPCapabilityUri, JMAPServerCapabilities } from "../common/types.js";
|
|
4
|
+
import type { InvocationList } from "../invocation-factory/invocation-list.js";
|
|
5
|
+
import type { BaseInvocationArgs } from "../invocation/types.js";
|
|
6
|
+
import type { JMAPRequestError } from "./utils/jmap-request-error.js";
|
|
7
|
+
/**
|
|
8
|
+
* Comprehensive interface for JMAP client functionality.
|
|
9
|
+
* This interface defines all the methods and properties that a JMAP client should provide.
|
|
10
|
+
*/
|
|
11
|
+
export interface JMAPClientInterface<T> {
|
|
12
|
+
/** The current connection status of the client */
|
|
13
|
+
readonly connectionStatus: ConnectionStatus;
|
|
14
|
+
/** Connect to the JMAP server */
|
|
15
|
+
connect(signal?: AbortSignal): Promise<void>;
|
|
16
|
+
/** Disconnect from the JMAP server */
|
|
17
|
+
disconnect(): Promise<void>;
|
|
18
|
+
/** The server capabilities from the session object, or null if not connected */
|
|
19
|
+
readonly serverCapabilities: Readonly<JMAPServerCapabilities> | null;
|
|
20
|
+
/** The accounts from the session object, or null if not connected */
|
|
21
|
+
readonly accounts: Readonly<Record<Id, JMAPAccount>> | null;
|
|
22
|
+
/** The primary accounts from the session object */
|
|
23
|
+
readonly primaryAccounts: Readonly<Partial<Record<JMAPCapability, Id>>>;
|
|
24
|
+
/** The username from the session object */
|
|
25
|
+
readonly username: string | null;
|
|
26
|
+
/** The API URL for JMAP API requests */
|
|
27
|
+
readonly apiUrl: string | null;
|
|
28
|
+
/** The download URL template */
|
|
29
|
+
readonly downloadUrl: string | null;
|
|
30
|
+
/** The upload URL template */
|
|
31
|
+
readonly uploadUrl: string | null;
|
|
32
|
+
/** The event source URL template */
|
|
33
|
+
readonly eventSourceUrl: string | null;
|
|
34
|
+
/** Get the capability registry for the client */
|
|
35
|
+
readonly capabilityRegistry: CapabilityRegistryInterface;
|
|
36
|
+
/** Set the hostname for the JMAP server */
|
|
37
|
+
withHostname(hostname: string): this;
|
|
38
|
+
/** Set the port for the JMAP server */
|
|
39
|
+
withPort(port: number): this;
|
|
40
|
+
/** Set additional headers for requests */
|
|
41
|
+
withHeaders(headers: Headers | Record<string, string>): this;
|
|
42
|
+
/** Set a custom logger for the client */
|
|
43
|
+
withLogger(logger: Logger): this;
|
|
44
|
+
/** Set a custom event emitter for the client */
|
|
45
|
+
withEmitter(emitter: EventEmitterFn): this;
|
|
46
|
+
/** Register new capabilities with the client */
|
|
47
|
+
registerCapabilities(...capabilities: CapabilityDefinition[]): Promise<CapabilityRegistrationResult>;
|
|
48
|
+
/** Download a file from the JMAP server */
|
|
49
|
+
downloadFile(accountId: Id, blobId: Id, name: string, type: string, signal?: AbortSignal): Promise<Blob>;
|
|
50
|
+
/** Upload a file to the JMAP server */
|
|
51
|
+
uploadFile(accountId: Id, file: Blob | ArrayBuffer | File, signal?: AbortSignal): Promise<JMAPUploadResponse>;
|
|
52
|
+
/** Create a new request builder */
|
|
53
|
+
createRequestBuilder(): T;
|
|
54
|
+
/** Send an API request to the JMAP server */
|
|
55
|
+
sendAPIRequest(jmapRequest: T, signal?: AbortSignal): Promise<{
|
|
56
|
+
methodResponses: InvocationList<BaseInvocationArgs>;
|
|
57
|
+
sessionState: string;
|
|
58
|
+
createdIds: IdMap;
|
|
59
|
+
}>;
|
|
60
|
+
}
|
|
61
|
+
export type JMAPClientOptions = Partial<ClientContext> & {
|
|
62
|
+
hostname?: string;
|
|
63
|
+
port?: number;
|
|
64
|
+
headers?: Headers | Record<string, string>;
|
|
65
|
+
};
|
|
66
|
+
export type ConnectionStatus = "disconnected" | "connecting" | "connected" | "disconnecting";
|
|
67
|
+
export type ClientContext = {
|
|
68
|
+
/** A logger instance for logging errors and information. */
|
|
69
|
+
logger: Logger;
|
|
70
|
+
/** An event emitter instance for emitting events. */
|
|
71
|
+
emitter: EventEmitterFn;
|
|
72
|
+
};
|
|
73
|
+
export type LoggerMethod = (message: string, ...optionalParams: any[]) => void;
|
|
74
|
+
export type Logger = {
|
|
75
|
+
log: LoggerMethod;
|
|
76
|
+
info: LoggerMethod;
|
|
77
|
+
warn: LoggerMethod;
|
|
78
|
+
error: LoggerMethod;
|
|
79
|
+
debug: LoggerMethod;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Events emitted by the JMAP client
|
|
83
|
+
*/
|
|
84
|
+
export interface JMAPClientEvents {
|
|
85
|
+
/**
|
|
86
|
+
* Emitted when the client's connection status changes
|
|
87
|
+
*/
|
|
88
|
+
"status-changed": {
|
|
89
|
+
/**
|
|
90
|
+
* The new connection status
|
|
91
|
+
*/
|
|
92
|
+
status: string;
|
|
93
|
+
/**
|
|
94
|
+
* The session state, if available
|
|
95
|
+
*/
|
|
96
|
+
sessionState: string | null;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Emitted when the session state reported by the server changes
|
|
100
|
+
*/
|
|
101
|
+
"session-stale": {
|
|
102
|
+
/**
|
|
103
|
+
* The previous session state
|
|
104
|
+
*/
|
|
105
|
+
oldSessionState: string | null;
|
|
106
|
+
/**
|
|
107
|
+
* The new session state
|
|
108
|
+
*/
|
|
109
|
+
newSessionState: string;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Emitted when a request-level error occurs (e.g. authentication error, invalid JSON, etc.)
|
|
113
|
+
*/
|
|
114
|
+
"request-error": {
|
|
115
|
+
/**
|
|
116
|
+
* The error that occurred
|
|
117
|
+
*/
|
|
118
|
+
error: JMAPRequestError;
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* Emitted when a transport or network error occurs during any kind of request
|
|
122
|
+
*/
|
|
123
|
+
"transport-error": {
|
|
124
|
+
/**
|
|
125
|
+
* The error that occurred
|
|
126
|
+
*/
|
|
127
|
+
error: unknown;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Emitted when a file upload operation fails
|
|
131
|
+
*/
|
|
132
|
+
"upload-error": {
|
|
133
|
+
/**
|
|
134
|
+
* The account ID to which the upload was attempted
|
|
135
|
+
*/
|
|
136
|
+
accountId: Id;
|
|
137
|
+
/**
|
|
138
|
+
* The error that occurred during upload
|
|
139
|
+
*/
|
|
140
|
+
error: JMAPRequestError;
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* Emitted when a file download operation fails
|
|
144
|
+
*/
|
|
145
|
+
"download-error": {
|
|
146
|
+
/**
|
|
147
|
+
* The account ID from which the download was attempted
|
|
148
|
+
*/
|
|
149
|
+
accountId: Id;
|
|
150
|
+
/**
|
|
151
|
+
* The blob ID of the file being downloaded
|
|
152
|
+
*/
|
|
153
|
+
blobId: Id;
|
|
154
|
+
/**
|
|
155
|
+
* The error that occurred during download
|
|
156
|
+
*/
|
|
157
|
+
error: JMAPRequestError;
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Emitted when one or more capabilities fail schema validation.
|
|
161
|
+
*
|
|
162
|
+
* During connection (`context: "connection"`), invalid capabilities are stripped from the
|
|
163
|
+
* frozen session and treated as unsupported.
|
|
164
|
+
*
|
|
165
|
+
* During late registration (`context: "registration"`), capabilities whose schemas fail
|
|
166
|
+
* validation against the existing session are rejected and not registered.
|
|
167
|
+
*/
|
|
168
|
+
"invalid-capabilities": {
|
|
169
|
+
/**
|
|
170
|
+
* Whether the validation occurred during initial connection or late registration
|
|
171
|
+
*/
|
|
172
|
+
context: "connection" | "registration";
|
|
173
|
+
/**
|
|
174
|
+
* Server capabilities that failed validation
|
|
175
|
+
*/
|
|
176
|
+
serverCapabilities: Extract<ServerCapabilityValidationResult, {
|
|
177
|
+
valid: false;
|
|
178
|
+
}>[];
|
|
179
|
+
/**
|
|
180
|
+
* Account capabilities that failed validation
|
|
181
|
+
*/
|
|
182
|
+
accountCapabilities: Extract<AccountCapabilityValidationResult, {
|
|
183
|
+
valid: false;
|
|
184
|
+
}>[];
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* The result of registering capabilities with the client.
|
|
189
|
+
*
|
|
190
|
+
* Contains arrays of server and account capability validation failures.
|
|
191
|
+
* Empty arrays indicate all capabilities were registered successfully.
|
|
192
|
+
*/
|
|
193
|
+
export type CapabilityRegistrationResult = {
|
|
194
|
+
/** Server capabilities that failed validation and were not registered */
|
|
195
|
+
serverCapabilities: Extract<ServerCapabilityValidationResult, {
|
|
196
|
+
valid: false;
|
|
197
|
+
}>[];
|
|
198
|
+
/** Account capabilities that failed validation and were not registered */
|
|
199
|
+
accountCapabilities: Extract<AccountCapabilityValidationResult, {
|
|
200
|
+
valid: false;
|
|
201
|
+
}>[];
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Event names that can be emitted by the JMAP client
|
|
205
|
+
*/
|
|
206
|
+
export type JMAPClientEventName = keyof JMAPClientEvents;
|
|
207
|
+
/**
|
|
208
|
+
* Type-safe event emitter function
|
|
209
|
+
*/
|
|
210
|
+
export type TypedEventEmitterFn<Events> = <E extends keyof Events>(name: E, payload: Events[E]) => void;
|
|
211
|
+
/**
|
|
212
|
+
* A callback function to handle emitting events.
|
|
213
|
+
* @param name The name of the event.
|
|
214
|
+
* @param payload Any data associated with the event.
|
|
215
|
+
*
|
|
216
|
+
* @remarks
|
|
217
|
+
* Applications may use this with the emit function from any Event Emitter library.
|
|
218
|
+
*/
|
|
219
|
+
export type EventEmitterFn = TypedEventEmitterFn<JMAPClientEvents>;
|
|
220
|
+
/**
|
|
221
|
+
* The allowed response types for Transport methods.
|
|
222
|
+
*/
|
|
223
|
+
export type TransportResponseType = "json" | "blob";
|
|
224
|
+
/**
|
|
225
|
+
* Options for Transport requests.
|
|
226
|
+
*/
|
|
227
|
+
export type TransportRequestOptions = {
|
|
228
|
+
/**
|
|
229
|
+
* Additional HTTP headers to include in the request.
|
|
230
|
+
*/
|
|
231
|
+
headers?: Headers;
|
|
232
|
+
/**
|
|
233
|
+
* The expected response type: "json" (default) parses and returns JSON, "blob" returns a Blob (for binary data).
|
|
234
|
+
*/
|
|
235
|
+
responseType?: TransportResponseType;
|
|
236
|
+
/**
|
|
237
|
+
* An AbortSignal to allow aborting the request.
|
|
238
|
+
*/
|
|
239
|
+
signal?: AbortSignal;
|
|
240
|
+
/**
|
|
241
|
+
* The request body (for POST requests only).
|
|
242
|
+
* - String: For JSON or text data
|
|
243
|
+
* - Blob/File: For binary data like files
|
|
244
|
+
* - ArrayBuffer: For raw binary data
|
|
245
|
+
*/
|
|
246
|
+
body?: string | Blob | ArrayBuffer | File;
|
|
247
|
+
};
|
|
248
|
+
/**
|
|
249
|
+
* An implementation providing HTTP request functionality for GET and POST requests.
|
|
250
|
+
*
|
|
251
|
+
* Implementations are expected to handle authentication and authorisation internally. For example,
|
|
252
|
+
* automatically including `Authorization` headers in the requests with a valid Bearer token.
|
|
253
|
+
*
|
|
254
|
+
* The `responseType` parameter specifies the expected response type:
|
|
255
|
+
* - "json" (default): parses and returns JSON.
|
|
256
|
+
* - "blob": returns a Blob (for binary data).
|
|
257
|
+
*/
|
|
258
|
+
export type Transport = {
|
|
259
|
+
/**
|
|
260
|
+
* Perform an HTTP GET request to the specified URL with the included options.
|
|
261
|
+
*
|
|
262
|
+
* @param url The URL to request.
|
|
263
|
+
* @param options Additional options for the request (headers, responseType, signal).
|
|
264
|
+
* @returns The parsed response body from a successful request.
|
|
265
|
+
*
|
|
266
|
+
* @throws {TypeError} If parsing the response fails.
|
|
267
|
+
* @throws {JMAPRequestError} For JMAP-specific protocol errors with non-200 status codes
|
|
268
|
+
* and JSON response bodies conforming to RFC 7807 Problem Details.
|
|
269
|
+
* @throws {Error} For network errors, timeouts, and other request failures.
|
|
270
|
+
*/
|
|
271
|
+
get: <T>(url: string | URL, options?: Omit<TransportRequestOptions, "body">) => Promise<T>;
|
|
272
|
+
/**
|
|
273
|
+
* Perform an HTTP POST request to the specified URL with the included options.
|
|
274
|
+
*
|
|
275
|
+
* @param url The URL to request.
|
|
276
|
+
* @param options Additional options for the request (body, headers, responseType, signal).
|
|
277
|
+
* @returns The parsed response body from a successful request.
|
|
278
|
+
*
|
|
279
|
+
* @throws {TypeError} If parsing the response fails.
|
|
280
|
+
* @throws {JMAPRequestError} For JMAP-specific protocol errors with non-200 status codes
|
|
281
|
+
* and JSON response bodies conforming to RFC 7807 Problem Details.
|
|
282
|
+
* @throws {Error} For network errors, timeouts, and other request failures.
|
|
283
|
+
*/
|
|
284
|
+
post: <T>(url: string | URL, options?: TransportRequestOptions) => Promise<T>;
|
|
285
|
+
};
|
|
286
|
+
export declare const AccountSchema: z.ZodObject<{
|
|
287
|
+
name: z.ZodString;
|
|
288
|
+
isPersonal: z.ZodBoolean;
|
|
289
|
+
isReadOnly: z.ZodBoolean;
|
|
290
|
+
accountCapabilities: z.ZodObject<{}, z.core.$loose>;
|
|
291
|
+
}, z.core.$loose>;
|
|
292
|
+
/**
|
|
293
|
+
* Account
|
|
294
|
+
*
|
|
295
|
+
* Represents a JMAP account as described in the JMAP Session object.
|
|
296
|
+
*
|
|
297
|
+
* @see {@link https://www.rfc-editor.org/rfc/rfc8620.html#section-1.6.2 RFC 8620 Section 1.6.2 - Accounts}
|
|
298
|
+
*/
|
|
299
|
+
export type JMAPAccount = {
|
|
300
|
+
/**
|
|
301
|
+
* A user-friendly string to show when presenting content from this account, e.g., the email
|
|
302
|
+
* address representing the owner of the account.
|
|
303
|
+
*/
|
|
304
|
+
name: string;
|
|
305
|
+
/**
|
|
306
|
+
* This is true if the account belongs to the authenticated user rather than a group account or
|
|
307
|
+
* a personal account of another user that has been shared with them.
|
|
308
|
+
*/
|
|
309
|
+
isPersonal: boolean;
|
|
310
|
+
/** This is true if the entire account is read-only. */
|
|
311
|
+
isReadOnly: boolean;
|
|
312
|
+
/**
|
|
313
|
+
* The set of capability URIs for the methods supported in this account. Each key is a URI for a
|
|
314
|
+
* capability that has methods you can use with this account. The value for each of these keys
|
|
315
|
+
* is an object with further information about the account’s permissions and restrictions with
|
|
316
|
+
* respect to this capability, as defined in the capability’s specification.
|
|
317
|
+
*/
|
|
318
|
+
accountCapabilities: JMAPAccountCapabilities;
|
|
319
|
+
};
|
|
320
|
+
export declare const JMAPSessionSchema: z.ZodObject<{
|
|
321
|
+
capabilities: z.ZodObject<{
|
|
322
|
+
"urn:ietf:params:jmap:core": z.ZodObject<{}, z.core.$loose>;
|
|
323
|
+
}, z.core.$loose>;
|
|
324
|
+
accounts: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
325
|
+
name: z.ZodString;
|
|
326
|
+
isPersonal: z.ZodBoolean;
|
|
327
|
+
isReadOnly: z.ZodBoolean;
|
|
328
|
+
accountCapabilities: z.ZodObject<{}, z.core.$loose>;
|
|
329
|
+
}, z.core.$loose>>;
|
|
330
|
+
primaryAccounts: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
331
|
+
username: z.ZodString;
|
|
332
|
+
apiUrl: z.ZodString;
|
|
333
|
+
downloadUrl: z.ZodString;
|
|
334
|
+
uploadUrl: z.ZodString;
|
|
335
|
+
eventSourceUrl: z.ZodString;
|
|
336
|
+
state: z.ZodString;
|
|
337
|
+
}, z.core.$loose>;
|
|
338
|
+
/**
|
|
339
|
+
* JMAPSession
|
|
340
|
+
*
|
|
341
|
+
* The session object returned by the JMAP server's well-known endpoint.
|
|
342
|
+
*
|
|
343
|
+
* @see {@link https://www.rfc-editor.org/rfc/rfc8620.html#section-2 RFC 8620 Section 2 - The JMAP Session Resource}
|
|
344
|
+
*/
|
|
345
|
+
export type JMAPSession = Readonly<{
|
|
346
|
+
/**
|
|
347
|
+
* An object specifying the capabilities of this server. Each key is a URI for a capability
|
|
348
|
+
* supported by the server. The value for each of these keys is an object with further
|
|
349
|
+
* information about the server’s capabilities in relation to that capability.
|
|
350
|
+
*/
|
|
351
|
+
capabilities: JMAPServerCapabilities;
|
|
352
|
+
/**
|
|
353
|
+
* A map of an account id to an Account object for each account the user has access to.
|
|
354
|
+
*/
|
|
355
|
+
accounts: Record<Id, JMAPAccount>;
|
|
356
|
+
/**
|
|
357
|
+
* A map of capability URIs (as found in accountCapabilities) to the account id that is
|
|
358
|
+
* considered to be the user’s main or default account for data pertaining to that capability.
|
|
359
|
+
* If no account being returned belongs to the user, or in any other way there is no
|
|
360
|
+
* appropriate way to determine a default account, there MAY be no entry for a particular URI,
|
|
361
|
+
* even though that capability is supported by the server (and in the capabilities object).
|
|
362
|
+
* `urn:ietf:params:jmap:core` SHOULD NOT be present.
|
|
363
|
+
*/
|
|
364
|
+
primaryAccounts: Partial<Record<JMAPCapabilityUri, Id>>;
|
|
365
|
+
/**
|
|
366
|
+
* The username associated with the given credentials, or the empty string if none.
|
|
367
|
+
*/
|
|
368
|
+
username: string;
|
|
369
|
+
/** The URL to use for JMAP API requests. */
|
|
370
|
+
apiUrl: string;
|
|
371
|
+
/**
|
|
372
|
+
* The URL endpoint to use when downloading files, in URI Template (level 1) format
|
|
373
|
+
* {@link https://www.rfc-editor.org/rfc/rfc6570.html RFC 6570}. The URL MUST contain variables called
|
|
374
|
+
* `accountId`, `blobId`, `type`, and `name`.
|
|
375
|
+
*
|
|
376
|
+
* Due to potential encoding issues with slashes in content types, it is RECOMMENDED to put the
|
|
377
|
+
* type variable in the query section of the URL.
|
|
378
|
+
*/
|
|
379
|
+
downloadUrl: string;
|
|
380
|
+
/**
|
|
381
|
+
* The URL endpoint to use when uploading files, in URI Template (level 1) format
|
|
382
|
+
* {@link https://www.rfc-editor.org/rfc/rfc6570.html RFC 6570}. The URL MUST contain a variable
|
|
383
|
+
* called `accountId`.
|
|
384
|
+
*/
|
|
385
|
+
uploadUrl: string;
|
|
386
|
+
/**
|
|
387
|
+
* The URL to connect to for push events, as described in Section 7.3, in URI Template (level 1)
|
|
388
|
+
* format {@link https://www.rfc-editor.org/rfc/rfc6570.html RFC 6570}. The URL MUST contain variables
|
|
389
|
+
* called `types`, `closeafter`, and `ping`.
|
|
390
|
+
*/
|
|
391
|
+
eventSourceUrl: string;
|
|
392
|
+
/**
|
|
393
|
+
* A (preferably short) string representing the state of this object on the server. If the value
|
|
394
|
+
* of any other property on the Session object changes, this string will change. The current
|
|
395
|
+
* value is also returned on the API Response object (see Section 3.4), allowing clients to
|
|
396
|
+
* quickly determine if the session information has changed (e.g., an account has been added
|
|
397
|
+
* or removed), so they need to refetch the object.
|
|
398
|
+
*/
|
|
399
|
+
state: string;
|
|
400
|
+
}>;
|
|
401
|
+
export type JMAPSessionFromSchema = z.infer<typeof JMAPSessionSchema>;
|
|
402
|
+
/**
|
|
403
|
+
* JMAPUploadResponse
|
|
404
|
+
*
|
|
405
|
+
* The response object from a successful file upload operation.
|
|
406
|
+
*
|
|
407
|
+
* @see {@link https://www.rfc-editor.org/rfc/rfc8620.html#section-6.1 RFC 8620 Section 6.1 - Uploading Binary Data}
|
|
408
|
+
*/
|
|
409
|
+
export type JMAPUploadResponse = {
|
|
410
|
+
/**
|
|
411
|
+
* The id of the account the file was uploaded to.
|
|
412
|
+
*/
|
|
413
|
+
accountId: Id;
|
|
414
|
+
/**
|
|
415
|
+
* A unique identifier for the uploaded blob.
|
|
416
|
+
*/
|
|
417
|
+
blobId: Id;
|
|
418
|
+
/**
|
|
419
|
+
* The media type of the file, as specified in the Content-Type header.
|
|
420
|
+
*/
|
|
421
|
+
type: string;
|
|
422
|
+
/**
|
|
423
|
+
* The size of the file in octets.
|
|
424
|
+
*/
|
|
425
|
+
size: number;
|
|
426
|
+
};
|
|
427
|
+
export type HeadersInit = Exclude<ConstructorParameters<typeof Headers>[0], undefined>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
import { JMAPAccountCapabilitiesSchema, JMAPServerCapabilitiesSchema } from "../common/types.js";
|
|
3
|
+
export const AccountSchema = z.looseObject({
|
|
4
|
+
name: z.string(),
|
|
5
|
+
isPersonal: z.boolean(),
|
|
6
|
+
isReadOnly: z.boolean(),
|
|
7
|
+
accountCapabilities: JMAPAccountCapabilitiesSchema,
|
|
8
|
+
});
|
|
9
|
+
//JMAPSession
|
|
10
|
+
export const JMAPSessionSchema = z.looseObject({
|
|
11
|
+
capabilities: JMAPServerCapabilitiesSchema,
|
|
12
|
+
accounts: z.record(z.string(), AccountSchema),
|
|
13
|
+
primaryAccounts: z.record(z.string(), z.string()),
|
|
14
|
+
username: z.string(),
|
|
15
|
+
apiUrl: z.string(),
|
|
16
|
+
downloadUrl: z.string(),
|
|
17
|
+
uploadUrl: z.string(),
|
|
18
|
+
eventSourceUrl: z.string(),
|
|
19
|
+
state: z.string(),
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/jmap-client/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAe3B,OAAO,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAmVjG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;IACvB,mBAAmB,EAAE,6BAA6B;CACrD,CAAC,CAAC;AAkCH,aAAa;AACb,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC;IAC3C,YAAY,EAAE,4BAA4B;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC;IAC7C,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an AbortController that is managed internally, but will also be aborted
|
|
3
|
+
* if the provided external signal is aborted.
|
|
4
|
+
*
|
|
5
|
+
* @param externalSignal An optional AbortSignal from the consumer.
|
|
6
|
+
* @returns The internally managed AbortController.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createAbortController(externalSignal?: AbortSignal): AbortController;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an AbortController that is managed internally, but will also be aborted
|
|
3
|
+
* if the provided external signal is aborted.
|
|
4
|
+
*
|
|
5
|
+
* @param externalSignal An optional AbortSignal from the consumer.
|
|
6
|
+
* @returns The internally managed AbortController.
|
|
7
|
+
*/
|
|
8
|
+
export function createAbortController(externalSignal) {
|
|
9
|
+
const controller = new AbortController();
|
|
10
|
+
if (externalSignal) {
|
|
11
|
+
if (externalSignal.aborted) {
|
|
12
|
+
controller.abort();
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
const onAbort = () => controller.abort();
|
|
16
|
+
externalSignal.addEventListener("abort", onAbort, { once: true });
|
|
17
|
+
controller.signal.addEventListener("abort", () => {
|
|
18
|
+
externalSignal.removeEventListener("abort", onAbort);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return controller;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=abort-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abort-controller.js","sourceRoot":"","sources":["../../../../src/jmap-client/utils/abort-controller.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,cAA4B;IAC9D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,cAAc,EAAE,CAAC;QACjB,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YACzB,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACJ,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACzC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC7C,cAAc,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ConnectionStatus } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Assert that the connection status is 'connected'.
|
|
4
|
+
* @param status - The current connection status.
|
|
5
|
+
* @throws Error if the status is not 'connected'.
|
|
6
|
+
*/
|
|
7
|
+
export declare function assertConnected(status: ConnectionStatus): asserts status is "connected";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assert that the connection status is 'connected'.
|
|
3
|
+
* @param status - The current connection status.
|
|
4
|
+
* @throws Error if the status is not 'connected'.
|
|
5
|
+
*/
|
|
6
|
+
export function assertConnected(status) {
|
|
7
|
+
if (status !== "connected") {
|
|
8
|
+
throw new Error("Client is not connected to a JMAP server");
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=assert-connected.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert-connected.js","sourceRoot":"","sources":["../../../../src/jmap-client/utils/assert-connected.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAwB;IACpD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAChE,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deep freeze an object and all nested objects/functions within it.
|
|
3
|
+
* @template T - The type of the object to freeze.
|
|
4
|
+
* @param o - The object to deeply freeze.
|
|
5
|
+
* @returns The deeply frozen (immutable) object.
|
|
6
|
+
*/
|
|
7
|
+
export declare function deepFreeze<T extends object>(o: T): Readonly<T>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deep freeze an object and all nested objects/functions within it.
|
|
3
|
+
* @template T - The type of the object to freeze.
|
|
4
|
+
* @param o - The object to deeply freeze.
|
|
5
|
+
* @returns The deeply frozen (immutable) object.
|
|
6
|
+
*/
|
|
7
|
+
export function deepFreeze(o) {
|
|
8
|
+
const propNames = Reflect.ownKeys(o);
|
|
9
|
+
for (const name of propNames) {
|
|
10
|
+
const value = o[name];
|
|
11
|
+
if ((value && typeof value === "object") || typeof value === "function") {
|
|
12
|
+
deepFreeze(value);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return Object.freeze(o);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=deep-freeze.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-freeze.js","sourceRoot":"","sources":["../../../../src/jmap-client/utils/deep-freeze.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAmB,CAAI;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,IAAsB,CAAY,CAAC;QACnD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YACtE,UAAU,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { EventEmitterFn } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Create a safe event emitter function that wraps an external emitter implementation.
|
|
4
|
+
* The returned function wraps the emitter in try/catch to prevent errors in the emitter from affecting the application.
|
|
5
|
+
*
|
|
6
|
+
* @param getCurrentEmitter A function that returns the current emitter implementation
|
|
7
|
+
* @returns A safe event emitter function
|
|
8
|
+
*/
|
|
9
|
+
export declare function createEmitter(getCurrentEmitter: () => EventEmitterFn | undefined): EventEmitterFn;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a safe event emitter function that wraps an external emitter implementation.
|
|
3
|
+
* The returned function wraps the emitter in try/catch to prevent errors in the emitter from affecting the application.
|
|
4
|
+
*
|
|
5
|
+
* @param getCurrentEmitter A function that returns the current emitter implementation
|
|
6
|
+
* @returns A safe event emitter function
|
|
7
|
+
*/
|
|
8
|
+
export function createEmitter(getCurrentEmitter) {
|
|
9
|
+
return (name, payload) => {
|
|
10
|
+
try {
|
|
11
|
+
getCurrentEmitter()?.(name, payload);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
// Ignore any errors from the external emitter
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../../src/jmap-client/utils/emitter.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,iBAAmD;IAC7E,OAAO,CAAmC,IAAO,EAAE,OAA4B,EAAE,EAAE;QAC/E,IAAI,CAAC;YACD,iBAAiB,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACL,8CAA8C;QAClD,CAAC;IACL,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { JMAPCapability } from "../../common/types.js";
|
|
2
|
+
import type { JMAPSession, JMAPSessionFromSchema } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Construct a new session object with invalid capabilities filtered out, then deep-freeze it.
|
|
5
|
+
*
|
|
6
|
+
* - Server-level failures cause the capability to be removed from `capabilities`,
|
|
7
|
+
* all `account.accountCapabilities`, and `primaryAccounts`.
|
|
8
|
+
* - Account-level failures cause the capability to be removed from that specific
|
|
9
|
+
* account's `accountCapabilities` and, if the account was the primary for that
|
|
10
|
+
* capability, from `primaryAccounts`.
|
|
11
|
+
*
|
|
12
|
+
* @param session The parsed (mutable) session from structural validation
|
|
13
|
+
* @param serverFailures Server capabilities that failed schema validation
|
|
14
|
+
* @param accountFailures Account capabilities that failed schema validation
|
|
15
|
+
* @returns A deeply frozen JMAPSession with invalid capabilities removed
|
|
16
|
+
*/
|
|
17
|
+
export declare function filterSessionCapabilities(session: JMAPSessionFromSchema, serverFailures: {
|
|
18
|
+
uri: JMAPCapability;
|
|
19
|
+
}[], accountFailures: {
|
|
20
|
+
uri: JMAPCapability;
|
|
21
|
+
accountId: string;
|
|
22
|
+
}[]): JMAPSession;
|