@dangahagan/weather-mcp 1.33.4 → 1.33.6
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/README.md +3 -3
- package/dist/index.js +28 -25
- package/dist/index.js.map +1 -1
- package/dist/server/shutdown.d.ts +46 -0
- package/dist/server/shutdown.d.ts.map +1 -0
- package/dist/server/shutdown.js +93 -0
- package/dist/server/shutdown.js.map +1 -0
- package/dist/services/blitzortung.d.ts +1 -0
- package/dist/services/blitzortung.d.ts.map +1 -1
- package/dist/services/blitzortung.js +38 -15
- package/dist/services/blitzortung.js.map +1 -1
- package/dist/utils/cache.d.ts.map +1 -1
- package/dist/utils/cache.js +2 -0
- package/dist/utils/cache.js.map +1 -1
- package/dist/utils/logger.d.ts +28 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +36 -0
- package/dist/utils/logger.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/@dangahagan/weather-mcp)
|
|
4
4
|
[](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.dgahagan/weather-mcp)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
|
-
[](./docs/testing/TEST_SUITE_README.md)
|
|
7
7
|
[](https://nodejs.org)
|
|
8
8
|
|
|
9
9
|
**Give your AI assistant real weather data — 17 tools, zero API keys, zero signup, zero cost.**
|
|
@@ -58,7 +58,7 @@ Choose this one if you want:
|
|
|
58
58
|
|
|
59
59
|
- **Genuinely free** — every data source is a free public API. No trial that expires, no credit card, no rate-limited "free tier" bait.
|
|
60
60
|
- **No API keys** — install to first forecast in under a minute. Nothing to configure, nothing to leak into a repo. ([Three optional keys](#optional-api-keys) add extras if you want them; the default configuration needs none.)
|
|
61
|
-
- **Fully open source** — MIT licensed, readable TypeScript, 3,
|
|
61
|
+
- **Fully open source** — MIT licensed, readable TypeScript, 3,826 tests. Audit it, fork it, fix it.
|
|
62
62
|
- **Privacy-respecting** — your queries go directly from your machine to public weather APIs. No middleman server, no telemetry.
|
|
63
63
|
- **Breadth** — 17 tools covering weather, safety hazards (lightning, floods, wildfires), marine conditions, air quality, and historical data back to 1940. Most weather MCPs stop at forecasts.
|
|
64
64
|
|
|
@@ -390,7 +390,7 @@ Being honest about what free public data can and can't do:
|
|
|
390
390
|
```bash
|
|
391
391
|
npm run build # Compile TypeScript
|
|
392
392
|
npm run dev # Run in development mode
|
|
393
|
-
npm test # Run all 3,
|
|
393
|
+
npm test # Run all 3,826 tests
|
|
394
394
|
npm run test:coverage # Coverage report
|
|
395
395
|
npm run audit # Dependency vulnerability scan
|
|
396
396
|
```
|
package/dist/index.js
CHANGED
|
@@ -12,8 +12,9 @@ import { CacheConfig } from './config/cache.js';
|
|
|
12
12
|
import { toolConfig } from './config/tools.js';
|
|
13
13
|
import { logger, LogLevel } from './utils/logger.js';
|
|
14
14
|
import { analytics } from './analytics/index.js';
|
|
15
|
-
import { createWeatherServer, SERVER_VERSION
|
|
15
|
+
import { createWeatherServer, SERVER_VERSION } from './server/weatherServer.js';
|
|
16
16
|
import { startLightningPrewarm } from './server/lightningPrewarm.js';
|
|
17
|
+
import { createShutdown, SHUTDOWN_DEADLINE_MS } from './server/shutdown.js';
|
|
17
18
|
/**
|
|
18
19
|
* Initialize the LocationStore for managing saved/favorite locations
|
|
19
20
|
* Stores locations in ~/.weather-mcp/locations.json
|
|
@@ -27,30 +28,32 @@ let lightningPrewarm;
|
|
|
27
28
|
*/
|
|
28
29
|
async function main() {
|
|
29
30
|
const transport = new StdioServerTransport();
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
|
|
31
|
+
// One bounded, run-once shutdown for every way the session can end (src/server/shutdown.ts).
|
|
32
|
+
// Each step reads its target at call time: `lightningPrewarm` is assigned after connect.
|
|
33
|
+
const shutdown = createShutdown({
|
|
34
|
+
deadlineMs: SHUTDOWN_DEADLINE_MS,
|
|
35
|
+
exit: (code) => process.exit(code),
|
|
36
|
+
steps: [
|
|
37
|
+
// No new pre-warm subscriptions during teardown.
|
|
38
|
+
{ name: 'lightning-prewarm', run: () => lightningPrewarm?.stop() },
|
|
39
|
+
// Garnish: the deadline truncates a stalled flush.
|
|
40
|
+
{ name: 'analytics', run: () => analytics.shutdown() },
|
|
41
|
+
// A no-op when no broker connection exists; never touches the lazy mqtt import.
|
|
42
|
+
{ name: 'mqtt', run: () => blitzortungService.disconnect() },
|
|
43
|
+
// Fires server.onclose synchronously; the memo returns the in-flight run.
|
|
44
|
+
{ name: 'server', run: () => server.close() }
|
|
45
|
+
]
|
|
46
|
+
});
|
|
47
|
+
// Registered before connect so an early EOF cannot be missed. An 'end' listener does not
|
|
48
|
+
// switch stdin to flowing mode; the transport's 'data' listener does, at connect.
|
|
49
|
+
// Stdin EOF is the MCP stdio client's primary shutdown signal; 'close' covers a pipe
|
|
50
|
+
// destroyed without a clean EOF.
|
|
51
|
+
process.stdin.once('end', () => { void shutdown('stdin end'); });
|
|
52
|
+
process.stdin.once('close', () => { void shutdown('stdin close'); });
|
|
53
|
+
// The SDK closes the transport itself when the read buffer fails; the server is then deaf.
|
|
54
|
+
server.onclose = () => { void shutdown('transport closed'); };
|
|
55
|
+
process.on('SIGTERM', () => { void shutdown('SIGTERM'); });
|
|
56
|
+
process.on('SIGINT', () => { void shutdown('SIGINT'); });
|
|
54
57
|
try {
|
|
55
58
|
await server.connect(transport);
|
|
56
59
|
logger.info('Weather MCP Server started', {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,oEAAoE;AACpE,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shutdown coordinator: one bounded, run-once teardown for every way the stdio session can end.
|
|
3
|
+
*
|
|
4
|
+
* `src/index.ts` wires stdin `end`/`close`, `server.onclose`, `SIGTERM` and `SIGINT` to the one
|
|
5
|
+
* trigger this module returns. The contracts:
|
|
6
|
+
*
|
|
7
|
+
* - **Run once.** The first trigger starts the run; every later trigger — including one fired from
|
|
8
|
+
* inside a step, as `server.close()` fires `server.onclose` — returns the same promise.
|
|
9
|
+
* - **Every step runs, in order.** A step that throws is logged and does not skip the steps after it.
|
|
10
|
+
* - **Bounded.** One deadline covers the whole run. When it fires, the pending step is named in a
|
|
11
|
+
* warning and the process exits 1. The deadline timer is deliberately **ref'd**: a pending
|
|
12
|
+
* promise holds no handle, so with an unref'd deadline a step that hangs without I/O would let
|
|
13
|
+
* the loop drain and exit 0 before the deadline fired. It exists only during teardown and is
|
|
14
|
+
* cleared when the walk completes, so it holds the process for at most `deadlineMs`.
|
|
15
|
+
* - **Exit 0** when every step completed, **exit 1** when a step threw or the deadline fired.
|
|
16
|
+
* `exit` is called at most once.
|
|
17
|
+
* - **Stderr only.** Everything goes through `logger`. After stdin EOF the client may already have
|
|
18
|
+
* closed stdout, and stdout is the protocol transport besides.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* The whole shutdown run's time budget.
|
|
22
|
+
*
|
|
23
|
+
* The binding constraint is the MCP SDK's own stdio client
|
|
24
|
+
* (`@modelcontextprotocol/sdk/dist/esm/client/stdio.js`, `close()`): it ends the server's stdin,
|
|
25
|
+
* waits 2000 ms, then sends `SIGTERM`. 1500 ms finishes inside that window with margin, and it is
|
|
26
|
+
* several times the transport's normal teardown. Deliberately a constant, not an env var — an env
|
|
27
|
+
* var is permanent and per-feature.
|
|
28
|
+
*/
|
|
29
|
+
export declare const SHUTDOWN_DEADLINE_MS = 1500;
|
|
30
|
+
export interface ShutdownStep {
|
|
31
|
+
name: string;
|
|
32
|
+
run: () => Promise<void> | void;
|
|
33
|
+
}
|
|
34
|
+
export interface ShutdownScheduler {
|
|
35
|
+
setTimeout(fn: () => void, ms: number): ReturnType<typeof setTimeout>;
|
|
36
|
+
clearTimeout(handle: ReturnType<typeof setTimeout>): void;
|
|
37
|
+
}
|
|
38
|
+
export interface ShutdownDeps {
|
|
39
|
+
steps: ReadonlyArray<ShutdownStep>;
|
|
40
|
+
deadlineMs: number;
|
|
41
|
+
/** `process.exit` in production. */
|
|
42
|
+
exit: (code: number) => void;
|
|
43
|
+
scheduler?: ShutdownScheduler;
|
|
44
|
+
}
|
|
45
|
+
export declare function createShutdown(deps: ShutdownDeps): (reason: string) => Promise<void>;
|
|
46
|
+
//# sourceMappingURL=shutdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../../src/server/shutdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACtE,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAOD,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CA8DpF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shutdown coordinator: one bounded, run-once teardown for every way the stdio session can end.
|
|
3
|
+
*
|
|
4
|
+
* `src/index.ts` wires stdin `end`/`close`, `server.onclose`, `SIGTERM` and `SIGINT` to the one
|
|
5
|
+
* trigger this module returns. The contracts:
|
|
6
|
+
*
|
|
7
|
+
* - **Run once.** The first trigger starts the run; every later trigger — including one fired from
|
|
8
|
+
* inside a step, as `server.close()` fires `server.onclose` — returns the same promise.
|
|
9
|
+
* - **Every step runs, in order.** A step that throws is logged and does not skip the steps after it.
|
|
10
|
+
* - **Bounded.** One deadline covers the whole run. When it fires, the pending step is named in a
|
|
11
|
+
* warning and the process exits 1. The deadline timer is deliberately **ref'd**: a pending
|
|
12
|
+
* promise holds no handle, so with an unref'd deadline a step that hangs without I/O would let
|
|
13
|
+
* the loop drain and exit 0 before the deadline fired. It exists only during teardown and is
|
|
14
|
+
* cleared when the walk completes, so it holds the process for at most `deadlineMs`.
|
|
15
|
+
* - **Exit 0** when every step completed, **exit 1** when a step threw or the deadline fired.
|
|
16
|
+
* `exit` is called at most once.
|
|
17
|
+
* - **Stderr only.** Everything goes through `logger`. After stdin EOF the client may already have
|
|
18
|
+
* closed stdout, and stdout is the protocol transport besides.
|
|
19
|
+
*/
|
|
20
|
+
import { logger } from '../utils/logger.js';
|
|
21
|
+
/**
|
|
22
|
+
* The whole shutdown run's time budget.
|
|
23
|
+
*
|
|
24
|
+
* The binding constraint is the MCP SDK's own stdio client
|
|
25
|
+
* (`@modelcontextprotocol/sdk/dist/esm/client/stdio.js`, `close()`): it ends the server's stdin,
|
|
26
|
+
* waits 2000 ms, then sends `SIGTERM`. 1500 ms finishes inside that window with margin, and it is
|
|
27
|
+
* several times the transport's normal teardown. Deliberately a constant, not an env var — an env
|
|
28
|
+
* var is permanent and per-feature.
|
|
29
|
+
*/
|
|
30
|
+
export const SHUTDOWN_DEADLINE_MS = 1500;
|
|
31
|
+
const defaultScheduler = {
|
|
32
|
+
setTimeout: (fn, ms) => setTimeout(fn, ms),
|
|
33
|
+
clearTimeout: (handle) => clearTimeout(handle)
|
|
34
|
+
};
|
|
35
|
+
export function createShutdown(deps) {
|
|
36
|
+
const scheduler = deps.scheduler ?? defaultScheduler;
|
|
37
|
+
let running;
|
|
38
|
+
let exited = false;
|
|
39
|
+
const finish = (code) => {
|
|
40
|
+
if (exited) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
exited = true;
|
|
44
|
+
deps.exit(code);
|
|
45
|
+
};
|
|
46
|
+
const run = async (reason) => {
|
|
47
|
+
logger.info('Shutting down', { reason });
|
|
48
|
+
let pending;
|
|
49
|
+
const deadline = scheduler.setTimeout(() => {
|
|
50
|
+
logger.warn('Shutdown deadline reached', { pendingStep: pending, deadlineMs: deps.deadlineMs });
|
|
51
|
+
finish(1);
|
|
52
|
+
}, deps.deadlineMs);
|
|
53
|
+
let failed = false;
|
|
54
|
+
for (const step of deps.steps) {
|
|
55
|
+
if (exited) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
pending = step.name;
|
|
59
|
+
try {
|
|
60
|
+
await step.run();
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
failed = true;
|
|
64
|
+
// Name and code only, never the message: the mqtt step's errors are mqtt's, and they
|
|
65
|
+
// carry the broker host and port (the rule at `blitzortung.ts`'s connect-error log).
|
|
66
|
+
const failure = error;
|
|
67
|
+
logger.error('Shutdown step failed', undefined, {
|
|
68
|
+
step: step.name,
|
|
69
|
+
name: failure?.name,
|
|
70
|
+
code: failure?.code
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
pending = undefined;
|
|
75
|
+
scheduler.clearTimeout(deadline);
|
|
76
|
+
if (exited) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
logger.info('Shutdown complete', { failed });
|
|
80
|
+
finish(failed ? 1 : 0);
|
|
81
|
+
};
|
|
82
|
+
return (reason) => {
|
|
83
|
+
if (running) {
|
|
84
|
+
return running;
|
|
85
|
+
}
|
|
86
|
+
// Deferred launch: `running = run(reason)` would evaluate `run` — synchronously, up to its
|
|
87
|
+
// first `await` — before the assignment, so a first step that re-enters the trigger would see
|
|
88
|
+
// an empty memo and start a second run. The microtask publishes the memo first.
|
|
89
|
+
running = Promise.resolve().then(() => run(reason));
|
|
90
|
+
return running;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=shutdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shutdown.js","sourceRoot":"","sources":["../../src/server/shutdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ export interface PrewarmOutcome {
|
|
|
29
29
|
export declare class BlitzortungService {
|
|
30
30
|
private client;
|
|
31
31
|
private readonly brokerUrl;
|
|
32
|
+
private readonly brokerDisplay;
|
|
32
33
|
private readonly topicPrefix;
|
|
33
34
|
private readonly reconnectPeriod;
|
|
34
35
|
private readonly connectTimeout;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blitzortung.d.ts","sourceRoot":"","sources":["../../src/services/blitzortung.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAA8B,MAAM,uBAAuB,CAAC;AAwB1G,qFAAqF;AACrF,eAAO,MAAM,8BAA8B,QAAiB,CAAC;AAE7D,gCAAgC;AAChC,eAAO,MAAM,8BAA8B,QAAiB,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,QAAqC,CAAC;AAE9E;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,kBAAkB,GAAG,sBAAsB,CAAC;CACnF;AAwID,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA2B;IAazC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2E;
|
|
1
|
+
{"version":3,"file":"blitzortung.d.ts","sourceRoot":"","sources":["../../src/services/blitzortung.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAA8B,MAAM,uBAAuB,CAAC;AAwB1G,qFAAqF;AACrF,eAAO,MAAM,8BAA8B,QAAiB,CAAC;AAE7D,gCAAgC;AAChC,eAAO,MAAM,8BAA8B,QAAiB,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,QAAqC,CAAC;AAE9E;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,kBAAkB,GAAG,sBAAsB,CAAC;CACnF;AAwID,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA2B;IAazC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2E;IAGrG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAGxC,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAGvC,OAAO,CAAC,mBAAmB,CAAkC;IAI7D,OAAO,CAAC,sBAAsB,CAAkC;IAChE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IACvC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAS;IAO5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0D;IAOvF,OAAO,CAAC,wBAAwB,CAAK;IAErC,cAKC;IAED;;OAEG;YACW,eAAe;IAmG7B;;OAEG;IACH,OAAO,CAAC,aAAa;IAwFrB;;OAEG;YACW,mBAAmB;IA4IjC;;OAEG;YACW,wBAAwB;IAgDtC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAqDhC;;OAEG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,MAAY,EACtB,iBAAiB,GAAE,MAAW,GAC7B,OAAO,CAAC,eAAe,EAAE,CAAC,CA0G5B;IAED;;;;;;;;;OASG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,MAAY,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAmCf;IAED;;;;;;;;;OASG;IACH,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,oBAAoB,GAAG,IAAI,CAEtE;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAmBnF;IAED;;OAEG;IACH,OAAO,CAAC,aAAa;IAuCrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoBrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA0BhC;CACF;AAGD,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @see https://github.com/mrk-its/homeassistant-blitzortung
|
|
7
7
|
* @see https://www.blitzortung.org/
|
|
8
8
|
*/
|
|
9
|
-
import { logger, redactCoordinatesForLogging } from '../utils/logger.js';
|
|
9
|
+
import { logger, redactCoordinatesForLogging, redactUrlForLogging } from '../utils/logger.js';
|
|
10
10
|
import { calculateGeohashSubscriptions } from '../utils/geohash.js';
|
|
11
11
|
import { MqttLoadFailedError, MqttUnavailableError } from '../errors/ApiError.js';
|
|
12
12
|
/** A subscription not accessed for longer than this is unsubscribed by the prune. */
|
|
@@ -138,6 +138,9 @@ export class BlitzortungService {
|
|
|
138
138
|
//
|
|
139
139
|
// Location privacy: Geohash subscriptions have ~4-40km precision (limited tracking risk)
|
|
140
140
|
brokerUrl = process.env.BLITZORTUNG_MQTT_URL || 'mqtt://blitzortung.ha.sed.pl:1883';
|
|
141
|
+
// The broker as it may appear in a log line: scheme, host and port. The URL itself can carry
|
|
142
|
+
// credentials in userinfo or the query, and mqtt forwards both to the broker.
|
|
143
|
+
brokerDisplay = redactUrlForLogging(this.brokerUrl);
|
|
141
144
|
topicPrefix = 'blitzortung/1.1';
|
|
142
145
|
reconnectPeriod = 5000; // 5 seconds
|
|
143
146
|
connectTimeout = 30000; // 30 seconds
|
|
@@ -210,13 +213,13 @@ export class BlitzortungService {
|
|
|
210
213
|
(!this.brokerUrl.startsWith('mqtts://') && !this.brokerUrl.startsWith('wss://'));
|
|
211
214
|
if (isPlaintext) {
|
|
212
215
|
logger.warn('SECURITY: Using plaintext MQTT connection (unencrypted)', {
|
|
213
|
-
broker: this.
|
|
216
|
+
broker: this.brokerDisplay,
|
|
214
217
|
securityEvent: true,
|
|
215
218
|
recommendation: 'Use BLITZORTUNG_MQTT_URL environment variable to configure TLS broker (mqtts:// or wss://)'
|
|
216
219
|
});
|
|
217
220
|
}
|
|
218
221
|
logger.info('Connecting to Blitzortung MQTT broker', {
|
|
219
|
-
broker: this.
|
|
222
|
+
broker: this.brokerDisplay,
|
|
220
223
|
encrypted: !isPlaintext
|
|
221
224
|
});
|
|
222
225
|
this.client = mqtt.connect(this.brokerUrl, {
|
|
@@ -239,7 +242,15 @@ export class BlitzortungService {
|
|
|
239
242
|
clearTimeout(timeoutId);
|
|
240
243
|
this.isConnecting = false;
|
|
241
244
|
this.connectionLossGeneration++;
|
|
242
|
-
|
|
245
|
+
// The `Error` slot is deliberately left empty, as at the three other failure sites below:
|
|
246
|
+
// the logger serialises message and stack, and the transport decides what goes in them —
|
|
247
|
+
// mqtt names the broker host and port, and ws puts the raw address in `Invalid URL: …`.
|
|
248
|
+
// Only the name and code are kept.
|
|
249
|
+
const failure = error;
|
|
250
|
+
logger.error('MQTT connection error', undefined, {
|
|
251
|
+
name: failure.name,
|
|
252
|
+
code: failure.code
|
|
253
|
+
});
|
|
243
254
|
reject(error);
|
|
244
255
|
});
|
|
245
256
|
this.client.on('close', () => {
|
|
@@ -519,6 +530,7 @@ export class BlitzortungService {
|
|
|
519
530
|
* Periodically prune stale subscriptions (not accessed in last hour)
|
|
520
531
|
*/
|
|
521
532
|
startSubscriptionPruning() {
|
|
533
|
+
// Housekeeping only — must not keep the process alive once nothing else is live.
|
|
522
534
|
setInterval(async () => {
|
|
523
535
|
if (!this.client || this.subscribedGeohashes.size === 0) {
|
|
524
536
|
return;
|
|
@@ -560,7 +572,7 @@ export class BlitzortungService {
|
|
|
560
572
|
remainingSubscriptions: this.subscribedGeohashes.size
|
|
561
573
|
});
|
|
562
574
|
}
|
|
563
|
-
}, SUBSCRIPTION_PRUNE_INTERVAL_MS);
|
|
575
|
+
}, SUBSCRIPTION_PRUNE_INTERVAL_MS).unref();
|
|
564
576
|
}
|
|
565
577
|
/**
|
|
566
578
|
* Get recent lightning strikes from buffer
|
|
@@ -791,9 +803,10 @@ export class BlitzortungService {
|
|
|
791
803
|
*/
|
|
792
804
|
startCleanupInterval() {
|
|
793
805
|
// Clean up every 5 minutes
|
|
806
|
+
// Housekeeping only — must not keep the process alive once nothing else is live.
|
|
794
807
|
setInterval(() => {
|
|
795
808
|
this.cleanupBuffer();
|
|
796
|
-
}, 5 * 60 * 1000);
|
|
809
|
+
}, 5 * 60 * 1000).unref();
|
|
797
810
|
}
|
|
798
811
|
/**
|
|
799
812
|
* Disconnect from MQTT broker
|
|
@@ -804,16 +817,26 @@ export class BlitzortungService {
|
|
|
804
817
|
logger.info('Disconnecting from Blitzortung MQTT broker', {
|
|
805
818
|
activeSubscriptions: this.subscribedGeohashes.size
|
|
806
819
|
});
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
this.
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
820
|
+
try {
|
|
821
|
+
await new Promise((resolve, reject) => {
|
|
822
|
+
this.client.end(false, {}, (error) => {
|
|
823
|
+
this.isConnected = false;
|
|
824
|
+
this.subscribedGeohashes.clear();
|
|
825
|
+
this.geohashFirstSubscribed.clear();
|
|
826
|
+
if (error) {
|
|
827
|
+
// No log here: mqtt's errors can carry the broker host. The caller (the shutdown
|
|
828
|
+
// coordinator) logs the failure by name and code only.
|
|
829
|
+
reject(error);
|
|
830
|
+
return;
|
|
831
|
+
}
|
|
832
|
+
logger.info('Disconnected from Blitzortung MQTT broker');
|
|
833
|
+
resolve();
|
|
834
|
+
});
|
|
814
835
|
});
|
|
815
|
-
}
|
|
816
|
-
|
|
836
|
+
}
|
|
837
|
+
finally {
|
|
838
|
+
this.client = null;
|
|
839
|
+
}
|
|
817
840
|
}
|
|
818
841
|
}
|
|
819
842
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blitzortung.js","sourceRoot":"","sources":["../../src/services/blitzortung.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blitzortung.js","sourceRoot":"","sources":["../../src/services/blitzortung.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,KAAK,CAAC,CAAC,GAAG,GAAG;IACxB,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAA+B;IAEtD,YAAY,OAAO,GAAE,MAAa,EAAE,iBAAiB,GAAE,MAAsB,
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,KAAK,CAAC,CAAC,GAAG,GAAG;IACxB,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAA+B;IAEtD,YAAY,OAAO,GAAE,MAAa,EAAE,iBAAiB,GAAE,MAAsB,EAgB5E;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAqB9B;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAgB9C;IAED;;OAEG;IACH,OAAO,CAAC,QAAQ;IAiBhB;;OAEG;IACH,KAAK,IAAI,IAAI,CAGZ;IAED;;;OAGG;IACH,OAAO,IAAI,IAAI,CAMd;IAED;;OAEG;IACH,QAAQ,IAAI,UAAU,CAQrB;IAED;;OAEG;IACH,OAAO,CAAC,cAAc;IActB;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,CAe1F;IAED;;OAEG;IACH,UAAU,IAAI,MAAM,CAInB;CACF"}
|
package/dist/utils/cache.js
CHANGED
|
@@ -25,6 +25,8 @@ export class Cache {
|
|
|
25
25
|
this.cleanupInterval = setInterval(() => {
|
|
26
26
|
this.cleanupExpired();
|
|
27
27
|
}, cleanupIntervalMs);
|
|
28
|
+
// Housekeeping only — must not keep the process alive once nothing else is live.
|
|
29
|
+
this.cleanupInterval.unref();
|
|
28
30
|
}
|
|
29
31
|
/**
|
|
30
32
|
* Get a value from the cache
|
package/dist/utils/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,MAAM,OAAO,KAAK;IACR,KAAK,GAA+B,IAAI,GAAG,EAAE,CAAC;IAC9C,KAAK,CAAa;IAClB,OAAO,CAAS;IAChB,eAAe,GAA0B,IAAI,CAAC;IAEtD,YAAY,OAAO,GAAW,IAAI,EAAE,iBAAiB,GAAW,CAAC,GAAG,EAAE,GAAG,IAAI;QAC3E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG;YACX,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,OAAO;SACjB,CAAC;QAEF,kEAAkE;QAClE,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,EAAE,iBAAiB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -84,4 +84,32 @@ export declare function redactCoordinatesForLogging(latitude: number, longitude:
|
|
|
84
84
|
lat: number;
|
|
85
85
|
lon: number;
|
|
86
86
|
};
|
|
87
|
+
/**
|
|
88
|
+
* Reduce a URL to its scheme, host and port for logging.
|
|
89
|
+
*
|
|
90
|
+
* Returns only `<protocol>//<host>` — never the username, password, path, query
|
|
91
|
+
* or fragment. Userinfo and the query string are both credential channels for a
|
|
92
|
+
* broker URL (e.g. `mqtt`'s client forwards both to the connection), so either
|
|
93
|
+
* one reaching a log line is a leak, not just the password.
|
|
94
|
+
*
|
|
95
|
+
* Deliberately **not** gated on `LOG_PII`: that flag exists to trade coordinate
|
|
96
|
+
* precision for debuggability, and credentials are not PII. Gating this on it
|
|
97
|
+
* would mean flipping `LOG_PII=true` to debug a location bug also puts a broker
|
|
98
|
+
* password on stderr.
|
|
99
|
+
*
|
|
100
|
+
* Never throws — this runs in a field initializer of a module-load singleton,
|
|
101
|
+
* where a throw over a malformed env var would take the whole server down. An
|
|
102
|
+
* unparseable input renders as the fixed string `<unparseable>`.
|
|
103
|
+
*
|
|
104
|
+
* Built from `protocol` and `host`, never `url.origin`: WHATWG gives `origin`
|
|
105
|
+
* as the literal string `"null"` for non-special schemes (`mqtt:`, `mqtts:`,
|
|
106
|
+
* `tcp:`), which is exactly what a broker URL uses. Note also that the WHATWG
|
|
107
|
+
* URL parser drops a *default* port only on special schemes (e.g.
|
|
108
|
+
* `wss://host:443` renders as `wss://host`), so the displayed endpoint is the
|
|
109
|
+
* URL standard's spelling, not necessarily the operator's original bytes.
|
|
110
|
+
*
|
|
111
|
+
* @param raw - The URL to redact (e.g. an MQTT broker URL from an env var)
|
|
112
|
+
* @returns `<protocol>//<host>`, or `<unparseable>` if `raw` is not a valid URL
|
|
113
|
+
*/
|
|
114
|
+
export declare function redactUrlForLogging(raw: string): string;
|
|
87
115
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAyBD,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,YAAY,KAAK,GAAE,QAAwB,EAAE,OAAO,CAAC,EAAE,MAAM,EAG5D;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7B;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAE9B;IAED;;;OAGG;IACH,QAAQ,IAAI,QAAQ,CAEnB;IAED;;OAEG;IACH,OAAO,CAAC,GAAG;IA8BX;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAE3D;IAED;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAE1D;IAED;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAE1D;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAE1E;IAED;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAMrF;IAED;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAQ3F;IAED;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAEhF;CACF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAkC/D;AAaD,eAAO,MAAM,MAAM,QAAwB,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAc7G"}
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAyBD,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,YAAY,KAAK,GAAE,QAAwB,EAAE,OAAO,CAAC,EAAE,MAAM,EAG5D;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7B;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAE9B;IAED;;;OAGG;IACH,QAAQ,IAAI,QAAQ,CAEnB;IAED;;OAEG;IACH,OAAO,CAAC,GAAG;IA8BX;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAE3D;IAED;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAE1D;IAED;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAE1D;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAE1E;IAED;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAMrF;IAED;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAQ3F;IAED;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAEhF;CACF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAkC/D;AAaD,eAAO,MAAM,MAAM,QAAwB,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAc7G;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOvD"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -201,4 +201,40 @@ export function redactCoordinatesForLogging(latitude, longitude) {
|
|
|
201
201
|
lon: Math.round(longitude * 100) / 100
|
|
202
202
|
};
|
|
203
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Reduce a URL to its scheme, host and port for logging.
|
|
206
|
+
*
|
|
207
|
+
* Returns only `<protocol>//<host>` — never the username, password, path, query
|
|
208
|
+
* or fragment. Userinfo and the query string are both credential channels for a
|
|
209
|
+
* broker URL (e.g. `mqtt`'s client forwards both to the connection), so either
|
|
210
|
+
* one reaching a log line is a leak, not just the password.
|
|
211
|
+
*
|
|
212
|
+
* Deliberately **not** gated on `LOG_PII`: that flag exists to trade coordinate
|
|
213
|
+
* precision for debuggability, and credentials are not PII. Gating this on it
|
|
214
|
+
* would mean flipping `LOG_PII=true` to debug a location bug also puts a broker
|
|
215
|
+
* password on stderr.
|
|
216
|
+
*
|
|
217
|
+
* Never throws — this runs in a field initializer of a module-load singleton,
|
|
218
|
+
* where a throw over a malformed env var would take the whole server down. An
|
|
219
|
+
* unparseable input renders as the fixed string `<unparseable>`.
|
|
220
|
+
*
|
|
221
|
+
* Built from `protocol` and `host`, never `url.origin`: WHATWG gives `origin`
|
|
222
|
+
* as the literal string `"null"` for non-special schemes (`mqtt:`, `mqtts:`,
|
|
223
|
+
* `tcp:`), which is exactly what a broker URL uses. Note also that the WHATWG
|
|
224
|
+
* URL parser drops a *default* port only on special schemes (e.g.
|
|
225
|
+
* `wss://host:443` renders as `wss://host`), so the displayed endpoint is the
|
|
226
|
+
* URL standard's spelling, not necessarily the operator's original bytes.
|
|
227
|
+
*
|
|
228
|
+
* @param raw - The URL to redact (e.g. an MQTT broker URL from an env var)
|
|
229
|
+
* @returns `<protocol>//<host>`, or `<unparseable>` if `raw` is not a valid URL
|
|
230
|
+
*/
|
|
231
|
+
export function redactUrlForLogging(raw) {
|
|
232
|
+
try {
|
|
233
|
+
const url = new URL(raw);
|
|
234
|
+
return `${url.protocol}//${url.host}`;
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
return '<unparseable>';
|
|
238
|
+
}
|
|
239
|
+
}
|
|
204
240
|
//# sourceMappingURL=logger.js.map
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dangahagan/weather-mcp",
|
|
3
|
-
"version": "1.33.
|
|
3
|
+
"version": "1.33.6",
|
|
4
4
|
"description": "MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Built entirely on free public APIs (NOAA, Open-Meteo, USGS, NIFC).",
|
|
5
5
|
"mcpName": "io.github.dgahagan/weather-mcp",
|
|
6
6
|
"main": "dist/index.js",
|