@bitfab/sdk 0.65.3 → 0.65.5

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 (170) hide show
  1. package/dist/autoTrace-CZu0BXhG.js +270 -0
  2. package/dist/autoTrace-CZu0BXhG.js.map +1 -0
  3. package/dist/autoTrace-KM9pYqk9.cjs +395 -0
  4. package/dist/autoTrace-KM9pYqk9.cjs.map +1 -0
  5. package/dist/autoTrace.cjs +15 -353
  6. package/dist/autoTrace.d.cts +44 -44
  7. package/dist/autoTrace.d.ts +44 -44
  8. package/dist/autoTrace.js +1 -28
  9. package/dist/babelPlugin-C70OxrqA.js +209 -0
  10. package/dist/babelPlugin-C70OxrqA.js.map +1 -0
  11. package/dist/babelPlugin-Nta4-VcL.cjs +232 -0
  12. package/dist/babelPlugin-Nta4-VcL.cjs.map +1 -0
  13. package/dist/http-CG1Irqxx.js +2154 -0
  14. package/dist/http-CG1Irqxx.js.map +1 -0
  15. package/dist/index-BFkAwvuc.d.cts +4410 -0
  16. package/dist/index-BFkAwvuc.d.ts +4410 -0
  17. package/dist/index.cjs +48 -12501
  18. package/dist/index.d.cts +2 -4426
  19. package/dist/index.d.ts +2 -4426
  20. package/dist/index.js +3 -96
  21. package/dist/loaderRuntime-0huddOOP.d.ts +12 -0
  22. package/dist/loaderRuntime-CslfDFO7.d.cts +12 -0
  23. package/dist/node.cjs +56 -12517
  24. package/dist/node.cjs.map +1 -1
  25. package/dist/node.d.cts +2 -1
  26. package/dist/node.d.ts +2 -1
  27. package/dist/node.js +10 -105
  28. package/dist/node.js.map +1 -1
  29. package/dist/registryCommand-Di8x0YoJ.js +1111 -0
  30. package/dist/registryCommand-Di8x0YoJ.js.map +1 -0
  31. package/dist/replayCli.js +49 -87
  32. package/dist/replayCli.js.map +1 -1
  33. package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
  34. package/dist/seedCli.js +10 -24
  35. package/dist/seedCli.js.map +1 -1
  36. package/dist/src-BRKm0P_S.cjs +8434 -0
  37. package/dist/src-BRKm0P_S.cjs.map +1 -0
  38. package/dist/src-CfFkki5l.js +6011 -0
  39. package/dist/src-CfFkki5l.js.map +1 -0
  40. package/dist/transform/babel.cjs +5 -422
  41. package/dist/transform/babel.d.cts +16 -16
  42. package/dist/transform/babel.d.ts +16 -16
  43. package/dist/transform/babel.js +1 -7
  44. package/dist/transform/bun.cjs +9 -478
  45. package/dist/transform/bun.cjs.map +1 -1
  46. package/dist/transform/bun.d.cts +5 -7
  47. package/dist/transform/bun.d.ts +5 -7
  48. package/dist/transform/bun.js +6 -11
  49. package/dist/transform/bun.js.map +1 -1
  50. package/dist/transform/esbuild.cjs +9 -478
  51. package/dist/transform/esbuild.cjs.map +1 -1
  52. package/dist/transform/esbuild.d.cts +5 -7
  53. package/dist/transform/esbuild.d.ts +5 -7
  54. package/dist/transform/esbuild.js +6 -11
  55. package/dist/transform/esbuild.js.map +1 -1
  56. package/dist/transform/loaderRuntime.cjs +85 -532
  57. package/dist/transform/loaderRuntime.cjs.map +1 -1
  58. package/dist/transform/loaderRuntime.d.cts +2 -12
  59. package/dist/transform/loaderRuntime.d.ts +2 -12
  60. package/dist/transform/loaderRuntime.js +56 -98
  61. package/dist/transform/loaderRuntime.js.map +1 -1
  62. package/dist/transform/nest.cjs +12 -481
  63. package/dist/transform/nest.cjs.map +1 -1
  64. package/dist/transform/nest.d.cts +8 -9
  65. package/dist/transform/nest.d.ts +8 -9
  66. package/dist/transform/nest.js +9 -14
  67. package/dist/transform/nest.js.map +1 -1
  68. package/dist/transform/next.cjs +56 -528
  69. package/dist/transform/next.cjs.map +1 -1
  70. package/dist/transform/next.d.cts +25 -25
  71. package/dist/transform/next.d.ts +24 -24
  72. package/dist/transform/next.js +52 -60
  73. package/dist/transform/next.js.map +1 -1
  74. package/dist/transform/nodeLoader.js +260 -506
  75. package/dist/transform/nodeLoader.js.map +1 -1
  76. package/dist/transform/register.js +4 -1
  77. package/dist/transform/register.js.map +1 -1
  78. package/dist/transform/rolldown.cjs +9 -478
  79. package/dist/transform/rolldown.cjs.map +1 -1
  80. package/dist/transform/rolldown.d.cts +5 -7
  81. package/dist/transform/rolldown.d.ts +5 -7
  82. package/dist/transform/rolldown.js +6 -11
  83. package/dist/transform/rolldown.js.map +1 -1
  84. package/dist/transform/rollup.cjs +9 -478
  85. package/dist/transform/rollup.cjs.map +1 -1
  86. package/dist/transform/rollup.d.cts +5 -7
  87. package/dist/transform/rollup.d.ts +5 -7
  88. package/dist/transform/rollup.js +6 -11
  89. package/dist/transform/rollup.js.map +1 -1
  90. package/dist/transform/rsbuild.cjs +9 -478
  91. package/dist/transform/rsbuild.cjs.map +1 -1
  92. package/dist/transform/rsbuild.d.cts +5 -7
  93. package/dist/transform/rsbuild.d.ts +5 -7
  94. package/dist/transform/rsbuild.js +6 -11
  95. package/dist/transform/rsbuild.js.map +1 -1
  96. package/dist/transform/rspack.cjs +9 -478
  97. package/dist/transform/rspack.cjs.map +1 -1
  98. package/dist/transform/rspack.d.cts +5 -7
  99. package/dist/transform/rspack.d.ts +5 -7
  100. package/dist/transform/rspack.js +6 -11
  101. package/dist/transform/rspack.js.map +1 -1
  102. package/dist/transform/swc.cjs +18 -486
  103. package/dist/transform/swc.cjs.map +1 -1
  104. package/dist/transform/swc.d.cts +15 -14
  105. package/dist/transform/swc.d.ts +15 -14
  106. package/dist/transform/swc.js +14 -32
  107. package/dist/transform/swc.js.map +1 -1
  108. package/dist/transform/unplugin.cjs +20 -476
  109. package/dist/transform/unplugin.cjs.map +1 -1
  110. package/dist/transform/unplugin.d.cts +4 -6
  111. package/dist/transform/unplugin.d.ts +4 -6
  112. package/dist/transform/unplugin.js +19 -8
  113. package/dist/transform/unplugin.js.map +1 -1
  114. package/dist/transform/vite.cjs +9 -478
  115. package/dist/transform/vite.cjs.map +1 -1
  116. package/dist/transform/vite.d.cts +5 -7
  117. package/dist/transform/vite.d.ts +5 -7
  118. package/dist/transform/vite.js +6 -11
  119. package/dist/transform/vite.js.map +1 -1
  120. package/dist/transform/webpack.cjs +9 -478
  121. package/dist/transform/webpack.cjs.map +1 -1
  122. package/dist/transform/webpack.d.cts +5 -7
  123. package/dist/transform/webpack.d.ts +5 -7
  124. package/dist/transform/webpack.js +6 -11
  125. package/dist/transform/webpack.js.map +1 -1
  126. package/dist/transform-BcyUocwm.js +36 -0
  127. package/dist/transform-BcyUocwm.js.map +1 -0
  128. package/dist/transform-BjxHGGKc.cjs +47 -0
  129. package/dist/transform-BjxHGGKc.cjs.map +1 -0
  130. package/dist/transformOptions-BsjCELkh.d.cts +11 -0
  131. package/dist/transformOptions-BsjCELkh.d.ts +11 -0
  132. package/package.json +5 -5
  133. package/dist/autoTrace.cjs.map +0 -1
  134. package/dist/autoTrace.js.map +0 -1
  135. package/dist/chunk-BRMGNMDO.js +0 -1176
  136. package/dist/chunk-BRMGNMDO.js.map +0 -1
  137. package/dist/chunk-CLP2L5PU.js +0 -2547
  138. package/dist/chunk-CLP2L5PU.js.map +0 -1
  139. package/dist/chunk-HLH7TN2A.js +0 -2060
  140. package/dist/chunk-HLH7TN2A.js.map +0 -1
  141. package/dist/chunk-LCV2JYXL.js +0 -2979
  142. package/dist/chunk-LCV2JYXL.js.map +0 -1
  143. package/dist/chunk-MT36GJMW.js +0 -106
  144. package/dist/chunk-MT36GJMW.js.map +0 -1
  145. package/dist/chunk-NRE5CJPR.js +0 -6874
  146. package/dist/chunk-NRE5CJPR.js.map +0 -1
  147. package/dist/chunk-PTCLRG4E.js +0 -28
  148. package/dist/chunk-PTCLRG4E.js.map +0 -1
  149. package/dist/chunk-QRNHRY7F.js +0 -270
  150. package/dist/chunk-QRNHRY7F.js.map +0 -1
  151. package/dist/chunk-YVJAOGHE.js +0 -45
  152. package/dist/chunk-YVJAOGHE.js.map +0 -1
  153. package/dist/chunk-Z26K57WZ.js +0 -1912
  154. package/dist/chunk-Z26K57WZ.js.map +0 -1
  155. package/dist/chunk-ZG6SHKEF.js +0 -404
  156. package/dist/chunk-ZG6SHKEF.js.map +0 -1
  157. package/dist/http-VN52X47M.js +0 -24
  158. package/dist/http-VN52X47M.js.map +0 -1
  159. package/dist/http-WP4YPPKC.js +0 -23
  160. package/dist/http-WP4YPPKC.js.map +0 -1
  161. package/dist/index.cjs.map +0 -1
  162. package/dist/index.js.map +0 -1
  163. package/dist/replay-463SEV53.js +0 -28
  164. package/dist/replay-463SEV53.js.map +0 -1
  165. package/dist/replay-OT4A4HVF.js +0 -29
  166. package/dist/replay-OT4A4HVF.js.map +0 -1
  167. package/dist/transform/babel.cjs.map +0 -1
  168. package/dist/transform/babel.js.map +0 -1
  169. package/dist/transformOptions-Df2_Chtc.d.cts +0 -10
  170. package/dist/transformOptions-Df2_Chtc.d.ts +0 -10
