@codemieai/code 0.0.13 → 0.0.15
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 +19 -17
- package/dist/agents/codemie-code/agent.d.ts.map +1 -1
- package/dist/agents/codemie-code/agent.js +4 -4
- package/dist/agents/codemie-code/agent.js.map +1 -1
- package/dist/agents/codemie-code/config.d.ts.map +1 -1
- package/dist/agents/codemie-code/config.js +2 -1
- package/dist/agents/codemie-code/config.js.map +1 -1
- package/dist/agents/codemie-code/filters.js +12 -12
- package/dist/agents/codemie-code/filters.js.map +1 -1
- package/dist/agents/codemie-code/index.d.ts.map +1 -1
- package/dist/agents/codemie-code/index.js +3 -1
- package/dist/agents/codemie-code/index.js.map +1 -1
- package/dist/agents/codemie-code/storage/todoStorage.js +1 -1
- package/dist/agents/codemie-code/storage/todoStorage.js.map +1 -1
- package/dist/agents/codemie-code/tools/planning.d.ts +1 -1
- package/dist/agents/codemie-code/ui.js +1 -1
- package/dist/agents/codemie-code/ui.js.map +1 -1
- package/dist/agents/core/AgentCLI.js +1 -1
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/types.d.ts +5 -0
- package/dist/agents/core/types.d.ts.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
- package/dist/analytics/aggregation/adapters/claude.adapter.d.ts.map +1 -1
- package/dist/analytics/aggregation/adapters/claude.adapter.js +75 -15
- package/dist/analytics/aggregation/adapters/claude.adapter.js.map +1 -1
- package/dist/analytics/aggregation/adapters/codex.adapter.d.ts.map +1 -1
- package/dist/analytics/aggregation/adapters/codex.adapter.js +20 -0
- package/dist/analytics/aggregation/adapters/codex.adapter.js.map +1 -1
- package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts +8 -0
- package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts.map +1 -1
- package/dist/analytics/aggregation/adapters/gemini.adapter.js +46 -1
- package/dist/analytics/aggregation/adapters/gemini.adapter.js.map +1 -1
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts +36 -0
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts.map +1 -1
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js +52 -0
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js.map +1 -1
- package/dist/analytics/aggregation/core/adapter.interface.d.ts +11 -0
- package/dist/analytics/aggregation/core/adapter.interface.d.ts.map +1 -1
- package/dist/analytics/aggregation/core/aggregation-utils.d.ts +20 -0
- package/dist/analytics/aggregation/core/aggregation-utils.d.ts.map +1 -1
- package/dist/analytics/aggregation/core/aggregation-utils.js +43 -0
- package/dist/analytics/aggregation/core/aggregation-utils.js.map +1 -1
- package/dist/analytics/aggregation/core/file-utils.d.ts +2 -1
- package/dist/analytics/aggregation/core/file-utils.d.ts.map +1 -1
- package/dist/analytics/aggregation/core/file-utils.js +20 -85
- package/dist/analytics/aggregation/core/file-utils.js.map +1 -1
- package/dist/analytics/aggregation/core/index.d.ts +3 -0
- package/dist/analytics/aggregation/core/index.d.ts.map +1 -1
- package/dist/analytics/aggregation/core/index.js +3 -0
- package/dist/analytics/aggregation/core/index.js.map +1 -1
- package/dist/analytics/aggregation/core/user-prompt-source.d.ts +81 -0
- package/dist/analytics/aggregation/core/user-prompt-source.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/user-prompt-source.js +69 -0
- package/dist/analytics/aggregation/core/user-prompt-source.js.map +1 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts +49 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/json.js +66 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/json.js.map +1 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts +43 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js +56 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js.map +1 -0
- package/dist/analytics/aggregation/types.d.ts +20 -0
- package/dist/analytics/aggregation/types.d.ts.map +1 -1
- package/dist/analytics/remote-submission/cursor-manager.d.ts +71 -0
- package/dist/analytics/remote-submission/cursor-manager.d.ts.map +1 -0
- package/dist/analytics/remote-submission/cursor-manager.js +204 -0
- package/dist/analytics/remote-submission/cursor-manager.js.map +1 -0
- package/dist/analytics/remote-submission/index.d.ts +12 -0
- package/dist/analytics/remote-submission/index.d.ts.map +1 -0
- package/dist/analytics/remote-submission/index.js +11 -0
- package/dist/analytics/remote-submission/index.js.map +1 -0
- package/dist/analytics/remote-submission/lock-manager.d.ts +71 -0
- package/dist/analytics/remote-submission/lock-manager.d.ts.map +1 -0
- package/dist/analytics/remote-submission/lock-manager.js +238 -0
- package/dist/analytics/remote-submission/lock-manager.js.map +1 -0
- package/dist/analytics/remote-submission/metric-transformer.d.ts +49 -0
- package/dist/analytics/remote-submission/metric-transformer.d.ts.map +1 -0
- package/dist/analytics/remote-submission/metric-transformer.js +175 -0
- package/dist/analytics/remote-submission/metric-transformer.js.map +1 -0
- package/dist/analytics/remote-submission/submitter.d.ts +78 -0
- package/dist/analytics/remote-submission/submitter.d.ts.map +1 -0
- package/dist/analytics/remote-submission/submitter.js +381 -0
- package/dist/analytics/remote-submission/submitter.js.map +1 -0
- package/dist/analytics/remote-submission/types.d.ts +169 -0
- package/dist/analytics/remote-submission/types.d.ts.map +1 -0
- package/dist/analytics/remote-submission/types.js +13 -0
- package/dist/analytics/remote-submission/types.js.map +1 -0
- package/dist/cli/commands/analytics.d.ts.map +1 -1
- package/dist/cli/commands/analytics.js +181 -12
- package/dist/cli/commands/analytics.js.map +1 -1
- package/dist/cli/commands/doctor/index.d.ts.map +1 -1
- package/dist/cli/commands/doctor/index.js +13 -1
- package/dist/cli/commands/doctor/index.js.map +1 -1
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts.map +1 -1
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js +81 -9
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js.map +1 -1
- package/dist/cli/commands/profile.d.ts.map +1 -1
- package/dist/cli/commands/profile.js +25 -57
- package/dist/cli/commands/profile.js.map +1 -1
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +10 -0
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/workflow.js +1 -1
- package/dist/cli/commands/workflow.js.map +1 -1
- package/dist/cli/index.js +0 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/utils/analytics-reader.js +1 -1
- package/dist/utils/analytics-reader.js.map +1 -1
- package/dist/utils/codemie-model-fetcher.d.ts.map +1 -1
- package/dist/utils/codemie-model-fetcher.js +197 -122
- package/dist/utils/codemie-model-fetcher.js.map +1 -1
- package/dist/utils/codemie-proxy.d.ts +41 -21
- package/dist/utils/codemie-proxy.d.ts.map +1 -1
- package/dist/utils/codemie-proxy.js +151 -86
- package/dist/utils/codemie-proxy.js.map +1 -1
- package/dist/utils/config-loader.d.ts +4 -0
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +42 -2
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/first-time.d.ts +0 -4
- package/dist/utils/first-time.d.ts.map +1 -1
- package/dist/utils/first-time.js +5 -117
- package/dist/utils/first-time.js.map +1 -1
- package/dist/utils/logger.d.ts +31 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +112 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/proxy/plugins/analytics.plugin.d.ts +19 -0
- package/dist/utils/proxy/plugins/analytics.plugin.d.ts.map +1 -0
- package/dist/utils/proxy/plugins/analytics.plugin.js +84 -0
- package/dist/utils/proxy/plugins/analytics.plugin.js.map +1 -0
- package/dist/utils/proxy/plugins/header-injection.plugin.d.ts +16 -0
- package/dist/utils/proxy/plugins/header-injection.plugin.d.ts.map +1 -0
- package/dist/utils/proxy/plugins/header-injection.plugin.js +48 -0
- package/dist/utils/proxy/plugins/header-injection.plugin.js.map +1 -0
- package/dist/utils/proxy/plugins/index.d.ts +18 -0
- package/dist/utils/proxy/plugins/index.d.ts.map +1 -0
- package/dist/utils/proxy/plugins/index.js +30 -0
- package/dist/utils/proxy/plugins/index.js.map +1 -0
- package/dist/utils/proxy/plugins/registry.d.ts +50 -0
- package/dist/utils/proxy/plugins/registry.d.ts.map +1 -0
- package/dist/utils/proxy/plugins/registry.js +124 -0
- package/dist/utils/proxy/plugins/registry.js.map +1 -0
- package/dist/utils/proxy/plugins/sso-auth.plugin.d.ts +16 -0
- package/dist/utils/proxy/plugins/sso-auth.plugin.d.ts.map +1 -0
- package/dist/utils/proxy/plugins/sso-auth.plugin.js +35 -0
- package/dist/utils/proxy/plugins/sso-auth.plugin.js.map +1 -0
- package/dist/utils/proxy/plugins/types.d.ts +79 -0
- package/dist/utils/proxy/plugins/types.d.ts.map +1 -0
- package/dist/utils/proxy/plugins/types.js +8 -0
- package/dist/utils/proxy/plugins/types.js.map +1 -0
- package/dist/utils/sanitize.d.ts +28 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sanitize.js +213 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/dist/workflows/installer.d.ts.map +1 -1
- package/dist/workflows/installer.js +3 -4
- package/dist/workflows/installer.js.map +1 -1
- package/package.json +1 -1
- package/dist/cli/commands/config.d.ts +0 -3
- package/dist/cli/commands/config.d.ts.map +0 -1
- package/dist/cli/commands/config.js +0 -198
- package/dist/cli/commands/config.js.map +0 -1
- package/dist/cli/commands/env.d.ts +0 -3
- package/dist/cli/commands/env.d.ts.map +0 -1
- package/dist/cli/commands/env.js +0 -19
- package/dist/cli/commands/env.js.map +0 -1
- package/dist/utils/proxy/interceptors.d.ts +0 -69
- package/dist/utils/proxy/interceptors.d.ts.map +0 -1
- package/dist/utils/proxy/interceptors.js +0 -308
- package/dist/utils/proxy/interceptors.js.map +0 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Proxy Plugins
|
|
3
|
+
*
|
|
4
|
+
* KISS: Single file to register all core plugins
|
|
5
|
+
* Extensibility: Easy to add new plugins
|
|
6
|
+
*/
|
|
7
|
+
import { getPluginRegistry } from './registry.js';
|
|
8
|
+
import { SSOAuthPlugin } from './sso-auth.plugin.js';
|
|
9
|
+
import { HeaderInjectionPlugin } from './header-injection.plugin.js';
|
|
10
|
+
import { AnalyticsPlugin } from './analytics.plugin.js';
|
|
11
|
+
/**
|
|
12
|
+
* Register core plugins
|
|
13
|
+
* Called at app startup
|
|
14
|
+
*/
|
|
15
|
+
export function registerCorePlugins() {
|
|
16
|
+
const registry = getPluginRegistry();
|
|
17
|
+
// Register in any order (priority determines execution order)
|
|
18
|
+
registry.register(new SSOAuthPlugin());
|
|
19
|
+
registry.register(new HeaderInjectionPlugin());
|
|
20
|
+
registry.register(new AnalyticsPlugin(), {
|
|
21
|
+
enabled: false // Disabled by default (enabled in proxy start() if analytics is enabled)
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
// Auto-register on import
|
|
25
|
+
registerCorePlugins();
|
|
26
|
+
// Re-export for convenience
|
|
27
|
+
export { SSOAuthPlugin, HeaderInjectionPlugin, AnalyticsPlugin };
|
|
28
|
+
export { getPluginRegistry, resetPluginRegistry } from './registry.js';
|
|
29
|
+
export * from './types.js';
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/proxy/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IAErC,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,EAAE,EAAE;QACvC,OAAO,EAAE,KAAK,CAAC,yEAAyE;KACzF,CAAC,CAAC;AACL,CAAC;AAED,0BAA0B;AAC1B,mBAAmB,EAAE,CAAC;AAEtB,4BAA4B;AAC5B,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACvE,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin Registry - Manages plugin lifecycle and ordering
|
|
3
|
+
*
|
|
4
|
+
* SOLID: Single responsibility = plugin management
|
|
5
|
+
* KISS: Simple registry with priority-based sorting
|
|
6
|
+
*/
|
|
7
|
+
import { ProxyPlugin, PluginConfig, PluginContext, ProxyInterceptor } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Plugin registry - manages plugin lifecycle and ordering
|
|
10
|
+
*/
|
|
11
|
+
export declare class PluginRegistry {
|
|
12
|
+
private plugins;
|
|
13
|
+
private configs;
|
|
14
|
+
private interceptors;
|
|
15
|
+
/**
|
|
16
|
+
* Register a plugin (typically called at app startup)
|
|
17
|
+
*/
|
|
18
|
+
register(plugin: ProxyPlugin, config?: Partial<PluginConfig>): void;
|
|
19
|
+
/**
|
|
20
|
+
* Initialize all enabled plugins with context
|
|
21
|
+
*/
|
|
22
|
+
initialize(context: PluginContext): Promise<ProxyInterceptor[]>;
|
|
23
|
+
/**
|
|
24
|
+
* Get enabled plugins sorted by priority (ascending)
|
|
25
|
+
*/
|
|
26
|
+
private getEnabledPluginsSorted;
|
|
27
|
+
/**
|
|
28
|
+
* Enable/disable plugin at runtime
|
|
29
|
+
*/
|
|
30
|
+
setEnabled(pluginId: string, enabled: boolean): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Get all registered plugins
|
|
33
|
+
*/
|
|
34
|
+
getAll(): ProxyPlugin[];
|
|
35
|
+
/**
|
|
36
|
+
* Get plugin configuration
|
|
37
|
+
*/
|
|
38
|
+
getConfig(pluginId: string): PluginConfig | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Update plugin configuration
|
|
41
|
+
*/
|
|
42
|
+
updateConfig(pluginId: string, updates: Partial<PluginConfig>): void;
|
|
43
|
+
/**
|
|
44
|
+
* Clear all plugins (for testing)
|
|
45
|
+
*/
|
|
46
|
+
clear(): void;
|
|
47
|
+
}
|
|
48
|
+
export declare function getPluginRegistry(): PluginRegistry;
|
|
49
|
+
export declare function resetPluginRegistry(): void;
|
|
50
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/utils/proxy/plugins/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGxF;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,YAAY,CAAuC;IAE3D;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAanE;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAoBrE;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnE;;OAEG;IACH,MAAM,IAAI,WAAW,EAAE;IAIvB;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAOpE;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd;AAKD,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin Registry - Manages plugin lifecycle and ordering
|
|
3
|
+
*
|
|
4
|
+
* SOLID: Single responsibility = plugin management
|
|
5
|
+
* KISS: Simple registry with priority-based sorting
|
|
6
|
+
*/
|
|
7
|
+
import { logger } from '../../logger.js';
|
|
8
|
+
/**
|
|
9
|
+
* Plugin registry - manages plugin lifecycle and ordering
|
|
10
|
+
*/
|
|
11
|
+
export class PluginRegistry {
|
|
12
|
+
plugins = new Map();
|
|
13
|
+
configs = new Map();
|
|
14
|
+
interceptors = new Map();
|
|
15
|
+
/**
|
|
16
|
+
* Register a plugin (typically called at app startup)
|
|
17
|
+
*/
|
|
18
|
+
register(plugin, config) {
|
|
19
|
+
this.plugins.set(plugin.id, plugin);
|
|
20
|
+
this.configs.set(plugin.id, {
|
|
21
|
+
id: plugin.id,
|
|
22
|
+
enabled: true, // Default enabled
|
|
23
|
+
priority: plugin.priority,
|
|
24
|
+
...config
|
|
25
|
+
});
|
|
26
|
+
logger.debug(`[PluginRegistry] Registered plugin: ${plugin.id}`);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Initialize all enabled plugins with context
|
|
30
|
+
*/
|
|
31
|
+
async initialize(context) {
|
|
32
|
+
const enabledPlugins = this.getEnabledPluginsSorted();
|
|
33
|
+
const interceptors = [];
|
|
34
|
+
for (const plugin of enabledPlugins) {
|
|
35
|
+
try {
|
|
36
|
+
const interceptor = await plugin.createInterceptor(context);
|
|
37
|
+
this.interceptors.set(plugin.id, interceptor);
|
|
38
|
+
interceptors.push(interceptor);
|
|
39
|
+
logger.debug(`[PluginRegistry] Initialized plugin: ${plugin.id} (priority: ${plugin.priority})`);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
logger.error(`[PluginRegistry] Failed to initialize plugin ${plugin.id}:`, error);
|
|
43
|
+
// Continue with other plugins (fail gracefully)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return interceptors;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get enabled plugins sorted by priority (ascending)
|
|
50
|
+
*/
|
|
51
|
+
getEnabledPluginsSorted() {
|
|
52
|
+
const enabled = [];
|
|
53
|
+
for (const [id, plugin] of this.plugins) {
|
|
54
|
+
const config = this.configs.get(id);
|
|
55
|
+
if (config?.enabled) {
|
|
56
|
+
const priority = config.priority ?? plugin.priority;
|
|
57
|
+
enabled.push({ plugin, priority });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Sort by priority (lower = earlier)
|
|
61
|
+
enabled.sort((a, b) => a.priority - b.priority);
|
|
62
|
+
return enabled.map(e => e.plugin);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Enable/disable plugin at runtime
|
|
66
|
+
*/
|
|
67
|
+
async setEnabled(pluginId, enabled) {
|
|
68
|
+
const config = this.configs.get(pluginId);
|
|
69
|
+
if (!config) {
|
|
70
|
+
throw new Error(`Plugin not found: ${pluginId}`);
|
|
71
|
+
}
|
|
72
|
+
config.enabled = enabled;
|
|
73
|
+
const plugin = this.plugins.get(pluginId);
|
|
74
|
+
if (plugin) {
|
|
75
|
+
if (enabled && plugin.onEnable) {
|
|
76
|
+
await plugin.onEnable();
|
|
77
|
+
}
|
|
78
|
+
else if (!enabled && plugin.onDisable) {
|
|
79
|
+
await plugin.onDisable();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get all registered plugins
|
|
85
|
+
*/
|
|
86
|
+
getAll() {
|
|
87
|
+
return Array.from(this.plugins.values());
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get plugin configuration
|
|
91
|
+
*/
|
|
92
|
+
getConfig(pluginId) {
|
|
93
|
+
return this.configs.get(pluginId);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Update plugin configuration
|
|
97
|
+
*/
|
|
98
|
+
updateConfig(pluginId, updates) {
|
|
99
|
+
const config = this.configs.get(pluginId);
|
|
100
|
+
if (config) {
|
|
101
|
+
Object.assign(config, updates);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Clear all plugins (for testing)
|
|
106
|
+
*/
|
|
107
|
+
clear() {
|
|
108
|
+
this.plugins.clear();
|
|
109
|
+
this.configs.clear();
|
|
110
|
+
this.interceptors.clear();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Singleton instance
|
|
114
|
+
let registryInstance = null;
|
|
115
|
+
export function getPluginRegistry() {
|
|
116
|
+
if (!registryInstance) {
|
|
117
|
+
registryInstance = new PluginRegistry();
|
|
118
|
+
}
|
|
119
|
+
return registryInstance;
|
|
120
|
+
}
|
|
121
|
+
export function resetPluginRegistry() {
|
|
122
|
+
registryInstance = null;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/utils/proxy/plugins/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSO Authentication Plugin
|
|
3
|
+
* Priority: 10 (must run first)
|
|
4
|
+
*
|
|
5
|
+
* SOLID: Single responsibility = inject SSO cookies
|
|
6
|
+
* KISS: Simple interceptor, one clear purpose
|
|
7
|
+
*/
|
|
8
|
+
import { ProxyPlugin, PluginContext, ProxyInterceptor } from './types.js';
|
|
9
|
+
export declare class SSOAuthPlugin implements ProxyPlugin {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
version: string;
|
|
13
|
+
priority: number;
|
|
14
|
+
createInterceptor(context: PluginContext): Promise<ProxyInterceptor>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=sso-auth.plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sso-auth.plugin.d.ts","sourceRoot":"","sources":["../../../../src/utils/proxy/plugins/sso-auth.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK1E,qBAAa,aAAc,YAAW,WAAW;IAC/C,EAAE,SAA6B;IAC/B,IAAI,SAAwB;IAC5B,OAAO,SAAW;IAClB,QAAQ,SAAM;IAER,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAO3E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSO Authentication Plugin
|
|
3
|
+
* Priority: 10 (must run first)
|
|
4
|
+
*
|
|
5
|
+
* SOLID: Single responsibility = inject SSO cookies
|
|
6
|
+
* KISS: Simple interceptor, one clear purpose
|
|
7
|
+
*/
|
|
8
|
+
import { logger } from '../../logger.js';
|
|
9
|
+
export class SSOAuthPlugin {
|
|
10
|
+
id = '@codemie/proxy-sso-auth';
|
|
11
|
+
name = 'SSO Authentication';
|
|
12
|
+
version = '1.0.0';
|
|
13
|
+
priority = 10;
|
|
14
|
+
async createInterceptor(context) {
|
|
15
|
+
if (!context.credentials) {
|
|
16
|
+
throw new Error('SSO credentials required for SSOAuthPlugin');
|
|
17
|
+
}
|
|
18
|
+
return new SSOAuthInterceptor(context.credentials);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
class SSOAuthInterceptor {
|
|
22
|
+
credentials;
|
|
23
|
+
name = 'sso-auth';
|
|
24
|
+
constructor(credentials) {
|
|
25
|
+
this.credentials = credentials;
|
|
26
|
+
}
|
|
27
|
+
async onRequest(context) {
|
|
28
|
+
const cookieHeader = Object.entries(this.credentials.cookies)
|
|
29
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
30
|
+
.join('; ');
|
|
31
|
+
context.headers['Cookie'] = cookieHeader;
|
|
32
|
+
logger.debug(`[${this.name}] Injected SSO cookies`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=sso-auth.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sso-auth.plugin.js","sourceRoot":"","sources":["../../../../src/utils/proxy/plugins/sso-auth.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,OAAO,aAAa;IACxB,EAAE,GAAG,yBAAyB,CAAC;IAC/B,IAAI,GAAG,oBAAoB,CAAC;IAC5B,OAAO,GAAG,OAAO,CAAC;IAClB,QAAQ,GAAG,EAAE,CAAC;IAEd,KAAK,CAAC,iBAAiB,CAAC,OAAsB;QAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;CACF;AAED,MAAM,kBAAkB;IAGF;IAFpB,IAAI,GAAG,UAAU,CAAC;IAElB,YAAoB,WAA2B;QAA3B,gBAAW,GAAX,WAAW,CAAgB;IAAG,CAAC;IAEnD,KAAK,CAAC,SAAS,CAAC,OAAqB;QACnC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;aAC1D,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;aACxC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;QAEzC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,wBAAwB,CAAC,CAAC;IACtD,CAAC;CACF"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin types for CodeMie Proxy
|
|
3
|
+
*
|
|
4
|
+
* SOLID: Interface Segregation - plugins only implement what they need
|
|
5
|
+
* KISS: Simple, clear interfaces
|
|
6
|
+
*/
|
|
7
|
+
import { IncomingHttpHeaders } from 'http';
|
|
8
|
+
import { ProxyConfig, ProxyContext } from '../types.js';
|
|
9
|
+
import { logger } from '../../logger.js';
|
|
10
|
+
import { Analytics } from '../../../analytics/index.js';
|
|
11
|
+
import { SSOCredentials } from '../../../types/sso.js';
|
|
12
|
+
/**
|
|
13
|
+
* Plugin metadata and lifecycle
|
|
14
|
+
*/
|
|
15
|
+
export interface ProxyPlugin {
|
|
16
|
+
/** Unique plugin identifier (e.g., '@codemie/proxy-analytics') */
|
|
17
|
+
id: string;
|
|
18
|
+
/** Display name */
|
|
19
|
+
name: string;
|
|
20
|
+
/** Plugin version */
|
|
21
|
+
version: string;
|
|
22
|
+
/** Execution priority (lower = earlier, 0-1000) */
|
|
23
|
+
priority: number;
|
|
24
|
+
/** Plugin dependencies (other plugin IDs) */
|
|
25
|
+
dependencies?: string[];
|
|
26
|
+
/** Create interceptor instance */
|
|
27
|
+
createInterceptor(context: PluginContext): ProxyInterceptor | Promise<ProxyInterceptor>;
|
|
28
|
+
/** Lifecycle hooks */
|
|
29
|
+
onInstall?(): Promise<void>;
|
|
30
|
+
onUninstall?(): Promise<void>;
|
|
31
|
+
onEnable?(): Promise<void>;
|
|
32
|
+
onDisable?(): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Context passed to plugins at creation
|
|
36
|
+
*/
|
|
37
|
+
export interface PluginContext {
|
|
38
|
+
config: ProxyConfig;
|
|
39
|
+
logger: typeof logger;
|
|
40
|
+
credentials?: SSOCredentials;
|
|
41
|
+
analytics?: Analytics;
|
|
42
|
+
[key: string]: unknown;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Plugin configuration
|
|
46
|
+
*/
|
|
47
|
+
export interface PluginConfig {
|
|
48
|
+
id: string;
|
|
49
|
+
enabled: boolean;
|
|
50
|
+
priority?: number;
|
|
51
|
+
options?: Record<string, unknown>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Enhanced interceptor with streaming support
|
|
55
|
+
*/
|
|
56
|
+
export interface ProxyInterceptor {
|
|
57
|
+
name: string;
|
|
58
|
+
/** Called before forwarding request */
|
|
59
|
+
onRequest?(context: ProxyContext): Promise<void>;
|
|
60
|
+
/** Called after response headers received (BEFORE body streaming) */
|
|
61
|
+
onResponseHeaders?(context: ProxyContext, headers: IncomingHttpHeaders): Promise<void>;
|
|
62
|
+
/** Called during streaming (optional, for transform/inspection) */
|
|
63
|
+
onResponseChunk?(context: ProxyContext, chunk: Buffer): Promise<Buffer | null>;
|
|
64
|
+
/** Called after response fully streamed */
|
|
65
|
+
onResponseComplete?(context: ProxyContext, metadata: ResponseMetadata): Promise<void>;
|
|
66
|
+
/** Called on any error */
|
|
67
|
+
onError?(context: ProxyContext, error: Error): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Response metadata (after streaming)
|
|
71
|
+
*/
|
|
72
|
+
export interface ResponseMetadata {
|
|
73
|
+
statusCode: number;
|
|
74
|
+
statusMessage: string;
|
|
75
|
+
headers: IncomingHttpHeaders;
|
|
76
|
+
bytesSent: number;
|
|
77
|
+
durationMs: number;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/utils/proxy/plugins/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IAEX,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAEhB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IAEjB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,kCAAkC;IAClC,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAExF,sBAAsB;IACtB,SAAS,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IAEb,uCAAuC;IACvC,SAAS,CAAC,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD,qEAAqE;IACrE,iBAAiB,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvF,mEAAmE;IACnE,eAAe,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE/E,2CAA2C;IAC3C,kBAAkB,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtF,0BAA0B;IAC1B,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/utils/proxy/plugins/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitization utilities for preventing sensitive data exposure in logs
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Sanitize a value for logging
|
|
6
|
+
*/
|
|
7
|
+
export declare function sanitizeValue(value: unknown, key?: string): unknown;
|
|
8
|
+
/**
|
|
9
|
+
* Sanitize an object for logging
|
|
10
|
+
*/
|
|
11
|
+
export declare function sanitizeObject(obj: Record<string, unknown>): Record<string, unknown>;
|
|
12
|
+
/**
|
|
13
|
+
* Sanitize cookie object - only show cookie names and count
|
|
14
|
+
*/
|
|
15
|
+
export declare function sanitizeCookies(cookies: Record<string, string> | undefined): string;
|
|
16
|
+
/**
|
|
17
|
+
* Sanitize authentication token - only show type and prefix
|
|
18
|
+
*/
|
|
19
|
+
export declare function sanitizeAuthToken(token: string | undefined): string;
|
|
20
|
+
/**
|
|
21
|
+
* Sanitize HTTP headers - special handling for cookie and set-cookie headers
|
|
22
|
+
*/
|
|
23
|
+
export declare function sanitizeHeaders(headers: Record<string, unknown> | undefined): Record<string, unknown>;
|
|
24
|
+
/**
|
|
25
|
+
* Sanitize log arguments before writing to console or file
|
|
26
|
+
*/
|
|
27
|
+
export declare function sanitizeLogArgs(...args: unknown[]): unknown[];
|
|
28
|
+
//# sourceMappingURL=sanitize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwDH;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAqCnE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQpF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,CAWnF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAenE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6DrG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAgB7D"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitization utilities for preventing sensitive data exposure in logs
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Patterns to identify sensitive keys in objects
|
|
6
|
+
*/
|
|
7
|
+
const SENSITIVE_KEY_PATTERNS = [
|
|
8
|
+
/api[_-]?key/i,
|
|
9
|
+
/auth[_-]?token/i,
|
|
10
|
+
/access[_-]?token/i,
|
|
11
|
+
/refresh[_-]?token/i,
|
|
12
|
+
/bearer[_-]?token/i,
|
|
13
|
+
/password/i,
|
|
14
|
+
/secret/i,
|
|
15
|
+
/credential/i,
|
|
16
|
+
/private[_-]?key/i,
|
|
17
|
+
/session[_-]?id/i,
|
|
18
|
+
/cookie/i,
|
|
19
|
+
/authorization/i
|
|
20
|
+
];
|
|
21
|
+
/**
|
|
22
|
+
* Patterns to identify sensitive values (even if key name is not sensitive)
|
|
23
|
+
*/
|
|
24
|
+
const SENSITIVE_VALUE_PATTERNS = [
|
|
25
|
+
/^sk-[a-zA-Z0-9]{20,}$/, // OpenAI API keys
|
|
26
|
+
/^sk-ant-[a-zA-Z0-9-_]{95,}$/, // Anthropic API keys
|
|
27
|
+
/^ya29\.[a-zA-Z0-9-_]{100,}$/, // Google OAuth tokens
|
|
28
|
+
/^[A-Za-z0-9-_]{20,}\.[A-Za-z0-9-_]{20,}\.[A-Za-z0-9-_]{20,}$/, // JWT tokens
|
|
29
|
+
/^Bearer\s+[A-Za-z0-9-_.+/=]{20,}$/i, // Bearer tokens
|
|
30
|
+
];
|
|
31
|
+
/**
|
|
32
|
+
* Check if a key name indicates sensitive data
|
|
33
|
+
*/
|
|
34
|
+
function isSensitiveKey(key) {
|
|
35
|
+
return SENSITIVE_KEY_PATTERNS.some(pattern => pattern.test(key));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Check if a value looks like sensitive data
|
|
39
|
+
*/
|
|
40
|
+
function isSensitiveValue(value) {
|
|
41
|
+
if (value.length < 20)
|
|
42
|
+
return false; // Short strings unlikely to be secrets
|
|
43
|
+
return SENSITIVE_VALUE_PATTERNS.some(pattern => pattern.test(value));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Mask a sensitive string, showing only first and last few characters
|
|
47
|
+
*/
|
|
48
|
+
function maskString(value, showChars = 4) {
|
|
49
|
+
if (value.length <= showChars * 2) {
|
|
50
|
+
return '[REDACTED]';
|
|
51
|
+
}
|
|
52
|
+
return `${value.slice(0, showChars)}...${value.slice(-showChars)} [REDACTED]`;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Sanitize a value for logging
|
|
56
|
+
*/
|
|
57
|
+
export function sanitizeValue(value, key) {
|
|
58
|
+
// Handle null/undefined
|
|
59
|
+
if (value === null || value === undefined) {
|
|
60
|
+
return value;
|
|
61
|
+
}
|
|
62
|
+
// Check if key name is sensitive
|
|
63
|
+
if (key && isSensitiveKey(key)) {
|
|
64
|
+
if (typeof value === 'string') {
|
|
65
|
+
return maskString(value);
|
|
66
|
+
}
|
|
67
|
+
if (typeof value === 'object') {
|
|
68
|
+
return '[REDACTED OBJECT]';
|
|
69
|
+
}
|
|
70
|
+
return '[REDACTED]';
|
|
71
|
+
}
|
|
72
|
+
// Handle strings
|
|
73
|
+
if (typeof value === 'string') {
|
|
74
|
+
if (isSensitiveValue(value)) {
|
|
75
|
+
return maskString(value);
|
|
76
|
+
}
|
|
77
|
+
return value;
|
|
78
|
+
}
|
|
79
|
+
// Handle arrays
|
|
80
|
+
if (Array.isArray(value)) {
|
|
81
|
+
return value.map(item => sanitizeValue(item));
|
|
82
|
+
}
|
|
83
|
+
// Handle objects
|
|
84
|
+
if (typeof value === 'object') {
|
|
85
|
+
return sanitizeObject(value);
|
|
86
|
+
}
|
|
87
|
+
// Handle primitives (numbers, booleans, etc.)
|
|
88
|
+
return value;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Sanitize an object for logging
|
|
92
|
+
*/
|
|
93
|
+
export function sanitizeObject(obj) {
|
|
94
|
+
const sanitized = {};
|
|
95
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
96
|
+
sanitized[key] = sanitizeValue(value, key);
|
|
97
|
+
}
|
|
98
|
+
return sanitized;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Sanitize cookie object - only show cookie names and count
|
|
102
|
+
*/
|
|
103
|
+
export function sanitizeCookies(cookies) {
|
|
104
|
+
if (!cookies || typeof cookies !== 'object') {
|
|
105
|
+
return 'none';
|
|
106
|
+
}
|
|
107
|
+
const names = Object.keys(cookies);
|
|
108
|
+
if (names.length === 0) {
|
|
109
|
+
return 'none';
|
|
110
|
+
}
|
|
111
|
+
return `${names.length} cookie(s): ${names.join(', ')} [values redacted]`;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Sanitize authentication token - only show type and prefix
|
|
115
|
+
*/
|
|
116
|
+
export function sanitizeAuthToken(token) {
|
|
117
|
+
if (!token) {
|
|
118
|
+
return 'none';
|
|
119
|
+
}
|
|
120
|
+
if (token === 'sso-authenticated') {
|
|
121
|
+
return 'sso-authenticated (placeholder)';
|
|
122
|
+
}
|
|
123
|
+
// Show only prefix for real tokens
|
|
124
|
+
if (token.length > 8) {
|
|
125
|
+
return `${token.slice(0, 8)}... [${token.length} chars, redacted]`;
|
|
126
|
+
}
|
|
127
|
+
return '[REDACTED]';
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Sanitize HTTP headers - special handling for cookie and set-cookie headers
|
|
131
|
+
*/
|
|
132
|
+
export function sanitizeHeaders(headers) {
|
|
133
|
+
if (!headers || typeof headers !== 'object') {
|
|
134
|
+
return {};
|
|
135
|
+
}
|
|
136
|
+
const sanitized = {};
|
|
137
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
138
|
+
const lowerKey = key.toLowerCase();
|
|
139
|
+
// Special handling for cookie headers
|
|
140
|
+
if (lowerKey === 'cookie') {
|
|
141
|
+
if (typeof value === 'string') {
|
|
142
|
+
// Parse cookie string and show names only
|
|
143
|
+
const cookieNames = value.split(';')
|
|
144
|
+
.map(c => c.trim().split('=')[0])
|
|
145
|
+
.filter(Boolean);
|
|
146
|
+
sanitized[key] = `${cookieNames.length} cookie(s): ${cookieNames.join(', ')} [values redacted]`;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
sanitized[key] = '[REDACTED]';
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Special handling for set-cookie headers (array of strings)
|
|
153
|
+
else if (lowerKey === 'set-cookie') {
|
|
154
|
+
if (Array.isArray(value)) {
|
|
155
|
+
const cookieNames = value.map(cookie => {
|
|
156
|
+
const name = cookie.split('=')[0].trim();
|
|
157
|
+
return name;
|
|
158
|
+
});
|
|
159
|
+
sanitized[key] = `Setting ${cookieNames.length} cookie(s): ${cookieNames.join(', ')} [values redacted]`;
|
|
160
|
+
}
|
|
161
|
+
else if (typeof value === 'string') {
|
|
162
|
+
const name = value.split('=')[0].trim();
|
|
163
|
+
sanitized[key] = `Setting cookie: ${name} [value redacted]`;
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
sanitized[key] = '[REDACTED]';
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// Special handling for authorization header
|
|
170
|
+
else if (lowerKey === 'authorization') {
|
|
171
|
+
if (typeof value === 'string') {
|
|
172
|
+
const parts = value.split(' ');
|
|
173
|
+
if (parts.length === 2) {
|
|
174
|
+
sanitized[key] = `${parts[0]} [token redacted]`;
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
sanitized[key] = '[REDACTED]';
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
sanitized[key] = '[REDACTED]';
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Other sensitive headers
|
|
185
|
+
else if (isSensitiveKey(key)) {
|
|
186
|
+
sanitized[key] = '[REDACTED]';
|
|
187
|
+
}
|
|
188
|
+
// Non-sensitive headers pass through
|
|
189
|
+
else {
|
|
190
|
+
sanitized[key] = value;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return sanitized;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Sanitize log arguments before writing to console or file
|
|
197
|
+
*/
|
|
198
|
+
export function sanitizeLogArgs(...args) {
|
|
199
|
+
return args.map(arg => {
|
|
200
|
+
if (typeof arg === 'string') {
|
|
201
|
+
// Check if string looks like sensitive data
|
|
202
|
+
if (isSensitiveValue(arg)) {
|
|
203
|
+
return maskString(arg);
|
|
204
|
+
}
|
|
205
|
+
return arg;
|
|
206
|
+
}
|
|
207
|
+
if (typeof arg === 'object' && arg !== null) {
|
|
208
|
+
return sanitizeValue(arg);
|
|
209
|
+
}
|
|
210
|
+
return arg;
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=sanitize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/workflows/installer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAIxF;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,WAAW,EACrB,OAAO,GAAE,sBAA2B,EACpC,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,CAAC,CAsC5D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,WAAW,EACrB,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAYf;
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/workflows/installer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAIxF;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,WAAW,EACrB,OAAO,GAAE,sBAA2B,EACpC,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,CAAC,CAsC5D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,WAAW,EACrB,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAYf;AAuCD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,GAAG;IAChE,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CA8BA"}
|