@serve.zone/coremail 1.0.2 → 1.2.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,53 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026-09-15 - 1.2.0
4
+
5
+ ### Features
6
+
7
+ - move the control transport onto the mesh majors (transport)
8
+ - Raise `@api.global/typedserver` ^8.10.0 → ^11.4.1, `@api.global/typedsocket` ^5.1.1 → ^8.2.1, `@api.global/typedrequest` ^3.7.0 → ^8.0.4, `@api.global/typedrequest-interfaces` ^4.0.0 → ^7.1.0 and pin `@serve.zone/interfaces` to 30.12.0, as one coherent set. The package was the last holdout on typedsocket 5: an 8.x client rejects in `onopen` with `TypedSocketHandshakeError` unless the server answers `__typedsocket_checkVersion`, which 5.1.1 never registered, so `SzCoreMailConnector.init()` failed before sending anything and the outbound gateway link broke identically.
9
+ - Type `addHandler`'s callback as typedrequest's own `THandlerFunction`. Since typedrequest 8 both sides are wrapped in the `TReverseVirtualStreamDirections` mapped type, which does not reduce inside a generic wrapper, so a restated signature is no longer assignable. The 14 registrations are unchanged — concrete request types reduce normally.
10
+ - Add `test/test.socket.node.ts`: a real typedsocket client against a real listener, covering the version handshake, `websocketAdmission` state reaching the peer, the exact seven-key authentication envelope, session storage against the real peer, the observed failure mode of a bad credential, typed error-envelope round-tripping, and the pre-auth sweep terminating a real socket. Verified red before this change with the exact production symptom and green after. Every other suite hands the server hand-written peer literals and therefore cannot observe the transport at all — which is how the mismatch survived unnoticed.
11
+ - Record two contract facts the new coverage established: a failed workload authentication closes the socket (`peer.close(4401)` wins the race against the error) so callers see a disconnect rather than an `AUTHENTICATION_FAILED` envelope; and typed error data does survive the v8 wire intact on paths that leave the peer open.
12
+ - Add `test/readme.hints.md` with the transport background and the open platformclient follow-up. It sits under `test/` rather than the package root because npm-packlist force-includes every root `readme.*` regardless of the `files` array, and this package publishes publicly.
13
+
14
+ ### Fixes
15
+
16
+ - update test and mongo development dependencies (deps-dev)
17
+ - Update @git.zone/tstest from ^3.6.7 to 6.0.0
18
+ - Update @push.rocks/smartmongo from ^7.0.0 to 9.0.0
19
+
20
+ ### Maintenance
21
+
22
+ - Update pnpm to 12.4.0, tsbuild to 4.4.3, tsdocker to 3.5.8 and Node typings to 26.5.0 for the release.
23
+
24
+ ## 2026-08-03 - 1.1.0
25
+
26
+ ### Features
27
+
28
+ - Log sanitized failure causes server-side for gateway reconciliation and
29
+ authentication, the outbound worker, retention sweeps, grant transfers,
30
+ desired-state snapshot repair, CLI shutdown, and unexpected RPC handler
31
+ failures: component, stable code, redacted error (URL credentials stripped,
32
+ bounded length), and safe identifiers only. Authentication failures log a
33
+ category (invalid input, unknown binding, unknown credential, verifier
34
+ rejected, limiter exhausted) with declared identifiers. Peer-facing errors
35
+ remain constant and opaque.
36
+ - Rework the authentication limiter: the global Argon2 in-flight cap now feeds
37
+ a bounded FIFO wait queue so reconnect storms queue briefly instead of
38
+ failing closed, and per-identity token buckets in a bounded map keep one
39
+ flooding identity from starving other bindings. The limiter snapshot now
40
+ reports `inFlight`, `waiting`, and `identities`.
41
+
42
+ ### Fixes
43
+
44
+ - Enforce workload binding resolution at the type level during authentication
45
+ instead of non-null assertions.
46
+ - Make the gateway connection signature canonical under key order so
47
+ serialization differences alone cannot force dcrouter socket reconnects.
48
+ - Distinguish missing from non-canonical environment values in startup
49
+ configuration errors.
50
+
3
51
  ## 2026-07-31 - 1.0.2
