@nestbridge/webpack 2.1.1 → 2.1.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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,30 @@
1
+ # @nestbridge/webpack
2
+
3
+ ## 2.1.2
4
+
5
+ ### Patch Changes
6
+
7
+ - e391e8f: Fix `yarn add nestbridge` (and `npm install nestbridge`) failing with `Workspace not found (@nestbridge/runtime@workspace:*)`. Previously published manifests shipped Yarn's `workspace:*` dependency specifiers verbatim because the release pipeline packed with plain `npm publish`. Packages are now packed with `yarn pack`, which rewrites them to the real version, and the release aborts if any `workspace:` specifier survives in the tarball.
8
+ - Updated dependencies [e391e8f]
9
+ - @nestbridge/unplugin@2.1.2
10
+
11
+ ## 2.1.1
12
+
13
+ ### Patch Changes
14
+
15
+ - c7fe551: Fix `outputDir` resolving relative to `root` instead of the bundler's own project root. `root` now controls only where controllers, resolvers, and the bootstrap `main.ts` are discovered, while `outputDir` always resolves relative to Vite's `config.root` or webpack's `compiler.options.context`. This removes the need to widen `root` to a parent directory just to reach a bootstrap file that lives outside the client project, and fixes webpack builds that previously had no way to resolve their own project root at all.
16
+ - Updated dependencies [c7fe551]
17
+ - @nestbridge/unplugin@2.1.1
18
+
19
+ ## 2.1.0
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies [a21adfa]
24
+ - @nestbridge/unplugin@2.1.0
25
+
26
+ ## 2.0.4
27
+
28
+ ### Patch Changes
29
+
30
+ - @nestbridge/unplugin@2.0.4
@@ -1457,7 +1457,7 @@ var nestBridgeUnplugin = createUnplugin((options, meta) => {
1457
1457
  });
1458
1458
  //#endregion
1459
1459
  //#region src/version.ts
1460
- var VERSION = "2.1.1";
1460
+ var VERSION = "2.1.2";
1461
1461
  //#endregion
1462
1462
  //#region src/main.ts
1463
1463
  var nestBridge = nestBridgeUnplugin.webpack;
