@bitfab/sdk 0.65.4 → 0.65.6

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-CQw0qMBt.cjs +396 -0
  2. package/dist/autoTrace-CQw0qMBt.cjs.map +1 -0
  3. package/dist/autoTrace-O40k8f5M.js +271 -0
  4. package/dist/autoTrace-O40k8f5M.js.map +1 -0
  5. package/dist/autoTrace.cjs +15 -353
  6. package/dist/autoTrace.d.cts +48 -44
  7. package/dist/autoTrace.d.ts +48 -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-lnqCEnB1.js +2154 -0
  14. package/dist/http-lnqCEnB1.js.map +1 -0
  15. package/dist/index-CFOLQ1IF.d.cts +4410 -0
  16. package/dist/index-CFOLQ1IF.d.ts +4410 -0
  17. package/dist/index.cjs +48 -12504
  18. package/dist/index.d.cts +2 -4443
  19. package/dist/index.d.ts +2 -4443
  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 -12520
  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-BungStQw.js +6015 -0
  37. package/dist/src-BungStQw.js.map +1 -0
  38. package/dist/src-FFSCRXpz.cjs +8438 -0
  39. package/dist/src-FFSCRXpz.cjs.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-27B3UBSS.js +0 -2547
  136. package/dist/chunk-27B3UBSS.js.map +0 -1
  137. package/dist/chunk-B2M4KELA.js +0 -1912
  138. package/dist/chunk-B2M4KELA.js.map +0 -1
  139. package/dist/chunk-I233ERUH.js +0 -2979
  140. package/dist/chunk-I233ERUH.js.map +0 -1
  141. package/dist/chunk-ISU6FQKY.js +0 -6877
  142. package/dist/chunk-ISU6FQKY.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-PTCLRG4E.js +0 -28
  146. package/dist/chunk-PTCLRG4E.js.map +0 -1
  147. package/dist/chunk-QRNHRY7F.js +0 -270
  148. package/dist/chunk-QRNHRY7F.js.map +0 -1
  149. package/dist/chunk-R6M54SPO.js +0 -1176
  150. package/dist/chunk-R6M54SPO.js.map +0 -1
  151. package/dist/chunk-SOP5AFMH.js +0 -2060
  152. package/dist/chunk-SOP5AFMH.js.map +0 -1
  153. package/dist/chunk-YVJAOGHE.js +0 -45
  154. package/dist/chunk-YVJAOGHE.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-LL3JD2JE.js +0 -24
  158. package/dist/http-LL3JD2JE.js.map +0 -1
  159. package/dist/http-QZDTQC3C.js +0 -23
  160. package/dist/http-QZDTQC3C.js.map +0 -1
  161. package/dist/index.cjs.map +0 -1
  162. package/dist/index.js.map +0 -1
  163. package/dist/replay-636XZIS2.js +0 -29
  164. package/dist/replay-636XZIS2.js.map +0 -1
  165. package/dist/replay-S4DNF4VR.js +0 -28
  166. package/dist/replay-S4DNF4VR.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 +1 @@
