@serve.zone/dcrouter 15.11.0 → 16.0.1
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/deno.json +1 -1
- package/dist_serve/bundle.js +34 -34
- package/dist_ts/00_commitinfo_data.js +2 -2
- package/dist_ts/classes.dcrouter.d.ts +10 -3
- package/dist_ts/classes.dcrouter.js +39 -43
- package/dist_ts/db/documents/classes.cached.email.d.ts +32 -0
- package/dist_ts/db/documents/classes.cached.email.js +67 -3
- package/dist_ts/db/documents/classes.email-domain.doc.d.ts +2 -1
- package/dist_ts/db/documents/classes.email-domain.doc.js +8 -2
- package/dist_ts/db/documents/classes.email-server-settings.doc.js +2 -2
- package/dist_ts/db/documents/classes.remote-ingress-edge.doc.d.ts +3 -0
- package/dist_ts/db/documents/classes.remote-ingress-edge.doc.js +20 -2
- package/dist_ts/dns/classes.dns-server-runtime.js +3 -1
- package/dist_ts/email/classes.accepted-email-spool.d.ts +5 -1
- package/dist_ts/email/classes.accepted-email-spool.js +9 -1
- package/dist_ts/email/classes.email-domain.manager.d.ts +17 -1
- package/dist_ts/email/classes.email-domain.manager.js +105 -18
- package/dist_ts/email/classes.email-route-builder.js +5 -2
- package/dist_ts/email/classes.email-settings.manager.js +3 -3
- package/dist_ts/email/classes.mail-dns-sync.d.ts +27 -0
- package/dist_ts/email/classes.mail-dns-sync.js +196 -0
- package/dist_ts/email/classes.mail-egress-coordinator.d.ts +37 -0
- package/dist_ts/email/classes.mail-egress-coordinator.js +113 -0
- package/dist_ts/email/index.d.ts +2 -0
- package/dist_ts/email/index.js +3 -1
- package/dist_ts/opsserver/handlers/config.handler.js +4 -2
- package/dist_ts/opsserver/handlers/email-domain.handler.js +3 -1
- package/dist_ts/opsserver/handlers/email-ops.handler.d.ts +20 -3
- package/dist_ts/opsserver/handlers/email-ops.handler.js +141 -19
- package/dist_ts/opsserver/handlers/email-settings.handler.js +11 -6
- package/dist_ts/opsserver/handlers/remoteingress.handler.js +16 -7
- package/dist_ts/remoteingress/classes.remoteingress-manager.d.ts +33 -1
- package/dist_ts/remoteingress/classes.remoteingress-manager.js +94 -2
- package/dist_ts/remoteingress/classes.tunnel-manager.d.ts +18 -0
- package/dist_ts/remoteingress/classes.tunnel-manager.js +114 -12
- package/dist_ts/remoteingress/edge-derivation-routes.d.ts +10 -0
- package/dist_ts/remoteingress/edge-derivation-routes.js +28 -0
- package/dist_ts/remoteingress/index.d.ts +1 -0
- package/dist_ts/remoteingress/index.js +2 -1
- package/dist_ts_interfaces/data/email-domain.d.ts +11 -1
- package/dist_ts_interfaces/data/email-settings.d.ts +11 -0
- package/dist_ts_interfaces/data/remoteingress.d.ts +10 -0
- package/dist_ts_interfaces/data/remoteingress.js +5 -2
- package/dist_ts_interfaces/requests/email-domains.d.ts +5 -1
- package/dist_ts_interfaces/requests/email-ops.d.ts +4 -0
- package/dist_ts_interfaces/requests/remoteingress.d.ts +11 -0
- package/dist_ts_migrations/index.js +91 -9
- package/dist_ts_web/00_commitinfo_data.js +2 -2
- package/package.json +4 -4
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.dcrouter.ts +41 -48
- package/ts/db/documents/classes.cached.email.ts +72 -1
- package/ts/db/documents/classes.email-domain.doc.ts +4 -0
- package/ts/db/documents/classes.email-server-settings.doc.ts +1 -1
- package/ts/db/documents/classes.remote-ingress-edge.doc.ts +9 -0
- package/ts/dns/classes.dns-server-runtime.ts +2 -0
- package/ts/email/classes.accepted-email-spool.ts +12 -1
- package/ts/email/classes.email-domain.manager.ts +123 -18
- package/ts/email/classes.email-route-builder.ts +4 -1
- package/ts/email/classes.email-settings.manager.ts +2 -2
- package/ts/email/classes.mail-dns-sync.ts +218 -0
- package/ts/email/classes.mail-egress-coordinator.ts +125 -0
- package/ts/email/index.ts +2 -0
- package/ts/opsserver/handlers/config.handler.ts +3 -1
- package/ts/opsserver/handlers/email-domain.handler.ts +2 -0
- package/ts/opsserver/handlers/email-ops.handler.ts +156 -18
- package/ts/opsserver/handlers/email-settings.handler.ts +10 -5
- package/ts/opsserver/handlers/remoteingress.handler.ts +15 -5
- package/ts/remoteingress/classes.remoteingress-manager.ts +111 -0
- package/ts/remoteingress/classes.tunnel-manager.ts +125 -10
- package/ts/remoteingress/edge-derivation-routes.ts +29 -0
- package/ts/remoteingress/index.ts +1 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
|
@@ -21,11 +21,21 @@ export interface IEmailDomain {
|
|
|
21
21
|
dkim: IEmailDomainDkim;
|
|
22
22
|
/** Optional per-domain rate limits. */
|
|
23
23
|
rateLimits?: IEmailDomainRateLimits;
|
|
24
|
+
/** Optional RemoteIngress edge pinning — restricts inbound MX targets and outbound egress to matching edges. */
|
|
25
|
+
remoteIngress?: IEmailDomainRemoteIngress;
|
|
24
26
|
/** DNS record validation status — populated by validateDns(). */
|
|
25
27
|
dnsStatus: IEmailDomainDnsStatus;
|
|
26
28
|
createdAt: string;
|
|
27
29
|
updatedAt: string;
|
|
28
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Per-mail-domain RemoteIngress pinning (mirrors IRouteRemoteIngress.edgeFilter semantics).
|
|
33
|
+
*/
|
|
34
|
+
export interface IEmailDomainRemoteIngress {
|
|
35
|
+
/** Edge ids or tags. When set, only matching edges front this domain (inbound MX target + outbound egress).
|
|
36
|
+
* Absent/empty = all mail-capable edges. */
|
|
37
|
+
edgeFilter?: string[];
|
|
38
|
+
}
|
|
29
39
|
export interface IEmailDomainDkim {
|
|
30
40
|
/** DKIM selector (default: 'default'). */
|
|
31
41
|
selector: string;
|
|
@@ -63,7 +73,7 @@ export interface IEmailDomainDnsStatus {
|
|
|
63
73
|
* A single required DNS record for an email domain — used for display / copy-paste.
|
|
64
74
|
*/
|
|
65
75
|
export interface IEmailDnsRecord {
|
|
66
|
-
type: 'MX' | 'TXT';
|
|
76
|
+
type: 'MX' | 'TXT' | 'A' | 'AAAA';
|
|
67
77
|
name: string;
|
|
68
78
|
value: string;
|
|
69
79
|
status: TDnsRecordStatus;
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import type { IUnifiedEmailServerOptions } from '@push.rocks/smartmta';
|
|
2
|
+
/** Outbound SMTP egress mode. 'remoteIngress' (default): deliver via RemoteIngress edges only,
|
|
3
|
+
* no direct-from-hub fallback. 'direct' is an explicit operator opt-out. */
|
|
2
4
|
export type TEmailOutboundMode = 'direct' | 'remoteIngress';
|
|
5
|
+
/** Readiness of the RemoteIngress outbound egress path — surfaced when outboundMode is 'remoteIngress'. */
|
|
6
|
+
export interface IEmailOutboundEgressStatus {
|
|
7
|
+
ready: boolean;
|
|
8
|
+
eligibleEdgeCount: number;
|
|
9
|
+
/** Populated when not ready, e.g. 'no connected mail edge with native QUIC egress'. */
|
|
10
|
+
reason?: string;
|
|
11
|
+
}
|
|
3
12
|
export interface IEmailPortConfig {
|
|
4
13
|
/** External to internal SMTP port mapping. */
|
|
5
14
|
portMapping?: Record<number, number>;
|
|
@@ -23,6 +32,8 @@ export interface IEmailServerSettings {
|
|
|
23
32
|
domainCount: number;
|
|
24
33
|
routeCount: number;
|
|
25
34
|
authUserCount: number;
|
|
35
|
+
/** Present when outboundMode is 'remoteIngress': whether a mail egress edge is currently available. */
|
|
36
|
+
outboundEgress?: IEmailOutboundEgressStatus;
|
|
26
37
|
updatedAt: number;
|
|
27
38
|
updatedBy: string;
|
|
28
39
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { IRouteConfig } from '@push.rocks/smartproxy';
|
|
2
|
+
/** Edges tagged 'mail' bind SMTP ports and are eligible for outbound SMTP egress and mail DNS fronting. */
|
|
3
|
+
export declare const REMOTE_INGRESS_MAIL_TAG = "mail";
|
|
4
|
+
/** Edges tagged 'dns' forward public TCP/UDP 53 to the hub's authoritative DNS. */
|
|
5
|
+
export declare const REMOTE_INGRESS_DNS_TAG = "dns";
|
|
2
6
|
/**
|
|
3
7
|
* A stored remote ingress edge registration.
|
|
4
8
|
*/
|
|
@@ -17,6 +21,12 @@ export interface IRemoteIngress {
|
|
|
17
21
|
/** Optional per-edge outbound egress policy. Omitted or disabled means no egress. */
|
|
18
22
|
egress?: IRemoteIngressEgressPolicyConfig;
|
|
19
23
|
tags?: string[];
|
|
24
|
+
/** Operator-declared public IPv4 of the edge host — used to generate mail/DNS A records. */
|
|
25
|
+
publicIp?: string;
|
|
26
|
+
/** Operator-declared public IPv6 of the edge host — used to generate AAAA records once the edge has an IPv6 PTR. */
|
|
27
|
+
publicIpV6?: string;
|
|
28
|
+
/** FQDN matching this edge's PTR record — used as per-delivery outbound EHLO identity and FCrDNS A record. */
|
|
29
|
+
mailHostname?: string;
|
|
20
30
|
createdAt: number;
|
|
21
31
|
updatedAt: number;
|
|
22
32
|
/** Effective ports (union of manual + derived) — only present in API responses. */
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/** Edges tagged 'mail' bind SMTP ports and are eligible for outbound SMTP egress and mail DNS fronting. */
|
|
2
|
+
export const REMOTE_INGRESS_MAIL_TAG = 'mail';
|
|
3
|
+
/** Edges tagged 'dns' forward public TCP/UDP 53 to the hub's authoritative DNS. */
|
|
4
|
+
export const REMOTE_INGRESS_DNS_TAG = 'dns';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlaW5ncmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2ludGVyZmFjZXMvZGF0YS9yZW1vdGVpbmdyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLDJHQUEyRztBQUMzRyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUM7QUFDOUMsbUZBQW1GO0FBQ25GLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEtBQUssQ0FBQyJ9
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as plugins from '../plugins.js';
|
|
2
2
|
import type * as authInterfaces from '../data/auth.js';
|
|
3
|
-
import type { IEmailDomain, IEmailDnsRecord } from '../data/email-domain.js';
|
|
3
|
+
import type { IEmailDomain, IEmailDnsRecord, IEmailDomainRemoteIngress } from '../data/email-domain.js';
|
|
4
4
|
/**
|
|
5
5
|
* List all email domains.
|
|
6
6
|
*/
|
|
@@ -49,6 +49,8 @@ export interface IReq_CreateEmailDomain extends plugins.typedrequestInterfaces.i
|
|
|
49
49
|
rotateKeys?: boolean;
|
|
50
50
|
/** Days between rotations (default: 90). */
|
|
51
51
|
rotationIntervalDays?: number;
|
|
52
|
+
/** Optional RemoteIngress edge pinning for this domain. */
|
|
53
|
+
remoteIngress?: IEmailDomainRemoteIngress;
|
|
52
54
|
};
|
|
53
55
|
response: {
|
|
54
56
|
success: boolean;
|
|
@@ -68,6 +70,8 @@ export interface IReq_UpdateEmailDomain extends plugins.typedrequestInterfaces.i
|
|
|
68
70
|
rotateKeys?: boolean;
|
|
69
71
|
rotationIntervalDays?: number;
|
|
70
72
|
rateLimits?: IEmailDomain['rateLimits'];
|
|
73
|
+
/** RemoteIngress edge pinning; null clears the pin. */
|
|
74
|
+
remoteIngress?: IEmailDomainRemoteIngress | null;
|
|
71
75
|
};
|
|
72
76
|
response: {
|
|
73
77
|
success: boolean;
|
|
@@ -54,6 +54,10 @@ export interface IReq_GetAllEmails extends plugins.typedrequestInterfaces.implem
|
|
|
54
54
|
request: {
|
|
55
55
|
identity?: authInterfaces.IIdentity;
|
|
56
56
|
apiToken?: string;
|
|
57
|
+
/** Restrict the listing to one direction. Absent = both. */
|
|
58
|
+
direction?: TEmailDirection;
|
|
59
|
+
/** Maximum number of entries to return (default 200). */
|
|
60
|
+
limit?: number;
|
|
57
61
|
};
|
|
58
62
|
response: {
|
|
59
63
|
emails: IEmail[];
|
|
@@ -15,10 +15,15 @@ export interface IReq_CreateRemoteIngress extends plugins.typedrequestInterfaces
|
|
|
15
15
|
performance?: IRemoteIngressPerformanceConfig;
|
|
16
16
|
egress?: IRemoteIngressEgressPolicyConfig;
|
|
17
17
|
tags?: string[];
|
|
18
|
+
publicIp?: string;
|
|
19
|
+
publicIpV6?: string;
|
|
20
|
+
mailHostname?: string;
|
|
18
21
|
};
|
|
19
22
|
response: {
|
|
20
23
|
success: boolean;
|
|
21
24
|
edge: IRemoteIngress;
|
|
25
|
+
/** Failure reason (e.g. rejected publicIp) when success is false. */
|
|
26
|
+
message?: string;
|
|
22
27
|
};
|
|
23
28
|
}
|
|
24
29
|
/**
|
|
@@ -52,10 +57,16 @@ export interface IReq_UpdateRemoteIngress extends plugins.typedrequestInterfaces
|
|
|
52
57
|
performance?: IRemoteIngressPerformanceConfig;
|
|
53
58
|
egress?: IRemoteIngressEgressPolicyConfig;
|
|
54
59
|
tags?: string[];
|
|
60
|
+
/** null clears the stored value. */
|
|
61
|
+
publicIp?: string | null;
|
|
62
|
+
publicIpV6?: string | null;
|
|
63
|
+
mailHostname?: string | null;
|
|
55
64
|
};
|
|
56
65
|
response: {
|
|
57
66
|
success: boolean;
|
|
58
67
|
edge: IRemoteIngress;
|
|
68
|
+
/** Failure reason (e.g. rejected publicIp) when success is false. */
|
|
69
|
+
message?: string;
|
|
59
70
|
};
|
|
60
71
|
}
|
|
61
72
|
/**
|
|
@@ -418,6 +418,63 @@ async function backfillEmailOutboundAndRemoteIngressEgressSettings(ctx, options)
|
|
|
418
418
|
await backfillEmailOutboundMode(ctx, options);
|
|
419
419
|
await backfillRemoteIngressEdgeEgressDefaults(ctx);
|
|
420
420
|
}
|
|
421
|
+
async function flipEmailOutboundModeToRemoteIngress(ctx) {
|
|
422
|
+
const collection = ctx.mongo.collection('EmailServerSettingsDoc');
|
|
423
|
+
const doc = await collection.findOne({ settingsId: 'email-server-settings' });
|
|
424
|
+
if (!doc) {
|
|
425
|
+
ctx.log.log('info', 'flip-email-outbound-mode: no settings document, nothing to flip');
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
428
|
+
const mode = doc.outboundMode;
|
|
429
|
+
const updatedBy = String(doc.updatedBy || '');
|
|
430
|
+
// Operator-explicit 'direct' (set by a real identity) is preserved as opt-out;
|
|
431
|
+
// missing or default/migration-authored 'direct' flips to the new default.
|
|
432
|
+
const shouldFlip = mode === undefined
|
|
433
|
+
|| (mode === 'direct' && ['default', 'migration', ''].includes(updatedBy));
|
|
434
|
+
if (!shouldFlip) {
|
|
435
|
+
ctx.log.log('info', `flip-email-outbound-mode: keeping ${mode} (updatedBy: ${updatedBy || 'unknown'})`);
|
|
436
|
+
return;
|
|
437
|
+
}
|
|
438
|
+
await collection.updateOne(doc._id ? { _id: doc._id } : { settingsId: 'email-server-settings' }, {
|
|
439
|
+
$set: {
|
|
440
|
+
outboundMode: 'remoteIngress',
|
|
441
|
+
updatedAt: Date.now(),
|
|
442
|
+
updatedBy: 'migration',
|
|
443
|
+
},
|
|
444
|
+
});
|
|
445
|
+
ctx.log.log('info', 'flip-email-outbound-mode: outboundMode set to remoteIngress');
|
|
446
|
+
}
|
|
447
|
+
async function backfillCachedEmailDirections(ctx) {
|
|
448
|
+
const collection = ctx.mongo.collection('CachedEmail');
|
|
449
|
+
const cursor = collection.find({ direction: { $exists: false } });
|
|
450
|
+
let updated = 0;
|
|
451
|
+
for await (const doc of cursor) {
|
|
452
|
+
let routeData = {};
|
|
453
|
+
try {
|
|
454
|
+
routeData = JSON.parse(doc.routeData || '{}');
|
|
455
|
+
}
|
|
456
|
+
catch {
|
|
457
|
+
routeData = {};
|
|
458
|
+
}
|
|
459
|
+
const authenticated = routeData?.session?.authenticated === true;
|
|
460
|
+
const recipientDomains = [...new Set((doc.to || [])
|
|
461
|
+
.map((address) => {
|
|
462
|
+
const match = String(address).match(/@([^>]+)>?$/);
|
|
463
|
+
return match ? match[1].toLowerCase() : undefined;
|
|
464
|
+
})
|
|
465
|
+
.filter(Boolean))];
|
|
466
|
+
const acceptedAtParsed = Date.parse(routeData?.acceptedAt || '');
|
|
467
|
+
await collection.updateOne({ _id: doc._id }, {
|
|
468
|
+
$set: {
|
|
469
|
+
direction: authenticated ? 'outbound' : 'inbound',
|
|
470
|
+
recipientDomains,
|
|
471
|
+
acceptedAt: Number.isFinite(acceptedAtParsed) ? acceptedAtParsed : Date.now(),
|
|
472
|
+
},
|
|
473
|
+
});
|
|
474
|
+
updated++;
|
|
475
|
+
}
|
|
476
|
+
ctx.log.log('info', `backfill-cached-email-directions: annotated ${updated} cached email(s)`);
|
|
477
|
+
}
|
|
421
478
|
/**
|
|
422
479
|
* Create a configured SmartMigration runner with all dcrouter migration steps registered.
|
|
423
480
|
*
|
|
@@ -668,14 +725,38 @@ export async function createMigrationRunner(db, targetVersion, options = {}) {
|
|
|
668
725
|
await backfillEmailOutboundAndRemoteIngressEgressSettings(ctx, options);
|
|
669
726
|
});
|
|
670
727
|
if (compareSemver(targetVersion, emailOutboundEgressSettingsMigrationVersion) > 0) {
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
728
|
+
if (compareSemver(targetVersion, mailOverEdgesMigrationVersion) >= 0) {
|
|
729
|
+
migration
|
|
730
|
+
.step('mail-over-edges-defaults')
|
|
731
|
+
.from(emailOutboundEgressSettingsMigrationVersion).to(mailOverEdgesMigrationVersion)
|
|
732
|
+
.description('Default email outbound mode to remoteIngress and backfill CachedEmail direction metadata')
|
|
733
|
+
.up(async (ctx) => {
|
|
734
|
+
await flipEmailOutboundModeToRemoteIngress(ctx);
|
|
735
|
+
await backfillCachedEmailDirections(ctx);
|
|
736
|
+
await backfillRemoteIngressHubSettings(ctx, options);
|
|
737
|
+
await backfillEmailServerSettings(ctx, options);
|
|
738
|
+
});
|
|
739
|
+
if (compareSemver(targetVersion, mailOverEdgesMigrationVersion) > 0) {
|
|
740
|
+
migration
|
|
741
|
+
.step('backfill-remote-ingress-hub-settings-after-mail-over-edges')
|
|
742
|
+
.from(mailOverEdgesMigrationVersion).to(targetVersion)
|
|
743
|
+
.description('Backfill DB-backed singleton runtime settings from legacy bootstrap config')
|
|
744
|
+
.up(async (ctx) => {
|
|
745
|
+
await backfillRemoteIngressHubSettings(ctx, options);
|
|
746
|
+
await backfillEmailServerSettings(ctx, options);
|
|
747
|
+
});
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
else {
|
|
751
|
+
migration
|
|
752
|
+
.step('backfill-remote-ingress-hub-settings-after-email-egress')
|
|
753
|
+
.from(emailOutboundEgressSettingsMigrationVersion).to(targetVersion)
|
|
754
|
+
.description('Backfill DB-backed singleton runtime settings from legacy bootstrap config')
|
|
755
|
+
.up(async (ctx) => {
|
|
756
|
+
await backfillRemoteIngressHubSettings(ctx, options);
|
|
757
|
+
await backfillEmailServerSettings(ctx, options);
|
|
758
|
+
});
|
|
759
|
+
}
|
|
679
760
|
}
|
|
680
761
|
}
|
|
681
762
|
else {
|
|
@@ -729,6 +810,7 @@ export async function createMigrationRunner(db, targetVersion, options = {}) {
|
|
|
729
810
|
const domainNameUniqueMigrationBaseVersion = '15.0.5';
|
|
730
811
|
const emailOutboundEgressSettingsMigrationPreviousVersion = '15.6.1';
|
|
731
812
|
const emailOutboundEgressSettingsMigrationVersion = '15.6.2';
|
|
813
|
+
const mailOverEdgesMigrationVersion = '16.0.0';
|
|
732
814
|
async function dedupeDomainDocsByName(ctx) {
|
|
733
815
|
const collection = ctx.mongo.collection('DomainDoc');
|
|
734
816
|
const docs = await collection.find({}).toArray();
|
|
@@ -749,4 +831,4 @@ async function dedupeDomainDocsByName(ctx) {
|
|
|
749
831
|
}
|
|
750
832
|
ctx.log.log('info', `dedupe-domain-docs-by-name: removed ${removed} duplicate domain doc(s)`);
|
|
751
833
|
}
|
|
752
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19taWdyYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQWdDSCxNQUFNLHVCQUF1QixHQUl4QjtJQUNIO1FBQ0UsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixXQUFXLEVBQUUsNEZBQTRGO1FBQ3pHLFFBQVEsRUFBRTtZQUNSLFdBQVcsRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQztZQUNsRixjQUFjLEVBQUUsSUFBSTtTQUNyQjtLQUNGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsYUFBYTtRQUNuQixXQUFXLEVBQUUsNkVBQTZFO1FBQzFGLFFBQVEsRUFBRTtZQUNSLFdBQVcsRUFBRSxFQUFFO1lBQ2YsU0FBUyxFQUFFO2dCQUNULE9BQU8sRUFBRSxJQUFJO2dCQUNiLFdBQVcsRUFBRSxFQUFFO2dCQUNmLE1BQU0sRUFBRSxFQUFFO2dCQUNWLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjtLQUNGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSw2REFBNkQ7UUFDMUUsUUFBUSxFQUFFO1lBQ1IsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ2xCLFNBQVMsRUFBRTtnQkFDVCxPQUFPLEVBQUUsSUFBSTtnQkFDYixXQUFXLEVBQUUsR0FBRztnQkFDaEIsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsTUFBTSw0Q0FBNEMsR0FBRyxTQUFTLENBQUM7QUFFL0QsU0FBUyxhQUFhLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDekMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0s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
|
|
834
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19taWdyYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQWdDSCxNQUFNLHVCQUF1QixHQUl4QjtJQUNIO1FBQ0UsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixXQUFXLEVBQUUsNEZBQTRGO1FBQ3pHLFFBQVEsRUFBRTtZQUNSLFdBQVcsRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQztZQUNsRixjQUFjLEVBQUUsSUFBSTtTQUNyQjtLQUNGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsYUFBYTtRQUNuQixXQUFXLEVBQUUsNkVBQTZFO1FBQzFGLFFBQVEsRUFBRTtZQUNSLFdBQVcsRUFBRSxFQUFFO1lBQ2YsU0FBUyxFQUFFO2dCQUNULE9BQU8sRUFBRSxJQUFJO2dCQUNiLFdBQVcsRUFBRSxFQUFFO2dCQUNmLE1BQU0sRUFBRSxFQUFFO2dCQUNWLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjtLQUNGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSw2REFBNkQ7UUFDMUUsUUFBUSxFQUFFO1lBQ1IsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ2xCLFNBQVMsRUFBRTtnQkFDVCxPQUFPLEVBQUUsSUFBSTtnQkFDYixXQUFXLEVBQUUsR0FBRztnQkFDaEIsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsTUFBTSw0Q0FBNEMsR0FBRyxTQUFTLENBQUM7QUFFL0QsU0FBUyxhQUFhLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDekMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0s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
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@serve.zone/dcrouter',
|
|
6
|
-
version: '
|
|
6
|
+
version: '16.0.1',
|
|
7
7
|
description: 'A multifaceted routing service handling mail and SMS delivery functions.'
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSwwRUFBMEU7Q0FDeEYsQ0FBQSJ9
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serve.zone/dcrouter",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "16.0.1",
|
|
5
5
|
"description": "A multifaceted routing service handling mail and SMS delivery functions.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@git.zone/tsrun": "^2.0.5",
|
|
23
23
|
"@git.zone/tstest": "^3.6.6",
|
|
24
24
|
"@git.zone/tswatch": "^3.3.5",
|
|
25
|
-
"@types/node": "26.0
|
|
25
|
+
"@types/node": "26.1.0"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@api.global/typedrequest": "^3.3.2",
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
"@push.rocks/smartmcp": "^0.2.0",
|
|
49
49
|
"@push.rocks/smartmetrics": "^3.0.3",
|
|
50
50
|
"@push.rocks/smartmigration": "1.4.1",
|
|
51
|
-
"@push.rocks/smartmta": "^6.
|
|
52
|
-
"@push.rocks/smartnetwork": "^4.
|
|
51
|
+
"@push.rocks/smartmta": "^6.4.0",
|
|
52
|
+
"@push.rocks/smartnetwork": "^4.8.0",
|
|
53
53
|
"@push.rocks/smartpath": "^6.0.0",
|
|
54
54
|
"@push.rocks/smartpromise": "^4.2.4",
|
|
55
55
|
"@push.rocks/smartproxy": "^27.17.5",
|