@robinmordasiewicz/f5xc-auth 1.0.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/LICENSE +21 -0
- package/README.md +153 -0
- package/dist/auth/credential-manager.d.ts +177 -0
- package/dist/auth/credential-manager.d.ts.map +1 -0
- package/dist/auth/credential-manager.js +417 -0
- package/dist/auth/credential-manager.js.map +1 -0
- package/dist/auth/http-client.d.ts +86 -0
- package/dist/auth/http-client.d.ts.map +1 -0
- package/dist/auth/http-client.js +255 -0
- package/dist/auth/http-client.js.map +1 -0
- package/dist/auth/index.d.ts +6 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +6 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/config/index.d.ts +5 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +5 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/paths.d.ts +36 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +68 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/profile/index.d.ts +6 -0
- package/dist/profile/index.d.ts.map +1 -0
- package/dist/profile/index.js +6 -0
- package/dist/profile/index.js.map +1 -0
- package/dist/profile/manager.d.ts +74 -0
- package/dist/profile/manager.d.ts.map +1 -0
- package/dist/profile/manager.js +326 -0
- package/dist/profile/manager.js.map +1 -0
- package/dist/profile/types.d.ts +53 -0
- package/dist/profile/types.d.ts.map +1 -0
- package/dist/profile/types.js +7 -0
- package/dist/profile/types.js.map +1 -0
- package/dist/utils/errors.d.ts +66 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +179 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logging.d.ts +75 -0
- package/dist/utils/logging.d.ts.map +1 -0
- package/dist/utils/logging.js +131 -0
- package/dist/utils/logging.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logging utilities for f5xc-auth
|
|
3
|
+
*
|
|
4
|
+
* Uses stderr for logging to avoid interfering with STDIO transport.
|
|
5
|
+
* Provides structured logging with levels and context.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Log levels
|
|
9
|
+
*/
|
|
10
|
+
export declare enum LogLevel {
|
|
11
|
+
DEBUG = "debug",
|
|
12
|
+
INFO = "info",
|
|
13
|
+
WARN = "warn",
|
|
14
|
+
ERROR = "error"
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Logger configuration
|
|
18
|
+
*/
|
|
19
|
+
export interface LoggerConfig {
|
|
20
|
+
/** Minimum log level to output */
|
|
21
|
+
level: LogLevel;
|
|
22
|
+
/** Include timestamp in log output */
|
|
23
|
+
timestamps: boolean;
|
|
24
|
+
/** Enable JSON format for structured logging */
|
|
25
|
+
json: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Logger class for structured logging to stderr
|
|
29
|
+
*/
|
|
30
|
+
declare class Logger {
|
|
31
|
+
private config;
|
|
32
|
+
constructor(config?: Partial<LoggerConfig>);
|
|
33
|
+
/**
|
|
34
|
+
* Check if a log level should be output
|
|
35
|
+
*/
|
|
36
|
+
private shouldLog;
|
|
37
|
+
/**
|
|
38
|
+
* Format and output a log entry
|
|
39
|
+
*/
|
|
40
|
+
private log;
|
|
41
|
+
/**
|
|
42
|
+
* Log a debug message
|
|
43
|
+
*/
|
|
44
|
+
debug(message: string, context?: Record<string, unknown>): void;
|
|
45
|
+
/**
|
|
46
|
+
* Log an info message
|
|
47
|
+
*/
|
|
48
|
+
info(message: string, context?: Record<string, unknown>): void;
|
|
49
|
+
/**
|
|
50
|
+
* Log a warning message
|
|
51
|
+
*/
|
|
52
|
+
warn(message: string, context?: Record<string, unknown>): void;
|
|
53
|
+
/**
|
|
54
|
+
* Log an error message
|
|
55
|
+
*/
|
|
56
|
+
error(message: string, context?: Record<string, unknown>): void;
|
|
57
|
+
/**
|
|
58
|
+
* Set the minimum log level
|
|
59
|
+
*/
|
|
60
|
+
setLevel(level: LogLevel): void;
|
|
61
|
+
/**
|
|
62
|
+
* Get current configuration
|
|
63
|
+
*/
|
|
64
|
+
getConfig(): Readonly<LoggerConfig>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Singleton logger instance
|
|
68
|
+
*/
|
|
69
|
+
export declare const logger: Logger;
|
|
70
|
+
/**
|
|
71
|
+
* Create a child logger with additional context
|
|
72
|
+
*/
|
|
73
|
+
export declare function createLogger(config?: Partial<LoggerConfig>): Logger;
|
|
74
|
+
export {};
|
|
75
|
+
//# sourceMappingURL=logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/utils/logging.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAYD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,KAAK,EAAE,QAAQ,CAAC;IAChB,sCAAsC;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,gDAAgD;IAChD,IAAI,EAAE,OAAO,CAAC;CACf;AAqBD;;GAEG;AACH,cAAM,MAAM;IACV,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAc9C;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,GAAG;IA+BX;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI/D;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI/D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI/B;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,YAAY,CAAC;CAGpC;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,QAAe,CAAC;AAEnC;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,CAEnE"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logging utilities for f5xc-auth
|
|
3
|
+
*
|
|
4
|
+
* Uses stderr for logging to avoid interfering with STDIO transport.
|
|
5
|
+
* Provides structured logging with levels and context.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Log levels
|
|
9
|
+
*/
|
|
10
|
+
export var LogLevel;
|
|
11
|
+
(function (LogLevel) {
|
|
12
|
+
LogLevel["DEBUG"] = "debug";
|
|
13
|
+
LogLevel["INFO"] = "info";
|
|
14
|
+
LogLevel["WARN"] = "warn";
|
|
15
|
+
LogLevel["ERROR"] = "error";
|
|
16
|
+
})(LogLevel || (LogLevel = {}));
|
|
17
|
+
/**
|
|
18
|
+
* Log level priority for filtering
|
|
19
|
+
*/
|
|
20
|
+
const LOG_LEVEL_PRIORITY = {
|
|
21
|
+
[LogLevel.DEBUG]: 0,
|
|
22
|
+
[LogLevel.INFO]: 1,
|
|
23
|
+
[LogLevel.WARN]: 2,
|
|
24
|
+
[LogLevel.ERROR]: 3,
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Default logger configuration
|
|
28
|
+
*/
|
|
29
|
+
const DEFAULT_CONFIG = {
|
|
30
|
+
level: LogLevel.INFO,
|
|
31
|
+
timestamps: true,
|
|
32
|
+
json: false,
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Logger class for structured logging to stderr
|
|
36
|
+
*/
|
|
37
|
+
class Logger {
|
|
38
|
+
config;
|
|
39
|
+
constructor(config = {}) {
|
|
40
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
41
|
+
// Check for environment variable overrides
|
|
42
|
+
const envLevel = process.env["LOG_LEVEL"]?.toLowerCase();
|
|
43
|
+
if (envLevel && Object.values(LogLevel).includes(envLevel)) {
|
|
44
|
+
this.config.level = envLevel;
|
|
45
|
+
}
|
|
46
|
+
if (process.env["LOG_JSON"] === "true") {
|
|
47
|
+
this.config.json = true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Check if a log level should be output
|
|
52
|
+
*/
|
|
53
|
+
shouldLog(level) {
|
|
54
|
+
return LOG_LEVEL_PRIORITY[level] >= LOG_LEVEL_PRIORITY[this.config.level];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Format and output a log entry
|
|
58
|
+
*/
|
|
59
|
+
log(entry) {
|
|
60
|
+
if (!this.shouldLog(entry.level)) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (this.config.timestamps) {
|
|
64
|
+
entry.timestamp = new Date().toISOString();
|
|
65
|
+
}
|
|
66
|
+
if (this.config.json) {
|
|
67
|
+
// Structured JSON output
|
|
68
|
+
process.stderr.write(JSON.stringify(entry) + "\n");
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
// Human-readable output
|
|
72
|
+
const parts = [];
|
|
73
|
+
if (entry.timestamp) {
|
|
74
|
+
parts.push(`[${entry.timestamp}]`);
|
|
75
|
+
}
|
|
76
|
+
parts.push(`[${entry.level.toUpperCase()}]`);
|
|
77
|
+
parts.push(entry.message);
|
|
78
|
+
if (entry.context && Object.keys(entry.context).length > 0) {
|
|
79
|
+
parts.push(JSON.stringify(entry.context));
|
|
80
|
+
}
|
|
81
|
+
process.stderr.write(parts.join(" ") + "\n");
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Log a debug message
|
|
86
|
+
*/
|
|
87
|
+
debug(message, context) {
|
|
88
|
+
this.log({ level: LogLevel.DEBUG, message, context });
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Log an info message
|
|
92
|
+
*/
|
|
93
|
+
info(message, context) {
|
|
94
|
+
this.log({ level: LogLevel.INFO, message, context });
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Log a warning message
|
|
98
|
+
*/
|
|
99
|
+
warn(message, context) {
|
|
100
|
+
this.log({ level: LogLevel.WARN, message, context });
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Log an error message
|
|
104
|
+
*/
|
|
105
|
+
error(message, context) {
|
|
106
|
+
this.log({ level: LogLevel.ERROR, message, context });
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Set the minimum log level
|
|
110
|
+
*/
|
|
111
|
+
setLevel(level) {
|
|
112
|
+
this.config.level = level;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get current configuration
|
|
116
|
+
*/
|
|
117
|
+
getConfig() {
|
|
118
|
+
return Object.freeze({ ...this.config });
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Singleton logger instance
|
|
123
|
+
*/
|
|
124
|
+
export const logger = new Logger();
|
|
125
|
+
/**
|
|
126
|
+
* Create a child logger with additional context
|
|
127
|
+
*/
|
|
128
|
+
export function createLogger(config) {
|
|
129
|
+
return new Logger(config);
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/utils/logging.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@robinmordasiewicz/f5xc-auth",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Shared authentication library for F5 Distributed Cloud MCP servers - XDG-compliant profile management",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"README.md",
|
|
11
|
+
"LICENSE"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsc",
|
|
15
|
+
"dev": "tsc --watch",
|
|
16
|
+
"test": "vitest run",
|
|
17
|
+
"test:watch": "vitest",
|
|
18
|
+
"clean": "rm -rf dist",
|
|
19
|
+
"prepublishOnly": "npm run build",
|
|
20
|
+
"typecheck": "tsc --noEmit"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"f5",
|
|
24
|
+
"f5xc",
|
|
25
|
+
"f5-distributed-cloud",
|
|
26
|
+
"authentication",
|
|
27
|
+
"xdg",
|
|
28
|
+
"profile-management",
|
|
29
|
+
"mcp",
|
|
30
|
+
"model-context-protocol"
|
|
31
|
+
],
|
|
32
|
+
"author": "Robin Mordasiewicz",
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "https://github.com/robinmordasiewicz/f5xc-auth.git"
|
|
37
|
+
},
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/robinmordasiewicz/f5xc-auth/issues"
|
|
40
|
+
},
|
|
41
|
+
"homepage": "https://github.com/robinmordasiewicz/f5xc-auth#readme",
|
|
42
|
+
"engines": {
|
|
43
|
+
"node": ">=18"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"axios": "^1.7.0",
|
|
47
|
+
"yaml": "^2.7.0"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@types/node": "^22.10.0",
|
|
51
|
+
"typescript": "^5.7.2",
|
|
52
|
+
"vitest": "^2.1.0"
|
|
53
|
+
}
|
|
54
|
+
}
|