bitfab 0.61.0 → 0.61.2

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 (141) hide show
  1. package/README.md +8 -5
  2. package/dist/autoTrace.cjs +1 -1
  3. package/dist/autoTrace.cjs.map +1 -1
  4. package/dist/autoTrace.js +1 -1
  5. package/dist/chunk-6R33XLNY.js +28 -0
  6. package/dist/chunk-6R33XLNY.js.map +1 -0
  7. package/dist/{chunk-6JQL37VC.js → chunk-A4UVO6BQ.js} +171 -48
  8. package/dist/chunk-A4UVO6BQ.js.map +1 -0
  9. package/dist/{chunk-5DNB7EN7.js → chunk-BMJNDIVA.js} +2 -2
  10. package/dist/chunk-BMJNDIVA.js.map +1 -0
  11. package/dist/{chunk-2M62EGYK.js → chunk-INA6W7OB.js} +42 -2
  12. package/dist/{chunk-2M62EGYK.js.map → chunk-INA6W7OB.js.map} +1 -1
  13. package/dist/{chunk-O52C6BRF.js → chunk-LUOCT4HG.js} +7 -7
  14. package/dist/{chunk-O52C6BRF.js.map → chunk-LUOCT4HG.js.map} +1 -1
  15. package/dist/{chunk-J54ZR6NF.js → chunk-MTK6PZHA.js} +122 -52
  16. package/dist/chunk-MTK6PZHA.js.map +1 -0
  17. package/dist/{chunk-3BTITSNA.js → chunk-ONZFMRRF.js} +42 -2
  18. package/dist/{chunk-3BTITSNA.js.map → chunk-ONZFMRRF.js.map} +1 -1
  19. package/dist/chunk-OXFZJP4E.js +30 -0
  20. package/dist/chunk-OXFZJP4E.js.map +1 -0
  21. package/dist/chunk-PACLPKDH.js +513 -0
  22. package/dist/chunk-PACLPKDH.js.map +1 -0
  23. package/dist/{http-2EZA7I4F.js → http-2R6MSRVA.js} +2 -2
  24. package/dist/{http-PKQBVZD6.js → http-KM6QWKAP.js} +2 -2
  25. package/dist/index.cjs +212 -49
  26. package/dist/index.cjs.map +1 -1
  27. package/dist/index.d.cts +27 -1
  28. package/dist/index.d.ts +27 -1
  29. package/dist/index.js +4 -4
  30. package/dist/node.cjs +212 -49
  31. package/dist/node.cjs.map +1 -1
  32. package/dist/node.js +4 -4
  33. package/dist/{replay-XC2YOK4X.js → replay-6UUBJBLK.js} +3 -3
  34. package/dist/replayCli.js +4 -3
  35. package/dist/replayCli.js.map +1 -1
  36. package/dist/seedCli.js +2 -2
  37. package/dist/transform/babel.cjs +418 -0
  38. package/dist/transform/babel.cjs.map +1 -0
  39. package/dist/transform/babel.d.cts +27 -0
  40. package/dist/transform/babel.d.ts +27 -0
  41. package/dist/transform/babel.js +379 -0
  42. package/dist/transform/babel.js.map +1 -0
  43. package/dist/transform/bun.cjs +586 -0
  44. package/dist/transform/bun.cjs.map +1 -0
  45. package/dist/transform/bun.d.cts +12 -0
  46. package/dist/transform/bun.d.ts +12 -0
  47. package/dist/transform/bun.js +14 -0
  48. package/dist/transform/bun.js.map +1 -0
  49. package/dist/transform/esbuild.cjs +586 -0
  50. package/dist/transform/esbuild.cjs.map +1 -0
  51. package/dist/transform/esbuild.d.cts +12 -0
  52. package/dist/transform/esbuild.d.ts +12 -0
  53. package/dist/transform/esbuild.js +14 -0
  54. package/dist/transform/esbuild.js.map +1 -0
  55. package/dist/transform/loaderRuntime.cjs +627 -0
  56. package/dist/transform/loaderRuntime.cjs.map +1 -0
  57. package/dist/transform/loaderRuntime.d.cts +12 -0
  58. package/dist/transform/loaderRuntime.d.ts +12 -0
  59. package/dist/transform/loaderRuntime.js +93 -0
  60. package/dist/transform/loaderRuntime.js.map +1 -0
  61. package/dist/transform/nest.cjs +589 -0
  62. package/dist/transform/nest.cjs.map +1 -0
  63. package/dist/transform/nest.d.cts +16 -0
  64. package/dist/transform/nest.d.ts +16 -0
  65. package/dist/transform/nest.js +17 -0
  66. package/dist/transform/nest.js.map +1 -0
  67. package/dist/transform/next.cjs +641 -0
  68. package/dist/transform/next.cjs.map +1 -0
  69. package/dist/transform/next.d.cts +40 -0
  70. package/dist/transform/next.d.ts +40 -0
  71. package/dist/transform/next.js +69 -0
  72. package/dist/transform/next.js.map +1 -0
  73. package/dist/transform/nodeLoader.js +640 -0
  74. package/dist/transform/nodeLoader.js.map +1 -0
  75. package/dist/transform/register.js +5 -0
  76. package/dist/transform/register.js.map +1 -0
  77. package/dist/transform/rolldown.cjs +586 -0
  78. package/dist/transform/rolldown.cjs.map +1 -0
  79. package/dist/transform/rolldown.d.cts +12 -0
  80. package/dist/transform/rolldown.d.ts +12 -0
  81. package/dist/transform/rolldown.js +14 -0
  82. package/dist/transform/rolldown.js.map +1 -0
  83. package/dist/transform/rollup.cjs +586 -0
  84. package/dist/transform/rollup.cjs.map +1 -0
  85. package/dist/transform/rollup.d.cts +12 -0
  86. package/dist/transform/rollup.d.ts +12 -0
  87. package/dist/transform/rollup.js +14 -0
  88. package/dist/transform/rollup.js.map +1 -0
  89. package/dist/transform/rsbuild.cjs +586 -0
  90. package/dist/transform/rsbuild.cjs.map +1 -0
  91. package/dist/transform/rsbuild.d.cts +12 -0
  92. package/dist/transform/rsbuild.d.ts +12 -0
  93. package/dist/transform/rsbuild.js +14 -0
  94. package/dist/transform/rsbuild.js.map +1 -0
  95. package/dist/transform/rspack.cjs +586 -0
  96. package/dist/transform/rspack.cjs.map +1 -0
  97. package/dist/transform/rspack.d.cts +12 -0
  98. package/dist/transform/rspack.d.ts +12 -0
  99. package/dist/transform/rspack.js +14 -0
  100. package/dist/transform/rspack.js.map +1 -0
  101. package/dist/transform/swc.cjs +592 -0
  102. package/dist/transform/swc.cjs.map +1 -0
  103. package/dist/transform/swc.d.cts +32 -0
  104. package/dist/transform/swc.d.ts +32 -0
  105. package/dist/transform/swc.js +33 -0
  106. package/dist/transform/swc.js.map +1 -0
  107. package/dist/transform/typescript.cjs +566 -0
  108. package/dist/transform/typescript.cjs.map +1 -0
  109. package/dist/transform/typescript.d.cts +22 -0
  110. package/dist/transform/typescript.d.ts +22 -0
  111. package/dist/transform/typescript.js +10 -0
  112. package/dist/transform/typescript.js.map +1 -0
  113. package/dist/transform/unplugin.cjs +583 -0
  114. package/dist/transform/unplugin.cjs.map +1 -0
  115. package/dist/transform/unplugin.d.cts +6 -0
  116. package/dist/transform/unplugin.d.ts +6 -0
  117. package/dist/transform/unplugin.js +9 -0
  118. package/dist/transform/unplugin.js.map +1 -0
  119. package/dist/transform/vite.cjs +586 -0
  120. package/dist/transform/vite.cjs.map +1 -0
  121. package/dist/transform/vite.d.cts +15 -0
  122. package/dist/transform/vite.d.ts +15 -0
  123. package/dist/transform/vite.js +14 -0
  124. package/dist/transform/vite.js.map +1 -0
  125. package/dist/transform/webpack.cjs +586 -0
  126. package/dist/transform/webpack.cjs.map +1 -0
  127. package/dist/transform/webpack.d.cts +12 -0
  128. package/dist/transform/webpack.d.ts +12 -0
  129. package/dist/transform/webpack.js +14 -0
  130. package/dist/transform/webpack.js.map +1 -0
  131. package/dist/transformOptions-Df2_Chtc.d.cts +10 -0
  132. package/dist/transformOptions-Df2_Chtc.d.ts +10 -0
  133. package/package.json +167 -7
  134. package/transform-loader.cjs +19 -0
  135. package/transform-loader.d.cts +19 -0
  136. package/dist/chunk-5DNB7EN7.js.map +0 -1
  137. package/dist/chunk-6JQL37VC.js.map +0 -1
  138. package/dist/chunk-J54ZR6NF.js.map +0 -1
  139. /package/dist/{http-2EZA7I4F.js.map → http-2R6MSRVA.js.map} +0 -0
  140. /package/dist/{http-PKQBVZD6.js.map → http-KM6QWKAP.js.map} +0 -0
  141. /package/dist/{replay-XC2YOK4X.js.map → replay-6UUBJBLK.js.map} +0 -0
