@serve.zone/dcrouter 11.2.55 → 11.3.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/dist_serve/bundle.js +1 -1
- package/dist_ts/00_commitinfo_data.js +2 -2
- package/dist_ts/index.js +20 -2
- package/dist_ts_oci_container/index.d.ts +8 -0
- package/dist_ts_oci_container/index.js +89 -0
- package/dist_ts_oci_container/plugins.d.ts +3 -0
- package/dist_ts_oci_container/plugins.js +4 -0
- package/dist_ts_web/00_commitinfo_data.js +2 -2
- package/npmextra.json +8 -3
- package/package.json +4 -2
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/index.ts +22 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
package/dist_serve/bundle.js
CHANGED
|
@@ -42727,4 +42727,4 @@ ibantools/jsnext/ibantools.js:
|
|
|
42727
42727
|
* @preferred
|
|
42728
42728
|
*)
|
|
42729
42729
|
*/
|
|
42730
|
-
//# sourceMappingURL=bundle-
|
|
42730
|
+
//# sourceMappingURL=bundle-1773850961925.js.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@serve.zone/dcrouter',
|
|
6
|
-
version: '11.
|
|
6
|
+
version: '11.3.0',
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxzQkFBc0I7SUFDNUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLDBFQUEwRTtDQUN4RixDQUFBIn0=
|
package/dist_ts/index.js
CHANGED
|
@@ -2,10 +2,28 @@ export * from './00_commitinfo_data.js';
|
|
|
2
2
|
// Re-export smartmta (excluding commitinfo to avoid naming conflict)
|
|
3
3
|
export { UnifiedEmailServer } from '@push.rocks/smartmta';
|
|
4
4
|
// DcRouter
|
|
5
|
+
import { DcRouter } from './classes.dcrouter.js';
|
|
5
6
|
export * from './classes.dcrouter.js';
|
|
6
7
|
// RADIUS module
|
|
7
8
|
export * from './radius/index.js';
|
|
8
9
|
// Remote Ingress module
|
|
9
10
|
export * from './remoteingress/index.js';
|
|
10
|
-
export const runCli = async () => {
|
|
11
|
-
|
|
11
|
+
export const runCli = async () => {
|
|
12
|
+
let options = {};
|
|
13
|
+
if (process.env.DCROUTER_MODE === 'OCI_CONTAINER') {
|
|
14
|
+
const { getOciContainerConfig } = await import('../dist_ts_oci_container/index.js');
|
|
15
|
+
options = getOciContainerConfig();
|
|
16
|
+
console.log('[DCRouter] Starting in OCI Container mode...');
|
|
17
|
+
}
|
|
18
|
+
const dcRouter = new DcRouter(options);
|
|
19
|
+
await dcRouter.start();
|
|
20
|
+
console.log('[DCRouter] Running. Send SIGTERM or SIGINT to stop.');
|
|
21
|
+
const shutdown = async () => {
|
|
22
|
+
console.log('[DCRouter] Shutting down...');
|
|
23
|
+
await dcRouter.stop();
|
|
24
|
+
process.exit(0);
|
|
25
|
+
};
|
|
26
|
+
process.on('SIGINT', shutdown);
|
|
27
|
+
process.on('SIGTERM', shutdown);
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLHFFQUFxRTtBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcxRCxXQUFXO0FBQ1gsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsZ0JBQWdCO0FBQ2hCLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsd0JBQXdCO0FBQ3hCLGNBQWMsMEJBQTBCLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQy9CLElBQUksT0FBTyxHQUFxRCxFQUFFLENBQUM7SUFFbkUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsS0FBSyxlQUFlLEVBQUUsQ0FBQztRQUNsRCxNQUFNLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sR0FBRyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBRW5FLE1BQU0sUUFBUSxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUMzQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQUNGLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IDcRouterOptions } from '../dist_ts/classes.dcrouter.js';
|
|
2
|
+
/**
|
|
3
|
+
* Builds IDcRouterOptions from environment variables for OCI container mode.
|
|
4
|
+
*
|
|
5
|
+
* If DCROUTER_CONFIG_PATH is set and the file exists, it is loaded as a JSON base config.
|
|
6
|
+
* Individual env vars are then applied as overrides on top.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getOciContainerConfig(): IDcRouterOptions;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parses a comma-separated env var into a string array.
|
|
4
|
+
* Returns undefined if the env var is not set or empty.
|
|
5
|
+
*/
|
|
6
|
+
function parseCommaSeparated(envVar) {
|
|
7
|
+
if (!envVar || envVar.trim() === '')
|
|
8
|
+
return undefined;
|
|
9
|
+
return envVar.split(',').map((s) => s.trim()).filter(Boolean);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Parses a comma-separated env var into a number array.
|
|
13
|
+
* Returns undefined if the env var is not set or empty.
|
|
14
|
+
*/
|
|
15
|
+
function parseCommaSeparatedNumbers(envVar) {
|
|
16
|
+
const parts = parseCommaSeparated(envVar);
|
|
17
|
+
if (!parts)
|
|
18
|
+
return undefined;
|
|
19
|
+
return parts.map((s) => parseInt(s, 10)).filter((n) => !isNaN(n));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Builds IDcRouterOptions from environment variables for OCI container mode.
|
|
23
|
+
*
|
|
24
|
+
* If DCROUTER_CONFIG_PATH is set and the file exists, it is loaded as a JSON base config.
|
|
25
|
+
* Individual env vars are then applied as overrides on top.
|
|
26
|
+
*/
|
|
27
|
+
export function getOciContainerConfig() {
|
|
28
|
+
let options = {};
|
|
29
|
+
// Load JSON config file if specified
|
|
30
|
+
const configPath = process.env.DCROUTER_CONFIG_PATH;
|
|
31
|
+
if (configPath && plugins.fs.existsSync(configPath)) {
|
|
32
|
+
const raw = plugins.fs.readFileSync(configPath, 'utf8');
|
|
33
|
+
options = JSON.parse(raw);
|
|
34
|
+
console.log(`[OCI Container] Loaded config from ${configPath}`);
|
|
35
|
+
}
|
|
36
|
+
// Apply env var overrides
|
|
37
|
+
if (process.env.DCROUTER_BASE_DIR) {
|
|
38
|
+
options.baseDir = process.env.DCROUTER_BASE_DIR;
|
|
39
|
+
}
|
|
40
|
+
// TLS config
|
|
41
|
+
const tlsEmail = process.env.DCROUTER_TLS_EMAIL;
|
|
42
|
+
const tlsDomain = process.env.DCROUTER_TLS_DOMAIN;
|
|
43
|
+
if (tlsEmail || tlsDomain) {
|
|
44
|
+
options.tls = {
|
|
45
|
+
...options.tls,
|
|
46
|
+
contactEmail: tlsEmail || options.tls?.contactEmail || '',
|
|
47
|
+
...(tlsDomain ? { domain: tlsDomain } : {}),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// Network config
|
|
51
|
+
if (process.env.DCROUTER_PUBLIC_IP) {
|
|
52
|
+
options.publicIp = process.env.DCROUTER_PUBLIC_IP;
|
|
53
|
+
}
|
|
54
|
+
const proxyIps = parseCommaSeparated(process.env.DCROUTER_PROXY_IPS);
|
|
55
|
+
if (proxyIps) {
|
|
56
|
+
options.proxyIps = proxyIps;
|
|
57
|
+
}
|
|
58
|
+
// DNS config
|
|
59
|
+
const nsDomains = parseCommaSeparated(process.env.DCROUTER_DNS_NS_DOMAINS);
|
|
60
|
+
if (nsDomains) {
|
|
61
|
+
options.dnsNsDomains = nsDomains;
|
|
62
|
+
}
|
|
63
|
+
const dnsScopes = parseCommaSeparated(process.env.DCROUTER_DNS_SCOPES);
|
|
64
|
+
if (dnsScopes) {
|
|
65
|
+
options.dnsScopes = dnsScopes;
|
|
66
|
+
}
|
|
67
|
+
// Email config
|
|
68
|
+
const emailHostname = process.env.DCROUTER_EMAIL_HOSTNAME;
|
|
69
|
+
const emailPorts = parseCommaSeparatedNumbers(process.env.DCROUTER_EMAIL_PORTS);
|
|
70
|
+
if (emailHostname || emailPorts) {
|
|
71
|
+
options.emailConfig = {
|
|
72
|
+
...options.emailConfig,
|
|
73
|
+
...(emailHostname ? { hostname: emailHostname } : {}),
|
|
74
|
+
...(emailPorts ? { ports: emailPorts } : {}),
|
|
75
|
+
domains: options.emailConfig?.domains || [],
|
|
76
|
+
routes: options.emailConfig?.routes || [],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// Cache config
|
|
80
|
+
const cacheEnabled = process.env.DCROUTER_CACHE_ENABLED;
|
|
81
|
+
if (cacheEnabled !== undefined) {
|
|
82
|
+
options.cacheConfig = {
|
|
83
|
+
...options.cacheConfig,
|
|
84
|
+
enabled: cacheEnabled === 'true',
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
return options;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19vY2lfY29udGFpbmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBR3hDOzs7R0FHRztBQUNILFNBQVMsbUJBQW1CLENBQUMsTUFBMEI7SUFDckQsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ3RELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUywwQkFBMEIsQ0FBQyxNQUEwQjtJQUM1RCxNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzdCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLElBQUksT0FBTyxHQUFxQixFQUFFLENBQUM7SUFFbkMscUNBQXFDO0lBQ3JDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUM7SUFDcEQsSUFBSSxVQUFVLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFV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
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
export { fs, path, };
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX29jaV9jb250YWluZXIvcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQ0wsRUFBRSxFQUNGLElBQUksR0FDTCxDQUFDIn0=
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@serve.zone/dcrouter',
|
|
6
|
-
version: '11.
|
|
6
|
+
version: '11.3.0',
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSwwRUFBMEU7Q0FDeEYsQ0FBQSJ9
|
package/npmextra.json
CHANGED
|
@@ -72,9 +72,14 @@
|
|
|
72
72
|
"dockerRegistryRepoMap": {
|
|
73
73
|
"registry.gitlab.com": "code.foss.global/serve.zone/dcrouter"
|
|
74
74
|
},
|
|
75
|
-
"dockerBuildargEnvMap": {
|
|
76
|
-
"NPMCI_TOKEN_NPM2": "NPMCI_TOKEN_NPM2"
|
|
77
|
-
},
|
|
78
75
|
"npmRegistryUrl": "verdaccio.lossless.digital"
|
|
76
|
+
},
|
|
77
|
+
"@git.zone/tsdocker": {
|
|
78
|
+
"registries": ["code.foss.global"],
|
|
79
|
+
"registryRepoMap": {
|
|
80
|
+
"code.foss.global": "serve.zone/dcrouter",
|
|
81
|
+
"dockerregistry.lossless.digital": "serve.zone/dcrouter"
|
|
82
|
+
},
|
|
83
|
+
"platforms": ["linux/amd64", "linux/arm64"]
|
|
79
84
|
}
|
|
80
85
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serve.zone/dcrouter",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "11.
|
|
4
|
+
"version": "11.3.0",
|
|
5
5
|
"description": "A multifaceted routing service handling mail and SMS delivery functions.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"exports": {
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
"start": "(node --max_old_space_size=250 ./cli.js)",
|
|
17
17
|
"startTs": "(node cli.ts.js)",
|
|
18
18
|
"build": "(tsbuild tsfolders --allowimplicitany && npm run bundle)",
|
|
19
|
+
"build:docker": "tsdocker build",
|
|
20
|
+
"release:docker": "tsdocker push",
|
|
19
21
|
"bundle": "(tsbundle)",
|
|
20
22
|
"watch": "tswatch"
|
|
21
23
|
},
|
|
@@ -59,7 +61,7 @@
|
|
|
59
61
|
"@push.rocks/smartunique": "^3.0.9",
|
|
60
62
|
"@serve.zone/catalog": "^2.7.0",
|
|
61
63
|
"@serve.zone/interfaces": "^5.3.0",
|
|
62
|
-
"@serve.zone/remoteingress": "^4.
|
|
64
|
+
"@serve.zone/remoteingress": "^4.9.0",
|
|
63
65
|
"@tsclass/tsclass": "^9.4.0",
|
|
64
66
|
"lru-cache": "^11.2.7",
|
|
65
67
|
"uuid": "^13.0.0"
|
package/ts/00_commitinfo_data.ts
CHANGED
package/ts/index.ts
CHANGED
|
@@ -5,6 +5,7 @@ export { UnifiedEmailServer } from '@push.rocks/smartmta';
|
|
|
5
5
|
export type { IUnifiedEmailServerOptions, IEmailRoute, IEmailDomainConfig } from '@push.rocks/smartmta';
|
|
6
6
|
|
|
7
7
|
// DcRouter
|
|
8
|
+
import { DcRouter } from './classes.dcrouter.js';
|
|
8
9
|
export * from './classes.dcrouter.js';
|
|
9
10
|
|
|
10
11
|
// RADIUS module
|
|
@@ -13,4 +14,24 @@ export * from './radius/index.js';
|
|
|
13
14
|
// Remote Ingress module
|
|
14
15
|
export * from './remoteingress/index.js';
|
|
15
16
|
|
|
16
|
-
export const runCli = async () => {
|
|
17
|
+
export const runCli = async () => {
|
|
18
|
+
let options: import('./classes.dcrouter.js').IDcRouterOptions = {};
|
|
19
|
+
|
|
20
|
+
if (process.env.DCROUTER_MODE === 'OCI_CONTAINER') {
|
|
21
|
+
const { getOciContainerConfig } = await import('../ts_oci_container/index.js');
|
|
22
|
+
options = getOciContainerConfig();
|
|
23
|
+
console.log('[DCRouter] Starting in OCI Container mode...');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const dcRouter = new DcRouter(options);
|
|
27
|
+
await dcRouter.start();
|
|
28
|
+
console.log('[DCRouter] Running. Send SIGTERM or SIGINT to stop.');
|
|
29
|
+
|
|
30
|
+
const shutdown = async () => {
|
|
31
|
+
console.log('[DCRouter] Shutting down...');
|
|
32
|
+
await dcRouter.stop();
|
|
33
|
+
process.exit(0);
|
|
34
|
+
};
|
|
35
|
+
process.on('SIGINT', shutdown);
|
|
36
|
+
process.on('SIGTERM', shutdown);
|
|
37
|
+
};
|