@serve.zone/dcrouter 17.2.2 → 17.2.4

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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/dcrouter',
6
- version: '17.2.2',
6
+ version: '17.2.4',
7
7
  description: 'A multifaceted routing service handling mail and SMS delivery functions.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxzQkFBc0I7SUFDNUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLDBFQUEwRTtDQUN4RixDQUFBIn0=
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/dcrouter',
6
- version: '17.2.2',
6
+ version: '17.2.4',
7
7
  description: 'A multifaceted routing service handling mail and SMS delivery functions.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSwwRUFBMEU7Q0FDeEYsQ0FBQSJ9
@@ -1,5 +1,13 @@
1
- export const PROTOCOL_ORDER = ['HTTP/1.1', 'HTTP/2', 'HTTP/3', 'WebSocket', 'Other'];
1
+ import { NETWORK_ACTIVITY_PROTOCOL_ORDER, orderNetworkActivityProtocolNames, } from './network-activity-visuals.js';
2
+ export const PROTOCOL_ORDER = NETWORK_ACTIVITY_PROTOCOL_ORDER;
2
3
  export const PROTOCOL_SERIES_ORDER = ['Total Active', ...PROTOCOL_ORDER];
4
+ const getProtocolSeriesOrder = (protocolNamesArg) => [
5
+ 'Total Active',
6
+ ...orderNetworkActivityProtocolNames([
7
+ ...PROTOCOL_ORDER,
8
+ ...protocolNamesArg,
9
+ ]),
10
+ ];
3
11
  const toEpochSecond = (timestampArg) => {
4
12
  const timestampMs = typeof timestampArg === 'number'
5
13
  ? timestampArg
@@ -27,7 +35,7 @@ export const mergeChartPoints = (localPointsArg, canonicalPointsArg, maximumPoin
27
35
  .map(([, point]) => point)
28
36
  .slice(-maximumPointsArg);
29
37
  };
30
- export const createProtocolConnectionSeries = (historyArg = []) => PROTOCOL_SERIES_ORDER.map((seriesName) => ({
38
+ export const createProtocolConnectionSeries = (historyArg = []) => getProtocolSeriesOrder(historyArg.flatMap((point) => Object.keys(point.protocols))).map((seriesName) => ({
31
39
  name: seriesName,
32
40
  data: historyArg.map((point) => ({
33
41
  x: new Date(point.timestamp).toISOString(),
@@ -40,18 +48,25 @@ export const mergeProtocolConnectionHistory = (localSeriesArg, canonicalHistoryA
40
48
  const localSeriesByName = new Map(localSeriesArg.map((series) => [series.name, series]));
41
49
  const canonicalSeriesByName = new Map(createProtocolConnectionSeries(canonicalHistoryArg)
42
50
  .map((series) => [series.name, series]));
43
- return PROTOCOL_SERIES_ORDER.map((seriesName) => ({
51
+ const seriesOrder = getProtocolSeriesOrder([
52
+ ...localSeriesArg.map((series) => series.name),
53
+ ...canonicalHistoryArg.flatMap((point) => Object.keys(point.protocols)),
54
+ ]);
55
+ return seriesOrder.map((seriesName) => ({
44
56
  name: seriesName,
45
57
  data: mergeChartPoints(localSeriesByName.get(seriesName)?.data ?? [], canonicalSeriesByName.get(seriesName)?.data ?? [], maximumPointsArg),
46
58
  }));
47
59
  };
48
- export const getProtocolConnectionTotal = (protocolsArg) => (protocolsArg['HTTP/1.1'] ?? 0)
49
- + (protocolsArg['HTTP/2'] ?? 0)
50
- + (protocolsArg['HTTP/3'] ?? 0)
51
- + (protocolsArg.Other ?? 0);
60
+ export const getProtocolConnectionTotal = (protocolsArg) => Object.entries(protocolsArg)
61
+ .filter(([name]) => name !== 'WebSocket')
62
+ .reduce((total, [, count]) => total + count, 0);
52
63
  export const appendProtocolConnectionSample = (localSeriesArg, timestampArg, protocolsArg, maximumPointsArg) => {
53
64
  const localSeriesByName = new Map(localSeriesArg.map((series) => [series.name, series]));
54
- return PROTOCOL_SERIES_ORDER.map((seriesName) => ({
65
+ const seriesOrder = getProtocolSeriesOrder([
66
+ ...localSeriesArg.map((series) => series.name),
67
+ ...Object.keys(protocolsArg),
68
+ ]);
69
+ return seriesOrder.map((seriesName) => ({
55
70
  name: seriesName,
56
71
  data: mergeChartPoints(localSeriesByName.get(seriesName)?.data ?? [], [{
57
72
  x: timestampArg,
@@ -62,4 +77,4 @@ export const appendProtocolConnectionSample = (localSeriesArg, timestampArg, pro
62
77
  }));
63
78
  };
64
79
  export const shouldRestartNetworkActivityTimer = (isConnectedArg, documentHiddenArg) => isConnectedArg && !documentHiddenArg;
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1hY3Rpdml0eS1oaXN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL25ldHdvcmsvbmV0d29yay1hY3Rpdml0eS1oaXN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdCQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFVLENBQUM7QUFDOUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxjQUFjLEVBQUUsR0FBRyxjQUFjLENBQVUsQ0FBQztBQUVsRixNQUFNLGFBQWEsR0FBRyxDQUFDLFlBQTZCLEVBQVUsRUFBRTtJQUM5RCxNQUFNLFdBQVcsR0FBRyxPQUFPLFlBQVksS0FBSyxRQUFRO1FBQ2xELENBQUMsQ0FBQyxZQUFZO1FBQ2QsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDeEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FDekMsVUFBd0MsRUFDaEMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQzVCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQ3ZFLENBQUMsQ0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsY0FBNkIsRUFDN0Isa0JBQWlDLEVBQ2pDLGdCQUF3QixFQUNULEVBQUU7SUFDakIsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQXVC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
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1hY3Rpdml0eS1oaXN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL25ldHdvcmsvbmV0d29yay1hY3Rpdml0eS1oaXN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsaUNBQWlDLEdBQ2xDLE1BQU0sK0JBQStCLENBQUM7QUFrQnZDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRywrQkFBK0IsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLGNBQWMsRUFBRSxHQUFHLGNBQWMsQ0FBVSxDQUFDO0FBRWxGLE1BQU0sc0JBQXNCLEdBQUcsQ0FDN0IsZ0JBQTBCLEVBQ2hCLEVBQUUsQ0FBQztJQUNiLGNBQWM7SUFDZCxHQUFHLGlDQUFpQyxDQUFDO1FBQ25DLEdBQUcsY0FBYztRQUNqQixHQUFHLGdCQUFnQjtLQUNwQixDQUFDO0NBQ0gsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHLENBQUMsWUFBNkIsRUFBVSxFQUFFO0lBQzlELE1BQU0sV0FBVyxHQUFHLE9BQU8sWUFBWSxLQUFLLFFBQVE7UUFDbEQsQ0FBQyxDQUFDLFlBQVk7UUFDZCxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUN4QyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUN6QyxVQUF3QyxFQUNoQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDNUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFDdkUsQ0FBQyxDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUM5QixjQUE2QixFQUM3QixrQkFBaUMsRUFDakMsZ0JBQXdCLEVBQ1QsRUFBRTtJQUNqQixNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQztJQUN0RCxLQUFLLE1BQU0sS0FBSyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDakMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFDRCwyRkFBMkY7SUFDM0YsS0FBSyxNQUFNLEtBQUssSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDakMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsR0FBRyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDakMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1NBQ2pELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO1NBQ3pCLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FDNUMsYUFBb0QsRUFBRSxFQUNoQyxFQUFFLENBQUMsc0JBQXNCLENBQy9DLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQzVELENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JCLElBQUksRUFBRSxVQUFVO0lBQ2hCLElBQUksRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFO1FBQzFDLENBQUMsRUFBRSxVQUFVLEtBQUssY0FBYztZQUM5QixDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUs7WUFDYixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QyxDQUFDLENBQUM7Q0FDSixDQUFDLENBQUMsQ0FBQztBQUVKLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLENBQzVDLGNBQW9DLEVBQ3BDLG1CQUEwRCxFQUMxRCxnQkFBd0IsRUFDRixFQUFFO0lBQ3hCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RixNQUFNLHFCQUFxQixHQUFHLElBQUksR0FBRyxDQUNuQyw4QkFBOEIsQ0FBQyxtQkFBbUIsQ0FBQztTQUNoRCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUMxQyxDQUFDO0lBQ0YsTUFBTSxXQUFXLEdBQUcsc0JBQXNCLENBQUM7UUFDekMsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzlDLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUN4RSxDQUFDLENBQUM7SUFFSCxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLGdCQUFnQixDQUNwQixpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFDN0MscUJBQXFCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQ2pELGdCQUFnQixDQUNqQjtLQUNGLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FDeEMsWUFBb0MsRUFDNUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO0tBQ3RDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUM7S0FDeEMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUM1QyxjQUFvQyxFQUNwQyxZQUE2QixFQUM3QixZQUFvQyxFQUNwQyxnQkFBd0IsRUFDRixFQUFFO0lBQ3hCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RixNQUFNLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztRQUN6QyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDOUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztLQUM3QixDQUFDLENBQUM7SUFDSCxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLGdCQUFnQixDQUNwQixpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFDN0MsQ0FBQztnQkFDQyxDQUFDLEVBQUUsWUFBWTtnQkFDZixDQUFDLEVBQUUsVUFBVSxLQUFLLGNBQWM7b0JBQzlCLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUM7b0JBQzFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEMsQ0FBQyxFQUNGLGdCQUFnQixDQUNqQjtLQUNGLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUcsQ0FDL0MsY0FBdUIsRUFDdkIsaUJBQTBCLEVBQ2pCLEVBQUUsQ0FBQyxjQUFjLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyJ9
@@ -0,0 +1,27 @@
1
+ export declare const NETWORK_ACTIVITY_COLORS: {
2
+ readonly 'Total Active': "#64748b";
3
+ readonly 'HTTP/1.1': "#1976d2";
4
+ readonly 'HTTP/2': "#388e3c";
5
+ readonly 'HTTP/3': "#7b1fa2";
6
+ readonly WebSocket: "#f57c00";
7
+ readonly Other: "#757575";
8
+ readonly Inbound: "#22c55e";
9
+ readonly Outbound: "#8b5cf6";
10
+ readonly 'Requests/sec': "#3b82f6";
11
+ };
12
+ export declare const NETWORK_ACTIVITY_PROTOCOL_ORDER: readonly ["HTTP/1.1", "HTTP/2", "HTTP/3", "WebSocket", "Other"];
13
+ export declare const PROTOCOL_CONNECTION_LEGEND_STATS: Array<'latest'>;
14
+ export declare const PROTOCOL_CONNECTION_CHART_LINES: Array<'avg' | 'max'>;
15
+ export declare const NETWORK_ACTIVITY_FALLBACK_COLORS: readonly ["#007aff", "#32ade6", "#af52de", "#ff9500", "#34c759", "#ff2d55"];
16
+ export declare const getNetworkActivityColor: (nameArg: string, fallbackIndexArg?: number) => string;
17
+ export declare const orderNetworkActivityProtocolNames: (namesArg: string[]) => string[];
18
+ export declare const createNetworkProtocolDonutData: (countsArg: Record<string, number>, paletteProtocolNamesArg?: string[]) => Array<{
19
+ name: string;
20
+ value: number;
21
+ color: string;
22
+ }>;
23
+ export declare const colorNetworkProtocolSeries: <T extends {
24
+ name: string;
25
+ }>(seriesArg: T[]) => Array<T & {
26
+ color: string;
27
+ }>;
@@ -0,0 +1,73 @@
1
+ export const NETWORK_ACTIVITY_COLORS = {
2
+ 'Total Active': '#64748b',
3
+ 'HTTP/1.1': '#1976d2',
4
+ 'HTTP/2': '#388e3c',
5
+ 'HTTP/3': '#7b1fa2',
6
+ 'WebSocket': '#f57c00',
7
+ 'Other': '#757575',
8
+ 'Inbound': '#22c55e',
9
+ 'Outbound': '#8b5cf6',
10
+ 'Requests/sec': '#3b82f6',
11
+ };
12
+ export const NETWORK_ACTIVITY_PROTOCOL_ORDER = [
13
+ 'HTTP/1.1',
14
+ 'HTTP/2',
15
+ 'HTTP/3',
16
+ 'WebSocket',
17
+ 'Other',
18
+ ];
19
+ export const PROTOCOL_CONNECTION_LEGEND_STATS = ['latest'];
20
+ export const PROTOCOL_CONNECTION_CHART_LINES = [];
21
+ export const NETWORK_ACTIVITY_FALLBACK_COLORS = [
22
+ '#007aff',
23
+ '#32ade6',
24
+ '#af52de',
25
+ '#ff9500',
26
+ '#34c759',
27
+ '#ff2d55',
28
+ ];
29
+ const knownProtocolNames = new Set(NETWORK_ACTIVITY_PROTOCOL_ORDER);
30
+ export const getNetworkActivityColor = (nameArg, fallbackIndexArg = 0) => {
31
+ const canonicalColor = NETWORK_ACTIVITY_COLORS[nameArg];
32
+ if (canonicalColor)
33
+ return canonicalColor;
34
+ const fallbackIndex = Math.max(0, Math.trunc(fallbackIndexArg));
35
+ return NETWORK_ACTIVITY_FALLBACK_COLORS[fallbackIndex % NETWORK_ACTIVITY_FALLBACK_COLORS.length];
36
+ };
37
+ export const orderNetworkActivityProtocolNames = (namesArg) => {
38
+ const names = new Set(namesArg.filter((name) => name && name !== 'Total Active'));
39
+ const orderedKnown = NETWORK_ACTIVITY_PROTOCOL_ORDER
40
+ .filter((name) => name !== 'Other' && names.has(name));
41
+ const orderedUnknown = [...names]
42
+ .filter((name) => !knownProtocolNames.has(name))
43
+ .sort((nameA, nameB) => nameA.localeCompare(nameB));
44
+ return [
45
+ ...orderedKnown,
46
+ ...orderedUnknown,
47
+ ...(names.has('Other') ? ['Other'] : []),
48
+ ];
49
+ };
50
+ export const createNetworkProtocolDonutData = (countsArg, paletteProtocolNamesArg = []) => {
51
+ const orderedNames = orderNetworkActivityProtocolNames(Object.keys(countsArg));
52
+ const paletteNames = orderNetworkActivityProtocolNames([
53
+ ...orderedNames,
54
+ ...paletteProtocolNamesArg,
55
+ ]);
56
+ const unknownNames = paletteNames.filter((name) => !knownProtocolNames.has(name));
57
+ return orderedNames
58
+ .filter((name) => (countsArg[name] ?? 0) > 0)
59
+ .map((name) => ({
60
+ name,
61
+ value: countsArg[name] ?? 0,
62
+ color: getNetworkActivityColor(name, unknownNames.indexOf(name)),
63
+ }));
64
+ };
65
+ export const colorNetworkProtocolSeries = (seriesArg) => {
66
+ const orderedNames = orderNetworkActivityProtocolNames(seriesArg.map((series) => series.name));
67
+ const unknownNames = orderedNames.filter((name) => !knownProtocolNames.has(name));
68
+ return seriesArg.map((series) => ({
69
+ ...series,
70
+ color: getNetworkActivityColor(series.name, unknownNames.indexOf(series.name)),
71
+ }));
72
+ };
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1hY3Rpdml0eS12aXN1YWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL25ldHdvcmsvbmV0d29yay1hY3Rpdml0eS12aXN1YWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLGNBQWMsRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRztJQUM3QyxVQUFVO0lBQ1YsUUFBUTtJQUNSLFFBQVE7SUFDUixXQUFXO0lBQ1gsT0FBTztDQUNDLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM1RSxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBeUIsRUFBRSxDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHO0lBQzlDLFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztDQUNELENBQUM7QUFFWCxNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFTLCtCQUErQixDQUFDLENBQUM7QUFFNUUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FDckMsT0FBZSxFQUNmLGdCQUFnQixHQUFHLENBQUMsRUFDWixFQUFFO0lBQ1YsTUFBTSxjQUFjLEdBQUcsdUJBQXVCLENBQzVDLE9BQStDLENBQ2hELENBQUM7SUFDRixJQUFJLGNBQWM7UUFBRSxPQUFPLGNB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
@@ -34,7 +34,6 @@ export declare class OpsViewNetworkActivity extends DeesElement {
34
34
  private initializeTrafficData;
35
35
  private mergeThroughputHistory;
36
36
  private getProtocolCounts;
37
- private getProtocolSeriesWithColors;
38
37
  private mergeProtocolConnectionHistories;
39
38
  private addProtocolConnectionDataPoints;
40
39
  static styles: import("@design.estate/dees-element").CSSResult[];
@@ -38,13 +38,7 @@ import * as interfaces from '../../../dist_ts_interfaces/index.js';
38
38
  import { viewHostCss } from '../shared/css.js';
39
39
  import {} from '@design.estate/dees-catalog';
40
40
  import { appendProtocolConnectionSample, createProtocolConnectionSeries, getLatestHistoryEpochSecond, mergeChartPoints, mergeProtocolConnectionHistory, shouldRestartNetworkActivityTimer, } from './network-activity-history.js';
41
- const PROTOCOL_COLORS = {
42
- 'HTTP/1.1': '#1976d2',
43
- 'HTTP/2': '#388e3c',
44
- 'HTTP/3': '#7b1fa2',
45
- 'WebSocket': '#f57c00',
46
- 'Other': '#757575',
47
- };
41
+ import { NETWORK_ACTIVITY_COLORS, PROTOCOL_CONNECTION_CHART_LINES, PROTOCOL_CONNECTION_LEGEND_STATS, colorNetworkProtocolSeries, createNetworkProtocolDonutData, getNetworkActivityColor, } from './network-activity-visuals.js';
48
42
  let OpsViewNetworkActivity = (() => {
49
43
  let _classDecorators = [customElement('ops-view-network-activity')];
50
44
  let _classDescriptor;
@@ -213,12 +207,6 @@ let OpsViewNetworkActivity = (() => {
213
207
  'Other': distributionArg.otherActive,
214
208
  };
215
209
  }
216
- getProtocolSeriesWithColors(seriesArg) {
217
- return seriesArg.map((series) => ({
218
- ...series,
219
- color: series.name === 'Total Active' ? '#ef4444' : (PROTOCOL_COLORS[series.name] ?? '#757575'),
220
- }));
221
- }
222
210
  mergeProtocolConnectionHistories() {
223
211
  const frontendHistory = this.networkState.frontendConnectionHistory || [];
224
212
  const latestFrontendEpochSecond = getLatestHistoryEpochSecond(frontendHistory);
@@ -398,12 +386,12 @@ let OpsViewNetworkActivity = (() => {
398
386
  {
399
387
  name: 'Inbound',
400
388
  data: this.trafficDataIn,
401
- color: '#22c55e',
389
+ color: NETWORK_ACTIVITY_COLORS.Inbound,
402
390
  },
403
391
  {
404
392
  name: 'Outbound',
405
393
  data: this.trafficDataOut,
406
- color: '#8b5cf6',
394
+ color: NETWORK_ACTIVITY_COLORS.Outbound,
407
395
  }
408
396
  ]}
409
397
  .realtimeMode=${true}
@@ -595,7 +583,7 @@ let OpsViewNetworkActivity = (() => {
595
583
  value: activeConnections,
596
584
  type: 'number',
597
585
  icon: 'lucide:Plug',
598
- color: activeConnections > 100 ? '#f59e0b' : '#22c55e',
586
+ color: NETWORK_ACTIVITY_COLORS['Total Active'],
599
587
  description: `Total: ${this.formatNumber(this.statsState.serverStats?.totalConnections || 0)} connections`,
600
588
  actions: [
601
589
  {
@@ -612,7 +600,7 @@ let OpsViewNetworkActivity = (() => {
612
600
  value: reqPerSec,
613
601
  type: 'trend',
614
602
  icon: 'lucide:ChartLine',
615
- color: '#3b82f6',
603
+ color: NETWORK_ACTIVITY_COLORS['Requests/sec'],
616
604
  trendData: trendData,
617
605
  description: `Total: ${this.formatNumber(this.networkState.requestsTotal || 0)} requests`,
618
606
  },
@@ -623,7 +611,7 @@ let OpsViewNetworkActivity = (() => {
623
611
  unit: '',
624
612
  type: 'number',
625
613
  icon: 'lucide:Download',
626
- color: '#22c55e',
614
+ color: NETWORK_ACTIVITY_COLORS.Inbound,
627
615
  description: `Total: ${this.formatBytes(this.networkState.totalBytes?.in || 0)}`,
628
616
  },
629
617
  {
@@ -633,7 +621,7 @@ let OpsViewNetworkActivity = (() => {
633
621
  unit: '',
634
622
  type: 'number',
635
623
  icon: 'lucide:Upload',
636
- color: '#8b5cf6',
624
+ color: NETWORK_ACTIVITY_COLORS.Outbound,
637
625
  description: `Total: ${this.formatBytes(this.networkState.totalBytes?.out || 0)}`,
638
626
  },
639
627
  ];
@@ -647,31 +635,17 @@ let OpsViewNetworkActivity = (() => {
647
635
  renderProtocolCharts() {
648
636
  const fp = this.networkState.frontendProtocols;
649
637
  const bp = this.networkState.backendProtocols;
650
- const protoColors = PROTOCOL_COLORS;
651
- const buildDonutData = (dist) => {
652
- if (!dist)
653
- return [];
654
- const items = [];
655
- if (dist.h1Active > 0)
656
- items.push({ name: 'HTTP/1.1', value: dist.h1Active, color: protoColors['HTTP/1.1'] });
657
- if (dist.h2Active > 0)
658
- items.push({ name: 'HTTP/2', value: dist.h2Active, color: protoColors['HTTP/2'] });
659
- if (dist.h3Active > 0)
660
- items.push({ name: 'HTTP/3', value: dist.h3Active, color: protoColors['HTTP/3'] });
661
- if (dist.wsActive > 0)
662
- items.push({ name: 'WebSocket', value: dist.wsActive, color: protoColors['WebSocket'] });
663
- if (dist.otherActive > 0)
664
- items.push({ name: 'Other', value: dist.otherActive, color: protoColors['Other'] });
665
- return items;
666
- };
667
- const frontendData = buildDonutData(fp);
668
- const backendData = buildDonutData(bp);
638
+ const buildDonutData = (dist, historySeries) => dist
639
+ ? createNetworkProtocolDonutData(this.getProtocolCounts(dist), historySeries.map((series) => series.name))
640
+ : [];
641
+ const frontendData = buildDonutData(fp, this.frontendConnectionSeries);
642
+ const backendData = buildDonutData(bp, this.backendConnectionSeries);
669
643
  return html `
670
644
  <div class="protocolChartGrid">
671
645
  <div class="protocolChartColumn">
672
646
  <dees-chart-donut
673
647
  .label=${'Frontend Protocols'}
674
- .data=${frontendData.length > 0 ? frontendData : [{ name: 'No Traffic', value: 1, color: '#757575' }]}
648
+ .data=${frontendData.length > 0 ? frontendData : [{ name: 'No Traffic', value: 1, color: getNetworkActivityColor('Other') }]}
675
649
  .showLegend=${true}
676
650
  .showLabels=${true}
677
651
  .innerRadiusPercent=${'55%'}
@@ -679,7 +653,9 @@ let OpsViewNetworkActivity = (() => {
679
653
  ></dees-chart-donut>
680
654
  <dees-chart-area
681
655
  .label=${'Frontend Active Connections'}
682
- .series=${this.getProtocolSeriesWithColors(this.frontendConnectionSeries)}
656
+ .series=${colorNetworkProtocolSeries(this.frontendConnectionSeries)}
657
+ .legendStats=${PROTOCOL_CONNECTION_LEGEND_STATS}
658
+ .chartLines=${PROTOCOL_CONNECTION_CHART_LINES}
683
659
  .realtimeMode=${true}
684
660
  .rollingWindow=${OpsViewNetworkActivity.CHART_WINDOW_MS}
685
661
  .yAxisFormatter=${(val) => `${Math.round(val)} active`}
@@ -688,7 +664,7 @@ let OpsViewNetworkActivity = (() => {
688
664
  <div class="protocolChartColumn">
689
665
  <dees-chart-donut
690
666
  .label=${'Backend Protocols'}
691
- .data=${backendData.length > 0 ? backendData : [{ name: 'No Traffic', value: 1, color: '#757575' }]}
667
+ .data=${backendData.length > 0 ? backendData : [{ name: 'No Traffic', value: 1, color: getNetworkActivityColor('Other') }]}
692
668
  .showLegend=${true}
693
669
  .showLabels=${true}
694
670
  .innerRadiusPercent=${'55%'}
@@ -696,7 +672,9 @@ let OpsViewNetworkActivity = (() => {
696
672
  ></dees-chart-donut>
697
673
  <dees-chart-area
698
674
  .label=${'Backend Active Connections'}
699
- .series=${this.getProtocolSeriesWithColors(this.backendConnectionSeries)}
675
+ .series=${colorNetworkProtocolSeries(this.backendConnectionSeries)}
676
+ .legendStats=${PROTOCOL_CONNECTION_LEGEND_STATS}
677
+ .chartLines=${PROTOCOL_CONNECTION_CHART_LINES}
700
678
  .realtimeMode=${true}
701
679
  .rollingWindow=${OpsViewNetworkActivity.CHART_WINDOW_MS}
702
680
  .yAxisFormatter=${(val) => `${Math.round(val)} active`}
@@ -1095,4 +1073,4 @@ let OpsViewNetworkActivity = (() => {
1095
1073
  return OpsViewNetworkActivity = _classThis;
1096
1074
  })();
1097
1075
  export { OpsViewNetworkActivity };
1098
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctbmV0d29yay1hY3Rpdml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy9uZXR3b3JrL29wcy12aWV3LW5ldHdvcmstYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQXVCLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEksT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssVUFBVSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQW1CLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUNMLDhCQUE4QixFQUM5Qiw4QkFBOEIsRUFDOUIsMkJBQTJCLEVBQzNCLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIsaUNBQWlDLEdBR2xDLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsTUFBTSxlQUFlLEdBQTJCO0lBQzlDLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLE9BQU8sRUFBRSxTQUFTO0NBQ25CLENBQUM7SUFTVyxzQkFBc0I7NEJBRGxDLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQzs7OztzQkFDQyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQUFuQixTQUFRLFdBQVc7Ozs7c0NBUXBELEtBQUssRUFBRTt3Q0FHUCxLQUFLLEVBQUU7eUNBSVAsS0FBSyxFQUFFOzBDQUdQLEtBQUssRUFBRTtvREFHUCxLQUFLLEVBQUU7bURBR1AsS0FBSyxFQUFFO1lB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QUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7c0JBSW5DLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztpQkFDN0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7O3NCQUluQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQzdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7OztzQkFJbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2lCQUM3QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7c0JBSW5DLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztpQkFDN0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7O3NCQUluQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQzdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7OztzQkFJbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2lCQUM3QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7c0JBSW5DLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztpQkFDN0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7O3NCQVVuQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQzdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7c0JBY25DLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztpQkFDN0MsVUFBVSxDQUFDLE9BQU8sQ0FB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
1076
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctbmV0d29yay1hY3Rpdml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy9uZXR3b3JrL29wcy12aWV3LW5ldHdvcmstYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQXVCLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEksT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssVUFBVSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQW1CLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUNMLDhCQUE4QixFQUM5Qiw4QkFBOEIsRUFDOUIsMkJBQTJCLEVBQzNCLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIsaUNBQWlDLEdBR2xDLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QiwrQkFBK0IsRUFDL0IsZ0NBQWdDLEVBQ2hDLDBCQUEwQixFQUMxQiw4QkFBOEIsRUFDOUIsdUJBQXVCLEdBQ3hCLE1BQU0sK0JBQStCLENBQUM7SUFTMUIsc0JBQXNCOzRCQURsQyxhQUFhLENBQUMsMkJBQTJCLENBQUM7Ozs7c0JBQ0MsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzQ0FBbkIsU0FBUSxXQUFXOzs7O3NDQVFwRCxLQUFLLEVBQUU7d0NBR1AsS0FBSyxFQUFFO3lDQUlQLEtBQUssRUFBRTswQ0FHUCxLQUFLLEVBQUU7b0RBR1AsS0FBSyxFQUFFO21EQUdQLEtBQUssRUFBRTtZQWZSLG1MQUFTLFVBQVUsNkJBQVYsVUFBVSwrRkFBdUM7WUFHMUQseUxBQVMsWUFBWSw2QkFBWixZQUFZLG1HQUF5QztZQUk5RCw0TEFBUyxhQUFhLDZCQUFiLGFBQWEscUdBQXFCO1lBRzNDLCtMQUFTLGNBQWMsNkJBQWQsY0FBYyx1R0FBcUI7WUFHNUMsNk5BQVMsd0JBQXdCLDZCQUF4Qix3QkFBd0IsMkhBQTBEO1lBRzNGLDBOQUFTLHVCQUF1Qiw2QkFBdkIsdUJBQXVCLHlIQUEwRDtZQXpCNUYsNktBNGtDQzs7OztRQTNrQ0MsNENBQTRDO1FBQ3BDLE1BQU0sQ0FBVSxlQUFlLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxhQUFhO1FBQ3ZFLDBDQUEwQztRQUNsQyxNQUFNLENBQVUsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLENBQUMsV0FBVztRQUM5RCxnREFBZ0Q7UUFDeEMsTUFBTSxDQUFVLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQyxlQUFlLEdBQUcsc0JBQXNCLENBQUMsa0JBQWtCLENBQUM7UUFHN0gsaUZBQXNCLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFHLEVBQUM7UUFBMUQsSUFBUyxVQUFVLGdEQUF1QztRQUExRCxJQUFTLFVBQVUsc0RBQXVDO1FBRzFELDhJQUF3QixRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFHLEdBQUM7UUFBOUQsSUFBUyxZQUFZLGtEQUF5QztRQUE5RCxJQUFTLFlBQVksd0RBQXlDO1FBSTlELGtKQUF3QyxFQUFFLEdBQUM7UUFBM0MsSUFBUyxhQUFhLG1EQUFxQjtRQUEzQyxJQUFTLGFBQWEseURBQXFCO1FBRzNDLHFKQUF5QyxFQUFFLEdBQUM7UUFBNUMsSUFBUyxjQUFjLG9EQUFxQjtRQUE1QyxJQUFTLGNBQWMsMERBQXFCO1FBRzVDLDBLQUEwRCw4QkFBOEIsRUFBRSxHQUFDO1FBQTNGLElBQVMsd0JBQXdCLDhEQUEwRDtRQUEzRixJQUFTLHdCQUF3QixvRUFBMEQ7UUFHM0Ysa0xBQXlELDhCQUE4QixFQUFFLEdBQUM7UUFBMUYsSUFBUyx1QkFBdUIsNkRBQTBEO1FBQTFGLElBQVMsdUJBQXVCLG1FQUEwRDtRQUUxRix1RUFBdUU7UUFDL0QsZUFBZSx5RUFBRyxDQUFDLEVBQUM7UUFDcEIsb0JBQW9CLEdBQUcsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxtQ0FBbUM7UUFFckcsa0JBQWtCLEdBQVEsSUFBSSxDQUFDO1FBQy9CLHFCQUFxQixHQUFhLEVBQUUsQ0FBQyxDQUFDLHlDQUF5QztRQUMvRSxpQkFBaUIsR0FBd0IsSUFBSSxDQUFDO1FBQzlDLGdDQUFnQyxHQUFHLENBQUMsQ0FBQztRQUNyQyw4QkFBOEIsR0FBRyxDQUFDLENBQUM7UUFDbkMsNkJBQTZCLEdBQUcsQ0FBQyxDQUFDO1FBRTFDO1lBQ0UsS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBRUQsS0FBSyxDQUFDLGlCQUFpQjtZQUNyQixNQUFNLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBRWhDLHlEQUF5RDtZQUN6RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxFQUFFO2dCQUM1QixJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQ2hDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixLQUFLLFFBQVEsQ0FBQyxnQkFBZ0I7eUJBQzNCLGNBQWMsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDO3lCQUN0RCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDREQUE0RCxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUNyRixDQUFDLENBQUM7eUJBQ0QsT0FBTyxDQUFDLEdBQUcsRUFBRTt3QkFDWixJQUFJLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7NEJBQ3pFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO3dCQUNqQyxDQUFDO29CQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUM7WUFDSCxDQUFDLENBQUM7WUFDRixRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFFdEUsa0VBQWtFO1lBQ2xFLE1BQU0sUUFBUSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekYsQ0FBQztRQUVELEtBQUssQ0FBQyxvQkFBb0I7WUFDeEIsTUFBTSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM5QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUMzQixRQUFRLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7UUFFTyxxQkFBcUI7WUFDM0IsNENBQTRDO1lBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDNUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRTVDLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNoRixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFTyxxQkFBcUI7WUFDM0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQztZQUV2RSx3REFBd0Q7WUFDeEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDakUsTUFBTSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLENBQUM7Z0JBQ3BFLE9BQU87b0JBQ0wsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRTtvQkFDL0IsQ0FBQyxFQUFFLENBQUM7aUJBQ0wsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFTyxzQkFBc0I7WUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7WUFDMUQsTUFBTSx3QkFBd0IsR0FBRywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RSxJQUFJLHdCQUF3QixJQUFJLElBQUksQ0FBQyxnQ0FBZ0M7Z0JBQUUsT0FBTztZQUU5RSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtnQkFDMUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRTthQUNwRCxDQUFDLENBQUMsQ0FBQztZQUNKLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzNDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFO2dCQUMxQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFO2FBQ3JELENBQUMsQ0FBQyxDQUFDO1lBRUosSUFBSSxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FDbkMsSUFBSSxDQUFDLGFBQWEsRUFDbEIsV0FBVyxFQUNYLHNCQUFzQixDQUFDLGVBQWUsQ0FDdkMsQ0FBQztZQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsZ0JBQWdCLENBQ3BDLElBQUksQ0FBQyxjQUFjLEVBQ25CLFlBQVksRUFDWixzQkFBc0IsQ0FBQyxlQUFlLENBQ3ZDLENBQUM7WUFDRixJQUFJLENBQUMsZ0NBQWdDLEdBQUcsd0JBQXdCLENBQUM7UUFDbkUsQ0FBQztRQUVPLGlCQUFpQixDQUN2QixlQUFzRDtZQUV0RCxPQUFPO2dCQUNMLFVBQVUsRUFBRSxlQUFlLENBQUMsUUFBUTtnQkFDcEMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxRQUFRO2dCQUNsQyxRQUFRLEVBQUUsZUFBZSxDQUFDLFFBQVE7Z0JBQ2xDLFdBQVcsRUFBRSxlQUFlLENBQUMsUUFBUTtnQkFDckMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxXQUFXO2FBQ3JDLENBQUM7UUFDSixDQUFDO1FBRU8sZ0NBQWdDO1lBQ3RDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMseUJBQXlCLElBQUksRUFBRSxDQUFDO1lBQzFFLE1BQU0seUJBQXlCLEdBQUcsMkJBQTJCLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDL0UsSUFBSSx5QkFBeUIsR0FBRyxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLHdCQUF3QixHQUFHLDhCQUE4QixDQUM1RCxJQUFJLENBQUMsd0JBQXdCLEVBQzdCLGVBQWUsRUFDZixzQkFBc0IsQ0FBQyxlQUFlLENBQ3ZDLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLDhCQUE4QixHQUFHLHlCQUF5QixDQUFDO1lBQ2xFLENBQUM7WUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQztZQUN4RSxNQUFNLHdCQUF3QixHQUFHLDJCQUEyQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzdFLElBQUksd0JBQXdCLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyx1QkFBdUIsR0FBRyw4QkFBOEIsQ0FDM0QsSUFBSSxDQUFDLHVCQUF1QixFQUM1QixjQUFjLEVBQ2Qsc0JBQXNCLENBQUMsZUFBZSxDQUN2QyxDQUFDO2dCQUNGLElBQUksQ0FBQyw2QkFBNkIsR0FBRyx3QkFBd0IsQ0FBQztZQUNoRSxDQUFDO1FBQ0gsQ0FBQztRQUVPLCtCQUErQixDQUFDLFlBQW9CO1lBQzFELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsOEJBQThCLENBQzVELElBQUksQ0FBQyx3QkFBd0IsRUFDN0IsWUFBWSxFQUNaLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQzNELHNCQUFzQixDQUFDLGVBQWUsQ0FDdkMsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLDhCQUE4QixDQUMzRCxJQUFJLENBQUMsdUJBQXVCLEVBQzVCLFlBQVksRUFDWixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUMxRCxzQkFBc0IsQ0FBQyxlQUFlLENBQ3ZDLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVNLE1BQU0sQ0FBQyxNQUFNLEdBQUc7WUFDckIsVUFBVSxDQUFDLGFBQWE7WUFDeEIsV0FBVztZQUNYLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzQkFtQmUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2lCQUM3QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7c0JBSW5DLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztpQkFDN0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7O3NCQUluQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQzdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7OztzQkFJbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2lCQUM3QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7c0JBSW5DLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztpQkFDN0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7O3NCQUluQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQzdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7OztzQkFJbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2lCQUM3QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7c0JBSW5DLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztpQkFDN0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7O3NCQUluQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQzdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7OztzQkFVbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2lCQUM3QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7O3NCQWNuQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQzdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7OztzQkFJbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2lCQUM3QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7c0JBSW5DLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztpQkFDN0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7O3NCQVVuQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQzdDLFVBQVUs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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@serve.zone/dcrouter",
3
3
  "private": false,
4
- "version": "17.2.2",
4
+ "version": "17.2.4",
5
5
  "description": "A multifaceted routing service handling mail and SMS delivery functions.",
6
6
  "type": "module",
7
7
  "bin": {
@@ -30,7 +30,7 @@
30
30
  "@api.global/typedserver": "^8.6.4",
31
31
  "@api.global/typedsocket": "^5.0.0",
32
32
  "@apiclient.xyz/cloudflare": "^7.1.0",
33
- "@design.estate/dees-catalog": "^3.96.3",
33
+ "@design.estate/dees-catalog": "^3.97.1",
34
34
  "@design.estate/dees-element": "^2.4.0",
35
35
  "@idp.global/sdk": "^14.3.0",
36
36
  "@push.rocks/lik": "^6.4.1",
@@ -62,7 +62,7 @@
62
62
  "@push.rocks/smartunique": "^3.0.10",
63
63
  "@push.rocks/smartvpn": "1.21.0",
64
64
  "@push.rocks/taskbuffer": "^8.0.2",
65
- "@serve.zone/catalog": "^2.15.0",
65
+ "@serve.zone/catalog": "^2.16.0",
66
66
  "@serve.zone/interfaces": "^16.3.0",
67
67
  "@serve.zone/remoteingress": "^5.0.0",
68
68
  "@tsclass/tsclass": "^9.5.1",
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/dcrouter',
6
- version: '17.2.2',
6
+ version: '17.2.4',
7
7
  description: 'A multifaceted routing service handling mail and SMS delivery functions.'
8
8
  }
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/dcrouter',
6
- version: '17.2.2',
6
+ version: '17.2.4',
7
7
  description: 'A multifaceted routing service handling mail and SMS delivery functions.'
8
8
  }