@@ -1,494 +1,26 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // ../bitfab-typescript-transform/src/swcAdapter.ts
21
- var swcAdapter_exports = {};
22
- __export(swcAdapter_exports, {
23
- transformWithBitfabSwc: () => transformWithBitfabSwc,
24
- transformWithBitfabSwcSync: () => transformWithBitfabSwcSync
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
25
4
  });
26
- module.exports = __toCommonJS(swcAdapter_exports);
27
-
28
- // ../bitfab-typescript-transform/src/transform.ts
29
- var import_core = require("@babel/core");
30
-
31
- // ../bitfab-typescript-transform/src/transformOptions.ts
32
- var AUTO_TRACE_FUNCTION_ID_VERSION = "ts-auto-v1";
33
- var AUTO_TRACE_TRANSFORM_MARKER = "__bitfab_auto_trace_transformed_v1__";
34
- function autoTraceFunctionId(file, name) {
35
- return `${AUTO_TRACE_FUNCTION_ID_VERSION}:${file}#${name}`;
36
- }
37
- function sourceFilename(filename) {
38
- return filename.replace(/\\/g, "/").split(/[?#]/, 1)[0] ?? "";
39
- }
40
- function autoTraceFilename(filename, cwd) {
41
- const normalized = sourceFilename(filename);
42
- const normalizedCwd = cwd.replace(/\\/g, "/").replace(/\/$/, "");
43
- return normalized.startsWith(`${normalizedCwd}/`) ? normalized.slice(normalizedCwd.length + 1) : normalized;
44
- }
45
- function shouldTransformBitfabFile(filename, options) {
46
- if (!filename) {
47
- return false;
48
- }
49
- if (options.include && !options.include(filename)) {
50
- return false;
51
- }
52
- const normalized = sourceFilename(filename);
53
- const normalizedCwd = options.cwd?.replace(/\\/g, "/").replace(/\/$/, "");
54
- const isAbsolute = normalized.startsWith("/") || /^[A-Za-z]:\//.test(normalized);
55
- if (normalizedCwd && isAbsolute && normalized !== normalizedCwd && !normalized.startsWith(`${normalizedCwd}/`)) {
56
- return false;
57
- }
58
- return !normalized.includes("/node_modules/") && !normalized.endsWith(".d.ts") && /\.[cm]?[jt]sx?$/.test(normalized);
59
- }
60
-
61
- // ../bitfab-typescript-transform/src/babelPlugin.ts
62
- function propertyName(node, types) {
63
- if (types.isIdentifier(node)) {
64
- return node.name;
65
- }
66
- if (types.isStringLiteral(node)) {
67
- return node.value;
68
- }
69
- return null;
70
- }
71
- function functionName(path, types) {
72
- const node = path.node;
73
- if (types.isFunctionDeclaration(node) || types.isFunctionExpression(node)) {
74
- if (node.id) {
75
- return node.id.name;
76
- }
77
- }
78
- if ((types.isClassMethod(node) || types.isObjectMethod(node)) && !node.computed && types.isIdentifier(node.key)) {
79
- return node.key.name;
80
- }
81
- const parent = path.parentPath?.node;
82
- if (types.isVariableDeclarator(parent)) {
83
- return propertyName(parent.id, types) ?? "anonymous";
84
- }
85
- if (types.isObjectProperty(parent) && !parent.computed) {
86
- return propertyName(parent.key, types) ?? "anonymous";
87
- }
88
- if (types.isClassProperty(parent) && !parent.computed) {
89
- const name = propertyName(parent.key, types);
90
- if (name) {
91
- return name;
92
- }
93
- }
94
- const { line, column } = sourcePosition(path);
95
- return `anonymous-${line}-${column}`;
96
- }
97
- function isInstrumentableFunction(node, types) {
98
- if (node.generator || types.isClassPrivateMethod(node)) {
99
- return false;
100
- }
101
- return !(types.isClassMethod(node) || types.isObjectMethod(node)) || node.kind === "method";
102
- }
103
- function sourcePosition(path) {
104
- const exportDeclaration = path.parentPath?.isExportDeclaration() ? path.parentPath.node : void 0;
105
- const start = (exportDeclaration ?? path.node).loc?.start;
106
- return { line: start?.line ?? 0, column: start?.column ?? 0 };
107
- }
108
- function qualifiedFunctionName(path, types) {
109
- const ownName = functionName(path, types);
110
- if (ownName.startsWith("anonymous-")) {
111
- return ownName;
112
- }
113
- const scopes = [];
114
- let ancestor = path.parentPath;
115
- while (ancestor) {
116
- if (ancestor.isFunction()) {
117
- if (!isInstrumentableFunction(ancestor.node, types)) {
118
- ancestor = ancestor.parentPath;
119
- continue;
120
- }
121
- const name = functionName(
122
- ancestor,
123
- types
124
- );
125
- if (!name.startsWith("anonymous-")) {
126
- scopes.unshift(name);
127
- }
128
- } else if ((ancestor.isClassDeclaration() || ancestor.isClassExpression()) && ancestor.node.id) {
129
- scopes.unshift(ancestor.node.id.name);
130
- } else if (ancestor.isObjectExpression()) {
131
- const parent = ancestor.parentPath?.node;
132
- if (types.isVariableDeclarator(parent)) {
133
- const name = propertyName(parent.id, types);
134
- if (name) {
135
- scopes.unshift(name);
136
- }
137
- } else if (types.isObjectProperty(parent) && !parent.computed) {
138
- const name = propertyName(parent.key, types);
139
- if (name) {
140
- scopes.unshift(name);
141
- }
142
- }
143
- }
144
- ancestor = ancestor.parentPath;
145
- }
146
- return [...scopes, ownName].join(".");
147
- }
148
- function isTraceDecoratorRoot(path, types) {
149
- const node = path.node;
150
- const parent = path.parentPath?.node;
151
- const decorated = types.isClassMethod(node) || types.isClassPrivateMethod(node) ? node : types.isClassProperty(parent) && parent.value === node ? parent : null;
152
- if (!decorated) {
153
- return false;
154
- }
155
- return decorated.decorators?.some((decorator) => {
156
- const expression = decorator.expression;
157
- if (!types.isCallExpression(expression)) {
158
- return false;
159
- }
160
- const callee = expression.callee;
161
- return types.isMemberExpression(callee) && !callee.computed && types.isIdentifier(callee.property, { name: "trace" });
162
- }) ?? false;
163
- }
164
- function withNodeFunctionName(path, types) {
165
- if (path.node.arguments.length > 2) {
166
- return null;
167
- }
168
- const callee = path.node.callee;
169
- if (!types.isMemberExpression(callee) || callee.computed || !types.isIdentifier(callee.property, { name: "withNode" })) {
170
- return null;
171
- }
172
- const fn = path.node.arguments[path.node.arguments.length - 1];
173
- if (types.isIdentifier(fn)) {
174
- return fn.name;
175
- }
176
- if (types.isMemberExpression(fn) && !fn.computed) {
177
- return propertyName(fn.property, types);
178
- }
179
- if (types.isFunctionExpression(fn) && fn.id) {
180
- return fn.id.name;
181
- }
182
- return null;
183
- }
184
- function runtimeParameters(node, types) {
185
- return node.params.filter(
186
- (parameter) => !types.isIdentifier(parameter, { name: "this" })
187
- );
188
- }
189
- function parameterInputs(path, types) {
190
- const elements = [];
191
- for (const [index, parameter] of runtimeParameters(
192
- path.node,
193
- types
194
- ).entries()) {
195
- if (!types.isArrowFunctionExpression(path.node)) {
196
- if (types.isRestElement(parameter)) {
197
- elements.push(
198
- types.spreadElement(
199
- types.callExpression(
200
- types.memberExpression(
201
- types.arrayExpression([
202
- types.spreadElement(types.identifier("arguments"))
203
- ]),
204
- types.identifier("slice")
205
- ),
206
- [types.numericLiteral(index)]
207
- )
208
- )
209
- );
210
- } else {
211
- elements.push(
212
- types.memberExpression(
213
- types.identifier("arguments"),
214
- types.numericLiteral(index),
215
- true
216
- )
217
- );
218
- }
219
- continue;
220
- }
221
- if (types.isIdentifier(parameter)) {
222
- elements.push(types.identifier(parameter.name));
223
- } else if (types.isRestElement(parameter) && types.isIdentifier(parameter.argument)) {
224
- elements.push(
225
- types.spreadElement(types.identifier(parameter.argument.name))
226
- );
227
- }
228
- }
229
- return types.arrayExpression(elements);
230
- }
231
- function needsArgumentWrapper(path, types) {
232
- return types.isArrowFunctionExpression(path.node) && path.node.params.some(
233
- (parameter) => !types.isIdentifier(parameter) && !(types.isRestElement(parameter) && types.isIdentifier(parameter.argument))
234
- );
235
- }
236
- function isRestWrapper(path, types) {
237
- const parameters = runtimeParameters(path.node, types);
238
- return parameters.length === 1 && types.isRestElement(parameters[0]);
239
- }
240
- function bitfabBabelPlugin(api) {
241
- const { types } = api;
242
- return {
243
- name: "bitfab-auto-trace",
244
- visitor: {
245
- Program: {
246
- enter(path, state) {
247
- const filename = state.file.opts.filename ?? "unknown";
248
- state.skipFile = !shouldTransformBitfabFile(filename, state.opts) || path.scope.hasBinding(AUTO_TRACE_TRANSFORM_MARKER) || path.node.directives.some(
249
- (directive) => directive.value.value === "use client"
250
- );
251
- state.runtimeIdentifier = path.scope.generateUidIdentifier("bitfabAutoSpan");
252
- state.activeIdentifier = path.scope.generateUidIdentifier(
253
- "bitfabAutoTraceActive"
254
- );
255
- state.wrapperIdentifier = path.scope.generateUidIdentifier("bitfabAutoWrap");
256
- state.definitions = [];
257
- state.usedRuntime = false;
258
- state.usedWrapper = false;
259
- },
260
- exit(path, state) {
261
- if (state.skipFile || !state.usedRuntime || !state.runtimeIdentifier || !state.activeIdentifier || !state.wrapperIdentifier) {
262
- return;
263
- }
264
- state.file.metadata[AUTO_TRACE_TRANSFORM_MARKER] = true;
265
- path.unshiftContainer("body", [
266
- types.importDeclaration(
267
- [
268
- types.importSpecifier(
269
- state.runtimeIdentifier,
270
- types.identifier("__bitfabAutoSpan")
271
- ),
272
- types.importSpecifier(
273
- state.activeIdentifier,
274
- types.identifier("__bitfabAutoTraceActive")
275
- ),
276
- ...state.usedWrapper ? [
277
- types.importSpecifier(
278
- state.wrapperIdentifier,
279
- types.identifier("__bitfabAutoWrap")
280
- )
281
- ] : []
282
- ],
283
- types.stringLiteral(
284
- state.opts.runtimeModule ?? "@bitfab/sdk/auto"
285
- )
286
- ),
287
- types.variableDeclaration("const", [
288
- types.variableDeclarator(
289
- types.identifier(AUTO_TRACE_TRANSFORM_MARKER),
290
- types.assignmentExpression(
291
- "=",
292
- types.memberExpression(
293
- types.identifier("globalThis"),
294
- types.identifier(AUTO_TRACE_TRANSFORM_MARKER)
295
- ),
296
- types.booleanLiteral(true)
297
- )
298
- )
299
- ]),
300
- ...state.definitions ?? []
301
- ]);
302
- }
303
- },
304
- CallExpression: {
305
- exit(path, state) {
306
- if (state.skipFile) {
307
- return;
308
- }
309
- const configuredName = withNodeFunctionName(path, types);
310
- if (configuredName === null) {
311
- return;
312
- }
313
- if (path.node.arguments.length === 1) {
314
- path.node.arguments.push(types.identifier("undefined"));
315
- }
316
- path.node.arguments.push(types.stringLiteral(configuredName));
317
- }
318
- },
319
- Function: {
320
- exit(path, state) {
321
- const node = path.node;
322
- if (state.skipFile || node._bitfabInstrumented || !isInstrumentableFunction(node, types) || isTraceDecoratorRoot(path, types) || !state.runtimeIdentifier || !state.activeIdentifier || !state.wrapperIdentifier) {
323
- return;
324
- }
325
- const name = qualifiedFunctionName(path, types);
326
- if (name.startsWith("anonymous-")) {
327
- return;
328
- }
329
- const normalizedFilename = autoTraceFilename(
330
- state.file.opts.filename ?? "unknown",
331
- state.opts.cwd ?? state.file.opts.cwd ?? process.cwd()
332
- );
333
- const { line, column } = sourcePosition(path);
334
- const definition = types.objectExpression([
335
- types.objectProperty(
336
- types.identifier("id"),
337
- types.stringLiteral(
338
- autoTraceFunctionId(normalizedFilename, name)
339
- )
340
- ),
341
- types.objectProperty(
342
- types.identifier("name"),
343
- types.stringLiteral(name)
344
- ),
345
- types.objectProperty(
346
- types.identifier("file"),
347
- types.stringLiteral(normalizedFilename)
348
- ),
349
- types.objectProperty(
350
- types.identifier("line"),
351
- types.numericLiteral(line)
352
- ),
353
- types.objectProperty(
354
- types.identifier("column"),
355
- types.numericLiteral(column)
356
- ),
357
- ...node.async ? [
358
- types.objectProperty(
359
- types.identifier("async"),
360
- types.booleanLiteral(true)
361
- )
362
- ] : [],
363
- ...isRestWrapper(path, types) ? [
364
- types.objectProperty(
365
- types.identifier("wrapper"),
366
- types.booleanLiteral(true)
367
- )
368
- ] : []
369
- ]);
370
- const definitionIdentifier = path.scope.getProgramParent().generateUidIdentifier("bitfabAutoDefinition");
371
- state.definitions?.push(
372
- types.variableDeclaration("const", [
373
- types.variableDeclarator(definitionIdentifier, definition)
374
- ])
375
- );
376
- if (needsArgumentWrapper(path, types)) {
377
- node._bitfabInstrumented = true;
378
- path.replaceWith(
379
- types.callExpression(types.cloneNode(state.wrapperIdentifier), [
380
- types.cloneNode(definitionIdentifier),
381
- node
382
- ])
383
- );
384
- state.usedRuntime = true;
385
- state.usedWrapper = true;
386
- return;
387
- }
388
- const originalBody = types.isBlockStatement(node.body) ? node.body : types.blockStatement([types.returnStatement(node.body)]);
389
- const directives = originalBody.directives;
390
- originalBody.directives = [];
391
- const body = types.blockStatement(
392
- [
393
- types.ifStatement(
394
- types.callExpression(
395
- types.cloneNode(state.activeIdentifier),
396
- []
397
- ),
398
- types.blockStatement([
399
- types.returnStatement(
400
- types.callExpression(
401
- types.cloneNode(state.runtimeIdentifier),
402
- [
403
- types.cloneNode(definitionIdentifier),
404
- parameterInputs(path, types),
405
- types.arrowFunctionExpression(
406
- [],
407
- types.cloneNode(originalBody, true),
408
- node.async ?? false
409
- )
410
- ]
411
- )
412
- )
413
- ])
414
- ),
415
- ...originalBody.body
416
- ],
417
- directives
418
- );
419
- node.body = body;
420
- node._bitfabInstrumented = true;
421
- state.usedRuntime = true;
422
- }
423
- }
424
- }
425
- };
426
- }
427
-
428
- // ../bitfab-typescript-transform/src/transform.ts
429
- function parserPlugins(filename) {
430
- const path = sourceFilename(filename);
431
- const typescript = /\.[cm]?tsx?$/.test(path);
432
- const jsx = /\.tsx$/.test(path) || /\.[cm]?jsx?$/.test(path);
433
- return [
434
- ...typescript ? ["typescript"] : [],
435
- ...jsx ? ["jsx"] : [],
436
- "decorators"
437
- ];
438
- }
439
- function transformBitfabSource(source, filename, options = {}) {
440
- if (!shouldTransformBitfabFile(filename, options)) {
441
- return { code: source };
442
- }
443
- const result = (0, import_core.transformSync)(source, {
444
- babelrc: false,
445
- configFile: false,
446
- filename: sourceFilename(filename),
447
- parserOpts: { plugins: parserPlugins(filename), sourceType: "module" },
448
- plugins: [[bitfabBabelPlugin, options]],
449
- sourceMaps: true
450
- });
451
- if (!result?.code || !result.metadata?.[AUTO_TRACE_TRANSFORM_MARKER]) {
452
- return { code: source };
453
- }
454
- return {
455
- code: result.code,
456
- ...result.map ? { map: result.map } : {}
457
- };
458
- }
459
-
460
- // ../bitfab-typescript-transform/src/swcAdapter.ts
5
+ const require_transform = require("../transform-BjxHGGKc.cjs");
6
+ //#region ../bitfab-typescript-transform/src/swcAdapter.ts
461
7
  function swcOptions(transformed, options) {
462
- return {
463
- filename: options.filename,
464
- ...transformed.map && {
465
- inputSourceMap: JSON.stringify(transformed.map)
466
- },
467
- ...options.swc
468
- };
8
+ return {
9
+ filename: options.filename,
10
+ ...transformed.map && { inputSourceMap: JSON.stringify(transformed.map) },
11
+ ...options.swc
12
+ };
469
13
  }
470
14
  async function transformWithBitfabSwc(compiler, source, options) {
471
- const transformed = transformBitfabSource(
472
- source,
473
- options.filename,
474
- options.bitfab
475
- );
476
- return compiler.transform(transformed.code, swcOptions(transformed, options));
15
+ const transformed = require_transform.transformBitfabSource(source, options.filename, options.bitfab);
16
+ return compiler.transform(transformed.code, swcOptions(transformed, options));
477
17
  }
478
18
  function transformWithBitfabSwcSync(compiler, source, options) {
479
- const transformed = transformBitfabSource(
480
- source,
481
- options.filename,
482
- options.bitfab
483
- );
484
- return compiler.transformSync(
485
- transformed.code,
486
- swcOptions(transformed, options)
487
- );
19
+ const transformed = require_transform.transformBitfabSource(source, options.filename, options.bitfab);
20
+ return compiler.transformSync(transformed.code, swcOptions(transformed, options));
488
21
  }
489
- // Annotate the CommonJS export names for ESM import in node:
490
- 0 && (module.exports = {
491
- transformWithBitfabSwc,
492
- transformWithBitfabSwcSync
493
- });
22
+ //#endregion
23
+ exports.transformWithBitfabSwc = transformWithBitfabSwc;
24
+ exports.transformWithBitfabSwcSync = transformWithBitfabSwcSync;
25
+
494
26
  //# sourceMappingURL=swc.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../bitfab-typescript-transform/src/swcAdapter.ts","../../../bitfab-typescript-transform/src/transform.ts","../../../bitfab-typescript-transform/src/transformOptions.ts","../../../bitfab-typescript-transform/src/babelPlugin.ts"],"sourcesContent":["import {\n type BitfabTransformOptions,\n type BitfabTransformResult,\n transformBitfabSource,\n} from \"./transform.js\"\n\ninterface SwcTransformOutput {\n code: string\n map?: string\n}\n\ninterface SwcCompilerLike {\n transform(\n source: string,\n options: Record<string, unknown>,\n ): Promise<SwcTransformOutput>\n transformSync(\n source: string,\n options: Record<string, unknown>,\n ): SwcTransformOutput\n}\n\nexport interface BitfabSwcTransformOptions {\n filename: string\n bitfab?: BitfabTransformOptions\n swc?: Record<string, unknown>\n}\n\nfunction swcOptions(\n transformed: BitfabTransformResult,\n options: BitfabSwcTransformOptions,\n): Record<string, unknown> {\n return {\n filename: options.filename,\n ...(transformed.map && {\n inputSourceMap: JSON.stringify(transformed.map),\n }),\n ...options.swc,\n }\n}\n\n/**\n * Transform a module with Bitfab before compiling it with SWC.\n *\n * This programmatic adapter runs before SWC's decorator lowering, which lets\n * normal `@bitfab.trace()` decorators remain the only root marker.\n *\n * @experimental The generated function identity protocol may change.\n */\nexport async function transformWithBitfabSwc(\n compiler: SwcCompilerLike,\n source: string,\n options: BitfabSwcTransformOptions,\n): Promise<SwcTransformOutput> {\n const transformed = transformBitfabSource(\n source,\n options.filename,\n options.bitfab,\n )\n return compiler.transform(transformed.code, swcOptions(transformed, options))\n}\n\n/**\n * Synchronous form of {@link transformWithBitfabSwc}.\n *\n * @experimental The generated function identity protocol may change.\n */\nexport function transformWithBitfabSwcSync(\n compiler: SwcCompilerLike,\n source: string,\n options: BitfabSwcTransformOptions,\n): SwcTransformOutput {\n const transformed = transformBitfabSource(\n source,\n options.filename,\n options.bitfab,\n )\n return compiler.transformSync(\n transformed.code,\n swcOptions(transformed, options),\n )\n}\n","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","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 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\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\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 isTraceDecoratorRoot(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":[]}
1
+ {"version":3,"file":"swc.cjs","names":["transformBitfabSource"],"sources":["../../../bitfab-typescript-transform/src/swcAdapter.ts"],"sourcesContent":["import {\n type BitfabTransformOptions,\n type BitfabTransformResult,\n transformBitfabSource,\n} from \"./transform.js\"\n\ninterface SwcTransformOutput {\n code: string\n map?: string\n}\n\ninterface SwcCompilerLike {\n transform(\n source: string,\n options: Record<string, unknown>,\n ): Promise<SwcTransformOutput>\n transformSync(\n source: string,\n options: Record<string, unknown>,\n ): SwcTransformOutput\n}\n\nexport interface BitfabSwcTransformOptions {\n filename: string\n bitfab?: BitfabTransformOptions\n swc?: Record<string, unknown>\n}\n\nfunction swcOptions(\n transformed: BitfabTransformResult,\n options: BitfabSwcTransformOptions,\n): Record<string, unknown> {\n return {\n filename: options.filename,\n ...(transformed.map && {\n inputSourceMap: JSON.stringify(transformed.map),\n }),\n ...options.swc,\n }\n}\n\n/**\n * Transform a module with Bitfab before compiling it with SWC.\n *\n * This programmatic adapter runs before SWC's decorator lowering, which lets\n * normal `@bitfab.trace()` decorators remain the only root marker.\n *\n * @experimental The generated function identity protocol may change.\n */\nexport async function transformWithBitfabSwc(\n compiler: SwcCompilerLike,\n source: string,\n options: BitfabSwcTransformOptions,\n): Promise<SwcTransformOutput> {\n const transformed = transformBitfabSource(\n source,\n options.filename,\n options.bitfab,\n )\n return compiler.transform(transformed.code, swcOptions(transformed, options))\n}\n\n/**\n * Synchronous form of {@link transformWithBitfabSwc}.\n *\n * @experimental The generated function identity protocol may change.\n */\nexport function transformWithBitfabSwcSync(\n compiler: SwcCompilerLike,\n source: string,\n options: BitfabSwcTransformOptions,\n): SwcTransformOutput {\n const transformed = transformBitfabSource(\n source,\n options.filename,\n options.bitfab,\n )\n return compiler.transformSync(\n transformed.code,\n swcOptions(transformed, options),\n )\n}\n"],"mappings":";;;;;;AA4BA,SAAS,WACP,aACA,SACyB;CACzB,OAAO;EACL,UAAU,QAAQ;EAClB,GAAI,YAAY,OAAO,EACrB,gBAAgB,KAAK,UAAU,YAAY,GAAG,EAChD;EACA,GAAG,QAAQ;CACb;AACF;AAUA,eAAsB,uBACpB,UACA,QACA,SAC6B;CAC7B,MAAM,cAAcA,kBAAAA,sBAClB,QACA,QAAQ,UACR,QAAQ,MACV;CACA,OAAO,SAAS,UAAU,YAAY,MAAM,WAAW,aAAa,OAAO,CAAC;AAC9E;AAOA,SAAgB,2BACd,UACA,QACA,SACoB;CACpB,MAAM,cAAcA,kBAAAA,sBAClB,QACA,QAAQ,UACR,QAAQ,MACV;CACA,OAAO,SAAS,cACd,YAAY,MACZ,WAAW,aAAa,OAAO,CACjC;AACF"}
@@ -1,17 +1,18 @@
1
- import { B as BitfabTransformOptions } from '../transformOptions-Df2_Chtc.cjs';
2
-
1
+ import { t as BitfabTransformOptions } from "../transformOptions-BsjCELkh.cjs";
2
+ import "@babel/core";
3
+ //#region ../bitfab-typescript-transform/src/swcAdapter.d.ts
3
4
  interface SwcTransformOutput {
4
- code: string;
5
- map?: string;
5
+ code: string;
6
+ map?: string;
6
7
  }
7
8
  interface SwcCompilerLike {
8
- transform(source: string, options: Record<string, unknown>): Promise<SwcTransformOutput>;
9
- transformSync(source: string, options: Record<string, unknown>): SwcTransformOutput;
9
+ transform(source: string, options: Record<string, unknown>): Promise<SwcTransformOutput>;
10
+ transformSync(source: string, options: Record<string, unknown>): SwcTransformOutput;
10
11
  }
11
- interface BitfabSwcTransformOptions {
12
- filename: string;
13
- bitfab?: BitfabTransformOptions;
14
- swc?: Record<string, unknown>;
12
+ export interface BitfabSwcTransformOptions {
13
+ filename: string;
14
+ bitfab?: BitfabTransformOptions;
15
+ swc?: Record<string, unknown>;
15
16
  }
16
17
  /**
17
18
  * Transform a module with Bitfab before compiling it with SWC.
@@ -21,12 +22,12 @@ interface BitfabSwcTransformOptions {
21
22
  *
22
23
  * @experimental The generated function identity protocol may change.
23
24
  */
24
- declare function transformWithBitfabSwc(compiler: SwcCompilerLike, source: string, options: BitfabSwcTransformOptions): Promise<SwcTransformOutput>;
25
+ export declare function transformWithBitfabSwc(compiler: SwcCompilerLike, source: string, options: BitfabSwcTransformOptions): Promise<SwcTransformOutput>;
25
26
  /**
26
27
  * Synchronous form of {@link transformWithBitfabSwc}.
27
28
  *
28
29
  * @experimental The generated function identity protocol may change.
29
30
  */
30
- declare function transformWithBitfabSwcSync(compiler: SwcCompilerLike, source: string, options: BitfabSwcTransformOptions): SwcTransformOutput;
31
-
32
- export { type BitfabSwcTransformOptions, transformWithBitfabSwc, transformWithBitfabSwcSync };
31
+ export declare function transformWithBitfabSwcSync(compiler: SwcCompilerLike, source: string, options: BitfabSwcTransformOptions): SwcTransformOutput;
32
+ //#endregion
33
+ export {};