diff --git a/.changeset/itchy-queens-cough.md b/.changeset/itchy-queens-cough.md new file mode 100644 index 00000000000..5ae1be47305 --- /dev/null +++ b/.changeset/itchy-queens-cough.md @@ -0,0 +1,5 @@ +--- +'@clerk/nextjs': patch +--- + +Import fs methods with nodeFsOrThrow rather than direct import. diff --git a/packages/nextjs/src/server/keyless-telemetry.ts b/packages/nextjs/src/server/keyless-telemetry.ts index 223b0b8c931..f015fe9d236 100644 --- a/packages/nextjs/src/server/keyless-telemetry.ts +++ b/packages/nextjs/src/server/keyless-telemetry.ts @@ -1,9 +1,9 @@ import type { TelemetryEventRaw } from '@clerk/types'; -import { promises as fs } from 'fs'; import { dirname, join } from 'path'; import { canUseKeyless } from '../utils/feature-flags'; import { createClerkClientWithOptions } from './createClerkClient'; +import { nodeFsOrThrow } from './fs/utils'; const EVENT_KEYLESS_ENV_DRIFT_DETECTED = 'KEYLESS_ENV_DRIFT_DETECTED'; const EVENT_SAMPLING_RATE = 1; // 100% sampling rate @@ -43,18 +43,23 @@ function getTelemetryFlagFilePath(): string { */ async function tryMarkTelemetryEventAsFired(): Promise { try { - const flagFilePath = getTelemetryFlagFilePath(); - const flagDirectory = dirname(flagFilePath); + if (canUseKeyless) { + const { mkdir, writeFile } = nodeFsOrThrow(); + const flagFilePath = getTelemetryFlagFilePath(); + const flagDirectory = dirname(flagFilePath); - // Ensure the directory exists before attempting to write the file - await fs.mkdir(flagDirectory, { recursive: true }); + // Ensure the directory exists before attempting to write the file + await mkdir(flagDirectory, { recursive: true }); - const flagData = { - firedAt: new Date().toISOString(), - event: EVENT_KEYLESS_ENV_DRIFT_DETECTED, - }; - await fs.writeFile(flagFilePath, JSON.stringify(flagData, null, 2), { flag: 'wx' }); - return true; + const flagData = { + firedAt: new Date().toISOString(), + event: EVENT_KEYLESS_ENV_DRIFT_DETECTED, + }; + await writeFile(flagFilePath, JSON.stringify(flagData, null, 2), { flag: 'wx' }); + return true; + } else { + return false; + } } catch (error: unknown) { if ((error as { code?: string })?.code === 'EEXIST') { return false;