@serve.zone/dcrouter 13.44.0 → 13.45.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/deno.json +1 -1
- package/dist_serve/bundle.js +1882 -1453
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.dcrouter.d.ts +5 -0
- package/dist_ts/classes.dcrouter.js +99 -2
- package/dist_ts/db/documents/classes.cached.email.d.ts +2 -5
- package/dist_ts/db/documents/classes.cached.email.js +4 -23
- package/dist_ts/db/documents/classes.cached.ip.reputation.d.ts +2 -5
- package/dist_ts/db/documents/classes.cached.ip.reputation.js +4 -23
- package/dist_ts/db/index.d.ts +0 -1
- package/dist_ts/db/index.js +1 -3
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/network/ops-view-routes.js +118 -142
- package/package.json +4 -4
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.dcrouter.ts +113 -1
- package/ts/db/documents/classes.cached.email.ts +3 -12
- package/ts/db/documents/classes.cached.ip.reputation.ts +3 -12
- package/ts/db/index.ts +0 -3
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/network/ops-view-routes.ts +124 -146
- package/dist_ts/db/classes.cached.document.d.ts +0 -76
- package/dist_ts/db/classes.cached.document.js +0 -100
- package/ts/db/classes.cached.document.ts +0 -111
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../plugins.js';
|
|
2
|
-
/**
|
|
3
|
-
* Base class for all cached documents with TTL support
|
|
4
|
-
*
|
|
5
|
-
* Extends smartdata's SmartDataDbDoc to add:
|
|
6
|
-
* - Automatic timestamps (createdAt, lastAccessedAt)
|
|
7
|
-
* - TTL/expiration support (expiresAt)
|
|
8
|
-
* - Helper methods for TTL management
|
|
9
|
-
*
|
|
10
|
-
* NOTE: Subclasses MUST add @svDb() decorators to createdAt, expiresAt, and lastAccessedAt
|
|
11
|
-
* since decorators on abstract classes don't propagate correctly.
|
|
12
|
-
*/
|
|
13
|
-
export declare abstract class CachedDocument<T extends CachedDocument<T>> extends plugins.smartdata.SmartDataDbDoc<T, T> {
|
|
14
|
-
/**
|
|
15
|
-
* Timestamp when the document was created
|
|
16
|
-
* NOTE: Subclasses must add @svDb() decorator
|
|
17
|
-
*/
|
|
18
|
-
createdAt: Date;
|
|
19
|
-
/**
|
|
20
|
-
* Timestamp when the document expires and should be cleaned up
|
|
21
|
-
* NOTE: Subclasses must add @svDb() decorator
|
|
22
|
-
*/
|
|
23
|
-
expiresAt: Date;
|
|
24
|
-
/**
|
|
25
|
-
* Timestamp of last access (for LRU-style eviction if needed)
|
|
26
|
-
* NOTE: Subclasses must add @svDb() decorator
|
|
27
|
-
*/
|
|
28
|
-
lastAccessedAt: Date;
|
|
29
|
-
/**
|
|
30
|
-
* Set the TTL (time to live) for this document
|
|
31
|
-
* @param ttlMs Time to live in milliseconds
|
|
32
|
-
*/
|
|
33
|
-
setTTL(ttlMs: number): void;
|
|
34
|
-
/**
|
|
35
|
-
* Set TTL using days
|
|
36
|
-
* @param days Number of days until expiration
|
|
37
|
-
*/
|
|
38
|
-
setTTLDays(days: number): void;
|
|
39
|
-
/**
|
|
40
|
-
* Set TTL using hours
|
|
41
|
-
* @param hours Number of hours until expiration
|
|
42
|
-
*/
|
|
43
|
-
setTTLHours(hours: number): void;
|
|
44
|
-
/**
|
|
45
|
-
* Check if this document has expired
|
|
46
|
-
*/
|
|
47
|
-
isExpired(): boolean;
|
|
48
|
-
/**
|
|
49
|
-
* Update the lastAccessedAt timestamp
|
|
50
|
-
*/
|
|
51
|
-
touch(): void;
|
|
52
|
-
/**
|
|
53
|
-
* Get remaining TTL in milliseconds
|
|
54
|
-
* Returns 0 if expired, -1 if no expiration set
|
|
55
|
-
*/
|
|
56
|
-
getRemainingTTL(): number;
|
|
57
|
-
/**
|
|
58
|
-
* Extend the TTL by the specified milliseconds from now
|
|
59
|
-
* @param ttlMs Additional time to live in milliseconds
|
|
60
|
-
*/
|
|
61
|
-
extendTTL(ttlMs: number): void;
|
|
62
|
-
/**
|
|
63
|
-
* Set the document to never expire (100 years in the future)
|
|
64
|
-
*/
|
|
65
|
-
setNeverExpires(): void;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* TTL constants in milliseconds
|
|
69
|
-
*/
|
|
70
|
-
export declare const TTL: {
|
|
71
|
-
readonly HOURS_1: number;
|
|
72
|
-
readonly HOURS_24: number;
|
|
73
|
-
readonly DAYS_7: number;
|
|
74
|
-
readonly DAYS_30: number;
|
|
75
|
-
readonly DAYS_90: number;
|
|
76
|
-
};
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../plugins.js';
|
|
2
|
-
/**
|
|
3
|
-
* Base class for all cached documents with TTL support
|
|
4
|
-
*
|
|
5
|
-
* Extends smartdata's SmartDataDbDoc to add:
|
|
6
|
-
* - Automatic timestamps (createdAt, lastAccessedAt)
|
|
7
|
-
* - TTL/expiration support (expiresAt)
|
|
8
|
-
* - Helper methods for TTL management
|
|
9
|
-
*
|
|
10
|
-
* NOTE: Subclasses MUST add @svDb() decorators to createdAt, expiresAt, and lastAccessedAt
|
|
11
|
-
* since decorators on abstract classes don't propagate correctly.
|
|
12
|
-
*/
|
|
13
|
-
export class CachedDocument extends plugins.smartdata.SmartDataDbDoc {
|
|
14
|
-
/**
|
|
15
|
-
* Timestamp when the document was created
|
|
16
|
-
* NOTE: Subclasses must add @svDb() decorator
|
|
17
|
-
*/
|
|
18
|
-
createdAt = new Date();
|
|
19
|
-
/**
|
|
20
|
-
* Timestamp when the document expires and should be cleaned up
|
|
21
|
-
* NOTE: Subclasses must add @svDb() decorator
|
|
22
|
-
*/
|
|
23
|
-
expiresAt;
|
|
24
|
-
/**
|
|
25
|
-
* Timestamp of last access (for LRU-style eviction if needed)
|
|
26
|
-
* NOTE: Subclasses must add @svDb() decorator
|
|
27
|
-
*/
|
|
28
|
-
lastAccessedAt = new Date();
|
|
29
|
-
/**
|
|
30
|
-
* Set the TTL (time to live) for this document
|
|
31
|
-
* @param ttlMs Time to live in milliseconds
|
|
32
|
-
*/
|
|
33
|
-
setTTL(ttlMs) {
|
|
34
|
-
this.expiresAt = new Date(Date.now() + ttlMs);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Set TTL using days
|
|
38
|
-
* @param days Number of days until expiration
|
|
39
|
-
*/
|
|
40
|
-
setTTLDays(days) {
|
|
41
|
-
this.setTTL(days * 24 * 60 * 60 * 1000);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Set TTL using hours
|
|
45
|
-
* @param hours Number of hours until expiration
|
|
46
|
-
*/
|
|
47
|
-
setTTLHours(hours) {
|
|
48
|
-
this.setTTL(hours * 60 * 60 * 1000);
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Check if this document has expired
|
|
52
|
-
*/
|
|
53
|
-
isExpired() {
|
|
54
|
-
if (!this.expiresAt) {
|
|
55
|
-
return false; // No expiration set
|
|
56
|
-
}
|
|
57
|
-
return new Date() > this.expiresAt;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Update the lastAccessedAt timestamp
|
|
61
|
-
*/
|
|
62
|
-
touch() {
|
|
63
|
-
this.lastAccessedAt = new Date();
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Get remaining TTL in milliseconds
|
|
67
|
-
* Returns 0 if expired, -1 if no expiration set
|
|
68
|
-
*/
|
|
69
|
-
getRemainingTTL() {
|
|
70
|
-
if (!this.expiresAt) {
|
|
71
|
-
return -1;
|
|
72
|
-
}
|
|
73
|
-
const remaining = this.expiresAt.getTime() - Date.now();
|
|
74
|
-
return remaining > 0 ? remaining : 0;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Extend the TTL by the specified milliseconds from now
|
|
78
|
-
* @param ttlMs Additional time to live in milliseconds
|
|
79
|
-
*/
|
|
80
|
-
extendTTL(ttlMs) {
|
|
81
|
-
this.expiresAt = new Date(Date.now() + ttlMs);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Set the document to never expire (100 years in the future)
|
|
85
|
-
*/
|
|
86
|
-
setNeverExpires() {
|
|
87
|
-
this.expiresAt = new Date(Date.now() + 100 * 365 * 24 * 60 * 60 * 1000);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* TTL constants in milliseconds
|
|
92
|
-
*/
|
|
93
|
-
export const TTL = {
|
|
94
|
-
HOURS_1: 1 * 60 * 60 * 1000,
|
|
95
|
-
HOURS_24: 24 * 60 * 60 * 1000,
|
|
96
|
-
DAYS_7: 7 * 24 * 60 * 60 * 1000,
|
|
97
|
-
DAYS_30: 30 * 24 * 60 * 60 * 1000,
|
|
98
|
-
DAYS_90: 90 * 24 * 60 * 60 * 1000,
|
|
99
|
-
};
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jYWNoZWQuZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9kYi9jbGFzc2VzLmNhY2hlZC5kb2N1bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUV6Qzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxPQUFnQixjQUE0QyxTQUFRLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBb0I7SUFDOUc7OztPQUdHO0lBQ0ksU0FBUyxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7SUFFcEM7OztPQUdHO0lBQ0ksU0FBUyxDQUFRO0lBRXhCOzs7T0FHRztJQUNJLGNBQWMsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO0lBRXpDOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVLENBQUMsSUFBWTtRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksV0FBVyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixPQUFPLEtBQUssQ0FBQyxDQUFDLG9CQUFvQjtRQUNwQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZUFBZTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDWixDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDeEQsT0FBTyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZUFBZTtRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzFFLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHO0lBQ2pCLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJO0lBQzNCLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJO0lBQzdCLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSTtJQUMvQixPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7SUFDakMsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJO0NBQ3pCLENBQUMifQ==
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../plugins.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Base class for all cached documents with TTL support
|
|
5
|
-
*
|
|
6
|
-
* Extends smartdata's SmartDataDbDoc to add:
|
|
7
|
-
* - Automatic timestamps (createdAt, lastAccessedAt)
|
|
8
|
-
* - TTL/expiration support (expiresAt)
|
|
9
|
-
* - Helper methods for TTL management
|
|
10
|
-
*
|
|
11
|
-
* NOTE: Subclasses MUST add @svDb() decorators to createdAt, expiresAt, and lastAccessedAt
|
|
12
|
-
* since decorators on abstract classes don't propagate correctly.
|
|
13
|
-
*/
|
|
14
|
-
export abstract class CachedDocument<T extends CachedDocument<T>> extends plugins.smartdata.SmartDataDbDoc<T, T> {
|
|
15
|
-
/**
|
|
16
|
-
* Timestamp when the document was created
|
|
17
|
-
* NOTE: Subclasses must add @svDb() decorator
|
|
18
|
-
*/
|
|
19
|
-
public createdAt: Date = new Date();
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Timestamp when the document expires and should be cleaned up
|
|
23
|
-
* NOTE: Subclasses must add @svDb() decorator
|
|
24
|
-
*/
|
|
25
|
-
public expiresAt!: Date;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Timestamp of last access (for LRU-style eviction if needed)
|
|
29
|
-
* NOTE: Subclasses must add @svDb() decorator
|
|
30
|
-
*/
|
|
31
|
-
public lastAccessedAt: Date = new Date();
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Set the TTL (time to live) for this document
|
|
35
|
-
* @param ttlMs Time to live in milliseconds
|
|
36
|
-
*/
|
|
37
|
-
public setTTL(ttlMs: number): void {
|
|
38
|
-
this.expiresAt = new Date(Date.now() + ttlMs);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Set TTL using days
|
|
43
|
-
* @param days Number of days until expiration
|
|
44
|
-
*/
|
|
45
|
-
public setTTLDays(days: number): void {
|
|
46
|
-
this.setTTL(days * 24 * 60 * 60 * 1000);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Set TTL using hours
|
|
51
|
-
* @param hours Number of hours until expiration
|
|
52
|
-
*/
|
|
53
|
-
public setTTLHours(hours: number): void {
|
|
54
|
-
this.setTTL(hours * 60 * 60 * 1000);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Check if this document has expired
|
|
59
|
-
*/
|
|
60
|
-
public isExpired(): boolean {
|
|
61
|
-
if (!this.expiresAt) {
|
|
62
|
-
return false; // No expiration set
|
|
63
|
-
}
|
|
64
|
-
return new Date() > this.expiresAt;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Update the lastAccessedAt timestamp
|
|
69
|
-
*/
|
|
70
|
-
public touch(): void {
|
|
71
|
-
this.lastAccessedAt = new Date();
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Get remaining TTL in milliseconds
|
|
76
|
-
* Returns 0 if expired, -1 if no expiration set
|
|
77
|
-
*/
|
|
78
|
-
public getRemainingTTL(): number {
|
|
79
|
-
if (!this.expiresAt) {
|
|
80
|
-
return -1;
|
|
81
|
-
}
|
|
82
|
-
const remaining = this.expiresAt.getTime() - Date.now();
|
|
83
|
-
return remaining > 0 ? remaining : 0;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Extend the TTL by the specified milliseconds from now
|
|
88
|
-
* @param ttlMs Additional time to live in milliseconds
|
|
89
|
-
*/
|
|
90
|
-
public extendTTL(ttlMs: number): void {
|
|
91
|
-
this.expiresAt = new Date(Date.now() + ttlMs);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Set the document to never expire (100 years in the future)
|
|
96
|
-
*/
|
|
97
|
-
public setNeverExpires(): void {
|
|
98
|
-
this.expiresAt = new Date(Date.now() + 100 * 365 * 24 * 60 * 60 * 1000);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* TTL constants in milliseconds
|
|
104
|
-
*/
|
|
105
|
-
export const TTL = {
|
|
106
|
-
HOURS_1: 1 * 60 * 60 * 1000,
|
|
107
|
-
HOURS_24: 24 * 60 * 60 * 1000,
|
|
108
|
-
DAYS_7: 7 * 24 * 60 * 60 * 1000,
|
|
109
|
-
DAYS_30: 30 * 24 * 60 * 60 * 1000,
|
|
110
|
-
DAYS_90: 90 * 24 * 60 * 60 * 1000,
|
|
111
|
-
} as const;
|