opencode-agent[bot] před 3 měsíci
rodič
revize
b616543ac2

+ 3 - 3
packages/http-recorder/README.md

@@ -172,9 +172,9 @@ const audit = Effect.gen(function* () {
   const cassettes = yield* HttpRecorder.Cassette.Service
   const entries = yield* cassettes.list()
   const issues = yield* Effect.forEach(entries, (entry) =>
-    cassettes.read(entry.name).pipe(
-      Effect.map((interactions) => ({ name: entry.name, findings: HttpRecorder.secretFindings(interactions) })),
-    ),
+    cassettes
+      .read(entry.name)
+      .pipe(Effect.map((interactions) => ({ name: entry.name, findings: HttpRecorder.secretFindings(interactions) }))),
   )
   return issues.filter((i) => i.findings.length > 0)
 })

+ 7 - 6
packages/http-recorder/src/cassette.ts

@@ -20,11 +20,7 @@ export interface AppendResult {
 
 export interface Interface {
   readonly read: (name: string) => Effect.Effect<ReadonlyArray<Interaction>, CassetteNotFoundError>
-  readonly append: (
-    name: string,
-    interaction: Interaction,
-    metadata?: CassetteMetadata,
-  ) => Effect.Effect<AppendResult>
+  readonly append: (name: string, interaction: Interaction, metadata?: CassetteMetadata) => Effect.Effect<AppendResult>
   readonly exists: (name: string) => Effect.Effect<boolean>
   readonly list: () => Effect.Effect<ReadonlyArray<string>>
 }
@@ -112,7 +108,12 @@ export const fileSystem = (
             Effect.map((files) =>
               files
                 .filter((file) => file.endsWith(".json"))
-                .map((file) => path.relative(directory, file).replace(/\\/g, "/").replace(/\.json$/, ""))
+                .map((file) =>
+                  path
+                    .relative(directory, file)
+                    .replace(/\\/g, "/")
+                    .replace(/\.json$/, ""),
+                )
                 .toSorted((a, b) => a.localeCompare(b)),
             ),
           ),

+ 7 - 7
packages/http-recorder/src/recorder.ts

@@ -34,13 +34,13 @@ export const appendOrFail = (
   interaction: Interaction,
   metadata: CassetteMetadata | undefined,
 ): Effect.Effect<void, UnsafeCassetteError> =>
-  cassette.append(name, interaction, metadata).pipe(
-    Effect.flatMap(({ findings }) =>
-      findings.length === 0
-        ? Effect.void
-        : Effect.fail(new UnsafeCassetteError({ cassetteName: name, findings })),
-    ),
-  )
+  cassette
+    .append(name, interaction, metadata)
+    .pipe(
+      Effect.flatMap(({ findings }) =>
+        findings.length === 0 ? Effect.void : Effect.fail(new UnsafeCassetteError({ cassetteName: name, findings })),
+      ),
+    )
 
 export interface ReplayState<T> {
   readonly load: Effect.Effect<ReadonlyArray<T>, CassetteNotFoundError>

+ 0 - 1
packages/http-recorder/src/redaction.ts

@@ -110,4 +110,3 @@ export const secretFindings = (value: unknown): ReadonlyArray<SecretFinding> =>
       .filter((item) => entry.value.includes(item.value))
       .map((item) => ({ path: entry.path, reason: `environment secret ${item.name}` })),
   ])
-

+ 1 - 4
packages/http-recorder/test/record-replay.test.ts

@@ -14,10 +14,7 @@ const seedCassetteDirectory = (directory: string, name: string, interactions: Re
     Effect.gen(function* () {
       const cassette = yield* HttpRecorder.Cassette.Service
       yield* Effect.forEach(interactions, (interaction) => cassette.append(name, interaction))
-    }).pipe(
-      Effect.provide(HttpRecorder.Cassette.fileSystem({ directory })),
-      Effect.provide(NodeFileSystem.layer),
-    ),
+    }).pipe(Effect.provide(HttpRecorder.Cassette.fileSystem({ directory })), Effect.provide(NodeFileSystem.layer)),
   )
 
 const post = (url: string, body: object) =>