@serve.zone/interfaces 21.0.0 → 22.0.0

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/changelog.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026-07-30 - 22.0.0
4
+
5
+ ### Breaking Changes
6
+
7
+ - define the complete CoreMail v22 authority and lifecycle contract (coremail)
8
+ - Add draining bindings, composite credential-session reporting, rotating cursor-key references, authenticated workload transfer origins, and schema-v2 canonical desired state.
9
+ - Replace caller-constructed inbound delivery pagination with opaque cursors bounded by item and serialized-byte budgets, and require finite authoritative per-binding quotas.
10
+ - Define fixed 30-day terminal retention, non-expiring pending inbound delivery, strict terminal status fields, and canonical one-time HTTP transfer grants.
11
+ - Export strict runtime normalizers for messages, envelopes, transfers, submissions, gateway status, inbound delivery pages, and reconciliation status.
12
+ - Publish exact active/draining workload operation authority and require canonical 256-bit, fixed-lifetime transfer capabilities.
13
+
14
+ ## 2026-07-29 - 21.1.0
15
+
16
+ ### Features
17
+
18
+ - bind reconciliation reports to immutable image rollouts (status)
19
+ - Adds a both-or-neither `rolloutId` and `rolloutGeneration` pair to
20
+ `reportReconciliationStatus` requests.
21
+ - Enables Cloudly to ignore delayed immutable-image reports from superseded
22
+ rollouts instead of mutating the current rollout state.
23
+
3
24
  ## 2026-07-29 - 21.0.0
4
25
 
5
26
  ### Breaking Changes
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/interfaces',
6
- version: '21.0.0',
6
+ version: '22.0.0',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHVGQUF1RjtDQUNyRyxDQUFBIn0=
@@ -8,7 +8,7 @@
8
8
  */
9
9
  export type TCoreMailSha256 = `sha256:${string}`;
10
10
  export type TCoreMailCapability = 'outbound' | 'inbound';
11
- export type TCoreMailBindingState = 'active' | 'disabled';
11
+ export type TCoreMailBindingState = 'active' | 'draining' | 'disabled';
12
12
  export type TCoreMailCredentialState = 'current' | 'retiring';
13
13
  export type TCoreMailCredentialVerifierFormat = 'argon2id-v1';
14
14
  export type TCoreMailPartKind = 'text' | 'html' | 'attachment';
@@ -18,7 +18,8 @@ export type TCoreMailInboundDeliveryState = 'pending' | 'fetching' | 'fetched' |
18
18
  export type TCoreMailInboundAckOutcome = 'processed' | 'discarded';
19
19
  export type TCoreMailRecipientAction = 'accept' | 'reject' | 'defer';
20
20
  export type TCoreMailReconciliationState = 'applying' | 'ready' | 'failed';
