braintrust 3.11.0 → 3.12.0
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 -8
- package/dev/dist/index.d.mts +1 -1
- package/dev/dist/index.d.ts +1 -1
- package/dev/dist/index.js +2607 -316
- package/dev/dist/index.mjs +2388 -97
- package/dist/apply-auto-instrumentation.browser.d.mts +2 -0
- package/dist/apply-auto-instrumentation.browser.d.ts +2 -0
- package/dist/apply-auto-instrumentation.browser.js +18 -0
- package/dist/apply-auto-instrumentation.browser.mjs +0 -0
- package/dist/apply-auto-instrumentation.d.mts +2 -0
- package/dist/apply-auto-instrumentation.d.ts +2 -0
- package/dist/apply-auto-instrumentation.js +2534 -0
- package/dist/apply-auto-instrumentation.mjs +2534 -0
- package/dist/auto-instrumentations/bundler/esbuild.cjs +1802 -1283
- package/dist/auto-instrumentations/bundler/esbuild.d.mts +9 -5
- package/dist/auto-instrumentations/bundler/esbuild.d.ts +9 -5
- package/dist/auto-instrumentations/bundler/esbuild.mjs +10 -2
- package/dist/auto-instrumentations/bundler/next.cjs +3268 -0
- package/dist/auto-instrumentations/bundler/next.d.mts +3 -0
- package/dist/auto-instrumentations/bundler/next.d.ts +3 -0
- package/dist/auto-instrumentations/bundler/next.mjs +189 -0
- package/dist/auto-instrumentations/bundler/rollup.cjs +1802 -1283
- package/dist/auto-instrumentations/bundler/rollup.d.mts +9 -5
- package/dist/auto-instrumentations/bundler/rollup.d.ts +9 -5
- package/dist/auto-instrumentations/bundler/rollup.mjs +10 -2
- package/dist/auto-instrumentations/bundler/vite.cjs +1802 -1283
- package/dist/auto-instrumentations/bundler/vite.d.mts +9 -5
- package/dist/auto-instrumentations/bundler/vite.d.ts +9 -5
- package/dist/auto-instrumentations/bundler/vite.mjs +10 -2
- package/dist/auto-instrumentations/bundler/webpack-loader.cjs +1860 -1308
- package/dist/auto-instrumentations/bundler/webpack-loader.d.ts +3 -3
- package/dist/auto-instrumentations/bundler/webpack.cjs +1802 -1283
- package/dist/auto-instrumentations/bundler/webpack.d.mts +9 -5
- package/dist/auto-instrumentations/bundler/webpack.d.ts +9 -5
- package/dist/auto-instrumentations/bundler/webpack.mjs +6 -6
- package/dist/auto-instrumentations/{chunk-DIV5TO4S.mjs → chunk-2DPA74KK.mjs} +337 -1
- package/dist/auto-instrumentations/chunk-73BZUKVI.mjs +300 -0
- package/dist/auto-instrumentations/chunk-AFXRW7I7.mjs +18 -0
- package/dist/auto-instrumentations/hook.mjs +1712 -1460
- package/dist/auto-instrumentations/index.cjs +93 -0
- package/dist/auto-instrumentations/index.d.mts +5 -1
- package/dist/auto-instrumentations/index.d.ts +5 -1
- package/dist/auto-instrumentations/index.mjs +6 -247
- package/dist/auto-instrumentations/loader/esm-hook.mjs +19 -2
- package/dist/auto-instrumentations/plugin-D7nDswtC.d.mts +44 -0
- package/dist/auto-instrumentations/plugin-D7nDswtC.d.ts +44 -0
- package/dist/browser.d.mts +120 -31
- package/dist/browser.d.ts +120 -31
- package/dist/browser.js +2395 -123
- package/dist/browser.mjs +2395 -123
- package/dist/chunk-BW4DF4CY.js +816 -0
- package/dist/chunk-MSLBGITU.mjs +816 -0
- package/dist/cli.js +2407 -96
- package/dist/edge-light.d.mts +1 -1
- package/dist/edge-light.d.ts +1 -1
- package/dist/edge-light.js +2395 -123
- package/dist/edge-light.mjs +2395 -123
- package/dist/index.d.mts +120 -31
- package/dist/index.d.ts +120 -31
- package/dist/index.js +3362 -1849
- package/dist/index.mjs +2505 -992
- package/dist/instrumentation/index.d.mts +7860 -48
- package/dist/instrumentation/index.d.ts +7860 -48
- package/dist/instrumentation/index.js +2395 -95
- package/dist/instrumentation/index.mjs +2394 -95
- package/dist/workerd.d.mts +1 -1
- package/dist/workerd.d.ts +1 -1
- package/dist/workerd.js +2395 -123
- package/dist/workerd.mjs +2395 -123
- package/package.json +23 -3
- package/util/dist/index.js +6 -0
- package/util/dist/index.mjs +6 -0
- package/dist/auto-instrumentations/chunk-G6ZWXGZB.mjs +0 -116
- package/dist/auto-instrumentations/plugin-Df3qKIl2.d.mts +0 -22
- package/dist/auto-instrumentations/plugin-Df3qKIl2.d.ts +0 -22
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import {
|
|
2
|
+
webpackPlugin
|
|
3
|
+
} from "../chunk-AFXRW7I7.mjs";
|
|
4
|
+
import "../chunk-73BZUKVI.mjs";
|
|
5
|
+
import "../chunk-2DPA74KK.mjs";
|
|
6
|
+
|
|
7
|
+
// src/auto-instrumentations/bundler/next.ts
|
|
8
|
+
import { createRequire } from "module";
|
|
9
|
+
import { isAbsolute, join, relative } from "path";
|
|
10
|
+
var requireFromProject = createRequire(join(process.cwd(), "package.json"));
|
|
11
|
+
var TURBOPACK_RULE_MATCHER = "*.{js,mjs,cjs}";
|
|
12
|
+
function wrapNextjsConfigWithBraintrust(nextConfig) {
|
|
13
|
+
const castNextConfig = nextConfig ?? {};
|
|
14
|
+
if (typeof castNextConfig === "function") {
|
|
15
|
+
return function(...args) {
|
|
16
|
+
const maybeConfig = castNextConfig.apply(this, args);
|
|
17
|
+
if (isThenable(maybeConfig)) {
|
|
18
|
+
return maybeConfig.then(
|
|
19
|
+
(resolvedConfig) => createConfigObject(resolvedConfig)
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
return createConfigObject(maybeConfig);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return createConfigObject(castNextConfig);
|
|
26
|
+
}
|
|
27
|
+
function createConfigObject(nextConfig) {
|
|
28
|
+
const config = { ...nextConfig ?? {} };
|
|
29
|
+
const activeBundler = detectBundler();
|
|
30
|
+
if (activeBundler === "turbopack") {
|
|
31
|
+
if (config.turbopack || !config.experimental?.turbo) {
|
|
32
|
+
return {
|
|
33
|
+
...config,
|
|
34
|
+
turbopack: wrapTurbopackConfig(config.turbopack)
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
...config,
|
|
39
|
+
experimental: {
|
|
40
|
+
...config.experimental,
|
|
41
|
+
turbo: wrapTurbopackConfig(config.experimental.turbo)
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
...config,
|
|
47
|
+
webpack: wrapWebpackConfig(config.webpack)
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function detectBundler() {
|
|
51
|
+
if (process.argv.includes("--webpack")) {
|
|
52
|
+
return "webpack";
|
|
53
|
+
}
|
|
54
|
+
const turbopackEnv = process.env.TURBOPACK?.trim().toLowerCase();
|
|
55
|
+
if (turbopackEnv && turbopackEnv !== "0" && turbopackEnv !== "false" || process.argv.includes("--turbo") || process.argv.includes("--turbopack")) {
|
|
56
|
+
return "turbopack";
|
|
57
|
+
}
|
|
58
|
+
const nextMajorVersion = getNextMajorVersion();
|
|
59
|
+
if (nextMajorVersion !== void 0 && nextMajorVersion >= 16) {
|
|
60
|
+
return "turbopack";
|
|
61
|
+
}
|
|
62
|
+
return "webpack";
|
|
63
|
+
}
|
|
64
|
+
function wrapWebpackConfig(userWebpack) {
|
|
65
|
+
return (incomingConfig, buildContext) => {
|
|
66
|
+
const rawConfig = typeof userWebpack === "function" ? userWebpack(incomingConfig, buildContext) : incomingConfig;
|
|
67
|
+
const config = rawConfig ?? incomingConfig;
|
|
68
|
+
const existingPlugins = Array.isArray(config.plugins) ? config.plugins : [];
|
|
69
|
+
const runtime = buildContext.isServer ? buildContext.nextRuntime === "edge" || buildContext.nextRuntime === "experimental-edge" ? "edge" : "server" : "client";
|
|
70
|
+
const plugin = webpackPlugin({
|
|
71
|
+
browser: runtime === "client" || runtime === "edge"
|
|
72
|
+
});
|
|
73
|
+
return {
|
|
74
|
+
...config,
|
|
75
|
+
plugins: [...existingPlugins, plugin]
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function wrapTurbopackConfig(turbopackConfig) {
|
|
80
|
+
const config = { ...turbopackConfig ?? {} };
|
|
81
|
+
const resolveAlias = config.resolveAlias && typeof config.resolveAlias === "object" && !Array.isArray(config.resolveAlias) ? config.resolveAlias : {};
|
|
82
|
+
const rules = config.rules && typeof config.rules === "object" && !Array.isArray(config.rules) ? config.rules : {};
|
|
83
|
+
let dcBrowserPath;
|
|
84
|
+
try {
|
|
85
|
+
dcBrowserPath = createRequire(
|
|
86
|
+
requireFromProject.resolve("braintrust/package.json")
|
|
87
|
+
).resolve("dc-browser");
|
|
88
|
+
} catch {
|
|
89
|
+
try {
|
|
90
|
+
dcBrowserPath = requireFromProject.resolve("dc-browser");
|
|
91
|
+
} catch {
|
|
92
|
+
dcBrowserPath = void 0;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (dcBrowserPath && isAbsolute(dcBrowserPath)) {
|
|
96
|
+
const relativeDcBrowserPath = relative(
|
|
97
|
+
process.cwd(),
|
|
98
|
+
dcBrowserPath
|
|
99
|
+
).replace(/\\/g, "/");
|
|
100
|
+
dcBrowserPath = relativeDcBrowserPath.startsWith(".") ? relativeDcBrowserPath : `./${relativeDcBrowserPath}`;
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
...config,
|
|
104
|
+
// Turbopack resolves modules emitted by our loader from the app graph. The
|
|
105
|
+
// browser diagnostics-channel shim is Braintrust's dependency, so alias it
|
|
106
|
+
// to the copy installed with Braintrust while still letting user aliases win.
|
|
107
|
+
resolveAlias: dcBrowserPath && resolveAlias["dc-browser"] === void 0 ? { ...resolveAlias, "dc-browser": dcBrowserPath } : config.resolveAlias,
|
|
108
|
+
rules: addBraintrustTurbopackRule(rules)
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function addBraintrustTurbopackRule(rules) {
|
|
112
|
+
const loaderPath = getWebpackLoaderPath();
|
|
113
|
+
const braintrustRules = [
|
|
114
|
+
{
|
|
115
|
+
condition: { all: ["foreign", "browser"] },
|
|
116
|
+
loaders: [
|
|
117
|
+
{
|
|
118
|
+
loader: loaderPath,
|
|
119
|
+
options: { browser: true }
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
condition: { all: ["foreign", "edge-light"] },
|
|
125
|
+
loaders: [
|
|
126
|
+
{
|
|
127
|
+
loader: loaderPath,
|
|
128
|
+
options: { browser: true }
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
condition: { all: ["foreign", "node"] },
|
|
134
|
+
loaders: [
|
|
135
|
+
{
|
|
136
|
+
loader: loaderPath,
|
|
137
|
+
options: { browser: false }
|
|
138
|
+
}
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
];
|
|
142
|
+
const existingRule = rules[TURBOPACK_RULE_MATCHER];
|
|
143
|
+
if (!existingRule) {
|
|
144
|
+
return {
|
|
145
|
+
...rules,
|
|
146
|
+
// Turbopack exposes the active runtime through rule conditions, so keep
|
|
147
|
+
// client, edge, and node transforms separate instead of inferring later.
|
|
148
|
+
[TURBOPACK_RULE_MATCHER]: braintrustRules
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
if (Array.isArray(existingRule)) {
|
|
152
|
+
return {
|
|
153
|
+
...rules,
|
|
154
|
+
[TURBOPACK_RULE_MATCHER]: [...existingRule, ...braintrustRules]
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
if (typeof existingRule === "object" && existingRule !== null) {
|
|
158
|
+
return {
|
|
159
|
+
...rules,
|
|
160
|
+
[TURBOPACK_RULE_MATCHER]: [existingRule, ...braintrustRules]
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
return rules;
|
|
164
|
+
}
|
|
165
|
+
function getWebpackLoaderPath() {
|
|
166
|
+
try {
|
|
167
|
+
return requireFromProject.resolve("braintrust/webpack-loader");
|
|
168
|
+
} catch {
|
|
169
|
+
return "braintrust/webpack-loader";
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function getNextMajorVersion() {
|
|
173
|
+
try {
|
|
174
|
+
const nextPackageJson = requireFromProject("next/package.json");
|
|
175
|
+
if (typeof nextPackageJson.version !== "string") {
|
|
176
|
+
return void 0;
|
|
177
|
+
}
|
|
178
|
+
const major = Number.parseInt(nextPackageJson.version.split(".")[0] ?? "");
|
|
179
|
+
return Number.isFinite(major) ? major : void 0;
|
|
180
|
+
} catch {
|
|
181
|
+
return void 0;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
function isThenable(value) {
|
|
185
|
+
return value !== null && value !== void 0 && (typeof value === "object" || typeof value === "function") && "then" in value && typeof value.then === "function";
|
|
186
|
+
}
|
|
187
|
+
export {
|
|
188
|
+
wrapNextjsConfigWithBraintrust
|
|
189
|
+
};
|