bitfab 0.61.0 → 0.61.1
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/README.md +8 -5
- package/dist/autoTrace.cjs +1 -1
- package/dist/autoTrace.cjs.map +1 -1
- package/dist/autoTrace.js +1 -1
- package/dist/chunk-6R33XLNY.js +28 -0
- package/dist/chunk-6R33XLNY.js.map +1 -0
- package/dist/{chunk-5DNB7EN7.js → chunk-BMJNDIVA.js} +2 -2
- package/dist/chunk-BMJNDIVA.js.map +1 -0
- package/dist/{chunk-O52C6BRF.js → chunk-ENHRFXCR.js} +7 -7
- package/dist/{chunk-2M62EGYK.js → chunk-HKUHPLAM.js} +2 -2
- package/dist/{chunk-2M62EGYK.js.map → chunk-HKUHPLAM.js.map} +1 -1
- package/dist/{chunk-3BTITSNA.js → chunk-I5J2FDKH.js} +2 -2
- package/dist/{chunk-3BTITSNA.js.map → chunk-I5J2FDKH.js.map} +1 -1
- package/dist/chunk-OXFZJP4E.js +30 -0
- package/dist/chunk-OXFZJP4E.js.map +1 -0
- package/dist/chunk-PACLPKDH.js +513 -0
- package/dist/chunk-PACLPKDH.js.map +1 -0
- package/dist/{chunk-J54ZR6NF.js → chunk-S4WE6U2Y.js} +3 -3
- package/dist/{chunk-6JQL37VC.js → chunk-VKGLQL7V.js} +2 -2
- package/dist/{http-PKQBVZD6.js → http-5DA23DKC.js} +2 -2
- package/dist/{http-2EZA7I4F.js → http-NY6M2AK3.js} +2 -2
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -4
- package/dist/node.cjs +2 -2
- package/dist/node.cjs.map +1 -1
- package/dist/node.js +4 -4
- package/dist/{replay-XC2YOK4X.js → replay-KVENJRCX.js} +3 -3
- package/dist/replayCli.js +2 -2
- package/dist/seedCli.js +2 -2
- package/dist/transform/babel.cjs +418 -0
- package/dist/transform/babel.cjs.map +1 -0
- package/dist/transform/babel.d.cts +27 -0
- package/dist/transform/babel.d.ts +27 -0
- package/dist/transform/babel.js +379 -0
- package/dist/transform/babel.js.map +1 -0
- package/dist/transform/bun.cjs +586 -0
- package/dist/transform/bun.cjs.map +1 -0
- package/dist/transform/bun.d.cts +12 -0
- package/dist/transform/bun.d.ts +12 -0
- package/dist/transform/bun.js +14 -0
- package/dist/transform/bun.js.map +1 -0
- package/dist/transform/esbuild.cjs +586 -0
- package/dist/transform/esbuild.cjs.map +1 -0
- package/dist/transform/esbuild.d.cts +12 -0
- package/dist/transform/esbuild.d.ts +12 -0
- package/dist/transform/esbuild.js +14 -0
- package/dist/transform/esbuild.js.map +1 -0
- package/dist/transform/loaderRuntime.cjs +627 -0
- package/dist/transform/loaderRuntime.cjs.map +1 -0
- package/dist/transform/loaderRuntime.d.cts +12 -0
- package/dist/transform/loaderRuntime.d.ts +12 -0
- package/dist/transform/loaderRuntime.js +93 -0
- package/dist/transform/loaderRuntime.js.map +1 -0
- package/dist/transform/nest.cjs +589 -0
- package/dist/transform/nest.cjs.map +1 -0
- package/dist/transform/nest.d.cts +16 -0
- package/dist/transform/nest.d.ts +16 -0
- package/dist/transform/nest.js +17 -0
- package/dist/transform/nest.js.map +1 -0
- package/dist/transform/next.cjs +641 -0
- package/dist/transform/next.cjs.map +1 -0
- package/dist/transform/next.d.cts +40 -0
- package/dist/transform/next.d.ts +40 -0
- package/dist/transform/next.js +69 -0
- package/dist/transform/next.js.map +1 -0
- package/dist/transform/nodeLoader.js +640 -0
- package/dist/transform/nodeLoader.js.map +1 -0
- package/dist/transform/register.js +5 -0
- package/dist/transform/register.js.map +1 -0
- package/dist/transform/rolldown.cjs +586 -0
- package/dist/transform/rolldown.cjs.map +1 -0
- package/dist/transform/rolldown.d.cts +12 -0
- package/dist/transform/rolldown.d.ts +12 -0
- package/dist/transform/rolldown.js +14 -0
- package/dist/transform/rolldown.js.map +1 -0
- package/dist/transform/rollup.cjs +586 -0
- package/dist/transform/rollup.cjs.map +1 -0
- package/dist/transform/rollup.d.cts +12 -0
- package/dist/transform/rollup.d.ts +12 -0
- package/dist/transform/rollup.js +14 -0
- package/dist/transform/rollup.js.map +1 -0
- package/dist/transform/rsbuild.cjs +586 -0
- package/dist/transform/rsbuild.cjs.map +1 -0
- package/dist/transform/rsbuild.d.cts +12 -0
- package/dist/transform/rsbuild.d.ts +12 -0
- package/dist/transform/rsbuild.js +14 -0
- package/dist/transform/rsbuild.js.map +1 -0
- package/dist/transform/rspack.cjs +586 -0
- package/dist/transform/rspack.cjs.map +1 -0
- package/dist/transform/rspack.d.cts +12 -0
- package/dist/transform/rspack.d.ts +12 -0
- package/dist/transform/rspack.js +14 -0
- package/dist/transform/rspack.js.map +1 -0
- package/dist/transform/swc.cjs +592 -0
- package/dist/transform/swc.cjs.map +1 -0
- package/dist/transform/swc.d.cts +32 -0
- package/dist/transform/swc.d.ts +32 -0
- package/dist/transform/swc.js +33 -0
- package/dist/transform/swc.js.map +1 -0
- package/dist/transform/typescript.cjs +566 -0
- package/dist/transform/typescript.cjs.map +1 -0
- package/dist/transform/typescript.d.cts +22 -0
- package/dist/transform/typescript.d.ts +22 -0
- package/dist/transform/typescript.js +10 -0
- package/dist/transform/typescript.js.map +1 -0
- package/dist/transform/unplugin.cjs +583 -0
- package/dist/transform/unplugin.cjs.map +1 -0
- package/dist/transform/unplugin.d.cts +6 -0
- package/dist/transform/unplugin.d.ts +6 -0
- package/dist/transform/unplugin.js +9 -0
- package/dist/transform/unplugin.js.map +1 -0
- package/dist/transform/vite.cjs +586 -0
- package/dist/transform/vite.cjs.map +1 -0
- package/dist/transform/vite.d.cts +15 -0
- package/dist/transform/vite.d.ts +15 -0
- package/dist/transform/vite.js +14 -0
- package/dist/transform/vite.js.map +1 -0
- package/dist/transform/webpack.cjs +586 -0
- package/dist/transform/webpack.cjs.map +1 -0
- package/dist/transform/webpack.d.cts +12 -0
- package/dist/transform/webpack.d.ts +12 -0
- package/dist/transform/webpack.js +14 -0
- package/dist/transform/webpack.js.map +1 -0
- package/dist/transformOptions-Df2_Chtc.d.cts +10 -0
- package/dist/transformOptions-Df2_Chtc.d.ts +10 -0
- package/package.json +167 -7
- package/transform-loader.cjs +19 -0
- package/transform-loader.d.cts +19 -0
- package/dist/chunk-5DNB7EN7.js.map +0 -1
- /package/dist/{chunk-O52C6BRF.js.map → chunk-ENHRFXCR.js.map} +0 -0
- /package/dist/{chunk-J54ZR6NF.js.map → chunk-S4WE6U2Y.js.map} +0 -0
- /package/dist/{chunk-6JQL37VC.js.map → chunk-VKGLQL7V.js.map} +0 -0
- /package/dist/{http-2EZA7I4F.js.map → http-5DA23DKC.js.map} +0 -0
- /package/dist/{http-PKQBVZD6.js.map → http-NY6M2AK3.js.map} +0 -0
- /package/dist/{replay-XC2YOK4X.js.map → replay-KVENJRCX.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../bitfab-typescript-transform/src/webpackPlugin.ts","../../../bitfab-typescript-transform/src/unplugin.ts","../../../bitfab-typescript-transform/src/transformOptions.ts","../../../bitfab-typescript-transform/src/typescriptTransformer.ts"],"sourcesContent":["import type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport { bitfabTraceUnplugin } from \"./unplugin.js\"\n\n/**\n * Add experimental Bitfab automatic call tracing to webpack.\n *\n * @experimental The generated function identity protocol may change.\n */\nexport default function bitfabWebpackPlugin(\n options: BitfabTransformOptions = {},\n): ReturnType<typeof bitfabTraceUnplugin.webpack> {\n return bitfabTraceUnplugin.webpack(options)\n}\n","import { createUnplugin } from \"unplugin\"\nimport type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport { shouldTransformBitfabFile } from \"./transformOptions.js\"\nimport { transformBitfabTypeScriptSource } from \"./typescriptTransformer.js\"\n\nexport const bitfabTraceUnplugin = createUnplugin<\n BitfabTransformOptions | undefined,\n false\n>((options) => {\n const resolvedOptions = options ?? {}\n\n return {\n name: \"bitfab-auto-trace\",\n enforce: \"pre\",\n transform(source, filename) {\n if (!shouldTransformBitfabFile(filename, resolvedOptions)) {\n return null\n }\n\n return {\n ...transformBitfabTypeScriptSource(source, filename, resolvedOptions),\n map: null,\n }\n },\n }\n})\n","export interface BitfabTransformOptions {\n /** Module that exports the automatic span runtime. */\n runtimeModule?: string\n /** Working directory removed from generated function IDs. */\n cwd?: string\n /** Return false to leave a file unchanged. */\n include?: (filename: string) => boolean\n}\n\nconst AUTO_TRACE_FUNCTION_ID_VERSION = \"ts-auto-v1\"\nexport const AUTO_TRACE_TRANSFORM_MARKER =\n \"__bitfab_auto_trace_transformed_v1__\"\n\nexport function autoTraceFunctionId(file: string, name: string): string {\n return `${AUTO_TRACE_FUNCTION_ID_VERSION}:${file}#${name}`\n}\n\nexport function shouldTransformBitfabFile(\n filename: string,\n options: BitfabTransformOptions,\n): boolean {\n if (!filename) {\n return false\n }\n if (options.include && !options.include(filename)) {\n return false\n }\n\n const normalized = filename.replace(/\\\\/g, \"/\").split(/[?#]/, 1)[0] ?? \"\"\n const normalizedCwd = options.cwd?.replace(/\\\\/g, \"/\").replace(/\\/$/, \"\")\n const isAbsolute =\n normalized.startsWith(\"/\") || /^[A-Za-z]:\\//.test(normalized)\n if (\n normalizedCwd &&\n isAbsolute &&\n normalized !== normalizedCwd &&\n !normalized.startsWith(`${normalizedCwd}/`)\n ) {\n return false\n }\n return (\n !normalized.includes(\"/node_modules/\") &&\n !normalized.endsWith(\".d.ts\") &&\n /\\.[cm]?[jt]sx?$/.test(normalized)\n )\n}\n","import ts from \"typescript\"\nimport type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport {\n AUTO_TRACE_TRANSFORM_MARKER,\n autoTraceFunctionId,\n shouldTransformBitfabFile,\n} from \"./transformOptions.js\"\n\nexport type { BitfabTransformOptions } from \"./transformOptions.js\"\n\nfunction hasUseClientDirective(sourceFile: ts.SourceFile): boolean {\n return sourceFile.statements.some(\n (statement) =>\n ts.isExpressionStatement(statement) &&\n ts.isStringLiteral(statement.expression) &&\n statement.expression.text === \"use client\",\n )\n}\n\nfunction hasTransformMarker(sourceFile: ts.SourceFile): boolean {\n return sourceFile.statements.some(\n (statement) =>\n ts.isVariableStatement(statement) &&\n statement.declarationList.declarations.some(\n (declaration) =>\n ts.isIdentifier(declaration.name) &&\n declaration.name.text === AUTO_TRACE_TRANSFORM_MARKER,\n ),\n )\n}\n\nfunction isBitfabMemberCall(\n node: ts.Node,\n memberName: \"trace\" | \"withNode\" | \"withSpan\" | \"withTrace\",\n): node is ts.CallExpression {\n return (\n ts.isCallExpression(node) &&\n ts.isPropertyAccessExpression(node.expression) &&\n node.expression.name.text === memberName\n )\n}\n\nfunction withNodeFunctionName(node: ts.CallExpression): string | null {\n if (!isBitfabMemberCall(node, \"withNode\") || node.arguments.length > 2) {\n return null\n }\n const fn = node.arguments[node.arguments.length - 1]\n if (ts.isIdentifier(fn)) {\n return fn.text\n }\n if (ts.isPropertyAccessExpression(fn)) {\n return fn.name.text\n }\n if (ts.isFunctionExpression(fn) && fn.name) {\n return fn.name.text\n }\n return null\n}\n\nfunction traceDecorators(node: ts.Node): readonly ts.Decorator[] {\n if (!ts.canHaveDecorators(node)) {\n return []\n }\n return ts.getDecorators(node) ?? []\n}\n\nfunction isTraceDecoratorRoot(node: ts.Node): boolean {\n return traceDecorators(node).some((decorator) =>\n isBitfabMemberCall(decorator.expression, \"trace\"),\n )\n}\n\nfunction collectBitfabWrappedFunctions(sourceFile: ts.SourceFile): {\n inlineRoots: ReadonlySet<ts.Node>\n referencedRoots: ReadonlySet<string>\n} {\n const inlineRoots = new Set<ts.Node>()\n const referencedRoots = new Set<string>()\n\n function visit(node: ts.Node): void {\n if (\n isBitfabMemberCall(node, \"withTrace\") ||\n isBitfabMemberCall(node, \"withSpan\")\n ) {\n const fn = node.arguments[node.arguments.length - 1]\n if (fn && (ts.isArrowFunction(fn) || ts.isFunctionExpression(fn))) {\n inlineRoots.add(fn)\n } else if (fn && ts.isIdentifier(fn)) {\n referencedRoots.add(fn.text)\n }\n }\n ts.forEachChild(node, visit)\n }\n\n visit(sourceFile)\n return { inlineRoots, referencedRoots }\n}\n\nfunction declaredFunctionName(node: ts.FunctionLikeDeclaration): string | null {\n if (node.name && ts.isIdentifier(node.name)) {\n return node.name.text\n }\n if (\n (ts.isArrowFunction(node) || ts.isFunctionExpression(node)) &&\n ts.isVariableDeclaration(node.parent) &&\n ts.isIdentifier(node.parent.name)\n ) {\n return node.parent.name.text\n }\n if (\n (ts.isArrowFunction(node) || ts.isFunctionExpression(node)) &&\n ts.isPropertyAssignment(node.parent) &&\n (ts.isIdentifier(node.parent.name) || ts.isStringLiteral(node.parent.name))\n ) {\n return node.parent.name.text\n }\n return null\n}\n\nfunction objectContainerName(node: ts.ObjectLiteralExpression): string | null {\n if (\n ts.isVariableDeclaration(node.parent) &&\n ts.isIdentifier(node.parent.name)\n ) {\n return node.parent.name.text\n }\n if (\n ts.isPropertyAssignment(node.parent) &&\n (ts.isIdentifier(node.parent.name) || ts.isStringLiteral(node.parent.name))\n ) {\n return node.parent.name.text\n }\n return null\n}\n\nfunction functionName(node: ts.FunctionLikeDeclaration): string {\n const ownName = declaredFunctionName(node)\n if (ownName) {\n const scopes: string[] = []\n let ancestor: ts.Node | undefined = node.parent\n while (ancestor) {\n if (isInstrumentableFunction(ancestor)) {\n const name = declaredFunctionName(ancestor)\n if (name) {\n scopes.unshift(name)\n }\n } else if (\n (ts.isClassDeclaration(ancestor) || ts.isClassExpression(ancestor)) &&\n ancestor.name\n ) {\n scopes.unshift(ancestor.name.text)\n } else if (ts.isObjectLiteralExpression(ancestor)) {\n const name = objectContainerName(ancestor)\n if (name) {\n scopes.unshift(name)\n }\n }\n ancestor = ancestor.parent\n }\n return [...scopes, ownName].join(\".\")\n }\n\n const sourceFile = node.getSourceFile()\n const position = sourceFile.getLineAndCharacterOfPosition(node.getStart())\n return `anonymous-${position.line + 1}-${position.character}`\n}\n\nfunction isBitfabWrappedFunction(\n node: ts.FunctionLikeDeclaration,\n inlineRoots: ReadonlySet<ts.Node>,\n referencedRoots: ReadonlySet<string>,\n): boolean {\n if (inlineRoots.has(node)) {\n return true\n }\n const name = declaredFunctionName(node)\n return name !== null && referencedRoots.has(name)\n}\n\nfunction isInstrumentableFunction(\n node: ts.Node,\n): node is\n | ts.FunctionDeclaration\n | ts.FunctionExpression\n | ts.ArrowFunction\n | ts.MethodDeclaration {\n if (\n !ts.isFunctionDeclaration(node) &&\n !ts.isFunctionExpression(node) &&\n !ts.isArrowFunction(node) &&\n !ts.isMethodDeclaration(node)\n ) {\n return false\n }\n\n return (\n node.body !== undefined &&\n node.asteriskToken === undefined &&\n (!node.name || !ts.isPrivateIdentifier(node.name))\n )\n}\n\nfunction normalizedFilename(filename: string, cwd: string): string {\n const normalized = filename.replace(/\\\\/g, \"/\").split(/[?#]/, 1)[0] ?? \"\"\n const normalizedCwd = cwd.replace(/\\\\/g, \"/\").replace(/\\/$/, \"\")\n return normalized.startsWith(`${normalizedCwd}/`)\n ? normalized.slice(normalizedCwd.length + 1)\n : normalized\n}\n\nfunction parameterInputs(\n factory: ts.NodeFactory,\n node: ts.FunctionLikeDeclaration,\n): ts.ArrayLiteralExpression {\n return factory.createArrayLiteralExpression(\n node.parameters.map((parameter, index) => {\n if (!ts.isArrowFunction(node)) {\n if (parameter.dotDotDotToken) {\n return factory.createSpreadElement(\n factory.createCallExpression(\n factory.createPropertyAccessExpression(\n factory.createArrayLiteralExpression([\n factory.createSpreadElement(\n factory.createIdentifier(\"arguments\"),\n ),\n ]),\n \"slice\",\n ),\n undefined,\n [factory.createNumericLiteral(index)],\n ),\n )\n }\n return factory.createElementAccessExpression(\n factory.createIdentifier(\"arguments\"),\n factory.createNumericLiteral(index),\n )\n }\n\n if (ts.isIdentifier(parameter.name)) {\n const identifier = factory.createIdentifier(parameter.name.text)\n return parameter.dotDotDotToken\n ? factory.createSpreadElement(identifier)\n : identifier\n }\n throw new Error(\n \"Bitfab transform invariant: arrow parameter requires argument wrapper\",\n )\n }),\n )\n}\n\nfunction needsArgumentWrapper(node: ts.FunctionLikeDeclaration): boolean {\n return (\n ts.isArrowFunction(node) &&\n node.parameters.some(\n (parameter) =>\n !ts.isIdentifier(parameter.name) || parameter.initializer !== undefined,\n )\n )\n}\n\nfunction isRestWrapper(node: ts.FunctionLikeDeclaration): boolean {\n return (\n node.parameters.length === 1 &&\n node.parameters[0]?.dotDotDotToken !== undefined\n )\n}\n\nfunction splitDirectivePrologue(body: ts.Block): {\n directives: readonly ts.Statement[]\n statements: readonly ts.Statement[]\n} {\n const firstNonDirective = body.statements.findIndex(\n (statement) =>\n !(\n ts.isExpressionStatement(statement) &&\n ts.isStringLiteral(statement.expression)\n ),\n )\n if (firstNonDirective === -1) {\n return { directives: body.statements, statements: [] }\n }\n return {\n directives: body.statements.slice(0, firstNonDirective),\n statements: body.statements.slice(firstNonDirective),\n }\n}\n\nfunction updateFunctionBody(\n factory: ts.NodeFactory,\n node: ts.FunctionLikeDeclaration,\n body: ts.Block,\n): ts.FunctionLikeDeclaration {\n if (ts.isFunctionDeclaration(node)) {\n return factory.updateFunctionDeclaration(\n node,\n node.modifiers,\n node.asteriskToken,\n node.name,\n node.typeParameters,\n node.parameters,\n node.type,\n body,\n )\n }\n if (ts.isFunctionExpression(node)) {\n return factory.updateFunctionExpression(\n node,\n node.modifiers,\n node.asteriskToken,\n node.name,\n node.typeParameters,\n node.parameters,\n node.type,\n body,\n )\n }\n if (ts.isArrowFunction(node)) {\n return factory.updateArrowFunction(\n node,\n node.modifiers,\n node.typeParameters,\n node.parameters,\n node.type,\n node.equalsGreaterThanToken,\n body,\n )\n }\n if (ts.isMethodDeclaration(node)) {\n return factory.updateMethodDeclaration(\n node,\n node.modifiers,\n node.asteriskToken,\n node.name,\n node.questionToken,\n node.typeParameters,\n node.parameters,\n node.type,\n body,\n )\n }\n return node\n}\n\n/**\n * Create Bitfab's experimental TypeScript compiler transform.\n *\n * The same transform powers the Vite, Rollup, esbuild, and programmatic SWC\n * adapters so generated function IDs remain consistent between build tools.\n *\n * @experimental The generated function identity protocol may change.\n */\nexport function createBitfabTypeScriptTransformer(\n options: BitfabTransformOptions = {},\n): ts.TransformerFactory<ts.SourceFile> {\n return (context) => (sourceFile) => {\n if (\n hasUseClientDirective(sourceFile) ||\n hasTransformMarker(sourceFile) ||\n !shouldTransformBitfabFile(sourceFile.fileName, options)\n ) {\n return sourceFile\n }\n\n const { factory } = context\n const { inlineRoots, referencedRoots } =\n collectBitfabWrappedFunctions(sourceFile)\n const runtimeIdentifier = factory.createUniqueName(\"bitfabAutoSpan\")\n const activeIdentifier = factory.createUniqueName(\"bitfabAutoTraceActive\")\n const wrapperIdentifier = factory.createUniqueName(\"bitfabAutoWrap\")\n const transformedNodes = new Set<ts.Node>()\n const definitions: ts.Statement[] = []\n let usedRuntime = false\n let usedWrapper = false\n const cwd = options.cwd ?? process.cwd()\n const file = normalizedFilename(sourceFile.fileName, cwd)\n\n const visitor: ts.Visitor = (node) => {\n const visited = ts.visitEachChild(node, visitor, context)\n if (ts.isCallExpression(node) && ts.isCallExpression(visited)) {\n const configuredName = withNodeFunctionName(node)\n if (configuredName !== null) {\n const args = [...visited.arguments]\n if (args.length === 1) {\n args.push(factory.createIdentifier(\"undefined\"))\n }\n args.push(factory.createStringLiteral(configuredName))\n return factory.updateCallExpression(\n visited,\n visited.expression,\n visited.typeArguments,\n args,\n )\n }\n }\n if (!isInstrumentableFunction(node)) {\n return visited\n }\n if (\n !isInstrumentableFunction(visited) ||\n transformedNodes.has(visited) ||\n isTraceDecoratorRoot(node) ||\n isBitfabWrappedFunction(node, inlineRoots, referencedRoots)\n ) {\n return visited\n }\n\n const name = functionName(node)\n if (name.startsWith(\"anonymous-\")) {\n return visited\n }\n const position = sourceFile.getLineAndCharacterOfPosition(node.getStart())\n const definition = factory.createObjectLiteralExpression(\n [\n factory.createPropertyAssignment(\n \"id\",\n factory.createStringLiteral(autoTraceFunctionId(file, name)),\n ),\n factory.createPropertyAssignment(\n \"name\",\n factory.createStringLiteral(name),\n ),\n factory.createPropertyAssignment(\n \"file\",\n factory.createStringLiteral(file),\n ),\n factory.createPropertyAssignment(\n \"line\",\n factory.createNumericLiteral(position.line + 1),\n ),\n factory.createPropertyAssignment(\n \"column\",\n factory.createNumericLiteral(position.character),\n ),\n ...(node.modifiers?.some(\n (modifier) => modifier.kind === ts.SyntaxKind.AsyncKeyword,\n )\n ? [factory.createPropertyAssignment(\"async\", factory.createTrue())]\n : []),\n ...(isRestWrapper(node)\n ? [\n factory.createPropertyAssignment(\n \"wrapper\",\n factory.createTrue(),\n ),\n ]\n : []),\n ],\n false,\n )\n const definitionIdentifier = factory.createUniqueName(\n \"bitfabAutoDefinition\",\n )\n definitions.push(\n factory.createVariableStatement(\n undefined,\n factory.createVariableDeclarationList(\n [\n factory.createVariableDeclaration(\n definitionIdentifier,\n undefined,\n undefined,\n definition,\n ),\n ],\n ts.NodeFlags.Const,\n ),\n ),\n )\n if (needsArgumentWrapper(visited)) {\n usedRuntime = true\n usedWrapper = true\n return factory.createCallExpression(wrapperIdentifier, undefined, [\n definitionIdentifier,\n visited as ts.ArrowFunction,\n ])\n }\n\n const visitedBody = visited.body as ts.ConciseBody\n const originalBody = ts.isBlock(visitedBody)\n ? visitedBody\n : factory.createBlock(\n [factory.createReturnStatement(visitedBody)],\n true,\n )\n const { directives, statements } = splitDirectivePrologue(originalBody)\n const invoke = factory.createArrowFunction(\n hasAsyncModifier(node)\n ? [factory.createModifier(ts.SyntaxKind.AsyncKeyword)]\n : undefined,\n undefined,\n [],\n undefined,\n factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),\n factory.updateBlock(originalBody, statements),\n )\n const body = factory.createBlock(\n [\n ...directives,\n factory.createIfStatement(\n factory.createCallExpression(activeIdentifier, undefined, []),\n factory.createBlock(\n [\n factory.createReturnStatement(\n factory.createCallExpression(runtimeIdentifier, undefined, [\n definitionIdentifier,\n parameterInputs(factory, visited),\n invoke,\n ]),\n ),\n ],\n true,\n ),\n ),\n ...statements,\n ],\n true,\n )\n const updated = updateFunctionBody(factory, visited, body)\n transformedNodes.add(updated)\n usedRuntime = true\n return updated\n }\n\n const transformed = ts.visitEachChild(sourceFile, visitor, context)\n if (!usedRuntime) {\n return transformed\n }\n\n const runtimeImport = factory.createImportDeclaration(\n undefined,\n factory.createImportClause(\n false,\n undefined,\n factory.createNamedImports([\n factory.createImportSpecifier(\n false,\n factory.createIdentifier(\"__bitfabAutoSpan\"),\n runtimeIdentifier,\n ),\n factory.createImportSpecifier(\n false,\n factory.createIdentifier(\"__bitfabAutoTraceActive\"),\n activeIdentifier,\n ),\n ...(usedWrapper\n ? [\n factory.createImportSpecifier(\n false,\n factory.createIdentifier(\"__bitfabAutoWrap\"),\n wrapperIdentifier,\n ),\n ]\n : []),\n ]),\n ),\n factory.createStringLiteral(options.runtimeModule ?? \"bitfab/auto\"),\n )\n const transformMarker = factory.createVariableStatement(\n undefined,\n factory.createVariableDeclarationList(\n [\n factory.createVariableDeclaration(\n factory.createIdentifier(AUTO_TRACE_TRANSFORM_MARKER),\n undefined,\n undefined,\n factory.createAssignment(\n factory.createPropertyAccessExpression(\n factory.createIdentifier(\"globalThis\"),\n factory.createIdentifier(AUTO_TRACE_TRANSFORM_MARKER),\n ),\n factory.createTrue(),\n ),\n ),\n ],\n ts.NodeFlags.Const,\n ),\n )\n return factory.updateSourceFile(transformed, [\n context.getCompilerOptions().module === ts.ModuleKind.CommonJS\n ? factory.createVariableStatement(\n undefined,\n factory.createVariableDeclarationList(\n [\n factory.createVariableDeclaration(\n factory.createObjectBindingPattern([\n factory.createBindingElement(\n undefined,\n \"__bitfabAutoSpan\",\n runtimeIdentifier,\n ),\n factory.createBindingElement(\n undefined,\n \"__bitfabAutoTraceActive\",\n activeIdentifier,\n ),\n ...(usedWrapper\n ? [\n factory.createBindingElement(\n undefined,\n \"__bitfabAutoWrap\",\n wrapperIdentifier,\n ),\n ]\n : []),\n ]),\n undefined,\n undefined,\n factory.createCallExpression(\n factory.createIdentifier(\"require\"),\n undefined,\n [\n factory.createStringLiteral(\n options.runtimeModule ?? \"bitfab/auto\",\n ),\n ],\n ),\n ),\n ],\n ts.NodeFlags.Const,\n ),\n )\n : runtimeImport,\n transformMarker,\n ...definitions,\n ...transformed.statements,\n ])\n }\n}\n\nfunction hasAsyncModifier(node: ts.Node): boolean {\n return ts.canHaveModifiers(node)\n ? (ts\n .getModifiers(node)\n ?.some((modifier) => modifier.kind === ts.SyntaxKind.AsyncKeyword) ??\n false)\n : false\n}\n\n/**\n * Transform one TypeScript or JavaScript module with Bitfab call tracing.\n *\n * @experimental The generated function identity protocol may change.\n */\nexport function transformBitfabTypeScriptSource(\n source: string,\n filename: string,\n options: BitfabTransformOptions = {},\n): { code: string } {\n const sourceFilename =\n filename.replace(/\\\\/g, \"/\").split(/[?#]/, 1)[0] ?? filename\n const sourceFile = ts.createSourceFile(\n sourceFilename,\n source,\n ts.ScriptTarget.Latest,\n true,\n sourceFilename.endsWith(\"x\") ? ts.ScriptKind.TSX : ts.ScriptKind.TS,\n )\n const result = ts.transform(sourceFile, [\n createBitfabTypeScriptTransformer(options),\n ])\n try {\n return {\n code: ts\n .createPrinter()\n .printFile(result.transformed[0] as ts.SourceFile),\n }\n } finally {\n result.dispose()\n }\n}\n"],"mappings":"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","names":["ts"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { B as BitfabTransformOptions } from '../transformOptions-Df2_Chtc.cjs';
|
|
2
|
+
import { bitfabTraceUnplugin } from './unplugin.cjs';
|
|
3
|
+
import 'unplugin';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Add experimental Bitfab automatic call tracing to webpack.
|
|
7
|
+
*
|
|
8
|
+
* @experimental The generated function identity protocol may change.
|
|
9
|
+
*/
|
|
10
|
+
declare function bitfabWebpackPlugin(options?: BitfabTransformOptions): ReturnType<typeof bitfabTraceUnplugin.webpack>;
|
|
11
|
+
|
|
12
|
+
export { bitfabWebpackPlugin as default };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { B as BitfabTransformOptions } from '../transformOptions-Df2_Chtc.js';
|
|
2
|
+
import { bitfabTraceUnplugin } from './unplugin.js';
|
|
3
|
+
import 'unplugin';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Add experimental Bitfab automatic call tracing to webpack.
|
|
7
|
+
*
|
|
8
|
+
* @experimental The generated function identity protocol may change.
|
|
9
|
+
*/
|
|
10
|
+
declare function bitfabWebpackPlugin(options?: BitfabTransformOptions): ReturnType<typeof bitfabTraceUnplugin.webpack>;
|
|
11
|
+
|
|
12
|
+
export { bitfabWebpackPlugin as default };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
bitfabTraceUnplugin
|
|
3
|
+
} from "../chunk-OXFZJP4E.js";
|
|
4
|
+
import "../chunk-PACLPKDH.js";
|
|
5
|
+
import "../chunk-6R33XLNY.js";
|
|
6
|
+
|
|
7
|
+
// ../bitfab-typescript-transform/src/webpackPlugin.ts
|
|
8
|
+
function bitfabWebpackPlugin(options = {}) {
|
|
9
|
+
return bitfabTraceUnplugin.webpack(options);
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
bitfabWebpackPlugin as default
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=webpack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../bitfab-typescript-transform/src/webpackPlugin.ts"],"sourcesContent":["import type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport { bitfabTraceUnplugin } from \"./unplugin.js\"\n\n/**\n * Add experimental Bitfab automatic call tracing to webpack.\n *\n * @experimental The generated function identity protocol may change.\n */\nexport default function bitfabWebpackPlugin(\n options: BitfabTransformOptions = {},\n): ReturnType<typeof bitfabTraceUnplugin.webpack> {\n return bitfabTraceUnplugin.webpack(options)\n}\n"],"mappings":";;;;;;;AAQe,SAAR,oBACL,UAAkC,CAAC,GACa;AAChD,SAAO,oBAAoB,QAAQ,OAAO;AAC5C;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface BitfabTransformOptions {
|
|
2
|
+
/** Module that exports the automatic span runtime. */
|
|
3
|
+
runtimeModule?: string;
|
|
4
|
+
/** Working directory removed from generated function IDs. */
|
|
5
|
+
cwd?: string;
|
|
6
|
+
/** Return false to leave a file unchanged. */
|
|
7
|
+
include?: (filename: string) => boolean;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type { BitfabTransformOptions as B };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface BitfabTransformOptions {
|
|
2
|
+
/** Module that exports the automatic span runtime. */
|
|
3
|
+
runtimeModule?: string;
|
|
4
|
+
/** Working directory removed from generated function IDs. */
|
|
5
|
+
cwd?: string;
|
|
6
|
+
/** Return false to leave a file unchanged. */
|
|
7
|
+
include?: (filename: string) => boolean;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type { BitfabTransformOptions as B };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bitfab",
|
|
3
|
-
"version": "0.61.
|
|
3
|
+
"version": "0.61.1",
|
|
4
4
|
"description": "Bitfab client for provider-based API calls with local BAML execution",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -40,15 +40,166 @@
|
|
|
40
40
|
"types": "./dist/autoTrace.d.cts",
|
|
41
41
|
"default": "./dist/autoTrace.cjs"
|
|
42
42
|
}
|
|
43
|
+
},
|
|
44
|
+
"./transform/babel": {
|
|
45
|
+
"import": {
|
|
46
|
+
"types": "./dist/transform/babel.d.ts",
|
|
47
|
+
"default": "./dist/transform/babel.js"
|
|
48
|
+
},
|
|
49
|
+
"require": {
|
|
50
|
+
"types": "./dist/transform/babel.d.cts",
|
|
51
|
+
"default": "./dist/transform/babel.cjs"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"./transform/typescript": {
|
|
55
|
+
"import": {
|
|
56
|
+
"types": "./dist/transform/typescript.d.ts",
|
|
57
|
+
"default": "./dist/transform/typescript.js"
|
|
58
|
+
},
|
|
59
|
+
"require": {
|
|
60
|
+
"types": "./dist/transform/typescript.d.cts",
|
|
61
|
+
"default": "./dist/transform/typescript.cjs"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"./transform/vite": {
|
|
65
|
+
"import": {
|
|
66
|
+
"types": "./dist/transform/vite.d.ts",
|
|
67
|
+
"default": "./dist/transform/vite.js"
|
|
68
|
+
},
|
|
69
|
+
"require": {
|
|
70
|
+
"types": "./dist/transform/vite.d.cts",
|
|
71
|
+
"default": "./dist/transform/vite.cjs"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"./transform/rollup": {
|
|
75
|
+
"import": {
|
|
76
|
+
"types": "./dist/transform/rollup.d.ts",
|
|
77
|
+
"default": "./dist/transform/rollup.js"
|
|
78
|
+
},
|
|
79
|
+
"require": {
|
|
80
|
+
"types": "./dist/transform/rollup.d.cts",
|
|
81
|
+
"default": "./dist/transform/rollup.cjs"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"./transform/esbuild": {
|
|
85
|
+
"import": {
|
|
86
|
+
"types": "./dist/transform/esbuild.d.ts",
|
|
87
|
+
"default": "./dist/transform/esbuild.js"
|
|
88
|
+
},
|
|
89
|
+
"require": {
|
|
90
|
+
"types": "./dist/transform/esbuild.d.cts",
|
|
91
|
+
"default": "./dist/transform/esbuild.cjs"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"./transform/swc": {
|
|
95
|
+
"import": {
|
|
96
|
+
"types": "./dist/transform/swc.d.ts",
|
|
97
|
+
"default": "./dist/transform/swc.js"
|
|
98
|
+
},
|
|
99
|
+
"require": {
|
|
100
|
+
"types": "./dist/transform/swc.d.cts",
|
|
101
|
+
"default": "./dist/transform/swc.cjs"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"./transform/unplugin": {
|
|
105
|
+
"import": {
|
|
106
|
+
"types": "./dist/transform/unplugin.d.ts",
|
|
107
|
+
"default": "./dist/transform/unplugin.js"
|
|
108
|
+
},
|
|
109
|
+
"require": {
|
|
110
|
+
"types": "./dist/transform/unplugin.d.cts",
|
|
111
|
+
"default": "./dist/transform/unplugin.cjs"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"./transform/webpack": {
|
|
115
|
+
"import": {
|
|
116
|
+
"types": "./dist/transform/webpack.d.ts",
|
|
117
|
+
"default": "./dist/transform/webpack.js"
|
|
118
|
+
},
|
|
119
|
+
"require": {
|
|
120
|
+
"types": "./dist/transform/webpack.d.cts",
|
|
121
|
+
"default": "./dist/transform/webpack.cjs"
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"./transform/rspack": {
|
|
125
|
+
"import": {
|
|
126
|
+
"types": "./dist/transform/rspack.d.ts",
|
|
127
|
+
"default": "./dist/transform/rspack.js"
|
|
128
|
+
},
|
|
129
|
+
"require": {
|
|
130
|
+
"types": "./dist/transform/rspack.d.cts",
|
|
131
|
+
"default": "./dist/transform/rspack.cjs"
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"./transform/rsbuild": {
|
|
135
|
+
"import": {
|
|
136
|
+
"types": "./dist/transform/rsbuild.d.ts",
|
|
137
|
+
"default": "./dist/transform/rsbuild.js"
|
|
138
|
+
},
|
|
139
|
+
"require": {
|
|
140
|
+
"types": "./dist/transform/rsbuild.d.cts",
|
|
141
|
+
"default": "./dist/transform/rsbuild.cjs"
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"./transform/rolldown": {
|
|
145
|
+
"import": {
|
|
146
|
+
"types": "./dist/transform/rolldown.d.ts",
|
|
147
|
+
"default": "./dist/transform/rolldown.js"
|
|
148
|
+
},
|
|
149
|
+
"require": {
|
|
150
|
+
"types": "./dist/transform/rolldown.d.cts",
|
|
151
|
+
"default": "./dist/transform/rolldown.cjs"
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"./transform/bun": {
|
|
155
|
+
"import": {
|
|
156
|
+
"types": "./dist/transform/bun.d.ts",
|
|
157
|
+
"default": "./dist/transform/bun.js"
|
|
158
|
+
},
|
|
159
|
+
"require": {
|
|
160
|
+
"types": "./dist/transform/bun.d.cts",
|
|
161
|
+
"default": "./dist/transform/bun.cjs"
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
"./transform/next": {
|
|
165
|
+
"import": {
|
|
166
|
+
"types": "./dist/transform/next.d.ts",
|
|
167
|
+
"default": "./dist/transform/next.js"
|
|
168
|
+
},
|
|
169
|
+
"require": {
|
|
170
|
+
"types": "./dist/transform/next.d.cts",
|
|
171
|
+
"default": "./dist/transform/next.cjs"
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
"./transform/nest": {
|
|
175
|
+
"import": {
|
|
176
|
+
"types": "./dist/transform/nest.d.ts",
|
|
177
|
+
"default": "./dist/transform/nest.js"
|
|
178
|
+
},
|
|
179
|
+
"require": {
|
|
180
|
+
"types": "./dist/transform/nest.d.cts",
|
|
181
|
+
"default": "./dist/transform/nest.cjs"
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
"./transform/register": {
|
|
185
|
+
"import": "./dist/transform/register.js",
|
|
186
|
+
"default": "./dist/transform/register.js"
|
|
187
|
+
},
|
|
188
|
+
"./transform/loader": {
|
|
189
|
+
"types": "./transform-loader.d.cts",
|
|
190
|
+
"require": "./transform-loader.cjs",
|
|
191
|
+
"default": "./transform-loader.cjs"
|
|
43
192
|
}
|
|
44
193
|
},
|
|
45
194
|
"files": [
|
|
46
|
-
"dist"
|
|
195
|
+
"dist",
|
|
196
|
+
"transform-loader.cjs",
|
|
197
|
+
"transform-loader.d.cts"
|
|
47
198
|
],
|
|
48
199
|
"scripts": {
|
|
49
|
-
"prebuild": "tsx scripts/generate-version.ts",
|
|
200
|
+
"prebuild": "pnpm clean && tsx scripts/generate-version.ts",
|
|
50
201
|
"build": "tsup",
|
|
51
|
-
"build:watch": "tsx scripts/generate-version.ts && tsup --watch",
|
|
202
|
+
"build:watch": "pnpm clean && tsx scripts/generate-version.ts && tsup --watch",
|
|
52
203
|
"clean": "rm -rf dist",
|
|
53
204
|
"lint": "biome check src",
|
|
54
205
|
"lint:fix": "biome check --write src",
|
|
@@ -87,9 +238,13 @@
|
|
|
87
238
|
"@opentelemetry/resources": "^2.10.0",
|
|
88
239
|
"@opentelemetry/sdk-trace-base": "^2.10.0",
|
|
89
240
|
"superjson": "^2.2.6",
|
|
90
|
-
"tsx": "^4.23.1"
|
|
241
|
+
"tsx": "^4.23.1",
|
|
242
|
+
"typescript": "^5.9.3",
|
|
243
|
+
"unplugin": "^3.3.0"
|
|
91
244
|
},
|
|
92
245
|
"peerDependencies": {
|
|
246
|
+
"@babel/core": ">=7",
|
|
247
|
+
"@babel/types": ">=7",
|
|
93
248
|
"@boundaryml/baml": ">=0.220.0",
|
|
94
249
|
"@langchain/core": ">=0.3.0 <2.0.0",
|
|
95
250
|
"@langchain/langgraph": ">=0.2.0 <2.0.0",
|
|
@@ -97,6 +252,12 @@
|
|
|
97
252
|
"ai": ">=5.0.0"
|
|
98
253
|
},
|
|
99
254
|
"peerDependenciesMeta": {
|
|
255
|
+
"@babel/core": {
|
|
256
|
+
"optional": true
|
|
257
|
+
},
|
|
258
|
+
"@babel/types": {
|
|
259
|
+
"optional": true
|
|
260
|
+
},
|
|
100
261
|
"@boundaryml/baml": {
|
|
101
262
|
"optional": true
|
|
102
263
|
},
|
|
@@ -119,7 +280,6 @@
|
|
|
119
280
|
"@langchain/langgraph": "^1.4.8",
|
|
120
281
|
"@openai/agents": "^0.13.5",
|
|
121
282
|
"ai": "^7.0.37",
|
|
122
|
-
"tsup": "^8.5.1"
|
|
123
|
-
"typescript": "^5.9.3"
|
|
283
|
+
"tsup": "^8.5.1"
|
|
124
284
|
}
|
|
125
285
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const {
|
|
2
|
+
transformBitfabModuleToJavaScript,
|
|
3
|
+
} = require("./dist/transform/loaderRuntime.cjs")
|
|
4
|
+
|
|
5
|
+
module.exports = function bitfabLoader(source, inputMap) {
|
|
6
|
+
const options = this.getOptions ? this.getOptions() : {}
|
|
7
|
+
const result = transformBitfabModuleToJavaScript(
|
|
8
|
+
source.toString(),
|
|
9
|
+
this.resourcePath,
|
|
10
|
+
options,
|
|
11
|
+
)
|
|
12
|
+
const map = result.map ? JSON.parse(result.map) : inputMap
|
|
13
|
+
const callback = this.async ? this.async() : undefined
|
|
14
|
+
if (callback) {
|
|
15
|
+
callback(null, result.code, map)
|
|
16
|
+
return
|
|
17
|
+
}
|
|
18
|
+
return result.code
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { BitfabLoaderOptions } from "./dist/transform/loaderRuntime.cjs"
|
|
2
|
+
|
|
3
|
+
interface BitfabLoaderContext {
|
|
4
|
+
async?(): (
|
|
5
|
+
error: Error | null,
|
|
6
|
+
code?: string,
|
|
7
|
+
map?: unknown,
|
|
8
|
+
) => void
|
|
9
|
+
getOptions?(): BitfabLoaderOptions
|
|
10
|
+
resourcePath: string
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
declare function bitfabLoader(
|
|
14
|
+
this: BitfabLoaderContext,
|
|
15
|
+
source: string | Buffer,
|
|
16
|
+
inputMap?: unknown,
|
|
17
|
+
): string | void
|
|
18
|
+
|
|
19
|
+
export = bitfabLoader
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/autoTrace.ts"],"sourcesContent":["import {\n type AsyncLocalStorageLike,\n createAsyncLocalStorage,\n} from \"./asyncStorage.js\"\nimport { isCaptureSuppressed } from \"./captureSuppression.js\"\nimport { warnOnce } from \"./warnOnce.js\"\n\nexport interface AutoTraceFunctionDefinition {\n id: string\n name: string\n file: string\n line: number\n column: number\n async?: boolean\n wrapper?: boolean\n}\n\nexport interface AutoTraceNodeConfiguration {\n functionName: string\n name?: string\n type?: \"llm\" | \"agent\" | \"function\" | \"guardrail\" | \"handoff\" | \"custom\"\n capture: boolean\n experimentId?: string\n /** @deprecated Use experimentId. */\n testRunId?: string\n mockOnReplay?: boolean\n // biome-ignore lint/suspicious/noExplicitAny: node finalizers receive the configured function's result, whose type is owned by the caller\n finalize?: (result: any) => unknown | Promise<unknown>\n}\n\nexport interface NestedTraceLink {\n traceFunctionKey: string\n traceId?: string\n rootSpanId?: string\n}\n\nexport interface AutoTraceEntry {\n context: AutoTraceContext\n depth: number\n spanStack: unknown\n}\n\nexport interface AutoTraceContext {\n readonly traceFunctionKey: string\n invoke<T>(\n definition: AutoTraceFunctionDefinition,\n inputs: unknown[],\n fn: () => T,\n entry: AutoTraceEntry,\n nodeConfiguration?: AutoTraceNodeConfiguration,\n ): T\n invokeNestedRoot<T>(\n name: string,\n functionName: string,\n inputs: unknown[],\n fn: () => T,\n entry: AutoTraceEntry,\n link: NestedTraceLink | undefined,\n ): T\n}\n\ninterface AutoTraceScope {\n entries: readonly AutoTraceEntry[]\n nodeConfiguration?: AutoTraceNodeConfiguration\n}\n\ninterface AutoTraceState {\n storage: AsyncLocalStorageLike<AutoTraceScope> | null\n browserScope: AutoTraceScope | undefined\n // Older SDK copies read this field when sharing the process-wide V4 state.\n capturePolicies: WeakMap<object, Map<string, ReadonlySet<string>>>\n activeRoots: number\n}\n\ninterface AutoTraceGlobal {\n __bitfabAutoTraceStateV4?: AutoTraceState\n __bitfab_auto_trace_transformed_v1__?: boolean\n}\n\ninterface AutoTraceAsyncGenerator {\n next(value?: unknown): Promise<IteratorResult<unknown, unknown>>\n return(value?: unknown): Promise<IteratorResult<unknown, unknown>>\n throw(error?: unknown): Promise<IteratorResult<unknown, unknown>>\n [Symbol.asyncIterator](): AutoTraceAsyncGenerator\n}\n\nconst autoTraceGlobal = globalThis as unknown as AutoTraceGlobal\nconst autoTraceState: AutoTraceState =\n autoTraceGlobal.__bitfabAutoTraceStateV4 ?? {\n storage: null,\n browserScope: undefined,\n capturePolicies: new WeakMap(),\n activeRoots: 0,\n }\nautoTraceGlobal.__bitfabAutoTraceStateV4 = autoTraceState\n\nfunction initializeAutoTraceStorage(): void {\n autoTraceState.storage ??= createAsyncLocalStorage<AutoTraceScope>()\n}\n\nfunction runWithAutoTraceScope<T>(scope: AutoTraceScope, fn: () => T): T {\n initializeAutoTraceStorage()\n if (autoTraceState.storage) {\n return autoTraceState.storage.run(scope, fn)\n }\n\n const previous = autoTraceState.browserScope\n autoTraceState.browserScope = scope\n try {\n return fn()\n } finally {\n autoTraceState.browserScope = previous\n }\n}\n\nexport function currentAutoTraceEntries(): readonly AutoTraceEntry[] {\n return currentAutoTraceScope()?.entries ?? []\n}\n\nfunction replaceEntry(\n entries: readonly AutoTraceEntry[],\n previous: AutoTraceEntry,\n updated: AutoTraceEntry,\n): readonly AutoTraceEntry[] {\n return entries.map((entry) => (entry === previous ? updated : entry))\n}\n\nexport function runWithAutoTraceEntry<T>(\n previous: AutoTraceEntry,\n updated: AutoTraceEntry,\n fn: () => T,\n): T {\n const result = runWithAutoTraceScope(\n { entries: replaceEntry(currentAutoTraceEntries(), previous, updated) },\n fn,\n )\n if (isAutoTraceAsyncGenerator(result)) {\n return wrapAutoTraceEntryAsyncGenerator(previous, updated, result) as T\n }\n return result\n}\n\nfunction wrapAutoTraceEntryAsyncGenerator(\n previous: AutoTraceEntry,\n updated: AutoTraceEntry,\n source: AutoTraceAsyncGenerator,\n): AutoTraceAsyncGenerator {\n const step = (\n method: \"next\" | \"return\" | \"throw\",\n value?: unknown,\n ): Promise<IteratorResult<unknown, unknown>> =>\n runWithAutoTraceScope(\n { entries: replaceEntry(currentAutoTraceEntries(), previous, updated) },\n () => source[method](value),\n )\n const wrapped: AutoTraceAsyncGenerator = {\n next: (value) => step(\"next\", value),\n return: (value) => step(\"return\", value),\n throw: (error) => step(\"throw\", error),\n [Symbol.asyncIterator]: () => wrapped,\n }\n return wrapped\n}\n\nexport function clearAutoTraceNodeConfiguration<T>(fn: () => T): T {\n return runWithAutoTraceScope({ entries: currentAutoTraceEntries() }, fn)\n}\n\nexport function runWithAutoTraceNodeConfiguration<T>(\n nodeConfiguration: AutoTraceNodeConfiguration,\n fn: () => T,\n): T {\n const scope = currentAutoTraceScope()\n if (!scope || scope.entries.length === 0) {\n return fn()\n }\n\n const result = runWithAutoTraceScope({ ...scope, nodeConfiguration }, fn)\n if (isAutoTraceAsyncGenerator(result)) {\n return wrapAutoTraceNodeAsyncGenerator(nodeConfiguration, result) as T\n }\n return result\n}\n\nconst SUBTREE_TRACING_DOCS_URL =\n \"https://docs.bitfab.ai/typescript-sdk#experimental-subtree-tracing\"\n\nfunction noteTransformedModule(): void {\n autoTraceGlobal.__bitfab_auto_trace_transformed_v1__ = true\n}\n\nfunction transformInstalled(): boolean {\n return autoTraceGlobal.__bitfab_auto_trace_transformed_v1__ === true\n}\n\nfunction runsOnNode(): boolean {\n return typeof process !== \"undefined\" && Boolean(process.versions?.node)\n}\n\nfunction closeAutoTraceRoot(): void {\n autoTraceState.activeRoots -= 1\n}\n\nfunction settleAutoTraceRoot(context: AutoTraceContext): void {\n closeAutoTraceRoot()\n if (transformInstalled() || !runsOnNode()) {\n return\n }\n warnOnce(\n \"auto-trace-transform-missing\",\n `trace root \"${context.traceFunctionKey}\" recorded only its own span. ` +\n \"No module in this build was compiled by @bitfab/transform, so calls \" +\n \"beneath the root were not discovered. Install @bitfab/transform and \" +\n `add its adapter to the server build: ${SUBTREE_TRACING_DOCS_URL}`,\n )\n}\n\nexport function runWithAutoTraceRootContext<T>(\n context: AutoTraceContext,\n spanStack: unknown,\n fn: () => T,\n): T {\n autoTraceState.activeRoots += 1\n const entries = [\n ...currentAutoTraceEntries(),\n { context, depth: 0, spanStack },\n ]\n let result: T\n try {\n result = runWithAutoTraceScope({ entries }, fn)\n } catch (error) {\n settleAutoTraceRoot(context)\n throw error\n }\n\n if (isAutoTraceAsyncGenerator(result)) {\n closeAutoTraceRoot()\n return wrapAutoTraceAsyncGenerator(context, spanStack, result) as T\n }\n\n if (result instanceof Promise) {\n return result.finally(() => {\n settleAutoTraceRoot(context)\n }) as T\n }\n\n settleAutoTraceRoot(context)\n return result\n}\n\nexport function invokeThroughAutoTraceEntries<T>(\n entries: readonly AutoTraceEntry[],\n step: (entry: AutoTraceEntry, next: () => T) => T,\n fn: () => T,\n): T {\n let run = fn\n for (let index = entries.length - 1; index >= 0; index -= 1) {\n const entry = entries[index] as AutoTraceEntry\n const next = run\n run = () => step(entry, next)\n }\n return run()\n}\n\nfunction isAutoTraceAsyncGenerator(\n value: unknown,\n): value is AutoTraceAsyncGenerator {\n if (value === null || typeof value !== \"object\") {\n return false\n }\n const candidate = value as Record<PropertyKey, unknown>\n return (\n typeof candidate.next === \"function\" &&\n typeof candidate.return === \"function\" &&\n typeof candidate.throw === \"function\" &&\n typeof candidate[Symbol.asyncIterator] === \"function\"\n )\n}\n\nfunction wrapAutoTraceAsyncGenerator(\n context: AutoTraceContext,\n spanStack: unknown,\n source: AutoTraceAsyncGenerator,\n): AutoTraceAsyncGenerator {\n const step = (\n method: \"next\" | \"return\" | \"throw\",\n value?: unknown,\n ): Promise<IteratorResult<unknown, unknown>> =>\n runWithAutoTraceRootContext(context, spanStack, () => source[method](value))\n const wrapped: AutoTraceAsyncGenerator = {\n next: (value) => step(\"next\", value),\n return: (value) => step(\"return\", value),\n throw: (error) => step(\"throw\", error),\n [Symbol.asyncIterator]: () => wrapped,\n }\n return wrapped\n}\n\nfunction wrapAutoTraceNodeAsyncGenerator(\n nodeConfiguration: AutoTraceNodeConfiguration,\n source: AutoTraceAsyncGenerator,\n): AutoTraceAsyncGenerator {\n const step = (\n method: \"next\" | \"return\" | \"throw\",\n value?: unknown,\n ): Promise<IteratorResult<unknown, unknown>> =>\n runWithAutoTraceNodeConfiguration(nodeConfiguration, () =>\n source[method](value),\n )\n const wrapped: AutoTraceAsyncGenerator = {\n next: (value) => step(\"next\", value),\n return: (value) => step(\"return\", value),\n throw: (error) => step(\"throw\", error),\n [Symbol.asyncIterator]: () => wrapped,\n }\n return wrapped\n}\n\nfunction shareFinalize(\n configuration: AutoTraceNodeConfiguration,\n): AutoTraceNodeConfiguration {\n const finalize = configuration.finalize\n if (finalize === undefined) {\n return configuration\n }\n let settled: Promise<unknown> | undefined\n return {\n ...configuration,\n finalize: (result: unknown) => {\n settled ??= Promise.resolve().then(() => finalize(result))\n return settled\n },\n }\n}\n\nexport function __bitfabAutoSpan<T>(\n definition: AutoTraceFunctionDefinition,\n inputs: unknown[],\n fn: () => T,\n): T {\n noteTransformedModule()\n const scope = currentAutoTraceScope()\n if (!scope || scope.entries.length === 0 || isCaptureSuppressed()) {\n return fn()\n }\n const nameParts = definition.name.split(\".\")\n const simpleName = nameParts[nameParts.length - 1]\n const nodeConfiguration =\n simpleName === scope.nodeConfiguration?.functionName\n ? shareFinalize(scope.nodeConfiguration)\n : undefined\n return invokeThroughAutoTraceEntries(\n scope.entries,\n (entry, next) =>\n entry.context.invoke(definition, inputs, next, entry, nodeConfiguration),\n fn,\n )\n}\n\n/**\n * Preserve a function's original call arguments for transform cases where\n * parameter bindings discard them, such as destructured arrow parameters.\n *\n * This helper is internal transform/runtime protocol. The proxy preserves the\n * target's callability, arity, async identity, and non-constructibility while\n * only allocating a trace closure beneath an active automatic trace root.\n *\n * @experimental The automatic tracing protocol may change.\n */\nexport function __bitfabAutoWrap<T extends (...args: never[]) => unknown>(\n definition: AutoTraceFunctionDefinition,\n fn: T,\n): T {\n noteTransformedModule()\n if (fn.name === \"\") {\n const nameParts = definition.name.split(\".\")\n const inferredName = nameParts[nameParts.length - 1]\n if (inferredName !== undefined) {\n Object.defineProperty(fn, \"name\", {\n configurable: true,\n value: inferredName,\n })\n }\n }\n\n const target = fn as unknown as (...args: unknown[]) => unknown\n return new Proxy(target, {\n apply(callTarget, thisArg, args) {\n if (!__bitfabAutoTraceActive()) {\n return Reflect.apply(callTarget, thisArg, args)\n }\n return __bitfabAutoSpan(definition, args, () =>\n Reflect.apply(callTarget, thisArg, args),\n )\n },\n }) as unknown as T\n}\n\n/**\n * Return whether the current call is inside an automatic trace root.\n *\n * Build transforms use this before allocating function metadata, captured\n * inputs, or an invocation closure. It is internal transform/runtime protocol,\n * not a supported application API.\n *\n * @experimental The automatic tracing protocol may change.\n */\nexport function __bitfabAutoTraceActive(): boolean {\n if (autoTraceState.activeRoots === 0 || isCaptureSuppressed()) {\n return false\n }\n return currentAutoTraceEntries().length > 0\n}\n\nfunction currentAutoTraceScope(): AutoTraceScope | undefined {\n initializeAutoTraceStorage()\n return autoTraceState.storage?.getStore() ?? autoTraceState.browserScope\n}\n\nexport function _resetAutoTraceTransformDetection(): void {\n autoTraceGlobal.__bitfab_auto_trace_transformed_v1__ = undefined\n}\n"],"mappings":"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","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|