@bitfab/sdk 0.76.2 → 0.76.4

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.
Files changed (83) hide show
  1. package/dist/{babelPlugin-BpEeVvk4.cjs → babelPlugin-C4ERQ8DW.cjs} +118 -69
  2. package/dist/babelPlugin-C4ERQ8DW.cjs.map +1 -0
  3. package/dist/{babelPlugin-PgjdBuQe.js → babelPlugin-tupc_WZS.js} +50 -1
  4. package/dist/babelPlugin-tupc_WZS.js.map +1 -0
  5. package/dist/baml.cjs +1 -1
  6. package/dist/baml.js +1 -1
  7. package/dist/bamlPeer-BxJO7-pm.cjs +169 -0
  8. package/dist/bamlPeer-BxJO7-pm.cjs.map +1 -0
  9. package/dist/bamlPeer-CWPgBSlJ.js +109 -0
  10. package/dist/bamlPeer-CWPgBSlJ.js.map +1 -0
  11. package/dist/{http-wadCG_ec.js → http-CQFVgQ4S.js} +2 -2
  12. package/dist/{http-wadCG_ec.js.map → http-CQFVgQ4S.js.map} +1 -1
  13. package/dist/{http-DscPFMlr.cjs → http-Dw6XzN7P.cjs} +3 -3
  14. package/dist/{http-DscPFMlr.cjs.map → http-Dw6XzN7P.cjs.map} +1 -1
  15. package/dist/{index-D5NpBqF3.d.cts → index-DCLbAcum.d.cts} +30 -62
  16. package/dist/{index-D5NpBqF3.d.ts → index-DCLbAcum.d.ts} +30 -62
  17. package/dist/index.cjs +2 -2
  18. package/dist/index.d.cts +2 -2
  19. package/dist/index.d.ts +2 -2
  20. package/dist/index.js +2 -2
  21. package/dist/{loaderRuntime-0huddOOP.d.ts → loaderRuntime-AETv8Pt4.d.ts} +1 -1
  22. package/dist/{loaderRuntime-CslfDFO7.d.cts → loaderRuntime-BGUu666e.d.cts} +1 -1
  23. package/dist/node.cjs +2 -2
  24. package/dist/node.d.cts +2 -2
  25. package/dist/node.d.ts +2 -2
  26. package/dist/node.js +2 -2
  27. package/dist/registryCommand-M1u4H9PI.js.map +1 -1
  28. package/dist/{src-B6zSnPpb.cjs → src-C9V1wPM_.cjs} +30 -21
  29. package/dist/src-C9V1wPM_.cjs.map +1 -0
  30. package/dist/{src-CcYVtNMw.js → src-CFUOdE8n.js} +30 -21
  31. package/dist/{src-CcYVtNMw.js.map → src-CFUOdE8n.js.map} +1 -1
  32. package/dist/transform/babel.cjs +1 -1
  33. package/dist/transform/babel.d.cts +1 -1
  34. package/dist/transform/babel.d.ts +1 -1
  35. package/dist/transform/babel.js +1 -1
  36. package/dist/transform/bun.d.cts +1 -1
  37. package/dist/transform/bun.d.ts +1 -1
  38. package/dist/transform/esbuild.d.cts +1 -1
  39. package/dist/transform/esbuild.d.ts +1 -1
  40. package/dist/transform/loaderRuntime.cjs +3 -3
  41. package/dist/transform/loaderRuntime.d.cts +1 -1
  42. package/dist/transform/loaderRuntime.d.ts +1 -1
  43. package/dist/transform/loaderRuntime.js +3 -3
  44. package/dist/transform/nest.d.cts +1 -1
  45. package/dist/transform/nest.d.ts +1 -1
  46. package/dist/transform/next.d.cts +1 -1
  47. package/dist/transform/next.d.ts +1 -1
  48. package/dist/transform/nodeLoader.js +56 -2
  49. package/dist/transform/nodeLoader.js.map +1 -1
  50. package/dist/transform/rolldown.d.cts +1 -1
  51. package/dist/transform/rolldown.d.ts +1 -1
  52. package/dist/transform/rollup.d.cts +1 -1
  53. package/dist/transform/rollup.d.ts +1 -1
  54. package/dist/transform/rsbuild.d.cts +1 -1
  55. package/dist/transform/rsbuild.d.ts +1 -1
  56. package/dist/transform/rspack.d.cts +1 -1
  57. package/dist/transform/rspack.d.ts +1 -1
  58. package/dist/transform/swc.cjs +1 -1
  59. package/dist/transform/swc.d.cts +1 -1
  60. package/dist/transform/swc.d.ts +1 -1
  61. package/dist/transform/swc.js +1 -1
  62. package/dist/transform/unplugin.cjs +2 -2
  63. package/dist/transform/unplugin.d.cts +1 -1
  64. package/dist/transform/unplugin.d.ts +1 -1
  65. package/dist/transform/unplugin.js +2 -2
  66. package/dist/transform/vite.d.cts +1 -1
  67. package/dist/transform/vite.d.ts +1 -1
  68. package/dist/transform/webpack.d.cts +1 -1
  69. package/dist/transform/webpack.d.ts +1 -1
  70. package/dist/{transform-Cdg7CSbP.cjs → transform-CcNCVr8A.cjs} +2 -2
  71. package/dist/{transform-Cdg7CSbP.cjs.map → transform-CcNCVr8A.cjs.map} +1 -1
  72. package/dist/{transform-BhazCKOg.js → transform-mb6EwHsJ.js} +2 -2
  73. package/dist/{transform-BhazCKOg.js.map → transform-mb6EwHsJ.js.map} +1 -1
  74. package/dist/{transformOptions-BsjCELkh.d.cts → transformOptions-uNuIpBAA.d.cts} +2 -0
  75. package/dist/{transformOptions-BsjCELkh.d.ts → transformOptions-uNuIpBAA.d.ts} +2 -0
  76. package/package.json +1 -1
  77. package/dist/babelPlugin-BpEeVvk4.cjs.map +0 -1
  78. package/dist/babelPlugin-PgjdBuQe.js.map +0 -1
  79. package/dist/bamlPeer-5Ohpq8q9.cjs +0 -74
  80. package/dist/bamlPeer-5Ohpq8q9.cjs.map +0 -1
  81. package/dist/bamlPeer-Dyeb3e5o.js +0 -20
  82. package/dist/bamlPeer-Dyeb3e5o.js.map +0 -1
  83. package/dist/src-B6zSnPpb.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"babelPlugin-tupc_WZS.js","names":[],"sources":["../../bitfab-typescript-transform/src/transformOptions.ts","../../bitfab-typescript-transform/src/babelPlugin.ts"],"sourcesContent":["export interface BitfabTransformOptions {\n /** Module that exports the automatic span runtime. */\n runtimeModule?: string\n /** Module imported at the top of BAML's generated client files so the SDK can use the `@boundaryml/baml` the bundler loads. Pass `false` to import nothing. Defaults to `\"@bitfab/sdk/baml\"`, added only when it resolves from the file's folder. */\n bamlRegistrationModule?: string | false\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 sourceFilename(filename: string): string {\n return filename.replace(/\\\\/g, \"/\").split(/[?#]/, 1)[0] ?? \"\"\n}\n\nexport function autoTraceFilename(filename: string, cwd: string): string {\n const normalized = sourceFilename(filename)\n const normalizedCwd = cwd.replace(/\\\\/g, \"/\").replace(/\\/$/, \"\")\n return normalized.startsWith(`${normalizedCwd}/`)\n ? normalized.slice(normalizedCwd.length + 1)\n : normalized\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 = sourceFilename(filename)\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 { readFileSync } from \"node:fs\"\nimport { dirname, isAbsolute, join } from \"node:path\"\nimport type { NodePath, PluginObject, PluginPass } from \"@babel/core\"\nimport type * as BabelTypes from \"@babel/types\"\nimport type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport {\n AUTO_TRACE_TRANSFORM_MARKER,\n autoTraceFilename,\n autoTraceFunctionId,\n shouldTransformBitfabFile,\n sourceFilename,\n} from \"./transformOptions.js\"\n\ntype BabelTypesApi = typeof BabelTypes\n\ntype BitfabPluginOptions = BitfabTransformOptions\n\ninterface BitfabPluginState extends PluginPass {\n opts: BitfabPluginOptions\n runtimeIdentifier?: ReturnType<BabelTypesApi[\"identifier\"]>\n activeIdentifier?: ReturnType<BabelTypesApi[\"identifier\"]>\n wrapperIdentifier?: ReturnType<BabelTypesApi[\"identifier\"]>\n recordedCallIdentifiers?: Map<string, ReturnType<BabelTypesApi[\"identifier\"]>>\n definitions?: Array<ReturnType<BabelTypesApi[\"variableDeclaration\"]>>\n skipFile?: boolean\n bamlGenerated?: boolean\n usedRuntime?: boolean\n usedWrapper?: boolean\n usedRecordedCalls?: Set<string>\n}\n\ninterface InstrumentedFunction {\n _bitfabInstrumented?: boolean\n}\n\nfunction propertyName(\n node: BabelTypes.Node | null | undefined,\n types: BabelTypesApi,\n): string | null {\n if (types.isIdentifier(node)) {\n return node.name\n }\n if (types.isStringLiteral(node)) {\n return node.value\n }\n return null\n}\n\nfunction functionName(\n path: NodePath<BabelTypes.Function>,\n types: BabelTypesApi,\n): string {\n const node = path.node\n if (types.isFunctionDeclaration(node) || types.isFunctionExpression(node)) {\n if (node.id) {\n return node.id.name\n }\n }\n\n if (\n (types.isClassMethod(node) || types.isObjectMethod(node)) &&\n !node.computed &&\n types.isIdentifier(node.key)\n ) {\n return node.key.name\n }\n\n const parent = path.parentPath?.node\n if (types.isVariableDeclarator(parent)) {\n return propertyName(parent.id, types) ?? \"anonymous\"\n }\n if (types.isObjectProperty(parent) && !parent.computed) {\n return propertyName(parent.key, types) ?? \"anonymous\"\n }\n if (types.isClassProperty(parent) && !parent.computed) {\n const name = propertyName(parent.key, types)\n if (name) {\n return name\n }\n }\n\n const { line, column } = sourcePosition(path)\n return `anonymous-${line}-${column}`\n}\n\nconst JEV_METHOD = \"systemOne\"\n\nfunction isJevMethodDefinition(\n path: NodePath<BabelTypes.Function>,\n types: BabelTypesApi,\n): boolean {\n const parent = path.parentPath?.node\n const isMethod =\n types.isClassMethod(path.node) ||\n types.isObjectMethod(path.node) ||\n types.isObjectProperty(parent) ||\n types.isClassProperty(parent)\n return isMethod && functionName(path, types) === JEV_METHOD\n}\n\nfunction isInstrumentableFunction(\n node: BabelTypes.Function,\n types: BabelTypesApi,\n): boolean {\n if (node.generator || types.isClassPrivateMethod(node)) {\n return false\n }\n return (\n !(types.isClassMethod(node) || types.isObjectMethod(node)) ||\n node.kind === \"method\"\n )\n}\n\nfunction sourcePosition(path: NodePath<BabelTypes.Function>): {\n line: number\n column: number\n} {\n const exportDeclaration = path.parentPath?.isExportDeclaration()\n ? path.parentPath.node\n : undefined\n const start = (exportDeclaration ?? path.node).loc?.start\n return { line: start?.line ?? 0, column: start?.column ?? 0 }\n}\n\nfunction qualifiedFunctionName(\n path: NodePath<BabelTypes.Function>,\n types: BabelTypesApi,\n): string {\n const ownName = functionName(path, types)\n if (ownName.startsWith(\"anonymous-\")) {\n return ownName\n }\n const scopes: string[] = []\n let ancestor: NodePath | null = path.parentPath\n while (ancestor) {\n if (ancestor.isFunction()) {\n if (!isInstrumentableFunction(ancestor.node, types)) {\n ancestor = ancestor.parentPath\n continue\n }\n const name = functionName(\n ancestor as NodePath<BabelTypes.Function>,\n types,\n )\n if (!name.startsWith(\"anonymous-\")) {\n scopes.unshift(name)\n }\n } else if (\n (ancestor.isClassDeclaration() || ancestor.isClassExpression()) &&\n ancestor.node.id\n ) {\n scopes.unshift(ancestor.node.id.name)\n } else if (ancestor.isObjectExpression()) {\n const parent = ancestor.parentPath?.node\n if (types.isVariableDeclarator(parent)) {\n const name = propertyName(parent.id, types)\n if (name) {\n scopes.unshift(name)\n }\n } else if (types.isObjectProperty(parent) && !parent.computed) {\n const name = propertyName(parent.key, types)\n if (name) {\n scopes.unshift(name)\n }\n }\n }\n ancestor = ancestor.parentPath\n }\n return [...scopes, ownName].join(\".\")\n}\n\nfunction isTraceDecoratorRoot(\n path: NodePath<BabelTypes.Function>,\n types: BabelTypesApi,\n): boolean {\n const node = path.node\n const parent = path.parentPath?.node\n const decorated =\n types.isClassMethod(node) || types.isClassPrivateMethod(node)\n ? node\n : types.isClassProperty(parent) && parent.value === node\n ? parent\n : null\n if (!decorated) {\n return false\n }\n\n return (\n decorated.decorators?.some((decorator) => {\n const expression = decorator.expression\n if (!types.isCallExpression(expression)) {\n return false\n }\n const callee = expression.callee\n return (\n types.isMemberExpression(callee) &&\n !callee.computed &&\n types.isIdentifier(callee.property, { name: \"trace\" })\n )\n }) ?? false\n )\n}\n\nfunction withNodeFunctionName(\n path: NodePath<BabelTypes.CallExpression>,\n types: BabelTypesApi,\n): string | null {\n if (path.node.arguments.length > 2) {\n return null\n }\n const callee = path.node.callee\n if (\n !types.isMemberExpression(callee) ||\n callee.computed ||\n !types.isIdentifier(callee.property, { name: \"withNode\" })\n ) {\n return null\n }\n const fn = path.node.arguments[path.node.arguments.length - 1]\n if (types.isIdentifier(fn)) {\n return fn.name\n }\n if (types.isMemberExpression(fn) && !fn.computed) {\n return propertyName(fn.property, types)\n }\n if (types.isFunctionExpression(fn) && fn.id) {\n return fn.id.name\n }\n return null\n}\n\nconst BAML_GENERATED_HEADER = \"This file was generated by BAML\"\nconst BAML_CLIENT_CLASSES = new Set([\"BamlAsyncClient\", \"BamlSyncClient\"])\nconst BAML_OPTIONS_PARAMETER = \"__baml_options__\"\n\nconst BAML_PACKAGE = \"@boundaryml/baml\"\nconst DEFAULT_BAML_REGISTRATION_MODULE = \"@bitfab/sdk/baml\"\n\nfunction importsBamlAtRuntime(\n program: BabelTypes.Program,\n types: BabelTypesApi,\n): boolean {\n return program.body.some(\n (statement) =>\n types.isImportDeclaration(statement) &&\n statement.source.value === BAML_PACKAGE &&\n statement.importKind !== \"type\" &&\n statement.specifiers.some(\n (specifier) =>\n !types.isImportSpecifier(specifier) ||\n specifier.importKind !== \"type\",\n ),\n )\n}\n\nconst SDK_PACKAGE_PATH = [\"node_modules\", \"@bitfab\", \"sdk\", \"package.json\"]\nconst BAML_REGISTRATION_EXPORT = \"./baml\"\nconst sdkExportsBamlRegistrationByDirectory = new Map<string, boolean>()\n\nfunction readPackageJson(path: string): unknown {\n try {\n return JSON.parse(readFileSync(path, \"utf8\"))\n } catch {\n return undefined\n }\n}\n\nfunction exportsBamlRegistration(packageJson: unknown): boolean {\n if (typeof packageJson !== \"object\" || packageJson === null) {\n return false\n }\n const exports = (packageJson as { exports?: unknown }).exports\n return (\n typeof exports === \"object\" &&\n exports !== null &&\n BAML_REGISTRATION_EXPORT in exports\n )\n}\n\nfunction nearestSdkExportsBamlRegistration(directory: string): boolean {\n const cached = sdkExportsBamlRegistrationByDirectory.get(directory)\n if (cached !== undefined) {\n return cached\n }\n const packageJson = readPackageJson(join(directory, ...SDK_PACKAGE_PATH))\n const parent = dirname(directory)\n const exported =\n packageJson !== undefined\n ? exportsBamlRegistration(packageJson)\n : parent !== directory && nearestSdkExportsBamlRegistration(parent)\n sdkExportsBamlRegistrationByDirectory.set(directory, exported)\n return exported\n}\n\nfunction defaultRegistrationResolves(filename: string): boolean {\n return (\n isAbsolute(filename) && nearestSdkExportsBamlRegistration(dirname(filename))\n )\n}\n\nfunction bamlRegistrationModuleFor(\n filename: string,\n configured: string | false | undefined,\n): string | null {\n if (configured === false) {\n return null\n }\n if (configured !== undefined) {\n return configured\n }\n return defaultRegistrationResolves(filename)\n ? DEFAULT_BAML_REGISTRATION_MODULE\n : null\n}\n\nfunction isBamlGeneratedSource(code: string): boolean {\n return code.slice(0, 4096).includes(BAML_GENERATED_HEADER)\n}\n\nfunction isBamlClientMethod(\n path: NodePath<BabelTypes.Function>,\n types: BabelTypesApi,\n): boolean {\n const node = path.node\n if (!types.isClassMethod(node) || node.kind !== \"method\" || node.static) {\n return false\n }\n const classPath = path.parentPath?.parentPath\n if (\n !classPath ||\n !(classPath.isClassDeclaration() || classPath.isClassExpression()) ||\n !classPath.node.id ||\n !BAML_CLIENT_CLASSES.has(classPath.node.id.name)\n ) {\n return false\n }\n const parameters = runtimeParameters(node, types)\n const last = parameters[parameters.length - 1]\n return types.isIdentifier(last, { name: BAML_OPTIONS_PARAMETER })\n}\n\nfunction bamlOptionsDeclaration(\n callerOptions: BabelTypes.Identifier,\n withCollector: BabelTypes.Identifier,\n types: BabelTypesApi,\n): BabelTypes.VariableDeclaration {\n return types.variableDeclaration(\"const\", [\n types.variableDeclarator(\n types.identifier(BAML_OPTIONS_PARAMETER),\n types.conditionalExpression(\n types.binaryExpression(\n \"===\",\n types.cloneNode(withCollector),\n types.identifier(\"undefined\"),\n ),\n types.cloneNode(callerOptions),\n types.callExpression(types.cloneNode(withCollector), [\n types.cloneNode(callerOptions),\n types.memberExpression(\n types.thisExpression(),\n types.identifier(\"bamlOptions\"),\n ),\n ]),\n ),\n ),\n ])\n}\n\nfunction runtimeParameters(\n node: BabelTypes.Function,\n types: BabelTypesApi,\n): BabelTypes.Function[\"params\"] {\n return node.params.filter(\n (parameter) => !types.isIdentifier(parameter, { name: \"this\" }),\n )\n}\n\nfunction parameterInputs(\n path: NodePath<BabelTypes.Function>,\n types: BabelTypesApi,\n): ReturnType<BabelTypesApi[\"arrayExpression\"]> {\n const elements: Array<BabelTypes.Expression | BabelTypes.SpreadElement> = []\n\n for (const [index, parameter] of runtimeParameters(\n path.node,\n types,\n ).entries()) {\n if (!types.isArrowFunctionExpression(path.node)) {\n if (types.isRestElement(parameter)) {\n elements.push(\n types.spreadElement(\n types.callExpression(\n types.memberExpression(\n types.arrayExpression([\n types.spreadElement(types.identifier(\"arguments\")),\n ]),\n types.identifier(\"slice\"),\n ),\n [types.numericLiteral(index)],\n ),\n ),\n )\n } else {\n elements.push(\n types.memberExpression(\n types.identifier(\"arguments\"),\n types.numericLiteral(index),\n true,\n ),\n )\n }\n continue\n }\n\n if (types.isIdentifier(parameter)) {\n elements.push(types.identifier(parameter.name))\n } else if (\n types.isRestElement(parameter) &&\n types.isIdentifier(parameter.argument)\n ) {\n elements.push(\n types.spreadElement(types.identifier(parameter.argument.name)),\n )\n }\n }\n\n return types.arrayExpression(elements)\n}\n\nfunction needsArgumentWrapper(\n path: NodePath<BabelTypes.Function>,\n types: BabelTypesApi,\n): boolean {\n return (\n types.isArrowFunctionExpression(path.node) &&\n path.node.params.some(\n (parameter) =>\n !types.isIdentifier(parameter) &&\n !(\n types.isRestElement(parameter) &&\n types.isIdentifier(parameter.argument)\n ),\n )\n )\n}\n\nfunction isRestWrapper(\n path: NodePath<BabelTypes.Function>,\n types: BabelTypesApi,\n): boolean {\n const parameters = runtimeParameters(path.node, types)\n return parameters.length === 1 && types.isRestElement(parameters[0])\n}\n\ntype RecordedCallNode =\n | BabelTypes.CallExpression\n | BabelTypes.OptionalCallExpression\n\ninterface RecordedClientCall {\n methods: readonly string[]\n endpoint?: string\n runtimeExport: string\n identifierHint: string\n receiverHint: string\n matchesReceiver: (\n receiver: BabelTypes.Expression,\n types: BabelTypesApi,\n ) => boolean\n}\n\nfunction isNamedMember(\n node: BabelTypes.Node,\n name: string,\n types: BabelTypesApi,\n): node is BabelTypes.MemberExpression | BabelTypes.OptionalMemberExpression {\n return (\n (types.isMemberExpression(node) ||\n types.isOptionalMemberExpression(node)) &&\n !node.computed &&\n types.isIdentifier(node.property, { name })\n )\n}\n\nfunction isChatCompletionsReceiver(\n receiver: BabelTypes.Expression,\n types: BabelTypesApi,\n): boolean {\n return (\n isNamedMember(receiver, \"completions\", types) &&\n isNamedMember(receiver.object, \"chat\", types)\n )\n}\n\nfunction isMessagesReceiver(\n receiver: BabelTypes.Expression,\n types: BabelTypesApi,\n): boolean {\n return (\n isNamedMember(receiver, \"messages\", types) &&\n !isNamedMember(receiver.object, \"beta\", types)\n )\n}\n\nfunction isResponsesReceiver(\n receiver: BabelTypes.Expression,\n types: BabelTypesApi,\n): boolean {\n return isNamedMember(receiver, \"responses\", types)\n}\n\nfunction isEmbeddingsReceiver(\n receiver: BabelTypes.Expression,\n types: BabelTypesApi,\n): boolean {\n return isNamedMember(receiver, \"embeddings\", types)\n}\n\nfunction isTranscriptionsReceiver(\n receiver: BabelTypes.Expression,\n types: BabelTypesApi,\n): boolean {\n return (\n isNamedMember(receiver, \"transcriptions\", types) &&\n isNamedMember(receiver.object, \"audio\", types)\n )\n}\n\nfunction isModelsReceiver(\n receiver: BabelTypes.Expression,\n types: BabelTypesApi,\n): boolean {\n return isNamedMember(receiver, \"models\", types)\n}\n\nconst CLIENT_CALL_RUNTIME = {\n runtimeExport: \"__bitfabAutoClientCall\",\n identifierHint: \"bitfabAutoClientCall\",\n receiverHint: \"bitfabClientCallReceiver\",\n}\n\nconst RECORDED_CLIENT_CALLS: readonly RecordedClientCall[] = [\n {\n methods: [JEV_METHOD],\n runtimeExport: \"__bitfabAutoJev\",\n identifierHint: \"bitfabAutoJev\",\n receiverHint: \"bitfabJevReceiver\",\n matchesReceiver: () => true,\n },\n {\n ...CLIENT_CALL_RUNTIME,\n endpoint: \"chat.completions\",\n methods: [\"create\", \"parse\", \"stream\"],\n matchesReceiver: isChatCompletionsReceiver,\n },\n {\n ...CLIENT_CALL_RUNTIME,\n endpoint: \"embeddings\",\n methods: [\"create\"],\n matchesReceiver: isEmbeddingsReceiver,\n },\n {\n ...CLIENT_CALL_RUNTIME,\n endpoint: \"audio.transcriptions\",\n methods: [\"create\"],\n matchesReceiver: isTranscriptionsReceiver,\n },\n {\n ...CLIENT_CALL_RUNTIME,\n endpoint: \"messages\",\n methods: [\"create\", \"parse\", \"stream\"],\n matchesReceiver: isMessagesReceiver,\n },\n {\n ...CLIENT_CALL_RUNTIME,\n endpoint: \"responses\",\n methods: [\"create\", \"parse\", \"stream\"],\n matchesReceiver: isResponsesReceiver,\n },\n {\n ...CLIENT_CALL_RUNTIME,\n endpoint: \"models\",\n methods: [\"generateContent\", \"generateContentStream\"],\n matchesReceiver: isModelsReceiver,\n },\n]\n\nconst RECORDED_CALL_RUNTIMES = [\n ...new Map(\n RECORDED_CLIENT_CALLS.map((call) => [call.runtimeExport, call]),\n ).values(),\n]\n\nfunction recordedCallTarget(\n node: RecordedCallNode,\n types: BabelTypesApi,\n): {\n call: RecordedClientCall\n receiver: BabelTypes.Expression\n method: string\n} | null {\n const callee = node.callee\n if (\n !(\n types.isMemberExpression(callee) ||\n types.isOptionalMemberExpression(callee)\n ) ||\n callee.computed ||\n !types.isIdentifier(callee.property) ||\n types.isSuper(callee.object)\n ) {\n return null\n }\n const method = callee.property.name\n const receiver = callee.object\n const call = RECORDED_CLIENT_CALLS.find(\n (candidate) =>\n candidate.methods.includes(method) &&\n candidate.matchesReceiver(receiver, types),\n )\n return call === undefined ? null : { call, receiver, method }\n}\n\nfunction isOptionalChain(node: BabelTypes.Node, types: BabelTypesApi): boolean {\n return (\n types.isOptionalMemberExpression(node) ||\n types.isOptionalCallExpression(node)\n )\n}\n\nfunction continuesOptionalChain(\n path: NodePath<BabelTypes.OptionalCallExpression>,\n types: BabelTypesApi,\n): boolean {\n const parent = path.parent\n return (\n (types.isOptionalMemberExpression(parent) && parent.object === path.node) ||\n (types.isOptionalCallExpression(parent) && parent.callee === path.node)\n )\n}\n\nfunction rewriteRecordedClientCall(\n path: NodePath<RecordedCallNode>,\n state: BitfabPluginState,\n types: BabelTypesApi,\n): void {\n if (state.skipFile || state.bamlGenerated) {\n return\n }\n const node = path.node\n const target = recordedCallTarget(node, types)\n const identifier =\n target === null\n ? undefined\n : state.recordedCallIdentifiers?.get(target.call.runtimeExport)\n if (target === null || identifier === undefined) {\n return\n }\n const { call: recordedCall, receiver, method } = target\n const optionalReceiver =\n types.isOptionalMemberExpression(node.callee) && node.callee.optional\n const optionalMethod = types.isOptionalCallExpression(node) && node.optional\n if (types.isOptionalCallExpression(node)) {\n if (\n continuesOptionalChain(\n path as NodePath<BabelTypes.OptionalCallExpression>,\n types,\n ) ||\n (!optionalReceiver && isOptionalChain(receiver, types))\n ) {\n return\n }\n }\n const guarded = optionalReceiver || optionalMethod\n const receiverReference =\n guarded && !path.scope.isStatic(receiver)\n ? path.scope.generateDeclaredUidIdentifier(recordedCall.receiverHint)\n : null\n const receiverValue = (): BabelTypes.Expression =>\n receiverReference === null\n ? types.cloneNode(receiver)\n : types.cloneNode(receiverReference)\n const call = types.callExpression(\n types.cloneNode(identifier),\n recordedCall.endpoint === undefined\n ? [receiverValue(), ...node.arguments]\n : [\n types.stringLiteral(recordedCall.endpoint),\n receiverValue(),\n types.stringLiteral(method),\n ...node.arguments,\n ],\n )\n state.usedRuntime = true\n state.usedRecordedCalls?.add(recordedCall.runtimeExport)\n if (!guarded) {\n path.replaceWith(call)\n return\n }\n const firstReceiver =\n receiverReference === null\n ? types.cloneNode(receiver)\n : types.assignmentExpression(\n \"=\",\n types.cloneNode(receiverReference),\n receiver,\n )\n const missing = (value: BabelTypes.Expression): BabelTypes.BinaryExpression =>\n types.binaryExpression(\"==\", value, types.nullLiteral())\n const methodOf = (value: BabelTypes.Expression): BabelTypes.Expression =>\n types.memberExpression(value, types.identifier(method))\n const test = optionalReceiver\n ? optionalMethod\n ? types.logicalExpression(\n \"||\",\n missing(firstReceiver),\n missing(methodOf(receiverValue())),\n )\n : missing(firstReceiver)\n : missing(methodOf(firstReceiver))\n path.replaceWith(\n types.conditionalExpression(\n test,\n types.unaryExpression(\"void\", types.numericLiteral(0)),\n call,\n ),\n )\n}\n\n/**\n * Babel adapter for Bitfab's experimental automatic call-span runtime.\n *\n * @experimental The transform protocol and generated function identities may\n * change before the feature is stable.\n */\nexport default function bitfabBabelPlugin(api: {\n types: BabelTypesApi\n}): PluginObject<BitfabPluginState> {\n const { types } = api\n\n return {\n name: \"bitfab-auto-trace\",\n visitor: {\n Program: {\n enter(path: NodePath<BabelTypes.Program>, state: BitfabPluginState) {\n const filename = state.file.opts.filename ?? \"unknown\"\n state.skipFile =\n !shouldTransformBitfabFile(filename, state.opts) ||\n path.scope.hasBinding(AUTO_TRACE_TRANSFORM_MARKER) ||\n path.node.directives.some(\n (directive) => directive.value.value === \"use client\",\n )\n state.runtimeIdentifier =\n path.scope.generateUidIdentifier(\"bitfabAutoSpan\")\n state.activeIdentifier = path.scope.generateUidIdentifier(\n \"bitfabAutoTraceActive\",\n )\n state.wrapperIdentifier =\n path.scope.generateUidIdentifier(\"bitfabAutoWrap\")\n state.recordedCallIdentifiers = new Map(\n RECORDED_CALL_RUNTIMES.map((call) => [\n call.runtimeExport,\n path.scope.generateUidIdentifier(call.identifierHint),\n ]),\n )\n state.bamlGenerated = isBamlGeneratedSource(state.file.code ?? \"\")\n state.definitions = []\n state.usedRuntime = false\n state.usedWrapper = false\n state.usedRecordedCalls = new Set()\n },\n exit(path: NodePath<BabelTypes.Program>, state: BitfabPluginState) {\n const bamlRegistrationModule =\n !state.skipFile &&\n state.bamlGenerated &&\n importsBamlAtRuntime(path.node, types)\n ? bamlRegistrationModuleFor(\n sourceFilename(state.file.opts.filename ?? \"\"),\n state.opts.bamlRegistrationModule,\n )\n : null\n if (bamlRegistrationModule !== null) {\n path.unshiftContainer(\n \"body\",\n types.importDeclaration(\n [],\n types.stringLiteral(bamlRegistrationModule),\n ),\n )\n state.file.metadata[AUTO_TRACE_TRANSFORM_MARKER] = true\n }\n if (\n state.skipFile ||\n !state.usedRuntime ||\n !state.runtimeIdentifier ||\n !state.activeIdentifier ||\n !state.wrapperIdentifier\n ) {\n return\n }\n\n state.file.metadata[AUTO_TRACE_TRANSFORM_MARKER] = true\n path.unshiftContainer(\"body\", [\n types.importDeclaration(\n [\n types.importSpecifier(\n state.runtimeIdentifier,\n types.identifier(\"__bitfabAutoSpan\"),\n ),\n types.importSpecifier(\n state.activeIdentifier,\n types.identifier(\"__bitfabAutoTraceActive\"),\n ),\n ...(state.usedWrapper\n ? [\n types.importSpecifier(\n state.wrapperIdentifier,\n types.identifier(\"__bitfabAutoWrap\"),\n ),\n ]\n : []),\n ...RECORDED_CALL_RUNTIMES.flatMap((call) => {\n const identifier = state.recordedCallIdentifiers?.get(\n call.runtimeExport,\n )\n return state.usedRecordedCalls?.has(call.runtimeExport) &&\n identifier\n ? [\n types.importSpecifier(\n identifier,\n types.identifier(call.runtimeExport),\n ),\n ]\n : []\n }),\n ],\n types.stringLiteral(\n state.opts.runtimeModule ?? \"@bitfab/sdk/auto\",\n ),\n ),\n types.variableDeclaration(\"const\", [\n types.variableDeclarator(\n types.identifier(AUTO_TRACE_TRANSFORM_MARKER),\n types.assignmentExpression(\n \"=\",\n types.memberExpression(\n types.identifier(\"globalThis\"),\n types.identifier(AUTO_TRACE_TRANSFORM_MARKER),\n ),\n types.booleanLiteral(true),\n ),\n ),\n ]),\n ...(state.definitions ?? []),\n ])\n },\n },\n CallExpression: {\n exit(\n path: NodePath<BabelTypes.CallExpression>,\n state: BitfabPluginState,\n ) {\n if (state.skipFile) {\n return\n }\n if (recordedCallTarget(path.node, types) !== null) {\n rewriteRecordedClientCall(path, state, types)\n return\n }\n const configuredName = withNodeFunctionName(path, types)\n if (configuredName === null) {\n return\n }\n if (path.node.arguments.length === 1) {\n path.node.arguments.push(types.identifier(\"undefined\"))\n }\n path.node.arguments.push(types.stringLiteral(configuredName))\n },\n },\n OptionalCallExpression: {\n exit(\n path: NodePath<BabelTypes.OptionalCallExpression>,\n state: BitfabPluginState,\n ) {\n rewriteRecordedClientCall(path, state, types)\n },\n },\n Function: {\n exit(path: NodePath<BabelTypes.Function>, state: BitfabPluginState) {\n const node = path.node as typeof path.node & InstrumentedFunction\n if (\n state.skipFile ||\n node._bitfabInstrumented ||\n !isInstrumentableFunction(node, types) ||\n isTraceDecoratorRoot(path, types) ||\n !state.runtimeIdentifier ||\n !state.activeIdentifier ||\n !state.wrapperIdentifier\n ) {\n return\n }\n const bamlMethod =\n state.bamlGenerated === true && isBamlClientMethod(path, types)\n if (state.bamlGenerated && !bamlMethod) {\n return\n }\n if (isJevMethodDefinition(path, types)) {\n return\n }\n const name = qualifiedFunctionName(path, types)\n if (name.startsWith(\"anonymous-\")) {\n return\n }\n const normalizedFilename = autoTraceFilename(\n state.file.opts.filename ?? \"unknown\",\n state.opts.cwd ?? state.file.opts.cwd ?? process.cwd(),\n )\n const { line, column } = sourcePosition(path)\n const definition = types.objectExpression([\n types.objectProperty(\n types.identifier(\"id\"),\n types.stringLiteral(\n autoTraceFunctionId(normalizedFilename, name),\n ),\n ),\n types.objectProperty(\n types.identifier(\"name\"),\n types.stringLiteral(name),\n ),\n types.objectProperty(\n types.identifier(\"file\"),\n types.stringLiteral(normalizedFilename),\n ),\n types.objectProperty(\n types.identifier(\"line\"),\n types.numericLiteral(line),\n ),\n types.objectProperty(\n types.identifier(\"column\"),\n types.numericLiteral(column),\n ),\n ...(node.async\n ? [\n types.objectProperty(\n types.identifier(\"async\"),\n types.booleanLiteral(true),\n ),\n ]\n : []),\n ...(bamlMethod\n ? [\n types.objectProperty(\n types.identifier(\"baml\"),\n types.booleanLiteral(true),\n ),\n ]\n : []),\n ...(isRestWrapper(path, types)\n ? [\n types.objectProperty(\n types.identifier(\"wrapper\"),\n types.booleanLiteral(true),\n ),\n ]\n : []),\n ])\n const definitionIdentifier = path.scope\n .getProgramParent()\n .generateUidIdentifier(\"bitfabAutoDefinition\")\n state.definitions?.push(\n types.variableDeclaration(\"const\", [\n types.variableDeclarator(definitionIdentifier, definition),\n ]),\n )\n\n if (needsArgumentWrapper(path, types)) {\n node._bitfabInstrumented = true\n path.replaceWith(\n types.callExpression(types.cloneNode(state.wrapperIdentifier), [\n types.cloneNode(definitionIdentifier),\n node as BabelTypes.ArrowFunctionExpression,\n ]),\n )\n state.usedRuntime = true\n state.usedWrapper = true\n return\n }\n\n const originalBody = types.isBlockStatement(node.body)\n ? node.body\n : types.blockStatement([types.returnStatement(node.body)])\n const directives = originalBody.directives\n originalBody.directives = []\n\n const callerOptions = bamlMethod\n ? path.scope.generateUidIdentifier(\"bitfabBamlOptions\")\n : undefined\n const withCollector = bamlMethod\n ? path.scope.generateUidIdentifier(\"bitfabBamlWithCollector\")\n : undefined\n const tracedBody =\n callerOptions && withCollector\n ? types.blockStatement(\n [\n bamlOptionsDeclaration(callerOptions, withCollector, types),\n ...types.cloneNode(originalBody, true).body,\n ],\n [],\n )\n : types.cloneNode(originalBody, true)\n const body = types.blockStatement(\n [\n types.ifStatement(\n types.callExpression(\n types.cloneNode(state.activeIdentifier),\n [],\n ),\n types.blockStatement([\n ...(callerOptions\n ? [\n types.variableDeclaration(\"const\", [\n types.variableDeclarator(\n callerOptions,\n types.identifier(BAML_OPTIONS_PARAMETER),\n ),\n ]),\n ]\n : []),\n types.returnStatement(\n types.callExpression(\n types.cloneNode(state.runtimeIdentifier),\n [\n types.cloneNode(definitionIdentifier),\n parameterInputs(path, types),\n types.arrowFunctionExpression(\n withCollector ? [types.cloneNode(withCollector)] : [],\n tracedBody,\n node.async ?? false,\n ),\n ],\n ),\n ),\n ]),\n ),\n ...originalBody.body,\n ],\n directives,\n )\n node.body = body\n node._bitfabInstrumented = true\n state.usedRuntime = true\n },\n },\n },\n }\n}\n"],"mappings":"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"}
