@bitfab/sdk 0.64.24 → 0.64.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-3YAEAQI5.js → chunk-DY52FEEM.js} +2 -2
- package/dist/{chunk-3YAEAQI5.js.map → chunk-DY52FEEM.js.map} +1 -1
- package/dist/{chunk-E6YNESVO.js → chunk-EFGQRVMT.js} +2 -2
- package/dist/chunk-GSHCHCB5.js +433 -0
- package/dist/chunk-GSHCHCB5.js.map +1 -0
- package/dist/chunk-IBWW3SP4.js +45 -0
- package/dist/chunk-IBWW3SP4.js.map +1 -0
- package/dist/{chunk-EXTDH26A.js → chunk-JNVDKPFL.js} +6 -6
- package/dist/{chunk-OXFZJP4E.js → chunk-MN3E2RUU.js} +6 -8
- package/dist/chunk-MN3E2RUU.js.map +1 -0
- package/dist/{chunk-7A5E42SY.js → chunk-OMWPLB5R.js} +2 -2
- package/dist/{chunk-7A5E42SY.js.map → chunk-OMWPLB5R.js.map} +1 -1
- package/dist/{chunk-3NIUOINN.js → chunk-R7SJXFMB.js} +4 -4
- package/dist/{chunk-NOWQOHCR.js → chunk-ULKKTYOL.js} +2 -2
- package/dist/{http-UQTRAPDD.js → http-GDTWWWYY.js} +2 -2
- package/dist/{http-G3U247I4.js → http-QXJJB2F5.js} +2 -2
- package/dist/index.cjs +1 -1
- 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 +3 -3
- package/dist/node.cjs +1 -1
- package/dist/node.cjs.map +1 -1
- package/dist/node.js +3 -3
- package/dist/{replay-SK4FOKUB.js → replay-DC3PID7Q.js} +3 -3
- package/dist/{replay-MPMU3VBP.js → replay-VXQGVZXM.js} +3 -3
- package/dist/replayCli.js +3 -3
- package/dist/seedCli.js +3 -3
- package/dist/transform/babel.cjs +68 -34
- package/dist/transform/babel.cjs.map +1 -1
- package/dist/transform/babel.d.cts +2 -2
- package/dist/transform/babel.d.ts +2 -2
- package/dist/transform/babel.js +2 -374
- package/dist/transform/babel.js.map +1 -1
- package/dist/transform/bun.cjs +389 -464
- package/dist/transform/bun.cjs.map +1 -1
- package/dist/transform/bun.js +3 -3
- package/dist/transform/esbuild.cjs +389 -464
- package/dist/transform/esbuild.cjs.map +1 -1
- package/dist/transform/esbuild.js +3 -3
- package/dist/transform/loaderRuntime.cjs +448 -498
- package/dist/transform/loaderRuntime.cjs.map +1 -1
- package/dist/transform/loaderRuntime.js +90 -70
- package/dist/transform/loaderRuntime.js.map +1 -1
- package/dist/transform/nest.cjs +389 -464
- package/dist/transform/nest.cjs.map +1 -1
- package/dist/transform/nest.js +3 -3
- package/dist/transform/next.cjs +389 -464
- package/dist/transform/next.cjs.map +1 -1
- package/dist/transform/next.js +3 -3
- package/dist/transform/nodeLoader.js +451 -498
- package/dist/transform/nodeLoader.js.map +1 -1
- package/dist/transform/rolldown.cjs +389 -464
- package/dist/transform/rolldown.cjs.map +1 -1
- package/dist/transform/rolldown.js +3 -3
- package/dist/transform/rollup.cjs +389 -464
- package/dist/transform/rollup.cjs.map +1 -1
- package/dist/transform/rollup.js +3 -3
- package/dist/transform/rsbuild.cjs +389 -464
- package/dist/transform/rsbuild.cjs.map +1 -1
- package/dist/transform/rsbuild.js +3 -3
- package/dist/transform/rspack.cjs +389 -464
- package/dist/transform/rspack.cjs.map +1 -1
- package/dist/transform/rspack.js +3 -3
- package/dist/transform/swc.cjs +402 -471
- package/dist/transform/swc.cjs.map +1 -1
- package/dist/transform/swc.js +19 -13
- package/dist/transform/swc.js.map +1 -1
- package/dist/transform/unplugin.cjs +389 -464
- package/dist/transform/unplugin.cjs.map +1 -1
- package/dist/transform/unplugin.js +3 -3
- package/dist/transform/vite.cjs +389 -464
- package/dist/transform/vite.cjs.map +1 -1
- package/dist/transform/vite.js +3 -3
- package/dist/transform/webpack.cjs +389 -464
- package/dist/transform/webpack.cjs.map +1 -1
- package/dist/transform/webpack.js +3 -3
- package/package.json +10 -21
- package/dist/chunk-6R33XLNY.js +0 -28
- package/dist/chunk-6R33XLNY.js.map +0 -1
- package/dist/chunk-OXFZJP4E.js.map +0 -1
- package/dist/chunk-PACLPKDH.js +0 -513
- package/dist/chunk-PACLPKDH.js.map +0 -1
- package/dist/transform/typescript.cjs +0 -566
- package/dist/transform/typescript.cjs.map +0 -1
- package/dist/transform/typescript.d.cts +0 -22
- package/dist/transform/typescript.d.ts +0 -22
- package/dist/transform/typescript.js +0 -10
- package/dist/transform/typescript.js.map +0 -1
- /package/dist/{chunk-E6YNESVO.js.map → chunk-EFGQRVMT.js.map} +0 -0
- /package/dist/{chunk-EXTDH26A.js.map → chunk-JNVDKPFL.js.map} +0 -0
- /package/dist/{chunk-3NIUOINN.js.map → chunk-R7SJXFMB.js.map} +0 -0
- /package/dist/{chunk-NOWQOHCR.js.map → chunk-ULKKTYOL.js.map} +0 -0
- /package/dist/{http-G3U247I4.js.map → http-GDTWWWYY.js.map} +0 -0
- /package/dist/{http-UQTRAPDD.js.map → http-QXJJB2F5.js.map} +0 -0
- /package/dist/{replay-MPMU3VBP.js.map → replay-DC3PID7Q.js.map} +0 -0
- /package/dist/{replay-SK4FOKUB.js.map → replay-VXQGVZXM.js.map} +0 -0
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
replayContextReady,
|
|
9
9
|
runWithReplayContext,
|
|
10
10
|
unrefTimer
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-DY52FEEM.js";
|
|
12
12
|
import {
|
|
13
13
|
runWithCaptureSuppressed,
|
|
14
14
|
warnOnce,
|
|
@@ -2050,4 +2050,4 @@ export {
|
|
|
2050
2050
|
warnJudgeAssertionsDeprecated,
|
|
2051
2051
|
replay
|
|
2052
2052
|
};
|
|
2053
|
-
//# sourceMappingURL=chunk-
|
|
2053
|
+
//# sourceMappingURL=chunk-EFGQRVMT.js.map
|
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
// ../bitfab-typescript-transform/src/transformOptions.ts
|
|
2
|
+
var AUTO_TRACE_FUNCTION_ID_VERSION = "ts-auto-v1";
|
|
3
|
+
var AUTO_TRACE_TRANSFORM_MARKER = "__bitfab_auto_trace_transformed_v1__";
|
|
4
|
+
function autoTraceFunctionId(file, name) {
|
|
5
|
+
return `${AUTO_TRACE_FUNCTION_ID_VERSION}:${file}#${name}`;
|
|
6
|
+
}
|
|
7
|
+
function sourceFilename(filename) {
|
|
8
|
+
return filename.replace(/\\/g, "/").split(/[?#]/, 1)[0] ?? "";
|
|
9
|
+
}
|
|
10
|
+
function autoTraceFilename(filename, cwd) {
|
|
11
|
+
const normalized = sourceFilename(filename);
|
|
12
|
+
const normalizedCwd = cwd.replace(/\\/g, "/").replace(/\/$/, "");
|
|
13
|
+
return normalized.startsWith(`${normalizedCwd}/`) ? normalized.slice(normalizedCwd.length + 1) : normalized;
|
|
14
|
+
}
|
|
15
|
+
function shouldTransformBitfabFile(filename, options) {
|
|
16
|
+
if (!filename) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
if (options.include && !options.include(filename)) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
const normalized = sourceFilename(filename);
|
|
23
|
+
const normalizedCwd = options.cwd?.replace(/\\/g, "/").replace(/\/$/, "");
|
|
24
|
+
const isAbsolute = normalized.startsWith("/") || /^[A-Za-z]:\//.test(normalized);
|
|
25
|
+
if (normalizedCwd && isAbsolute && normalized !== normalizedCwd && !normalized.startsWith(`${normalizedCwd}/`)) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
return !normalized.includes("/node_modules/") && !normalized.endsWith(".d.ts") && /\.[cm]?[jt]sx?$/.test(normalized);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// ../bitfab-typescript-transform/src/babelPlugin.ts
|
|
32
|
+
function propertyName(node, types) {
|
|
33
|
+
if (types.isIdentifier(node)) {
|
|
34
|
+
return node.name;
|
|
35
|
+
}
|
|
36
|
+
if (types.isStringLiteral(node)) {
|
|
37
|
+
return node.value;
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
function functionName(path, types) {
|
|
42
|
+
const node = path.node;
|
|
43
|
+
if (types.isFunctionDeclaration(node) || types.isFunctionExpression(node)) {
|
|
44
|
+
if (node.id) {
|
|
45
|
+
return node.id.name;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if ((types.isClassMethod(node) || types.isObjectMethod(node)) && !node.computed && types.isIdentifier(node.key)) {
|
|
49
|
+
return node.key.name;
|
|
50
|
+
}
|
|
51
|
+
const parent = path.parentPath?.node;
|
|
52
|
+
if (types.isVariableDeclarator(parent)) {
|
|
53
|
+
return propertyName(parent.id, types) ?? "anonymous";
|
|
54
|
+
}
|
|
55
|
+
if (types.isObjectProperty(parent) && !parent.computed) {
|
|
56
|
+
return propertyName(parent.key, types) ?? "anonymous";
|
|
57
|
+
}
|
|
58
|
+
const { line, column } = sourcePosition(path);
|
|
59
|
+
return `anonymous-${line}-${column}`;
|
|
60
|
+
}
|
|
61
|
+
function isInstrumentableFunction(node, types) {
|
|
62
|
+
if (node.generator || types.isClassPrivateMethod(node)) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return !(types.isClassMethod(node) || types.isObjectMethod(node)) || node.kind === "method";
|
|
66
|
+
}
|
|
67
|
+
function sourcePosition(path) {
|
|
68
|
+
const exportDeclaration = path.parentPath?.isExportDeclaration() ? path.parentPath.node : void 0;
|
|
69
|
+
const start = (exportDeclaration ?? path.node).loc?.start;
|
|
70
|
+
return { line: start?.line ?? 0, column: start?.column ?? 0 };
|
|
71
|
+
}
|
|
72
|
+
function qualifiedFunctionName(path, types) {
|
|
73
|
+
const ownName = functionName(path, types);
|
|
74
|
+
if (ownName.startsWith("anonymous-")) {
|
|
75
|
+
return ownName;
|
|
76
|
+
}
|
|
77
|
+
const scopes = [];
|
|
78
|
+
let ancestor = path.parentPath;
|
|
79
|
+
while (ancestor) {
|
|
80
|
+
if (ancestor.isFunction()) {
|
|
81
|
+
if (!isInstrumentableFunction(ancestor.node, types)) {
|
|
82
|
+
ancestor = ancestor.parentPath;
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
const name = functionName(
|
|
86
|
+
ancestor,
|
|
87
|
+
types
|
|
88
|
+
);
|
|
89
|
+
if (!name.startsWith("anonymous-")) {
|
|
90
|
+
scopes.unshift(name);
|
|
91
|
+
}
|
|
92
|
+
} else if ((ancestor.isClassDeclaration() || ancestor.isClassExpression()) && ancestor.node.id) {
|
|
93
|
+
scopes.unshift(ancestor.node.id.name);
|
|
94
|
+
} else if (ancestor.isObjectExpression()) {
|
|
95
|
+
const parent = ancestor.parentPath?.node;
|
|
96
|
+
if (types.isVariableDeclarator(parent)) {
|
|
97
|
+
const name = propertyName(parent.id, types);
|
|
98
|
+
if (name) {
|
|
99
|
+
scopes.unshift(name);
|
|
100
|
+
}
|
|
101
|
+
} else if (types.isObjectProperty(parent) && !parent.computed) {
|
|
102
|
+
const name = propertyName(parent.key, types);
|
|
103
|
+
if (name) {
|
|
104
|
+
scopes.unshift(name);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
ancestor = ancestor.parentPath;
|
|
109
|
+
}
|
|
110
|
+
return [...scopes, ownName].join(".");
|
|
111
|
+
}
|
|
112
|
+
function isTraceDecoratorRoot(path, types) {
|
|
113
|
+
const node = path.node;
|
|
114
|
+
if (!types.isClassMethod(node) && !types.isClassPrivateMethod(node)) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
return node.decorators?.some((decorator) => {
|
|
118
|
+
const expression = decorator.expression;
|
|
119
|
+
if (!types.isCallExpression(expression)) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
const callee = expression.callee;
|
|
123
|
+
return types.isMemberExpression(callee) && !callee.computed && types.isIdentifier(callee.property, { name: "trace" });
|
|
124
|
+
}) ?? false;
|
|
125
|
+
}
|
|
126
|
+
function isBitfabWrapperArgument(path, types) {
|
|
127
|
+
const parent = path.parentPath?.node;
|
|
128
|
+
if (!types.isCallExpression(parent)) {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
if (!parent.arguments.some((argument) => argument === path.node)) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
const callee = parent.callee;
|
|
135
|
+
return types.isMemberExpression(callee) && !callee.computed && types.isIdentifier(callee.property) && (callee.property.name === "withTrace" || callee.property.name === "withSpan");
|
|
136
|
+
}
|
|
137
|
+
function withNodeFunctionName(path, types) {
|
|
138
|
+
if (path.node.arguments.length > 2) {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
const callee = path.node.callee;
|
|
142
|
+
if (!types.isMemberExpression(callee) || callee.computed || !types.isIdentifier(callee.property, { name: "withNode" })) {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
const fn = path.node.arguments[path.node.arguments.length - 1];
|
|
146
|
+
if (types.isIdentifier(fn)) {
|
|
147
|
+
return fn.name;
|
|
148
|
+
}
|
|
149
|
+
if (types.isMemberExpression(fn) && !fn.computed) {
|
|
150
|
+
return propertyName(fn.property, types);
|
|
151
|
+
}
|
|
152
|
+
if (types.isFunctionExpression(fn) && fn.id) {
|
|
153
|
+
return fn.id.name;
|
|
154
|
+
}
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
function functionBindingName(path, types) {
|
|
158
|
+
if (types.isFunctionDeclaration(path.node) && path.node.id) {
|
|
159
|
+
return path.node.id.name;
|
|
160
|
+
}
|
|
161
|
+
const parent = path.parentPath?.node;
|
|
162
|
+
if (types.isVariableDeclarator(parent) && types.isIdentifier(parent.id)) {
|
|
163
|
+
return parent.id.name;
|
|
164
|
+
}
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
function isBitfabWrappedFunction(path, types) {
|
|
168
|
+
if (isBitfabWrapperArgument(path, types)) {
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
171
|
+
const bindingName = functionBindingName(path, types);
|
|
172
|
+
if (!bindingName) {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
const binding = path.scope.getBinding(bindingName);
|
|
176
|
+
return binding?.referencePaths.some(
|
|
177
|
+
(referencePath) => isBitfabWrapperArgument(referencePath, types)
|
|
178
|
+
) ?? false;
|
|
179
|
+
}
|
|
180
|
+
function isBitfabManagedFunction(path, types) {
|
|
181
|
+
return isTraceDecoratorRoot(path, types) || isBitfabWrappedFunction(path, types);
|
|
182
|
+
}
|
|
183
|
+
function runtimeParameters(node, types) {
|
|
184
|
+
return node.params.filter(
|
|
185
|
+
(parameter) => !types.isIdentifier(parameter, { name: "this" })
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
function parameterInputs(path, types) {
|
|
189
|
+
const elements = [];
|
|
190
|
+
for (const [index, parameter] of runtimeParameters(
|
|
191
|
+
path.node,
|
|
192
|
+
types
|
|
193
|
+
).entries()) {
|
|
194
|
+
if (!types.isArrowFunctionExpression(path.node)) {
|
|
195
|
+
if (types.isRestElement(parameter)) {
|
|
196
|
+
elements.push(
|
|
197
|
+
types.spreadElement(
|
|
198
|
+
types.callExpression(
|
|
199
|
+
types.memberExpression(
|
|
200
|
+
types.arrayExpression([
|
|
201
|
+
types.spreadElement(types.identifier("arguments"))
|
|
202
|
+
]),
|
|
203
|
+
types.identifier("slice")
|
|
204
|
+
),
|
|
205
|
+
[types.numericLiteral(index)]
|
|
206
|
+
)
|
|
207
|
+
)
|
|
208
|
+
);
|
|
209
|
+
} else {
|
|
210
|
+
elements.push(
|
|
211
|
+
types.memberExpression(
|
|
212
|
+
types.identifier("arguments"),
|
|
213
|
+
types.numericLiteral(index),
|
|
214
|
+
true
|
|
215
|
+
)
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
continue;
|
|
219
|
+
}
|
|
220
|
+
if (types.isIdentifier(parameter)) {
|
|
221
|
+
elements.push(types.identifier(parameter.name));
|
|
222
|
+
} else if (types.isRestElement(parameter) && types.isIdentifier(parameter.argument)) {
|
|
223
|
+
elements.push(
|
|
224
|
+
types.spreadElement(types.identifier(parameter.argument.name))
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return types.arrayExpression(elements);
|
|
229
|
+
}
|
|
230
|
+
function needsArgumentWrapper(path, types) {
|
|
231
|
+
return types.isArrowFunctionExpression(path.node) && path.node.params.some(
|
|
232
|
+
(parameter) => !types.isIdentifier(parameter) && !(types.isRestElement(parameter) && types.isIdentifier(parameter.argument))
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
function isRestWrapper(path, types) {
|
|
236
|
+
const parameters = runtimeParameters(path.node, types);
|
|
237
|
+
return parameters.length === 1 && types.isRestElement(parameters[0]);
|
|
238
|
+
}
|
|
239
|
+
function bitfabBabelPlugin(api) {
|
|
240
|
+
const { types } = api;
|
|
241
|
+
return {
|
|
242
|
+
name: "bitfab-auto-trace",
|
|
243
|
+
visitor: {
|
|
244
|
+
Program: {
|
|
245
|
+
enter(path, state) {
|
|
246
|
+
const filename = state.file.opts.filename ?? "unknown";
|
|
247
|
+
state.skipFile = !shouldTransformBitfabFile(filename, state.opts) || path.scope.hasBinding(AUTO_TRACE_TRANSFORM_MARKER) || path.node.directives.some(
|
|
248
|
+
(directive) => directive.value.value === "use client"
|
|
249
|
+
);
|
|
250
|
+
state.runtimeIdentifier = path.scope.generateUidIdentifier("bitfabAutoSpan");
|
|
251
|
+
state.activeIdentifier = path.scope.generateUidIdentifier(
|
|
252
|
+
"bitfabAutoTraceActive"
|
|
253
|
+
);
|
|
254
|
+
state.wrapperIdentifier = path.scope.generateUidIdentifier("bitfabAutoWrap");
|
|
255
|
+
state.definitions = [];
|
|
256
|
+
state.usedRuntime = false;
|
|
257
|
+
state.usedWrapper = false;
|
|
258
|
+
},
|
|
259
|
+
exit(path, state) {
|
|
260
|
+
if (state.skipFile || !state.usedRuntime || !state.runtimeIdentifier || !state.activeIdentifier || !state.wrapperIdentifier) {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
state.file.metadata[AUTO_TRACE_TRANSFORM_MARKER] = true;
|
|
264
|
+
path.unshiftContainer("body", [
|
|
265
|
+
types.importDeclaration(
|
|
266
|
+
[
|
|
267
|
+
types.importSpecifier(
|
|
268
|
+
state.runtimeIdentifier,
|
|
269
|
+
types.identifier("__bitfabAutoSpan")
|
|
270
|
+
),
|
|
271
|
+
types.importSpecifier(
|
|
272
|
+
state.activeIdentifier,
|
|
273
|
+
types.identifier("__bitfabAutoTraceActive")
|
|
274
|
+
),
|
|
275
|
+
...state.usedWrapper ? [
|
|
276
|
+
types.importSpecifier(
|
|
277
|
+
state.wrapperIdentifier,
|
|
278
|
+
types.identifier("__bitfabAutoWrap")
|
|
279
|
+
)
|
|
280
|
+
] : []
|
|
281
|
+
],
|
|
282
|
+
types.stringLiteral(
|
|
283
|
+
state.opts.runtimeModule ?? "@bitfab/sdk/auto"
|
|
284
|
+
)
|
|
285
|
+
),
|
|
286
|
+
types.variableDeclaration("const", [
|
|
287
|
+
types.variableDeclarator(
|
|
288
|
+
types.identifier(AUTO_TRACE_TRANSFORM_MARKER),
|
|
289
|
+
types.assignmentExpression(
|
|
290
|
+
"=",
|
|
291
|
+
types.memberExpression(
|
|
292
|
+
types.identifier("globalThis"),
|
|
293
|
+
types.identifier(AUTO_TRACE_TRANSFORM_MARKER)
|
|
294
|
+
),
|
|
295
|
+
types.booleanLiteral(true)
|
|
296
|
+
)
|
|
297
|
+
)
|
|
298
|
+
]),
|
|
299
|
+
...state.definitions ?? []
|
|
300
|
+
]);
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
CallExpression: {
|
|
304
|
+
exit(path, state) {
|
|
305
|
+
if (state.skipFile) {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
const configuredName = withNodeFunctionName(path, types);
|
|
309
|
+
if (configuredName === null) {
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
if (path.node.arguments.length === 1) {
|
|
313
|
+
path.node.arguments.push(types.identifier("undefined"));
|
|
314
|
+
}
|
|
315
|
+
path.node.arguments.push(types.stringLiteral(configuredName));
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
Function: {
|
|
319
|
+
exit(path, state) {
|
|
320
|
+
const node = path.node;
|
|
321
|
+
if (state.skipFile || node._bitfabInstrumented || !isInstrumentableFunction(node, types) || isBitfabManagedFunction(path, types) || !state.runtimeIdentifier || !state.activeIdentifier || !state.wrapperIdentifier) {
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
const name = qualifiedFunctionName(path, types);
|
|
325
|
+
if (name.startsWith("anonymous-")) {
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
const normalizedFilename = autoTraceFilename(
|
|
329
|
+
state.file.opts.filename ?? "unknown",
|
|
330
|
+
state.opts.cwd ?? state.file.opts.cwd ?? process.cwd()
|
|
331
|
+
);
|
|
332
|
+
const { line, column } = sourcePosition(path);
|
|
333
|
+
const definition = types.objectExpression([
|
|
334
|
+
types.objectProperty(
|
|
335
|
+
types.identifier("id"),
|
|
336
|
+
types.stringLiteral(
|
|
337
|
+
autoTraceFunctionId(normalizedFilename, name)
|
|
338
|
+
)
|
|
339
|
+
),
|
|
340
|
+
types.objectProperty(
|
|
341
|
+
types.identifier("name"),
|
|
342
|
+
types.stringLiteral(name)
|
|
343
|
+
),
|
|
344
|
+
types.objectProperty(
|
|
345
|
+
types.identifier("file"),
|
|
346
|
+
types.stringLiteral(normalizedFilename)
|
|
347
|
+
),
|
|
348
|
+
types.objectProperty(
|
|
349
|
+
types.identifier("line"),
|
|
350
|
+
types.numericLiteral(line)
|
|
351
|
+
),
|
|
352
|
+
types.objectProperty(
|
|
353
|
+
types.identifier("column"),
|
|
354
|
+
types.numericLiteral(column)
|
|
355
|
+
),
|
|
356
|
+
...node.async ? [
|
|
357
|
+
types.objectProperty(
|
|
358
|
+
types.identifier("async"),
|
|
359
|
+
types.booleanLiteral(true)
|
|
360
|
+
)
|
|
361
|
+
] : [],
|
|
362
|
+
...isRestWrapper(path, types) ? [
|
|
363
|
+
types.objectProperty(
|
|
364
|
+
types.identifier("wrapper"),
|
|
365
|
+
types.booleanLiteral(true)
|
|
366
|
+
)
|
|
367
|
+
] : []
|
|
368
|
+
]);
|
|
369
|
+
const definitionIdentifier = path.scope.getProgramParent().generateUidIdentifier("bitfabAutoDefinition");
|
|
370
|
+
state.definitions?.push(
|
|
371
|
+
types.variableDeclaration("const", [
|
|
372
|
+
types.variableDeclarator(definitionIdentifier, definition)
|
|
373
|
+
])
|
|
374
|
+
);
|
|
375
|
+
if (needsArgumentWrapper(path, types)) {
|
|
376
|
+
node._bitfabInstrumented = true;
|
|
377
|
+
path.replaceWith(
|
|
378
|
+
types.callExpression(types.cloneNode(state.wrapperIdentifier), [
|
|
379
|
+
types.cloneNode(definitionIdentifier),
|
|
380
|
+
node
|
|
381
|
+
])
|
|
382
|
+
);
|
|
383
|
+
state.usedRuntime = true;
|
|
384
|
+
state.usedWrapper = true;
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
const originalBody = types.isBlockStatement(node.body) ? node.body : types.blockStatement([types.returnStatement(node.body)]);
|
|
388
|
+
const directives = originalBody.directives;
|
|
389
|
+
originalBody.directives = [];
|
|
390
|
+
const body = types.blockStatement(
|
|
391
|
+
[
|
|
392
|
+
types.ifStatement(
|
|
393
|
+
types.callExpression(
|
|
394
|
+
types.cloneNode(state.activeIdentifier),
|
|
395
|
+
[]
|
|
396
|
+
),
|
|
397
|
+
types.blockStatement([
|
|
398
|
+
types.returnStatement(
|
|
399
|
+
types.callExpression(
|
|
400
|
+
types.cloneNode(state.runtimeIdentifier),
|
|
401
|
+
[
|
|
402
|
+
types.cloneNode(definitionIdentifier),
|
|
403
|
+
parameterInputs(path, types),
|
|
404
|
+
types.arrowFunctionExpression(
|
|
405
|
+
[],
|
|
406
|
+
types.cloneNode(originalBody, true),
|
|
407
|
+
node.async ?? false
|
|
408
|
+
)
|
|
409
|
+
]
|
|
410
|
+
)
|
|
411
|
+
)
|
|
412
|
+
])
|
|
413
|
+
),
|
|
414
|
+
...originalBody.body
|
|
415
|
+
],
|
|
416
|
+
directives
|
|
417
|
+
);
|
|
418
|
+
node.body = body;
|
|
419
|
+
node._bitfabInstrumented = true;
|
|
420
|
+
state.usedRuntime = true;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
};
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
export {
|
|
428
|
+
AUTO_TRACE_TRANSFORM_MARKER,
|
|
429
|
+
sourceFilename,
|
|
430
|
+
shouldTransformBitfabFile,
|
|
431
|
+
bitfabBabelPlugin
|
|
432
|
+
};
|
|
433
|
+
//# sourceMappingURL=chunk-GSHCHCB5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"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 /** 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 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} 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 definitions?: Array<ReturnType<BabelTypesApi[\"variableDeclaration\"]>>\n skipFile?: boolean\n usedRuntime?: boolean\n usedWrapper?: boolean\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\n const { line, column } = sourcePosition(path)\n return `anonymous-${line}-${column}`\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 if (!types.isClassMethod(node) && !types.isClassPrivateMethod(node)) {\n return false\n }\n\n return (\n node.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 isBitfabWrapperArgument(\n path: NodePath,\n types: BabelTypesApi,\n): boolean {\n const parent = path.parentPath?.node\n if (!types.isCallExpression(parent)) {\n return false\n }\n if (!parent.arguments.some((argument) => argument === path.node)) {\n return false\n }\n\n const callee = parent.callee\n return (\n types.isMemberExpression(callee) &&\n !callee.computed &&\n types.isIdentifier(callee.property) &&\n (callee.property.name === \"withTrace\" ||\n callee.property.name === \"withSpan\")\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\nfunction functionBindingName(\n path: NodePath<BabelTypes.Function>,\n types: BabelTypesApi,\n): string | null {\n if (types.isFunctionDeclaration(path.node) && path.node.id) {\n return path.node.id.name\n }\n\n const parent = path.parentPath?.node\n if (types.isVariableDeclarator(parent) && types.isIdentifier(parent.id)) {\n return parent.id.name\n }\n return null\n}\n\nfunction isBitfabWrappedFunction(\n path: NodePath<BabelTypes.Function>,\n types: BabelTypesApi,\n): boolean {\n if (isBitfabWrapperArgument(path, types)) {\n return true\n }\n\n const bindingName = functionBindingName(path, types)\n if (!bindingName) {\n return false\n }\n const binding = path.scope.getBinding(bindingName)\n return (\n binding?.referencePaths.some((referencePath) =>\n isBitfabWrapperArgument(referencePath, types),\n ) ?? false\n )\n}\n\nfunction isBitfabManagedFunction(\n path: NodePath<BabelTypes.Function>,\n types: BabelTypesApi,\n): boolean {\n return (\n isTraceDecoratorRoot(path, types) || isBitfabWrappedFunction(path, types)\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\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.definitions = []\n state.usedRuntime = false\n state.usedWrapper = false\n },\n exit(path: NodePath<BabelTypes.Program>, state: BitfabPluginState) {\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 ],\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 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 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 isBitfabManagedFunction(path, types) ||\n !state.runtimeIdentifier ||\n !state.activeIdentifier ||\n !state.wrapperIdentifier\n ) {\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 ...(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 body = types.blockStatement(\n [\n types.ifStatement(\n types.callExpression(\n types.cloneNode(state.activeIdentifier),\n [],\n ),\n types.blockStatement([\n types.returnStatement(\n types.callExpression(\n types.cloneNode(state.runtimeIdentifier),\n [\n types.cloneNode(definitionIdentifier),\n parameterInputs(path, types),\n types.arrowFunctionExpression(\n [],\n types.cloneNode(originalBody, true),\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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","names":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AUTO_TRACE_TRANSFORM_MARKER,
|
|
3
|
+
bitfabBabelPlugin,
|
|
4
|
+
shouldTransformBitfabFile,
|
|
5
|
+
sourceFilename
|
|
6
|
+
} from "./chunk-GSHCHCB5.js";
|
|
7
|
+
|
|
8
|
+
// ../bitfab-typescript-transform/src/transform.ts
|
|
9
|
+
import { transformSync } from "@babel/core";
|
|
10
|
+
function parserPlugins(filename) {
|
|
11
|
+
const path = sourceFilename(filename);
|
|
12
|
+
const typescript = /\.[cm]?tsx?$/.test(path);
|
|
13
|
+
const jsx = /\.tsx$/.test(path) || /\.[cm]?jsx?$/.test(path);
|
|
14
|
+
return [
|
|
15
|
+
...typescript ? ["typescript"] : [],
|
|
16
|
+
...jsx ? ["jsx"] : [],
|
|
17
|
+
"decorators"
|
|
18
|
+
];
|
|
19
|
+
}
|
|
20
|
+
function transformBitfabSource(source, filename, options = {}) {
|
|
21
|
+
if (!shouldTransformBitfabFile(filename, options)) {
|
|
22
|
+
return { code: source };
|
|
23
|
+
}
|
|
24
|
+
const result = transformSync(source, {
|
|
25
|
+
babelrc: false,
|
|
26
|
+
configFile: false,
|
|
27
|
+
filename: sourceFilename(filename),
|
|
28
|
+
parserOpts: { plugins: parserPlugins(filename), sourceType: "module" },
|
|
29
|
+
plugins: [[bitfabBabelPlugin, options]],
|
|
30
|
+
sourceMaps: true
|
|
31
|
+
});
|
|
32
|
+
if (!result?.code || !result.metadata?.[AUTO_TRACE_TRANSFORM_MARKER]) {
|
|
33
|
+
return { code: source };
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
code: result.code,
|
|
37
|
+
...result.map ? { map: result.map } : {}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export {
|
|
42
|
+
parserPlugins,
|
|
43
|
+
transformBitfabSource
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=chunk-IBWW3SP4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../bitfab-typescript-transform/src/transform.ts"],"sourcesContent":["import { type InputOptions, transformSync } from \"@babel/core\"\nimport bitfabBabelPlugin from \"./babelPlugin.js\"\nimport type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport {\n AUTO_TRACE_TRANSFORM_MARKER,\n shouldTransformBitfabFile,\n sourceFilename,\n} from \"./transformOptions.js\"\n\nexport type { BitfabTransformOptions } from \"./transformOptions.js\"\n\ntype ParserPlugin = NonNullable<\n NonNullable<InputOptions[\"parserOpts\"]>[\"plugins\"]\n>[number]\n\nexport interface BitfabSourceMap {\n version: number\n sources: string[]\n names: string[]\n mappings: string\n file?: string\n sourceRoot?: string\n sourcesContent?: Array<string | null>\n}\n\nexport interface BitfabTransformResult {\n code: string\n map?: BitfabSourceMap\n}\n\nexport function parserPlugins(filename: string): ParserPlugin[] {\n const path = sourceFilename(filename)\n const typescript = /\\.[cm]?tsx?$/.test(path)\n const jsx = /\\.tsx$/.test(path) || /\\.[cm]?jsx?$/.test(path)\n return [\n ...(typescript ? ([\"typescript\"] as const) : []),\n ...(jsx ? ([\"jsx\"] as const) : []),\n \"decorators\",\n ]\n}\n\nexport function transformBitfabSource(\n source: string,\n filename: string,\n options: BitfabTransformOptions = {},\n): BitfabTransformResult {\n if (!shouldTransformBitfabFile(filename, options)) {\n return { code: source }\n }\n const result = transformSync(source, {\n babelrc: false,\n configFile: false,\n filename: sourceFilename(filename),\n parserOpts: { plugins: parserPlugins(filename), sourceType: \"module\" },\n plugins: [[bitfabBabelPlugin, options]],\n sourceMaps: true,\n })\n if (!result?.code || !result.metadata?.[AUTO_TRACE_TRANSFORM_MARKER]) {\n return { code: source }\n }\n return {\n code: result.code,\n ...(result.map ? { map: result.map as BitfabSourceMap } : {}),\n }\n}\n"],"mappings":";;;;;;;;AAAA,SAA4B,qBAAqB;AA8B1C,SAAS,cAAc,UAAkC;AAC9D,QAAM,OAAO,eAAe,QAAQ;AACpC,QAAM,aAAa,eAAe,KAAK,IAAI;AAC3C,QAAM,MAAM,SAAS,KAAK,IAAI,KAAK,eAAe,KAAK,IAAI;AAC3D,SAAO;AAAA,IACL,GAAI,aAAc,CAAC,YAAY,IAAc,CAAC;AAAA,IAC9C,GAAI,MAAO,CAAC,KAAK,IAAc,CAAC;AAAA,IAChC;AAAA,EACF;AACF;AAEO,SAAS,sBACd,QACA,UACA,UAAkC,CAAC,GACZ;AACvB,MAAI,CAAC,0BAA0B,UAAU,OAAO,GAAG;AACjD,WAAO,EAAE,MAAM,OAAO;AAAA,EACxB;AACA,QAAM,SAAS,cAAc,QAAQ;AAAA,IACnC,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU,eAAe,QAAQ;AAAA,IACjC,YAAY,EAAE,SAAS,cAAc,QAAQ,GAAG,YAAY,SAAS;AAAA,IACrE,SAAS,CAAC,CAAC,mBAAmB,OAAO,CAAC;AAAA,IACtC,YAAY;AAAA,EACd,CAAC;AACD,MAAI,CAAC,QAAQ,QAAQ,CAAC,OAAO,WAAW,2BAA2B,GAAG;AACpE,WAAO,EAAE,MAAM,OAAO;AAAA,EACxB;AACA,SAAO;AAAA,IACL,MAAM,OAAO;AAAA,IACb,GAAI,OAAO,MAAM,EAAE,KAAK,OAAO,IAAuB,IAAI,CAAC;AAAA,EAC7D;AACF;","names":[]}
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
serializeValue,
|
|
18
18
|
toJsonSafe,
|
|
19
19
|
toJsonSafeReport
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-EFGQRVMT.js";
|
|
21
21
|
import {
|
|
22
22
|
BitfabError,
|
|
23
23
|
CONTENT_OFF_KEY,
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
readEnv,
|
|
38
38
|
recordCallerTraceMetadata,
|
|
39
39
|
retireTraceMetadata
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-DY52FEEM.js";
|
|
41
41
|
import {
|
|
42
42
|
__privateAdd,
|
|
43
43
|
__privateGet,
|
|
@@ -6346,7 +6346,7 @@ var Bitfab = class {
|
|
|
6346
6346
|
await runWithSeedContext({ traceId }, async () => target(...args));
|
|
6347
6347
|
} finally {
|
|
6348
6348
|
try {
|
|
6349
|
-
const { flushTraces: flushTraces2 } = await import("./http-
|
|
6349
|
+
const { flushTraces: flushTraces2 } = await import("./http-GDTWWWYY.js");
|
|
6350
6350
|
await flushTraces2(3e4);
|
|
6351
6351
|
} finally {
|
|
6352
6352
|
unrecorded = activeTraceStates.delete(traceId);
|
|
@@ -6405,7 +6405,7 @@ var Bitfab = class {
|
|
|
6405
6405
|
`Function is wrapped with trace function key '${wrappedKey}' but replay was called with '${traceFunctionKey}'. Pass matching keys, or pass the unwrapped function to replay it under the explicit key.`
|
|
6406
6406
|
);
|
|
6407
6407
|
}
|
|
6408
|
-
const { replay: doReplay } = await import("./replay-
|
|
6408
|
+
const { replay: doReplay } = await import("./replay-VXQGVZXM.js");
|
|
6409
6409
|
return doReplay(
|
|
6410
6410
|
this.httpClient,
|
|
6411
6411
|
this.serviceUrl,
|
|
@@ -6751,7 +6751,7 @@ async function seedFromRegistry(registry, pipeline, cases, options = {}) {
|
|
|
6751
6751
|
sessionId: seedCase.sessionId
|
|
6752
6752
|
})
|
|
6753
6753
|
);
|
|
6754
|
-
const { flushTraces: flushTraces2 } = await import("./http-
|
|
6754
|
+
const { flushTraces: flushTraces2 } = await import("./http-GDTWWWYY.js");
|
|
6755
6755
|
await flushTraces2(3e4);
|
|
6756
6756
|
return { pipeline, traceFunctionKey, traceIds };
|
|
6757
6757
|
}
|
|
@@ -6797,4 +6797,4 @@ export {
|
|
|
6797
6797
|
reseedFromRegistry,
|
|
6798
6798
|
seedFromRegistry
|
|
6799
6799
|
};
|
|
6800
|
-
//# sourceMappingURL=chunk-
|
|
6800
|
+
//# sourceMappingURL=chunk-JNVDKPFL.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
transformBitfabSource
|
|
3
|
+
} from "./chunk-IBWW3SP4.js";
|
|
4
4
|
import {
|
|
5
5
|
shouldTransformBitfabFile
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GSHCHCB5.js";
|
|
7
7
|
|
|
8
8
|
// ../bitfab-typescript-transform/src/unplugin.ts
|
|
9
9
|
import { createUnplugin } from "unplugin";
|
|
@@ -16,10 +16,8 @@ var bitfabTraceUnplugin = createUnplugin((options) => {
|
|
|
16
16
|
if (!shouldTransformBitfabFile(filename, resolvedOptions)) {
|
|
17
17
|
return null;
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
map: null
|
|
22
|
-
};
|
|
19
|
+
const result = transformBitfabSource(source, filename, resolvedOptions);
|
|
20
|
+
return result.map ? result : null;
|
|
23
21
|
}
|
|
24
22
|
};
|
|
25
23
|
});
|
|
@@ -27,4 +25,4 @@ var bitfabTraceUnplugin = createUnplugin((options) => {
|
|
|
27
25
|
export {
|
|
28
26
|
bitfabTraceUnplugin
|
|
29
27
|
};
|
|
30
|
-
//# sourceMappingURL=chunk-
|
|
28
|
+
//# sourceMappingURL=chunk-MN3E2RUU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../bitfab-typescript-transform/src/unplugin.ts"],"sourcesContent":["import { createUnplugin } from \"unplugin\"\nimport { transformBitfabSource } from \"./transform.js\"\nimport type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport { shouldTransformBitfabFile } from \"./transformOptions.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 const result = transformBitfabSource(source, filename, resolvedOptions)\n return result.map ? result : null\n },\n }\n})\n"],"mappings":";;;;;;;;AAAA,SAAS,sBAAsB;AAKxB,IAAM,sBAAsB,eAGjC,CAAC,YAAY;AACb,QAAM,kBAAkB,WAAW,CAAC;AAEpC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,QAAQ,UAAU;AAC1B,UAAI,CAAC,0BAA0B,UAAU,eAAe,GAAG;AACzD,eAAO;AAAA,MACT;AAEA,YAAM,SAAS,sBAAsB,QAAQ,UAAU,eAAe;AACtE,aAAO,OAAO,MAAM,SAAS;AAAA,IAC/B;AAAA,EACF;AACF,CAAC;","names":[]}
|
|
@@ -181,7 +181,7 @@ function encodeRequestBody(body) {
|
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
// src/version.generated.ts
|
|
184
|
-
var __version__ = "0.64.
|
|
184
|
+
var __version__ = "0.64.25";
|
|
185
185
|
var __packageName__ = "@bitfab/sdk";
|
|
186
186
|
|
|
187
187
|
// src/errors.ts
|
|
@@ -2541,4 +2541,4 @@ export {
|
|
|
2541
2541
|
HttpClient,
|
|
2542
2542
|
experimentIdWireFields
|
|
2543
2543
|
};
|
|
2544
|
-
//# sourceMappingURL=chunk-
|
|
2544
|
+
//# sourceMappingURL=chunk-OMWPLB5R.js.map
|