# openai-node: CLEAN

CWE-407 scan: 2026-03-30

Source: https://github.com/openai/openai-node (depth=1)

## Scan scope

- `src/` — 225 TypeScript files
- Focus: streaming assembly, tool dedup, retry logic, `.includes()`, `.indexOf()`, `.find()`
- Keywords: `.includes(`, `.indexOf(`, `.find(` in loops

## Findings

No CWE-407 defects found.

- `lib/ChatCompletionStream.ts:306` — `tools?.find()` is O(T) but called once per tool call
  completion (not per chunk), and T is bounded (typically < 10)
- `lib/parser.ts:239,263` — same pattern, tool lookup by name, bounded
- `lib/transform.ts:79` — `required.includes(key)` inside properties loop is O(P*R),
  but called once during schema preparation with small JSON schemas
- `internal/qs/utils.ts:228` — `refs.indexOf(val)` in BFS graph walk is O(N^2),
  but this `compact()` function is **dead code** (exported but never imported by any module)
- `_vendor/zod-to-json-schema/parsers/union.ts:47,78,83` — `.includes()` in reduce
  but operating on Zod primitive types (bounded to ~7 types)

## Verdict

CLEAN — proper data structure choices throughout. The only O(N^2) pattern is in
dead vendored code (qs compact function, never called).