1
- {"version":3,"sources":["../../../bitfab-typescript-transform/src/loaderRuntime.ts","../../../bitfab-typescript-transform/src/transformOptions.ts","../../../bitfab-typescript-transform/src/babelPlugin.ts","../../../bitfab-typescript-transform/src/transform.ts"],"sourcesContent":["import { dirname } from \"node:path\"\nimport {\n type PluginItem,\n transformFromAstSync,\n transformSync,\n} from \"@babel/core\"\nimport decoratorsPlugin from \"@babel/plugin-proposal-decorators\"\nimport commonJsPlugin from \"@babel/plugin-transform-modules-commonjs\"\nimport reactJsxPlugin from \"@babel/plugin-transform-react-jsx\"\nimport typeScriptPlugin from \"@babel/plugin-transform-typescript\"\nimport { getTsconfig, parseTsconfig, type TsConfigJson } from \"get-tsconfig\"\nimport bitfabBabelPlugin from \"./babelPlugin.js\"\nimport { parserPlugins } from \"./transform.js\"\nimport type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport {\n shouldTransformBitfabFile,\n sourceFilename,\n} from \"./transformOptions.js\"\n\nexport interface BitfabLoaderOptions\n extends Omit<BitfabTransformOptions, \"include\"> {\n tsconfig?: string\n}\n\nexport interface BitfabJavaScriptTransformResult {\n code: string\n map?: string\n}\n\ntype CompilerOptions = NonNullable<TsConfigJson[\"compilerOptions\"]>\n\nfunction readCompilerOptions(\n filename: string,\n configuredPath: string | undefined,\n): CompilerOptions {\n const config = configuredPath\n ? parseTsconfig(configuredPath)\n : getTsconfig(dirname(filename))?.config\n return config?.compilerOptions ?? {}\n}\n\nfunction reactJsxOptions(compilerOptions: CompilerOptions): PluginItem {\n if (compilerOptions.jsx === \"react\") {\n return [\n reactJsxPlugin,\n {\n runtime: \"classic\",\n ...(compilerOptions.jsxFactory && {\n pragma: compilerOptions.jsxFactory,\n }),\n ...(compilerOptions.jsxFragmentFactory && {\n pragmaFrag: compilerOptions.jsxFragmentFactory,\n }),\n },\n ]\n }\n return [\n reactJsxPlugin,\n {\n runtime: \"automatic\",\n importSource: compilerOptions.jsxImportSource ?? \"react\",\n },\n ]\n}\n\nfunction compilePlugins(\n filename: string,\n compilerOptions: CompilerOptions,\n format: \"commonjs\" | \"module\" | undefined,\n): PluginItem[] {\n const path = sourceFilename(filename)\n const isTypeScript = /\\.[cm]?tsx?$/.test(path)\n const hasJsx = /\\.[jt]sx$/.test(path)\n const isCommonJs = format === \"commonjs\" || path.endsWith(\".cts\")\n return [\n ...(isTypeScript\n ? [\n [\n typeScriptPlugin,\n {\n onlyRemoveTypeImports:\n compilerOptions.verbatimModuleSyntax === true,\n },\n ] satisfies PluginItem,\n ]\n : []),\n [\n decoratorsPlugin,\n {\n version: compilerOptions.experimentalDecorators ? \"legacy\" : \"2023-11\",\n },\n ],\n ...(hasJsx ? [reactJsxOptions(compilerOptions)] : []),\n ...(isCommonJs ? [commonJsPlugin] : []),\n ]\n}\n\nexport function transformBitfabModuleToJavaScript(\n source: string,\n filename: string,\n options: BitfabLoaderOptions = {},\n format?: \"commonjs\" | \"module\",\n sourceMapMode: \"external\" | \"inline\" = \"external\",\n): BitfabJavaScriptTransformResult {\n const { tsconfig, ...transformOptions } = options\n if (!shouldTransformBitfabFile(filename, transformOptions)) {\n return { code: source }\n }\n const sourceFile = sourceFilename(filename)\n const instrumented = transformSync(source, {\n ast: true,\n babelrc: false,\n code: false,\n configFile: false,\n filename: sourceFile,\n parserOpts: { plugins: parserPlugins(filename), sourceType: \"module\" },\n plugins: [[bitfabBabelPlugin, transformOptions]],\n })\n if (!instrumented?.ast) {\n throw new Error(`Bitfab could not parse ${sourceFile}`)\n }\n const compiled = transformFromAstSync(instrumented.ast, source, {\n babelrc: false,\n cloneInputAst: false,\n configFile: false,\n filename: sourceFile,\n plugins: compilePlugins(\n filename,\n readCompilerOptions(filename, tsconfig),\n format,\n ),\n sourceMaps: sourceMapMode === \"inline\" ? \"inline\" : true,\n })\n if (compiled?.code === undefined || compiled.code === null) {\n throw new Error(`Bitfab could not compile ${sourceFile}`)\n }\n return {\n code: compiled.code,\n ...(compiled.map ? { map: JSON.stringify(compiled.map) } : {}),\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","import { type InputOptions, transformSync } from \"@babel/core\"\nimport bitfabBabelPlugin from \"./babelPlugin.js\"\nimport type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport {\n AUTO_TRACE_TRANSFORM_MARKER,\n shouldTransformBitfabFile,\n sourceFilename,\n} from \"./transformOptions.js\"\n\nexport type { BitfabTransformOptions } from \"./transformOptions.js\"\n\ntype ParserPlugin = NonNullable<\n NonNullable<InputOptions[\"parserOpts\"]>[\"plugins\"]\n>[number]\n\nexport interface BitfabSourceMap {\n version: number\n sources: string[]\n names: string[]\n mappings: string\n file?: string\n sourceRoot?: string\n sourcesContent?: Array<string | null>\n}\n\nexport interface BitfabTransformResult {\n code: string\n map?: BitfabSourceMap\n}\n\nexport function parserPlugins(filename: string): ParserPlugin[] {\n const path = sourceFilename(filename)\n const typescript = /\\.[cm]?tsx?$/.test(path)\n const jsx = /\\.tsx$/.test(path) || /\\.[cm]?jsx?$/.test(path)\n return [\n ...(typescript ? ([\"typescript\"] as const) : []),\n ...(jsx ? ([\"jsx\"] as const) : []),\n \"decorators\",\n ]\n}\n\nexport function transformBitfabSource(\n source: string,\n filename: string,\n options: BitfabTransformOptions = {},\n): BitfabTransformResult {\n if (!shouldTransformBitfabFile(filename, options)) {\n return { code: source }\n }\n const result = transformSync(source, {\n babelrc: false,\n configFile: false,\n filename: sourceFilename(filename),\n parserOpts: { plugins: parserPlugins(filename), sourceType: \"module\" },\n plugins: [[bitfabBabelPlugin, options]],\n sourceMaps: true,\n })\n if (!result?.code || !result.metadata?.[AUTO_TRACE_TRANSFORM_MARKER]) {\n return { code: source }\n }\n return {\n code: result.code,\n ...(result.map ? { map: result.map as BitfabSourceMap } : {}),\n }\n}\n"],"mappings":"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","names":["import_core","reactJsxPlugin","typeScriptPlugin","decoratorsPlugin","commonJsPlugin"]}
1
+ {"version":3,"file":"loaderRuntime.cjs","names":["parseTsconfig","getTsconfig","dirname","reactJsxPlugin","path","sourceFilename","typeScriptPlugin","decoratorsPlugin","commonJsPlugin","shouldTransformBitfabFile","transformSync","parserPlugins","bitfabBabelPlugin","transformFromAstSync"],"sources":["../../../bitfab-typescript-transform/src/loaderRuntime.ts"],"sourcesContent":["import { dirname } from \"node:path\"\nimport {\n type PluginItem,\n transformFromAstSync,\n transformSync,\n} from \"@babel/core\"\nimport decoratorsPlugin from \"@babel/plugin-proposal-decorators\"\nimport commonJsPlugin from \"@babel/plugin-transform-modules-commonjs\"\nimport reactJsxPlugin from \"@babel/plugin-transform-react-jsx\"\nimport typeScriptPlugin from \"@babel/plugin-transform-typescript\"\nimport { getTsconfig, parseTsconfig, type TsConfigJson } from \"get-tsconfig\"\nimport bitfabBabelPlugin from \"./babelPlugin.js\"\nimport { parserPlugins } from \"./transform.js\"\nimport type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport {\n shouldTransformBitfabFile,\n sourceFilename,\n} from \"./transformOptions.js\"\n\nexport interface BitfabLoaderOptions\n extends Omit<BitfabTransformOptions, \"include\"> {\n tsconfig?: string\n}\n\nexport interface BitfabJavaScriptTransformResult {\n code: string\n map?: string\n}\n\ntype CompilerOptions = NonNullable<TsConfigJson[\"compilerOptions\"]>\n\nfunction readCompilerOptions(\n filename: string,\n configuredPath: string | undefined,\n): CompilerOptions {\n const config = configuredPath\n ? parseTsconfig(configuredPath)\n : getTsconfig(dirname(filename))?.config\n return config?.compilerOptions ?? {}\n}\n\nfunction reactJsxOptions(compilerOptions: CompilerOptions): PluginItem {\n if (compilerOptions.jsx === \"react\") {\n return [\n reactJsxPlugin,\n {\n runtime: \"classic\",\n ...(compilerOptions.jsxFactory && {\n pragma: compilerOptions.jsxFactory,\n }),\n ...(compilerOptions.jsxFragmentFactory && {\n pragmaFrag: compilerOptions.jsxFragmentFactory,\n }),\n },\n ]\n }\n return [\n reactJsxPlugin,\n {\n runtime: \"automatic\",\n importSource: compilerOptions.jsxImportSource ?? \"react\",\n },\n ]\n}\n\nfunction compilePlugins(\n filename: string,\n compilerOptions: CompilerOptions,\n format: \"commonjs\" | \"module\" | undefined,\n): PluginItem[] {\n const path = sourceFilename(filename)\n const isTypeScript = /\\.[cm]?tsx?$/.test(path)\n const hasJsx = /\\.[jt]sx$/.test(path)\n const isCommonJs = format === \"commonjs\" || path.endsWith(\".cts\")\n return [\n ...(isTypeScript\n ? [\n [\n typeScriptPlugin,\n {\n onlyRemoveTypeImports:\n compilerOptions.verbatimModuleSyntax === true,\n },\n ] satisfies PluginItem,\n ]\n : []),\n [\n decoratorsPlugin,\n {\n version: compilerOptions.experimentalDecorators ? \"legacy\" : \"2023-11\",\n },\n ],\n ...(hasJsx ? [reactJsxOptions(compilerOptions)] : []),\n ...(isCommonJs ? [commonJsPlugin] : []),\n ]\n}\n\nexport function transformBitfabModuleToJavaScript(\n source: string,\n filename: string,\n options: BitfabLoaderOptions = {},\n format?: \"commonjs\" | \"module\",\n sourceMapMode: \"external\" | \"inline\" = \"external\",\n): BitfabJavaScriptTransformResult {\n const { tsconfig, ...transformOptions } = options\n if (!shouldTransformBitfabFile(filename, transformOptions)) {\n return { code: source }\n }\n const sourceFile = sourceFilename(filename)\n const instrumented = transformSync(source, {\n ast: true,\n babelrc: false,\n code: false,\n configFile: false,\n filename: sourceFile,\n parserOpts: { plugins: parserPlugins(filename), sourceType: \"module\" },\n plugins: [[bitfabBabelPlugin, transformOptions]],\n })\n if (!instrumented?.ast) {\n throw new Error(`Bitfab could not parse ${sourceFile}`)\n }\n const compiled = transformFromAstSync(instrumented.ast, source, {\n babelrc: false,\n cloneInputAst: false,\n configFile: false,\n filename: sourceFile,\n plugins: compilePlugins(\n filename,\n readCompilerOptions(filename, tsconfig),\n format,\n ),\n sourceMaps: sourceMapMode === \"inline\" ? \"inline\" : true,\n })\n if (compiled?.code === undefined || compiled.code === null) {\n throw new Error(`Bitfab could not compile ${sourceFile}`)\n }\n return {\n code: compiled.code,\n ...(compiled.map ? { map: JSON.stringify(compiled.map) } : {}),\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,SAAS,oBACP,UACA,gBACiB;CAIjB,QAHe,kBAAA,GACXA,aAAAA,cAAAA,CAAc,cAAc,KAAA,GAC5BC,aAAAA,YAAAA,EAAAA,GAAYC,KAAAA,QAAAA,CAAQ,QAAQ,CAAC,CAAC,EAAE,OAAA,EACrB,mBAAmB,CAAC;AACrC;AAEA,SAAS,gBAAgB,iBAA8C;CACrE,IAAI,gBAAgB,QAAQ,SAC1B,OAAO,CACLC,kCAAAA,SACA;EACE,SAAS;EACT,GAAI,gBAAgB,cAAc,EAChC,QAAQ,gBAAgB,WAC1B;EACA,GAAI,gBAAgB,sBAAsB,EACxC,YAAY,gBAAgB,mBAC9B;CACF,CACF;CAEF,OAAO,CACLA,kCAAAA,SACA;EACE,SAAS;EACT,cAAc,gBAAgB,mBAAmB;CACnD,CACF;AACF;AAEA,SAAS,eACP,UACA,iBACA,QACc;CACd,MAAMC,SAAOC,oBAAAA,eAAe,QAAQ;CACpC,MAAM,eAAe,eAAe,KAAKD,MAAI;CAC7C,MAAM,SAAS,YAAY,KAAKA,MAAI;CACpC,MAAM,aAAa,WAAW,cAAcA,OAAK,SAAS,MAAM;CAChE,OAAO;EACL,GAAI,eACA,CACE,CACEE,mCAAAA,SACA,EACE,uBACE,gBAAgB,yBAAyB,KAC7C,CACF,CACF,IACA,CAAC;EACL,CACEC,kCAAAA,SACA,EACE,SAAS,gBAAgB,yBAAyB,WAAW,UAC/D,CACF;EACA,GAAI,SAAS,CAAC,gBAAgB,eAAe,CAAC,IAAI,CAAC;EACnD,GAAI,aAAa,CAACC,yCAAAA,OAAc,IAAI,CAAC;CACvC;AACF;AAEA,SAAgB,kCACd,QACA,UACA,UAA+B,CAAC,GAChC,QACA,gBAAuC,YACN;CACjC,MAAM,EAAE,UAAU,GAAG,qBAAqB;CAC1C,IAAI,CAACC,oBAAAA,0BAA0B,UAAU,gBAAgB,GACvD,OAAO,EAAE,MAAM,OAAO;CAExB,MAAM,aAAaJ,oBAAAA,eAAe,QAAQ;CAC1C,MAAM,gBAAA,GAAeK,YAAAA,cAAAA,CAAc,QAAQ;EACzC,KAAK;EACL,SAAS;EACT,MAAM;EACN,YAAY;EACZ,UAAU;EACV,YAAY;GAAE,SAASC,kBAAAA,cAAc,QAAQ;GAAG,YAAY;EAAS;EACrE,SAAS,CAAC,CAACC,oBAAAA,mBAAmB,gBAAgB,CAAC;CACjD,CAAC;CACD,IAAI,CAAC,cAAc,KACjB,MAAM,IAAI,MAAM,0BAA0B,YAAY;CAExD,MAAM,YAAA,GAAWC,YAAAA,qBAAAA,CAAqB,aAAa,KAAK,QAAQ;EAC9D,SAAS;EACT,eAAe;EACf,YAAY;EACZ,UAAU;EACV,SAAS,eACP,UACA,oBAAoB,UAAU,QAAQ,GACtC,MACF;EACA,YAAY,kBAAkB,WAAW,WAAW;CACtD,CAAC;CACD,IAAI,UAAU,SAAS,KAAA,KAAa,SAAS,SAAS,MACpD,MAAM,IAAI,MAAM,4BAA4B,YAAY;CAE1D,OAAO;EACL,MAAM,SAAS;EACf,GAAI,SAAS,MAAM,EAAE,KAAK,KAAK,UAAU,SAAS,GAAG,EAAE,IAAI,CAAC;CAC9D;AACF"}
@@ -1,12 +1,2 @@
1
- import { B as BitfabTransformOptions } from '../transformOptions-Df2_Chtc.cjs';
2
-
3
- interface BitfabLoaderOptions extends Omit<BitfabTransformOptions, "include"> {
4
- tsconfig?: string;
5
- }
6
- interface BitfabJavaScriptTransformResult {
7
- code: string;
8
- map?: string;
9
- }
10
- declare function transformBitfabModuleToJavaScript(source: string, filename: string, options?: BitfabLoaderOptions, format?: "commonjs" | "module", sourceMapMode?: "external" | "inline"): BitfabJavaScriptTransformResult;
11
-
12
- export { type BitfabJavaScriptTransformResult, type BitfabLoaderOptions, transformBitfabModuleToJavaScript };
1
+ import { n as BitfabLoaderOptions, r as transformBitfabModuleToJavaScript, t as BitfabJavaScriptTransformResult } from "../loaderRuntime-CslfDFO7.cjs";
2
+ export { BitfabJavaScriptTransformResult, BitfabLoaderOptions, transformBitfabModuleToJavaScript };
@@ -1,12 +1,2 @@
1
- import { B as BitfabTransformOptions } from '../transformOptions-Df2_Chtc.js';
2
-
3
- interface BitfabLoaderOptions extends Omit<BitfabTransformOptions, "include"> {
4
- tsconfig?: string;
5
- }
6
- interface BitfabJavaScriptTransformResult {
7
- code: string;
8
- map?: string;
9
- }
10
- declare function transformBitfabModuleToJavaScript(source: string, filename: string, options?: BitfabLoaderOptions, format?: "commonjs" | "module", sourceMapMode?: "external" | "inline"): BitfabJavaScriptTransformResult;
11
-
12
- export { type BitfabJavaScriptTransformResult, type BitfabLoaderOptions, transformBitfabModuleToJavaScript };
1
+ import { n as BitfabLoaderOptions, r as transformBitfabModuleToJavaScript, t as BitfabJavaScriptTransformResult } from "../loaderRuntime-0huddOOP.js";
2
+ export { BitfabJavaScriptTransformResult, BitfabLoaderOptions, transformBitfabModuleToJavaScript };
@@ -1,113 +1,71 @@
1
- import {
2
- parserPlugins
3
- } from "../chunk-YVJAOGHE.js";
4
- import {
5
- bitfabBabelPlugin,
6
- shouldTransformBitfabFile,
7
- sourceFilename
8
- } from "../chunk-ZG6SHKEF.js";
9
-
10
- // ../bitfab-typescript-transform/src/loaderRuntime.ts
1
+ import { i as sourceFilename, r as shouldTransformBitfabFile, t as bitfabBabelPlugin } from "../babelPlugin-C70OxrqA.js";
2
+ import { t as parserPlugins } from "../transform-BcyUocwm.js";
3
+ import { transformFromAstSync, transformSync } from "@babel/core";
11
4
  import { dirname } from "path";
12
- import {
13
- transformFromAstSync,
14
- transformSync
15
- } from "@babel/core";
16
5
  import decoratorsPlugin from "@babel/plugin-proposal-decorators";
17
6
  import commonJsPlugin from "@babel/plugin-transform-modules-commonjs";
18
7
  import reactJsxPlugin from "@babel/plugin-transform-react-jsx";
19
8
  import typeScriptPlugin from "@babel/plugin-transform-typescript";
20
9
  import { getTsconfig, parseTsconfig } from "get-tsconfig";
10
+ //#region ../bitfab-typescript-transform/src/loaderRuntime.ts
21
11
  function readCompilerOptions(filename, configuredPath) {
22
- const config = configuredPath ? parseTsconfig(configuredPath) : getTsconfig(dirname(filename))?.config;
23
- return config?.compilerOptions ?? {};
12
+ return (configuredPath ? parseTsconfig(configuredPath) : getTsconfig(dirname(filename))?.config)?.compilerOptions ?? {};
24
13
  }
25
14
  function reactJsxOptions(compilerOptions) {
26
- if (compilerOptions.jsx === "react") {
27
- return [
28
- reactJsxPlugin,
29
- {
30
- runtime: "classic",
31
- ...compilerOptions.jsxFactory && {
32
- pragma: compilerOptions.jsxFactory
33
- },
34
- ...compilerOptions.jsxFragmentFactory && {
35
- pragmaFrag: compilerOptions.jsxFragmentFactory
36
- }
37
- }
38
- ];
39
- }
40
- return [
41
- reactJsxPlugin,
42
- {
43
- runtime: "automatic",
44
- importSource: compilerOptions.jsxImportSource ?? "react"
45
- }
46
- ];
15
+ if (compilerOptions.jsx === "react") return [reactJsxPlugin, {
16
+ runtime: "classic",
17
+ ...compilerOptions.jsxFactory && { pragma: compilerOptions.jsxFactory },
18
+ ...compilerOptions.jsxFragmentFactory && { pragmaFrag: compilerOptions.jsxFragmentFactory }
19
+ }];
20
+ return [reactJsxPlugin, {
21
+ runtime: "automatic",
22
+ importSource: compilerOptions.jsxImportSource ?? "react"
23
+ }];
47
24
  }
48
25
  function compilePlugins(filename, compilerOptions, format) {
49
- const path = sourceFilename(filename);
50
- const isTypeScript = /\.[cm]?tsx?$/.test(path);
51
- const hasJsx = /\.[jt]sx$/.test(path);
52
- const isCommonJs = format === "commonjs" || path.endsWith(".cts");
53
- return [
54
- ...isTypeScript ? [
55
- [
56
- typeScriptPlugin,
57
- {
58
- onlyRemoveTypeImports: compilerOptions.verbatimModuleSyntax === true
59
- }
60
- ]
61
- ] : [],
62
- [
63
- decoratorsPlugin,
64
- {
65
- version: compilerOptions.experimentalDecorators ? "legacy" : "2023-11"
66
- }
67
- ],
68
- ...hasJsx ? [reactJsxOptions(compilerOptions)] : [],
69
- ...isCommonJs ? [commonJsPlugin] : []
70
- ];
26
+ const path = sourceFilename(filename);
27
+ const isTypeScript = /\.[cm]?tsx?$/.test(path);
28
+ const hasJsx = /\.[jt]sx$/.test(path);
29
+ const isCommonJs = format === "commonjs" || path.endsWith(".cts");
30
+ return [
31
+ ...isTypeScript ? [[typeScriptPlugin, { onlyRemoveTypeImports: compilerOptions.verbatimModuleSyntax === true }]] : [],
32
+ [decoratorsPlugin, { version: compilerOptions.experimentalDecorators ? "legacy" : "2023-11" }],
33
+ ...hasJsx ? [reactJsxOptions(compilerOptions)] : [],
34
+ ...isCommonJs ? [commonJsPlugin] : []
35
+ ];
71
36
  }
72
37
  function transformBitfabModuleToJavaScript(source, filename, options = {}, format, sourceMapMode = "external") {
73
- const { tsconfig, ...transformOptions } = options;
74
- if (!shouldTransformBitfabFile(filename, transformOptions)) {
75
- return { code: source };
76
- }
77
- const sourceFile = sourceFilename(filename);
78
- const instrumented = transformSync(source, {
79
- ast: true,
80
- babelrc: false,
81
- code: false,
82
- configFile: false,
83
- filename: sourceFile,
84
- parserOpts: { plugins: parserPlugins(filename), sourceType: "module" },
85
- plugins: [[bitfabBabelPlugin, transformOptions]]
86
- });
87
- if (!instrumented?.ast) {
88
- throw new Error(`Bitfab could not parse ${sourceFile}`);
89
- }
90
- const compiled = transformFromAstSync(instrumented.ast, source, {
91
- babelrc: false,
92
- cloneInputAst: false,
93
- configFile: false,
94
- filename: sourceFile,
95
- plugins: compilePlugins(
96
- filename,
97
- readCompilerOptions(filename, tsconfig),
98
- format
99
- ),
100
- sourceMaps: sourceMapMode === "inline" ? "inline" : true
101
- });
102
- if (compiled?.code === void 0 || compiled.code === null) {
103
- throw new Error(`Bitfab could not compile ${sourceFile}`);
104
- }
105
- return {
106
- code: compiled.code,
107
- ...compiled.map ? { map: JSON.stringify(compiled.map) } : {}
108
- };
38
+ const { tsconfig, ...transformOptions } = options;
39
+ if (!shouldTransformBitfabFile(filename, transformOptions)) return { code: source };
40
+ const sourceFile = sourceFilename(filename);
41
+ const instrumented = transformSync(source, {
42
+ ast: true,
43
+ babelrc: false,
44
+ code: false,
45
+ configFile: false,
46
+ filename: sourceFile,
47
+ parserOpts: {
48
+ plugins: parserPlugins(filename),
49
+ sourceType: "module"
50
+ },
51
+ plugins: [[bitfabBabelPlugin, transformOptions]]
52
+ });
53
+ if (!instrumented?.ast) throw new Error(`Bitfab could not parse ${sourceFile}`);
54
+ const compiled = transformFromAstSync(instrumented.ast, source, {
55
+ babelrc: false,
56
+ cloneInputAst: false,
57
+ configFile: false,
58
+ filename: sourceFile,
59
+ plugins: compilePlugins(filename, readCompilerOptions(filename, tsconfig), format),
60
+ sourceMaps: sourceMapMode === "inline" ? "inline" : true
61
+ });
62
+ if (compiled?.code === void 0 || compiled.code === null) throw new Error(`Bitfab could not compile ${sourceFile}`);
63
+ return {
64
+ code: compiled.code,
65
+ ...compiled.map ? { map: JSON.stringify(compiled.map) } : {}
66
+ };
109
67
  }
110
- export {
111
- transformBitfabModuleToJavaScript
112
- };
68
+ //#endregion
69
+ export { transformBitfabModuleToJavaScript };
70
+
113
71
  //# sourceMappingURL=loaderRuntime.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../bitfab-typescript-transform/src/loaderRuntime.ts"],"sourcesContent":["import { dirname } from \"node:path\"\nimport {\n type PluginItem,\n transformFromAstSync,\n transformSync,\n} from \"@babel/core\"\nimport decoratorsPlugin from \"@babel/plugin-proposal-decorators\"\nimport commonJsPlugin from \"@babel/plugin-transform-modules-commonjs\"\nimport reactJsxPlugin from \"@babel/plugin-transform-react-jsx\"\nimport typeScriptPlugin from \"@babel/plugin-transform-typescript\"\nimport { getTsconfig, parseTsconfig, type TsConfigJson } from \"get-tsconfig\"\nimport bitfabBabelPlugin from \"./babelPlugin.js\"\nimport { parserPlugins } from \"./transform.js\"\nimport type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport {\n shouldTransformBitfabFile,\n sourceFilename,\n} from \"./transformOptions.js\"\n\nexport interface BitfabLoaderOptions\n extends Omit<BitfabTransformOptions, \"include\"> {\n tsconfig?: string\n}\n\nexport interface BitfabJavaScriptTransformResult {\n code: string\n map?: string\n}\n\ntype CompilerOptions = NonNullable<TsConfigJson[\"compilerOptions\"]>\n\nfunction readCompilerOptions(\n filename: string,\n configuredPath: string | undefined,\n): CompilerOptions {\n const config = configuredPath\n ? parseTsconfig(configuredPath)\n : getTsconfig(dirname(filename))?.config\n return config?.compilerOptions ?? {}\n}\n\nfunction reactJsxOptions(compilerOptions: CompilerOptions): PluginItem {\n if (compilerOptions.jsx === \"react\") {\n return [\n reactJsxPlugin,\n {\n runtime: \"classic\",\n ...(compilerOptions.jsxFactory && {\n pragma: compilerOptions.jsxFactory,\n }),\n ...(compilerOptions.jsxFragmentFactory && {\n pragmaFrag: compilerOptions.jsxFragmentFactory,\n }),\n },\n ]\n }\n return [\n reactJsxPlugin,\n {\n runtime: \"automatic\",\n importSource: compilerOptions.jsxImportSource ?? \"react\",\n },\n ]\n}\n\nfunction compilePlugins(\n filename: string,\n compilerOptions: CompilerOptions,\n format: \"commonjs\" | \"module\" | undefined,\n): PluginItem[] {\n const path = sourceFilename(filename)\n const isTypeScript = /\\.[cm]?tsx?$/.test(path)\n const hasJsx = /\\.[jt]sx$/.test(path)\n const isCommonJs = format === \"commonjs\" || path.endsWith(\".cts\")\n return [\n ...(isTypeScript\n ? [\n [\n typeScriptPlugin,\n {\n onlyRemoveTypeImports:\n compilerOptions.verbatimModuleSyntax === true,\n },\n ] satisfies PluginItem,\n ]\n : []),\n [\n decoratorsPlugin,\n {\n version: compilerOptions.experimentalDecorators ? \"legacy\" : \"2023-11\",\n },\n ],\n ...(hasJsx ? [reactJsxOptions(compilerOptions)] : []),\n ...(isCommonJs ? [commonJsPlugin] : []),\n ]\n}\n\nexport function transformBitfabModuleToJavaScript(\n source: string,\n filename: string,\n options: BitfabLoaderOptions = {},\n format?: \"commonjs\" | \"module\",\n sourceMapMode: \"external\" | \"inline\" = \"external\",\n): BitfabJavaScriptTransformResult {\n const { tsconfig, ...transformOptions } = options\n if (!shouldTransformBitfabFile(filename, transformOptions)) {\n return { code: source }\n }\n const sourceFile = sourceFilename(filename)\n const instrumented = transformSync(source, {\n ast: true,\n babelrc: false,\n code: false,\n configFile: false,\n filename: sourceFile,\n parserOpts: { plugins: parserPlugins(filename), sourceType: \"module\" },\n plugins: [[bitfabBabelPlugin, transformOptions]],\n })\n if (!instrumented?.ast) {\n throw new Error(`Bitfab could not parse ${sourceFile}`)\n }\n const compiled = transformFromAstSync(instrumented.ast, source, {\n babelrc: false,\n cloneInputAst: false,\n configFile: false,\n filename: sourceFile,\n plugins: compilePlugins(\n filename,\n readCompilerOptions(filename, tsconfig),\n format,\n ),\n sourceMaps: sourceMapMode === \"inline\" ? \"inline\" : true,\n })\n if (compiled?.code === undefined || compiled.code === null) {\n throw new Error(`Bitfab could not compile ${sourceFile}`)\n }\n return {\n code: compiled.code,\n ...(compiled.map ? { map: JSON.stringify(compiled.map) } : {}),\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"file":"loaderRuntime.js","names":[],"sources":["../../../bitfab-typescript-transform/src/loaderRuntime.ts"],"sourcesContent":["import { dirname } from \"node:path\"\nimport {\n type PluginItem,\n transformFromAstSync,\n transformSync,\n} from \"@babel/core\"\nimport decoratorsPlugin from \"@babel/plugin-proposal-decorators\"\nimport commonJsPlugin from \"@babel/plugin-transform-modules-commonjs\"\nimport reactJsxPlugin from \"@babel/plugin-transform-react-jsx\"\nimport typeScriptPlugin from \"@babel/plugin-transform-typescript\"\nimport { getTsconfig, parseTsconfig, type TsConfigJson } from \"get-tsconfig\"\nimport bitfabBabelPlugin from \"./babelPlugin.js\"\nimport { parserPlugins } from \"./transform.js\"\nimport type { BitfabTransformOptions } from \"./transformOptions.js\"\nimport {\n shouldTransformBitfabFile,\n sourceFilename,\n} from \"./transformOptions.js\"\n\nexport interface BitfabLoaderOptions\n extends Omit<BitfabTransformOptions, \"include\"> {\n tsconfig?: string\n}\n\nexport interface BitfabJavaScriptTransformResult {\n code: string\n map?: string\n}\n\ntype CompilerOptions = NonNullable<TsConfigJson[\"compilerOptions\"]>\n\nfunction readCompilerOptions(\n filename: string,\n configuredPath: string | undefined,\n): CompilerOptions {\n const config = configuredPath\n ? parseTsconfig(configuredPath)\n : getTsconfig(dirname(filename))?.config\n return config?.compilerOptions ?? {}\n}\n\nfunction reactJsxOptions(compilerOptions: CompilerOptions): PluginItem {\n if (compilerOptions.jsx === \"react\") {\n return [\n reactJsxPlugin,\n {\n runtime: \"classic\",\n ...(compilerOptions.jsxFactory && {\n pragma: compilerOptions.jsxFactory,\n }),\n ...(compilerOptions.jsxFragmentFactory && {\n pragmaFrag: compilerOptions.jsxFragmentFactory,\n }),\n },\n ]\n }\n return [\n reactJsxPlugin,\n {\n runtime: \"automatic\",\n importSource: compilerOptions.jsxImportSource ?? \"react\",\n },\n ]\n}\n\nfunction compilePlugins(\n filename: string,\n compilerOptions: CompilerOptions,\n format: \"commonjs\" | \"module\" | undefined,\n): PluginItem[] {\n const path = sourceFilename(filename)\n const isTypeScript = /\\.[cm]?tsx?$/.test(path)\n const hasJsx = /\\.[jt]sx$/.test(path)\n const isCommonJs = format === \"commonjs\" || path.endsWith(\".cts\")\n return [\n ...(isTypeScript\n ? [\n [\n typeScriptPlugin,\n {\n onlyRemoveTypeImports:\n compilerOptions.verbatimModuleSyntax === true,\n },\n ] satisfies PluginItem,\n ]\n : []),\n [\n decoratorsPlugin,\n {\n version: compilerOptions.experimentalDecorators ? \"legacy\" : \"2023-11\",\n },\n ],\n ...(hasJsx ? [reactJsxOptions(compilerOptions)] : []),\n ...(isCommonJs ? [commonJsPlugin] : []),\n ]\n}\n\nexport function transformBitfabModuleToJavaScript(\n source: string,\n filename: string,\n options: BitfabLoaderOptions = {},\n format?: \"commonjs\" | \"module\",\n sourceMapMode: \"external\" | \"inline\" = \"external\",\n): BitfabJavaScriptTransformResult {\n const { tsconfig, ...transformOptions } = options\n if (!shouldTransformBitfabFile(filename, transformOptions)) {\n return { code: source }\n }\n const sourceFile = sourceFilename(filename)\n const instrumented = transformSync(source, {\n ast: true,\n babelrc: false,\n code: false,\n configFile: false,\n filename: sourceFile,\n parserOpts: { plugins: parserPlugins(filename), sourceType: \"module\" },\n plugins: [[bitfabBabelPlugin, transformOptions]],\n })\n if (!instrumented?.ast) {\n throw new Error(`Bitfab could not parse ${sourceFile}`)\n }\n const compiled = transformFromAstSync(instrumented.ast, source, {\n babelrc: false,\n cloneInputAst: false,\n configFile: false,\n filename: sourceFile,\n plugins: compilePlugins(\n filename,\n readCompilerOptions(filename, tsconfig),\n format,\n ),\n sourceMaps: sourceMapMode === \"inline\" ? \"inline\" : true,\n })\n if (compiled?.code === undefined || compiled.code === null) {\n throw new Error(`Bitfab could not compile ${sourceFile}`)\n }\n return {\n code: compiled.code,\n ...(compiled.map ? { map: JSON.stringify(compiled.map) } : {}),\n }\n}\n"],"mappings":";;;;;;;;;;AA+BA,SAAS,oBACP,UACA,gBACiB;CAIjB,QAHe,iBACX,cAAc,cAAc,IAC5B,YAAY,QAAQ,QAAQ,CAAC,CAAC,EAAE,OAAA,EACrB,mBAAmB,CAAC;AACrC;AAEA,SAAS,gBAAgB,iBAA8C;CACrE,IAAI,gBAAgB,QAAQ,SAC1B,OAAO,CACL,gBACA;EACE,SAAS;EACT,GAAI,gBAAgB,cAAc,EAChC,QAAQ,gBAAgB,WAC1B;EACA,GAAI,gBAAgB,sBAAsB,EACxC,YAAY,gBAAgB,mBAC9B;CACF,CACF;CAEF,OAAO,CACL,gBACA;EACE,SAAS;EACT,cAAc,gBAAgB,mBAAmB;CACnD,CACF;AACF;AAEA,SAAS,eACP,UACA,iBACA,QACc;CACd,MAAM,OAAO,eAAe,QAAQ;CACpC,MAAM,eAAe,eAAe,KAAK,IAAI;CAC7C,MAAM,SAAS,YAAY,KAAK,IAAI;CACpC,MAAM,aAAa,WAAW,cAAc,KAAK,SAAS,MAAM;CAChE,OAAO;EACL,GAAI,eACA,CACE,CACE,kBACA,EACE,uBACE,gBAAgB,yBAAyB,KAC7C,CACF,CACF,IACA,CAAC;EACL,CACE,kBACA,EACE,SAAS,gBAAgB,yBAAyB,WAAW,UAC/D,CACF;EACA,GAAI,SAAS,CAAC,gBAAgB,eAAe,CAAC,IAAI,CAAC;EACnD,GAAI,aAAa,CAAC,cAAc,IAAI,CAAC;CACvC;AACF;AAEA,SAAgB,kCACd,QACA,UACA,UAA+B,CAAC,GAChC,QACA,gBAAuC,YACN;CACjC,MAAM,EAAE,UAAU,GAAG,qBAAqB;CAC1C,IAAI,CAAC,0BAA0B,UAAU,gBAAgB,GACvD,OAAO,EAAE,MAAM,OAAO;CAExB,MAAM,aAAa,eAAe,QAAQ;CAC1C,MAAM,eAAe,cAAc,QAAQ;EACzC,KAAK;EACL,SAAS;EACT,MAAM;EACN,YAAY;EACZ,UAAU;EACV,YAAY;GAAE,SAAS,cAAc,QAAQ;GAAG,YAAY;EAAS;EACrE,SAAS,CAAC,CAAC,mBAAmB,gBAAgB,CAAC;CACjD,CAAC;CACD,IAAI,CAAC,cAAc,KACjB,MAAM,IAAI,MAAM,0BAA0B,YAAY;CAExD,MAAM,WAAW,qBAAqB,aAAa,KAAK,QAAQ;EAC9D,SAAS;EACT,eAAe;EACf,YAAY;EACZ,UAAU;EACV,SAAS,eACP,UACA,oBAAoB,UAAU,QAAQ,GACtC,MACF;EACA,YAAY,kBAAkB,WAAW,WAAW;CACtD,CAAC;CACD,IAAI,UAAU,SAAS,KAAA,KAAa,SAAS,SAAS,MACpD,MAAM,IAAI,MAAM,4BAA4B,YAAY;CAE1D,OAAO;EACL,MAAM,SAAS;EACf,GAAI,SAAS,MAAM,EAAE,KAAK,KAAK,UAAU,SAAS,GAAG,EAAE,IAAI,CAAC;CAC9D;AACF"}