@fern-api/csharp-dynamic-snippets 0.0.2 → 0.0.4
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/cjs/Config.cjs +2 -11
- package/cjs/Config.cjs.map +1 -0
- package/cjs/DynamicSnippetsGenerator.cjs +31 -19
- package/cjs/DynamicSnippetsGenerator.cjs.map +1 -0
- package/cjs/DynamicSnippetsGenerator.d.cts +4 -1
- package/cjs/DynamicSnippetsGeneratorContext-DQDI25Nx.d.cts +395 -0
- package/cjs/EndpointSnippetGenerator.cjs +30 -19
- package/cjs/EndpointSnippetGenerator.cjs.map +1 -0
- package/cjs/EndpointSnippetGenerator.d.cts +7 -3
- package/cjs/context/DynamicSnippetsGeneratorContext.cjs +31 -32
- package/cjs/context/DynamicSnippetsGeneratorContext.cjs.map +1 -0
- package/cjs/context/DynamicSnippetsGeneratorContext.d.cts +4 -2
- package/cjs/context/DynamicTypeLiteralMapper.cjs +2 -34
- package/cjs/context/DynamicTypeLiteralMapper.cjs.map +1 -0
- package/cjs/context/DynamicTypeLiteralMapper.d.cts +3 -1
- package/cjs/context/DynamicTypeMapper.cjs +2 -34
- package/cjs/context/DynamicTypeMapper.cjs.map +1 -0
- package/cjs/context/DynamicTypeMapper.d.cts +3 -1
- package/cjs/context/FilePropertyMapper.cjs +26 -32
- package/cjs/context/FilePropertyMapper.cjs.map +1 -0
- package/cjs/context/FilePropertyMapper.d.cts +3 -1
- package/cjs/index.cjs +34 -31
- package/cjs/index.cjs.map +1 -0
- package/cjs/index.d.cts +4 -2
- package/esm/Config.js +2 -1
- package/esm/Config.js.map +1 -0
- package/esm/DynamicSnippetsGenerator.d.ts +4 -1
- package/esm/DynamicSnippetsGenerator.js +2 -1
- package/esm/DynamicSnippetsGenerator.js.map +1 -0
- package/esm/DynamicSnippetsGeneratorContext-DQDI25Nx.d.ts +395 -0
- package/esm/EndpointSnippetGenerator.d.ts +7 -3
- package/esm/EndpointSnippetGenerator.js +2 -1
- package/esm/EndpointSnippetGenerator.js.map +1 -0
- package/esm/chunk-CDMZ2O62.js +2 -0
- package/esm/chunk-CDMZ2O62.js.map +1 -0
- package/esm/chunk-D2D544ZS.js +2 -0
- package/esm/chunk-D2D544ZS.js.map +1 -0
- package/esm/chunk-F3KILROP.js +2 -0
- package/esm/chunk-F3KILROP.js.map +1 -0
- package/esm/chunk-GQKEVSN5.js +2 -0
- package/esm/chunk-GQKEVSN5.js.map +1 -0
- package/esm/chunk-KHCIVF5J.js +1 -0
- package/esm/chunk-KHCIVF5J.js.map +1 -0
- package/esm/chunk-MM7AFFVF.js +2 -0
- package/esm/chunk-MM7AFFVF.js.map +1 -0
- package/esm/chunk-PBYJXQQK.js +2 -0
- package/esm/chunk-PBYJXQQK.js.map +1 -0
- package/esm/chunk-SAYITSWL.js +15 -0
- package/esm/chunk-SAYITSWL.js.map +1 -0
- package/esm/chunk-ZDZZCKFB.js +33 -0
- package/esm/chunk-ZDZZCKFB.js.map +1 -0
- package/esm/context/DynamicSnippetsGeneratorContext.d.ts +4 -2
- package/esm/context/DynamicSnippetsGeneratorContext.js +2 -1
- package/esm/context/DynamicSnippetsGeneratorContext.js.map +1 -0
- package/esm/context/DynamicTypeLiteralMapper.d.ts +3 -1
- package/esm/context/DynamicTypeLiteralMapper.js +2 -1
- package/esm/context/DynamicTypeLiteralMapper.js.map +1 -0
- package/esm/context/DynamicTypeMapper.d.ts +3 -1
- package/esm/context/DynamicTypeMapper.js +2 -1
- package/esm/context/DynamicTypeMapper.js.map +1 -0
- package/esm/context/FilePropertyMapper.d.ts +3 -1
- package/esm/context/FilePropertyMapper.js +2 -1
- package/esm/context/FilePropertyMapper.js.map +1 -0
- package/esm/index.d.ts +4 -2
- package/esm/index.js +5 -13
- package/esm/index.js.map +1 -0
- package/package.json +1 -1
- package/cjs/DynamicSnippetsGeneratorContext-DbMhuHoi.d.cts +0 -116
- package/esm/DynamicSnippetsGeneratorContext-DbMhuHoi.d.ts +0 -116
- package/esm/chunk-2AZXIWKY.js +0 -11
- package/esm/chunk-ARC6F6E6.js +0 -1
- package/esm/chunk-CIENX2JS.js +0 -1
- package/esm/chunk-DVOWBIEL.js +0 -1
- package/esm/chunk-HN67B7VQ.js +0 -1
- package/esm/chunk-IIP7VDG4.js +0 -1
- package/esm/chunk-ME2YBVEY.js +0 -1
- package/esm/chunk-PJC2VZIA.js +0 -26
- package/esm/chunk-QKK5PTVJ.js +0 -1
- package/esm/chunk-YL3JFOME.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../browser-compatible-base/src/dynamic-snippets/Result.ts","../../../../browser-compatible-base/src/dynamic-snippets/AbstractDynamicSnippetsGenerator.ts","../../../../browser-compatible-base/src/dynamic-snippets/ErrorReporter.ts","../../../../../packages/cli/fern-definition/schema/src/utils/HttpEndpointReferenceParser.ts","../../../../browser-compatible-base/src/dynamic-snippets/AbstractDynamicSnippetsGeneratorContext.ts","../../../../browser-compatible-base/src/dynamic-snippets/Options.ts","../../../../browser-compatible-base/src/dynamic-snippets/Scope.ts"],"sourcesContent":["import { FernIr } from \"@fern-api/dynamic-ir-sdk\";\n\nimport { AbstractDynamicSnippetsGeneratorContext } from \"./AbstractDynamicSnippetsGeneratorContext\";\nimport { ErrorReporter } from \"./ErrorReporter\";\n\nexport class Result {\n public reporter: ErrorReporter | undefined;\n public snippet: string | undefined;\n public err: Error | undefined;\n\n constructor() {\n this.snippet = undefined;\n this.reporter = undefined;\n this.err = undefined;\n }\n\n public update({ context, snippet }: { context: AbstractDynamicSnippetsGeneratorContext; snippet: string }): void {\n if (this.shouldUpdate({ snippet, reporter: context.errors })) {\n this.reporter = context.errors.clone();\n this.snippet = snippet;\n }\n }\n\n public getResponseOrThrow({\n endpoint\n }: {\n endpoint: FernIr.dynamic.EndpointLocation;\n }): FernIr.dynamic.EndpointSnippetResponse {\n if (this.snippet != null && this.reporter != null) {\n return {\n snippet: this.snippet,\n errors: this.reporter.toDynamicSnippetErrors()\n };\n }\n throw this.err ?? new Error(`Failed to generate snippet for endpoint \"${endpoint.method} ${endpoint.path}\"`);\n }\n\n private shouldUpdate({ snippet, reporter }: { snippet: string; reporter: ErrorReporter }): boolean {\n if (this.reporter == null || (this.reporter.size() > 0 && reporter.size() === 0)) {\n return true;\n }\n return snippet.length > (this.snippet?.length ?? 0);\n }\n}\n","import { FernIr } from \"@fern-api/dynamic-ir-sdk\";\n\nimport { AbstractDynamicSnippetsGeneratorContext } from \"./AbstractDynamicSnippetsGeneratorContext\";\nimport { AbstractEndpointSnippetGenerator } from \"./AbstractEndpointSnippetGenerator\";\nimport { Options } from \"./Options\";\nimport { Result } from \"./Result\";\n\nexport abstract class AbstractDynamicSnippetsGenerator<\n Context extends AbstractDynamicSnippetsGeneratorContext,\n EndpointSnippetGenerator extends AbstractEndpointSnippetGenerator<Context>\n> {\n public constructor(public readonly context: Context) {}\n\n protected abstract createSnippetGenerator(context: Context): EndpointSnippetGenerator;\n\n public async generate(\n request: FernIr.dynamic.EndpointSnippetRequest,\n options: Options = {}\n ): Promise<FernIr.dynamic.EndpointSnippetResponse> {\n const endpoints = this.context.resolveEndpointLocationOrThrow(request.endpoint);\n if (endpoints.length === 0) {\n throw new Error(`No endpoints found that match \"${request.endpoint.method} ${request.endpoint.path}\"`);\n }\n const result = new Result();\n for (const endpoint of endpoints) {\n const context = this.context.clone() as Context;\n const snippetGenerator = this.createSnippetGenerator(context);\n try {\n const snippet = await snippetGenerator.generateSnippet({ endpoint, request, options });\n if (context.errors.empty()) {\n return {\n snippet,\n errors: undefined\n };\n }\n result.update({ context, snippet });\n } catch (error) {\n if (result.err == null) {\n result.err = error as Error;\n }\n }\n }\n return result.getResponseOrThrow({ endpoint: request.endpoint });\n }\n\n public generateSync(\n request: FernIr.dynamic.EndpointSnippetRequest,\n options: Options = {}\n ): FernIr.dynamic.EndpointSnippetResponse {\n const endpoints = this.context.resolveEndpointLocationOrThrow(request.endpoint);\n if (endpoints.length === 0) {\n throw new Error(`No endpoints found that match \"${request.endpoint.method} ${request.endpoint.path}\"`);\n }\n const result = new Result();\n for (const endpoint of endpoints) {\n const context = this.context.clone() as Context;\n const snippetGenerator = this.createSnippetGenerator(context);\n try {\n const snippet = snippetGenerator.generateSnippetSync({ endpoint, request, options });\n if (context.errors.empty()) {\n return {\n snippet,\n errors: undefined\n };\n }\n result.update({ context, snippet });\n } catch (error) {\n if (result.err == null) {\n result.err = error as Error;\n }\n }\n }\n return result.getResponseOrThrow({ endpoint: request.endpoint });\n }\n}\n","export const Severity = {\n Critical: \"CRITICAL\",\n Warning: \"WARNING\"\n} as const;\n\nexport declare namespace ErrorReporter {\n type Path = readonly PathItem[];\n\n type PathItem = string | ArrayPathItem;\n\n type Severity = (typeof Severity)[keyof typeof Severity];\n\n interface ArrayPathItem {\n index: number;\n }\n\n interface Error {\n path?: Path;\n severity: Severity;\n message: string;\n }\n}\n\ninterface Error_ {\n severity: \"CRITICAL\" | \"WARNING\";\n path: string[] | undefined;\n message: string;\n}\n\nexport class ErrorReporter {\n private errors: ErrorReporter.Error[];\n private path: ErrorReporter.PathItem[];\n\n constructor() {\n this.errors = [];\n this.path = [];\n }\n\n public add(err: Omit<ErrorReporter.Error, \"path\">): void {\n this.errors.push({\n ...err,\n path: [...this.path]\n });\n }\n\n public scope(path: ErrorReporter.PathItem): void {\n this.path.push(path);\n }\n\n public unscope(): void {\n this.path.pop();\n }\n\n public getBySeverity(severity: ErrorReporter.Severity): ErrorReporter.Error[] {\n return this.errors.filter((err) => err.severity === severity);\n }\n\n public empty(): boolean {\n return this.errors.length === 0;\n }\n\n public size(): number {\n return this.errors.length;\n }\n\n public clone(): ErrorReporter {\n const clone = new ErrorReporter();\n clone.errors = [...this.errors];\n clone.path = [...this.path];\n return clone;\n }\n\n public reset(): void {\n this.errors = [];\n this.path = [];\n }\n\n public toDynamicSnippetErrors(): Error_[] {\n return this.errors.map((err) => ({\n severity: err.severity,\n path: err.path != null ? this.pathToStringArray(err.path) : undefined,\n message: err.message\n }));\n }\n\n private pathToStringArray(path: ErrorReporter.Path): string[] {\n const result: string[] = [];\n for (const item of path) {\n if (typeof item === \"string\") {\n result.push(item);\n continue;\n }\n result[result.length - 1] += `[${item.index}]`;\n }\n return result;\n }\n}\n","export declare namespace HttpEndpointReferenceParser {\n interface Parsed {\n path: string;\n method: Method;\n }\n\n type Method = \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\" | \"HEAD\";\n\n export type ValidationResult = Valid | Invalid;\n\n interface Valid {\n type: \"valid\";\n }\n\n interface Invalid {\n type: \"invalid\";\n }\n}\n\n/**\n * Parses an HTTP endpoint reference like `POST /users/get`\n */\nexport class HttpEndpointReferenceParser {\n //eslint-disable-next-line\n private REFERENCE_REGEX = /^(GET|POST|PUT|DELETE|PATCH|HEAD)\\s(\\/\\S*)$/;\n\n public validate(reference: string): HttpEndpointReferenceParser.ValidationResult {\n const validFormat = this.REFERENCE_REGEX.test(reference);\n if (!validFormat) {\n return { type: \"invalid\" };\n }\n return { type: \"valid\" };\n }\n\n public tryParse(reference: string): HttpEndpointReferenceParser.Parsed | undefined {\n const validationResponse = this.validate(reference);\n if (validationResponse.type === \"invalid\") {\n return undefined;\n }\n const match = reference.match(this.REFERENCE_REGEX);\n if (match == null || match[1] == null || match[2] == null) {\n return undefined;\n }\n return {\n method: match[1] as HttpEndpointReferenceParser.Method,\n path: match[2]\n };\n }\n}\n","import { assertNever, keys } from \"@fern-api/core-utils\";\nimport { FernIr } from \"@fern-api/dynamic-ir-sdk\";\nimport { HttpEndpointReferenceParser } from \"@fern-api/fern-definition-schema\";\n\nimport { FernGeneratorExec } from \"../GeneratorNotificationService\";\nimport { DiscriminatedUnionTypeInstance } from \"./DiscriminatedUnionTypeInstance\";\nimport { ErrorReporter, Severity } from \"./ErrorReporter\";\nimport { Options } from \"./Options\";\nimport { TypeInstance } from \"./TypeInstance\";\n\nexport abstract class AbstractDynamicSnippetsGeneratorContext {\n public config: FernGeneratorExec.GeneratorConfig;\n public options: Options;\n public errors: ErrorReporter;\n\n private _ir: FernIr.dynamic.DynamicIntermediateRepresentation;\n private httpEndpointReferenceParser: HttpEndpointReferenceParser;\n\n constructor({\n ir,\n config,\n options = {}\n }: {\n ir: FernIr.dynamic.DynamicIntermediateRepresentation;\n config: FernGeneratorExec.GeneratorConfig;\n options?: Options;\n }) {\n this._ir = ir;\n this.config = config;\n this.options = options;\n this.errors = new ErrorReporter();\n this.httpEndpointReferenceParser = new HttpEndpointReferenceParser();\n }\n\n public abstract clone(): AbstractDynamicSnippetsGeneratorContext;\n\n public associateQueryParametersByWireValue({\n parameters,\n values\n }: {\n parameters: FernIr.dynamic.NamedParameter[];\n values: FernIr.dynamic.Values;\n }): TypeInstance[] {\n const instances: TypeInstance[] = [];\n for (const [key, value] of Object.entries(values)) {\n this.errors.scope(key);\n try {\n const parameter = parameters.find((param) => param.name.wireValue === key);\n if (parameter == null) {\n throw this.newParameterNotRecognizedError(key);\n }\n // If this query parameter supports allow-multiple, the user-provided values\n // must be wrapped in an array.\n const typeInstanceValue =\n this.isListTypeReference(parameter.typeReference) && !Array.isArray(value) ? [value] : value;\n instances.push({\n name: parameter.name,\n typeReference: parameter.typeReference,\n value: typeInstanceValue\n });\n } finally {\n this.errors.unscope();\n }\n }\n return instances;\n }\n\n public associateByWireValueOrDefault({\n parameters,\n values\n }: {\n parameters: FernIr.dynamic.NamedParameter[];\n values: FernIr.dynamic.Values;\n }): TypeInstance[] {\n const instances: TypeInstance[] = [];\n for (const parameter of parameters) {\n this.errors.scope(parameter.name.wireValue);\n try {\n let value = values[parameter.name.wireValue];\n\n if (value == null) {\n if (parameter.typeReference.type === \"primitive\" && parameter.typeReference.value === \"STRING\") {\n // synthesize a parameter value for string parameters that are missing data\n value = `<${parameter.name.wireValue}>`;\n } else {\n this.errors.add({\n severity: Severity.Critical,\n message: this.newParameterNotRecognizedError(parameter.name.wireValue).message\n });\n continue;\n }\n }\n\n instances.push({\n name: parameter.name,\n typeReference: parameter.typeReference,\n value\n });\n } finally {\n this.errors.unscope();\n }\n }\n\n return instances;\n }\n\n public associateByWireValue({\n parameters,\n values,\n ignoreMissingParameters\n }: {\n parameters: FernIr.dynamic.NamedParameter[];\n values: FernIr.dynamic.Values;\n ignoreMissingParameters?: boolean;\n }): TypeInstance[] {\n const instances: TypeInstance[] = [];\n for (const [key, value] of Object.entries(values)) {\n this.errors.scope(key);\n try {\n const parameter = parameters.find((param) => param.name.wireValue === key);\n if (parameter == null) {\n if (ignoreMissingParameters) {\n // Required for request payloads that include more information than\n // just the target parameters (e.g. union base properties).\n continue;\n }\n this.errors.add({\n severity: Severity.Critical,\n message: this.newParameterNotRecognizedError(key).message\n });\n continue;\n }\n instances.push({\n name: parameter.name,\n typeReference: parameter.typeReference,\n value\n });\n } finally {\n this.errors.unscope();\n }\n }\n return instances;\n }\n\n /**\n * Similar to `associateByWireValue` but it builds TypeInstance objects by iterating over schema parameters rather\n * than snippet values. Skips non-nullable parameters that are missing from the snippet object.\n */\n public getExampleObjectProperties({\n parameters,\n snippetObject\n }: {\n parameters: FernIr.dynamic.NamedParameter[];\n snippetObject: unknown;\n }): TypeInstance[] {\n const objectRecord = (\n typeof snippetObject === \"object\" && snippetObject !== null && !Array.isArray(snippetObject)\n ? snippetObject\n : {}\n ) as Record<string, unknown>;\n const instances: TypeInstance[] = [];\n for (const parameter of parameters) {\n const value = objectRecord[parameter.name.wireValue];\n if (value == null) {\n if (parameter.typeReference.type === \"nullable\") {\n instances.push({\n name: parameter.name,\n typeReference: parameter.typeReference,\n value: null\n });\n }\n } else {\n instances.push({\n name: parameter.name,\n typeReference: parameter.typeReference,\n value\n });\n }\n }\n return instances;\n }\n\n public getSingleFileValue({\n property,\n record\n }: {\n property: FernIr.dynamic.FileUploadRequestBodyProperty.File_;\n record: Record<string, unknown>;\n }): string | undefined {\n const fileValue = record[property.wireValue];\n if (fileValue == null) {\n return undefined;\n }\n if (typeof fileValue !== \"string\") {\n this.errors.add({\n severity: Severity.Critical,\n message: `Expected file value to be a string, got ${typeof fileValue}`\n });\n return undefined;\n }\n return fileValue;\n }\n\n public getFileArrayValues({\n property,\n record\n }: {\n property: FernIr.dynamic.FileUploadRequestBodyProperty.FileArray;\n record: Record<string, unknown>;\n }): string[] | undefined {\n const fileArrayValue = record[property.wireValue];\n if (fileArrayValue == null) {\n return undefined;\n }\n if (!Array.isArray(fileArrayValue)) {\n this.errors.add({\n severity: Severity.Critical,\n message: `Expected file array value to be an array of strings, got ${typeof fileArrayValue}`\n });\n return undefined;\n }\n const stringValues: string[] = [];\n for (const value of fileArrayValue) {\n if (typeof value !== \"string\") {\n this.errors.add({\n severity: Severity.Critical,\n message: `Expected file array value to be an array of strings, got ${typeof value}`\n });\n return undefined;\n }\n stringValues.push(value);\n }\n return stringValues;\n }\n\n public getRecord(value: unknown): Record<string, unknown> | undefined {\n if (typeof value !== \"object\" || Array.isArray(value)) {\n this.errors.add({\n severity: Severity.Critical,\n message: `Expected object with key, value pairs but got: ${\n Array.isArray(value) ? \"array\" : typeof value\n }`\n });\n return undefined;\n }\n if (value == null) {\n return {};\n }\n return value as Record<string, unknown>;\n }\n\n public resolveNamedType({ typeId }: { typeId: FernIr.dynamic.TypeId }): FernIr.dynamic.NamedType | undefined {\n const namedType = this._ir.types[typeId];\n if (namedType == null) {\n this.errors.add({\n severity: Severity.Critical,\n message: `Type identified by \"${typeId}\" could not be found`\n });\n return undefined;\n }\n return namedType;\n }\n\n public resolveDiscriminatedUnionTypeInstance({\n discriminatedUnion,\n value\n }: {\n discriminatedUnion: FernIr.dynamic.DiscriminatedUnionType;\n value: unknown;\n }): DiscriminatedUnionTypeInstance | undefined {\n const record = this.getRecord(value);\n if (record == null) {\n return undefined;\n }\n\n const discriminantFieldName = discriminatedUnion.discriminant.wireValue;\n const discriminantValue = record[discriminantFieldName];\n if (discriminantValue == null) {\n this.errors.add({\n severity: Severity.Critical,\n message: this.newParameterNotRecognizedError(discriminantFieldName).message\n });\n return undefined;\n }\n if (typeof discriminantValue !== \"string\") {\n this.errors.add({\n severity: Severity.Critical,\n message: `Expected discriminant value to be a string but got: ${typeof discriminantValue}`\n });\n return undefined;\n }\n\n const singleDiscriminatedUnionType = discriminatedUnion.types[discriminantValue];\n if (singleDiscriminatedUnionType == null) {\n this.errors.add({\n severity: Severity.Critical,\n message: `No type found for discriminant value \"${discriminantValue}\"`\n });\n return undefined;\n }\n\n // Remove the discriminant from the record so that the value is valid for the type.\n const { [discriminantFieldName]: _, ...filtered } = record;\n\n return {\n singleDiscriminatedUnionType,\n discriminantValue: singleDiscriminatedUnionType.discriminantValue,\n value: filtered\n };\n }\n\n public resolveEndpointOrThrow(rawEndpoint: string): FernIr.dynamic.Endpoint[] {\n const parsedEndpoint = this.httpEndpointReferenceParser.tryParse(rawEndpoint);\n if (parsedEndpoint == null) {\n throw new Error(`Failed to parse endpoint reference \"${rawEndpoint}\"`);\n }\n return this.resolveEndpointLocationOrThrow(parsedEndpoint);\n }\n\n public resolveEndpointLocation(location: FernIr.dynamic.EndpointLocation): FernIr.dynamic.Endpoint[] {\n const endpoints: FernIr.dynamic.Endpoint[] = [];\n for (const endpoint of Object.values(this._ir.endpoints)) {\n if (this.parsedEndpointMatches({ endpoint, parsedEndpoint: location })) {\n endpoints.push(endpoint);\n }\n }\n\n return endpoints;\n }\n\n public resolveEndpointLocationOrThrow(location: FernIr.dynamic.EndpointLocation): FernIr.dynamic.Endpoint[] {\n const endpoints = this.resolveEndpointLocation(location);\n if (endpoints.length === 0) {\n throw new Error(`Failed to find endpoint identified by \"${location.method} ${location.path}\"`);\n }\n return endpoints;\n }\n\n public needsRequestParameter({\n request,\n inlinePathParameters,\n inlineFileProperties\n }: {\n request: FernIr.dynamic.InlinedRequest;\n inlinePathParameters: boolean;\n inlineFileProperties: boolean;\n }): boolean {\n if (this.includePathParametersInWrappedRequest({ request, inlinePathParameters })) {\n return true;\n }\n if (request.queryParameters != null && request.queryParameters.length > 0) {\n return true;\n }\n if (request.headers != null && request.headers.length > 0) {\n return true;\n }\n if (request.body != null) {\n return this.includeRequestBodyInWrappedRequest({ body: request.body, inlineFileProperties });\n }\n if (request.metadata?.onlyPathParameters) {\n return false;\n }\n return true;\n }\n\n public includePathParametersInWrappedRequest({\n request,\n inlinePathParameters\n }: {\n request: FernIr.dynamic.InlinedRequest;\n inlinePathParameters: boolean;\n }): boolean {\n return inlinePathParameters && (request.metadata?.includePathParameters ?? false);\n }\n\n public isFileUploadRequestBody(\n body: FernIr.dynamic.InlinedRequestBody\n ): body is FernIr.dynamic.InlinedRequestBody.FileUpload {\n switch (body.type) {\n case \"fileUpload\":\n return true;\n case \"properties\":\n case \"referenced\":\n return false;\n default:\n assertNever(body);\n }\n }\n\n public resolveEnvironmentName(environmentID: string): FernIr.Name | undefined {\n if (this._ir.environments == null) {\n return undefined;\n }\n const environments = this._ir.environments.environments;\n switch (environments.type) {\n case \"singleBaseUrl\": {\n const environment = environments.environments.find((env) => env.id === environmentID);\n if (environment == null) {\n return undefined;\n }\n return environment.name;\n }\n case \"multipleBaseUrls\": {\n const environment = environments.environments.find((env) => env.id === environmentID);\n if (environment == null) {\n return undefined;\n }\n return environment.name;\n }\n default:\n assertNever(environments);\n }\n }\n\n public isSingleEnvironmentID(\n environment: FernIr.dynamic.EnvironmentValues\n ): environment is FernIr.dynamic.EnvironmentId {\n return typeof environment === \"string\";\n }\n\n public isMultiEnvironmentValues(\n environment: FernIr.dynamic.EnvironmentValues\n ): environment is FernIr.dynamic.MultipleEnvironmentUrlValues {\n return typeof environment === \"object\";\n }\n\n public validateMultiEnvironmentUrlValues(\n multiEnvironmentUrlValues: FernIr.dynamic.MultipleEnvironmentUrlValues\n ): boolean {\n if (this._ir.environments == null) {\n this.errors.add({\n severity: Severity.Critical,\n message:\n \"Multiple environments are not supported for single base URL environments; use the baseUrl option instead\"\n });\n return false;\n }\n const environments = this._ir.environments.environments;\n switch (environments.type) {\n case \"singleBaseUrl\": {\n this.errors.add({\n severity: Severity.Critical,\n message:\n \"Multiple environments are not supported for single base URL environments; use the baseUrl option instead\"\n });\n return false;\n }\n case \"multipleBaseUrls\": {\n const firstEnvironment = environments.environments[0];\n if (firstEnvironment == null) {\n this.errors.add({\n severity: Severity.Critical,\n message: \"Multiple environments are not supported; use the baseUrl option instead\"\n });\n return false;\n }\n const expectedKeys = new Set(keys(firstEnvironment.urls));\n for (const key of keys(multiEnvironmentUrlValues)) {\n if (expectedKeys.has(key)) {\n expectedKeys.delete(key);\n }\n }\n if (expectedKeys.size > 0) {\n this.errors.add({\n severity: Severity.Critical,\n message: `The provided environments are invalid; got: [${Object.keys(multiEnvironmentUrlValues).join(\", \")}], expected: [${keys(firstEnvironment.urls).join(\", \")}]`\n });\n return false;\n }\n return true;\n }\n }\n }\n\n public getValueAsNumber({ value }: { value: unknown }): number | undefined {\n if (typeof value !== \"number\") {\n this.errors.add({\n severity: Severity.Critical,\n message: this.newTypeMismatchError({ expected: \"number\", value }).message\n });\n return undefined;\n }\n return value;\n }\n\n public getValueAsBoolean({ value }: { value: unknown }): boolean | undefined {\n if (typeof value !== \"boolean\") {\n this.errors.add({\n severity: Severity.Critical,\n message: this.newTypeMismatchError({ expected: \"boolean\", value }).message\n });\n return undefined;\n }\n return value;\n }\n\n public getValueAsString({ value }: { value: unknown }): string | undefined {\n if (typeof value !== \"string\") {\n this.errors.add({\n severity: Severity.Critical,\n message: this.newTypeMismatchError({ expected: \"string\", value }).message\n });\n return undefined;\n }\n return value;\n }\n\n public isOptional(typeReference: FernIr.dynamic.TypeReference): boolean {\n switch (typeReference.type) {\n case \"nullable\":\n return this.isOptional(typeReference.value);\n case \"optional\":\n return true;\n case \"named\": {\n const resolvedType = this.resolveNamedType({ typeId: typeReference.value });\n if (resolvedType == null) {\n return false;\n }\n if (resolvedType.type === \"alias\") {\n return this.isNullable(resolvedType.typeReference);\n }\n return false;\n }\n }\n return false;\n }\n\n public isNullable(typeReference: FernIr.dynamic.TypeReference): boolean {\n switch (typeReference.type) {\n case \"nullable\":\n return true;\n case \"optional\":\n return this.isNullable(typeReference.value);\n case \"named\": {\n const resolvedType = this.resolveNamedType({ typeId: typeReference.value });\n if (resolvedType == null) {\n return false;\n }\n if (resolvedType.type === \"alias\") {\n return this.isNullable(resolvedType.typeReference);\n }\n return false;\n }\n }\n return false;\n }\n\n public newAuthMismatchError({\n auth,\n values\n }: {\n auth: FernIr.dynamic.Auth;\n values: FernIr.dynamic.AuthValues;\n }): Error {\n return new Error(`Expected auth type ${auth.type}, got ${values.type}`);\n }\n\n public newParameterNotRecognizedError(parameterName: string): Error {\n return new Error(`\"${parameterName}\" is not a recognized parameter for this endpoint`);\n }\n\n public newTypeMismatchError({ expected, value }: { expected: string; value: unknown }): Error {\n return new Error(`Expected ${expected}, got ${typeof value}`);\n }\n\n private includeRequestBodyInWrappedRequest({\n body,\n inlineFileProperties\n }: {\n body: FernIr.dynamic.InlinedRequestBody;\n inlineFileProperties: boolean;\n }): boolean {\n switch (body.type) {\n case \"properties\":\n case \"referenced\":\n return true;\n case \"fileUpload\":\n return this.includeFileUploadBodyInWrappedRequest({ fileUpload: body, inlineFileProperties });\n default:\n assertNever(body);\n }\n }\n\n private includeFileUploadBodyInWrappedRequest({\n fileUpload,\n inlineFileProperties\n }: {\n fileUpload: FernIr.dynamic.FileUploadRequestBody;\n inlineFileProperties: boolean;\n }): boolean {\n return (\n this.fileUploadHasBodyProperties({ fileUpload }) ||\n (inlineFileProperties && this.fileUploadHasFileProperties({ fileUpload }))\n );\n }\n\n private fileUploadHasBodyProperties({ fileUpload }: { fileUpload: FernIr.dynamic.FileUploadRequestBody }): boolean {\n return fileUpload.properties.some((property) => {\n switch (property.type) {\n case \"file\":\n case \"fileArray\":\n return false;\n case \"bodyProperty\":\n return true;\n default:\n assertNever(property);\n }\n });\n }\n\n private fileUploadHasFileProperties({ fileUpload }: { fileUpload: FernIr.dynamic.FileUploadRequestBody }): boolean {\n return fileUpload.properties.some((property) => {\n switch (property.type) {\n case \"file\":\n case \"fileArray\":\n return true;\n case \"bodyProperty\":\n return false;\n default:\n assertNever(property);\n }\n });\n }\n\n private isListTypeReference(typeReference: FernIr.dynamic.TypeReference): boolean {\n if (typeReference.type === \"optional\") {\n return this.isListTypeReference(typeReference.value);\n }\n return typeReference.type === \"list\" || typeReference.type === \"set\";\n }\n\n private parsedEndpointMatches({\n endpoint,\n parsedEndpoint\n }: {\n endpoint: FernIr.dynamic.Endpoint;\n parsedEndpoint: HttpEndpointReferenceParser.Parsed;\n }): boolean {\n return endpoint.location.method === parsedEndpoint.method && endpoint.location.path === parsedEndpoint.path;\n }\n}\n","import { AbstractFormatter } from \"../ast/AbstractFormatter\";\n\n// Style of the generated snippets.\nexport enum Style {\n // Use a concise style for the snippet (top-level statements).\n Concise = \"concise\",\n\n // Use the full style for the snippet (a `main` function that can be run).\n Full = \"full\"\n}\n\n// Options used to customize the behavior of any dynamic snippets generator\nexport interface Options {\n // Config to use for a specific generator. This is independent of the customConfig\n // used by the generator, and is primarily used in testing environments.\n config?: unknown;\n\n // The formatter to use for the generated snippets.\n formatter?: AbstractFormatter;\n\n // Style of the generated snippets. By default, the executable style is used.\n style?: Style;\n}\n","export const Scope = {\n PathParameters: \"pathParameters\",\n QueryParameters: \"queryParameters\",\n Headers: \"headers\",\n RequestBody: \"requestBody\"\n} as const;\n\nexport type Scope = (typeof Scope)[keyof typeof Scope];\n"],"mappings":"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","names":["Result","__publicField","context","snippet","endpoint","_a","reporter","_b","AbstractDynamicSnippetsGenerator","context","__publicField","request","options","endpoints","result","Result","endpoint","snippetGenerator","snippet","error","Severity","ErrorReporter","_ErrorReporter","__publicField","err","__spreadProps","__spreadValues","path","severity","clone","result","item","HttpEndpointReferenceParser","__publicField","reference","match","AbstractDynamicSnippetsGeneratorContext","ir","config","options","__publicField","ErrorReporter","HttpEndpointReferenceParser","parameters","values","instances","key","value","parameter","param","typeInstanceValue","Severity","ignoreMissingParameters","snippetObject","objectRecord","property","record","fileValue","fileArrayValue","stringValues","typeId","namedType","discriminatedUnion","discriminantFieldName","discriminantValue","singleDiscriminatedUnionType","_a","_","filtered","__objRest","__restKey","rawEndpoint","parsedEndpoint","location","endpoints","endpoint","request","inlinePathParameters","inlineFileProperties","_b","body","assertNever","environmentID","environments","environment","env","multiEnvironmentUrlValues","firstEnvironment","expectedKeys","keys","typeReference","resolvedType","auth","parameterName","expected","fileUpload","Style","Scope"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as n,i as r,m as s}from"./chunk-ZDZZCKFB.js";var a=class extends s{constructor({context:e}){super(e);n(this,"context");this.context=e}convert(e){switch(e.typeReference.type){case"list":return this.csharp.Type.list(this.convert({typeReference:e.typeReference,unboxOptionals:!0}));case"literal":return this.convertLiteral({literal:e.typeReference.value});case"map":return this.csharp.Type.map(this.convert({typeReference:e.typeReference.key}),this.convert({typeReference:e.typeReference.value}));case"named":{let t=this.context.resolveNamedType({typeId:e.typeReference.value});return t==null?this.convertUnknown():this.convertNamed({named:t})}case"optional":case"nullable":{let t=this.convert({typeReference:e.typeReference.value});return e.unboxOptionals?t.unwrapIfOptional():this.csharp.Type.optional(t)}case"primitive":return this.convertPrimitive({primitive:e.typeReference.value});case"set":return this.csharp.Type.set(this.convert({typeReference:e.typeReference,unboxOptionals:!0}));case"unknown":return this.convertUnknown();default:r(e.typeReference)}}convertToClassReference(e){return this.csharp.classReference({origin:e.declaration,namespace:this.context.getNamespace(e.declaration.fernFilepath)})}convertNamed({named:e}){switch(e.type){case"alias":return this.convert({typeReference:e.typeReference});case"enum":case"object":return this.csharp.Type.reference(this.csharp.classReference({origin:e.declaration,namespace:this.context.getNamespace(e.declaration.fernFilepath)}));case"discriminatedUnion":return this.settings.shouldGeneratedDiscriminatedUnions?this.csharp.Type.reference(this.csharp.classReference({origin:e.declaration,namespace:this.context.getNamespace(e.declaration.fernFilepath)})):this.csharp.Type.object;case"undiscriminatedUnion":return this.csharp.Type.oneOf(e.types.map(t=>this.convert({typeReference:t})));default:r(e)}}convertLiteral({literal:e}){switch(e.type){case"boolean":return this.csharp.Type.boolean;case"string":return this.csharp.Type.string}}convertUnknown(){return this.csharp.Type.object}convertPrimitive({primitive:e}){switch(e){case"INTEGER":return this.csharp.Type.integer;case"UINT":return this.csharp.Type.uint;case"LONG":return this.csharp.Type.long;case"UINT_64":return this.csharp.Type.ulong;case"FLOAT":return this.csharp.Type.float;case"DOUBLE":return this.csharp.Type.double;case"BOOLEAN":return this.csharp.Type.boolean;case"STRING":return this.csharp.Type.string;case"DATE":return this.csharp.Type.dateOnly;case"DATE_TIME":return this.csharp.Type.dateTime;case"UUID":return this.csharp.Type.string;case"BASE_64":return this.csharp.Type.string;case"BIG_INTEGER":return this.csharp.Type.string;default:r(e)}}};export{a};
|
|
2
|
+
//# sourceMappingURL=chunk-F3KILROP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/context/DynamicTypeMapper.ts"],"sourcesContent":["import { assertNever } from \"@fern-api/core-utils\";\nimport { ast, WithGeneration } from \"@fern-api/csharp-codegen\";\nimport { FernIr } from \"@fern-api/dynamic-ir-sdk\";\n\nimport { DynamicSnippetsGeneratorContext } from \"./DynamicSnippetsGeneratorContext\";\n\nexport declare namespace DynamicTypeMapper {\n interface Args {\n typeReference: FernIr.dynamic.TypeReference;\n unboxOptionals?: boolean;\n }\n}\n\nexport class DynamicTypeMapper extends WithGeneration {\n private context: DynamicSnippetsGeneratorContext;\n\n constructor({ context }: { context: DynamicSnippetsGeneratorContext }) {\n super(context);\n this.context = context;\n }\n\n public convert(args: DynamicTypeMapper.Args): ast.Type {\n switch (args.typeReference.type) {\n case \"list\":\n return this.csharp.Type.list(this.convert({ typeReference: args.typeReference, unboxOptionals: true }));\n case \"literal\":\n return this.convertLiteral({ literal: args.typeReference.value });\n case \"map\": {\n return this.csharp.Type.map(\n this.convert({ typeReference: args.typeReference.key }),\n this.convert({ typeReference: args.typeReference.value })\n );\n }\n case \"named\": {\n const named = this.context.resolveNamedType({ typeId: args.typeReference.value });\n if (named == null) {\n return this.convertUnknown();\n }\n return this.convertNamed({ named });\n }\n case \"optional\":\n case \"nullable\": {\n const value = this.convert({ typeReference: args.typeReference.value });\n return args.unboxOptionals ? value.unwrapIfOptional() : this.csharp.Type.optional(value);\n }\n case \"primitive\":\n return this.convertPrimitive({ primitive: args.typeReference.value });\n case \"set\":\n return this.csharp.Type.set(this.convert({ typeReference: args.typeReference, unboxOptionals: true }));\n case \"unknown\":\n return this.convertUnknown();\n default:\n assertNever(args.typeReference);\n }\n }\n\n convertToClassReference(named: FernIr.dynamic.NamedType): ast.ClassReference {\n return this.csharp.classReference({\n origin: named.declaration,\n namespace: this.context.getNamespace(named.declaration.fernFilepath)\n });\n }\n\n private convertNamed({ named }: { named: FernIr.dynamic.NamedType }): ast.Type {\n switch (named.type) {\n case \"alias\":\n return this.convert({ typeReference: named.typeReference });\n case \"enum\":\n case \"object\":\n return this.csharp.Type.reference(\n this.csharp.classReference({\n origin: named.declaration,\n namespace: this.context.getNamespace(named.declaration.fernFilepath)\n })\n );\n case \"discriminatedUnion\":\n if (!this.settings.shouldGeneratedDiscriminatedUnions) {\n return this.csharp.Type.object;\n }\n return this.csharp.Type.reference(\n this.csharp.classReference({\n origin: named.declaration,\n namespace: this.context.getNamespace(named.declaration.fernFilepath)\n })\n );\n case \"undiscriminatedUnion\":\n return this.csharp.Type.oneOf(\n named.types.map((typeReference) => {\n return this.convert({ typeReference });\n })\n );\n default:\n assertNever(named);\n }\n }\n\n private convertLiteral({ literal }: { literal: FernIr.dynamic.LiteralType }): ast.Type {\n switch (literal.type) {\n case \"boolean\":\n return this.csharp.Type.boolean;\n case \"string\":\n return this.csharp.Type.string;\n }\n }\n\n private convertUnknown(): ast.Type {\n return this.csharp.Type.object;\n }\n\n private convertPrimitive({ primitive }: { primitive: FernIr.dynamic.PrimitiveTypeV1 }): ast.Type {\n switch (primitive) {\n case \"INTEGER\":\n return this.csharp.Type.integer;\n case \"UINT\":\n return this.csharp.Type.uint;\n case \"LONG\":\n return this.csharp.Type.long;\n case \"UINT_64\":\n return this.csharp.Type.ulong;\n case \"FLOAT\":\n return this.csharp.Type.float;\n case \"DOUBLE\":\n return this.csharp.Type.double;\n case \"BOOLEAN\":\n return this.csharp.Type.boolean;\n case \"STRING\":\n return this.csharp.Type.string;\n case \"DATE\":\n return this.csharp.Type.dateOnly;\n case \"DATE_TIME\":\n return this.csharp.Type.dateTime;\n case \"UUID\":\n return this.csharp.Type.string;\n case \"BASE_64\":\n return this.csharp.Type.string;\n case \"BIG_INTEGER\":\n return this.csharp.Type.string;\n default:\n assertNever(primitive);\n }\n }\n}\n"],"mappings":"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","names":["DynamicTypeMapper","WithGeneration","context","__publicField","args","named","value","assertNever","typeReference","literal","primitive"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as p}from"./chunk-SAYITSWL.js";import{a as t}from"./chunk-PBYJXQQK.js";import{a as r}from"./chunk-D2D544ZS.js";var i=class extends r{constructor({ir:e,config:n,options:o={}}){super(new t({ir:e,config:n,options:o}))}precalculate(e){this.context.precalculate(e)}async generate(e,n={}){return super.generate(e,n)}generateSync(e,n={}){return super.generateSync(e,n)}createSnippetGenerator(e){return new p({context:e})}};export{i as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GQKEVSN5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/DynamicSnippetsGenerator.ts"],"sourcesContent":["import {\n AbstractDynamicSnippetsGenerator,\n FernGeneratorExec,\n Options\n} from \"@fern-api/browser-compatible-base-generator\";\nimport { FernIr } from \"@fern-api/dynamic-ir-sdk\";\nimport { DynamicSnippetsGeneratorContext } from \"./context/DynamicSnippetsGeneratorContext\";\nimport { EndpointSnippetGenerator } from \"./EndpointSnippetGenerator\";\n\nexport class DynamicSnippetsGenerator extends AbstractDynamicSnippetsGenerator<\n DynamicSnippetsGeneratorContext,\n EndpointSnippetGenerator\n> {\n constructor({\n ir,\n config,\n options = {}\n }: {\n ir: FernIr.dynamic.DynamicIntermediateRepresentation;\n config: FernGeneratorExec.GeneratorConfig;\n options?: Options;\n }) {\n super(new DynamicSnippetsGeneratorContext({ ir, config, options }));\n }\n\n public precalculate(requests: FernIr.dynamic.EndpointSnippetRequest[]): void {\n this.context.precalculate(requests);\n }\n\n public override async generate(\n request: FernIr.dynamic.EndpointSnippetRequest,\n options: Options = {}\n ): Promise<FernIr.dynamic.EndpointSnippetResponse> {\n return super.generate(request, options);\n }\n\n public override generateSync(\n request: FernIr.dynamic.EndpointSnippetRequest,\n options: Options = {}\n ): FernIr.dynamic.EndpointSnippetResponse {\n return super.generateSync(request, options);\n }\n\n protected createSnippetGenerator(context: DynamicSnippetsGeneratorContext): EndpointSnippetGenerator {\n return new EndpointSnippetGenerator({ context });\n }\n}\n"],"mappings":"wHASO,IAAMA,EAAN,cAAuCC,CAG5C,CACE,YAAY,CACR,GAAAC,EACA,OAAAC,EACA,QAAAC,EAAU,CAAC,CACf,EAIG,CACC,MAAM,IAAIC,EAAgC,CAAE,GAAAH,EAAI,OAAAC,EAAQ,QAAAC,CAAQ,CAAC,CAAC,CACtE,CAEO,aAAaE,EAAyD,CACzE,KAAK,QAAQ,aAAaA,CAAQ,CACtC,CAEA,MAAsB,SAClBC,EACAH,EAAmB,CAAC,EAC2B,CAC/C,OAAO,MAAM,SAASG,EAASH,CAAO,CAC1C,CAEgB,aACZG,EACAH,EAAmB,CAAC,EACkB,CACtC,OAAO,MAAM,aAAaG,EAASH,CAAO,CAC9C,CAEU,uBAAuBI,EAAoE,CACjG,OAAO,IAAIC,EAAyB,CAAE,QAAAD,CAAQ,CAAC,CACnD,CACJ","names":["DynamicSnippetsGenerator","AbstractDynamicSnippetsGenerator","ir","config","options","DynamicSnippetsGeneratorContext","requests","request","context","EndpointSnippetGenerator"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=chunk-KHCIVF5J.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as s,i as l,k as n,m as p}from"./chunk-ZDZZCKFB.js";var c=class extends p{constructor({context:a}){super(a);s(this,"context");this.context=a}getFilePropertyInfo({body:a,value:i}){var o;let t={fileFields:[],bodyPropertyFields:[]},r=(o=this.context.getRecord(i))!=null?o:{};for(let e of a.properties)switch(e.type){case"file":n.Record.missingKey(r,e.wireValue)&&(r[e.wireValue]="[bytes]"),t.fileFields.push({name:this.context.getPropertyName(e.name),value:this.getSingleFileProperty({property:e,record:r})});break;case"fileArray":n.Record.missingKey(r,e.wireValue)&&(r[e.wireValue]=["[bytes]"]),t.fileFields.push({name:this.context.getPropertyName(e.name),value:this.getArrayFileProperty({property:e,record:r})});break;case"bodyProperty":if(n.Record.missingKey(r,e.name.wireValue))switch(e.typeReference.type){case"optional":break;case"primitive":{switch(e.typeReference.value.toLowerCase()){case"integer":{r[e.name.wireValue]=123;break}case"string":{r[e.name.wireValue]="[string]";break}case"boolean":{r[e.name.wireValue]=!0;break}case"double":{r[e.name.wireValue]=123.456;break}case"float":{r[e.name.wireValue]=123.456;break}case"long":{r[e.name.wireValue]=123456789;break}case"uint":{r[e.name.wireValue]=123;break}case"uint64":{r[e.name.wireValue]=12345;break}case"date":{r[e.name.wireValue]=new Date(2021,1,1);break}case"datetime":{r[e.name.wireValue]=new Date(2021,1,1,12,0,0);break}case"uuid":{r[e.name.wireValue]="123e4567-e89b-12d3-a456-426614174000";break}case"base64":{r[e.name.wireValue]="SGVsbG8gd29ybGQh";break}case"biginteger":{r[e.name.wireValue]="12345678901234567890";break}}break}default:break}t.bodyPropertyFields.push({name:this.context.getPropertyName(e.name.name),value:this.getBodyProperty({property:e,record:r})});break;default:l(e)}return t}getSingleFileProperty({property:a,record:i}){let t=this.context.getSingleFileValue({property:a,record:i});return t==null?this.csharp.TypeLiteral.nop():this.context.getFileParameterForString(t)}getArrayFileProperty({property:a,record:i}){let t=this.context.getFileArrayValues({property:a,record:i});return t==null?this.csharp.TypeLiteral.nop():this.csharp.TypeLiteral.list({valueType:this.csharp.Type.reference(this.types.FileParameter),values:t.map(r=>this.context.getFileParameterForString(r))})}getBodyProperty({property:a,record:i}){let t=i[a.name.wireValue];return t==null?this.csharp.TypeLiteral.nop():this.context.dynamicTypeLiteralMapper.convert({typeReference:a.typeReference,value:t})}};export{c as a};
|
|
2
|
+
//# sourceMappingURL=chunk-MM7AFFVF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/context/FilePropertyMapper.ts"],"sourcesContent":["import { assertNever } from \"@fern-api/core-utils\";\nimport { ast, is, WithGeneration } from \"@fern-api/csharp-codegen\";\nimport { FernIr } from \"@fern-api/dynamic-ir-sdk\";\n\nimport { DynamicSnippetsGeneratorContext } from \"./DynamicSnippetsGeneratorContext\";\n\nexport interface FilePropertyInfo {\n fileFields: ast.ConstructorField[];\n bodyPropertyFields: ast.ConstructorField[];\n}\n\nexport class FilePropertyMapper extends WithGeneration {\n private context: DynamicSnippetsGeneratorContext;\n\n constructor({ context }: { context: DynamicSnippetsGeneratorContext }) {\n super(context);\n this.context = context;\n }\n\n public getFilePropertyInfo({\n body,\n value\n }: {\n body: FernIr.dynamic.FileUploadRequestBody;\n value: unknown;\n }): FilePropertyInfo {\n const result: FilePropertyInfo = {\n fileFields: [],\n bodyPropertyFields: []\n };\n const record = this.context.getRecord(value) ?? {};\n for (const property of body.properties) {\n switch (property.type) {\n case \"file\":\n // if we don't have a record, we can fake some data for it.\n if (is.Record.missingKey(record, property.wireValue)) {\n record[property.wireValue] = \"[bytes]\";\n }\n result.fileFields.push({\n name: this.context.getPropertyName(property.name),\n value: this.getSingleFileProperty({ property, record })\n });\n break;\n case \"fileArray\":\n // if we don't have a record, we can fake some data for it.\n if (is.Record.missingKey(record, property.wireValue)) {\n record[property.wireValue] = [\"[bytes]\"];\n }\n result.fileFields.push({\n name: this.context.getPropertyName(property.name),\n value: this.getArrayFileProperty({ property, record })\n });\n break;\n case \"bodyProperty\":\n // if we don't have a record, we can try fake some data for it.\n if (is.Record.missingKey(record, property.name.wireValue)) {\n switch (property.typeReference.type) {\n case \"optional\": {\n // ignore missing optional values\n break;\n }\n case \"primitive\": {\n // for primitives, we can return a sample value.\n switch (property.typeReference.value.toLowerCase()) {\n case \"integer\": {\n record[property.name.wireValue] = 123;\n break;\n }\n case \"string\": {\n record[property.name.wireValue] = \"[string]\";\n break;\n }\n case \"boolean\": {\n record[property.name.wireValue] = true;\n break;\n }\n case \"double\": {\n record[property.name.wireValue] = 123.456;\n break;\n }\n case \"float\": {\n record[property.name.wireValue] = 123.456;\n break;\n }\n case \"long\": {\n record[property.name.wireValue] = 123456789;\n break;\n }\n case \"uint\": {\n record[property.name.wireValue] = 123;\n break;\n }\n case \"uint64\": {\n record[property.name.wireValue] = 12345;\n break;\n }\n case \"date\": {\n record[property.name.wireValue] = new Date(2021, 1, 1);\n break;\n }\n case \"datetime\": {\n record[property.name.wireValue] = new Date(2021, 1, 1, 12, 0, 0);\n break;\n }\n case \"uuid\": {\n record[property.name.wireValue] = \"123e4567-e89b-12d3-a456-426614174000\";\n break;\n }\n case \"base64\": {\n record[property.name.wireValue] = \"SGVsbG8gd29ybGQh\";\n break;\n }\n case \"biginteger\": {\n record[property.name.wireValue] = \"12345678901234567890\";\n break;\n }\n }\n break;\n }\n\n default: {\n // todo: optionally synthesize a value for a other types in the future\n break;\n }\n }\n }\n result.bodyPropertyFields.push({\n name: this.context.getPropertyName(property.name.name),\n value: this.getBodyProperty({ property, record })\n });\n break;\n default:\n assertNever(property);\n }\n }\n return result;\n }\n\n private getSingleFileProperty({\n property,\n record\n }: {\n property: FernIr.dynamic.FileUploadRequestBodyProperty.File_;\n record: Record<string, unknown>;\n }): ast.TypeLiteral {\n const fileValue = this.context.getSingleFileValue({ property, record });\n if (fileValue == null) {\n return this.csharp.TypeLiteral.nop();\n }\n return this.context.getFileParameterForString(fileValue);\n }\n\n private getArrayFileProperty({\n property,\n record\n }: {\n property: FernIr.dynamic.FileUploadRequestBodyProperty.FileArray;\n record: Record<string, unknown>;\n }): ast.TypeLiteral {\n const fileValues = this.context.getFileArrayValues({ property, record });\n if (fileValues == null) {\n return this.csharp.TypeLiteral.nop();\n }\n return this.csharp.TypeLiteral.list({\n valueType: this.csharp.Type.reference(this.types.FileParameter),\n values: fileValues.map((value) => this.context.getFileParameterForString(value))\n });\n }\n\n private getBodyProperty({\n property,\n record\n }: {\n property: FernIr.dynamic.NamedParameter;\n record: Record<string, unknown>;\n }): ast.TypeLiteral {\n const bodyPropertyValue = record[property.name.wireValue];\n if (bodyPropertyValue == null) {\n return this.csharp.TypeLiteral.nop();\n }\n return this.context.dynamicTypeLiteralMapper.convert({\n typeReference: property.typeReference,\n value: bodyPropertyValue\n });\n }\n}\n"],"mappings":"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","names":["FilePropertyMapper","WithGeneration","context","__publicField","body","value","_a","result","record","property","is","assertNever","fileValue","fileValues","bodyPropertyValue"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as p}from"./chunk-CDMZ2O62.js";import{c as a}from"./chunk-D2D544ZS.js";import{a as c}from"./chunk-F3KILROP.js";import{a as m}from"./chunk-MM7AFFVF.js";import{h as r,n as o}from"./chunk-ZDZZCKFB.js";var l=class h extends a{constructor({ir:e,config:t,options:n,generation:s}){super({ir:e,config:t,options:n});r(this,"ir");r(this,"dynamicTypeMapper");r(this,"dynamicTypeLiteralMapper");r(this,"filePropertyMapper");r(this,"generation");this.ir=e,this.generation=s!=null?s:new o(e,t.workspaceName,t.customConfig!=null?t.customConfig:{},t),this.dynamicTypeMapper=new c({context:this}),this.dynamicTypeLiteralMapper=new p({context:this}),this.filePropertyMapper=new m({context:this})}get namespaces(){return this.generation.namespaces}get registry(){return this.generation.registry}get extern(){return this.generation.extern}get settings(){return this.generation.settings}get constants(){return this.generation.constants}get names(){return this.generation.names}get types(){return this.generation.types}get model(){return this.generation.model}get csharp(){return this.generation.csharp}get System(){return this.extern.System}get NUnit(){return this.extern.NUnit}get OneOf(){return this.extern.OneOf}get Google(){return this.extern.Google}clone(){return new h({ir:this.ir,config:this.config,options:this.options,generation:this.generation})}getFileParameterForString(e){return this.csharp.TypeLiteral.reference(this.csharp.instantiateClass({classReference:this.types.FileParameter,arguments_:[],properties:[{name:"Stream",value:this.getMemoryStreamForString(e)}],multiline:!0}))}getMemoryStreamForString(e){return this.extern.System.IO.MemoryStream.new({arguments_:[this.csharp.invokeMethod({on:this.extern.System.Text.Encoding_UTF8,method:"GetBytes",arguments_:[this.csharp.TypeLiteral.string(e)]})]})}getClassName(e){return e.pascalCase.safeName}getParameterName(e){return e.camelCase.safeName}getPropertyName(e){return e.pascalCase.safeName}getMethodName(e){return`${e.pascalCase.safeName}Async`}getNamespace(e,t){let n=this.getNamespaceSegments(e);return n=t!=null?[...n,t]:n,[this.namespaces.root,...n].join(".")}getEnvironmentTypeReferenceFromID(e){let t=this.resolveEnvironmentName(e);if(t!=null)return this.getEnvironmentClassReferenceForEnumName(t)}getEnvironmentClassReferenceForEnumName(e){return this.csharp.classReference({name:`${this.generation.types.Environments.name}.${this.getClassName(e)}`,namespace:this.namespaces.root})}getNamespaceSegments(e){return(this.settings.explicitNamespaces?e.allParts:e.packagePath).map(n=>n.pascalCase.safeName)}precalculate(e){this.generation.initialize(),this.extern.System.Collections.Generic.KeyValuePair(),this.extern.System.Collections.Generic.IEnumerable(),this.extern.System.Collections.Generic.IAsyncEnumerable(),this.extern.System.Collections.Generic.HashSet(),this.extern.System.Collections.Generic.List(),this.extern.System.Collections.Generic.Dictionary(),this.extern.System.Threading.Tasks.Task(),Object.entries(this.ir.types).sort((t,n)=>t[0].length-n[0].length).forEach(([t,n])=>{this.dynamicTypeMapper.convertToClassReference(n)});for(let[t,n]of e.entries())if(this.csharp.classReference({origin:this.model.staticExplicit(`Example${t}`),namespace:"Usage"}),n.endpoint){let s=this.resolveEndpointLocation(n.endpoint);for(let i of s)switch(i.request.type){case"inlined":this.csharp.classReference({origin:i.request.declaration.name,namespace:this.getNamespace(i.request.declaration.fernFilepath)});break;case"body":break}}this.generation.types.ClientOptions,this.generation.types.RootClient,this.csharp.freezeClassReferences()}};export{l as a};
|
|
2
|
+
//# sourceMappingURL=chunk-PBYJXQQK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/context/DynamicSnippetsGeneratorContext.ts"],"sourcesContent":["import {\n AbstractDynamicSnippetsGeneratorContext,\n FernGeneratorExec,\n Options\n} from \"@fern-api/browser-compatible-base-generator\";\nimport { ast, BaseCsharpCustomConfigSchema, Generation } from \"@fern-api/csharp-codegen\";\nimport { FernIr } from \"@fern-api/dynamic-ir-sdk\";\nimport { DynamicTypeLiteralMapper } from \"./DynamicTypeLiteralMapper\";\nimport { DynamicTypeMapper } from \"./DynamicTypeMapper\";\nimport { FilePropertyMapper } from \"./FilePropertyMapper\";\n\nexport class DynamicSnippetsGeneratorContext extends AbstractDynamicSnippetsGeneratorContext {\n public ir: FernIr.dynamic.DynamicIntermediateRepresentation;\n public dynamicTypeMapper: DynamicTypeMapper;\n public dynamicTypeLiteralMapper: DynamicTypeLiteralMapper;\n public filePropertyMapper: FilePropertyMapper;\n\n public readonly generation: Generation;\n\n public get namespaces() {\n return this.generation.namespaces;\n }\n public get registry() {\n return this.generation.registry;\n }\n public get extern() {\n return this.generation.extern;\n }\n public get settings() {\n return this.generation.settings;\n }\n public get constants() {\n return this.generation.constants;\n }\n public get names() {\n return this.generation.names;\n }\n public get types() {\n return this.generation.types;\n }\n public get model() {\n return this.generation.model;\n }\n public get csharp() {\n return this.generation.csharp;\n }\n public get System() {\n return this.extern.System;\n }\n public get NUnit() {\n return this.extern.NUnit;\n }\n public get OneOf() {\n return this.extern.OneOf;\n }\n public get Google() {\n return this.extern.Google;\n }\n\n constructor({\n ir,\n config,\n options,\n generation\n }: {\n ir: FernIr.dynamic.DynamicIntermediateRepresentation;\n config: FernGeneratorExec.GeneratorConfig;\n options?: Options;\n generation?: Generation;\n }) {\n super({ ir, config, options });\n this.ir = ir;\n\n this.generation =\n generation ??\n new Generation(\n ir,\n config.workspaceName,\n config.customConfig != null\n ? (config.customConfig as BaseCsharpCustomConfigSchema)\n : ({} as BaseCsharpCustomConfigSchema),\n config\n );\n\n this.dynamicTypeMapper = new DynamicTypeMapper({ context: this });\n this.dynamicTypeLiteralMapper = new DynamicTypeLiteralMapper({ context: this });\n this.filePropertyMapper = new FilePropertyMapper({ context: this });\n }\n\n public clone(): DynamicSnippetsGeneratorContext {\n return new DynamicSnippetsGeneratorContext({\n ir: this.ir,\n config: this.config,\n options: this.options,\n generation: this.generation\n });\n }\n\n public getFileParameterForString(str: string): ast.TypeLiteral {\n return this.csharp.TypeLiteral.reference(\n this.csharp.instantiateClass({\n classReference: this.types.FileParameter,\n arguments_: [],\n properties: [\n {\n name: \"Stream\",\n value: this.getMemoryStreamForString(str)\n }\n ],\n multiline: true\n })\n );\n }\n\n public getMemoryStreamForString(str: string): ast.ClassInstantiation {\n return this.extern.System.IO.MemoryStream.new({\n arguments_: [\n this.csharp.invokeMethod({\n on: this.extern.System.Text.Encoding_UTF8,\n method: \"GetBytes\",\n arguments_: [this.csharp.TypeLiteral.string(str)]\n })\n ]\n });\n }\n\n public getClassName(name: FernIr.Name): string {\n return name.pascalCase.safeName;\n }\n\n public getParameterName(name: FernIr.Name): string {\n return name.camelCase.safeName;\n }\n\n public getPropertyName(name: FernIr.Name): string {\n return name.pascalCase.safeName;\n }\n\n public getMethodName(name: FernIr.Name): string {\n return `${name.pascalCase.safeName}Async`;\n }\n\n public getNamespace(fernFilepath: FernIr.dynamic.FernFilepath, suffix?: string): string {\n let parts = this.getNamespaceSegments(fernFilepath);\n parts = suffix != null ? [...parts, suffix] : parts;\n return [this.namespaces.root, ...parts].join(\".\");\n }\n\n public getEnvironmentTypeReferenceFromID(environmentID: string): ast.ClassReference | undefined {\n const environmentName = this.resolveEnvironmentName(environmentID);\n if (environmentName == null) {\n return undefined;\n }\n return this.getEnvironmentClassReferenceForEnumName(environmentName);\n }\n\n private getEnvironmentClassReferenceForEnumName(name: FernIr.Name): ast.ClassReference {\n return this.csharp.classReference({\n name: `${this.generation.types.Environments.name}.${this.getClassName(name)}`,\n namespace: this.namespaces.root\n });\n }\n\n private getNamespaceSegments(fernFilepath: FernIr.dynamic.FernFilepath): string[] {\n const segments = this.settings.explicitNamespaces ? fernFilepath.allParts : fernFilepath.packagePath;\n return segments.map((segment) => segment.pascalCase.safeName);\n }\n\n public precalculate(requests: Partial<FernIr.dynamic.EndpointSnippetRequest>[]): void {\n this.generation.initialize();\n this.extern.System.Collections.Generic.KeyValuePair();\n this.extern.System.Collections.Generic.IEnumerable();\n this.extern.System.Collections.Generic.IAsyncEnumerable();\n this.extern.System.Collections.Generic.HashSet();\n this.extern.System.Collections.Generic.List();\n this.extern.System.Collections.Generic.Dictionary();\n this.extern.System.Threading.Tasks.Task();\n\n // generate the names for the model types\n Object.entries(this.ir.types)\n .sort((a, b) => {\n // sort by shortest key length\n return a[0].length - b[0].length;\n })\n .forEach(([typeId, type]) => {\n this.dynamicTypeMapper.convertToClassReference(type);\n });\n\n for (const [idx, request] of requests.entries()) {\n // generate the class names for the examples\n\n this.csharp.classReference({\n origin: this.model.staticExplicit(`Example${idx}`),\n namespace: \"Usage\"\n });\n\n if (request.endpoint) {\n const endpoints = this.resolveEndpointLocation(request.endpoint);\n for (const endpoint of endpoints) {\n switch (endpoint.request.type) {\n case \"inlined\":\n this.csharp.classReference({\n origin: endpoint.request.declaration.name,\n namespace: this.getNamespace(endpoint.request.declaration.fernFilepath)\n });\n\n break;\n\n case \"body\":\n break;\n }\n }\n }\n }\n\n this.generation.types.ClientOptions;\n this.generation.types.RootClient;\n\n // after generating the names for everything, freeze the class references\n this.csharp.freezeClassReferences();\n }\n}\n"],"mappings":"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","names":["DynamicSnippetsGeneratorContext","_DynamicSnippetsGeneratorContext","AbstractDynamicSnippetsGeneratorContext","ir","config","options","generation","__publicField","Generation","DynamicTypeMapper","DynamicTypeLiteralMapper","FilePropertyMapper","str","name","fernFilepath","suffix","parts","environmentID","environmentName","segment","requests","a","b","typeId","type","idx","request","endpoints","endpoint"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import{b as d,d as R,e as i}from"./chunk-D2D544ZS.js";import{a as b,b as v,h as w,i as m,k as A,l as F,m as q}from"./chunk-ZDZZCKFB.js";var ke=typeof global=="object"&&global&&global.Object===Object&&global,E=ke;var Me=typeof self=="object"&&self&&self.Object===Object&&self,Ue=E||Me||Function("return this")(),k=Ue;var We=k.Symbol,p=We;var M=Object.prototype,je=M.hasOwnProperty,De=M.toString,h=p?p.toStringTag:void 0;function Ve(r){var s=je.call(r,h),e=r[h];try{r[h]=void 0;var t=!0}catch(o){}var a=De.call(r);return t&&(s?r[h]=e:delete r[h]),a}var U=Ve;var ze=Object.prototype,He=ze.toString;function Ge(r){return He.call(r)}var W=Ge;var Ze="[object Null]",Je="[object Undefined]",j=p?p.toStringTag:void 0;function Ke(r){return r==null?r===void 0?Je:Ze:j&&j in Object(r)?U(r):W(r)}var D=Ke;function _e(r){return r!=null&&typeof r=="object"}var V=_e;var $e="[object Symbol]";function Ye(r){return typeof r=="symbol"||V(r)&&D(r)==$e}var z=Ye;function Qe(r,s){for(var e=-1,t=r==null?0:r.length,a=Array(t);++e<t;)a[e]=s(r[e],e,r);return a}var H=Qe;var Xe=Array.isArray,G=Xe;var et=1/0,Z=p?p.prototype:void 0,J=Z?Z.toString:void 0;function K(r){if(typeof r=="string")return r;if(G(r))return H(r,K)+"";if(z(r))return J?J.call(r):"";var s=r+"";return s=="0"&&1/r==-et?"-0":s}var _=K;function tt(r){return r==null?"":_(r)}var l=tt;function rt(r,s,e){var t=-1,a=r.length;s<0&&(s=-s>a?0:a+s),e=e>a?a:e,e<0&&(e+=a),a=s>e?0:e-s>>>0,s>>>=0;for(var o=Array(a);++t<a;)o[t]=r[t+s];return o}var $=rt;function at(r,s,e){var t=r.length;return e=e===void 0?t:e,!s&&e>=t?r:$(r,s,e)}var Y=at;var ot="\\ud800-\\udfff",st="\\u0300-\\u036f",nt="\\ufe20-\\ufe2f",ft="\\u20d0-\\u20ff",ut=st+nt+ft,it="\\ufe0e\\ufe0f",pt="\\u200d",dt=RegExp("["+pt+ot+ut+it+"]");function lt(r){return dt.test(r)}var I=lt;function mt(r){return r.split("")}var Q=mt;var X="\\ud800-\\udfff",ct="\\u0300-\\u036f",xt="\\ufe20-\\ufe2f",ht="\\u20d0-\\u20ff",yt=ct+xt+ht,gt="\\ufe0e\\ufe0f",bt="["+X+"]",S="["+yt+"]",P="\\ud83c[\\udffb-\\udfff]",vt="(?:"+S+"|"+P+")",ee="[^"+X+"]",te="(?:\\ud83c[\\udde6-\\uddff]){2}",re="[\\ud800-\\udbff][\\udc00-\\udfff]",Rt="\\u200d",ae=vt+"?",oe="["+gt+"]?",At="(?:"+Rt+"(?:"+[ee,te,re].join("|")+")"+oe+ae+")*",It=oe+ae+At,Ct="(?:"+[ee+S+"?",S,te,re,bt].join("|")+")",Ft=RegExp(P+"(?="+P+")|"+Ct+It,"g");function St(r){return r.match(Ft)||[]}var se=St;function Pt(r){return I(r)?se(r):Q(r)}var ne=Pt;function Tt(r){return function(s){s=l(s);var e=I(s)?ne(s):void 0,t=e?e[0]:s.charAt(0),a=e?Y(e,1).join(""):s.slice(1);return t[r]()+a}}var fe=Tt;var Bt=fe("toUpperCase"),y=Bt;function Lt(r){return y(l(r).toLowerCase())}var ue=Lt;function Ot(r,s,e,t){var a=-1,o=r==null?0:r.length;for(t&&o&&(e=r[++a]);++a<o;)e=s(e,r[a],a,r);return e}var ie=Ot;function Nt(r){return function(s){return r==null?void 0:r[s]}}var pe=Nt;var wt={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},qt=pe(wt),de=qt;var Et=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,kt="\\u0300-\\u036f",Mt="\\ufe20-\\ufe2f",Ut="\\u20d0-\\u20ff",Wt=kt+Mt+Ut,jt="["+Wt+"]",Dt=RegExp(jt,"g");function Vt(r){return r=l(r),r&&r.replace(Et,de).replace(Dt,"")}var le=Vt;var zt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Ht(r){return r.match(zt)||[]}var me=Ht;var Gt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Zt(r){return Gt.test(r)}var ce=Zt;var be="\\ud800-\\udfff",Jt="\\u0300-\\u036f",Kt="\\ufe20-\\ufe2f",_t="\\u20d0-\\u20ff",$t=Jt+Kt+_t,ve="\\u2700-\\u27bf",Re="a-z\\xdf-\\xf6\\xf8-\\xff",Yt="\\xac\\xb1\\xd7\\xf7",Qt="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Xt="\\u2000-\\u206f",er=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ae="A-Z\\xc0-\\xd6\\xd8-\\xde",tr="\\ufe0e\\ufe0f",Ie=Yt+Qt+Xt+er,Ce="['\u2019]",xe="["+Ie+"]",rr="["+$t+"]",Fe="\\d+",ar="["+ve+"]",Se="["+Re+"]",Pe="[^"+be+Ie+Fe+ve+Re+Ae+"]",or="\\ud83c[\\udffb-\\udfff]",sr="(?:"+rr+"|"+or+")",nr="[^"+be+"]",Te="(?:\\ud83c[\\udde6-\\uddff]){2}",Be="[\\ud800-\\udbff][\\udc00-\\udfff]",x="["+Ae+"]",fr="\\u200d",he="(?:"+Se+"|"+Pe+")",ur="(?:"+x+"|"+Pe+")",ye="(?:"+Ce+"(?:d|ll|m|re|s|t|ve))?",ge="(?:"+Ce+"(?:D|LL|M|RE|S|T|VE))?",Le=sr+"?",Oe="["+tr+"]?",ir="(?:"+fr+"(?:"+[nr,Te,Be].join("|")+")"+Oe+Le+")*",pr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",dr="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",lr=Oe+Le+ir,mr="(?:"+[ar,Te,Be].join("|")+")"+lr,cr=RegExp([x+"?"+Se+"+"+ye+"(?="+[xe,x,"$"].join("|")+")",ur+"+"+ge+"(?="+[xe,x+he,"$"].join("|")+")",x+"?"+he+"+"+ye,x+"+"+ge,dr,pr,Fe,mr].join("|"),"g");function xr(r){return r.match(cr)||[]}var Ne=xr;function hr(r,s,e){return r=l(r),s=e?void 0:s,s===void 0?ce(r)?Ne(r):me(r):r.match(s)||[]}var we=hr;var yr="['\u2019]",gr=RegExp(yr,"g");function br(r){return function(s){return ie(we(le(s).replace(gr,"")),r,"")}}var qe=br;var vr=qe(function(r,s,e){return s=s.toLowerCase(),r+(e?ue(s):s)}),T=vr;var Ee=class extends q{constructor({context:e}){super(e);w(this,"context");this.context=e}async generateSnippet({endpoint:e,request:t,options:a}){return this.buildCodeBlock({endpoint:e,snippet:t,options:a}).toString({namespace:"Usage",generation:this.generation,allNamespaceSegments:new Set,allTypeClassReferences:new Map})}generateSnippetSync({endpoint:e,request:t,options:a}){return this.buildCodeBlock({endpoint:e,snippet:t,options:a}).toString({namespace:"Usage",generation:this.generation,allNamespaceSegments:new Set,allTypeClassReferences:new Map})}buildCodeBlock({endpoint:e,snippet:t,options:a}){var f;if(e.examples&&!((f=e.examples)!=null&&f.find(u=>A.DynamicIR.EndpointExample(t)&&u.id===t.id)))throw new Error("Endpoint does not have an example that matches the snippet");let o=this.csharp.codeblock(u=>{u.writeNodeStatement(this.constructClient({endpoint:e,snippet:t})),u.newLine(),u.writeNodeStatement(this.callMethod({endpoint:e,snippet:t}))}),n=this.getStyle(a);switch(n){case R.Concise:return o;case R.Full:return this.buildFullCodeBlock({body:o,options:a});default:m(n)}}buildFullCodeBlock({body:e,options:t}){var n;let a=this.getConfig(t),o=this.csharp.class_({name:(n=a.fullStyleClassName)!=null?n:"Example",namespace:"Usage",access:F.Access.Public});return o.addNamespaceReference(this.types.RootClient.namespace),o.addMethod({name:"Do",access:F.Access.Public,isAsync:!0,parameters:[],body:e}),o}constructClient({endpoint:e,snippet:t}){return this.csharp.codeblock(a=>{a.write("var client = "),a.writeNode(this.getRootClientConstructorInvocation(this.getConstructorArgs({endpoint:e,snippet:t})))})}callMethod({endpoint:e,snippet:t}){var n,f;let a=((n=e.response)==null?void 0:n.type)==="streaming"||((f=e.response)==null?void 0:f.type)==="streamParameter",o=this.csharp.invokeMethod({on:this.csharp.codeblock("client"),method:this.getMethod({endpoint:e}),arguments_:this.getMethodArgs({endpoint:e,snippet:t}),async:!0,configureAwait:!0,multiline:!0,isAsyncEnumerable:a});return a?this.csharp.codeblock(u=>{u.write("await foreach (var item in "),u.writeNode(o),u.writeLine(")"),u.pushScope(),u.writeLine("/* consume each item */"),u.popScope()}):o}getConstructorArgs({endpoint:e,snippet:t}){let a=[];e.auth!=null&&(t.auth!=null?a.push(...this.getConstructorAuthArgs({auth:e.auth,values:t.auth})):this.context.errors.add({severity:d.Warning,message:`Auth with ${e.auth.type} configuration is required for this endpoint`}));let o=[],n=this.getConstructorBaseUrlArgs({baseUrl:t.baseURL,environment:t.environment});n.length>0&&o.push(...n),this.context.errors.scope(i.Headers);let f=[];return this.context.ir.headers!=null&&t.headers!=null&&f.push(...this.getConstructorHeaderArgs({headers:this.context.ir.headers,values:t.headers})),this.context.errors.unscope(),o.length===0?[...a,...f]:[...a,...f,{name:"clientOptions",assignment:this.csharp.instantiateClass({classReference:this.types.ClientOptions,arguments_:o.map(u=>({name:u.name,assignment:u.assignment})),multiline:!0})}]}getConstructorBaseUrlArgs({baseUrl:e,environment:t}){let a=this.getBaseUrlArg({baseUrl:e,environment:t});return A.TypeLiteral.nop(a)?[]:[{name:this.getBaseUrlOptionName(),assignment:a}]}getBaseUrlArg({baseUrl:e,environment:t}){var a;if(e!=null&&t!=null)return this.context.errors.add({severity:d.Critical,message:"Cannot specify both baseUrl and environment options"}),this.csharp.TypeLiteral.nop();if(e!=null)return((a=this.context.ir.environments)==null?void 0:a.environments.type)==="multipleBaseUrls"?(this.context.errors.add({severity:d.Critical,message:"The C# SDK doesn't support a baseUrl when multiple URL environments are configured"}),this.csharp.TypeLiteral.nop()):this.csharp.TypeLiteral.string(e);if(t!=null){if(this.context.isSingleEnvironmentID(t)){let o=this.context.getEnvironmentTypeReferenceFromID(t);return o==null?(this.context.errors.add({severity:d.Warning,message:`Environment ${JSON.stringify(t)} was not found`}),this.csharp.TypeLiteral.nop()):this.csharp.TypeLiteral.reference(o)}if(this.context.isMultiEnvironmentValues(t))return this.context.validateMultiEnvironmentUrlValues(t)?this.csharp.TypeLiteral.reference(this.csharp.instantiateClass({classReference:this.types.Environments,arguments_:Object.entries(t).map(([o,n])=>({name:y(T(o)),assignment:this.context.dynamicTypeLiteralMapper.convert({typeReference:{type:"primitive",value:"STRING"},value:n})})),multiline:!0})):this.csharp.TypeLiteral.nop()}return this.csharp.TypeLiteral.nop()}getConstructorAuthArgs({auth:e,values:t}){if(t.type!==e.type)return this.addError(this.context.newAuthMismatchError({auth:e,values:t}).message),[];switch(e.type){case"basic":return t.type==="basic"?this.getConstructorBasicAuthArg({auth:e,values:t}):[];case"bearer":return t.type==="bearer"?this.getConstructorBearerAuthArgs({auth:e,values:t}):[];case"header":return t.type==="header"?this.getConstructorHeaderAuthArgs({auth:e,values:t}):[];case"oauth":return t.type==="oauth"?this.getConstructorOAuthArgs({auth:e,values:t}):[];case"inferred":return this.addWarning("The C# SDK Generator does not support Inferred auth scheme yet"),[];default:m(e)}}addError(e){this.context.errors.add({severity:d.Critical,message:e})}addWarning(e){this.context.errors.add({severity:d.Warning,message:e})}getConstructorBasicAuthArg({auth:e,values:t}){return[{name:this.context.getParameterName(e.username),assignment:this.csharp.TypeLiteral.string(t.username)},{name:this.context.getParameterName(e.password),assignment:this.csharp.TypeLiteral.string(t.password)}]}getConstructorBearerAuthArgs({auth:e,values:t}){return[{name:this.context.getParameterName(e.token),assignment:this.csharp.TypeLiteral.string(t.token)}]}getConstructorHeaderAuthArgs({auth:e,values:t}){return[{name:this.context.getParameterName(e.header.name.name),assignment:this.context.dynamicTypeLiteralMapper.convert({typeReference:e.header.typeReference,value:t.value,fallbackToDefault:e.header.name.wireValue})}]}getConstructorOAuthArgs({auth:e,values:t}){return[{name:this.context.getParameterName(e.clientId),assignment:this.csharp.TypeLiteral.string(t.clientId)},{name:this.context.getParameterName(e.clientSecret),assignment:this.csharp.TypeLiteral.string(t.clientSecret)}]}getConstructorHeaderArgs({headers:e,values:t}){let a=[];for(let o of e){let n=this.getConstructorHeaderArg({header:o,value:t.value});n!=null&&a.push({name:this.context.getParameterName(o.name.name),assignment:n})}return a}getConstructorHeaderArg({header:e,value:t}){let a=this.context.dynamicTypeLiteralMapper.convert({typeReference:e.typeReference,value:t,fallbackToDefault:e.name.wireValue});if(!A.TypeLiteral.nop(a))return a}getMethodArgs({endpoint:e,snippet:t}){switch(e.request.type){case"inlined":return this.getMethodArgsForInlinedRequest({request:e.request,snippet:t});case"body":return this.getMethodArgsForBodyRequest({request:e.request,snippet:t});default:m(e.request)}}getMethodArgsForInlinedRequest({request:e,snippet:t}){var u,g;let a=[];this.context.errors.scope(i.PathParameters);let o=[],n=[...(u=this.context.ir.pathParameters)!=null?u:[],...(g=e.pathParameters)!=null?g:[]];n.length>0&&o.push(...this.getPathParameters({namedParameters:n,snippet:t})),this.context.errors.unscope(),this.context.errors.scope(i.RequestBody);let f=this.getFilePropertyInfo({request:e,snippet:t});return this.context.errors.unscope(),this.context.includePathParametersInWrappedRequest({request:e,inlinePathParameters:this.settings.shouldInlinePathParameters})||a.push(...o.map(C=>C.value)),a.push(this.getInlinedRequestArg({request:e,snippet:t,pathParameterFields:this.context.includePathParametersInWrappedRequest({request:e,inlinePathParameters:this.settings.shouldInlinePathParameters})?o:[],filePropertyInfo:f})),a}getFilePropertyInfo({request:e,snippet:t}){return e.body==null||!this.context.isFileUploadRequestBody(e.body)?{fileFields:[],bodyPropertyFields:[]}:this.context.filePropertyMapper.getFilePropertyInfo({body:e.body,value:t.requestBody})}getInlinedRequestArg({request:e,snippet:t,pathParameterFields:a,filePropertyInfo:o}){var B,L,O,N;this.context.errors.scope(i.QueryParameters);let f=this.context.associateQueryParametersByWireValue({parameters:(B=e.queryParameters)!=null?B:[],values:(L=t.queryParameters)!=null?L:{}}).map(c=>({name:this.context.getPropertyName(c.name.name),value:this.context.dynamicTypeLiteralMapper.convert(c)}));this.context.errors.unscope(),this.context.errors.scope(i.Headers);let g=this.context.associateByWireValue({parameters:(O=e.headers)!=null?O:[],values:(N=t.headers)!=null?N:{}}).map(c=>({name:this.context.getPropertyName(c.name.name),value:this.context.dynamicTypeLiteralMapper.convert(v(b({},c),{fallbackToDefault:c.name.wireValue}))}));this.context.errors.unscope(),this.context.errors.scope(i.RequestBody);let C=e.body!=null?this.getInlinedRequestBodyConstructorFields({body:e.body,value:t.requestBody,filePropertyInfo:o}):[];return this.context.errors.unscope(),this.csharp.TypeLiteral.class_({reference:this.csharp.classReference({origin:e.declaration,namespace:this.context.getNamespace(e.declaration.fernFilepath)}),fields:[...a,...f,...g,...C]})}getInlinedRequestBodyConstructorFields({body:e,value:t,filePropertyInfo:a}){switch(e.type){case"properties":return this.getInlinedRequestBodyPropertyConstructorFields({parameters:e.value,value:t});case"referenced":return[this.getReferencedRequestBodyPropertyConstructorField({body:e,value:t})];case"fileUpload":return this.getFileUploadRequestBodyConstructorFields({filePropertyInfo:a});default:m(e)}}getInlinedRequestBodyPropertyConstructorFields({parameters:e,value:t}){var n;let a=[],o=this.context.associateByWireValue({parameters:e,values:(n=this.context.getRecord(t))!=null?n:{}});for(let f of o)a.push({name:this.context.getPropertyName(f.name.name),value:this.context.dynamicTypeLiteralMapper.convert(v(b({},f),{fallbackToDefault:f.name.wireValue}))});return a}getFileUploadRequestBodyConstructorFields({filePropertyInfo:e}){return[...e.fileFields,...e.bodyPropertyFields]}getReferencedRequestBodyPropertyConstructorField({body:e,value:t}){return{name:this.context.getPropertyName(e.bodyKey),value:this.getReferencedRequestBodyPropertyTypeLiteral({body:e.bodyType,value:t})}}getReferencedRequestBodyPropertyTypeLiteral({body:e,value:t}){switch(e.type){case"bytes":return this.getBytesBodyRequestArg({value:t});case"typeReference":return this.context.dynamicTypeLiteralMapper.convert({typeReference:e.value,value:t,fallbackToDefault:JSON.stringify(e.value)});default:m(e)}}getMethodArgsForBodyRequest({request:e,snippet:t}){var n,f;let a=[];this.context.errors.scope(i.PathParameters);let o=[...(n=this.context.ir.pathParameters)!=null?n:[],...(f=e.pathParameters)!=null?f:[]];return o.length>0&&a.push(...this.getPathParameters({namedParameters:o,snippet:t}).map(u=>u.value)),this.context.errors.unscope(),this.context.errors.scope(i.RequestBody),e.body!=null&&a.push(this.getBodyRequestArg({body:e.body,value:t.requestBody})),this.context.errors.unscope(),a}getBodyRequestArg({body:e,value:t}){switch(e.type){case"bytes":return this.getBytesBodyRequestArg({value:t});case"typeReference":return e.value.type==="optional"&&t==null?this.csharp.TypeLiteral.null():this.context.dynamicTypeLiteralMapper.convert({typeReference:e.value,value:t,fallbackToDefault:JSON.stringify(e.value)});default:m(e)}}getBytesBodyRequestArg({value:e}){let t=this.context.getValueAsString({value:e});return t==null&&(this.context.errors.add({severity:d.Critical,message:"The bytes request body must be provided in string format"}),t="[bytes]"),this.csharp.TypeLiteral.reference(this.context.getMemoryStreamForString(t))}getRootClientConstructorInvocation(e){return this.csharp.instantiateClass({classReference:this.types.RootClient,arguments_:e,forceUseConstructor:!0,multiline:!0})}getPathParameters({namedParameters:e,snippet:t}){var n;let a=[],o=this.context.associateByWireValueOrDefault({parameters:e,values:(n=t.pathParameters)!=null?n:{}});for(let f of o)a.push({name:this.context.getPropertyName(f.name.name),value:this.context.dynamicTypeLiteralMapper.convert(v(b({},f),{fallbackToDefault:f.name.wireValue}))});return a}getMethod({endpoint:e}){return e.declaration.fernFilepath.allParts.length>0?`${e.declaration.fernFilepath.allParts.map(t=>this.context.getClassName(t)).join(".")}.${this.context.getMethodName(e.declaration.name)}`:this.context.getMethodName(e.declaration.name)}getBaseUrlOptionName(){var e;return((e=this.context.ir.environments)==null?void 0:e.environments.type)==="multipleBaseUrls"?"Environment":"BaseUrl"}getStyle(e){var t,a;return(a=(t=e.style)!=null?t:this.context.options.style)!=null?a:R.Full}getConfig(e){var t,a;return(a=(t=e.config)!=null?t:this.context.options.config)!=null?a:{}}};export{Ee as a};
|
|
2
|
+
/*! Bundled license information:
|
|
3
|
+
|
|
4
|
+
lodash-es/lodash.js:
|
|
5
|
+
(**
|
|
6
|
+
* @license
|
|
7
|
+
* Lodash (Custom Build) <https://lodash.com/>
|
|
8
|
+
* Build: `lodash modularize exports="es" -o ./`
|
|
9
|
+
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
10
|
+
* Released under MIT license <https://lodash.com/license>
|
|
11
|
+
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
12
|
+
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
13
|
+
*)
|
|
14
|
+
*/
|
|
15
|
+
//# sourceMappingURL=chunk-SAYITSWL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSlice.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castSlice.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasUnicode.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_asciiToArray.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_unicodeToArray.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToArray.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createCaseFirst.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/upperFirst.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/capitalize.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayReduce.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePropertyOf.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_deburrLetter.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/deburr.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_asciiWords.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasUnicodeWord.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_unicodeWords.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/words.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createCompounder.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/camelCase.js","../../src/EndpointSnippetGenerator.ts"],"sourcesContent":["/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import { NamedArgument, Options, Scope, Severity, Style } from \"@fern-api/browser-compatible-base-generator\";\nimport { assertNever } from \"@fern-api/core-utils\";\nimport { ast, is, WithGeneration } from \"@fern-api/csharp-codegen\";\nimport { FernIr } from \"@fern-api/dynamic-ir-sdk\";\nimport { camelCase, upperFirst } from \"lodash-es\";\nimport { Config } from \"./Config\";\nimport { DynamicSnippetsGeneratorContext } from \"./context/DynamicSnippetsGeneratorContext\";\nimport { FilePropertyInfo } from \"./context/FilePropertyMapper\";\n\nexport class EndpointSnippetGenerator extends WithGeneration {\n private context: DynamicSnippetsGeneratorContext;\n\n constructor({ context }: { context: DynamicSnippetsGeneratorContext }) {\n super(context);\n this.context = context;\n }\n\n public async generateSnippet({\n endpoint,\n request,\n options\n }: {\n endpoint: FernIr.dynamic.Endpoint;\n request: FernIr.dynamic.EndpointSnippetRequest;\n options: Options;\n }): Promise<string> {\n const code = this.buildCodeBlock({ endpoint, snippet: request, options });\n return code.toString({\n namespace: \"Usage\",\n generation: this.generation,\n allNamespaceSegments: new Set(),\n allTypeClassReferences: new Map()\n });\n }\n\n public generateSnippetSync({\n endpoint,\n request,\n options\n }: {\n endpoint: FernIr.dynamic.Endpoint;\n request: FernIr.dynamic.EndpointSnippetRequest;\n options: Options;\n }): string {\n const code = this.buildCodeBlock({ endpoint, snippet: request, options });\n return code.toString({\n namespace: \"Usage\",\n generation: this.generation,\n allNamespaceSegments: new Set(),\n allTypeClassReferences: new Map()\n });\n }\n\n private buildCodeBlock({\n endpoint,\n snippet,\n options\n }: {\n endpoint: FernIr.dynamic.Endpoint;\n snippet: FernIr.dynamic.EndpointSnippetRequest;\n options: Options;\n }): ast.AstNode {\n // if we're actually passed the examples, we need to\n // check that the endpoint that we're generating has an example that matches the snippet\n if (\n endpoint.examples &&\n !endpoint.examples?.find((each) => is.DynamicIR.EndpointExample(snippet) && each.id === snippet.id)\n ) {\n // the dsg expects us to just throw when there is nothing to generate.\n throw new Error(\"Endpoint does not have an example that matches the snippet\");\n }\n\n const body = this.csharp.codeblock((writer) => {\n writer.writeNodeStatement(this.constructClient({ endpoint, snippet }));\n writer.newLine();\n writer.writeNodeStatement(this.callMethod({ endpoint, snippet }));\n });\n const style = this.getStyle(options);\n switch (style) {\n case Style.Concise:\n return body;\n case Style.Full:\n return this.buildFullCodeBlock({ body, options });\n default:\n assertNever(style);\n }\n }\n\n private buildFullCodeBlock({ body, options }: { body: ast.CodeBlock; options: Options }): ast.AstNode {\n const config = this.getConfig(options);\n const class_ = this.csharp.class_({\n name: config.fullStyleClassName ?? \"Example\",\n namespace: \"Usage\",\n access: ast.Access.Public\n });\n\n // before we add the method, we're going to make the class aware of the root client namespace\n // which can help when finding out if we're going to have an ambiguous type of some kind.\n class_.addNamespaceReference(this.types.RootClient.namespace);\n\n class_.addMethod({\n name: \"Do\",\n access: ast.Access.Public,\n isAsync: true,\n parameters: [],\n body\n });\n return class_;\n }\n\n private constructClient({\n endpoint,\n snippet\n }: {\n endpoint: FernIr.dynamic.Endpoint;\n snippet: FernIr.dynamic.EndpointSnippetRequest;\n }): ast.CodeBlock {\n return this.csharp.codeblock((writer) => {\n writer.write(`var client = `);\n writer.writeNode(this.getRootClientConstructorInvocation(this.getConstructorArgs({ endpoint, snippet })));\n });\n }\n\n private callMethod({\n endpoint,\n snippet\n }: {\n endpoint: FernIr.dynamic.Endpoint;\n snippet: FernIr.dynamic.EndpointSnippetRequest;\n }): ast.CodeBlock | ast.MethodInvocation {\n // if the example has *any* sample with stream set to true, then the method is an async enumerable\n const isAsyncEnumerable =\n endpoint.response?.type === \"streaming\" || endpoint.response?.type === \"streamParameter\";\n\n const invocation = this.csharp.invokeMethod({\n on: this.csharp.codeblock(\"client\"),\n method: this.getMethod({ endpoint }),\n arguments_: this.getMethodArgs({ endpoint, snippet }),\n async: true,\n configureAwait: true,\n multiline: true,\n isAsyncEnumerable\n });\n\n if (isAsyncEnumerable) {\n return this.csharp.codeblock((writer) => {\n writer.write(\"await foreach (var item in \");\n writer.writeNode(invocation);\n writer.writeLine(\")\");\n writer.pushScope();\n writer.writeLine(\"/* consume each item */\");\n writer.popScope();\n });\n }\n return invocation;\n }\n\n private getConstructorArgs({\n endpoint,\n snippet\n }: {\n endpoint: FernIr.dynamic.Endpoint;\n snippet: FernIr.dynamic.EndpointSnippetRequest;\n }): NamedArgument[] {\n const authArgs: NamedArgument[] = [];\n if (endpoint.auth != null) {\n if (snippet.auth != null) {\n authArgs.push(...this.getConstructorAuthArgs({ auth: endpoint.auth, values: snippet.auth }));\n } else {\n this.context.errors.add({\n severity: Severity.Warning,\n message: `Auth with ${endpoint.auth.type} configuration is required for this endpoint`\n });\n }\n }\n const optionArgs: NamedArgument[] = [];\n const baseUrlArgs = this.getConstructorBaseUrlArgs({\n baseUrl: snippet.baseURL,\n environment: snippet.environment\n });\n if (baseUrlArgs.length > 0) {\n optionArgs.push(...baseUrlArgs);\n }\n this.context.errors.scope(Scope.Headers);\n const headerArgs: NamedArgument[] = [];\n if (this.context.ir.headers != null && snippet.headers != null) {\n headerArgs.push(\n ...this.getConstructorHeaderArgs({ headers: this.context.ir.headers, values: snippet.headers })\n );\n }\n this.context.errors.unscope();\n\n if (optionArgs.length === 0) {\n return [...authArgs, ...headerArgs];\n }\n return [\n ...authArgs,\n ...headerArgs,\n {\n name: \"clientOptions\",\n assignment: this.csharp.instantiateClass({\n classReference: this.types.ClientOptions,\n arguments_: optionArgs.map((arg) => ({\n name: arg.name,\n assignment: arg.assignment\n })),\n multiline: true\n })\n }\n ];\n }\n\n private getConstructorBaseUrlArgs({\n baseUrl,\n environment\n }: {\n baseUrl: string | undefined;\n environment: FernIr.dynamic.EnvironmentValues | undefined;\n }): NamedArgument[] {\n const baseUrlArg = this.getBaseUrlArg({ baseUrl, environment });\n if (is.TypeLiteral.nop(baseUrlArg)) {\n return [];\n }\n return [\n {\n name: this.getBaseUrlOptionName(),\n assignment: baseUrlArg\n }\n ];\n }\n\n private getBaseUrlArg({\n baseUrl,\n environment\n }: {\n baseUrl: string | undefined;\n environment: FernIr.dynamic.EnvironmentValues | undefined;\n }): ast.TypeLiteral {\n if (baseUrl != null && environment != null) {\n this.context.errors.add({\n severity: Severity.Critical,\n message: \"Cannot specify both baseUrl and environment options\"\n });\n return this.csharp.TypeLiteral.nop();\n }\n if (baseUrl != null) {\n if (this.context.ir.environments?.environments.type === \"multipleBaseUrls\") {\n this.context.errors.add({\n severity: Severity.Critical,\n message: \"The C# SDK doesn't support a baseUrl when multiple URL environments are configured\"\n });\n return this.csharp.TypeLiteral.nop();\n }\n return this.csharp.TypeLiteral.string(baseUrl);\n }\n if (environment != null) {\n if (this.context.isSingleEnvironmentID(environment)) {\n const classReference = this.context.getEnvironmentTypeReferenceFromID(environment);\n if (classReference == null) {\n this.context.errors.add({\n severity: Severity.Warning,\n message: `Environment ${JSON.stringify(environment)} was not found`\n });\n return this.csharp.TypeLiteral.nop();\n }\n return this.csharp.TypeLiteral.reference(classReference);\n }\n if (this.context.isMultiEnvironmentValues(environment)) {\n if (!this.context.validateMultiEnvironmentUrlValues(environment)) {\n return this.csharp.TypeLiteral.nop();\n }\n return this.csharp.TypeLiteral.reference(\n this.csharp.instantiateClass({\n classReference: this.types.Environments,\n arguments_: Object.entries(environment).map(([key, value]) => ({\n name: upperFirst(camelCase(key)),\n assignment: this.context.dynamicTypeLiteralMapper.convert({\n typeReference: {\n type: \"primitive\",\n value: \"STRING\"\n },\n value\n })\n })),\n multiline: true\n })\n );\n }\n }\n return this.csharp.TypeLiteral.nop();\n }\n\n private getConstructorAuthArgs({\n auth,\n values\n }: {\n auth: FernIr.dynamic.Auth;\n values: FernIr.dynamic.AuthValues;\n }): NamedArgument[] {\n if (values.type !== auth.type) {\n this.addError(this.context.newAuthMismatchError({ auth, values }).message);\n return [];\n }\n\n switch (auth.type) {\n case \"basic\":\n return values.type === \"basic\" ? this.getConstructorBasicAuthArg({ auth, values }) : [];\n case \"bearer\":\n return values.type === \"bearer\" ? this.getConstructorBearerAuthArgs({ auth, values }) : [];\n case \"header\":\n return values.type === \"header\" ? this.getConstructorHeaderAuthArgs({ auth, values }) : [];\n case \"oauth\":\n return values.type === \"oauth\" ? this.getConstructorOAuthArgs({ auth, values }) : [];\n case \"inferred\":\n this.addWarning(\"The C# SDK Generator does not support Inferred auth scheme yet\");\n return [];\n default:\n assertNever(auth);\n }\n }\n\n private addError(message: string): void {\n this.context.errors.add({ severity: Severity.Critical, message });\n }\n\n private addWarning(message: string): void {\n this.context.errors.add({ severity: Severity.Warning, message });\n }\n\n private getConstructorBasicAuthArg({\n auth,\n values\n }: {\n auth: FernIr.dynamic.BasicAuth;\n values: FernIr.dynamic.BasicAuthValues;\n }): NamedArgument[] {\n return [\n {\n name: this.context.getParameterName(auth.username),\n assignment: this.csharp.TypeLiteral.string(values.username)\n },\n {\n name: this.context.getParameterName(auth.password),\n assignment: this.csharp.TypeLiteral.string(values.password)\n }\n ];\n }\n\n private getConstructorBearerAuthArgs({\n auth,\n values\n }: {\n auth: FernIr.dynamic.BearerAuth;\n values: FernIr.dynamic.BearerAuthValues;\n }): NamedArgument[] {\n return [\n {\n name: this.context.getParameterName(auth.token),\n assignment: this.csharp.TypeLiteral.string(values.token)\n }\n ];\n }\n\n private getConstructorHeaderAuthArgs({\n auth,\n values\n }: {\n auth: FernIr.dynamic.HeaderAuth;\n values: FernIr.dynamic.HeaderAuthValues;\n }): NamedArgument[] {\n return [\n {\n name: this.context.getParameterName(auth.header.name.name),\n assignment: this.context.dynamicTypeLiteralMapper.convert({\n typeReference: auth.header.typeReference,\n value: values.value,\n fallbackToDefault: auth.header.name.wireValue\n })\n }\n ];\n }\n\n private getConstructorOAuthArgs({\n auth,\n values\n }: {\n auth: FernIr.dynamic.OAuth;\n values: FernIr.dynamic.OAuthValues;\n }): NamedArgument[] {\n return [\n {\n name: this.context.getParameterName(auth.clientId),\n assignment: this.csharp.TypeLiteral.string(values.clientId)\n },\n {\n name: this.context.getParameterName(auth.clientSecret),\n assignment: this.csharp.TypeLiteral.string(values.clientSecret)\n }\n ];\n }\n\n private getConstructorHeaderArgs({\n headers,\n values\n }: {\n headers: FernIr.dynamic.NamedParameter[];\n values: FernIr.dynamic.Values;\n }): NamedArgument[] {\n const args: NamedArgument[] = [];\n for (const header of headers) {\n const arg = this.getConstructorHeaderArg({ header, value: values.value });\n if (arg != null) {\n args.push({\n name: this.context.getParameterName(header.name.name),\n assignment: arg\n });\n }\n }\n return args;\n }\n\n private getConstructorHeaderArg({\n header,\n value\n }: {\n header: FernIr.dynamic.NamedParameter;\n value: unknown;\n }): ast.TypeLiteral | undefined {\n const typeLiteral = this.context.dynamicTypeLiteralMapper.convert({\n typeReference: header.typeReference,\n value,\n fallbackToDefault: header.name.wireValue\n });\n if (is.TypeLiteral.nop(typeLiteral)) {\n // Literal header values (e.g. \"X-API-Version\") should not be included in the\n // client constructor.\n return undefined;\n }\n return typeLiteral;\n }\n\n private getMethodArgs({\n endpoint,\n snippet\n }: {\n endpoint: FernIr.dynamic.Endpoint;\n snippet: FernIr.dynamic.EndpointSnippetRequest;\n }): ast.TypeLiteral[] {\n switch (endpoint.request.type) {\n case \"inlined\":\n return this.getMethodArgsForInlinedRequest({ request: endpoint.request, snippet });\n case \"body\":\n return this.getMethodArgsForBodyRequest({ request: endpoint.request, snippet });\n default:\n assertNever(endpoint.request);\n }\n }\n\n private getMethodArgsForInlinedRequest({\n request,\n snippet\n }: {\n request: FernIr.dynamic.InlinedRequest;\n snippet: FernIr.dynamic.EndpointSnippetRequest;\n }): ast.TypeLiteral[] {\n const args: ast.TypeLiteral[] = [];\n\n this.context.errors.scope(Scope.PathParameters);\n const pathParameterFields: ast.ConstructorField[] = [];\n const pathParameters = [...(this.context.ir.pathParameters ?? []), ...(request.pathParameters ?? [])];\n if (pathParameters.length > 0) {\n pathParameterFields.push(...this.getPathParameters({ namedParameters: pathParameters, snippet }));\n }\n this.context.errors.unscope();\n\n // TODO: Add support for file properties.\n this.context.errors.scope(Scope.RequestBody);\n const filePropertyInfo = this.getFilePropertyInfo({ request, snippet });\n this.context.errors.unscope();\n\n if (\n !this.context.includePathParametersInWrappedRequest({\n request,\n inlinePathParameters: this.settings.shouldInlinePathParameters\n })\n ) {\n args.push(...pathParameterFields.map((field) => field.value));\n }\n // For now, the C# SDK always requires the inlined request parameter.\n args.push(\n this.getInlinedRequestArg({\n request,\n snippet,\n pathParameterFields: this.context.includePathParametersInWrappedRequest({\n request,\n inlinePathParameters: this.settings.shouldInlinePathParameters\n })\n ? pathParameterFields\n : [],\n filePropertyInfo\n })\n );\n return args;\n }\n\n private getFilePropertyInfo({\n request,\n snippet\n }: {\n request: FernIr.dynamic.InlinedRequest;\n snippet: FernIr.dynamic.EndpointSnippetRequest;\n }): FilePropertyInfo {\n if (request.body == null || !this.context.isFileUploadRequestBody(request.body)) {\n return {\n fileFields: [],\n bodyPropertyFields: []\n };\n }\n return this.context.filePropertyMapper.getFilePropertyInfo({\n body: request.body,\n value: snippet.requestBody\n });\n }\n\n private getInlinedRequestArg({\n request,\n snippet,\n pathParameterFields,\n filePropertyInfo\n }: {\n request: FernIr.dynamic.InlinedRequest;\n snippet: FernIr.dynamic.EndpointSnippetRequest;\n pathParameterFields: ast.ConstructorField[];\n filePropertyInfo: FilePropertyInfo;\n }): ast.TypeLiteral {\n this.context.errors.scope(Scope.QueryParameters);\n const queryParameters = this.context.associateQueryParametersByWireValue({\n parameters: request.queryParameters ?? [],\n values: snippet.queryParameters ?? {}\n });\n const queryParameterFields = queryParameters.map((queryParameter) => ({\n name: this.context.getPropertyName(queryParameter.name.name),\n value: this.context.dynamicTypeLiteralMapper.convert(queryParameter)\n }));\n this.context.errors.unscope();\n\n this.context.errors.scope(Scope.Headers);\n const headers = this.context.associateByWireValue({\n parameters: request.headers ?? [],\n values: snippet.headers ?? {}\n });\n const headerFields = headers.map((header) => ({\n name: this.context.getPropertyName(header.name.name),\n value: this.context.dynamicTypeLiteralMapper.convert({\n ...header,\n fallbackToDefault: header.name.wireValue\n })\n }));\n this.context.errors.unscope();\n\n this.context.errors.scope(Scope.RequestBody);\n const requestBodyFields =\n request.body != null\n ? this.getInlinedRequestBodyConstructorFields({\n body: request.body,\n value: snippet.requestBody,\n filePropertyInfo\n })\n : [];\n this.context.errors.unscope();\n\n return this.csharp.TypeLiteral.class_({\n reference: this.csharp.classReference({\n origin: request.declaration,\n namespace: this.context.getNamespace(request.declaration.fernFilepath)\n }),\n fields: [...pathParameterFields, ...queryParameterFields, ...headerFields, ...requestBodyFields]\n });\n }\n\n private getInlinedRequestBodyConstructorFields({\n body,\n value,\n filePropertyInfo\n }: {\n body: FernIr.dynamic.InlinedRequestBody;\n value: unknown;\n filePropertyInfo: FilePropertyInfo;\n }): ast.ConstructorField[] {\n switch (body.type) {\n case \"properties\":\n return this.getInlinedRequestBodyPropertyConstructorFields({ parameters: body.value, value });\n case \"referenced\":\n return [this.getReferencedRequestBodyPropertyConstructorField({ body, value })];\n case \"fileUpload\":\n return this.getFileUploadRequestBodyConstructorFields({ filePropertyInfo });\n default:\n assertNever(body);\n }\n }\n\n private getInlinedRequestBodyPropertyConstructorFields({\n parameters,\n value\n }: {\n parameters: FernIr.dynamic.NamedParameter[];\n value: unknown;\n }): ast.ConstructorField[] {\n const fields: ast.ConstructorField[] = [];\n\n const bodyProperties = this.context.associateByWireValue({\n parameters,\n values: this.context.getRecord(value) ?? {}\n });\n for (const parameter of bodyProperties) {\n fields.push({\n name: this.context.getPropertyName(parameter.name.name),\n value: this.context.dynamicTypeLiteralMapper.convert({\n ...parameter,\n fallbackToDefault: parameter.name.wireValue\n })\n });\n }\n\n return fields;\n }\n\n private getFileUploadRequestBodyConstructorFields({\n filePropertyInfo\n }: {\n filePropertyInfo: FilePropertyInfo;\n }): ast.ConstructorField[] {\n return [...filePropertyInfo.fileFields, ...filePropertyInfo.bodyPropertyFields];\n }\n\n private getReferencedRequestBodyPropertyConstructorField({\n body,\n value\n }: {\n body: FernIr.dynamic.ReferencedRequestBody;\n value: unknown;\n }): ast.ConstructorField {\n return {\n name: this.context.getPropertyName(body.bodyKey),\n value: this.getReferencedRequestBodyPropertyTypeLiteral({ body: body.bodyType, value })\n };\n }\n\n private getReferencedRequestBodyPropertyTypeLiteral({\n body,\n value\n }: {\n body: FernIr.dynamic.ReferencedRequestBodyType;\n value: unknown;\n }): ast.TypeLiteral {\n switch (body.type) {\n case \"bytes\":\n return this.getBytesBodyRequestArg({ value });\n case \"typeReference\":\n return this.context.dynamicTypeLiteralMapper.convert({\n typeReference: body.value,\n value,\n fallbackToDefault: JSON.stringify(body.value)\n });\n default:\n assertNever(body);\n }\n }\n\n private getMethodArgsForBodyRequest({\n request,\n snippet\n }: {\n request: FernIr.dynamic.BodyRequest;\n snippet: FernIr.dynamic.EndpointSnippetRequest;\n }): ast.TypeLiteral[] {\n const args: ast.TypeLiteral[] = [];\n this.context.errors.scope(Scope.PathParameters);\n const pathParameters = [...(this.context.ir.pathParameters ?? []), ...(request.pathParameters ?? [])];\n if (pathParameters.length > 0) {\n args.push(\n ...this.getPathParameters({ namedParameters: pathParameters, snippet }).map((field) => field.value)\n );\n }\n this.context.errors.unscope();\n\n this.context.errors.scope(Scope.RequestBody);\n if (request.body != null) {\n args.push(this.getBodyRequestArg({ body: request.body, value: snippet.requestBody }));\n }\n this.context.errors.unscope();\n\n return args;\n }\n\n private getBodyRequestArg({\n body,\n value\n }: {\n body: FernIr.dynamic.ReferencedRequestBodyType;\n value: unknown;\n }): ast.TypeLiteral {\n switch (body.type) {\n case \"bytes\": {\n return this.getBytesBodyRequestArg({ value });\n }\n case \"typeReference\":\n // if the body type is optional, but not provided, then we should use null\n // (the generated body arg parameter is currently required)\n if (body.value.type === \"optional\" && value == undefined) {\n return this.csharp.TypeLiteral.null();\n }\n return this.context.dynamicTypeLiteralMapper.convert({\n typeReference: body.value,\n value,\n fallbackToDefault: JSON.stringify(body.value)\n });\n default:\n assertNever(body);\n }\n }\n\n private getBytesBodyRequestArg({ value }: { value: unknown }): ast.TypeLiteral {\n let str = this.context.getValueAsString({ value });\n if (str == null) {\n this.context.errors.add({\n severity: Severity.Critical,\n message: \"The bytes request body must be provided in string format\"\n });\n\n // if there is no value, then let's just use a random string\n str = \"[bytes]\";\n }\n return this.csharp.TypeLiteral.reference(this.context.getMemoryStreamForString(str));\n }\n\n private getRootClientConstructorInvocation(arguments_: NamedArgument[]): ast.ClassInstantiation {\n return this.csharp.instantiateClass({\n classReference: this.types.RootClient,\n arguments_,\n forceUseConstructor: true,\n multiline: true\n });\n }\n\n private getPathParameters({\n namedParameters,\n snippet\n }: {\n namedParameters: FernIr.dynamic.NamedParameter[];\n snippet: FernIr.dynamic.EndpointSnippetRequest;\n }): ast.ConstructorField[] {\n const args: ast.ConstructorField[] = [];\n const pathParameters = this.context.associateByWireValueOrDefault({\n parameters: namedParameters,\n values: snippet.pathParameters ?? {}\n });\n for (const parameter of pathParameters) {\n args.push({\n name: this.context.getPropertyName(parameter.name.name),\n value: this.context.dynamicTypeLiteralMapper.convert({\n ...parameter,\n fallbackToDefault: parameter.name.wireValue\n })\n });\n }\n return args;\n }\n\n private getMethod({ endpoint }: { endpoint: FernIr.dynamic.Endpoint }): string {\n if (endpoint.declaration.fernFilepath.allParts.length > 0) {\n return `${endpoint.declaration.fernFilepath.allParts\n .map((val) => this.context.getClassName(val))\n .join(\".\")}.${this.context.getMethodName(endpoint.declaration.name)}`;\n }\n\n return this.context.getMethodName(endpoint.declaration.name);\n }\n\n private getBaseUrlOptionName(): string {\n if (this.context.ir.environments?.environments.type === \"multipleBaseUrls\") {\n return \"Environment\";\n }\n return \"BaseUrl\";\n }\n\n private getStyle(options: Options): Style {\n return options.style ?? this.context.options.style ?? Style.Full;\n }\n\n private getConfig(options: Options): Config {\n return options.config ?? this.context.options.config ?? {};\n }\n}\n"],"mappings":"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AM,OAAU,IAAK,OAAU,IACzC,OAAU,IAAM,OAAU,IAAK,OAAU,IACzC,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IACxD,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IACxD,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IACxD,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IAAK,OAAU,IACvE,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IAAK,OAAU,IACvE,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IACxD,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IACxD,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IACxD,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IAAK,OAAU,IACvE,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IAAK,OAAU,IACvE,OAAU,IAAM,OAAU,IAC1B,OAAU,IAAM,OAAU,IAAK,OAAU,IACzC,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IAAK,OAAU,IACvE,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IAAK,OAAU,IACvE,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IACxD,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IACxD,OAAU,IAAM,OAAU,IAAK,OAAU,IACzC,OAAU,IAAM,OAAU,IAAK,OAAU,IACzC,OAAU,IAAM,OAAU,IAAK,OAAU,IACzC,OAAU,IAAM,OAAU,IAAK,OAAU,IACzC,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IACxD,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IACxD,OAAU,IAAM,OAAU,IAAK,OAAU,IACzC,OAAU,IAAM,OAAU,IAAK,OAAU,IACzC,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IAAK,OAAU,IAAK,OAAU,IACtF,OAAU,IAAM,OAAU,IAAK,OAAU,IAAK,OAAU,IAAK,OAAU,IAAK,OAAU,IACtF,OAAU,IAAM,OAAU,IAC1B,OAAU,IAAM,OAAU,IAAK,OAAU,IACzC,OAAU,IAAM,OAAU,IA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","names":["freeGlobal","freeGlobal_default","freeSelf","root","freeGlobal_default","root_default","Symbol","root_default","Symbol_default","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","Symbol_default","getRawTag","value","isOwn","tag","unmasked","e","result","getRawTag_default","objectProto","nativeObjectToString","objectToString","value","objectToString_default","nullTag","undefinedTag","symToStringTag","Symbol_default","baseGetTag","value","getRawTag_default","objectToString_default","baseGetTag_default","isObjectLike","value","isObjectLike_default","symbolTag","isSymbol","value","isObjectLike_default","baseGetTag_default","isSymbol_default","arrayMap","array","iteratee","index","length","result","arrayMap_default","isArray","isArray_default","INFINITY","symbolProto","Symbol_default","symbolToString","baseToString","value","isArray_default","arrayMap_default","isSymbol_default","result","baseToString_default","toString","value","baseToString_default","toString_default","baseSlice","array","start","end","index","length","result","baseSlice_default","castSlice","array","start","end","length","baseSlice_default","castSlice_default","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","hasUnicode","string","hasUnicode_default","asciiToArray","string","asciiToArray_default","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsZWJ","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","unicodeToArray","string","unicodeToArray_default","stringToArray","string","hasUnicode_default","unicodeToArray_default","asciiToArray_default","stringToArray_default","createCaseFirst","methodName","string","toString_default","strSymbols","hasUnicode_default","stringToArray_default","chr","trailing","castSlice_default","createCaseFirst_default","upperFirst","createCaseFirst_default","upperFirst_default","capitalize","string","upperFirst_default","toString_default","capitalize_default","arrayReduce","array","iteratee","accumulator","initAccum","index","length","arrayReduce_default","basePropertyOf","object","key","basePropertyOf_default","deburredLetters","deburrLetter","basePropertyOf_default","deburrLetter_default","reLatin","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsCombo","reComboMark","deburr","string","toString_default","deburrLetter_default","deburr_default","reAsciiWord","asciiWords","string","asciiWords_default","reHasUnicodeWord","hasUnicodeWord","string","hasUnicodeWord_default","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","reUnicodeWord","unicodeWords","string","unicodeWords_default","words","string","pattern","guard","toString_default","hasUnicodeWord_default","unicodeWords_default","asciiWords_default","words_default","rsApos","reApos","createCompounder","callback","string","arrayReduce_default","words_default","deburr_default","createCompounder_default","camelCase","createCompounder_default","result","word","index","capitalize_default","camelCase_default","EndpointSnippetGenerator","WithGeneration","context","__publicField","endpoint","request","options","snippet","_a","each","is","body","writer","style","Style","assertNever","config","class_","ast_exports","_b","isAsyncEnumerable","invocation","authArgs","Severity","optionArgs","baseUrlArgs","Scope","headerArgs","arg","baseUrl","environment","baseUrlArg","classReference","key","value","upperFirst_default","camelCase_default","auth","values","message","headers","args","header","typeLiteral","pathParameterFields","pathParameters","filePropertyInfo","field","_c","_d","queryParameterFields","queryParameter","headerFields","__spreadProps","__spreadValues","requestBodyFields","parameters","fields","bodyProperties","parameter","str","arguments_","namedParameters","val"]}
|