package/dist/baml.cjs CHANGED
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_bamlPeer = require("./bamlPeer-5Ohpq8q9.cjs");
5
+ const require_bamlPeer = require("./bamlPeer-BxJO7-pm.cjs");
6
6
  let _boundaryml_baml = require("@boundaryml/baml");
7
7
  _boundaryml_baml = require_bamlPeer.__toESM(_boundaryml_baml, 1);
8
8
  //#region src/bamlEntry.ts
package/dist/baml.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as registerBamlModule } from "./bamlPeer-Dyeb3e5o.js";
1
+ import { r as registerBamlModule } from "./bamlPeer-CWPgBSlJ.js";
2
2
  import * as baml from "@boundaryml/baml";
3
3
  //#region src/bamlEntry.ts
4
4
  registerBamlModule(baml);
@@ -0,0 +1,169 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __exportAll = (all, no_symbols) => {
9
+ let target = {};
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
15
+ return target;
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
19
+ key = keys[i];
20
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
21
+ get: ((k) => from[k]).bind(null, key),
22
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
23
+ });
24
+ }
25
+ return to;
26
+ };
27
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
31
+ //#endregion
32
+ const require_optionalPeer = require("./optionalPeer-CUH756lt.cjs");
33
+ //#region src/bamlPeer.ts
34
+ const BAML_MODULE_STORAGE_SYMBOL = Symbol.for("bitfab.bamlModule");
35
+ const BAML_CACHE_PATH_MARKER = "@boundaryml";
36
+ let importedBamlModule;
37
+ let cacheSizeAtLastFailedSearch;
38
+ let importedByName;
39
+ let bamlModuleByClientRuntime = /* @__PURE__ */ new WeakMap();
40
+ function registeredBamlModule() {
41
+ return globalThis[BAML_MODULE_STORAGE_SYMBOL];
42
+ }
43
+ function registerBamlModule(bamlModule) {
44
+ globalThis[BAML_MODULE_STORAGE_SYMBOL] = bamlModule;
45
+ }
46
+ function isBamlModule(value) {
47
+ if (typeof value !== "object" || value === null) return false;
48
+ const candidate = value;
49
+ return typeof candidate.Collector === "function" && typeof candidate.BamlRuntime === "function";
50
+ }
51
+ async function loadNodeModuleBuiltin() {
52
+ const builtin = globalThis.process?.getBuiltinModule?.("node:module");
53
+ if (builtin) return builtin;
54
+ try {
55
+ const imported = await require_optionalPeer.importOptionalPeer(["node:module"]);
56
+ return imported.default ?? imported;
57
+ } catch {
58
+ return null;
59
+ }
60
+ }
61
+ function loadedBamlModules(cache) {
62
+ const found = /* @__PURE__ */ new Map();
63
+ for (const [path, cached] of Object.entries(cache)) {
64
+ if (!path.includes(BAML_CACHE_PATH_MARKER)) continue;
65
+ try {
66
+ const exports = cached?.exports;
67
+ if (isBamlModule(exports) && !found.has(exports.Collector)) found.set(exports.Collector, exports);
68
+ } catch {}
69
+ }
70
+ return [...found.values()];
71
+ }
72
+ function builtClientRuntime(candidate, clientRuntime) {
73
+ try {
74
+ return clientRuntime instanceof candidate.BamlRuntime;
75
+ } catch {
76
+ return false;
77
+ }
78
+ }
79
+ function pickBamlModule(candidates, clientRuntime) {
80
+ const onlyLoadedCopy = candidates.length === 1;
81
+ if (clientRuntime !== void 0) {
82
+ const module = candidates.find((candidate) => builtClientRuntime(candidate, clientRuntime));
83
+ return module ? {
84
+ module,
85
+ onlyLoadedCopy
86
+ } : null;
87
+ }
88
+ return onlyLoadedCopy ? {
89
+ module: candidates[0],
90
+ onlyLoadedCopy
91
+ } : null;
92
+ }
93
+ async function findLoadedBamlModule(clientRuntime) {
94
+ const nodeModule = await loadNodeModuleBuiltin();
95
+ if (!nodeModule?.createRequire) return null;
96
+ let cache;
97
+ try {
98
+ cache = nodeModule.createRequire(`${process.cwd()}/`).cache;
99
+ } catch {
100
+ return null;
101
+ }
102
+ const cacheSize = Object.keys(cache).length;
103
+ if (clientRuntime === void 0 && cacheSizeAtLastFailedSearch === cacheSize) return null;
104
+ const found = pickBamlModule(loadedBamlModules(cache), clientRuntime);
105
+ cacheSizeAtLastFailedSearch = found ? void 0 : cacheSize;
106
+ return found;
107
+ }
108
+ function fitsClient(module, clientRuntime) {
109
+ return clientRuntime === void 0 || builtClientRuntime(module, clientRuntime);
110
+ }
111
+ function isObject(value) {
112
+ return typeof value === "object" && value !== null;
113
+ }
114
+ function isSharedBamlModule(module) {
115
+ return module === registeredBamlModule() || module === importedByName;
116
+ }
117
+ async function loadBamlModule(options = {}) {
118
+ const { clientRuntime } = options;
119
+ const registered = registeredBamlModule();
120
+ if (registered && fitsClient(registered, clientRuntime)) return registered;
121
+ const matched = isObject(clientRuntime) ? bamlModuleByClientRuntime.get(clientRuntime) : void 0;
122
+ if (matched) return matched;
123
+ importedBamlModule ?? (importedBamlModule = require_optionalPeer.importOptionalPeer(["@boundaryml", "baml"]).then((module) => {
124
+ importedByName = module;
125
+ return module;
126
+ }).catch(() => null));
127
+ const imported = await importedBamlModule ?? registeredBamlModule();
128
+ const known = registered ?? imported;
129
+ if (imported && fitsClient(imported, clientRuntime)) return imported;
130
+ if (options.searchLoadedModules === false) return known ?? null;
131
+ const found = await findLoadedBamlModule(clientRuntime);
132
+ if (!found) return clientRuntime === void 0 ? known ?? null : null;
133
+ if (found.onlyLoadedCopy && !known) registerBamlModule(found.module);
134
+ else if (isObject(clientRuntime)) bamlModuleByClientRuntime.set(clientRuntime, found.module);
135
+ return found.module;
136
+ }
137
+ //#endregion
138
+ Object.defineProperty(exports, "__exportAll", {
139
+ enumerable: true,
140
+ get: function() {
141
+ return __exportAll;
142
+ }
143
+ });
144
+ Object.defineProperty(exports, "__toESM", {
145
+ enumerable: true,
146
+ get: function() {
147
+ return __toESM;
148
+ }
149
+ });
150
+ Object.defineProperty(exports, "isSharedBamlModule", {
151
+ enumerable: true,
152
+ get: function() {
153
+ return isSharedBamlModule;
154
+ }
155
+ });
156
+ Object.defineProperty(exports, "loadBamlModule", {
157
+ enumerable: true,
158
+ get: function() {
159
+ return loadBamlModule;
160
+ }
161
+ });
162
+ Object.defineProperty(exports, "registerBamlModule", {
163
+ enumerable: true,
164
+ get: function() {
165
+ return registerBamlModule;
166
+ }
167
+ });
168
+
169
+ //# sourceMappingURL=bamlPeer-BxJO7-pm.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bamlPeer-BxJO7-pm.cjs","names":["importOptionalPeer"],"sources":["../src/bamlPeer.ts"],"sourcesContent":["import { importOptionalPeer } from \"./optionalPeer.js\"\n\nexport type BamlModule = typeof import(\"@boundaryml/baml\")\n\ntype NodeModuleBuiltin = typeof import(\"node:module\")\n\ninterface CachedModule {\n exports?: unknown\n}\n\nconst BAML_MODULE_STORAGE_SYMBOL = Symbol.for(\"bitfab.bamlModule\")\nconst BAML_CACHE_PATH_MARKER = \"@boundaryml\"\n\nlet importedBamlModule: Promise<BamlModule | null> | undefined\nlet cacheSizeAtLastFailedSearch: number | undefined\nlet importedByName: BamlModule | undefined\nlet bamlModuleByClientRuntime = new WeakMap<object, BamlModule>()\n\nfunction registeredBamlModule(): BamlModule | undefined {\n return (globalThis as Record<symbol, BamlModule | undefined>)[\n BAML_MODULE_STORAGE_SYMBOL\n ]\n}\n\nexport function registerBamlModule(bamlModule: BamlModule): void {\n ;(globalThis as Record<symbol, BamlModule | undefined>)[\n BAML_MODULE_STORAGE_SYMBOL\n ] = bamlModule\n}\n\nfunction isBamlModule(value: unknown): value is BamlModule {\n if (typeof value !== \"object\" || value === null) {\n return false\n }\n const candidate = value as Partial<Record<keyof BamlModule, unknown>>\n return (\n typeof candidate.Collector === \"function\" &&\n typeof candidate.BamlRuntime === \"function\"\n )\n}\n\nasync function loadNodeModuleBuiltin(): Promise<NodeModuleBuiltin | null> {\n const nodeProcess = (\n globalThis as {\n process?: { getBuiltinModule?: (id: string) => unknown }\n }\n ).process\n const builtin = nodeProcess?.getBuiltinModule?.(\"node:module\")\n if (builtin) {\n return builtin as NodeModuleBuiltin\n }\n try {\n const imported = await importOptionalPeer<\n NodeModuleBuiltin & { default?: NodeModuleBuiltin }\n >([\"node:module\"])\n return imported.default ?? imported\n } catch {\n return null\n }\n}\n\nexport interface LoadBamlModuleOptions {\n searchLoadedModules?: boolean\n clientRuntime?: unknown\n}\n\nfunction loadedBamlModules(\n cache: Record<string, CachedModule | undefined>,\n): BamlModule[] {\n const found = new Map<unknown, BamlModule>()\n for (const [path, cached] of Object.entries(cache)) {\n if (!path.includes(BAML_CACHE_PATH_MARKER)) {\n continue\n }\n try {\n const exports = cached?.exports\n if (isBamlModule(exports) && !found.has(exports.Collector)) {\n found.set(exports.Collector, exports)\n }\n } catch {}\n }\n return [...found.values()]\n}\n\nfunction builtClientRuntime(\n candidate: BamlModule,\n clientRuntime: unknown,\n): boolean {\n try {\n return clientRuntime instanceof candidate.BamlRuntime\n } catch {\n return false\n }\n}\n\ninterface FoundBamlModule {\n module: BamlModule\n onlyLoadedCopy: boolean\n}\n\nfunction pickBamlModule(\n candidates: BamlModule[],\n clientRuntime: unknown,\n): FoundBamlModule | null {\n const onlyLoadedCopy = candidates.length === 1\n if (clientRuntime !== undefined) {\n const module = candidates.find((candidate) =>\n builtClientRuntime(candidate, clientRuntime),\n )\n return module ? { module, onlyLoadedCopy } : null\n }\n return onlyLoadedCopy ? { module: candidates[0], onlyLoadedCopy } : null\n}\n\nasync function findLoadedBamlModule(\n clientRuntime: unknown,\n): Promise<FoundBamlModule | null> {\n const nodeModule = await loadNodeModuleBuiltin()\n if (!nodeModule?.createRequire) {\n return null\n }\n let cache: Record<string, CachedModule | undefined>\n try {\n cache = nodeModule.createRequire(`${process.cwd()}/`).cache\n } catch {\n return null\n }\n const cacheSize = Object.keys(cache).length\n if (\n clientRuntime === undefined &&\n cacheSizeAtLastFailedSearch === cacheSize\n ) {\n return null\n }\n const found = pickBamlModule(loadedBamlModules(cache), clientRuntime)\n cacheSizeAtLastFailedSearch = found ? undefined : cacheSize\n return found\n}\n\nfunction fitsClient(module: BamlModule, clientRuntime: unknown): boolean {\n return (\n clientRuntime === undefined || builtClientRuntime(module, clientRuntime)\n )\n}\n\nfunction isObject(value: unknown): value is object {\n return typeof value === \"object\" && value !== null\n}\n\nexport function isSharedBamlModule(module: BamlModule): boolean {\n return module === registeredBamlModule() || module === importedByName\n}\n\nexport async function loadBamlModule(\n options: LoadBamlModuleOptions = {},\n): Promise<BamlModule | null> {\n const { clientRuntime } = options\n const registered = registeredBamlModule()\n if (registered && fitsClient(registered, clientRuntime)) {\n return registered\n }\n const matched = isObject(clientRuntime)\n ? bamlModuleByClientRuntime.get(clientRuntime)\n : undefined\n if (matched) {\n return matched\n }\n importedBamlModule ??= importOptionalPeer<BamlModule>([\"@boundaryml\", \"baml\"])\n .then((module) => {\n importedByName = module\n return module\n })\n .catch(() => null)\n const imported = (await importedBamlModule) ?? registeredBamlModule()\n const known = registered ?? imported\n if (imported && fitsClient(imported, clientRuntime)) {\n return imported\n }\n if (options.searchLoadedModules === false) {\n return known ?? null\n }\n const found = await findLoadedBamlModule(clientRuntime)\n if (!found) {\n return clientRuntime === undefined ? (known ?? null) : null\n }\n if (found.onlyLoadedCopy && !known) {\n registerBamlModule(found.module)\n } else if (isObject(clientRuntime)) {\n bamlModuleByClientRuntime.set(clientRuntime, found.module)\n }\n return found.module\n}\n\nexport function _resetBamlModule(): void {\n importedBamlModule = undefined\n importedByName = undefined\n cacheSizeAtLastFailedSearch = undefined\n bamlModuleByClientRuntime = new WeakMap()\n delete (globalThis as Record<symbol, BamlModule | undefined>)[\n BAML_MODULE_STORAGE_SYMBOL\n ]\n}\n"],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import { t as importOptionalPeer } from "./optionalPeer-CczrzrXx.js";
2
+ //#region src/bamlPeer.ts
3
+ const BAML_MODULE_STORAGE_SYMBOL = Symbol.for("bitfab.bamlModule");
4
+ const BAML_CACHE_PATH_MARKER = "@boundaryml";
5
+ let importedBamlModule;
6
+ let cacheSizeAtLastFailedSearch;
7
+ let importedByName;
8
+ let bamlModuleByClientRuntime = /* @__PURE__ */ new WeakMap();
9
+ function registeredBamlModule() {
10
+ return globalThis[BAML_MODULE_STORAGE_SYMBOL];
11
+ }
12
+ function registerBamlModule(bamlModule) {
13
+ globalThis[BAML_MODULE_STORAGE_SYMBOL] = bamlModule;
14
+ }
15
+ function isBamlModule(value) {
16
+ if (typeof value !== "object" || value === null) return false;
17
+ const candidate = value;
18
+ return typeof candidate.Collector === "function" && typeof candidate.BamlRuntime === "function";
19
+ }
20
+ async function loadNodeModuleBuiltin() {
21
+ const builtin = globalThis.process?.getBuiltinModule?.("node:module");
22
+ if (builtin) return builtin;
23
+ try {
24
+ const imported = await importOptionalPeer(["node:module"]);
25
+ return imported.default ?? imported;
26
+ } catch {
27
+ return null;
28
+ }
29
+ }
30
+ function loadedBamlModules(cache) {
31
+ const found = /* @__PURE__ */ new Map();
32
+ for (const [path, cached] of Object.entries(cache)) {
33
+ if (!path.includes(BAML_CACHE_PATH_MARKER)) continue;
34
+ try {
35
+ const exports = cached?.exports;
36
+ if (isBamlModule(exports) && !found.has(exports.Collector)) found.set(exports.Collector, exports);
37
+ } catch {}
38
+ }
39
+ return [...found.values()];
40
+ }
41
+ function builtClientRuntime(candidate, clientRuntime) {
42
+ try {
43
+ return clientRuntime instanceof candidate.BamlRuntime;
44
+ } catch {
45
+ return false;
46
+ }
47
+ }
48
+ function pickBamlModule(candidates, clientRuntime) {
49
+ const onlyLoadedCopy = candidates.length === 1;
50
+ if (clientRuntime !== void 0) {
51
+ const module = candidates.find((candidate) => builtClientRuntime(candidate, clientRuntime));
52
+ return module ? {
53
+ module,
54
+ onlyLoadedCopy
55
+ } : null;
56
+ }
57
+ return onlyLoadedCopy ? {
58
+ module: candidates[0],
59
+ onlyLoadedCopy
60
+ } : null;
61
+ }
62
+ async function findLoadedBamlModule(clientRuntime) {
63
+ const nodeModule = await loadNodeModuleBuiltin();
64
+ if (!nodeModule?.createRequire) return null;
65
+ let cache;
66
+ try {
67
+ cache = nodeModule.createRequire(`${process.cwd()}/`).cache;
68
+ } catch {
69
+ return null;
70
+ }
71
+ const cacheSize = Object.keys(cache).length;
72
+ if (clientRuntime === void 0 && cacheSizeAtLastFailedSearch === cacheSize) return null;
73
+ const found = pickBamlModule(loadedBamlModules(cache), clientRuntime);
74
+ cacheSizeAtLastFailedSearch = found ? void 0 : cacheSize;
75
+ return found;
76
+ }
77
+ function fitsClient(module, clientRuntime) {
78
+ return clientRuntime === void 0 || builtClientRuntime(module, clientRuntime);
79
+ }
80
+ function isObject(value) {
81
+ return typeof value === "object" && value !== null;
82
+ }
83
+ function isSharedBamlModule(module) {
84
+ return module === registeredBamlModule() || module === importedByName;
85
+ }
86
+ async function loadBamlModule(options = {}) {
87
+ const { clientRuntime } = options;
88
+ const registered = registeredBamlModule();
89
+ if (registered && fitsClient(registered, clientRuntime)) return registered;
90
+ const matched = isObject(clientRuntime) ? bamlModuleByClientRuntime.get(clientRuntime) : void 0;
91
+ if (matched) return matched;
92
+ importedBamlModule ?? (importedBamlModule = importOptionalPeer(["@boundaryml", "baml"]).then((module) => {
93
+ importedByName = module;
94
+ return module;
95
+ }).catch(() => null));
96
+ const imported = await importedBamlModule ?? registeredBamlModule();
97
+ const known = registered ?? imported;
98
+ if (imported && fitsClient(imported, clientRuntime)) return imported;
99
+ if (options.searchLoadedModules === false) return known ?? null;
100
+ const found = await findLoadedBamlModule(clientRuntime);
101
+ if (!found) return clientRuntime === void 0 ? known ?? null : null;
102
+ if (found.onlyLoadedCopy && !known) registerBamlModule(found.module);
103
+ else if (isObject(clientRuntime)) bamlModuleByClientRuntime.set(clientRuntime, found.module);
104
+ return found.module;
105
+ }
106
+ //#endregion
107
+ export { loadBamlModule as n, registerBamlModule as r, isSharedBamlModule as t };
108
+
109
+ //# sourceMappingURL=bamlPeer-CWPgBSlJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bamlPeer-CWPgBSlJ.js","names":[],"sources":["../src/bamlPeer.ts"],"sourcesContent":["import { importOptionalPeer } from \"./optionalPeer.js\"\n\nexport type BamlModule = typeof import(\"@boundaryml/baml\")\n\ntype NodeModuleBuiltin = typeof import(\"node:module\")\n\ninterface CachedModule {\n exports?: unknown\n}\n\nconst BAML_MODULE_STORAGE_SYMBOL = Symbol.for(\"bitfab.bamlModule\")\nconst BAML_CACHE_PATH_MARKER = \"@boundaryml\"\n\nlet importedBamlModule: Promise<BamlModule | null> | undefined\nlet cacheSizeAtLastFailedSearch: number | undefined\nlet importedByName: BamlModule | undefined\nlet bamlModuleByClientRuntime = new WeakMap<object, BamlModule>()\n\nfunction registeredBamlModule(): BamlModule | undefined {\n return (globalThis as Record<symbol, BamlModule | undefined>)[\n BAML_MODULE_STORAGE_SYMBOL\n ]\n}\n\nexport function registerBamlModule(bamlModule: BamlModule): void {\n ;(globalThis as Record<symbol, BamlModule | undefined>)[\n BAML_MODULE_STORAGE_SYMBOL\n ] = bamlModule\n}\n\nfunction isBamlModule(value: unknown): value is BamlModule {\n if (typeof value !== \"object\" || value === null) {\n return false\n }\n const candidate = value as Partial<Record<keyof BamlModule, unknown>>\n return (\n typeof candidate.Collector === \"function\" &&\n typeof candidate.BamlRuntime === \"function\"\n )\n}\n\nasync function loadNodeModuleBuiltin(): Promise<NodeModuleBuiltin | null> {\n const nodeProcess = (\n globalThis as {\n process?: { getBuiltinModule?: (id: string) => unknown }\n }\n ).process\n const builtin = nodeProcess?.getBuiltinModule?.(\"node:module\")\n if (builtin) {\n return builtin as NodeModuleBuiltin\n }\n try {\n const imported = await importOptionalPeer<\n NodeModuleBuiltin & { default?: NodeModuleBuiltin }\n >([\"node:module\"])\n return imported.default ?? imported\n } catch {\n return null\n }\n}\n\nexport interface LoadBamlModuleOptions {\n searchLoadedModules?: boolean\n clientRuntime?: unknown\n}\n\nfunction loadedBamlModules(\n cache: Record<string, CachedModule | undefined>,\n): BamlModule[] {\n const found = new Map<unknown, BamlModule>()\n for (const [path, cached] of Object.entries(cache)) {\n if (!path.includes(BAML_CACHE_PATH_MARKER)) {\n continue\n }\n try {\n const exports = cached?.exports\n if (isBamlModule(exports) && !found.has(exports.Collector)) {\n found.set(exports.Collector, exports)\n }\n } catch {}\n }\n return [...found.values()]\n}\n\nfunction builtClientRuntime(\n candidate: BamlModule,\n clientRuntime: unknown,\n): boolean {\n try {\n return clientRuntime instanceof candidate.BamlRuntime\n } catch {\n return false\n }\n}\n\ninterface FoundBamlModule {\n module: BamlModule\n onlyLoadedCopy: boolean\n}\n\nfunction pickBamlModule(\n candidates: BamlModule[],\n clientRuntime: unknown,\n): FoundBamlModule | null {\n const onlyLoadedCopy = candidates.length === 1\n if (clientRuntime !== undefined) {\n const module = candidates.find((candidate) =>\n builtClientRuntime(candidate, clientRuntime),\n )\n return module ? { module, onlyLoadedCopy } : null\n }\n return onlyLoadedCopy ? { module: candidates[0], onlyLoadedCopy } : null\n}\n\nasync function findLoadedBamlModule(\n clientRuntime: unknown,\n): Promise<FoundBamlModule | null> {\n const nodeModule = await loadNodeModuleBuiltin()\n if (!nodeModule?.createRequire) {\n return null\n }\n let cache: Record<string, CachedModule | undefined>\n try {\n cache = nodeModule.createRequire(`${process.cwd()}/`).cache\n } catch {\n return null\n }\n const cacheSize = Object.keys(cache).length\n if (\n clientRuntime === undefined &&\n cacheSizeAtLastFailedSearch === cacheSize\n ) {\n return null\n }\n const found = pickBamlModule(loadedBamlModules(cache), clientRuntime)\n cacheSizeAtLastFailedSearch = found ? undefined : cacheSize\n return found\n}\n\nfunction fitsClient(module: BamlModule, clientRuntime: unknown): boolean {\n return (\n clientRuntime === undefined || builtClientRuntime(module, clientRuntime)\n )\n}\n\nfunction isObject(value: unknown): value is object {\n return typeof value === \"object\" && value !== null\n}\n\nexport function isSharedBamlModule(module: BamlModule): boolean {\n return module === registeredBamlModule() || module === importedByName\n}\n\nexport async function loadBamlModule(\n options: LoadBamlModuleOptions = {},\n): Promise<BamlModule | null> {\n const { clientRuntime } = options\n const registered = registeredBamlModule()\n if (registered && fitsClient(registered, clientRuntime)) {\n return registered\n }\n const matched = isObject(clientRuntime)\n ? bamlModuleByClientRuntime.get(clientRuntime)\n : undefined\n if (matched) {\n return matched\n }\n importedBamlModule ??= importOptionalPeer<BamlModule>([\"@boundaryml\", \"baml\"])\n .then((module) => {\n importedByName = module\n return module\n })\n .catch(() => null)\n const imported = (await importedBamlModule) ?? registeredBamlModule()\n const known = registered ?? imported\n if (imported && fitsClient(imported, clientRuntime)) {\n return imported\n }\n if (options.searchLoadedModules === false) {\n return known ?? null\n }\n const found = await findLoadedBamlModule(clientRuntime)\n if (!found) {\n return clientRuntime === undefined ? (known ?? null) : null\n }\n if (found.onlyLoadedCopy && !known) {\n registerBamlModule(found.module)\n } else if (isObject(clientRuntime)) {\n bamlModuleByClientRuntime.set(clientRuntime, found.module)\n }\n return found.module\n}\n\nexport function _resetBamlModule(): void {\n importedBamlModule = undefined\n importedByName = undefined\n cacheSizeAtLastFailedSearch = undefined\n bamlModuleByClientRuntime = new WeakMap()\n delete (globalThis as Record<symbol, BamlModule | undefined>)[\n BAML_MODULE_STORAGE_SYMBOL\n ]\n}\n"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { ExportResultCode } from "@opentelemetry/core";
5
5
  import { resourceFromAttributes } from "@opentelemetry/resources";