4
52
 
5
53
  ### Fixes
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/coremail',
6
- version: '1.0.2',
6
+ version: '1.2.0',
7
7
  description: 'Authenticated mail persistence and delivery orchestration for serve.zone workloads.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxzQkFBc0I7SUFDNUIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHFGQUFxRjtDQUNuRyxDQUFBIn0=
@@ -7,24 +7,42 @@ export declare const coreMailPreAuthDeadlineKey = "coremail.pre-auth-deadline";
7
7
  export declare class CoreMailAuthenticationError extends Error {
8
8
  constructor();
9
9
  }
10
+ export declare class CoreMailAuthLimitError extends CoreMailAuthenticationError {
11
+ constructor();
12
+ }
10
13
  export declare class CoreMailAuthorizationError extends Error {
11
14
  constructor();
12
15
  }
13
16
  export declare class CoreMailCapabilityDeniedError extends Error {
14
17
  constructor();
15
18
  }
19
+ export interface ICoreMailAuthLimiterOptions {
20
+ maximumInFlight?: number;
21
+ maximumWaiters?: number;
22
+ maximumWaitMs?: number;
23
+ identityCapacity?: number;
24
+ identityRefillPerSecond?: number;
25
+ maximumIdentities?: number;
26
+ now?: () => number;
27
+ }
16
28
  export declare class CoreMailAuthLimiter {
17
29
  private readonly maximumInFlight;
18
- private readonly capacity;
19
- private readonly refillPerSecond;
30
+ private readonly maximumWaiters;
31
+ private readonly maximumWaitMs;
32
+ private readonly identityCapacity;
33
+ private readonly identityRefillPerSecond;
34
+ private readonly maximumIdentities;
20
35
  private readonly now;
21
36
  private inFlight;
22
- private tokens;
23
- private lastRefillAt;
24
- constructor(maximumInFlight?: number, capacity?: number, refillPerSecond?: number, now?: () => number);
25
- private refill;
37
+ private readonly waiters;
38
+ private readonly identityBuckets;
39
+ constructor(optionsArg?: ICoreMailAuthLimiterOptions);
26
40
  snapshot(): ICoreMailAuthLimiterSnapshot;
27
- run<T>(workArg: () => Promise<T>): Promise<T>;
41
+ run<T>(identityArg: string, workArg: () => Promise<T>): Promise<T>;
42
+ private consumeIdentityToken;
43
+ private pruneIdentities;
44
+ private acquireSlot;
45
+ private releaseSlot;
28
46
  }