21
- export type TCoreMailErrorCode = 'AUTHENTICATION_FAILED' | 'AUTHENTICATION_EXPIRED' | 'AUTHORITY_REVOKED' | 'CAPABILITY_DENIED' | 'NOT_FOUND' | 'INVALID_REQUEST' | 'INVALID_MAILBOX' | 'INVALID_SENDER' | 'INVALID_RECIPIENT' | 'INVALID_HEADER' | 'PAYLOAD_LIMIT_EXCEEDED' | 'IDEMPOTENCY_CONFLICT' | 'STATE_CONFLICT' | 'TRANSFER_GRANT_EXPIRED' | 'TRANSFER_GRANT_REPLAYED' | 'TRANSFER_LENGTH_MISMATCH' | 'TRANSFER_DIGEST_MISMATCH' | 'TRANSFER_ENCODING_UNSUPPORTED' | 'OBJECT_INTEGRITY_CONFLICT' | 'DELIVERY_NOT_FETCHED' | 'GATEWAY_UNAVAILABLE' | 'RECONCILIATION_FENCE_MISMATCH';
21
+ export type TCoreMailWorkloadOperation = 'coreMailPrepareOutboundSubmission' | 'coreMailPrepareOutboundPartUpload' | 'coreMailCompleteOutboundPartUpload' | 'coreMailFinalizeOutboundSubmission' | 'coreMailGetOutboundSubmission' | 'coreMailListInboundDeliveries' | 'coreMailPrepareInboundFetch' | 'coreMailCompleteInboundFetch' | 'coreMailAcknowledgeInboundDelivery';
22
+ export type TCoreMailErrorCode = 'AUTHENTICATION_FAILED' | 'AUTHENTICATION_EXPIRED' | 'AUTHORITY_REVOKED' | 'CAPABILITY_DENIED' | 'NOT_FOUND' | 'INVALID_REQUEST' | 'INVALID_MAILBOX' | 'INVALID_SENDER' | 'INVALID_RECIPIENT' | 'INVALID_HEADER' | 'PAYLOAD_LIMIT_EXCEEDED' | 'QUOTA_EXCEEDED' | 'IDEMPOTENCY_CONFLICT' | 'STATE_CONFLICT' | 'TRANSFER_GRANT_EXPIRED' | 'TRANSFER_GRANT_REPLAYED' | 'TRANSFER_LENGTH_MISMATCH' | 'TRANSFER_DIGEST_MISMATCH' | 'TRANSFER_ENCODING_UNSUPPORTED' | 'OBJECT_INTEGRITY_CONFLICT' | 'DELIVERY_NOT_FETCHED' | 'DELIVERY_DEFERRED' | 'DELIVERY_FAILED' | 'DELIVERY_DEAD_LETTERED' | 'GATEWAY_UNAVAILABLE' | 'RECONCILIATION_FENCE_MISMATCH';
22
23
  export interface ICoreMailErrorData {
23
24
  code: TCoreMailErrorCode;
24
25
  retryable: boolean;
@@ -69,6 +70,7 @@ export interface ICoreMailTransferGrant {
69
70
  sha256: TCoreMailSha256;
70
71
  lengthBytes: number;
71
72
  contentType: string;
73
+ issuedAt: number;
72
74
  expiresAt: number;
73
75
  }
74
76
  export interface ICoreMailUploadGrant extends ICoreMailTransferGrant {
@@ -92,8 +94,10 @@ export interface ICoreMailSubmission {
92
94
  transportMessageId?: string;
93
95
  attempts: number;
94
96
  nextAttemptAt?: number;
97
+ error?: ICoreMailErrorData;
95
98
  acceptedAt?: number;
96
99
  deliveredAt?: number;
100
+ terminalAt?: number;
97
101
  createdAt: number;
98
102
  updatedAt: number;
99
103
  }
@@ -111,6 +115,12 @@ export interface ICoreMailInboundDelivery {
111
115
  subject?: string;
112
116
  receivedAt: number;
113
117
  updatedAt: number;
118
+ acknowledgedAt?: number;
119
+ acknowledgedOutcome?: TCoreMailInboundAckOutcome;
120
+ }
121
+ export interface ICoreMailInboundDeliveryPage {
122
+ deliveries: ICoreMailInboundDelivery[];
123
+ nextCursor?: string;
114
124
  }
115
125
  export interface ICoreMailBindingCredentialVerifier {
116
126
  credentialId: string;
@@ -123,7 +133,7 @@ export interface ICoreMailBindingCredentialVerifier {
123
133
  acceptUntil?: number;
124
134
  }
125
135
  export interface ICoreMailBindingDesiredState {
126
- schemaVersion: 1;
136
+ schemaVersion: 2;
127
137
  bindingId: string;
128
138
  serviceId: string;
129
139
  tenantId: string;
@@ -134,14 +144,16 @@ export interface ICoreMailBindingDesiredState {
134
144
  allowedSenders: string[];
135
145
  inboundRecipients: string[];
136
146
  defaultSender?: string;
137
- limits?: {
138
- messagesPerMinute?: number;
139
- messagesPerDay?: number;
140
- maxPendingInbound?: number;
147
+ limits: {
148
+ messagesPerMinute: number;
149
+ messagesPerDay: number;
150
+ maxPendingInbound: number;
141
151
  };
142
152
  }
143
153
  export interface ICoreMailGatewayDesiredState {
144
154
  endpointUrl: string;
155
+ /** Canonical CoreMail HTTPS origin authorized for path-only transfer grants. */
156
+ coreMailTransferOrigin: string;
145
157
  credentialId: string;
146
158
  credentialVersion: number;
147
159
  /** Key in CoreMail's resolved runtime secret material, never a plaintext value. */
@@ -167,11 +179,20 @@ export interface ICoreMailGatewayPeerDesiredState {
167
179
  transferOrigin: string;
168
180
  credentials: ICoreMailBindingCredentialVerifier[];
169
181
  }
182
+ export interface ICoreMailRuntimeKeyReference {
183
+ keyId: string;
184
+ version: number;
185
+ state: TCoreMailCredentialState;
186
+ /** Key in CoreMail's resolved runtime secret material, never a plaintext value. */
187
+ secretKey: string;
188
+ acceptUntil?: number;
189
+ }
170
190
  export interface ICoreMailDesiredState {
171
- schemaVersion: 1;
191
+ schemaVersion: 2;
172
192
  configEpoch: number;
173
193
  bindings: ICoreMailBindingDesiredState[];
174
194
  gateway: ICoreMailGatewayDesiredState;
195
+ cursorKeys: ICoreMailRuntimeKeyReference[];
175
196
  }
176
197
  export interface ICoreMailReplicaIdentity {
177
198
  taskId: string;
@@ -184,7 +205,9 @@ export interface ICoreMailBindingReconciliationStatus {
184
205
  bindingId: string;
185
206
  revision: number;
186
207
  state: TCoreMailBindingState;
187
- activeSessionsByCredentialVersion: Array<{
208
+ pendingInboundCount: number;
209
+ activeSessionsByCredential: Array<{
210
+ credentialId: string;
188
211
  version: number;
189
212
  count: number;
190
213
  }>;
@@ -219,7 +242,10 @@ export interface ICoreMailGatewayOutboundStatus {
219
242
  state: Extract<TCoreMailSubmissionState, 'accepted' | 'queued' | 'delivering' | 'delivered' | 'deferred' | 'failed' | 'deadLettered'>;
220
243
  attempts: number;
221
244
  nextAttemptAt?: number;
245
+ error?: ICoreMailErrorData;
222
246
  smtpCode?: number;
247
+ deliveredAt?: number;
248
+ terminalAt?: number;
223
249
  updatedAt: number;
224
250
  }
225
251
  export declare const coreMailLimits: Readonly<{
@@ -232,11 +258,59 @@ export declare const coreMailLimits: Readonly<{
232
258
  readonly aggregateAttachmentBytes: number;
233
259
  readonly mimeFramingBytes: number;
234
260
  readonly serializedMimeBytes: number;
261
+ readonly recipientCount: 100;
262
+ readonly inboundPageSize: 100;
263
+ readonly inboundPageBytes: number;
264
+ readonly cursorBytes: 1024;
265
+ readonly cursorMinimumDecodedBytes: 32;
266
+ readonly routingHandleTtlMs: number;
235
267
  readonly transferGrantTtlMs: number;
236
268
  readonly transferHeaderTimeoutMs: number;
237
269
  readonly transferIdleTimeoutMs: number;
238
270
  readonly transferOverallTimeoutMs: number;
239
271
  }>;
272
+ export declare const coreMailTransferTokenPolicy: Readonly<{
273
+ format: "base64url-256";
274
+ decodedBytes: 32;
275
+ encodedCharacters: 43;
276
+ }>;
277
+ export declare const coreMailWorkloadOperationPolicy: Readonly<{
278
+ active: Readonly<{
279
+ outbound: readonly ("coreMailPrepareOutboundSubmission" | "coreMailPrepareOutboundPartUpload" | "coreMailCompleteOutboundPartUpload" | "coreMailFinalizeOutboundSubmission" | "coreMailGetOutboundSubmission")[];
280
+ inbound: readonly ("coreMailListInboundDeliveries" | "coreMailPrepareInboundFetch" | "coreMailCompleteInboundFetch" | "coreMailAcknowledgeInboundDelivery")[];
281
+ }>;
282
+ draining: Readonly<{
283
+ outbound: readonly "coreMailGetOutboundSubmission"[];
284
+ inbound: readonly ("coreMailListInboundDeliveries" | "coreMailPrepareInboundFetch" | "coreMailCompleteInboundFetch" | "coreMailAcknowledgeInboundDelivery")[];
285
+ }>;
286
+ disabled: Readonly<{
287
+ outbound: readonly never[];
288
+ inbound: readonly never[];
289
+ }>;
290
+ }>;
291
+ export declare const coreMailRetentionPolicy: Readonly<{
292
+ terminalOutboundMs: number;
293
+ acknowledgedInboundMs: number;
294
+ idempotencyReceiptMs: number;
295
+ expiredCapabilityMs: number;
296
+ pendingInboundAgePurge: false;
297
+ }>;
298
+ export declare const coreMailQuotaPolicy: Readonly<{
299
+ windows: "fixed-utc-minute-and-day";
300
+ outboundUnit: "first-durable-idempotency-insert";
301
+ outboundReplayConsumesUnit: false;
302
+ pendingInboundStates: readonly ["pending", "fetching", "fetched"];
303
+ inboundAcknowledgementReleasesUnit: true;
304
+ }>;
305
+ export declare const coreMailTransferProtocol: Readonly<{
306
+ pathPrefix: "/transfers/";
307
+ authorizationScheme: "Bearer";
308
+ putSuccessStatus: 204;
309
+ getSuccessStatus: 200;
310
+ requireContentLength: true;
311
+ requireContentType: true;
312
+ integritySource: "grant-metadata-and-completion";
313
+ }>;
240
314
  export declare const coreMailCredentialVerifierPolicy: Readonly<{
241
315
  readonly format: "argon2id-v1";
242
316
  readonly version: 19;
@@ -16,11 +16,77 @@ export const coreMailLimits = Object.freeze({
16
16
  aggregateAttachmentBytes: 17 * 1024 * 1024,
17
17
  mimeFramingBytes: 512 * 1024,
18
18
  serializedMimeBytes: 30 * 1024 * 1024,
19
+ recipientCount: 100,
20
+ inboundPageSize: 100,
21
+ inboundPageBytes: 56 * 1024,
22
+ cursorBytes: 1_024,
23
+ cursorMinimumDecodedBytes: 32,
24
+ routingHandleTtlMs: 5 * 60 * 1000,
19
25
  transferGrantTtlMs: 5 * 60 * 1000,
20
26
  transferHeaderTimeoutMs: 10 * 1000,
21
27
  transferIdleTimeoutMs: 15 * 1000,
22
28
  transferOverallTimeoutMs: 2 * 60 * 1000,
23
29
  });
30
+ export const coreMailTransferTokenPolicy = Object.freeze({
31
+ format: 'base64url-256',
32
+ decodedBytes: 32,
33
+ encodedCharacters: 43,
34
+ });
35
+ export const coreMailWorkloadOperationPolicy = Object.freeze({
36
+ active: Object.freeze({
37
+ outbound: Object.freeze([
38
+ 'coreMailPrepareOutboundSubmission',
39
+ 'coreMailPrepareOutboundPartUpload',
40
+ 'coreMailCompleteOutboundPartUpload',
41
+ 'coreMailFinalizeOutboundSubmission',
42
+ 'coreMailGetOutboundSubmission',
43
+ ]),
44
+ inbound: Object.freeze([
45
+ 'coreMailListInboundDeliveries',
46
+ 'coreMailPrepareInboundFetch',
47
+ 'coreMailCompleteInboundFetch',
48
+ 'coreMailAcknowledgeInboundDelivery',
49
+ ]),
50
+ }),
51
+ draining: Object.freeze({
52
+ outbound: Object.freeze([
53
+ 'coreMailGetOutboundSubmission',
54
+ ]),
55
+ inbound: Object.freeze([
56
+ 'coreMailListInboundDeliveries',
57
+ 'coreMailPrepareInboundFetch',
58
+ 'coreMailCompleteInboundFetch',
59
+ 'coreMailAcknowledgeInboundDelivery',
60
+ ]),
61
+ }),
62
+ disabled: Object.freeze({
63
+ outbound: Object.freeze([]),
64
+ inbound: Object.freeze([]),
65
+ }),
66
+ });
67
+ export const coreMailRetentionPolicy = Object.freeze({
68
+ terminalOutboundMs: 30 * 24 * 60 * 60 * 1000,
69
+ acknowledgedInboundMs: 30 * 24 * 60 * 60 * 1000,
70
+ idempotencyReceiptMs: 30 * 24 * 60 * 60 * 1000,
71
+ expiredCapabilityMs: 24 * 60 * 60 * 1000,
72
+ pendingInboundAgePurge: false,
73
+ });
74
+ export const coreMailQuotaPolicy = Object.freeze({
75
+ windows: 'fixed-utc-minute-and-day',
76
+ outboundUnit: 'first-durable-idempotency-insert',
77
+ outboundReplayConsumesUnit: false,
78
+ pendingInboundStates: ['pending', 'fetching', 'fetched'],
79
+ inboundAcknowledgementReleasesUnit: true,
80
+ });
81
+ export const coreMailTransferProtocol = Object.freeze({
82
+ pathPrefix: '/transfers/',
83
+ authorizationScheme: 'Bearer',
84
+ putSuccessStatus: 204,
85
+ getSuccessStatus: 200,
86
+ requireContentLength: true,
87
+ requireContentType: true,
88
+ integritySource: 'grant-metadata-and-completion',
89
+ });
24
90
  export const coreMailCredentialVerifierPolicy = Object.freeze({
25
91
  format: 'argon2id-v1',
26
92
  version: 19,
@@ -35,4 +101,4 @@ export const coreMailRuntimeKeys = Object.freeze({
35
101
  controlCredentialSecret: 'COREMAIL_CONTROL_CREDENTIAL_SECRET',
36
102
  gatewayCredentialSecret: 'COREMAIL_GATEWAY_CREDENTIAL',
37
103
  });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZW1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9kYXRhL2NvcmVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUF3UkgsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDMUMsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLElBQUk7SUFDOUIsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ2xDLGFBQWEsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFDOUIsYUFBYSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUM5QixlQUFlLEVBQUUsRUFBRTtJQUNuQixlQUFlLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ2pDLHdCQUF3QixFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUMxQyxnQkFBZ0IsRUFBRSxHQUFHLEdBQUcsSUFBSTtJQUM1QixtQkFBbUIsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFDckMsa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJO0lBQ2pDLHVCQUF1QixFQUFFLEVBQUUsR0FBRyxJQUFJO0lBQ2xDLHFCQUFxQixFQUFFLEVBQUUsR0FBRyxJQUFJO0lBQ2hDLHdCQUF3QixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSTtDQUMvQixDQUFDLENBQUM7QUFFWixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzVELE1BQU0sRUFBRSxhQUFzQjtJQUM5QixPQUFPLEVBQUUsRUFBRTtJQUNYLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFFBQVEsRUFBRSxDQUFDO0lBQ1gsV0FBVyxFQUFFLENBQUM7SUFDZCxlQUFlLEVBQUUsRUFBRTtJQUNuQixlQUFlLEVBQUUsRUFBRTtDQUNYLENBQUMsQ0FBQztBQUVaLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDL0MsZ0JBQWdCLEVBQUUsNEJBQTRCO0lBQzlDLHVCQUF1QixFQUFFLG9DQUFvQztJQUM3RCx1QkFBdUIsRUFBRSw2QkFBNkI7Q0FDOUMsQ0FBQyxDQUFDIn0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZW1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9kYXRhL2NvcmVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFpVUgsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDMUMsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLElBQUk7SUFDOUIsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ2xDLGFBQWEsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFDOUIsYUFBYSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUM5QixlQUFlLEVBQUUsRUFBRTtJQUNuQixlQUFlLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ2pDLHdCQUF3QixFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUMxQyxnQkFBZ0IsRUFBRSxHQUFHLEdBQUcsSUFBSTtJQUM1QixtQkFBbUIsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFDckMsY0FBYyxFQUFFLEdBQUc7SUFDbkIsZUFBZSxFQUFFLEdBQUc7SUFDcEIsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLElBQUk7SUFDM0IsV0FBVyxFQUFFLEtBQUs7SUFDbEIseUJBQXlCLEVBQUUsRUFBRTtJQUM3QixrQkFBa0IsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUk7SUFDakMsa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJO0lBQ2pDLHVCQUF1QixFQUFFLEVBQUUsR0FBRyxJQUFJO0lBQ2xDLHFCQUFxQixFQUFFLEVBQUUsR0FBRyxJQUFJO0lBQ2hDLHdCQUF3QixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSTtDQUMvQixDQUFDLENBQUM7QUFFWixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFD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
@@ -1,4 +1,4 @@
1
- import { type ICoreMailBindingCredentialVerifier, type ICoreMailControlBootstrap, type ICoreMailDesiredState, type ICoreMailGatewayPeerDesiredState, type TCoreMailSha256 } from './coremail.js';
1
+ import { type ICoreMailBindingCredentialVerifier, type ICoreMailControlBootstrap, type ICoreMailDesiredState, type ICoreMailDownloadGrant, type ICoreMailEnvelope, type ICoreMailErrorData, type ICoreMailGatewayOutboundStatus, type ICoreMailGatewayPeerDesiredState, type ICoreMailInboundDelivery, type ICoreMailInboundDeliveryPage, type ICoreMailOutboundMessageDescriptor, type ICoreMailRuntimeKeyReference, type ICoreMailReconciliationStatus, type ICoreMailReplicaIdentity, type ICoreMailSubmission, type ICoreMailTransferGrant, type ICoreMailUploadGrant, type TCoreMailCapability, type TCoreMailBindingState, type TCoreMailSha256, type TCoreMailWorkloadOperation } from './coremail.js';
2
2
  export declare const coreMailCanonicalJsonRules: Readonly<{
3
3
  version: 1;
4
4
  encoding: "utf-8";
@@ -8,6 +8,7 @@ export declare const coreMailCanonicalJsonRules: Readonly<{
8
8
  numberEncoding: "safe-integer-json-no-negative-zero";
9
9
  digest: "sha256-lowercase-hex";
10
10
  }>;
11
+ export declare const resolveCoreMailWorkloadOperations: (stateArg: TCoreMailBindingState, capabilitiesArg: readonly TCoreMailCapability[]) => readonly TCoreMailWorkloadOperation[];
11
12
  export declare const coreMailContractLimits: Readonly<{
12
13
  readonly maximumIdentifierBytes: 128;
13
14
  readonly maximumEnvironmentKeyBytes: 128;
@@ -17,13 +18,38 @@ export declare const coreMailContractLimits: Readonly<{
17
18
  readonly maximumCredentialsPerAuthority: 16;
18
19
  readonly maximumAllowedSendersPerBinding: 1000;
19
20
  readonly maximumInboundRecipientsPerBinding: 10000;
21
+ readonly maximumMessagesPerMinute: 100000;
22
+ readonly maximumMessagesPerDay: 10000000;
23
+ readonly maximumPendingInbound: 1000000;
24
+ readonly maximumDisplayNameBytes: 256;
25
+ readonly maximumSubjectBytes: 768;
26
+ readonly maximumHeaderCount: 32;
27
+ readonly maximumHeaderValueBytes: 768;
28
+ readonly maximumFilenameBytes: 512;
29
+ readonly maximumContentIdBytes: 256;
30
+ readonly maximumBearerTokenBytes: 1024;
20
31
  }>;
21
32
  export declare class CoreMailContractError extends Error {
22
33
  constructor(reasonArg: string);
23
34
  }
24
35
  export declare const normalizeCoreMailSha256: (valueArg: unknown, pathArg?: string) => TCoreMailSha256;
25
36
  export declare const normalizeCoreMailCredentialVerifier: (valueArg: unknown, pathArg?: string) => ICoreMailBindingCredentialVerifier;
37
+ export declare const normalizeCoreMailRuntimeKeyReference: (valueArg: unknown, pathArg?: string) => ICoreMailRuntimeKeyReference;
38
+ export declare const normalizeCoreMailEnvelope: (valueArg: unknown, pathArg?: string) => ICoreMailEnvelope;
39
+ export declare const normalizeCoreMailOutboundMessageDescriptor: (valueArg: unknown, pathArg?: string) => ICoreMailOutboundMessageDescriptor;
40
+ export declare const normalizeCoreMailInboundPageLimit: (valueArg: unknown) => number;
41
+ export declare const normalizeCoreMailErrorData: (valueArg: unknown, pathArg?: string) => ICoreMailErrorData;
42
+ export declare const normalizeCoreMailTransferGrant: (valueArg: unknown, pathArg?: string) => ICoreMailTransferGrant;
43
+ export declare const normalizeCoreMailUploadGrant: (valueArg: unknown, pathArg?: string) => ICoreMailUploadGrant;
44
+ export declare const normalizeCoreMailDownloadGrant: (valueArg: unknown, pathArg?: string) => ICoreMailDownloadGrant;
45
+ export declare const normalizeCoreMailSubmission: (valueArg: unknown, pathArg?: string) => ICoreMailSubmission;
46
+ export declare const normalizeCoreMailGatewayOutboundStatus: (valueArg: unknown, pathArg?: string) => ICoreMailGatewayOutboundStatus;
47
+ export declare const normalizeCoreMailInboundDelivery: (valueArg: unknown, pathArg?: string) => ICoreMailInboundDelivery;
48
+ export declare const normalizeCoreMailInboundCursor: (valueArg: unknown, pathArg?: string) => string;
49
+ export declare const normalizeCoreMailInboundDeliveryPage: (valueArg: unknown, pathArg?: string) => ICoreMailInboundDeliveryPage;
26
50
  export declare const normalizeCoreMailDesiredState: (valueArg: unknown) => ICoreMailDesiredState;
51
+ export declare const normalizeCoreMailReplicaIdentity: (valueArg: unknown, pathArg?: string) => ICoreMailReplicaIdentity;
52
+ export declare const normalizeCoreMailReconciliationStatus: (valueArg: unknown, pathArg?: string) => ICoreMailReconciliationStatus;
27
53
  export declare const canonicalizeCoreMailDesiredState: (valueArg: unknown) => string;
28
54
  export declare const createCoreMailDesiredStateDigest: (valueArg: unknown) => Promise<TCoreMailSha256>;
29
55
  export declare const verifyCoreMailDesiredStateDigest: (valueArg: unknown, digestArg: unknown) => Promise<boolean>;