@typeslayer/analyze-trace 0.1.12 → 0.1.13
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/dist/index.js +1037 -115
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/tsup.config.ts +4 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/analyze-trace.ts","../src/constants.ts","../src/depth-limits.ts","../src/get-duplicate-node-modules.ts","../src/get-hotspots.ts","../src/node-module-paths.ts","../src/spans.ts","../src/utils.ts"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport { readFile, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport {\n TRACE_JSON_FILENAME,\n type TraceJsonSchema,\n TYPES_JSON_FILENAME,\n type TypesJsonSchema,\n traceJsonSchema,\n typesJsonSchema,\n} from \"@typeslayer/validate\";\nimport { ANALYZE_TRACE_FILENAME } from \"./constants\";\nimport { createDepthLimits } from \"./depth-limits\";\nimport { getDuplicateNodeModules } from \"./get-duplicate-node-modules\";\nimport { getHotspots } from \"./get-hotspots\";\nimport { getNodeModulePaths } from \"./node-module-paths\";\nimport { createSpans, createSpanTree } from \"./spans\";\nimport type { AnalyzeTraceResult } from \"./utils\";\nimport {\n type AbsolutePath,\n type AnalyzeTraceOptions,\n throwIfNotDirectory,\n} from \"./utils\";\n\nexport function validateOptions(options: AnalyzeTraceOptions) {\n if (options.forceMillis < options.skipMillis) {\n throw new Error(\"forceMillis cannot be less than skipMillis\");\n }\n}\n\nconst validateTraceDir = async (\n traceDir: AbsolutePath,\n): Promise<{\n traceFile: TraceJsonSchema;\n typesFile: TypesJsonSchema;\n}> => {\n await throwIfNotDirectory(traceDir);\n\n const typesFilePath = join(traceDir, TYPES_JSON_FILENAME);\n if (!existsSync(typesFilePath)) {\n throw new Error(\n `types.json must exist in ${traceDir}. first run --generateTrace`,\n );\n }\n const typesFileJson = JSON.parse(await readFile(typesFilePath, \"utf8\"));\n const typesFile = typesJsonSchema.parse(typesFileJson);\n\n const traceFilePath = join(traceDir, TRACE_JSON_FILENAME);\n if (!existsSync(traceFilePath)) {\n throw new Error(\n `trace.json must exist in ${traceDir}. first run --generateTrace`,\n );\n }\n const traceFileJson = JSON.parse(await readFile(traceFilePath, \"utf8\"));\n const traceFile = traceJsonSchema.parse(traceFileJson);\n\n return {\n traceFile,\n typesFile,\n };\n};\n\nexport const defaultOptions: AnalyzeTraceOptions = {\n forceMillis: 500,\n skipMillis: 100,\n expandTypes: true,\n minSpanParentPercentage: 0.6,\n importExpressionThreshold: 10,\n};\n\nexport const analyzeTrace = async ({\n traceDir,\n options = defaultOptions,\n}: {\n traceDir: AbsolutePath;\n options?: AnalyzeTraceOptions;\n}) => {\n validateOptions(options);\n const { traceFile, typesFile } = await validateTraceDir(traceDir);\n\n const nodeModulePaths = getNodeModulePaths(traceFile);\n\n const spans = createSpans(traceFile);\n const hotPathsTree = createSpanTree(spans, options);\n\n const result: AnalyzeTraceResult = {\n nodeModulePaths,\n unterminatedEvents: spans.unclosedStack.reverse(),\n hotSpots: await getHotspots(hotPathsTree, typesFile, options),\n duplicatePackages: await getDuplicateNodeModules(nodeModulePaths),\n depthLimits: createDepthLimits(traceFile),\n };\n await writeFile(\n join(traceDir, ANALYZE_TRACE_FILENAME),\n JSON.stringify(result, null, 2),\n );\n\n return result;\n};\n","// you may need to import this directly via ESM, otherwise Vite will complain about externalized fs dependencies\nexport const ANALYZE_TRACE_FILENAME = \"analyze-trace.json\";\n","import {\n depthLimits,\n type EventChecktypes__CheckCrossProductUnion_DepthLimit,\n type EventChecktypes__CheckTypeRelatedTo_DepthLimit,\n type EventChecktypes__GetTypeAtFlowNode_DepthLimit,\n type EventChecktypes__InstantiateType_DepthLimit,\n type EventChecktypes__RecursiveTypeRelatedTo_DepthLimit,\n type EventChecktypes__RemoveSubtypes_DepthLimit,\n type EventChecktypes__TraceUnionsOrIntersectionsTooLarge_DepthLimit,\n type EventChecktypes__TypeRelatedToDiscriminatedType_DepthLimit,\n event_checktypes__checkCrossProductUnion_DepthLimit,\n event_checktypes__checkTypeRelatedTo_DepthLimit,\n event_checktypes__getTypeAtFlowNode_DepthLimit,\n event_checktypes__instantiateType_DepthLimit,\n event_checktypes__recursiveTypeRelatedTo_DepthLimit,\n event_checktypes__removeSubtypes_DepthLimit,\n event_checktypes__traceUnionsOrIntersectionsTooLarge_DepthLimit,\n event_checktypes__typeRelatedToDiscriminatedType_DepthLimit,\n type TraceJsonSchema,\n} from \"@typeslayer/validate\";\n\nexport type DepthLimitsRecord = {\n checkCrossProductUnion_DepthLimit: EventChecktypes__CheckCrossProductUnion_DepthLimit[];\n checkTypeRelatedTo_DepthLimit: EventChecktypes__CheckTypeRelatedTo_DepthLimit[];\n getTypeAtFlowNode_DepthLimit: EventChecktypes__GetTypeAtFlowNode_DepthLimit[];\n instantiateType_DepthLimit: EventChecktypes__InstantiateType_DepthLimit[];\n recursiveTypeRelatedTo_DepthLimit: EventChecktypes__RecursiveTypeRelatedTo_DepthLimit[];\n removeSubtypes_DepthLimit: EventChecktypes__RemoveSubtypes_DepthLimit[];\n traceUnionsOrIntersectionsTooLarge_DepthLimit: EventChecktypes__TraceUnionsOrIntersectionsTooLarge_DepthLimit[];\n typeRelatedToDiscriminatedType_DepthLimit: EventChecktypes__TypeRelatedToDiscriminatedType_DepthLimit[];\n};\n\nexport const createDepthLimits = (traceFile: TraceJsonSchema) => {\n const limitNamesSet = new Set(\n depthLimits.map(d => d.shape.name),\n ) as unknown as Set<string>;\n const limitEvents = traceFile.filter(event => limitNamesSet.has(event.name));\n\n return {\n checkCrossProductUnion_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__checkCrossProductUnion_DepthLimit.safeParse(event)\n .success,\n ) as EventChecktypes__CheckCrossProductUnion_DepthLimit[]\n ).sort((a, b) => a.args.size - b.args.size),\n\n checkTypeRelatedTo_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__checkTypeRelatedTo_DepthLimit.safeParse(event)\n .success,\n ) as EventChecktypes__CheckTypeRelatedTo_DepthLimit[]\n ).sort((a, b) => a.args.depth - b.args.depth),\n\n getTypeAtFlowNode_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__getTypeAtFlowNode_DepthLimit.safeParse(event)\n .success,\n ) as EventChecktypes__GetTypeAtFlowNode_DepthLimit[]\n ).sort((a, b) => a.args.flowId - b.args.flowId),\n\n instantiateType_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__instantiateType_DepthLimit.safeParse(event).success,\n ) as EventChecktypes__InstantiateType_DepthLimit[]\n ).sort((a, b) => a.args.instantiationDepth - b.args.instantiationDepth),\n\n recursiveTypeRelatedTo_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__recursiveTypeRelatedTo_DepthLimit.safeParse(event)\n .success,\n ) as EventChecktypes__RecursiveTypeRelatedTo_DepthLimit[]\n ).sort((a, b) => a.args.depth - b.args.depth),\n\n removeSubtypes_DepthLimit: limitEvents.filter(\n event =>\n event_checktypes__removeSubtypes_DepthLimit.safeParse(event).success,\n ) as EventChecktypes__RemoveSubtypes_DepthLimit[],\n\n traceUnionsOrIntersectionsTooLarge_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__traceUnionsOrIntersectionsTooLarge_DepthLimit.safeParse(\n event,\n ).success,\n ) as EventChecktypes__TraceUnionsOrIntersectionsTooLarge_DepthLimit[]\n ).sort(\n (a, b) =>\n a.args.sourceSize * a.args.targetSize -\n b.args.sourceSize * b.args.targetSize,\n ),\n\n typeRelatedToDiscriminatedType_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__typeRelatedToDiscriminatedType_DepthLimit.safeParse(\n event,\n ).success,\n ) as EventChecktypes__TypeRelatedToDiscriminatedType_DepthLimit[]\n ).sort((a, b) => a.args.numCombinations - b.args.numCombinations),\n } satisfies DepthLimitsRecord;\n};\n","import { existsSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport type {\n DuplicatedPackage,\n DuplicatedPackageInstance,\n NodeModulePaths,\n} from \"./utils\";\n\nexport async function getPackageVersion(packagePath: string) {\n const packageJsonPath = join(packagePath, \"package.json\");\n console.log(\"packageJsonPath\", packageJsonPath);\n if (!existsSync(packageJsonPath)) {\n console.warn(\n `Package.json not found at ${packageJsonPath}. This may not be a node module.`,\n );\n return \"unknown\";\n }\n const jsonString = await readFile(packageJsonPath, \"utf-8\");\n const jsonObj = JSON.parse(jsonString);\n return jsonObj.version;\n}\n\nexport const getDuplicateNodeModules = async (\n nodeModulePaths: NodeModulePaths,\n) => {\n const duplicates: DuplicatedPackage[] = [];\n for (const [packageName, packagePaths] of Object.entries(nodeModulePaths)) {\n if (packagePaths.length < 2) {\n continue;\n }\n const instances: DuplicatedPackageInstance[] = [];\n for (const packagePath of packagePaths) {\n instances.push({\n path: packagePath,\n version: await getPackageVersion(packagePath),\n });\n }\n duplicates.push({\n name: packageName,\n instances,\n });\n }\n\n return duplicates;\n};\n","import { normalize } from \"node:path\";\nimport {\n createTypeRegistry,\n type ResolvedType,\n type TypeId,\n type TypeRegistry,\n type TypesJsonSchema,\n} from \"@typeslayer/validate\";\nimport type { AnalyzeTraceOptions, EventSpan, HotSpot, HotType } from \"./utils\";\n\nexport const getHotspots = async (\n hotPathsTree: EventSpan,\n typesFile: TypesJsonSchema,\n options: AnalyzeTraceOptions,\n): Promise<HotSpot[]> =>\n getHotspotsWorker({\n span: hotPathsTree,\n currentFile: undefined,\n typeRegistry: createTypeRegistry(typesFile),\n options,\n });\n\nasync function getHotspotsWorker({\n span,\n currentFile,\n typeRegistry,\n options,\n}: {\n span: EventSpan;\n currentFile: string | undefined;\n typeRegistry: TypeRegistry;\n options: AnalyzeTraceOptions;\n}): Promise<HotSpot[]> {\n if (span.event.cat === \"check\") {\n currentFile = span.event.args.path;\n }\n\n const children: HotSpot[] = [];\n if (span.children.length) {\n // Sort slow to fast\n const sortedChildren = span.children.sort(\n (a, b) => b.duration - a.duration,\n );\n for (const child of sortedChildren) {\n children.push(\n ...(await getHotspotsWorker({\n span: child,\n currentFile,\n typeRegistry,\n options,\n })),\n );\n }\n }\n\n if (span.event.name !== \"root\") {\n const hotFrame = await makeHotFrame({\n span,\n children,\n typeRegistry,\n });\n if (hotFrame) {\n return [hotFrame];\n }\n }\n\n return children;\n}\n\nconst notFound = {\n children: [],\n resolvedType: {\n id: -1,\n display: \"[Type Not Found]\",\n flags: [],\n },\n} satisfies HotType;\n\nfunction getHotType({\n id,\n typeRegistry,\n}: {\n id: number;\n typeRegistry: TypeRegistry;\n}): HotType {\n function worker(id: TypeId, ancestorIds: TypeId[]): HotType {\n if (id === -1) {\n return notFound;\n }\n\n const resolvedType = typeRegistry[id];\n\n if (!resolvedType) {\n throw new Error(`Type ${id} not found`);\n }\n\n const children: HotType[] = [];\n\n // If there's a cycle, suppress the children, but not the type itself\n if (ancestorIds.indexOf(id) < 0) {\n ancestorIds.push(id);\n\n const properties = Object.keys(resolvedType) as (keyof ResolvedType)[];\n for (const property of properties) {\n switch (property) {\n case \"aliasTypeArguments\":\n case \"intersectionTypes\":\n case \"typeArguments\":\n case \"unionTypes\": {\n const typeIds = resolvedType[property];\n if (!Array.isArray(typeIds)) {\n throw new Error(`Expected array for ${property}`);\n }\n for (const typeId of typeIds) {\n const child = worker(typeId, ancestorIds);\n if (child) {\n children.push(child);\n }\n }\n continue;\n }\n\n case \"aliasType\":\n case \"conditionalCheckType\":\n case \"conditionalExtendsType\":\n case \"conditionalFalseType\":\n case \"conditionalTrueType\":\n case \"constraintType\":\n case \"evolvingArrayElementType\":\n case \"evolvingArrayFinalType\":\n case \"indexedAccessIndexType\":\n case \"indexedAccessObjectType\":\n case \"instantiatedType\":\n case \"keyofType\":\n case \"reverseMappedConstraintType\":\n case \"reverseMappedMappedType\":\n case \"reverseMappedSourceType\":\n case \"substitutionBaseType\": {\n const typeId = resolvedType[property] as TypeId;\n const child = worker(typeId, ancestorIds);\n if (child) {\n children.push(child);\n }\n break;\n }\n\n case \"destructuringPattern\":\n case \"display\":\n case \"firstDeclaration\":\n case \"flags\":\n case \"id\":\n case \"intrinsicName\":\n case \"isTuple\":\n case \"recursionId\":\n case \"referenceLocation\":\n case \"symbolName\":\n break;\n\n default:\n property satisfies never;\n throw new Error(`Unexpected property ${property}`);\n }\n }\n ancestorIds.pop();\n }\n\n return {\n resolvedType,\n children,\n };\n }\n\n return worker(id, []);\n}\n\nasync function makeHotFrame({\n span,\n children,\n typeRegistry,\n}: {\n span: EventSpan;\n children: HotSpot[];\n typeRegistry: TypeRegistry;\n}): Promise<HotSpot | undefined> {\n const { event, duration } = span;\n\n const timeMs = Math.round(duration / 1000);\n switch (event.name) {\n // case \"findSourceFile\":\n // TODO (https://github.com/microsoft/typescript-analyze-trace/issues/2)\n\n case \"checkSourceFile\": {\n const filePath = event.args.path;\n const normalizedPath = normalize(filePath);\n return {\n description: `Check file ${normalizedPath}`,\n timeMs,\n path: normalizedPath,\n\n children,\n };\n }\n\n case \"structuredTypeRelatedTo\":\n return {\n description: `Compare types ${event.args.sourceId} and ${event.args.targetId}`,\n timeMs,\n children,\n types: [\n getHotType({\n id: event.args.sourceId,\n typeRegistry,\n }),\n getHotType({\n id: event.args.targetId,\n typeRegistry,\n }),\n ],\n };\n\n case \"getVariancesWorker\":\n return {\n description: `Determine variance of type ${event.args.id}`,\n timeMs,\n children,\n types: [getHotType({ id: event.args.id, typeRegistry })],\n };\n\n case \"checkExpression\":\n case \"checkVariableDeclaration\": {\n const filePath = event.args.path;\n const path = filePath ? { path: normalize(filePath) } : {};\n const frame: HotSpot = {\n description: event.name,\n timeMs,\n ...path,\n children: [],\n };\n return frame;\n }\n\n default:\n return undefined;\n }\n}\n","import {\n packageNameRegex,\n type TraceEvent,\n type TraceJsonSchema,\n} from \"@typeslayer/validate\";\nimport type { NodeModulePaths } from \"./utils\";\n\nexport function getNodeModulePaths(\n traceJson: TraceJsonSchema,\n): NodeModulePaths {\n const nodeModulePaths: NodeModulePaths = {};\n traceJson.forEach((event: TraceEvent) => {\n if (event.name !== \"findSourceFile\") {\n return;\n }\n const path = event.args.fileName;\n if (path) {\n while (true) {\n const match = packageNameRegex.exec(path);\n if (!match) {\n break;\n }\n const packageName = match[1];\n\n const packagePath = match.input.substring(\n 0,\n match.index + match[0].length,\n );\n\n if (packageName in nodeModulePaths) {\n const paths = nodeModulePaths[packageName];\n if (paths && paths.indexOf(packagePath) < 0) {\n // Usually contains exactly one element\n paths.push(packagePath);\n }\n } else {\n nodeModulePaths[packageName] = [packagePath];\n }\n }\n }\n });\n\n return nodeModulePaths;\n}\n","import {\n eventPhase,\n type TraceEvent,\n type TraceJsonSchema,\n} from \"@typeslayer/validate\";\nimport type {\n AnalyzeTraceOptions,\n EventSpan,\n Microseconds,\n ParseResult,\n} from \"./utils\";\n\n/*\n * This function takes an array of trace events and converts them into spans.\n */\nexport function createSpans(traceFile: TraceJsonSchema): ParseResult {\n // Sorted in increasing order of start time (even when below timestamp resolution)\n const unclosedStack: TraceEvent[] = [];\n\n // Sorted in increasing order of end time, then increasing order of start time (even when below timestamp resolution)\n const spans: EventSpan[] = [];\n\n traceFile.forEach((event: TraceEvent) => {\n switch (event.ph) {\n case eventPhase.begin:\n unclosedStack.push(event);\n return;\n\n case eventPhase.end: {\n const beginEvent = unclosedStack.pop();\n if (!beginEvent) {\n throw new Error(\"Unmatched end event\");\n }\n spans.push({\n event: beginEvent,\n start: beginEvent.ts,\n end: event.ts,\n duration: event.ts - beginEvent.ts,\n children: [],\n });\n break;\n }\n\n case eventPhase.complete: {\n const start = event.ts;\n const duration = event.dur ?? 0;\n spans.push({\n event,\n start,\n end: start + duration,\n duration,\n children: [],\n });\n break;\n }\n\n case eventPhase.instantGlobal:\n case eventPhase.metadata:\n return;\n\n default:\n event satisfies never;\n }\n });\n\n const parseResult: ParseResult = {\n firstSpanStart: Math.min(...spans.map(span => span.start)),\n lastSpanEnd: Math.max(...spans.map(span => span.end)),\n spans,\n unclosedStack,\n };\n return parseResult;\n}\n\nexport function createSpanTree(\n parseResult: ParseResult,\n options: AnalyzeTraceOptions,\n): EventSpan {\n const { firstSpanStart, lastSpanEnd, spans, unclosedStack } = parseResult;\n\n // Add unclosed events to the spans\n for (let i = unclosedStack.length - 1; i >= 0; i--) {\n const event = unclosedStack[i];\n const start = event.ts;\n const end = lastSpanEnd;\n spans.push({\n event,\n start,\n end,\n duration: end - start,\n children: [],\n });\n }\n\n spans.sort((a, b) => a.start - b.start);\n\n const root: EventSpan = {\n event: {\n name: \"root\",\n cat: \"program\",\n },\n start: firstSpanStart,\n end: lastSpanEnd,\n duration: lastSpanEnd - firstSpanStart,\n children: [],\n };\n const stack = [root];\n\n for (const span of spans) {\n let i = stack.length - 1;\n for (; i > 0; i--) {\n // No need to check root at stack[0]\n const curr = stack[i];\n if (curr.end > span.start) {\n // Pop down to parent\n stack.length = i + 1;\n break;\n }\n }\n\n /** Microseconds */\n const thresholdDuration: Microseconds = options.forceMillis * 1000;\n const isAboveThresholdDuration = span.duration >= thresholdDuration;\n\n const parent = stack[i];\n const parentDuration = parent.end - parent.start;\n const isSignificantPortionOfParent =\n span.duration >= parentDuration * options.minSpanParentPercentage;\n\n if (isAboveThresholdDuration || isSignificantPortionOfParent) {\n parent.children.push(span);\n stack.push(span);\n }\n }\n\n return root;\n}\n","import { existsSync } from \"node:fs\";\nimport { stat } from \"node:fs/promises\";\nimport {\n event_checktypes__checkCrossProductUnion_DepthLimit,\n event_checktypes__checkTypeRelatedTo_DepthLimit,\n event_checktypes__getTypeAtFlowNode_DepthLimit,\n event_checktypes__instantiateType_DepthLimit,\n event_checktypes__recursiveTypeRelatedTo_DepthLimit,\n event_checktypes__removeSubtypes_DepthLimit,\n event_checktypes__traceUnionsOrIntersectionsTooLarge_DepthLimit,\n event_checktypes__typeRelatedToDiscriminatedType_DepthLimit,\n resolvedType,\n traceEvent,\n} from \"@typeslayer/validate\";\nimport { z } from \"zod/v4\";\n\nexport const absolutePath = z.string().refine(\n path => {\n return (\n path.startsWith(\"/\") || path.startsWith(\"C:\\\\\") || path.startsWith(\"D:\\\\\")\n );\n },\n {\n message: \"Path must be absolute\",\n },\n);\nexport type AbsolutePath = z.infer<typeof absolutePath>;\n\nexport const project = z.object({\n configFilePath: absolutePath.optional(),\n tracePath: absolutePath,\n typesPath: absolutePath,\n});\nexport type Project = z.infer<typeof project>;\n\nexport const projectResult = z.object({\n project: project,\n stdout: z.string(),\n stderr: z.string(),\n exitCode: z.number().optional(),\n signal: z.enum([\"SIGINT\", \"SIGTERM\"]).optional(),\n});\nexport type ProjectResult = z.infer<typeof projectResult>;\n\nexport const hotType = z.object({\n resolvedType: resolvedType,\n get children() {\n return z.array(hotType);\n },\n});\nexport type HotType = z.infer<typeof hotType>;\n\nexport const hotSpot = z.object({\n description: z.string(),\n timeMs: z.number(),\n get children() {\n return z.array(hotSpot);\n },\n\n path: absolutePath.optional(),\n types: z.array(hotType).optional(),\n startLine: z.number().optional(),\n startChar: z.number().optional(),\n startOffset: z.number().optional(),\n endLine: z.number().optional(),\n endChar: z.number().optional(),\n endOffset: z.number().optional(),\n});\nexport type HotSpot = z.infer<typeof hotSpot>;\n\nexport const duplicatedPackageInstance = z.object({\n path: absolutePath,\n version: z.string(),\n});\nexport type DuplicatedPackageInstance = z.infer<\n typeof duplicatedPackageInstance\n>;\n\nexport const duplicatedPackage = z.object({\n name: z.string(),\n instances: z.array(duplicatedPackageInstance),\n});\nexport type DuplicatedPackage = z.infer<typeof duplicatedPackage>;\n\nexport const rootSpan = z.object({\n name: z.literal(\"root\"),\n cat: z.literal(\"program\"),\n});\nexport type RootSpan = z.infer<typeof rootSpan>;\n\nexport const eventSpan = z.object({\n event: z.union([traceEvent, rootSpan]),\n start: z.number(),\n end: z.number(),\n duration: z.number(),\n get children() {\n return z.array(eventSpan);\n },\n});\nexport type EventSpan = z.infer<typeof eventSpan>;\n\nexport const microseconds = z.number();\nexport type Microseconds = z.infer<typeof microseconds>;\n\nexport const packageName = z.string();\n\nexport const packagePath = z.string();\n\nexport const nodeModulePaths = z.record(packageName, z.array(packagePath));\n/** This is a map where the key corresponds to an NPM package and the value is an array of all files in that package that were used */\nexport type NodeModulePaths = z.infer<typeof nodeModulePaths>;\n\nexport const parseResult = z.object({\n firstSpanStart: z.number(),\n lastSpanEnd: z.number(),\n spans: z.array(eventSpan),\n unclosedStack: z.array(traceEvent),\n});\nexport type ParseResult = z.infer<typeof parseResult>;\n\nexport const analyzeTraceOptions = z.object({\n /** Events of at least this duration (in milliseconds) will reported unconditionally */\n forceMillis: z.number(),\n /** Events of less than this duration (in milliseconds) will suppressed unconditionally */\n skipMillis: z.number(),\n /** Expand types when printing */\n expandTypes: z.boolean(),\n /** force showing spans that are some percentage of their parent, independent of parent time */\n minSpanParentPercentage: z.number(),\n /** the minimum number of emitted imports from a declaration file or bundle */\n importExpressionThreshold: z.number(),\n});\nexport type AnalyzeTraceOptions = z.infer<typeof analyzeTraceOptions>;\n\nexport const isFile = async (path: string) => {\n return stat(path)\n .then(stats => stats.isFile())\n .catch(_ => false);\n};\n\nexport const throwIfNotDirectory = async (path: string) => {\n if (!existsSync(path) || !(await stat(path))?.isDirectory()) {\n throw new Error(`${path} is not a directory`);\n }\n return path;\n};\n\nexport const analyzeTraceResult = z.object({\n /** Events that were not closed */\n unterminatedEvents: z.array(traceEvent),\n /** Hot spots in the trace */\n hotSpots: z.array(hotSpot),\n /** Packages that are duplicated in the trace */\n duplicatePackages: z.array(duplicatedPackage),\n /** Paths to all node modules used in the trace */\n nodeModulePaths: nodeModulePaths,\n /** Depth limit events grouped by their event name */\n depthLimits: z.object({\n checkCrossProductUnion_DepthLimit: z.array(\n event_checktypes__checkCrossProductUnion_DepthLimit,\n ),\n checkTypeRelatedTo_DepthLimit: z.array(\n event_checktypes__checkTypeRelatedTo_DepthLimit,\n ),\n getTypeAtFlowNode_DepthLimit: z.array(\n event_checktypes__getTypeAtFlowNode_DepthLimit,\n ),\n instantiateType_DepthLimit: z.array(\n event_checktypes__instantiateType_DepthLimit,\n ),\n recursiveTypeRelatedTo_DepthLimit: z.array(\n event_checktypes__recursiveTypeRelatedTo_DepthLimit,\n ),\n removeSubtypes_DepthLimit: z.array(\n event_checktypes__removeSubtypes_DepthLimit,\n ),\n traceUnionsOrIntersectionsTooLarge_DepthLimit: z.array(\n event_checktypes__traceUnionsOrIntersectionsTooLarge_DepthLimit,\n ),\n typeRelatedToDiscriminatedType_DepthLimit: z.array(\n event_checktypes__typeRelatedToDiscriminatedType_DepthLimit,\n ),\n }),\n});\nexport type AnalyzeTraceResult = z.infer<typeof analyzeTraceResult>;\n"],"mappings":"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","names":["existsSync","readFile","join","packagePath","nodeModulePaths","packageName","id","resolvedType","nodeModulePaths","packageName","packagePath","parseResult","existsSync","event_checktypes__checkCrossProductUnion_DepthLimit","event_checktypes__checkTypeRelatedTo_DepthLimit","event_checktypes__getTypeAtFlowNode_DepthLimit","event_checktypes__instantiateType_DepthLimit","event_checktypes__recursiveTypeRelatedTo_DepthLimit","event_checktypes__removeSubtypes_DepthLimit","event_checktypes__traceUnionsOrIntersectionsTooLarge_DepthLimit","event_checktypes__typeRelatedToDiscriminatedType_DepthLimit","join","existsSync","readFile","nodeModulePaths"]}
|
|
1
|
+
{"version":3,"sources":["../src/analyze-trace.ts","../../validate/src/package-name.ts","../../validate/src/trace-json.ts","../../validate/src/utils.ts","../../validate/src/tsc-cpuprofile.ts","../../validate/src/type-registry.ts","../../validate/src/types-json.ts","../src/constants.ts","../src/depth-limits.ts","../src/get-duplicate-node-modules.ts","../src/get-hotspots.ts","../src/node-module-paths.ts","../src/spans.ts","../src/utils.ts"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport { readFile, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport {\n TRACE_JSON_FILENAME,\n type TraceJsonSchema,\n TYPES_JSON_FILENAME,\n type TypesJsonSchema,\n traceJsonSchema,\n typesJsonSchema,\n} from \"@typeslayer/validate\";\nimport { ANALYZE_TRACE_FILENAME } from \"./constants\";\nimport { createDepthLimits } from \"./depth-limits\";\nimport { getDuplicateNodeModules } from \"./get-duplicate-node-modules\";\nimport { getHotspots } from \"./get-hotspots\";\nimport { getNodeModulePaths } from \"./node-module-paths\";\nimport { createSpans, createSpanTree } from \"./spans\";\nimport type { AnalyzeTraceResult } from \"./utils\";\nimport {\n type AbsolutePath,\n type AnalyzeTraceOptions,\n throwIfNotDirectory,\n} from \"./utils\";\n\nexport function validateOptions(options: AnalyzeTraceOptions) {\n if (options.forceMillis < options.skipMillis) {\n throw new Error(\"forceMillis cannot be less than skipMillis\");\n }\n}\n\nconst validateTraceDir = async (\n traceDir: AbsolutePath,\n): Promise<{\n traceFile: TraceJsonSchema;\n typesFile: TypesJsonSchema;\n}> => {\n await throwIfNotDirectory(traceDir);\n\n const typesFilePath = join(traceDir, TYPES_JSON_FILENAME);\n if (!existsSync(typesFilePath)) {\n throw new Error(\n `types.json must exist in ${traceDir}. first run --generateTrace`,\n );\n }\n const typesFileJson = JSON.parse(await readFile(typesFilePath, \"utf8\"));\n const typesFile = typesJsonSchema.parse(typesFileJson);\n\n const traceFilePath = join(traceDir, TRACE_JSON_FILENAME);\n if (!existsSync(traceFilePath)) {\n throw new Error(\n `trace.json must exist in ${traceDir}. first run --generateTrace`,\n );\n }\n const traceFileJson = JSON.parse(await readFile(traceFilePath, \"utf8\"));\n const traceFile = traceJsonSchema.parse(traceFileJson);\n\n return {\n traceFile,\n typesFile,\n };\n};\n\nexport const defaultOptions: AnalyzeTraceOptions = {\n forceMillis: 500,\n skipMillis: 100,\n expandTypes: true,\n minSpanParentPercentage: 0.6,\n importExpressionThreshold: 10,\n};\n\nexport const analyzeTrace = async ({\n traceDir,\n options = defaultOptions,\n}: {\n traceDir: AbsolutePath;\n options?: AnalyzeTraceOptions;\n}) => {\n validateOptions(options);\n const { traceFile, typesFile } = await validateTraceDir(traceDir);\n\n const nodeModulePaths = getNodeModulePaths(traceFile);\n\n const spans = createSpans(traceFile);\n const hotPathsTree = createSpanTree(spans, options);\n\n const result: AnalyzeTraceResult = {\n nodeModulePaths,\n unterminatedEvents: spans.unclosedStack.reverse(),\n hotSpots: await getHotspots(hotPathsTree, typesFile, options),\n duplicatePackages: await getDuplicateNodeModules(nodeModulePaths),\n depthLimits: createDepthLimits(traceFile),\n };\n await writeFile(\n join(traceDir, ANALYZE_TRACE_FILENAME),\n JSON.stringify(result, null, 2),\n );\n\n return result;\n};\n","export const packageNameRegex =\n /\\/node_modules\\/((?:[^@][^/]+)|(?:@[^/]+\\/[^/]+))/g;\n\nexport const extractPackageName = (path: string): string | null => {\n const pnpmSentinel = \"/node_modules/.pnpm/\";\n if (path.includes(pnpmSentinel)) {\n // go to the character immediately after the pnpm sentinel\n const startIndex = path.indexOf(pnpmSentinel) + pnpmSentinel.length;\n const endIndex = path.indexOf(\"/\", startIndex);\n if (endIndex === -1) {\n throw new Error(\n \"Invalid path format: no closing slash found after pnpm sentinel\",\n );\n }\n return path.substring(startIndex, endIndex).replace(\"+\", \"/\");\n }\n\n return path;\n};\n\n/**\n * Computes the relative path from one absolute path to another.\n *\n * @param from - The anchor directory (must be an absolute path).\n * @param to - The absolute path you want to relativize.\n * @returns A relative path from `from` to `to`.\n */\nexport function relativizePath(from: string, to: string): string {\n // Ensure both paths end with a slash if they're directories\n const fromURL = new URL(`file://${from.endsWith(\"/\") ? from : `${from}/}`}`);\n const toURL = new URL(`file://${to}`);\n\n const fromParts = fromURL.pathname.split(\"/\").filter(Boolean);\n const toParts = toURL.pathname.split(\"/\").filter(Boolean);\n\n // Find where they diverge\n let i = 0;\n while (\n i < fromParts.length &&\n i < toParts.length &&\n fromParts[i] === toParts[i]\n ) {\n i++;\n }\n\n const up = fromParts.length - i;\n const down = toParts.slice(i).join(\"/\");\n\n return `${\"../\".repeat(up)}${down}`;\n}\n","import { z } from \"zod/v4\";\nimport { absolutePath, typeId } from \"./utils\";\n\nexport const TRACE_JSON_FILENAME = \"trace.json\";\n\nexport const eventPhase = {\n begin: \"B\",\n end: \"E\",\n complete: \"X\",\n metadata: \"M\",\n instantGlobal: \"I\",\n // 'i' is instantThread\n} as const;\n\nexport const instantScope = {\n thread: \"t\",\n global: \"g\",\n process: \"p\",\n};\n\nconst durationEvent = {\n ph: z.union([z.literal(eventPhase.begin), z.literal(eventPhase.end)]),\n};\n\nconst completeEvent = {\n ph: z.literal(eventPhase.complete),\n dur: z.number().positive(),\n};\n\nconst instantEvent = {\n ph: z.literal(eventPhase.instantGlobal),\n};\n\nconst category = {\n parse: {\n cat: z.literal(\"parse\"),\n },\n program: {\n cat: z.literal(\"program\"),\n },\n bind: {\n cat: z.literal(\"bind\"),\n },\n check: {\n cat: z.literal(\"check\"),\n },\n checkTypes: {\n cat: z.literal(\"checkTypes\"),\n },\n emit: {\n cat: z.literal(\"emit\"),\n },\n session: {\n cat: z.literal(\"session\"),\n },\n};\n\nconst eventCommon = {\n pid: z.number().int().positive(),\n tid: z.number().int().positive(),\n ts: z.number().positive(),\n};\n\n/*\n * METADATA EVENTS\n */\n\nconst event_metadata__TracingStartedInBrowser = z\n .object({\n ...eventCommon,\n cat: z.literal(\"disabled-by-default-devtools.timeline\"),\n name: z.literal(\"TracingStartedInBrowser\"),\n ph: z.literal(eventPhase.metadata),\n })\n .strict();\n\nconst event_metadata__process_name = z\n .object({\n ...eventCommon,\n ph: z.literal(eventPhase.metadata),\n args: z.object({\n name: z.literal(\"tsc\"),\n }),\n cat: z.literal(\"__metadata\"),\n name: z.literal(\"process_name\"),\n })\n .strict();\n\nconst event_metadata__thread_name = z\n .object({\n ...eventCommon,\n name: z.literal(\"thread_name\"),\n cat: z.literal(\"__metadata\"),\n ph: z.literal(eventPhase.metadata),\n args: z.object({\n name: z.literal(\"Main\"),\n }),\n })\n .strict();\n\n/*\n * PARSE PHASE EVENTS\n */\n\nconst event_parse__createSourceFile = z\n .object({\n ...eventCommon,\n ...category.parse,\n ...durationEvent,\n name: z.literal(\"createSourceFile\"),\n args: z.object({\n path: absolutePath,\n }),\n })\n .strict();\n\nconst event_parse__parseJsonSourceFileConfigFileContent = z\n .object({\n ...eventCommon,\n ...category.parse,\n ...completeEvent,\n name: z.literal(\"parseJsonSourceFileConfigFileContent\"),\n args: z.object({\n path: absolutePath,\n }),\n })\n .strict();\n\n/*\n * PROGRAM PHASE EVENTS\n */\n\nconst event_program__createProgram = z\n .object({\n ...eventCommon,\n ...category.program,\n ...durationEvent,\n name: z.literal(\"createProgram\"),\n args: z.object({\n configFilePath: absolutePath, // path to the tsconfig.json file\n }),\n })\n .strict();\n\nconst event_program__findSourceFile = z\n .object({\n ...eventCommon,\n ...category.program,\n ...completeEvent,\n name: z.literal(\"findSourceFile\"),\n dur: z.number(),\n args: z.object({\n fileName: absolutePath,\n fileIncludeKind: z.union([\n z.literal(\"RootFile\"),\n z.literal(\"Import\"),\n z.literal(\"TypeReferenceDirective\"),\n z.literal(\"LibFile\"),\n z.literal(\"LibReferenceDirective\"),\n z.literal(\"AutomaticTypeDirectiveFile\"),\n z.literal(\"ReferenceFile\"),\n ]),\n }),\n })\n .strict();\n\nconst event_program__processRootFiles = z\n .object({\n ...eventCommon,\n ...category.program,\n ...completeEvent,\n name: z.literal(\"processRootFiles\"),\n dur: z.number(),\n args: z.object({ count: z.number().int().positive() }),\n })\n .strict();\n\nconst event_program__processTypeReferenceDirective = z\n .object({\n ...eventCommon,\n ...category.program,\n ...completeEvent,\n name: z.literal(\"processTypeReferenceDirective\"),\n dur: z.number(),\n args: z.object({\n directive: z.string(),\n hasResolved: z.literal(true),\n refKind: z.number().int().positive(),\n refPath: absolutePath.optional(),\n }),\n })\n .strict();\n\nconst event_program__processTypeReferences = z\n .object({\n ...eventCommon,\n ...category.program,\n ...completeEvent,\n name: z.literal(\"processTypeReferences\"),\n dur: z.number(),\n args: z.object({\n count: z.number().int().positive(),\n }),\n })\n .strict();\n\nconst event_program__resolveLibrary = z\n .object({\n ...eventCommon,\n ...category.program,\n ...completeEvent,\n name: z.literal(\"resolveLibrary\"),\n args: z.object({\n resolveFrom: absolutePath,\n }),\n })\n .strict();\n\nconst event_program__resolveModuleNamesWorker = z\n .object({\n ...eventCommon,\n ...category.program,\n ...completeEvent,\n name: z.literal(\"resolveModuleNamesWorker\"),\n args: z.object({\n containingFileName: absolutePath,\n }),\n })\n .strict();\n\nconst event_program__resolveTypeReferenceDirectiveNamesWorker = z\n .object({\n ...eventCommon,\n ...category.program,\n ...completeEvent,\n name: z.literal(\"resolveTypeReferenceDirectiveNamesWorker\"),\n args: z.object({\n containingFileName: absolutePath,\n }),\n })\n .strict();\n\nconst event_program__shouldProgramCreateNewSourceFiles = z\n .object({\n ...eventCommon,\n ...category.program,\n ...instantEvent,\n name: z.literal(\"shouldProgramCreateNewSourceFiles\"),\n s: z.union([\n z.literal(instantScope.global),\n z.literal(instantScope.thread),\n z.literal(instantScope.process),\n ]),\n args: z.object({\n hasOldProgram: z.boolean(),\n }),\n })\n .strict();\n\nconst event_program__tryReuseStructureFromOldProgram = z\n .object({\n ...eventCommon,\n ...category.program,\n ...completeEvent,\n name: z.literal(\"tryReuseStructureFromOldProgram\"),\n dur: z.number(),\n args: z.object({}),\n })\n .strict();\n\n/*\n * BIND PHASE EVENTS\n */\n\nconst event_bind__bindSourceFile = z\n .object({\n ...eventCommon,\n ...category.bind,\n ...durationEvent,\n name: z.literal(\"bindSourceFile\"),\n args: z.object({\n path: absolutePath,\n }),\n })\n .strict();\n\n/*\n * CHECK PHASE EVENTS\n */\n\nconst event_check__checkExpression = z\n .object({\n ...eventCommon,\n ...category.check,\n ...completeEvent,\n name: z.literal(\"checkExpression\"),\n dur: z.number(),\n args: z.object({\n kind: z.number(),\n pos: z.number(),\n end: z.number(),\n path: absolutePath.optional(),\n }),\n })\n .strict();\n\nconst event_check__checkSourceFile = z\n .object({\n ...eventCommon,\n ...category.check,\n ...durationEvent,\n name: z.literal(\"checkSourceFile\"),\n args: z.object({\n path: absolutePath,\n }),\n })\n .strict();\n\nconst event_check__checkVariableDeclaration = z\n .object({\n ...eventCommon,\n ...category.check,\n ...completeEvent,\n name: z.literal(\"checkVariableDeclaration\"),\n dur: z.number(),\n args: z.object({\n kind: z.number(),\n pos: z.number(),\n end: z.number(),\n path: absolutePath,\n }),\n })\n .strict();\n\nconst event_check__checkDeferredNode = z\n .object({\n ...eventCommon,\n ...category.check,\n ...completeEvent,\n name: z.literal(\"checkDeferredNode\"),\n dur: z.number(),\n args: z.object({\n kind: z.number(),\n pos: z.number(),\n end: z.number(),\n path: absolutePath,\n }),\n })\n .strict();\n\nconst event_check__checkSourceFileNodes = z\n .object({\n ...eventCommon,\n ...category.check,\n ...completeEvent,\n name: z.literal(\"checkSourceFileNodes\"),\n dur: z.number(),\n args: z.object({\n path: absolutePath,\n }),\n })\n .strict();\n\n/*\n * CHECKTYPES PHASE EVENTS\n */\nconst event_checktypes__checkTypeParameterDeferred = z\n .object({\n ...eventCommon,\n ...category.checkTypes,\n ...completeEvent,\n name: z.literal(\"checkTypeParameterDeferred\"),\n dur: z.number(),\n args: z.object({\n parent: typeId,\n id: typeId,\n }),\n })\n .strict();\n\nconst event_checktypes__getVariancesWorker = z\n .object({\n ...eventCommon,\n ...category.checkTypes,\n ...completeEvent,\n name: z.literal(\"getVariancesWorker\"),\n dur: z.number(),\n args: z.object({\n arity: z.number().int().nonnegative(),\n id: z.number().int().positive(),\n results: z.object({\n variances: z.array(\n z.union([\n z.literal(\"[independent]\"),\n z.literal(\"[independent] (unreliable)\"),\n z.literal(\"[independent] (unmeasurable)\"),\n z.literal(\"[bivariant]\"),\n z.literal(\"[bivariant] (unreliable)\"),\n z.literal(\"[bivariant] (unmeasurable)\"),\n z.literal(\"in\"),\n z.literal(\"in (unreliable)\"),\n z.literal(\"in (unmeasurable)\"),\n z.literal(\"out\"),\n z.literal(\"out (unreliable)\"),\n z.literal(\"out (unmeasurable)\"),\n z.literal(\"in out\" /*burger*/),\n z.literal(\"in out (unreliable)\"),\n z.literal(\"in out (unmeasurable)\"),\n ]),\n ),\n }),\n }),\n })\n .strict();\n\nconst event_checktypes__structuredTypeRelatedTo = z\n .object({\n ...eventCommon,\n ...category.checkTypes,\n ...completeEvent,\n name: z.literal(\"structuredTypeRelatedTo\"),\n args: z.object({\n sourceId: typeId,\n targetId: typeId,\n }),\n })\n .strict();\n\n/*\n * CHECKTYPES PHASE DEPTH LIMIT EVENTS\n */\n\n/**\n * The `checkCrossProductUnion_DepthLimit` limit is hit when the cross-product of two types exceeds 100_000 combinations while expanding intersections into a union.\n *\n * This triggers the error `TS(2590) Expression produces a union type that is too complex to represent.`\n */\nexport const event_checktypes__checkCrossProductUnion_DepthLimit = z\n .object({\n ...eventCommon,\n ...category.checkTypes,\n ...instantEvent,\n name: z.literal(\"checkCrossProductUnion_DepthLimit\"),\n s: z.union([\n z.literal(instantScope.global),\n z.literal(instantScope.thread),\n z.literal(instantScope.process),\n ]),\n args: z.object({\n types: z.array(typeId),\n size: z.number().int().positive(),\n }),\n })\n .strict();\nexport type EventChecktypes__CheckCrossProductUnion_DepthLimit = z.infer<\n typeof event_checktypes__checkCrossProductUnion_DepthLimit\n>;\n\n/**\n * The `checkTypeRelatedTo_DepthLimit` limit is hit when a type relationship check overflows: either the checker reaches its recursion stack limit while comparing deeply nested (or expanding) types or it exhausts the relation-complexity budget.\n * in Node.js the maximum number of elements in a map is 2^24.\n * TypeScript therefore limits the number of entries an invocation of `checkTypeRelatedTo` can add to a relation to 1/8th of its remaining capacity.\n * This limit being hit means the relation will be recorded as failing.\n *\n * This triggers one of the following errors:\n * - `TS(2859) Excessive complexity comparing types '{0}' and '{1}'.`\n * - `TS(2321) Excessive stack depth comparing types '{0}' and '{1}'.`\n */\nexport const event_checktypes__checkTypeRelatedTo_DepthLimit = z\n .object({\n ...eventCommon,\n ...category.checkTypes,\n ...instantEvent,\n name: z.literal(\"checkTypeRelatedTo_DepthLimit\"),\n s: z.union([\n z.literal(instantScope.global),\n z.literal(instantScope.thread),\n z.literal(instantScope.process),\n ]),\n args: z.object({\n sourceId: typeId,\n targetId: typeId,\n depth: z.number().int().positive(),\n targetDepth: z.number().int().positive(),\n }),\n })\n .strict();\nexport type EventChecktypes__CheckTypeRelatedTo_DepthLimit = z.infer<\n typeof event_checktypes__checkTypeRelatedTo_DepthLimit\n>;\n\n/**\n * The `getTypeAtFlowNode_DepthLimit` limit is hit when resolving the control flow type for a reference causes more than 2_000 recursions.\n * To avoid overflowing the call stack we report an error and disable further control flow analysis in the containing function or module body.\n *\n * This triggers the error `TS(2563) The containing function or module body is too large for control flow analysis.`\n */\nexport const event_checktypes__getTypeAtFlowNode_DepthLimit = z\n .object({\n ...eventCommon,\n ...category.checkTypes,\n ...instantEvent,\n name: z.literal(\"getTypeAtFlowNode_DepthLimit\"),\n s: z.union([\n z.literal(instantScope.global),\n z.literal(instantScope.thread),\n z.literal(instantScope.process),\n ]),\n args: z.object({\n flowId: z.number().int().positive(),\n }),\n })\n .strict();\nexport type EventChecktypes__GetTypeAtFlowNode_DepthLimit = z.infer<\n typeof event_checktypes__getTypeAtFlowNode_DepthLimit\n>;\n\n/**\n * The `instantiateType_DepthLimit` is hit when more than 100 recursive type instantiations or 5_000_000 instantiations are caused by the same statement or expression.\n * There is a very high likelihood we're dealing with a combination of infinite generic types that perpetually generate new type identities, so TypeScript stops and throws this error.\n *\n * This triggers the error `TS(2589) Type instantiation is excessively deep and possibly infinite.`\n */\n\nexport const event_checktypes__instantiateType_DepthLimit = z\n .object({\n ...eventCommon,\n ...category.checkTypes,\n ...instantEvent,\n name: z.literal(\"instantiateType_DepthLimit\"),\n s: z.union([\n z.literal(instantScope.global),\n z.literal(instantScope.thread),\n z.literal(instantScope.process),\n ]),\n args: z.object({\n typeId,\n instantiationDepth: z.number().int(),\n instantiationCount: z.number().int().positive(),\n }),\n })\n .strict();\nexport type EventChecktypes__InstantiateType_DepthLimit = z.infer<\n typeof event_checktypes__instantiateType_DepthLimit\n>;\n\n/**\n * The `recursiveTypeRelatedTo_DepthLimit` limit is hit when the sourceDepth or targetDepth of a type check exceeds 100 during recursive type comparison, indicating a runaway recursion from deeply nested generics or type instantiations.\n *\n * This is not currently considered a hard error by the compiler and therefore\n does not report to the user (unless you're a TypeSlayer user 😉).\n */\nexport const event_checktypes__recursiveTypeRelatedTo_DepthLimit = z\n .object({\n ...eventCommon,\n ...category.checkTypes,\n ...instantEvent,\n name: z.literal(\"recursiveTypeRelatedTo_DepthLimit\"),\n s: z.union([\n z.literal(instantScope.global),\n z.literal(instantScope.thread),\n z.literal(instantScope.process),\n ]),\n args: z.object({\n sourceId: typeId,\n sourceIdStack: z.array(typeId),\n targetId: typeId,\n targetIdStack: z.array(typeId),\n depth: z.number().int().positive(),\n targetDepth: z.number().int().positive(),\n }),\n })\n .strict();\nexport type EventChecktypes__RecursiveTypeRelatedTo_DepthLimit = z.infer<\n typeof event_checktypes__recursiveTypeRelatedTo_DepthLimit\n>;\n\n/**\n * The `removeSubtypes_DepthLimit` limit is hit when subtype-reduction work becomes too large.\n * Specifically, when more than 100,000 pairwise constituent checks occur, the type checker will pause and estimate remaining work.\n * If that estimate exceeds 1_000_000 pairwise checks, the checker will halt and report this error.\n *\n * This triggers the error `TS(2590) Expression produces a union type that is too complex to represent.`\n *\n */\nexport const event_checktypes__removeSubtypes_DepthLimit = z\n .object({\n ...eventCommon,\n ...category.checkTypes,\n ...instantEvent,\n name: z.literal(\"removeSubtypes_DepthLimit\"),\n s: z.union([\n z.literal(instantScope.global),\n z.literal(instantScope.thread),\n z.literal(instantScope.process),\n ]),\n args: z.object({\n typeIds: z.array(typeId),\n }),\n })\n .strict();\nexport type EventChecktypes__RemoveSubtypes_DepthLimit = z.infer<\n typeof event_checktypes__removeSubtypes_DepthLimit\n>;\n\n/**\n * The `traceUnionsOrIntersectionsTooLarge_DepthLimit` limit is hit when the product of a source and target type that will be part of a union will exceed 1_000_000 members when multiplied out.\n *\n * This is not currently considered a hard error by the compiler and therefore\n does not report to the user (unless you're a TypeSlayer user 😉).\n */\nexport const event_checktypes__traceUnionsOrIntersectionsTooLarge_DepthLimit = z\n .object({\n ...eventCommon,\n ...category.checkTypes,\n ...instantEvent,\n name: z.literal(\"traceUnionsOrIntersectionsTooLarge_DepthLimit\"),\n s: z.union([\n z.literal(instantScope.global),\n z.literal(instantScope.thread),\n z.literal(instantScope.process),\n ]),\n args: z.object({\n sourceId: typeId,\n sourceSize: z.number().int().positive(),\n targetId: typeId,\n targetSize: z.number().int().positive(),\n pos: z.number().int().nonnegative().optional(),\n end: z.number().int().positive().optional(),\n }),\n })\n .strict();\nexport type EventChecktypes__TraceUnionsOrIntersectionsTooLarge_DepthLimit =\n z.infer<\n typeof event_checktypes__traceUnionsOrIntersectionsTooLarge_DepthLimit\n >;\n\n/**\n * The `typeRelatedToDiscriminatedType_DepthLimit` limit is hit when comparing a source object to a discriminated-union target type with more than 25 constituent types.\n * When this occurs, the type checker will just return `false` for the type comparison to avoid excessive computation.\n *\n * This is not currently considered a hard error by the compiler and therefore\n does not report to the user (unless you're a TypeSlayer user 😉).\n */\nexport const event_checktypes__typeRelatedToDiscriminatedType_DepthLimit = z\n .object({\n ...eventCommon,\n ...category.checkTypes,\n ...instantEvent,\n name: z.literal(\"typeRelatedToDiscriminatedType_DepthLimit\"),\n s: z.union([\n z.literal(instantScope.global),\n z.literal(instantScope.thread),\n z.literal(instantScope.process),\n ]),\n args: z.object({\n sourceId: typeId,\n targetId: typeId,\n numCombinations: z.number().int().positive(),\n }),\n })\n .strict();\n\nexport type EventChecktypes__TypeRelatedToDiscriminatedType_DepthLimit =\n z.infer<typeof event_checktypes__typeRelatedToDiscriminatedType_DepthLimit>;\n\nexport const depthLimits = [\n event_checktypes__checkCrossProductUnion_DepthLimit,\n event_checktypes__checkTypeRelatedTo_DepthLimit,\n event_checktypes__getTypeAtFlowNode_DepthLimit,\n event_checktypes__instantiateType_DepthLimit,\n event_checktypes__recursiveTypeRelatedTo_DepthLimit,\n event_checktypes__removeSubtypes_DepthLimit,\n event_checktypes__traceUnionsOrIntersectionsTooLarge_DepthLimit,\n event_checktypes__typeRelatedToDiscriminatedType_DepthLimit,\n];\n\nexport type DepthLimitNames =\n | EventChecktypes__CheckCrossProductUnion_DepthLimit[\"name\"]\n | EventChecktypes__CheckTypeRelatedTo_DepthLimit[\"name\"]\n | EventChecktypes__GetTypeAtFlowNode_DepthLimit[\"name\"]\n | EventChecktypes__InstantiateType_DepthLimit[\"name\"]\n | EventChecktypes__RecursiveTypeRelatedTo_DepthLimit[\"name\"]\n | EventChecktypes__RemoveSubtypes_DepthLimit[\"name\"]\n | EventChecktypes__TraceUnionsOrIntersectionsTooLarge_DepthLimit[\"name\"]\n | EventChecktypes__TypeRelatedToDiscriminatedType_DepthLimit[\"name\"];\n\n/*\n * EMIT PHASE EVENTS\n */\n\nconst event_emit__emit = z\n .object({\n ...eventCommon,\n ...category.emit,\n ...durationEvent,\n name: z.literal(\"emit\"),\n args: z.object({}), // for some reason, this is empty\n })\n .strict();\n\nconst event_emit__emitBuildInfo = z\n .object({\n ...eventCommon,\n ...category.emit,\n ph: z.union([\n z.literal(eventPhase.begin),\n z.literal(eventPhase.end),\n z.literal(eventPhase.complete),\n ]),\n dur: z.number().positive().optional(),\n name: z.literal(\"emitBuildInfo\"),\n args: z.union([\n z.object({}),\n z.object({\n buildInfoPath: absolutePath,\n }),\n ]),\n })\n .strict();\n\nconst event_emit__emitDeclarationFileOrBundle = z\n .object({\n ...eventCommon,\n ...category.emit,\n ...completeEvent,\n name: z.literal(\"emitDeclarationFileOrBundle\"),\n dur: z.number(),\n args: z.object({\n declarationFilePath: absolutePath,\n }),\n })\n .strict();\n\nconst event_emit__emitJsFileOrBundle = z\n .object({\n ...eventCommon,\n ...category.emit,\n ...completeEvent,\n name: z.literal(\"emitJsFileOrBundle\"),\n dur: z.number(),\n args: z.object({\n jsFilePath: absolutePath,\n }),\n })\n .strict();\n\nconst event_emit__transformNodes = z\n .object({\n ...eventCommon,\n ...category.emit,\n ...completeEvent,\n name: z.literal(\"transformNodes\"),\n args: z.object({\n path: absolutePath,\n }),\n })\n .strict();\n\n/*\n * SESSION PHASE EVENTS\n */\n\nconst event_session__cancellationThrown = z\n .object({\n ...eventCommon,\n ...category.session,\n ...instantEvent,\n name: z.literal(\"cancellationThrown\"),\n args: z.object({\n kind: z.union([\n z.literal(\"CancellationTokenObject\"),\n z.literal(\"ThrotledCancellationToken\"),\n ]),\n }),\n })\n .strict();\n\nconst event_session__commandCanceled = z\n .object({\n ...eventCommon,\n ...category.session,\n ...instantEvent,\n name: z.literal(\"commandCanceled\"),\n args: z.object({\n seq: z.number().int().nonnegative(),\n command: z.string(),\n }),\n })\n .strict();\n\nconst event_session__commandError = z\n .object({\n ...eventCommon,\n ...category.session,\n ...instantEvent,\n name: z.literal(\"commandError\"),\n args: z.object({\n seq: z.number().int().nonnegative(),\n command: z.string(),\n message: z.string(),\n }),\n })\n .strict();\n\nconst event_session__createConfiguredProject = z\n .object({\n ...eventCommon,\n ...category.session,\n ...instantEvent,\n name: z.literal(\"createConfiguredProject\"),\n args: z.object({\n configFilePath: absolutePath,\n }),\n })\n .strict();\n\nconst event_session__createdDocumentRegistryBucket = z\n .object({\n ...eventCommon,\n ...category.session,\n ...instantEvent,\n name: z.literal(\"createdDocumentRegistryBucket\"),\n args: z.object({\n configFilePath: absolutePath,\n key: z.string(),\n }),\n })\n .strict();\n\nconst event_session__documentRegistryBucketOverlap = z\n .object({\n ...eventCommon,\n ...category.session,\n ...instantEvent,\n name: z.literal(\"documentRegistryBucketOverlap\"),\n args: z.object({\n path: absolutePath,\n key1: z.string(),\n key2: z.string(),\n }),\n })\n .strict();\n\nconst event_session__executeCommand = z\n .object({\n ...eventCommon,\n ...category.session,\n ...durationEvent,\n name: z.literal(\"executeCommand\"),\n args: z.object({\n seq: z.number().int().nonnegative(),\n command: z.string(),\n }),\n })\n .strict();\n\nconst event_session__finishCachingPerDirectoryResolution = z\n .object({\n ...eventCommon,\n ...category.session,\n ...instantEvent,\n name: z.literal(\"finishCachingPerDirectoryResolution\"),\n s: z.union([\n z.literal(instantScope.global),\n z.literal(instantScope.thread),\n z.literal(instantScope.process),\n ]),\n })\n .strict();\n\nconst event_session__getPackageJsonAutoImportProvider = z\n .object({\n ...eventCommon,\n ...category.session,\n ...completeEvent,\n name: z.literal(\"getPackageJsonAutoImportProvider\"),\n })\n .strict();\n\nconst event_session__getUnresolvedImports = z\n .object({\n ...eventCommon,\n ...category.session,\n ...completeEvent,\n name: z.literal(\"getUnresolvedImports\"),\n args: z.object({\n count: z.number().int().nonnegative(),\n }),\n })\n .strict();\n\nconst event_session__loadConfiguredProject = z\n .object({\n ...eventCommon,\n ...category.session,\n ...durationEvent,\n name: z.literal(\"loadConfiguredProject\"),\n args: z.object({\n configFilePath: absolutePath,\n }),\n })\n .strict();\n\nconst event_session__regionSemanticCheck = z\n .object({\n ...eventCommon,\n ...category.session,\n ...durationEvent,\n name: z.literal(\"regionSemanticCheck\"),\n args: z.object({\n file: absolutePath,\n configFilePath: absolutePath,\n }),\n })\n .strict();\n\nconst event_session__request = z\n .object({\n ...eventCommon,\n ...category.session,\n ...instantEvent,\n name: z.literal(\"request\"),\n args: z.object({\n seq: z.number().int().nonnegative(),\n command: z.string(),\n }),\n })\n .strict();\n\nconst event_session__response = z\n .object({\n ...eventCommon,\n ...category.session,\n ...instantEvent,\n name: z.literal(\"response\"),\n args: z.object({\n seq: z.number().int().nonnegative(),\n command: z.string(),\n success: z.boolean(),\n }),\n })\n .strict();\n\nconst event_session__semanticCheck = z\n .object({\n ...eventCommon,\n ...category.session,\n ...durationEvent,\n name: z.literal(\"semanticCheck\"),\n args: z.object({\n file: absolutePath,\n configFilePath: absolutePath,\n }),\n })\n .strict();\n\nconst event_session__stepAction = z\n .object({\n ...eventCommon,\n ...category.session,\n ...instantEvent,\n name: z.literal(\"stepAction\"),\n s: z.union([\n z.literal(instantScope.global),\n z.literal(instantScope.thread),\n z.literal(instantScope.process),\n ]),\n args: z.object({\n seq: z.number().int().nonnegative(),\n }),\n })\n .strict();\n\nconst event_session__stepCanceled = z\n .object({\n ...eventCommon,\n ...category.session,\n ...instantEvent,\n name: z.literal(\"stepCanceled\"),\n args: z.object({\n seq: z.number().int().nonnegative(),\n early: z.literal(true).optional(),\n }),\n })\n .strict();\n\nconst event_session__stepError = z\n .object({\n ...eventCommon,\n ...category.session,\n ...instantEvent,\n name: z.literal(\"stepError\"),\n args: z.object({\n seq: z.number().int().nonnegative(),\n message: z.string(),\n }),\n })\n .strict();\n\nconst event_session__suggestionCheck = z\n .object({\n ...eventCommon,\n ...category.session,\n ...durationEvent,\n name: z.literal(\"suggestionCheck\"),\n args: z.object({\n file: absolutePath,\n configFilePath: absolutePath,\n }),\n })\n .strict();\n\nconst event_session__syntacticCheck = z\n .object({\n ...eventCommon,\n ...category.session,\n ...durationEvent,\n name: z.literal(\"syntacticCheck\"),\n args: z.object({\n file: absolutePath,\n configFilePath: absolutePath,\n }),\n })\n .strict();\n\nconst event_session__updateGraph = z\n .object({\n ...eventCommon,\n ...category.session,\n ...durationEvent,\n name: z.literal(\"updateGraph\"),\n args: z.object({\n name: z.string(),\n kind: z.union([\n z.literal(0), //\"Inferred\n z.literal(1), // Configured\"\n z.literal(2), // \"Inferred\"\n z.literal(3), // \"External\"\n z.literal(4), // \"AutoImportProvider\"\n z.literal(5), // \"Auxiliary\"\n ]),\n }),\n })\n .strict();\n\n/*\n * TRACE EVENT UNION\n */\n\nexport const traceEvent = z.discriminatedUnion(\n \"name\",\n [\n event_metadata__TracingStartedInBrowser,\n event_metadata__process_name,\n event_metadata__thread_name,\n\n event_parse__createSourceFile,\n event_parse__parseJsonSourceFileConfigFileContent,\n\n event_program__createProgram,\n event_program__findSourceFile,\n event_program__processRootFiles,\n event_program__processTypeReferenceDirective,\n event_program__processTypeReferences,\n event_program__resolveLibrary,\n event_program__resolveModuleNamesWorker,\n event_program__resolveTypeReferenceDirectiveNamesWorker,\n event_program__shouldProgramCreateNewSourceFiles,\n event_program__tryReuseStructureFromOldProgram,\n\n event_bind__bindSourceFile,\n\n event_check__checkExpression,\n event_check__checkSourceFile,\n event_check__checkVariableDeclaration,\n event_check__checkDeferredNode,\n event_check__checkSourceFileNodes,\n\n event_checktypes__checkTypeParameterDeferred,\n event_checktypes__getVariancesWorker,\n event_checktypes__structuredTypeRelatedTo,\n\n ...depthLimits,\n\n event_emit__emit,\n event_emit__emitBuildInfo,\n event_emit__emitDeclarationFileOrBundle,\n event_emit__emitJsFileOrBundle,\n event_emit__transformNodes,\n\n event_session__cancellationThrown,\n event_session__commandCanceled,\n event_session__commandError,\n event_session__createConfiguredProject,\n event_session__createdDocumentRegistryBucket,\n event_session__documentRegistryBucketOverlap,\n event_session__executeCommand,\n event_session__finishCachingPerDirectoryResolution,\n event_session__getPackageJsonAutoImportProvider,\n event_session__getUnresolvedImports,\n event_session__loadConfiguredProject,\n event_session__regionSemanticCheck,\n event_session__request,\n event_session__response,\n event_session__semanticCheck,\n event_session__stepAction,\n event_session__stepCanceled,\n event_session__stepError,\n event_session__suggestionCheck,\n event_session__syntacticCheck,\n event_session__updateGraph,\n ],\n {\n // errorMap: (issue, ctx) => ({\n // \t// prettier-ignore\n // \tmessage: issue.code === \"invalid_union_discriminator\" ?\n // \t\t\t`Invalid discriminator value. Expected ${issue.options.map(opt => `'${String(opt)}'`).join(' | ')}, got '${ctx.data.type}'.`\n // \t\t\t: ctx.defaultError,\n // }),\n },\n);\n\nexport type TraceEvent = z.infer<typeof traceEvent>;\nexport const traceJsonSchema = z.array(traceEvent);\nexport type TraceJsonSchema = z.infer<typeof traceJsonSchema>;\n","import { z } from \"zod/v4\";\n\nexport const CPU_PROFILE_FILENAME = \"tsc.cpuprofile\";\n\nexport const typeId = z.number().int().positive().or(z.literal(-1));\n\nexport type TypeId = z.infer<typeof typeId>;\n\nexport const position = z.object({\n line: typeId,\n character: z.number(),\n});\n\nexport const absolutePath = z.string();\n\nexport const location = z.object({\n path: absolutePath,\n start: position,\n end: position,\n});\n","export const CPU_PROFILE_FILENAME = \"tsc.cpuprofile\";\n","import type { ResolvedType } from \"./types-json\";\n\n/**\n * Think of a TypeRegistry like an object that you'd use to look up types by their ID.\n *\n */\nexport type TypeRegistry = ResolvedType[];\n\nconst ALL_LIFE_IS_SUFFERING_THAT_BASKS_IN_NOTHINGNESS___ALL_LIFE_IS_TEMPORARY___WHAT_LASTS_IS_CONSCIOUSNESS: [\n ResolvedType,\n] = [{ id: 0, recursionId: -1, flags: [] }];\n\nexport const createTypeRegistry = (typesJson: ResolvedType[]): TypeRegistry => {\n return ALL_LIFE_IS_SUFFERING_THAT_BASKS_IN_NOTHINGNESS___ALL_LIFE_IS_TEMPORARY___WHAT_LASTS_IS_CONSCIOUSNESS.concat(\n typesJson,\n );\n};\n","import { z } from \"zod/v4\";\nimport { location, typeId } from \"./utils\";\n\nexport const TYPES_JSON_FILENAME = \"types.json\";\n\nconst flag = z.enum([\n \"Any\",\n \"Unknown\",\n \"String\",\n \"Number\",\n \"Boolean\",\n \"Enum\",\n \"BigInt\",\n \"StringLiteral\",\n \"NumberLiteral\",\n \"BooleanLiteral\",\n \"EnumLiteral\",\n \"BigIntLiteral\",\n \"ESSymbol\",\n \"UniqueESSymbol\",\n \"Void\",\n \"Undefined\",\n \"Null\",\n \"Never\",\n \"TypeParameter\",\n \"Object\",\n \"Union\",\n \"Intersection\",\n \"Index\",\n \"IndexedAccess\",\n \"Conditional\",\n \"Substitution\",\n \"NonPrimitive\",\n \"TemplateLiteral\",\n \"StringMapping\",\n \"Reserved1\",\n \"Reserved2\",\n \"AnyOrUnknown\",\n \"Nullable\",\n \"Literal\",\n \"Unit\",\n \"Freshable\",\n \"StringOrNumberLiteral\",\n \"StringOrNumberLiteralOrUnique\",\n \"DefinitelyFalsy\",\n \"PossiblyFalsy\",\n \"Intrinsic\",\n \"StringLike\",\n \"NumberLike\",\n \"BigIntLike\",\n \"BooleanLike\",\n \"EnumLike\",\n \"ESSymbolLike\",\n \"VoidLike\",\n \"Primitive\",\n \"DefinitelyNonNullable\",\n \"DisjointDomains\",\n \"UnionOrIntersection\",\n \"StructuredType\",\n \"TypeVariable\",\n \"InstantiableNonPrimitive\",\n \"InstantiablePrimitive\",\n \"Instantiable\",\n \"StructuredOrInstantiable\",\n \"ObjectFlagsType\",\n \"Simplifiable\",\n \"Singleton\",\n \"Narrowable\",\n \"IncludesMask\",\n \"IncludesMissingType\",\n \"IncludesNonWideningType\",\n \"IncludesWildcard\",\n \"IncludesEmptyObject\",\n \"IncludesInstantiable\",\n \"IncludesConstrainedTypeVariable\",\n \"IncludesError\",\n \"NotPrimitiveUnion\",\n]);\n\nexport const resolvedType = z\n .object({\n id: typeId,\n flags: z.array(flag),\n\n recursionId: z.number().optional(),\n intrinsicName: z\n .enum([\n \"any\",\n \"error\",\n \"unresolved\",\n \"unknown\",\n \"true\",\n \"false\",\n \"never\",\n \"void\",\n \"symbol\",\n \"bigint\",\n \"null\",\n \"undefined\",\n \"intrinsic\",\n \"object\",\n \"boolean\",\n \"number\",\n \"string\",\n ])\n .optional(),\n\n firstDeclaration: location.optional(),\n referenceLocation: location.optional(),\n destructuringPattern: location.optional(),\n\n // TODO, awards for all of these\n typeArguments: z.array(typeId).optional(),\n unionTypes: z.array(typeId).optional(),\n intersectionTypes: z.array(typeId).optional(),\n aliasTypeArguments: z.array(typeId).optional(),\n\n instantiatedType: typeId.optional(),\n substitutionBaseType: typeId.optional(),\n constraintType: typeId.optional(),\n indexedAccessObjectType: typeId.optional(),\n indexedAccessIndexType: typeId.optional(),\n conditionalCheckType: typeId.optional(),\n conditionalExtendsType: typeId.optional(),\n conditionalTrueType: typeId.optional(),\n conditionalFalseType: typeId.optional(),\n keyofType: typeId.optional(),\n aliasType: typeId.optional(),\n evolvingArrayElementType: typeId.optional(),\n evolvingArrayFinalType: typeId.optional(),\n reverseMappedSourceType: typeId.optional(),\n reverseMappedMappedType: typeId.optional(),\n reverseMappedConstraintType: typeId.optional(),\n\n isTuple: z.literal(true).optional(),\n\n symbolName: z.string().optional(),\n display: z.string().optional(),\n })\n .strict();\n\nexport type ResolvedType = z.infer<typeof resolvedType>;\nexport const typesJsonSchema = z.array(resolvedType);\nexport type TypesJsonSchema = z.infer<typeof typesJsonSchema>;\n","// you may need to import this directly via ESM, otherwise Vite will complain about externalized fs dependencies\nexport const ANALYZE_TRACE_FILENAME = \"analyze-trace.json\";\n","import {\n depthLimits,\n type EventChecktypes__CheckCrossProductUnion_DepthLimit,\n type EventChecktypes__CheckTypeRelatedTo_DepthLimit,\n type EventChecktypes__GetTypeAtFlowNode_DepthLimit,\n type EventChecktypes__InstantiateType_DepthLimit,\n type EventChecktypes__RecursiveTypeRelatedTo_DepthLimit,\n type EventChecktypes__RemoveSubtypes_DepthLimit,\n type EventChecktypes__TraceUnionsOrIntersectionsTooLarge_DepthLimit,\n type EventChecktypes__TypeRelatedToDiscriminatedType_DepthLimit,\n event_checktypes__checkCrossProductUnion_DepthLimit,\n event_checktypes__checkTypeRelatedTo_DepthLimit,\n event_checktypes__getTypeAtFlowNode_DepthLimit,\n event_checktypes__instantiateType_DepthLimit,\n event_checktypes__recursiveTypeRelatedTo_DepthLimit,\n event_checktypes__removeSubtypes_DepthLimit,\n event_checktypes__traceUnionsOrIntersectionsTooLarge_DepthLimit,\n event_checktypes__typeRelatedToDiscriminatedType_DepthLimit,\n type TraceJsonSchema,\n} from \"@typeslayer/validate\";\n\nexport type DepthLimitsRecord = {\n checkCrossProductUnion_DepthLimit: EventChecktypes__CheckCrossProductUnion_DepthLimit[];\n checkTypeRelatedTo_DepthLimit: EventChecktypes__CheckTypeRelatedTo_DepthLimit[];\n getTypeAtFlowNode_DepthLimit: EventChecktypes__GetTypeAtFlowNode_DepthLimit[];\n instantiateType_DepthLimit: EventChecktypes__InstantiateType_DepthLimit[];\n recursiveTypeRelatedTo_DepthLimit: EventChecktypes__RecursiveTypeRelatedTo_DepthLimit[];\n removeSubtypes_DepthLimit: EventChecktypes__RemoveSubtypes_DepthLimit[];\n traceUnionsOrIntersectionsTooLarge_DepthLimit: EventChecktypes__TraceUnionsOrIntersectionsTooLarge_DepthLimit[];\n typeRelatedToDiscriminatedType_DepthLimit: EventChecktypes__TypeRelatedToDiscriminatedType_DepthLimit[];\n};\n\nexport const createDepthLimits = (traceFile: TraceJsonSchema) => {\n const limitNamesSet = new Set(\n depthLimits.map(d => d.shape.name),\n ) as unknown as Set<string>;\n const limitEvents = traceFile.filter(event => limitNamesSet.has(event.name));\n\n return {\n checkCrossProductUnion_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__checkCrossProductUnion_DepthLimit.safeParse(event)\n .success,\n ) as EventChecktypes__CheckCrossProductUnion_DepthLimit[]\n ).sort((a, b) => a.args.size - b.args.size),\n\n checkTypeRelatedTo_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__checkTypeRelatedTo_DepthLimit.safeParse(event)\n .success,\n ) as EventChecktypes__CheckTypeRelatedTo_DepthLimit[]\n ).sort((a, b) => a.args.depth - b.args.depth),\n\n getTypeAtFlowNode_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__getTypeAtFlowNode_DepthLimit.safeParse(event)\n .success,\n ) as EventChecktypes__GetTypeAtFlowNode_DepthLimit[]\n ).sort((a, b) => a.args.flowId - b.args.flowId),\n\n instantiateType_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__instantiateType_DepthLimit.safeParse(event).success,\n ) as EventChecktypes__InstantiateType_DepthLimit[]\n ).sort((a, b) => a.args.instantiationDepth - b.args.instantiationDepth),\n\n recursiveTypeRelatedTo_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__recursiveTypeRelatedTo_DepthLimit.safeParse(event)\n .success,\n ) as EventChecktypes__RecursiveTypeRelatedTo_DepthLimit[]\n ).sort((a, b) => a.args.depth - b.args.depth),\n\n removeSubtypes_DepthLimit: limitEvents.filter(\n event =>\n event_checktypes__removeSubtypes_DepthLimit.safeParse(event).success,\n ) as EventChecktypes__RemoveSubtypes_DepthLimit[],\n\n traceUnionsOrIntersectionsTooLarge_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__traceUnionsOrIntersectionsTooLarge_DepthLimit.safeParse(\n event,\n ).success,\n ) as EventChecktypes__TraceUnionsOrIntersectionsTooLarge_DepthLimit[]\n ).sort(\n (a, b) =>\n a.args.sourceSize * a.args.targetSize -\n b.args.sourceSize * b.args.targetSize,\n ),\n\n typeRelatedToDiscriminatedType_DepthLimit: (\n limitEvents.filter(\n event =>\n event_checktypes__typeRelatedToDiscriminatedType_DepthLimit.safeParse(\n event,\n ).success,\n ) as EventChecktypes__TypeRelatedToDiscriminatedType_DepthLimit[]\n ).sort((a, b) => a.args.numCombinations - b.args.numCombinations),\n } satisfies DepthLimitsRecord;\n};\n","import { existsSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport type {\n DuplicatedPackage,\n DuplicatedPackageInstance,\n NodeModulePaths,\n} from \"./utils\";\n\nexport async function getPackageVersion(packagePath: string) {\n const packageJsonPath = join(packagePath, \"package.json\");\n console.log(\"packageJsonPath\", packageJsonPath);\n if (!existsSync(packageJsonPath)) {\n console.warn(\n `Package.json not found at ${packageJsonPath}. This may not be a node module.`,\n );\n return \"unknown\";\n }\n const jsonString = await readFile(packageJsonPath, \"utf-8\");\n const jsonObj = JSON.parse(jsonString);\n return jsonObj.version;\n}\n\nexport const getDuplicateNodeModules = async (\n nodeModulePaths: NodeModulePaths,\n) => {\n const duplicates: DuplicatedPackage[] = [];\n for (const [packageName, packagePaths] of Object.entries(nodeModulePaths)) {\n if (packagePaths.length < 2) {\n continue;\n }\n const instances: DuplicatedPackageInstance[] = [];\n for (const packagePath of packagePaths) {\n instances.push({\n path: packagePath,\n version: await getPackageVersion(packagePath),\n });\n }\n duplicates.push({\n name: packageName,\n instances,\n });\n }\n\n return duplicates;\n};\n","import { normalize } from \"node:path\";\nimport {\n createTypeRegistry,\n type ResolvedType,\n type TypeId,\n type TypeRegistry,\n type TypesJsonSchema,\n} from \"@typeslayer/validate\";\nimport type { AnalyzeTraceOptions, EventSpan, HotSpot, HotType } from \"./utils\";\n\nexport const getHotspots = async (\n hotPathsTree: EventSpan,\n typesFile: TypesJsonSchema,\n options: AnalyzeTraceOptions,\n): Promise<HotSpot[]> =>\n getHotspotsWorker({\n span: hotPathsTree,\n currentFile: undefined,\n typeRegistry: createTypeRegistry(typesFile),\n options,\n });\n\nasync function getHotspotsWorker({\n span,\n currentFile,\n typeRegistry,\n options,\n}: {\n span: EventSpan;\n currentFile: string | undefined;\n typeRegistry: TypeRegistry;\n options: AnalyzeTraceOptions;\n}): Promise<HotSpot[]> {\n if (span.event.cat === \"check\") {\n currentFile = span.event.args.path;\n }\n\n const children: HotSpot[] = [];\n if (span.children.length) {\n // Sort slow to fast\n const sortedChildren = span.children.sort(\n (a, b) => b.duration - a.duration,\n );\n for (const child of sortedChildren) {\n children.push(\n ...(await getHotspotsWorker({\n span: child,\n currentFile,\n typeRegistry,\n options,\n })),\n );\n }\n }\n\n if (span.event.name !== \"root\") {\n const hotFrame = await makeHotFrame({\n span,\n children,\n typeRegistry,\n });\n if (hotFrame) {\n return [hotFrame];\n }\n }\n\n return children;\n}\n\nconst notFound = {\n children: [],\n resolvedType: {\n id: -1,\n display: \"[Type Not Found]\",\n flags: [],\n },\n} satisfies HotType;\n\nfunction getHotType({\n id,\n typeRegistry,\n}: {\n id: number;\n typeRegistry: TypeRegistry;\n}): HotType {\n function worker(id: TypeId, ancestorIds: TypeId[]): HotType {\n if (id === -1) {\n return notFound;\n }\n\n const resolvedType = typeRegistry[id];\n\n if (!resolvedType) {\n throw new Error(`Type ${id} not found`);\n }\n\n const children: HotType[] = [];\n\n // If there's a cycle, suppress the children, but not the type itself\n if (ancestorIds.indexOf(id) < 0) {\n ancestorIds.push(id);\n\n const properties = Object.keys(resolvedType) as (keyof ResolvedType)[];\n for (const property of properties) {\n switch (property) {\n case \"aliasTypeArguments\":\n case \"intersectionTypes\":\n case \"typeArguments\":\n case \"unionTypes\": {\n const typeIds = resolvedType[property];\n if (!Array.isArray(typeIds)) {\n throw new Error(`Expected array for ${property}`);\n }\n for (const typeId of typeIds) {\n const child = worker(typeId, ancestorIds);\n if (child) {\n children.push(child);\n }\n }\n continue;\n }\n\n case \"aliasType\":\n case \"conditionalCheckType\":\n case \"conditionalExtendsType\":\n case \"conditionalFalseType\":\n case \"conditionalTrueType\":\n case \"constraintType\":\n case \"evolvingArrayElementType\":\n case \"evolvingArrayFinalType\":\n case \"indexedAccessIndexType\":\n case \"indexedAccessObjectType\":\n case \"instantiatedType\":\n case \"keyofType\":\n case \"reverseMappedConstraintType\":\n case \"reverseMappedMappedType\":\n case \"reverseMappedSourceType\":\n case \"substitutionBaseType\": {\n const typeId = resolvedType[property] as TypeId;\n const child = worker(typeId, ancestorIds);\n if (child) {\n children.push(child);\n }\n break;\n }\n\n case \"destructuringPattern\":\n case \"display\":\n case \"firstDeclaration\":\n case \"flags\":\n case \"id\":\n case \"intrinsicName\":\n case \"isTuple\":\n case \"recursionId\":\n case \"referenceLocation\":\n case \"symbolName\":\n break;\n\n default:\n property satisfies never;\n throw new Error(`Unexpected property ${property}`);\n }\n }\n ancestorIds.pop();\n }\n\n return {\n resolvedType,\n children,\n };\n }\n\n return worker(id, []);\n}\n\nasync function makeHotFrame({\n span,\n children,\n typeRegistry,\n}: {\n span: EventSpan;\n children: HotSpot[];\n typeRegistry: TypeRegistry;\n}): Promise<HotSpot | undefined> {\n const { event, duration } = span;\n\n const timeMs = Math.round(duration / 1000);\n switch (event.name) {\n // case \"findSourceFile\":\n // TODO (https://github.com/microsoft/typescript-analyze-trace/issues/2)\n\n case \"checkSourceFile\": {\n const filePath = event.args.path;\n const normalizedPath = normalize(filePath);\n return {\n description: `Check file ${normalizedPath}`,\n timeMs,\n path: normalizedPath,\n\n children,\n };\n }\n\n case \"structuredTypeRelatedTo\":\n return {\n description: `Compare types ${event.args.sourceId} and ${event.args.targetId}`,\n timeMs,\n children,\n types: [\n getHotType({\n id: event.args.sourceId,\n typeRegistry,\n }),\n getHotType({\n id: event.args.targetId,\n typeRegistry,\n }),\n ],\n };\n\n case \"getVariancesWorker\":\n return {\n description: `Determine variance of type ${event.args.id}`,\n timeMs,\n children,\n types: [getHotType({ id: event.args.id, typeRegistry })],\n };\n\n case \"checkExpression\":\n case \"checkVariableDeclaration\": {\n const filePath = event.args.path;\n const path = filePath ? { path: normalize(filePath) } : {};\n const frame: HotSpot = {\n description: event.name,\n timeMs,\n ...path,\n children: [],\n };\n return frame;\n }\n\n default:\n return undefined;\n }\n}\n","import {\n packageNameRegex,\n type TraceEvent,\n type TraceJsonSchema,\n} from \"@typeslayer/validate\";\nimport type { NodeModulePaths } from \"./utils\";\n\nexport function getNodeModulePaths(\n traceJson: TraceJsonSchema,\n): NodeModulePaths {\n const nodeModulePaths: NodeModulePaths = {};\n traceJson.forEach((event: TraceEvent) => {\n if (event.name !== \"findSourceFile\") {\n return;\n }\n const path = event.args.fileName;\n if (path) {\n while (true) {\n const match = packageNameRegex.exec(path);\n if (!match) {\n break;\n }\n const packageName = match[1];\n\n const packagePath = match.input.substring(\n 0,\n match.index + match[0].length,\n );\n\n if (packageName in nodeModulePaths) {\n const paths = nodeModulePaths[packageName];\n if (paths && paths.indexOf(packagePath) < 0) {\n // Usually contains exactly one element\n paths.push(packagePath);\n }\n } else {\n nodeModulePaths[packageName] = [packagePath];\n }\n }\n }\n });\n\n return nodeModulePaths;\n}\n","import {\n eventPhase,\n type TraceEvent,\n type TraceJsonSchema,\n} from \"@typeslayer/validate\";\nimport type {\n AnalyzeTraceOptions,\n EventSpan,\n Microseconds,\n ParseResult,\n} from \"./utils\";\n\n/*\n * This function takes an array of trace events and converts them into spans.\n */\nexport function createSpans(traceFile: TraceJsonSchema): ParseResult {\n // Sorted in increasing order of start time (even when below timestamp resolution)\n const unclosedStack: TraceEvent[] = [];\n\n // Sorted in increasing order of end time, then increasing order of start time (even when below timestamp resolution)\n const spans: EventSpan[] = [];\n\n traceFile.forEach((event: TraceEvent) => {\n switch (event.ph) {\n case eventPhase.begin:\n unclosedStack.push(event);\n return;\n\n case eventPhase.end: {\n const beginEvent = unclosedStack.pop();\n if (!beginEvent) {\n throw new Error(\"Unmatched end event\");\n }\n spans.push({\n event: beginEvent,\n start: beginEvent.ts,\n end: event.ts,\n duration: event.ts - beginEvent.ts,\n children: [],\n });\n break;\n }\n\n case eventPhase.complete: {\n const start = event.ts;\n const duration = event.dur ?? 0;\n spans.push({\n event,\n start,\n end: start + duration,\n duration,\n children: [],\n });\n break;\n }\n\n case eventPhase.instantGlobal:\n case eventPhase.metadata:\n return;\n\n default:\n event satisfies never;\n }\n });\n\n const parseResult: ParseResult = {\n firstSpanStart: Math.min(...spans.map(span => span.start)),\n lastSpanEnd: Math.max(...spans.map(span => span.end)),\n spans,\n unclosedStack,\n };\n return parseResult;\n}\n\nexport function createSpanTree(\n parseResult: ParseResult,\n options: AnalyzeTraceOptions,\n): EventSpan {\n const { firstSpanStart, lastSpanEnd, spans, unclosedStack } = parseResult;\n\n // Add unclosed events to the spans\n for (let i = unclosedStack.length - 1; i >= 0; i--) {\n const event = unclosedStack[i];\n const start = event.ts;\n const end = lastSpanEnd;\n spans.push({\n event,\n start,\n end,\n duration: end - start,\n children: [],\n });\n }\n\n spans.sort((a, b) => a.start - b.start);\n\n const root: EventSpan = {\n event: {\n name: \"root\",\n cat: \"program\",\n },\n start: firstSpanStart,\n end: lastSpanEnd,\n duration: lastSpanEnd - firstSpanStart,\n children: [],\n };\n const stack = [root];\n\n for (const span of spans) {\n let i = stack.length - 1;\n for (; i > 0; i--) {\n // No need to check root at stack[0]\n const curr = stack[i];\n if (curr.end > span.start) {\n // Pop down to parent\n stack.length = i + 1;\n break;\n }\n }\n\n /** Microseconds */\n const thresholdDuration: Microseconds = options.forceMillis * 1000;\n const isAboveThresholdDuration = span.duration >= thresholdDuration;\n\n const parent = stack[i];\n const parentDuration = parent.end - parent.start;\n const isSignificantPortionOfParent =\n span.duration >= parentDuration * options.minSpanParentPercentage;\n\n if (isAboveThresholdDuration || isSignificantPortionOfParent) {\n parent.children.push(span);\n stack.push(span);\n }\n }\n\n return root;\n}\n","import { existsSync } from \"node:fs\";\nimport { stat } from \"node:fs/promises\";\nimport {\n event_checktypes__checkCrossProductUnion_DepthLimit,\n event_checktypes__checkTypeRelatedTo_DepthLimit,\n event_checktypes__getTypeAtFlowNode_DepthLimit,\n event_checktypes__instantiateType_DepthLimit,\n event_checktypes__recursiveTypeRelatedTo_DepthLimit,\n event_checktypes__removeSubtypes_DepthLimit,\n event_checktypes__traceUnionsOrIntersectionsTooLarge_DepthLimit,\n event_checktypes__typeRelatedToDiscriminatedType_DepthLimit,\n resolvedType,\n traceEvent,\n} from \"@typeslayer/validate\";\nimport { z } from \"zod/v4\";\n\nexport const absolutePath = z.string().refine(\n path => {\n return (\n path.startsWith(\"/\") || path.startsWith(\"C:\\\\\") || path.startsWith(\"D:\\\\\")\n );\n },\n {\n message: \"Path must be absolute\",\n },\n);\nexport type AbsolutePath = z.infer<typeof absolutePath>;\n\nexport const project = z.object({\n configFilePath: absolutePath.optional(),\n tracePath: absolutePath,\n typesPath: absolutePath,\n});\nexport type Project = z.infer<typeof project>;\n\nexport const projectResult = z.object({\n project: project,\n stdout: z.string(),\n stderr: z.string(),\n exitCode: z.number().optional(),\n signal: z.enum([\"SIGINT\", \"SIGTERM\"]).optional(),\n});\nexport type ProjectResult = z.infer<typeof projectResult>;\n\nexport const hotType = z.object({\n resolvedType: resolvedType,\n get children() {\n return z.array(hotType);\n },\n});\nexport type HotType = z.infer<typeof hotType>;\n\nexport const hotSpot = z.object({\n description: z.string(),\n timeMs: z.number(),\n get children() {\n return z.array(hotSpot);\n },\n\n path: absolutePath.optional(),\n types: z.array(hotType).optional(),\n startLine: z.number().optional(),\n startChar: z.number().optional(),\n startOffset: z.number().optional(),\n endLine: z.number().optional(),\n endChar: z.number().optional(),\n endOffset: z.number().optional(),\n});\nexport type HotSpot = z.infer<typeof hotSpot>;\n\nexport const duplicatedPackageInstance = z.object({\n path: absolutePath,\n version: z.string(),\n});\nexport type DuplicatedPackageInstance = z.infer<\n typeof duplicatedPackageInstance\n>;\n\nexport const duplicatedPackage = z.object({\n name: z.string(),\n instances: z.array(duplicatedPackageInstance),\n});\nexport type DuplicatedPackage = z.infer<typeof duplicatedPackage>;\n\nexport const rootSpan = z.object({\n name: z.literal(\"root\"),\n cat: z.literal(\"program\"),\n});\nexport type RootSpan = z.infer<typeof rootSpan>;\n\nexport const eventSpan = z.object({\n event: z.union([traceEvent, rootSpan]),\n start: z.number(),\n end: z.number(),\n duration: z.number(),\n get children() {\n return z.array(eventSpan);\n },\n});\nexport type EventSpan = z.infer<typeof eventSpan>;\n\nexport const microseconds = z.number();\nexport type Microseconds = z.infer<typeof microseconds>;\n\nexport const packageName = z.string();\n\nexport const packagePath = z.string();\n\nexport const nodeModulePaths = z.record(packageName, z.array(packagePath));\n/** This is a map where the key corresponds to an NPM package and the value is an array of all files in that package that were used */\nexport type NodeModulePaths = z.infer<typeof nodeModulePaths>;\n\nexport const parseResult = z.object({\n firstSpanStart: z.number(),\n lastSpanEnd: z.number(),\n spans: z.array(eventSpan),\n unclosedStack: z.array(traceEvent),\n});\nexport type ParseResult = z.infer<typeof parseResult>;\n\nexport const analyzeTraceOptions = z.object({\n /** Events of at least this duration (in milliseconds) will reported unconditionally */\n forceMillis: z.number(),\n /** Events of less than this duration (in milliseconds) will suppressed unconditionally */\n skipMillis: z.number(),\n /** Expand types when printing */\n expandTypes: z.boolean(),\n /** force showing spans that are some percentage of their parent, independent of parent time */\n minSpanParentPercentage: z.number(),\n /** the minimum number of emitted imports from a declaration file or bundle */\n importExpressionThreshold: z.number(),\n});\nexport type AnalyzeTraceOptions = z.infer<typeof analyzeTraceOptions>;\n\nexport const isFile = async (path: string) => {\n return stat(path)\n .then(stats => stats.isFile())\n .catch(_ => false);\n};\n\nexport const throwIfNotDirectory = async (path: string) => {\n if (!existsSync(path) || !(await stat(path))?.isDirectory()) {\n throw new Error(`${path} is not a directory`);\n }\n return path;\n};\n\nexport const analyzeTraceResult = z.object({\n /** Events that were not closed */\n unterminatedEvents: z.array(traceEvent),\n /** Hot spots in the trace */\n hotSpots: z.array(hotSpot),\n /** Packages that are duplicated in the trace */\n duplicatePackages: z.array(duplicatedPackage),\n /** Paths to all node modules used in the trace */\n nodeModulePaths: nodeModulePaths,\n /** Depth limit events grouped by their event name */\n depthLimits: z.object({\n checkCrossProductUnion_DepthLimit: z.array(\n event_checktypes__checkCrossProductUnion_DepthLimit,\n ),\n checkTypeRelatedTo_DepthLimit: z.array(\n event_checktypes__checkTypeRelatedTo_DepthLimit,\n ),\n getTypeAtFlowNode_DepthLimit: z.array(\n event_checktypes__getTypeAtFlowNode_DepthLimit,\n ),\n instantiateType_DepthLimit: z.array(\n event_checktypes__instantiateType_DepthLimit,\n ),\n recursiveTypeRelatedTo_DepthLimit: z.array(\n event_checktypes__recursiveTypeRelatedTo_DepthLimit,\n ),\n removeSubtypes_DepthLimit: z.array(\n event_checktypes__removeSubtypes_DepthLimit,\n ),\n traceUnionsOrIntersectionsTooLarge_DepthLimit: z.array(\n event_checktypes__traceUnionsOrIntersectionsTooLarge_DepthLimit,\n ),\n typeRelatedToDiscriminatedType_DepthLimit: z.array(\n event_checktypes__typeRelatedToDiscriminatedType_DepthLimit,\n ),\n }),\n});\nexport type AnalyzeTraceResult = z.infer<typeof analyzeTraceResult>;\n"],"mappings":"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MACXA,GAAE,QAAQ,CAAC;;MACXA,GAAE,QAAQ,CAAC;;MACXA,GAAE,QAAQ,CAAC;;MACXA,GAAE,QAAQ,CAAC;;MACXA,GAAE,QAAQ,CAAC;;IACb,CAAC;EACH,CAAC;AACH,CAAC,EACA,OAAO;AAMH,IAAM,aAAaA,GAAE;EAC1B;EACA;IACE;IACA;IACA;IAEA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IAEA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IAEA,GAAG;IAEH;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;EACF;EACA;;;;;;;EAOA;AACF;AAGO,IAAM,kBAAkBA,GAAE,MAAM,UAAU;AG5lCjD,IAAM,wGAEF,CAAC,EAAE,IAAI,GAAG,aAAa,IAAI,OAAO,CAAC,EAAE,CAAC;AAEnC,IAAM,qBAAqB,CAAC,cAA4C;AAC7E,SAAO,sGAAsG;IAC3G;EACF;AACF;ACbO,IAAM,sBAAsB;AAEnC,IAAM,OAAOC,GAAE,KAAK;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACF,CAAC;AAEM,IAAM,eAAeA,GACzB,OAAO;EACN,IAAI;EACJ,OAAOA,GAAE,MAAM,IAAI;EAEnB,aAAaA,GAAE,OAAO,EAAE,SAAS;EACjC,eAAeA,GACZ,KAAK;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;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","names":["existsSync","readFile","join","z","z","z","packagePath","nodeModulePaths","packageName","id","resolvedType","typeId","nodeModulePaths","packageName","packagePath","parseResult","existsSync","z","absolutePath","existsSync","join","existsSync","readFile","nodeModulePaths"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typeslayer/analyze-trace",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"description": "Analyze TypeScript compiler trace events to identify performance bottlenecks",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": false,
|
|
@@ -40,11 +40,11 @@
|
|
|
40
40
|
"typecheck": "tsc --noEmit"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@typeslayer/validate": "workspace:*",
|
|
44
43
|
"zod": "4.1.13"
|
|
45
44
|
},
|
|
46
45
|
"devDependencies": {
|
|
47
46
|
"@types/node": "24.10.1",
|
|
47
|
+
"@typeslayer/validate": "workspace:*",
|
|
48
48
|
"tsup": "8.5.1",
|
|
49
49
|
"typescript": "5.9.3"
|
|
50
50
|
}
|
package/tsup.config.ts
CHANGED
|
@@ -10,7 +10,8 @@ export default defineConfig([
|
|
|
10
10
|
splitting: false,
|
|
11
11
|
sourcemap: true,
|
|
12
12
|
clean: true,
|
|
13
|
-
external: ["
|
|
13
|
+
external: ["zod"],
|
|
14
|
+
noExternal: ["@typeslayer/validate"],
|
|
14
15
|
},
|
|
15
16
|
// Browser-safe build (types only)
|
|
16
17
|
{
|
|
@@ -21,6 +22,7 @@ export default defineConfig([
|
|
|
21
22
|
splitting: false,
|
|
22
23
|
sourcemap: true,
|
|
23
24
|
clean: false,
|
|
24
|
-
external: ["
|
|
25
|
+
external: ["zod"],
|
|
26
|
+
noExternal: ["@typeslayer/validate"],
|
|
25
27
|
},
|
|
26
28
|
]);
|