@@ -0,0 +1,30 @@
1
+ import {
2
+ transformBitfabTypeScriptSource
3
+ } from "./chunk-PACLPKDH.js";
4
+ import {
5
+ shouldTransformBitfabFile
6
+ } from "./chunk-6R33XLNY.js";
7
+
8
+ // ../bitfab-typescript-transform/src/unplugin.ts
9
+ import { createUnplugin } from "unplugin";
10
+ var bitfabTraceUnplugin = createUnplugin((options) => {
11
+ const resolvedOptions = options ?? {};
12
+ return {
13
+ name: "bitfab-auto-trace",
14
+ enforce: "pre",
15
+ transform(source, filename) {
16
+ if (!shouldTransformBitfabFile(filename, resolvedOptions)) {
17
+ return null;
18
+ }
19
+ return {
20
+ ...transformBitfabTypeScriptSource(source, filename, resolvedOptions),
21
+ map: null
22
+ };
23
+ }
24
+ };
25
+ });
26
+
27
+ export {
28
+ bitfabTraceUnplugin
29
+ };
30
+ //# sourceMappingURL=chunk-OXFZJP4E.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../bitfab-typescript-transform/src/unplugin.ts"],"sourcesContent":["import { createUnplugin } from \"unplugin\"\nimport type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport { shouldTransformBitfabFile } from \"./transformOptions.js\"\nimport { transformBitfabTypeScriptSource } from \"./typescriptTransformer.js\"\n\nexport const bitfabTraceUnplugin = createUnplugin<\n BitfabTransformOptions | undefined,\n false\n>((options) => {\n const resolvedOptions = options ?? {}\n\n return {\n name: \"bitfab-auto-trace\",\n enforce: \"pre\",\n transform(source, filename) {\n if (!shouldTransformBitfabFile(filename, resolvedOptions)) {\n return null\n }\n\n return {\n ...transformBitfabTypeScriptSource(source, filename, resolvedOptions),\n map: null,\n }\n },\n }\n})\n"],"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,aAAO;AAAA,QACL,GAAG,gCAAgC,QAAQ,UAAU,eAAe;AAAA,QACpE,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -0,0 +1,513 @@
1
+ import {
2
+ AUTO_TRACE_TRANSFORM_MARKER,
3
+ autoTraceFunctionId,
4
+ shouldTransformBitfabFile
5
+ } from "./chunk-6R33XLNY.js";
6
+
7
+ // ../bitfab-typescript-transform/src/typescriptTransformer.ts
8
+ import ts from "typescript";
9
+ function hasUseClientDirective(sourceFile) {
10
+ return sourceFile.statements.some(
11
+ (statement) => ts.isExpressionStatement(statement) && ts.isStringLiteral(statement.expression) && statement.expression.text === "use client"
12
+ );
13
+ }
14
+ function hasTransformMarker(sourceFile) {
15
+ return sourceFile.statements.some(
16
+ (statement) => ts.isVariableStatement(statement) && statement.declarationList.declarations.some(
17
+ (declaration) => ts.isIdentifier(declaration.name) && declaration.name.text === AUTO_TRACE_TRANSFORM_MARKER
18
+ )
19
+ );
20
+ }
21
+ function isBitfabMemberCall(node, memberName) {
22
+ return ts.isCallExpression(node) && ts.isPropertyAccessExpression(node.expression) && node.expression.name.text === memberName;
23
+ }
24
+ function withNodeFunctionName(node) {
25
+ if (!isBitfabMemberCall(node, "withNode") || node.arguments.length > 2) {
26
+ return null;
27
+ }
28
+ const fn = node.arguments[node.arguments.length - 1];
29
+ if (ts.isIdentifier(fn)) {
30
+ return fn.text;
31
+ }
32
+ if (ts.isPropertyAccessExpression(fn)) {
33
+ return fn.name.text;
34
+ }
35
+ if (ts.isFunctionExpression(fn) && fn.name) {
36
+ return fn.name.text;
37
+ }
38
+ return null;
39
+ }
40
+ function traceDecorators(node) {
41
+ if (!ts.canHaveDecorators(node)) {
42
+ return [];
43
+ }
44
+ return ts.getDecorators(node) ?? [];
45
+ }
46
+ function isTraceDecoratorRoot(node) {
47
+ return traceDecorators(node).some(
48
+ (decorator) => isBitfabMemberCall(decorator.expression, "trace")
49
+ );
50
+ }
51
+ function collectBitfabWrappedFunctions(sourceFile) {
52
+ const inlineRoots = /* @__PURE__ */ new Set();
53
+ const referencedRoots = /* @__PURE__ */ new Set();
54
+ function visit(node) {
55
+ if (isBitfabMemberCall(node, "withTrace") || isBitfabMemberCall(node, "withSpan")) {
56
+ const fn = node.arguments[node.arguments.length - 1];
57
+ if (fn && (ts.isArrowFunction(fn) || ts.isFunctionExpression(fn))) {
58
+ inlineRoots.add(fn);
59
+ } else if (fn && ts.isIdentifier(fn)) {
60
+ referencedRoots.add(fn.text);
61
+ }
62
+ }
63
+ ts.forEachChild(node, visit);
64
+ }
65
+ visit(sourceFile);
66
+ return { inlineRoots, referencedRoots };
67
+ }
68
+ function declaredFunctionName(node) {
69
+ if (node.name && ts.isIdentifier(node.name)) {
70
+ return node.name.text;
71
+ }
72
+ if ((ts.isArrowFunction(node) || ts.isFunctionExpression(node)) && ts.isVariableDeclaration(node.parent) && ts.isIdentifier(node.parent.name)) {
73
+ return node.parent.name.text;
74
+ }
75
+ if ((ts.isArrowFunction(node) || ts.isFunctionExpression(node)) && ts.isPropertyAssignment(node.parent) && (ts.isIdentifier(node.parent.name) || ts.isStringLiteral(node.parent.name))) {
76
+ return node.parent.name.text;
77
+ }
78
+ return null;
79
+ }
80
+ function objectContainerName(node) {
81
+ if (ts.isVariableDeclaration(node.parent) && ts.isIdentifier(node.parent.name)) {
82
+ return node.parent.name.text;
83
+ }
84
+ if (ts.isPropertyAssignment(node.parent) && (ts.isIdentifier(node.parent.name) || ts.isStringLiteral(node.parent.name))) {
85
+ return node.parent.name.text;
86
+ }
87
+ return null;
88
+ }
89
+ function functionName(node) {
90
+ const ownName = declaredFunctionName(node);
91
+ if (ownName) {
92
+ const scopes = [];
93
+ let ancestor = node.parent;
94
+ while (ancestor) {
95
+ if (isInstrumentableFunction(ancestor)) {
96
+ const name = declaredFunctionName(ancestor);
97
+ if (name) {
98
+ scopes.unshift(name);
99
+ }
100
+ } else if ((ts.isClassDeclaration(ancestor) || ts.isClassExpression(ancestor)) && ancestor.name) {
101
+ scopes.unshift(ancestor.name.text);
102
+ } else if (ts.isObjectLiteralExpression(ancestor)) {
103
+ const name = objectContainerName(ancestor);
104
+ if (name) {
105
+ scopes.unshift(name);
106
+ }
107
+ }
108
+ ancestor = ancestor.parent;
109
+ }
110
+ return [...scopes, ownName].join(".");
111
+ }
112
+ const sourceFile = node.getSourceFile();
113
+ const position = sourceFile.getLineAndCharacterOfPosition(node.getStart());
114
+ return `anonymous-${position.line + 1}-${position.character}`;
115
+ }
116
+ function isBitfabWrappedFunction(node, inlineRoots, referencedRoots) {
117
+ if (inlineRoots.has(node)) {
118
+ return true;
119
+ }
120
+ const name = declaredFunctionName(node);
121
+ return name !== null && referencedRoots.has(name);
122
+ }
123
+ function isInstrumentableFunction(node) {
124
+ if (!ts.isFunctionDeclaration(node) && !ts.isFunctionExpression(node) && !ts.isArrowFunction(node) && !ts.isMethodDeclaration(node)) {
125
+ return false;
126
+ }
127
+ return node.body !== void 0 && node.asteriskToken === void 0 && (!node.name || !ts.isPrivateIdentifier(node.name));
128
+ }
129
+ function normalizedFilename(filename, cwd) {
130
+ const normalized = filename.replace(/\\/g, "/").split(/[?#]/, 1)[0] ?? "";
131
+ const normalizedCwd = cwd.replace(/\\/g, "/").replace(/\/$/, "");
132
+ return normalized.startsWith(`${normalizedCwd}/`) ? normalized.slice(normalizedCwd.length + 1) : normalized;
133
+ }
134
+ function parameterInputs(factory, node) {
135
+ return factory.createArrayLiteralExpression(
136
+ node.parameters.map((parameter, index) => {
137
+ if (!ts.isArrowFunction(node)) {
138
+ if (parameter.dotDotDotToken) {
139
+ return factory.createSpreadElement(
140
+ factory.createCallExpression(
141
+ factory.createPropertyAccessExpression(
142
+ factory.createArrayLiteralExpression([
143
+ factory.createSpreadElement(
144
+ factory.createIdentifier("arguments")
145
+ )
146
+ ]),
147
+ "slice"
148
+ ),
149
+ void 0,
150
+ [factory.createNumericLiteral(index)]
151
+ )
152
+ );
153
+ }
154
+ return factory.createElementAccessExpression(
155
+ factory.createIdentifier("arguments"),
156
+ factory.createNumericLiteral(index)
157
+ );
158
+ }
159
+ if (ts.isIdentifier(parameter.name)) {
160
+ const identifier = factory.createIdentifier(parameter.name.text);
161
+ return parameter.dotDotDotToken ? factory.createSpreadElement(identifier) : identifier;
162
+ }
163
+ throw new Error(
164
+ "Bitfab transform invariant: arrow parameter requires argument wrapper"
165
+ );
166
+ })
167
+ );
168
+ }
169
+ function needsArgumentWrapper(node) {
170
+ return ts.isArrowFunction(node) && node.parameters.some(
171
+ (parameter) => !ts.isIdentifier(parameter.name) || parameter.initializer !== void 0
172
+ );
173
+ }
174
+ function isRestWrapper(node) {
175
+ return node.parameters.length === 1 && node.parameters[0]?.dotDotDotToken !== void 0;
176
+ }
177
+ function splitDirectivePrologue(body) {
178
+ const firstNonDirective = body.statements.findIndex(
179
+ (statement) => !(ts.isExpressionStatement(statement) && ts.isStringLiteral(statement.expression))
180
+ );
181
+ if (firstNonDirective === -1) {
182
+ return { directives: body.statements, statements: [] };
183
+ }
184
+ return {
185
+ directives: body.statements.slice(0, firstNonDirective),
186
+ statements: body.statements.slice(firstNonDirective)
187
+ };
188
+ }
189
+ function updateFunctionBody(factory, node, body) {
190
+ if (ts.isFunctionDeclaration(node)) {
191
+ return factory.updateFunctionDeclaration(
192
+ node,
193
+ node.modifiers,
194
+ node.asteriskToken,
195
+ node.name,
196
+ node.typeParameters,
197
+ node.parameters,
198
+ node.type,
199
+ body
200
+ );
201
+ }
202
+ if (ts.isFunctionExpression(node)) {
203
+ return factory.updateFunctionExpression(
204
+ node,
205
+ node.modifiers,
206
+ node.asteriskToken,
207
+ node.name,
208
+ node.typeParameters,
209
+ node.parameters,
210
+ node.type,
211
+ body
212
+ );
213
+ }
214
+ if (ts.isArrowFunction(node)) {
215
+ return factory.updateArrowFunction(
216
+ node,
217
+ node.modifiers,
218
+ node.typeParameters,
219
+ node.parameters,
220
+ node.type,
221
+ node.equalsGreaterThanToken,
222
+ body
223
+ );
224
+ }
225
+ if (ts.isMethodDeclaration(node)) {
226
+ return factory.updateMethodDeclaration(
227
+ node,
228
+ node.modifiers,
229
+ node.asteriskToken,
230
+ node.name,
231
+ node.questionToken,
232
+ node.typeParameters,
233
+ node.parameters,
234
+ node.type,
235
+ body
236
+ );
237
+ }
238
+ return node;
239
+ }
240
+ function createBitfabTypeScriptTransformer(options = {}) {
241
+ return (context) => (sourceFile) => {
242
+ if (hasUseClientDirective(sourceFile) || hasTransformMarker(sourceFile) || !shouldTransformBitfabFile(sourceFile.fileName, options)) {
243
+ return sourceFile;
244
+ }
245
+ const { factory } = context;
246
+ const { inlineRoots, referencedRoots } = collectBitfabWrappedFunctions(sourceFile);
247
+ const runtimeIdentifier = factory.createUniqueName("bitfabAutoSpan");
248
+ const activeIdentifier = factory.createUniqueName("bitfabAutoTraceActive");
249
+ const wrapperIdentifier = factory.createUniqueName("bitfabAutoWrap");
250
+ const transformedNodes = /* @__PURE__ */ new Set();
251
+ const definitions = [];
252
+ let usedRuntime = false;
253
+ let usedWrapper = false;
254
+ const cwd = options.cwd ?? process.cwd();
255
+ const file = normalizedFilename(sourceFile.fileName, cwd);
256
+ const visitor = (node) => {
257
+ const visited = ts.visitEachChild(node, visitor, context);
258
+ if (ts.isCallExpression(node) && ts.isCallExpression(visited)) {
259
+ const configuredName = withNodeFunctionName(node);
260
+ if (configuredName !== null) {
261
+ const args = [...visited.arguments];
262
+ if (args.length === 1) {
263
+ args.push(factory.createIdentifier("undefined"));
264
+ }
265
+ args.push(factory.createStringLiteral(configuredName));
266
+ return factory.updateCallExpression(
267
+ visited,
268
+ visited.expression,
269
+ visited.typeArguments,
270
+ args
271
+ );
272
+ }
273
+ }
274
+ if (!isInstrumentableFunction(node)) {
275
+ return visited;
276
+ }
277
+ if (!isInstrumentableFunction(visited) || transformedNodes.has(visited) || isTraceDecoratorRoot(node) || isBitfabWrappedFunction(node, inlineRoots, referencedRoots)) {
278
+ return visited;
279
+ }
280
+ const name = functionName(node);
281
+ if (name.startsWith("anonymous-")) {
282
+ return visited;
283
+ }
284
+ const position = sourceFile.getLineAndCharacterOfPosition(node.getStart());
285
+ const definition = factory.createObjectLiteralExpression(
286
+ [
287
+ factory.createPropertyAssignment(
288
+ "id",
289
+ factory.createStringLiteral(autoTraceFunctionId(file, name))
290
+ ),
291
+ factory.createPropertyAssignment(
292
+ "name",
293
+ factory.createStringLiteral(name)
294
+ ),
295
+ factory.createPropertyAssignment(
296
+ "file",
297
+ factory.createStringLiteral(file)
298
+ ),
299
+ factory.createPropertyAssignment(
300
+ "line",
301
+ factory.createNumericLiteral(position.line + 1)
302
+ ),
303
+ factory.createPropertyAssignment(
304
+ "column",
305
+ factory.createNumericLiteral(position.character)
306
+ ),
307
+ ...node.modifiers?.some(
308
+ (modifier) => modifier.kind === ts.SyntaxKind.AsyncKeyword
309
+ ) ? [factory.createPropertyAssignment("async", factory.createTrue())] : [],
310
+ ...isRestWrapper(node) ? [
311
+ factory.createPropertyAssignment(
312
+ "wrapper",
313
+ factory.createTrue()
314
+ )
315
+ ] : []
316
+ ],
317
+ false
318
+ );
319
+ const definitionIdentifier = factory.createUniqueName(
320
+ "bitfabAutoDefinition"
321
+ );
322
+ definitions.push(
323
+ factory.createVariableStatement(
324
+ void 0,
325
+ factory.createVariableDeclarationList(
326
+ [
327
+ factory.createVariableDeclaration(
328
+ definitionIdentifier,
329
+ void 0,
330
+ void 0,
331
+ definition
332
+ )
333
+ ],
334
+ ts.NodeFlags.Const
335
+ )
336
+ )
337
+ );
338
+ if (needsArgumentWrapper(visited)) {
339
+ usedRuntime = true;
340
+ usedWrapper = true;
341
+ return factory.createCallExpression(wrapperIdentifier, void 0, [
342
+ definitionIdentifier,
343
+ visited
344
+ ]);
345
+ }
346
+ const visitedBody = visited.body;
347
+ const originalBody = ts.isBlock(visitedBody) ? visitedBody : factory.createBlock(
348
+ [factory.createReturnStatement(visitedBody)],
349
+ true
350
+ );
351
+ const { directives, statements } = splitDirectivePrologue(originalBody);
352
+ const invoke = factory.createArrowFunction(
353
+ hasAsyncModifier(node) ? [factory.createModifier(ts.SyntaxKind.AsyncKeyword)] : void 0,
354
+ void 0,
355
+ [],
356
+ void 0,
357
+ factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
358
+ factory.updateBlock(originalBody, statements)
359
+ );
360
+ const body = factory.createBlock(
361
+ [
362
+ ...directives,
363
+ factory.createIfStatement(
364
+ factory.createCallExpression(activeIdentifier, void 0, []),
365
+ factory.createBlock(
366
+ [
367
+ factory.createReturnStatement(
368
+ factory.createCallExpression(runtimeIdentifier, void 0, [
369
+ definitionIdentifier,
370
+ parameterInputs(factory, visited),
371
+ invoke
372
+ ])
373
+ )
374
+ ],
375
+ true
376
+ )
377
+ ),
378
+ ...statements
379
+ ],
380
+ true
381
+ );
382
+ const updated = updateFunctionBody(factory, visited, body);
383
+ transformedNodes.add(updated);
384
+ usedRuntime = true;
385
+ return updated;
386
+ };
387
+ const transformed = ts.visitEachChild(sourceFile, visitor, context);
388
+ if (!usedRuntime) {
389
+ return transformed;
390
+ }
391
+ const runtimeImport = factory.createImportDeclaration(
392
+ void 0,
393
+ factory.createImportClause(
394
+ false,
395
+ void 0,
396
+ factory.createNamedImports([
397
+ factory.createImportSpecifier(
398
+ false,
399
+ factory.createIdentifier("__bitfabAutoSpan"),
400
+ runtimeIdentifier
401
+ ),
402
+ factory.createImportSpecifier(
403
+ false,
404
+ factory.createIdentifier("__bitfabAutoTraceActive"),
405
+ activeIdentifier
406
+ ),
407
+ ...usedWrapper ? [
408
+ factory.createImportSpecifier(
409
+ false,
410
+ factory.createIdentifier("__bitfabAutoWrap"),
411
+ wrapperIdentifier
412
+ )
413
+ ] : []
414
+ ])
415
+ ),
416
+ factory.createStringLiteral(options.runtimeModule ?? "@bitfab/sdk/auto")
417
+ );
418
+ const transformMarker = factory.createVariableStatement(
419
+ void 0,
420
+ factory.createVariableDeclarationList(
421
+ [
422
+ factory.createVariableDeclaration(
423
+ factory.createIdentifier(AUTO_TRACE_TRANSFORM_MARKER),
424
+ void 0,
425
+ void 0,
426
+ factory.createAssignment(
427
+ factory.createPropertyAccessExpression(
428
+ factory.createIdentifier("globalThis"),
429
+ factory.createIdentifier(AUTO_TRACE_TRANSFORM_MARKER)
430
+ ),
431
+ factory.createTrue()
432
+ )
433
+ )
434
+ ],
435
+ ts.NodeFlags.Const
436
+ )
437
+ );
438
+ return factory.updateSourceFile(transformed, [
439
+ context.getCompilerOptions().module === ts.ModuleKind.CommonJS ? factory.createVariableStatement(
440
+ void 0,
441
+ factory.createVariableDeclarationList(
442
+ [
443
+ factory.createVariableDeclaration(
444
+ factory.createObjectBindingPattern([
445
+ factory.createBindingElement(
446
+ void 0,
447
+ "__bitfabAutoSpan",
448
+ runtimeIdentifier
449
+ ),
450
+ factory.createBindingElement(
451
+ void 0,
452
+ "__bitfabAutoTraceActive",
453
+ activeIdentifier
454
+ ),
455
+ ...usedWrapper ? [
456
+ factory.createBindingElement(
457
+ void 0,
458
+ "__bitfabAutoWrap",
459
+ wrapperIdentifier
460
+ )
461
+ ] : []
462
+ ]),
463
+ void 0,
464
+ void 0,
465
+ factory.createCallExpression(
466
+ factory.createIdentifier("require"),
467
+ void 0,
468
+ [
469
+ factory.createStringLiteral(
470
+ options.runtimeModule ?? "@bitfab/sdk/auto"
471
+ )
472
+ ]
473
+ )
474
+ )
475
+ ],
476
+ ts.NodeFlags.Const
477
+ )
478
+ ) : runtimeImport,
479
+ transformMarker,
480
+ ...definitions,
481
+ ...transformed.statements
482
+ ]);
483
+ };
484
+ }
485
+ function hasAsyncModifier(node) {
486
+ return ts.canHaveModifiers(node) ? ts.getModifiers(node)?.some((modifier) => modifier.kind === ts.SyntaxKind.AsyncKeyword) ?? false : false;
487
+ }
488
+ function transformBitfabTypeScriptSource(source, filename, options = {}) {
489
+ const sourceFilename = filename.replace(/\\/g, "/").split(/[?#]/, 1)[0] ?? filename;
490
+ const sourceFile = ts.createSourceFile(
491
+ sourceFilename,
492
+ source,
493
+ ts.ScriptTarget.Latest,
494
+ true,
495
+ sourceFilename.endsWith("x") ? ts.ScriptKind.TSX : ts.ScriptKind.TS
496
+ );
497
+ const result = ts.transform(sourceFile, [
498
+ createBitfabTypeScriptTransformer(options)
499
+ ]);
500
+ try {
501
+ return {
502
+ code: ts.createPrinter().printFile(result.transformed[0])
503
+ };
504
+ } finally {
505
+ result.dispose();
506
+ }
507
+ }
508
+
509
+ export {
510
+ createBitfabTypeScriptTransformer,
511
+ transformBitfabTypeScriptSource
512
+ };
513
+ //# sourceMappingURL=chunk-PACLPKDH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../bitfab-typescript-transform/src/typescriptTransformer.ts"],"sourcesContent":["import ts from \"typescript\"\nimport type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport {\n AUTO_TRACE_TRANSFORM_MARKER,\n autoTraceFunctionId,\n shouldTransformBitfabFile,\n} from \"./transformOptions.js\"\n\nexport type { BitfabTransformOptions } from \"./transformOptions.js\"\n\nfunction hasUseClientDirective(sourceFile: ts.SourceFile): boolean {\n return sourceFile.statements.some(\n (statement) =>\n ts.isExpressionStatement(statement) &&\n ts.isStringLiteral(statement.expression) &&\n statement.expression.text === \"use client\",\n )\n}\n\nfunction hasTransformMarker(sourceFile: ts.SourceFile): boolean {\n return sourceFile.statements.some(\n (statement) =>\n ts.isVariableStatement(statement) &&\n statement.declarationList.declarations.some(\n (declaration) =>\n ts.isIdentifier(declaration.name) &&\n declaration.name.text === AUTO_TRACE_TRANSFORM_MARKER,\n ),\n )\n}\n\nfunction isBitfabMemberCall(\n node: ts.Node,\n memberName: \"trace\" | \"withNode\" | \"withSpan\" | \"withTrace\",\n): node is ts.CallExpression {\n return (\n ts.isCallExpression(node) &&\n ts.isPropertyAccessExpression(node.expression) &&\n node.expression.name.text === memberName\n )\n}\n\nfunction withNodeFunctionName(node: ts.CallExpression): string | null {\n if (!isBitfabMemberCall(node, \"withNode\") || node.arguments.length > 2) {\n return null\n }\n const fn = node.arguments[node.arguments.length - 1]\n if (ts.isIdentifier(fn)) {\n return fn.text\n }\n if (ts.isPropertyAccessExpression(fn)) {\n return fn.name.text\n }\n if (ts.isFunctionExpression(fn) && fn.name) {\n return fn.name.text\n }\n return null\n}\n\nfunction traceDecorators(node: ts.Node): readonly ts.Decorator[] {\n if (!ts.canHaveDecorators(node)) {\n return []\n }\n return ts.getDecorators(node) ?? []\n}\n\nfunction isTraceDecoratorRoot(node: ts.Node): boolean {\n return traceDecorators(node).some((decorator) =>\n isBitfabMemberCall(decorator.expression, \"trace\"),\n )\n}\n\nfunction collectBitfabWrappedFunctions(sourceFile: ts.SourceFile): {\n inlineRoots: ReadonlySet<ts.Node>\n referencedRoots: ReadonlySet<string>\n} {\n const inlineRoots = new Set<ts.Node>()\n const referencedRoots = new Set<string>()\n\n function visit(node: ts.Node): void {\n if (\n isBitfabMemberCall(node, \"withTrace\") ||\n isBitfabMemberCall(node, \"withSpan\")\n ) {\n const fn = node.arguments[node.arguments.length - 1]\n if (fn && (ts.isArrowFunction(fn) || ts.isFunctionExpression(fn))) {\n inlineRoots.add(fn)\n } else if (fn && ts.isIdentifier(fn)) {\n referencedRoots.add(fn.text)\n }\n }\n ts.forEachChild(node, visit)\n }\n\n visit(sourceFile)\n return { inlineRoots, referencedRoots }\n}\n\nfunction declaredFunctionName(node: ts.FunctionLikeDeclaration): string | null {\n if (node.name && ts.isIdentifier(node.name)) {\n return node.name.text\n }\n if (\n (ts.isArrowFunction(node) || ts.isFunctionExpression(node)) &&\n ts.isVariableDeclaration(node.parent) &&\n ts.isIdentifier(node.parent.name)\n ) {\n return node.parent.name.text\n }\n if (\n (ts.isArrowFunction(node) || ts.isFunctionExpression(node)) &&\n ts.isPropertyAssignment(node.parent) &&\n (ts.isIdentifier(node.parent.name) || ts.isStringLiteral(node.parent.name))\n ) {\n return node.parent.name.text\n }\n return null\n}\n\nfunction objectContainerName(node: ts.ObjectLiteralExpression): string | null {\n if (\n ts.isVariableDeclaration(node.parent) &&\n ts.isIdentifier(node.parent.name)\n ) {\n return node.parent.name.text\n }\n if (\n ts.isPropertyAssignment(node.parent) &&\n (ts.isIdentifier(node.parent.name) || ts.isStringLiteral(node.parent.name))\n ) {\n return node.parent.name.text\n }\n return null\n}\n\nfunction functionName(node: ts.FunctionLikeDeclaration): string {\n const ownName = declaredFunctionName(node)\n if (ownName) {\n const scopes: string[] = []\n let ancestor: ts.Node | undefined = node.parent\n while (ancestor) {\n if (isInstrumentableFunction(ancestor)) {\n const name = declaredFunctionName(ancestor)\n if (name) {\n scopes.unshift(name)\n }\n } else if (\n (ts.isClassDeclaration(ancestor) || ts.isClassExpression(ancestor)) &&\n ancestor.name\n ) {\n scopes.unshift(ancestor.name.text)\n } else if (ts.isObjectLiteralExpression(ancestor)) {\n const name = objectContainerName(ancestor)\n if (name) {\n scopes.unshift(name)\n }\n }\n ancestor = ancestor.parent\n }\n return [...scopes, ownName].join(\".\")\n }\n\n const sourceFile = node.getSourceFile()\n const position = sourceFile.getLineAndCharacterOfPosition(node.getStart())\n return `anonymous-${position.line + 1}-${position.character}`\n}\n\nfunction isBitfabWrappedFunction(\n node: ts.FunctionLikeDeclaration,\n inlineRoots: ReadonlySet<ts.Node>,\n referencedRoots: ReadonlySet<string>,\n): boolean {\n if (inlineRoots.has(node)) {\n return true\n }\n const name = declaredFunctionName(node)\n return name !== null && referencedRoots.has(name)\n}\n\nfunction isInstrumentableFunction(\n node: ts.Node,\n): node is\n | ts.FunctionDeclaration\n | ts.FunctionExpression\n | ts.ArrowFunction\n | ts.MethodDeclaration {\n if (\n !ts.isFunctionDeclaration(node) &&\n !ts.isFunctionExpression(node) &&\n !ts.isArrowFunction(node) &&\n !ts.isMethodDeclaration(node)\n ) {\n return false\n }\n\n return (\n node.body !== undefined &&\n node.asteriskToken === undefined &&\n (!node.name || !ts.isPrivateIdentifier(node.name))\n )\n}\n\nfunction normalizedFilename(filename: string, cwd: string): string {\n const normalized = filename.replace(/\\\\/g, \"/\").split(/[?#]/, 1)[0] ?? \"\"\n const normalizedCwd = cwd.replace(/\\\\/g, \"/\").replace(/\\/$/, \"\")\n return normalized.startsWith(`${normalizedCwd}/`)\n ? normalized.slice(normalizedCwd.length + 1)\n : normalized\n}\n\nfunction parameterInputs(\n factory: ts.NodeFactory,\n node: ts.FunctionLikeDeclaration,\n): ts.ArrayLiteralExpression {\n return factory.createArrayLiteralExpression(\n node.parameters.map((parameter, index) => {\n if (!ts.isArrowFunction(node)) {\n if (parameter.dotDotDotToken) {\n return factory.createSpreadElement(\n factory.createCallExpression(\n factory.createPropertyAccessExpression(\n factory.createArrayLiteralExpression([\n factory.createSpreadElement(\n factory.createIdentifier(\"arguments\"),\n ),\n ]),\n \"slice\",\n ),\n undefined,\n [factory.createNumericLiteral(index)],\n ),\n )\n }\n return factory.createElementAccessExpression(\n factory.createIdentifier(\"arguments\"),\n factory.createNumericLiteral(index),\n )\n }\n\n if (ts.isIdentifier(parameter.name)) {\n const identifier = factory.createIdentifier(parameter.name.text)\n return parameter.dotDotDotToken\n ? factory.createSpreadElement(identifier)\n : identifier\n }\n throw new Error(\n \"Bitfab transform invariant: arrow parameter requires argument wrapper\",\n )\n }),\n )\n}\n\nfunction needsArgumentWrapper(node: ts.FunctionLikeDeclaration): boolean {\n return (\n ts.isArrowFunction(node) &&\n node.parameters.some(\n (parameter) =>\n !ts.isIdentifier(parameter.name) || parameter.initializer !== undefined,\n )\n )\n}\n\nfunction isRestWrapper(node: ts.FunctionLikeDeclaration): boolean {\n return (\n node.parameters.length === 1 &&\n node.parameters[0]?.dotDotDotToken !== undefined\n )\n}\n\nfunction splitDirectivePrologue(body: ts.Block): {\n directives: readonly ts.Statement[]\n statements: readonly ts.Statement[]\n} {\n const firstNonDirective = body.statements.findIndex(\n (statement) =>\n !(\n ts.isExpressionStatement(statement) &&\n ts.isStringLiteral(statement.expression)\n ),\n )\n if (firstNonDirective === -1) {\n return { directives: body.statements, statements: [] }\n }\n return {\n directives: body.statements.slice(0, firstNonDirective),\n statements: body.statements.slice(firstNonDirective),\n }\n}\n\nfunction updateFunctionBody(\n factory: ts.NodeFactory,\n node: ts.FunctionLikeDeclaration,\n body: ts.Block,\n): ts.FunctionLikeDeclaration {\n if (ts.isFunctionDeclaration(node)) {\n return factory.updateFunctionDeclaration(\n node,\n node.modifiers,\n node.asteriskToken,\n node.name,\n node.typeParameters,\n node.parameters,\n node.type,\n body,\n )\n }\n if (ts.isFunctionExpression(node)) {\n return factory.updateFunctionExpression(\n node,\n node.modifiers,\n node.asteriskToken,\n node.name,\n node.typeParameters,\n node.parameters,\n node.type,\n body,\n )\n }\n if (ts.isArrowFunction(node)) {\n return factory.updateArrowFunction(\n node,\n node.modifiers,\n node.typeParameters,\n node.parameters,\n node.type,\n node.equalsGreaterThanToken,\n body,\n )\n }\n if (ts.isMethodDeclaration(node)) {\n return factory.updateMethodDeclaration(\n node,\n node.modifiers,\n node.asteriskToken,\n node.name,\n node.questionToken,\n node.typeParameters,\n node.parameters,\n node.type,\n body,\n )\n }\n return node\n}\n\n/**\n * Create Bitfab's experimental TypeScript compiler transform.\n *\n * The same transform powers the Vite, Rollup, esbuild, and programmatic SWC\n * adapters so generated function IDs remain consistent between build tools.\n *\n * @experimental The generated function identity protocol may change.\n */\nexport function createBitfabTypeScriptTransformer(\n options: BitfabTransformOptions = {},\n): ts.TransformerFactory<ts.SourceFile> {\n return (context) => (sourceFile) => {\n if (\n hasUseClientDirective(sourceFile) ||\n hasTransformMarker(sourceFile) ||\n !shouldTransformBitfabFile(sourceFile.fileName, options)\n ) {\n return sourceFile\n }\n\n const { factory } = context\n const { inlineRoots, referencedRoots } =\n collectBitfabWrappedFunctions(sourceFile)\n const runtimeIdentifier = factory.createUniqueName(\"bitfabAutoSpan\")\n const activeIdentifier = factory.createUniqueName(\"bitfabAutoTraceActive\")\n const wrapperIdentifier = factory.createUniqueName(\"bitfabAutoWrap\")\n const transformedNodes = new Set<ts.Node>()\n const definitions: ts.Statement[] = []\n let usedRuntime = false\n let usedWrapper = false\n const cwd = options.cwd ?? process.cwd()\n const file = normalizedFilename(sourceFile.fileName, cwd)\n\n const visitor: ts.Visitor = (node) => {\n const visited = ts.visitEachChild(node, visitor, context)\n if (ts.isCallExpression(node) && ts.isCallExpression(visited)) {\n const configuredName = withNodeFunctionName(node)\n if (configuredName !== null) {\n const args = [...visited.arguments]\n if (args.length === 1) {\n args.push(factory.createIdentifier(\"undefined\"))\n }\n args.push(factory.createStringLiteral(configuredName))\n return factory.updateCallExpression(\n visited,\n visited.expression,\n visited.typeArguments,\n args,\n )\n }\n }\n if (!isInstrumentableFunction(node)) {\n return visited\n }\n if (\n !isInstrumentableFunction(visited) ||\n transformedNodes.has(visited) ||\n isTraceDecoratorRoot(node) ||\n isBitfabWrappedFunction(node, inlineRoots, referencedRoots)\n ) {\n return visited\n }\n\n const name = functionName(node)\n if (name.startsWith(\"anonymous-\")) {\n return visited\n }\n const position = sourceFile.getLineAndCharacterOfPosition(node.getStart())\n const definition = factory.createObjectLiteralExpression(\n [\n factory.createPropertyAssignment(\n \"id\",\n factory.createStringLiteral(autoTraceFunctionId(file, name)),\n ),\n factory.createPropertyAssignment(\n \"name\",\n factory.createStringLiteral(name),\n ),\n factory.createPropertyAssignment(\n \"file\",\n factory.createStringLiteral(file),\n ),\n factory.createPropertyAssignment(\n \"line\",\n factory.createNumericLiteral(position.line + 1),\n ),\n factory.createPropertyAssignment(\n \"column\",\n factory.createNumericLiteral(position.character),\n ),\n ...(node.modifiers?.some(\n (modifier) => modifier.kind === ts.SyntaxKind.AsyncKeyword,\n )\n ? [factory.createPropertyAssignment(\"async\", factory.createTrue())]\n : []),\n ...(isRestWrapper(node)\n ? [\n factory.createPropertyAssignment(\n \"wrapper\",\n factory.createTrue(),\n ),\n ]\n : []),\n ],\n false,\n )\n const definitionIdentifier = factory.createUniqueName(\n \"bitfabAutoDefinition\",\n )\n definitions.push(\n factory.createVariableStatement(\n undefined,\n factory.createVariableDeclarationList(\n [\n factory.createVariableDeclaration(\n definitionIdentifier,\n undefined,\n undefined,\n definition,\n ),\n ],\n ts.NodeFlags.Const,\n ),\n ),\n )\n if (needsArgumentWrapper(visited)) {\n usedRuntime = true\n usedWrapper = true\n return factory.createCallExpression(wrapperIdentifier, undefined, [\n definitionIdentifier,\n visited as ts.ArrowFunction,\n ])\n }\n\n const visitedBody = visited.body as ts.ConciseBody\n const originalBody = ts.isBlock(visitedBody)\n ? visitedBody\n : factory.createBlock(\n [factory.createReturnStatement(visitedBody)],\n true,\n )\n const { directives, statements } = splitDirectivePrologue(originalBody)\n const invoke = factory.createArrowFunction(\n hasAsyncModifier(node)\n ? [factory.createModifier(ts.SyntaxKind.AsyncKeyword)]\n : undefined,\n undefined,\n [],\n undefined,\n factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),\n factory.updateBlock(originalBody, statements),\n )\n const body = factory.createBlock(\n [\n ...directives,\n factory.createIfStatement(\n factory.createCallExpression(activeIdentifier, undefined, []),\n factory.createBlock(\n [\n factory.createReturnStatement(\n factory.createCallExpression(runtimeIdentifier, undefined, [\n definitionIdentifier,\n parameterInputs(factory, visited),\n invoke,\n ]),\n ),\n ],\n true,\n ),\n ),\n ...statements,\n ],\n true,\n )\n const updated = updateFunctionBody(factory, visited, body)\n transformedNodes.add(updated)\n usedRuntime = true\n return updated\n }\n\n const transformed = ts.visitEachChild(sourceFile, visitor, context)\n if (!usedRuntime) {\n return transformed\n }\n\n const runtimeImport = factory.createImportDeclaration(\n undefined,\n factory.createImportClause(\n false,\n undefined,\n factory.createNamedImports([\n factory.createImportSpecifier(\n false,\n factory.createIdentifier(\"__bitfabAutoSpan\"),\n runtimeIdentifier,\n ),\n factory.createImportSpecifier(\n false,\n factory.createIdentifier(\"__bitfabAutoTraceActive\"),\n activeIdentifier,\n ),\n ...(usedWrapper\n ? [\n factory.createImportSpecifier(\n false,\n factory.createIdentifier(\"__bitfabAutoWrap\"),\n wrapperIdentifier,\n ),\n ]\n : []),\n ]),\n ),\n factory.createStringLiteral(options.runtimeModule ?? \"@bitfab/sdk/auto\"),\n )\n const transformMarker = factory.createVariableStatement(\n undefined,\n factory.createVariableDeclarationList(\n [\n factory.createVariableDeclaration(\n factory.createIdentifier(AUTO_TRACE_TRANSFORM_MARKER),\n undefined,\n undefined,\n factory.createAssignment(\n factory.createPropertyAccessExpression(\n factory.createIdentifier(\"globalThis\"),\n factory.createIdentifier(AUTO_TRACE_TRANSFORM_MARKER),\n ),\n factory.createTrue(),\n ),\n ),\n ],\n ts.NodeFlags.Const,\n ),\n )\n return factory.updateSourceFile(transformed, [\n context.getCompilerOptions().module === ts.ModuleKind.CommonJS\n ? factory.createVariableStatement(\n undefined,\n factory.createVariableDeclarationList(\n [\n factory.createVariableDeclaration(\n factory.createObjectBindingPattern([\n factory.createBindingElement(\n undefined,\n \"__bitfabAutoSpan\",\n runtimeIdentifier,\n ),\n factory.createBindingElement(\n undefined,\n \"__bitfabAutoTraceActive\",\n activeIdentifier,\n ),\n ...(usedWrapper\n ? [\n factory.createBindingElement(\n undefined,\n \"__bitfabAutoWrap\",\n wrapperIdentifier,\n ),\n ]\n : []),\n ]),\n undefined,\n undefined,\n factory.createCallExpression(\n factory.createIdentifier(\"require\"),\n undefined,\n [\n factory.createStringLiteral(\n options.runtimeModule ?? \"@bitfab/sdk/auto\",\n ),\n ],\n ),\n ),\n ],\n ts.NodeFlags.Const,\n ),\n )\n : runtimeImport,\n transformMarker,\n ...definitions,\n ...transformed.statements,\n ])\n }\n}\n\nfunction hasAsyncModifier(node: ts.Node): boolean {\n return ts.canHaveModifiers(node)\n ? (ts\n .getModifiers(node)\n ?.some((modifier) => modifier.kind === ts.SyntaxKind.AsyncKeyword) ??\n false)\n : false\n}\n\n/**\n * Transform one TypeScript or JavaScript module with Bitfab call tracing.\n *\n * @experimental The generated function identity protocol may change.\n */\nexport function transformBitfabTypeScriptSource(\n source: string,\n filename: string,\n options: BitfabTransformOptions = {},\n): { code: string } {\n const sourceFilename =\n filename.replace(/\\\\/g, \"/\").split(/[?#]/, 1)[0] ?? filename\n const sourceFile = ts.createSourceFile(\n sourceFilename,\n source,\n ts.ScriptTarget.Latest,\n true,\n sourceFilename.endsWith(\"x\") ? ts.ScriptKind.TSX : ts.ScriptKind.TS,\n )\n const result = ts.transform(sourceFile, [\n createBitfabTypeScriptTransformer(options),\n ])\n try {\n return {\n code: ts\n .createPrinter()\n .printFile(result.transformed[0] as ts.SourceFile),\n }\n } finally {\n result.dispose()\n }\n}\n"],"mappings":"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","names":[]}
@@ -7,7 +7,7 @@ import {
7
7
  flushTraces,
8
8
  parseRetryAfterMs,
9
9
  serializePayloadBody
10
- } from "./chunk-3BTITSNA.js";
10
+ } from "./chunk-ONZFMRRF.js";
11
11
  export {
12
12
  BitfabError,
13
13
  HttpClient,
@@ -18,4 +18,4 @@ export {
18
18
  parseRetryAfterMs,
19
19
  serializePayloadBody
20
20
  };
21
- //# sourceMappingURL=http-2EZA7I4F.js.map
21
+ //# sourceMappingURL=http-2R6MSRVA.js.map
@@ -7,7 +7,7 @@ import {
7
7
  flushTraces,
8
8
  parseRetryAfterMs,
9
9
  serializePayloadBody
10
- } from "./chunk-2M62EGYK.js";
10
+ } from "./chunk-INA6W7OB.js";
11
11
  import "./chunk-BAOIRE5T.js";
12
12
  export {
13
13
  BitfabError,
@@ -19,4 +19,4 @@ export {
19
19
  parseRetryAfterMs,
20
20
  serializePayloadBody
21
21
  };
22
- //# sourceMappingURL=http-PKQBVZD6.js.map
22
+ //# sourceMappingURL=http-KM6QWKAP.js.map