@@ -1 +1 @@
1
- {"version":3,"file":"nestbridge.webpack.js","names":[],"sources":["../../unplugin/build/nestbridge.unplugin.js","../package.json","../src/version.ts","../src/main.ts"],"sourcesContent":["import { dirname, extname, join, posix, relative, resolve, sep } from \"node:path\";\nimport { SyntaxKind, isArrayLiteralExpression, isArrayTypeNode, isArrowFunction, isBlock, isCallExpression, isClassDeclaration, isDecorator, isExportDeclaration, isExpressionStatement, isFalseLiteral, isFunctionExpression, isIdentifier, isImportDeclaration, isMethodDeclaration, isNamedExports, isNamedImports, isNewExpression, isNullLiteral, isNumericLiteral, isObjectLiteralExpression, isParenthesizedExpression, isPropertyAccessExpression, isPropertyAssignment, isPropertyDeclaration, isReturnStatement, isSpreadElement, isStringLiteral, isStringLiteralLikeNode, isTrueLiteral, isTypeReferenceNode, isUnionTypeNode, isVariableStatement } from \"typescript/unstable/ast\";\nimport { API } from \"typescript/unstable/sync\";\nimport { existsSync, globSync, mkdirSync, rmSync, writeFileSync } from \"node:fs\";\nimport { createUnplugin } from \"unplugin\";\n//#region ../core/build/nestbridge.core.js\nvar getDecorators = (node) => {\n\tconst decorators = node.modifiers?.filter(isDecorator);\n\treturn decorators === void 0 || decorators.length === 0 ? void 0 : decorators;\n};\nvar findDecorator = (node, decoratorName) => {\n\tconst decorators = getDecorators(node);\n\tif (decorators === void 0) return;\n\treturn decorators.find((decorator) => decoratorNameOf(decorator) === decoratorName);\n};\nvar findAnyDecorator = (node, decoratorNames) => {\n\tconst decorators = getDecorators(node);\n\tif (decorators === void 0) return;\n\treturn decorators.find((decorator) => decoratorNames.includes(decoratorNameOf(decorator) ?? \"\"));\n};\nvar decoratorNameOf = (decorator) => {\n\tconst expression = decorator.expression;\n\tif (isCallExpression(expression) && isIdentifier(expression.expression)) return expression.expression.text;\n\tif (isIdentifier(expression)) return expression.text;\n};\nvar readStaticStringArgument = (decorator) => {\n\tconst expression = decorator.expression;\n\tif (!isCallExpression(expression)) return {\n\t\tok: true,\n\t\tvalue: void 0\n\t};\n\tconst [firstArgument] = expression.arguments;\n\tif (firstArgument === void 0) return {\n\t\tok: true,\n\t\tvalue: void 0\n\t};\n\tif (isStringLiteralLikeNode(firstArgument)) return {\n\t\tok: true,\n\t\tvalue: firstArgument.text\n\t};\n\treturn {\n\t\tok: false,\n\t\targumentText: firstArgument.getText()\n\t};\n};\nvar HTTP_METHOD_DECORATOR_NAMES = {\n\tGet: \"GET\",\n\tPost: \"POST\",\n\tPut: \"PUT\",\n\tPatch: \"PATCH\",\n\tDelete: \"DELETE\"\n};\nvar locationOf = (sourceFile, node) => {\n\tconst { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile));\n\treturn {\n\t\tline: line + 1,\n\t\tcolumn: character + 1\n\t};\n};\nvar SUPPORTED_PARAMETER_DECORATORS = [\n\t\"Param\",\n\t\"Query\",\n\t\"Body\",\n\t\"Headers\"\n];\nvar KNOWN_UNSUPPORTED_PARAMETER_DECORATORS = [\n\t\"Req\",\n\t\"Res\",\n\t\"Request\",\n\t\"Response\"\n];\nvar extractParameterDefinition = (parameter, index, context) => {\n\tconst decorator = findAnyDecorator(parameter, [...SUPPORTED_PARAMETER_DECORATORS, ...KNOWN_UNSUPPORTED_PARAMETER_DECORATORS]);\n\tconst location = locationOf(context.sourceFile, parameter);\n\tif (decorator === void 0) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-parameter\",\n\t\t\ttitle: \"Unsupported parameter.\",\n\t\t\tcontrollerName: context.controllerName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `Parameter \"${parameter.name.getText()}\" must be decorated with one of @Param, @Query, @Body, or @Headers to be transported through a NestBridge HTTP client.`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst decoratorName = decoratorNameOf(decorator);\n\tif (decoratorName !== void 0 && KNOWN_UNSUPPORTED_PARAMETER_DECORATORS.includes(decoratorName)) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-parameter\",\n\t\t\ttitle: \"Unsupported parameter.\",\n\t\t\tcontrollerName: context.controllerName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `@${decoratorName}() cannot be transported through a NestBridge HTTP client.`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tif (!isIdentifier(parameter.name)) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-parameter\",\n\t\t\ttitle: \"Unsupported parameter.\",\n\t\t\tcontrollerName: context.controllerName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: \"Destructured parameters cannot be transported through a NestBridge HTTP client.\",\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst argument = readStaticStringArgument(decorator);\n\tif (!argument.ok) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-parameter\",\n\t\t\ttitle: \"Unsupported parameter.\",\n\t\t\tcontrollerName: context.controllerName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `@${decoratorName}() arguments must be statically analyzable string literals.`,\n\t\t\tfound: `@${decoratorName}(${argument.argumentText})`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst base = {\n\t\tindex,\n\t\tparameterName: parameter.name.text\n\t};\n\tif (decoratorName === \"Param\") {\n\t\tif (argument.value === void 0) {\n\t\t\tcontext.diagnostics.push({\n\t\t\t\tcode: \"unsupported-parameter\",\n\t\t\t\ttitle: \"Unsupported parameter.\",\n\t\t\t\tcontrollerName: context.controllerName,\n\t\t\t\tmemberName: context.methodName,\n\t\t\t\tdetail: \"A whole @Param() is not supported; provide a route parameter name such as @Param('id').\",\n\t\t\t\tfilePath: context.filePath,\n\t\t\t\tline: location.line,\n\t\t\t\tcolumn: location.column\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\treturn {\n\t\t\t...base,\n\t\t\tkind: \"param\",\n\t\t\tname: argument.value\n\t\t};\n\t}\n\tif (decoratorName === \"Headers\") {\n\t\tif (argument.value === void 0) {\n\t\t\tcontext.diagnostics.push({\n\t\t\t\tcode: \"unsupported-parameter\",\n\t\t\t\ttitle: \"Unsupported parameter.\",\n\t\t\t\tcontrollerName: context.controllerName,\n\t\t\t\tmemberName: context.methodName,\n\t\t\t\tdetail: \"A whole @Headers() is not supported; provide a header name such as @Headers('x-example').\",\n\t\t\t\tfilePath: context.filePath,\n\t\t\t\tline: location.line,\n\t\t\t\tcolumn: location.column\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\treturn {\n\t\t\t...base,\n\t\t\tkind: \"header\",\n\t\t\tname: argument.value\n\t\t};\n\t}\n\tif (decoratorName === \"Query\") return {\n\t\t...base,\n\t\tkind: \"query\",\n\t\tname: argument.value\n\t};\n\treturn {\n\t\t...base,\n\t\tkind: \"body\",\n\t\tname: argument.value\n\t};\n};\nvar PRIMITIVE_SCALAR_TYPES = {\n\tstring: \"String\",\n\tnumber: \"Float\",\n\tboolean: \"Boolean\"\n};\nvar unwrapPromise = (typeNode) => {\n\tif (isTypeReferenceNode(typeNode) && isIdentifier(typeNode.typeName) && typeNode.typeName.text === \"Promise\" && typeNode.typeArguments?.[0] !== void 0) return unwrapPromise(typeNode.typeArguments[0]);\n\treturn typeNode;\n};\nvar unwrapNullable = (typeNode) => {\n\tif (!isUnionTypeNode(typeNode)) return {\n\t\tinner: typeNode,\n\t\tisNullable: false\n\t};\n\tconst nonNullMembers = typeNode.types.filter((member) => member.kind !== SyntaxKind.NullKeyword && member.kind !== SyntaxKind.UndefinedKeyword);\n\tconst [onlyMember] = nonNullMembers;\n\tif (nonNullMembers.length !== 1 || onlyMember === void 0) return {\n\t\tinner: typeNode,\n\t\tisNullable: nonNullMembers.length !== typeNode.types.length\n\t};\n\treturn {\n\t\tinner: onlyMember,\n\t\tisNullable: true\n\t};\n};\nvar unwrapArrayElement = (typeNode) => {\n\tif (isArrayTypeNode(typeNode)) return typeNode.elementType;\n\tif (isTypeReferenceNode(typeNode) && isIdentifier(typeNode.typeName) && typeNode.typeName.text === \"Array\" && typeNode.typeArguments?.[0] !== void 0) return typeNode.typeArguments[0];\n};\nvar identifierTextOf = (typeNode) => {\n\tif (isTypeReferenceNode(typeNode) && isIdentifier(typeNode.typeName)) return typeNode.typeName.text;\n\tswitch (typeNode.kind) {\n\t\tcase SyntaxKind.StringKeyword: return \"string\";\n\t\tcase SyntaxKind.NumberKeyword: return \"number\";\n\t\tcase SyntaxKind.BooleanKeyword: return \"boolean\";\n\t\tdefault: return;\n\t}\n};\nvar unwrapTypeNode = (typeNode) => {\n\tconst { inner: withoutNullable, isNullable } = unwrapNullable(unwrapPromise(typeNode));\n\tconst arrayElement = unwrapArrayElement(withoutNullable);\n\tconst identifierText = identifierTextOf(arrayElement === void 0 ? withoutNullable : unwrapNullable(arrayElement).inner);\n\tif (identifierText === void 0) return;\n\treturn {\n\t\tidentifierText,\n\t\tisArray: arrayElement !== void 0,\n\t\tisNullable\n\t};\n};\nvar graphqlScalarNameFor = (identifierText) => PRIMITIVE_SCALAR_TYPES[identifierText] ?? identifierText;\nvar graphqlTypeStringFor = (unwrapped, explicitTypeName) => {\n\tconst baseName = explicitTypeName ?? graphqlScalarNameFor(unwrapped.identifierText);\n\tconst wrapped = unwrapped.isArray ? `[${baseName}!]` : baseName;\n\treturn unwrapped.isNullable ? wrapped : `${wrapped}!`;\n};\nvar OBSERVABLE_TYPE_NAME = \"Observable\";\nvar STREAMABLE_FILE_TYPE_NAME = \"StreamableFile\";\nvar readResponseKind = (returnType) => {\n\tif (returnType === void 0) return \"json\";\n\tconst unwrapped = unwrapPromise(returnType);\n\tif (!isTypeReferenceNode(unwrapped) || !isIdentifier(unwrapped.typeName)) return \"json\";\n\tif (unwrapped.typeName.text === OBSERVABLE_TYPE_NAME) return \"observable\";\n\tif (unwrapped.typeName.text === STREAMABLE_FILE_TYPE_NAME) return \"stream\";\n\treturn \"json\";\n};\nvar trimSlashes = (segment) => segment.replace(/^\\/+/, \"\").replace(/\\/+$/, \"\");\nvar joinRoutePath = (controllerPath, methodPath) => {\n\treturn `/${[trimSlashes(controllerPath), trimSlashes(methodPath ?? \"\")].filter((segment) => segment.length > 0).join(\"/\")}`;\n};\nvar extractMethodDefinition = (method, context) => {\n\tconst decorator = findAnyDecorator(method, Object.keys(HTTP_METHOD_DECORATOR_NAMES));\n\tif (decorator === void 0) return;\n\tconst methodName = method.name.getText();\n\tconst decoratorName = decoratorNameOf(decorator);\n\tconst location = locationOf(context.sourceFile, method);\n\tif (decoratorName === void 0) return;\n\tconst httpMethod = HTTP_METHOD_DECORATOR_NAMES[decoratorName];\n\tif (httpMethod === void 0) return;\n\tconst routeArgument = readStaticStringArgument(decorator);\n\tif (!routeArgument.ok) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-route\",\n\t\t\ttitle: \"Unsupported route.\",\n\t\t\tcontrollerName: context.controllerName,\n\t\t\tmemberName: methodName,\n\t\t\tdetail: \"Route paths must be statically analyzable.\",\n\t\t\tfound: `@${decoratorName}(${routeArgument.argumentText})`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst parameters = method.parameters.map((parameter, index) => extractParameterDefinition(parameter, index, {\n\t\tsourceFile: context.sourceFile,\n\t\tfilePath: context.filePath,\n\t\tcontrollerName: context.controllerName,\n\t\tmethodName,\n\t\tdiagnostics: context.diagnostics\n\t}));\n\tif (parameters.some((parameter) => parameter === void 0)) return;\n\treturn {\n\t\tname: methodName,\n\t\thttpMethod,\n\t\tpath: joinRoutePath(context.controllerPath, routeArgument.value),\n\t\tparameters: parameters.filter((parameter) => parameter !== void 0),\n\t\tresponseKind: readResponseKind(method.type),\n\t\tline: location.line,\n\t\tcolumn: location.column\n\t};\n};\nvar extractControllerDefinition = (classDeclaration, sourceFile, filePath, diagnostics) => {\n\tconst controllerName = classDeclaration.name?.text ?? \"(anonymous controller)\";\n\tconst decorator = findDecorator(classDeclaration, \"Controller\");\n\tif (decorator === void 0) return;\n\tconst location = locationOf(sourceFile, classDeclaration);\n\tconst argument = readStaticStringArgument(decorator);\n\tif (!argument.ok) {\n\t\tdiagnostics.push({\n\t\t\tcode: \"unsupported-route\",\n\t\t\ttitle: \"Unsupported route.\",\n\t\t\tcontrollerName,\n\t\t\tmemberName: \"\",\n\t\t\tdetail: \"Controller paths must be statically analyzable.\",\n\t\t\tfound: `@Controller(${argument.argumentText})`,\n\t\t\tfilePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst methods = classDeclaration.members.filter((member) => isMethodDeclaration(member)).map((method) => extractMethodDefinition(method, {\n\t\tsourceFile,\n\t\tfilePath,\n\t\tcontrollerName,\n\t\tcontrollerPath: argument.value ?? \"\",\n\t\tdiagnostics\n\t})).filter((method) => method !== void 0);\n\treturn {\n\t\tname: controllerName,\n\t\tpath: argument.value ?? \"\",\n\t\tsourceFile: filePath,\n\t\tmethods\n\t};\n};\nvar findControllerClasses = (sourceFile) => {\n\treturn sourceFile.statements.filter((statement) => isClassDeclaration(statement) && findDecorator(statement, \"Controller\") !== void 0);\n};\nvar sharedApi;\nvar parseSourceFile = (filePath) => {\n\tsharedApi ??= new API();\n\tsharedApi.updateSnapshot({ closeFiles: [filePath] });\n\tconst sourceFile = sharedApi.updateSnapshot({\n\t\topenFiles: [filePath],\n\t\tfileChanges: { changed: [filePath] }\n\t}).getDefaultProjectForFile(filePath)?.program.getSourceFile(filePath);\n\tif (sourceFile === void 0) throw new Error(`Unable to parse source file: ${filePath}`);\n\treturn sourceFile;\n};\nvar analyzeControllers = (filePaths) => {\n\tconst diagnostics = [];\n\tconst controllers = [];\n\tfor (const filePath of filePaths) {\n\t\tconst sourceFile = parseSourceFile(filePath);\n\t\tfor (const classDeclaration of findControllerClasses(sourceFile)) {\n\t\t\tconst controller = extractControllerDefinition(classDeclaration, sourceFile, filePath, diagnostics);\n\t\t\tif (controller !== void 0) controllers.push(controller);\n\t\t}\n\t}\n\treturn {\n\t\tcontrollers,\n\t\tdiagnostics\n\t};\n};\nvar GRAPHQL_OPERATION_DECORATOR_NAMES = {\n\tQuery: \"query\",\n\tMutation: \"mutation\"\n};\nvar readTypeThunkExpression = (thunk) => {\n\tif (!isBlock(thunk.body)) return thunk.body;\n\treturn thunk.body.statements.find(isReturnStatement)?.expression;\n};\nvar readArgsTypeOption = (decorator) => {\n\tif (!isCallExpression(decorator.expression)) return;\n\tconst optionsArgument = decorator.expression.arguments.find(isObjectLiteralExpression);\n\tif (optionsArgument === void 0) return;\n\tconst typeProperty = optionsArgument.properties.find((property) => isPropertyAssignment(property) && isIdentifier(property.name) && property.name.text === \"type\");\n\tif (typeProperty === void 0) return;\n\tconst thunk = typeProperty.initializer;\n\tif (!isArrowFunction(thunk) && !isFunctionExpression(thunk)) return;\n\tconst returnedExpression = readTypeThunkExpression(thunk);\n\tif (returnedExpression === void 0) return;\n\tif (isArrayLiteralExpression(returnedExpression)) {\n\t\tconst element = returnedExpression.elements[0];\n\t\treturn element !== void 0 && isIdentifier(element) ? {\n\t\t\ttypeName: element.text,\n\t\t\tisArray: true\n\t\t} : void 0;\n\t}\n\treturn isIdentifier(returnedExpression) ? {\n\t\ttypeName: returnedExpression.text,\n\t\tisArray: false\n\t} : void 0;\n};\nvar extractResolverArgumentDefinition = (parameter, index, context) => {\n\tconst decorator = findAnyDecorator(parameter, [\"Args\"]);\n\tconst location = locationOf(context.sourceFile, parameter);\n\tif (decorator === void 0) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-argument\",\n\t\t\ttitle: \"Unsupported argument.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `Parameter \"${parameter.name.getText()}\" must be decorated with @Args to be transported through a NestBridge GraphQL client.`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tif (!isIdentifier(parameter.name)) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-argument\",\n\t\t\ttitle: \"Unsupported argument.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: \"Destructured parameters cannot be transported through a NestBridge GraphQL client.\",\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst nameArgument = readStaticStringArgument(decorator);\n\tif (!nameArgument.ok) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-argument\",\n\t\t\ttitle: \"Unsupported argument.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: \"@Args() name must be a statically analyzable string literal.\",\n\t\t\tfound: `@Args(${nameArgument.argumentText})`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tif (nameArgument.value === void 0) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-argument\",\n\t\t\ttitle: \"Unsupported argument.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: \"A whole @Args() is not supported; provide an argument name such as @Args('id').\",\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tif (parameter.type === void 0) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-argument\",\n\t\t\ttitle: \"Unsupported argument.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `@Args() parameter \"${parameter.name.text}\" needs an explicit type annotation.`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst unwrapped = unwrapTypeNode(parameter.type);\n\tif (unwrapped === void 0) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-argument\",\n\t\t\ttitle: \"Unsupported argument.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `@Args() parameter \"${parameter.name.text}\" has a type NestBridge cannot statically resolve to a GraphQL type.`,\n\t\t\tfound: parameter.type.getText(),\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst explicitType = readArgsTypeOption(decorator);\n\treturn {\n\t\tindex,\n\t\tparameterName: parameter.name.text,\n\t\tname: nameArgument.value,\n\t\tgraphqlType: graphqlTypeStringFor(unwrapped, explicitType?.typeName)\n\t};\n};\nvar parsedFilesByPath = /* @__PURE__ */ new Map();\nvar parseFile = (filePath) => {\n\tconst cached = parsedFilesByPath.get(filePath);\n\tif (cached !== void 0) return cached;\n\tconst sourceFile = parseSourceFile(filePath);\n\tparsedFilesByPath.set(filePath, sourceFile);\n\treturn sourceFile;\n};\nvar resolveModuleFile = (fromFilePath, moduleSpecifierText) => {\n\tif (!moduleSpecifierText.startsWith(\".\")) return;\n\tconst base = resolve(dirname(fromFilePath), moduleSpecifierText);\n\treturn [\n\t\t`${base}.ts`,\n\t\t`${base}.tsx`,\n\t\tresolve(base, \"index.ts\")\n\t].find((candidate) => existsSync(candidate));\n};\nvar findExportedDeclaration = (sourceFile, name) => sourceFile.statements.find((statement) => isClassDeclaration(statement) && statement.name?.text === name);\nvar findImportSource = (sourceFile, localName) => {\n\tfor (const statement of sourceFile.statements) {\n\t\tif (!isImportDeclaration(statement) || !isStringLiteralLikeNode(statement.moduleSpecifier)) continue;\n\t\tconst namedBindings = statement.importClause?.namedBindings;\n\t\tif (namedBindings === void 0 || !isNamedImports(namedBindings)) continue;\n\t\tconst element = namedBindings.elements.find((candidate) => candidate.name.text === localName);\n\t\tif (element !== void 0) return {\n\t\t\tmoduleSpecifierText: statement.moduleSpecifier.text,\n\t\t\timportedName: element.propertyName?.text ?? element.name.text\n\t\t};\n\t}\n};\nvar findReExportSource = (sourceFile, name) => {\n\tfor (const statement of sourceFile.statements) {\n\t\tif (!isExportDeclaration(statement) || statement.moduleSpecifier === void 0 || !isStringLiteralLikeNode(statement.moduleSpecifier)) continue;\n\t\tif (statement.exportClause === void 0) return statement.moduleSpecifier.text;\n\t\tif (isNamedExports(statement.exportClause) && statement.exportClause.elements.some((element) => (element.propertyName?.text ?? element.name.text) === name)) return statement.moduleSpecifier.text;\n\t}\n};\nvar resolveClassDeclaration = (name, fromSourceFile, fromFilePath, visited = /* @__PURE__ */ new Set()) => {\n\tif (visited.has(fromFilePath)) return;\n\tvisited.add(fromFilePath);\n\tconst direct = findExportedDeclaration(fromSourceFile, name);\n\tif (direct !== void 0) return {\n\t\tclassDeclaration: direct,\n\t\tsourceFile: fromSourceFile,\n\t\tfilePath: fromFilePath\n\t};\n\tconst importSource = findImportSource(fromSourceFile, name);\n\tif (importSource !== void 0) {\n\t\tconst resolvedPath = resolveModuleFile(fromFilePath, importSource.moduleSpecifierText);\n\t\tif (resolvedPath !== void 0) {\n\t\t\tconst nextSourceFile = parseFile(resolvedPath);\n\t\t\tconst result = resolveClassDeclaration(importSource.importedName, nextSourceFile, resolvedPath, visited);\n\t\t\tif (result !== void 0) return result;\n\t\t}\n\t}\n\tconst reExportModuleSpecifierText = findReExportSource(fromSourceFile, name);\n\tif (reExportModuleSpecifierText !== void 0) {\n\t\tconst resolvedPath = resolveModuleFile(fromFilePath, reExportModuleSpecifierText);\n\t\tif (resolvedPath !== void 0) return resolveClassDeclaration(name, parseFile(resolvedPath), resolvedPath, visited);\n\t}\n};\nvar PRIMITIVE_SCALAR_NAMES$1 = /* @__PURE__ */ new Set([\n\t\"string\",\n\t\"number\",\n\t\"boolean\"\n]);\nvar extractSelectionFields = (classDeclaration, sourceFile, filePath, context) => {\n\tconst typeName = classDeclaration.name?.text ?? \"(anonymous type)\";\n\tconst location = locationOf(sourceFile, classDeclaration);\n\tif (context.visitedTypeNames.has(typeName)) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"circular-type\",\n\t\t\ttitle: \"Circular type.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `Type \"${typeName}\" references itself, directly or indirectly. NestBridge cannot build a finite GraphQL selection set for it.`,\n\t\t\tfilePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst nextVisited = new Set(context.visitedTypeNames).add(typeName);\n\tconst properties = classDeclaration.members.filter((member) => isPropertyDeclaration(member) && findDecorator(member, \"Field\") !== void 0);\n\tconst fields = [];\n\tfor (const property of properties) {\n\t\tif (!isIdentifier(property.name)) continue;\n\t\tconst fieldName = property.name.text;\n\t\tconst fieldLocation = locationOf(sourceFile, property);\n\t\tif (property.type === void 0) {\n\t\t\tcontext.diagnostics.push({\n\t\t\t\tcode: \"unsupported-return-type\",\n\t\t\t\ttitle: \"Unsupported field type.\",\n\t\t\t\tcontrollerName: context.resolverName,\n\t\t\t\tmemberName: context.methodName,\n\t\t\t\tdetail: `Field \"${fieldName}\" on \"${typeName}\" needs an explicit type annotation.`,\n\t\t\t\tfilePath,\n\t\t\t\tline: fieldLocation.line,\n\t\t\t\tcolumn: fieldLocation.column\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst unwrapped = unwrapTypeNode(property.type);\n\t\tif (unwrapped === void 0) {\n\t\t\tcontext.diagnostics.push({\n\t\t\t\tcode: \"unsupported-return-type\",\n\t\t\t\ttitle: \"Unsupported field type.\",\n\t\t\t\tcontrollerName: context.resolverName,\n\t\t\t\tmemberName: context.methodName,\n\t\t\t\tdetail: `Field \"${fieldName}\" on \"${typeName}\" has a type NestBridge cannot statically resolve.`,\n\t\t\t\tfound: property.type.getText(),\n\t\t\t\tfilePath,\n\t\t\t\tline: fieldLocation.line,\n\t\t\t\tcolumn: fieldLocation.column\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (PRIMITIVE_SCALAR_NAMES$1.has(unwrapped.identifierText)) {\n\t\t\tfields.push({ name: fieldName });\n\t\t\tcontinue;\n\t\t}\n\t\tconst resolved = resolveClassDeclaration(unwrapped.identifierText, sourceFile, filePath);\n\t\tif (resolved === void 0) {\n\t\t\tfields.push({ name: fieldName });\n\t\t\tcontinue;\n\t\t}\n\t\tif (findDecorator(resolved.classDeclaration, \"ObjectType\") === void 0) {\n\t\t\tcontext.diagnostics.push({\n\t\t\t\tcode: \"unsupported-return-type\",\n\t\t\t\ttitle: \"Unsupported field type.\",\n\t\t\t\tcontrollerName: context.resolverName,\n\t\t\t\tmemberName: context.methodName,\n\t\t\t\tdetail: `Field \"${fieldName}\" on \"${typeName}\" resolves to class \"${unwrapped.identifierText}\", which is not decorated with @ObjectType(). NestBridge cannot build a GraphQL selection set for it.`,\n\t\t\t\tfilePath,\n\t\t\t\tline: fieldLocation.line,\n\t\t\t\tcolumn: fieldLocation.column\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst children = extractSelectionFields(resolved.classDeclaration, resolved.sourceFile, resolved.filePath, {\n\t\t\t...context,\n\t\t\tvisitedTypeNames: nextVisited\n\t\t});\n\t\tif (children === void 0) return;\n\t\tfields.push({\n\t\t\tname: fieldName,\n\t\t\tchildren\n\t\t});\n\t}\n\treturn fields;\n};\nvar readNameFromOptions = (optionsArgument) => {\n\tconst nameProperty = optionsArgument.properties.find((property) => isPropertyAssignment(property) && isIdentifier(property.name) && property.name.text === \"name\");\n\tif (nameProperty === void 0 || !isStringLiteralLikeNode(nameProperty.initializer)) return;\n\treturn nameProperty.initializer.text;\n};\nvar readGraphqlOperationName = (decorator) => {\n\tconst expression = decorator.expression;\n\tif (!isCallExpression(expression)) return {\n\t\tok: true,\n\t\tvalue: void 0\n\t};\n\tlet value;\n\tfor (const argument of expression.arguments) {\n\t\tif (isArrowFunction(argument) || isFunctionExpression(argument)) continue;\n\t\tif (isStringLiteralLikeNode(argument)) {\n\t\t\tvalue = argument.text;\n\t\t\tcontinue;\n\t\t}\n\t\tif (isObjectLiteralExpression(argument)) {\n\t\t\tvalue = readNameFromOptions(argument) ?? value;\n\t\t\tcontinue;\n\t\t}\n\t\treturn {\n\t\t\tok: false,\n\t\t\targumentText: argument.getText()\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tvalue\n\t};\n};\nvar readGraphqlReturnTypeOption = (decorator) => {\n\tif (!isCallExpression(decorator.expression)) return;\n\tconst thunk = decorator.expression.arguments.find((argument) => isArrowFunction(argument) || isFunctionExpression(argument));\n\tif (thunk === void 0) return;\n\tconst returnedExpression = readTypeThunkExpression(thunk);\n\tif (returnedExpression === void 0) return;\n\tif (isArrayLiteralExpression(returnedExpression)) {\n\t\tconst element = returnedExpression.elements[0];\n\t\treturn element !== void 0 && isIdentifier(element) ? element.text : void 0;\n\t}\n\treturn isIdentifier(returnedExpression) ? returnedExpression.text : void 0;\n};\nvar PRIMITIVE_SCALAR_NAMES = /* @__PURE__ */ new Set([\n\t\"string\",\n\t\"number\",\n\t\"boolean\"\n]);\nvar extractResolverMethodDefinition = (method, context) => {\n\tconst decorator = findAnyDecorator(method, Object.keys(GRAPHQL_OPERATION_DECORATOR_NAMES));\n\tif (decorator === void 0) return;\n\tconst methodName = method.name.getText();\n\tconst decoratorName = decoratorNameOf(decorator);\n\tconst location = locationOf(context.sourceFile, method);\n\tif (decoratorName === void 0) return;\n\tconst operationKind = GRAPHQL_OPERATION_DECORATOR_NAMES[decoratorName];\n\tif (operationKind === void 0) return;\n\tconst nameArgument = readGraphqlOperationName(decorator);\n\tif (!nameArgument.ok) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-route\",\n\t\t\ttitle: \"Unsupported operation name.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: methodName,\n\t\t\tdetail: \"GraphQL operation names must be statically analyzable string literals.\",\n\t\t\tfound: `@${decoratorName}(${nameArgument.argumentText})`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst decoratorReturnType = readGraphqlReturnTypeOption(decorator);\n\tconst identifierText = decoratorReturnType ?? (method.type === void 0 ? void 0 : unwrapTypeNode(method.type)?.identifierText);\n\tif (identifierText === void 0) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-return-type\",\n\t\t\ttitle: \"Unsupported return type.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: methodName,\n\t\t\tdetail: \"GraphQL resolver methods need a type thunk on @Query()/@Mutation() (e.g. \\\"() => UserType\\\") or an explicit return type annotation so NestBridge can build a selection set.\",\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tlet selection = [];\n\tif (!PRIMITIVE_SCALAR_NAMES.has(identifierText.toLowerCase())) {\n\t\tconst resolved = resolveClassDeclaration(identifierText, context.sourceFile, context.filePath);\n\t\tif (resolved === void 0 && decoratorReturnType === void 0) {\n\t\t\tcontext.diagnostics.push({\n\t\t\t\tcode: \"unsupported-return-type\",\n\t\t\t\ttitle: \"Unsupported return type.\",\n\t\t\t\tcontrollerName: context.resolverName,\n\t\t\t\tmemberName: methodName,\n\t\t\t\tdetail: `NestBridge could not locate the declaration of type \"${identifierText}\".`,\n\t\t\t\tfilePath: context.filePath,\n\t\t\t\tline: location.line,\n\t\t\t\tcolumn: location.column\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (resolved !== void 0) {\n\t\t\tconst fields = extractSelectionFields(resolved.classDeclaration, resolved.sourceFile, resolved.filePath, {\n\t\t\t\tresolverName: context.resolverName,\n\t\t\t\tmethodName,\n\t\t\t\tdiagnostics: context.diagnostics,\n\t\t\t\tvisitedTypeNames: /* @__PURE__ */ new Set()\n\t\t\t});\n\t\t\tif (fields === void 0) return;\n\t\t\tselection = fields;\n\t\t}\n\t}\n\tconst args = method.parameters.map((parameter, index) => extractResolverArgumentDefinition(parameter, index, {\n\t\tsourceFile: context.sourceFile,\n\t\tfilePath: context.filePath,\n\t\tresolverName: context.resolverName,\n\t\tmethodName,\n\t\tdiagnostics: context.diagnostics\n\t}));\n\tif (args.some((argument) => argument === void 0)) return;\n\treturn {\n\t\tname: methodName,\n\t\toperationKind,\n\t\toperationName: nameArgument.value ?? methodName,\n\t\targuments: args.filter((argument) => argument !== void 0),\n\t\tselection,\n\t\tline: location.line,\n\t\tcolumn: location.column\n\t};\n};\nvar extractResolverDefinition = (classDeclaration, sourceFile, filePath, diagnostics) => {\n\tconst resolverName = classDeclaration.name?.text ?? \"(anonymous resolver)\";\n\treturn {\n\t\tname: resolverName,\n\t\tsourceFile: filePath,\n\t\tmethods: classDeclaration.members.filter((member) => isMethodDeclaration(member)).map((method) => extractResolverMethodDefinition(method, {\n\t\t\tsourceFile,\n\t\t\tfilePath,\n\t\t\tresolverName,\n\t\t\tdiagnostics\n\t\t})).filter((method) => method !== void 0)\n\t};\n};\nvar findResolverClasses = (sourceFile) => {\n\treturn sourceFile.statements.filter((statement) => isClassDeclaration(statement) && findDecorator(statement, \"Resolver\") !== void 0);\n};\nvar analyzeResolvers = (filePaths) => {\n\tconst diagnostics = [];\n\tconst resolvers = [];\n\tfor (const filePath of filePaths) {\n\t\tconst sourceFile = parseSourceFile(filePath);\n\t\tfor (const classDeclaration of findResolverClasses(sourceFile)) {\n\t\t\tconst resolver = extractResolverDefinition(classDeclaration, sourceFile, filePath, diagnostics);\n\t\t\tif (resolver !== void 0) resolvers.push(resolver);\n\t\t}\n\t}\n\treturn {\n\t\tresolvers,\n\t\tdiagnostics\n\t};\n};\nvar MODULE_DECORATOR_NAME = \"Module\";\nvar PROVIDERS_PROPERTY_NAME = \"providers\";\nvar PROVIDE_PROPERTY_NAME = \"provide\";\nvar USE_CLASS_PROPERTY_NAME = \"useClass\";\nvar APP_FILTER_LOCAL_NAME = \"APP_FILTER\";\nvar NEST_CORE_MODULE_SPECIFIER$1 = \"@nestjs/core\";\nvar findAppFilterProviderClassName = (moduleClassDeclaration, moduleSourceFile) => {\n\tconst moduleDecorator = findDecorator(moduleClassDeclaration, MODULE_DECORATOR_NAME);\n\tif (moduleDecorator === void 0 || !isCallExpression(moduleDecorator.expression)) return;\n\tconst [moduleOptions] = moduleDecorator.expression.arguments;\n\tif (moduleOptions === void 0 || !isObjectLiteralExpression(moduleOptions)) return;\n\tconst providersProperty = moduleOptions.properties.find((property) => isPropertyAssignment(property) && isIdentifier(property.name) && property.name.text === PROVIDERS_PROPERTY_NAME);\n\tif (providersProperty === void 0 || !isArrayLiteralExpression(providersProperty.initializer)) return;\n\tconst appFilterImportSource = findImportSource(moduleSourceFile, APP_FILTER_LOCAL_NAME);\n\tif (appFilterImportSource === void 0 || appFilterImportSource.moduleSpecifierText !== NEST_CORE_MODULE_SPECIFIER$1) return;\n\tconst classNames = /* @__PURE__ */ new Set();\n\tfor (const element of providersProperty.initializer.elements) {\n\t\tif (isSpreadElement(element)) return;\n\t\tif (!isObjectLiteralExpression(element)) continue;\n\t\tconst provideProperty = element.properties.find((property) => isPropertyAssignment(property) && isIdentifier(property.name) && property.name.text === PROVIDE_PROPERTY_NAME);\n\t\tif (provideProperty === void 0 || !isIdentifier(provideProperty.initializer) || provideProperty.initializer.text !== APP_FILTER_LOCAL_NAME) continue;\n\t\tconst useClassProperty = element.properties.find((property) => isPropertyAssignment(property) && isIdentifier(property.name) && property.name.text === USE_CLASS_PROPERTY_NAME);\n\t\tif (useClassProperty === void 0 || !isIdentifier(useClassProperty.initializer)) return;\n\t\tclassNames.add(useClassProperty.initializer.text);\n\t}\n\treturn classNames.size === 1 ? [...classNames][0] : void 0;\n};\nvar USE_GLOBAL_FILTERS_METHOD_NAME = \"useGlobalFilters\";\nvar collectUseGlobalFiltersCalls = (node, calls) => {\n\tif (isCallExpression(node) && isPropertyAccessExpression(node.expression) && node.expression.name.text === USE_GLOBAL_FILTERS_METHOD_NAME) calls.push(node);\n\tnode.forEachChild((child) => {\n\t\tcollectUseGlobalFiltersCalls(child, calls);\n\t});\n};\nvar findGlobalFilterClassName = (sourceFile) => {\n\tconst calls = [];\n\tcollectUseGlobalFiltersCalls(sourceFile, calls);\n\tif (calls.length === 0) return;\n\tconst classNames = /* @__PURE__ */ new Set();\n\tfor (const call of calls) for (const argument of call.arguments) {\n\t\tif (!isNewExpression(argument) || !isIdentifier(argument.expression)) return;\n\t\tclassNames.add(argument.expression.text);\n\t}\n\treturn classNames.size === 1 ? [...classNames][0] : void 0;\n};\nvar NEST_FACTORY_LOCAL_NAME = \"NestFactory\";\nvar NEST_FACTORY_CREATE_METHOD_NAME = \"create\";\nvar NEST_CORE_MODULE_SPECIFIER = \"@nestjs/core\";\nvar collectNestFactoryCreateCalls = (node, calls) => {\n\tif (isCallExpression(node) && isPropertyAccessExpression(node.expression) && isIdentifier(node.expression.expression) && node.expression.expression.text === NEST_FACTORY_LOCAL_NAME && node.expression.name.text === NEST_FACTORY_CREATE_METHOD_NAME) calls.push(node);\n\tnode.forEachChild((child) => {\n\t\tcollectNestFactoryCreateCalls(child, calls);\n\t});\n};\nvar findRootModuleClassName = (sourceFile) => {\n\tconst nestFactoryImportSource = findImportSource(sourceFile, NEST_FACTORY_LOCAL_NAME);\n\tif (nestFactoryImportSource === void 0 || nestFactoryImportSource.moduleSpecifierText !== NEST_CORE_MODULE_SPECIFIER) return;\n\tconst calls = [];\n\tcollectNestFactoryCreateCalls(sourceFile, calls);\n\tif (calls.length !== 1) return;\n\tconst [call] = calls;\n\tif (call === void 0) return;\n\tconst [moduleArgument] = call.arguments;\n\treturn moduleArgument !== void 0 && isIdentifier(moduleArgument) ? moduleArgument.text : void 0;\n};\nvar RESPONSE_BODY_CALL_NAMES = /* @__PURE__ */ new Set([\"json\", \"send\"]);\nvar matchResponseBodyArgument = (expression) => {\n\tif (!isCallExpression(expression) || !isPropertyAccessExpression(expression.expression) || !RESPONSE_BODY_CALL_NAMES.has(expression.expression.name.text) || expression.arguments.length !== 1) return;\n\tconst [argument] = expression.arguments;\n\treturn argument;\n};\nvar resolveCatchMethodBody = (catchMethod) => {\n\tconst [exceptionParameter] = catchMethod.parameters;\n\tif (exceptionParameter === void 0 || !isIdentifier(exceptionParameter.name)) return;\n\tconst body = catchMethod.body;\n\tif (body === void 0) return;\n\tconst localDeclarations = /* @__PURE__ */ new Map();\n\tlet responseBodyArgument;\n\tlet sawResponseCall = false;\n\tlet sawTrailingReturn = false;\n\tfor (const statement of body.statements) {\n\t\tif (sawTrailingReturn) return;\n\t\tif (!sawResponseCall && isVariableStatement(statement)) {\n\t\t\tfor (const declaration of statement.declarationList.declarations) {\n\t\t\t\tif (!isIdentifier(declaration.name) || declaration.initializer === void 0) return;\n\t\t\t\tlocalDeclarations.set(declaration.name.text, declaration.initializer);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (!sawResponseCall && isExpressionStatement(statement)) {\n\t\t\tconst argument = matchResponseBodyArgument(statement.expression);\n\t\t\tif (argument === void 0) return;\n\t\t\tresponseBodyArgument = argument;\n\t\t\tsawResponseCall = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (sawResponseCall && isReturnStatement(statement) && statement.expression === void 0) {\n\t\t\tsawTrailingReturn = true;\n\t\t\tcontinue;\n\t\t}\n\t\treturn;\n\t}\n\tif (!sawResponseCall || responseBodyArgument === void 0) return;\n\treturn {\n\t\texceptionParameterName: exceptionParameter.name.text,\n\t\tlocalDeclarations,\n\t\tresponseBodyArgument\n\t};\n};\nvar EXCEPTION_MESSAGE_MEMBER_NAME = \"message\";\nvar EXCEPTION_STATUS_METHOD_NAME = \"getStatus\";\nvar resolvesToExceptionParameter = (expression, exceptionParameterName, localDeclarations, visited) => {\n\tif (!isIdentifier(expression)) return false;\n\tif (expression.text === exceptionParameterName) return true;\n\tif (visited.has(expression.text)) return false;\n\tvisited.add(expression.text);\n\tconst aliasedExpression = localDeclarations.get(expression.text);\n\treturn aliasedExpression !== void 0 ? resolvesToExceptionParameter(aliasedExpression, exceptionParameterName, localDeclarations, visited) : false;\n};\nvar synthesizeErrorValueType = (expression, exceptionParameterName, localDeclarations) => {\n\tif (isPropertyAccessExpression(expression) && expression.name.text === EXCEPTION_MESSAGE_MEMBER_NAME && resolvesToExceptionParameter(expression.expression, exceptionParameterName, localDeclarations, /* @__PURE__ */ new Set())) return \"string\";\n\tif (isCallExpression(expression) && expression.arguments.length === 0 && isPropertyAccessExpression(expression.expression) && expression.expression.name.text === EXCEPTION_STATUS_METHOD_NAME && resolvesToExceptionParameter(expression.expression.expression, exceptionParameterName, localDeclarations, /* @__PURE__ */ new Set())) return \"number\";\n\tif (isObjectLiteralExpression(expression)) {\n\t\tconst memberTypes = [];\n\t\tfor (const property of expression.properties) {\n\t\t\tif (!isPropertyAssignment(property) || !(isIdentifier(property.name) || isStringLiteral(property.name))) return;\n\t\t\tconst valueType = synthesizeErrorValueType(property.initializer, exceptionParameterName, localDeclarations);\n\t\t\tif (valueType === void 0) return;\n\t\t\tmemberTypes.push(`${property.name.text}: ${valueType}`);\n\t\t}\n\t\treturn `{ ${memberTypes.join(\"; \")} }`;\n\t}\n\tif (isStringLiteral(expression)) return \"string\";\n\tif (isNumericLiteral(expression)) return \"number\";\n\tif (isTrueLiteral(expression) || isFalseLiteral(expression)) return \"boolean\";\n\tif (isNullLiteral(expression)) return \"null\";\n\tif (isIdentifier(expression)) {\n\t\tconst aliasedExpression = localDeclarations.get(expression.text);\n\t\treturn aliasedExpression !== void 0 ? synthesizeErrorValueType(aliasedExpression, exceptionParameterName, localDeclarations) : void 0;\n\t}\n};\nvar synthesizeErrorBodyType = (objectLiteral, exceptionParameterName, localDeclarations) => synthesizeErrorValueType(objectLiteral, exceptionParameterName, localDeclarations);\nvar CATCH_DECORATOR_NAME = \"Catch\";\nvar CATCH_METHOD_NAME = \"catch\";\nvar findCatchMethod = (members) => members.find((member) => isMethodDeclaration(member) && isIdentifier(member.name) && member.name.text === CATCH_METHOD_NAME);\nvar resolveViaGlobalFilters = (bootstrapSourceFile, bootstrapFilePath) => {\n\tconst filterClassName = findGlobalFilterClassName(bootstrapSourceFile);\n\treturn filterClassName === void 0 ? void 0 : resolveClassDeclaration(filterClassName, bootstrapSourceFile, bootstrapFilePath);\n};\nvar resolveViaAppFilterProvider = (bootstrapSourceFile, bootstrapFilePath) => {\n\tconst rootModuleClassName = findRootModuleClassName(bootstrapSourceFile);\n\tif (rootModuleClassName === void 0) return;\n\tconst resolvedModule = resolveClassDeclaration(rootModuleClassName, bootstrapSourceFile, bootstrapFilePath);\n\tif (resolvedModule === void 0) return;\n\tconst filterClassName = findAppFilterProviderClassName(resolvedModule.classDeclaration, resolvedModule.sourceFile);\n\treturn filterClassName === void 0 ? void 0 : resolveClassDeclaration(filterClassName, resolvedModule.sourceFile, resolvedModule.filePath);\n};\nvar isSameDeclaration = (a, b) => a.filePath === b.filePath && a.classDeclaration.name?.text === b.classDeclaration.name?.text;\nvar reconcileResolvedFilter = (viaGlobalFilters, viaAppFilterProvider) => {\n\tif (viaGlobalFilters !== void 0 && viaAppFilterProvider !== void 0) return isSameDeclaration(viaGlobalFilters, viaAppFilterProvider) ? viaGlobalFilters : void 0;\n\treturn viaGlobalFilters ?? viaAppFilterProvider;\n};\nvar detectErrorResponseShape = (bootstrapFilePath) => {\n\tconst bootstrapSourceFile = parseSourceFile(bootstrapFilePath);\n\tconst resolved = reconcileResolvedFilter(resolveViaGlobalFilters(bootstrapSourceFile, bootstrapFilePath), resolveViaAppFilterProvider(bootstrapSourceFile, bootstrapFilePath));\n\tif (resolved === void 0 || findDecorator(resolved.classDeclaration, CATCH_DECORATOR_NAME) === void 0) return;\n\tconst catchMethod = findCatchMethod(resolved.classDeclaration.members);\n\tif (catchMethod?.body === void 0) return;\n\tconst bodyResolution = resolveCatchMethodBody(catchMethod);\n\tif (bodyResolution === void 0 || !isObjectLiteralExpression(bodyResolution.responseBodyArgument)) return;\n\tconst errorBodyTypeSource = synthesizeErrorBodyType(bodyResolution.responseBodyArgument, bodyResolution.exceptionParameterName, bodyResolution.localDeclarations);\n\treturn errorBodyTypeSource === void 0 ? void 0 : { errorBodyTypeSource };\n};\nvar USE_GLOBAL_INTERCEPTORS_METHOD_NAME = \"useGlobalInterceptors\";\nvar collectUseGlobalInterceptorsCalls = (node, calls) => {\n\tif (isCallExpression(node) && isPropertyAccessExpression(node.expression) && node.expression.name.text === USE_GLOBAL_INTERCEPTORS_METHOD_NAME) calls.push(node);\n\tnode.forEachChild((child) => {\n\t\tcollectUseGlobalInterceptorsCalls(child, calls);\n\t});\n};\n/**\n* Returned in registration order: `useGlobalInterceptors` concatenates onto a\n* single global list, so a later call (or a later argument within one call)\n* always registers an interceptor that wraps closer to the raw handler result.\n*/\nvar findGlobalInterceptorClassNames = (sourceFile) => {\n\tconst calls = [];\n\tcollectUseGlobalInterceptorsCalls(sourceFile, calls);\n\tif (calls.length === 0) return;\n\tconst classNames = [];\n\tfor (const call of calls) for (const argument of call.arguments) {\n\t\tif (!isNewExpression(argument) || !isIdentifier(argument.expression)) return;\n\t\tclassNames.push(argument.expression.text);\n\t}\n\treturn classNames.length === 0 ? void 0 : classNames;\n};\nvar synthesizeExpressionType = (expression, parameterName, substitution, state) => {\n\tif (isIdentifier(expression) && expression.text === parameterName) {\n\t\tstate.substitutionCount += 1;\n\t\treturn substitution;\n\t}\n\tif (isObjectLiteralExpression(expression)) {\n\t\tconst memberTypes = [];\n\t\tfor (const property of expression.properties) {\n\t\t\tif (!isPropertyAssignment(property) || !(isIdentifier(property.name) || isStringLiteral(property.name))) return;\n\t\t\tconst valueType = synthesizeExpressionType(property.initializer, parameterName, substitution, state);\n\t\t\tif (valueType === void 0) return;\n\t\t\tmemberTypes.push(`${property.name.text}: ${valueType}`);\n\t\t}\n\t\treturn `{ ${memberTypes.join(\"; \")} }`;\n\t}\n\tif (isStringLiteral(expression)) return \"string\";\n\tif (isNumericLiteral(expression)) return \"number\";\n\tif (isTrueLiteral(expression) || isFalseLiteral(expression)) return \"boolean\";\n\tif (isNullLiteral(expression)) return \"null\";\n};\nvar synthesizeGenericObjectType = (objectLiteral, parameterName, substitution) => {\n\tconst state = { substitutionCount: 0 };\n\tconst objectType = synthesizeExpressionType(objectLiteral, parameterName, substitution, state);\n\treturn objectType !== void 0 && state.substitutionCount === 1 ? objectType : void 0;\n};\nvar INTERCEPT_METHOD_NAME = \"intercept\";\nvar PIPE_MEMBER_NAME = \"pipe\";\nvar MAP_OPERATOR_NAME = \"map\";\nvar RXJS_MODULE_SPECIFIER = \"rxjs\";\nvar WRAPPED_RESULT_SUBSTITUTION = \"Awaited<Result>\";\nvar unwrapParenthesizedExpression = (expression) => {\n\tlet unwrapped = expression;\n\twhile (isParenthesizedExpression(unwrapped)) unwrapped = unwrapped.expression;\n\treturn unwrapped;\n};\nvar resolveSoleReturnExpression = (body) => {\n\tif (!isBlock(body)) return unwrapParenthesizedExpression(body);\n\tconst localDeclarations = /* @__PURE__ */ new Map();\n\tlet returnExpression;\n\tlet sawReturn = false;\n\tfor (const statement of body.statements) {\n\t\tif (sawReturn) return;\n\t\tif (isVariableStatement(statement)) {\n\t\t\tfor (const declaration of statement.declarationList.declarations) {\n\t\t\t\tif (!isIdentifier(declaration.name) || declaration.initializer === void 0) return;\n\t\t\t\tlocalDeclarations.set(declaration.name.text, declaration.initializer);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (isReturnStatement(statement)) {\n\t\t\tsawReturn = true;\n\t\t\treturnExpression = statement.expression;\n\t\t\tcontinue;\n\t\t}\n\t\treturn;\n\t}\n\tif (returnExpression === void 0) return;\n\treturn isIdentifier(returnExpression) ? localDeclarations.get(returnExpression.text) : returnExpression;\n};\nvar matchPipedMapCallback = (expression, interceptorSourceFile) => {\n\tif (!isCallExpression(expression) || !isPropertyAccessExpression(expression.expression) || expression.expression.name.text !== PIPE_MEMBER_NAME || expression.arguments.length !== 1) return;\n\tconst [operator] = expression.arguments;\n\tif (operator === void 0 || !isCallExpression(operator) || !isIdentifier(operator.expression) || operator.expression.text !== MAP_OPERATOR_NAME || operator.arguments.length !== 1) return;\n\tconst mapImportSource = findImportSource(interceptorSourceFile, operator.expression.text);\n\tif (mapImportSource === void 0 || mapImportSource.moduleSpecifierText !== RXJS_MODULE_SPECIFIER) return;\n\tconst [callback] = operator.arguments;\n\treturn callback !== void 0 && (isArrowFunction(callback) || isFunctionExpression(callback)) ? callback : void 0;\n};\nvar findInterceptMethod = (members) => members.find((member) => isMethodDeclaration(member) && isIdentifier(member.name) && member.name.text === INTERCEPT_METHOD_NAME);\nvar synthesizeInterceptorWrapperType = (interceptorClassName, bootstrapSourceFile, bootstrapFilePath, innerTypeSource) => {\n\tconst resolved = resolveClassDeclaration(interceptorClassName, bootstrapSourceFile, bootstrapFilePath);\n\tif (resolved === void 0) return;\n\tconst interceptMethod = findInterceptMethod(resolved.classDeclaration.members);\n\tif (interceptMethod?.body === void 0) return;\n\tconst returnExpression = resolveSoleReturnExpression(interceptMethod.body);\n\tif (returnExpression === void 0) return;\n\tconst mapCallback = matchPipedMapCallback(returnExpression, resolved.sourceFile);\n\tif (mapCallback === void 0 || mapCallback.parameters.length !== 1) return;\n\tconst [callbackParameter] = mapCallback.parameters;\n\tif (callbackParameter === void 0 || !isIdentifier(callbackParameter.name)) return;\n\tconst callbackReturnExpression = resolveSoleReturnExpression(mapCallback.body);\n\tif (callbackReturnExpression === void 0 || !isObjectLiteralExpression(callbackReturnExpression)) return;\n\treturn synthesizeGenericObjectType(callbackReturnExpression, callbackParameter.name.text, innerTypeSource);\n};\n/**\n* Interceptors registered first wrap those registered after them, so the\n* composed type is built from the last-registered interceptor (closest to the\n* raw handler result) outward to the first-registered one.\n*/\nvar detectResponseWrapper = (bootstrapFilePath) => {\n\tconst bootstrapSourceFile = parseSourceFile(bootstrapFilePath);\n\tconst interceptorClassNames = findGlobalInterceptorClassNames(bootstrapSourceFile);\n\tif (interceptorClassNames === void 0) return;\n\tlet composedTypeSource = WRAPPED_RESULT_SUBSTITUTION;\n\tfor (const interceptorClassName of [...interceptorClassNames].reverse()) {\n\t\tconst wrapperTypeSource = synthesizeInterceptorWrapperType(interceptorClassName, bootstrapSourceFile, bootstrapFilePath, composedTypeSource);\n\t\tif (wrapperTypeSource === void 0) return;\n\t\tcomposedTypeSource = wrapperTypeSource;\n\t}\n\treturn { wrappedResultTypeSource: composedTypeSource };\n};\nvar REMOTE_RESULT_HELPERS = {\n\tjson: \"RemoteResult\",\n\tobservable: \"RemoteObservableResult\",\n\tstream: \"RemoteStreamResult\"\n};\nvar WRAPPED_RESULT_HELPER = \"__NestBridgeWrapped\";\nvar toPosixPath = (filePath) => filePath.replace(/\\\\/g, \"/\");\nvar importSpecifierFor = (sourceFile, outputFilePath) => {\n\tif (!sourceFile.startsWith(\".\") && !/^[A-Za-z]:[\\\\/]/.test(sourceFile) && !sourceFile.startsWith(\"/\")) return sourceFile;\n\tconst relativePath = toPosixPath(relative(dirname(outputFilePath), sourceFile));\n\treturn relativePath.startsWith(\".\") ? relativePath : `./${relativePath}`;\n};\nvar stripExtension = (filePath) => {\n\tconst extension = extname(filePath);\n\treturn extension.length > 0 ? filePath.slice(0, -extension.length) : filePath;\n};\nvar generateControllerDeclaration = (controller, outputFilePath, responseWrapper) => {\n\tconst sourceFileSpecifier = importSpecifierFor(controller.sourceFile, outputFilePath);\n\tconst importSpecifier = stripExtension(sourceFileSpecifier);\n\tconst serverAlias = `__Server${controller.name}`;\n\tconst helperNameFor = (method) => responseWrapper !== void 0 && (method.responseKind ?? \"json\") === \"json\" ? WRAPPED_RESULT_HELPER : REMOTE_RESULT_HELPERS[method.responseKind ?? \"json\"];\n\tconst classBody = [\n\t\t\" constructor();\",\n\t\t\"\",\n\t\t...controller.methods.map((method) => {\n\t\t\tconst helperName = helperNameFor(method);\n\t\t\treturn ` ${method.name}(...args: Parameters<${serverAlias}['${method.name}']>): ${helperName}<${serverAlias}['${method.name}']>;`;\n\t\t})\n\t].join(\"\\n\");\n\tconst rawHelperNames = controller.methods.map((method) => helperNameFor(method));\n\tconst hasWrappedMethod = rawHelperNames.includes(WRAPPED_RESULT_HELPER);\n\tconst helperImports = rawHelperNames.length === 0 ? [\"RemoteResult\"] : Array.from(new Set(rawHelperNames.filter((name) => name !== WRAPPED_RESULT_HELPER))).sort();\n\tconst wrappedResultTypeAliasLines = responseWrapper !== void 0 && hasWrappedMethod ? [`type ${WRAPPED_RESULT_HELPER}<T> = T extends (...args: never[]) => infer Result ? Promise<${responseWrapper.wrappedResultTypeSource}> : never;`, \"\"] : [];\n\treturn [\n\t\t`import type { ${controller.name} as ${serverAlias} } from '${importSpecifier}';`,\n\t\t...helperImports.length > 0 ? [`import type { ${helperImports.join(\", \")} } from 'nestbridge';`] : [],\n\t\t\"\",\n\t\t\"/**\",\n\t\t\" * Generated by NestBridge — client-facing methods only.\",\n\t\t` * @see {@link ${sourceFileSpecifier}} for the real controller implementation.`,\n\t\t\" */\",\n\t\t...wrappedResultTypeAliasLines,\n\t\t`export declare class ${controller.name} {`,\n\t\tclassBody,\n\t\t\"}\",\n\t\t\"\"\n\t].join(\"\\n\");\n};\nvar ERROR_BODY_TYPE_NAME = \"NestBridgeErrorBody\";\nvar generateErrorBodyDeclaration = (errorBodyTypeSource) => [\n\t\"/**\",\n\t\" * Generated by NestBridge — inferred shape of the global exception filter's response body.\",\n\t\" */\",\n\t`export type ${ERROR_BODY_TYPE_NAME} = ${errorBodyTypeSource};`,\n\t\"\"\n].join(\"\\n\");\nvar formatDiagnostic = (diagnostic) => {\n\tconst subject = diagnostic.memberName.length > 0 ? `${diagnostic.controllerName}.${diagnostic.memberName}` : diagnostic.controllerName;\n\tconst lines = [\n\t\t`[NestBridge] ${diagnostic.title}`,\n\t\t\"\",\n\t\tsubject,\n\t\t\"\",\n\t\tdiagnostic.detail\n\t];\n\tif (diagnostic.found !== void 0) lines.push(\"\", \"Found:\", diagnostic.found);\n\tif (diagnostic.expected !== void 0) lines.push(\"\", \"Expected:\", diagnostic.expected);\n\tlines.push(\"\", `${diagnostic.filePath}:${diagnostic.line}:${diagnostic.column}`);\n\treturn lines.join(\"\\n\");\n};\n//#endregion\n//#region src/codegen/generate-config-module.ts\nvar generateConfigModule = (options) => {\n\tif (options.baseURL === void 0) return \"\";\n\treturn [\n\t\t\"import { setNestBridgeBaseURL } from 'nestbridge';\",\n\t\t\"\",\n\t\t`setNestBridgeBaseURL(${JSON.stringify(options.baseURL)});`,\n\t\t\"\"\n\t].join(\"\\n\");\n};\n//#endregion\n//#region src/virtual-modules/config-virtual-id.ts\n/**\n* Must not contain a colon: webpack treats any `letter+:` prefix as a URL\n* scheme and routes the request past its filesystem resolver entirely,\n* bypassing the resolveId hook this virtual module relies on.\n*/\nvar CONFIG_VIRTUAL_MODULE_ID = \"virtual-nestbridge-config\";\nvar RESOLVED_CONFIG_VIRTUAL_MODULE_ID = `\\0${CONFIG_VIRTUAL_MODULE_ID}`;\n//#endregion\n//#region src/codegen/merge-named-parameters-expression.ts\nvar mergeNamedParametersExpression = (parameters) => {\n\tif (parameters.length === 0) return;\n\tconst whole = parameters.find((parameter) => parameter.name === void 0);\n\tconst named = parameters.filter((parameter) => parameter.name !== void 0);\n\tconst namedEntries = named.map((parameter) => `${JSON.stringify(parameter.name)}: ${parameter.parameterName}`);\n\tif (whole === void 0) return `{ ${namedEntries.join(\", \")} }`;\n\tif (named.length === 0) return whole.parameterName;\n\treturn `{ ...${whole.parameterName}, ${namedEntries.join(\", \")} }`;\n};\n//#endregion\n//#region src/codegen/generate-body-expression.ts\nvar generateBodyExpression = (parameters) => mergeNamedParametersExpression(parameters.filter((parameter) => parameter.kind === \"body\"));\n//#endregion\n//#region src/codegen/generate-headers-expression.ts\nvar generateHeadersExpression = (parameters) => {\n\tconst headerParameters = parameters.filter((parameter) => parameter.kind === \"header\");\n\tif (headerParameters.length === 0) return;\n\treturn `{ ${headerParameters.map((parameter) => `${JSON.stringify(parameter.name)}: ${parameter.parameterName}`).join(\", \")} }`;\n};\n//#endregion\n//#region src/codegen/generate-parameter-list.ts\nvar generateParameterList = (parameters) => [...parameters].sort((a, b) => a.index - b.index).map((parameter) => parameter.parameterName).join(\", \");\n//#endregion\n//#region src/codegen/generate-path-expression.ts\nvar PARAM_TOKEN_PATTERN = /:([A-Za-z0-9_]+)/;\nvar generatePathExpression = (method) => {\n\tconst paramParameters = method.parameters.filter((parameter) => parameter.kind === \"param\");\n\tconst parts = method.path.split(PARAM_TOKEN_PATTERN);\n\tconst expressionParts = [];\n\tparts.forEach((part, index) => {\n\t\tif (!(index % 2 === 1)) {\n\t\t\tif (part.length > 0) expressionParts.push(JSON.stringify(part));\n\t\t\treturn;\n\t\t}\n\t\tconst match = paramParameters.find((parameter) => parameter.name === part);\n\t\texpressionParts.push(match !== void 0 ? `encodeURIComponent(${match.parameterName})` : JSON.stringify(`:${part}`));\n\t});\n\treturn expressionParts.length > 0 ? expressionParts.join(\" + \") : \"''\";\n};\n//#endregion\n//#region src/codegen/generate-query-expression.ts\nvar generateQueryExpression = (parameters) => mergeNamedParametersExpression(parameters.filter((parameter) => parameter.kind === \"query\"));\n//#endregion\n//#region src/codegen/generate-controller-module.ts\nvar generateMethod$1 = (method) => {\n\tconst requestProperties = [`method: ${JSON.stringify(method.httpMethod)}`, `path: ${generatePathExpression(method)}`];\n\tconst queryExpression = generateQueryExpression(method.parameters);\n\tif (queryExpression !== void 0) requestProperties.push(`query: ${queryExpression}`);\n\tconst bodyExpression = generateBodyExpression(method.parameters);\n\tif (bodyExpression !== void 0) requestProperties.push(`body: ${bodyExpression}`);\n\tconst headersExpression = generateHeadersExpression(method.parameters);\n\tif (headersExpression !== void 0) requestProperties.push(`headers: ${headersExpression}`);\n\tif (method.responseKind === \"stream\") requestProperties.push(`responseType: \"blob\"`);\n\treturn [\n\t\t` ${method.name}(${generateParameterList(method.parameters)}) {`,\n\t\t\" return request({\",\n\t\t...requestProperties.map((property) => ` ${property},`),\n\t\t\" });\",\n\t\t\" }\"\n\t].join(\"\\n\");\n};\nvar generateControllerModule = (controller) => {\n\tconst methods = controller.methods.map(generateMethod$1).join(\"\\n\\n\");\n\treturn [\n\t\t`import '${CONFIG_VIRTUAL_MODULE_ID}';`,\n\t\t\"import { request } from 'nestbridge';\",\n\t\t\"\",\n\t\t`export class ${controller.name} {`,\n\t\t\" constructor() {}\",\n\t\t\"\",\n\t\tmethods,\n\t\t\"}\",\n\t\t\"\"\n\t].join(\"\\n\");\n};\n//#endregion\n//#region src/codegen/generate-graphql-document.ts\nvar capitalize = (value) => `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\nvar renderSelectionSet = (fields) => {\n\treturn `{ ${fields.map((field) => field.children === void 0 ? field.name : `${field.name} ${renderSelectionSet(field.children)}`).join(\" \")} }`;\n};\nvar generateGraphqlDocument = (method) => {\n\tconst variableDeclarations = method.arguments.map((argument) => `$${argument.name}: ${argument.graphqlType}`).join(\", \");\n\tconst fieldArguments = method.arguments.map((argument) => `${argument.name}: $${argument.name}`).join(\", \");\n\tconst variablesClause = variableDeclarations.length > 0 ? `(${variableDeclarations})` : \"\";\n\tconst fieldArgumentsClause = fieldArguments.length > 0 ? `(${fieldArguments})` : \"\";\n\tconst fieldSelection = method.selection.length > 0 ? ` ${renderSelectionSet(method.selection)}` : \"\";\n\treturn `${method.operationKind} ${capitalize(method.name)}${variablesClause} { ${method.operationName}${fieldArgumentsClause}${fieldSelection} }`;\n};\n//#endregion\n//#region src/codegen/generate-resolver-argument-list.ts\nvar generateResolverArgumentList = (resolverArguments) => [...resolverArguments].sort((a, b) => a.index - b.index).map((argument) => argument.parameterName).join(\", \");\n//#endregion\n//#region src/codegen/generate-resolver-module.ts\nvar generateVariablesExpression = (resolverArguments) => {\n\tif (resolverArguments.length === 0) return;\n\treturn `{ ${resolverArguments.map((argument) => `${JSON.stringify(argument.name)}: ${argument.parameterName}`).join(\", \")} }`;\n};\nvar generateMethod = (method) => {\n\tconst requestProperties = [`document: ${JSON.stringify(generateGraphqlDocument(method))}`];\n\tconst variablesExpression = generateVariablesExpression(method.arguments);\n\tif (variablesExpression !== void 0) requestProperties.push(`variables: ${variablesExpression}`);\n\treturn [\n\t\t` async ${method.name}(${generateResolverArgumentList(method.arguments)}) {`,\n\t\t\" const result = await graphqlRequest({\",\n\t\t...requestProperties.map((property) => ` ${property},`),\n\t\t\" });\",\n\t\t\"\",\n\t\t` return result.${method.operationName};`,\n\t\t\" }\"\n\t].join(\"\\n\");\n};\nvar generateResolverModule = (resolver) => {\n\tconst methods = resolver.methods.map(generateMethod).join(\"\\n\\n\");\n\treturn [\n\t\t`import '${CONFIG_VIRTUAL_MODULE_ID}';`,\n\t\t\"import { graphqlRequest } from 'nestbridge';\",\n\t\t\"\",\n\t\t`export class ${resolver.name} {`,\n\t\t\" constructor() {}\",\n\t\t\"\",\n\t\tmethods,\n\t\t\"}\",\n\t\t\"\"\n\t].join(\"\\n\");\n};\n//#endregion\n//#region src/declarations/mirror-declaration-path.ts\nvar stripLeadingParentSegments = (relativePath) => {\n\tconst segments = relativePath.split(/[\\\\/]/);\n\tconst firstOwnedIndex = segments.findIndex((segment) => segment !== \"..\");\n\treturn segments.slice(firstOwnedIndex === -1 ? segments.length : firstOwnedIndex).join(\"/\");\n};\nvar mirroredDeclarationPath = (sourceRoot, resolvedOutputDir, controllerFilePath) => {\n\tconst mirroredPath = stripLeadingParentSegments(relative(sourceRoot, controllerFilePath)).replace(/\\.ts$/, \".d.ts\");\n\treturn join(resolvedOutputDir, mirroredPath);\n};\n//#endregion\n//#region src/declarations/write-controller-declarations.ts\nvar writeControllerDeclarations = (controllers, sourceRoot, resolvedOutputDir, responseWrapper) => {\n\tfor (const controller of controllers) {\n\t\tconst outputFilePath = mirroredDeclarationPath(sourceRoot, resolvedOutputDir, controller.sourceFile);\n\t\tmkdirSync(dirname(outputFilePath), { recursive: true });\n\t\twriteFileSync(outputFilePath, generateControllerDeclaration(controller, outputFilePath, responseWrapper), \"utf-8\");\n\t}\n};\n//#endregion\n//#region src/declarations/write-error-body-declaration.ts\nvar ERROR_BODY_DECLARATION_FILE_NAME = \"nestbridge-error-body.d.ts\";\nvar errorBodyDeclarationPath = (resolvedOutputDir) => join(resolvedOutputDir, ERROR_BODY_DECLARATION_FILE_NAME);\nvar writeErrorBodyDeclaration = (resolvedOutputDir, errorResponseShape) => {\n\tconst outputFilePath = errorBodyDeclarationPath(resolvedOutputDir);\n\tif (errorResponseShape === void 0) {\n\t\trmSync(outputFilePath, { force: true });\n\t\treturn;\n\t}\n\tmkdirSync(dirname(outputFilePath), { recursive: true });\n\twriteFileSync(outputFilePath, generateErrorBodyDeclaration(errorResponseShape.errorBodyTypeSource), \"utf-8\");\n};\n//#endregion\n//#region src/declarations/write-resolver-declarations.ts\nvar writeResolverDeclarations = (resolvers, sourceRoot, resolvedOutputDir) => {\n\tfor (const resolver of resolvers) {\n\t\tconst outputFilePath = mirroredDeclarationPath(sourceRoot, resolvedOutputDir, resolver.sourceFile);\n\t\tmkdirSync(dirname(outputFilePath), { recursive: true });\n\t\twriteFileSync(outputFilePath, generateControllerDeclaration(resolver, outputFilePath), \"utf-8\");\n\t}\n};\n//#endregion\n//#region src/discovery/discover-files.ts\nvar discoverFiles = (patterns, root, exclude) => {\n\tconst matches = globSync([...patterns], {\n\t\tcwd: root,\n\t\texclude\n\t});\n\treturn [...new Set(matches.map((match) => resolve(root, match)))].sort();\n};\n//#endregion\n//#region src/discovery/discover-bootstrap-file.ts\nvar BOOTSTRAP_FILE_PATTERN = \"**/main.ts\";\nvar discoverBootstrapFile = (root, resolvedOutputDir) => {\n\tconst isExcluded = (filePath) => {\n\t\tif (filePath.split(/[\\\\/]/).includes(\"node_modules\")) return true;\n\t\tconst resolvedPath = resolve(root, filePath);\n\t\treturn resolvedPath === resolvedOutputDir || resolvedPath.startsWith(`${resolvedOutputDir}${sep}`);\n\t};\n\tconst matches = discoverFiles([BOOTSTRAP_FILE_PATTERN], root, isExcluded);\n\treturn matches.length === 1 ? matches[0] : void 0;\n};\n//#endregion\n//#region src/options/nestbridge-options.ts\nvar resolveNestBridgeOptions = (options) => ({\n\tcontrollers: Array.isArray(options.controllers) ? options.controllers : [options.controllers],\n\tresolvers: options.resolvers === void 0 ? [] : Array.isArray(options.resolvers) ? options.resolvers : [options.resolvers],\n\tbaseURL: options.baseURL,\n\tdebug: options.debug ?? false,\n\toutputDir: options.outputDir ?? \".nestbridge\",\n\troot: options.root\n});\n//#endregion\n//#region src/plugin/normalize-path.ts\nvar isWindows = process.platform === \"win32\";\nvar normalizePath = (filePath) => posix.normalize(isWindows ? filePath.replaceAll(\"\\\\\", \"/\") : filePath);\n//#endregion\n//#region src/plugin/controller-registry.ts\nvar createControllerRegistry = (patterns, root) => {\n\tconst controllersByFile = /* @__PURE__ */ new Map();\n\tconst refresh = () => {\n\t\tcontrollersByFile.clear();\n\t\tconst { controllers, diagnostics } = analyzeControllers(discoverFiles(patterns, root));\n\t\tfor (const controller of controllers) controllersByFile.set(normalizePath(controller.sourceFile), controller);\n\t\treturn {\n\t\t\tcontrollers,\n\t\t\tdiagnostics\n\t\t};\n\t};\n\treturn {\n\t\trefresh,\n\t\tget: (filePath) => controllersByFile.get(filePath),\n\t\thas: (filePath) => controllersByFile.has(filePath),\n\t\tall: () => [...controllersByFile.values()]\n\t};\n};\n//#endregion\n//#region src/plugin/resolver-registry.ts\nvar createResolverRegistry = (patterns, root) => {\n\tconst resolversByFile = /* @__PURE__ */ new Map();\n\tconst refresh = () => {\n\t\tresolversByFile.clear();\n\t\tconst { resolvers, diagnostics } = analyzeResolvers(discoverFiles(patterns, root));\n\t\tfor (const resolver of resolvers) resolversByFile.set(normalizePath(resolver.sourceFile), resolver);\n\t\treturn {\n\t\t\tresolvers,\n\t\t\tdiagnostics\n\t\t};\n\t};\n\treturn {\n\t\trefresh,\n\t\tget: (filePath) => resolversByFile.get(filePath),\n\t\thas: (filePath) => resolversByFile.has(filePath),\n\t\tall: () => [...resolversByFile.values()]\n\t};\n};\n//#endregion\n//#region src/plugin/nestbridge-unplugin-factory.ts\nvar reportDiagnostics = (diagnostics, watchMode) => {\n\tfor (const diagnostic of diagnostics) {\n\t\tconst message = formatDiagnostic(diagnostic);\n\t\tif (watchMode === false) throw new Error(message);\n\t\tconsole.warn(message);\n\t}\n};\nvar nestBridgeUnplugin = createUnplugin((options, meta) => {\n\tconst resolvedOptions = resolveNestBridgeOptions(options);\n\tlet root = resolvedOptions.root ?? process.cwd();\n\tlet bundlerRoot = root;\n\tlet controllerRegistry;\n\tlet resolverRegistry;\n\tlet bootstrapFilePath;\n\tconst log = (message) => {\n\t\tif (resolvedOptions.debug) console.log(`[nestbridge] ${message}`);\n\t};\n\tconst runAnalysis = () => {\n\t\tconst { controllers, diagnostics: controllerDiagnostics } = controllerRegistry.refresh();\n\t\tconst { resolvers, diagnostics: resolverDiagnostics } = resolverRegistry.refresh();\n\t\treportDiagnostics([...controllerDiagnostics, ...resolverDiagnostics], meta.watchMode);\n\t\tconst resolvedOutputDir = resolve(bundlerRoot, resolvedOptions.outputDir);\n\t\tconst discoveredBootstrapFile = discoverBootstrapFile(root, resolvedOutputDir);\n\t\tbootstrapFilePath = discoveredBootstrapFile !== void 0 ? normalizePath(discoveredBootstrapFile) : void 0;\n\t\tconst responseWrapper = discoveredBootstrapFile !== void 0 ? detectResponseWrapper(discoveredBootstrapFile) : void 0;\n\t\tconst errorResponseShape = discoveredBootstrapFile !== void 0 ? detectErrorResponseShape(discoveredBootstrapFile) : void 0;\n\t\twriteControllerDeclarations(controllers, root, resolvedOutputDir, responseWrapper);\n\t\twriteResolverDeclarations(resolvers, root, resolvedOutputDir);\n\t\twriteErrorBodyDeclaration(resolvedOutputDir, errorResponseShape);\n\t\tlog(`analyzed ${controllers.length} controller(s), ${resolvers.length} resolver(s), ${controllerDiagnostics.length + resolverDiagnostics.length} diagnostic(s)`);\n\t};\n\treturn {\n\t\tname: \"nestbridge\",\n\t\tenforce: \"pre\",\n\t\tbuildStart() {\n\t\t\tcontrollerRegistry = createControllerRegistry(resolvedOptions.controllers, root);\n\t\t\tresolverRegistry = createResolverRegistry(resolvedOptions.resolvers, root);\n\t\t\trunAnalysis();\n\t\t},\n\t\tresolveId(source) {\n\t\t\tif (source === \"virtual-nestbridge-config\") return RESOLVED_CONFIG_VIRTUAL_MODULE_ID;\n\t\t\treturn null;\n\t\t},\n\t\tload(id) {\n\t\t\tif (id === RESOLVED_CONFIG_VIRTUAL_MODULE_ID) return generateConfigModule(resolvedOptions);\n\t\t\treturn null;\n\t\t},\n\t\ttransform(_code, id) {\n\t\t\tconst absolutePath = normalizePath(id);\n\t\t\tconst controller = controllerRegistry.get(absolutePath);\n\t\t\tif (controller !== void 0) return generateControllerModule(controller);\n\t\t\tconst resolver = resolverRegistry.get(absolutePath);\n\t\t\tif (resolver !== void 0) return generateResolverModule(resolver);\n\t\t\treturn null;\n\t\t},\n\t\twatchChange(id) {\n\t\t\tconst changedFile = normalizePath(id);\n\t\t\tconst wasTracked = controllerRegistry.has(changedFile) || resolverRegistry.has(changedFile) || changedFile === bootstrapFilePath;\n\t\t\tconst discoveredBootstrapFile = discoverBootstrapFile(root, resolve(bundlerRoot, resolvedOptions.outputDir));\n\t\t\tconst isTrackedNow = discoverFiles(resolvedOptions.controllers, root).map(normalizePath).includes(changedFile) || discoverFiles(resolvedOptions.resolvers, root).map(normalizePath).includes(changedFile) || discoveredBootstrapFile !== void 0 && normalizePath(discoveredBootstrapFile) === changedFile;\n\t\t\tif (!wasTracked && !isTrackedNow) return;\n\t\t\trunAnalysis();\n\t\t\tlog(`nestbridge source changed: ${changedFile}`);\n\t\t},\n\t\tvite: { configResolved(config) {\n\t\t\tif (resolvedOptions.root === void 0) root = config.root;\n\t\t\tbundlerRoot = config.root;\n\t\t} },\n\t\twebpack(compiler) {\n\t\t\tbundlerRoot = compiler.options.context ?? bundlerRoot;\n\t\t}\n\t};\n});\n//#endregion\n//#region src/version.ts\nvar VERSION = \"2.1.1\";\n//#endregion\nexport { VERSION, nestBridgeUnplugin };\n\n//# sourceMappingURL=nestbridge.unplugin.js.map","{\n \"name\": \"@nestbridge/webpack\",\n \"version\": \"2.1.1\",\n \"type\": \"module\",\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/MDReal32/nestbridge.git\",\n \"directory\": \"packages/webpack\"\n },\n \"main\": \"./build/nestbridge.webpack.js\",\n \"types\": \"./build/nestbridge.webpack.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./build/nestbridge.webpack.d.ts\",\n \"import\": \"./build/nestbridge.webpack.js\"\n }\n },\n \"files\": [\n \"build\"\n ],\n \"scripts\": {\n \"build\": \"vite build\",\n \"test\": \"vitest run\",\n \"typecheck\": \"tsc -p tsconfig.json --noEmit\",\n \"lint\": \"biome check .\"\n },\n \"dependencies\": {\n \"@nestbridge/unplugin\": \"workspace:*\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^26.4.1\",\n \"esbuild-loader\": \"^4.5.0\",\n \"rolldown-plugin-dts\": \"^0.28.5\",\n \"typescript\": \"^7.0.2\",\n \"vite\": \"^8.2.2\",\n \"vitest\": \"^5.0.0\",\n \"webpack\": \"^5.110.3\"\n },\n \"peerDependencies\": {\n \"webpack\": \"^5.110.3\"\n }\n}\n","import { version } from '../package.json';\n\nexport const VERSION: string = version;\n","import { type NestBridgeOptions, nestBridgeUnplugin } from '@nestbridge/unplugin';\nimport type { WebpackPluginInstance } from 'webpack';\n\nexport type { NestBridgeOptions } from '@nestbridge/unplugin';\nexport const nestBridge: (options: NestBridgeOptions) => WebpackPluginInstance =\n nestBridgeUnplugin.webpack;\nexport { VERSION } from './version';\n"],"mappings":"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"}
1
+ {"version":3,"file":"nestbridge.webpack.js","names":[],"sources":["../../unplugin/build/nestbridge.unplugin.js","../package.json","../src/version.ts","../src/main.ts"],"sourcesContent":["import { dirname, extname, join, posix, relative, resolve, sep } from \"node:path\";\nimport { SyntaxKind, isArrayLiteralExpression, isArrayTypeNode, isArrowFunction, isBlock, isCallExpression, isClassDeclaration, isDecorator, isExportDeclaration, isExpressionStatement, isFalseLiteral, isFunctionExpression, isIdentifier, isImportDeclaration, isMethodDeclaration, isNamedExports, isNamedImports, isNewExpression, isNullLiteral, isNumericLiteral, isObjectLiteralExpression, isParenthesizedExpression, isPropertyAccessExpression, isPropertyAssignment, isPropertyDeclaration, isReturnStatement, isSpreadElement, isStringLiteral, isStringLiteralLikeNode, isTrueLiteral, isTypeReferenceNode, isUnionTypeNode, isVariableStatement } from \"typescript/unstable/ast\";\nimport { API } from \"typescript/unstable/sync\";\nimport { existsSync, globSync, mkdirSync, rmSync, writeFileSync } from \"node:fs\";\nimport { createUnplugin } from \"unplugin\";\n//#region ../core/build/nestbridge.core.js\nvar getDecorators = (node) => {\n\tconst decorators = node.modifiers?.filter(isDecorator);\n\treturn decorators === void 0 || decorators.length === 0 ? void 0 : decorators;\n};\nvar findDecorator = (node, decoratorName) => {\n\tconst decorators = getDecorators(node);\n\tif (decorators === void 0) return;\n\treturn decorators.find((decorator) => decoratorNameOf(decorator) === decoratorName);\n};\nvar findAnyDecorator = (node, decoratorNames) => {\n\tconst decorators = getDecorators(node);\n\tif (decorators === void 0) return;\n\treturn decorators.find((decorator) => decoratorNames.includes(decoratorNameOf(decorator) ?? \"\"));\n};\nvar decoratorNameOf = (decorator) => {\n\tconst expression = decorator.expression;\n\tif (isCallExpression(expression) && isIdentifier(expression.expression)) return expression.expression.text;\n\tif (isIdentifier(expression)) return expression.text;\n};\nvar readStaticStringArgument = (decorator) => {\n\tconst expression = decorator.expression;\n\tif (!isCallExpression(expression)) return {\n\t\tok: true,\n\t\tvalue: void 0\n\t};\n\tconst [firstArgument] = expression.arguments;\n\tif (firstArgument === void 0) return {\n\t\tok: true,\n\t\tvalue: void 0\n\t};\n\tif (isStringLiteralLikeNode(firstArgument)) return {\n\t\tok: true,\n\t\tvalue: firstArgument.text\n\t};\n\treturn {\n\t\tok: false,\n\t\targumentText: firstArgument.getText()\n\t};\n};\nvar HTTP_METHOD_DECORATOR_NAMES = {\n\tGet: \"GET\",\n\tPost: \"POST\",\n\tPut: \"PUT\",\n\tPatch: \"PATCH\",\n\tDelete: \"DELETE\"\n};\nvar locationOf = (sourceFile, node) => {\n\tconst { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile));\n\treturn {\n\t\tline: line + 1,\n\t\tcolumn: character + 1\n\t};\n};\nvar SUPPORTED_PARAMETER_DECORATORS = [\n\t\"Param\",\n\t\"Query\",\n\t\"Body\",\n\t\"Headers\"\n];\nvar KNOWN_UNSUPPORTED_PARAMETER_DECORATORS = [\n\t\"Req\",\n\t\"Res\",\n\t\"Request\",\n\t\"Response\"\n];\nvar extractParameterDefinition = (parameter, index, context) => {\n\tconst decorator = findAnyDecorator(parameter, [...SUPPORTED_PARAMETER_DECORATORS, ...KNOWN_UNSUPPORTED_PARAMETER_DECORATORS]);\n\tconst location = locationOf(context.sourceFile, parameter);\n\tif (decorator === void 0) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-parameter\",\n\t\t\ttitle: \"Unsupported parameter.\",\n\t\t\tcontrollerName: context.controllerName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `Parameter \"${parameter.name.getText()}\" must be decorated with one of @Param, @Query, @Body, or @Headers to be transported through a NestBridge HTTP client.`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst decoratorName = decoratorNameOf(decorator);\n\tif (decoratorName !== void 0 && KNOWN_UNSUPPORTED_PARAMETER_DECORATORS.includes(decoratorName)) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-parameter\",\n\t\t\ttitle: \"Unsupported parameter.\",\n\t\t\tcontrollerName: context.controllerName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `@${decoratorName}() cannot be transported through a NestBridge HTTP client.`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tif (!isIdentifier(parameter.name)) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-parameter\",\n\t\t\ttitle: \"Unsupported parameter.\",\n\t\t\tcontrollerName: context.controllerName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: \"Destructured parameters cannot be transported through a NestBridge HTTP client.\",\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst argument = readStaticStringArgument(decorator);\n\tif (!argument.ok) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-parameter\",\n\t\t\ttitle: \"Unsupported parameter.\",\n\t\t\tcontrollerName: context.controllerName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `@${decoratorName}() arguments must be statically analyzable string literals.`,\n\t\t\tfound: `@${decoratorName}(${argument.argumentText})`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst base = {\n\t\tindex,\n\t\tparameterName: parameter.name.text\n\t};\n\tif (decoratorName === \"Param\") {\n\t\tif (argument.value === void 0) {\n\t\t\tcontext.diagnostics.push({\n\t\t\t\tcode: \"unsupported-parameter\",\n\t\t\t\ttitle: \"Unsupported parameter.\",\n\t\t\t\tcontrollerName: context.controllerName,\n\t\t\t\tmemberName: context.methodName,\n\t\t\t\tdetail: \"A whole @Param() is not supported; provide a route parameter name such as @Param('id').\",\n\t\t\t\tfilePath: context.filePath,\n\t\t\t\tline: location.line,\n\t\t\t\tcolumn: location.column\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\treturn {\n\t\t\t...base,\n\t\t\tkind: \"param\",\n\t\t\tname: argument.value\n\t\t};\n\t}\n\tif (decoratorName === \"Headers\") {\n\t\tif (argument.value === void 0) {\n\t\t\tcontext.diagnostics.push({\n\t\t\t\tcode: \"unsupported-parameter\",\n\t\t\t\ttitle: \"Unsupported parameter.\",\n\t\t\t\tcontrollerName: context.controllerName,\n\t\t\t\tmemberName: context.methodName,\n\t\t\t\tdetail: \"A whole @Headers() is not supported; provide a header name such as @Headers('x-example').\",\n\t\t\t\tfilePath: context.filePath,\n\t\t\t\tline: location.line,\n\t\t\t\tcolumn: location.column\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\treturn {\n\t\t\t...base,\n\t\t\tkind: \"header\",\n\t\t\tname: argument.value\n\t\t};\n\t}\n\tif (decoratorName === \"Query\") return {\n\t\t...base,\n\t\tkind: \"query\",\n\t\tname: argument.value\n\t};\n\treturn {\n\t\t...base,\n\t\tkind: \"body\",\n\t\tname: argument.value\n\t};\n};\nvar PRIMITIVE_SCALAR_TYPES = {\n\tstring: \"String\",\n\tnumber: \"Float\",\n\tboolean: \"Boolean\"\n};\nvar unwrapPromise = (typeNode) => {\n\tif (isTypeReferenceNode(typeNode) && isIdentifier(typeNode.typeName) && typeNode.typeName.text === \"Promise\" && typeNode.typeArguments?.[0] !== void 0) return unwrapPromise(typeNode.typeArguments[0]);\n\treturn typeNode;\n};\nvar unwrapNullable = (typeNode) => {\n\tif (!isUnionTypeNode(typeNode)) return {\n\t\tinner: typeNode,\n\t\tisNullable: false\n\t};\n\tconst nonNullMembers = typeNode.types.filter((member) => member.kind !== SyntaxKind.NullKeyword && member.kind !== SyntaxKind.UndefinedKeyword);\n\tconst [onlyMember] = nonNullMembers;\n\tif (nonNullMembers.length !== 1 || onlyMember === void 0) return {\n\t\tinner: typeNode,\n\t\tisNullable: nonNullMembers.length !== typeNode.types.length\n\t};\n\treturn {\n\t\tinner: onlyMember,\n\t\tisNullable: true\n\t};\n};\nvar unwrapArrayElement = (typeNode) => {\n\tif (isArrayTypeNode(typeNode)) return typeNode.elementType;\n\tif (isTypeReferenceNode(typeNode) && isIdentifier(typeNode.typeName) && typeNode.typeName.text === \"Array\" && typeNode.typeArguments?.[0] !== void 0) return typeNode.typeArguments[0];\n};\nvar identifierTextOf = (typeNode) => {\n\tif (isTypeReferenceNode(typeNode) && isIdentifier(typeNode.typeName)) return typeNode.typeName.text;\n\tswitch (typeNode.kind) {\n\t\tcase SyntaxKind.StringKeyword: return \"string\";\n\t\tcase SyntaxKind.NumberKeyword: return \"number\";\n\t\tcase SyntaxKind.BooleanKeyword: return \"boolean\";\n\t\tdefault: return;\n\t}\n};\nvar unwrapTypeNode = (typeNode) => {\n\tconst { inner: withoutNullable, isNullable } = unwrapNullable(unwrapPromise(typeNode));\n\tconst arrayElement = unwrapArrayElement(withoutNullable);\n\tconst identifierText = identifierTextOf(arrayElement === void 0 ? withoutNullable : unwrapNullable(arrayElement).inner);\n\tif (identifierText === void 0) return;\n\treturn {\n\t\tidentifierText,\n\t\tisArray: arrayElement !== void 0,\n\t\tisNullable\n\t};\n};\nvar graphqlScalarNameFor = (identifierText) => PRIMITIVE_SCALAR_TYPES[identifierText] ?? identifierText;\nvar graphqlTypeStringFor = (unwrapped, explicitTypeName) => {\n\tconst baseName = explicitTypeName ?? graphqlScalarNameFor(unwrapped.identifierText);\n\tconst wrapped = unwrapped.isArray ? `[${baseName}!]` : baseName;\n\treturn unwrapped.isNullable ? wrapped : `${wrapped}!`;\n};\nvar OBSERVABLE_TYPE_NAME = \"Observable\";\nvar STREAMABLE_FILE_TYPE_NAME = \"StreamableFile\";\nvar readResponseKind = (returnType) => {\n\tif (returnType === void 0) return \"json\";\n\tconst unwrapped = unwrapPromise(returnType);\n\tif (!isTypeReferenceNode(unwrapped) || !isIdentifier(unwrapped.typeName)) return \"json\";\n\tif (unwrapped.typeName.text === OBSERVABLE_TYPE_NAME) return \"observable\";\n\tif (unwrapped.typeName.text === STREAMABLE_FILE_TYPE_NAME) return \"stream\";\n\treturn \"json\";\n};\nvar trimSlashes = (segment) => segment.replace(/^\\/+/, \"\").replace(/\\/+$/, \"\");\nvar joinRoutePath = (controllerPath, methodPath) => {\n\treturn `/${[trimSlashes(controllerPath), trimSlashes(methodPath ?? \"\")].filter((segment) => segment.length > 0).join(\"/\")}`;\n};\nvar extractMethodDefinition = (method, context) => {\n\tconst decorator = findAnyDecorator(method, Object.keys(HTTP_METHOD_DECORATOR_NAMES));\n\tif (decorator === void 0) return;\n\tconst methodName = method.name.getText();\n\tconst decoratorName = decoratorNameOf(decorator);\n\tconst location = locationOf(context.sourceFile, method);\n\tif (decoratorName === void 0) return;\n\tconst httpMethod = HTTP_METHOD_DECORATOR_NAMES[decoratorName];\n\tif (httpMethod === void 0) return;\n\tconst routeArgument = readStaticStringArgument(decorator);\n\tif (!routeArgument.ok) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-route\",\n\t\t\ttitle: \"Unsupported route.\",\n\t\t\tcontrollerName: context.controllerName,\n\t\t\tmemberName: methodName,\n\t\t\tdetail: \"Route paths must be statically analyzable.\",\n\t\t\tfound: `@${decoratorName}(${routeArgument.argumentText})`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst parameters = method.parameters.map((parameter, index) => extractParameterDefinition(parameter, index, {\n\t\tsourceFile: context.sourceFile,\n\t\tfilePath: context.filePath,\n\t\tcontrollerName: context.controllerName,\n\t\tmethodName,\n\t\tdiagnostics: context.diagnostics\n\t}));\n\tif (parameters.some((parameter) => parameter === void 0)) return;\n\treturn {\n\t\tname: methodName,\n\t\thttpMethod,\n\t\tpath: joinRoutePath(context.controllerPath, routeArgument.value),\n\t\tparameters: parameters.filter((parameter) => parameter !== void 0),\n\t\tresponseKind: readResponseKind(method.type),\n\t\tline: location.line,\n\t\tcolumn: location.column\n\t};\n};\nvar extractControllerDefinition = (classDeclaration, sourceFile, filePath, diagnostics) => {\n\tconst controllerName = classDeclaration.name?.text ?? \"(anonymous controller)\";\n\tconst decorator = findDecorator(classDeclaration, \"Controller\");\n\tif (decorator === void 0) return;\n\tconst location = locationOf(sourceFile, classDeclaration);\n\tconst argument = readStaticStringArgument(decorator);\n\tif (!argument.ok) {\n\t\tdiagnostics.push({\n\t\t\tcode: \"unsupported-route\",\n\t\t\ttitle: \"Unsupported route.\",\n\t\t\tcontrollerName,\n\t\t\tmemberName: \"\",\n\t\t\tdetail: \"Controller paths must be statically analyzable.\",\n\t\t\tfound: `@Controller(${argument.argumentText})`,\n\t\t\tfilePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst methods = classDeclaration.members.filter((member) => isMethodDeclaration(member)).map((method) => extractMethodDefinition(method, {\n\t\tsourceFile,\n\t\tfilePath,\n\t\tcontrollerName,\n\t\tcontrollerPath: argument.value ?? \"\",\n\t\tdiagnostics\n\t})).filter((method) => method !== void 0);\n\treturn {\n\t\tname: controllerName,\n\t\tpath: argument.value ?? \"\",\n\t\tsourceFile: filePath,\n\t\tmethods\n\t};\n};\nvar findControllerClasses = (sourceFile) => {\n\treturn sourceFile.statements.filter((statement) => isClassDeclaration(statement) && findDecorator(statement, \"Controller\") !== void 0);\n};\nvar sharedApi;\nvar parseSourceFile = (filePath) => {\n\tsharedApi ??= new API();\n\tsharedApi.updateSnapshot({ closeFiles: [filePath] });\n\tconst sourceFile = sharedApi.updateSnapshot({\n\t\topenFiles: [filePath],\n\t\tfileChanges: { changed: [filePath] }\n\t}).getDefaultProjectForFile(filePath)?.program.getSourceFile(filePath);\n\tif (sourceFile === void 0) throw new Error(`Unable to parse source file: ${filePath}`);\n\treturn sourceFile;\n};\nvar analyzeControllers = (filePaths) => {\n\tconst diagnostics = [];\n\tconst controllers = [];\n\tfor (const filePath of filePaths) {\n\t\tconst sourceFile = parseSourceFile(filePath);\n\t\tfor (const classDeclaration of findControllerClasses(sourceFile)) {\n\t\t\tconst controller = extractControllerDefinition(classDeclaration, sourceFile, filePath, diagnostics);\n\t\t\tif (controller !== void 0) controllers.push(controller);\n\t\t}\n\t}\n\treturn {\n\t\tcontrollers,\n\t\tdiagnostics\n\t};\n};\nvar GRAPHQL_OPERATION_DECORATOR_NAMES = {\n\tQuery: \"query\",\n\tMutation: \"mutation\"\n};\nvar readTypeThunkExpression = (thunk) => {\n\tif (!isBlock(thunk.body)) return thunk.body;\n\treturn thunk.body.statements.find(isReturnStatement)?.expression;\n};\nvar readArgsTypeOption = (decorator) => {\n\tif (!isCallExpression(decorator.expression)) return;\n\tconst optionsArgument = decorator.expression.arguments.find(isObjectLiteralExpression);\n\tif (optionsArgument === void 0) return;\n\tconst typeProperty = optionsArgument.properties.find((property) => isPropertyAssignment(property) && isIdentifier(property.name) && property.name.text === \"type\");\n\tif (typeProperty === void 0) return;\n\tconst thunk = typeProperty.initializer;\n\tif (!isArrowFunction(thunk) && !isFunctionExpression(thunk)) return;\n\tconst returnedExpression = readTypeThunkExpression(thunk);\n\tif (returnedExpression === void 0) return;\n\tif (isArrayLiteralExpression(returnedExpression)) {\n\t\tconst element = returnedExpression.elements[0];\n\t\treturn element !== void 0 && isIdentifier(element) ? {\n\t\t\ttypeName: element.text,\n\t\t\tisArray: true\n\t\t} : void 0;\n\t}\n\treturn isIdentifier(returnedExpression) ? {\n\t\ttypeName: returnedExpression.text,\n\t\tisArray: false\n\t} : void 0;\n};\nvar extractResolverArgumentDefinition = (parameter, index, context) => {\n\tconst decorator = findAnyDecorator(parameter, [\"Args\"]);\n\tconst location = locationOf(context.sourceFile, parameter);\n\tif (decorator === void 0) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-argument\",\n\t\t\ttitle: \"Unsupported argument.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `Parameter \"${parameter.name.getText()}\" must be decorated with @Args to be transported through a NestBridge GraphQL client.`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tif (!isIdentifier(parameter.name)) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-argument\",\n\t\t\ttitle: \"Unsupported argument.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: \"Destructured parameters cannot be transported through a NestBridge GraphQL client.\",\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst nameArgument = readStaticStringArgument(decorator);\n\tif (!nameArgument.ok) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-argument\",\n\t\t\ttitle: \"Unsupported argument.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: \"@Args() name must be a statically analyzable string literal.\",\n\t\t\tfound: `@Args(${nameArgument.argumentText})`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tif (nameArgument.value === void 0) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-argument\",\n\t\t\ttitle: \"Unsupported argument.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: \"A whole @Args() is not supported; provide an argument name such as @Args('id').\",\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tif (parameter.type === void 0) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-argument\",\n\t\t\ttitle: \"Unsupported argument.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `@Args() parameter \"${parameter.name.text}\" needs an explicit type annotation.`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst unwrapped = unwrapTypeNode(parameter.type);\n\tif (unwrapped === void 0) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-argument\",\n\t\t\ttitle: \"Unsupported argument.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `@Args() parameter \"${parameter.name.text}\" has a type NestBridge cannot statically resolve to a GraphQL type.`,\n\t\t\tfound: parameter.type.getText(),\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst explicitType = readArgsTypeOption(decorator);\n\treturn {\n\t\tindex,\n\t\tparameterName: parameter.name.text,\n\t\tname: nameArgument.value,\n\t\tgraphqlType: graphqlTypeStringFor(unwrapped, explicitType?.typeName)\n\t};\n};\nvar parsedFilesByPath = /* @__PURE__ */ new Map();\nvar parseFile = (filePath) => {\n\tconst cached = parsedFilesByPath.get(filePath);\n\tif (cached !== void 0) return cached;\n\tconst sourceFile = parseSourceFile(filePath);\n\tparsedFilesByPath.set(filePath, sourceFile);\n\treturn sourceFile;\n};\nvar resolveModuleFile = (fromFilePath, moduleSpecifierText) => {\n\tif (!moduleSpecifierText.startsWith(\".\")) return;\n\tconst base = resolve(dirname(fromFilePath), moduleSpecifierText);\n\treturn [\n\t\t`${base}.ts`,\n\t\t`${base}.tsx`,\n\t\tresolve(base, \"index.ts\")\n\t].find((candidate) => existsSync(candidate));\n};\nvar findExportedDeclaration = (sourceFile, name) => sourceFile.statements.find((statement) => isClassDeclaration(statement) && statement.name?.text === name);\nvar findImportSource = (sourceFile, localName) => {\n\tfor (const statement of sourceFile.statements) {\n\t\tif (!isImportDeclaration(statement) || !isStringLiteralLikeNode(statement.moduleSpecifier)) continue;\n\t\tconst namedBindings = statement.importClause?.namedBindings;\n\t\tif (namedBindings === void 0 || !isNamedImports(namedBindings)) continue;\n\t\tconst element = namedBindings.elements.find((candidate) => candidate.name.text === localName);\n\t\tif (element !== void 0) return {\n\t\t\tmoduleSpecifierText: statement.moduleSpecifier.text,\n\t\t\timportedName: element.propertyName?.text ?? element.name.text\n\t\t};\n\t}\n};\nvar findReExportSource = (sourceFile, name) => {\n\tfor (const statement of sourceFile.statements) {\n\t\tif (!isExportDeclaration(statement) || statement.moduleSpecifier === void 0 || !isStringLiteralLikeNode(statement.moduleSpecifier)) continue;\n\t\tif (statement.exportClause === void 0) return statement.moduleSpecifier.text;\n\t\tif (isNamedExports(statement.exportClause) && statement.exportClause.elements.some((element) => (element.propertyName?.text ?? element.name.text) === name)) return statement.moduleSpecifier.text;\n\t}\n};\nvar resolveClassDeclaration = (name, fromSourceFile, fromFilePath, visited = /* @__PURE__ */ new Set()) => {\n\tif (visited.has(fromFilePath)) return;\n\tvisited.add(fromFilePath);\n\tconst direct = findExportedDeclaration(fromSourceFile, name);\n\tif (direct !== void 0) return {\n\t\tclassDeclaration: direct,\n\t\tsourceFile: fromSourceFile,\n\t\tfilePath: fromFilePath\n\t};\n\tconst importSource = findImportSource(fromSourceFile, name);\n\tif (importSource !== void 0) {\n\t\tconst resolvedPath = resolveModuleFile(fromFilePath, importSource.moduleSpecifierText);\n\t\tif (resolvedPath !== void 0) {\n\t\t\tconst nextSourceFile = parseFile(resolvedPath);\n\t\t\tconst result = resolveClassDeclaration(importSource.importedName, nextSourceFile, resolvedPath, visited);\n\t\t\tif (result !== void 0) return result;\n\t\t}\n\t}\n\tconst reExportModuleSpecifierText = findReExportSource(fromSourceFile, name);\n\tif (reExportModuleSpecifierText !== void 0) {\n\t\tconst resolvedPath = resolveModuleFile(fromFilePath, reExportModuleSpecifierText);\n\t\tif (resolvedPath !== void 0) return resolveClassDeclaration(name, parseFile(resolvedPath), resolvedPath, visited);\n\t}\n};\nvar PRIMITIVE_SCALAR_NAMES$1 = /* @__PURE__ */ new Set([\n\t\"string\",\n\t\"number\",\n\t\"boolean\"\n]);\nvar extractSelectionFields = (classDeclaration, sourceFile, filePath, context) => {\n\tconst typeName = classDeclaration.name?.text ?? \"(anonymous type)\";\n\tconst location = locationOf(sourceFile, classDeclaration);\n\tif (context.visitedTypeNames.has(typeName)) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"circular-type\",\n\t\t\ttitle: \"Circular type.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: context.methodName,\n\t\t\tdetail: `Type \"${typeName}\" references itself, directly or indirectly. NestBridge cannot build a finite GraphQL selection set for it.`,\n\t\t\tfilePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst nextVisited = new Set(context.visitedTypeNames).add(typeName);\n\tconst properties = classDeclaration.members.filter((member) => isPropertyDeclaration(member) && findDecorator(member, \"Field\") !== void 0);\n\tconst fields = [];\n\tfor (const property of properties) {\n\t\tif (!isIdentifier(property.name)) continue;\n\t\tconst fieldName = property.name.text;\n\t\tconst fieldLocation = locationOf(sourceFile, property);\n\t\tif (property.type === void 0) {\n\t\t\tcontext.diagnostics.push({\n\t\t\t\tcode: \"unsupported-return-type\",\n\t\t\t\ttitle: \"Unsupported field type.\",\n\t\t\t\tcontrollerName: context.resolverName,\n\t\t\t\tmemberName: context.methodName,\n\t\t\t\tdetail: `Field \"${fieldName}\" on \"${typeName}\" needs an explicit type annotation.`,\n\t\t\t\tfilePath,\n\t\t\t\tline: fieldLocation.line,\n\t\t\t\tcolumn: fieldLocation.column\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst unwrapped = unwrapTypeNode(property.type);\n\t\tif (unwrapped === void 0) {\n\t\t\tcontext.diagnostics.push({\n\t\t\t\tcode: \"unsupported-return-type\",\n\t\t\t\ttitle: \"Unsupported field type.\",\n\t\t\t\tcontrollerName: context.resolverName,\n\t\t\t\tmemberName: context.methodName,\n\t\t\t\tdetail: `Field \"${fieldName}\" on \"${typeName}\" has a type NestBridge cannot statically resolve.`,\n\t\t\t\tfound: property.type.getText(),\n\t\t\t\tfilePath,\n\t\t\t\tline: fieldLocation.line,\n\t\t\t\tcolumn: fieldLocation.column\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (PRIMITIVE_SCALAR_NAMES$1.has(unwrapped.identifierText)) {\n\t\t\tfields.push({ name: fieldName });\n\t\t\tcontinue;\n\t\t}\n\t\tconst resolved = resolveClassDeclaration(unwrapped.identifierText, sourceFile, filePath);\n\t\tif (resolved === void 0) {\n\t\t\tfields.push({ name: fieldName });\n\t\t\tcontinue;\n\t\t}\n\t\tif (findDecorator(resolved.classDeclaration, \"ObjectType\") === void 0) {\n\t\t\tcontext.diagnostics.push({\n\t\t\t\tcode: \"unsupported-return-type\",\n\t\t\t\ttitle: \"Unsupported field type.\",\n\t\t\t\tcontrollerName: context.resolverName,\n\t\t\t\tmemberName: context.methodName,\n\t\t\t\tdetail: `Field \"${fieldName}\" on \"${typeName}\" resolves to class \"${unwrapped.identifierText}\", which is not decorated with @ObjectType(). NestBridge cannot build a GraphQL selection set for it.`,\n\t\t\t\tfilePath,\n\t\t\t\tline: fieldLocation.line,\n\t\t\t\tcolumn: fieldLocation.column\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst children = extractSelectionFields(resolved.classDeclaration, resolved.sourceFile, resolved.filePath, {\n\t\t\t...context,\n\t\t\tvisitedTypeNames: nextVisited\n\t\t});\n\t\tif (children === void 0) return;\n\t\tfields.push({\n\t\t\tname: fieldName,\n\t\t\tchildren\n\t\t});\n\t}\n\treturn fields;\n};\nvar readNameFromOptions = (optionsArgument) => {\n\tconst nameProperty = optionsArgument.properties.find((property) => isPropertyAssignment(property) && isIdentifier(property.name) && property.name.text === \"name\");\n\tif (nameProperty === void 0 || !isStringLiteralLikeNode(nameProperty.initializer)) return;\n\treturn nameProperty.initializer.text;\n};\nvar readGraphqlOperationName = (decorator) => {\n\tconst expression = decorator.expression;\n\tif (!isCallExpression(expression)) return {\n\t\tok: true,\n\t\tvalue: void 0\n\t};\n\tlet value;\n\tfor (const argument of expression.arguments) {\n\t\tif (isArrowFunction(argument) || isFunctionExpression(argument)) continue;\n\t\tif (isStringLiteralLikeNode(argument)) {\n\t\t\tvalue = argument.text;\n\t\t\tcontinue;\n\t\t}\n\t\tif (isObjectLiteralExpression(argument)) {\n\t\t\tvalue = readNameFromOptions(argument) ?? value;\n\t\t\tcontinue;\n\t\t}\n\t\treturn {\n\t\t\tok: false,\n\t\t\targumentText: argument.getText()\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tvalue\n\t};\n};\nvar readGraphqlReturnTypeOption = (decorator) => {\n\tif (!isCallExpression(decorator.expression)) return;\n\tconst thunk = decorator.expression.arguments.find((argument) => isArrowFunction(argument) || isFunctionExpression(argument));\n\tif (thunk === void 0) return;\n\tconst returnedExpression = readTypeThunkExpression(thunk);\n\tif (returnedExpression === void 0) return;\n\tif (isArrayLiteralExpression(returnedExpression)) {\n\t\tconst element = returnedExpression.elements[0];\n\t\treturn element !== void 0 && isIdentifier(element) ? element.text : void 0;\n\t}\n\treturn isIdentifier(returnedExpression) ? returnedExpression.text : void 0;\n};\nvar PRIMITIVE_SCALAR_NAMES = /* @__PURE__ */ new Set([\n\t\"string\",\n\t\"number\",\n\t\"boolean\"\n]);\nvar extractResolverMethodDefinition = (method, context) => {\n\tconst decorator = findAnyDecorator(method, Object.keys(GRAPHQL_OPERATION_DECORATOR_NAMES));\n\tif (decorator === void 0) return;\n\tconst methodName = method.name.getText();\n\tconst decoratorName = decoratorNameOf(decorator);\n\tconst location = locationOf(context.sourceFile, method);\n\tif (decoratorName === void 0) return;\n\tconst operationKind = GRAPHQL_OPERATION_DECORATOR_NAMES[decoratorName];\n\tif (operationKind === void 0) return;\n\tconst nameArgument = readGraphqlOperationName(decorator);\n\tif (!nameArgument.ok) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-route\",\n\t\t\ttitle: \"Unsupported operation name.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: methodName,\n\t\t\tdetail: \"GraphQL operation names must be statically analyzable string literals.\",\n\t\t\tfound: `@${decoratorName}(${nameArgument.argumentText})`,\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tconst decoratorReturnType = readGraphqlReturnTypeOption(decorator);\n\tconst identifierText = decoratorReturnType ?? (method.type === void 0 ? void 0 : unwrapTypeNode(method.type)?.identifierText);\n\tif (identifierText === void 0) {\n\t\tcontext.diagnostics.push({\n\t\t\tcode: \"unsupported-return-type\",\n\t\t\ttitle: \"Unsupported return type.\",\n\t\t\tcontrollerName: context.resolverName,\n\t\t\tmemberName: methodName,\n\t\t\tdetail: \"GraphQL resolver methods need a type thunk on @Query()/@Mutation() (e.g. \\\"() => UserType\\\") or an explicit return type annotation so NestBridge can build a selection set.\",\n\t\t\tfilePath: context.filePath,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t});\n\t\treturn;\n\t}\n\tlet selection = [];\n\tif (!PRIMITIVE_SCALAR_NAMES.has(identifierText.toLowerCase())) {\n\t\tconst resolved = resolveClassDeclaration(identifierText, context.sourceFile, context.filePath);\n\t\tif (resolved === void 0 && decoratorReturnType === void 0) {\n\t\t\tcontext.diagnostics.push({\n\t\t\t\tcode: \"unsupported-return-type\",\n\t\t\t\ttitle: \"Unsupported return type.\",\n\t\t\t\tcontrollerName: context.resolverName,\n\t\t\t\tmemberName: methodName,\n\t\t\t\tdetail: `NestBridge could not locate the declaration of type \"${identifierText}\".`,\n\t\t\t\tfilePath: context.filePath,\n\t\t\t\tline: location.line,\n\t\t\t\tcolumn: location.column\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (resolved !== void 0) {\n\t\t\tconst fields = extractSelectionFields(resolved.classDeclaration, resolved.sourceFile, resolved.filePath, {\n\t\t\t\tresolverName: context.resolverName,\n\t\t\t\tmethodName,\n\t\t\t\tdiagnostics: context.diagnostics,\n\t\t\t\tvisitedTypeNames: /* @__PURE__ */ new Set()\n\t\t\t});\n\t\t\tif (fields === void 0) return;\n\t\t\tselection = fields;\n\t\t}\n\t}\n\tconst args = method.parameters.map((parameter, index) => extractResolverArgumentDefinition(parameter, index, {\n\t\tsourceFile: context.sourceFile,\n\t\tfilePath: context.filePath,\n\t\tresolverName: context.resolverName,\n\t\tmethodName,\n\t\tdiagnostics: context.diagnostics\n\t}));\n\tif (args.some((argument) => argument === void 0)) return;\n\treturn {\n\t\tname: methodName,\n\t\toperationKind,\n\t\toperationName: nameArgument.value ?? methodName,\n\t\targuments: args.filter((argument) => argument !== void 0),\n\t\tselection,\n\t\tline: location.line,\n\t\tcolumn: location.column\n\t};\n};\nvar extractResolverDefinition = (classDeclaration, sourceFile, filePath, diagnostics) => {\n\tconst resolverName = classDeclaration.name?.text ?? \"(anonymous resolver)\";\n\treturn {\n\t\tname: resolverName,\n\t\tsourceFile: filePath,\n\t\tmethods: classDeclaration.members.filter((member) => isMethodDeclaration(member)).map((method) => extractResolverMethodDefinition(method, {\n\t\t\tsourceFile,\n\t\t\tfilePath,\n\t\t\tresolverName,\n\t\t\tdiagnostics\n\t\t})).filter((method) => method !== void 0)\n\t};\n};\nvar findResolverClasses = (sourceFile) => {\n\treturn sourceFile.statements.filter((statement) => isClassDeclaration(statement) && findDecorator(statement, \"Resolver\") !== void 0);\n};\nvar analyzeResolvers = (filePaths) => {\n\tconst diagnostics = [];\n\tconst resolvers = [];\n\tfor (const filePath of filePaths) {\n\t\tconst sourceFile = parseSourceFile(filePath);\n\t\tfor (const classDeclaration of findResolverClasses(sourceFile)) {\n\t\t\tconst resolver = extractResolverDefinition(classDeclaration, sourceFile, filePath, diagnostics);\n\t\t\tif (resolver !== void 0) resolvers.push(resolver);\n\t\t}\n\t}\n\treturn {\n\t\tresolvers,\n\t\tdiagnostics\n\t};\n};\nvar MODULE_DECORATOR_NAME = \"Module\";\nvar PROVIDERS_PROPERTY_NAME = \"providers\";\nvar PROVIDE_PROPERTY_NAME = \"provide\";\nvar USE_CLASS_PROPERTY_NAME = \"useClass\";\nvar APP_FILTER_LOCAL_NAME = \"APP_FILTER\";\nvar NEST_CORE_MODULE_SPECIFIER$1 = \"@nestjs/core\";\nvar findAppFilterProviderClassName = (moduleClassDeclaration, moduleSourceFile) => {\n\tconst moduleDecorator = findDecorator(moduleClassDeclaration, MODULE_DECORATOR_NAME);\n\tif (moduleDecorator === void 0 || !isCallExpression(moduleDecorator.expression)) return;\n\tconst [moduleOptions] = moduleDecorator.expression.arguments;\n\tif (moduleOptions === void 0 || !isObjectLiteralExpression(moduleOptions)) return;\n\tconst providersProperty = moduleOptions.properties.find((property) => isPropertyAssignment(property) && isIdentifier(property.name) && property.name.text === PROVIDERS_PROPERTY_NAME);\n\tif (providersProperty === void 0 || !isArrayLiteralExpression(providersProperty.initializer)) return;\n\tconst appFilterImportSource = findImportSource(moduleSourceFile, APP_FILTER_LOCAL_NAME);\n\tif (appFilterImportSource === void 0 || appFilterImportSource.moduleSpecifierText !== NEST_CORE_MODULE_SPECIFIER$1) return;\n\tconst classNames = /* @__PURE__ */ new Set();\n\tfor (const element of providersProperty.initializer.elements) {\n\t\tif (isSpreadElement(element)) return;\n\t\tif (!isObjectLiteralExpression(element)) continue;\n\t\tconst provideProperty = element.properties.find((property) => isPropertyAssignment(property) && isIdentifier(property.name) && property.name.text === PROVIDE_PROPERTY_NAME);\n\t\tif (provideProperty === void 0 || !isIdentifier(provideProperty.initializer) || provideProperty.initializer.text !== APP_FILTER_LOCAL_NAME) continue;\n\t\tconst useClassProperty = element.properties.find((property) => isPropertyAssignment(property) && isIdentifier(property.name) && property.name.text === USE_CLASS_PROPERTY_NAME);\n\t\tif (useClassProperty === void 0 || !isIdentifier(useClassProperty.initializer)) return;\n\t\tclassNames.add(useClassProperty.initializer.text);\n\t}\n\treturn classNames.size === 1 ? [...classNames][0] : void 0;\n};\nvar USE_GLOBAL_FILTERS_METHOD_NAME = \"useGlobalFilters\";\nvar collectUseGlobalFiltersCalls = (node, calls) => {\n\tif (isCallExpression(node) && isPropertyAccessExpression(node.expression) && node.expression.name.text === USE_GLOBAL_FILTERS_METHOD_NAME) calls.push(node);\n\tnode.forEachChild((child) => {\n\t\tcollectUseGlobalFiltersCalls(child, calls);\n\t});\n};\nvar findGlobalFilterClassName = (sourceFile) => {\n\tconst calls = [];\n\tcollectUseGlobalFiltersCalls(sourceFile, calls);\n\tif (calls.length === 0) return;\n\tconst classNames = /* @__PURE__ */ new Set();\n\tfor (const call of calls) for (const argument of call.arguments) {\n\t\tif (!isNewExpression(argument) || !isIdentifier(argument.expression)) return;\n\t\tclassNames.add(argument.expression.text);\n\t}\n\treturn classNames.size === 1 ? [...classNames][0] : void 0;\n};\nvar NEST_FACTORY_LOCAL_NAME = \"NestFactory\";\nvar NEST_FACTORY_CREATE_METHOD_NAME = \"create\";\nvar NEST_CORE_MODULE_SPECIFIER = \"@nestjs/core\";\nvar collectNestFactoryCreateCalls = (node, calls) => {\n\tif (isCallExpression(node) && isPropertyAccessExpression(node.expression) && isIdentifier(node.expression.expression) && node.expression.expression.text === NEST_FACTORY_LOCAL_NAME && node.expression.name.text === NEST_FACTORY_CREATE_METHOD_NAME) calls.push(node);\n\tnode.forEachChild((child) => {\n\t\tcollectNestFactoryCreateCalls(child, calls);\n\t});\n};\nvar findRootModuleClassName = (sourceFile) => {\n\tconst nestFactoryImportSource = findImportSource(sourceFile, NEST_FACTORY_LOCAL_NAME);\n\tif (nestFactoryImportSource === void 0 || nestFactoryImportSource.moduleSpecifierText !== NEST_CORE_MODULE_SPECIFIER) return;\n\tconst calls = [];\n\tcollectNestFactoryCreateCalls(sourceFile, calls);\n\tif (calls.length !== 1) return;\n\tconst [call] = calls;\n\tif (call === void 0) return;\n\tconst [moduleArgument] = call.arguments;\n\treturn moduleArgument !== void 0 && isIdentifier(moduleArgument) ? moduleArgument.text : void 0;\n};\nvar RESPONSE_BODY_CALL_NAMES = /* @__PURE__ */ new Set([\"json\", \"send\"]);\nvar matchResponseBodyArgument = (expression) => {\n\tif (!isCallExpression(expression) || !isPropertyAccessExpression(expression.expression) || !RESPONSE_BODY_CALL_NAMES.has(expression.expression.name.text) || expression.arguments.length !== 1) return;\n\tconst [argument] = expression.arguments;\n\treturn argument;\n};\nvar resolveCatchMethodBody = (catchMethod) => {\n\tconst [exceptionParameter] = catchMethod.parameters;\n\tif (exceptionParameter === void 0 || !isIdentifier(exceptionParameter.name)) return;\n\tconst body = catchMethod.body;\n\tif (body === void 0) return;\n\tconst localDeclarations = /* @__PURE__ */ new Map();\n\tlet responseBodyArgument;\n\tlet sawResponseCall = false;\n\tlet sawTrailingReturn = false;\n\tfor (const statement of body.statements) {\n\t\tif (sawTrailingReturn) return;\n\t\tif (!sawResponseCall && isVariableStatement(statement)) {\n\t\t\tfor (const declaration of statement.declarationList.declarations) {\n\t\t\t\tif (!isIdentifier(declaration.name) || declaration.initializer === void 0) return;\n\t\t\t\tlocalDeclarations.set(declaration.name.text, declaration.initializer);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (!sawResponseCall && isExpressionStatement(statement)) {\n\t\t\tconst argument = matchResponseBodyArgument(statement.expression);\n\t\t\tif (argument === void 0) return;\n\t\t\tresponseBodyArgument = argument;\n\t\t\tsawResponseCall = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (sawResponseCall && isReturnStatement(statement) && statement.expression === void 0) {\n\t\t\tsawTrailingReturn = true;\n\t\t\tcontinue;\n\t\t}\n\t\treturn;\n\t}\n\tif (!sawResponseCall || responseBodyArgument === void 0) return;\n\treturn {\n\t\texceptionParameterName: exceptionParameter.name.text,\n\t\tlocalDeclarations,\n\t\tresponseBodyArgument\n\t};\n};\nvar EXCEPTION_MESSAGE_MEMBER_NAME = \"message\";\nvar EXCEPTION_STATUS_METHOD_NAME = \"getStatus\";\nvar resolvesToExceptionParameter = (expression, exceptionParameterName, localDeclarations, visited) => {\n\tif (!isIdentifier(expression)) return false;\n\tif (expression.text === exceptionParameterName) return true;\n\tif (visited.has(expression.text)) return false;\n\tvisited.add(expression.text);\n\tconst aliasedExpression = localDeclarations.get(expression.text);\n\treturn aliasedExpression !== void 0 ? resolvesToExceptionParameter(aliasedExpression, exceptionParameterName, localDeclarations, visited) : false;\n};\nvar synthesizeErrorValueType = (expression, exceptionParameterName, localDeclarations) => {\n\tif (isPropertyAccessExpression(expression) && expression.name.text === EXCEPTION_MESSAGE_MEMBER_NAME && resolvesToExceptionParameter(expression.expression, exceptionParameterName, localDeclarations, /* @__PURE__ */ new Set())) return \"string\";\n\tif (isCallExpression(expression) && expression.arguments.length === 0 && isPropertyAccessExpression(expression.expression) && expression.expression.name.text === EXCEPTION_STATUS_METHOD_NAME && resolvesToExceptionParameter(expression.expression.expression, exceptionParameterName, localDeclarations, /* @__PURE__ */ new Set())) return \"number\";\n\tif (isObjectLiteralExpression(expression)) {\n\t\tconst memberTypes = [];\n\t\tfor (const property of expression.properties) {\n\t\t\tif (!isPropertyAssignment(property) || !(isIdentifier(property.name) || isStringLiteral(property.name))) return;\n\t\t\tconst valueType = synthesizeErrorValueType(property.initializer, exceptionParameterName, localDeclarations);\n\t\t\tif (valueType === void 0) return;\n\t\t\tmemberTypes.push(`${property.name.text}: ${valueType}`);\n\t\t}\n\t\treturn `{ ${memberTypes.join(\"; \")} }`;\n\t}\n\tif (isStringLiteral(expression)) return \"string\";\n\tif (isNumericLiteral(expression)) return \"number\";\n\tif (isTrueLiteral(expression) || isFalseLiteral(expression)) return \"boolean\";\n\tif (isNullLiteral(expression)) return \"null\";\n\tif (isIdentifier(expression)) {\n\t\tconst aliasedExpression = localDeclarations.get(expression.text);\n\t\treturn aliasedExpression !== void 0 ? synthesizeErrorValueType(aliasedExpression, exceptionParameterName, localDeclarations) : void 0;\n\t}\n};\nvar synthesizeErrorBodyType = (objectLiteral, exceptionParameterName, localDeclarations) => synthesizeErrorValueType(objectLiteral, exceptionParameterName, localDeclarations);\nvar CATCH_DECORATOR_NAME = \"Catch\";\nvar CATCH_METHOD_NAME = \"catch\";\nvar findCatchMethod = (members) => members.find((member) => isMethodDeclaration(member) && isIdentifier(member.name) && member.name.text === CATCH_METHOD_NAME);\nvar resolveViaGlobalFilters = (bootstrapSourceFile, bootstrapFilePath) => {\n\tconst filterClassName = findGlobalFilterClassName(bootstrapSourceFile);\n\treturn filterClassName === void 0 ? void 0 : resolveClassDeclaration(filterClassName, bootstrapSourceFile, bootstrapFilePath);\n};\nvar resolveViaAppFilterProvider = (bootstrapSourceFile, bootstrapFilePath) => {\n\tconst rootModuleClassName = findRootModuleClassName(bootstrapSourceFile);\n\tif (rootModuleClassName === void 0) return;\n\tconst resolvedModule = resolveClassDeclaration(rootModuleClassName, bootstrapSourceFile, bootstrapFilePath);\n\tif (resolvedModule === void 0) return;\n\tconst filterClassName = findAppFilterProviderClassName(resolvedModule.classDeclaration, resolvedModule.sourceFile);\n\treturn filterClassName === void 0 ? void 0 : resolveClassDeclaration(filterClassName, resolvedModule.sourceFile, resolvedModule.filePath);\n};\nvar isSameDeclaration = (a, b) => a.filePath === b.filePath && a.classDeclaration.name?.text === b.classDeclaration.name?.text;\nvar reconcileResolvedFilter = (viaGlobalFilters, viaAppFilterProvider) => {\n\tif (viaGlobalFilters !== void 0 && viaAppFilterProvider !== void 0) return isSameDeclaration(viaGlobalFilters, viaAppFilterProvider) ? viaGlobalFilters : void 0;\n\treturn viaGlobalFilters ?? viaAppFilterProvider;\n};\nvar detectErrorResponseShape = (bootstrapFilePath) => {\n\tconst bootstrapSourceFile = parseSourceFile(bootstrapFilePath);\n\tconst resolved = reconcileResolvedFilter(resolveViaGlobalFilters(bootstrapSourceFile, bootstrapFilePath), resolveViaAppFilterProvider(bootstrapSourceFile, bootstrapFilePath));\n\tif (resolved === void 0 || findDecorator(resolved.classDeclaration, CATCH_DECORATOR_NAME) === void 0) return;\n\tconst catchMethod = findCatchMethod(resolved.classDeclaration.members);\n\tif (catchMethod?.body === void 0) return;\n\tconst bodyResolution = resolveCatchMethodBody(catchMethod);\n\tif (bodyResolution === void 0 || !isObjectLiteralExpression(bodyResolution.responseBodyArgument)) return;\n\tconst errorBodyTypeSource = synthesizeErrorBodyType(bodyResolution.responseBodyArgument, bodyResolution.exceptionParameterName, bodyResolution.localDeclarations);\n\treturn errorBodyTypeSource === void 0 ? void 0 : { errorBodyTypeSource };\n};\nvar USE_GLOBAL_INTERCEPTORS_METHOD_NAME = \"useGlobalInterceptors\";\nvar collectUseGlobalInterceptorsCalls = (node, calls) => {\n\tif (isCallExpression(node) && isPropertyAccessExpression(node.expression) && node.expression.name.text === USE_GLOBAL_INTERCEPTORS_METHOD_NAME) calls.push(node);\n\tnode.forEachChild((child) => {\n\t\tcollectUseGlobalInterceptorsCalls(child, calls);\n\t});\n};\n/**\n* Returned in registration order: `useGlobalInterceptors` concatenates onto a\n* single global list, so a later call (or a later argument within one call)\n* always registers an interceptor that wraps closer to the raw handler result.\n*/\nvar findGlobalInterceptorClassNames = (sourceFile) => {\n\tconst calls = [];\n\tcollectUseGlobalInterceptorsCalls(sourceFile, calls);\n\tif (calls.length === 0) return;\n\tconst classNames = [];\n\tfor (const call of calls) for (const argument of call.arguments) {\n\t\tif (!isNewExpression(argument) || !isIdentifier(argument.expression)) return;\n\t\tclassNames.push(argument.expression.text);\n\t}\n\treturn classNames.length === 0 ? void 0 : classNames;\n};\nvar synthesizeExpressionType = (expression, parameterName, substitution, state) => {\n\tif (isIdentifier(expression) && expression.text === parameterName) {\n\t\tstate.substitutionCount += 1;\n\t\treturn substitution;\n\t}\n\tif (isObjectLiteralExpression(expression)) {\n\t\tconst memberTypes = [];\n\t\tfor (const property of expression.properties) {\n\t\t\tif (!isPropertyAssignment(property) || !(isIdentifier(property.name) || isStringLiteral(property.name))) return;\n\t\t\tconst valueType = synthesizeExpressionType(property.initializer, parameterName, substitution, state);\n\t\t\tif (valueType === void 0) return;\n\t\t\tmemberTypes.push(`${property.name.text}: ${valueType}`);\n\t\t}\n\t\treturn `{ ${memberTypes.join(\"; \")} }`;\n\t}\n\tif (isStringLiteral(expression)) return \"string\";\n\tif (isNumericLiteral(expression)) return \"number\";\n\tif (isTrueLiteral(expression) || isFalseLiteral(expression)) return \"boolean\";\n\tif (isNullLiteral(expression)) return \"null\";\n};\nvar synthesizeGenericObjectType = (objectLiteral, parameterName, substitution) => {\n\tconst state = { substitutionCount: 0 };\n\tconst objectType = synthesizeExpressionType(objectLiteral, parameterName, substitution, state);\n\treturn objectType !== void 0 && state.substitutionCount === 1 ? objectType : void 0;\n};\nvar INTERCEPT_METHOD_NAME = \"intercept\";\nvar PIPE_MEMBER_NAME = \"pipe\";\nvar MAP_OPERATOR_NAME = \"map\";\nvar RXJS_MODULE_SPECIFIER = \"rxjs\";\nvar WRAPPED_RESULT_SUBSTITUTION = \"Awaited<Result>\";\nvar unwrapParenthesizedExpression = (expression) => {\n\tlet unwrapped = expression;\n\twhile (isParenthesizedExpression(unwrapped)) unwrapped = unwrapped.expression;\n\treturn unwrapped;\n};\nvar resolveSoleReturnExpression = (body) => {\n\tif (!isBlock(body)) return unwrapParenthesizedExpression(body);\n\tconst localDeclarations = /* @__PURE__ */ new Map();\n\tlet returnExpression;\n\tlet sawReturn = false;\n\tfor (const statement of body.statements) {\n\t\tif (sawReturn) return;\n\t\tif (isVariableStatement(statement)) {\n\t\t\tfor (const declaration of statement.declarationList.declarations) {\n\t\t\t\tif (!isIdentifier(declaration.name) || declaration.initializer === void 0) return;\n\t\t\t\tlocalDeclarations.set(declaration.name.text, declaration.initializer);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (isReturnStatement(statement)) {\n\t\t\tsawReturn = true;\n\t\t\treturnExpression = statement.expression;\n\t\t\tcontinue;\n\t\t}\n\t\treturn;\n\t}\n\tif (returnExpression === void 0) return;\n\treturn isIdentifier(returnExpression) ? localDeclarations.get(returnExpression.text) : returnExpression;\n};\nvar matchPipedMapCallback = (expression, interceptorSourceFile) => {\n\tif (!isCallExpression(expression) || !isPropertyAccessExpression(expression.expression) || expression.expression.name.text !== PIPE_MEMBER_NAME || expression.arguments.length !== 1) return;\n\tconst [operator] = expression.arguments;\n\tif (operator === void 0 || !isCallExpression(operator) || !isIdentifier(operator.expression) || operator.expression.text !== MAP_OPERATOR_NAME || operator.arguments.length !== 1) return;\n\tconst mapImportSource = findImportSource(interceptorSourceFile, operator.expression.text);\n\tif (mapImportSource === void 0 || mapImportSource.moduleSpecifierText !== RXJS_MODULE_SPECIFIER) return;\n\tconst [callback] = operator.arguments;\n\treturn callback !== void 0 && (isArrowFunction(callback) || isFunctionExpression(callback)) ? callback : void 0;\n};\nvar findInterceptMethod = (members) => members.find((member) => isMethodDeclaration(member) && isIdentifier(member.name) && member.name.text === INTERCEPT_METHOD_NAME);\nvar synthesizeInterceptorWrapperType = (interceptorClassName, bootstrapSourceFile, bootstrapFilePath, innerTypeSource) => {\n\tconst resolved = resolveClassDeclaration(interceptorClassName, bootstrapSourceFile, bootstrapFilePath);\n\tif (resolved === void 0) return;\n\tconst interceptMethod = findInterceptMethod(resolved.classDeclaration.members);\n\tif (interceptMethod?.body === void 0) return;\n\tconst returnExpression = resolveSoleReturnExpression(interceptMethod.body);\n\tif (returnExpression === void 0) return;\n\tconst mapCallback = matchPipedMapCallback(returnExpression, resolved.sourceFile);\n\tif (mapCallback === void 0 || mapCallback.parameters.length !== 1) return;\n\tconst [callbackParameter] = mapCallback.parameters;\n\tif (callbackParameter === void 0 || !isIdentifier(callbackParameter.name)) return;\n\tconst callbackReturnExpression = resolveSoleReturnExpression(mapCallback.body);\n\tif (callbackReturnExpression === void 0 || !isObjectLiteralExpression(callbackReturnExpression)) return;\n\treturn synthesizeGenericObjectType(callbackReturnExpression, callbackParameter.name.text, innerTypeSource);\n};\n/**\n* Interceptors registered first wrap those registered after them, so the\n* composed type is built from the last-registered interceptor (closest to the\n* raw handler result) outward to the first-registered one.\n*/\nvar detectResponseWrapper = (bootstrapFilePath) => {\n\tconst bootstrapSourceFile = parseSourceFile(bootstrapFilePath);\n\tconst interceptorClassNames = findGlobalInterceptorClassNames(bootstrapSourceFile);\n\tif (interceptorClassNames === void 0) return;\n\tlet composedTypeSource = WRAPPED_RESULT_SUBSTITUTION;\n\tfor (const interceptorClassName of [...interceptorClassNames].reverse()) {\n\t\tconst wrapperTypeSource = synthesizeInterceptorWrapperType(interceptorClassName, bootstrapSourceFile, bootstrapFilePath, composedTypeSource);\n\t\tif (wrapperTypeSource === void 0) return;\n\t\tcomposedTypeSource = wrapperTypeSource;\n\t}\n\treturn { wrappedResultTypeSource: composedTypeSource };\n};\nvar REMOTE_RESULT_HELPERS = {\n\tjson: \"RemoteResult\",\n\tobservable: \"RemoteObservableResult\",\n\tstream: \"RemoteStreamResult\"\n};\nvar WRAPPED_RESULT_HELPER = \"__NestBridgeWrapped\";\nvar toPosixPath = (filePath) => filePath.replace(/\\\\/g, \"/\");\nvar importSpecifierFor = (sourceFile, outputFilePath) => {\n\tif (!sourceFile.startsWith(\".\") && !/^[A-Za-z]:[\\\\/]/.test(sourceFile) && !sourceFile.startsWith(\"/\")) return sourceFile;\n\tconst relativePath = toPosixPath(relative(dirname(outputFilePath), sourceFile));\n\treturn relativePath.startsWith(\".\") ? relativePath : `./${relativePath}`;\n};\nvar stripExtension = (filePath) => {\n\tconst extension = extname(filePath);\n\treturn extension.length > 0 ? filePath.slice(0, -extension.length) : filePath;\n};\nvar generateControllerDeclaration = (controller, outputFilePath, responseWrapper) => {\n\tconst sourceFileSpecifier = importSpecifierFor(controller.sourceFile, outputFilePath);\n\tconst importSpecifier = stripExtension(sourceFileSpecifier);\n\tconst serverAlias = `__Server${controller.name}`;\n\tconst helperNameFor = (method) => responseWrapper !== void 0 && (method.responseKind ?? \"json\") === \"json\" ? WRAPPED_RESULT_HELPER : REMOTE_RESULT_HELPERS[method.responseKind ?? \"json\"];\n\tconst classBody = [\n\t\t\" constructor();\",\n\t\t\"\",\n\t\t...controller.methods.map((method) => {\n\t\t\tconst helperName = helperNameFor(method);\n\t\t\treturn ` ${method.name}(...args: Parameters<${serverAlias}['${method.name}']>): ${helperName}<${serverAlias}['${method.name}']>;`;\n\t\t})\n\t].join(\"\\n\");\n\tconst rawHelperNames = controller.methods.map((method) => helperNameFor(method));\n\tconst hasWrappedMethod = rawHelperNames.includes(WRAPPED_RESULT_HELPER);\n\tconst helperImports = rawHelperNames.length === 0 ? [\"RemoteResult\"] : Array.from(new Set(rawHelperNames.filter((name) => name !== WRAPPED_RESULT_HELPER))).sort();\n\tconst wrappedResultTypeAliasLines = responseWrapper !== void 0 && hasWrappedMethod ? [`type ${WRAPPED_RESULT_HELPER}<T> = T extends (...args: never[]) => infer Result ? Promise<${responseWrapper.wrappedResultTypeSource}> : never;`, \"\"] : [];\n\treturn [\n\t\t`import type { ${controller.name} as ${serverAlias} } from '${importSpecifier}';`,\n\t\t...helperImports.length > 0 ? [`import type { ${helperImports.join(\", \")} } from 'nestbridge';`] : [],\n\t\t\"\",\n\t\t\"/**\",\n\t\t\" * Generated by NestBridge — client-facing methods only.\",\n\t\t` * @see {@link ${sourceFileSpecifier}} for the real controller implementation.`,\n\t\t\" */\",\n\t\t...wrappedResultTypeAliasLines,\n\t\t`export declare class ${controller.name} {`,\n\t\tclassBody,\n\t\t\"}\",\n\t\t\"\"\n\t].join(\"\\n\");\n};\nvar ERROR_BODY_TYPE_NAME = \"NestBridgeErrorBody\";\nvar generateErrorBodyDeclaration = (errorBodyTypeSource) => [\n\t\"/**\",\n\t\" * Generated by NestBridge — inferred shape of the global exception filter's response body.\",\n\t\" */\",\n\t`export type ${ERROR_BODY_TYPE_NAME} = ${errorBodyTypeSource};`,\n\t\"\"\n].join(\"\\n\");\nvar formatDiagnostic = (diagnostic) => {\n\tconst subject = diagnostic.memberName.length > 0 ? `${diagnostic.controllerName}.${diagnostic.memberName}` : diagnostic.controllerName;\n\tconst lines = [\n\t\t`[NestBridge] ${diagnostic.title}`,\n\t\t\"\",\n\t\tsubject,\n\t\t\"\",\n\t\tdiagnostic.detail\n\t];\n\tif (diagnostic.found !== void 0) lines.push(\"\", \"Found:\", diagnostic.found);\n\tif (diagnostic.expected !== void 0) lines.push(\"\", \"Expected:\", diagnostic.expected);\n\tlines.push(\"\", `${diagnostic.filePath}:${diagnostic.line}:${diagnostic.column}`);\n\treturn lines.join(\"\\n\");\n};\n//#endregion\n//#region src/codegen/generate-config-module.ts\nvar generateConfigModule = (options) => {\n\tif (options.baseURL === void 0) return \"\";\n\treturn [\n\t\t\"import { setNestBridgeBaseURL } from 'nestbridge';\",\n\t\t\"\",\n\t\t`setNestBridgeBaseURL(${JSON.stringify(options.baseURL)});`,\n\t\t\"\"\n\t].join(\"\\n\");\n};\n//#endregion\n//#region src/virtual-modules/config-virtual-id.ts\n/**\n* Must not contain a colon: webpack treats any `letter+:` prefix as a URL\n* scheme and routes the request past its filesystem resolver entirely,\n* bypassing the resolveId hook this virtual module relies on.\n*/\nvar CONFIG_VIRTUAL_MODULE_ID = \"virtual-nestbridge-config\";\nvar RESOLVED_CONFIG_VIRTUAL_MODULE_ID = `\\0${CONFIG_VIRTUAL_MODULE_ID}`;\n//#endregion\n//#region src/codegen/merge-named-parameters-expression.ts\nvar mergeNamedParametersExpression = (parameters) => {\n\tif (parameters.length === 0) return;\n\tconst whole = parameters.find((parameter) => parameter.name === void 0);\n\tconst named = parameters.filter((parameter) => parameter.name !== void 0);\n\tconst namedEntries = named.map((parameter) => `${JSON.stringify(parameter.name)}: ${parameter.parameterName}`);\n\tif (whole === void 0) return `{ ${namedEntries.join(\", \")} }`;\n\tif (named.length === 0) return whole.parameterName;\n\treturn `{ ...${whole.parameterName}, ${namedEntries.join(\", \")} }`;\n};\n//#endregion\n//#region src/codegen/generate-body-expression.ts\nvar generateBodyExpression = (parameters) => mergeNamedParametersExpression(parameters.filter((parameter) => parameter.kind === \"body\"));\n//#endregion\n//#region src/codegen/generate-headers-expression.ts\nvar generateHeadersExpression = (parameters) => {\n\tconst headerParameters = parameters.filter((parameter) => parameter.kind === \"header\");\n\tif (headerParameters.length === 0) return;\n\treturn `{ ${headerParameters.map((parameter) => `${JSON.stringify(parameter.name)}: ${parameter.parameterName}`).join(\", \")} }`;\n};\n//#endregion\n//#region src/codegen/generate-parameter-list.ts\nvar generateParameterList = (parameters) => [...parameters].sort((a, b) => a.index - b.index).map((parameter) => parameter.parameterName).join(\", \");\n//#endregion\n//#region src/codegen/generate-path-expression.ts\nvar PARAM_TOKEN_PATTERN = /:([A-Za-z0-9_]+)/;\nvar generatePathExpression = (method) => {\n\tconst paramParameters = method.parameters.filter((parameter) => parameter.kind === \"param\");\n\tconst parts = method.path.split(PARAM_TOKEN_PATTERN);\n\tconst expressionParts = [];\n\tparts.forEach((part, index) => {\n\t\tif (!(index % 2 === 1)) {\n\t\t\tif (part.length > 0) expressionParts.push(JSON.stringify(part));\n\t\t\treturn;\n\t\t}\n\t\tconst match = paramParameters.find((parameter) => parameter.name === part);\n\t\texpressionParts.push(match !== void 0 ? `encodeURIComponent(${match.parameterName})` : JSON.stringify(`:${part}`));\n\t});\n\treturn expressionParts.length > 0 ? expressionParts.join(\" + \") : \"''\";\n};\n//#endregion\n//#region src/codegen/generate-query-expression.ts\nvar generateQueryExpression = (parameters) => mergeNamedParametersExpression(parameters.filter((parameter) => parameter.kind === \"query\"));\n//#endregion\n//#region src/codegen/generate-controller-module.ts\nvar generateMethod$1 = (method) => {\n\tconst requestProperties = [`method: ${JSON.stringify(method.httpMethod)}`, `path: ${generatePathExpression(method)}`];\n\tconst queryExpression = generateQueryExpression(method.parameters);\n\tif (queryExpression !== void 0) requestProperties.push(`query: ${queryExpression}`);\n\tconst bodyExpression = generateBodyExpression(method.parameters);\n\tif (bodyExpression !== void 0) requestProperties.push(`body: ${bodyExpression}`);\n\tconst headersExpression = generateHeadersExpression(method.parameters);\n\tif (headersExpression !== void 0) requestProperties.push(`headers: ${headersExpression}`);\n\tif (method.responseKind === \"stream\") requestProperties.push(`responseType: \"blob\"`);\n\treturn [\n\t\t` ${method.name}(${generateParameterList(method.parameters)}) {`,\n\t\t\" return request({\",\n\t\t...requestProperties.map((property) => ` ${property},`),\n\t\t\" });\",\n\t\t\" }\"\n\t].join(\"\\n\");\n};\nvar generateControllerModule = (controller) => {\n\tconst methods = controller.methods.map(generateMethod$1).join(\"\\n\\n\");\n\treturn [\n\t\t`import '${CONFIG_VIRTUAL_MODULE_ID}';`,\n\t\t\"import { request } from 'nestbridge';\",\n\t\t\"\",\n\t\t`export class ${controller.name} {`,\n\t\t\" constructor() {}\",\n\t\t\"\",\n\t\tmethods,\n\t\t\"}\",\n\t\t\"\"\n\t].join(\"\\n\");\n};\n//#endregion\n//#region src/codegen/generate-graphql-document.ts\nvar capitalize = (value) => `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\nvar renderSelectionSet = (fields) => {\n\treturn `{ ${fields.map((field) => field.children === void 0 ? field.name : `${field.name} ${renderSelectionSet(field.children)}`).join(\" \")} }`;\n};\nvar generateGraphqlDocument = (method) => {\n\tconst variableDeclarations = method.arguments.map((argument) => `$${argument.name}: ${argument.graphqlType}`).join(\", \");\n\tconst fieldArguments = method.arguments.map((argument) => `${argument.name}: $${argument.name}`).join(\", \");\n\tconst variablesClause = variableDeclarations.length > 0 ? `(${variableDeclarations})` : \"\";\n\tconst fieldArgumentsClause = fieldArguments.length > 0 ? `(${fieldArguments})` : \"\";\n\tconst fieldSelection = method.selection.length > 0 ? ` ${renderSelectionSet(method.selection)}` : \"\";\n\treturn `${method.operationKind} ${capitalize(method.name)}${variablesClause} { ${method.operationName}${fieldArgumentsClause}${fieldSelection} }`;\n};\n//#endregion\n//#region src/codegen/generate-resolver-argument-list.ts\nvar generateResolverArgumentList = (resolverArguments) => [...resolverArguments].sort((a, b) => a.index - b.index).map((argument) => argument.parameterName).join(\", \");\n//#endregion\n//#region src/codegen/generate-resolver-module.ts\nvar generateVariablesExpression = (resolverArguments) => {\n\tif (resolverArguments.length === 0) return;\n\treturn `{ ${resolverArguments.map((argument) => `${JSON.stringify(argument.name)}: ${argument.parameterName}`).join(\", \")} }`;\n};\nvar generateMethod = (method) => {\n\tconst requestProperties = [`document: ${JSON.stringify(generateGraphqlDocument(method))}`];\n\tconst variablesExpression = generateVariablesExpression(method.arguments);\n\tif (variablesExpression !== void 0) requestProperties.push(`variables: ${variablesExpression}`);\n\treturn [\n\t\t` async ${method.name}(${generateResolverArgumentList(method.arguments)}) {`,\n\t\t\" const result = await graphqlRequest({\",\n\t\t...requestProperties.map((property) => ` ${property},`),\n\t\t\" });\",\n\t\t\"\",\n\t\t` return result.${method.operationName};`,\n\t\t\" }\"\n\t].join(\"\\n\");\n};\nvar generateResolverModule = (resolver) => {\n\tconst methods = resolver.methods.map(generateMethod).join(\"\\n\\n\");\n\treturn [\n\t\t`import '${CONFIG_VIRTUAL_MODULE_ID}';`,\n\t\t\"import { graphqlRequest } from 'nestbridge';\",\n\t\t\"\",\n\t\t`export class ${resolver.name} {`,\n\t\t\" constructor() {}\",\n\t\t\"\",\n\t\tmethods,\n\t\t\"}\",\n\t\t\"\"\n\t].join(\"\\n\");\n};\n//#endregion\n//#region src/declarations/mirror-declaration-path.ts\nvar stripLeadingParentSegments = (relativePath) => {\n\tconst segments = relativePath.split(/[\\\\/]/);\n\tconst firstOwnedIndex = segments.findIndex((segment) => segment !== \"..\");\n\treturn segments.slice(firstOwnedIndex === -1 ? segments.length : firstOwnedIndex).join(\"/\");\n};\nvar mirroredDeclarationPath = (sourceRoot, resolvedOutputDir, controllerFilePath) => {\n\tconst mirroredPath = stripLeadingParentSegments(relative(sourceRoot, controllerFilePath)).replace(/\\.ts$/, \".d.ts\");\n\treturn join(resolvedOutputDir, mirroredPath);\n};\n//#endregion\n//#region src/declarations/write-controller-declarations.ts\nvar writeControllerDeclarations = (controllers, sourceRoot, resolvedOutputDir, responseWrapper) => {\n\tfor (const controller of controllers) {\n\t\tconst outputFilePath = mirroredDeclarationPath(sourceRoot, resolvedOutputDir, controller.sourceFile);\n\t\tmkdirSync(dirname(outputFilePath), { recursive: true });\n\t\twriteFileSync(outputFilePath, generateControllerDeclaration(controller, outputFilePath, responseWrapper), \"utf-8\");\n\t}\n};\n//#endregion\n//#region src/declarations/write-error-body-declaration.ts\nvar ERROR_BODY_DECLARATION_FILE_NAME = \"nestbridge-error-body.d.ts\";\nvar errorBodyDeclarationPath = (resolvedOutputDir) => join(resolvedOutputDir, ERROR_BODY_DECLARATION_FILE_NAME);\nvar writeErrorBodyDeclaration = (resolvedOutputDir, errorResponseShape) => {\n\tconst outputFilePath = errorBodyDeclarationPath(resolvedOutputDir);\n\tif (errorResponseShape === void 0) {\n\t\trmSync(outputFilePath, { force: true });\n\t\treturn;\n\t}\n\tmkdirSync(dirname(outputFilePath), { recursive: true });\n\twriteFileSync(outputFilePath, generateErrorBodyDeclaration(errorResponseShape.errorBodyTypeSource), \"utf-8\");\n};\n//#endregion\n//#region src/declarations/write-resolver-declarations.ts\nvar writeResolverDeclarations = (resolvers, sourceRoot, resolvedOutputDir) => {\n\tfor (const resolver of resolvers) {\n\t\tconst outputFilePath = mirroredDeclarationPath(sourceRoot, resolvedOutputDir, resolver.sourceFile);\n\t\tmkdirSync(dirname(outputFilePath), { recursive: true });\n\t\twriteFileSync(outputFilePath, generateControllerDeclaration(resolver, outputFilePath), \"utf-8\");\n\t}\n};\n//#endregion\n//#region src/discovery/discover-files.ts\nvar discoverFiles = (patterns, root, exclude) => {\n\tconst matches = globSync([...patterns], {\n\t\tcwd: root,\n\t\texclude\n\t});\n\treturn [...new Set(matches.map((match) => resolve(root, match)))].sort();\n};\n//#endregion\n//#region src/discovery/discover-bootstrap-file.ts\nvar BOOTSTRAP_FILE_PATTERN = \"**/main.ts\";\nvar discoverBootstrapFile = (root, resolvedOutputDir) => {\n\tconst isExcluded = (filePath) => {\n\t\tif (filePath.split(/[\\\\/]/).includes(\"node_modules\")) return true;\n\t\tconst resolvedPath = resolve(root, filePath);\n\t\treturn resolvedPath === resolvedOutputDir || resolvedPath.startsWith(`${resolvedOutputDir}${sep}`);\n\t};\n\tconst matches = discoverFiles([BOOTSTRAP_FILE_PATTERN], root, isExcluded);\n\treturn matches.length === 1 ? matches[0] : void 0;\n};\n//#endregion\n//#region src/options/nestbridge-options.ts\nvar resolveNestBridgeOptions = (options) => ({\n\tcontrollers: Array.isArray(options.controllers) ? options.controllers : [options.controllers],\n\tresolvers: options.resolvers === void 0 ? [] : Array.isArray(options.resolvers) ? options.resolvers : [options.resolvers],\n\tbaseURL: options.baseURL,\n\tdebug: options.debug ?? false,\n\toutputDir: options.outputDir ?? \".nestbridge\",\n\troot: options.root\n});\n//#endregion\n//#region src/plugin/normalize-path.ts\nvar isWindows = process.platform === \"win32\";\nvar normalizePath = (filePath) => posix.normalize(isWindows ? filePath.replaceAll(\"\\\\\", \"/\") : filePath);\n//#endregion\n//#region src/plugin/controller-registry.ts\nvar createControllerRegistry = (patterns, root) => {\n\tconst controllersByFile = /* @__PURE__ */ new Map();\n\tconst refresh = () => {\n\t\tcontrollersByFile.clear();\n\t\tconst { controllers, diagnostics } = analyzeControllers(discoverFiles(patterns, root));\n\t\tfor (const controller of controllers) controllersByFile.set(normalizePath(controller.sourceFile), controller);\n\t\treturn {\n\t\t\tcontrollers,\n\t\t\tdiagnostics\n\t\t};\n\t};\n\treturn {\n\t\trefresh,\n\t\tget: (filePath) => controllersByFile.get(filePath),\n\t\thas: (filePath) => controllersByFile.has(filePath),\n\t\tall: () => [...controllersByFile.values()]\n\t};\n};\n//#endregion\n//#region src/plugin/resolver-registry.ts\nvar createResolverRegistry = (patterns, root) => {\n\tconst resolversByFile = /* @__PURE__ */ new Map();\n\tconst refresh = () => {\n\t\tresolversByFile.clear();\n\t\tconst { resolvers, diagnostics } = analyzeResolvers(discoverFiles(patterns, root));\n\t\tfor (const resolver of resolvers) resolversByFile.set(normalizePath(resolver.sourceFile), resolver);\n\t\treturn {\n\t\t\tresolvers,\n\t\t\tdiagnostics\n\t\t};\n\t};\n\treturn {\n\t\trefresh,\n\t\tget: (filePath) => resolversByFile.get(filePath),\n\t\thas: (filePath) => resolversByFile.has(filePath),\n\t\tall: () => [...resolversByFile.values()]\n\t};\n};\n//#endregion\n//#region src/plugin/nestbridge-unplugin-factory.ts\nvar reportDiagnostics = (diagnostics, watchMode) => {\n\tfor (const diagnostic of diagnostics) {\n\t\tconst message = formatDiagnostic(diagnostic);\n\t\tif (watchMode === false) throw new Error(message);\n\t\tconsole.warn(message);\n\t}\n};\nvar nestBridgeUnplugin = createUnplugin((options, meta) => {\n\tconst resolvedOptions = resolveNestBridgeOptions(options);\n\tlet root = resolvedOptions.root ?? process.cwd();\n\tlet bundlerRoot = root;\n\tlet controllerRegistry;\n\tlet resolverRegistry;\n\tlet bootstrapFilePath;\n\tconst log = (message) => {\n\t\tif (resolvedOptions.debug) console.log(`[nestbridge] ${message}`);\n\t};\n\tconst runAnalysis = () => {\n\t\tconst { controllers, diagnostics: controllerDiagnostics } = controllerRegistry.refresh();\n\t\tconst { resolvers, diagnostics: resolverDiagnostics } = resolverRegistry.refresh();\n\t\treportDiagnostics([...controllerDiagnostics, ...resolverDiagnostics], meta.watchMode);\n\t\tconst resolvedOutputDir = resolve(bundlerRoot, resolvedOptions.outputDir);\n\t\tconst discoveredBootstrapFile = discoverBootstrapFile(root, resolvedOutputDir);\n\t\tbootstrapFilePath = discoveredBootstrapFile !== void 0 ? normalizePath(discoveredBootstrapFile) : void 0;\n\t\tconst responseWrapper = discoveredBootstrapFile !== void 0 ? detectResponseWrapper(discoveredBootstrapFile) : void 0;\n\t\tconst errorResponseShape = discoveredBootstrapFile !== void 0 ? detectErrorResponseShape(discoveredBootstrapFile) : void 0;\n\t\twriteControllerDeclarations(controllers, root, resolvedOutputDir, responseWrapper);\n\t\twriteResolverDeclarations(resolvers, root, resolvedOutputDir);\n\t\twriteErrorBodyDeclaration(resolvedOutputDir, errorResponseShape);\n\t\tlog(`analyzed ${controllers.length} controller(s), ${resolvers.length} resolver(s), ${controllerDiagnostics.length + resolverDiagnostics.length} diagnostic(s)`);\n\t};\n\treturn {\n\t\tname: \"nestbridge\",\n\t\tenforce: \"pre\",\n\t\tbuildStart() {\n\t\t\tcontrollerRegistry = createControllerRegistry(resolvedOptions.controllers, root);\n\t\t\tresolverRegistry = createResolverRegistry(resolvedOptions.resolvers, root);\n\t\t\trunAnalysis();\n\t\t},\n\t\tresolveId(source) {\n\t\t\tif (source === \"virtual-nestbridge-config\") return RESOLVED_CONFIG_VIRTUAL_MODULE_ID;\n\t\t\treturn null;\n\t\t},\n\t\tload(id) {\n\t\t\tif (id === RESOLVED_CONFIG_VIRTUAL_MODULE_ID) return generateConfigModule(resolvedOptions);\n\t\t\treturn null;\n\t\t},\n\t\ttransform(_code, id) {\n\t\t\tconst absolutePath = normalizePath(id);\n\t\t\tconst controller = controllerRegistry.get(absolutePath);\n\t\t\tif (controller !== void 0) return generateControllerModule(controller);\n\t\t\tconst resolver = resolverRegistry.get(absolutePath);\n\t\t\tif (resolver !== void 0) return generateResolverModule(resolver);\n\t\t\treturn null;\n\t\t},\n\t\twatchChange(id) {\n\t\t\tconst changedFile = normalizePath(id);\n\t\t\tconst wasTracked = controllerRegistry.has(changedFile) || resolverRegistry.has(changedFile) || changedFile === bootstrapFilePath;\n\t\t\tconst discoveredBootstrapFile = discoverBootstrapFile(root, resolve(bundlerRoot, resolvedOptions.outputDir));\n\t\t\tconst isTrackedNow = discoverFiles(resolvedOptions.controllers, root).map(normalizePath).includes(changedFile) || discoverFiles(resolvedOptions.resolvers, root).map(normalizePath).includes(changedFile) || discoveredBootstrapFile !== void 0 && normalizePath(discoveredBootstrapFile) === changedFile;\n\t\t\tif (!wasTracked && !isTrackedNow) return;\n\t\t\trunAnalysis();\n\t\t\tlog(`nestbridge source changed: ${changedFile}`);\n\t\t},\n\t\tvite: { configResolved(config) {\n\t\t\tif (resolvedOptions.root === void 0) root = config.root;\n\t\t\tbundlerRoot = config.root;\n\t\t} },\n\t\twebpack(compiler) {\n\t\t\tbundlerRoot = compiler.options.context ?? bundlerRoot;\n\t\t}\n\t};\n});\n//#endregion\n//#region src/version.ts\nvar VERSION = \"2.1.2\";\n//#endregion\nexport { VERSION, nestBridgeUnplugin };\n\n//# sourceMappingURL=nestbridge.unplugin.js.map","{\n \"name\": \"@nestbridge/webpack\",\n \"version\": \"2.1.2\",\n \"type\": \"module\",\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/MDReal32/nestbridge.git\",\n \"directory\": \"packages/webpack\"\n },\n \"main\": \"./build/nestbridge.webpack.js\",\n \"types\": \"./build/nestbridge.webpack.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./build/nestbridge.webpack.d.ts\",\n \"import\": \"./build/nestbridge.webpack.js\"\n }\n },\n \"files\": [\n \"build\"\n ],\n \"scripts\": {\n \"build\": \"vite build\",\n \"test\": \"vitest run\",\n \"typecheck\": \"tsc -p tsconfig.json --noEmit\",\n \"lint\": \"biome check .\"\n },\n \"dependencies\": {\n \"@nestbridge/unplugin\": \"workspace:*\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^26.4.1\",\n \"esbuild-loader\": \"^4.5.0\",\n \"rolldown-plugin-dts\": \"^0.28.5\",\n \"typescript\": \"^7.0.2\",\n \"vite\": \"^8.2.2\",\n \"vitest\": \"^5.0.0\",\n \"webpack\": \"^5.110.3\"\n },\n \"peerDependencies\": {\n \"webpack\": \"^5.110.3\"\n }\n}\n","import { version } from '../package.json';\n\nexport const VERSION: string = version;\n","import { type NestBridgeOptions, nestBridgeUnplugin } from '@nestbridge/unplugin';\nimport type { WebpackPluginInstance } from 'webpack';\n\nexport type { NestBridgeOptions } from '@nestbridge/unplugin';\nexport const nestBridge: (options: NestBridgeOptions) => WebpackPluginInstance =\n nestBridgeUnplugin.webpack;\nexport { VERSION } from './version';\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestbridge/webpack",
3
- "version": "2.1.1",
3
+ "version": "2.1.2",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -26,7 +26,7 @@
26
26
  "lint": "biome check ."
27
27
  },
28
28
  "dependencies": {
29
- "@nestbridge/unplugin": "workspace:*"
29
+ "@nestbridge/unplugin": "2.1.2"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/node": "^26.4.1",
@@ -40,4 +40,4 @@
40
40
  "peerDependencies": {
41
41
  "webpack": "^5.110.3"
42
42
  }
43
- }
43
+ }