6
6
  import { AlwaysOnSampler, BatchSpanProcessor, TracerProvider } from "@opentelemetry/sdk-trace";
7
7
  //#region src/version.generated.ts
8
- const __version__ = "0.76.2";
8
+ const __version__ = "0.76.4";
9
9
  const __packageName__ = "@bitfab/sdk";
10
10
  //#endregion
11
11
  //#region src/traceCompletion.ts
@@ -2252,4 +2252,4 @@ function experimentIdWireFields(experimentId) {
2252
2252
  //#endregion
2253
2253
  export { BitfabError as C, readEnv as D, serializeError as E, __version__ as O, gitRunner as S, describeError$1 as T, MAX_SPAN_CARRIER_BYTES as _, http_exports as a, replayContextReady as b, recordCallerTraceMetadata as c, DECLARED_NODE_FIELD as d, ROOT_TRACE_FUNCTION_KEY_FIELD as f, MAX_COMPRESSIBLE_SPAN_CARRIER_BYTES as g, makeSpanOrigin as h, flushTraces as i, retireTraceMetadata as l, isFrameworkInstrumentation as m, SPAN_TYPES as n, unrefTimer as o, SimulationPlan as p, experimentIdWireFields as r, callerTraceMetadata as s, HttpClient as t, CONTENT_OFF_KEY as u, byteLength as v, MixedTracingError as w, runWithReplayContext as x, getReplayContext as y };
2254
2254
 
2255
- //# sourceMappingURL=http-wadCG_ec.js.map
2255
+ //# sourceMappingURL=http-CQFVgQ4S.js.map