29
47
  export declare class CoreMailAuth {
30
48
  private readonly controlBootstrap;
@@ -33,6 +51,7 @@ export declare class CoreMailAuth {
33
51
  readonly limiter: CoreMailAuthLimiter;
34
52
  constructor(controlBootstrap: plugins.serveZoneInterfaces.data.ICoreMailControlBootstrap, getActiveDesiredState: () => Promise<TCoreMailDesiredState | null>, now?: () => number);
35
53
  private requireFreshPeer;
54
+ private requireSecretShape;
36
55
  private verify;
37
56
  authenticateControl(peerArg: ICoreMailPeer, requestArg: plugins.serveZoneInterfaces.requests.coremail.IReq_CoreMailAuthenticateControl['request']): Promise<ICoreMailControlSession>;
38
57
  authenticateWorkload(peerArg: ICoreMailPeer, requestArg: plugins.serveZoneInterfaces.requests.coremail.IReq_CoreMailAuthenticateWorkload['request']): Promise<ICoreMailWorkloadSession>;
@@ -1,5 +1,6 @@
1
1
  import * as plugins from './plugins.js';
2
2
  import { requireCoreMailIdentifier, requireCoreMailSafeInteger, } from './coremail.selectors.js';
3
+ import { logCoreMailFailure } from './coremail.log.js';
3
4
  export const coreMailSessionKey = 'coremail.authenticated-session';
4
5
  export const coreMailPreAuthDeadlineKey = 'coremail.pre-auth-deadline';
5
6
  export class CoreMailAuthenticationError extends Error {
@@ -8,6 +9,12 @@ export class CoreMailAuthenticationError extends Error {
8
9
  this.name = 'CoreMailAuthenticationError';
9
10
  }
10
11
  }
12
+ export class CoreMailAuthLimitError extends CoreMailAuthenticationError {
13
+ constructor() {
14
+ super();
15
+ this.name = 'CoreMailAuthLimitError';
16
+ }
17
+ }
11
18
  export class CoreMailAuthorizationError extends Error {
12
19
  constructor() {
13
20
  super('CoreMail authority is unavailable.');
@@ -22,47 +29,116 @@ export class CoreMailCapabilityDeniedError extends Error {
22
29
  }
23
30
  export class CoreMailAuthLimiter {
24
31
  maximumInFlight;
25
- capacity;
26
- refillPerSecond;
32
+ maximumWaiters;
33
+ maximumWaitMs;
34
+ identityCapacity;
35
+ identityRefillPerSecond;
36
+ maximumIdentities;
27
37
  now;
28
38
  inFlight = 0;
29
- tokens;
30
- lastRefillAt;
31
- constructor(maximumInFlight = 4, capacity = 8, refillPerSecond = 2, now = Date.now) {
32
- this.maximumInFlight = maximumInFlight;
33
- this.capacity = capacity;
34
- this.refillPerSecond = refillPerSecond;
35
- this.now = now;
36
- this.tokens = capacity;
37
- this.lastRefillAt = now();
39
+ waiters = [];
40
+ identityBuckets = new Map();
41
+ constructor(optionsArg = {}) {
42
+ this.maximumInFlight = optionsArg.maximumInFlight ?? 4;
43
+ this.maximumWaiters = optionsArg.maximumWaiters ?? 64;
44
+ this.maximumWaitMs = optionsArg.maximumWaitMs ?? 2_500;
45
+ this.identityCapacity = optionsArg.identityCapacity ?? 4;
46
+ this.identityRefillPerSecond = optionsArg.identityRefillPerSecond ?? 1;
47
+ this.maximumIdentities = optionsArg.maximumIdentities ?? 4_096;
48
+ this.now = optionsArg.now ?? Date.now;
38
49
  }
39
- refill() {
50
+ snapshot() {
51
+ return {
52
+ inFlight: this.inFlight,
53
+ waiting: this.waiters.length,
54
+ identities: this.identityBuckets.size,
55
+ };
56
+ }
57
+ async run(identityArg, workArg) {
58
+ this.consumeIdentityToken(identityArg);
59
+ await this.acquireSlot();
60
+ try {
61
+ return await workArg();
62
+ }
63
+ finally {
64
+ this.releaseSlot();
65
+ }
66
+ }
67
+ consumeIdentityToken(identityArg) {
40
68
  const now = this.now();
41
- const elapsedMs = Math.max(0, now - this.lastRefillAt);
42
- if (elapsedMs < 1_000) {
69
+ const bucket = this.identityBuckets.get(identityArg);
70
+ if (!bucket) {
71
+ this.pruneIdentities(now);
72
+ this.identityBuckets.set(identityArg, {
73
+ tokens: this.identityCapacity - 1,
74
+ lastRefillAt: now,
75
+ });
43
76
  return;
44
77
  }
45
- const intervals = Math.floor(elapsedMs / 1_000);
46
- this.tokens = Math.min(this.capacity, this.tokens + (intervals * this.refillPerSecond));
47
- this.lastRefillAt += intervals * 1_000;
78
+ const intervals = Math.floor(Math.max(0, now - bucket.lastRefillAt) / 1_000);
79
+ if (intervals > 0) {
80
+ bucket.tokens = Math.min(this.identityCapacity, bucket.tokens + (intervals * this.identityRefillPerSecond));
81
+ bucket.lastRefillAt += intervals * 1_000;
82
+ }
83
+ if (bucket.tokens < 1) {
84
+ throw new CoreMailAuthLimitError();
85
+ }
86
+ bucket.tokens--;
48
87
  }
49
- snapshot() {
50
- this.refill();
51
- return { inFlight: this.inFlight, tokens: this.tokens };
88
+ pruneIdentities(nowArg) {
89
+ if (this.identityBuckets.size < this.maximumIdentities) {
90
+ return;
91
+ }
92
+ for (const [identity, bucket] of this.identityBuckets) {
93
+ const refilled = bucket.tokens + (Math.floor(Math.max(0, nowArg - bucket.lastRefillAt) / 1_000)
94
+ * this.identityRefillPerSecond);
95
+ if (refilled >= this.identityCapacity) {
96
+ this.identityBuckets.delete(identity);
97
+ if (this.identityBuckets.size < this.maximumIdentities) {
98
+ return;
99
+ }
100
+ }
101
+ }
102
+ for (const identity of this.identityBuckets.keys()) {
103
+ this.identityBuckets.delete(identity);
104
+ if (this.identityBuckets.size < this.maximumIdentities) {
105
+ return;
106
+ }
107
+ }
52
108
  }
53
- async run(workArg) {
54
- this.refill();
55
- if (this.inFlight >= this.maximumInFlight || this.tokens < 1) {
56
- throw new CoreMailAuthenticationError();
109
+ async acquireSlot() {
110
+ if (this.inFlight < this.maximumInFlight) {
111
+ this.inFlight++;
112
+ return;
57
113
  }
58
- this.tokens--;
59
- this.inFlight++;
60
- try {
61
- return await workArg();
114
+ if (this.waiters.length >= this.maximumWaiters) {
115
+ throw new CoreMailAuthLimitError();
62
116
  }
63
- finally {
64
- this.inFlight--;
117
+ await new Promise((resolveArg, rejectArg) => {
118
+ const waiter = {
119
+ grant: () => {
120
+ clearTimeout(waiter.timer);
121
+ resolveArg();
122
+ },
123
+ expire: () => {
124
+ const index = this.waiters.indexOf(waiter);
125
+ if (index >= 0) {
126
+ this.waiters.splice(index, 1);
127
+ }
128
+ rejectArg(new CoreMailAuthLimitError());
129
+ },
130
+ timer: setTimeout(() => waiter.expire(), this.maximumWaitMs),
131
+ };
132
+ this.waiters.push(waiter);
133
+ });
134
+ }
135
+ releaseSlot() {
136
+ const waiter = this.waiters.shift();
137
+ if (waiter) {
138
+ waiter.grant();
139
+ return;
65
140
  }
141
+ this.inFlight--;
66
142
  }
67
143
  }
68
144
  const findAcceptedVerifier = (credentialsArg, credentialIdArg, credentialVersionArg, nowArg) => credentialsArg.find((credentialArg) => credentialArg.credentialId === credentialIdArg
@@ -75,11 +151,12 @@ export class CoreMailAuth {
75
151
  controlBootstrap;
76
152
  getActiveDesiredState;
77
153
  now;
78
- limiter = new CoreMailAuthLimiter();
154
+ limiter;
79
155
  constructor(controlBootstrap, getActiveDesiredState, now = Date.now) {
80
156
  this.controlBootstrap = controlBootstrap;
81
157
  this.getActiveDesiredState = getActiveDesiredState;
82
158
  this.now = now;
159
+ this.limiter = new CoreMailAuthLimiter({ now: this.now });
83
160
  }
84
161
  requireFreshPeer(peerArg) {
85
162
  const deadline = peerArg.context.state[coreMailPreAuthDeadlineKey];
@@ -90,25 +167,35 @@ export class CoreMailAuth {
90
167
  throw new CoreMailAuthenticationError();
91
168
  }
92
169
  }
93
- async verify(verifierArg, secretArg) {
94
- if (!verifierArg
95
- || typeof secretArg !== 'string'
170
+ requireSecretShape(secretArg) {
171
+ if (typeof secretArg !== 'string'
96
172
  || secretArg.length < 32
97
173
  || secretArg.length > 512) {
98
174
  throw new CoreMailAuthenticationError();
99
175
  }
100
- const verified = await this.limiter.run(async () => plugins.argon2.verify(verifierArg.verificationHash, secretArg));
176
+ return secretArg;
177
+ }
178
+ async verify(verifierArg, secretArg, identityArg) {
179
+ const verified = await this.limiter.run(identityArg, async () => plugins.argon2.verify(verifierArg.verificationHash, secretArg));
101
180
  if (!verified) {
102
181
  throw new CoreMailAuthenticationError();
103
182
  }
104
183
  }
105
184
  async authenticateControl(peerArg, requestArg) {
106
185
  this.requireFreshPeer(peerArg);
186
+ let failureCode = 'INVALID_INPUT';
187
+ let credentialId;
107
188
  try {
108
- const credentialId = requireCoreMailIdentifier(requestArg.credentialId, 'credentialId');
189
+ credentialId = requireCoreMailIdentifier(requestArg.credentialId, 'credentialId');
109
190
  const credentialVersion = requireCoreMailSafeInteger(requestArg.credentialVersion, 'credentialVersion', 1);
191
+ const credentialSecret = this.requireSecretShape(requestArg.credentialSecret);
192
+ failureCode = 'UNKNOWN_CREDENTIAL';
110
193
  const verifier = findAcceptedVerifier(this.controlBootstrap.credentials, credentialId, credentialVersion, this.now());
111
- await this.verify(verifier, requestArg.credentialSecret);
194
+ if (!verifier) {
195
+ throw new CoreMailAuthenticationError();
196
+ }
197
+ failureCode = 'VERIFIER_REJECTED';
198
+ await this.verify(verifier, credentialSecret, `control:${credentialId}`);
112
199
  const session = Object.freeze({
113
200
  kind: 'control',
114
201
  peerId: peerArg.id,
@@ -119,22 +206,39 @@ export class CoreMailAuth {
119
206
  peerArg.data.set(coreMailSessionKey, session);
120
207
  return session;
121
208
  }
122
- catch {
209
+ catch (error) {
123
210
  peerArg.close(4401, 'authentication failed');
211
+ await logCoreMailFailure('auth', error instanceof CoreMailAuthLimitError ? 'LIMITER_EXHAUSTED' : failureCode, undefined, {
212
+ kind: 'control',
213
+ ...(credentialId === undefined ? {} : { credentialId }),
214
+ }).catch(() => undefined);
124
215
  throw new CoreMailAuthenticationError();
125
216
  }
126
217
  }
127
218
  async authenticateWorkload(peerArg, requestArg) {
128
219
  this.requireFreshPeer(peerArg);
220
+ let failureCode = 'INVALID_INPUT';
221
+ let bindingId;
222
+ let credentialId;
129
223
  try {
130
224
  const desiredState = await this.getActiveDesiredState();
131
- const bindingId = requireCoreMailIdentifier(requestArg.bindingId, 'bindingId');
132
- const credentialId = requireCoreMailIdentifier(requestArg.credentialId, 'credentialId');
225
+ bindingId = requireCoreMailIdentifier(requestArg.bindingId, 'bindingId');
226
+ credentialId = requireCoreMailIdentifier(requestArg.credentialId, 'credentialId');
133
227
  const credentialVersion = requireCoreMailSafeInteger(requestArg.credentialVersion, 'credentialVersion', 1);
228
+ const credentialSecret = this.requireSecretShape(requestArg.credentialSecret);
229
+ failureCode = 'UNKNOWN_BINDING';
134
230
  const binding = desiredState?.bindings.find((bindingArg) => bindingArg.bindingId === bindingId
135
231
  && bindingArg.state !== 'disabled');
136
- const verifier = binding && findAcceptedVerifier(binding.credentials, credentialId, credentialVersion, this.now());
137
- await this.verify(verifier, requestArg.credentialSecret);
232
+ if (!desiredState || !binding || binding.state === 'disabled') {
233
+ throw new CoreMailAuthenticationError();
234
+ }
235
+ failureCode = 'UNKNOWN_CREDENTIAL';
236
+ const verifier = findAcceptedVerifier(binding.credentials, credentialId, credentialVersion, this.now());
237
+ if (!verifier) {
238
+ throw new CoreMailAuthenticationError();
239
+ }
240
+ failureCode = 'VERIFIER_REJECTED';
241
+ await this.verify(verifier, credentialSecret, `workload:${bindingId}`);
138
242
  const allowedOperations = plugins.serveZoneInterfaces.data.resolveCoreMailWorkloadOperations(binding.state, binding.capabilities);
139
243
  const session = Object.freeze({
140
244
  kind: 'workload',
@@ -155,8 +259,13 @@ export class CoreMailAuth {
155
259
  peerArg.data.set(coreMailSessionKey, session);
156
260
  return session;
157
261
  }
158
- catch {
262
+ catch (error) {
159
263
  peerArg.close(4401, 'authentication failed');
264
+ await logCoreMailFailure('auth', error instanceof CoreMailAuthLimitError ? 'LIMITER_EXHAUSTED' : failureCode, undefined, {
265
+ kind: 'workload',
266
+ ...(bindingId === undefined ? {} : { bindingId }),
267
+ ...(credentialId === undefined ? {} : { credentialId }),
268
+ }).catch(() => undefined);
160
269
  throw new CoreMailAuthenticationError();
161
270
  }
162
271
  }
@@ -201,4 +310,4 @@ export class CoreMailAuth {
201
310
  return { session, binding };
202
311
  }
203
312
  }
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xhc3Nlcy5hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBUXhDLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsMEJBQTBCLEdBQzNCLE1BQU0seUJBQXlCLENBQUM7QUFPakMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsZ0NBQWdDLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsNEJBQTRCLENBQUM7QUFFdkUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLEtBQUs7SUFDcEQ7UUFDRSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLDZCQUE2QixDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxLQUFLO0lBQ25EO1FBQ0UsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLElBQUksR0FBRyw0QkFBNEIsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsS0FBSztJQUN0RDtRQUNFLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxJQUFJLEdBQUcsK0JBQStCLENBQUM7SUFDOUMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG1CQUFtQjtJQU1YO0lBQ0E7SUFDQTtJQUNBO0lBUlgsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNiLE1BQU0sQ0FBUztJQUNmLFlBQVksQ0FBUztJQUU3QixZQUNtQixrQkFBa0IsQ0FBQyxFQUNuQixXQUFXLENBQUMsRUFDWixrQkFBa0IsQ0FBQyxFQUNuQixNQUFvQixJQUFJLENBQUMsR0FBRztRQUg1QixvQkFBZSxHQUFmLGVBQWUsQ0FBSTtRQUNuQixhQUFRLEdBQVIsUUFBUSxD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
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xhc3Nlcy5hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBUXhDLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsMEJBQTBCLEdBQzNCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFPdkQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsZ0NBQWdDLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsNEJBQTRCLENBQUM7QUFFdkUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLEtBQUs7SUFDcEQ7UUFDRSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLDZCQUE2QixDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSwyQkFBMkI7SUFDckU7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLEtBQUs7SUFDbkQ7UUFDRSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLDRCQUE0QixDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxLQUFLO0lBQ3REO1FBQ0UsS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLElBQUksR0FBRywrQkFBK0IsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUF1QkQsTUFBTSxPQUFPLG1CQUFtQjtJQUNiLGVBQWUsQ0FBUztJQUN4QixjQUFjLENBQVM7SUFDdkIsYUFBYSxDQUFTO0lB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
@@ -1,8 +1,11 @@
1
1
  import * as plugins from './plugins.js';
2
2
  const requireEnv = (keyArg) => {
3
3
  const value = process.env[keyArg];
4
- if (!value || value.trim() !== value) {
5
- throw new Error(`CoreMail requires a non-empty canonical ${keyArg}.`);
4
+ if (!value) {
5
+ throw new Error(`CoreMail requires ${keyArg} to be set and non-empty.`);
6
+ }
7
+ if (value.trim() !== value) {
8
+ throw new Error(`CoreMail requires ${keyArg} to be canonical without surrounding whitespace.`);
6
9
  }
7
10
  return value;
8
11
  };
@@ -69,4 +72,4 @@ export const readCoreMailConfig = () => {
69
72
  }),
70
73
  });
71
74
  };
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUd4QyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQWMsRUFBVSxFQUFFO0lBQzVDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsVUFBa0IsRUFBVSxFQUFFO0lBQzVGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLE1BQU0sOEJBQThCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUN2RCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsTUFBTSxrQ0FBa0MsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQTJCLEVBQUU7SUFDbkYsTUFBTSxNQUFNLEdBQVksSUFBSSxDQUFD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
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUd4QyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQWMsRUFBVSxFQUFFO0lBQzVDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsTUFBTSwyQkFBMkIsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksS0FBSyxDQUNiLHFCQUFxQixNQUFNLGtEQUFrRCxDQUM5RSxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFFBQWdCLEVBQUUsTUFBYyxFQUFFLFVBQWtCLEVBQVUsRUFBRTtJQUM1RixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxNQUFNLDhCQUE4QixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLE1BQU0sa0NBQWtDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7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
@@ -113,8 +113,8 @@ export class CoreMailDesiredStateService {
113
113
  modelArg.state = 'active';
114
114
  modelArg.activatedAt = stateArg.updatedAt;
115
115
  },
116
- }).catch(async () => {
117
- await logCoreMailFailure('desired-state', 'SNAPSHOT_REPAIR_FAILED')
116
+ }).catch(async (error) => {
117
+ await logCoreMailFailure('desired-state', 'SNAPSHOT_REPAIR_FAILED', error)
118
118
  .catch(() => undefined);
119
119
  });
120
120
  }
@@ -379,4 +379,4 @@ export class CoreMailDesiredStateService {
379
379
  };
380
380
  }
381
381
  }
382
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5kZXNpcmVkc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLmRlc2lyZWRzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQXdCLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUs5RCxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLG1CQUFtQixHQUNwQixNQUFNLHlCQUF5QixDQUFDO0FBU2pDLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRTFDLE1BQU0sT0FBTywyQkFBMkI7SUFNbkI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBSUE7SUFkWCxrQkFBa0IsR0FBaUMsSUFBSSxDQUFDO0lBQ3hELGtCQUFrQixDQUFnQjtJQUNsQyxXQUFXLEdBQXlCLElBQUksQ0FBQztJQUVqRCxZQUNtQixRQUF1QyxFQUN2QyxNQUF1QixFQUN2QixPQUF3QixFQUN4QixTQUFrQyxFQUNsQyxPQUFnQyxFQUNoQyxtQkFHbUQsRUFDbkQsTUFBb0IsSUFBSSxDQUFDLEdBQUc7UUFUNUIsYUFBUSxHQUFSLFFBQVEsQ0FBK0I7UUFDdkMsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBeUI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDaEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUdnQztR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
382
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5kZXNpcmVkc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLmRlc2lyZWRzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQXdCLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUs5RCxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLG1CQUFtQixHQUNwQixNQUFNLHlCQUF5QixDQUFDO0FBU2pDLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRTFDLE1BQU0sT0FBTywyQkFBMkI7SUFNbkI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBSUE7SUFkWCxrQkFBa0IsR0FBaUMsSUFBSSxDQUFDO0lBQ3hELGtCQUFrQixDQUFnQjtJQUNsQyxXQUFXLEdBQXlCLElBQUksQ0FBQztJQUVqRCxZQUNtQixRQUF1QyxFQUN2QyxNQUF1QixFQUN2QixPQUF3QixFQUN4QixTQUFrQyxFQUNsQyxPQUFnQyxFQUNoQyxtQkFHbUQsRUFDbkQsTUFBb0IsSUFBSSxDQUFDLEdBQUc7UUFUNUIsYUFBUSxHQUFSLFFBQVEsQ0FBK0I7UUFDdkMsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBeUI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDaEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUdnQztR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
@@ -7,6 +7,7 @@ import type { ICoreMailSubmissionRecord } from './coremail.persistence.js';
7
7
  type TDesiredState = plugins.serveZoneInterfaces.data.ICoreMailDesiredState;
8
8
  type TGatewayStatus = plugins.serveZoneInterfaces.data.ICoreMailGatewayOutboundStatus;
9
9
  type TStoredSubmission = plugins.smartdata.TStoredDocument<ICoreMailSubmissionRecord>;
10
+ export declare const stableStringify: (valueArg: unknown) => string;
10
11
  export declare const requireMatchingCoreMailTransferOrigin: (valueArg: unknown, expectedArg: string) => string;
11
12
  export declare class CoreMailGateway {
12
13
  private readonly config;