Skip to content

Commit b7f866f

Browse files
committed
Moved private_logger contents into logger.
1 parent 1c8cc90 commit b7f866f

File tree

6 files changed

+31
-38
lines changed

6 files changed

+31
-38
lines changed

src/logger/logger.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,3 +166,30 @@ export function serializeAxiosError(error: AxiosError): AxiosErrorResponse {
166166

167167
return serializedAxiosError;
168168
}
169+
170+
// Private symbol and token
171+
export function getInternalLogger(logger: Logger): Logger {
172+
return (logger as any)[INTERNAL_CHANNEL](verificationToken);
173+
}
174+
175+
// Factory function to create a user-safe logger that can never access verified channel
176+
export function createUserLogger(logger: Logger): Logger {
177+
// Create a new logger instance that is guaranteed to be unverified
178+
// This ensures user code can never access the verified channel
179+
const userLogger = Object.create(Logger.prototype);
180+
181+
// Copy all the necessary properties but ensure isVerifiedChannel is false
182+
Object.assign(userLogger, logger);
183+
userLogger.isVerifiedChannel = false;
184+
185+
// Remove the internal channel method to prevent access
186+
delete userLogger[INTERNAL_CHANNEL];
187+
188+
// Override the internal channel method to throw an error if accessed
189+
userLogger[INTERNAL_CHANNEL] = () => {
190+
throw new Error('Unauthorized access to internal channel');
191+
};
192+
193+
return userLogger;
194+
}
195+

src/logger/private_logger.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Logger } from './logger';
2-
import { getInternalLogger, createUserLogger, INTERNAL_CHANNEL, verificationToken } from './private_logger';
2+
import { getInternalLogger, createUserLogger, INTERNAL_CHANNEL, verificationToken } from './logger';
33
import { createEvent } from '../tests/test-helpers';
44
import { EventType } from '../types/extraction';
55
import { WorkerAdapterOptions } from '../types/workers';

src/logger/private_logger.ts

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/workers/create-worker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { isMainThread, Worker } from 'node:worker_threads';
22

33
import { Logger } from '../logger/logger';
44
import { WorkerData, WorkerEvent } from '../types/workers';
5-
import { createUserLogger, getInternalLogger } from '../logger/private_logger';
5+
import { createUserLogger, getInternalLogger } from '../logger/logger';
66

77
async function createWorker<ConnectorState>(
88
workerData: WorkerData<ConnectorState>

src/workers/process-task.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
WorkerMessageSubject,
88
} from '../types/workers';
99
import { WorkerAdapter } from './worker-adapter';
10-
import { createUserLogger } from '../logger/private_logger';
10+
import { createUserLogger } from '../logger/logger';
1111

1212
export function processTask<ConnectorState>({
1313
task,

src/workers/spawn.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import {
2424
} from '../common/constants';
2525
import { LogLevel } from '../logger/logger.interfaces';
2626
import { createWorker } from './create-worker';
27-
import { createUserLogger, getInternalLogger } from '../logger/private_logger';
27+
import { createUserLogger, getInternalLogger } from '../logger/logger';
2828

2929
function getWorkerPath({
3030
event,

0 commit comments

Comments
 (0)