@fern-api/fdr-sdk 1.2.33-e73a4c8a93 → 1.2.34-2195dafce8
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/dist/js/api-definition/index.js +2 -0
- package/dist/js/api-definition/index.js.map +1 -1
- package/dist/js/api-definition/index.mjs +2 -0
- package/dist/js/api-definition/index.mjs.map +1 -1
- package/dist/js/converters/index.js +27 -0
- package/dist/js/converters/index.js.map +1 -1
- package/dist/js/converters/index.mjs +27 -0
- package/dist/js/converters/index.mjs.map +1 -1
- package/dist/js/index.js +27 -0
- package/dist/js/index.js.map +1 -1
- package/dist/js/index.mjs +27 -0
- package/dist/js/index.mjs.map +1 -1
- package/dist/js/navigation/index.js +27 -0
- package/dist/js/navigation/index.js.map +1 -1
- package/dist/js/navigation/index.mjs +27 -0
- package/dist/js/navigation/index.mjs.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api-definition/index.ts","../../../src/api-definition/const.ts","../../../../commons/core-utils/src/assertNever.ts","../../../../commons/core-utils/src/identity.ts","../../../../commons/core-utils/src/isNonNullish.ts","../../../../commons/core-utils/src/objects/isPlainObject.ts","../../../../commons/core-utils/src/sanitizeUrl.ts","../../../../../node_modules/.pnpm/title@4.0.1/node_modules/title/dist/esm/lower-case.js","../../../../../node_modules/.pnpm/title@4.0.1/node_modules/title/dist/esm/specials.js","../../../../../node_modules/.pnpm/title@4.0.1/node_modules/title/dist/esm/index.js","../../../../commons/core-utils/src/specialTokens.ts","../../../../commons/core-utils/src/titleCase.ts","../../../../commons/core-utils/src/unknownToString.ts","../../../../commons/core-utils/src/visitDiscriminatedUnion.ts","../../../src/api-definition/unwrap.ts","../../../src/orpc-client/api/contract-latest.ts","../../../src/orpc-client/api/shared.ts","../../../src/orpc-client/shared.ts","../../../src/orpc-client/api/contract-register.ts","../../../src/api-definition/availability.ts","../../../src/api-definition/collect-referenced-types.ts","../../../src/api-definition/collect-type-tree.ts","../../../src/api-definition/typeid-visitor.ts","../../../src/api-definition/prune.ts","../../../src/api-definition/endpoint-context.ts","../../../src/api-definition/endpoint-path-literal.ts","../../../src/api-definition/join.ts","../../../src/api-definition/lang.ts","../../../src/api-definition/migrators/v1ToV2.ts","../../../src/navigation/consts.ts","../../../src/api-definition/snippets/curl.ts","../../../src/utils/obfuscate-secret.ts","../../../src/api-definition/wrapOpenRPCRequest.ts","../../../src/api-definition/snippets/multipart-filename-placeholder.ts","../../../src/api-definition/snippets/SnippetHttpRequest.ts","../../../src/api-definition/url.ts","../../../src/api-definition/sort-keys.ts","../../../src/api-definition/status-message.ts","../../../src/api-definition/snippets/constants.ts","../../../src/api-definition/snippets/auth-scheme.ts","../../../src/api-definition/snippets/get-har-request.ts","../../../src/api-definition/snippets/graphql-snippets.ts","../../../src/api-definition/snippets/HttpSnippetConverter.ts","../../../src/api-definition/snippets/http-snippets.ts","../../../src/api-definition/snippets/sdk-snippets.ts","../../../src/api-definition/snippets/types.ts","../../../src/api-definition/transformer.ts"],"sourcesContent":["export * from \"./collect-referenced-types\";\nexport * from \"./collect-type-tree\";\nexport * from \"./endpoint-context\";\nexport * from \"./endpoint-path-literal\";\nexport * from \"./join\";\nexport * from \"./lang\";\nexport * from \"./latest\";\nexport * from \"./migrators/v1ToV2\";\nexport * from \"./prune\";\nexport * from \"./snippets\";\nexport * from \"./status-message\";\nexport * from \"./transformer\";\nexport * from \"./types\";\nexport * from \"./unwrap\";\nexport * from \"./url\";\nexport * from \"./wrapOpenRPCRequest\";\n","/**\n * The maximum number of times to loop while unwrapping a type reference.\n * This may need to be increased if the API definition contains extremely deeply nested type references.\n */\nexport const LOOP_TOLERANCE = 100;\n\n/**\n * The maximum number of times to loop while expanding type IDs.\n * Since there can be many type ids to expand, this number is an order of magnitude larger than `LOOP_TOLERANCE`.\n */\nexport const LARGE_LOOP_TOLERANCE = 100 ** 2;\n","export function assertNever(x: never): never {\n throw new Error(\"Unexpected value: \" + JSON.stringify(x));\n}\n\nexport function assertNeverNoThrow(_: never): void {}\n\nexport default assertNever;\n","export function identity<T>(value: T): T {\n return value;\n}\n\nexport default identity;\n","export function isNonNullish<T>(x: T | null | undefined): x is T {\n return x != null;\n}\n\nexport function assertNonNullish<T>(x: T | null | undefined, message?: string): asserts x is T {\n if (x == null) {\n throw new Error(message ?? \"Value is null or undefined\");\n }\n}\n","// https://github.com/lodash/lodash/blob/master/isPlainObject.js\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n if (!isObjectLike(value) || String(value) !== \"[object Object]\") {\n return false;\n }\n if (Object.getPrototypeOf(value) == null) {\n return true;\n }\n let proto = value;\n while (Object.getPrototypeOf(proto) != null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n}\n\nfunction isObjectLike(value: unknown) {\n return typeof value === \"object\" && value != null;\n}\n\nexport default isPlainObject;\n","/**\n * validates and sanitizes a base URL.\n * returns null if the URL cannot be coerced into a valid URL.\n */\nexport function sanitizeUrl(url: string | undefined): string | undefined {\n if (!url) {\n return undefined;\n }\n\n // handle protocol-relative URLs (starting with //)\n if (url.startsWith(\"//\")) {\n try {\n const parsedUrl = new URL(`https:${url}`);\n return parsedUrl.toString();\n } catch {\n return undefined;\n }\n }\n\n // handle URLs without protocol\n if (\n !url.startsWith(\"http://\") &&\n !url.startsWith(\"https://\") &&\n !url.startsWith(\"wss://\") &&\n !url.startsWith(\"ws://\") &&\n !url.startsWith(\"mailto:\") &&\n !url.startsWith(\"tel:\")\n ) {\n try {\n const parsedUrl = new URL(`https://${url}`);\n return parsedUrl.toString();\n } catch {\n return undefined;\n }\n }\n\n // validate complete URLs\n try {\n const parsedUrl = new URL(url);\n return parsedUrl.toString();\n } catch {\n return undefined;\n }\n}\n","const conjunctions = [\n \"for\",\n \"and\",\n \"nor\",\n \"but\",\n \"or\",\n \"yet\",\n \"so\"\n];\nconst articles = [\n \"a\",\n \"an\",\n \"the\"\n];\nconst prepositions = [\n \"aboard\",\n \"about\",\n \"above\",\n \"across\",\n \"after\",\n \"against\",\n \"along\",\n \"amid\",\n \"among\",\n \"anti\",\n \"around\",\n \"as\",\n \"at\",\n \"before\",\n \"behind\",\n \"below\",\n \"beneath\",\n \"beside\",\n \"besides\",\n \"between\",\n \"beyond\",\n \"but\",\n \"by\",\n \"concerning\",\n \"considering\",\n \"despite\",\n \"down\",\n \"during\",\n \"except\",\n \"excepting\",\n \"excluding\",\n \"following\",\n \"for\",\n \"from\",\n \"in\",\n \"inside\",\n \"into\",\n \"like\",\n \"minus\",\n \"near\",\n \"of\",\n \"off\",\n \"on\",\n \"onto\",\n \"opposite\",\n \"over\",\n \"past\",\n \"per\",\n \"plus\",\n \"regarding\",\n \"round\",\n \"save\",\n \"since\",\n \"than\",\n \"through\",\n \"to\",\n \"toward\",\n \"towards\",\n \"under\",\n \"underneath\",\n \"unlike\",\n \"until\",\n \"up\",\n \"upon\",\n \"versus\",\n \"via\",\n \"with\",\n \"within\",\n \"without\"\n];\nconst lowerCase = /* @__PURE__ */ new Set([\n ...conjunctions,\n ...articles,\n ...prepositions\n]);\nexport {\n lowerCase\n};\n","const specials = [\n \"ZEIT\",\n \"ZEIT Inc.\",\n \"Vercel\",\n \"Vercel Inc.\",\n \"CLI\",\n \"API\",\n \"HTTP\",\n \"HTTPS\",\n \"JSX\",\n \"DNS\",\n \"URL\",\n \"now.sh\",\n \"now.json\",\n \"vercel.app\",\n \"vercel.json\",\n \"CI\",\n \"CD\",\n \"CDN\",\n \"package.json\",\n \"package.lock\",\n \"yarn.lock\",\n \"GitHub\",\n \"GitLab\",\n \"CSS\",\n \"Sass\",\n \"JS\",\n \"JavaScript\",\n \"TypeScript\",\n \"HTML\",\n \"WordPress\",\n \"Next.js\",\n \"Node.js\",\n \"Webpack\",\n \"Docker\",\n \"Bash\",\n \"Kubernetes\",\n \"SWR\",\n \"TinaCMS\",\n \"UI\",\n \"UX\",\n \"TS\",\n \"TSX\",\n \"iPhone\",\n \"iPad\",\n \"watchOS\",\n \"iOS\",\n \"iPadOS\",\n \"macOS\",\n \"PHP\",\n \"composer.json\",\n \"composer.lock\",\n \"CMS\",\n \"SQL\",\n \"C\",\n \"C#\",\n \"GraphQL\",\n \"GraphiQL\",\n \"JWT\",\n \"JWTs\"\n];\nexport {\n specials\n};\n","import { lowerCase } from \"./lower-case.js\";\nimport { specials } from \"./specials.js\";\nconst word = `[^\\\\s'\\u2019\\\\(\\\\)!?;:\"-]`;\nconst regex = new RegExp(`(?:(?:(\\\\s?(?:^|[.\\\\(\\\\)!?;:\"-])\\\\s*)(${word}))|(${word}))(${word}*[\\u2019']*${word}*)`, \"g\");\nconst convertToRegExp = (specials2) => specials2.map((s) => [new RegExp(`\\\\b${s}\\\\b`, \"gi\"), s]);\nfunction parseMatch(match) {\n const firstCharacter = match[0];\n if (/\\s/.test(firstCharacter)) {\n return match.slice(1);\n }\n if (/[\\(\\)]/.test(firstCharacter)) {\n return null;\n }\n return match;\n}\nvar src_default = (str, options = {}) => {\n str = str.toLowerCase().replace(regex, (m, lead = \"\", forced, lower, rest, offset, string) => {\n const isLastWord = m.length + offset >= string.length;\n const parsedMatch = parseMatch(m);\n if (!parsedMatch) {\n return m;\n }\n if (!forced) {\n const fullLower = lower + rest;\n if (lowerCase.has(fullLower) && !isLastWord) {\n return parsedMatch;\n }\n }\n return lead + (lower || forced).toUpperCase() + rest;\n });\n const customSpecials = options.special || [];\n const replace = [...specials, ...customSpecials];\n const replaceRegExp = convertToRegExp(replace);\n replaceRegExp.forEach(([pattern, s]) => {\n str = str.replace(pattern, s);\n });\n return str;\n};\nexport {\n src_default as default\n};\n","export const SPECIAL_TOKENS = [\n // privacy\n \"PII\",\n \"PHI\",\n \"PCI\",\n \"GDPR\",\n \"CCPA\",\n \"HIPAA\",\n \"COPPA\",\n \"FERPA\",\n \"GLBA\",\n \"SOX\",\n \"FISMA\",\n \"NIST\",\n \"CIS\",\n \"ISO\",\n \"IEC\",\n \"ITAR\",\n \"EAR\",\n \"CMMC\",\n \"CUI\",\n \"CDI\",\n \"FTC\",\n \"FCC\",\n \"SEC\",\n \"FINRA\",\n\n // security\n \"XSS\",\n \"CSRF\",\n \"SSRF\",\n \"XSRF\",\n \"TLS\",\n \"SSL\",\n \"SSH\",\n \"API\",\n \"OAuth\",\n \"OAuth1\",\n \"OAuth1.0\",\n \"OAuth2\",\n \"OAuth2.0\",\n \"SAML\",\n \"SCIM\",\n \"SSO\",\n \"OpenID\",\n \"OpenID Connect\",\n \"CAPTCHA\",\n \"reCAPTCHA\",\n \"2FA\",\n \"MFA\",\n \"OTP\",\n \"TOTP\",\n \"HOTP\",\n \"U2F\",\n \"FIDO\",\n \"FIDO2\",\n \"PKI\",\n \"HMAC\",\n \"AES\",\n \"RSA\",\n \"SHA\",\n \"MD5\",\n \"BCrypt\",\n \"PBKDF2\",\n \"Argon2\",\n \"SCrypt\",\n \"JWT\",\n \"JWE\",\n \"JWS\",\n \"JWK\",\n \"JWA\",\n \"JOSE\",\n\n // shopping\n \"SKU\",\n \"SKUs\",\n \"UPC\",\n \"EAN\",\n \"ISBN\",\n \"ASIN\",\n \"MPN\",\n \"MSRP\",\n \"RRP\",\n \"MSRP\",\n\n // time\n \"AM\",\n \"PM\",\n \"UTC\",\n \"GMT\",\n \"PST\",\n \"PDT\",\n \"EST\",\n \"EDT\",\n \"CST\",\n \"CDT\",\n \"MST\",\n \"MDT\",\n\n // geography\n \"USA\",\n \"UK\",\n \"EU\",\n \"UAE\",\n \"APAC\",\n \"EMEA\",\n \"LATAM\",\n \"ANZ\",\n \"SEA\",\n \"MEA\",\n \"MENA\",\n \"NATO\",\n \"NA\",\n \"SA\",\n \"CA\",\n \"EU\",\n \"AU\",\n \"NZ\",\n \"JP\",\n \"KR\",\n \"CN\",\n \"HK\",\n \"TW\",\n \"SG\",\n \"MY\",\n \"TH\",\n \"ID\",\n \"PH\",\n \"VN\",\n \"IN\",\n \"PK\",\n \"BD\",\n \"LK\",\n \"NP\",\n \"MM\",\n \"KH\",\n \"LA\",\n \"MM\",\n \"BT\",\n \"MV\",\n\n // finance\n \"ACH\",\n \"USD\",\n \"EUR\",\n \"GBP\",\n \"JPY\",\n \"CNY\",\n \"RUB\",\n \"INR\",\n \"AUD\",\n \"CAD\",\n \"CHF\",\n \"SGD\",\n \"MYR\",\n \"THB\",\n \"IDR\",\n \"KRW\",\n \"PHP\",\n \"VND\",\n \"HKD\",\n \"TWD\",\n \"MXN\",\n \"BRL\",\n \"ARS\",\n \"CLP\",\n \"COP\",\n \"PEN\",\n \"ZAR\",\n \"NGN\",\n \"EGP\",\n \"AED\",\n \"SAR\",\n \"ILS\",\n \"TRY\",\n \"SEK\",\n \"NOK\",\n \"DKK\",\n \"ISK\",\n \"HUF\",\n \"PLN\",\n \"CZK\",\n \"RON\",\n \"BGN\",\n\n // programming\n \"API\",\n \"APIs\",\n \"SDK\",\n \"SDKs\",\n \"AI\",\n \"OCR\",\n \"REST\",\n \"SOAP\",\n \"JSON\",\n \"XML\",\n \"HTTP\",\n \"HTTPS\",\n \"URI\",\n \"URL\",\n \"CRUD\",\n \"RESTful\",\n \"KYB\",\n \"KYC\",\n \"AML\",\n \"HTML\",\n \"CSS\",\n \"JS\",\n \"SQL\",\n \"DB\",\n \"UI\",\n \"UX\",\n \"SaaS\",\n \"PaaS\",\n \"IaaS\",\n \"IP\",\n \"TCP\",\n \"UDP\",\n \"DNS\",\n \"FTP\",\n \"SMTP\",\n \"IMAP\",\n \"POP3\",\n \"CSV\",\n \"MVC\",\n \"MVP\",\n \"MVVM\",\n \"DOM\",\n \"SPA\",\n \"SSR\",\n \"CSR\",\n \"DDoS\",\n \"CDN\",\n \"IoT\",\n \"ML\",\n \"DL\",\n \"NLP\",\n \"CLI\",\n \"GUI\",\n \"BI\",\n \"ETL\",\n \"RDBMS\",\n \"NoSQL\",\n \"IDE\",\n \"CMS\",\n \"CCPA\",\n \"POSIX\",\n \"ABI\",\n \"API\",\n \"AST\",\n \"COBOL\",\n \"DDL\",\n \"DML\",\n\n // AI-related\n \"NN\", // Neural Network\n \"CNN\", // Convolutional Neural Network\n \"RNN\", // Recurrent Neural Network\n \"LSTM\", // Long Short Term Memory\n \"GRU\", // Gated Recurrent Unit\n \"ANN\", // Artificial Neural Network\n \"GAN\", // Generative Adversarial Network\n \"RL\", // Reinforcement Learning\n \"DL\", // Deep Learning\n \"ML\", // Machine Learning\n \"NLP\", // Natural Language Processing\n \"NLG\", // Natural Language Generation\n \"NLU\", // Natural Language Understanding\n \"BERT\", // Bidirectional Encoder Representations from Transformers\n \"GPT\", // Generative Pre-training Transformer\n \"SVM\", // Support Vector Machine\n \"PCA\", // Principal Component Analysis\n \"AI\", // Artificial Intelligence\n \"CV\", // Computer Vision\n \"TF\", // TensorFlow\n \"TTS\", // Text-to-Speech\n \"ASR\", // Automatic Speech Recognition\n \"HMM\", // Hidden Markov Model\n \"DNN\", // Deep Neural Network\n \"MLP\", // Multi-Layer Perceptron\n \"RBM\", // Restricted Boltzmann Machine\n \"CRF\", // Conditional Random Field\n\n // Media\n \"PDF\",\n \"PDFs\",\n \"RTF\",\n \"TXT\",\n \"XLS\",\n \"XLSX\",\n \"PPT\",\n\n // Image\n \"JPG\",\n \"JPEG\",\n \"PNG\",\n \"GIF\",\n \"GIFs\",\n \"SVG\",\n \"TIFF\",\n \"BMP\",\n \"ICO\",\n \"PSD\",\n \"WebP\",\n \"AVIF\",\n \"HEIF\",\n \"HEIC\",\n \"EPS\",\n\n // Audio\n \"MP3\",\n \"WAV\",\n \"AIFF\",\n \"FLAC\",\n \"WMA\",\n \"AAC\",\n \"OGG\",\n\n // Video\n \"AVI\",\n \"WMV\",\n \"MOV\",\n \"M4V\",\n \"MP4\",\n \"MPG\",\n \"MPEG\",\n \"FLV\",\n \"SWF\",\n \"MKV\",\n \"WebM\",\n\n // Cloud Computing\n \"GCP\", // Google Cloud Platform\n \"AWS\", // Amazon Web Services\n \"VM\", // Virtual Machines\n \"VPC\", // Virtual Private Cloud\n \"S3\", // AWS Simple Storage Service\n \"EC2\", // AWS Elastic Compute Cloud\n\n // Data Storage and Databases\n \"DynamoDB\",\n \"CosmosDB\",\n \"BigQuery\",\n \"CI/CD\",\n\n // Security and Compliance\n \"SOC1\", // Service Organization Control 1\n \"SOC2\", // Service Organization Control 2\n \"SOC3\", // Service Organization Control 3\n \"PCI DSS\", // Payment Card Industry Data Security Standard\n \"WAF\", // Web Application Firewall\n \"IAM\", // Identity and Access Management\n\n // Networking\n \"SDN\", // Software-Defined Networking\n \"MPLS\", // Multi-Protocol Label Switching\n \"BGP\", // Border Gateway Protocol\n\n // Frameworks and Libraries\n \"Vue.js\",\n \"Node.js\",\n \".NET\"\n];\n","import title from \"title\";\n\nimport { SPECIAL_TOKENS } from \"./specialTokens\";\n\nexport function titleCase(name: string): string {\n // regex match pascalCase or CamelCase and add spaces between words\n name = name.replace(/([a-z])([A-Z])/g, \"$1 $2\");\n\n // regex match single uppercase letter(s) followed by an uppercase letter and lowercase letter\n // e.g. \"AShopperProfile\" -> \"A Shopper Profile\", \"HTMLParser\" -> \"HTML Parser\"\n name = name.replace(/([A-Z]+)([A-Z][a-z])/g, \"$1 $2\");\n\n // regex match snake_case and replace \"_\" with \" \"\n name = name.replace(/_/g, \" \");\n\n // regex match kebab-case and replace \"-\" with \" \"\n name = name.replace(/-/g, \" \");\n\n const titleCased = title(name, { special: SPECIAL_TOKENS });\n\n // regex match \"V 2\", \"V 4\", etc. and replace it with \"V2\", \"V4\", etc.\n const versionedTitle = titleCased.replace(/V\\s(\\d)/g, \"V$1\");\n return versionedTitle;\n}\n\nexport default titleCase;\n","interface Opts {\n renderNull?: boolean;\n}\n\nexport function unknownToString(value: unknown, { renderNull = false }: Opts = {}): string {\n if (value == null || typeof value === \"function\") {\n return renderNull ? \"null\" : \"\";\n } else if (typeof value === \"string\") {\n return value;\n }\n return JSON.stringify(value);\n}\n\nexport default unknownToString;\n","import { assertNever } from \"./assertNever\";\n\nexport type DiscriminatedUnionVisitor<T extends Record<Discriminant, string>, U, Discriminant extends string> = {\n [D in T[Discriminant]]: (value: Extract<T, Record<Discriminant, D>>) => U;\n} & {\n _other?: (value: Record<Discriminant, string>) => U;\n};\n\nexport function visitDiscriminatedUnion<T extends Record<\"type\", string>>(\n item: T\n): { _visit: <U>(visitor: DiscriminatedUnionVisitor<T, U, \"type\">) => U };\nexport function visitDiscriminatedUnion<T extends Record<Discriminant, string>, Discriminant extends string>(\n item: T,\n discriminant: Discriminant\n): { _visit: <U>(visitor: DiscriminatedUnionVisitor<T, U, Discriminant>) => U };\nexport function visitDiscriminatedUnion<T extends Record<Discriminant, string>, Discriminant extends string>(\n item: T,\n discriminant: Discriminant = \"type\" as Discriminant\n): {\n _visit: <U>(visitor: DiscriminatedUnionVisitor<T, U, Discriminant>) => U;\n} {\n return {\n _visit: (visitor) => {\n const visit = visitor[item[discriminant]];\n if (visit != null) {\n return visit(item as Extract<T, Record<Discriminant, string>>);\n } else {\n if (visitor._other == null) {\n assertNever(item as never);\n }\n return visitor._other(item);\n }\n }\n };\n}\n\nexport default visitDiscriminatedUnion;\n","import { isPlainObject } from \"@fern-api/ui-core-utils\";\nimport visitDiscriminatedUnion from \"@fern-api/ui-core-utils/visitDiscriminatedUnion\";\nimport { compact, sortBy } from \"es-toolkit/array\";\n\nimport { AvailabilityOrder, coalesceAvailability } from \"./availability\";\nimport { LOOP_TOLERANCE } from \"./const\";\nimport * as Latest from \"./latest\";\nimport type { DereferencedNonOptionalTypeShapeOrReference, TypeShapeOrReference } from \"./types\";\n\nexport type UnwrappedReference = {\n shape: DereferencedNonOptionalTypeShapeOrReference;\n availability: Latest.Availability | undefined;\n descriptions: string[];\n visitedTypeIds: Set<Latest.TypeId>;\n isOptional: boolean;\n isNullable: boolean;\n default?: unknown;\n};\n\nexport type UnwrappedObjectType = {\n properties: Latest.ObjectProperty[];\n extraProperties: Latest.TypeReference | null | undefined;\n descriptions: string[];\n visitedTypeIds: Set<Latest.TypeId>;\n};\n\ntype InternalDefaultValue =\n | { type: \"unknown\"; value: unknown }\n | { type: \"typeReferenceId\"; value: Latest.TypeReferenceIdDefault };\n\n/**\n * Cache for unwrapped references. Perform the unwrapping only once.\n */\nconst UnwrapReferenceCache = new WeakMap<TypeShapeOrReference, UnwrappedReference>();\n\n/**\n * A TypeShape or TypeReference might be an alias or reference to another type.\n * This function unwraps the reference, including any optional wrappers, to get the actual shape.\n *\n * When optionals are detected, attempt to find the default value for the shape.\n * Since aliases can be recursive, the first default value found is returned, which can be contained in:\n * - the optional wrapper\n * - the type reference id\n * - the primitive or literal shape itself\n *\n * @param typeRef to unwrap\n * @param types from the API definition\n * @returns UnwrappedReference containing the shape, whether it is optional, and the default value if it exists\n */\nexport function unwrapReference(\n typeRef: TypeShapeOrReference,\n types: Record<string, Latest.TypeDefinition>\n): UnwrappedReference;\nexport function unwrapReference(\n typeRef: TypeShapeOrReference | undefined,\n types: Record<string, Latest.TypeDefinition>\n): UnwrappedReference | undefined;\nexport function unwrapReference(\n typeRef: TypeShapeOrReference | undefined,\n types: Record<string, Latest.TypeDefinition>\n): UnwrappedReference | undefined {\n if (typeRef == null) {\n return undefined;\n }\n\n const cached = UnwrapReferenceCache.get(typeRef);\n if (cached != null) {\n return cached;\n }\n\n let isOptional = false;\n let isNullable = false;\n const defaults: InternalDefaultValue[] = [];\n const descriptions: string[] = [];\n const availabilities: Latest.Availability[] = [];\n\n const visitedTypeIds = new Set<Latest.TypeId>();\n let internalTypeRef: TypeShapeOrReference | undefined = typeRef;\n let loop = 0;\n let circularReference = false;\n while (internalTypeRef != null) {\n if (loop > LOOP_TOLERANCE) {\n // infinite loop detected\n internalTypeRef = undefined;\n break;\n }\n\n if (internalTypeRef.type === \"nullable\") {\n isNullable = true;\n internalTypeRef = internalTypeRef.shape;\n } else if (internalTypeRef.type === \"optional\") {\n isOptional = true;\n if (internalTypeRef.default != null) {\n defaults.push({\n type: \"unknown\",\n value: internalTypeRef.default\n });\n }\n internalTypeRef = internalTypeRef.shape;\n } else if (internalTypeRef.type === \"alias\") {\n internalTypeRef = internalTypeRef.value;\n } else if (internalTypeRef.type === \"id\") {\n if (visitedTypeIds.has(internalTypeRef.id)) {\n // circular reference detected\n internalTypeRef = undefined;\n circularReference = true;\n break;\n }\n\n if (internalTypeRef.default != null) {\n defaults.push({\n type: \"typeReferenceId\",\n value: internalTypeRef.default\n });\n }\n const typeDef: Latest.TypeDefinition | undefined = types[internalTypeRef.id];\n visitedTypeIds.add(internalTypeRef.id);\n internalTypeRef = typeDef?.shape;\n if (typeDef != null) {\n if (typeDef.availability) {\n availabilities.push(typeDef.availability);\n }\n\n if (typeDef.description != null) {\n descriptions.push(typeDef.description);\n }\n }\n } else {\n break;\n }\n\n loop++;\n }\n\n if (internalTypeRef == null) {\n // Note: this should be a fatal error, but we're handling it gracefully for now\n if (circularReference) {\n console.error(\n `Circular reference detected. Falling back to unknown type. types=[${[...visitedTypeIds].join(\", \")}]`\n );\n } else {\n console.error(\n `Type reference is invalid. Falling back to unknown type. types=[${[...visitedTypeIds].join(\", \")}]`\n );\n }\n }\n\n const toRet = {\n shape: internalTypeRef ?? { type: \"unknown\", displayName: undefined },\n availability: coalesceAvailability(availabilities),\n visitedTypeIds,\n isOptional,\n isNullable,\n default: selectDefaultValue(internalTypeRef, defaults),\n descriptions\n };\n\n UnwrapReferenceCache.set(typeRef, toRet);\n\n return toRet;\n}\n\nfunction selectDefaultValue(\n shape: DereferencedNonOptionalTypeShapeOrReference | undefined,\n defaults: InternalDefaultValue[]\n): unknown | undefined {\n const defaultValue = defaults.find((d) => {\n // If the shape is unknown, we can't validate the default value, so we assume it's always the first one\n if (shape == null) {\n return true;\n }\n\n // if a typeReferenceId is found, we need to validate that the default value is compatible with the shape\n else if (d.type === \"typeReferenceId\") {\n return visitDiscriminatedUnion(d.value)._visit({\n enum: () => shape?.type === \"enum\"\n });\n }\n\n // TODO: validate that the default value is compatible with the shape\n else {\n return true;\n }\n });\n\n if (defaultValue?.type === \"unknown\") {\n return defaultValue.value;\n } else if (defaultValue?.type === \"typeReferenceId\") {\n return defaultValue.value.value;\n } else if (shape?.type === \"primitive\") {\n return primitiveToDefault(shape.value);\n } else if (shape?.type === \"enum\") {\n return shape.default;\n } else {\n return undefined;\n }\n}\n\nconst UnwrapObjectTypeCache = new WeakMap<Latest.ObjectType, UnwrappedObjectType>();\n\n/**\n * Dereferences extended objects and returns all properties of the object.\n * If an object extends another object, the properties of the extended object will be sorted alphabetically.\n * Additionally, required properties will come before optional properties.\n *\n * @param object to dereference\n * @param types from the API definition\n * @returns the properties of the object, including properties from extended objects\n */\nexport function unwrapObjectType(\n object: Latest.ObjectType,\n types: Record<Latest.TypeId, Latest.TypeDefinition>,\n parentVisitedTypeIds?: Set<Latest.TypeId>\n): UnwrappedObjectType {\n const cached = UnwrapObjectTypeCache.get(object);\n if (cached != null) {\n return cached;\n }\n\n const directProperties = object.properties;\n const extraProperties = object.extraProperties;\n const descriptions: string[] = [];\n const visitedTypeIds = new Set<Latest.TypeId>();\n const extendedProperties = object.extends.flatMap((typeId): Latest.ObjectProperty[] => {\n if (parentVisitedTypeIds?.has(typeId)) {\n console.error(`Circular reference detected. Cannot extend type=${typeId}`);\n return [];\n }\n\n const typeDef = types[typeId];\n visitedTypeIds.add(typeId);\n if (typeDef?.description) {\n descriptions.push(typeDef.description);\n }\n\n const unwrapped = unwrapReference(typeDef?.shape, types);\n unwrapped?.descriptions.forEach((description) => descriptions.push(description));\n unwrapped?.visitedTypeIds.forEach((typeId) => visitedTypeIds.add(typeId));\n\n // TODO: should we be able to extend discriminated and undiscriminated unions?\n if (unwrapped?.shape.type !== \"object\") {\n console.warn(\"Object extends non-object\", typeId);\n return [];\n }\n const extended = unwrapObjectType(unwrapped.shape, types, visitedTypeIds);\n extended.visitedTypeIds.forEach((typeId) => visitedTypeIds.add(typeId));\n\n // merge the availability of the extended object with the availability of the properties\n // use a local variable to avoid mutating the cached result\n const extendedPropsWithAvailability = extended.properties.map((property) => {\n return {\n ...property,\n availability: coalesceAvailability(\n compact([typeDef?.availability, unwrapped.availability, property.availability])\n )\n };\n });\n\n descriptions.push(...extended.descriptions);\n\n if (!unwrapped.isOptional) {\n return extendedPropsWithAvailability;\n }\n\n // if the extended object is optional, we need to make all properties optional\n return extendedPropsWithAvailability.map((property): Latest.ObjectProperty => {\n // if a default value is present for the referenced object, we can find the default value for this property\n const defaultProperty = isPlainObject(unwrapped.default) ? unwrapped.default[property.key] : undefined;\n\n const valueShape: Latest.TypeReference.Optional =\n property.valueShape.type === \"alias\" && property.valueShape.value.type === \"optional\"\n ? {\n ...property.valueShape.value,\n default: defaultProperty ?? property.valueShape.value.default\n }\n : {\n type: \"optional\",\n shape: property.valueShape,\n default: defaultProperty\n };\n\n return {\n ...property,\n valueShape: { type: \"alias\", value: valueShape }\n };\n });\n });\n\n if (extendedProperties.length === 0) {\n // if there are no extended properties, we can just return the direct properties\n // required properties should come before optional properties\n // however, we do NOT sort the properties by key because the initial order of properties may be significant\n const properties = sortBy(\n [...directProperties],\n [\n (property) => unwrapReference(property.valueShape, types)?.isOptional,\n (property) => AvailabilityOrder.indexOf(property.availability ?? Latest.Availability.Stable)\n ]\n );\n const toRet = {\n properties,\n descriptions,\n extraProperties,\n visitedTypeIds\n };\n UnwrapObjectTypeCache.set(object, toRet);\n return toRet;\n }\n const propertyKeys = new Set(object.properties.map((property) => property.key));\n // deduplicate extended properties: remove those that conflict with direct properties,\n // and also remove duplicates between different extends chains (keep first occurrence)\n const seenExtendedKeys = new Set<string>();\n const filteredExtendedProperties = extendedProperties.filter((extendedProperty) => {\n if (propertyKeys.has(extendedProperty.key) || seenExtendedKeys.has(extendedProperty.key)) {\n return false;\n }\n seenExtendedKeys.add(extendedProperty.key);\n return true;\n });\n\n // required properties should come before optional properties\n // since there are extended properties, the initial order of properties are not significant, and we should sort by key\n const properties = sortBy(\n [...directProperties, ...filteredExtendedProperties],\n [\n (property) => unwrapReference(property.valueShape, types)?.isOptional,\n (property) => AvailabilityOrder.indexOf(property.availability ?? Latest.Availability.Stable),\n (property) => property.key\n ]\n );\n const toRet = { properties, descriptions, extraProperties, visitedTypeIds };\n UnwrapObjectTypeCache.set(object, toRet);\n return toRet;\n}\n\n/**\n * The discriminant of a discriminated union is converted to a literal type, *prepended* to the additional properties.\n */\nexport function unwrapDiscriminatedUnionVariant(\n union: Pick<Latest.DiscriminatedUnionType, \"discriminant\">,\n variant: Latest.DiscriminatedUnionVariant,\n types: Record<string, Latest.TypeDefinition>\n): UnwrappedObjectType {\n const { properties, descriptions, visitedTypeIds } = unwrapObjectType(variant, types); // this is already cached\n return {\n properties: [\n {\n key: union.discriminant,\n valueShape: {\n type: \"alias\",\n value: {\n type: \"literal\",\n value: {\n type: \"stringLiteral\",\n value: variant.discriminantValue\n }\n }\n },\n propertyAccess: undefined,\n // the description and availability of the discriminant should not be included here\n // because they are already included in the union variant itself\n description: undefined,\n availability: undefined\n },\n ...properties\n ],\n extraProperties: undefined,\n descriptions,\n visitedTypeIds\n };\n}\n\nfunction primitiveToDefault(shape: Latest.PrimitiveType): unknown | undefined {\n return visitDiscriminatedUnion(shape, \"type\")._visit<unknown | undefined>({\n string: (value) => value.default,\n integer: (value) => value.default,\n double: (value) => value.default,\n uint: () => undefined,\n uint64: () => undefined,\n boolean: (value) => value.default,\n long: (value) => value.default,\n datetime: (datetime) => datetime.default,\n uuid: (uuid) => uuid.default,\n base64: (base64) => base64.default,\n date: (value) => value.default,\n bigInteger: (value) => value.default,\n scalar: (value) => value.default\n });\n}\n","import * as z from \"zod\";\n\nimport {\n AuthSchemeIdSchema,\n AvailabilitySchema,\n Base64TypeSchema,\n BigIntegerTypeSchema,\n BooleanTypeSchema,\n DateTypeSchema,\n DatetimeTypeSchema,\n DoubleTypeSchema,\n EndpointIdSchema,\n EndpointPathPartSchema,\n EnvironmentIdSchema,\n EnvironmentSchema,\n GraphQlOperationIdSchema,\n HttpMethodSchema,\n IntegerTypeSchema,\n LongTypeSchema,\n MultipleAuthTypeSchema,\n PropertyKeySchema,\n ProtocolSchema,\n ScalarTypeSchema,\n StringTypeSchema,\n SubpackageIdSchema,\n TypeIdSchema,\n Uint64TypeSchema,\n UintTypeSchema,\n UuidTypeSchema,\n WebhookHttpMethodSchema,\n WebhookIdSchema,\n WebSocketIdSchema,\n WebSocketMessageIdSchema,\n WebSocketMessageOriginSchema\n} from \"./shared.js\";\n\n// ── Latest commons ───────────────────────────────────────────────────────\n\nexport const PathPartSchema = EndpointPathPartSchema;\nexport type PathPart = z.infer<typeof PathPartSchema>;\n\nexport const WithNamespaceSchema = z.object({\n namespace: z.array(SubpackageIdSchema).nullish()\n});\nexport type WithNamespace = z.infer<typeof WithNamespaceSchema>;\n\n// ── Latest auth ──────────────────────────────────────────────────────────\n\nimport { BasicAuthSchema, BearerAuthSchema, HeaderAuthSchema, OAuthSchema } from \"./shared.js\";\n\nexport { BasicAuthSchema, BearerAuthSchema, HeaderAuthSchema, OAuthSchema };\n\nexport const LatestAuthSchemeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"bearerAuth\"), ...BearerAuthSchema.shape }),\n z.object({ type: z.literal(\"basicAuth\"), ...BasicAuthSchema.shape }),\n z.object({ type: z.literal(\"header\"), ...HeaderAuthSchema.shape }),\n z.object({ type: z.literal(\"oAuth\"), value: OAuthSchema })\n]);\nexport type LatestAuthScheme = z.infer<typeof LatestAuthSchemeSchema>;\n\n// ── Latest type ──────────────────────────────────────────────────────────\n\nexport const LatestObjectPropertyAccessSchema = z.enum([\"READ_ONLY\", \"WRITE_ONLY\"]);\nexport type LatestObjectPropertyAccess = z.infer<typeof LatestObjectPropertyAccessSchema>;\n\nexport const LatestTypeReferenceIdDefaultSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"enum\"), value: z.string() })\n]);\nexport type LatestTypeReferenceIdDefault = z.infer<typeof LatestTypeReferenceIdDefaultSchema>;\n\nexport const LatestPrimitiveTypeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"integer\"), ...IntegerTypeSchema.shape }),\n z.object({ type: z.literal(\"double\"), ...DoubleTypeSchema.shape }),\n z.object({ type: z.literal(\"string\"), ...StringTypeSchema.shape }),\n z.object({ type: z.literal(\"long\"), ...LongTypeSchema.shape }),\n z.object({ type: z.literal(\"boolean\"), ...BooleanTypeSchema.shape }),\n z.object({ type: z.literal(\"datetime\"), ...DatetimeTypeSchema.shape }),\n z.object({ type: z.literal(\"uuid\"), ...UuidTypeSchema.shape }),\n z.object({ type: z.literal(\"base64\"), ...Base64TypeSchema.shape }),\n z.object({ type: z.literal(\"date\"), ...DateTypeSchema.shape }),\n z.object({ type: z.literal(\"bigInteger\"), ...BigIntegerTypeSchema.shape }),\n z.object({ type: z.literal(\"uint\"), ...UintTypeSchema.shape }),\n z.object({ type: z.literal(\"uint64\"), ...Uint64TypeSchema.shape }),\n z.object({ type: z.literal(\"scalar\"), ...ScalarTypeSchema.shape })\n]);\nexport type LatestPrimitiveType = z.infer<typeof LatestPrimitiveTypeSchema>;\n\nexport const LatestLiteralTypeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"booleanLiteral\"), value: z.boolean() }),\n z.object({ type: z.literal(\"stringLiteral\"), value: z.string() })\n]);\nexport type LatestLiteralType = z.infer<typeof LatestLiteralTypeSchema>;\n\nexport const LatestUnknownTypeSchema = z.object({\n displayName: z.string().nullish()\n});\nexport type LatestUnknownType = z.infer<typeof LatestUnknownTypeSchema>;\n\nexport const LatestEnumValueSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n value: z.string()\n});\nexport type LatestEnumValue = z.infer<typeof LatestEnumValueSchema>;\n\nexport const LatestEnumTypeSchema = z.object({\n default: z.string().nullish(),\n values: z.array(LatestEnumValueSchema)\n});\nexport type LatestEnumType = z.infer<typeof LatestEnumTypeSchema>;\n\nexport type LatestTypeShape =\n | LatestTypeShape.Alias\n | LatestTypeShape.Enum\n | LatestTypeShape.UndiscriminatedUnion\n | LatestTypeShape.DiscriminatedUnion\n | LatestTypeShape.Object_;\n\nexport namespace LatestTypeShape {\n export interface Alias {\n type: \"alias\";\n value: LatestTypeReference;\n }\n export interface Enum extends LatestEnumType {\n type: \"enum\";\n }\n export interface UndiscriminatedUnion extends LatestUndiscriminatedUnionType {\n type: \"undiscriminatedUnion\";\n }\n export interface DiscriminatedUnion extends LatestDiscriminatedUnionType {\n type: \"discriminatedUnion\";\n }\n export interface Object_ extends LatestObjectType {\n type: \"object\";\n }\n}\n\nexport type LatestTypeReference =\n | LatestTypeReference.Id\n | LatestTypeReference.Primitive\n | LatestTypeReference.Optional\n | LatestTypeReference.Nullable\n | LatestTypeReference.List\n | LatestTypeReference.Set\n | LatestTypeReference.Map\n | LatestTypeReference.Literal\n | LatestTypeReference.Unknown;\n\nexport namespace LatestTypeReference {\n export interface Id {\n type: \"id\";\n id: string;\n default?: LatestTypeReferenceIdDefault | null;\n }\n export interface Primitive {\n type: \"primitive\";\n value: LatestPrimitiveType;\n }\n export interface Optional {\n type: \"optional\";\n shape: LatestTypeShape;\n default?: unknown | null;\n }\n export interface Nullable {\n type: \"nullable\";\n shape: LatestTypeShape;\n }\n export interface List {\n type: \"list\";\n itemShape: LatestTypeShape;\n minItems?: number | null;\n maxItems?: number | null;\n }\n export interface Set {\n type: \"set\";\n itemShape: LatestTypeShape;\n minItems?: number | null;\n maxItems?: number | null;\n }\n export interface Map {\n type: \"map\";\n keyShape: LatestTypeShape;\n valueShape: LatestTypeShape;\n minProperties?: number | null;\n maxProperties?: number | null;\n }\n export interface Literal {\n type: \"literal\";\n value: LatestLiteralType;\n }\n export interface Unknown extends LatestUnknownType {\n type: \"unknown\";\n }\n}\n\nexport interface LatestObjectType {\n extends: string[];\n properties: LatestObjectProperty[];\n extraProperties?: LatestTypeReference | null;\n}\n\nexport interface LatestObjectProperty {\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n key: string;\n valueShape: LatestTypeShape;\n propertyAccess?: LatestObjectPropertyAccess | null;\n arguments?: LatestGraphQlArgument[] | null;\n}\n\nexport interface LatestParameterProperty extends LatestObjectProperty {\n explode?: boolean | null;\n}\n\nexport interface LatestUndiscriminatedUnionVariant {\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n displayName?: string | null;\n shape: LatestTypeShape;\n}\n\nexport interface LatestUndiscriminatedUnionType {\n variants: LatestUndiscriminatedUnionVariant[];\n}\n\nexport interface LatestDiscriminatedUnionVariant extends LatestObjectType {\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n discriminantValue: string;\n displayName?: string | null;\n}\n\nexport interface LatestDiscriminatedUnionType {\n discriminant: string;\n variants: LatestDiscriminatedUnionVariant[];\n}\n\nexport const LatestObjectPropertySchema: z.ZodType<LatestObjectProperty> = z.lazy(() =>\n z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n valueShape: LatestTypeShapeSchema,\n propertyAccess: LatestObjectPropertyAccessSchema.nullish(),\n arguments: z.array(LatestGraphQlArgumentSchema).nullish()\n })\n);\n\nexport const LatestParameterPropertySchema: z.ZodType<LatestParameterProperty> = z.lazy(() =>\n z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n valueShape: LatestTypeShapeSchema,\n propertyAccess: LatestObjectPropertyAccessSchema.nullish(),\n explode: z.boolean().nullish()\n })\n);\n\nexport const LatestObjectTypeSchema: z.ZodType<LatestObjectType> = z.lazy(() =>\n z.object({\n extends: z.array(TypeIdSchema),\n properties: z.array(LatestObjectPropertySchema),\n extraProperties: LatestTypeReferenceSchema.nullish()\n })\n);\n\nexport const LatestUndiscriminatedUnionVariantSchema: z.ZodType<LatestUndiscriminatedUnionVariant> = z.lazy(() =>\n z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n displayName: z.string().nullish(),\n shape: LatestTypeShapeSchema\n })\n);\n\nexport const LatestUndiscriminatedUnionTypeSchema: z.ZodType<LatestUndiscriminatedUnionType> = z.lazy(() =>\n z.object({\n variants: z.array(LatestUndiscriminatedUnionVariantSchema)\n })\n);\n\nexport const LatestDiscriminatedUnionVariantSchema: z.ZodType<LatestDiscriminatedUnionVariant> = z.lazy(() =>\n z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n discriminantValue: z.string(),\n displayName: z.string().nullish(),\n extends: z.array(TypeIdSchema),\n properties: z.array(LatestObjectPropertySchema),\n extraProperties: LatestTypeReferenceSchema.nullish()\n })\n);\n\nexport const LatestDiscriminatedUnionTypeSchema: z.ZodType<LatestDiscriminatedUnionType> = z.lazy(() =>\n z.object({\n discriminant: PropertyKeySchema,\n variants: z.array(LatestDiscriminatedUnionVariantSchema)\n })\n);\n\nexport const LatestTypeShapeSchema: z.ZodType<LatestTypeShape> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"alias\"),\n value: LatestTypeReferenceSchema\n }),\n z.object({\n type: z.literal(\"enum\"),\n default: z.string().nullish(),\n values: z.array(LatestEnumValueSchema)\n }),\n z.object({\n type: z.literal(\"undiscriminatedUnion\"),\n variants: z.array(LatestUndiscriminatedUnionVariantSchema)\n }),\n z.object({\n type: z.literal(\"discriminatedUnion\"),\n discriminant: PropertyKeySchema,\n variants: z.array(LatestDiscriminatedUnionVariantSchema)\n }),\n z.object({\n type: z.literal(\"object\"),\n extends: z.array(TypeIdSchema),\n properties: z.array(LatestObjectPropertySchema),\n extraProperties: LatestTypeReferenceSchema.nullish()\n })\n ])\n);\n\nexport const LatestTypeReferenceSchema: z.ZodType<LatestTypeReference> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"id\"),\n id: TypeIdSchema,\n default: LatestTypeReferenceIdDefaultSchema.nullish()\n }),\n z.object({\n type: z.literal(\"primitive\"),\n value: LatestPrimitiveTypeSchema\n }),\n z.object({\n type: z.literal(\"optional\"),\n shape: LatestTypeShapeSchema,\n default: z.unknown().nullish()\n }),\n z.object({\n type: z.literal(\"nullable\"),\n shape: LatestTypeShapeSchema\n }),\n z.object({\n type: z.literal(\"list\"),\n itemShape: LatestTypeShapeSchema,\n minItems: z.number().int().nullish(),\n maxItems: z.number().int().nullish()\n }),\n z.object({\n type: z.literal(\"set\"),\n itemShape: LatestTypeShapeSchema,\n minItems: z.number().int().nullish(),\n maxItems: z.number().int().nullish()\n }),\n z.object({\n type: z.literal(\"map\"),\n keyShape: LatestTypeShapeSchema,\n valueShape: LatestTypeShapeSchema,\n minProperties: z.number().int().nullish(),\n maxProperties: z.number().int().nullish()\n }),\n z.object({\n type: z.literal(\"literal\"),\n value: LatestLiteralTypeSchema\n }),\n z.object({\n type: z.literal(\"unknown\"),\n displayName: z.string().nullish()\n })\n ])\n);\n\nexport const LatestTypeDefinitionSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n name: z.string(),\n shape: LatestTypeShapeSchema,\n displayName: z.string().nullish()\n});\nexport type LatestTypeDefinition = z.infer<typeof LatestTypeDefinitionSchema>;\n\nexport const LatestContentTypeSchema = z.union([z.string(), z.array(z.string())]);\nexport type LatestContentType = z.infer<typeof LatestContentTypeSchema>;\n\nexport const LatestBytesRequestSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n isOptional: z.boolean(),\n contentType: LatestContentTypeSchema.nullish()\n});\nexport type LatestBytesRequest = z.infer<typeof LatestBytesRequestSchema>;\n\nexport const LatestFormDataPropertySchema: z.ZodType<LatestFormDataField> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"file\"),\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n isOptional: z.boolean(),\n contentType: LatestContentTypeSchema.nullish()\n }),\n z.object({\n type: z.literal(\"files\"),\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n isOptional: z.boolean(),\n contentType: LatestContentTypeSchema.nullish()\n }),\n z.object({\n type: z.literal(\"property\"),\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n valueShape: LatestTypeShapeSchema,\n propertyAccess: LatestObjectPropertyAccessSchema.nullish(),\n contentType: LatestContentTypeSchema.nullish(),\n exploded: z.boolean().nullish()\n })\n ])\n);\n\nexport type LatestFormDataFile = {\n type: \"file\";\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n key: string;\n isOptional: boolean;\n contentType?: LatestContentType | null;\n};\n\nexport type LatestFormDataFiles = {\n type: \"files\";\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n key: string;\n isOptional: boolean;\n contentType?: LatestContentType | null;\n};\n\nexport type LatestFormDataPropertyVariant = {\n type: \"property\";\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n key: string;\n valueShape: LatestTypeShape;\n propertyAccess?: LatestObjectPropertyAccess | null;\n contentType?: LatestContentType | null;\n exploded?: boolean | null;\n};\n\nexport type LatestFormDataField = LatestFormDataFile | LatestFormDataFiles | LatestFormDataPropertyVariant;\n\nexport const LatestFormDataRequestSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n fields: z.array(LatestFormDataPropertySchema)\n});\nexport type LatestFormDataRequest = z.infer<typeof LatestFormDataRequestSchema>;\n\nexport const LatestNullableTypeSchema: z.ZodType<{ shape: LatestTypeShape }> = z.lazy(() =>\n z.object({\n shape: LatestTypeShapeSchema\n })\n);\n\nexport const LatestOptionalTypeSchema: z.ZodType<{ shape: LatestTypeShape; default?: unknown }> = z.lazy(() =>\n z.object({\n shape: LatestTypeShapeSchema,\n default: z.unknown().nullish()\n })\n);\n\nexport const LatestListTypeSchema: z.ZodType<{\n itemShape: LatestTypeShape;\n minItems?: number | null;\n maxItems?: number | null;\n}> = z.lazy(() =>\n z.object({\n itemShape: LatestTypeShapeSchema,\n minItems: z.number().int().nullish(),\n maxItems: z.number().int().nullish()\n })\n);\n\nexport const LatestSetTypeSchema: z.ZodType<{\n itemShape: LatestTypeShape;\n minItems?: number | null;\n maxItems?: number | null;\n}> = z.lazy(() =>\n z.object({\n itemShape: LatestTypeShapeSchema,\n minItems: z.number().int().nullish(),\n maxItems: z.number().int().nullish()\n })\n);\n\nexport const LatestMapTypeSchema: z.ZodType<{\n keyShape: LatestTypeShape;\n valueShape: LatestTypeShape;\n minProperties?: number | null;\n maxProperties?: number | null;\n}> = z.lazy(() =>\n z.object({\n keyShape: LatestTypeShapeSchema,\n valueShape: LatestTypeShapeSchema,\n minProperties: z.number().int().nullish(),\n maxProperties: z.number().int().nullish()\n })\n);\n\n// ── Latest endpoint ──────────────────────────────────────────────────────\n\nexport const LatestLanguageSchema = z.string();\nexport type LatestLanguage = z.infer<typeof LatestLanguageSchema>;\n\nexport const LatestExampleEndpointRequestSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() }),\n z.object({ type: z.literal(\"form\"), value: z.record(z.string(), z.unknown()) }),\n z.object({ type: z.literal(\"bytes\"), value: z.unknown() })\n]);\nexport type LatestExampleEndpointRequest = z.infer<typeof LatestExampleEndpointRequestSchema>;\n\nexport const LatestExampleEndpointResponseSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() }),\n z.object({ type: z.literal(\"filename\"), value: z.unknown() }),\n z.object({ type: z.literal(\"stream\"), value: z.array(z.unknown()) }),\n z.object({ type: z.literal(\"sse\"), value: z.array(z.object({ event: z.string(), data: z.unknown() })) })\n]);\nexport type LatestExampleEndpointResponse = z.infer<typeof LatestExampleEndpointResponseSchema>;\n\nexport const LatestExampleErrorResponseSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() })\n]);\nexport type LatestExampleErrorResponse = z.infer<typeof LatestExampleErrorResponseSchema>;\n\nexport const LatestHttpRequestBodyShapeSchema: z.ZodType<LatestHttpRequestBodyShape> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"object\"),\n extends: z.array(TypeIdSchema),\n properties: z.array(LatestObjectPropertySchema),\n extraProperties: LatestTypeReferenceSchema.nullish()\n }),\n z.object({ type: z.literal(\"alias\"), value: LatestTypeReferenceSchema }),\n z.object({ type: z.literal(\"bytes\"), ...LatestBytesRequestSchema.shape }),\n z.object({ type: z.literal(\"formData\"), ...LatestFormDataRequestSchema.shape })\n ])\n);\n\nexport type LatestHttpRequestBodyShape =\n | ({ type: \"object\" } & LatestObjectType)\n | { type: \"alias\"; value: LatestTypeReference }\n | ({ type: \"bytes\" } & z.infer<typeof LatestBytesRequestSchema>)\n | ({ type: \"formData\" } & z.infer<typeof LatestFormDataRequestSchema>);\n\nexport const LatestHttpRequestSchema = z.object({\n description: z.string().nullish(),\n contentType: z.string().nullish(),\n body: LatestHttpRequestBodyShapeSchema\n});\nexport type LatestHttpRequest = z.infer<typeof LatestHttpRequestSchema>;\n\nexport const LatestFileDownloadResponseBodyShapeSchema = z.object({\n contentType: z.string().nullish()\n});\nexport type LatestFileDownloadResponseBodyShape = z.infer<typeof LatestFileDownloadResponseBodyShapeSchema>;\n\nexport const LatestStreamResponseSchema = z.object({\n terminator: z.string().nullish(),\n shape: LatestTypeShapeSchema\n});\nexport type LatestStreamResponse = z.infer<typeof LatestStreamResponseSchema>;\n\nexport type LatestHttpResponseBodyShape =\n | { type: \"empty\" }\n | ({ type: \"object\" } & LatestObjectType)\n | { type: \"alias\"; value: LatestTypeReference }\n | ({ type: \"fileDownload\" } & z.infer<typeof LatestFileDownloadResponseBodyShapeSchema>)\n | { type: \"streamingText\" }\n | ({ type: \"stream\" } & z.infer<typeof LatestStreamResponseSchema>);\n\nexport const LatestHttpResponseBodyShapeSchema: z.ZodType<LatestHttpResponseBodyShape> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"empty\") }),\n z.object({\n type: z.literal(\"object\"),\n extends: z.array(TypeIdSchema),\n properties: z.array(LatestObjectPropertySchema),\n extraProperties: LatestTypeReferenceSchema.nullish()\n }),\n z.object({ type: z.literal(\"alias\"), value: LatestTypeReferenceSchema }),\n z.object({ type: z.literal(\"fileDownload\"), ...LatestFileDownloadResponseBodyShapeSchema.shape }),\n z.object({ type: z.literal(\"streamingText\") }),\n z.object({ type: z.literal(\"stream\"), ...LatestStreamResponseSchema.shape })\n ])\n);\n\nexport const LatestHttpResponseSchema = z.object({\n description: z.string().nullish(),\n body: LatestHttpResponseBodyShapeSchema,\n statusCode: z.number().int(),\n isWildcard: z.boolean().nullish()\n});\nexport type LatestHttpResponse = z.infer<typeof LatestHttpResponseSchema>;\n\nexport const LatestErrorExampleSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n responseBody: LatestExampleErrorResponseSchema\n});\nexport type LatestErrorExample = z.infer<typeof LatestErrorExampleSchema>;\n\nexport const LatestErrorResponseSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n shape: LatestTypeShapeSchema.nullish(),\n statusCode: z.number().int(),\n isWildcard: z.boolean().nullish(),\n name: z.string(),\n examples: z.array(LatestErrorExampleSchema).nullish(),\n headers: z.array(LatestObjectPropertySchema).nullish()\n});\nexport type LatestErrorResponse = z.infer<typeof LatestErrorResponseSchema>;\n\nexport const LatestCodeSnippetSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n language: LatestLanguageSchema,\n install: z.string().nullish(),\n code: z.string(),\n generated: z.boolean()\n});\nexport type LatestCodeSnippet = z.infer<typeof LatestCodeSnippetSchema>;\n\nexport const LatestExampleEndpointCallSchema = z.object({\n description: z.string().nullish(),\n path: z.string(),\n responseStatusCode: z.number().int(),\n name: z.string().nullish(),\n pathParameters: z.record(PropertyKeySchema, z.unknown()).nullish(),\n queryParameters: z.record(PropertyKeySchema, z.unknown()).nullish(),\n headers: z.record(PropertyKeySchema, z.unknown()).nullish(),\n requestBody: LatestExampleEndpointRequestSchema.nullish(),\n responseBody: LatestExampleEndpointResponseSchema.nullish(),\n snippets: z.record(LatestLanguageSchema, z.array(LatestCodeSnippetSchema)).nullish(),\n codeExamples: z.unknown().nullish(),\n codeSamples: z.array(LatestCodeSnippetSchema).nullish()\n});\nexport type LatestExampleEndpointCall = z.infer<typeof LatestExampleEndpointCallSchema>;\n\nexport const LatestEndpointDefinitionSchema = z.object({\n description: z.string().nullish(),\n subtitle: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n namespace: z.array(z.string()).nullish(),\n id: EndpointIdSchema,\n method: HttpMethodSchema,\n path: z.array(PathPartSchema),\n displayName: z.string().nullish(),\n operationId: z.string().nullish(),\n auth: z.array(AuthSchemeIdSchema).nullish(),\n multiAuth: z.array(MultipleAuthTypeSchema).nullish(),\n defaultEnvironment: EnvironmentIdSchema.nullish(),\n environments: z.array(EnvironmentSchema).nullish(),\n pathParameters: z.array(LatestParameterPropertySchema).nullish(),\n queryParameters: z.array(LatestParameterPropertySchema).nullish(),\n requestHeaders: z.array(LatestObjectPropertySchema).nullish(),\n responseHeaders: z.array(LatestObjectPropertySchema).nullish(),\n requests: z.array(LatestHttpRequestSchema).nullish(),\n responses: z.array(LatestHttpResponseSchema).nullish(),\n errors: z.array(LatestErrorResponseSchema).nullish(),\n examples: z.array(LatestExampleEndpointCallSchema).nullish(),\n protocol: ProtocolSchema.nullish(),\n includeInApiExplorer: z.boolean().nullish(),\n snippetTemplates: z.unknown().nullish()\n});\nexport type LatestEndpointDefinition = z.infer<typeof LatestEndpointDefinitionSchema>;\n\n// ── Latest graphql ───────────────────────────────────────────────────────\n\nexport const LatestGraphQlOperationTypeSchema = z.enum([\"QUERY\", \"MUTATION\", \"SUBSCRIPTION\"]);\nexport type LatestGraphQlOperationType = z.infer<typeof LatestGraphQlOperationTypeSchema>;\n\nexport const LatestGraphQlArgumentSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n name: z.string(),\n type: LatestTypeShapeSchema,\n defaultValue: z.unknown().nullish()\n});\nexport type LatestGraphQlArgument = z.infer<typeof LatestGraphQlArgumentSchema>;\n\nexport const LatestGraphQlExampleSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n query: z.string(),\n variables: z.record(z.string(), z.unknown()).nullish(),\n response: z.unknown().nullish()\n});\nexport type LatestGraphQlExample = z.infer<typeof LatestGraphQlExampleSchema>;\n\nexport const LatestGraphQlOperationSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n namespace: z.array(z.string()).nullish(),\n fieldPath: z.array(z.string()).nullish(),\n id: GraphQlOperationIdSchema,\n operationType: LatestGraphQlOperationTypeSchema,\n name: z.string(),\n displayName: z.string().nullish(),\n arguments: z.array(LatestGraphQlArgumentSchema).nullish(),\n returnType: LatestTypeShapeSchema,\n examples: z.array(LatestGraphQlExampleSchema).nullish(),\n snippets: z.record(LatestLanguageSchema, z.array(LatestCodeSnippetSchema)).nullish()\n});\nexport type LatestGraphQlOperation = z.infer<typeof LatestGraphQlOperationSchema>;\n\n// ── Latest webhook ───────────────────────────────────────────────────────\n\nexport type LatestWebhookPayloadShape =\n | ({ type: \"object\" } & LatestObjectType)\n | { type: \"alias\"; value: LatestTypeReference }\n | ({ type: \"formData\" } & z.infer<typeof LatestFormDataRequestSchema>);\n\nexport const LatestWebhookPayloadShapeSchema: z.ZodType<LatestWebhookPayloadShape> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"object\"),\n extends: z.array(TypeIdSchema),\n properties: z.array(LatestObjectPropertySchema),\n extraProperties: LatestTypeReferenceSchema.nullish()\n }),\n z.object({ type: z.literal(\"alias\"), value: LatestTypeReferenceSchema }),\n z.object({ type: z.literal(\"formData\"), ...LatestFormDataRequestSchema.shape })\n ])\n);\n\nexport const LatestWebhookPayloadSchema = z.object({\n description: z.string().nullish(),\n shape: LatestWebhookPayloadShapeSchema\n});\nexport type LatestWebhookPayload = z.infer<typeof LatestWebhookPayloadSchema>;\n\nexport const LatestExampleWebhookPayloadSchema = z.object({\n name: z.string().nullish(),\n payload: z.unknown()\n});\nexport type LatestExampleWebhookPayload = z.infer<typeof LatestExampleWebhookPayloadSchema>;\n\nexport const LatestWebhookDefinitionSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n namespace: z.array(z.string()).nullish(),\n id: WebhookIdSchema,\n displayName: z.string().nullish(),\n operationId: z.string().nullish(),\n method: WebhookHttpMethodSchema,\n path: z.array(z.string()),\n headers: z.array(LatestObjectPropertySchema).nullish(),\n payloads: z.array(LatestWebhookPayloadSchema).nullish(),\n responses: z.array(LatestHttpResponseSchema).nullish(),\n examples: z.array(LatestExampleWebhookPayloadSchema).nullish()\n});\nexport type LatestWebhookDefinition = z.infer<typeof LatestWebhookDefinitionSchema>;\n\n// ── Latest websocket ─────────────────────────────────────────────────────\n\nexport const LatestWebSocketMessageSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n type: WebSocketMessageIdSchema,\n displayName: z.string().nullish(),\n origin: WebSocketMessageOriginSchema,\n body: LatestTypeShapeSchema\n});\nexport type LatestWebSocketMessage = z.infer<typeof LatestWebSocketMessageSchema>;\n\nexport const LatestExampleWebSocketMessageSchema = z.object({\n type: WebSocketMessageIdSchema,\n body: z.unknown()\n});\nexport type LatestExampleWebSocketMessage = z.infer<typeof LatestExampleWebSocketMessageSchema>;\n\nexport const LatestExampleWebSocketSessionSchema = z.object({\n description: z.string().nullish(),\n path: z.string(),\n name: z.string().nullish(),\n pathParameters: z.record(PropertyKeySchema, z.unknown()).nullish(),\n queryParameters: z.record(PropertyKeySchema, z.unknown()).nullish(),\n requestHeaders: z.record(PropertyKeySchema, z.unknown()).nullish(),\n messages: z.array(LatestExampleWebSocketMessageSchema).nullish()\n});\nexport type LatestExampleWebSocketSession = z.infer<typeof LatestExampleWebSocketSessionSchema>;\n\nexport const LatestWebSocketChannelSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n namespace: z.array(z.string()).nullish(),\n id: WebSocketIdSchema,\n displayName: z.string().nullish(),\n operationId: z.string().nullish(),\n path: z.array(PathPartSchema),\n messages: z.array(LatestWebSocketMessageSchema),\n auth: z.array(AuthSchemeIdSchema).nullish(),\n defaultEnvironment: EnvironmentIdSchema.nullish(),\n environments: z.array(EnvironmentSchema).nullish(),\n pathParameters: z.array(LatestParameterPropertySchema).nullish(),\n queryParameters: z.array(LatestParameterPropertySchema).nullish(),\n requestHeaders: z.array(LatestObjectPropertySchema).nullish(),\n examples: z.array(LatestExampleWebSocketSessionSchema).nullish()\n});\nexport type LatestWebSocketChannel = z.infer<typeof LatestWebSocketChannelSchema>;\n\n// ── Latest SubpackageMetadata & ApiDefinition ────────────────────────────\n\nexport const LatestSubpackageMetadataSchema = z.object({\n id: SubpackageIdSchema,\n name: z.string(),\n displayName: z.string().nullish()\n});\nexport type LatestSubpackageMetadata = z.infer<typeof LatestSubpackageMetadataSchema>;\n\n// Import SnippetsConfigSchema from contract-register\nimport { SnippetsConfigSchema } from \"./contract-register.js\";\n\nexport const LatestApiDefinitionSchema = z.object({\n id: z.string(),\n apiName: z.string().nullish(),\n endpoints: z.record(EndpointIdSchema, LatestEndpointDefinitionSchema),\n websockets: z.record(WebSocketIdSchema, LatestWebSocketChannelSchema),\n webhooks: z.record(WebhookIdSchema, LatestWebhookDefinitionSchema),\n graphqlOperations: z.record(GraphQlOperationIdSchema, LatestGraphQlOperationSchema),\n types: z.record(TypeIdSchema, LatestTypeDefinitionSchema),\n subpackages: z.record(SubpackageIdSchema, LatestSubpackageMetadataSchema),\n auths: z.record(AuthSchemeIdSchema, LatestAuthSchemeSchema),\n globalHeaders: z.array(LatestObjectPropertySchema).nullish(),\n snippetsConfiguration: SnippetsConfigSchema.nullish()\n});\nexport type LatestApiDefinition = z.infer<typeof LatestApiDefinitionSchema>;\n\n// Alias for backward compatibility (consumers use FdrAPI.api.latest.ApiDefinition)\nexport type ApiDefinition = LatestApiDefinition;\nexport const ApiDefinitionSchema = LatestApiDefinitionSchema;\n","import * as z from \"zod\";\nimport { ApiDefinitionIdSchema, HttpMethod, HttpMethodSchema } from \"../shared.js\";\n\nexport { ApiDefinitionIdSchema, HttpMethod, HttpMethodSchema };\n\nexport const TypeIdSchema = z.string();\nexport type TypeId = z.infer<typeof TypeIdSchema>;\nexport function TypeId(value: string): TypeId {\n return value;\n}\n\nexport const EndpointIdSchema = z.string();\nexport type EndpointId = z.infer<typeof EndpointIdSchema>;\nexport function EndpointId(value: string): EndpointId {\n return value;\n}\n\nexport const WebSocketIdSchema = z.string();\nexport type WebSocketId = z.infer<typeof WebSocketIdSchema>;\nexport function WebSocketId(value: string): WebSocketId {\n return value;\n}\n\nexport const WebhookIdSchema = z.string();\nexport type WebhookId = z.infer<typeof WebhookIdSchema>;\nexport function WebhookId(value: string): WebhookId {\n return value;\n}\n\nexport const GraphQlOperationIdSchema = z.string();\nexport type GraphQlOperationId = z.infer<typeof GraphQlOperationIdSchema>;\nexport function GraphQlOperationId(value: string): GraphQlOperationId {\n return value;\n}\n\nexport const GraphQlTypeCategorySchema = z.enum([\"object\", \"input\", \"enum\", \"scalar\", \"interface\", \"union\"]);\nexport type GraphQlTypeCategory = z.infer<typeof GraphQlTypeCategorySchema>;\n\nexport const EnvironmentIdSchema = z.string();\nexport type EnvironmentId = z.infer<typeof EnvironmentIdSchema>;\nexport function EnvironmentId(value: string): EnvironmentId {\n return value;\n}\n\nexport const PropertyKeySchema = z.string();\nexport type PropertyKey = z.infer<typeof PropertyKeySchema>;\nexport function PropertyKey(value: string): PropertyKey {\n return value;\n}\n\nexport const AuthSchemeIdSchema = z.string();\nexport type AuthSchemeId = z.infer<typeof AuthSchemeIdSchema>;\nexport function AuthSchemeId(value: string): AuthSchemeId {\n return value;\n}\n\nexport const SubpackageIdSchema = z.string();\nexport type SubpackageId = z.infer<typeof SubpackageIdSchema>;\nexport function SubpackageId(value: string): SubpackageId {\n return value;\n}\n\nexport const WebSocketMessageIdSchema = z.string();\nexport type WebSocketMessageId = z.infer<typeof WebSocketMessageIdSchema>;\nexport function WebSocketMessageId(value: string): WebSocketMessageId {\n return value;\n}\n\nexport const FileIdSchema: z.ZodType<FileId> = z.string() as any;\nexport type FileId = string & { FileId: void };\nexport function FileId(value: string): FileId {\n return value as unknown as FileId;\n}\n\nexport const MultipleAuthTypeSchema = z.object({\n schemes: z.array(AuthSchemeIdSchema)\n});\nexport type MultipleAuthType = z.infer<typeof MultipleAuthTypeSchema>;\n\nexport const GrpcMethodSchema = z.enum([\"UNARY\", \"CLIENT_STREAM\", \"SERVER_STREAM\", \"BIDIRECTIONAL_STREAM\"]);\n\nexport const AvailabilitySchema = z.enum([\n \"Alpha\",\n \"Stable\",\n \"GenerallyAvailable\",\n \"InDevelopment\",\n \"PreRelease\",\n \"Deprecated\",\n \"Beta\",\n \"Preview\",\n \"Legacy\"\n]);\n\nexport const WebSocketMessageOriginSchema = z.enum([\"client\", \"server\"]);\nexport type WebSocketMessageOrigin = z.infer<typeof WebSocketMessageOriginSchema>;\n\nexport const WebhookHttpMethodSchema = z.enum([\"GET\", \"POST\"]);\nexport type WebhookHttpMethod = z.infer<typeof WebhookHttpMethodSchema>;\n\nexport const WithDescriptionSchema = z.object({\n description: z.string().nullish()\n});\nexport type WithDescription = z.infer<typeof WithDescriptionSchema>;\n\nexport const WithAvailabilitySchema = z.object({\n availability: AvailabilitySchema.nullish()\n});\nexport type WithAvailability = z.infer<typeof WithAvailabilitySchema>;\n\nexport const EnvironmentSchema = z.object({\n id: EnvironmentIdSchema,\n baseUrl: z.string(),\n audiences: z.array(z.string()).nullish()\n});\nexport type Environment = z.infer<typeof EnvironmentSchema>;\n\nexport const RestProtocolSchema = z.object({});\n\nexport const OpenRpcProtocolSchema = z.object({\n methodName: z.string()\n});\n\nexport const GrpcProtocolSchema = z.object({\n methodName: z.string(),\n methodType: GrpcMethodSchema.nullish()\n});\n\nexport const ProtocolSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"rest\"), ...RestProtocolSchema.shape }),\n z.object({ type: z.literal(\"openrpc\"), ...OpenRpcProtocolSchema.shape }),\n z.object({ type: z.literal(\"grpc\"), ...GrpcProtocolSchema.shape })\n]);\nexport type Protocol = z.infer<typeof ProtocolSchema>;\n\nexport const ObjectPropertyAccessSchema = z.enum([\"READ_ONLY\", \"WRITE_ONLY\"]);\nexport type ObjectPropertyAccess = z.infer<typeof ObjectPropertyAccessSchema>;\n\nexport const TypeReferenceIdDefaultSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"enum\"), value: z.string() })\n]);\nexport type TypeReferenceIdDefault = z.infer<typeof TypeReferenceIdDefaultSchema>;\n\nconst _numberNullish = z.number().nullish();\nconst _numberIntNullish = z.number().int().nullish();\n\nfunction coerceNumber(val: unknown): unknown {\n if (typeof val === \"string\" && val.trim() !== \"\") {\n const num = Number(val);\n if (!Number.isNaN(num)) {\n return num;\n }\n }\n return val;\n}\n\nconst coercedNumberNullish = z.preprocess(coerceNumber, z.number().nullish()) as unknown as typeof _numberNullish;\nconst coercedNumberIntNullish = z.preprocess(\n coerceNumber,\n z.number().int().nullish()\n) as unknown as typeof _numberIntNullish;\n\nexport const IntegerTypeSchema = z.object({\n minimum: coercedNumberIntNullish,\n maximum: coercedNumberIntNullish,\n exclusiveMinimum: coercedNumberIntNullish,\n exclusiveMaximum: coercedNumberIntNullish,\n multipleOf: coercedNumberIntNullish,\n default: coercedNumberIntNullish\n});\nexport type IntegerType = z.infer<typeof IntegerTypeSchema>;\n\nexport const DoubleTypeSchema = z.object({\n minimum: coercedNumberNullish,\n maximum: coercedNumberNullish,\n exclusiveMinimum: coercedNumberNullish,\n exclusiveMaximum: coercedNumberNullish,\n multipleOf: coercedNumberNullish,\n default: coercedNumberNullish\n});\nexport type DoubleType = z.infer<typeof DoubleTypeSchema>;\n\nexport const StringTypeSchema = z.object({\n format: z.string().nullish(),\n regex: z.string().nullish(),\n minLength: z.number().int().nullish(),\n maxLength: z.number().int().nullish(),\n default: z.string().nullish()\n});\nexport type StringType = z.infer<typeof StringTypeSchema>;\n\nexport const LongTypeSchema = z.object({\n minimum: coercedNumberNullish,\n maximum: coercedNumberNullish,\n exclusiveMinimum: coercedNumberNullish,\n exclusiveMaximum: coercedNumberNullish,\n multipleOf: coercedNumberNullish,\n default: coercedNumberNullish\n});\nexport type LongType = z.infer<typeof LongTypeSchema>;\n\nconst _booleanNullish = z.boolean().nullish();\n\nexport const BooleanTypeSchema = z.object({\n default: z.preprocess((val) => {\n if (typeof val === \"string\") {\n if (val.toLowerCase() === \"true\") {\n return true;\n }\n if (val.toLowerCase() === \"false\") {\n return false;\n }\n }\n return val;\n }, z.boolean().nullish()) as unknown as typeof _booleanNullish\n});\nexport type BooleanType = z.infer<typeof BooleanTypeSchema>;\n\nexport const DatetimeTypeSchema = z.object({\n default: z.string().nullish()\n});\nexport type DatetimeType = z.infer<typeof DatetimeTypeSchema>;\n\nexport const UuidTypeSchema = z.object({\n default: z.string().nullish()\n});\nexport type UuidType = z.infer<typeof UuidTypeSchema>;\n\nexport const Base64TypeSchema = z.object({\n default: z.string().nullish(),\n mimeType: z.string().nullish()\n});\nexport type Base64Type = z.infer<typeof Base64TypeSchema>;\n\nexport const DateTypeSchema = z.object({\n default: z.string().nullish()\n});\nexport type DateType = z.infer<typeof DateTypeSchema>;\n\nexport const BigIntegerTypeSchema = z.object({\n default: z.string().nullish()\n});\nexport type BigIntegerType = z.infer<typeof BigIntegerTypeSchema>;\n\nexport const UintTypeSchema = z.object({\n minimum: coercedNumberIntNullish,\n maximum: coercedNumberIntNullish,\n exclusiveMinimum: coercedNumberIntNullish,\n exclusiveMaximum: coercedNumberIntNullish,\n multipleOf: coercedNumberIntNullish,\n default: coercedNumberIntNullish\n});\nexport type UintType = z.infer<typeof UintTypeSchema>;\n\nexport const Uint64TypeSchema = z.object({\n minimum: coercedNumberNullish,\n maximum: coercedNumberNullish,\n exclusiveMinimum: coercedNumberNullish,\n exclusiveMaximum: coercedNumberNullish,\n multipleOf: coercedNumberNullish,\n default: coercedNumberNullish\n});\nexport type Uint64Type = z.infer<typeof Uint64TypeSchema>;\n\nexport const ScalarTypeSchema = z.object({\n name: z.string(),\n description: z.string().nullish(),\n default: z.unknown().nullish()\n});\nexport type ScalarType = z.infer<typeof ScalarTypeSchema>;\n\nexport const PrimitiveTypeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"integer\"), ...IntegerTypeSchema.shape }),\n z.object({ type: z.literal(\"double\"), ...DoubleTypeSchema.shape }),\n z.object({ type: z.literal(\"string\"), ...StringTypeSchema.shape }),\n z.object({ type: z.literal(\"long\"), ...LongTypeSchema.shape }),\n z.object({ type: z.literal(\"boolean\"), ...BooleanTypeSchema.shape }),\n z.object({ type: z.literal(\"datetime\"), ...DatetimeTypeSchema.shape }),\n z.object({ type: z.literal(\"uuid\"), ...UuidTypeSchema.shape }),\n z.object({ type: z.literal(\"base64\"), ...Base64TypeSchema.shape }),\n z.object({ type: z.literal(\"date\"), ...DateTypeSchema.shape }),\n z.object({ type: z.literal(\"bigInteger\"), ...BigIntegerTypeSchema.shape }),\n z.object({ type: z.literal(\"uint\"), ...UintTypeSchema.shape }),\n z.object({ type: z.literal(\"uint64\"), ...Uint64TypeSchema.shape }),\n z.object({ type: z.literal(\"scalar\"), ...ScalarTypeSchema.shape })\n]);\nexport type PrimitiveType = z.infer<typeof PrimitiveTypeSchema>;\n\nexport const LiteralTypeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"booleanLiteral\"), value: z.boolean() }),\n z.object({ type: z.literal(\"stringLiteral\"), value: z.string() })\n]);\nexport type LiteralType = z.infer<typeof LiteralTypeSchema>;\n\nexport type TypeReference =\n | TypeReference.Id\n | TypeReference.Primitive\n | TypeReference.Optional\n | TypeReference.Nullable\n | TypeReference.List\n | TypeReference.Set\n | TypeReference.Map\n | TypeReference.Literal\n | TypeReference.Unknown;\n\nexport namespace TypeReference {\n export interface Id {\n type: \"id\";\n value: string;\n default?: TypeReferenceIdDefault | null;\n }\n export interface Primitive {\n type: \"primitive\";\n value: PrimitiveType;\n }\n export interface Optional {\n type: \"optional\";\n itemType: TypeReference;\n defaultValue?: unknown | null;\n }\n export interface Nullable {\n type: \"nullable\";\n itemType: TypeReference;\n }\n export interface List {\n type: \"list\";\n itemType: TypeReference;\n minItems?: number | null;\n maxItems?: number | null;\n }\n export interface Set {\n type: \"set\";\n itemType: TypeReference;\n minItems?: number | null;\n maxItems?: number | null;\n }\n export interface Map {\n type: \"map\";\n keyType: TypeReference;\n valueType: TypeReference;\n minProperties?: number | null;\n maxProperties?: number | null;\n }\n export interface Literal {\n type: \"literal\";\n value: LiteralType;\n }\n export interface Unknown {\n type: \"unknown\";\n }\n}\n\nexport const TypeReferenceSchema: z.ZodType<TypeReference> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"id\"),\n value: TypeIdSchema,\n default: TypeReferenceIdDefaultSchema.nullish()\n }),\n z.object({\n type: z.literal(\"primitive\"),\n value: PrimitiveTypeSchema\n }),\n z.object({\n type: z.literal(\"optional\"),\n itemType: TypeReferenceSchema,\n defaultValue: z.unknown().nullish()\n }),\n z.object({\n type: z.literal(\"nullable\"),\n itemType: TypeReferenceSchema\n }),\n z.object({\n type: z.literal(\"list\"),\n itemType: TypeReferenceSchema,\n minItems: z.number().int().nullish(),\n maxItems: z.number().int().nullish()\n }),\n z.object({\n type: z.literal(\"set\"),\n itemType: TypeReferenceSchema,\n minItems: z.number().int().nullish(),\n maxItems: z.number().int().nullish()\n }),\n z.object({\n type: z.literal(\"map\"),\n keyType: TypeReferenceSchema,\n valueType: TypeReferenceSchema,\n minProperties: z.number().int().nullish(),\n maxProperties: z.number().int().nullish()\n }),\n z.object({\n type: z.literal(\"literal\"),\n value: LiteralTypeSchema\n }),\n z.object({\n type: z.literal(\"unknown\")\n })\n ])\n);\n\nexport interface GraphQlArgument {\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n name: string;\n type: TypeReference;\n defaultValue?: unknown | null;\n}\nexport const GraphQlArgumentSchema: z.ZodType<GraphQlArgument> = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n name: z.string(),\n type: TypeReferenceSchema,\n defaultValue: z.unknown().nullish()\n});\n\nexport const ObjectPropertySchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n valueType: TypeReferenceSchema,\n propertyAccess: ObjectPropertyAccessSchema.nullish(),\n arguments: z.array(GraphQlArgumentSchema).nullish()\n});\nexport type ObjectProperty = z.infer<typeof ObjectPropertySchema>;\n\nexport const ObjectTypeSchema = z.object({\n extends: z.array(TypeIdSchema),\n properties: z.array(ObjectPropertySchema),\n extraProperties: TypeReferenceSchema.nullish()\n});\nexport type ObjectType = z.infer<typeof ObjectTypeSchema>;\n\nexport const EnumValueSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n value: z.string()\n});\nexport type EnumValue = z.infer<typeof EnumValueSchema>;\n\nexport const EnumTypeSchema = z.object({\n default: z.string().nullish(),\n values: z.array(EnumValueSchema)\n});\nexport type EnumType = z.infer<typeof EnumTypeSchema>;\n\nexport const DiscriminatedUnionVariantSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n discriminantValue: z.string(),\n displayName: z.string().nullish(),\n additionalProperties: ObjectTypeSchema\n});\nexport type DiscriminatedUnionVariant = z.infer<typeof DiscriminatedUnionVariantSchema>;\n\nexport const DiscriminatedUnionTypeSchema = z.object({\n discriminant: z.string(),\n variants: z.array(DiscriminatedUnionVariantSchema)\n});\nexport type DiscriminatedUnionType = z.infer<typeof DiscriminatedUnionTypeSchema>;\n\nexport const ContentTypeSchema = z.union([z.string(), z.array(z.string())]);\nexport type ContentType = z.infer<typeof ContentTypeSchema>;\n\nexport const FilePropertySingleSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n isOptional: z.boolean(),\n contentType: ContentTypeSchema.nullish()\n});\nexport type FilePropertySingle = z.infer<typeof FilePropertySingleSchema>;\n\nexport const FilePropertyArraySchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n isOptional: z.boolean(),\n contentType: ContentTypeSchema.nullish()\n});\nexport type FilePropertyArray = z.infer<typeof FilePropertyArraySchema>;\n\nexport const FormDataFilePropertySchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"file\"), ...FilePropertySingleSchema.shape }),\n z.object({ type: z.literal(\"fileArray\"), ...FilePropertyArraySchema.shape })\n]);\nexport type FormDataFileProperty = z.infer<typeof FormDataFilePropertySchema>;\n\nexport const FormDataBodyPropertySchema = z.object({\n ...ObjectPropertySchema.shape,\n contentType: ContentTypeSchema.nullish(),\n exploded: z.boolean().nullish()\n});\nexport type FormDataBodyProperty = z.infer<typeof FormDataBodyPropertySchema>;\n\nexport const FormDataPropertySchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"file\"), value: FormDataFilePropertySchema }),\n z.object({ type: z.literal(\"bodyProperty\"), ...FormDataBodyPropertySchema.shape })\n]);\nexport type FormDataProperty = z.infer<typeof FormDataPropertySchema>;\n\nexport const FormDataRequestSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n name: z.string(),\n properties: z.array(FormDataPropertySchema)\n});\nexport type FormDataRequest = z.infer<typeof FormDataRequestSchema>;\n\nexport const EndpointPathPartSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"literal\"), value: z.string() }),\n z.object({ type: z.literal(\"pathParameter\"), value: PropertyKeySchema })\n]);\nexport type EndpointPathPart = z.infer<typeof EndpointPathPartSchema>;\n\nexport const PathParameterSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n type: TypeReferenceSchema,\n explode: z.boolean().nullish()\n});\nexport type PathParameter = z.infer<typeof PathParameterSchema>;\n\nexport const EndpointPathSchema = z.object({\n parts: z.array(EndpointPathPartSchema),\n pathParameters: z.array(PathParameterSchema)\n});\nexport type EndpointPath = z.infer<typeof EndpointPathSchema>;\n\nexport const QueryParameterSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: z.string(),\n type: TypeReferenceSchema,\n explode: z.boolean().nullish()\n});\nexport type QueryParameter = z.infer<typeof QueryParameterSchema>;\n\nexport const HeaderSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: z.string(),\n type: TypeReferenceSchema\n});\nexport type Header = z.infer<typeof HeaderSchema>;\n\nexport const JsonBodyShapeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"object\"), ...ObjectTypeSchema.shape }),\n z.object({ type: z.literal(\"reference\"), value: TypeReferenceSchema })\n]);\nexport type JsonBodyShape = z.infer<typeof JsonBodyShapeSchema>;\n\nexport const FileDownloadResponseBodyShapeSchema = z.object({\n contentType: z.string().nullish()\n});\nexport type FileDownloadResponseBodyShape = z.infer<typeof FileDownloadResponseBodyShapeSchema>;\n\nexport const StreamResponseV2Schema = z.object({\n terminator: z.string().nullish(),\n shape: JsonBodyShapeSchema\n});\nexport type StreamResponseV2 = z.infer<typeof StreamResponseV2Schema>;\n\nexport const StreamConditionSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"booleanRequestProperty\"), value: PropertyKeySchema })\n]);\nexport type StreamCondition = z.infer<typeof StreamConditionSchema>;\n\nexport const FilenameWithDataSchema = z.object({\n filename: z.string(),\n data: FileIdSchema\n});\nexport type FilenameWithData = z.infer<typeof FilenameWithDataSchema>;\n\nexport const FormValueSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() }),\n z.object({ type: z.literal(\"filename\"), value: z.string() }),\n z.object({ type: z.literal(\"filenames\"), value: z.array(z.string()) }),\n z.object({ type: z.literal(\"filenameWithData\"), ...FilenameWithDataSchema.shape }),\n z.object({ type: z.literal(\"filenamesWithData\"), value: z.array(FilenameWithDataSchema) }),\n z.object({ type: z.literal(\"exploded\"), value: z.array(z.unknown()) })\n]);\nexport type FormValue = z.infer<typeof FormValueSchema>;\n\nexport const BytesValueSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"base64\"), value: z.string() })\n]);\nexport type BytesValue = z.infer<typeof BytesValueSchema>;\n\n// The form variant uses z.unknown() for record values instead of FormValueSchema to be\n// forward-compatible with new form value types and to tolerate form values produced by\n// the AI example enhancer (which may not conform to the strict FormValueSchema).\n// Example data is display-only and does not require strict validation at registration time.\nexport const ExampleEndpointRequestSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() }),\n z.object({ type: z.literal(\"form\"), value: z.record(z.string(), z.unknown()) }),\n z.object({ type: z.literal(\"bytes\"), value: BytesValueSchema })\n]);\nexport type ExampleEndpointRequest = z.infer<typeof ExampleEndpointRequestSchema>;\n\nexport const ExampleServerSentEventSchema = z.object({\n event: z.string(),\n data: z.unknown()\n});\nexport type ExampleServerSentEvent = z.infer<typeof ExampleServerSentEventSchema>;\n\nexport const ExampleEndpointResponseSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() }),\n z.object({ type: z.literal(\"filename\"), value: z.unknown() }),\n z.object({ type: z.literal(\"stream\"), value: z.array(z.unknown()) }),\n z.object({ type: z.literal(\"sse\"), value: z.array(ExampleServerSentEventSchema) })\n]);\nexport type ExampleEndpointResponse = z.infer<typeof ExampleEndpointResponseSchema>;\n\nexport const ErrorDeclarationSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n type: TypeReferenceSchema.nullish(),\n statusCode: z.number().int()\n});\nexport type ErrorDeclaration = z.infer<typeof ErrorDeclarationSchema>;\n\nexport const ExampleErrorResponseSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() })\n]);\nexport type ExampleErrorResponse = z.infer<typeof ExampleErrorResponseSchema>;\n\nexport const ErrorExampleSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n responseBody: ExampleErrorResponseSchema\n});\nexport type ErrorExample = z.infer<typeof ErrorExampleSchema>;\n\nexport const GraphQlOperationTypeSchema = z.enum([\"QUERY\", \"MUTATION\", \"SUBSCRIPTION\"]);\nexport type GraphQlOperationType = z.infer<typeof GraphQlOperationTypeSchema>;\n\nexport const GraphQlExampleSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n query: z.string(),\n variables: z.record(z.string(), z.unknown()).nullish(),\n response: z.unknown().nullish()\n});\nexport type GraphQlExample = z.infer<typeof GraphQlExampleSchema>;\n\nexport const CodeSnippetSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n language: z.string(),\n install: z.string().nullish(),\n code: z.string(),\n generated: z.boolean()\n});\nexport type CodeSnippet = z.infer<typeof CodeSnippetSchema>;\n\nexport const GraphQlOperationSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n id: GraphQlOperationIdSchema,\n operationType: GraphQlOperationTypeSchema,\n name: z.string(),\n displayName: z.string().nullish(),\n fieldPath: z.array(z.string()).nullish(),\n arguments: z.array(GraphQlArgumentSchema).nullish(),\n returnType: TypeReferenceSchema,\n examples: z.array(GraphQlExampleSchema).nullish(),\n snippets: z.record(z.string(), z.array(CodeSnippetSchema)).nullish()\n});\nexport type GraphQlOperation = z.infer<typeof GraphQlOperationSchema>;\n\nexport const WebhookPayloadShapeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"object\"), ...ObjectTypeSchema.shape }),\n z.object({ type: z.literal(\"reference\"), value: TypeReferenceSchema }),\n z.object({ type: z.literal(\"formData\"), ...FormDataRequestSchema.shape })\n]);\nexport type WebhookPayloadShape = z.infer<typeof WebhookPayloadShapeSchema>;\n\nexport const WebhookPayloadSchema = z.object({\n description: z.string().nullish(),\n type: WebhookPayloadShapeSchema\n});\nexport type WebhookPayload = z.infer<typeof WebhookPayloadSchema>;\n\nexport const ExampleWebhookPayloadSchema = z.object({\n name: z.string().nullish(),\n payload: z.unknown()\n});\nexport type ExampleWebhookPayload = z.infer<typeof ExampleWebhookPayloadSchema>;\n\nexport const WebSocketMessageBodyShapeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"object\"), ...ObjectTypeSchema.shape }),\n z.object({ type: z.literal(\"reference\"), value: TypeReferenceSchema })\n]);\nexport type WebSocketMessageBodyShape = z.infer<typeof WebSocketMessageBodyShapeSchema>;\n\nexport const WebSocketMessageSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n type: WebSocketMessageIdSchema,\n displayName: z.string().nullish(),\n origin: WebSocketMessageOriginSchema,\n body: WebSocketMessageBodyShapeSchema\n});\nexport type WebSocketMessage = z.infer<typeof WebSocketMessageSchema>;\n\nexport const ExampleWebSocketMessageSchema = z.object({\n type: WebSocketMessageIdSchema,\n body: z.unknown()\n});\nexport type ExampleWebSocketMessage = z.infer<typeof ExampleWebSocketMessageSchema>;\n\nexport const ExampleWebSocketSessionSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n path: z.string(),\n pathParameters: z.record(PropertyKeySchema, z.unknown()),\n queryParameters: z.record(z.string(), z.unknown()),\n headers: z.record(z.string(), z.unknown()),\n messages: z.array(ExampleWebSocketMessageSchema)\n});\nexport type ExampleWebSocketSession = z.infer<typeof ExampleWebSocketSessionSchema>;\n\nexport type ApiNavigationConfigItem =\n | ApiNavigationConfigItem.Subpackage\n | ApiNavigationConfigItem.EndpointId\n | ApiNavigationConfigItem.WebsocketId\n | ApiNavigationConfigItem.WebhookId\n | ApiNavigationConfigItem.GraphqlOperationId;\n\nexport namespace ApiNavigationConfigItem {\n export interface Subpackage {\n type: \"subpackage\";\n subpackageId: string;\n items: ApiNavigationConfigItem[];\n }\n export interface EndpointId {\n type: \"endpointId\";\n value: string;\n }\n export interface WebsocketId {\n type: \"websocketId\";\n value: string;\n }\n export interface WebhookId {\n type: \"webhookId\";\n value: string;\n }\n export interface GraphqlOperationId {\n type: \"graphqlOperationId\";\n value: string;\n }\n}\n\nexport const ApiNavigationConfigItemSchema: z.ZodType<ApiNavigationConfigItem> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"subpackage\"),\n subpackageId: SubpackageIdSchema,\n items: z.array(ApiNavigationConfigItemSchema)\n }),\n z.object({ type: z.literal(\"endpointId\"), value: EndpointIdSchema }),\n z.object({ type: z.literal(\"websocketId\"), value: WebSocketIdSchema }),\n z.object({ type: z.literal(\"webhookId\"), value: WebhookIdSchema }),\n z.object({ type: z.literal(\"graphqlOperationId\"), value: GraphQlOperationIdSchema })\n ])\n);\n\nexport const ApiNavigationConfigRootSchema = z.object({\n items: z.array(ApiNavigationConfigItemSchema)\n});\nexport type ApiNavigationConfigRoot = z.infer<typeof ApiNavigationConfigRootSchema>;\n\nexport const BearerAuthSchema = z.object({\n description: z.string().nullish(),\n tokenName: z.string().nullish()\n});\nexport type BearerAuth = z.infer<typeof BearerAuthSchema>;\n\nexport const BasicAuthSchema = z.object({\n description: z.string().nullish(),\n usernameName: z.string().nullish(),\n passwordName: z.string().nullish(),\n passwordAlwaysEmpty: z.boolean().nullish()\n});\nexport type BasicAuth = z.infer<typeof BasicAuthSchema>;\n\nexport const HeaderAuthSchema = z.object({\n description: z.string().nullish(),\n nameOverride: z.string().nullish(),\n headerWireValue: z.string(),\n prefix: z.string().nullish()\n});\nexport type HeaderAuth = z.infer<typeof HeaderAuthSchema>;\n\nexport const OAuthClientCredentialsReferencedEndpointSchema = z.object({\n description: z.string().nullish(),\n endpointId: EndpointIdSchema,\n accessTokenLocator: z.string(),\n headerName: z.string().nullish(),\n tokenPrefix: z.string().nullish()\n});\nexport type OAuthClientCredentialsReferencedEndpoint = z.infer<typeof OAuthClientCredentialsReferencedEndpointSchema>;\n\nexport const OAuthClientCredentialsSchema = z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"referencedEndpoint\"),\n ...OAuthClientCredentialsReferencedEndpointSchema.shape\n })\n]);\nexport type OAuthClientCredentials = z.infer<typeof OAuthClientCredentialsSchema>;\n\nexport const OAuthSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"clientCredentials\"), value: OAuthClientCredentialsSchema })\n]);\nexport type OAuth = z.infer<typeof OAuthSchema>;\n\nexport const ApiAuthSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"bearerAuth\"), ...BearerAuthSchema.shape }),\n z.object({ type: z.literal(\"basicAuth\"), ...BasicAuthSchema.shape }),\n z.object({ type: z.literal(\"header\"), ...HeaderAuthSchema.shape }),\n z.object({ type: z.literal(\"oAuth\"), value: OAuthSchema })\n]);\nexport type ApiAuth = z.infer<typeof ApiAuthSchema>;\n","import * as z from \"zod\";\n\n// ── Org / API identifiers ──────────────────────────────────────────────\n\nexport const OrgIdSchema = z.string();\nexport type OrgId = z.infer<typeof OrgIdSchema>;\nexport function OrgId(value: string): OrgId {\n return value;\n}\n\nexport const ApiIdSchema = z.string();\nexport type ApiId = z.infer<typeof ApiIdSchema>;\nexport function ApiId(value: string): ApiId {\n return value;\n}\n\nexport const ApiDefinitionIdSchema = z.string().uuid();\nexport type ApiDefinitionId = z.infer<typeof ApiDefinitionIdSchema>;\nexport function ApiDefinitionId(value: string): ApiDefinitionId {\n return value;\n}\n\n// ── HTTP / Endpoint schemas ─────────────────────────────────────────────\n\nexport const HttpMethodSchema = z.enum([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"HEAD\"]);\nexport type HttpMethod = z.infer<typeof HttpMethodSchema>;\n\nexport const HttpMethod = {\n Get: \"GET\",\n Post: \"POST\",\n Put: \"PUT\",\n Patch: \"PATCH\",\n Delete: \"DELETE\",\n Head: \"HEAD\"\n} as const;\n\nexport const UrlSchema: z.ZodType<Url> = z.string() as any;\nexport type Url = string & { Url: void };\nexport function Url(value: string): Url {\n return value as unknown as Url;\n}\n\nexport const EndpointPathLiteralSchema = z.string();\nexport type EndpointPathLiteral = z.infer<typeof EndpointPathLiteralSchema>;\nexport function EndpointPathLiteral(value: string): EndpointPathLiteral {\n return value;\n}\n\nexport const EndpointIdentifierSchema = z.object({\n path: z.string(),\n method: HttpMethodSchema,\n identifierOverride: z.string().nullish()\n});\nexport type EndpointIdentifier = z.infer<typeof EndpointIdentifierSchema>;\n\n// ── SDK request schema ──────────────────────────────────────────────────\n\nexport type SdkRequest =\n | { type: \"typescript\"; package: string; version: string | undefined }\n | { type: \"python\"; package: string; version: string | undefined }\n | { type: \"go\"; githubRepo: string; version: string | undefined }\n | { type: \"ruby\"; gem: string; version: string | undefined }\n | { type: \"java\"; group: string; artifact: string; version: string | undefined }\n | { type: \"csharp\"; package: string; version: string | undefined };\n\nexport const SdkRequestSchema: z.ZodType<SdkRequest> = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"typescript\"), package: z.string(), version: z.string().nullish() }),\n z.object({ type: z.literal(\"python\"), package: z.string(), version: z.string().nullish() }),\n z.object({ type: z.literal(\"go\"), githubRepo: z.string(), version: z.string().nullish() }),\n z.object({ type: z.literal(\"ruby\"), gem: z.string(), version: z.string().nullish() }),\n z.object({\n type: z.literal(\"java\"),\n group: z.string(),\n artifact: z.string(),\n version: z.string().nullish()\n }),\n z.object({ type: z.literal(\"csharp\"), package: z.string(), version: z.string().nullish() })\n]) as any;\n\n// ── Additional identifiers ─────────────────────────────────────────────\n\nexport const DocsConfigIdSchema = z.string();\nexport type DocsConfigId = z.infer<typeof DocsConfigIdSchema>;\nexport function DocsConfigId(value: string): DocsConfigId {\n return value;\n}\n\nexport const GrpcIdSchema = z.string();\nexport type GrpcId = z.infer<typeof GrpcIdSchema>;\nexport function GrpcId(value: string): GrpcId {\n return value;\n}\n\nexport const PageIdSchema = z.string();\nexport type PageId = z.infer<typeof PageIdSchema>;\nexport function PageId(value: string): PageId {\n return value;\n}\n\nexport const RoleIdSchema = z.string();\nexport type RoleId = z.infer<typeof RoleIdSchema>;\nexport function RoleId(value: string): RoleId {\n return value;\n}\n\nexport const TokenIdSchema = z.string();\nexport type TokenId = z.infer<typeof TokenIdSchema>;\n\nexport const VersionIdSchema = z.string();\nexport type VersionId = z.infer<typeof VersionIdSchema>;\nexport function VersionId(value: string): VersionId {\n return value;\n}\n\n// ── Enums ──────────────────────────────────────────────────────────────\n\nexport const LinkTarget = {\n Blank: \"_blank\",\n Self: \"_self\",\n Parent: \"_parent\",\n Top: \"_top\"\n} as const;\nexport type LinkTarget = (typeof LinkTarget)[keyof typeof LinkTarget];\n\nexport const GrpcMethod = {\n Unary: \"UNARY\",\n ClientStream: \"CLIENT_STREAM\",\n ServerStream: \"SERVER_STREAM\",\n BidirectionalStream: \"BIDIRECTIONAL_STREAM\"\n} as const;\nexport type GrpcMethod = (typeof GrpcMethod)[keyof typeof GrpcMethod];\n\nexport const Availability = {\n Alpha: \"Alpha\",\n Stable: \"Stable\",\n GenerallyAvailable: \"GenerallyAvailable\",\n InDevelopment: \"InDevelopment\",\n PreRelease: \"PreRelease\",\n Deprecated: \"Deprecated\",\n Beta: \"Beta\",\n Preview: \"Preview\",\n Legacy: \"Legacy\"\n} as const;\nexport type Availability = (typeof Availability)[keyof typeof Availability];\n\nexport const SupportedLanguage = {\n Curl: \"curl\",\n Python: \"python\",\n Javascript: \"javascript\",\n Js: \"js\",\n Node: \"node\",\n Typescript: \"typescript\",\n Ts: \"ts\",\n Go: \"go\",\n Ruby: \"ruby\",\n Csharp: \"csharp\",\n Php: \"php\",\n Swift: \"swift\",\n Rust: \"rust\"\n} as const;\nexport type SupportedLanguage = (typeof SupportedLanguage)[keyof typeof SupportedLanguage];\n\nexport const HttpSnippetLanguage = {\n Curl: \"curl\",\n Csharp: \"csharp\",\n Go: \"go\",\n Java: \"java\",\n Javascript: \"javascript\",\n Php: \"php\",\n Python: \"python\",\n Ruby: \"ruby\",\n Swift: \"swift\",\n Rust: \"rust\",\n Typescript: \"typescript\"\n} as const;\nexport type HttpSnippetLanguage = (typeof HttpSnippetLanguage)[keyof typeof HttpSnippetLanguage];\n\n// ── Error types ────────────────────────────────────────────────────────\n\nexport interface InvalidDomainErrorBody {\n /** Value the domain should end with (i.e. docs.buildwithfern.com or dev.docs.buildwithfern.com) */\n requiredDomainSuffix: string;\n}\n\n// ── Docs types ─────────────────────────────────────────────────────────\n\nexport interface AnnouncementConfig {\n /** The text to display in the banner, using markdown. */\n text: string;\n}\n\n// ── Snippet types ──────────────────────────────────────────────────────\n\nexport type SnippetsByEndpointMethod = Partial<Record<HttpMethod, Snippet[]>>;\n\nexport const SnippetsByEndpointMethodSchema: z.ZodType<SnippetsByEndpointMethod> = z.record(\n HttpMethodSchema,\n z.array(z.unknown())\n) as any;\n\n// ── SDK types for snippets ────────────────────────────────────────────\n\nexport interface TypeScriptSdk {\n package: string;\n version: string;\n}\n\nexport interface PythonSdk {\n package: string;\n version: string;\n}\n\nexport interface GoSdk {\n githubRepo: string;\n version: string;\n}\n\nexport interface RubySdk {\n gem: string;\n version: string;\n}\n\nexport interface CsharpSdk {\n package: string;\n version: string;\n}\n\nexport interface JavaSdk {\n group: string;\n artifact: string;\n version: string;\n}\n\nexport interface TypeScriptSnippet {\n sdk: TypeScriptSdk;\n client: string;\n}\n\nexport interface PythonSnippet {\n sdk: PythonSdk;\n async_client: string;\n sync_client: string;\n}\n\nexport interface GoSnippet {\n sdk: GoSdk;\n client: string;\n}\n\nexport interface RubySnippet {\n sdk: RubySdk;\n client: string;\n}\n\nexport interface CsharpSnippet {\n sdk: CsharpSdk;\n client: string;\n}\n\nexport interface JavaSnippet {\n sdk: JavaSdk;\n async_client: string;\n sync_client: string;\n}\n\n// ── Snippet discriminated union ───────────────────────────────────────\n\n// ── Snippet code types (used to deserialize snippet data from DB) ────\n\nexport interface TypeScriptSnippetCode {\n client: string;\n}\n\nexport interface PythonSnippetCode {\n async_client: string;\n sync_client: string;\n}\n\nexport interface GoSnippetCode {\n client: string;\n}\n\nexport interface RubySnippetCode {\n client: string;\n}\n\nexport interface JavaSnippetCode {\n async_client: string;\n sync_client: string;\n}\n\nexport interface CsharpSnippetCode {\n client: string;\n}\n\n// ── Sdk type (SdkRequest with required version) ─────────────────────\n\nexport const SdkSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"typescript\"), package: z.string(), version: z.string() }),\n z.object({ type: z.literal(\"python\"), package: z.string(), version: z.string() }),\n z.object({ type: z.literal(\"go\"), githubRepo: z.string(), version: z.string() }),\n z.object({ type: z.literal(\"ruby\"), gem: z.string(), version: z.string() }),\n z.object({\n type: z.literal(\"java\"),\n group: z.string(),\n artifact: z.string(),\n version: z.string()\n }),\n z.object({ type: z.literal(\"csharp\"), package: z.string(), version: z.string() })\n]);\nexport type Sdk = z.infer<typeof SdkSchema>;\n\n// ── Template type (generic template placeholder) ────────────────────\nexport type Template = unknown;\n\nexport type Snippet = Snippet.Typescript | Snippet.Python | Snippet.Java | Snippet.Go | Snippet.Ruby | Snippet.Csharp;\n\nexport namespace Snippet {\n interface _Base {\n exampleIdentifier: string | undefined;\n }\n\n export interface Typescript extends TypeScriptSnippet, _Base {\n type: \"typescript\";\n }\n\n export interface Python extends PythonSnippet, _Base {\n type: \"python\";\n }\n\n export interface Java extends JavaSnippet, _Base {\n type: \"java\";\n }\n\n export interface Go extends GoSnippet, _Base {\n type: \"go\";\n }\n\n export interface Ruby extends RubySnippet, _Base {\n type: \"ruby\";\n }\n\n export interface Csharp extends CsharpSnippet, _Base {\n type: \"csharp\";\n }\n}\n","import * as z from \"zod\";\nimport type { DiscriminatedUnionType, EnumType, ObjectType, TypeReference } from \"./shared.js\";\nimport {\n ApiAuthSchema,\n ApiDefinitionIdSchema,\n ApiNavigationConfigRootSchema,\n AuthSchemeIdSchema,\n AvailabilitySchema,\n DiscriminatedUnionTypeSchema,\n EndpointIdSchema,\n EndpointPathSchema,\n EnumTypeSchema,\n EnvironmentIdSchema,\n EnvironmentSchema,\n ErrorDeclarationSchema,\n ErrorExampleSchema,\n ExampleEndpointRequestSchema,\n ExampleEndpointResponseSchema,\n ExampleWebhookPayloadSchema,\n ExampleWebSocketSessionSchema,\n FileDownloadResponseBodyShapeSchema,\n FormDataRequestSchema,\n GraphQlOperationSchema,\n HeaderSchema,\n HttpMethodSchema,\n JsonBodyShapeSchema,\n MultipleAuthTypeSchema,\n ObjectTypeSchema,\n PropertyKeySchema,\n ProtocolSchema,\n QueryParameterSchema,\n StreamConditionSchema,\n StreamResponseV2Schema,\n SubpackageIdSchema,\n TypeIdSchema,\n TypeReferenceSchema,\n WebhookHttpMethodSchema,\n WebhookIdSchema,\n WebhookPayloadSchema,\n WebSocketIdSchema,\n WebSocketMessageSchema\n} from \"./shared.js\";\n\n// ── Register commons ─────────────────────────────────────────────────────\n\nexport const JqStringSchema = z.string();\nexport type JqString = z.infer<typeof JqStringSchema>;\n\nexport const RegisterLanguageSchema = z.string();\nexport type RegisterLanguage = z.infer<typeof RegisterLanguageSchema>;\n\n// ── Register type ────────────────────────────────────────────────────────\n\nexport const RegisterUndiscriminatedUnionVariantSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n typeName: z.string().nullish(),\n type: TypeReferenceSchema,\n displayName: z.string().nullish()\n});\nexport type RegisterUndiscriminatedUnionVariant = z.infer<typeof RegisterUndiscriminatedUnionVariantSchema>;\n\nexport const RegisterUndiscriminatedUnionTypeSchema = z.object({\n variants: z.array(RegisterUndiscriminatedUnionVariantSchema)\n});\nexport type RegisterUndiscriminatedUnionType = z.infer<typeof RegisterUndiscriminatedUnionTypeSchema>;\n\nexport type RegisterTypeShape =\n | RegisterTypeShape.Alias\n | RegisterTypeShape.Enum\n | RegisterTypeShape.UndiscriminatedUnion\n | RegisterTypeShape.DiscriminatedUnion\n | RegisterTypeShape.Object_;\n\nexport namespace RegisterTypeShape {\n export interface Alias {\n type: \"alias\";\n value: TypeReference;\n }\n export interface Enum extends EnumType {\n type: \"enum\";\n }\n export interface UndiscriminatedUnion extends RegisterUndiscriminatedUnionType {\n type: \"undiscriminatedUnion\";\n }\n export interface DiscriminatedUnion extends DiscriminatedUnionType {\n type: \"discriminatedUnion\";\n }\n export interface Object_ extends ObjectType {\n type: \"object\";\n }\n}\n\nexport const RegisterTypeShapeSchema: z.ZodType<RegisterTypeShape> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"alias\"),\n value: TypeReferenceSchema\n }),\n z.object({\n type: z.literal(\"enum\"),\n ...EnumTypeSchema.shape\n }),\n z.object({\n type: z.literal(\"undiscriminatedUnion\"),\n ...RegisterUndiscriminatedUnionTypeSchema.shape\n }),\n z.object({\n type: z.literal(\"discriminatedUnion\"),\n ...DiscriminatedUnionTypeSchema.shape\n }),\n z.object({\n type: z.literal(\"object\"),\n ...ObjectTypeSchema.shape\n })\n ])\n);\n\nexport const RegisterTypeDefinitionSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n name: z.string(),\n shape: RegisterTypeShapeSchema,\n displayName: z.string().nullish()\n});\nexport type RegisterTypeDefinition = z.infer<typeof RegisterTypeDefinitionSchema>;\n\nexport const RegisterBytesRequestSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n isOptional: z.boolean(),\n contentType: z.string().nullish()\n});\nexport type RegisterBytesRequest = z.infer<typeof RegisterBytesRequestSchema>;\n\n// ── Register endpoint ────────────────────────────────────────────────────\n\nexport const RegisterJsonRequestBodySchema = z.object({\n contentType: z.string(),\n shape: JsonBodyShapeSchema\n});\nexport type RegisterJsonRequestBody = z.infer<typeof RegisterJsonRequestBodySchema>;\n\nexport const RegisterHttpRequestBodyShapeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), ...RegisterJsonRequestBodySchema.shape }),\n z.object({ type: z.literal(\"formData\"), ...FormDataRequestSchema.shape }),\n z.object({ type: z.literal(\"bytes\"), ...RegisterBytesRequestSchema.shape }),\n z.object({ type: z.literal(\"object\"), ...ObjectTypeSchema.shape }),\n z.object({ type: z.literal(\"reference\"), value: TypeReferenceSchema }),\n z.object({ type: z.literal(\"fileUpload\"), value: FormDataRequestSchema.nullish() })\n]);\nexport type RegisterHttpRequestBodyShape = z.infer<typeof RegisterHttpRequestBodyShapeSchema>;\n\nexport const RegisterHttpRequestSchema = z.object({\n description: z.string().nullish(),\n type: RegisterHttpRequestBodyShapeSchema\n});\nexport type RegisterHttpRequest = z.infer<typeof RegisterHttpRequestSchema>;\n\nexport const RegisterHttpRequestsV2Schema = z.object({\n requests: z.array(RegisterHttpRequestSchema).nullish()\n});\nexport type RegisterHttpRequestsV2 = z.infer<typeof RegisterHttpRequestsV2Schema>;\n\nexport const RegisterCustomCodeSampleSchema = z.object({\n description: z.string().nullish(),\n language: z.string(),\n code: z.string(),\n name: z.string().nullish(),\n install: z.string().nullish()\n});\nexport type RegisterCustomCodeSample = z.infer<typeof RegisterCustomCodeSampleSchema>;\n\nexport const RegisterExampleEndpointCallSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n path: z.string(),\n pathParameters: z.record(PropertyKeySchema, z.unknown()),\n queryParameters: z.record(z.string(), z.unknown()),\n headers: z.record(z.string(), z.unknown()),\n requestBody: z.unknown(),\n requestBodyV3: ExampleEndpointRequestSchema.nullish(),\n responseStatusCode: z.number().int(),\n responseBody: z.unknown(),\n responseBodyV3: ExampleEndpointResponseSchema.nullish(),\n codeSamples: z.array(RegisterCustomCodeSampleSchema).nullish()\n});\nexport type RegisterExampleEndpointCall = z.infer<typeof RegisterExampleEndpointCallSchema>;\n\nexport const RegisterNonStreamResponseSchema = z.object({\n shape: JsonBodyShapeSchema,\n examples: z.array(RegisterExampleEndpointCallSchema)\n});\nexport type RegisterNonStreamResponse = z.infer<typeof RegisterNonStreamResponseSchema>;\n\nexport const RegisterStreamResponseSchema = z.object({\n shape: JsonBodyShapeSchema,\n examples: z.array(RegisterExampleEndpointCallSchema)\n});\nexport type RegisterStreamResponse = z.infer<typeof RegisterStreamResponseSchema>;\n\nexport const RegisterStreamConditionResponseSchema = z.object({\n response: RegisterNonStreamResponseSchema,\n streamResponse: RegisterStreamResponseSchema,\n streamCondition: StreamConditionSchema\n});\nexport type RegisterStreamConditionResponse = z.infer<typeof RegisterStreamConditionResponseSchema>;\n\nexport const RegisterHttpResponseBodyShapeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"object\"), ...ObjectTypeSchema.shape }),\n z.object({ type: z.literal(\"reference\"), value: TypeReferenceSchema }),\n z.object({ type: z.literal(\"fileDownload\"), ...FileDownloadResponseBodyShapeSchema.shape }),\n z.object({ type: z.literal(\"streamingText\") }),\n z.object({ type: z.literal(\"stream\"), ...StreamResponseV2Schema.shape }),\n z.object({ type: z.literal(\"streamCondition\"), ...RegisterStreamConditionResponseSchema.shape })\n]);\nexport type RegisterHttpResponseBodyShape = z.infer<typeof RegisterHttpResponseBodyShapeSchema>;\n\nexport const RegisterHttpResponseSchema = z.object({\n description: z.string().nullish(),\n type: RegisterHttpResponseBodyShapeSchema,\n statusCode: z.number().int().nullish(),\n isWildcard: z.boolean().nullish()\n});\nexport type RegisterHttpResponse = z.infer<typeof RegisterHttpResponseSchema>;\n\nexport const RegisterHttpResponsesV2Schema = z.object({\n responses: z.array(RegisterHttpResponseSchema).nullish()\n});\nexport type RegisterHttpResponsesV2 = z.infer<typeof RegisterHttpResponsesV2Schema>;\n\nexport const RegisterErrorDeclarationV2Schema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n type: RegisterTypeShapeSchema.nullish(),\n statusCode: z.number().int(),\n isWildcard: z.boolean().nullish(),\n name: z.string().nullish(),\n examples: z.array(ErrorExampleSchema).nullish(),\n headers: z.array(HeaderSchema).nullish()\n});\nexport type RegisterErrorDeclarationV2 = z.infer<typeof RegisterErrorDeclarationV2Schema>;\n\nexport const RegisterEndpointDefinitionSchema = z.object({\n description: z.string().nullish(),\n subtitle: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n slug: z.string().nullish(),\n auth: z.boolean().nullish(),\n authV2: z.array(AuthSchemeIdSchema).nullish(),\n multiAuth: z.array(MultipleAuthTypeSchema).nullish(),\n defaultEnvironment: EnvironmentIdSchema.nullish(),\n environments: z.array(EnvironmentSchema).nullish(),\n method: HttpMethodSchema,\n id: EndpointIdSchema,\n originalEndpointId: z.string().nullish(),\n name: z.string().nullish(),\n path: EndpointPathSchema,\n queryParameters: z.array(QueryParameterSchema),\n headers: z.array(HeaderSchema),\n responseHeaders: z.array(HeaderSchema).nullish(),\n request: RegisterHttpRequestSchema.nullish(),\n requestsV2: RegisterHttpRequestsV2Schema.nullish(),\n response: RegisterHttpResponseSchema.nullish(),\n responsesV2: RegisterHttpResponsesV2Schema.nullish(),\n errors: z.array(ErrorDeclarationSchema).nullish(),\n errorsV2: z.array(RegisterErrorDeclarationV2Schema).nullish(),\n examples: z.array(RegisterExampleEndpointCallSchema),\n protocol: ProtocolSchema.nullish(),\n includeInApiExplorer: z.boolean().nullish()\n});\nexport type RegisterEndpointDefinition = z.infer<typeof RegisterEndpointDefinitionSchema>;\n\n// ── Register webhook ─────────────────────────────────────────────────────\n\nexport const RegisterWebhookDefinitionSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n method: WebhookHttpMethodSchema,\n id: WebhookIdSchema,\n name: z.string().nullish(),\n path: z.array(z.string()),\n headers: z.array(HeaderSchema),\n payload: WebhookPayloadSchema,\n responses: z.array(RegisterHttpResponseSchema).nullish(),\n examples: z.array(ExampleWebhookPayloadSchema)\n});\nexport type RegisterWebhookDefinition = z.infer<typeof RegisterWebhookDefinitionSchema>;\n\n// ── Register websocket ───────────────────────────────────────────────────\n\nexport const RegisterWebSocketChannelSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n id: WebSocketIdSchema,\n auth: z.boolean(),\n name: z.string().nullish(),\n defaultEnvironment: EnvironmentIdSchema.nullish(),\n environments: z.array(EnvironmentSchema),\n path: EndpointPathSchema,\n headers: z.array(HeaderSchema),\n queryParameters: z.array(QueryParameterSchema),\n messages: z.array(WebSocketMessageSchema),\n examples: z.array(ExampleWebSocketSessionSchema)\n});\nexport type RegisterWebSocketChannel = z.infer<typeof RegisterWebSocketChannelSchema>;\n\n// ── Register index schemas ───────────────────────────────────────────────\n\nexport const SourceIdSchema = z.string();\nexport type SourceId = z.infer<typeof SourceIdSchema>;\nexport function SourceId(value: string): SourceId {\n return value;\n}\n\nexport const SourceSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"openapi\") }),\n z.object({ type: z.literal(\"asyncapi\") }),\n z.object({ type: z.literal(\"proto\") })\n]);\nexport type Source = z.infer<typeof SourceSchema>;\n\nexport const SourceUploadSchema = z.object({\n uploadUrl: z.string(),\n downloadUrl: z.string()\n});\nexport type SourceUpload = z.infer<typeof SourceUploadSchema>;\n\nexport const DynamicIRSchema = z.object({\n dynamicIR: z.unknown()\n});\nexport type DynamicIR = z.infer<typeof DynamicIRSchema>;\n\nexport const DynamicIRUploadSchema = z.object({\n uploadUrl: z.string()\n});\nexport type DynamicIRUpload = z.infer<typeof DynamicIRUploadSchema>;\n\nexport const TypescriptPackageSchema = z.object({\n package: z.string(),\n version: z.string().nullish()\n});\nexport type TypescriptPackage = z.infer<typeof TypescriptPackageSchema>;\n\nexport const PythonPackageSchema = z.object({\n package: z.string(),\n version: z.string().nullish()\n});\nexport type PythonPackage = z.infer<typeof PythonPackageSchema>;\n\nexport const GoModuleSchema = z.object({\n githubRepo: z.string(),\n version: z.string().nullish()\n});\nexport type GoModule = z.infer<typeof GoModuleSchema>;\n\nexport const JavaCoordinateSchema = z.object({\n coordinate: z.string(),\n version: z.string().nullish()\n});\nexport type JavaCoordinate = z.infer<typeof JavaCoordinateSchema>;\n\nexport const RubyGemSchema = z.object({\n gem: z.string(),\n version: z.string().nullish()\n});\nexport type RubyGem = z.infer<typeof RubyGemSchema>;\n\nexport const NugetPackageSchema = z.object({\n package: z.string(),\n version: z.string().nullish()\n});\nexport type NugetPackage = z.infer<typeof NugetPackageSchema>;\n\nexport const ComposerPackageSchema = z.object({\n package: z.string(),\n version: z.string().nullish()\n});\nexport type ComposerPackage = z.infer<typeof ComposerPackageSchema>;\n\nexport const SwiftPackageSchema = z.object({\n package: z.string(),\n version: z.string().nullish()\n});\nexport type SwiftPackage = z.infer<typeof SwiftPackageSchema>;\n\nexport const CratesPackageSchema = z.object({\n package: z.string(),\n version: z.string().nullish()\n});\nexport type CratesPackage = z.infer<typeof CratesPackageSchema>;\n\nexport const SnippetsConfigSchema = z.object({\n typescriptSdk: TypescriptPackageSchema.nullish(),\n pythonSdk: PythonPackageSchema.nullish(),\n goSdk: GoModuleSchema.nullish(),\n javaSdk: JavaCoordinateSchema.nullish(),\n rubySdk: RubyGemSchema.nullish(),\n csharpSdk: NugetPackageSchema.nullish(),\n phpSdk: ComposerPackageSchema.nullish(),\n swiftSdk: SwiftPackageSchema.nullish(),\n rustSdk: CratesPackageSchema.nullish()\n});\nexport type SnippetsConfig = z.infer<typeof SnippetsConfigSchema>;\n\nexport const RegisterApiDefinitionPackageSchema = z.object({\n endpoints: z.array(RegisterEndpointDefinitionSchema),\n websockets: z.array(RegisterWebSocketChannelSchema).nullish(),\n webhooks: z.array(RegisterWebhookDefinitionSchema).nullish(),\n graphqlOperations: z.array(GraphQlOperationSchema).nullish(),\n types: z.array(TypeIdSchema),\n subpackages: z.array(SubpackageIdSchema),\n pointsTo: SubpackageIdSchema.nullish()\n});\nexport type RegisterApiDefinitionPackage = z.infer<typeof RegisterApiDefinitionPackageSchema>;\n\nexport const RegisterApiDefinitionSubpackageSchema = z.object({\n ...RegisterApiDefinitionPackageSchema.shape,\n description: z.string().nullish(),\n subpackageId: SubpackageIdSchema,\n name: z.string(),\n displayName: z.string().nullish()\n});\nexport type RegisterApiDefinitionSubpackage = z.infer<typeof RegisterApiDefinitionSubpackageSchema>;\n\nexport const RegisterApiDefinitionSchema = z.object({\n rootPackage: RegisterApiDefinitionPackageSchema,\n apiName: z.string().nullish(),\n types: z.record(TypeIdSchema, RegisterTypeDefinitionSchema),\n subpackages: z.record(SubpackageIdSchema, RegisterApiDefinitionSubpackageSchema),\n auth: ApiAuthSchema.nullish(),\n authSchemes: z.record(AuthSchemeIdSchema, ApiAuthSchema).nullish(),\n globalHeaders: z.array(HeaderSchema).nullish(),\n snippetsConfiguration: SnippetsConfigSchema.nullish(),\n navigation: ApiNavigationConfigRootSchema.nullish()\n});\nexport type RegisterApiDefinition = z.infer<typeof RegisterApiDefinitionSchema>;\n\nexport const RegisterApiDefinitionResponseSchema = z.object({\n apiDefinitionId: ApiDefinitionIdSchema,\n sources: z.record(SourceIdSchema, SourceUploadSchema).nullish(),\n dynamicIRs: z.record(z.string(), DynamicIRUploadSchema).nullish()\n});\nexport type RegisterApiDefinitionResponse = z.infer<typeof RegisterApiDefinitionResponseSchema>;\n\nexport const SnippetInfoSchema = z.object({\n packageName: z.string(),\n version: z.string().nullish()\n});\nexport type SnippetInfo = z.infer<typeof SnippetInfoSchema>;\n\nexport const SdkDynamicIrDownloadSchema = z.object({\n downloadUrl: z.string()\n});\nexport type SdkDynamicIrDownload = z.infer<typeof SdkDynamicIrDownloadSchema>;\n\nexport const GetSdkDynamicIrUploadUrlsResponseSchema = z.object({\n uploadUrls: z.record(z.string(), DynamicIRUploadSchema)\n});\nexport type GetSdkDynamicIrUploadUrlsResponse = z.infer<typeof GetSdkDynamicIrUploadUrlsResponseSchema>;\n\nexport const CheckSdkDynamicIrExistsResponseSchema = z.object({\n existingDynamicIrs: z.record(z.string(), SdkDynamicIrDownloadSchema)\n});\nexport type CheckSdkDynamicIrExistsResponse = z.infer<typeof CheckSdkDynamicIrExistsResponseSchema>;\n\nexport const EndpointExampleGenerationErrorBodySchema = z.object({\n endpointId: z.string()\n});\nexport type EndpointExampleGenerationErrorBody = z.infer<typeof EndpointExampleGenerationErrorBodySchema>;\n","import * as Latest from \"./latest\";\n\n/**\n * The order of availability levels, from most stable to least stable.\n *\n * This is used to sort the availability levels in the UI, and to determine the stability level of a type reference when multiple are available.\n */\nexport const AvailabilityOrder = [\n Latest.Availability.Stable,\n Latest.Availability.GenerallyAvailable,\n Latest.Availability.Beta,\n Latest.Availability.Preview,\n Latest.Availability.PreRelease,\n Latest.Availability.Alpha,\n Latest.Availability.InDevelopment,\n Latest.Availability.Deprecated,\n Latest.Availability.Legacy\n] as const;\n\n/**\n * @param availabilities an array of availability levels\n * @returns the **least** stable availability level from the input array\n */\nexport function coalesceAvailability(\n availabilities: (Latest.Availability | null | undefined)[]\n): Latest.Availability | undefined {\n for (const availability of [...AvailabilityOrder].reverse()) {\n if (availabilities.includes(availability)) {\n return availability;\n }\n }\n return undefined;\n}\n\n// the following code is used to check that the contents of the AvailabilityOrder array contains all the values of the Availability enum\ntype AvailabilityValues = (typeof Latest.Availability)[keyof typeof Latest.Availability];\ntype CheckAvailabilityOrder<T extends readonly AvailabilityValues[]> = T[number] extends AvailabilityValues\n ? AvailabilityValues extends T[number]\n ? true\n : false\n : false;\ntype Assert<T extends true> = T;\nexport type CheckAssert = Assert<CheckAvailabilityOrder<typeof AvailabilityOrder>>;\n","import type { TypeId } from \"../navigation\";\nimport { LARGE_LOOP_TOLERANCE } from \"./const\";\nimport type { TypeDefinition } from \"./latest\";\nimport type { TypeShapeOrReference } from \"./types\";\nimport { unwrapObjectType, unwrapReference } from \"./unwrap\";\n\ninterface CollectReferencedTypeIdsOptions {\n maxDepth?: number;\n}\n\n/**\n * Collects all TypeIds that are referenced (directly or transitively) from a given type shape.\n * This is useful for filtering down a large types map to only the types needed for rendering\n * a specific schema, significantly reducing payload size.\n *\n * @param type - The root type shape to start traversal from\n * @param types - The full map of all type definitions\n * @param options - Optional configuration (maxDepth defaults to 10)\n * @returns A Set of TypeIds that are referenced from the root type\n */\nexport function collectReferencedTypeIds(\n type: TypeShapeOrReference,\n types: Record<TypeId, TypeDefinition>,\n { maxDepth = 10 }: CollectReferencedTypeIdsOptions = {}\n): Set<TypeId> {\n const referencedIds = new Set<TypeId>();\n\n const stack: {\n shape: TypeShapeOrReference;\n visitedTypeIds: Set<TypeId>;\n depth: number;\n }[] = [{ shape: type, visitedTypeIds: new Set(), depth: 0 }];\n\n let loop = 0;\n while (stack.length > 0) {\n if (loop++ > LARGE_LOOP_TOLERANCE) {\n console.error(\"Infinite loop detected when collecting referenced type IDs\");\n break;\n }\n\n const { shape, visitedTypeIds: parentVisitedTypeIds, depth } = stack.pop()!;\n\n if (depth > maxDepth) {\n continue;\n }\n\n const unwrapped = unwrapReference(shape, types);\n\n // Check for circular references\n let circularReferenceDetected = false;\n for (const typeId of unwrapped.visitedTypeIds) {\n if (parentVisitedTypeIds.has(typeId)) {\n circularReferenceDetected = true;\n break;\n }\n referencedIds.add(typeId);\n }\n\n if (circularReferenceDetected) {\n continue;\n }\n\n const visitedTypeIds = new Set([...parentVisitedTypeIds, ...unwrapped.visitedTypeIds]);\n\n // Handle object types - need to traverse properties and extended types\n if (unwrapped.shape.type === \"object\") {\n const obj = unwrapObjectType(unwrapped.shape, types, parentVisitedTypeIds);\n\n // Add type IDs from object unwrapping (extended types)\n for (const typeId of obj.visitedTypeIds) {\n referencedIds.add(typeId);\n visitedTypeIds.add(typeId);\n }\n\n // Traverse each property's value shape\n for (const property of obj.properties) {\n stack.push({\n shape: property.valueShape,\n visitedTypeIds,\n depth: depth + 1\n });\n // Traverse field arguments' type shapes\n if (property.arguments) {\n for (const arg of property.arguments) {\n stack.push({\n shape: arg.type,\n visitedTypeIds,\n depth: depth + 1\n });\n }\n }\n }\n\n // Traverse extra properties if present\n if (obj.extraProperties) {\n stack.push({\n shape: obj.extraProperties,\n visitedTypeIds,\n depth: depth + 1\n });\n }\n } else if (unwrapped.shape.type === \"undiscriminatedUnion\") {\n // Traverse each variant\n for (const variant of unwrapped.shape.variants) {\n stack.push({\n shape: variant.shape,\n visitedTypeIds,\n depth: depth + 1\n });\n }\n } else if (unwrapped.shape.type === \"discriminatedUnion\") {\n // Traverse each variant (variants extend ObjectType)\n for (const variant of unwrapped.shape.variants) {\n stack.push({\n shape: { ...variant, type: \"object\" },\n visitedTypeIds,\n depth: depth + 1\n });\n }\n } else if (unwrapped.shape.type === \"list\" || unwrapped.shape.type === \"set\") {\n // Traverse item shape\n stack.push({\n shape: unwrapped.shape.itemShape,\n visitedTypeIds,\n depth: depth + 1\n });\n } else if (unwrapped.shape.type === \"map\") {\n // Traverse both key and value shapes\n stack.push({\n shape: unwrapped.shape.keyShape,\n visitedTypeIds,\n depth: depth + 1\n });\n stack.push({\n shape: unwrapped.shape.valueShape,\n visitedTypeIds,\n depth: depth + 1\n });\n }\n // Primitives, enums, literals, and unknown types don't reference other types\n }\n\n return referencedIds;\n}\n\n/**\n * Filters a types map to only include types that are referenced from the given root type.\n * This is a convenience function that combines collectReferencedTypeIds with filtering.\n *\n * @param rootType - The root type shape to start traversal from\n * @param types - The full map of all type definitions\n * @param options - Optional configuration (maxDepth defaults to 10)\n * @returns A filtered types map containing only referenced types\n */\nexport function filterReferencedTypes(\n rootType: TypeShapeOrReference,\n types: Record<TypeId, TypeDefinition>,\n options?: CollectReferencedTypeIdsOptions\n): Record<TypeId, TypeDefinition> {\n const referencedIds = collectReferencedTypeIds(rootType, types, options);\n\n return Object.fromEntries(Object.entries(types).filter(([id]) => referencedIds.has(id as TypeId))) as Record<\n TypeId,\n TypeDefinition\n >;\n}\n","import type { Availability, TypeId } from \"../navigation\";\nimport { coalesceAvailability } from \"./availability\";\nimport { LARGE_LOOP_TOLERANCE } from \"./const\";\nimport type { ObjectProperty, TypeDefinition } from \"./latest\";\nimport type { TypeShapeOrReference } from \"./types\";\nimport { unwrapObjectType, unwrapReference } from \"./unwrap\";\n\n/**\n * A path through the type tree, used to identify a type definition.\n *\n * i.e. it may be represented as a jq:\n *\n * - a.b.c.d\n * - a[].b.c\n * - a.b[key].c\n *\n * We collect the true shape of the path here so that the frontend can determine how to render it.\n */\nexport type KeyPathItem =\n | { type: \"meta\"; value: string; displayName: string | null | undefined }\n | { type: \"objectProperty\"; key: string; optional: boolean | undefined }\n | { type: \"graphqlArgument\"; name: string; optional: boolean | undefined }\n | {\n type: \"undiscriminatedUnionVariant\";\n displayName: string | null | undefined;\n idx: number;\n }\n | {\n type: \"discriminatedUnionVariant\";\n discriminant: string;\n discriminantDisplayName: string | null | undefined;\n discriminantValue: string;\n }\n | { type: \"list\" | \"set\" | \"mapValue\" | \"extra\" }\n | { type: \"enumValue\"; value: string };\n\nexport interface TypeDefinitionTreeItem {\n /**\n * The path to the type definition\n */\n path: KeyPathItem[];\n descriptions: string[];\n availability: Availability | null | undefined;\n}\n\ninterface CollectTypeDefinitionTreeOptions {\n path?: KeyPathItem[];\n availability?: Availability | null;\n maxDepth?: number;\n}\n\n/**\n * This function is intended to be used to generate a tree of all type definitions, and is intended to be used\n * for indexing the type tree and their descriptions into algolia.\n */\nexport function collectTypeDefinitionTree(\n type: TypeShapeOrReference,\n types: Record<TypeId, TypeDefinition>,\n { availability: rootAvailability, maxDepth = 5, path: rootpath = [] }: CollectTypeDefinitionTreeOptions = {}\n): TypeDefinitionTreeItem[] {\n const toRet: TypeDefinitionTreeItem[] = [];\n\n const stack: {\n type: TypeShapeOrReference;\n path: KeyPathItem[];\n descriptions: string[];\n availability: Availability | null | undefined;\n visitedTypeIds: Set<TypeId>;\n }[] = [\n {\n type,\n path: rootpath,\n availability: rootAvailability,\n descriptions: [],\n visitedTypeIds: new Set()\n }\n ];\n\n let loop = 0;\n while (stack.length > 0) {\n if (loop++ > LARGE_LOOP_TOLERANCE) {\n console.error(\"Infinite loop detected when traversing type definitions\");\n break;\n }\n\n const {\n type: last,\n path: parentpath,\n descriptions: parentDescriptions,\n visitedTypeIds: parentVisitedTypeIds,\n availability: parentAvailability\n } = stack.pop()!;\n\n if (parentpath.length > maxDepth) {\n continue;\n }\n\n const unwrapped = unwrapReference(last, types);\n\n // the child's availability must be the least stable availability of the parent and the child\n const availability = coalesceAvailability([parentAvailability, unwrapped.availability]);\n const descriptions = [...parentDescriptions, ...unwrapped.descriptions];\n\n // check if this reference has been unwrapped already by its parents\n let circularReferenceDetected = false;\n unwrapped.visitedTypeIds.forEach((typeId) => {\n if (parentVisitedTypeIds.has(typeId)) {\n circularReferenceDetected = true;\n }\n });\n\n if (circularReferenceDetected) {\n continue;\n }\n\n const visitedTypeIds = new Set([...parentVisitedTypeIds, ...unwrapped.visitedTypeIds]);\n\n if (unwrapped.shape.type === \"object\") {\n const obj = unwrapObjectType(unwrapped.shape, types);\n descriptions.push(...obj.descriptions);\n\n obj.visitedTypeIds.forEach((typeId) => visitedTypeIds.add(typeId));\n\n obj.properties.forEach((property) => {\n stack.push({\n type: property.valueShape,\n path: [\n ...parentpath,\n {\n type: \"objectProperty\",\n key: property.key,\n optional: unwrapReference(property.valueShape, types).isOptional\n }\n ],\n descriptions: property.description ? [property.description] : [],\n visitedTypeIds,\n availability\n });\n property.arguments?.forEach((arg) => {\n stack.push({\n type: arg.type,\n path: [\n ...parentpath,\n {\n type: \"objectProperty\",\n key: property.key,\n optional: unwrapReference(property.valueShape, types).isOptional\n },\n {\n type: \"graphqlArgument\",\n name: arg.name,\n optional: unwrapReference(arg.type, types).isOptional\n }\n ],\n descriptions: arg.description ? [arg.description] : [],\n visitedTypeIds,\n availability: coalesceAvailability([availability, property.availability, arg.availability])\n });\n });\n });\n\n if (obj.extraProperties) {\n stack.push({\n type: obj.extraProperties,\n path: [...parentpath, { type: \"extra\" }],\n descriptions: [],\n visitedTypeIds,\n availability\n });\n }\n }\n\n toRet.push({\n path: parentpath,\n descriptions,\n availability\n });\n\n if (unwrapped.shape.type === \"undiscriminatedUnion\") {\n unwrapped.shape.variants.forEach((variant, idx) => {\n stack.push({\n type: variant.shape,\n path: [\n ...parentpath,\n {\n type: \"undiscriminatedUnionVariant\",\n displayName: variant.displayName,\n idx\n }\n ],\n descriptions: variant.description ? [variant.description] : [],\n visitedTypeIds,\n availability: coalesceAvailability([availability, variant.availability])\n });\n });\n } else if (unwrapped.shape.type === \"discriminatedUnion\") {\n const discriminant = unwrapped.shape.discriminant;\n\n unwrapped.shape.variants.forEach((variant) => {\n const path: KeyPathItem[] = [\n ...parentpath,\n {\n type: \"discriminatedUnionVariant\",\n discriminant,\n discriminantDisplayName: variant.displayName,\n discriminantValue: variant.discriminantValue\n }\n ];\n stack.push({\n type: { ...variant, type: \"object\" },\n path,\n descriptions: variant.description ? [variant.description] : [],\n visitedTypeIds,\n availability: coalesceAvailability([availability, variant.availability])\n });\n });\n } else if (unwrapped.shape.type === \"list\" || unwrapped.shape.type === \"set\") {\n stack.push({\n type: unwrapped.shape.itemShape,\n path: [...parentpath, { type: unwrapped.shape.type }],\n descriptions,\n visitedTypeIds,\n availability\n });\n } else if (unwrapped.shape.type === \"map\") {\n stack.push({\n type: unwrapped.shape.valueShape,\n path: [...parentpath, { type: \"mapValue\" }],\n // we don't need to add the descriptions of the key shape here, but the descriptions from the key are appended here:\n descriptions: [...descriptions, ...unwrapReference(unwrapped.shape.keyShape, types).descriptions],\n visitedTypeIds,\n availability\n });\n } else if (unwrapped.shape.type === \"enum\") {\n unwrapped.shape.values.forEach((value) => {\n toRet.push({\n path: [...parentpath, { type: \"enumValue\", value: value.value }],\n descriptions: value.description ? [value.description] : [],\n availability\n });\n });\n }\n }\n\n return toRet;\n}\n\nexport function collectTypeDefinitionTreeForObjectProperty(\n property: ObjectProperty,\n types: Record<TypeId, TypeDefinition>,\n rootPath: KeyPathItem[] = [],\n maxDepth = 5\n): TypeDefinitionTreeItem[] {\n return [\n {\n path: [\n ...rootPath,\n {\n type: \"objectProperty\",\n key: property.key,\n optional: unwrapReference(property.valueShape, types).isOptional\n }\n ],\n descriptions: property.description ? [property.description] : [],\n availability: property.availability ?? undefined\n },\n ...collectTypeDefinitionTree(property.valueShape, types, {\n maxDepth: maxDepth - 1,\n availability: property.availability ?? undefined,\n path: [\n ...rootPath,\n {\n type: \"objectProperty\",\n key: property.key,\n optional: unwrapReference(property.valueShape, types).isOptional\n }\n ]\n }),\n ...(property.arguments ?? []).flatMap((arg) => [\n {\n path: [\n ...rootPath,\n {\n type: \"objectProperty\" as const,\n key: property.key,\n optional: unwrapReference(property.valueShape, types).isOptional\n },\n {\n type: \"graphqlArgument\" as const,\n name: arg.name,\n optional: unwrapReference(arg.type, types).isOptional\n }\n ],\n descriptions: arg.description ? [arg.description] : [],\n availability: coalesceAvailability([property.availability, arg.availability])\n },\n ...collectTypeDefinitionTree(arg.type, types, {\n maxDepth: maxDepth - 1,\n availability: coalesceAvailability([property.availability, arg.availability]),\n path: [\n ...rootPath,\n {\n type: \"objectProperty\",\n key: property.key,\n optional: unwrapReference(property.valueShape, types).isOptional\n },\n {\n type: \"graphqlArgument\",\n name: arg.name,\n optional: unwrapReference(arg.type, types).isOptional\n }\n ]\n })\n ])\n ];\n}\n","import visitDiscriminatedUnion from \"@fern-api/ui-core-utils/visitDiscriminatedUnion\";\nimport { noop } from \"ts-essentials\";\n\nimport type * as Latest from \"./latest\";\n\nexport class ApiTypeIdVisitor {\n public static visitEndpointDefinition(\n endpoint: Latest.EndpointDefinition,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n endpoint.pathParameters?.forEach((pathParameter) => {\n ApiTypeIdVisitor.visitTypeShape(pathParameter.valueShape, visit);\n });\n endpoint.queryParameters?.forEach((queryParameter) => {\n ApiTypeIdVisitor.visitTypeShape(queryParameter.valueShape, visit);\n });\n endpoint.requestHeaders?.forEach((header) => {\n ApiTypeIdVisitor.visitTypeShape(header.valueShape, visit);\n });\n endpoint.responseHeaders?.forEach((header) => {\n ApiTypeIdVisitor.visitTypeShape(header.valueShape, visit);\n });\n endpoint.requests?.forEach((request) => {\n if (request.body != null) {\n ApiTypeIdVisitor.visitHttpRequestBodyShape(request.body, visit);\n }\n });\n endpoint.responses?.forEach((response) => {\n if (response.body != null) {\n ApiTypeIdVisitor.visitHttpResponseBodyShape(response.body, visit);\n }\n });\n endpoint.errors?.forEach((error) => {\n if (error.shape != null) {\n ApiTypeIdVisitor.visitTypeShape(error.shape, visit);\n }\n });\n }\n\n public static visitWebSocketChannel(\n channel: Latest.WebSocketChannel,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n channel.requestHeaders?.forEach((header) => {\n ApiTypeIdVisitor.visitTypeShape(header.valueShape, visit);\n });\n channel.pathParameters?.forEach((pathParameter) => {\n ApiTypeIdVisitor.visitTypeShape(pathParameter.valueShape, visit);\n });\n channel.queryParameters?.forEach((queryParameter) => {\n ApiTypeIdVisitor.visitTypeShape(queryParameter.valueShape, visit);\n });\n channel.messages.forEach((message) => {\n ApiTypeIdVisitor.visitTypeShape(message.body, visit);\n });\n }\n\n public static visitWebhookDefinition(\n webhook: Latest.WebhookDefinition,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n webhook.headers?.forEach((header) => {\n ApiTypeIdVisitor.visitTypeShape(header.valueShape, visit);\n });\n if (webhook.payloads?.[0] != null) {\n ApiTypeIdVisitor.visitWebhookPayloadShape(webhook.payloads[0].shape, visit);\n }\n webhook.responses?.forEach((response) => {\n if (response.body != null) {\n ApiTypeIdVisitor.visitHttpResponseBodyShape(response.body, visit);\n }\n });\n }\n\n public static visitGraphQlOperation(\n operation: Latest.GraphQlOperation,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n operation.arguments?.forEach((arg) => {\n ApiTypeIdVisitor.visitTypeShape(arg.type, visit);\n });\n ApiTypeIdVisitor.visitTypeShape(operation.returnType, visit);\n }\n\n public static visitWebhookPayloadShape(\n payloadShape: Latest.WebhookPayloadShape,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n return visitDiscriminatedUnion(payloadShape)._visit({\n object: (value) => ApiTypeIdVisitor.visitObjectType(value, visit),\n alias: (value) => ApiTypeIdVisitor.visitTypeReference(value.value, visit),\n formData: (value) => ApiTypeIdVisitor.visitFormDataRequest(value, visit)\n });\n }\n\n public static visitHttpRequestBodyShape(\n bodyShape: Latest.HttpRequestBodyShape,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n return visitDiscriminatedUnion(bodyShape)._visit({\n object: (value) => ApiTypeIdVisitor.visitObjectType(value, visit),\n alias: (value) => ApiTypeIdVisitor.visitTypeReference(value.value, visit),\n bytes: noop,\n formData: (value) => ApiTypeIdVisitor.visitFormDataRequest(value, visit)\n });\n }\n\n public static visitHttpResponseBodyShape(\n bodyShape: Latest.HttpResponseBodyShape,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n return visitDiscriminatedUnion(bodyShape)._visit({\n object: (value) => ApiTypeIdVisitor.visitObjectType(value, visit),\n alias: (value) => ApiTypeIdVisitor.visitTypeReference(value.value, visit),\n fileDownload: noop,\n streamingText: noop,\n stream: (value) => ApiTypeIdVisitor.visitTypeShape(value.shape, visit),\n empty: noop\n });\n }\n\n public static visitFormDataRequest(\n typeDefinition: Latest.FormDataRequest,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n return typeDefinition.fields.forEach((field) =>\n visitDiscriminatedUnion(field)._visit({\n file: noop,\n files: noop,\n property: (property) => ApiTypeIdVisitor.visitTypeShape(property.valueShape, visit)\n })\n );\n }\n\n public static visitTypeDefinition(\n typeDefinition: Latest.TypeDefinition,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n return ApiTypeIdVisitor.visitTypeShape(typeDefinition.shape, visit);\n }\n\n public static visitTypeShape(typeShape: Latest.TypeShape, visit: (typeId: Latest.TypeId) => void): void {\n return visitDiscriminatedUnion(typeShape)._visit({\n object: (value) => ApiTypeIdVisitor.visitObjectType(value, visit),\n alias: (value) => ApiTypeIdVisitor.visitTypeReference(value.value, visit),\n enum: noop,\n undiscriminatedUnion: (value) =>\n value.variants.forEach((variant) => ApiTypeIdVisitor.visitTypeShape(variant.shape, visit)),\n discriminatedUnion: (value) =>\n value.variants.forEach((variant) => ApiTypeIdVisitor.visitObjectType(variant, visit))\n });\n }\n\n public static visitObjectType(typeShape: Latest.ObjectType, visit: (typeId: Latest.TypeId) => void): void {\n typeShape.extends.forEach(visit);\n typeShape.properties.forEach((property) => {\n ApiTypeIdVisitor.visitTypeShape(property.valueShape, visit);\n property.arguments?.forEach((arg) => {\n ApiTypeIdVisitor.visitTypeShape(arg.type, visit);\n });\n });\n }\n\n public static visitTypeReference(\n typeReference: Latest.TypeReference,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n return visitDiscriminatedUnion(typeReference)._visit({\n id: (value) => visit(value.id),\n primitive: noop,\n optional: (value) => ApiTypeIdVisitor.visitTypeShape(value.shape, visit),\n nullable: (value) => ApiTypeIdVisitor.visitTypeShape(value.shape, visit),\n list: (value) => ApiTypeIdVisitor.visitTypeShape(value.itemShape, visit),\n set: (value) => ApiTypeIdVisitor.visitTypeShape(value.itemShape, visit),\n map: (value) => {\n ApiTypeIdVisitor.visitTypeShape(value.keyShape, visit);\n ApiTypeIdVisitor.visitTypeShape(value.valueShape, visit);\n },\n literal: noop,\n unknown: noop\n });\n }\n}\n","import { LARGE_LOOP_TOLERANCE } from \"./const\";\nimport type * as Latest from \"./latest\";\nimport { EndpointId } from \"./latest\";\nimport { ApiTypeIdVisitor } from \"./typeid-visitor\";\n\nexport type PruningNodeType =\n | { type: \"endpoint\"; endpointId: Latest.EndpointId }\n | { type: \"webSocket\"; webSocketId: Latest.WebSocketId }\n | { type: \"webhook\"; webhookId: Latest.WebhookId }\n | { type: \"grpc\"; grpcId: Latest.GrpcId }\n | {\n type: \"graphql\";\n graphqlOperationId: Latest.GraphQlOperationId;\n graphqlOperationIds?: Latest.GraphQlOperationId[];\n };\n\nclass ApiDefinitionPruner {\n static instances = new WeakMap<Latest.ApiDefinition, ApiDefinitionPruner>();\n\n static from(api: Latest.ApiDefinition): ApiDefinitionPruner {\n const toRet = ApiDefinitionPruner.instances.get(api) ?? new ApiDefinitionPruner(api);\n ApiDefinitionPruner.instances.set(api, toRet);\n return toRet;\n }\n\n private constructor(private api: Latest.ApiDefinition) {}\n\n /**\n * This utility is designed to prune an API definition to only include the desired endpoints, websockets, and webhooks\n * based on the provided node of the navigation tree, which will reduce the size of the API definition that is sent to the client.\n *\n * @param node of the navigation tree to prune the API definition to\n * @returns a new API definition that is the result of pruning the input API definition to the desired node\n */\n public prune(...nodes: PruningNodeType[]): Latest.ApiDefinition {\n const toRet: Latest.ApiDefinition = {\n ...this.api,\n endpoints: {},\n websockets: {},\n webhooks: {},\n graphqlOperations: {},\n types: {},\n subpackages: {},\n auths: {}\n };\n\n const namespaces = new Set<Latest.SubpackageId>();\n const authSchemes = new Set<Latest.AuthSchemeId>();\n\n for (const node of nodes) {\n if (node.type === \"endpoint\") {\n const found = this.api.endpoints[node.endpointId];\n if (found) {\n toRet.endpoints[node.endpointId] = found;\n found.namespace?.forEach((subpackageId) => namespaces.add(subpackageId));\n found.auth?.forEach((authSchemeId) => authSchemes.add(authSchemeId));\n }\n } else if (node.type === \"webSocket\") {\n const found = this.api.websockets[node.webSocketId];\n if (found) {\n toRet.websockets[node.webSocketId] = found;\n found.namespace?.forEach((subpackageId) => namespaces.add(subpackageId));\n found.auth?.forEach((authSchemeId) => authSchemes.add(authSchemeId));\n }\n } else if (node.type === \"webhook\") {\n const found = this.api.webhooks[node.webhookId];\n if (found) {\n toRet.webhooks[node.webhookId] = found;\n found.namespace?.forEach((subpackageId) => namespaces.add(subpackageId));\n }\n } else if (node.type === \"grpc\") {\n const grpcIdAsEndpointId = EndpointId(node.grpcId);\n const found = this.api.endpoints[grpcIdAsEndpointId];\n if (found) {\n toRet.endpoints[grpcIdAsEndpointId] = found;\n found.namespace?.forEach((subpackageId) => namespaces.add(subpackageId));\n }\n } else if (node.type === \"graphql\") {\n const idsToInclude = node.graphqlOperationIds ?? [node.graphqlOperationId];\n for (const opId of idsToInclude) {\n const found = this.api.graphqlOperations[opId];\n if (found) {\n toRet.graphqlOperations[opId] = found;\n found.namespace?.forEach((subpackageId) => namespaces.add(subpackageId));\n }\n }\n }\n }\n\n toRet.types = this.pruneTypes(toRet);\n namespaces.forEach((subpackageId) => {\n const subpackage = this.api.subpackages[subpackageId];\n if (subpackage) {\n toRet.subpackages[subpackageId] = subpackage;\n }\n });\n authSchemes.forEach((authSchemeId) => {\n const authScheme = this.api.auths[authSchemeId];\n if (authScheme) {\n toRet.auths[authSchemeId] = authScheme;\n }\n });\n\n return toRet;\n }\n\n private pruneTypes(partiallyPrunedApi: Latest.ApiDefinition): Record<string, Latest.TypeDefinition> {\n let typeIds = new Set<Latest.TypeId>();\n partiallyPrunedApi.globalHeaders?.forEach((header) => {\n ApiTypeIdVisitor.visitTypeShape(header.valueShape, (typeId) => typeIds.add(typeId));\n });\n\n for (const endpoint of Object.values(partiallyPrunedApi.endpoints)) {\n ApiTypeIdVisitor.visitEndpointDefinition(endpoint, (typeId) => typeIds.add(typeId));\n }\n\n for (const websocket of Object.values(partiallyPrunedApi.websockets)) {\n ApiTypeIdVisitor.visitWebSocketChannel(websocket, (typeId) => typeIds.add(typeId));\n }\n\n for (const webhook of Object.values(partiallyPrunedApi.webhooks)) {\n ApiTypeIdVisitor.visitWebhookDefinition(webhook, (typeId) => typeIds.add(typeId));\n }\n\n for (const graphqlOperation of Object.values(partiallyPrunedApi.graphqlOperations)) {\n ApiTypeIdVisitor.visitGraphQlOperation(graphqlOperation, (typeId) => typeIds.add(typeId));\n }\n\n typeIds = this.expandTypeIds(typeIds);\n\n const types: Record<string, Latest.TypeDefinition> = {};\n\n typeIds.forEach((typeId) => {\n const type = this.api.types[typeId];\n if (type != null) {\n types[typeId] = type;\n }\n });\n\n return types;\n }\n\n private expandTypeIds(typeIds: ReadonlySet<Latest.TypeId>): Set<Latest.TypeId> {\n const visitedTypeIds = new Set<Latest.TypeId>();\n const queue = Array.from(typeIds);\n\n let loop = 0;\n while (queue.length > 0) {\n if (loop > LARGE_LOOP_TOLERANCE + typeIds.size) {\n throw new Error(\"Infinite loop detected while expanding type references.\");\n }\n\n const typeId = queue.pop();\n if (typeId != null && !visitedTypeIds.has(typeId)) {\n visitedTypeIds.add(typeId);\n const type = this.api.types[typeId];\n if (type) {\n ApiTypeIdVisitor.visitTypeDefinition(type, (nestedTypeId) => {\n queue.push(nestedTypeId);\n });\n }\n }\n\n loop++;\n }\n\n return visitedTypeIds;\n }\n}\n\nexport function prune(api: Latest.ApiDefinition, ...nodes: PruningNodeType[]): Latest.ApiDefinition {\n return ApiDefinitionPruner.from(api).prune(...nodes);\n}\n","import type { EndpointNode, GraphQlNode, GrpcNode, TypeId, WebhookNode, WebSocketNode } from \"../navigation\";\nimport type {\n ApiDefinition,\n AuthScheme,\n AuthSchemeId,\n EndpointDefinition,\n EndpointId,\n GraphQlOperation,\n ObjectProperty,\n TypeDefinition,\n WebhookDefinition,\n WebSocketChannel\n} from \"./latest\";\nimport { prune } from \"./prune\";\n\nexport type AuthSchemeWithKey = {\n key: AuthSchemeId;\n scheme: AuthScheme;\n};\n\nexport type AuthOptionEntry = {\n key: string;\n schemeIds: AuthSchemeId[];\n schemes: AuthScheme[];\n label: string;\n};\n\nexport type EndpointContext = {\n node: EndpointNode;\n endpoint: EndpointDefinition;\n globalHeaders: ObjectProperty[];\n auths: AuthScheme[];\n authsWithKeys: AuthSchemeWithKey[];\n authOptions: AuthScheme[][];\n authOptionEntries: AuthOptionEntry[];\n types: Record<TypeId, TypeDefinition>;\n};\n\nfunction getAuthSchemeLabel(scheme: AuthScheme): string {\n if (scheme.type === \"basicAuth\") {\n return \"Basic Auth\";\n }\n if (scheme.type === \"bearerAuth\") {\n return \"Bearer\";\n }\n if (scheme.type === \"header\") {\n return scheme.prefix || \"API Key\";\n }\n if (scheme.type === \"oAuth\") {\n return \"OAuth\";\n }\n return \"Auth\";\n}\n\nfunction constructAuthOptions(\n endpoint: EndpointDefinition,\n authsMap: Record<AuthSchemeId, AuthScheme>\n): AuthScheme[][] {\n if (endpoint.multiAuth != null && endpoint.multiAuth.length > 0) {\n return endpoint.multiAuth\n .map((multiAuthGroup) =>\n multiAuthGroup.schemes\n .map((schemeId) => authsMap[schemeId])\n .filter((scheme): scheme is AuthScheme => scheme != null)\n )\n .filter((group) => group.length > 0);\n }\n\n if (endpoint.auth != null && endpoint.auth.length > 0) {\n return endpoint.auth\n .map((schemeId) => {\n const scheme = authsMap[schemeId];\n return scheme ? [scheme] : null;\n })\n .filter((group): group is AuthScheme[] => group != null);\n }\n\n return [];\n}\n\nfunction constructAuthOptionEntries(\n endpoint: EndpointDefinition,\n authsMap: Record<AuthSchemeId, AuthScheme>\n): AuthOptionEntry[] {\n if (endpoint.multiAuth != null && endpoint.multiAuth.length > 0) {\n return endpoint.multiAuth\n .map((multiAuthGroup) => {\n const schemeIds = multiAuthGroup.schemes;\n const schemes = schemeIds\n .map((schemeId) => authsMap[schemeId])\n .filter((scheme): scheme is AuthScheme => scheme != null);\n\n if (schemes.length === 0) {\n return null;\n }\n\n const sortedSchemeIds = [...schemeIds].sort();\n const key = schemes.length === 1 ? String(schemeIds[0]) : `multi:${sortedSchemeIds.join(\"+\")}`;\n const label = schemes.map(getAuthSchemeLabel).join(\" + \");\n\n return {\n key,\n schemeIds,\n schemes,\n label\n };\n })\n .filter((entry): entry is AuthOptionEntry => entry != null);\n }\n\n if (endpoint.auth != null && endpoint.auth.length > 0) {\n return endpoint.auth\n .map((schemeId) => {\n const scheme = authsMap[schemeId];\n if (!scheme) {\n return null;\n }\n return {\n key: String(schemeId),\n schemeIds: [schemeId],\n schemes: [scheme],\n label: getAuthSchemeLabel(scheme)\n };\n })\n .filter((entry): entry is AuthOptionEntry => entry != null);\n }\n\n return [];\n}\n\nexport function createEndpointContext(\n node: EndpointNode | undefined,\n apiDefinition: ApiDefinition | undefined\n): EndpointContext | undefined {\n if (!node) {\n console.warn(\"[createEndpointContext] node is undefined\");\n return undefined;\n }\n if (apiDefinition == null) {\n console.warn(\n `[createEndpointContext] apiDefinition is undefined for node id=${node.id}, endpointId=${node.endpointId}`\n );\n return undefined;\n }\n const api = prune(apiDefinition, node);\n const endpoint = api.endpoints[node.endpointId];\n if (!endpoint) {\n const availableEndpointIds = Object.keys(api.endpoints);\n console.warn(\n `[createEndpointContext] endpoint not found after pruning. endpointId=${node.endpointId}, apiDefinitionId=${node.apiDefinitionId}, availableEndpointIds=[${availableEndpointIds.join(\", \")}]`\n );\n return undefined;\n }\n return {\n node,\n endpoint,\n auths: endpoint.auth?.map((id) => api.auths[id]).filter((auth): auth is AuthScheme => auth != null) ?? [],\n authsWithKeys:\n endpoint.auth\n ?.map((id) => {\n const scheme = api.auths[id];\n return scheme ? { key: id, scheme } : null;\n })\n .filter((item): item is AuthSchemeWithKey => item != null) ?? [],\n authOptions: constructAuthOptions(endpoint, api.auths),\n authOptionEntries: constructAuthOptionEntries(endpoint, api.auths),\n globalHeaders: api.globalHeaders ?? [],\n types: api.types\n };\n}\n\nexport type WebSocketContext = {\n node: WebSocketNode;\n channel: WebSocketChannel;\n globalHeaders: ObjectProperty[];\n auths: AuthScheme[];\n authsWithKeys: AuthSchemeWithKey[];\n authOptions: AuthScheme[][];\n authOptionEntries: AuthOptionEntry[];\n types: Record<TypeId, TypeDefinition>;\n};\n\nfunction constructWebSocketAuthOptions(\n channel: WebSocketChannel,\n authsMap: Record<AuthSchemeId, AuthScheme>\n): AuthScheme[][] {\n if (channel.auth != null && channel.auth.length > 0) {\n return channel.auth\n .map((schemeId) => {\n const scheme = authsMap[schemeId];\n return scheme ? [scheme] : null;\n })\n .filter((group): group is AuthScheme[] => group != null);\n }\n\n return [];\n}\n\nfunction constructWebSocketAuthOptionEntries(\n channel: WebSocketChannel,\n authsMap: Record<AuthSchemeId, AuthScheme>\n): AuthOptionEntry[] {\n if (channel.auth != null && channel.auth.length > 0) {\n return channel.auth\n .map((schemeId) => {\n const scheme = authsMap[schemeId];\n if (!scheme) {\n return null;\n }\n return {\n key: String(schemeId),\n schemeIds: [schemeId],\n schemes: [scheme],\n label: getAuthSchemeLabel(scheme)\n };\n })\n .filter((entry): entry is AuthOptionEntry => entry != null);\n }\n\n return [];\n}\n\nexport function createWebSocketContext(\n node: WebSocketNode | undefined,\n apiDefinition: ApiDefinition | undefined\n): WebSocketContext | undefined {\n if (!node) {\n console.warn(\"[createWebSocketContext] node is undefined\");\n return undefined;\n }\n if (apiDefinition == null) {\n console.warn(\n `[createWebSocketContext] apiDefinition is undefined for node id=${node.id}, webSocketId=${node.webSocketId}`\n );\n return undefined;\n }\n const api = prune(apiDefinition, node);\n const channel = api.websockets[node.webSocketId];\n if (!channel) {\n const availableWebSocketIds = Object.keys(api.websockets);\n console.warn(\n `[createWebSocketContext] webSocket channel not found after pruning. webSocketId=${node.webSocketId}, apiDefinitionId=${node.apiDefinitionId}, availableWebSocketIds=[${availableWebSocketIds.join(\", \")}]`\n );\n return undefined;\n }\n return {\n node,\n channel,\n auths: channel.auth?.map((id) => api.auths[id]).filter((auth): auth is AuthScheme => auth != null) ?? [],\n authsWithKeys:\n channel.auth\n ?.map((id) => {\n const scheme = api.auths[id];\n return scheme ? { key: id, scheme } : null;\n })\n .filter((item): item is AuthSchemeWithKey => item != null) ?? [],\n authOptions: constructWebSocketAuthOptions(channel, api.auths),\n authOptionEntries: constructWebSocketAuthOptionEntries(channel, api.auths),\n globalHeaders: api.globalHeaders ?? [],\n types: api.types\n };\n}\n\nexport type WebhookContext = {\n node: WebhookNode;\n webhook: WebhookDefinition;\n types: Record<TypeId, TypeDefinition>;\n};\n\nexport function createWebhookContext(\n node: WebhookNode | undefined,\n apiDefinition: ApiDefinition | undefined\n): WebhookContext | undefined {\n if (!node) {\n console.warn(\"[createWebhookContext] node is undefined\");\n return undefined;\n }\n if (apiDefinition == null) {\n console.warn(\n `[createWebhookContext] apiDefinition is undefined for node id=${node.id}, webhookId=${node.webhookId}`\n );\n return undefined;\n }\n const api = prune(apiDefinition, node);\n const webhook = api.webhooks[node.webhookId];\n if (!webhook) {\n const availableWebhookIds = Object.keys(api.webhooks);\n console.warn(\n `[createWebhookContext] webhook not found after pruning. webhookId=${node.webhookId}, apiDefinitionId=${node.apiDefinitionId}, availableWebhookIds=[${availableWebhookIds.join(\", \")}]`\n );\n return undefined;\n }\n return {\n node,\n webhook,\n types: api.types\n };\n}\n\nexport type GrpcContext = {\n node: GrpcNode;\n grpc: EndpointDefinition;\n types: Record<TypeId, TypeDefinition>;\n};\n\nexport function createGrpcContext(\n node: GrpcNode | undefined,\n apiDefinition: ApiDefinition | undefined\n): GrpcContext | undefined {\n if (!node) {\n console.warn(\"[createGrpcContext] node is undefined\");\n return undefined;\n }\n if (apiDefinition == null) {\n console.warn(`[createGrpcContext] apiDefinition is undefined for node id=${node.id}, grpcId=${node.grpcId}`);\n return undefined;\n }\n const api = prune(apiDefinition, node);\n const grpc = api.endpoints[node.grpcId as unknown as EndpointId];\n if (!grpc) {\n const availableEndpointIds = Object.keys(api.endpoints);\n console.warn(\n `[createGrpcContext] grpc endpoint not found after pruning. grpcId=${node.grpcId}, apiDefinitionId=${node.apiDefinitionId}, availableEndpointIds=[${availableEndpointIds.join(\", \")}]`\n );\n return undefined;\n }\n return {\n node,\n grpc,\n types: api.types\n };\n}\n\nexport type GraphqlContext = {\n node: GraphQlNode;\n /** Primary operation (first in the group, or the only operation). */\n operation: GraphQlOperation;\n /** All operations for this page. For namespace groups this includes every grouped operation. */\n operations: GraphQlOperation[];\n types: Record<TypeId, TypeDefinition>;\n};\n\nexport function createGraphqlContext(\n node: GraphQlNode | undefined,\n apiDefinition: ApiDefinition | undefined\n): GraphqlContext | undefined {\n if (!node) {\n console.warn(\"[createGraphqlContext] node is undefined\");\n return undefined;\n }\n if (apiDefinition == null) {\n console.warn(\n `[createGraphqlContext] apiDefinition is undefined for node id=${node.id}, graphqlOperationId=${node.graphqlOperationId}`\n );\n return undefined;\n }\n const api = prune(apiDefinition, node);\n const operation = api.graphqlOperations[node.graphqlOperationId];\n if (!operation) {\n const availableOperationIds = Object.keys(api.graphqlOperations);\n console.warn(\n `[createGraphqlContext] graphql operation not found after pruning. graphqlOperationId=${node.graphqlOperationId}, apiDefinitionId=${node.apiDefinitionId}, availableOperationIds=[${availableOperationIds.join(\", \")}]`\n );\n return undefined;\n }\n\n // Collect all operations for namespace groups, preserving order.\n const allIds = node.graphqlOperationIds ?? [node.graphqlOperationId];\n const operations: GraphQlOperation[] = [];\n for (const id of allIds) {\n const op = api.graphqlOperations[id];\n if (op) {\n operations.push(op);\n }\n }\n // Fallback: if no grouped operations were resolved, use the primary operation.\n if (operations.length === 0) {\n operations.push(operation);\n }\n\n return {\n node,\n operation,\n operations,\n types: api.types\n };\n}\n","import type { EndpointPathPart } from \"../orpc-client/api/shared.js\";\nimport { EndpointPathLiteral } from \"../orpc-client/shared.js\";\n\n/**\n * Commonly used in Express.js and how we render paths in the UI.\n */\nexport function toColonEndpointPathLiteral(pathParts: EndpointPathPart[]): EndpointPathLiteral {\n return EndpointPathLiteral(\n pathParts.map((part) => (part.type === \"literal\" ? part.value : `:${part.value}`)).join(\"\")\n );\n}\n\n/**\n * Used in OpenAPI specification and Fern Definition. This is how we store EndpointPathLiteral in the snippet resolver.\n */\nexport function toCurlyBraceEndpointPathLiteral(pathParts: EndpointPathPart[]): EndpointPathLiteral {\n return EndpointPathLiteral(\n pathParts.map((part) => (part.type === \"literal\" ? part.value : `{${part.value}}`)).join(\"\")\n );\n}\n","import * as Latest from \"./latest\";\n\n/**\n * This utility is designed to join multiple API definitions into a single API definition.\n * After pruning the API definitions server-side to only include the desired endpoints, websockets, and webhooks,\n * this utility can be used to join the pruned API definitions back together on the client-side.\n *\n * @param apis list of API definitions to join (must have the same ID)\n * @returns a new API definition that is the result of joining the input API definitions\n */\nexport function joiner(\n force = false\n): (first: Latest.ApiDefinition, ...apis: Latest.ApiDefinition[]) => Latest.ApiDefinition {\n return (first, ...apis) => {\n const joined: Latest.ApiDefinition = {\n id: first.id,\n apiName: first.apiName,\n endpoints: { ...first.endpoints },\n websockets: { ...first.websockets },\n webhooks: { ...first.webhooks },\n graphqlOperations: { ...first.graphqlOperations },\n types: { ...first.types },\n subpackages: { ...first.subpackages },\n auths: { ...first.auths },\n globalHeaders: first.globalHeaders ? [...first.globalHeaders] : undefined,\n snippetsConfiguration: first.snippetsConfiguration ? { ...first.snippetsConfiguration } : undefined\n };\n\n let isJoined = false;\n for (const api of apis) {\n if (api.id !== joined.id) {\n throw new Error(\"Cannot join API definitions with different IDs\");\n }\n\n for (const [endpointId, endpoint] of Object.entries(api.endpoints)) {\n if (!isJoined && !first.endpoints[Latest.EndpointId(endpointId)]) {\n isJoined = true;\n }\n joined.endpoints[Latest.EndpointId(endpointId)] = endpoint;\n }\n\n for (const [webSocketId, webSocket] of Object.entries(api.websockets)) {\n if (!isJoined && !first.websockets[Latest.WebSocketId(webSocketId)]) {\n isJoined = true;\n }\n joined.websockets[Latest.WebSocketId(webSocketId)] = webSocket;\n }\n\n for (const [webhookId, webhook] of Object.entries(api.webhooks)) {\n if (!isJoined && !first.webhooks[Latest.WebhookId(webhookId)]) {\n isJoined = true;\n }\n joined.webhooks[Latest.WebhookId(webhookId)] = webhook;\n }\n\n for (const [typeId, type] of Object.entries(api.types)) {\n if (!isJoined && !first.types[Latest.TypeId(typeId)]) {\n isJoined = true;\n }\n joined.types[Latest.TypeId(typeId)] = type;\n }\n\n for (const [subpackageId, subpackage] of Object.entries(api.subpackages)) {\n if (!isJoined && !first.subpackages[Latest.SubpackageId(subpackageId)]) {\n isJoined = true;\n }\n joined.subpackages[Latest.SubpackageId(subpackageId)] = subpackage;\n }\n\n for (const [authId, auth] of Object.entries(api.auths)) {\n if (!isJoined && !first.auths[Latest.AuthSchemeId(authId)]) {\n isJoined = true;\n }\n joined.auths[Latest.AuthSchemeId(authId)] = auth;\n }\n\n const globalHeaders = (joined.globalHeaders ??= []);\n api.globalHeaders?.forEach((header) => {\n if (!globalHeaders.find((h) => h.key === header.key)) {\n isJoined = true;\n globalHeaders.push(header);\n }\n });\n }\n\n if (!isJoined && !force) {\n return first;\n }\n\n return joined;\n };\n}\n","export function cleanLanguage(language: string): string {\n language = language.toLowerCase().trim();\n if ([\"node\", \"nodejs\", \"js\", \"javascript\"].includes(language)) {\n return \"javascript\";\n }\n\n if ([\"py\", \"python\"].includes(language)) {\n return \"python\";\n }\n\n if ([\"ts\", \"typescript\", \"ts-node\"].includes(language)) {\n return \"typescript\";\n }\n\n if ([\"go\", \"golang\"].includes(language)) {\n return \"go\";\n }\n\n return language;\n}\n","import { isNonNullish } from \"@fern-api/ui-core-utils\";\nimport titleCase from \"@fern-api/ui-core-utils/titleCase\";\nimport visitDiscriminatedUnion from \"@fern-api/ui-core-utils/visitDiscriminatedUnion\";\nimport { mapValues } from \"es-toolkit/object\";\n\nimport type { APIV1Read } from \"../../client\";\nimport { ROOT_PACKAGE_ID } from \"../../navigation/consts\";\nimport { SupportedLanguage } from \"../../orpc-client/shared.js\";\nimport { LOOP_TOLERANCE } from \"../const\";\nimport { cleanLanguage } from \"../lang\";\nimport * as V2 from \"../latest\";\nimport { convertToCurl } from \"../snippets/curl\";\nimport { toSnippetHttpRequest } from \"../snippets/SnippetHttpRequest\";\nimport { sortKeysByShape } from \"../sort-keys\";\nimport { getMessageForStatus } from \"../status-message\";\n\nfunction isSubpackage(package_: APIV1Read.ApiDefinitionPackage): package_ is APIV1Read.ApiDefinitionSubpackage {\n return typeof (package_ as APIV1Read.ApiDefinitionSubpackage).subpackageId === \"string\";\n}\n\nconst AUTH_SCHEME_ID = V2.AuthSchemeId(\"default\");\n\n/**\n * Shared default constants used as fallback return values when migration fails or input is null.\n */\nconst DEFAULT_TYPE_REFERENCE: V2.TypeReference = { type: \"unknown\", displayName: undefined };\nconst DEFAULT_TYPE_SHAPE: V2.TypeShape = { type: \"alias\", value: DEFAULT_TYPE_REFERENCE };\nconst DEFAULT_WEBHOOK_PAYLOAD_SHAPE: V2.WebhookPayloadShape = { type: \"alias\", value: DEFAULT_TYPE_REFERENCE };\nconst DEFAULT_WEBHOOK_PAYLOAD: V2.WebhookPayload = { description: undefined, shape: DEFAULT_WEBHOOK_PAYLOAD_SHAPE };\nconst DEFAULT_GRAPHQL_ARGUMENT: V2.GraphQlArgument = {\n name: \"\",\n description: undefined,\n availability: undefined,\n type: DEFAULT_TYPE_SHAPE,\n defaultValue: undefined\n};\n\n/**\n * Wraps a function with a try-catch that returns a default value on error.\n */\nfunction withDefault<Args extends unknown[], T>(\n fn: (...args: Args) => T,\n defaultValue: T,\n label: string\n): (...args: Args) => T {\n return (...args: Args): T => {\n try {\n return fn(...args);\n } catch (e) {\n const argsSummary = args.map((arg) => {\n try {\n const str = JSON.stringify(arg);\n return str != null && str.length > 200 ? `${str.slice(0, 200)}...` : str;\n } catch {\n return String(arg);\n }\n });\n console.error(`Error in ${label}:`, e, \"args:\", argsSummary);\n return defaultValue;\n }\n };\n}\n\n/**\n * Wraps a void callback in a try-catch that logs errors.\n */\nfunction trySafe(fn: () => void, label: string): void {\n try {\n fn();\n } catch (e) {\n console.error(`Error in ${label}:`, e);\n }\n}\n\nexport class ApiDefinitionV1ToLatest {\n static from(v1: APIV1Read.ApiDefinition): ApiDefinitionV1ToLatest {\n return new ApiDefinitionV1ToLatest(v1);\n }\n\n private auth: APIV1Read.ApiAuth | undefined;\n private constructor(private readonly v1: APIV1Read.ApiDefinition) {\n this.auth = v1.auth ?? undefined;\n }\n\n static createEndpointId(\n endpoint: APIV1Read.EndpointDefinition,\n subpackageId: string = ROOT_PACKAGE_ID\n ): V2.EndpointId {\n return V2.EndpointId(endpoint.originalEndpointId ?? `${subpackageId}.${endpoint.id}`);\n }\n\n static createWebSocketId(\n webSocket: APIV1Read.WebSocketChannel,\n subpackageId: string = ROOT_PACKAGE_ID\n ): V2.WebSocketId {\n return V2.WebSocketId(`${subpackageId}.${webSocket.id}`);\n }\n\n static createWebhookId(webhook: APIV1Read.WebhookDefinition, subpackageId: string = ROOT_PACKAGE_ID): V2.WebhookId {\n return V2.WebhookId(`${subpackageId}.${webhook.id}`);\n }\n\n static createGrpcEndpointId(\n grpc: APIV1Read.EndpointDefinition,\n subpackageId: string = ROOT_PACKAGE_ID\n ): V2.EndpointId {\n return V2.EndpointId(`${subpackageId}.${grpc.id}`);\n }\n\n private endpoints: Record<V2.EndpointId, V2.EndpointDefinition> = {};\n private websockets: Record<V2.WebSocketId, V2.WebSocketChannel> = {};\n private webhooks: Record<V2.WebhookId, V2.WebhookDefinition> = {};\n private graphqlOperations: Record<V2.GraphQlOperationId, V2.GraphQlOperation> = {};\n private subpackages: Record<V2.SubpackageId, V2.SubpackageMetadata> = {};\n private types: Record<string, V2.TypeDefinition> = {};\n public migrate = (): V2.ApiDefinition => {\n Object.entries(this.v1.types)?.forEach(([id, type]) =>\n trySafe(() => {\n if (type == null) {\n return;\n }\n this.types[V2.TypeId(id)] = {\n name: type?.name,\n description: type?.description,\n availability: type?.availability,\n shape: this.migrateTypeShape(type?.shape),\n displayName: type?.displayName\n };\n }, `migrate type ${id}`)\n );\n\n [this.v1.rootPackage, ...Object.values(this.v1.subpackages)].forEach((pkg) =>\n trySafe(() => {\n if (pkg == null) {\n return;\n }\n const [subpackageId, namespace] = this.collectNamespace(pkg, this.v1.subpackages);\n pkg?.endpoints?.forEach((endpoint) =>\n trySafe(() => {\n const id =\n endpoint?.protocol?.type === \"grpc\"\n ? ApiDefinitionV1ToLatest.createGrpcEndpointId(endpoint, subpackageId)\n : ApiDefinitionV1ToLatest.createEndpointId(endpoint, subpackageId);\n this.endpoints[id] = this.migrateEndpoint(id, endpoint, namespace);\n }, `migrate endpoint ${endpoint?.id}`)\n );\n pkg?.websockets?.forEach((webSocket) =>\n trySafe(() => {\n const id = ApiDefinitionV1ToLatest.createWebSocketId(webSocket, subpackageId);\n this.websockets[id] = this.migrateWebSocket(id, webSocket, namespace);\n }, `migrate webSocket ${webSocket?.id}`)\n );\n pkg?.webhooks?.forEach((webhook) =>\n trySafe(() => {\n const id = ApiDefinitionV1ToLatest.createWebhookId(webhook, subpackageId);\n this.webhooks[id] = this.migrateWebhook(id, webhook, namespace);\n }, `migrate webhook ${webhook?.id}`)\n );\n pkg?.graphqlOperations?.forEach((graphqlOp) =>\n trySafe(() => {\n const id = graphqlOp?.id;\n this.graphqlOperations[id] = this.migrateGraphQlOperation(graphqlOp, namespace);\n }, `migrate graphqlOp ${graphqlOp?.id}`)\n );\n }, \"migrate package\")\n );\n\n Object.values(this.v1.subpackages)?.forEach((subpackage) =>\n trySafe(() => {\n if (subpackage == null) {\n return;\n }\n this.subpackages[subpackage?.subpackageId] = this.migrateSubpackage(subpackage);\n }, `migrate subpackage ${subpackage?.subpackageId}`)\n );\n\n return {\n id: this.v1.id,\n apiName: this.v1.apiName,\n endpoints: this.endpoints,\n websockets: this.websockets,\n webhooks: this.webhooks,\n graphqlOperations: this.graphqlOperations,\n types: this.types,\n subpackages: this.subpackages,\n auths: this.v1.authSchemes ? this.v1.authSchemes : this.v1.auth ? { [AUTH_SCHEME_ID]: this.v1.auth } : {},\n globalHeaders: this.migrateParameters(this.v1.globalHeaders ?? undefined),\n snippetsConfiguration: this.v1.snippetsConfiguration\n };\n };\n\n collectNamespace = (\n pkg: APIV1Read.ApiDefinitionPackage,\n subpackages: Record<string, APIV1Read.ApiDefinitionSubpackage>\n ): [string, V2.SubpackageId[]] => {\n if (!pkg || !isSubpackage(pkg)) {\n return [ROOT_PACKAGE_ID, []];\n }\n const namespace: V2.SubpackageId[] = [pkg.subpackageId];\n\n let subpackage = pkg;\n let loop = 0;\n while (subpackage.parent != null) {\n if (loop > LOOP_TOLERANCE) {\n throw new Error(\"Circular subpackage reference detected\");\n }\n\n const next = subpackages[subpackage.parent];\n if (next == null) {\n break;\n }\n namespace.unshift(subpackage.parent);\n subpackage = next;\n loop++;\n }\n\n return [pkg.subpackageId, namespace];\n };\n\n migrateEndpoint = (\n id: V2.EndpointId,\n v1: APIV1Read.EndpointDefinition,\n namespace: V2.SubpackageId[]\n ): V2.EndpointDefinition => {\n const toRet: V2.EndpointDefinition = {\n id,\n namespace,\n displayName: v1?.name,\n operationId: v1?.urlSlug?.split(\"/\")?.pop(),\n description: v1?.description,\n subtitle: v1?.subtitle,\n availability: v1?.availability,\n method: v1?.method,\n path: v1?.path?.parts?.filter((part) => part?.value !== \"\") ?? [],\n auth: v1?.authV2 ? v1.authV2 : v1?.authed ? [AUTH_SCHEME_ID] : undefined,\n multiAuth: v1?.multiAuth,\n defaultEnvironment: v1?.defaultEnvironment,\n environments: v1?.environments,\n pathParameters: this.migratePathOrQueryParameters(v1?.path?.pathParameters),\n queryParameters: this.migratePathOrQueryParameters(v1?.queryParameters),\n requestHeaders: this.migrateParameters(v1?.headers),\n responseHeaders: this.migrateParameters(v1?.responseHeaders ?? undefined),\n requests: (() => {\n const requests = (v1?.requestsV2?.requests ?? undefined)\n ?.map((request) => this.migrateHttpRequest(request))\n ?.filter(isNonNullish);\n\n if (requests != null && requests.length > 0) {\n return requests;\n }\n\n return [this.migrateHttpRequest(v1?.request ?? undefined)].filter(isNonNullish);\n })(),\n responses: (() => {\n const responses = (v1?.responsesV2?.responses ?? undefined)\n ?.map((response) => this.migrateHttpResponse(response))\n ?.filter(isNonNullish);\n\n if (responses != null && responses.length > 0) {\n return responses;\n }\n\n return [this.migrateHttpResponse(v1?.response ?? undefined)].filter(isNonNullish);\n })(),\n errors: this.migrateHttpErrors(v1?.errorsV2 ?? undefined),\n examples: undefined,\n snippetTemplates: (v1 as Record<string, unknown>)?.snippetTemplates as unknown,\n protocol: v1?.protocol,\n includeInApiExplorer: v1?.includeInApiExplorer ?? true\n };\n\n toRet.examples = this.migrateHttpExamples(v1?.examples, toRet);\n\n return toRet;\n };\n\n migrateWebSocket = (\n id: V2.WebSocketId,\n v1: APIV1Read.WebSocketChannel,\n namespace: V2.SubpackageId[]\n ): V2.WebSocketChannel => {\n const messages = this.migrateChannelMessages(v1?.messages);\n const auth = v1?.auth\n ? this.v1.authSchemes && Object.keys(this.v1.authSchemes).length > 0\n ? Object.keys(this.v1.authSchemes).map((k) => V2.AuthSchemeId(k))\n : [AUTH_SCHEME_ID]\n : undefined;\n return {\n id,\n namespace,\n displayName: v1?.name,\n operationId: v1?.urlSlug?.split(\"/\")?.pop(),\n description: v1?.description,\n availability: v1?.availability,\n path: v1?.path?.parts?.filter((part) => part?.value !== \"\") ?? [],\n messages,\n auth,\n defaultEnvironment: v1?.defaultEnvironment,\n environments: v1?.environments,\n pathParameters: this.migratePathOrQueryParameters(v1?.path?.pathParameters),\n queryParameters: this.migratePathOrQueryParameters(v1?.queryParameters),\n requestHeaders: this.migrateParameters(v1?.headers),\n examples: this.migrateChannelExamples(v1?.examples, messages)\n };\n };\n\n migrateWebhook = (\n id: V2.WebhookId,\n v1: APIV1Read.WebhookDefinition,\n namespace: V2.SubpackageId[]\n ): V2.WebhookDefinition => {\n const payload = this.migrateWebhookPayload(v1?.payload);\n return {\n id,\n namespace,\n displayName: v1?.name,\n operationId: v1?.urlSlug?.split(\"/\")?.pop(),\n description: v1?.description,\n availability: v1?.availability,\n method: v1?.method,\n path: v1?.path,\n headers: this.migrateParameters(v1?.headers),\n payloads: [payload],\n responses: v1?.responses?.map(this.migrateHttpResponse)?.filter(isNonNullish),\n examples:\n v1?.examples?.map((example) => ({\n ...example,\n payload: sortKeysByShape(example?.payload, payload?.shape, this.types)\n })) ?? []\n };\n };\n\n migrateSubpackage = (subpackage: APIV1Read.ApiDefinitionSubpackage): V2.SubpackageMetadata => {\n return {\n id: subpackage?.subpackageId,\n name: subpackage?.name,\n displayName: subpackage?.displayName\n };\n };\n\n migrateParameters = (\n v1: APIV1Read.PathParameter[] | APIV1Read.QueryParameter[] | APIV1Read.Header[] | undefined\n ): V2.ObjectProperty[] | undefined => {\n if (v1 == null || v1.length === 0) {\n return undefined;\n }\n return v1\n .filter((parameter) => parameter?.type != null)\n .map((parameter) => ({\n key: V2.PropertyKey(parameter?.key),\n valueShape: {\n type: \"alias\",\n value: this.migrateTypeReference(parameter?.type)\n },\n propertyAccess: undefined,\n description: parameter?.description ?? undefined,\n availability: parameter?.availability ?? undefined\n }));\n };\n\n migratePathOrQueryParameters = (\n v1: APIV1Read.PathParameter[] | APIV1Read.QueryParameter[] | undefined\n ): V2.ParameterProperty[] | undefined => {\n if (v1 == null || v1.length === 0) {\n return undefined;\n }\n return v1\n .filter((parameter) => parameter?.type != null)\n .map((parameter) => ({\n key: V2.PropertyKey(parameter?.key),\n valueShape: {\n type: \"alias\",\n value: this.migrateTypeReference(parameter?.type)\n },\n propertyAccess: undefined,\n description: parameter?.description ?? undefined,\n availability: parameter?.availability ?? undefined,\n explode: parameter?.explode ?? undefined\n }));\n };\n\n migrateTypeReference = withDefault(\n (typeRef: APIV1Read.TypeReference): V2.TypeReference => {\n if (typeRef == null) {\n return DEFAULT_TYPE_REFERENCE;\n }\n return visitDiscriminatedUnion(typeRef)._visit<V2.TypeReference>({\n map: (value) => ({\n type: \"map\",\n keyShape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.keyType)\n },\n valueShape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.valueType)\n },\n minProperties: value?.minProperties ?? undefined,\n maxProperties: value?.maxProperties ?? undefined\n }),\n id: (value) => ({\n type: \"id\",\n id: value?.value,\n default: value?.default ?? undefined\n }),\n primitive: (value) => value,\n nullable: (value) => ({\n type: \"nullable\",\n shape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.itemType)\n }\n }),\n optional: (value) => ({\n type: \"optional\",\n shape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.itemType)\n },\n default: value?.defaultValue\n }),\n list: (value) => ({\n type: \"list\",\n itemShape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.itemType)\n },\n minItems: value?.minItems ?? undefined,\n maxItems: value?.maxItems ?? undefined\n }),\n set: (value) => ({\n type: \"set\",\n itemShape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.itemType)\n },\n minItems: value?.minItems ?? undefined,\n maxItems: value?.maxItems ?? undefined\n }),\n literal: (value) => value,\n unknown: () => ({\n type: \"unknown\",\n displayName: undefined\n })\n });\n },\n DEFAULT_TYPE_REFERENCE,\n \"migrateTypeReference\"\n );\n\n migrateTypeShape = withDefault(\n (shape: APIV1Read.TypeShape): V2.TypeShape => {\n if (shape == null) {\n return DEFAULT_TYPE_SHAPE;\n }\n return visitDiscriminatedUnion(shape)._visit<V2.TypeShape>({\n object: (value) => ({\n type: \"object\",\n extends: value?.extends,\n properties: this.migrateObjectProperties(value?.properties ?? []),\n extraProperties:\n value?.extraProperties != null ? this.migrateTypeReference(value.extraProperties) : undefined\n }),\n alias: (value) => ({\n type: \"alias\",\n value: this.migrateTypeReference(value?.value)\n }),\n enum: (value) => value,\n undiscriminatedUnion: (value) => ({\n type: \"undiscriminatedUnion\",\n variants: (value?.variants ?? [])\n .filter((variant) => variant?.type != null)\n .map((variant) => ({\n displayName: variant?.displayName ?? undefined,\n shape: {\n type: \"alias\",\n value: this.migrateTypeReference(variant?.type)\n },\n description: variant?.description ?? undefined,\n availability: variant?.availability ?? undefined\n }))\n }),\n discriminatedUnion: (value) => ({\n type: \"discriminatedUnion\",\n discriminant: V2.PropertyKey(value?.discriminant),\n variants: (value?.variants ?? []).map((variant) => ({\n discriminantValue: variant?.discriminantValue,\n displayName: variant?.displayName ?? undefined,\n description: variant?.description ?? undefined,\n availability: variant?.availability ?? undefined,\n extends: variant?.additionalProperties?.extends,\n properties: this.migrateObjectProperties(variant?.additionalProperties?.properties ?? []),\n extraProperties: undefined\n }))\n })\n });\n },\n DEFAULT_TYPE_SHAPE,\n \"migrateTypeShape\"\n );\n\n migrateObjectProperties = withDefault(\n (properties: APIV1Read.ObjectProperty[]): V2.ObjectProperty[] => {\n if (properties == null) {\n return [];\n }\n return properties\n .filter((value) => value?.valueType != null)\n .map((value) => ({\n key: V2.PropertyKey(value?.key),\n valueShape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.valueType)\n },\n propertyAccess: value?.propertyAccess ?? undefined,\n description: value?.description ?? undefined,\n availability: value?.availability ?? undefined,\n arguments: value?.arguments?.map((arg) => this.migrateGraphQlArgument(arg))\n }));\n },\n [] as V2.ObjectProperty[],\n \"migrateObjectProperties\"\n );\n\n migrateJsonShape = withDefault(\n (shape: APIV1Read.JsonBodyShape): V2.TypeShape => {\n if (shape == null) {\n return DEFAULT_TYPE_SHAPE;\n }\n return visitDiscriminatedUnion(shape)._visit<V2.TypeShape>({\n object: this.migrateTypeShape,\n reference: (ref) => ({\n type: \"alias\",\n value: this.migrateTypeReference(ref?.value)\n })\n });\n },\n DEFAULT_TYPE_SHAPE,\n \"migrateJsonShape\"\n );\n\n migrateWebhookPayloadShape = withDefault(\n (shape: APIV1Read.WebhookPayloadShape): V2.WebhookPayloadShape => {\n if (shape == null) {\n return DEFAULT_WEBHOOK_PAYLOAD_SHAPE;\n }\n return visitDiscriminatedUnion(shape)._visit<V2.WebhookPayloadShape>({\n object: (obj) => ({\n type: \"object\",\n extends: obj?.extends,\n properties: this.migrateObjectProperties(obj?.properties ?? []),\n extraProperties: undefined\n }),\n reference: (ref) => ({\n type: \"alias\",\n value: this.migrateTypeReference(ref?.value)\n }),\n formData: (formData) => ({\n type: \"formData\",\n description: formData?.description,\n availability: formData?.availability,\n fields: this.migrateFormDataProperties(formData?.properties ?? [])\n })\n });\n },\n DEFAULT_WEBHOOK_PAYLOAD_SHAPE,\n \"migrateWebhookPayloadShape\"\n );\n\n migrateWebhookPayload = withDefault(\n (payload: APIV1Read.WebhookPayload): V2.WebhookPayload => {\n if (payload == null) {\n return DEFAULT_WEBHOOK_PAYLOAD;\n }\n return {\n description: payload?.description,\n shape: this.migrateWebhookPayloadShape(payload?.type)\n };\n },\n DEFAULT_WEBHOOK_PAYLOAD,\n \"migrateWebhookPayload\"\n );\n\n migrateChannelExamples = withDefault(\n (\n examples: APIV1Read.ExampleWebSocketSession[],\n messages: V2.WebSocketMessage[]\n ): V2.ExampleWebSocketSession[] | undefined => {\n if (examples == null || examples.length === 0) {\n return undefined;\n }\n\n return examples.map((example) => ({\n description: example?.description,\n path: example?.path,\n name: example?.name,\n pathParameters: example?.pathParameters,\n queryParameters: example?.queryParameters,\n requestHeaders: example?.headers,\n messages: (example?.messages ?? []).map((example) => ({\n ...example,\n body: sortKeysByShape(\n example.body,\n messages.find((message) => message.type === example.type)?.body,\n this.types\n )\n }))\n }));\n },\n undefined,\n \"migrateChannelExamples\"\n );\n\n migrateChannelMessages = withDefault(\n (messages: APIV1Read.WebSocketMessage[]): V2.WebSocketMessage[] => {\n if (messages == null) {\n return [];\n }\n return messages.map((message) => ({\n type: message?.type,\n displayName: message?.displayName,\n origin: message?.origin,\n body: this.migrateJsonShape(message?.body),\n description: message?.description,\n availability: message?.availability\n }));\n },\n [] as V2.WebSocketMessage[],\n \"migrateChannelMessages\"\n );\n\n migrateHttpExamples = withDefault(\n (\n examples: APIV1Read.ExampleEndpointCall[],\n endpoint: V2.EndpointDefinition\n ): V2.ExampleEndpointCall[] | undefined => {\n if (examples == null || examples.length === 0) {\n return undefined;\n }\n\n return examples.map((example): V2.ExampleEndpointCall => {\n const toRet: V2.ExampleEndpointCall = {\n path: example?.path,\n responseStatusCode: example?.responseStatusCode,\n name: example?.name,\n description: example?.description,\n pathParameters: example?.pathParameters,\n queryParameters: example?.queryParameters,\n headers: example?.headers,\n requestBody: example?.requestBodyV3,\n responseBody: example?.responseBodyV3,\n snippets: undefined\n };\n\n if (example?.requestBodyV3) {\n toRet.requestBody = visitDiscriminatedUnion(\n example.requestBodyV3\n )._visit<APIV1Read.ExampleEndpointRequest>({\n bytes: (value) => value,\n json: (value) => ({\n type: \"json\",\n value: sortKeysByShape(value.value, endpoint.requests?.[0]?.body, this.types)\n }),\n form: (value) => ({\n type: \"form\",\n value: mapValues(value.value, (formValue, key): APIV1Read.FormValue => {\n const typedFormValue = formValue as APIV1Read.FormValue;\n if (typedFormValue.type === \"json\") {\n const shape =\n endpoint.requests?.[0]?.body.type === \"formData\"\n ? endpoint.requests?.[0]?.body.fields.find(\n (field): field is V2.FormDataPropertyVariant =>\n field.key === key && field.type === \"property\"\n )?.valueShape\n : undefined;\n return {\n type: \"json\",\n value: sortKeysByShape(typedFormValue.value, shape, this.types)\n };\n } else {\n return typedFormValue;\n }\n })\n })\n });\n }\n\n if (toRet.responseBody) {\n toRet.responseBody.value = sortKeysByShape(\n toRet.responseBody.value,\n endpoint.responses?.[0]?.body,\n this.types\n );\n }\n\n toRet.snippets = this.migrateEndpointSnippets(\n endpoint,\n toRet,\n example?.codeSamples,\n example?.codeExamples\n );\n\n return toRet;\n });\n },\n undefined,\n \"migrateHttpExamples\"\n );\n\n migrateHttpErrors = withDefault(\n (errors: APIV1Read.ErrorDeclarationV2[] | null | undefined): V2.ErrorResponse[] | undefined => {\n if (errors == null || errors.length === 0) {\n return undefined;\n }\n\n return errors.map((value) => {\n const shape = value?.type != null ? this.migrateTypeShape(value.type) : undefined;\n return {\n isWildcard: value?.isWildcard,\n description: value?.description,\n availability: value?.availability,\n name:\n (value?.name != null ? titleCase(value.name) : undefined) ??\n getMessageForStatus(value?.statusCode),\n statusCode: value?.statusCode,\n shape,\n examples: value?.examples?.map(\n (example): APIV1Read.ErrorExample => ({\n description: example?.description,\n name: example?.name,\n responseBody: {\n type: \"json\" as const,\n value: sortKeysByShape(example?.responseBody?.value, shape, this.types)\n }\n })\n ),\n headers: this.migrateParameters(value?.headers ?? undefined)\n };\n });\n },\n undefined,\n \"migrateHttpErrors\"\n );\n\n migrateHttpResponse = withDefault(\n (response: APIV1Read.HttpResponse | undefined): V2.HttpResponse | undefined => {\n if (response == null) {\n return undefined;\n }\n\n if (response.type == null) {\n return undefined;\n }\n\n return {\n description: response?.description,\n statusCode: response?.statusCode ?? 200,\n isWildcard: response?.isWildcard,\n body: visitDiscriminatedUnion(response?.type)._visit<V2.HttpResponseBodyShape>({\n object: (value) => ({\n type: \"object\",\n extends: value?.extends,\n properties: this.migrateObjectProperties(value?.properties ?? []),\n extraProperties: undefined\n }),\n reference: (value) => ({\n type: \"alias\",\n value: this.migrateTypeReference(value?.value)\n }),\n fileDownload: (value) => value,\n streamingText: (value) => value,\n stream: (value) => ({\n type: \"stream\",\n terminator: value?.terminator,\n shape: this.migrateJsonShape(value?.shape)\n }),\n\n // Careful! we're dropping non-streaming response shape in the following migration:\n streamCondition: (value) => ({\n type: \"stream\",\n terminator: undefined,\n shape: this.migrateJsonShape(value?.streamResponse?.shape)\n })\n })\n };\n },\n undefined,\n \"migrateHttpResponse\"\n );\n\n migrateHttpRequest = withDefault(\n (request: APIV1Read.HttpRequest | undefined): V2.HttpRequest | undefined => {\n if (request == null) {\n return undefined;\n }\n\n if (request.type == null) {\n return undefined;\n }\n\n return {\n description: request?.description,\n contentType: request?.contentType,\n body: visitDiscriminatedUnion(request?.type)._visit<V2.HttpRequestBodyShape>({\n object: (value) => ({\n type: \"object\",\n extends: value?.extends,\n properties: this.migrateObjectProperties(value?.properties ?? []),\n extraProperties: undefined\n }),\n reference: (value) => ({\n type: \"alias\",\n value: this.migrateTypeReference(value?.value)\n }),\n bytes: (value) => ({\n type: \"bytes\",\n isOptional: value?.isOptional,\n contentType: value?.contentType\n }),\n formData: (value) => ({\n type: \"formData\",\n description: value?.description,\n availability: value?.availability,\n fields: this.migrateFormDataProperties(value?.properties ?? [])\n }),\n fileUpload: (value) => ({\n type: \"formData\",\n description: value?.value?.description,\n availability: value?.value?.availability,\n fields: this.migrateFormDataProperties(value?.value?.properties ?? [])\n })\n })\n };\n },\n undefined,\n \"migrateHttpRequest\"\n );\n\n migrateFormDataProperties = withDefault(\n (properties: APIV1Read.FormDataProperty[]): V2.FormDataField[] => {\n if (properties == null) {\n return [];\n }\n return properties\n .map((prop) =>\n visitDiscriminatedUnion(prop)._visit<V2.FormDataField | undefined>({\n file: (file) =>\n visitDiscriminatedUnion(file?.value)._visit<V2.FormDataField>({\n file: (single) => ({\n type: \"file\",\n key: single?.key,\n isOptional: single?.isOptional,\n contentType: single?.contentType ?? undefined,\n description: single?.description ?? undefined,\n availability: single?.availability ?? undefined\n }),\n fileArray: (multiple) => ({\n type: \"files\",\n key: multiple?.key,\n isOptional: multiple?.isOptional,\n contentType: multiple?.contentType ?? undefined,\n description: multiple?.description ?? undefined,\n availability: multiple?.availability ?? undefined\n })\n }),\n bodyProperty: (bodyProp) => {\n if (bodyProp?.valueType == null) {\n return undefined;\n }\n return {\n type: \"property\",\n key: bodyProp?.key,\n contentType: bodyProp?.contentType ?? undefined,\n description: bodyProp?.description ?? undefined,\n availability: bodyProp?.availability ?? undefined,\n exploded: bodyProp?.exploded ?? undefined,\n valueShape: {\n type: \"alias\",\n value: this.migrateTypeReference(bodyProp.valueType)\n },\n propertyAccess: bodyProp?.propertyAccess ?? undefined\n };\n }\n })\n )\n .filter(isNonNullish);\n },\n [] as V2.FormDataField[],\n \"migrateFormDataProperties\"\n );\n\n migrateEndpointSnippets(\n endpoint: V2.EndpointDefinition,\n example: V2.ExampleEndpointCall,\n codeSamples: APIV1Read.CustomCodeSample[],\n codeExamples: APIV1Read.CodeExamples\n ): Record<string, V2.CodeSnippet[]> {\n const toRet: Record<string, V2.CodeSnippet[]> = {};\n function push(language: string, snippet: V2.CodeSnippet) {\n (toRet[language] ??= []).push(snippet);\n }\n\n const userProvidedLanguages = new Set<string>();\n\n // Add user-provided code snippets\n codeSamples?.forEach((codeSample) => {\n const language = cleanLanguage(codeSample?.language);\n userProvidedLanguages.add(language);\n\n push(language, {\n name: codeSample?.name,\n language,\n install: codeSample?.install,\n code: codeSample?.code,\n generated: false,\n description: codeSample?.description\n });\n });\n\n if (!userProvidedLanguages.has(SupportedLanguage.Curl)) {\n const code = convertToCurl(toSnippetHttpRequest(endpoint, example, this.auth));\n push(SupportedLanguage.Curl, {\n language: SupportedLanguage.Curl,\n code,\n name: undefined,\n install: undefined,\n generated: true,\n description: undefined\n });\n }\n\n if (!userProvidedLanguages.has(SupportedLanguage.Python) && codeExamples?.pythonSdk != null) {\n push(SupportedLanguage.Python, {\n name: undefined,\n language: SupportedLanguage.Python,\n install: codeExamples?.pythonSdk?.install,\n code: codeExamples?.pythonSdk?.sync_client,\n generated: true,\n description: undefined\n });\n }\n\n if (!userProvidedLanguages.has(SupportedLanguage.Typescript) && codeExamples?.typescriptSdk != null) {\n push(SupportedLanguage.Typescript, {\n name: undefined,\n language: SupportedLanguage.Typescript,\n install: codeExamples?.typescriptSdk?.install,\n code: codeExamples?.typescriptSdk?.client,\n generated: true,\n description: undefined\n });\n }\n\n if (!userProvidedLanguages.has(SupportedLanguage.Go) && codeExamples?.goSdk != null) {\n push(SupportedLanguage.Go, {\n name: undefined,\n language: SupportedLanguage.Go,\n install: codeExamples?.goSdk?.install,\n code: codeExamples?.goSdk?.client,\n generated: true,\n description: undefined\n });\n }\n\n if (!userProvidedLanguages.has(SupportedLanguage.Ruby) && codeExamples?.rubySdk != null) {\n push(SupportedLanguage.Ruby, {\n name: undefined,\n language: SupportedLanguage.Ruby,\n install: codeExamples?.rubySdk?.install,\n code: codeExamples?.rubySdk?.client,\n generated: true,\n description: undefined\n });\n }\n\n if (!userProvidedLanguages.has(SupportedLanguage.Csharp) && codeExamples?.csharpSdk != null) {\n push(SupportedLanguage.Csharp, {\n name: undefined,\n language: SupportedLanguage.Csharp,\n install: codeExamples?.csharpSdk?.install,\n code: codeExamples?.csharpSdk?.client,\n generated: true,\n description: undefined\n });\n }\n\n return toRet;\n }\n\n migrateGraphQlOperation = (v1: APIV1Read.GraphQlOperation, namespace: V2.SubpackageId[]): V2.GraphQlOperation => {\n if (v1 == null) {\n return {\n id: \"\" as V2.GraphQlOperationId,\n operationType: \"QUERY\",\n name: \"\",\n displayName: undefined,\n description: undefined,\n availability: undefined,\n namespace,\n arguments: undefined,\n returnType: DEFAULT_TYPE_SHAPE,\n examples: [],\n snippets: undefined\n };\n }\n return {\n id: v1?.id,\n operationType: v1?.operationType,\n name: v1?.name,\n displayName: v1?.displayName,\n description: v1?.description,\n availability: v1?.availability,\n namespace,\n fieldPath: v1?.fieldPath,\n arguments: v1?.arguments?.map((arg) => this.migrateGraphQlArgument(arg)),\n returnType: {\n type: \"alias\",\n value: this.migrateTypeReference(v1?.returnType)\n },\n examples: v1?.examples,\n snippets: v1?.snippets\n };\n };\n\n migrateGraphQlArgument = withDefault(\n (v1: APIV1Read.GraphQlArgument): V2.GraphQlArgument => {\n if (v1 == null) {\n return DEFAULT_GRAPHQL_ARGUMENT;\n }\n return {\n name: v1?.name,\n description: v1?.description,\n availability: v1?.availability,\n type: {\n type: \"alias\",\n value: this.migrateTypeReference(v1?.type)\n },\n defaultValue: v1?.defaultValue\n };\n },\n DEFAULT_GRAPHQL_ARGUMENT,\n \"migrateGraphQlArgument\"\n );\n}\n","export const ROOT_PACKAGE_ID = \"__package__\" as const;\n","import { isPlainObject, unknownToString } from \"@fern-api/ui-core-utils\";\nimport { compact } from \"es-toolkit/array\";\nimport qs from \"qs\";\nimport { UnreachableCaseError } from \"ts-essentials\";\n\nimport { obfuscateSecret } from \"../../utils/obfuscate-secret\";\nimport type * as Latest from \"../latest\";\nimport { wrapOpenRPCRequest } from \"../wrapOpenRPCRequest\";\nimport { replaceMultipartTemplateStrings } from \"./multipart-filename-placeholder\";\nimport type {\n SnippetHttpRequest,\n SnippetHttpRequestBodyFormValue,\n SnippetHttpRequestBodyFormValueFilename,\n SnippetHttpRequestBodyFormValueFilenames\n} from \"./SnippetHttpRequest\";\n\nfunction requiresUrlEncode(str: string): boolean {\n return encodeURIComponent(str) !== str;\n}\n\nexport function convertToCurl(request: SnippetHttpRequest): string {\n try {\n return unsafeStringifyHttpRequestExampleToCurl(request);\n } catch (e) {\n console.error(`[convert-to-curl] ${JSON.stringify(e)}`);\n\n return \"\";\n }\n}\n\nfunction getHttpRequest(method: string, url: string, searchParams: Record<string, unknown>): string {\n const queryParams = toUrlEncoded(searchParams)\n .map(([key, value]) => `${key}=${encodeURIComponent(unknownToString(value))}`)\n .join(\"&\");\n if (method !== \"GET\") {\n return queryParams.length > 0 ? `-X ${method} \"${url}?${queryParams}\"` : `-X ${method} ${url}`;\n }\n // if the method is GET, we don't need to include the query params in URL, but instead we'll include it as --data-urlencode\n return queryParams.length > 0 ? `-G ${url}` : url;\n}\n\nfunction getHeadersString(headers: Record<string, unknown>): string[] {\n return Object.entries(headers).map(([key, value]) => `-H \"${key}: ${unknownToString(value)}\"`);\n}\n\nfunction getBasicAuthString(\n basicAuth: {\n username: string;\n password: string;\n },\n redacted?: boolean\n): string[] {\n if (redacted) {\n return [`-u \"${basicAuth.username}:${obfuscateSecret(basicAuth.password)}\"`];\n }\n return [`-u \"${basicAuth.username}:${basicAuth.password}\"`];\n}\n\nexport function getUrlQueriesGetString(searchParams: Record<string, unknown>, forceManualEncoding = false): string[] {\n return toUrlEncoded(searchParams).map(([key, value]) => {\n // If we're dealing with form-urlencoded content-type, always use -d with pre-encoded values\n const encodedValue = forceManualEncoding ? encodeURIComponent(value) : value;\n const flag = forceManualEncoding || !requiresUrlEncode(value) ? \"-d\" : \"--data-urlencode\";\n\n if (forceManualEncoding || key.includes(\" \") || value.includes(\" \") || key.includes(\"[\")) {\n return `${flag} \"${key}=${encodedValue}\"`;\n }\n return `${flag} ${key}=${encodedValue}`;\n });\n}\n\nfunction getBodyJsonString(value: unknown | null | undefined, protocol?: Latest.Protocol): string[] {\n if (protocol?.type === \"openrpc\") {\n const payload = wrapOpenRPCRequest(value, protocol.methodName);\n const stringifiedValue = JSON.stringify(payload, null, 2).replace(/'/g, \"'\\\\''\");\n return [`-d '${stringifiedValue}'`];\n }\n\n if (value == null) {\n return [];\n }\n\n if (typeof value === \"string\") {\n return [`-d \"${value.replace(/\"/g, '\\\\\"')}\"`];\n }\n\n const stringifiedValue = JSON.stringify(value, null, 2).replace(/'/g, \"'\\\\''\");\n return [`-d '${stringifiedValue}'`];\n}\n\nfunction getBodyBytesString(filename: string): string[] {\n return [`--data-binary @${filename.includes(\" \") ? `\"${filename}\"` : filename}`];\n}\n\nfunction getBodyFormValueJsonString(value: unknown | null | undefined, key: string): string[] {\n if (value == null) {\n return [];\n }\n\n // TODO: this is a little sus\n if (typeof value === \"string\") {\n return [`-F ${key}=\"${value.replace(/\"/g, '\\\\\"')}\"`];\n }\n\n const stringValue = JSON.stringify(value, null, 2);\n\n return [`-F ${key}='${stringValue.replace(/'/g, \"'\\\\''\")}'`];\n}\n\nfunction formatFormFileValue(filename: string, contentType: string | undefined): string {\n if (filename.includes(\" \") || contentType != null) {\n return `\"${filename}${contentType != null ? `;type=${contentType}` : \"\"}\"`;\n }\n return filename;\n}\n\nfunction getBodyFormValueFilenamesStrings({ files }: SnippetHttpRequestBodyFormValueFilenames, key: string): string[] {\n return files\n .filter((file) => file.filename != null)\n .map(({ filename, contentType }) => {\n // When the property name carries a multipart template token (e.g.\n // `{filename}`) we emit one field per file using its resolved name\n // and omit the legacy `[]` array suffix because the keys are\n // already unique. Otherwise we preserve the existing `[]` behavior\n // for non-templated multi-file fields.\n const resolvedKey = replaceMultipartTemplateStrings(key, { filename });\n const finalKey = resolvedKey !== key ? resolvedKey : `${key}[]`;\n return `-F \"${finalKey}\"=@${formatFormFileValue(filename, contentType)}`;\n });\n}\n\nfunction getBodyFormValueFilenameString(\n { filename, contentType }: SnippetHttpRequestBodyFormValueFilename,\n key: string\n): string[] {\n if (filename == null) {\n return [];\n }\n const resolvedKey = replaceMultipartTemplateStrings(key, { filename });\n if (resolvedKey !== key) {\n return [`-F \"${resolvedKey}\"=@${formatFormFileValue(filename, contentType)}`];\n }\n return [`-F ${key}=@${formatFormFileValue(filename, contentType)}`];\n}\n\nfunction getBodyFormValueString(value: SnippetHttpRequestBodyFormValue, key: string): string[] {\n switch (value.type) {\n case \"json\":\n return getBodyFormValueJsonString(value.value, key);\n case \"filename\":\n return getBodyFormValueFilenameString(value, key);\n case \"filenames\":\n return getBodyFormValueFilenamesStrings(value, key);\n case \"exploded\":\n return (value.value ?? []).flatMap((item) => getBodyFormValueJsonString(item, key));\n default:\n throw new UnreachableCaseError(value);\n }\n}\n\nfunction getBodyFormString(value: Record<string, SnippetHttpRequestBodyFormValue>): string[] {\n return Object.entries(value).flatMap(([key, value]) => getBodyFormValueString(value, key));\n}\n\nfunction getBodyDataString(\n method: string,\n body: SnippetHttpRequest[\"body\"] | null | undefined,\n protocol: Latest.Protocol | undefined\n): string[] {\n if (method === \"GET\") {\n return [];\n }\n\n if (body == null) {\n if (protocol?.type === \"openrpc\") {\n return getBodyJsonString(undefined, protocol);\n }\n return [];\n }\n\n switch (body.type) {\n case \"json\":\n return getBodyJsonString(body.value, protocol);\n case \"bytes\":\n return getBodyBytesString(body.filename);\n case \"form\":\n return getBodyFormString(body.value);\n default:\n throw new UnreachableCaseError(body);\n }\n}\n\nfunction unsafeStringifyHttpRequestExampleToCurl({\n method,\n url,\n searchParams,\n headers,\n basicAuth,\n body,\n protocol,\n redacted\n}: SnippetHttpRequest): string {\n const httpRequest = getHttpRequest(method, url, searchParams);\n\n const headersStrings = getHeadersString(\n // If basicAuth is provided, we filter out any existing Authorization header\n // to avoid conflicts, as the basicAuth will be added separately with -u flag\n basicAuth != null\n ? Object.fromEntries(Object.entries(headers).filter(([key]) => key.toLowerCase() !== \"authorization\"))\n : headers\n );\n const basicAuthStrings = basicAuth != null ? getBasicAuthString(basicAuth, redacted) : [];\n\n // special handling for application/x-www-form-urlencoded\n const isFormUrlEncoded =\n method !== \"GET\" &&\n unknownToString(headers[\"Content-Type\"] ?? headers[\"content-type\"])\n .toLowerCase()\n .includes(\"form-urlencoded\");\n\n // GET requests don't have a body, so `--data-urlencode` is used to pass query parameters\n\n const urlQueriesGetStrings = getUrlQueriesGetString(\n {\n ...(method === \"GET\" ? searchParams : {}),\n // HACK: combine search params and body.value if body.type is json, because we expect the body.json to include url-encoded params\n ...(isFormUrlEncoded && body?.type === \"json\" && isPlainObject(body.value) ? body.value : {})\n },\n isFormUrlEncoded\n );\n\n const bodyDataStrings = isFormUrlEncoded ? [] : getBodyDataString(method, body, protocol);\n\n const allStrings = compact([...headersStrings, ...basicAuthStrings, ...urlQueriesGetStrings, ...bodyDataStrings]);\n\n function withNewLine(line: string): string {\n return ` \\\\\\n ${line}`;\n }\n\n return `curl ${httpRequest}${allStrings.map(withNewLine).join(\"\")}`;\n}\n\nfunction toUrlEncoded(urlQueries: Record<string, unknown>): [string, string][] {\n const queryString = qs.stringify(urlQueries, {\n encode: false,\n arrayFormat: \"repeat\",\n skipNulls: true,\n filter: (prefix, value) => {\n if (value != null && typeof value !== \"object\") {\n return String(value);\n }\n return value;\n }\n });\n\n if (!queryString) {\n return [];\n }\n\n return queryString.split(\"&\").map((pair) => {\n const [key, value] = pair.split(\"=\");\n return [key, value || \"\"] as [string, string];\n });\n}\n","export function obfuscateSecret(secret: string): string {\n if (secret.trimEnd().length === 0) {\n return secret;\n }\n if (secret.length < 28) {\n return secret.slice(0, 1) + \"*\".repeat(25) + secret.slice(-2);\n }\n return secret.slice(0, 12) + \"....\" + secret.slice(-12);\n}\n","/**\n * Wraps a request body in the OpenRPC format.\n *\n * @param body - The request body to wrap\n * @param methodName - The OpenRPC method name\n * @returns The wrapped request body in OpenRPC format\n */\nexport function wrapOpenRPCRequest(\n body: unknown,\n methodName: string\n): {\n jsonrpc: string;\n method: string;\n params: unknown[];\n id: number;\n} {\n let params: unknown[] = [];\n if (body && typeof body === \"object\") {\n params = Object.values(body);\n }\n return {\n jsonrpc: \"2.0\",\n method: methodName,\n params,\n id: 1\n };\n}\n","// Some OpenAPI specs (e.g. Uploadcare's /base/ direct upload) declare a\n// multipart property whose name is the literal token `{filename}`. The intent\n// is that the actual form field name should be the uploaded file's filename\n// rather than the placeholder itself. Code that emits multipart payloads\n// (curl/python/typescript snippets and the playground proxy fetch) must\n// resolve this placeholder per file before serializing the form-data.\n\nexport const MULTIPART_FILENAME_PLACEHOLDER = \"{filename}\";\n\n/**\n * Replaces every occurrence of each token key in `input` with the\n * corresponding value. Tokens whose replacement is `undefined` are left\n * in place. Returns the input unchanged if no token matches.\n */\nexport function replaceTemplateStrings(input: string, replacements: Record<string, string | undefined>): string {\n let result = input;\n for (const [token, replacement] of Object.entries(replacements)) {\n if (replacement != null && result.includes(token)) {\n result = result.split(token).join(replacement);\n }\n }\n return result;\n}\n\n/**\n * Resolves multipart-specific template placeholders (currently just\n * `{filename}`) in a form field name. Thin wrapper around\n * `replaceTemplateStrings` that fixes the supported token set.\n */\nexport function replaceMultipartTemplateStrings(input: string, vars: { filename?: string }): string {\n return replaceTemplateStrings(input, {\n [MULTIPART_FILENAME_PLACEHOLDER]: vars.filename\n });\n}\n","import { sanitizeUrl, unknownToString } from \"@fern-api/ui-core-utils\";\nimport visitDiscriminatedUnion from \"@fern-api/ui-core-utils/visitDiscriminatedUnion\";\nimport { compact } from \"es-toolkit/array\";\nimport { noop } from \"ts-essentials\";\nimport urljoin from \"url-join\";\n\nimport type * as Latest from \"../latest\";\nimport { preprocessQueryParameters } from \"../url\";\n\nfunction buildPathForSnippet(\n path: Latest.PathPart[] | undefined,\n pathParameters: Record<string, unknown> | undefined\n): string {\n if (path == null) {\n return \"\";\n }\n return path\n .map((part) => {\n if (part.type === \"pathParameter\") {\n const key = part.value;\n const value = unknownToString(pathParameters?.[key]);\n return value.length > 0 ? value : `{${key}}`;\n }\n return part.value;\n })\n .join(\"\");\n}\n\ninterface SnippetHttpRequestBodyJson {\n type: \"json\";\n value?: unknown;\n}\n\ninterface SnippetHttpRequestBodyJsonExploded {\n type: \"exploded\";\n value?: unknown[];\n}\n\nexport interface SnippetHttpRequestBodyForm {\n type: \"form\";\n value: Record<string, SnippetHttpRequestBodyFormValue>;\n}\n\nexport interface SnippetHttpRequestBodyFormValueFilename {\n type: \"filename\";\n filename: string;\n contentType: string | undefined;\n}\n\nexport interface SnippetHttpRequestBodyFormValueFilenames {\n type: \"filenames\";\n files: Omit<SnippetHttpRequestBodyFormValueFilename, \"type\">[];\n}\n\nexport type SnippetHttpRequestBodyFormValue =\n | SnippetHttpRequestBodyJson\n | SnippetHttpRequestBodyJsonExploded\n | SnippetHttpRequestBodyFormValueFilename\n | SnippetHttpRequestBodyFormValueFilenames;\n\ninterface SnippetHttpRequestBodyBytes {\n type: \"bytes\";\n filename: string;\n}\n\nexport type SnippetHttpRequestBody =\n | SnippetHttpRequestBodyJson\n | SnippetHttpRequestBodyForm\n | SnippetHttpRequestBodyBytes;\n\nexport interface SnippetHttpRequest {\n method: string;\n url: string;\n searchParams: Record<string, unknown>;\n headers: Record<string, unknown>;\n basicAuth?: {\n username: string;\n password: string;\n };\n body: SnippetHttpRequestBody | undefined;\n protocol?: Latest.Protocol;\n redacted?: boolean;\n}\n\n// TODO: validate that global headers are also included in the example by CLI or FDR\nexport function toSnippetHttpRequest(\n endpoint: Latest.EndpointDefinition,\n example: Latest.ExampleEndpointCall,\n auth: Latest.AuthScheme | undefined\n): SnippetHttpRequest {\n const environmentUrl = (\n endpoint.environments?.find((env) => env.id === endpoint.defaultEnvironment) ?? endpoint.environments?.[0]\n )?.baseUrl;\n const sanitizedEnvironment = sanitizeUrl(environmentUrl);\n\n const endpointPathRaw = buildPathForSnippet(endpoint.path, example.pathParameters ?? undefined);\n const examplePathRaw = example.path ? (example.path.startsWith(\"/\") ? example.path : `/${example.path}`) : \"\";\n\n // Normalize for comparison only (strip trailing slash, treat empty as \"/\")\n const normalize = (p: string): string => (p.endsWith(\"/\") ? p.slice(0, -1) : p) || \"/\";\n const endpointPath = normalize(endpointPathRaw);\n const examplePath = normalize(examplePathRaw);\n\n // Use endpoint.path if example.path is missing, or if endpoint.path equals / extends example.path\n // (endpoint.path carries the base path prefix)\n const useEndpointPath =\n examplePathRaw === \"\" ||\n endpointPath === examplePath ||\n (endpointPath.length > examplePath.length && endpointPath.endsWith(examplePath));\n const fullPath = useEndpointPath ? endpointPathRaw : examplePathRaw;\n\n const url = urljoin(compact([sanitizedEnvironment, fullPath]));\n\n const headers: Record<string, unknown> = { ...example.headers };\n\n let basicAuth: { username: string; password: string } | undefined;\n\n if (endpoint.auth && endpoint.auth.length > 0 && auth) {\n visitDiscriminatedUnion(auth, \"type\")._visit({\n basicAuth: ({ usernameName = \"username\", passwordName = \"password\", passwordAlwaysEmpty }) => {\n basicAuth = {\n username: `<${usernameName}>`,\n password: passwordAlwaysEmpty ? \"\" : `<${passwordName}>`\n };\n },\n bearerAuth: ({ tokenName = \"token\" }) => {\n headers.Authorization = `Bearer <${tokenName}>`;\n },\n header: ({ headerWireValue, nameOverride = headerWireValue, prefix }) => {\n headers[headerWireValue] = prefix != null ? `${prefix} <${nameOverride}>` : `<${nameOverride}>`;\n },\n oAuth: ({ value: clientCredentials }) => {\n visitDiscriminatedUnion(clientCredentials, \"type\")._visit({\n clientCredentials: () => {\n headers.Authorization = \"Bearer <token>\";\n },\n _other: noop\n });\n },\n _other: noop\n });\n }\n\n const body: Latest.ExampleEndpointRequest | undefined = example.requestBody ?? undefined;\n\n if (endpoint.requests?.[0]?.contentType != null) {\n headers[\"Content-Type\"] = endpoint.requests?.[0]?.contentType;\n }\n\n if (body != null && headers[\"Content-Type\"] == null) {\n if (body.type === \"json\") {\n headers[\"Content-Type\"] = \"application/json\";\n } else if (body.type === \"form\") {\n headers[\"Content-Type\"] = \"multipart/form-data\";\n }\n }\n\n // If endpoint is OpenRPC, ensure Content-Type is application/json\n if (endpoint.protocol?.type === \"openrpc\") {\n headers[\"Content-Type\"] = \"application/json\";\n }\n\n // Preprocess query parameters based on explode metadata\n const processedQueryParams =\n preprocessQueryParameters(example.queryParameters ?? undefined, endpoint.queryParameters ?? undefined) ?? {};\n\n return {\n method: endpoint.method,\n url,\n searchParams: processedQueryParams,\n headers: JSON.parse(JSON.stringify(headers)),\n basicAuth,\n protocol: endpoint.protocol ?? undefined,\n body:\n body == null\n ? undefined\n : visitDiscriminatedUnion(body)._visit<SnippetHttpRequestBody | undefined>({\n json: (value) => value,\n form: (value) => {\n const toRet: Record<string, SnippetHttpRequestBodyFormValue> = {};\n for (const [key, val] of Object.entries(value.value)) {\n const typedVal = val as {\n type: string;\n value?: unknown;\n filename?: string;\n files?: { filename: string }[];\n };\n const formValue = visitDiscriminatedUnion(typedVal, \"type\")._visit<\n SnippetHttpRequestBodyFormValue | undefined\n >({\n exploded: (value) => ({ type: \"exploded\", value: value.value as unknown[] }),\n json: (value) => ({ type: \"json\", value: value.value }),\n filename: (value) => ({\n type: \"filename\",\n filename: String(value.value ?? \"\"),\n contentType: undefined // TODO: infer content type?\n }),\n filenames: (value) => ({\n type: \"filenames\",\n files: (value.value as string[]).map((filename: string) => ({\n filename,\n contentType: undefined // TODO: infer content type?\n }))\n }),\n filenameWithData: (value) => ({\n type: \"filename\",\n filename: String(value.filename ?? \"\"),\n contentType: undefined // TODO: infer content type?\n }),\n filenamesWithData: (value) => ({\n type: \"filenames\",\n files: ((value.value as { filename: string }[]) ?? []).map(\n ({ filename }: { filename: string }) => ({\n filename,\n contentType: undefined // TODO: infer content type?\n })\n )\n }),\n _other: () => undefined\n });\n if (formValue != null) {\n toRet[key] = formValue;\n }\n }\n return { type: \"form\", value: toRet };\n },\n // TODO: filename should be provided in the example from the API definition\n bytes: () => ({ type: \"bytes\", filename: \"<filename>\" }),\n _other: () => undefined\n })\n };\n}\n","import { sanitizeUrl, unknownToString } from \"@fern-api/ui-core-utils\";\nimport qs from \"qs\";\n\nimport type { EndpointDefinition, ParameterProperty, PathPart } from \"./latest\";\n\n/**\n * Preprocesses query parameters based on explode metadata.\n * When explode=false, arrays are joined with commas instead of being repeated.\n */\nexport function preprocessQueryParameters(\n queryParameters: Record<string, unknown> | undefined,\n parameterMetadata: ParameterProperty[] | undefined\n): Record<string, unknown> | undefined {\n if (queryParameters == null) {\n return undefined;\n }\n\n // If no metadata, return as-is (default behavior is explode=true)\n if (parameterMetadata == null || parameterMetadata.length === 0) {\n return queryParameters;\n }\n\n // Create a map of parameter key to explode setting\n const explodeMap = new Map<string, boolean | undefined>();\n for (const param of parameterMetadata) {\n explodeMap.set(param.key, param.explode ?? undefined);\n }\n\n // Process each query parameter\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(queryParameters)) {\n const explode = explodeMap.get(key);\n\n // If explode is explicitly false and value is an array, join with commas\n if (explode === false && Array.isArray(value)) {\n result[key] = value.map((v) => unknownToString(v)).join(\",\");\n } else {\n result[key] = value;\n }\n }\n\n return result;\n}\n\nfunction buildQueryParams(queryParameters: Record<string, unknown> | undefined): string {\n if (queryParameters == null) {\n return \"\";\n }\n\n const filteredParams = Object.entries(queryParameters).reduce<Record<string, unknown>>((acc, [key, value]) => {\n if (value != null) {\n acc[key] = value;\n }\n return acc;\n }, {});\n\n if (Object.keys(filteredParams).length === 0) {\n return \"\";\n }\n\n const queryString = qs.stringify(filteredParams, {\n encode: false,\n arrayFormat: \"repeat\",\n skipNulls: true,\n serializeDate: (date: Date) => date.toISOString()\n });\n\n return queryString ? \"?\" + queryString : \"\";\n}\n\nfunction buildPath(path: PathPart[] = [], pathParameters?: Record<string, unknown>): string {\n return path\n .map((part) => {\n if (part.type === \"pathParameter\") {\n const key = part.value;\n const stateValue = unknownToString(pathParameters?.[key]);\n return stateValue.length > 0 ? encodeURIComponent(stateValue) : \":\" + key;\n }\n return part.value;\n })\n .join(\"\");\n}\n\ninterface BuildRequestUrlOptions {\n path?: PathPart[];\n pathParameters?: Record<string, unknown>;\n queryParameters?: Record<string, unknown>;\n baseUrl?: string;\n}\nexport function buildRequestUrl({\n baseUrl = \"\",\n path,\n pathParameters,\n queryParameters\n}: BuildRequestUrlOptions): string {\n const sanitizedBaseUrl = sanitizeUrl(baseUrl) || \"\";\n\n if (sanitizedBaseUrl.endsWith(\"/\")) {\n return sanitizedBaseUrl.slice(0, -1) + buildPath(path, pathParameters) + buildQueryParams(queryParameters);\n }\n return sanitizedBaseUrl + buildPath(path, pathParameters) + buildQueryParams(queryParameters);\n}\n\ninterface BuildEndpointUrlOptions {\n endpoint?: EndpointDefinition;\n pathParameters?: Record<string, unknown>;\n queryParameters?: Record<string, unknown>;\n baseUrl?: string;\n}\nexport function buildEndpointUrl({\n endpoint,\n pathParameters,\n queryParameters,\n baseUrl\n}: BuildEndpointUrlOptions): string {\n const environmentBaseUrl =\n baseUrl ??\n (endpoint?.environments?.find((env) => env.id === endpoint.defaultEnvironment) ?? endpoint?.environments?.[0])\n ?.baseUrl;\n\n // sanitize the base URL - if invalid, it will be null\n const sanitizedBaseUrl = sanitizeUrl(environmentBaseUrl);\n\n // Preprocess query parameters based on explode metadata\n const processedQueryParameters = preprocessQueryParameters(queryParameters, endpoint?.queryParameters ?? undefined);\n\n return buildRequestUrl({\n baseUrl: sanitizedBaseUrl || \"\",\n path: endpoint?.path,\n pathParameters,\n queryParameters: processedQueryParameters\n });\n}\n","import isPlainObject from \"@fern-api/ui-core-utils/isPlainObject\";\nimport visitDiscriminatedUnion from \"@fern-api/ui-core-utils/visitDiscriminatedUnion\";\nimport { difference, keyBy } from \"es-toolkit/array\";\nimport { mapValues } from \"es-toolkit/object\";\n\nimport type * as Latest from \"./latest\";\nimport type { TypeShapeOrReference } from \"./types\";\nimport { unwrapDiscriminatedUnionVariant, unwrapObjectType } from \"./unwrap\";\n\nfunction sortKeysBy(obj: Record<string, unknown>, order: string[]): Record<string, unknown> {\n return mapValues(\n // difference() is used to ensure that all keys are included in the result\n keyBy([...order, ...difference(Object.keys(obj), order)], (key) => key),\n (key) => obj[key]\n );\n}\n\nexport function sortKeysByShape(\n obj: unknown,\n shape: TypeShapeOrReference | Latest.HttpRequestBodyShape | Latest.HttpResponseBodyShape | null | undefined,\n types: Record<string, Latest.TypeDefinition>\n): unknown {\n if ((!isPlainObject(obj) && !Array.isArray(obj)) || shape == null) {\n return obj;\n }\n return visitDiscriminatedUnion(shape, \"type\")._visit<unknown>({\n id: ({ id }) => sortKeysByShape(obj, types[id]?.shape, types),\n primitive: () => obj,\n literal: () => obj,\n optional: ({ shape }) => sortKeysByShape(obj, shape, types),\n nullable: ({ shape }) => sortKeysByShape(obj, shape, types),\n list: ({ itemShape }) => (Array.isArray(obj) ? obj.map((o) => sortKeysByShape(o, itemShape, types)) : obj),\n set: ({ itemShape }) => (Array.isArray(obj) ? obj.map((o) => sortKeysByShape(o, itemShape, types)) : obj),\n map: ({ valueShape }) =>\n isPlainObject(obj) ? mapValues(obj, (value) => sortKeysByShape(value, valueShape, types)) : obj,\n unknown: () => obj,\n object: (object) => {\n const objectProperties = unwrapObjectType(object, types).properties;\n return isPlainObject(obj)\n ? mapValues(\n sortKeysBy(\n obj,\n objectProperties.map((p) => p.key)\n ),\n (value, key) => {\n const property = objectProperties.find((p) => p.key === key);\n if (property == null) {\n return value;\n }\n return sortKeysByShape(value, property?.valueShape, types);\n }\n )\n : obj;\n },\n undiscriminatedUnion: () => obj, // TODO: match variant and sort nested objects\n discriminatedUnion: (union) => {\n const { discriminant, variants } = union;\n if (!isPlainObject(obj)) {\n return obj;\n }\n const variant = obj[discriminant];\n if (variant == null) {\n return obj;\n }\n const variantShape = variants.find((v) => v.discriminantValue === variant);\n if (variantShape == null) {\n return obj;\n }\n const variantProperties = unwrapDiscriminatedUnionVariant(union, variantShape, types).properties;\n return mapValues(sortKeysBy(obj, [discriminant, ...variantProperties.map((p) => p.key)]), (value, key) => {\n if (key === discriminant) {\n return value;\n }\n const property = variantProperties.find((p) => p.key === key);\n if (property == null) {\n return value;\n }\n return sortKeysByShape(value, property.valueShape, types);\n });\n },\n enum: () => obj,\n alias: ({ value: typeRef }) => sortKeysByShape(obj, typeRef, types),\n formData: ({ fields }) => {\n if (!isPlainObject(obj)) {\n return obj;\n }\n\n return mapValues(\n sortKeysBy(\n obj,\n fields.map((p) => p.key)\n ),\n (v, key) => {\n const property = fields.find((p) => p.key === key);\n\n if (property == null) {\n return v;\n }\n\n if (property.type === \"property\") {\n return sortKeysByShape(v, property.valueShape, types);\n }\n\n return undefined;\n }\n );\n },\n bytes: () => obj,\n fileDownload: () => obj,\n streamingText: () => obj,\n stream: () => obj,\n empty: () => obj,\n _other: () => obj\n });\n}\n\nexport function safeSortKeysByShape(\n value: unknown,\n shape: TypeShapeOrReference | Latest.HttpRequestBodyShape | Latest.HttpResponseBodyShape | null | undefined,\n types: Record<string, Latest.TypeDefinition>\n): unknown {\n if (value == null) {\n return value;\n }\n try {\n return stripUndefines(sortKeysByShape(value, shape, types));\n } catch (e) {\n console.error(\"Failed to sort JSON keys by type shape\", e);\n\n return value;\n }\n}\n\nfunction stripUndefines(obj: unknown): unknown {\n return JSON.parse(JSON.stringify(obj));\n}\n","import type { HttpMethod } from \"./latest\";\n\ntype StatusCodeMessagesByMethod = Partial<Record<HttpMethod, string>>;\n\ntype StatusCodeMessages = Record<number, StatusCodeMessagesByMethod>;\n\ntype DefaultStatusCodeMessages = Record<number, string>;\n\nexport const STATUS_CODE_MESSAGES: DefaultStatusCodeMessages = {\n 100: \"Continue\",\n 101: \"Switching Protocols\",\n 102: \"Processing\",\n 103: \"Early Hints\",\n 200: \"OK\",\n 201: \"Created\",\n 202: \"Accepted\",\n 203: \"Non-Authoritative Information\",\n 204: \"No Content\",\n 205: \"Reset Content\",\n 206: \"Partial Content\",\n 207: \"Multi-Status\",\n 208: \"Already Reported\",\n 226: \"IM Used\",\n 300: \"Multiple Choices\",\n 301: \"Moved Permanently\",\n 302: \"Found\",\n 303: \"See Other\",\n 304: \"Not Modified\",\n 305: \"Use Proxy\",\n 306: \"Switch Proxy\",\n 307: \"Temporary Redirect\",\n 308: \"Permanent Redirect\",\n 400: \"Bad Request\",\n 401: \"Unauthorized\",\n 402: \"Payment Required\",\n 403: \"Forbidden\",\n 404: \"Not Found\",\n 405: \"Method Not Allowed\",\n 406: \"Not Acceptable\",\n 407: \"Proxy Authentication Required\",\n 408: \"Request Timeout\",\n 409: \"Conflict\",\n 410: \"Gone\",\n 411: \"Length Required\",\n 412: \"Precondition Failed\",\n 413: \"Payload Too Large\",\n 414: \"URI Too Long\",\n 415: \"Unsupported Media Type\",\n 416: \"Range Not Satisfiable\",\n 417: \"Expectation Failed\",\n 418: \"I'm a teapot\",\n 421: \"Misdirected Request\",\n 422: \"Unprocessable Entity\",\n 423: \"Locked\",\n 424: \"Failed Dependency\",\n 425: \"Too Early\",\n 426: \"Upgrade Required\",\n 428: \"Precondition Required\",\n 429: \"Too Many Requests\",\n 431: \"Request Header Fields Too Large\",\n 451: \"Unavailable For Legal Reasons\",\n 500: \"Internal Server Error\",\n 501: \"Not Implemented\",\n 502: \"Bad Gateway\",\n 503: \"Service Unavailable\",\n 504: \"Gateway Timeout\",\n 505: \"HTTP Version Not Supported\",\n 506: \"Variant Also Negotiates\",\n 507: \"Insufficient Storage\",\n 508: \"Loop Detected\",\n 510: \"Not Extended\",\n 511: \"Network Authentication Required\"\n};\n\nexport const STATUS_CODE_MESSAGES_METHOD_OVERRIDES: StatusCodeMessages = {\n 200: {\n GET: \"Retrieved\",\n POST: \"Successful\", // more accurate than \"Created\" for POST\n PUT: \"Updated\",\n PATCH: \"Updated\",\n DELETE: \"Deleted\"\n }\n};\n\nexport function getMessageForStatus(statusCode: number, method?: HttpMethod): string {\n // return the method-specific message if it exists\n if (method != null) {\n const methodOverrides = STATUS_CODE_MESSAGES_METHOD_OVERRIDES[statusCode];\n if (methodOverrides != null) {\n const message = methodOverrides[method];\n if (message != null) {\n return message;\n }\n }\n }\n\n // return the official status message if it exists\n const message = STATUS_CODE_MESSAGES[statusCode];\n if (message != null) {\n return message;\n }\n\n // return the default message if it exists\n if (statusCode >= 100 && statusCode < 200) {\n return \"Informational\";\n } else if (statusCode >= 200 && statusCode < 300) {\n return \"Success\";\n } else if (statusCode >= 300 && statusCode < 400) {\n return \"Redirection\";\n } else if (statusCode >= 400 && statusCode < 500) {\n return \"Client Error\";\n } else if (statusCode >= 500 && statusCode < 600) {\n return \"Server Error\";\n } else {\n return \"Unknown Status\";\n }\n}\n","import type { HTTPSnippetClient } from \"./types\";\n\n/**\n * HTTP snippet client configurations for each supported language.\n * These define which httpsnippet-lite target and client to use for each language.\n */\nexport const HTTP_SNIPPET_CLIENTS: HTTPSnippetClient[] = [\n { targetId: \"python\", clientId: \"requests\" },\n { targetId: \"javascript\", clientId: \"fetch\" },\n { targetId: \"go\", clientId: \"native\" },\n { targetId: \"ruby\", clientId: \"native\" },\n { targetId: \"java\", clientId: \"unirest\" },\n { targetId: \"php\", clientId: \"guzzle\" },\n { targetId: \"csharp\", clientId: \"restsharp\" },\n { targetId: \"swift\", clientId: \"nsurlsession\" }\n];\n","import type { ApiAuth } from \"../../client/APIV1Read\";\nimport type { AuthScheme, AuthSchemeId, CodeSnippet, EndpointDefinition } from \"../latest\";\n\n/**\n * Get the first auth scheme ID for an endpoint, preferring multiAuth over legacy auth.\n * multiAuth provides proper OR-of-AND semantics for endpoint-specific security.\n */\nexport function getFirstAuthSchemeId(endpoint: EndpointDefinition): AuthSchemeId | undefined {\n if (endpoint.multiAuth != null && endpoint.multiAuth.length > 0) {\n const firstGroup = endpoint.multiAuth[0];\n if (firstGroup && firstGroup.schemes.length > 0) {\n return firstGroup.schemes[0];\n }\n }\n return endpoint.auth?.[0];\n}\n\n/**\n * Get the first auth scheme for an endpoint from the auths record.\n * Uses getFirstAuthSchemeId to select the correct auth scheme.\n */\nexport function getFirstAuthScheme<T extends AuthScheme | ApiAuth>(\n endpoint: EndpointDefinition,\n auths: Record<AuthSchemeId, T>\n): T | undefined {\n const authId = getFirstAuthSchemeId(endpoint);\n return authId != null ? auths[authId] : undefined;\n}\n\n/**\n * Get the header name for an auth scheme.\n * Returns the header wire value for header auth, \"Authorization\" for bearer/OAuth, or undefined.\n */\nexport function getAuthHeaderName(auth: AuthScheme | ApiAuth | undefined): string | undefined {\n if (auth == null) {\n return undefined;\n }\n if (auth.type === \"header\") {\n return (auth as { headerWireValue?: string }).headerWireValue;\n }\n if (auth.type === \"bearerAuth\" || auth.type === \"oAuth\") {\n return \"Authorization\";\n }\n return undefined;\n}\n\n/**\n * Check if a snippet is likely auto-generated (not user-provided).\n * A snippet is considered likely generated if:\n * - generated === true, OR\n * - generated is undefined AND name, install, and description are all null\n */\nexport function isLikelyGeneratedSnippet(snippet: CodeSnippet): boolean {\n if (snippet.generated === true) {\n return true;\n }\n if (snippet.generated === false) {\n return false;\n }\n return snippet.name == null && snippet.install == null && snippet.description == null;\n}\n\n/**\n * Determine if a curl snippet should be regenerated because it has the wrong auth header or URL.\n * Only regenerates if:\n * - No existing snippets exist, OR\n * - All existing snippets are likely generated AND none contain the expected header, OR\n * - For basic auth: existing snippets use -H \"Authorization: Basic\" instead of -u flag, OR\n * - The endpoint has a non-trivial path but no existing snippet's URL contains it\n * (targeted repair for snippets generated before the empty-example-path fix)\n */\nexport function shouldRegenerateCurlSnippet(\n existingSnippets: CodeSnippet[] | undefined,\n expectedHeaderName: string | undefined,\n authScheme?: AuthScheme | ApiAuth,\n endpoint?: EndpointDefinition\n): boolean {\n if (existingSnippets == null || existingSnippets.length === 0) {\n return true;\n }\n\n const allLikelyGenerated = existingSnippets.every(isLikelyGeneratedSnippet);\n if (!allLikelyGenerated) {\n return false;\n }\n\n // Regenerate if the endpoint has a non-trivial path but no existing snippet's URL contains it.\n // This catches pre-stored snippets that were generated with a broken URL (base only, no path).\n if (endpoint != null && isMissingEndpointPath(existingSnippets, endpoint)) {\n return true;\n }\n\n // For basic auth, check if snippets use -H \"Authorization: Basic\" instead of -u flag\n // If so, regenerate to use -u flag\n if (authScheme?.type === \"basicAuth\") {\n const usesBasicAuthHeader = existingSnippets.some(\n (s) => s.code.includes('-H \"Authorization: Basic') || s.code.includes(\"-H 'Authorization: Basic\")\n );\n if (usesBasicAuthHeader) {\n return true;\n }\n\n // If passwordAlwaysEmpty, regenerate if existing snippet still contains a password placeholder\n if (authScheme.passwordAlwaysEmpty) {\n const passwordName = authScheme.passwordName ?? \"password\";\n const hasPasswordPlaceholder = existingSnippets.some((s) => s.code.includes(`:<${passwordName}>`));\n if (hasPasswordPlaceholder) {\n return true;\n }\n }\n\n // If basic auth and no header found, check if -u flag is present\n const usesUFlag = existingSnippets.some((s) => s.code.includes(\"-u \"));\n // If -u flag is present, no need to regenerate\n return !usesUFlag;\n }\n\n if (expectedHeaderName == null) {\n return false;\n }\n\n const hasCorrectHeader = existingSnippets.some(\n (s) => s.code.includes(`\"${expectedHeaderName}:`) || s.code.includes(`'${expectedHeaderName}:`)\n );\n return !hasCorrectHeader;\n}\n\n/**\n * Determine if an HTTP snippet for a given language should be regenerated.\n * Always regenerates auto-generated snippets so they pick up the latest\n * generation logic. Only preserves user-provided snippets (generated === false).\n */\nexport function shouldRegenerateHttpSnippet(existingSnippets: CodeSnippet[] | undefined): boolean {\n if (existingSnippets == null || existingSnippets.length === 0) {\n return false; // nothing to regenerate; will be generated fresh\n }\n\n return existingSnippets.every(isLikelyGeneratedSnippet);\n}\n\n/**\n * Check whether none of the existing curl snippets contain any literal segment of the\n * endpoint path. Returns true only when the endpoint has at least one non-empty literal\n * segment (ignoring bare slashes) and not a single snippet references any of those segments.\n */\nfunction isMissingEndpointPath(existingSnippets: CodeSnippet[], endpoint: EndpointDefinition): boolean {\n const literalSegments = (endpoint.path ?? [])\n .filter((part): part is { type: \"literal\"; value: string } => part.type === \"literal\")\n .flatMap((part) => part.value.split(\"/\"))\n .map((segment) => segment.trim())\n .filter((segment) => segment.length > 0);\n\n if (literalSegments.length === 0) {\n return false;\n }\n\n return existingSnippets.every((snippet) => literalSegments.every((segment) => !snippet.code.includes(segment)));\n}\n","import { unknownToString, visitDiscriminatedUnion } from \"@fern-api/ui-core-utils\";\nimport type { HarRequest } from \"httpsnippet-lite\";\nimport type { ApiAuth } from \"../../client/APIV1Read\";\nimport {\n type AuthSchemeId,\n buildEndpointUrl,\n type EndpointDefinition,\n type ExampleEndpointCall,\n type ExampleEndpointRequest,\n preprocessQueryParameters\n} from \"../\";\nimport { getFirstAuthScheme } from \"./auth-scheme\";\nimport type { BasicAuthInfo } from \"./HttpSnippetConverter\";\n\nexport function getHarRequest(\n endpoint: EndpointDefinition,\n example: ExampleEndpointCall,\n auths: Record<AuthSchemeId, ApiAuth>,\n requestBody: ExampleEndpointRequest | undefined\n): HarRequest {\n const request: HarRequest = {\n httpVersion: \"1.1\",\n method: \"GET\",\n url: \"\",\n headers: [],\n headersSize: -1,\n queryString: [],\n cookies: [],\n bodySize: -1\n };\n const builtUrl = buildEndpointUrl({\n endpoint,\n // omit query parameters here because they are included in the `queryString` field\n pathParameters: example.pathParameters ?? undefined\n });\n\n // HTTPSnippet requires a full URL with protocol and host\n // If the built URL is a relative path, prepend a placeholder base URL\n request.url =\n builtUrl.startsWith(\"http://\") || builtUrl.startsWith(\"https://\")\n ? builtUrl\n : `https://api.example.com${builtUrl.startsWith(\"/\") ? \"\" : \"/\"}${builtUrl}`;\n\n request.method = endpoint.method;\n\n // Preprocess query parameters based on explode metadata\n const processedQueryParams =\n preprocessQueryParameters(example.queryParameters ?? undefined, endpoint.queryParameters ?? undefined) ?? {};\n request.queryString = Object.entries(processedQueryParams).map(([name, value]) => ({\n name,\n value: unknownToString(value)\n }));\n request.headers = Object.entries(example.headers ?? {}).map(([name, value]) => ({\n name,\n value: unknownToString(value)\n }));\n\n let mimeType = endpoint.requests?.[0]?.contentType;\n\n if (requestBody != null) {\n if (mimeType == null) {\n mimeType = requestBody.type === \"json\" ? \"application/json\" : \"multipart/form-data\";\n }\n request.postData = {\n mimeType\n };\n\n // filter out request parameters that have no value and are not an array\n if (requestBody.value && typeof requestBody.value === \"object\" && !Array.isArray(requestBody.value)) {\n requestBody.value = Object.fromEntries(\n Object.entries(requestBody.value).filter(([_, valueObj]) => {\n // Keep arrays and primitive values\n if (Array.isArray(valueObj) || typeof valueObj !== \"object\" || valueObj == null) {\n return true;\n }\n // For objects, only filter out empty objects without a value property\n return Object.keys(valueObj).length > 0;\n })\n );\n }\n\n if (requestBody.type === \"json\") {\n request.postData.text = JSON.stringify(requestBody.value, null, 2);\n } else if (requestBody.type === \"form\") {\n request.postData.params = [];\n\n for (const [name, rawValue] of Object.entries(requestBody.value)) {\n const value = rawValue as {\n type: string;\n value?: unknown;\n filename?: string;\n };\n if (value.type === \"json\") {\n request.postData.params.push({\n name,\n value: typeof value.value === \"string\" ? value.value : JSON.stringify(value.value, null, 2)\n });\n } else if (value.type === \"filename\") {\n request.postData.params.push({\n name,\n fileName: String(value.value ?? \"\")\n });\n } else if (value.type === \"filenameWithData\") {\n request.postData.params.push({\n name,\n fileName: String(value.filename ?? \"\")\n });\n } else if (value.type === \"filenames\") {\n for (const fileName of value.value as string[]) {\n request.postData.params.push({\n name,\n fileName\n });\n }\n } else if (value.type === \"filenamesWithData\") {\n for (const { filename } of value.value as { filename: string }[]) {\n request.postData.params.push({\n name,\n fileName: filename\n });\n }\n }\n }\n } else if (requestBody.type === \"bytes\") {\n // TODO: verify this is correct\n request.postData.params = [\n {\n name: \"file\",\n value: String((requestBody.value as { value?: unknown })?.value ?? \"\")\n }\n ];\n }\n }\n\n const auth = getFirstAuthScheme(endpoint, auths);\n\n if (auth != null) {\n visitDiscriminatedUnion(auth)._visit({\n basicAuth: ({ usernameName = \"username\", passwordName = \"password\", passwordAlwaysEmpty }) => {\n request.headers.push({\n name: \"Authorization\",\n value: passwordAlwaysEmpty\n ? `Basic <${usernameName}>:`\n : `Basic <${usernameName}>:<${passwordName}>`\n });\n },\n bearerAuth: ({ tokenName = \"token\" }) => {\n request.headers.push({\n name: \"Authorization\",\n value: `Bearer <${tokenName}>`\n });\n },\n header: ({ headerWireValue, nameOverride = headerWireValue, prefix }) => {\n request.headers.push({\n name: headerWireValue,\n value: prefix != null ? `${prefix} <${nameOverride}>` : `<${nameOverride}>`\n });\n },\n oAuth: (oAuth) => {\n visitDiscriminatedUnion(oAuth.value, \"type\")._visit({\n clientCredentials: (clientCredentials) => {\n visitDiscriminatedUnion(clientCredentials.value, \"type\")._visit({\n referencedEndpoint: () => {\n request.headers.push({\n name: clientCredentials.value.headerName || \"Authorization\",\n value: `${clientCredentials.value.tokenPrefix ? `${clientCredentials.value.tokenPrefix ?? \"Bearer\"} ` : \"\"}<token>.`\n });\n }\n });\n }\n });\n }\n });\n }\n\n if (mimeType != null) {\n request.headers.push({\n name: \"Content-Type\",\n value: mimeType\n });\n }\n\n return request;\n}\n\n/**\n * Extract basic auth info from an endpoint's auth scheme, if present.\n * Returns the placeholder username and password names used in HAR headers.\n */\nexport function getHarRequestBasicAuth(\n endpoint: EndpointDefinition,\n auths: Record<AuthSchemeId, ApiAuth>\n): BasicAuthInfo | undefined {\n const auth = getFirstAuthScheme(endpoint, auths);\n if (auth?.type === \"basicAuth\") {\n const { usernameName = \"username\", passwordName = \"password\", passwordAlwaysEmpty } = auth;\n return {\n username: `<${usernameName}>`,\n password: passwordAlwaysEmpty ? \"\" : `<${passwordName}>`,\n passwordAlwaysEmpty: passwordAlwaysEmpty ?? false\n };\n }\n return undefined;\n}\n","import type { TypeId } from \"../../navigation\";\nimport type {\n GraphQlOperation,\n GraphQlOperationType,\n ObjectProperty,\n PrimitiveType,\n TypeDefinition,\n TypeReference,\n TypeShape\n} from \"../latest\";\n\n/**\n * Context needed to generate a GraphQL snippet\n */\nexport interface GraphQlSnippetContext {\n operation: GraphQlOperation;\n types: Record<TypeId, TypeDefinition>;\n}\n\n/**\n * Generated GraphQL snippet\n */\nexport interface GraphQlSnippet {\n query: string;\n variables: Record<string, unknown>;\n response: unknown;\n}\n\n// Cache for generated snippets to avoid regenerating on re-renders\nconst snippetCache = new WeakMap<GraphQlOperation, GraphQlSnippet>();\n\n/**\n * Generate a GraphQL snippet from an operation definition\n */\nexport function generateGraphQlSnippet(context: GraphQlSnippetContext): GraphQlSnippet {\n const cached = snippetCache.get(context.operation);\n if (cached) {\n return cached;\n }\n const { operation, types } = context;\n\n const operationKeyword = getOperationKeyword(operation.operationType);\n const operationName = getExampleOperationName(operation.operationType);\n\n const args = operation.arguments ?? [];\n const variables: Record<string, unknown> = {};\n\n // Build variable definitions and collect example values\n const variableDefinitions = args.map((arg) => {\n const graphqlType = typeShapeToGraphQlType(arg.type, types);\n const exampleValue = generateExampleValue(arg.type, types, 5, new Set(), arg.defaultValue);\n variables[arg.name] = exampleValue;\n return `$${arg.name}: ${graphqlType}`;\n });\n\n // Build argument usage in the query\n const argumentUsage = args.map((arg) => `${arg.name}: $${arg.name}`);\n\n // Build the selection set from the return type, adjusting indent for fieldPath nesting\n const fieldPath = operation.fieldPath;\n const hasFieldPath = fieldPath != null && fieldPath.length > 0;\n const selectionSetIndent = hasFieldPath ? 2 + fieldPath.length : 2;\n const selectionSet = generateSelectionSet(operation.returnType, types, 2, new Set(), selectionSetIndent);\n\n // Construct the query\n let query = operationKeyword;\n if (operationName || variableDefinitions.length > 0) {\n query += ` ${operationName}`;\n if (variableDefinitions.length > 0) {\n query += `(${variableDefinitions.join(\", \")})`;\n }\n }\n\n query += \" {\\n\";\n\n const baseIndent = 2;\n\n if (hasFieldPath) {\n for (let i = 0; i < fieldPath.length; i++) {\n const indent = \" \".repeat(baseIndent + i * 2);\n query += `${indent}${fieldPath[i]} {\\n`;\n }\n }\n\n const operationIndent = hasFieldPath ? \" \".repeat(baseIndent + fieldPath.length * 2) : \" \";\n query += `${operationIndent}${operation.name}`;\n\n if (argumentUsage.length > 0) {\n query += `(${argumentUsage.join(\", \")})`;\n }\n\n if (selectionSet) {\n query += ` ${selectionSet}`;\n }\n\n query += \"\\n\";\n\n // Close the fieldPath nesting brackets\n if (hasFieldPath) {\n for (let i = fieldPath.length - 1; i >= 0; i--) {\n const indent = \" \".repeat(baseIndent + i * 2);\n query += `${indent}}\\n`;\n }\n }\n\n query += \"}\";\n\n // Generate example response based on return type\n const response = generateResponseExample(operation.name, operation.returnType, types, fieldPath);\n\n const result = { query, variables, response };\n snippetCache.set(operation, result);\n return result;\n}\n\n/**\n * Get the GraphQL operation keyword (query, mutation, subscription)\n */\nfunction getOperationKeyword(operationType: GraphQlOperationType): string {\n switch (operationType) {\n case \"QUERY\":\n return \"query\";\n case \"MUTATION\":\n return \"mutation\";\n case \"SUBSCRIPTION\":\n return \"subscription\";\n default:\n return \"query\";\n }\n}\n\n/**\n * Get the example operation name based on operation type\n */\nfunction getExampleOperationName(operationType: GraphQlOperationType): string {\n switch (operationType) {\n case \"QUERY\":\n return \"ExampleQuery\";\n case \"MUTATION\":\n return \"ExampleMutation\";\n case \"SUBSCRIPTION\":\n return \"ExampleSubscription\";\n default:\n return \"ExampleQuery\";\n }\n}\n\n/**\n * Convert a TypeShape to a GraphQL type string.\n * @param nonNull - when true (default), appends `!` for non-null types.\n * The optional/nullable branches pass false to suppress the suffix.\n */\nfunction typeShapeToGraphQlType(shape: TypeShape, types: Record<TypeId, TypeDefinition>, nonNull = true): string {\n if (shape.type === \"alias\") {\n return typeReferenceToGraphQlType(shape.value, types, nonNull);\n }\n const base =\n shape.type === \"enum\"\n ? \"String\"\n : shape.type === \"object\" || shape.type === \"undiscriminatedUnion\" || shape.type === \"discriminatedUnion\"\n ? \"Object\"\n : \"String\";\n return nonNull ? `${base}!` : base;\n}\n\n/**\n * Convert a TypeReference to a GraphQL type string.\n * @param nonNull - when true (default), appends `!` for non-null types.\n */\nfunction typeReferenceToGraphQlType(ref: TypeReference, types: Record<TypeId, TypeDefinition>, nonNull = true): string {\n switch (ref.type) {\n case \"primitive\": {\n const base = primitiveToGraphQlType(ref.value);\n return nonNull ? `${base}!` : base;\n }\n case \"id\": {\n const typeDef = types[ref.id];\n const base = typeDef ? (typeDef.displayName ?? unnamespacedName(typeDef.name) ?? \"Object\") : \"Object\";\n return nonNull ? `${base}!` : base;\n }\n case \"optional\":\n return typeShapeToGraphQlType(ref.shape, types, false);\n case \"nullable\":\n return typeShapeToGraphQlType(ref.shape, types, false);\n case \"list\": {\n const inner = typeShapeToGraphQlType(ref.itemShape, types);\n return nonNull ? `[${inner}]!` : `[${inner}]`;\n }\n case \"set\": {\n const inner = typeShapeToGraphQlType(ref.itemShape, types);\n return nonNull ? `[${inner}]!` : `[${inner}]`;\n }\n case \"map\":\n return nonNull ? \"Object!\" : \"Object\";\n case \"literal\":\n return nonNull ? \"String!\" : \"String\";\n case \"unknown\":\n return nonNull ? \"Object!\" : \"Object\";\n default:\n return nonNull ? \"String!\" : \"String\";\n }\n}\n\n/**\n * Extract the un-namespaced type name from a Fern type name.\n * e.g., \"orders_UserInput\" -> \"UserInput\"\n */\nfunction unnamespacedName(name: string): string {\n const lastUnderscoreIndex = name.lastIndexOf(\"_\");\n return lastUnderscoreIndex !== -1 ? name.slice(lastUnderscoreIndex + 1) : name;\n}\n\n/**\n * Convert a primitive type to GraphQL type\n */\nfunction primitiveToGraphQlType(primitive: PrimitiveType): string {\n switch (primitive.type) {\n case \"scalar\":\n return primitive.name;\n case \"integer\":\n case \"long\":\n case \"uint\":\n case \"uint64\":\n case \"bigInteger\":\n return \"Int\";\n case \"double\":\n return \"Float\";\n case \"boolean\":\n return \"Boolean\";\n case \"string\":\n case \"uuid\":\n case \"base64\":\n case \"datetime\":\n case \"date\":\n default:\n return \"String\";\n }\n}\n\n/**\n * Collect all properties for an object type, including inherited properties from `extends`.\n */\nfunction collectObjectProperties(\n shape: { extends: TypeId[]; properties: ObjectProperty[] },\n types: Record<TypeId, TypeDefinition>\n): ObjectProperty[] {\n const properties: ObjectProperty[] = [];\n for (const parentId of shape.extends) {\n const parentDef = types[parentId];\n if (parentDef?.shape?.type === \"object\") {\n properties.push(...collectObjectProperties(parentDef.shape, types));\n }\n }\n properties.push(...shape.properties);\n return properties;\n}\n\n/**\n * Generate an example value for a type\n */\nfunction generateExampleValue(\n shape: TypeShape,\n types: Record<TypeId, TypeDefinition>,\n depth: number,\n visited: Set<TypeId>,\n defaultValue?: unknown\n): unknown {\n if (defaultValue !== undefined) {\n return defaultValue;\n }\n\n if (depth <= 0) {\n return null;\n }\n\n if (shape.type === \"alias\") {\n return generateExampleValueFromReference(shape.value, types, depth, visited);\n }\n if (shape.type === \"enum\") {\n // Return the first enum value if available\n const firstValue = shape.values?.[0];\n return firstValue?.value ?? \"EXAMPLE_VALUE\";\n }\n if (shape.type === \"object\") {\n const properties = collectObjectProperties(shape, types);\n if (properties.length === 0) {\n return {};\n }\n const result: Record<string, unknown> = {};\n for (const prop of properties.slice(0, 10)) {\n result[prop.key] = generateExampleValue(prop.valueShape, types, depth - 1, visited);\n }\n return result;\n }\n if (shape.type === \"undiscriminatedUnion\") {\n const firstVariant = shape.variants?.[0];\n if (firstVariant?.shape) {\n return generateExampleValue(firstVariant.shape, types, depth, visited);\n }\n return {};\n }\n if (shape.type === \"discriminatedUnion\") {\n const firstVariant = shape.variants?.[0];\n if (firstVariant) {\n const result: Record<string, unknown> = {\n [shape.discriminant]: firstVariant.discriminantValue\n };\n const properties = collectObjectProperties(firstVariant, types);\n for (const prop of properties.slice(0, 10)) {\n result[prop.key] = generateExampleValue(prop.valueShape, types, depth - 1, visited);\n }\n return result;\n }\n return {};\n }\n\n return \"example\";\n}\n\n/**\n * Generate an example value from a type reference\n */\nfunction generateExampleValueFromReference(\n ref: TypeReference,\n types: Record<TypeId, TypeDefinition>,\n depth: number,\n visited: Set<TypeId>\n): unknown {\n switch (ref.type) {\n case \"primitive\":\n return generateExamplePrimitiveValue(ref.value);\n case \"id\": {\n if (visited.has(ref.id)) {\n return null;\n }\n const typeDef = types[ref.id];\n if (typeDef?.shape) {\n visited.add(ref.id);\n const result = generateExampleValue(typeDef.shape, types, depth, visited);\n visited.delete(ref.id);\n return result;\n }\n return {};\n }\n case \"optional\":\n case \"nullable\":\n return generateExampleValue(ref.shape, types, depth, visited);\n case \"list\":\n case \"set\":\n return [generateExampleValue(ref.itemShape, types, depth, visited)];\n case \"map\":\n return {};\n case \"literal\":\n return ref.value.value;\n case \"unknown\":\n return {};\n default:\n return \"example\";\n }\n}\n\n/**\n * Generate example primitive values\n */\nfunction generateExamplePrimitiveValue(primitive: PrimitiveType): unknown {\n switch (primitive.type) {\n case \"integer\":\n case \"long\":\n case \"uint\":\n case \"uint64\":\n case \"bigInteger\":\n return 0;\n case \"double\":\n return 0.0;\n case \"boolean\":\n return true;\n case \"string\":\n return \"example\";\n case \"uuid\":\n return \"00000000-0000-0000-0000-000000000000\";\n case \"datetime\":\n return new Date().toISOString();\n case \"date\":\n return new Date().toISOString().split(\"T\")[0];\n case \"base64\":\n return \"ZXhhbXBsZQ==\";\n case \"scalar\":\n return primitive.default ?? primitive.name;\n default:\n return \"example\";\n }\n}\n\n/**\n * Generate a selection set for the return type\n */\nfunction generateSelectionSet(\n shape: TypeShape,\n types: Record<TypeId, TypeDefinition>,\n depth: number,\n visited: Set<TypeId> = new Set(),\n indentLevel: number = 2\n): string {\n if (depth <= 0) {\n return \"\";\n }\n\n if (shape.type === \"alias\") {\n return generateSelectionSetFromReference(shape.value, types, depth, visited, indentLevel);\n }\n\n if (shape.type === \"object\") {\n const properties = shape.properties ?? [];\n if (properties.length === 0) {\n return \"\";\n }\n\n const indent = \" \".repeat(indentLevel);\n const closingIndent = \" \".repeat(indentLevel - 1);\n\n const fields = properties\n .slice(0, 10) // Limit to first 10 fields\n .map((prop) => {\n const nestedSelection = generateSelectionSet(\n prop.valueShape,\n types,\n depth - 1,\n visited,\n indentLevel + 1\n );\n if (nestedSelection) {\n return `${indent}${prop.key} ${nestedSelection}`;\n }\n return `${indent}${prop.key}`;\n });\n\n return `{\\n${fields.join(\"\\n\")}\\n${closingIndent}}`;\n }\n\n if (shape.type === \"enum\") {\n return \"\"; // Enums don't have selection sets\n }\n\n if (shape.type === \"undiscriminatedUnion\" || shape.type === \"discriminatedUnion\") {\n // For unions, just return the field name without nested selection\n return \"\";\n }\n\n return \"\";\n}\n\n/**\n * Generate selection set from a type reference\n */\nfunction generateSelectionSetFromReference(\n ref: TypeReference,\n types: Record<TypeId, TypeDefinition>,\n depth: number,\n visited: Set<TypeId>,\n indentLevel: number\n): string {\n switch (ref.type) {\n case \"id\": {\n if (visited.has(ref.id)) {\n return \"\"; // Prevent infinite recursion\n }\n const typeDef = types[ref.id];\n if (typeDef?.shape) {\n visited.add(ref.id);\n const result = generateSelectionSet(typeDef.shape, types, depth, visited, indentLevel);\n visited.delete(ref.id);\n return result;\n }\n return \"\";\n }\n case \"optional\":\n case \"nullable\":\n return generateSelectionSet(ref.shape, types, depth, visited, indentLevel);\n case \"list\":\n case \"set\":\n return generateSelectionSet(ref.itemShape, types, depth, visited, indentLevel);\n case \"primitive\":\n case \"literal\":\n case \"unknown\":\n case \"map\":\n default:\n return \"\";\n }\n}\n\n/**\n * Generate a GraphQL response example\n */\nfunction generateResponseExample(\n operationName: string,\n returnType: TypeShape,\n types: Record<TypeId, TypeDefinition>,\n fieldPath?: string[] | null\n): unknown {\n const data = generateResponseData(returnType, types, 3, new Set());\n\n // Build the nested response structure following the fieldPath\n let responseData: Record<string, unknown> = { [operationName]: data };\n if (fieldPath != null && fieldPath.length > 0) {\n for (let i = fieldPath.length - 1; i >= 0; i--) {\n const key = fieldPath[i];\n if (key != null) {\n responseData = { [key]: responseData };\n }\n }\n }\n\n return { data: responseData };\n}\n\n/**\n * Generate response data from a type shape\n */\nfunction generateResponseData(\n shape: TypeShape,\n types: Record<TypeId, TypeDefinition>,\n depth: number,\n visited: Set<TypeId>\n): unknown {\n if (depth <= 0) {\n return null;\n }\n\n if (shape.type === \"alias\") {\n return generateResponseDataFromReference(shape.value, types, depth, visited);\n }\n\n if (shape.type === \"object\") {\n const properties = shape.properties ?? [];\n if (properties.length === 0) {\n return {};\n }\n\n const result: Record<string, unknown> = {};\n for (const prop of properties.slice(0, 10)) {\n result[prop.key] = generateResponseData(prop.valueShape, types, depth - 1, visited);\n }\n return result;\n }\n\n if (shape.type === \"enum\") {\n const firstValue = shape.values?.[0];\n return firstValue?.value ?? \"EXAMPLE_VALUE\";\n }\n\n if (shape.type === \"undiscriminatedUnion\") {\n // Return example for the first variant\n const firstVariant = shape.variants?.[0];\n if (firstVariant?.shape) {\n return generateResponseData(firstVariant.shape, types, depth, visited);\n }\n return {};\n }\n\n if (shape.type === \"discriminatedUnion\") {\n // Return example for the first variant\n const firstVariant = shape.variants?.[0];\n if (firstVariant) {\n const result: Record<string, unknown> = {\n [shape.discriminant]: firstVariant.discriminantValue\n };\n if (firstVariant.properties) {\n for (const prop of firstVariant.properties.slice(0, 10)) {\n result[prop.key] = generateResponseData(prop.valueShape, types, depth - 1, visited);\n }\n }\n return result;\n }\n return {};\n }\n\n return null;\n}\n\n/**\n * Generate response data from a type reference\n */\nfunction generateResponseDataFromReference(\n ref: TypeReference,\n types: Record<TypeId, TypeDefinition>,\n depth: number,\n visited: Set<TypeId>\n): unknown {\n switch (ref.type) {\n case \"primitive\":\n return generateExamplePrimitiveValue(ref.value);\n case \"id\": {\n if (visited.has(ref.id)) {\n return null; // Prevent infinite recursion\n }\n const typeDef = types[ref.id];\n if (typeDef?.shape) {\n visited.add(ref.id);\n const result = generateResponseData(typeDef.shape, types, depth, visited);\n visited.delete(ref.id);\n return result;\n }\n return {};\n }\n case \"optional\":\n case \"nullable\":\n return generateResponseData(ref.shape, types, depth, visited);\n case \"list\":\n case \"set\":\n return [generateResponseData(ref.itemShape, types, depth, visited)];\n case \"map\":\n return {};\n case \"literal\":\n return ref.value.value;\n case \"unknown\":\n return {};\n default:\n return null;\n }\n}\n","import { type HarRequest, HTTPSnippet, type TargetId } from \"httpsnippet-lite\";\n\nimport { HTTP_SNIPPET_CLIENTS } from \"./constants\";\n\nconst IMPORT_PREFIXES: Partial<Record<TargetId, string>> = {\n csharp: \"using RestSharp;\\n\\n\",\n java: \"import com.mashape.unirest.http.HttpResponse;\\nimport com.mashape.unirest.http.Unirest;\\n\\n\"\n};\n\nconst PHP_AUTOLOAD_INSERT = \"\\nrequire_once('vendor/autoload.php');\\n\";\n\nexport interface BasicAuthInfo {\n username: string;\n password: string;\n passwordAlwaysEmpty?: boolean;\n}\n\nexport class HttpSnippetConverter {\n private readonly snippet: HTTPSnippet;\n private readonly basicAuth: BasicAuthInfo | undefined;\n\n constructor(harRequest: HarRequest, basicAuth?: BasicAuthInfo) {\n this.snippet = new HTTPSnippet(harRequest);\n this.basicAuth = basicAuth;\n }\n\n async convert(targetId: TargetId, clientId: string): Promise<string | undefined> {\n const convertedCode = await this.snippet.convert(targetId, clientId);\n const raw =\n typeof convertedCode === \"string\" ? convertedCode : convertedCode != null ? convertedCode[0] : undefined;\n\n if (raw == null) {\n return undefined;\n }\n\n let code = this.addImports(raw, targetId);\n if (this.basicAuth != null) {\n code = applyBasicAuth(code, targetId, this.basicAuth);\n }\n return code;\n }\n\n async convertAll(): Promise<{ targetId: TargetId; code: string }[]> {\n const results: { targetId: TargetId; code: string }[] = [];\n\n for (const { targetId, clientId } of HTTP_SNIPPET_CLIENTS) {\n const code = await this.convert(targetId, clientId);\n if (code != null) {\n results.push({ targetId, code });\n }\n }\n\n return results;\n }\n\n private addImports(code: string, targetId: TargetId): string {\n if (targetId === \"php\") {\n return code.replace(/^<\\?php\\n/, `<?php${PHP_AUTOLOAD_INSERT}`);\n }\n\n const prefix = IMPORT_PREFIXES[targetId];\n if (prefix != null) {\n return `${prefix}${code}`;\n }\n\n return code;\n }\n}\n\n/**\n * Replace the literal \"Basic <username>:<password>\" header value with\n * native auth support or idiomatic base64 encoding for each target language.\n *\n * Languages with native HTTP basic auth support (Python, Ruby, Java, PHP, C#, Go)\n * use their own internal pattern matching to find and replace the Authorization header,\n * so they don't require the exact quoted literal pattern to match.\n *\n * Languages without native support (JavaScript, Swift) use a regex-based replacement\n * on the exact literal value, so they require the quoted pattern to match.\n */\nfunction applyBasicAuth(code: string, targetId: TargetId, auth: BasicAuthInfo): string {\n const literalValue = `Basic ${auth.username}:${auth.password}`;\n\n // Build a regex that matches the literal value in single or double quotes\n const escapedLiteral = literalValue.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n const quotedPattern = new RegExp(`([\"'])${escapedLiteral}\\\\1`);\n\n // Languages with native auth support use their own patterns to find the\n // Authorization header, so they don't need the exact literal to match.\n // This is important for passwordAlwaysEmpty where the literal is \"Basic <key>:\"\n // which may not match the quoted pattern exactly.\n switch (targetId) {\n case \"python\":\n return applyPythonBasicAuth(code, quotedPattern, auth);\n case \"go\":\n return applyGoBasicAuth(code, auth);\n case \"ruby\":\n return applyRubyBasicAuth(code, quotedPattern, auth);\n case \"java\":\n return applyJavaBasicAuth(code, quotedPattern, auth);\n case \"php\":\n return applyPhpBasicAuth(code, quotedPattern, auth);\n case \"csharp\":\n return applyCSharpBasicAuth(code, quotedPattern, auth);\n default:\n break;\n }\n\n // For languages without native auth (JS, Swift), we need the exact literal to match\n if (!quotedPattern.test(code)) {\n return code;\n }\n\n switch (targetId) {\n case \"javascript\":\n return applyJavaScriptBasicAuth(code, quotedPattern, auth);\n case \"swift\":\n return applySwiftBasicAuth(code, quotedPattern, auth);\n default:\n return code;\n }\n}\n\nfunction applyPythonBasicAuth(code: string, _pattern: RegExp, auth: BasicAuthInfo): string {\n // Python requests has native auth= parameter support\n // Remove the Authorization header from the headers dict and add auth= to requests call\n\n // Match Authorization header in dict - could be on same line or separate line\n const authHeaderInDictPattern = /,?\\s*\"Authorization\":\\s*\"[^\"]*\",?/;\n const hasAuthHeader = authHeaderInDictPattern.test(code);\n\n if (hasAuthHeader) {\n // Remove the Authorization header entry from the headers dict\n code = code.replace(authHeaderInDictPattern, \"\");\n\n // Clean up empty headers dict: `headers = {}` with surrounding whitespace\n const emptyHeadersPattern = /\\nheaders = \\{\\s*\\}\\n\\n/;\n const headersAreEmpty = emptyHeadersPattern.test(code);\n\n if (headersAreEmpty) {\n // Remove the empty headers dict\n code = code.replace(emptyHeadersPattern, \"\\n\");\n // Remove headers= parameter from the requests call\n code = code.replace(/,?\\s*headers=headers/, \"\");\n }\n\n // Add auth= parameter to the requests call\n const authTuple = auth.passwordAlwaysEmpty\n ? `auth=(\"${auth.username}\", \"\")`\n : `auth=(\"${auth.username}\", \"${auth.password}\")`;\n code = code.replace(/(response = requests\\.\\w+\\([^)]+)\\)/, `$1, ${authTuple})`);\n\n return code;\n }\n\n // Fallback: if we can't find the header pattern, use base64 encoding\n const importLine = \"import base64\\n\";\n const credentialsVar = `credentials = base64.b64encode(f\"${auth.username}:${auth.password}\".encode()).decode()\\n`;\n code = code.replace(/^(import requests\\n)/, `$1${importLine}`);\n code = code.replace(/^(headers = \\{)/m, `${credentialsVar}\\n$1`);\n code = code.replace(_pattern, `f\"Basic {credentials}\"`);\n return code;\n}\n\nfunction applyJavaScriptBasicAuth(code: string, pattern: RegExp, auth: BasicAuthInfo): string {\n const credentialsLine = `const credentials = btoa(\"${auth.username}:${auth.password}\");\\n`;\n\n // Add credentials variable before the options\n code = code.replace(/^(const options)/m, `${credentialsLine}\\n$1`);\n\n // Replace the literal with template literal\n code = code.replace(pattern, \"`Basic ${credentials}`\");\n\n return code;\n}\n\nfunction applyGoBasicAuth(code: string, auth: BasicAuthInfo): string {\n // Go has a built-in SetBasicAuth method on http.Request\n // Replace Header.Add(\"Authorization\", \"Basic ...\") with req.SetBasicAuth(username, password)\n const headerPattern = new RegExp(\n `req\\\\.Header\\\\.Add\\\\(\"Authorization\",\\\\s*\"Basic ${auth.username.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")}:${auth.password.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")}\"\\\\)`\n );\n code = code.replace(headerPattern, `req.SetBasicAuth(\"${auth.username}\", \"${auth.password}\")`);\n\n return code;\n}\n\nfunction applyRubyBasicAuth(code: string, pattern: RegExp, auth: BasicAuthInfo): string {\n // Ruby's Net::HTTP has native basic_auth support\n const authHeaderPattern = /request\\[\"Authorization\"\\]\\s*=\\s*[^\\n]+\\n/;\n const hasAuthHeader = authHeaderPattern.test(code);\n\n if (hasAuthHeader) {\n const password = auth.passwordAlwaysEmpty ? \"\" : auth.password;\n code = code.replace(authHeaderPattern, `request.basic_auth(\"${auth.username}\", \"${password}\")\\n`);\n return code;\n }\n\n // Fallback: use Base64 encoding\n const requireLine = \"require 'base64'\\n\";\n code = code.replace(/^(require 'uri'\\n)/, `$1${requireLine}`);\n code = code.replace(pattern, `\"Basic #{Base64.strict_encode64(\"${auth.username}:${auth.password}\")}\"`);\n return code;\n}\n\nfunction applyJavaBasicAuth(code: string, pattern: RegExp, auth: BasicAuthInfo): string {\n // Java Unirest has native .basicAuth() support\n const headerPattern = /\\.header\\(\"Authorization\",\\s*\"Basic [^\"]*\"\\)/;\n const hasAuthHeader = headerPattern.test(code);\n\n if (hasAuthHeader) {\n const password = auth.passwordAlwaysEmpty ? \"\" : auth.password;\n code = code.replace(headerPattern, `.basicAuth(\"${auth.username}\", \"${password}\")`);\n return code;\n }\n\n // Fallback: use Base64 encoding\n const importLine = \"import java.util.Base64;\\n\";\n code = code.replace(/^(import com\\.mashape)/m, `${importLine}$1`);\n code = code.replace(\n pattern,\n `\"Basic \" + Base64.getEncoder().encodeToString(\"${auth.username}:${auth.password}\".getBytes())`\n );\n return code;\n}\n\nfunction applyPhpBasicAuth(code: string, pattern: RegExp, auth: BasicAuthInfo): string {\n // PHP Guzzle has native 'auth' option support\n const headerPattern = /'Authorization'\\s*=>\\s*'Basic [^']*'/;\n const hasAuthHeader = headerPattern.test(code);\n\n if (hasAuthHeader) {\n // Remove the Authorization header\n code = code.replace(/\\s*'Authorization'\\s*=>\\s*'Basic [^']*',?/, \"\");\n\n // Add auth option to the Guzzle request options\n const password = auth.passwordAlwaysEmpty ? \"\" : auth.password;\n const authOption = `'auth' => ['${auth.username}', '${password}']`;\n\n // Insert auth option into the request options array\n // Look for the 'headers' key in the options array and add auth after it\n if (code.includes(\"'headers'\")) {\n code = code.replace(/('headers'\\s*=>\\s*\\[[^\\]]*\\]),?/, `$1,\\n ${authOption},`);\n } else {\n // Add before the closing bracket of options\n code = code.replace(/(\\$client->request\\([^,]+,\\s*[^,]+,\\s*\\[)/, `$1\\n ${authOption},`);\n }\n\n return code;\n }\n\n // Fallback: use base64_encode\n code = code.replace(pattern, `'Basic ' . base64_encode('${auth.username}:${auth.password}')`);\n return code;\n}\n\nfunction applyCSharpBasicAuth(code: string, pattern: RegExp, auth: BasicAuthInfo): string {\n // C# RestSharp has native Authenticator support\n const headerPattern = /request\\.AddHeader\\(\"Authorization\",\\s*\"Basic [^\"]*\"\\);/;\n const hasAuthHeader = headerPattern.test(code);\n\n if (hasAuthHeader) {\n const password = auth.passwordAlwaysEmpty ? \"\" : auth.password;\n // Remove the Authorization header line\n code = code.replace(headerPattern, \"\");\n // Add using for RestSharp.Authenticators\n code = code.replace(/^(using RestSharp;\\n)/, `$1using RestSharp.Authenticators;\\n`);\n // Add authenticator after client creation\n code = code.replace(\n /(var client = new RestClient\\([^)]*\\);)/,\n `$1\\nclient.Authenticator = new HttpBasicAuthenticator(\"${auth.username}\", \"${password}\");`\n );\n return code;\n }\n\n // Fallback: use Convert.ToBase64String\n const usingLine = \"using System;\\nusing System.Text;\\n\";\n code = code.replace(/^(using RestSharp;\\n)/, `$1${usingLine}`);\n code = code.replace(\n pattern,\n `\"Basic \" + Convert.ToBase64String(Encoding.UTF8.GetBytes(\"${auth.username}:${auth.password}\"))`\n );\n return code;\n}\n\nfunction applySwiftBasicAuth(code: string, pattern: RegExp, auth: BasicAuthInfo): string {\n // Add credentials variable after import Foundation\n const credentialsCode = `\\nlet credentials = Data(\"${auth.username}:${auth.password}\".utf8).base64EncodedString()\\n`;\n code = code.replace(/^(import Foundation\\n)/, `$1${credentialsCode}`);\n\n // Replace the literal with string interpolation\n code = code.replace(pattern, `\"Basic \\\\(credentials)\"`);\n\n return code;\n}\n","import type { ApiDefinition, CodeSnippet, EndpointDefinition, ExampleEndpointCall } from \"../latest\";\nimport {\n getAuthHeaderName,\n getFirstAuthScheme,\n shouldRegenerateCurlSnippet,\n shouldRegenerateHttpSnippet\n} from \"./auth-scheme\";\nimport { HTTP_SNIPPET_CLIENTS } from \"./constants\";\nimport { convertToCurl } from \"./curl\";\nimport { getHarRequest, getHarRequestBasicAuth } from \"./get-har-request\";\nimport { type BasicAuthInfo, HttpSnippetConverter } from \"./HttpSnippetConverter\";\nimport { toSnippetHttpRequest } from \"./SnippetHttpRequest\";\nimport type { HttpSnippetLanguage, SnippetGenerationFlags, SnippetGenerators } from \"./types\";\n\n/**\n * Options for HTTP snippet generation\n */\nexport interface HttpSnippetOptions {\n /** HTTP snippet generation flags */\n flags: SnippetGenerationFlags;\n /** Dynamic generators to check for available SDK snippets (optional) */\n dynamicGenerators?: SnippetGenerators;\n /** Existing snippets that should not be regenerated */\n existingSnippets?: Record<string, CodeSnippet[]>;\n}\n\n/**\n * Generate a curl snippet for an endpoint example\n */\nexport function generateCurlSnippet(\n apiDefinition: ApiDefinition,\n endpoint: EndpointDefinition,\n example: ExampleEndpointCall\n): CodeSnippet {\n const authScheme = getFirstAuthScheme(endpoint, apiDefinition.auths);\n const curlCode = convertToCurl(toSnippetHttpRequest(endpoint, example, authScheme));\n\n return {\n name: undefined,\n language: \"curl\",\n install: undefined,\n code: curlCode,\n generated: true,\n description: undefined\n };\n}\n\n/**\n * Generate HTTP snippets for an endpoint example using httpsnippet-lite\n */\nexport async function generateHttpSnippets(\n apiDefinition: ApiDefinition,\n endpoint: EndpointDefinition,\n example: ExampleEndpointCall,\n options: HttpSnippetOptions\n): Promise<CodeSnippet[]> {\n const { flags, dynamicGenerators = {}, existingSnippets = {} } = options;\n const snippets: CodeSnippet[] = [];\n\n const isHttpSnippetsEnabled = flags.httpSnippets !== false;\n const httpSnippetLanguages = Array.isArray(flags.httpSnippets) ? flags.httpSnippets : null;\n\n // Check if a language should be included based on the httpSnippets configuration\n const shouldIncludeLanguage = (language: string): boolean => {\n if (!isHttpSnippetsEnabled) {\n return language === \"curl\";\n }\n return httpSnippetLanguages == null || httpSnippetLanguages.includes(language as HttpSnippetLanguage);\n };\n\n // Generate or regenerate curl snippet if needed\n // Regenerate if existing snippet has wrong auth header (targeted repair for pre-stored snippets)\n // Also regenerate if basic auth uses -H \"Authorization: Basic\" instead of -u flag\n const authScheme = getFirstAuthScheme(endpoint, apiDefinition.auths);\n const expectedHeaderName = getAuthHeaderName(authScheme);\n const needsCurlRegeneration = shouldRegenerateCurlSnippet(\n existingSnippets.curl,\n expectedHeaderName,\n authScheme,\n endpoint\n );\n\n if (needsCurlRegeneration && shouldIncludeLanguage(\"curl\")) {\n snippets.push(generateCurlSnippet(apiDefinition, endpoint, example));\n }\n\n // Generate HTTP snippets for other languages\n if (isHttpSnippetsEnabled) {\n const harRequest = getHarRequest(endpoint, example, apiDefinition.auths, example.requestBody ?? undefined);\n const basicAuth: BasicAuthInfo | undefined = getHarRequestBasicAuth(endpoint, apiDefinition.auths);\n const converter = new HttpSnippetConverter(harRequest, basicAuth);\n\n for (const { clientId, targetId } of HTTP_SNIPPET_CLIENTS) {\n // Skip if snippet already exists and is user-provided; always regenerate auto-generated snippets\n if (existingSnippets[targetId]?.length && !shouldRegenerateHttpSnippet(existingSnippets[targetId])) {\n continue;\n }\n\n // Skip if dynamic SDK snippets are available for this language\n if (dynamicGenerators[targetId === \"javascript\" ? \"typescript\" : targetId]) {\n continue;\n }\n\n // Skip JavaScript if TypeScript snippets exist and alwaysEnableJavaScriptFetch is disabled\n if (\n targetId === \"javascript\" &&\n existingSnippets.typescript?.length &&\n !flags.alwaysEnableJavaScriptFetch\n ) {\n continue;\n }\n\n // Check if this language should be included\n if (!shouldIncludeLanguage(targetId)) {\n continue;\n }\n\n const code = await converter.convert(targetId, clientId);\n\n if (code != null) {\n snippets.push({\n name: undefined,\n language: targetId,\n install: undefined,\n code,\n generated: true,\n description: undefined\n });\n }\n }\n }\n\n return snippets;\n}\n\n/**\n * Check if a language should be included for HTTP snippet generation based on flags\n */\nexport function shouldIncludeHttpSnippetLanguage(\n language: string,\n flags: Pick<SnippetGenerationFlags, \"httpSnippets\">\n): boolean {\n const isHttpSnippetsEnabled = flags.httpSnippets !== false;\n const httpSnippetLanguages = Array.isArray(flags.httpSnippets) ? flags.httpSnippets : null;\n\n if (!isHttpSnippetsEnabled) {\n return language === \"curl\";\n }\n return httpSnippetLanguages == null || httpSnippetLanguages.includes(language as HttpSnippetLanguage);\n}\n","import type { ApiDefinition, AuthScheme, CodeSnippet, EndpointDefinition, ExampleEndpointCall } from \"../latest\";\nimport { getFirstAuthScheme } from \"./auth-scheme\";\nimport type { SnippetGenerators } from \"./types\";\n\n/**\n * Build the auth object for SDK snippet generators based on the auth scheme.\n * Returns a properly formatted auth object compatible with @fern-api/snippets generators.\n */\nfunction buildSnippetAuth(authScheme: AuthScheme | undefined): any {\n if (!authScheme) {\n return undefined;\n }\n\n switch (authScheme.type) {\n case \"bearerAuth\":\n return {\n type: \"bearer\",\n token: \"YOUR_TOKEN_HERE\"\n };\n case \"basicAuth\": {\n const userLabel = (authScheme.usernameName ?? \"username\").toUpperCase().replace(/\\s+/g, \"_\");\n const passLabel = (authScheme.passwordName ?? \"password\").toUpperCase().replace(/\\s+/g, \"_\");\n return {\n type: \"basic\",\n username: `YOUR_${userLabel}_HERE`,\n ...(authScheme.passwordAlwaysEmpty ? {} : { password: `YOUR_${passLabel}_HERE` })\n };\n }\n case \"header\":\n return {\n type: \"header\",\n value: \"YOUR_API_KEY_HERE\"\n };\n case \"oAuth\":\n // OAuth uses bearer token format for SDK snippets\n return {\n type: \"bearer\",\n token: \"YOUR_TOKEN_HERE\"\n };\n default:\n return undefined;\n }\n}\n\n/**\n * Build the SDK snippet request from an endpoint example.\n * Returns a request object compatible with @fern-api/snippets generators.\n */\nexport function buildSdkSnippetRequest(\n apiDefinition: ApiDefinition,\n endpoint: EndpointDefinition,\n example: ExampleEndpointCall\n): any {\n // Build auth configuration using multiAuth-aware selection\n const authDefinition = getFirstAuthScheme(endpoint, apiDefinition.auths);\n const auth = buildSnippetAuth(authDefinition);\n\n // Process request body (filter out empty objects)\n let bodyValue: unknown = undefined;\n if (example.requestBody != null && example.requestBody.type === \"json\" && example.requestBody.value) {\n if (typeof example.requestBody.value === \"object\" && !Array.isArray(example.requestBody.value)) {\n const filteredValue = Object.fromEntries(\n Object.entries(example.requestBody.value).filter(([_, valueObj]) => {\n // Keep arrays and primitive values\n if (Array.isArray(valueObj) || typeof valueObj !== \"object\" || valueObj == null) {\n return true;\n }\n // For objects, only filter out empty objects without a value property\n return Object.keys(valueObj).length > 0;\n })\n );\n bodyValue = filteredValue;\n } else {\n bodyValue = example.requestBody.value;\n }\n }\n\n return {\n baseURL: undefined,\n environment: undefined,\n auth,\n pathParameters: example.pathParameters,\n queryParameters: example.queryParameters,\n headers: example.headers,\n requestBody: bodyValue,\n method: endpoint.method\n };\n}\n\n/**\n * Generate SDK snippets for an endpoint example using the provided generators\n */\nexport function generateSdkSnippets(\n apiDefinition: ApiDefinition,\n endpoint: EndpointDefinition,\n example: ExampleEndpointCall,\n generators: SnippetGenerators\n): CodeSnippet[] {\n if (endpoint.method === \"HEAD\") {\n return [];\n }\n\n const snippets: CodeSnippet[] = [];\n const request = buildSdkSnippetRequest(apiDefinition, endpoint, example);\n\n for (const [language, generator] of Object.entries(generators)) {\n if (!generator) {\n continue;\n }\n\n try {\n const result = generator.generateSync(request);\n\n if (result?.snippet) {\n snippets.push({\n name: undefined,\n language,\n install: undefined,\n code: result.snippet,\n generated: true,\n description: undefined\n });\n }\n } catch (error) {\n console.error(`Error generating ${language} snippet:`, error);\n }\n }\n\n return snippets;\n}\n\n/**\n * Generate a single SDK snippet for a specific language\n */\nexport function generateSdkSnippetForLanguage(\n apiDefinition: ApiDefinition,\n endpoint: EndpointDefinition,\n example: ExampleEndpointCall,\n generators: SnippetGenerators,\n language: string\n): CodeSnippet | undefined {\n if (endpoint.method === \"HEAD\") {\n return undefined;\n }\n\n const generator = generators[language];\n if (!generator) {\n return undefined;\n }\n\n const request = buildSdkSnippetRequest(apiDefinition, endpoint, example);\n\n try {\n const result = generator.generateSync(request);\n\n if (result?.snippet) {\n return {\n name: undefined,\n language,\n install: undefined,\n code: result.snippet,\n generated: true,\n description: undefined\n };\n }\n } catch (error) {\n console.error(`Error generating ${language} snippet:`, error);\n }\n\n return undefined;\n}\n","import type { TargetId } from \"httpsnippet-lite\";\nimport type { DynamicIr } from \"../../client/APIV1Write\";\nimport type { HttpSnippetLanguage } from \"../../orpc-client/shared.js\";\n\n/**\n * Map of language identifiers to their dynamic IR data\n */\nexport type DynamicIRsByLanguage = Record<string, DynamicIr>;\n\n/**\n * Configuration for an HTTP snippet client\n */\nexport interface HTTPSnippetClient {\n targetId: TargetId;\n clientId: string;\n}\n\n/**\n * Flags controlling snippet generation behavior\n */\nexport interface SnippetGenerationFlags {\n /**\n * Controls HTTP snippet generation.\n * - `false`: Only generate curl snippets\n * - `true`: Generate HTTP snippets for all supported languages\n * - `HttpSnippetLanguage[]`: Generate HTTP snippets only for specified languages\n */\n httpSnippets: boolean | HttpSnippetLanguage[];\n\n /**\n * When true, always generate JavaScript fetch snippets even if TypeScript snippets exist\n */\n alwaysEnableJavaScriptFetch: boolean;\n}\n\n/**\n * Supported languages for SDK snippet generation\n */\nexport type SdkSnippetLanguage = \"typescript\" | \"python\" | \"java\" | \"ruby\" | \"swift\" | \"csharp\" | \"go\" | \"php\";\n\nexport const SDK_SNIPPET_LANGUAGES: SdkSnippetLanguage[] = [\n \"typescript\",\n \"python\",\n \"java\",\n \"ruby\",\n \"swift\",\n \"csharp\",\n \"go\",\n \"php\"\n];\n\n/**\n * Map of language identifiers to their snippet generators.\n * Uses `any` type because the actual generator type from @fern-api/snippets\n * has complex type requirements that we don't need to enforce here.\n */\nexport type SnippetGenerators = Record<string, any>;\n\nexport type { HttpSnippetLanguage };\n","import identity from \"@fern-api/ui-core-utils/identity\";\nimport visitDiscriminatedUnion from \"@fern-api/ui-core-utils/visitDiscriminatedUnion\";\n\nimport type * as Latest from \"./latest\";\n\n/**\n * Visitor for API definitions.\n * This is used to traverse the API definition and apply functions to each node.\n */\nexport interface ApiDefinitionVisitor {\n // endpoints\n EndpointDefinition(endpoint: Latest.EndpointDefinition, key: string): Latest.EndpointDefinition;\n HttpRequest(request: Latest.HttpRequest, key: string): Latest.HttpRequest;\n HttpResponse(response: Latest.HttpResponse, key: string): Latest.HttpResponse;\n ErrorResponse(error: Latest.ErrorResponse, key: string): Latest.ErrorResponse;\n ExampleEndpointCall(example: Latest.ExampleEndpointCall, key: string): Latest.ExampleEndpointCall;\n CodeSnippet(snippet: Latest.CodeSnippet, key: string): Latest.CodeSnippet;\n ErrorExample(error: Latest.ErrorExample, key: string): Latest.ErrorExample;\n\n // webhooks\n WebhookDefinition(webhook: Latest.WebhookDefinition, key: string): Latest.WebhookDefinition;\n WebhookPayload(payload: Latest.WebhookPayload, key: string): Latest.WebhookPayload;\n\n // websockets\n WebSocketChannel(channel: Latest.WebSocketChannel, key: string): Latest.WebSocketChannel;\n WebSocketMessage(message: Latest.WebSocketMessage, key: string): Latest.WebSocketMessage;\n ExampleWebSocketSession(session: Latest.ExampleWebSocketSession, key: string): Latest.ExampleWebSocketSession;\n\n // types\n TypeDefinition(type: Latest.TypeDefinition, key: string): Latest.TypeDefinition;\n TypeShape(shape: Latest.TypeShape, key: string): Latest.TypeShape;\n WebhookPayloadShape(shape: Latest.WebhookPayloadShape, key: string): Latest.WebhookPayloadShape;\n ObjectType(property: Latest.ObjectType, key: string): Latest.ObjectType;\n ObjectProperty(property: Latest.ObjectProperty, key: string): Latest.ObjectProperty;\n EnumValue(value: Latest.EnumValue, key: string): Latest.EnumValue;\n UndiscriminatedUnionVariant(\n variant: Latest.UndiscriminatedUnionVariant,\n key: string\n ): Latest.UndiscriminatedUnionVariant;\n DiscriminatedUnionVariant(variant: Latest.DiscriminatedUnionVariant, key: string): Latest.DiscriminatedUnionVariant;\n FormDataRequest(request: Latest.FormDataRequest, key: string): Latest.FormDataRequest;\n FormDataField(field: Latest.FormDataField, key: string): Latest.FormDataField;\n FormDataFile(file: Latest.FormDataFile, key: string): Latest.FormDataFile;\n FormDataFiles(files: Latest.FormDataFiles, key: string): Latest.FormDataFiles;\n}\n\nexport class Transformer {\n public static with(visitor: Partial<ApiDefinitionVisitor>): Transformer {\n return new Transformer({\n EndpointDefinition: visitor.EndpointDefinition ?? identity,\n HttpRequest: visitor.HttpRequest ?? identity,\n HttpResponse: visitor.HttpResponse ?? identity,\n ErrorResponse: visitor.ErrorResponse ?? identity,\n ExampleEndpointCall: visitor.ExampleEndpointCall ?? identity,\n CodeSnippet: visitor.CodeSnippet ?? identity,\n ErrorExample: visitor.ErrorExample ?? identity,\n WebhookDefinition: visitor.WebhookDefinition ?? identity,\n WebhookPayload: visitor.WebhookPayload ?? identity,\n WebSocketChannel: visitor.WebSocketChannel ?? identity,\n WebSocketMessage: visitor.WebSocketMessage ?? identity,\n ExampleWebSocketSession: visitor.ExampleWebSocketSession ?? identity,\n TypeDefinition: visitor.TypeDefinition ?? identity,\n TypeShape: visitor.TypeShape ?? identity,\n WebhookPayloadShape: visitor.WebhookPayloadShape ?? identity,\n ObjectType: visitor.ObjectType ?? identity,\n ObjectProperty: visitor.ObjectProperty ?? identity,\n EnumValue: visitor.EnumValue ?? identity,\n UndiscriminatedUnionVariant: visitor.UndiscriminatedUnionVariant ?? identity,\n DiscriminatedUnionVariant: visitor.DiscriminatedUnionVariant ?? identity,\n FormDataRequest: visitor.FormDataRequest ?? identity,\n FormDataField: visitor.FormDataField ?? identity,\n FormDataFile: visitor.FormDataFile ?? identity,\n FormDataFiles: visitor.FormDataFiles ?? identity\n });\n }\n\n public static descriptions(transformer: (description: string, key: string) => string): Transformer {\n function internalTransformer<T extends Latest.WithDescription>(withDescription: T, key: string): T {\n const description =\n withDescription.description != null ? transformer(withDescription.description, key) : undefined;\n return { ...withDescription, description };\n }\n\n return Transformer.with({\n EndpointDefinition: internalTransformer,\n HttpRequest: internalTransformer,\n HttpResponse: internalTransformer,\n ErrorResponse: internalTransformer,\n ExampleEndpointCall: internalTransformer,\n CodeSnippet: internalTransformer,\n ErrorExample: internalTransformer,\n WebhookDefinition: internalTransformer,\n WebhookPayload: internalTransformer,\n WebSocketChannel: internalTransformer,\n WebSocketMessage: internalTransformer,\n ExampleWebSocketSession: internalTransformer,\n TypeDefinition: internalTransformer,\n ObjectProperty: internalTransformer,\n EnumValue: internalTransformer,\n UndiscriminatedUnionVariant: internalTransformer,\n DiscriminatedUnionVariant: internalTransformer,\n FormDataRequest: internalTransformer,\n FormDataField: internalTransformer,\n FormDataFile: internalTransformer,\n FormDataFiles: internalTransformer\n });\n }\n\n /**\n * @internal visible for testing only\n */\n public static keys(collect: (key: string) => void): Transformer {\n function visit<T>(value: T, key: string): T {\n collect(key);\n return value;\n }\n return Transformer.with({\n EndpointDefinition: visit,\n HttpRequest: visit,\n HttpResponse: visit,\n ErrorResponse: visit,\n ExampleEndpointCall: visit,\n CodeSnippet: visit,\n ErrorExample: visit,\n WebhookDefinition: visit,\n WebhookPayload: visit,\n WebSocketChannel: visit,\n WebSocketMessage: visit,\n ExampleWebSocketSession: visit,\n TypeDefinition: visit,\n TypeShape: visit,\n WebhookPayloadShape: visit,\n ObjectType: visit,\n ObjectProperty: visit,\n EnumValue: visit,\n UndiscriminatedUnionVariant: visit,\n DiscriminatedUnionVariant: visit,\n FormDataRequest: visit,\n FormDataField: visit,\n FormDataFile: visit,\n FormDataFiles: visit\n });\n }\n\n private visitor: ApiDefinitionVisitor;\n private constructor(visitor: ApiDefinitionVisitor) {\n this.visitor = this.#wrapVisitor(visitor);\n }\n\n /**\n * Visits an API definition and applies the visitor transformations to each node.\n *\n * This function treats the API Definition as an AST. The purpose is to apply transformations to the \"description\" field of each node.\n *\n * @param api the API definition to visit\n * @param visitor the visitor to apply to the API definition\n * @returns the API definition with the visitor transformations applied\n */\n apiDefinition = (api: Latest.ApiDefinition): Latest.ApiDefinition => {\n const endpoints = Object.entries(api.endpoints).map(([id, endpoint]) => [\n id,\n this.visitor.EndpointDefinition(endpoint, `${api.id}/endpoint/${id}`)\n ]);\n\n const websockets = Object.entries(api.websockets).map(([id, websocket]) => [\n id,\n this.visitor.WebSocketChannel(websocket, `${api.id}/websocket/${id}`)\n ]);\n\n const webhooks = Object.entries(api.webhooks).map(([id, webhook]) => [\n id,\n this.visitor.WebhookDefinition(webhook, `${api.id}/webhoook/${id}`)\n ]);\n\n const types = Object.entries(api.types).map(([id, type]) => [\n id,\n this.visitor.TypeDefinition(type, `${api.id}/type-definition/${id}`)\n ]);\n\n const globalHeaders =\n api.globalHeaders?.map((header) =>\n this.visitor.ObjectProperty(header, `${api.id}/global-headers/${header.key}`)\n ) ?? [];\n\n return {\n id: api.id,\n apiName: api.apiName,\n endpoints: Object.fromEntries(endpoints),\n websockets: Object.fromEntries(websockets),\n webhooks: Object.fromEntries(webhooks),\n graphqlOperations: api.graphqlOperations,\n types: Object.fromEntries(types),\n globalHeaders,\n auths: api.auths,\n subpackages: api.subpackages,\n snippetsConfiguration: api.snippetsConfiguration\n };\n };\n\n #wrapVisitor = (visitor: ApiDefinitionVisitor): ApiDefinitionVisitor => {\n const innerVisitor: ApiDefinitionVisitor = {\n /**\n * The following types do not have any nested types that need to be visited.\n */\n\n CodeSnippet: visitor.CodeSnippet,\n ErrorExample: visitor.ErrorExample,\n ExampleWebSocketSession: visitor.ExampleWebSocketSession,\n ObjectProperty: visitor.ObjectProperty,\n EnumValue: visitor.EnumValue,\n UndiscriminatedUnionVariant: visitor.UndiscriminatedUnionVariant,\n FormDataFile: visitor.FormDataFile,\n FormDataFiles: visitor.FormDataFiles,\n\n /**\n * The following types have nested types that need to be visited.\n */\n\n EndpointDefinition: (endpoint, key) => visitor.EndpointDefinition(this.endpoint(endpoint, key), key),\n HttpRequest: (request, key) => visitor.HttpRequest(this.httpRequest(request, key), key),\n HttpResponse: (response, key) => visitor.HttpResponse(this.httpResponse(response, key), key),\n ErrorResponse: (error, key) => visitor.ErrorResponse(this.errorResponse(error, key), key),\n ExampleEndpointCall: (example, key) =>\n visitor.ExampleEndpointCall(this.exampleEndpointCall(example, key), key),\n WebhookDefinition: (webhook, key) => visitor.WebhookDefinition(this.webhookDefinition(webhook, key), key),\n WebhookPayload: (payload, key) => visitor.WebhookPayload(this.webhookPayload(payload, key), key),\n WebSocketChannel: (channel, key) => visitor.WebSocketChannel(this.webSocketChannel(channel, key), key),\n WebSocketMessage: (message, key) => visitor.WebSocketMessage(this.webSocketMessage(message, key), key),\n TypeDefinition: (type, key) => visitor.TypeDefinition(this.typeDefinition(type, key), key),\n TypeShape: (shape, key) => visitor.TypeShape(this.typeShape(shape, key), key),\n WebhookPayloadShape: (shape, key) => visitor.WebhookPayloadShape(this.webhookPayloadShape(shape, key), key),\n ObjectType: (type, key) => visitor.ObjectType(this.objectType(type, key), key),\n DiscriminatedUnionVariant: (variant, key) =>\n visitor.DiscriminatedUnionVariant(this.objectType(variant, key), key),\n FormDataRequest: (request, key) => visitor.FormDataRequest(this.formDataRequest(request, key), key),\n FormDataField: (field, key) => visitor.FormDataField(this.formDataField(field, key), key)\n };\n return innerVisitor;\n };\n\n endpoint = (endpoint: Latest.EndpointDefinition, parentKey: string): Latest.EndpointDefinition => {\n const pathParameters =\n endpoint.pathParameters?.map((param) => ({\n ...this.visitor.ObjectProperty(param, `${parentKey}/path/${param.key}`),\n explode: param.explode\n })) ?? [];\n const queryParameters =\n endpoint.queryParameters?.map((param) => ({\n ...this.visitor.ObjectProperty(param, `${parentKey}/query/${param.key}`),\n explode: param.explode\n })) ?? [];\n const requestHeaders =\n endpoint.requestHeaders?.map((param) =>\n this.visitor.ObjectProperty(param, `${parentKey}/requestHeader/${param.key}`)\n ) ?? [];\n const responseHeaders =\n endpoint.responseHeaders?.map((param) =>\n this.visitor.ObjectProperty(param, `${parentKey}/responseHeader/${param.key}`)\n ) ?? [];\n const requests = endpoint.requests?.map((request, i) =>\n // this has changed\n this.visitor.HttpRequest(request, `${parentKey}/request/${i}`)\n );\n const responses = endpoint.responses?.map((response, i) =>\n // this has changed discretely\n this.visitor.HttpResponse(response, `${parentKey}/response/${i}/${response.statusCode}`)\n );\n const errors =\n endpoint.errors?.map((error, i) =>\n this.visitor.ErrorResponse(error, `${parentKey}/error/${i}/${error.statusCode}`)\n ) ?? [];\n const examples =\n endpoint.examples?.map((example, i) =>\n this.visitor.ExampleEndpointCall(example, `${parentKey}/example/${i}`)\n ) ?? [];\n\n return {\n ...endpoint,\n pathParameters: pathParameters.length > 0 ? pathParameters : undefined,\n queryParameters: queryParameters.length > 0 ? queryParameters : undefined,\n requestHeaders: requestHeaders.length > 0 ? requestHeaders : undefined,\n responseHeaders: responseHeaders.length > 0 ? responseHeaders : undefined,\n requests,\n responses,\n errors: errors.length > 0 ? errors : undefined,\n examples: examples.length > 0 ? examples : undefined\n };\n };\n\n httpRequest = (request: Latest.HttpRequest, parentKey: string): Latest.HttpRequest => {\n const body = visitDiscriminatedUnion(request.body)._visit<Latest.HttpRequestBodyShape>({\n object: (value) => ({\n ...value,\n ...this.visitor.ObjectType(value, `${parentKey}/object`)\n }),\n alias: identity,\n bytes: identity,\n formData: (value) => ({\n ...value,\n ...this.visitor.FormDataRequest(value, `${parentKey}/formdata`)\n })\n });\n return { ...request, body };\n };\n\n formDataField = (field: Latest.FormDataField, parentKey: string): Latest.FormDataField => {\n return visitDiscriminatedUnion(field)._visit<Latest.FormDataField>({\n file: (value) => ({\n ...value,\n ...this.visitor.FormDataFile(value, `${parentKey}/file/${value.key}`)\n }),\n files: (value) => ({\n ...value,\n ...this.visitor.FormDataFiles(value, `${parentKey}/files/${value.key}`)\n }),\n property: (value) => ({\n ...value,\n ...this.visitor.ObjectProperty(value, `${parentKey}/property/${value.key}`)\n })\n });\n };\n\n httpResponse = (response: Latest.HttpResponse, parentKey: string): Latest.HttpResponse => {\n const body = visitDiscriminatedUnion(response.body)._visit<Latest.HttpResponseBodyShape>({\n object: (value) => ({\n ...value,\n ...this.visitor.ObjectType(value, `${parentKey}/object`)\n }),\n alias: identity,\n fileDownload: identity,\n streamingText: identity,\n stream: (value) => ({\n ...value,\n shape: this.visitor.TypeShape(value.shape, `${parentKey}/stream/shape`)\n }),\n empty: identity\n });\n return { ...response, body };\n };\n\n objectType = <T extends Latest.ObjectType>(type: T, parentKey: string): T => {\n const properties = type.properties.map((prop) =>\n this.visitor.ObjectProperty(prop, `${parentKey}/property/${prop.key}`)\n );\n return { ...type, properties };\n };\n\n errorResponse = (error: Latest.ErrorResponse, parentKey: string): Latest.ErrorResponse => {\n const shape = error.shape ? this.visitor.TypeShape(error.shape, `${parentKey}/error/shape`) : undefined;\n const examples =\n error.examples?.map((example, i) => this.visitor.ErrorExample(example, `${parentKey}/example/${i}`)) ?? [];\n return {\n ...error,\n shape,\n examples: examples.length > 0 ? examples : undefined\n };\n };\n\n exampleEndpointCall = (example: Latest.ExampleEndpointCall, parentKey: string): Latest.ExampleEndpointCall => {\n const snippetsEntries = Object.entries(example.snippets ?? {})\n .map(\n ([language, snippets]) =>\n [\n language,\n snippets.map((snippet, i) =>\n this.visitor.CodeSnippet(snippet, `${parentKey}/snippet/${language}/${i}`)\n )\n ] as const\n )\n .filter(([, snippets]) => snippets.length > 0);\n\n const snippets = Object.fromEntries(snippetsEntries);\n return {\n ...example,\n snippets: snippetsEntries.length > 0 ? snippets : undefined\n };\n };\n\n webhookDefinition = (webhook: Latest.WebhookDefinition, parentKey: string): Latest.WebhookDefinition => {\n const payload =\n webhook.payloads?.[0] != null\n ? this.visitor.WebhookPayload(webhook.payloads[0], `${parentKey}/payload`)\n : undefined;\n const headers =\n webhook.headers?.map((header) =>\n this.visitor.ObjectProperty(header, `${parentKey}/header/${header.key}`)\n ) ?? [];\n const responses = webhook.responses?.map((response, i) =>\n this.visitor.HttpResponse(response, `${parentKey}/response/${i}/${response.statusCode}`)\n );\n return {\n ...webhook,\n payloads: payload != null ? [payload] : undefined,\n headers: headers.length > 0 ? headers : undefined,\n responses\n };\n };\n\n webhookPayload = (payload: Latest.WebhookPayload, parentKey: string): Latest.WebhookPayload => {\n const shape = this.visitor.WebhookPayloadShape(payload.shape, `${parentKey}/shape`);\n return { ...payload, shape };\n };\n\n webhookPayloadShape = (shape: Latest.WebhookPayloadShape, parentKey: string): Latest.WebhookPayloadShape => {\n return visitDiscriminatedUnion(shape)._visit<Latest.WebhookPayloadShape>({\n object: (value) => ({\n ...value,\n ...this.visitor.ObjectType(value, `${parentKey}/object`)\n }),\n alias: identity,\n formData: (value) => ({\n ...value,\n ...this.visitor.FormDataRequest(value, `${parentKey}/formData`)\n })\n });\n };\n\n webSocketChannel = (channel: Latest.WebSocketChannel, parentKey: string): Latest.WebSocketChannel => {\n const pathParameters =\n channel.pathParameters?.map((param) => ({\n ...this.visitor.ObjectProperty(param, `${parentKey}/path/${param.key}`),\n explode: param.explode\n })) ?? [];\n const queryParameters =\n channel.queryParameters?.map((param) => ({\n ...this.visitor.ObjectProperty(param, `${parentKey}/query/${param.key}`),\n explode: param.explode\n })) ?? [];\n const requestHeaders =\n channel.requestHeaders?.map((param) =>\n this.visitor.ObjectProperty(param, `${parentKey}/requestHeader/${param.key}`)\n ) ?? [];\n const messages = channel.messages.map((message) =>\n this.visitor.WebSocketMessage(message, `${parentKey}/message/${message.origin}/${message.type}`)\n );\n const examples =\n channel.examples?.map((example, i) =>\n this.visitor.ExampleWebSocketSession(example, `${parentKey}/example/${i}`)\n ) ?? [];\n return {\n ...channel,\n pathParameters: pathParameters.length > 0 ? pathParameters : undefined,\n queryParameters: queryParameters.length > 0 ? queryParameters : undefined,\n requestHeaders: requestHeaders.length > 0 ? requestHeaders : undefined,\n messages,\n examples: examples.length > 0 ? examples : undefined\n };\n };\n\n webSocketMessage = (message: Latest.WebSocketMessage, parentKey: string): Latest.WebSocketMessage => {\n const body = this.visitor.TypeShape(message.body, `${parentKey}/body`);\n return { ...message, body };\n };\n\n typeShape = (shape: Latest.TypeShape, parentKey: string): Latest.TypeShape => {\n return visitDiscriminatedUnion(shape)._visit<Latest.TypeShape>({\n object: (value) => ({\n ...value,\n ...this.visitor.ObjectType(value, `${parentKey}/object`)\n }),\n alias: identity,\n enum: (value) => ({\n ...value,\n values: value.values.map((enumValue) =>\n this.visitor.EnumValue(enumValue, `${parentKey}/enum/value/${enumValue.value}`)\n )\n }),\n undiscriminatedUnion: (value) => ({\n ...value,\n variants: value.variants.map((variant, i) =>\n this.visitor.UndiscriminatedUnionVariant(variant, `${parentKey}/undiscriminatedUnion/variant/${i}`)\n )\n }),\n discriminatedUnion: (value) => ({\n ...value,\n variants: value.variants.map((variant) =>\n this.visitor.DiscriminatedUnionVariant(\n variant,\n `${parentKey}/discriminatedUnion/variant/${variant.discriminantValue}`\n )\n )\n })\n });\n };\n\n formDataRequest = (request: Latest.FormDataRequest, parentKey: string): Latest.FormDataRequest => {\n return {\n ...request,\n fields: request.fields.map((field) => this.visitor.FormDataField(field, `${parentKey}/field/${field.key}`))\n };\n };\n\n typeDefinition = (type: Latest.TypeDefinition, parentKey: string): Latest.TypeDefinition => {\n return {\n ...type,\n shape: this.visitor.TypeShape(type.shape, `${parentKey}/shape`)\n };\n };\n}\n"],"mappings":"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AAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,IAAM,YAA4B,oBAAI,IAAI;AAAA,EACxC,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL,CAAC;;;ACzFD,IAAM,WAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC1DA,IAAM,OAAO;AACb,IAAM,QAAQ,IAAI,OAAO,yCAAyC,IAAI,OAAO,IAAI,MAAM,IAAI,cAAc,IAAI,MAAM,GAAG;AACtH,IAAM,kBAAkB,CAAC,cAAc,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;AAC/F,SAAS,WAAW,OAAO;AACzB,QAAM,iBAAiB,MAAM,CAAC;AAC9B,MAAI,KAAK,KAAK,cAAc,GAAG;AAC7B,WAAO,MAAM,MAAM,CAAC;AAAA,EACtB;AACA,MAAI,SAAS,KAAK,cAAc,GAAG;AACjC,WAAO;AAAA,EACT;AACA,SAAO;AACT;AACA,IAAI,cAAc,CAAC,KAAK,UAAU,CAAC,MAAM;AACvC,QAAM,IAAI,YAAY,EAAE,QAAQ,OAAO,CAAC,GAAG,OAAO,IAAI,QAAQ,OAAO,MAAM,QAAQA,YAAW;AAC5F,UAAM,aAAa,EAAE,SAAS,UAAUA,QAAO;AAC/C,UAAM,cAAc,WAAW,CAAC;AAChC,QAAI,CAAC,aAAa;AAChB,aAAO;AAAA,IACT;AACA,QAAI,CAAC,QAAQ;AACX,YAAM,YAAY,QAAQ;AAC1B,UAAI,UAAU,IAAI,SAAS,KAAK,CAAC,YAAY;AAC3C,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO,QAAQ,SAAS,QAAQ,YAAY,IAAI;AAAA,EAClD,CAAC;AACD,QAAM,iBAAiB,QAAQ,WAAW,CAAC;AAC3C,QAAM,UAAU,CAAC,GAAG,UAAU,GAAG,cAAc;AAC/C,QAAM,gBAAgB,gBAAgB,OAAO;AAC7C,gBAAc,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM;AACtC,UAAM,IAAI,QAAQ,SAAS,CAAC;AAAA,EAC9B,CAAC;AACD,SAAO;AACT;;;ACrCO,IAAM,iBAAiB;;EAE1B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;;EAGA;EACA;EACA;EACA;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","names":["string","z","z","z","object","typeId","properties","toRet","union","import_object","import_array","import_ts_essentials","stringifiedValue","value","qs","import_array","import_ts_essentials","import_qs","qs","urljoin","value","import_array","shape","object","union","message","example","snippets"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/api-definition/index.ts","../../../src/api-definition/const.ts","../../../../commons/core-utils/src/assertNever.ts","../../../../commons/core-utils/src/identity.ts","../../../../commons/core-utils/src/isNonNullish.ts","../../../../commons/core-utils/src/objects/isPlainObject.ts","../../../../commons/core-utils/src/sanitizeUrl.ts","../../../../../node_modules/.pnpm/title@4.0.1/node_modules/title/dist/esm/lower-case.js","../../../../../node_modules/.pnpm/title@4.0.1/node_modules/title/dist/esm/specials.js","../../../../../node_modules/.pnpm/title@4.0.1/node_modules/title/dist/esm/index.js","../../../../commons/core-utils/src/specialTokens.ts","../../../../commons/core-utils/src/titleCase.ts","../../../../commons/core-utils/src/unknownToString.ts","../../../../commons/core-utils/src/visitDiscriminatedUnion.ts","../../../src/api-definition/unwrap.ts","../../../src/orpc-client/api/contract-latest.ts","../../../src/orpc-client/api/shared.ts","../../../src/orpc-client/shared.ts","../../../src/orpc-client/api/contract-register.ts","../../../src/api-definition/availability.ts","../../../src/api-definition/collect-referenced-types.ts","../../../src/api-definition/collect-type-tree.ts","../../../src/api-definition/typeid-visitor.ts","../../../src/api-definition/prune.ts","../../../src/api-definition/endpoint-context.ts","../../../src/api-definition/endpoint-path-literal.ts","../../../src/api-definition/join.ts","../../../src/api-definition/lang.ts","../../../src/api-definition/migrators/v1ToV2.ts","../../../src/navigation/consts.ts","../../../src/api-definition/snippets/curl.ts","../../../src/utils/obfuscate-secret.ts","../../../src/api-definition/wrapOpenRPCRequest.ts","../../../src/api-definition/snippets/multipart-filename-placeholder.ts","../../../src/api-definition/snippets/SnippetHttpRequest.ts","../../../src/api-definition/url.ts","../../../src/api-definition/sort-keys.ts","../../../src/api-definition/status-message.ts","../../../src/api-definition/snippets/constants.ts","../../../src/api-definition/snippets/auth-scheme.ts","../../../src/api-definition/snippets/get-har-request.ts","../../../src/api-definition/snippets/graphql-snippets.ts","../../../src/api-definition/snippets/HttpSnippetConverter.ts","../../../src/api-definition/snippets/http-snippets.ts","../../../src/api-definition/snippets/sdk-snippets.ts","../../../src/api-definition/snippets/types.ts","../../../src/api-definition/transformer.ts"],"sourcesContent":["export * from \"./collect-referenced-types\";\nexport * from \"./collect-type-tree\";\nexport * from \"./endpoint-context\";\nexport * from \"./endpoint-path-literal\";\nexport * from \"./join\";\nexport * from \"./lang\";\nexport * from \"./latest\";\nexport * from \"./migrators/v1ToV2\";\nexport * from \"./prune\";\nexport * from \"./snippets\";\nexport * from \"./status-message\";\nexport * from \"./transformer\";\nexport * from \"./types\";\nexport * from \"./unwrap\";\nexport * from \"./url\";\nexport * from \"./wrapOpenRPCRequest\";\n","/**\n * The maximum number of times to loop while unwrapping a type reference.\n * This may need to be increased if the API definition contains extremely deeply nested type references.\n */\nexport const LOOP_TOLERANCE = 100;\n\n/**\n * The maximum number of times to loop while expanding type IDs.\n * Since there can be many type ids to expand, this number is an order of magnitude larger than `LOOP_TOLERANCE`.\n */\nexport const LARGE_LOOP_TOLERANCE = 100 ** 2;\n","export function assertNever(x: never): never {\n throw new Error(\"Unexpected value: \" + JSON.stringify(x));\n}\n\nexport function assertNeverNoThrow(_: never): void {}\n\nexport default assertNever;\n","export function identity<T>(value: T): T {\n return value;\n}\n\nexport default identity;\n","export function isNonNullish<T>(x: T | null | undefined): x is T {\n return x != null;\n}\n\nexport function assertNonNullish<T>(x: T | null | undefined, message?: string): asserts x is T {\n if (x == null) {\n throw new Error(message ?? \"Value is null or undefined\");\n }\n}\n","// https://github.com/lodash/lodash/blob/master/isPlainObject.js\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n if (!isObjectLike(value) || String(value) !== \"[object Object]\") {\n return false;\n }\n if (Object.getPrototypeOf(value) == null) {\n return true;\n }\n let proto = value;\n while (Object.getPrototypeOf(proto) != null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n}\n\nfunction isObjectLike(value: unknown) {\n return typeof value === \"object\" && value != null;\n}\n\nexport default isPlainObject;\n","/**\n * validates and sanitizes a base URL.\n * returns null if the URL cannot be coerced into a valid URL.\n */\nexport function sanitizeUrl(url: string | undefined): string | undefined {\n if (!url) {\n return undefined;\n }\n\n // handle protocol-relative URLs (starting with //)\n if (url.startsWith(\"//\")) {\n try {\n const parsedUrl = new URL(`https:${url}`);\n return parsedUrl.toString();\n } catch {\n return undefined;\n }\n }\n\n // handle URLs without protocol\n if (\n !url.startsWith(\"http://\") &&\n !url.startsWith(\"https://\") &&\n !url.startsWith(\"wss://\") &&\n !url.startsWith(\"ws://\") &&\n !url.startsWith(\"mailto:\") &&\n !url.startsWith(\"tel:\")\n ) {\n try {\n const parsedUrl = new URL(`https://${url}`);\n return parsedUrl.toString();\n } catch {\n return undefined;\n }\n }\n\n // validate complete URLs\n try {\n const parsedUrl = new URL(url);\n return parsedUrl.toString();\n } catch {\n return undefined;\n }\n}\n","const conjunctions = [\n \"for\",\n \"and\",\n \"nor\",\n \"but\",\n \"or\",\n \"yet\",\n \"so\"\n];\nconst articles = [\n \"a\",\n \"an\",\n \"the\"\n];\nconst prepositions = [\n \"aboard\",\n \"about\",\n \"above\",\n \"across\",\n \"after\",\n \"against\",\n \"along\",\n \"amid\",\n \"among\",\n \"anti\",\n \"around\",\n \"as\",\n \"at\",\n \"before\",\n \"behind\",\n \"below\",\n \"beneath\",\n \"beside\",\n \"besides\",\n \"between\",\n \"beyond\",\n \"but\",\n \"by\",\n \"concerning\",\n \"considering\",\n \"despite\",\n \"down\",\n \"during\",\n \"except\",\n \"excepting\",\n \"excluding\",\n \"following\",\n \"for\",\n \"from\",\n \"in\",\n \"inside\",\n \"into\",\n \"like\",\n \"minus\",\n \"near\",\n \"of\",\n \"off\",\n \"on\",\n \"onto\",\n \"opposite\",\n \"over\",\n \"past\",\n \"per\",\n \"plus\",\n \"regarding\",\n \"round\",\n \"save\",\n \"since\",\n \"than\",\n \"through\",\n \"to\",\n \"toward\",\n \"towards\",\n \"under\",\n \"underneath\",\n \"unlike\",\n \"until\",\n \"up\",\n \"upon\",\n \"versus\",\n \"via\",\n \"with\",\n \"within\",\n \"without\"\n];\nconst lowerCase = /* @__PURE__ */ new Set([\n ...conjunctions,\n ...articles,\n ...prepositions\n]);\nexport {\n lowerCase\n};\n","const specials = [\n \"ZEIT\",\n \"ZEIT Inc.\",\n \"Vercel\",\n \"Vercel Inc.\",\n \"CLI\",\n \"API\",\n \"HTTP\",\n \"HTTPS\",\n \"JSX\",\n \"DNS\",\n \"URL\",\n \"now.sh\",\n \"now.json\",\n \"vercel.app\",\n \"vercel.json\",\n \"CI\",\n \"CD\",\n \"CDN\",\n \"package.json\",\n \"package.lock\",\n \"yarn.lock\",\n \"GitHub\",\n \"GitLab\",\n \"CSS\",\n \"Sass\",\n \"JS\",\n \"JavaScript\",\n \"TypeScript\",\n \"HTML\",\n \"WordPress\",\n \"Next.js\",\n \"Node.js\",\n \"Webpack\",\n \"Docker\",\n \"Bash\",\n \"Kubernetes\",\n \"SWR\",\n \"TinaCMS\",\n \"UI\",\n \"UX\",\n \"TS\",\n \"TSX\",\n \"iPhone\",\n \"iPad\",\n \"watchOS\",\n \"iOS\",\n \"iPadOS\",\n \"macOS\",\n \"PHP\",\n \"composer.json\",\n \"composer.lock\",\n \"CMS\",\n \"SQL\",\n \"C\",\n \"C#\",\n \"GraphQL\",\n \"GraphiQL\",\n \"JWT\",\n \"JWTs\"\n];\nexport {\n specials\n};\n","import { lowerCase } from \"./lower-case.js\";\nimport { specials } from \"./specials.js\";\nconst word = `[^\\\\s'\\u2019\\\\(\\\\)!?;:\"-]`;\nconst regex = new RegExp(`(?:(?:(\\\\s?(?:^|[.\\\\(\\\\)!?;:\"-])\\\\s*)(${word}))|(${word}))(${word}*[\\u2019']*${word}*)`, \"g\");\nconst convertToRegExp = (specials2) => specials2.map((s) => [new RegExp(`\\\\b${s}\\\\b`, \"gi\"), s]);\nfunction parseMatch(match) {\n const firstCharacter = match[0];\n if (/\\s/.test(firstCharacter)) {\n return match.slice(1);\n }\n if (/[\\(\\)]/.test(firstCharacter)) {\n return null;\n }\n return match;\n}\nvar src_default = (str, options = {}) => {\n str = str.toLowerCase().replace(regex, (m, lead = \"\", forced, lower, rest, offset, string) => {\n const isLastWord = m.length + offset >= string.length;\n const parsedMatch = parseMatch(m);\n if (!parsedMatch) {\n return m;\n }\n if (!forced) {\n const fullLower = lower + rest;\n if (lowerCase.has(fullLower) && !isLastWord) {\n return parsedMatch;\n }\n }\n return lead + (lower || forced).toUpperCase() + rest;\n });\n const customSpecials = options.special || [];\n const replace = [...specials, ...customSpecials];\n const replaceRegExp = convertToRegExp(replace);\n replaceRegExp.forEach(([pattern, s]) => {\n str = str.replace(pattern, s);\n });\n return str;\n};\nexport {\n src_default as default\n};\n","export const SPECIAL_TOKENS = [\n // privacy\n \"PII\",\n \"PHI\",\n \"PCI\",\n \"GDPR\",\n \"CCPA\",\n \"HIPAA\",\n \"COPPA\",\n \"FERPA\",\n \"GLBA\",\n \"SOX\",\n \"FISMA\",\n \"NIST\",\n \"CIS\",\n \"ISO\",\n \"IEC\",\n \"ITAR\",\n \"EAR\",\n \"CMMC\",\n \"CUI\",\n \"CDI\",\n \"FTC\",\n \"FCC\",\n \"SEC\",\n \"FINRA\",\n\n // security\n \"XSS\",\n \"CSRF\",\n \"SSRF\",\n \"XSRF\",\n \"TLS\",\n \"SSL\",\n \"SSH\",\n \"API\",\n \"OAuth\",\n \"OAuth1\",\n \"OAuth1.0\",\n \"OAuth2\",\n \"OAuth2.0\",\n \"SAML\",\n \"SCIM\",\n \"SSO\",\n \"OpenID\",\n \"OpenID Connect\",\n \"CAPTCHA\",\n \"reCAPTCHA\",\n \"2FA\",\n \"MFA\",\n \"OTP\",\n \"TOTP\",\n \"HOTP\",\n \"U2F\",\n \"FIDO\",\n \"FIDO2\",\n \"PKI\",\n \"HMAC\",\n \"AES\",\n \"RSA\",\n \"SHA\",\n \"MD5\",\n \"BCrypt\",\n \"PBKDF2\",\n \"Argon2\",\n \"SCrypt\",\n \"JWT\",\n \"JWE\",\n \"JWS\",\n \"JWK\",\n \"JWA\",\n \"JOSE\",\n\n // shopping\n \"SKU\",\n \"SKUs\",\n \"UPC\",\n \"EAN\",\n \"ISBN\",\n \"ASIN\",\n \"MPN\",\n \"MSRP\",\n \"RRP\",\n \"MSRP\",\n\n // time\n \"AM\",\n \"PM\",\n \"UTC\",\n \"GMT\",\n \"PST\",\n \"PDT\",\n \"EST\",\n \"EDT\",\n \"CST\",\n \"CDT\",\n \"MST\",\n \"MDT\",\n\n // geography\n \"USA\",\n \"UK\",\n \"EU\",\n \"UAE\",\n \"APAC\",\n \"EMEA\",\n \"LATAM\",\n \"ANZ\",\n \"SEA\",\n \"MEA\",\n \"MENA\",\n \"NATO\",\n \"NA\",\n \"SA\",\n \"CA\",\n \"EU\",\n \"AU\",\n \"NZ\",\n \"JP\",\n \"KR\",\n \"CN\",\n \"HK\",\n \"TW\",\n \"SG\",\n \"MY\",\n \"TH\",\n \"ID\",\n \"PH\",\n \"VN\",\n \"IN\",\n \"PK\",\n \"BD\",\n \"LK\",\n \"NP\",\n \"MM\",\n \"KH\",\n \"LA\",\n \"MM\",\n \"BT\",\n \"MV\",\n\n // finance\n \"ACH\",\n \"USD\",\n \"EUR\",\n \"GBP\",\n \"JPY\",\n \"CNY\",\n \"RUB\",\n \"INR\",\n \"AUD\",\n \"CAD\",\n \"CHF\",\n \"SGD\",\n \"MYR\",\n \"THB\",\n \"IDR\",\n \"KRW\",\n \"PHP\",\n \"VND\",\n \"HKD\",\n \"TWD\",\n \"MXN\",\n \"BRL\",\n \"ARS\",\n \"CLP\",\n \"COP\",\n \"PEN\",\n \"ZAR\",\n \"NGN\",\n \"EGP\",\n \"AED\",\n \"SAR\",\n \"ILS\",\n \"TRY\",\n \"SEK\",\n \"NOK\",\n \"DKK\",\n \"ISK\",\n \"HUF\",\n \"PLN\",\n \"CZK\",\n \"RON\",\n \"BGN\",\n\n // programming\n \"API\",\n \"APIs\",\n \"SDK\",\n \"SDKs\",\n \"AI\",\n \"OCR\",\n \"REST\",\n \"SOAP\",\n \"JSON\",\n \"XML\",\n \"HTTP\",\n \"HTTPS\",\n \"URI\",\n \"URL\",\n \"CRUD\",\n \"RESTful\",\n \"KYB\",\n \"KYC\",\n \"AML\",\n \"HTML\",\n \"CSS\",\n \"JS\",\n \"SQL\",\n \"DB\",\n \"UI\",\n \"UX\",\n \"SaaS\",\n \"PaaS\",\n \"IaaS\",\n \"IP\",\n \"TCP\",\n \"UDP\",\n \"DNS\",\n \"FTP\",\n \"SMTP\",\n \"IMAP\",\n \"POP3\",\n \"CSV\",\n \"MVC\",\n \"MVP\",\n \"MVVM\",\n \"DOM\",\n \"SPA\",\n \"SSR\",\n \"CSR\",\n \"DDoS\",\n \"CDN\",\n \"IoT\",\n \"ML\",\n \"DL\",\n \"NLP\",\n \"CLI\",\n \"GUI\",\n \"BI\",\n \"ETL\",\n \"RDBMS\",\n \"NoSQL\",\n \"IDE\",\n \"CMS\",\n \"CCPA\",\n \"POSIX\",\n \"ABI\",\n \"API\",\n \"AST\",\n \"COBOL\",\n \"DDL\",\n \"DML\",\n\n // AI-related\n \"NN\", // Neural Network\n \"CNN\", // Convolutional Neural Network\n \"RNN\", // Recurrent Neural Network\n \"LSTM\", // Long Short Term Memory\n \"GRU\", // Gated Recurrent Unit\n \"ANN\", // Artificial Neural Network\n \"GAN\", // Generative Adversarial Network\n \"RL\", // Reinforcement Learning\n \"DL\", // Deep Learning\n \"ML\", // Machine Learning\n \"NLP\", // Natural Language Processing\n \"NLG\", // Natural Language Generation\n \"NLU\", // Natural Language Understanding\n \"BERT\", // Bidirectional Encoder Representations from Transformers\n \"GPT\", // Generative Pre-training Transformer\n \"SVM\", // Support Vector Machine\n \"PCA\", // Principal Component Analysis\n \"AI\", // Artificial Intelligence\n \"CV\", // Computer Vision\n \"TF\", // TensorFlow\n \"TTS\", // Text-to-Speech\n \"ASR\", // Automatic Speech Recognition\n \"HMM\", // Hidden Markov Model\n \"DNN\", // Deep Neural Network\n \"MLP\", // Multi-Layer Perceptron\n \"RBM\", // Restricted Boltzmann Machine\n \"CRF\", // Conditional Random Field\n\n // Media\n \"PDF\",\n \"PDFs\",\n \"RTF\",\n \"TXT\",\n \"XLS\",\n \"XLSX\",\n \"PPT\",\n\n // Image\n \"JPG\",\n \"JPEG\",\n \"PNG\",\n \"GIF\",\n \"GIFs\",\n \"SVG\",\n \"TIFF\",\n \"BMP\",\n \"ICO\",\n \"PSD\",\n \"WebP\",\n \"AVIF\",\n \"HEIF\",\n \"HEIC\",\n \"EPS\",\n\n // Audio\n \"MP3\",\n \"WAV\",\n \"AIFF\",\n \"FLAC\",\n \"WMA\",\n \"AAC\",\n \"OGG\",\n\n // Video\n \"AVI\",\n \"WMV\",\n \"MOV\",\n \"M4V\",\n \"MP4\",\n \"MPG\",\n \"MPEG\",\n \"FLV\",\n \"SWF\",\n \"MKV\",\n \"WebM\",\n\n // Cloud Computing\n \"GCP\", // Google Cloud Platform\n \"AWS\", // Amazon Web Services\n \"VM\", // Virtual Machines\n \"VPC\", // Virtual Private Cloud\n \"S3\", // AWS Simple Storage Service\n \"EC2\", // AWS Elastic Compute Cloud\n\n // Data Storage and Databases\n \"DynamoDB\",\n \"CosmosDB\",\n \"BigQuery\",\n \"CI/CD\",\n\n // Security and Compliance\n \"SOC1\", // Service Organization Control 1\n \"SOC2\", // Service Organization Control 2\n \"SOC3\", // Service Organization Control 3\n \"PCI DSS\", // Payment Card Industry Data Security Standard\n \"WAF\", // Web Application Firewall\n \"IAM\", // Identity and Access Management\n\n // Networking\n \"SDN\", // Software-Defined Networking\n \"MPLS\", // Multi-Protocol Label Switching\n \"BGP\", // Border Gateway Protocol\n\n // Frameworks and Libraries\n \"Vue.js\",\n \"Node.js\",\n \".NET\"\n];\n","import title from \"title\";\n\nimport { SPECIAL_TOKENS } from \"./specialTokens\";\n\nexport function titleCase(name: string): string {\n // regex match pascalCase or CamelCase and add spaces between words\n name = name.replace(/([a-z])([A-Z])/g, \"$1 $2\");\n\n // regex match single uppercase letter(s) followed by an uppercase letter and lowercase letter\n // e.g. \"AShopperProfile\" -> \"A Shopper Profile\", \"HTMLParser\" -> \"HTML Parser\"\n name = name.replace(/([A-Z]+)([A-Z][a-z])/g, \"$1 $2\");\n\n // regex match snake_case and replace \"_\" with \" \"\n name = name.replace(/_/g, \" \");\n\n // regex match kebab-case and replace \"-\" with \" \"\n name = name.replace(/-/g, \" \");\n\n const titleCased = title(name, { special: SPECIAL_TOKENS });\n\n // regex match \"V 2\", \"V 4\", etc. and replace it with \"V2\", \"V4\", etc.\n const versionedTitle = titleCased.replace(/V\\s(\\d)/g, \"V$1\");\n return versionedTitle;\n}\n\nexport default titleCase;\n","interface Opts {\n renderNull?: boolean;\n}\n\nexport function unknownToString(value: unknown, { renderNull = false }: Opts = {}): string {\n if (value == null || typeof value === \"function\") {\n return renderNull ? \"null\" : \"\";\n } else if (typeof value === \"string\") {\n return value;\n }\n return JSON.stringify(value);\n}\n\nexport default unknownToString;\n","import { assertNever } from \"./assertNever\";\n\nexport type DiscriminatedUnionVisitor<T extends Record<Discriminant, string>, U, Discriminant extends string> = {\n [D in T[Discriminant]]: (value: Extract<T, Record<Discriminant, D>>) => U;\n} & {\n _other?: (value: Record<Discriminant, string>) => U;\n};\n\nexport function visitDiscriminatedUnion<T extends Record<\"type\", string>>(\n item: T\n): { _visit: <U>(visitor: DiscriminatedUnionVisitor<T, U, \"type\">) => U };\nexport function visitDiscriminatedUnion<T extends Record<Discriminant, string>, Discriminant extends string>(\n item: T,\n discriminant: Discriminant\n): { _visit: <U>(visitor: DiscriminatedUnionVisitor<T, U, Discriminant>) => U };\nexport function visitDiscriminatedUnion<T extends Record<Discriminant, string>, Discriminant extends string>(\n item: T,\n discriminant: Discriminant = \"type\" as Discriminant\n): {\n _visit: <U>(visitor: DiscriminatedUnionVisitor<T, U, Discriminant>) => U;\n} {\n return {\n _visit: (visitor) => {\n const visit = visitor[item[discriminant]];\n if (visit != null) {\n return visit(item as Extract<T, Record<Discriminant, string>>);\n } else {\n if (visitor._other == null) {\n assertNever(item as never);\n }\n return visitor._other(item);\n }\n }\n };\n}\n\nexport default visitDiscriminatedUnion;\n","import { isPlainObject } from \"@fern-api/ui-core-utils\";\nimport visitDiscriminatedUnion from \"@fern-api/ui-core-utils/visitDiscriminatedUnion\";\nimport { compact, sortBy } from \"es-toolkit/array\";\n\nimport { AvailabilityOrder, coalesceAvailability } from \"./availability\";\nimport { LOOP_TOLERANCE } from \"./const\";\nimport * as Latest from \"./latest\";\nimport type { DereferencedNonOptionalTypeShapeOrReference, TypeShapeOrReference } from \"./types\";\n\nexport type UnwrappedReference = {\n shape: DereferencedNonOptionalTypeShapeOrReference;\n availability: Latest.Availability | undefined;\n descriptions: string[];\n visitedTypeIds: Set<Latest.TypeId>;\n isOptional: boolean;\n isNullable: boolean;\n default?: unknown;\n};\n\nexport type UnwrappedObjectType = {\n properties: Latest.ObjectProperty[];\n extraProperties: Latest.TypeReference | null | undefined;\n descriptions: string[];\n visitedTypeIds: Set<Latest.TypeId>;\n};\n\ntype InternalDefaultValue =\n | { type: \"unknown\"; value: unknown }\n | { type: \"typeReferenceId\"; value: Latest.TypeReferenceIdDefault };\n\n/**\n * Cache for unwrapped references. Perform the unwrapping only once.\n */\nconst UnwrapReferenceCache = new WeakMap<TypeShapeOrReference, UnwrappedReference>();\n\n/**\n * A TypeShape or TypeReference might be an alias or reference to another type.\n * This function unwraps the reference, including any optional wrappers, to get the actual shape.\n *\n * When optionals are detected, attempt to find the default value for the shape.\n * Since aliases can be recursive, the first default value found is returned, which can be contained in:\n * - the optional wrapper\n * - the type reference id\n * - the primitive or literal shape itself\n *\n * @param typeRef to unwrap\n * @param types from the API definition\n * @returns UnwrappedReference containing the shape, whether it is optional, and the default value if it exists\n */\nexport function unwrapReference(\n typeRef: TypeShapeOrReference,\n types: Record<string, Latest.TypeDefinition>\n): UnwrappedReference;\nexport function unwrapReference(\n typeRef: TypeShapeOrReference | undefined,\n types: Record<string, Latest.TypeDefinition>\n): UnwrappedReference | undefined;\nexport function unwrapReference(\n typeRef: TypeShapeOrReference | undefined,\n types: Record<string, Latest.TypeDefinition>\n): UnwrappedReference | undefined {\n if (typeRef == null) {\n return undefined;\n }\n\n const cached = UnwrapReferenceCache.get(typeRef);\n if (cached != null) {\n return cached;\n }\n\n let isOptional = false;\n let isNullable = false;\n const defaults: InternalDefaultValue[] = [];\n const descriptions: string[] = [];\n const availabilities: Latest.Availability[] = [];\n\n const visitedTypeIds = new Set<Latest.TypeId>();\n let internalTypeRef: TypeShapeOrReference | undefined = typeRef;\n let loop = 0;\n let circularReference = false;\n while (internalTypeRef != null) {\n if (loop > LOOP_TOLERANCE) {\n // infinite loop detected\n internalTypeRef = undefined;\n break;\n }\n\n if (internalTypeRef.type === \"nullable\") {\n isNullable = true;\n internalTypeRef = internalTypeRef.shape;\n } else if (internalTypeRef.type === \"optional\") {\n isOptional = true;\n if (internalTypeRef.default != null) {\n defaults.push({\n type: \"unknown\",\n value: internalTypeRef.default\n });\n }\n internalTypeRef = internalTypeRef.shape;\n } else if (internalTypeRef.type === \"alias\") {\n internalTypeRef = internalTypeRef.value;\n } else if (internalTypeRef.type === \"id\") {\n if (visitedTypeIds.has(internalTypeRef.id)) {\n // circular reference detected\n internalTypeRef = undefined;\n circularReference = true;\n break;\n }\n\n if (internalTypeRef.default != null) {\n defaults.push({\n type: \"typeReferenceId\",\n value: internalTypeRef.default\n });\n }\n const typeDef: Latest.TypeDefinition | undefined = types[internalTypeRef.id];\n visitedTypeIds.add(internalTypeRef.id);\n internalTypeRef = typeDef?.shape;\n if (typeDef != null) {\n if (typeDef.availability) {\n availabilities.push(typeDef.availability);\n }\n\n if (typeDef.description != null) {\n descriptions.push(typeDef.description);\n }\n }\n } else {\n break;\n }\n\n loop++;\n }\n\n if (internalTypeRef == null) {\n // Note: this should be a fatal error, but we're handling it gracefully for now\n if (circularReference) {\n console.error(\n `Circular reference detected. Falling back to unknown type. types=[${[...visitedTypeIds].join(\", \")}]`\n );\n } else {\n console.error(\n `Type reference is invalid. Falling back to unknown type. types=[${[...visitedTypeIds].join(\", \")}]`\n );\n }\n }\n\n const toRet = {\n shape: internalTypeRef ?? { type: \"unknown\", displayName: undefined },\n availability: coalesceAvailability(availabilities),\n visitedTypeIds,\n isOptional,\n isNullable,\n default: selectDefaultValue(internalTypeRef, defaults),\n descriptions\n };\n\n UnwrapReferenceCache.set(typeRef, toRet);\n\n return toRet;\n}\n\nfunction selectDefaultValue(\n shape: DereferencedNonOptionalTypeShapeOrReference | undefined,\n defaults: InternalDefaultValue[]\n): unknown | undefined {\n const defaultValue = defaults.find((d) => {\n // If the shape is unknown, we can't validate the default value, so we assume it's always the first one\n if (shape == null) {\n return true;\n }\n\n // if a typeReferenceId is found, we need to validate that the default value is compatible with the shape\n else if (d.type === \"typeReferenceId\") {\n return visitDiscriminatedUnion(d.value)._visit({\n enum: () => shape?.type === \"enum\"\n });\n }\n\n // TODO: validate that the default value is compatible with the shape\n else {\n return true;\n }\n });\n\n if (defaultValue?.type === \"unknown\") {\n return defaultValue.value;\n } else if (defaultValue?.type === \"typeReferenceId\") {\n return defaultValue.value.value;\n } else if (shape?.type === \"primitive\") {\n return primitiveToDefault(shape.value);\n } else if (shape?.type === \"enum\") {\n return shape.default;\n } else {\n return undefined;\n }\n}\n\nconst UnwrapObjectTypeCache = new WeakMap<Latest.ObjectType, UnwrappedObjectType>();\n\n/**\n * Dereferences extended objects and returns all properties of the object.\n * If an object extends another object, the properties of the extended object will be sorted alphabetically.\n * Additionally, required properties will come before optional properties.\n *\n * @param object to dereference\n * @param types from the API definition\n * @returns the properties of the object, including properties from extended objects\n */\nexport function unwrapObjectType(\n object: Latest.ObjectType,\n types: Record<Latest.TypeId, Latest.TypeDefinition>,\n parentVisitedTypeIds?: Set<Latest.TypeId>\n): UnwrappedObjectType {\n const cached = UnwrapObjectTypeCache.get(object);\n if (cached != null) {\n return cached;\n }\n\n const directProperties = object.properties;\n const extraProperties = object.extraProperties;\n const descriptions: string[] = [];\n const visitedTypeIds = new Set<Latest.TypeId>();\n const extendedProperties = object.extends.flatMap((typeId): Latest.ObjectProperty[] => {\n if (parentVisitedTypeIds?.has(typeId)) {\n console.error(`Circular reference detected. Cannot extend type=${typeId}`);\n return [];\n }\n\n const typeDef = types[typeId];\n visitedTypeIds.add(typeId);\n if (typeDef?.description) {\n descriptions.push(typeDef.description);\n }\n\n const unwrapped = unwrapReference(typeDef?.shape, types);\n unwrapped?.descriptions.forEach((description) => descriptions.push(description));\n unwrapped?.visitedTypeIds.forEach((typeId) => visitedTypeIds.add(typeId));\n\n // TODO: should we be able to extend discriminated and undiscriminated unions?\n if (unwrapped?.shape.type !== \"object\") {\n console.warn(\"Object extends non-object\", typeId);\n return [];\n }\n const extended = unwrapObjectType(unwrapped.shape, types, visitedTypeIds);\n extended.visitedTypeIds.forEach((typeId) => visitedTypeIds.add(typeId));\n\n // merge the availability of the extended object with the availability of the properties\n // use a local variable to avoid mutating the cached result\n const extendedPropsWithAvailability = extended.properties.map((property) => {\n return {\n ...property,\n availability: coalesceAvailability(\n compact([typeDef?.availability, unwrapped.availability, property.availability])\n )\n };\n });\n\n descriptions.push(...extended.descriptions);\n\n if (!unwrapped.isOptional) {\n return extendedPropsWithAvailability;\n }\n\n // if the extended object is optional, we need to make all properties optional\n return extendedPropsWithAvailability.map((property): Latest.ObjectProperty => {\n // if a default value is present for the referenced object, we can find the default value for this property\n const defaultProperty = isPlainObject(unwrapped.default) ? unwrapped.default[property.key] : undefined;\n\n const valueShape: Latest.TypeReference.Optional =\n property.valueShape.type === \"alias\" && property.valueShape.value.type === \"optional\"\n ? {\n ...property.valueShape.value,\n default: defaultProperty ?? property.valueShape.value.default\n }\n : {\n type: \"optional\",\n shape: property.valueShape,\n default: defaultProperty\n };\n\n return {\n ...property,\n valueShape: { type: \"alias\", value: valueShape }\n };\n });\n });\n\n if (extendedProperties.length === 0) {\n // if there are no extended properties, we can just return the direct properties\n // required properties should come before optional properties\n // however, we do NOT sort the properties by key because the initial order of properties may be significant\n const properties = sortBy(\n [...directProperties],\n [\n (property) => unwrapReference(property.valueShape, types)?.isOptional,\n (property) => AvailabilityOrder.indexOf(property.availability ?? Latest.Availability.Stable)\n ]\n );\n const toRet = {\n properties,\n descriptions,\n extraProperties,\n visitedTypeIds\n };\n UnwrapObjectTypeCache.set(object, toRet);\n return toRet;\n }\n const propertyKeys = new Set(object.properties.map((property) => property.key));\n // deduplicate extended properties: remove those that conflict with direct properties,\n // and also remove duplicates between different extends chains (keep first occurrence)\n const seenExtendedKeys = new Set<string>();\n const filteredExtendedProperties = extendedProperties.filter((extendedProperty) => {\n if (propertyKeys.has(extendedProperty.key) || seenExtendedKeys.has(extendedProperty.key)) {\n return false;\n }\n seenExtendedKeys.add(extendedProperty.key);\n return true;\n });\n\n // required properties should come before optional properties\n // since there are extended properties, the initial order of properties are not significant, and we should sort by key\n const properties = sortBy(\n [...directProperties, ...filteredExtendedProperties],\n [\n (property) => unwrapReference(property.valueShape, types)?.isOptional,\n (property) => AvailabilityOrder.indexOf(property.availability ?? Latest.Availability.Stable),\n (property) => property.key\n ]\n );\n const toRet = { properties, descriptions, extraProperties, visitedTypeIds };\n UnwrapObjectTypeCache.set(object, toRet);\n return toRet;\n}\n\n/**\n * The discriminant of a discriminated union is converted to a literal type, *prepended* to the additional properties.\n */\nexport function unwrapDiscriminatedUnionVariant(\n union: Pick<Latest.DiscriminatedUnionType, \"discriminant\">,\n variant: Latest.DiscriminatedUnionVariant,\n types: Record<string, Latest.TypeDefinition>\n): UnwrappedObjectType {\n const { properties, descriptions, visitedTypeIds } = unwrapObjectType(variant, types); // this is already cached\n return {\n properties: [\n {\n key: union.discriminant,\n valueShape: {\n type: \"alias\",\n value: {\n type: \"literal\",\n value: {\n type: \"stringLiteral\",\n value: variant.discriminantValue\n }\n }\n },\n propertyAccess: undefined,\n // the description and availability of the discriminant should not be included here\n // because they are already included in the union variant itself\n description: undefined,\n availability: undefined\n },\n ...properties\n ],\n extraProperties: undefined,\n descriptions,\n visitedTypeIds\n };\n}\n\nfunction primitiveToDefault(shape: Latest.PrimitiveType): unknown | undefined {\n return visitDiscriminatedUnion(shape, \"type\")._visit<unknown | undefined>({\n string: (value) => value.default,\n integer: (value) => value.default,\n double: (value) => value.default,\n uint: () => undefined,\n uint64: () => undefined,\n boolean: (value) => value.default,\n long: (value) => value.default,\n datetime: (datetime) => datetime.default,\n uuid: (uuid) => uuid.default,\n base64: (base64) => base64.default,\n date: (value) => value.default,\n bigInteger: (value) => value.default,\n scalar: (value) => value.default\n });\n}\n","import * as z from \"zod\";\n\nimport {\n AuthSchemeIdSchema,\n AvailabilitySchema,\n Base64TypeSchema,\n BigIntegerTypeSchema,\n BooleanTypeSchema,\n DateTypeSchema,\n DatetimeTypeSchema,\n DoubleTypeSchema,\n EndpointIdSchema,\n EndpointPathPartSchema,\n EnvironmentIdSchema,\n EnvironmentSchema,\n GraphQlOperationIdSchema,\n HttpMethodSchema,\n IntegerTypeSchema,\n LongTypeSchema,\n MultipleAuthTypeSchema,\n PropertyKeySchema,\n ProtocolSchema,\n ScalarTypeSchema,\n StringTypeSchema,\n SubpackageIdSchema,\n TypeIdSchema,\n Uint64TypeSchema,\n UintTypeSchema,\n UuidTypeSchema,\n WebhookHttpMethodSchema,\n WebhookIdSchema,\n WebSocketIdSchema,\n WebSocketMessageIdSchema,\n WebSocketMessageOriginSchema\n} from \"./shared.js\";\n\n// ── Latest commons ───────────────────────────────────────────────────────\n\nexport const PathPartSchema = EndpointPathPartSchema;\nexport type PathPart = z.infer<typeof PathPartSchema>;\n\nexport const WithNamespaceSchema = z.object({\n namespace: z.array(SubpackageIdSchema).nullish()\n});\nexport type WithNamespace = z.infer<typeof WithNamespaceSchema>;\n\n// ── Latest auth ──────────────────────────────────────────────────────────\n\nimport { BasicAuthSchema, BearerAuthSchema, HeaderAuthSchema, OAuthSchema } from \"./shared.js\";\n\nexport { BasicAuthSchema, BearerAuthSchema, HeaderAuthSchema, OAuthSchema };\n\nexport const LatestAuthSchemeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"bearerAuth\"), ...BearerAuthSchema.shape }),\n z.object({ type: z.literal(\"basicAuth\"), ...BasicAuthSchema.shape }),\n z.object({ type: z.literal(\"header\"), ...HeaderAuthSchema.shape }),\n z.object({ type: z.literal(\"oAuth\"), value: OAuthSchema })\n]);\nexport type LatestAuthScheme = z.infer<typeof LatestAuthSchemeSchema>;\n\n// ── Latest type ──────────────────────────────────────────────────────────\n\nexport const LatestObjectPropertyAccessSchema = z.enum([\"READ_ONLY\", \"WRITE_ONLY\"]);\nexport type LatestObjectPropertyAccess = z.infer<typeof LatestObjectPropertyAccessSchema>;\n\nexport const LatestTypeReferenceIdDefaultSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"enum\"), value: z.string() })\n]);\nexport type LatestTypeReferenceIdDefault = z.infer<typeof LatestTypeReferenceIdDefaultSchema>;\n\nexport const LatestPrimitiveTypeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"integer\"), ...IntegerTypeSchema.shape }),\n z.object({ type: z.literal(\"double\"), ...DoubleTypeSchema.shape }),\n z.object({ type: z.literal(\"string\"), ...StringTypeSchema.shape }),\n z.object({ type: z.literal(\"long\"), ...LongTypeSchema.shape }),\n z.object({ type: z.literal(\"boolean\"), ...BooleanTypeSchema.shape }),\n z.object({ type: z.literal(\"datetime\"), ...DatetimeTypeSchema.shape }),\n z.object({ type: z.literal(\"uuid\"), ...UuidTypeSchema.shape }),\n z.object({ type: z.literal(\"base64\"), ...Base64TypeSchema.shape }),\n z.object({ type: z.literal(\"date\"), ...DateTypeSchema.shape }),\n z.object({ type: z.literal(\"bigInteger\"), ...BigIntegerTypeSchema.shape }),\n z.object({ type: z.literal(\"uint\"), ...UintTypeSchema.shape }),\n z.object({ type: z.literal(\"uint64\"), ...Uint64TypeSchema.shape }),\n z.object({ type: z.literal(\"scalar\"), ...ScalarTypeSchema.shape })\n]);\nexport type LatestPrimitiveType = z.infer<typeof LatestPrimitiveTypeSchema>;\n\nexport const LatestLiteralTypeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"booleanLiteral\"), value: z.boolean() }),\n z.object({ type: z.literal(\"stringLiteral\"), value: z.string() })\n]);\nexport type LatestLiteralType = z.infer<typeof LatestLiteralTypeSchema>;\n\nexport const LatestUnknownTypeSchema = z.object({\n displayName: z.string().nullish()\n});\nexport type LatestUnknownType = z.infer<typeof LatestUnknownTypeSchema>;\n\nexport const LatestEnumValueSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n value: z.string()\n});\nexport type LatestEnumValue = z.infer<typeof LatestEnumValueSchema>;\n\nexport const LatestEnumTypeSchema = z.object({\n default: z.string().nullish(),\n values: z.array(LatestEnumValueSchema)\n});\nexport type LatestEnumType = z.infer<typeof LatestEnumTypeSchema>;\n\nexport type LatestTypeShape =\n | LatestTypeShape.Alias\n | LatestTypeShape.Enum\n | LatestTypeShape.UndiscriminatedUnion\n | LatestTypeShape.DiscriminatedUnion\n | LatestTypeShape.Object_;\n\nexport namespace LatestTypeShape {\n export interface Alias {\n type: \"alias\";\n value: LatestTypeReference;\n }\n export interface Enum extends LatestEnumType {\n type: \"enum\";\n }\n export interface UndiscriminatedUnion extends LatestUndiscriminatedUnionType {\n type: \"undiscriminatedUnion\";\n }\n export interface DiscriminatedUnion extends LatestDiscriminatedUnionType {\n type: \"discriminatedUnion\";\n }\n export interface Object_ extends LatestObjectType {\n type: \"object\";\n }\n}\n\nexport type LatestTypeReference =\n | LatestTypeReference.Id\n | LatestTypeReference.Primitive\n | LatestTypeReference.Optional\n | LatestTypeReference.Nullable\n | LatestTypeReference.List\n | LatestTypeReference.Set\n | LatestTypeReference.Map\n | LatestTypeReference.Literal\n | LatestTypeReference.Unknown;\n\nexport namespace LatestTypeReference {\n export interface Id {\n type: \"id\";\n id: string;\n default?: LatestTypeReferenceIdDefault | null;\n }\n export interface Primitive {\n type: \"primitive\";\n value: LatestPrimitiveType;\n }\n export interface Optional {\n type: \"optional\";\n shape: LatestTypeShape;\n default?: unknown | null;\n }\n export interface Nullable {\n type: \"nullable\";\n shape: LatestTypeShape;\n }\n export interface List {\n type: \"list\";\n itemShape: LatestTypeShape;\n minItems?: number | null;\n maxItems?: number | null;\n }\n export interface Set {\n type: \"set\";\n itemShape: LatestTypeShape;\n minItems?: number | null;\n maxItems?: number | null;\n }\n export interface Map {\n type: \"map\";\n keyShape: LatestTypeShape;\n valueShape: LatestTypeShape;\n minProperties?: number | null;\n maxProperties?: number | null;\n }\n export interface Literal {\n type: \"literal\";\n value: LatestLiteralType;\n }\n export interface Unknown extends LatestUnknownType {\n type: \"unknown\";\n }\n}\n\nexport interface LatestObjectType {\n extends: string[];\n properties: LatestObjectProperty[];\n extraProperties?: LatestTypeReference | null;\n}\n\nexport interface LatestObjectProperty {\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n key: string;\n valueShape: LatestTypeShape;\n propertyAccess?: LatestObjectPropertyAccess | null;\n arguments?: LatestGraphQlArgument[] | null;\n}\n\nexport interface LatestParameterProperty extends LatestObjectProperty {\n explode?: boolean | null;\n}\n\nexport interface LatestUndiscriminatedUnionVariant {\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n displayName?: string | null;\n shape: LatestTypeShape;\n}\n\nexport interface LatestUndiscriminatedUnionType {\n variants: LatestUndiscriminatedUnionVariant[];\n}\n\nexport interface LatestDiscriminatedUnionVariant extends LatestObjectType {\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n discriminantValue: string;\n displayName?: string | null;\n}\n\nexport interface LatestDiscriminatedUnionType {\n discriminant: string;\n variants: LatestDiscriminatedUnionVariant[];\n}\n\nexport const LatestObjectPropertySchema: z.ZodType<LatestObjectProperty> = z.lazy(() =>\n z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n valueShape: LatestTypeShapeSchema,\n propertyAccess: LatestObjectPropertyAccessSchema.nullish(),\n arguments: z.array(LatestGraphQlArgumentSchema).nullish()\n })\n);\n\nexport const LatestParameterPropertySchema: z.ZodType<LatestParameterProperty> = z.lazy(() =>\n z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n valueShape: LatestTypeShapeSchema,\n propertyAccess: LatestObjectPropertyAccessSchema.nullish(),\n explode: z.boolean().nullish()\n })\n);\n\nexport const LatestObjectTypeSchema: z.ZodType<LatestObjectType> = z.lazy(() =>\n z.object({\n extends: z.array(TypeIdSchema),\n properties: z.array(LatestObjectPropertySchema),\n extraProperties: LatestTypeReferenceSchema.nullish()\n })\n);\n\nexport const LatestUndiscriminatedUnionVariantSchema: z.ZodType<LatestUndiscriminatedUnionVariant> = z.lazy(() =>\n z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n displayName: z.string().nullish(),\n shape: LatestTypeShapeSchema\n })\n);\n\nexport const LatestUndiscriminatedUnionTypeSchema: z.ZodType<LatestUndiscriminatedUnionType> = z.lazy(() =>\n z.object({\n variants: z.array(LatestUndiscriminatedUnionVariantSchema)\n })\n);\n\nexport const LatestDiscriminatedUnionVariantSchema: z.ZodType<LatestDiscriminatedUnionVariant> = z.lazy(() =>\n z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n discriminantValue: z.string(),\n displayName: z.string().nullish(),\n extends: z.array(TypeIdSchema),\n properties: z.array(LatestObjectPropertySchema),\n extraProperties: LatestTypeReferenceSchema.nullish()\n })\n);\n\nexport const LatestDiscriminatedUnionTypeSchema: z.ZodType<LatestDiscriminatedUnionType> = z.lazy(() =>\n z.object({\n discriminant: PropertyKeySchema,\n variants: z.array(LatestDiscriminatedUnionVariantSchema)\n })\n);\n\nexport const LatestTypeShapeSchema: z.ZodType<LatestTypeShape> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"alias\"),\n value: LatestTypeReferenceSchema\n }),\n z.object({\n type: z.literal(\"enum\"),\n default: z.string().nullish(),\n values: z.array(LatestEnumValueSchema)\n }),\n z.object({\n type: z.literal(\"undiscriminatedUnion\"),\n variants: z.array(LatestUndiscriminatedUnionVariantSchema)\n }),\n z.object({\n type: z.literal(\"discriminatedUnion\"),\n discriminant: PropertyKeySchema,\n variants: z.array(LatestDiscriminatedUnionVariantSchema)\n }),\n z.object({\n type: z.literal(\"object\"),\n extends: z.array(TypeIdSchema),\n properties: z.array(LatestObjectPropertySchema),\n extraProperties: LatestTypeReferenceSchema.nullish()\n })\n ])\n);\n\nexport const LatestTypeReferenceSchema: z.ZodType<LatestTypeReference> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"id\"),\n id: TypeIdSchema,\n default: LatestTypeReferenceIdDefaultSchema.nullish()\n }),\n z.object({\n type: z.literal(\"primitive\"),\n value: LatestPrimitiveTypeSchema\n }),\n z.object({\n type: z.literal(\"optional\"),\n shape: LatestTypeShapeSchema,\n default: z.unknown().nullish()\n }),\n z.object({\n type: z.literal(\"nullable\"),\n shape: LatestTypeShapeSchema\n }),\n z.object({\n type: z.literal(\"list\"),\n itemShape: LatestTypeShapeSchema,\n minItems: z.number().int().nullish(),\n maxItems: z.number().int().nullish()\n }),\n z.object({\n type: z.literal(\"set\"),\n itemShape: LatestTypeShapeSchema,\n minItems: z.number().int().nullish(),\n maxItems: z.number().int().nullish()\n }),\n z.object({\n type: z.literal(\"map\"),\n keyShape: LatestTypeShapeSchema,\n valueShape: LatestTypeShapeSchema,\n minProperties: z.number().int().nullish(),\n maxProperties: z.number().int().nullish()\n }),\n z.object({\n type: z.literal(\"literal\"),\n value: LatestLiteralTypeSchema\n }),\n z.object({\n type: z.literal(\"unknown\"),\n displayName: z.string().nullish()\n })\n ])\n);\n\nexport const LatestTypeDefinitionSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n name: z.string(),\n shape: LatestTypeShapeSchema,\n displayName: z.string().nullish()\n});\nexport type LatestTypeDefinition = z.infer<typeof LatestTypeDefinitionSchema>;\n\nexport const LatestContentTypeSchema = z.union([z.string(), z.array(z.string())]);\nexport type LatestContentType = z.infer<typeof LatestContentTypeSchema>;\n\nexport const LatestBytesRequestSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n isOptional: z.boolean(),\n contentType: LatestContentTypeSchema.nullish()\n});\nexport type LatestBytesRequest = z.infer<typeof LatestBytesRequestSchema>;\n\nexport const LatestFormDataPropertySchema: z.ZodType<LatestFormDataField> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"file\"),\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n isOptional: z.boolean(),\n contentType: LatestContentTypeSchema.nullish()\n }),\n z.object({\n type: z.literal(\"files\"),\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n isOptional: z.boolean(),\n contentType: LatestContentTypeSchema.nullish()\n }),\n z.object({\n type: z.literal(\"property\"),\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n valueShape: LatestTypeShapeSchema,\n propertyAccess: LatestObjectPropertyAccessSchema.nullish(),\n contentType: LatestContentTypeSchema.nullish(),\n exploded: z.boolean().nullish()\n })\n ])\n);\n\nexport type LatestFormDataFile = {\n type: \"file\";\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n key: string;\n isOptional: boolean;\n contentType?: LatestContentType | null;\n};\n\nexport type LatestFormDataFiles = {\n type: \"files\";\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n key: string;\n isOptional: boolean;\n contentType?: LatestContentType | null;\n};\n\nexport type LatestFormDataPropertyVariant = {\n type: \"property\";\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n key: string;\n valueShape: LatestTypeShape;\n propertyAccess?: LatestObjectPropertyAccess | null;\n contentType?: LatestContentType | null;\n exploded?: boolean | null;\n};\n\nexport type LatestFormDataField = LatestFormDataFile | LatestFormDataFiles | LatestFormDataPropertyVariant;\n\nexport const LatestFormDataRequestSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n fields: z.array(LatestFormDataPropertySchema)\n});\nexport type LatestFormDataRequest = z.infer<typeof LatestFormDataRequestSchema>;\n\nexport const LatestNullableTypeSchema: z.ZodType<{ shape: LatestTypeShape }> = z.lazy(() =>\n z.object({\n shape: LatestTypeShapeSchema\n })\n);\n\nexport const LatestOptionalTypeSchema: z.ZodType<{ shape: LatestTypeShape; default?: unknown }> = z.lazy(() =>\n z.object({\n shape: LatestTypeShapeSchema,\n default: z.unknown().nullish()\n })\n);\n\nexport const LatestListTypeSchema: z.ZodType<{\n itemShape: LatestTypeShape;\n minItems?: number | null;\n maxItems?: number | null;\n}> = z.lazy(() =>\n z.object({\n itemShape: LatestTypeShapeSchema,\n minItems: z.number().int().nullish(),\n maxItems: z.number().int().nullish()\n })\n);\n\nexport const LatestSetTypeSchema: z.ZodType<{\n itemShape: LatestTypeShape;\n minItems?: number | null;\n maxItems?: number | null;\n}> = z.lazy(() =>\n z.object({\n itemShape: LatestTypeShapeSchema,\n minItems: z.number().int().nullish(),\n maxItems: z.number().int().nullish()\n })\n);\n\nexport const LatestMapTypeSchema: z.ZodType<{\n keyShape: LatestTypeShape;\n valueShape: LatestTypeShape;\n minProperties?: number | null;\n maxProperties?: number | null;\n}> = z.lazy(() =>\n z.object({\n keyShape: LatestTypeShapeSchema,\n valueShape: LatestTypeShapeSchema,\n minProperties: z.number().int().nullish(),\n maxProperties: z.number().int().nullish()\n })\n);\n\n// ── Latest endpoint ──────────────────────────────────────────────────────\n\nexport const LatestLanguageSchema = z.string();\nexport type LatestLanguage = z.infer<typeof LatestLanguageSchema>;\n\nexport const LatestExampleEndpointRequestSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() }),\n z.object({ type: z.literal(\"form\"), value: z.record(z.string(), z.unknown()) }),\n z.object({ type: z.literal(\"bytes\"), value: z.unknown() })\n]);\nexport type LatestExampleEndpointRequest = z.infer<typeof LatestExampleEndpointRequestSchema>;\n\nexport const LatestExampleEndpointResponseSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() }),\n z.object({ type: z.literal(\"filename\"), value: z.unknown() }),\n z.object({ type: z.literal(\"stream\"), value: z.array(z.unknown()) }),\n z.object({ type: z.literal(\"sse\"), value: z.array(z.object({ event: z.string(), data: z.unknown() })) })\n]);\nexport type LatestExampleEndpointResponse = z.infer<typeof LatestExampleEndpointResponseSchema>;\n\nexport const LatestExampleErrorResponseSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() })\n]);\nexport type LatestExampleErrorResponse = z.infer<typeof LatestExampleErrorResponseSchema>;\n\nexport const LatestHttpRequestBodyShapeSchema: z.ZodType<LatestHttpRequestBodyShape> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"object\"),\n extends: z.array(TypeIdSchema),\n properties: z.array(LatestObjectPropertySchema),\n extraProperties: LatestTypeReferenceSchema.nullish()\n }),\n z.object({ type: z.literal(\"alias\"), value: LatestTypeReferenceSchema }),\n z.object({ type: z.literal(\"bytes\"), ...LatestBytesRequestSchema.shape }),\n z.object({ type: z.literal(\"formData\"), ...LatestFormDataRequestSchema.shape })\n ])\n);\n\nexport type LatestHttpRequestBodyShape =\n | ({ type: \"object\" } & LatestObjectType)\n | { type: \"alias\"; value: LatestTypeReference }\n | ({ type: \"bytes\" } & z.infer<typeof LatestBytesRequestSchema>)\n | ({ type: \"formData\" } & z.infer<typeof LatestFormDataRequestSchema>);\n\nexport const LatestHttpRequestSchema = z.object({\n description: z.string().nullish(),\n contentType: z.string().nullish(),\n body: LatestHttpRequestBodyShapeSchema\n});\nexport type LatestHttpRequest = z.infer<typeof LatestHttpRequestSchema>;\n\nexport const LatestFileDownloadResponseBodyShapeSchema = z.object({\n contentType: z.string().nullish()\n});\nexport type LatestFileDownloadResponseBodyShape = z.infer<typeof LatestFileDownloadResponseBodyShapeSchema>;\n\nexport const LatestStreamResponseSchema = z.object({\n terminator: z.string().nullish(),\n shape: LatestTypeShapeSchema\n});\nexport type LatestStreamResponse = z.infer<typeof LatestStreamResponseSchema>;\n\nexport type LatestHttpResponseBodyShape =\n | { type: \"empty\" }\n | ({ type: \"object\" } & LatestObjectType)\n | { type: \"alias\"; value: LatestTypeReference }\n | ({ type: \"fileDownload\" } & z.infer<typeof LatestFileDownloadResponseBodyShapeSchema>)\n | { type: \"streamingText\" }\n | ({ type: \"stream\" } & z.infer<typeof LatestStreamResponseSchema>);\n\nexport const LatestHttpResponseBodyShapeSchema: z.ZodType<LatestHttpResponseBodyShape> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"empty\") }),\n z.object({\n type: z.literal(\"object\"),\n extends: z.array(TypeIdSchema),\n properties: z.array(LatestObjectPropertySchema),\n extraProperties: LatestTypeReferenceSchema.nullish()\n }),\n z.object({ type: z.literal(\"alias\"), value: LatestTypeReferenceSchema }),\n z.object({ type: z.literal(\"fileDownload\"), ...LatestFileDownloadResponseBodyShapeSchema.shape }),\n z.object({ type: z.literal(\"streamingText\") }),\n z.object({ type: z.literal(\"stream\"), ...LatestStreamResponseSchema.shape })\n ])\n);\n\nexport const LatestHttpResponseSchema = z.object({\n description: z.string().nullish(),\n body: LatestHttpResponseBodyShapeSchema,\n statusCode: z.number().int(),\n isWildcard: z.boolean().nullish()\n});\nexport type LatestHttpResponse = z.infer<typeof LatestHttpResponseSchema>;\n\nexport const LatestErrorExampleSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n responseBody: LatestExampleErrorResponseSchema\n});\nexport type LatestErrorExample = z.infer<typeof LatestErrorExampleSchema>;\n\nexport const LatestErrorResponseSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n shape: LatestTypeShapeSchema.nullish(),\n statusCode: z.number().int(),\n isWildcard: z.boolean().nullish(),\n name: z.string(),\n examples: z.array(LatestErrorExampleSchema).nullish(),\n headers: z.array(LatestObjectPropertySchema).nullish()\n});\nexport type LatestErrorResponse = z.infer<typeof LatestErrorResponseSchema>;\n\nexport const LatestCodeSnippetSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n language: LatestLanguageSchema,\n install: z.string().nullish(),\n code: z.string(),\n generated: z.boolean()\n});\nexport type LatestCodeSnippet = z.infer<typeof LatestCodeSnippetSchema>;\n\nexport const LatestExampleEndpointCallSchema = z.object({\n description: z.string().nullish(),\n path: z.string(),\n responseStatusCode: z.number().int(),\n name: z.string().nullish(),\n pathParameters: z.record(PropertyKeySchema, z.unknown()).nullish(),\n queryParameters: z.record(PropertyKeySchema, z.unknown()).nullish(),\n headers: z.record(PropertyKeySchema, z.unknown()).nullish(),\n requestBody: LatestExampleEndpointRequestSchema.nullish(),\n responseBody: LatestExampleEndpointResponseSchema.nullish(),\n snippets: z.record(LatestLanguageSchema, z.array(LatestCodeSnippetSchema)).nullish(),\n codeExamples: z.unknown().nullish(),\n codeSamples: z.array(LatestCodeSnippetSchema).nullish()\n});\nexport type LatestExampleEndpointCall = z.infer<typeof LatestExampleEndpointCallSchema>;\n\nexport const LatestEndpointDefinitionSchema = z.object({\n description: z.string().nullish(),\n subtitle: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n namespace: z.array(z.string()).nullish(),\n id: EndpointIdSchema,\n method: HttpMethodSchema,\n path: z.array(PathPartSchema),\n displayName: z.string().nullish(),\n operationId: z.string().nullish(),\n auth: z.array(AuthSchemeIdSchema).nullish(),\n multiAuth: z.array(MultipleAuthTypeSchema).nullish(),\n defaultEnvironment: EnvironmentIdSchema.nullish(),\n environments: z.array(EnvironmentSchema).nullish(),\n pathParameters: z.array(LatestParameterPropertySchema).nullish(),\n queryParameters: z.array(LatestParameterPropertySchema).nullish(),\n requestHeaders: z.array(LatestObjectPropertySchema).nullish(),\n responseHeaders: z.array(LatestObjectPropertySchema).nullish(),\n requests: z.array(LatestHttpRequestSchema).nullish(),\n responses: z.array(LatestHttpResponseSchema).nullish(),\n errors: z.array(LatestErrorResponseSchema).nullish(),\n examples: z.array(LatestExampleEndpointCallSchema).nullish(),\n protocol: ProtocolSchema.nullish(),\n includeInApiExplorer: z.boolean().nullish(),\n snippetTemplates: z.unknown().nullish()\n});\nexport type LatestEndpointDefinition = z.infer<typeof LatestEndpointDefinitionSchema>;\n\n// ── Latest graphql ───────────────────────────────────────────────────────\n\nexport const LatestGraphQlOperationTypeSchema = z.enum([\"QUERY\", \"MUTATION\", \"SUBSCRIPTION\"]);\nexport type LatestGraphQlOperationType = z.infer<typeof LatestGraphQlOperationTypeSchema>;\n\nexport const LatestGraphQlArgumentSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n name: z.string(),\n type: LatestTypeShapeSchema,\n defaultValue: z.unknown().nullish()\n});\nexport type LatestGraphQlArgument = z.infer<typeof LatestGraphQlArgumentSchema>;\n\nexport const LatestGraphQlExampleSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n query: z.string(),\n variables: z.record(z.string(), z.unknown()).nullish(),\n response: z.unknown().nullish()\n});\nexport type LatestGraphQlExample = z.infer<typeof LatestGraphQlExampleSchema>;\n\nexport const LatestGraphQlOperationSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n namespace: z.array(z.string()).nullish(),\n fieldPath: z.array(z.string()).nullish(),\n id: GraphQlOperationIdSchema,\n operationType: LatestGraphQlOperationTypeSchema,\n name: z.string(),\n displayName: z.string().nullish(),\n arguments: z.array(LatestGraphQlArgumentSchema).nullish(),\n returnType: LatestTypeShapeSchema,\n examples: z.array(LatestGraphQlExampleSchema).nullish(),\n snippets: z.record(LatestLanguageSchema, z.array(LatestCodeSnippetSchema)).nullish()\n});\nexport type LatestGraphQlOperation = z.infer<typeof LatestGraphQlOperationSchema>;\n\n// ── Latest webhook ───────────────────────────────────────────────────────\n\nexport type LatestWebhookPayloadShape =\n | ({ type: \"object\" } & LatestObjectType)\n | { type: \"alias\"; value: LatestTypeReference }\n | ({ type: \"formData\" } & z.infer<typeof LatestFormDataRequestSchema>);\n\nexport const LatestWebhookPayloadShapeSchema: z.ZodType<LatestWebhookPayloadShape> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"object\"),\n extends: z.array(TypeIdSchema),\n properties: z.array(LatestObjectPropertySchema),\n extraProperties: LatestTypeReferenceSchema.nullish()\n }),\n z.object({ type: z.literal(\"alias\"), value: LatestTypeReferenceSchema }),\n z.object({ type: z.literal(\"formData\"), ...LatestFormDataRequestSchema.shape })\n ])\n);\n\nexport const LatestWebhookPayloadSchema = z.object({\n description: z.string().nullish(),\n shape: LatestWebhookPayloadShapeSchema\n});\nexport type LatestWebhookPayload = z.infer<typeof LatestWebhookPayloadSchema>;\n\nexport const LatestExampleWebhookPayloadSchema = z.object({\n name: z.string().nullish(),\n payload: z.unknown()\n});\nexport type LatestExampleWebhookPayload = z.infer<typeof LatestExampleWebhookPayloadSchema>;\n\nexport const LatestWebhookDefinitionSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n namespace: z.array(z.string()).nullish(),\n id: WebhookIdSchema,\n displayName: z.string().nullish(),\n operationId: z.string().nullish(),\n method: WebhookHttpMethodSchema,\n path: z.array(z.string()),\n headers: z.array(LatestObjectPropertySchema).nullish(),\n payloads: z.array(LatestWebhookPayloadSchema).nullish(),\n responses: z.array(LatestHttpResponseSchema).nullish(),\n examples: z.array(LatestExampleWebhookPayloadSchema).nullish()\n});\nexport type LatestWebhookDefinition = z.infer<typeof LatestWebhookDefinitionSchema>;\n\n// ── Latest websocket ─────────────────────────────────────────────────────\n\nexport const LatestWebSocketMessageSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n type: WebSocketMessageIdSchema,\n displayName: z.string().nullish(),\n origin: WebSocketMessageOriginSchema,\n body: LatestTypeShapeSchema\n});\nexport type LatestWebSocketMessage = z.infer<typeof LatestWebSocketMessageSchema>;\n\nexport const LatestExampleWebSocketMessageSchema = z.object({\n type: WebSocketMessageIdSchema,\n body: z.unknown()\n});\nexport type LatestExampleWebSocketMessage = z.infer<typeof LatestExampleWebSocketMessageSchema>;\n\nexport const LatestExampleWebSocketSessionSchema = z.object({\n description: z.string().nullish(),\n path: z.string(),\n name: z.string().nullish(),\n pathParameters: z.record(PropertyKeySchema, z.unknown()).nullish(),\n queryParameters: z.record(PropertyKeySchema, z.unknown()).nullish(),\n requestHeaders: z.record(PropertyKeySchema, z.unknown()).nullish(),\n messages: z.array(LatestExampleWebSocketMessageSchema).nullish()\n});\nexport type LatestExampleWebSocketSession = z.infer<typeof LatestExampleWebSocketSessionSchema>;\n\nexport const LatestWebSocketChannelSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n namespace: z.array(z.string()).nullish(),\n id: WebSocketIdSchema,\n displayName: z.string().nullish(),\n operationId: z.string().nullish(),\n path: z.array(PathPartSchema),\n messages: z.array(LatestWebSocketMessageSchema),\n auth: z.array(AuthSchemeIdSchema).nullish(),\n defaultEnvironment: EnvironmentIdSchema.nullish(),\n environments: z.array(EnvironmentSchema).nullish(),\n pathParameters: z.array(LatestParameterPropertySchema).nullish(),\n queryParameters: z.array(LatestParameterPropertySchema).nullish(),\n requestHeaders: z.array(LatestObjectPropertySchema).nullish(),\n examples: z.array(LatestExampleWebSocketSessionSchema).nullish()\n});\nexport type LatestWebSocketChannel = z.infer<typeof LatestWebSocketChannelSchema>;\n\n// ── Latest SubpackageMetadata & ApiDefinition ────────────────────────────\n\nexport const LatestSubpackageMetadataSchema = z.object({\n id: SubpackageIdSchema,\n name: z.string(),\n displayName: z.string().nullish()\n});\nexport type LatestSubpackageMetadata = z.infer<typeof LatestSubpackageMetadataSchema>;\n\n// Import SnippetsConfigSchema from contract-register\nimport { SnippetsConfigSchema } from \"./contract-register.js\";\n\nexport const LatestApiDefinitionSchema = z.object({\n id: z.string(),\n apiName: z.string().nullish(),\n endpoints: z.record(EndpointIdSchema, LatestEndpointDefinitionSchema),\n websockets: z.record(WebSocketIdSchema, LatestWebSocketChannelSchema),\n webhooks: z.record(WebhookIdSchema, LatestWebhookDefinitionSchema),\n graphqlOperations: z.record(GraphQlOperationIdSchema, LatestGraphQlOperationSchema),\n types: z.record(TypeIdSchema, LatestTypeDefinitionSchema),\n subpackages: z.record(SubpackageIdSchema, LatestSubpackageMetadataSchema),\n auths: z.record(AuthSchemeIdSchema, LatestAuthSchemeSchema),\n globalHeaders: z.array(LatestObjectPropertySchema).nullish(),\n snippetsConfiguration: SnippetsConfigSchema.nullish()\n});\nexport type LatestApiDefinition = z.infer<typeof LatestApiDefinitionSchema>;\n\n// Alias for backward compatibility (consumers use FdrAPI.api.latest.ApiDefinition)\nexport type ApiDefinition = LatestApiDefinition;\nexport const ApiDefinitionSchema = LatestApiDefinitionSchema;\n","import * as z from \"zod\";\nimport { ApiDefinitionIdSchema, HttpMethod, HttpMethodSchema } from \"../shared.js\";\n\nexport { ApiDefinitionIdSchema, HttpMethod, HttpMethodSchema };\n\nexport const TypeIdSchema = z.string();\nexport type TypeId = z.infer<typeof TypeIdSchema>;\nexport function TypeId(value: string): TypeId {\n return value;\n}\n\nexport const EndpointIdSchema = z.string();\nexport type EndpointId = z.infer<typeof EndpointIdSchema>;\nexport function EndpointId(value: string): EndpointId {\n return value;\n}\n\nexport const WebSocketIdSchema = z.string();\nexport type WebSocketId = z.infer<typeof WebSocketIdSchema>;\nexport function WebSocketId(value: string): WebSocketId {\n return value;\n}\n\nexport const WebhookIdSchema = z.string();\nexport type WebhookId = z.infer<typeof WebhookIdSchema>;\nexport function WebhookId(value: string): WebhookId {\n return value;\n}\n\nexport const GraphQlOperationIdSchema = z.string();\nexport type GraphQlOperationId = z.infer<typeof GraphQlOperationIdSchema>;\nexport function GraphQlOperationId(value: string): GraphQlOperationId {\n return value;\n}\n\nexport const GraphQlTypeCategorySchema = z.enum([\"object\", \"input\", \"enum\", \"scalar\", \"interface\", \"union\"]);\nexport type GraphQlTypeCategory = z.infer<typeof GraphQlTypeCategorySchema>;\n\nexport const EnvironmentIdSchema = z.string();\nexport type EnvironmentId = z.infer<typeof EnvironmentIdSchema>;\nexport function EnvironmentId(value: string): EnvironmentId {\n return value;\n}\n\nexport const PropertyKeySchema = z.string();\nexport type PropertyKey = z.infer<typeof PropertyKeySchema>;\nexport function PropertyKey(value: string): PropertyKey {\n return value;\n}\n\nexport const AuthSchemeIdSchema = z.string();\nexport type AuthSchemeId = z.infer<typeof AuthSchemeIdSchema>;\nexport function AuthSchemeId(value: string): AuthSchemeId {\n return value;\n}\n\nexport const SubpackageIdSchema = z.string();\nexport type SubpackageId = z.infer<typeof SubpackageIdSchema>;\nexport function SubpackageId(value: string): SubpackageId {\n return value;\n}\n\nexport const WebSocketMessageIdSchema = z.string();\nexport type WebSocketMessageId = z.infer<typeof WebSocketMessageIdSchema>;\nexport function WebSocketMessageId(value: string): WebSocketMessageId {\n return value;\n}\n\nexport const FileIdSchema: z.ZodType<FileId> = z.string() as any;\nexport type FileId = string & { FileId: void };\nexport function FileId(value: string): FileId {\n return value as unknown as FileId;\n}\n\nexport const MultipleAuthTypeSchema = z.object({\n schemes: z.array(AuthSchemeIdSchema)\n});\nexport type MultipleAuthType = z.infer<typeof MultipleAuthTypeSchema>;\n\nexport const GrpcMethodSchema = z.enum([\"UNARY\", \"CLIENT_STREAM\", \"SERVER_STREAM\", \"BIDIRECTIONAL_STREAM\"]);\n\nexport const AvailabilitySchema = z.enum([\n \"Alpha\",\n \"Stable\",\n \"GenerallyAvailable\",\n \"InDevelopment\",\n \"PreRelease\",\n \"Deprecated\",\n \"Beta\",\n \"Preview\",\n \"Legacy\"\n]);\n\nexport const WebSocketMessageOriginSchema = z.enum([\"client\", \"server\"]);\nexport type WebSocketMessageOrigin = z.infer<typeof WebSocketMessageOriginSchema>;\n\nexport const WebhookHttpMethodSchema = z.enum([\"GET\", \"POST\"]);\nexport type WebhookHttpMethod = z.infer<typeof WebhookHttpMethodSchema>;\n\nexport const WithDescriptionSchema = z.object({\n description: z.string().nullish()\n});\nexport type WithDescription = z.infer<typeof WithDescriptionSchema>;\n\nexport const WithAvailabilitySchema = z.object({\n availability: AvailabilitySchema.nullish()\n});\nexport type WithAvailability = z.infer<typeof WithAvailabilitySchema>;\n\nexport const EnvironmentSchema = z.object({\n id: EnvironmentIdSchema,\n baseUrl: z.string(),\n audiences: z.array(z.string()).nullish()\n});\nexport type Environment = z.infer<typeof EnvironmentSchema>;\n\nexport const RestProtocolSchema = z.object({});\n\nexport const OpenRpcProtocolSchema = z.object({\n methodName: z.string()\n});\n\nexport const GrpcProtocolSchema = z.object({\n methodName: z.string(),\n methodType: GrpcMethodSchema.nullish()\n});\n\nexport const ProtocolSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"rest\"), ...RestProtocolSchema.shape }),\n z.object({ type: z.literal(\"openrpc\"), ...OpenRpcProtocolSchema.shape }),\n z.object({ type: z.literal(\"grpc\"), ...GrpcProtocolSchema.shape })\n]);\nexport type Protocol = z.infer<typeof ProtocolSchema>;\n\nexport const ObjectPropertyAccessSchema = z.enum([\"READ_ONLY\", \"WRITE_ONLY\"]);\nexport type ObjectPropertyAccess = z.infer<typeof ObjectPropertyAccessSchema>;\n\nexport const TypeReferenceIdDefaultSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"enum\"), value: z.string() })\n]);\nexport type TypeReferenceIdDefault = z.infer<typeof TypeReferenceIdDefaultSchema>;\n\nconst _numberNullish = z.number().nullish();\nconst _numberIntNullish = z.number().int().nullish();\n\nfunction coerceNumber(val: unknown): unknown {\n if (typeof val === \"string\" && val.trim() !== \"\") {\n const num = Number(val);\n if (!Number.isNaN(num)) {\n return num;\n }\n }\n return val;\n}\n\nconst coercedNumberNullish = z.preprocess(coerceNumber, z.number().nullish()) as unknown as typeof _numberNullish;\nconst coercedNumberIntNullish = z.preprocess(\n coerceNumber,\n z.number().int().nullish()\n) as unknown as typeof _numberIntNullish;\n\nexport const IntegerTypeSchema = z.object({\n minimum: coercedNumberIntNullish,\n maximum: coercedNumberIntNullish,\n exclusiveMinimum: coercedNumberIntNullish,\n exclusiveMaximum: coercedNumberIntNullish,\n multipleOf: coercedNumberIntNullish,\n default: coercedNumberIntNullish\n});\nexport type IntegerType = z.infer<typeof IntegerTypeSchema>;\n\nexport const DoubleTypeSchema = z.object({\n minimum: coercedNumberNullish,\n maximum: coercedNumberNullish,\n exclusiveMinimum: coercedNumberNullish,\n exclusiveMaximum: coercedNumberNullish,\n multipleOf: coercedNumberNullish,\n default: coercedNumberNullish\n});\nexport type DoubleType = z.infer<typeof DoubleTypeSchema>;\n\nexport const StringTypeSchema = z.object({\n format: z.string().nullish(),\n regex: z.string().nullish(),\n minLength: z.number().int().nullish(),\n maxLength: z.number().int().nullish(),\n default: z.string().nullish()\n});\nexport type StringType = z.infer<typeof StringTypeSchema>;\n\nexport const LongTypeSchema = z.object({\n minimum: coercedNumberNullish,\n maximum: coercedNumberNullish,\n exclusiveMinimum: coercedNumberNullish,\n exclusiveMaximum: coercedNumberNullish,\n multipleOf: coercedNumberNullish,\n default: coercedNumberNullish\n});\nexport type LongType = z.infer<typeof LongTypeSchema>;\n\nconst _booleanNullish = z.boolean().nullish();\n\nexport const BooleanTypeSchema = z.object({\n default: z.preprocess((val) => {\n if (typeof val === \"string\") {\n if (val.toLowerCase() === \"true\") {\n return true;\n }\n if (val.toLowerCase() === \"false\") {\n return false;\n }\n }\n return val;\n }, z.boolean().nullish()) as unknown as typeof _booleanNullish\n});\nexport type BooleanType = z.infer<typeof BooleanTypeSchema>;\n\nexport const DatetimeTypeSchema = z.object({\n default: z.string().nullish()\n});\nexport type DatetimeType = z.infer<typeof DatetimeTypeSchema>;\n\nexport const UuidTypeSchema = z.object({\n default: z.string().nullish()\n});\nexport type UuidType = z.infer<typeof UuidTypeSchema>;\n\nexport const Base64TypeSchema = z.object({\n default: z.string().nullish(),\n mimeType: z.string().nullish()\n});\nexport type Base64Type = z.infer<typeof Base64TypeSchema>;\n\nexport const DateTypeSchema = z.object({\n default: z.string().nullish()\n});\nexport type DateType = z.infer<typeof DateTypeSchema>;\n\nexport const BigIntegerTypeSchema = z.object({\n default: z.string().nullish()\n});\nexport type BigIntegerType = z.infer<typeof BigIntegerTypeSchema>;\n\nexport const UintTypeSchema = z.object({\n minimum: coercedNumberIntNullish,\n maximum: coercedNumberIntNullish,\n exclusiveMinimum: coercedNumberIntNullish,\n exclusiveMaximum: coercedNumberIntNullish,\n multipleOf: coercedNumberIntNullish,\n default: coercedNumberIntNullish\n});\nexport type UintType = z.infer<typeof UintTypeSchema>;\n\nexport const Uint64TypeSchema = z.object({\n minimum: coercedNumberNullish,\n maximum: coercedNumberNullish,\n exclusiveMinimum: coercedNumberNullish,\n exclusiveMaximum: coercedNumberNullish,\n multipleOf: coercedNumberNullish,\n default: coercedNumberNullish\n});\nexport type Uint64Type = z.infer<typeof Uint64TypeSchema>;\n\nexport const ScalarTypeSchema = z.object({\n name: z.string(),\n description: z.string().nullish(),\n default: z.unknown().nullish()\n});\nexport type ScalarType = z.infer<typeof ScalarTypeSchema>;\n\nexport const PrimitiveTypeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"integer\"), ...IntegerTypeSchema.shape }),\n z.object({ type: z.literal(\"double\"), ...DoubleTypeSchema.shape }),\n z.object({ type: z.literal(\"string\"), ...StringTypeSchema.shape }),\n z.object({ type: z.literal(\"long\"), ...LongTypeSchema.shape }),\n z.object({ type: z.literal(\"boolean\"), ...BooleanTypeSchema.shape }),\n z.object({ type: z.literal(\"datetime\"), ...DatetimeTypeSchema.shape }),\n z.object({ type: z.literal(\"uuid\"), ...UuidTypeSchema.shape }),\n z.object({ type: z.literal(\"base64\"), ...Base64TypeSchema.shape }),\n z.object({ type: z.literal(\"date\"), ...DateTypeSchema.shape }),\n z.object({ type: z.literal(\"bigInteger\"), ...BigIntegerTypeSchema.shape }),\n z.object({ type: z.literal(\"uint\"), ...UintTypeSchema.shape }),\n z.object({ type: z.literal(\"uint64\"), ...Uint64TypeSchema.shape }),\n z.object({ type: z.literal(\"scalar\"), ...ScalarTypeSchema.shape })\n]);\nexport type PrimitiveType = z.infer<typeof PrimitiveTypeSchema>;\n\nexport const LiteralTypeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"booleanLiteral\"), value: z.boolean() }),\n z.object({ type: z.literal(\"stringLiteral\"), value: z.string() })\n]);\nexport type LiteralType = z.infer<typeof LiteralTypeSchema>;\n\nexport type TypeReference =\n | TypeReference.Id\n | TypeReference.Primitive\n | TypeReference.Optional\n | TypeReference.Nullable\n | TypeReference.List\n | TypeReference.Set\n | TypeReference.Map\n | TypeReference.Literal\n | TypeReference.Unknown;\n\nexport namespace TypeReference {\n export interface Id {\n type: \"id\";\n value: string;\n default?: TypeReferenceIdDefault | null;\n }\n export interface Primitive {\n type: \"primitive\";\n value: PrimitiveType;\n }\n export interface Optional {\n type: \"optional\";\n itemType: TypeReference;\n defaultValue?: unknown | null;\n }\n export interface Nullable {\n type: \"nullable\";\n itemType: TypeReference;\n }\n export interface List {\n type: \"list\";\n itemType: TypeReference;\n minItems?: number | null;\n maxItems?: number | null;\n }\n export interface Set {\n type: \"set\";\n itemType: TypeReference;\n minItems?: number | null;\n maxItems?: number | null;\n }\n export interface Map {\n type: \"map\";\n keyType: TypeReference;\n valueType: TypeReference;\n minProperties?: number | null;\n maxProperties?: number | null;\n }\n export interface Literal {\n type: \"literal\";\n value: LiteralType;\n }\n export interface Unknown {\n type: \"unknown\";\n }\n}\n\nexport const TypeReferenceSchema: z.ZodType<TypeReference> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"id\"),\n value: TypeIdSchema,\n default: TypeReferenceIdDefaultSchema.nullish()\n }),\n z.object({\n type: z.literal(\"primitive\"),\n value: PrimitiveTypeSchema\n }),\n z.object({\n type: z.literal(\"optional\"),\n itemType: TypeReferenceSchema,\n defaultValue: z.unknown().nullish()\n }),\n z.object({\n type: z.literal(\"nullable\"),\n itemType: TypeReferenceSchema\n }),\n z.object({\n type: z.literal(\"list\"),\n itemType: TypeReferenceSchema,\n minItems: z.number().int().nullish(),\n maxItems: z.number().int().nullish()\n }),\n z.object({\n type: z.literal(\"set\"),\n itemType: TypeReferenceSchema,\n minItems: z.number().int().nullish(),\n maxItems: z.number().int().nullish()\n }),\n z.object({\n type: z.literal(\"map\"),\n keyType: TypeReferenceSchema,\n valueType: TypeReferenceSchema,\n minProperties: z.number().int().nullish(),\n maxProperties: z.number().int().nullish()\n }),\n z.object({\n type: z.literal(\"literal\"),\n value: LiteralTypeSchema\n }),\n z.object({\n type: z.literal(\"unknown\")\n })\n ])\n);\n\nexport interface GraphQlArgument {\n description?: string | null;\n availability?: z.infer<typeof AvailabilitySchema> | null;\n name: string;\n type: TypeReference;\n defaultValue?: unknown | null;\n}\nexport const GraphQlArgumentSchema: z.ZodType<GraphQlArgument> = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n name: z.string(),\n type: TypeReferenceSchema,\n defaultValue: z.unknown().nullish()\n});\n\nexport const ObjectPropertySchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n valueType: TypeReferenceSchema,\n propertyAccess: ObjectPropertyAccessSchema.nullish(),\n arguments: z.array(GraphQlArgumentSchema).nullish()\n});\nexport type ObjectProperty = z.infer<typeof ObjectPropertySchema>;\n\nexport const ObjectTypeSchema = z.object({\n extends: z.array(TypeIdSchema),\n properties: z.array(ObjectPropertySchema),\n extraProperties: TypeReferenceSchema.nullish()\n});\nexport type ObjectType = z.infer<typeof ObjectTypeSchema>;\n\nexport const EnumValueSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n value: z.string()\n});\nexport type EnumValue = z.infer<typeof EnumValueSchema>;\n\nexport const EnumTypeSchema = z.object({\n default: z.string().nullish(),\n values: z.array(EnumValueSchema)\n});\nexport type EnumType = z.infer<typeof EnumTypeSchema>;\n\nexport const DiscriminatedUnionVariantSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n discriminantValue: z.string(),\n displayName: z.string().nullish(),\n additionalProperties: ObjectTypeSchema\n});\nexport type DiscriminatedUnionVariant = z.infer<typeof DiscriminatedUnionVariantSchema>;\n\nexport const DiscriminatedUnionTypeSchema = z.object({\n discriminant: z.string(),\n variants: z.array(DiscriminatedUnionVariantSchema)\n});\nexport type DiscriminatedUnionType = z.infer<typeof DiscriminatedUnionTypeSchema>;\n\nexport const ContentTypeSchema = z.union([z.string(), z.array(z.string())]);\nexport type ContentType = z.infer<typeof ContentTypeSchema>;\n\nexport const FilePropertySingleSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n isOptional: z.boolean(),\n contentType: ContentTypeSchema.nullish()\n});\nexport type FilePropertySingle = z.infer<typeof FilePropertySingleSchema>;\n\nexport const FilePropertyArraySchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n isOptional: z.boolean(),\n contentType: ContentTypeSchema.nullish()\n});\nexport type FilePropertyArray = z.infer<typeof FilePropertyArraySchema>;\n\nexport const FormDataFilePropertySchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"file\"), ...FilePropertySingleSchema.shape }),\n z.object({ type: z.literal(\"fileArray\"), ...FilePropertyArraySchema.shape })\n]);\nexport type FormDataFileProperty = z.infer<typeof FormDataFilePropertySchema>;\n\nexport const FormDataBodyPropertySchema = z.object({\n ...ObjectPropertySchema.shape,\n contentType: ContentTypeSchema.nullish(),\n exploded: z.boolean().nullish()\n});\nexport type FormDataBodyProperty = z.infer<typeof FormDataBodyPropertySchema>;\n\nexport const FormDataPropertySchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"file\"), value: FormDataFilePropertySchema }),\n z.object({ type: z.literal(\"bodyProperty\"), ...FormDataBodyPropertySchema.shape })\n]);\nexport type FormDataProperty = z.infer<typeof FormDataPropertySchema>;\n\nexport const FormDataRequestSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n name: z.string(),\n properties: z.array(FormDataPropertySchema)\n});\nexport type FormDataRequest = z.infer<typeof FormDataRequestSchema>;\n\nexport const EndpointPathPartSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"literal\"), value: z.string() }),\n z.object({ type: z.literal(\"pathParameter\"), value: PropertyKeySchema })\n]);\nexport type EndpointPathPart = z.infer<typeof EndpointPathPartSchema>;\n\nexport const PathParameterSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: PropertyKeySchema,\n type: TypeReferenceSchema,\n explode: z.boolean().nullish()\n});\nexport type PathParameter = z.infer<typeof PathParameterSchema>;\n\nexport const EndpointPathSchema = z.object({\n parts: z.array(EndpointPathPartSchema),\n pathParameters: z.array(PathParameterSchema)\n});\nexport type EndpointPath = z.infer<typeof EndpointPathSchema>;\n\nexport const QueryParameterSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: z.string(),\n type: TypeReferenceSchema,\n explode: z.boolean().nullish()\n});\nexport type QueryParameter = z.infer<typeof QueryParameterSchema>;\n\nexport const HeaderSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n key: z.string(),\n type: TypeReferenceSchema\n});\nexport type Header = z.infer<typeof HeaderSchema>;\n\nexport const JsonBodyShapeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"object\"), ...ObjectTypeSchema.shape }),\n z.object({ type: z.literal(\"reference\"), value: TypeReferenceSchema })\n]);\nexport type JsonBodyShape = z.infer<typeof JsonBodyShapeSchema>;\n\nexport const FileDownloadResponseBodyShapeSchema = z.object({\n contentType: z.string().nullish()\n});\nexport type FileDownloadResponseBodyShape = z.infer<typeof FileDownloadResponseBodyShapeSchema>;\n\nexport const StreamResponseV2Schema = z.object({\n terminator: z.string().nullish(),\n shape: JsonBodyShapeSchema\n});\nexport type StreamResponseV2 = z.infer<typeof StreamResponseV2Schema>;\n\nexport const StreamConditionSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"booleanRequestProperty\"), value: PropertyKeySchema })\n]);\nexport type StreamCondition = z.infer<typeof StreamConditionSchema>;\n\nexport const FilenameWithDataSchema = z.object({\n filename: z.string(),\n data: FileIdSchema\n});\nexport type FilenameWithData = z.infer<typeof FilenameWithDataSchema>;\n\nexport const FormValueSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() }),\n z.object({ type: z.literal(\"filename\"), value: z.string() }),\n z.object({ type: z.literal(\"filenames\"), value: z.array(z.string()) }),\n z.object({ type: z.literal(\"filenameWithData\"), ...FilenameWithDataSchema.shape }),\n z.object({ type: z.literal(\"filenamesWithData\"), value: z.array(FilenameWithDataSchema) }),\n z.object({ type: z.literal(\"exploded\"), value: z.array(z.unknown()) })\n]);\nexport type FormValue = z.infer<typeof FormValueSchema>;\n\nexport const BytesValueSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"base64\"), value: z.string() })\n]);\nexport type BytesValue = z.infer<typeof BytesValueSchema>;\n\n// The form variant uses z.unknown() for record values instead of FormValueSchema to be\n// forward-compatible with new form value types and to tolerate form values produced by\n// the AI example enhancer (which may not conform to the strict FormValueSchema).\n// Example data is display-only and does not require strict validation at registration time.\nexport const ExampleEndpointRequestSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() }),\n z.object({ type: z.literal(\"form\"), value: z.record(z.string(), z.unknown()) }),\n z.object({ type: z.literal(\"bytes\"), value: BytesValueSchema })\n]);\nexport type ExampleEndpointRequest = z.infer<typeof ExampleEndpointRequestSchema>;\n\nexport const ExampleServerSentEventSchema = z.object({\n event: z.string(),\n data: z.unknown()\n});\nexport type ExampleServerSentEvent = z.infer<typeof ExampleServerSentEventSchema>;\n\nexport const ExampleEndpointResponseSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() }),\n z.object({ type: z.literal(\"filename\"), value: z.unknown() }),\n z.object({ type: z.literal(\"stream\"), value: z.array(z.unknown()) }),\n z.object({ type: z.literal(\"sse\"), value: z.array(ExampleServerSentEventSchema) })\n]);\nexport type ExampleEndpointResponse = z.infer<typeof ExampleEndpointResponseSchema>;\n\nexport const ErrorDeclarationSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n type: TypeReferenceSchema.nullish(),\n statusCode: z.number().int()\n});\nexport type ErrorDeclaration = z.infer<typeof ErrorDeclarationSchema>;\n\nexport const ExampleErrorResponseSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), value: z.unknown() })\n]);\nexport type ExampleErrorResponse = z.infer<typeof ExampleErrorResponseSchema>;\n\nexport const ErrorExampleSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n responseBody: ExampleErrorResponseSchema\n});\nexport type ErrorExample = z.infer<typeof ErrorExampleSchema>;\n\nexport const GraphQlOperationTypeSchema = z.enum([\"QUERY\", \"MUTATION\", \"SUBSCRIPTION\"]);\nexport type GraphQlOperationType = z.infer<typeof GraphQlOperationTypeSchema>;\n\nexport const GraphQlExampleSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n query: z.string(),\n variables: z.record(z.string(), z.unknown()).nullish(),\n response: z.unknown().nullish()\n});\nexport type GraphQlExample = z.infer<typeof GraphQlExampleSchema>;\n\nexport const CodeSnippetSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n language: z.string(),\n install: z.string().nullish(),\n code: z.string(),\n generated: z.boolean()\n});\nexport type CodeSnippet = z.infer<typeof CodeSnippetSchema>;\n\nexport const GraphQlOperationSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n id: GraphQlOperationIdSchema,\n operationType: GraphQlOperationTypeSchema,\n name: z.string(),\n displayName: z.string().nullish(),\n fieldPath: z.array(z.string()).nullish(),\n arguments: z.array(GraphQlArgumentSchema).nullish(),\n returnType: TypeReferenceSchema,\n examples: z.array(GraphQlExampleSchema).nullish(),\n snippets: z.record(z.string(), z.array(CodeSnippetSchema)).nullish()\n});\nexport type GraphQlOperation = z.infer<typeof GraphQlOperationSchema>;\n\nexport const WebhookPayloadShapeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"object\"), ...ObjectTypeSchema.shape }),\n z.object({ type: z.literal(\"reference\"), value: TypeReferenceSchema }),\n z.object({ type: z.literal(\"formData\"), ...FormDataRequestSchema.shape })\n]);\nexport type WebhookPayloadShape = z.infer<typeof WebhookPayloadShapeSchema>;\n\nexport const WebhookPayloadSchema = z.object({\n description: z.string().nullish(),\n type: WebhookPayloadShapeSchema\n});\nexport type WebhookPayload = z.infer<typeof WebhookPayloadSchema>;\n\nexport const ExampleWebhookPayloadSchema = z.object({\n name: z.string().nullish(),\n payload: z.unknown()\n});\nexport type ExampleWebhookPayload = z.infer<typeof ExampleWebhookPayloadSchema>;\n\nexport const WebSocketMessageBodyShapeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"object\"), ...ObjectTypeSchema.shape }),\n z.object({ type: z.literal(\"reference\"), value: TypeReferenceSchema })\n]);\nexport type WebSocketMessageBodyShape = z.infer<typeof WebSocketMessageBodyShapeSchema>;\n\nexport const WebSocketMessageSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n type: WebSocketMessageIdSchema,\n displayName: z.string().nullish(),\n origin: WebSocketMessageOriginSchema,\n body: WebSocketMessageBodyShapeSchema\n});\nexport type WebSocketMessage = z.infer<typeof WebSocketMessageSchema>;\n\nexport const ExampleWebSocketMessageSchema = z.object({\n type: WebSocketMessageIdSchema,\n body: z.unknown()\n});\nexport type ExampleWebSocketMessage = z.infer<typeof ExampleWebSocketMessageSchema>;\n\nexport const ExampleWebSocketSessionSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n path: z.string(),\n pathParameters: z.record(PropertyKeySchema, z.unknown()),\n queryParameters: z.record(z.string(), z.unknown()),\n headers: z.record(z.string(), z.unknown()),\n messages: z.array(ExampleWebSocketMessageSchema)\n});\nexport type ExampleWebSocketSession = z.infer<typeof ExampleWebSocketSessionSchema>;\n\nexport type ApiNavigationConfigItem =\n | ApiNavigationConfigItem.Subpackage\n | ApiNavigationConfigItem.EndpointId\n | ApiNavigationConfigItem.WebsocketId\n | ApiNavigationConfigItem.WebhookId\n | ApiNavigationConfigItem.GraphqlOperationId;\n\nexport namespace ApiNavigationConfigItem {\n export interface Subpackage {\n type: \"subpackage\";\n subpackageId: string;\n items: ApiNavigationConfigItem[];\n }\n export interface EndpointId {\n type: \"endpointId\";\n value: string;\n }\n export interface WebsocketId {\n type: \"websocketId\";\n value: string;\n }\n export interface WebhookId {\n type: \"webhookId\";\n value: string;\n }\n export interface GraphqlOperationId {\n type: \"graphqlOperationId\";\n value: string;\n }\n}\n\nexport const ApiNavigationConfigItemSchema: z.ZodType<ApiNavigationConfigItem> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"subpackage\"),\n subpackageId: SubpackageIdSchema,\n items: z.array(ApiNavigationConfigItemSchema)\n }),\n z.object({ type: z.literal(\"endpointId\"), value: EndpointIdSchema }),\n z.object({ type: z.literal(\"websocketId\"), value: WebSocketIdSchema }),\n z.object({ type: z.literal(\"webhookId\"), value: WebhookIdSchema }),\n z.object({ type: z.literal(\"graphqlOperationId\"), value: GraphQlOperationIdSchema })\n ])\n);\n\nexport const ApiNavigationConfigRootSchema = z.object({\n items: z.array(ApiNavigationConfigItemSchema)\n});\nexport type ApiNavigationConfigRoot = z.infer<typeof ApiNavigationConfigRootSchema>;\n\nexport const BearerAuthSchema = z.object({\n description: z.string().nullish(),\n tokenName: z.string().nullish()\n});\nexport type BearerAuth = z.infer<typeof BearerAuthSchema>;\n\nexport const BasicAuthSchema = z.object({\n description: z.string().nullish(),\n usernameName: z.string().nullish(),\n passwordName: z.string().nullish(),\n passwordAlwaysEmpty: z.boolean().nullish()\n});\nexport type BasicAuth = z.infer<typeof BasicAuthSchema>;\n\nexport const HeaderAuthSchema = z.object({\n description: z.string().nullish(),\n nameOverride: z.string().nullish(),\n headerWireValue: z.string(),\n prefix: z.string().nullish()\n});\nexport type HeaderAuth = z.infer<typeof HeaderAuthSchema>;\n\nexport const OAuthClientCredentialsReferencedEndpointSchema = z.object({\n description: z.string().nullish(),\n endpointId: EndpointIdSchema,\n accessTokenLocator: z.string(),\n headerName: z.string().nullish(),\n tokenPrefix: z.string().nullish()\n});\nexport type OAuthClientCredentialsReferencedEndpoint = z.infer<typeof OAuthClientCredentialsReferencedEndpointSchema>;\n\nexport const OAuthClientCredentialsSchema = z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"referencedEndpoint\"),\n ...OAuthClientCredentialsReferencedEndpointSchema.shape\n })\n]);\nexport type OAuthClientCredentials = z.infer<typeof OAuthClientCredentialsSchema>;\n\nexport const OAuthSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"clientCredentials\"), value: OAuthClientCredentialsSchema })\n]);\nexport type OAuth = z.infer<typeof OAuthSchema>;\n\nexport const ApiAuthSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"bearerAuth\"), ...BearerAuthSchema.shape }),\n z.object({ type: z.literal(\"basicAuth\"), ...BasicAuthSchema.shape }),\n z.object({ type: z.literal(\"header\"), ...HeaderAuthSchema.shape }),\n z.object({ type: z.literal(\"oAuth\"), value: OAuthSchema })\n]);\nexport type ApiAuth = z.infer<typeof ApiAuthSchema>;\n","import * as z from \"zod\";\n\n// ── Org / API identifiers ──────────────────────────────────────────────\n\nexport const OrgIdSchema = z.string();\nexport type OrgId = z.infer<typeof OrgIdSchema>;\nexport function OrgId(value: string): OrgId {\n return value;\n}\n\nexport const ApiIdSchema = z.string();\nexport type ApiId = z.infer<typeof ApiIdSchema>;\nexport function ApiId(value: string): ApiId {\n return value;\n}\n\nexport const ApiDefinitionIdSchema = z.string().uuid();\nexport type ApiDefinitionId = z.infer<typeof ApiDefinitionIdSchema>;\nexport function ApiDefinitionId(value: string): ApiDefinitionId {\n return value;\n}\n\n// ── HTTP / Endpoint schemas ─────────────────────────────────────────────\n\nexport const HttpMethodSchema = z.enum([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"HEAD\"]);\nexport type HttpMethod = z.infer<typeof HttpMethodSchema>;\n\nexport const HttpMethod = {\n Get: \"GET\",\n Post: \"POST\",\n Put: \"PUT\",\n Patch: \"PATCH\",\n Delete: \"DELETE\",\n Head: \"HEAD\"\n} as const;\n\nexport const UrlSchema: z.ZodType<Url> = z.string() as any;\nexport type Url = string & { Url: void };\nexport function Url(value: string): Url {\n return value as unknown as Url;\n}\n\nexport const EndpointPathLiteralSchema = z.string();\nexport type EndpointPathLiteral = z.infer<typeof EndpointPathLiteralSchema>;\nexport function EndpointPathLiteral(value: string): EndpointPathLiteral {\n return value;\n}\n\nexport const EndpointIdentifierSchema = z.object({\n path: z.string(),\n method: HttpMethodSchema,\n identifierOverride: z.string().nullish()\n});\nexport type EndpointIdentifier = z.infer<typeof EndpointIdentifierSchema>;\n\n// ── SDK request schema ──────────────────────────────────────────────────\n\nexport type SdkRequest =\n | { type: \"typescript\"; package: string; version: string | undefined }\n | { type: \"python\"; package: string; version: string | undefined }\n | { type: \"go\"; githubRepo: string; version: string | undefined }\n | { type: \"ruby\"; gem: string; version: string | undefined }\n | { type: \"java\"; group: string; artifact: string; version: string | undefined }\n | { type: \"csharp\"; package: string; version: string | undefined };\n\nexport const SdkRequestSchema: z.ZodType<SdkRequest> = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"typescript\"), package: z.string(), version: z.string().nullish() }),\n z.object({ type: z.literal(\"python\"), package: z.string(), version: z.string().nullish() }),\n z.object({ type: z.literal(\"go\"), githubRepo: z.string(), version: z.string().nullish() }),\n z.object({ type: z.literal(\"ruby\"), gem: z.string(), version: z.string().nullish() }),\n z.object({\n type: z.literal(\"java\"),\n group: z.string(),\n artifact: z.string(),\n version: z.string().nullish()\n }),\n z.object({ type: z.literal(\"csharp\"), package: z.string(), version: z.string().nullish() })\n]) as any;\n\n// ── Additional identifiers ─────────────────────────────────────────────\n\nexport const DocsConfigIdSchema = z.string();\nexport type DocsConfigId = z.infer<typeof DocsConfigIdSchema>;\nexport function DocsConfigId(value: string): DocsConfigId {\n return value;\n}\n\nexport const GrpcIdSchema = z.string();\nexport type GrpcId = z.infer<typeof GrpcIdSchema>;\nexport function GrpcId(value: string): GrpcId {\n return value;\n}\n\nexport const PageIdSchema = z.string();\nexport type PageId = z.infer<typeof PageIdSchema>;\nexport function PageId(value: string): PageId {\n return value;\n}\n\nexport const RoleIdSchema = z.string();\nexport type RoleId = z.infer<typeof RoleIdSchema>;\nexport function RoleId(value: string): RoleId {\n return value;\n}\n\nexport const TokenIdSchema = z.string();\nexport type TokenId = z.infer<typeof TokenIdSchema>;\n\nexport const VersionIdSchema = z.string();\nexport type VersionId = z.infer<typeof VersionIdSchema>;\nexport function VersionId(value: string): VersionId {\n return value;\n}\n\n// ── Enums ──────────────────────────────────────────────────────────────\n\nexport const LinkTarget = {\n Blank: \"_blank\",\n Self: \"_self\",\n Parent: \"_parent\",\n Top: \"_top\"\n} as const;\nexport type LinkTarget = (typeof LinkTarget)[keyof typeof LinkTarget];\n\nexport const GrpcMethod = {\n Unary: \"UNARY\",\n ClientStream: \"CLIENT_STREAM\",\n ServerStream: \"SERVER_STREAM\",\n BidirectionalStream: \"BIDIRECTIONAL_STREAM\"\n} as const;\nexport type GrpcMethod = (typeof GrpcMethod)[keyof typeof GrpcMethod];\n\nexport const Availability = {\n Alpha: \"Alpha\",\n Stable: \"Stable\",\n GenerallyAvailable: \"GenerallyAvailable\",\n InDevelopment: \"InDevelopment\",\n PreRelease: \"PreRelease\",\n Deprecated: \"Deprecated\",\n Beta: \"Beta\",\n Preview: \"Preview\",\n Legacy: \"Legacy\"\n} as const;\nexport type Availability = (typeof Availability)[keyof typeof Availability];\n\nexport const SupportedLanguage = {\n Curl: \"curl\",\n Python: \"python\",\n Javascript: \"javascript\",\n Js: \"js\",\n Node: \"node\",\n Typescript: \"typescript\",\n Ts: \"ts\",\n Go: \"go\",\n Ruby: \"ruby\",\n Csharp: \"csharp\",\n Php: \"php\",\n Swift: \"swift\",\n Rust: \"rust\"\n} as const;\nexport type SupportedLanguage = (typeof SupportedLanguage)[keyof typeof SupportedLanguage];\n\nexport const HttpSnippetLanguage = {\n Curl: \"curl\",\n Csharp: \"csharp\",\n Go: \"go\",\n Java: \"java\",\n Javascript: \"javascript\",\n Php: \"php\",\n Python: \"python\",\n Ruby: \"ruby\",\n Swift: \"swift\",\n Rust: \"rust\",\n Typescript: \"typescript\"\n} as const;\nexport type HttpSnippetLanguage = (typeof HttpSnippetLanguage)[keyof typeof HttpSnippetLanguage];\n\n// ── Error types ────────────────────────────────────────────────────────\n\nexport interface InvalidDomainErrorBody {\n /** Value the domain should end with (i.e. docs.buildwithfern.com or dev.docs.buildwithfern.com) */\n requiredDomainSuffix: string;\n}\n\n// ── Docs types ─────────────────────────────────────────────────────────\n\nexport interface AnnouncementConfig {\n /** The text to display in the banner, using markdown. */\n text: string;\n}\n\n// ── Snippet types ──────────────────────────────────────────────────────\n\nexport type SnippetsByEndpointMethod = Partial<Record<HttpMethod, Snippet[]>>;\n\nexport const SnippetsByEndpointMethodSchema: z.ZodType<SnippetsByEndpointMethod> = z.record(\n HttpMethodSchema,\n z.array(z.unknown())\n) as any;\n\n// ── SDK types for snippets ────────────────────────────────────────────\n\nexport interface TypeScriptSdk {\n package: string;\n version: string;\n}\n\nexport interface PythonSdk {\n package: string;\n version: string;\n}\n\nexport interface GoSdk {\n githubRepo: string;\n version: string;\n}\n\nexport interface RubySdk {\n gem: string;\n version: string;\n}\n\nexport interface CsharpSdk {\n package: string;\n version: string;\n}\n\nexport interface JavaSdk {\n group: string;\n artifact: string;\n version: string;\n}\n\nexport interface TypeScriptSnippet {\n sdk: TypeScriptSdk;\n client: string;\n}\n\nexport interface PythonSnippet {\n sdk: PythonSdk;\n async_client: string;\n sync_client: string;\n}\n\nexport interface GoSnippet {\n sdk: GoSdk;\n client: string;\n}\n\nexport interface RubySnippet {\n sdk: RubySdk;\n client: string;\n}\n\nexport interface CsharpSnippet {\n sdk: CsharpSdk;\n client: string;\n}\n\nexport interface JavaSnippet {\n sdk: JavaSdk;\n async_client: string;\n sync_client: string;\n}\n\n// ── Snippet discriminated union ───────────────────────────────────────\n\n// ── Snippet code types (used to deserialize snippet data from DB) ────\n\nexport interface TypeScriptSnippetCode {\n client: string;\n}\n\nexport interface PythonSnippetCode {\n async_client: string;\n sync_client: string;\n}\n\nexport interface GoSnippetCode {\n client: string;\n}\n\nexport interface RubySnippetCode {\n client: string;\n}\n\nexport interface JavaSnippetCode {\n async_client: string;\n sync_client: string;\n}\n\nexport interface CsharpSnippetCode {\n client: string;\n}\n\n// ── Sdk type (SdkRequest with required version) ─────────────────────\n\nexport const SdkSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"typescript\"), package: z.string(), version: z.string() }),\n z.object({ type: z.literal(\"python\"), package: z.string(), version: z.string() }),\n z.object({ type: z.literal(\"go\"), githubRepo: z.string(), version: z.string() }),\n z.object({ type: z.literal(\"ruby\"), gem: z.string(), version: z.string() }),\n z.object({\n type: z.literal(\"java\"),\n group: z.string(),\n artifact: z.string(),\n version: z.string()\n }),\n z.object({ type: z.literal(\"csharp\"), package: z.string(), version: z.string() })\n]);\nexport type Sdk = z.infer<typeof SdkSchema>;\n\n// ── Template type (generic template placeholder) ────────────────────\nexport type Template = unknown;\n\nexport type Snippet = Snippet.Typescript | Snippet.Python | Snippet.Java | Snippet.Go | Snippet.Ruby | Snippet.Csharp;\n\nexport namespace Snippet {\n interface _Base {\n exampleIdentifier: string | undefined;\n }\n\n export interface Typescript extends TypeScriptSnippet, _Base {\n type: \"typescript\";\n }\n\n export interface Python extends PythonSnippet, _Base {\n type: \"python\";\n }\n\n export interface Java extends JavaSnippet, _Base {\n type: \"java\";\n }\n\n export interface Go extends GoSnippet, _Base {\n type: \"go\";\n }\n\n export interface Ruby extends RubySnippet, _Base {\n type: \"ruby\";\n }\n\n export interface Csharp extends CsharpSnippet, _Base {\n type: \"csharp\";\n }\n}\n","import * as z from \"zod\";\nimport type { DiscriminatedUnionType, EnumType, ObjectType, TypeReference } from \"./shared.js\";\nimport {\n ApiAuthSchema,\n ApiDefinitionIdSchema,\n ApiNavigationConfigRootSchema,\n AuthSchemeIdSchema,\n AvailabilitySchema,\n DiscriminatedUnionTypeSchema,\n EndpointIdSchema,\n EndpointPathSchema,\n EnumTypeSchema,\n EnvironmentIdSchema,\n EnvironmentSchema,\n ErrorDeclarationSchema,\n ErrorExampleSchema,\n ExampleEndpointRequestSchema,\n ExampleEndpointResponseSchema,\n ExampleWebhookPayloadSchema,\n ExampleWebSocketSessionSchema,\n FileDownloadResponseBodyShapeSchema,\n FormDataRequestSchema,\n GraphQlOperationSchema,\n HeaderSchema,\n HttpMethodSchema,\n JsonBodyShapeSchema,\n MultipleAuthTypeSchema,\n ObjectTypeSchema,\n PropertyKeySchema,\n ProtocolSchema,\n QueryParameterSchema,\n StreamConditionSchema,\n StreamResponseV2Schema,\n SubpackageIdSchema,\n TypeIdSchema,\n TypeReferenceSchema,\n WebhookHttpMethodSchema,\n WebhookIdSchema,\n WebhookPayloadSchema,\n WebSocketIdSchema,\n WebSocketMessageSchema\n} from \"./shared.js\";\n\n// ── Register commons ─────────────────────────────────────────────────────\n\nexport const JqStringSchema = z.string();\nexport type JqString = z.infer<typeof JqStringSchema>;\n\nexport const RegisterLanguageSchema = z.string();\nexport type RegisterLanguage = z.infer<typeof RegisterLanguageSchema>;\n\n// ── Register type ────────────────────────────────────────────────────────\n\nexport const RegisterUndiscriminatedUnionVariantSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n typeName: z.string().nullish(),\n type: TypeReferenceSchema,\n displayName: z.string().nullish()\n});\nexport type RegisterUndiscriminatedUnionVariant = z.infer<typeof RegisterUndiscriminatedUnionVariantSchema>;\n\nexport const RegisterUndiscriminatedUnionTypeSchema = z.object({\n variants: z.array(RegisterUndiscriminatedUnionVariantSchema)\n});\nexport type RegisterUndiscriminatedUnionType = z.infer<typeof RegisterUndiscriminatedUnionTypeSchema>;\n\nexport type RegisterTypeShape =\n | RegisterTypeShape.Alias\n | RegisterTypeShape.Enum\n | RegisterTypeShape.UndiscriminatedUnion\n | RegisterTypeShape.DiscriminatedUnion\n | RegisterTypeShape.Object_;\n\nexport namespace RegisterTypeShape {\n export interface Alias {\n type: \"alias\";\n value: TypeReference;\n }\n export interface Enum extends EnumType {\n type: \"enum\";\n }\n export interface UndiscriminatedUnion extends RegisterUndiscriminatedUnionType {\n type: \"undiscriminatedUnion\";\n }\n export interface DiscriminatedUnion extends DiscriminatedUnionType {\n type: \"discriminatedUnion\";\n }\n export interface Object_ extends ObjectType {\n type: \"object\";\n }\n}\n\nexport const RegisterTypeShapeSchema: z.ZodType<RegisterTypeShape> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"alias\"),\n value: TypeReferenceSchema\n }),\n z.object({\n type: z.literal(\"enum\"),\n ...EnumTypeSchema.shape\n }),\n z.object({\n type: z.literal(\"undiscriminatedUnion\"),\n ...RegisterUndiscriminatedUnionTypeSchema.shape\n }),\n z.object({\n type: z.literal(\"discriminatedUnion\"),\n ...DiscriminatedUnionTypeSchema.shape\n }),\n z.object({\n type: z.literal(\"object\"),\n ...ObjectTypeSchema.shape\n })\n ])\n);\n\nexport const RegisterTypeDefinitionSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n name: z.string(),\n shape: RegisterTypeShapeSchema,\n displayName: z.string().nullish()\n});\nexport type RegisterTypeDefinition = z.infer<typeof RegisterTypeDefinitionSchema>;\n\nexport const RegisterBytesRequestSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n isOptional: z.boolean(),\n contentType: z.string().nullish()\n});\nexport type RegisterBytesRequest = z.infer<typeof RegisterBytesRequestSchema>;\n\n// ── Register endpoint ────────────────────────────────────────────────────\n\nexport const RegisterJsonRequestBodySchema = z.object({\n contentType: z.string(),\n shape: JsonBodyShapeSchema\n});\nexport type RegisterJsonRequestBody = z.infer<typeof RegisterJsonRequestBodySchema>;\n\nexport const RegisterHttpRequestBodyShapeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"json\"), ...RegisterJsonRequestBodySchema.shape }),\n z.object({ type: z.literal(\"formData\"), ...FormDataRequestSchema.shape }),\n z.object({ type: z.literal(\"bytes\"), ...RegisterBytesRequestSchema.shape }),\n z.object({ type: z.literal(\"object\"), ...ObjectTypeSchema.shape }),\n z.object({ type: z.literal(\"reference\"), value: TypeReferenceSchema }),\n z.object({ type: z.literal(\"fileUpload\"), value: FormDataRequestSchema.nullish() })\n]);\nexport type RegisterHttpRequestBodyShape = z.infer<typeof RegisterHttpRequestBodyShapeSchema>;\n\nexport const RegisterHttpRequestSchema = z.object({\n description: z.string().nullish(),\n type: RegisterHttpRequestBodyShapeSchema\n});\nexport type RegisterHttpRequest = z.infer<typeof RegisterHttpRequestSchema>;\n\nexport const RegisterHttpRequestsV2Schema = z.object({\n requests: z.array(RegisterHttpRequestSchema).nullish()\n});\nexport type RegisterHttpRequestsV2 = z.infer<typeof RegisterHttpRequestsV2Schema>;\n\nexport const RegisterCustomCodeSampleSchema = z.object({\n description: z.string().nullish(),\n language: z.string(),\n code: z.string(),\n name: z.string().nullish(),\n install: z.string().nullish()\n});\nexport type RegisterCustomCodeSample = z.infer<typeof RegisterCustomCodeSampleSchema>;\n\nexport const RegisterExampleEndpointCallSchema = z.object({\n description: z.string().nullish(),\n name: z.string().nullish(),\n path: z.string(),\n pathParameters: z.record(PropertyKeySchema, z.unknown()),\n queryParameters: z.record(z.string(), z.unknown()),\n headers: z.record(z.string(), z.unknown()),\n requestBody: z.unknown(),\n requestBodyV3: ExampleEndpointRequestSchema.nullish(),\n responseStatusCode: z.number().int(),\n responseBody: z.unknown(),\n responseBodyV3: ExampleEndpointResponseSchema.nullish(),\n codeSamples: z.array(RegisterCustomCodeSampleSchema).nullish()\n});\nexport type RegisterExampleEndpointCall = z.infer<typeof RegisterExampleEndpointCallSchema>;\n\nexport const RegisterNonStreamResponseSchema = z.object({\n shape: JsonBodyShapeSchema,\n examples: z.array(RegisterExampleEndpointCallSchema)\n});\nexport type RegisterNonStreamResponse = z.infer<typeof RegisterNonStreamResponseSchema>;\n\nexport const RegisterStreamResponseSchema = z.object({\n shape: JsonBodyShapeSchema,\n examples: z.array(RegisterExampleEndpointCallSchema)\n});\nexport type RegisterStreamResponse = z.infer<typeof RegisterStreamResponseSchema>;\n\nexport const RegisterStreamConditionResponseSchema = z.object({\n response: RegisterNonStreamResponseSchema,\n streamResponse: RegisterStreamResponseSchema,\n streamCondition: StreamConditionSchema\n});\nexport type RegisterStreamConditionResponse = z.infer<typeof RegisterStreamConditionResponseSchema>;\n\nexport const RegisterHttpResponseBodyShapeSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"object\"), ...ObjectTypeSchema.shape }),\n z.object({ type: z.literal(\"reference\"), value: TypeReferenceSchema }),\n z.object({ type: z.literal(\"fileDownload\"), ...FileDownloadResponseBodyShapeSchema.shape }),\n z.object({ type: z.literal(\"streamingText\") }),\n z.object({ type: z.literal(\"stream\"), ...StreamResponseV2Schema.shape }),\n z.object({ type: z.literal(\"streamCondition\"), ...RegisterStreamConditionResponseSchema.shape })\n]);\nexport type RegisterHttpResponseBodyShape = z.infer<typeof RegisterHttpResponseBodyShapeSchema>;\n\nexport const RegisterHttpResponseSchema = z.object({\n description: z.string().nullish(),\n type: RegisterHttpResponseBodyShapeSchema,\n statusCode: z.number().int().nullish(),\n isWildcard: z.boolean().nullish()\n});\nexport type RegisterHttpResponse = z.infer<typeof RegisterHttpResponseSchema>;\n\nexport const RegisterHttpResponsesV2Schema = z.object({\n responses: z.array(RegisterHttpResponseSchema).nullish()\n});\nexport type RegisterHttpResponsesV2 = z.infer<typeof RegisterHttpResponsesV2Schema>;\n\nexport const RegisterErrorDeclarationV2Schema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n type: RegisterTypeShapeSchema.nullish(),\n statusCode: z.number().int(),\n isWildcard: z.boolean().nullish(),\n name: z.string().nullish(),\n examples: z.array(ErrorExampleSchema).nullish(),\n headers: z.array(HeaderSchema).nullish()\n});\nexport type RegisterErrorDeclarationV2 = z.infer<typeof RegisterErrorDeclarationV2Schema>;\n\nexport const RegisterEndpointDefinitionSchema = z.object({\n description: z.string().nullish(),\n subtitle: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n slug: z.string().nullish(),\n auth: z.boolean().nullish(),\n authV2: z.array(AuthSchemeIdSchema).nullish(),\n multiAuth: z.array(MultipleAuthTypeSchema).nullish(),\n defaultEnvironment: EnvironmentIdSchema.nullish(),\n environments: z.array(EnvironmentSchema).nullish(),\n method: HttpMethodSchema,\n id: EndpointIdSchema,\n originalEndpointId: z.string().nullish(),\n name: z.string().nullish(),\n path: EndpointPathSchema,\n queryParameters: z.array(QueryParameterSchema),\n headers: z.array(HeaderSchema),\n responseHeaders: z.array(HeaderSchema).nullish(),\n request: RegisterHttpRequestSchema.nullish(),\n requestsV2: RegisterHttpRequestsV2Schema.nullish(),\n response: RegisterHttpResponseSchema.nullish(),\n responsesV2: RegisterHttpResponsesV2Schema.nullish(),\n errors: z.array(ErrorDeclarationSchema).nullish(),\n errorsV2: z.array(RegisterErrorDeclarationV2Schema).nullish(),\n examples: z.array(RegisterExampleEndpointCallSchema),\n protocol: ProtocolSchema.nullish(),\n includeInApiExplorer: z.boolean().nullish()\n});\nexport type RegisterEndpointDefinition = z.infer<typeof RegisterEndpointDefinitionSchema>;\n\n// ── Register webhook ─────────────────────────────────────────────────────\n\nexport const RegisterWebhookDefinitionSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n method: WebhookHttpMethodSchema,\n id: WebhookIdSchema,\n name: z.string().nullish(),\n path: z.array(z.string()),\n headers: z.array(HeaderSchema),\n payload: WebhookPayloadSchema,\n responses: z.array(RegisterHttpResponseSchema).nullish(),\n examples: z.array(ExampleWebhookPayloadSchema)\n});\nexport type RegisterWebhookDefinition = z.infer<typeof RegisterWebhookDefinitionSchema>;\n\n// ── Register websocket ───────────────────────────────────────────────────\n\nexport const RegisterWebSocketChannelSchema = z.object({\n description: z.string().nullish(),\n availability: AvailabilitySchema.nullish(),\n id: WebSocketIdSchema,\n auth: z.boolean(),\n name: z.string().nullish(),\n defaultEnvironment: EnvironmentIdSchema.nullish(),\n environments: z.array(EnvironmentSchema),\n path: EndpointPathSchema,\n headers: z.array(HeaderSchema),\n queryParameters: z.array(QueryParameterSchema),\n messages: z.array(WebSocketMessageSchema),\n examples: z.array(ExampleWebSocketSessionSchema)\n});\nexport type RegisterWebSocketChannel = z.infer<typeof RegisterWebSocketChannelSchema>;\n\n// ── Register index schemas ───────────────────────────────────────────────\n\nexport const SourceIdSchema = z.string();\nexport type SourceId = z.infer<typeof SourceIdSchema>;\nexport function SourceId(value: string): SourceId {\n return value;\n}\n\nexport const SourceSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"openapi\") }),\n z.object({ type: z.literal(\"asyncapi\") }),\n z.object({ type: z.literal(\"proto\") })\n]);\nexport type Source = z.infer<typeof SourceSchema>;\n\nexport const SourceUploadSchema = z.object({\n uploadUrl: z.string(),\n downloadUrl: z.string()\n});\nexport type SourceUpload = z.infer<typeof SourceUploadSchema>;\n\nexport const DynamicIRSchema = z.object({\n dynamicIR: z.unknown()\n});\nexport type DynamicIR = z.infer<typeof DynamicIRSchema>;\n\nexport const DynamicIRUploadSchema = z.object({\n uploadUrl: z.string()\n});\nexport type DynamicIRUpload = z.infer<typeof DynamicIRUploadSchema>;\n\nexport const TypescriptPackageSchema = z.object({\n package: z.string(),\n version: z.string().nullish()\n});\nexport type TypescriptPackage = z.infer<typeof TypescriptPackageSchema>;\n\nexport const PythonPackageSchema = z.object({\n package: z.string(),\n version: z.string().nullish()\n});\nexport type PythonPackage = z.infer<typeof PythonPackageSchema>;\n\nexport const GoModuleSchema = z.object({\n githubRepo: z.string(),\n version: z.string().nullish()\n});\nexport type GoModule = z.infer<typeof GoModuleSchema>;\n\nexport const JavaCoordinateSchema = z.object({\n coordinate: z.string(),\n version: z.string().nullish()\n});\nexport type JavaCoordinate = z.infer<typeof JavaCoordinateSchema>;\n\nexport const RubyGemSchema = z.object({\n gem: z.string(),\n version: z.string().nullish()\n});\nexport type RubyGem = z.infer<typeof RubyGemSchema>;\n\nexport const NugetPackageSchema = z.object({\n package: z.string(),\n version: z.string().nullish()\n});\nexport type NugetPackage = z.infer<typeof NugetPackageSchema>;\n\nexport const ComposerPackageSchema = z.object({\n package: z.string(),\n version: z.string().nullish()\n});\nexport type ComposerPackage = z.infer<typeof ComposerPackageSchema>;\n\nexport const SwiftPackageSchema = z.object({\n package: z.string(),\n version: z.string().nullish()\n});\nexport type SwiftPackage = z.infer<typeof SwiftPackageSchema>;\n\nexport const CratesPackageSchema = z.object({\n package: z.string(),\n version: z.string().nullish()\n});\nexport type CratesPackage = z.infer<typeof CratesPackageSchema>;\n\nexport const SnippetsConfigSchema = z.object({\n typescriptSdk: TypescriptPackageSchema.nullish(),\n pythonSdk: PythonPackageSchema.nullish(),\n goSdk: GoModuleSchema.nullish(),\n javaSdk: JavaCoordinateSchema.nullish(),\n rubySdk: RubyGemSchema.nullish(),\n csharpSdk: NugetPackageSchema.nullish(),\n phpSdk: ComposerPackageSchema.nullish(),\n swiftSdk: SwiftPackageSchema.nullish(),\n rustSdk: CratesPackageSchema.nullish()\n});\nexport type SnippetsConfig = z.infer<typeof SnippetsConfigSchema>;\n\nexport const RegisterApiDefinitionPackageSchema = z.object({\n endpoints: z.array(RegisterEndpointDefinitionSchema),\n websockets: z.array(RegisterWebSocketChannelSchema).nullish(),\n webhooks: z.array(RegisterWebhookDefinitionSchema).nullish(),\n graphqlOperations: z.array(GraphQlOperationSchema).nullish(),\n types: z.array(TypeIdSchema),\n subpackages: z.array(SubpackageIdSchema),\n pointsTo: SubpackageIdSchema.nullish()\n});\nexport type RegisterApiDefinitionPackage = z.infer<typeof RegisterApiDefinitionPackageSchema>;\n\nexport const RegisterApiDefinitionSubpackageSchema = z.object({\n ...RegisterApiDefinitionPackageSchema.shape,\n description: z.string().nullish(),\n subpackageId: SubpackageIdSchema,\n name: z.string(),\n displayName: z.string().nullish()\n});\nexport type RegisterApiDefinitionSubpackage = z.infer<typeof RegisterApiDefinitionSubpackageSchema>;\n\nexport const RegisterApiDefinitionSchema = z.object({\n rootPackage: RegisterApiDefinitionPackageSchema,\n apiName: z.string().nullish(),\n types: z.record(TypeIdSchema, RegisterTypeDefinitionSchema),\n subpackages: z.record(SubpackageIdSchema, RegisterApiDefinitionSubpackageSchema),\n auth: ApiAuthSchema.nullish(),\n authSchemes: z.record(AuthSchemeIdSchema, ApiAuthSchema).nullish(),\n globalHeaders: z.array(HeaderSchema).nullish(),\n snippetsConfiguration: SnippetsConfigSchema.nullish(),\n navigation: ApiNavigationConfigRootSchema.nullish()\n});\nexport type RegisterApiDefinition = z.infer<typeof RegisterApiDefinitionSchema>;\n\nexport const RegisterApiDefinitionResponseSchema = z.object({\n apiDefinitionId: ApiDefinitionIdSchema,\n sources: z.record(SourceIdSchema, SourceUploadSchema).nullish(),\n dynamicIRs: z.record(z.string(), DynamicIRUploadSchema).nullish()\n});\nexport type RegisterApiDefinitionResponse = z.infer<typeof RegisterApiDefinitionResponseSchema>;\n\nexport const SnippetInfoSchema = z.object({\n packageName: z.string(),\n version: z.string().nullish()\n});\nexport type SnippetInfo = z.infer<typeof SnippetInfoSchema>;\n\nexport const SdkDynamicIrDownloadSchema = z.object({\n downloadUrl: z.string()\n});\nexport type SdkDynamicIrDownload = z.infer<typeof SdkDynamicIrDownloadSchema>;\n\nexport const GetSdkDynamicIrUploadUrlsResponseSchema = z.object({\n uploadUrls: z.record(z.string(), DynamicIRUploadSchema)\n});\nexport type GetSdkDynamicIrUploadUrlsResponse = z.infer<typeof GetSdkDynamicIrUploadUrlsResponseSchema>;\n\nexport const CheckSdkDynamicIrExistsResponseSchema = z.object({\n existingDynamicIrs: z.record(z.string(), SdkDynamicIrDownloadSchema)\n});\nexport type CheckSdkDynamicIrExistsResponse = z.infer<typeof CheckSdkDynamicIrExistsResponseSchema>;\n\nexport const EndpointExampleGenerationErrorBodySchema = z.object({\n endpointId: z.string()\n});\nexport type EndpointExampleGenerationErrorBody = z.infer<typeof EndpointExampleGenerationErrorBodySchema>;\n","import * as Latest from \"./latest\";\n\n/**\n * The order of availability levels, from most stable to least stable.\n *\n * This is used to sort the availability levels in the UI, and to determine the stability level of a type reference when multiple are available.\n */\nexport const AvailabilityOrder = [\n Latest.Availability.Stable,\n Latest.Availability.GenerallyAvailable,\n Latest.Availability.Beta,\n Latest.Availability.Preview,\n Latest.Availability.PreRelease,\n Latest.Availability.Alpha,\n Latest.Availability.InDevelopment,\n Latest.Availability.Deprecated,\n Latest.Availability.Legacy\n] as const;\n\n/**\n * @param availabilities an array of availability levels\n * @returns the **least** stable availability level from the input array\n */\nexport function coalesceAvailability(\n availabilities: (Latest.Availability | null | undefined)[]\n): Latest.Availability | undefined {\n for (const availability of [...AvailabilityOrder].reverse()) {\n if (availabilities.includes(availability)) {\n return availability;\n }\n }\n return undefined;\n}\n\n// the following code is used to check that the contents of the AvailabilityOrder array contains all the values of the Availability enum\ntype AvailabilityValues = (typeof Latest.Availability)[keyof typeof Latest.Availability];\ntype CheckAvailabilityOrder<T extends readonly AvailabilityValues[]> = T[number] extends AvailabilityValues\n ? AvailabilityValues extends T[number]\n ? true\n : false\n : false;\ntype Assert<T extends true> = T;\nexport type CheckAssert = Assert<CheckAvailabilityOrder<typeof AvailabilityOrder>>;\n","import type { TypeId } from \"../navigation\";\nimport { LARGE_LOOP_TOLERANCE } from \"./const\";\nimport type { TypeDefinition } from \"./latest\";\nimport type { TypeShapeOrReference } from \"./types\";\nimport { unwrapObjectType, unwrapReference } from \"./unwrap\";\n\ninterface CollectReferencedTypeIdsOptions {\n maxDepth?: number;\n}\n\n/**\n * Collects all TypeIds that are referenced (directly or transitively) from a given type shape.\n * This is useful for filtering down a large types map to only the types needed for rendering\n * a specific schema, significantly reducing payload size.\n *\n * @param type - The root type shape to start traversal from\n * @param types - The full map of all type definitions\n * @param options - Optional configuration (maxDepth defaults to 10)\n * @returns A Set of TypeIds that are referenced from the root type\n */\nexport function collectReferencedTypeIds(\n type: TypeShapeOrReference,\n types: Record<TypeId, TypeDefinition>,\n { maxDepth = 10 }: CollectReferencedTypeIdsOptions = {}\n): Set<TypeId> {\n const referencedIds = new Set<TypeId>();\n\n const stack: {\n shape: TypeShapeOrReference;\n visitedTypeIds: Set<TypeId>;\n depth: number;\n }[] = [{ shape: type, visitedTypeIds: new Set(), depth: 0 }];\n\n let loop = 0;\n while (stack.length > 0) {\n if (loop++ > LARGE_LOOP_TOLERANCE) {\n console.error(\"Infinite loop detected when collecting referenced type IDs\");\n break;\n }\n\n const { shape, visitedTypeIds: parentVisitedTypeIds, depth } = stack.pop()!;\n\n if (depth > maxDepth) {\n continue;\n }\n\n const unwrapped = unwrapReference(shape, types);\n\n // Check for circular references\n let circularReferenceDetected = false;\n for (const typeId of unwrapped.visitedTypeIds) {\n if (parentVisitedTypeIds.has(typeId)) {\n circularReferenceDetected = true;\n break;\n }\n referencedIds.add(typeId);\n }\n\n if (circularReferenceDetected) {\n continue;\n }\n\n const visitedTypeIds = new Set([...parentVisitedTypeIds, ...unwrapped.visitedTypeIds]);\n\n // Handle object types - need to traverse properties and extended types\n if (unwrapped.shape.type === \"object\") {\n const obj = unwrapObjectType(unwrapped.shape, types, parentVisitedTypeIds);\n\n // Add type IDs from object unwrapping (extended types)\n for (const typeId of obj.visitedTypeIds) {\n referencedIds.add(typeId);\n visitedTypeIds.add(typeId);\n }\n\n // Traverse each property's value shape\n for (const property of obj.properties) {\n stack.push({\n shape: property.valueShape,\n visitedTypeIds,\n depth: depth + 1\n });\n // Traverse field arguments' type shapes\n if (property.arguments) {\n for (const arg of property.arguments) {\n stack.push({\n shape: arg.type,\n visitedTypeIds,\n depth: depth + 1\n });\n }\n }\n }\n\n // Traverse extra properties if present\n if (obj.extraProperties) {\n stack.push({\n shape: obj.extraProperties,\n visitedTypeIds,\n depth: depth + 1\n });\n }\n } else if (unwrapped.shape.type === \"undiscriminatedUnion\") {\n // Traverse each variant\n for (const variant of unwrapped.shape.variants) {\n stack.push({\n shape: variant.shape,\n visitedTypeIds,\n depth: depth + 1\n });\n }\n } else if (unwrapped.shape.type === \"discriminatedUnion\") {\n // Traverse each variant (variants extend ObjectType)\n for (const variant of unwrapped.shape.variants) {\n stack.push({\n shape: { ...variant, type: \"object\" },\n visitedTypeIds,\n depth: depth + 1\n });\n }\n } else if (unwrapped.shape.type === \"list\" || unwrapped.shape.type === \"set\") {\n // Traverse item shape\n stack.push({\n shape: unwrapped.shape.itemShape,\n visitedTypeIds,\n depth: depth + 1\n });\n } else if (unwrapped.shape.type === \"map\") {\n // Traverse both key and value shapes\n stack.push({\n shape: unwrapped.shape.keyShape,\n visitedTypeIds,\n depth: depth + 1\n });\n stack.push({\n shape: unwrapped.shape.valueShape,\n visitedTypeIds,\n depth: depth + 1\n });\n }\n // Primitives, enums, literals, and unknown types don't reference other types\n }\n\n return referencedIds;\n}\n\n/**\n * Filters a types map to only include types that are referenced from the given root type.\n * This is a convenience function that combines collectReferencedTypeIds with filtering.\n *\n * @param rootType - The root type shape to start traversal from\n * @param types - The full map of all type definitions\n * @param options - Optional configuration (maxDepth defaults to 10)\n * @returns A filtered types map containing only referenced types\n */\nexport function filterReferencedTypes(\n rootType: TypeShapeOrReference,\n types: Record<TypeId, TypeDefinition>,\n options?: CollectReferencedTypeIdsOptions\n): Record<TypeId, TypeDefinition> {\n const referencedIds = collectReferencedTypeIds(rootType, types, options);\n\n return Object.fromEntries(Object.entries(types).filter(([id]) => referencedIds.has(id as TypeId))) as Record<\n TypeId,\n TypeDefinition\n >;\n}\n","import type { Availability, TypeId } from \"../navigation\";\nimport { coalesceAvailability } from \"./availability\";\nimport { LARGE_LOOP_TOLERANCE } from \"./const\";\nimport type { ObjectProperty, TypeDefinition } from \"./latest\";\nimport type { TypeShapeOrReference } from \"./types\";\nimport { unwrapObjectType, unwrapReference } from \"./unwrap\";\n\n/**\n * A path through the type tree, used to identify a type definition.\n *\n * i.e. it may be represented as a jq:\n *\n * - a.b.c.d\n * - a[].b.c\n * - a.b[key].c\n *\n * We collect the true shape of the path here so that the frontend can determine how to render it.\n */\nexport type KeyPathItem =\n | { type: \"meta\"; value: string; displayName: string | null | undefined }\n | { type: \"objectProperty\"; key: string; optional: boolean | undefined }\n | { type: \"graphqlArgument\"; name: string; optional: boolean | undefined }\n | {\n type: \"undiscriminatedUnionVariant\";\n displayName: string | null | undefined;\n idx: number;\n }\n | {\n type: \"discriminatedUnionVariant\";\n discriminant: string;\n discriminantDisplayName: string | null | undefined;\n discriminantValue: string;\n }\n | { type: \"list\" | \"set\" | \"mapValue\" | \"extra\" }\n | { type: \"enumValue\"; value: string };\n\nexport interface TypeDefinitionTreeItem {\n /**\n * The path to the type definition\n */\n path: KeyPathItem[];\n descriptions: string[];\n availability: Availability | null | undefined;\n}\n\ninterface CollectTypeDefinitionTreeOptions {\n path?: KeyPathItem[];\n availability?: Availability | null;\n maxDepth?: number;\n}\n\n/**\n * This function is intended to be used to generate a tree of all type definitions, and is intended to be used\n * for indexing the type tree and their descriptions into algolia.\n */\nexport function collectTypeDefinitionTree(\n type: TypeShapeOrReference,\n types: Record<TypeId, TypeDefinition>,\n { availability: rootAvailability, maxDepth = 5, path: rootpath = [] }: CollectTypeDefinitionTreeOptions = {}\n): TypeDefinitionTreeItem[] {\n const toRet: TypeDefinitionTreeItem[] = [];\n\n const stack: {\n type: TypeShapeOrReference;\n path: KeyPathItem[];\n descriptions: string[];\n availability: Availability | null | undefined;\n visitedTypeIds: Set<TypeId>;\n }[] = [\n {\n type,\n path: rootpath,\n availability: rootAvailability,\n descriptions: [],\n visitedTypeIds: new Set()\n }\n ];\n\n let loop = 0;\n while (stack.length > 0) {\n if (loop++ > LARGE_LOOP_TOLERANCE) {\n console.error(\"Infinite loop detected when traversing type definitions\");\n break;\n }\n\n const {\n type: last,\n path: parentpath,\n descriptions: parentDescriptions,\n visitedTypeIds: parentVisitedTypeIds,\n availability: parentAvailability\n } = stack.pop()!;\n\n if (parentpath.length > maxDepth) {\n continue;\n }\n\n const unwrapped = unwrapReference(last, types);\n\n // the child's availability must be the least stable availability of the parent and the child\n const availability = coalesceAvailability([parentAvailability, unwrapped.availability]);\n const descriptions = [...parentDescriptions, ...unwrapped.descriptions];\n\n // check if this reference has been unwrapped already by its parents\n let circularReferenceDetected = false;\n unwrapped.visitedTypeIds.forEach((typeId) => {\n if (parentVisitedTypeIds.has(typeId)) {\n circularReferenceDetected = true;\n }\n });\n\n if (circularReferenceDetected) {\n continue;\n }\n\n const visitedTypeIds = new Set([...parentVisitedTypeIds, ...unwrapped.visitedTypeIds]);\n\n if (unwrapped.shape.type === \"object\") {\n const obj = unwrapObjectType(unwrapped.shape, types);\n descriptions.push(...obj.descriptions);\n\n obj.visitedTypeIds.forEach((typeId) => visitedTypeIds.add(typeId));\n\n obj.properties.forEach((property) => {\n stack.push({\n type: property.valueShape,\n path: [\n ...parentpath,\n {\n type: \"objectProperty\",\n key: property.key,\n optional: unwrapReference(property.valueShape, types).isOptional\n }\n ],\n descriptions: property.description ? [property.description] : [],\n visitedTypeIds,\n availability\n });\n property.arguments?.forEach((arg) => {\n stack.push({\n type: arg.type,\n path: [\n ...parentpath,\n {\n type: \"objectProperty\",\n key: property.key,\n optional: unwrapReference(property.valueShape, types).isOptional\n },\n {\n type: \"graphqlArgument\",\n name: arg.name,\n optional: unwrapReference(arg.type, types).isOptional\n }\n ],\n descriptions: arg.description ? [arg.description] : [],\n visitedTypeIds,\n availability: coalesceAvailability([availability, property.availability, arg.availability])\n });\n });\n });\n\n if (obj.extraProperties) {\n stack.push({\n type: obj.extraProperties,\n path: [...parentpath, { type: \"extra\" }],\n descriptions: [],\n visitedTypeIds,\n availability\n });\n }\n }\n\n toRet.push({\n path: parentpath,\n descriptions,\n availability\n });\n\n if (unwrapped.shape.type === \"undiscriminatedUnion\") {\n unwrapped.shape.variants.forEach((variant, idx) => {\n stack.push({\n type: variant.shape,\n path: [\n ...parentpath,\n {\n type: \"undiscriminatedUnionVariant\",\n displayName: variant.displayName,\n idx\n }\n ],\n descriptions: variant.description ? [variant.description] : [],\n visitedTypeIds,\n availability: coalesceAvailability([availability, variant.availability])\n });\n });\n } else if (unwrapped.shape.type === \"discriminatedUnion\") {\n const discriminant = unwrapped.shape.discriminant;\n\n unwrapped.shape.variants.forEach((variant) => {\n const path: KeyPathItem[] = [\n ...parentpath,\n {\n type: \"discriminatedUnionVariant\",\n discriminant,\n discriminantDisplayName: variant.displayName,\n discriminantValue: variant.discriminantValue\n }\n ];\n stack.push({\n type: { ...variant, type: \"object\" },\n path,\n descriptions: variant.description ? [variant.description] : [],\n visitedTypeIds,\n availability: coalesceAvailability([availability, variant.availability])\n });\n });\n } else if (unwrapped.shape.type === \"list\" || unwrapped.shape.type === \"set\") {\n stack.push({\n type: unwrapped.shape.itemShape,\n path: [...parentpath, { type: unwrapped.shape.type }],\n descriptions,\n visitedTypeIds,\n availability\n });\n } else if (unwrapped.shape.type === \"map\") {\n stack.push({\n type: unwrapped.shape.valueShape,\n path: [...parentpath, { type: \"mapValue\" }],\n // we don't need to add the descriptions of the key shape here, but the descriptions from the key are appended here:\n descriptions: [...descriptions, ...unwrapReference(unwrapped.shape.keyShape, types).descriptions],\n visitedTypeIds,\n availability\n });\n } else if (unwrapped.shape.type === \"enum\") {\n unwrapped.shape.values.forEach((value) => {\n toRet.push({\n path: [...parentpath, { type: \"enumValue\", value: value.value }],\n descriptions: value.description ? [value.description] : [],\n availability\n });\n });\n }\n }\n\n return toRet;\n}\n\nexport function collectTypeDefinitionTreeForObjectProperty(\n property: ObjectProperty,\n types: Record<TypeId, TypeDefinition>,\n rootPath: KeyPathItem[] = [],\n maxDepth = 5\n): TypeDefinitionTreeItem[] {\n return [\n {\n path: [\n ...rootPath,\n {\n type: \"objectProperty\",\n key: property.key,\n optional: unwrapReference(property.valueShape, types).isOptional\n }\n ],\n descriptions: property.description ? [property.description] : [],\n availability: property.availability ?? undefined\n },\n ...collectTypeDefinitionTree(property.valueShape, types, {\n maxDepth: maxDepth - 1,\n availability: property.availability ?? undefined,\n path: [\n ...rootPath,\n {\n type: \"objectProperty\",\n key: property.key,\n optional: unwrapReference(property.valueShape, types).isOptional\n }\n ]\n }),\n ...(property.arguments ?? []).flatMap((arg) => [\n {\n path: [\n ...rootPath,\n {\n type: \"objectProperty\" as const,\n key: property.key,\n optional: unwrapReference(property.valueShape, types).isOptional\n },\n {\n type: \"graphqlArgument\" as const,\n name: arg.name,\n optional: unwrapReference(arg.type, types).isOptional\n }\n ],\n descriptions: arg.description ? [arg.description] : [],\n availability: coalesceAvailability([property.availability, arg.availability])\n },\n ...collectTypeDefinitionTree(arg.type, types, {\n maxDepth: maxDepth - 1,\n availability: coalesceAvailability([property.availability, arg.availability]),\n path: [\n ...rootPath,\n {\n type: \"objectProperty\",\n key: property.key,\n optional: unwrapReference(property.valueShape, types).isOptional\n },\n {\n type: \"graphqlArgument\",\n name: arg.name,\n optional: unwrapReference(arg.type, types).isOptional\n }\n ]\n })\n ])\n ];\n}\n","import visitDiscriminatedUnion from \"@fern-api/ui-core-utils/visitDiscriminatedUnion\";\nimport { noop } from \"ts-essentials\";\n\nimport type * as Latest from \"./latest\";\n\nexport class ApiTypeIdVisitor {\n public static visitEndpointDefinition(\n endpoint: Latest.EndpointDefinition,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n endpoint.pathParameters?.forEach((pathParameter) => {\n ApiTypeIdVisitor.visitTypeShape(pathParameter.valueShape, visit);\n });\n endpoint.queryParameters?.forEach((queryParameter) => {\n ApiTypeIdVisitor.visitTypeShape(queryParameter.valueShape, visit);\n });\n endpoint.requestHeaders?.forEach((header) => {\n ApiTypeIdVisitor.visitTypeShape(header.valueShape, visit);\n });\n endpoint.responseHeaders?.forEach((header) => {\n ApiTypeIdVisitor.visitTypeShape(header.valueShape, visit);\n });\n endpoint.requests?.forEach((request) => {\n if (request.body != null) {\n ApiTypeIdVisitor.visitHttpRequestBodyShape(request.body, visit);\n }\n });\n endpoint.responses?.forEach((response) => {\n if (response.body != null) {\n ApiTypeIdVisitor.visitHttpResponseBodyShape(response.body, visit);\n }\n });\n endpoint.errors?.forEach((error) => {\n if (error.shape != null) {\n ApiTypeIdVisitor.visitTypeShape(error.shape, visit);\n }\n });\n }\n\n public static visitWebSocketChannel(\n channel: Latest.WebSocketChannel,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n channel.requestHeaders?.forEach((header) => {\n ApiTypeIdVisitor.visitTypeShape(header.valueShape, visit);\n });\n channel.pathParameters?.forEach((pathParameter) => {\n ApiTypeIdVisitor.visitTypeShape(pathParameter.valueShape, visit);\n });\n channel.queryParameters?.forEach((queryParameter) => {\n ApiTypeIdVisitor.visitTypeShape(queryParameter.valueShape, visit);\n });\n channel.messages.forEach((message) => {\n ApiTypeIdVisitor.visitTypeShape(message.body, visit);\n });\n }\n\n public static visitWebhookDefinition(\n webhook: Latest.WebhookDefinition,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n webhook.headers?.forEach((header) => {\n ApiTypeIdVisitor.visitTypeShape(header.valueShape, visit);\n });\n if (webhook.payloads?.[0] != null) {\n ApiTypeIdVisitor.visitWebhookPayloadShape(webhook.payloads[0].shape, visit);\n }\n webhook.responses?.forEach((response) => {\n if (response.body != null) {\n ApiTypeIdVisitor.visitHttpResponseBodyShape(response.body, visit);\n }\n });\n }\n\n public static visitGraphQlOperation(\n operation: Latest.GraphQlOperation,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n operation.arguments?.forEach((arg) => {\n ApiTypeIdVisitor.visitTypeShape(arg.type, visit);\n });\n ApiTypeIdVisitor.visitTypeShape(operation.returnType, visit);\n }\n\n public static visitWebhookPayloadShape(\n payloadShape: Latest.WebhookPayloadShape,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n return visitDiscriminatedUnion(payloadShape)._visit({\n object: (value) => ApiTypeIdVisitor.visitObjectType(value, visit),\n alias: (value) => ApiTypeIdVisitor.visitTypeReference(value.value, visit),\n formData: (value) => ApiTypeIdVisitor.visitFormDataRequest(value, visit)\n });\n }\n\n public static visitHttpRequestBodyShape(\n bodyShape: Latest.HttpRequestBodyShape,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n return visitDiscriminatedUnion(bodyShape)._visit({\n object: (value) => ApiTypeIdVisitor.visitObjectType(value, visit),\n alias: (value) => ApiTypeIdVisitor.visitTypeReference(value.value, visit),\n bytes: noop,\n formData: (value) => ApiTypeIdVisitor.visitFormDataRequest(value, visit)\n });\n }\n\n public static visitHttpResponseBodyShape(\n bodyShape: Latest.HttpResponseBodyShape,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n return visitDiscriminatedUnion(bodyShape)._visit({\n object: (value) => ApiTypeIdVisitor.visitObjectType(value, visit),\n alias: (value) => ApiTypeIdVisitor.visitTypeReference(value.value, visit),\n fileDownload: noop,\n streamingText: noop,\n stream: (value) => ApiTypeIdVisitor.visitTypeShape(value.shape, visit),\n empty: noop\n });\n }\n\n public static visitFormDataRequest(\n typeDefinition: Latest.FormDataRequest,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n return typeDefinition.fields.forEach((field) =>\n visitDiscriminatedUnion(field)._visit({\n file: noop,\n files: noop,\n property: (property) => ApiTypeIdVisitor.visitTypeShape(property.valueShape, visit)\n })\n );\n }\n\n public static visitTypeDefinition(\n typeDefinition: Latest.TypeDefinition,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n return ApiTypeIdVisitor.visitTypeShape(typeDefinition.shape, visit);\n }\n\n public static visitTypeShape(typeShape: Latest.TypeShape, visit: (typeId: Latest.TypeId) => void): void {\n return visitDiscriminatedUnion(typeShape)._visit({\n object: (value) => ApiTypeIdVisitor.visitObjectType(value, visit),\n alias: (value) => ApiTypeIdVisitor.visitTypeReference(value.value, visit),\n enum: noop,\n undiscriminatedUnion: (value) =>\n value.variants.forEach((variant) => ApiTypeIdVisitor.visitTypeShape(variant.shape, visit)),\n discriminatedUnion: (value) =>\n value.variants.forEach((variant) => ApiTypeIdVisitor.visitObjectType(variant, visit))\n });\n }\n\n public static visitObjectType(typeShape: Latest.ObjectType, visit: (typeId: Latest.TypeId) => void): void {\n typeShape.extends.forEach(visit);\n typeShape.properties.forEach((property) => {\n ApiTypeIdVisitor.visitTypeShape(property.valueShape, visit);\n property.arguments?.forEach((arg) => {\n ApiTypeIdVisitor.visitTypeShape(arg.type, visit);\n });\n });\n }\n\n public static visitTypeReference(\n typeReference: Latest.TypeReference,\n visit: (typeId: Latest.TypeId) => void\n ): void {\n return visitDiscriminatedUnion(typeReference)._visit({\n id: (value) => visit(value.id),\n primitive: noop,\n optional: (value) => ApiTypeIdVisitor.visitTypeShape(value.shape, visit),\n nullable: (value) => ApiTypeIdVisitor.visitTypeShape(value.shape, visit),\n list: (value) => ApiTypeIdVisitor.visitTypeShape(value.itemShape, visit),\n set: (value) => ApiTypeIdVisitor.visitTypeShape(value.itemShape, visit),\n map: (value) => {\n ApiTypeIdVisitor.visitTypeShape(value.keyShape, visit);\n ApiTypeIdVisitor.visitTypeShape(value.valueShape, visit);\n },\n literal: noop,\n unknown: noop\n });\n }\n}\n","import { LARGE_LOOP_TOLERANCE } from \"./const\";\nimport type * as Latest from \"./latest\";\nimport { EndpointId } from \"./latest\";\nimport { ApiTypeIdVisitor } from \"./typeid-visitor\";\n\nexport type PruningNodeType =\n | { type: \"endpoint\"; endpointId: Latest.EndpointId }\n | { type: \"webSocket\"; webSocketId: Latest.WebSocketId }\n | { type: \"webhook\"; webhookId: Latest.WebhookId }\n | { type: \"grpc\"; grpcId: Latest.GrpcId }\n | {\n type: \"graphql\";\n graphqlOperationId: Latest.GraphQlOperationId;\n graphqlOperationIds?: Latest.GraphQlOperationId[];\n };\n\nclass ApiDefinitionPruner {\n static instances = new WeakMap<Latest.ApiDefinition, ApiDefinitionPruner>();\n\n static from(api: Latest.ApiDefinition): ApiDefinitionPruner {\n const toRet = ApiDefinitionPruner.instances.get(api) ?? new ApiDefinitionPruner(api);\n ApiDefinitionPruner.instances.set(api, toRet);\n return toRet;\n }\n\n private constructor(private api: Latest.ApiDefinition) {}\n\n /**\n * This utility is designed to prune an API definition to only include the desired endpoints, websockets, and webhooks\n * based on the provided node of the navigation tree, which will reduce the size of the API definition that is sent to the client.\n *\n * @param node of the navigation tree to prune the API definition to\n * @returns a new API definition that is the result of pruning the input API definition to the desired node\n */\n public prune(...nodes: PruningNodeType[]): Latest.ApiDefinition {\n const toRet: Latest.ApiDefinition = {\n ...this.api,\n endpoints: {},\n websockets: {},\n webhooks: {},\n graphqlOperations: {},\n types: {},\n subpackages: {},\n auths: {}\n };\n\n const namespaces = new Set<Latest.SubpackageId>();\n const authSchemes = new Set<Latest.AuthSchemeId>();\n\n for (const node of nodes) {\n if (node.type === \"endpoint\") {\n const found = this.api.endpoints[node.endpointId];\n if (found) {\n toRet.endpoints[node.endpointId] = found;\n found.namespace?.forEach((subpackageId) => namespaces.add(subpackageId));\n found.auth?.forEach((authSchemeId) => authSchemes.add(authSchemeId));\n }\n } else if (node.type === \"webSocket\") {\n const found = this.api.websockets[node.webSocketId];\n if (found) {\n toRet.websockets[node.webSocketId] = found;\n found.namespace?.forEach((subpackageId) => namespaces.add(subpackageId));\n found.auth?.forEach((authSchemeId) => authSchemes.add(authSchemeId));\n }\n } else if (node.type === \"webhook\") {\n const found = this.api.webhooks[node.webhookId];\n if (found) {\n toRet.webhooks[node.webhookId] = found;\n found.namespace?.forEach((subpackageId) => namespaces.add(subpackageId));\n }\n } else if (node.type === \"grpc\") {\n const grpcIdAsEndpointId = EndpointId(node.grpcId);\n const found = this.api.endpoints[grpcIdAsEndpointId];\n if (found) {\n toRet.endpoints[grpcIdAsEndpointId] = found;\n found.namespace?.forEach((subpackageId) => namespaces.add(subpackageId));\n }\n } else if (node.type === \"graphql\") {\n const idsToInclude = node.graphqlOperationIds ?? [node.graphqlOperationId];\n for (const opId of idsToInclude) {\n const found = this.api.graphqlOperations[opId];\n if (found) {\n toRet.graphqlOperations[opId] = found;\n found.namespace?.forEach((subpackageId) => namespaces.add(subpackageId));\n }\n }\n }\n }\n\n toRet.types = this.pruneTypes(toRet);\n namespaces.forEach((subpackageId) => {\n const subpackage = this.api.subpackages[subpackageId];\n if (subpackage) {\n toRet.subpackages[subpackageId] = subpackage;\n }\n });\n authSchemes.forEach((authSchemeId) => {\n const authScheme = this.api.auths[authSchemeId];\n if (authScheme) {\n toRet.auths[authSchemeId] = authScheme;\n }\n });\n\n return toRet;\n }\n\n private pruneTypes(partiallyPrunedApi: Latest.ApiDefinition): Record<string, Latest.TypeDefinition> {\n let typeIds = new Set<Latest.TypeId>();\n partiallyPrunedApi.globalHeaders?.forEach((header) => {\n ApiTypeIdVisitor.visitTypeShape(header.valueShape, (typeId) => typeIds.add(typeId));\n });\n\n for (const endpoint of Object.values(partiallyPrunedApi.endpoints)) {\n ApiTypeIdVisitor.visitEndpointDefinition(endpoint, (typeId) => typeIds.add(typeId));\n }\n\n for (const websocket of Object.values(partiallyPrunedApi.websockets)) {\n ApiTypeIdVisitor.visitWebSocketChannel(websocket, (typeId) => typeIds.add(typeId));\n }\n\n for (const webhook of Object.values(partiallyPrunedApi.webhooks)) {\n ApiTypeIdVisitor.visitWebhookDefinition(webhook, (typeId) => typeIds.add(typeId));\n }\n\n for (const graphqlOperation of Object.values(partiallyPrunedApi.graphqlOperations)) {\n ApiTypeIdVisitor.visitGraphQlOperation(graphqlOperation, (typeId) => typeIds.add(typeId));\n }\n\n typeIds = this.expandTypeIds(typeIds);\n\n const types: Record<string, Latest.TypeDefinition> = {};\n\n typeIds.forEach((typeId) => {\n const type = this.api.types[typeId];\n if (type != null) {\n types[typeId] = type;\n }\n });\n\n return types;\n }\n\n private expandTypeIds(typeIds: ReadonlySet<Latest.TypeId>): Set<Latest.TypeId> {\n const visitedTypeIds = new Set<Latest.TypeId>();\n const queue = Array.from(typeIds);\n\n let loop = 0;\n while (queue.length > 0) {\n if (loop > LARGE_LOOP_TOLERANCE + typeIds.size) {\n throw new Error(\"Infinite loop detected while expanding type references.\");\n }\n\n const typeId = queue.pop();\n if (typeId != null && !visitedTypeIds.has(typeId)) {\n visitedTypeIds.add(typeId);\n const type = this.api.types[typeId];\n if (type) {\n ApiTypeIdVisitor.visitTypeDefinition(type, (nestedTypeId) => {\n queue.push(nestedTypeId);\n });\n }\n }\n\n loop++;\n }\n\n return visitedTypeIds;\n }\n}\n\nexport function prune(api: Latest.ApiDefinition, ...nodes: PruningNodeType[]): Latest.ApiDefinition {\n return ApiDefinitionPruner.from(api).prune(...nodes);\n}\n","import type { EndpointNode, GraphQlNode, GrpcNode, TypeId, WebhookNode, WebSocketNode } from \"../navigation\";\nimport type {\n ApiDefinition,\n AuthScheme,\n AuthSchemeId,\n EndpointDefinition,\n EndpointId,\n GraphQlOperation,\n ObjectProperty,\n TypeDefinition,\n WebhookDefinition,\n WebSocketChannel\n} from \"./latest\";\nimport { prune } from \"./prune\";\n\nexport type AuthSchemeWithKey = {\n key: AuthSchemeId;\n scheme: AuthScheme;\n};\n\nexport type AuthOptionEntry = {\n key: string;\n schemeIds: AuthSchemeId[];\n schemes: AuthScheme[];\n label: string;\n};\n\nexport type EndpointContext = {\n node: EndpointNode;\n endpoint: EndpointDefinition;\n globalHeaders: ObjectProperty[];\n auths: AuthScheme[];\n authsWithKeys: AuthSchemeWithKey[];\n authOptions: AuthScheme[][];\n authOptionEntries: AuthOptionEntry[];\n types: Record<TypeId, TypeDefinition>;\n};\n\nfunction getAuthSchemeLabel(scheme: AuthScheme): string {\n if (scheme.type === \"basicAuth\") {\n return \"Basic Auth\";\n }\n if (scheme.type === \"bearerAuth\") {\n return \"Bearer\";\n }\n if (scheme.type === \"header\") {\n return scheme.prefix || \"API Key\";\n }\n if (scheme.type === \"oAuth\") {\n return \"OAuth\";\n }\n return \"Auth\";\n}\n\nfunction constructAuthOptions(\n endpoint: EndpointDefinition,\n authsMap: Record<AuthSchemeId, AuthScheme>\n): AuthScheme[][] {\n if (endpoint.multiAuth != null && endpoint.multiAuth.length > 0) {\n return endpoint.multiAuth\n .map((multiAuthGroup) =>\n multiAuthGroup.schemes\n .map((schemeId) => authsMap[schemeId])\n .filter((scheme): scheme is AuthScheme => scheme != null)\n )\n .filter((group) => group.length > 0);\n }\n\n if (endpoint.auth != null && endpoint.auth.length > 0) {\n return endpoint.auth\n .map((schemeId) => {\n const scheme = authsMap[schemeId];\n return scheme ? [scheme] : null;\n })\n .filter((group): group is AuthScheme[] => group != null);\n }\n\n return [];\n}\n\nfunction constructAuthOptionEntries(\n endpoint: EndpointDefinition,\n authsMap: Record<AuthSchemeId, AuthScheme>\n): AuthOptionEntry[] {\n if (endpoint.multiAuth != null && endpoint.multiAuth.length > 0) {\n return endpoint.multiAuth\n .map((multiAuthGroup) => {\n const schemeIds = multiAuthGroup.schemes;\n const schemes = schemeIds\n .map((schemeId) => authsMap[schemeId])\n .filter((scheme): scheme is AuthScheme => scheme != null);\n\n if (schemes.length === 0) {\n return null;\n }\n\n const sortedSchemeIds = [...schemeIds].sort();\n const key = schemes.length === 1 ? String(schemeIds[0]) : `multi:${sortedSchemeIds.join(\"+\")}`;\n const label = schemes.map(getAuthSchemeLabel).join(\" + \");\n\n return {\n key,\n schemeIds,\n schemes,\n label\n };\n })\n .filter((entry): entry is AuthOptionEntry => entry != null);\n }\n\n if (endpoint.auth != null && endpoint.auth.length > 0) {\n return endpoint.auth\n .map((schemeId) => {\n const scheme = authsMap[schemeId];\n if (!scheme) {\n return null;\n }\n return {\n key: String(schemeId),\n schemeIds: [schemeId],\n schemes: [scheme],\n label: getAuthSchemeLabel(scheme)\n };\n })\n .filter((entry): entry is AuthOptionEntry => entry != null);\n }\n\n return [];\n}\n\nexport function createEndpointContext(\n node: EndpointNode | undefined,\n apiDefinition: ApiDefinition | undefined\n): EndpointContext | undefined {\n if (!node) {\n console.warn(\"[createEndpointContext] node is undefined\");\n return undefined;\n }\n if (apiDefinition == null) {\n console.warn(\n `[createEndpointContext] apiDefinition is undefined for node id=${node.id}, endpointId=${node.endpointId}`\n );\n return undefined;\n }\n const api = prune(apiDefinition, node);\n const endpoint = api.endpoints[node.endpointId];\n if (!endpoint) {\n const availableEndpointIds = Object.keys(api.endpoints);\n console.warn(\n `[createEndpointContext] endpoint not found after pruning. endpointId=${node.endpointId}, apiDefinitionId=${node.apiDefinitionId}, availableEndpointIds=[${availableEndpointIds.join(\", \")}]`\n );\n return undefined;\n }\n return {\n node,\n endpoint,\n auths: endpoint.auth?.map((id) => api.auths[id]).filter((auth): auth is AuthScheme => auth != null) ?? [],\n authsWithKeys:\n endpoint.auth\n ?.map((id) => {\n const scheme = api.auths[id];\n return scheme ? { key: id, scheme } : null;\n })\n .filter((item): item is AuthSchemeWithKey => item != null) ?? [],\n authOptions: constructAuthOptions(endpoint, api.auths),\n authOptionEntries: constructAuthOptionEntries(endpoint, api.auths),\n globalHeaders: api.globalHeaders ?? [],\n types: api.types\n };\n}\n\nexport type WebSocketContext = {\n node: WebSocketNode;\n channel: WebSocketChannel;\n globalHeaders: ObjectProperty[];\n auths: AuthScheme[];\n authsWithKeys: AuthSchemeWithKey[];\n authOptions: AuthScheme[][];\n authOptionEntries: AuthOptionEntry[];\n types: Record<TypeId, TypeDefinition>;\n};\n\nfunction constructWebSocketAuthOptions(\n channel: WebSocketChannel,\n authsMap: Record<AuthSchemeId, AuthScheme>\n): AuthScheme[][] {\n if (channel.auth != null && channel.auth.length > 0) {\n return channel.auth\n .map((schemeId) => {\n const scheme = authsMap[schemeId];\n return scheme ? [scheme] : null;\n })\n .filter((group): group is AuthScheme[] => group != null);\n }\n\n return [];\n}\n\nfunction constructWebSocketAuthOptionEntries(\n channel: WebSocketChannel,\n authsMap: Record<AuthSchemeId, AuthScheme>\n): AuthOptionEntry[] {\n if (channel.auth != null && channel.auth.length > 0) {\n return channel.auth\n .map((schemeId) => {\n const scheme = authsMap[schemeId];\n if (!scheme) {\n return null;\n }\n return {\n key: String(schemeId),\n schemeIds: [schemeId],\n schemes: [scheme],\n label: getAuthSchemeLabel(scheme)\n };\n })\n .filter((entry): entry is AuthOptionEntry => entry != null);\n }\n\n return [];\n}\n\nexport function createWebSocketContext(\n node: WebSocketNode | undefined,\n apiDefinition: ApiDefinition | undefined\n): WebSocketContext | undefined {\n if (!node) {\n console.warn(\"[createWebSocketContext] node is undefined\");\n return undefined;\n }\n if (apiDefinition == null) {\n console.warn(\n `[createWebSocketContext] apiDefinition is undefined for node id=${node.id}, webSocketId=${node.webSocketId}`\n );\n return undefined;\n }\n const api = prune(apiDefinition, node);\n const channel = api.websockets[node.webSocketId];\n if (!channel) {\n const availableWebSocketIds = Object.keys(api.websockets);\n console.warn(\n `[createWebSocketContext] webSocket channel not found after pruning. webSocketId=${node.webSocketId}, apiDefinitionId=${node.apiDefinitionId}, availableWebSocketIds=[${availableWebSocketIds.join(\", \")}]`\n );\n return undefined;\n }\n return {\n node,\n channel,\n auths: channel.auth?.map((id) => api.auths[id]).filter((auth): auth is AuthScheme => auth != null) ?? [],\n authsWithKeys:\n channel.auth\n ?.map((id) => {\n const scheme = api.auths[id];\n return scheme ? { key: id, scheme } : null;\n })\n .filter((item): item is AuthSchemeWithKey => item != null) ?? [],\n authOptions: constructWebSocketAuthOptions(channel, api.auths),\n authOptionEntries: constructWebSocketAuthOptionEntries(channel, api.auths),\n globalHeaders: api.globalHeaders ?? [],\n types: api.types\n };\n}\n\nexport type WebhookContext = {\n node: WebhookNode;\n webhook: WebhookDefinition;\n types: Record<TypeId, TypeDefinition>;\n};\n\nexport function createWebhookContext(\n node: WebhookNode | undefined,\n apiDefinition: ApiDefinition | undefined\n): WebhookContext | undefined {\n if (!node) {\n console.warn(\"[createWebhookContext] node is undefined\");\n return undefined;\n }\n if (apiDefinition == null) {\n console.warn(\n `[createWebhookContext] apiDefinition is undefined for node id=${node.id}, webhookId=${node.webhookId}`\n );\n return undefined;\n }\n const api = prune(apiDefinition, node);\n const webhook = api.webhooks[node.webhookId];\n if (!webhook) {\n const availableWebhookIds = Object.keys(api.webhooks);\n console.warn(\n `[createWebhookContext] webhook not found after pruning. webhookId=${node.webhookId}, apiDefinitionId=${node.apiDefinitionId}, availableWebhookIds=[${availableWebhookIds.join(\", \")}]`\n );\n return undefined;\n }\n return {\n node,\n webhook,\n types: api.types\n };\n}\n\nexport type GrpcContext = {\n node: GrpcNode;\n grpc: EndpointDefinition;\n types: Record<TypeId, TypeDefinition>;\n};\n\nexport function createGrpcContext(\n node: GrpcNode | undefined,\n apiDefinition: ApiDefinition | undefined\n): GrpcContext | undefined {\n if (!node) {\n console.warn(\"[createGrpcContext] node is undefined\");\n return undefined;\n }\n if (apiDefinition == null) {\n console.warn(`[createGrpcContext] apiDefinition is undefined for node id=${node.id}, grpcId=${node.grpcId}`);\n return undefined;\n }\n const api = prune(apiDefinition, node);\n const grpc = api.endpoints[node.grpcId as unknown as EndpointId];\n if (!grpc) {\n const availableEndpointIds = Object.keys(api.endpoints);\n console.warn(\n `[createGrpcContext] grpc endpoint not found after pruning. grpcId=${node.grpcId}, apiDefinitionId=${node.apiDefinitionId}, availableEndpointIds=[${availableEndpointIds.join(\", \")}]`\n );\n return undefined;\n }\n return {\n node,\n grpc,\n types: api.types\n };\n}\n\nexport type GraphqlContext = {\n node: GraphQlNode;\n /** Primary operation (first in the group, or the only operation). */\n operation: GraphQlOperation;\n /** All operations for this page. For namespace groups this includes every grouped operation. */\n operations: GraphQlOperation[];\n types: Record<TypeId, TypeDefinition>;\n};\n\nexport function createGraphqlContext(\n node: GraphQlNode | undefined,\n apiDefinition: ApiDefinition | undefined\n): GraphqlContext | undefined {\n if (!node) {\n console.warn(\"[createGraphqlContext] node is undefined\");\n return undefined;\n }\n if (apiDefinition == null) {\n console.warn(\n `[createGraphqlContext] apiDefinition is undefined for node id=${node.id}, graphqlOperationId=${node.graphqlOperationId}`\n );\n return undefined;\n }\n const api = prune(apiDefinition, node);\n const operation = api.graphqlOperations[node.graphqlOperationId];\n if (!operation) {\n const availableOperationIds = Object.keys(api.graphqlOperations);\n console.warn(\n `[createGraphqlContext] graphql operation not found after pruning. graphqlOperationId=${node.graphqlOperationId}, apiDefinitionId=${node.apiDefinitionId}, availableOperationIds=[${availableOperationIds.join(\", \")}]`\n );\n return undefined;\n }\n\n // Collect all operations for namespace groups, preserving order.\n const allIds = node.graphqlOperationIds ?? [node.graphqlOperationId];\n const operations: GraphQlOperation[] = [];\n for (const id of allIds) {\n const op = api.graphqlOperations[id];\n if (op) {\n operations.push(op);\n }\n }\n // Fallback: if no grouped operations were resolved, use the primary operation.\n if (operations.length === 0) {\n operations.push(operation);\n }\n\n return {\n node,\n operation,\n operations,\n types: api.types\n };\n}\n","import type { EndpointPathPart } from \"../orpc-client/api/shared.js\";\nimport { EndpointPathLiteral } from \"../orpc-client/shared.js\";\n\n/**\n * Commonly used in Express.js and how we render paths in the UI.\n */\nexport function toColonEndpointPathLiteral(pathParts: EndpointPathPart[]): EndpointPathLiteral {\n return EndpointPathLiteral(\n pathParts.map((part) => (part.type === \"literal\" ? part.value : `:${part.value}`)).join(\"\")\n );\n}\n\n/**\n * Used in OpenAPI specification and Fern Definition. This is how we store EndpointPathLiteral in the snippet resolver.\n */\nexport function toCurlyBraceEndpointPathLiteral(pathParts: EndpointPathPart[]): EndpointPathLiteral {\n return EndpointPathLiteral(\n pathParts.map((part) => (part.type === \"literal\" ? part.value : `{${part.value}}`)).join(\"\")\n );\n}\n","import * as Latest from \"./latest\";\n\n/**\n * This utility is designed to join multiple API definitions into a single API definition.\n * After pruning the API definitions server-side to only include the desired endpoints, websockets, and webhooks,\n * this utility can be used to join the pruned API definitions back together on the client-side.\n *\n * @param apis list of API definitions to join (must have the same ID)\n * @returns a new API definition that is the result of joining the input API definitions\n */\nexport function joiner(\n force = false\n): (first: Latest.ApiDefinition, ...apis: Latest.ApiDefinition[]) => Latest.ApiDefinition {\n return (first, ...apis) => {\n const joined: Latest.ApiDefinition = {\n id: first.id,\n apiName: first.apiName,\n endpoints: { ...first.endpoints },\n websockets: { ...first.websockets },\n webhooks: { ...first.webhooks },\n graphqlOperations: { ...first.graphqlOperations },\n types: { ...first.types },\n subpackages: { ...first.subpackages },\n auths: { ...first.auths },\n globalHeaders: first.globalHeaders ? [...first.globalHeaders] : undefined,\n snippetsConfiguration: first.snippetsConfiguration ? { ...first.snippetsConfiguration } : undefined\n };\n\n let isJoined = false;\n for (const api of apis) {\n if (api.id !== joined.id) {\n throw new Error(\"Cannot join API definitions with different IDs\");\n }\n\n for (const [endpointId, endpoint] of Object.entries(api.endpoints)) {\n if (!isJoined && !first.endpoints[Latest.EndpointId(endpointId)]) {\n isJoined = true;\n }\n joined.endpoints[Latest.EndpointId(endpointId)] = endpoint;\n }\n\n for (const [webSocketId, webSocket] of Object.entries(api.websockets)) {\n if (!isJoined && !first.websockets[Latest.WebSocketId(webSocketId)]) {\n isJoined = true;\n }\n joined.websockets[Latest.WebSocketId(webSocketId)] = webSocket;\n }\n\n for (const [webhookId, webhook] of Object.entries(api.webhooks)) {\n if (!isJoined && !first.webhooks[Latest.WebhookId(webhookId)]) {\n isJoined = true;\n }\n joined.webhooks[Latest.WebhookId(webhookId)] = webhook;\n }\n\n for (const [typeId, type] of Object.entries(api.types)) {\n if (!isJoined && !first.types[Latest.TypeId(typeId)]) {\n isJoined = true;\n }\n joined.types[Latest.TypeId(typeId)] = type;\n }\n\n for (const [subpackageId, subpackage] of Object.entries(api.subpackages)) {\n if (!isJoined && !first.subpackages[Latest.SubpackageId(subpackageId)]) {\n isJoined = true;\n }\n joined.subpackages[Latest.SubpackageId(subpackageId)] = subpackage;\n }\n\n for (const [authId, auth] of Object.entries(api.auths)) {\n if (!isJoined && !first.auths[Latest.AuthSchemeId(authId)]) {\n isJoined = true;\n }\n joined.auths[Latest.AuthSchemeId(authId)] = auth;\n }\n\n const globalHeaders = (joined.globalHeaders ??= []);\n api.globalHeaders?.forEach((header) => {\n if (!globalHeaders.find((h) => h.key === header.key)) {\n isJoined = true;\n globalHeaders.push(header);\n }\n });\n }\n\n if (!isJoined && !force) {\n return first;\n }\n\n return joined;\n };\n}\n","export function cleanLanguage(language: string): string {\n language = language.toLowerCase().trim();\n if ([\"node\", \"nodejs\", \"js\", \"javascript\"].includes(language)) {\n return \"javascript\";\n }\n\n if ([\"py\", \"python\"].includes(language)) {\n return \"python\";\n }\n\n if ([\"ts\", \"typescript\", \"ts-node\"].includes(language)) {\n return \"typescript\";\n }\n\n if ([\"go\", \"golang\"].includes(language)) {\n return \"go\";\n }\n\n return language;\n}\n","import { isNonNullish } from \"@fern-api/ui-core-utils\";\nimport titleCase from \"@fern-api/ui-core-utils/titleCase\";\nimport visitDiscriminatedUnion from \"@fern-api/ui-core-utils/visitDiscriminatedUnion\";\nimport { mapValues } from \"es-toolkit/object\";\n\nimport type { APIV1Read } from \"../../client\";\nimport { ROOT_PACKAGE_ID } from \"../../navigation/consts\";\nimport { SupportedLanguage } from \"../../orpc-client/shared.js\";\nimport { LOOP_TOLERANCE } from \"../const\";\nimport { cleanLanguage } from \"../lang\";\nimport * as V2 from \"../latest\";\nimport { convertToCurl } from \"../snippets/curl\";\nimport { toSnippetHttpRequest } from \"../snippets/SnippetHttpRequest\";\nimport { sortKeysByShape } from \"../sort-keys\";\nimport { getMessageForStatus } from \"../status-message\";\n\nfunction isSubpackage(package_: APIV1Read.ApiDefinitionPackage): package_ is APIV1Read.ApiDefinitionSubpackage {\n return typeof (package_ as APIV1Read.ApiDefinitionSubpackage).subpackageId === \"string\";\n}\n\nconst AUTH_SCHEME_ID = V2.AuthSchemeId(\"default\");\n\n/**\n * Shared default constants used as fallback return values when migration fails or input is null.\n */\nconst DEFAULT_TYPE_REFERENCE: V2.TypeReference = { type: \"unknown\", displayName: undefined };\nconst DEFAULT_TYPE_SHAPE: V2.TypeShape = { type: \"alias\", value: DEFAULT_TYPE_REFERENCE };\nconst DEFAULT_WEBHOOK_PAYLOAD_SHAPE: V2.WebhookPayloadShape = { type: \"alias\", value: DEFAULT_TYPE_REFERENCE };\nconst DEFAULT_WEBHOOK_PAYLOAD: V2.WebhookPayload = { description: undefined, shape: DEFAULT_WEBHOOK_PAYLOAD_SHAPE };\nconst DEFAULT_GRAPHQL_ARGUMENT: V2.GraphQlArgument = {\n name: \"\",\n description: undefined,\n availability: undefined,\n type: DEFAULT_TYPE_SHAPE,\n defaultValue: undefined\n};\n\n/**\n * Wraps a function with a try-catch that returns a default value on error.\n */\nfunction withDefault<Args extends unknown[], T>(\n fn: (...args: Args) => T,\n defaultValue: T,\n label: string\n): (...args: Args) => T {\n return (...args: Args): T => {\n try {\n return fn(...args);\n } catch (e) {\n const argsSummary = args.map((arg) => {\n try {\n const str = JSON.stringify(arg);\n return str != null && str.length > 200 ? `${str.slice(0, 200)}...` : str;\n } catch {\n return String(arg);\n }\n });\n console.error(`Error in ${label}:`, e, \"args:\", argsSummary);\n return defaultValue;\n }\n };\n}\n\n/**\n * Wraps a void callback in a try-catch that logs errors.\n */\nfunction trySafe(fn: () => void, label: string): void {\n try {\n fn();\n } catch (e) {\n console.error(`Error in ${label}:`, e);\n }\n}\n\nexport class ApiDefinitionV1ToLatest {\n static from(v1: APIV1Read.ApiDefinition): ApiDefinitionV1ToLatest {\n return new ApiDefinitionV1ToLatest(v1);\n }\n\n private auth: APIV1Read.ApiAuth | undefined;\n private constructor(private readonly v1: APIV1Read.ApiDefinition) {\n this.auth = v1.auth ?? undefined;\n }\n\n static createEndpointId(\n endpoint: APIV1Read.EndpointDefinition,\n subpackageId: string = ROOT_PACKAGE_ID\n ): V2.EndpointId {\n return V2.EndpointId(endpoint.originalEndpointId ?? `${subpackageId}.${endpoint.id}`);\n }\n\n static createWebSocketId(\n webSocket: APIV1Read.WebSocketChannel,\n subpackageId: string = ROOT_PACKAGE_ID\n ): V2.WebSocketId {\n return V2.WebSocketId(`${subpackageId}.${webSocket.id}`);\n }\n\n static createWebhookId(webhook: APIV1Read.WebhookDefinition, subpackageId: string = ROOT_PACKAGE_ID): V2.WebhookId {\n return V2.WebhookId(`${subpackageId}.${webhook.id}`);\n }\n\n static createGrpcEndpointId(\n grpc: APIV1Read.EndpointDefinition,\n subpackageId: string = ROOT_PACKAGE_ID\n ): V2.EndpointId {\n return V2.EndpointId(`${subpackageId}.${grpc.id}`);\n }\n\n private endpoints: Record<V2.EndpointId, V2.EndpointDefinition> = {};\n private websockets: Record<V2.WebSocketId, V2.WebSocketChannel> = {};\n private webhooks: Record<V2.WebhookId, V2.WebhookDefinition> = {};\n private graphqlOperations: Record<V2.GraphQlOperationId, V2.GraphQlOperation> = {};\n private subpackages: Record<V2.SubpackageId, V2.SubpackageMetadata> = {};\n private types: Record<string, V2.TypeDefinition> = {};\n public migrate = (): V2.ApiDefinition => {\n Object.entries(this.v1.types)?.forEach(([id, type]) =>\n trySafe(() => {\n if (type == null) {\n return;\n }\n this.types[V2.TypeId(id)] = {\n name: type?.name,\n description: type?.description,\n availability: type?.availability,\n shape: this.migrateTypeShape(type?.shape),\n displayName: type?.displayName\n };\n }, `migrate type ${id}`)\n );\n\n [this.v1.rootPackage, ...Object.values(this.v1.subpackages)].forEach((pkg) =>\n trySafe(() => {\n if (pkg == null) {\n return;\n }\n const [subpackageId, namespace] = this.collectNamespace(pkg, this.v1.subpackages);\n pkg?.endpoints?.forEach((endpoint) =>\n trySafe(() => {\n const id =\n endpoint?.protocol?.type === \"grpc\"\n ? ApiDefinitionV1ToLatest.createGrpcEndpointId(endpoint, subpackageId)\n : ApiDefinitionV1ToLatest.createEndpointId(endpoint, subpackageId);\n this.endpoints[id] = this.migrateEndpoint(id, endpoint, namespace);\n }, `migrate endpoint ${endpoint?.id}`)\n );\n pkg?.websockets?.forEach((webSocket) =>\n trySafe(() => {\n const id = ApiDefinitionV1ToLatest.createWebSocketId(webSocket, subpackageId);\n this.websockets[id] = this.migrateWebSocket(id, webSocket, namespace);\n }, `migrate webSocket ${webSocket?.id}`)\n );\n pkg?.webhooks?.forEach((webhook) =>\n trySafe(() => {\n const id = ApiDefinitionV1ToLatest.createWebhookId(webhook, subpackageId);\n this.webhooks[id] = this.migrateWebhook(id, webhook, namespace);\n }, `migrate webhook ${webhook?.id}`)\n );\n pkg?.graphqlOperations?.forEach((graphqlOp) =>\n trySafe(() => {\n const id = graphqlOp?.id;\n this.graphqlOperations[id] = this.migrateGraphQlOperation(graphqlOp, namespace);\n }, `migrate graphqlOp ${graphqlOp?.id}`)\n );\n }, \"migrate package\")\n );\n\n Object.values(this.v1.subpackages)?.forEach((subpackage) =>\n trySafe(() => {\n if (subpackage == null) {\n return;\n }\n this.subpackages[subpackage?.subpackageId] = this.migrateSubpackage(subpackage);\n }, `migrate subpackage ${subpackage?.subpackageId}`)\n );\n\n return {\n id: this.v1.id,\n apiName: this.v1.apiName,\n endpoints: this.endpoints,\n websockets: this.websockets,\n webhooks: this.webhooks,\n graphqlOperations: this.graphqlOperations,\n types: this.types,\n subpackages: this.subpackages,\n auths: this.v1.authSchemes ? this.v1.authSchemes : this.v1.auth ? { [AUTH_SCHEME_ID]: this.v1.auth } : {},\n globalHeaders: this.migrateParameters(this.v1.globalHeaders ?? undefined),\n snippetsConfiguration: this.v1.snippetsConfiguration\n };\n };\n\n collectNamespace = (\n pkg: APIV1Read.ApiDefinitionPackage,\n subpackages: Record<string, APIV1Read.ApiDefinitionSubpackage>\n ): [string, V2.SubpackageId[]] => {\n if (!pkg || !isSubpackage(pkg)) {\n return [ROOT_PACKAGE_ID, []];\n }\n const namespace: V2.SubpackageId[] = [pkg.subpackageId];\n\n let subpackage = pkg;\n let loop = 0;\n while (subpackage.parent != null) {\n if (loop > LOOP_TOLERANCE) {\n throw new Error(\"Circular subpackage reference detected\");\n }\n\n const next = subpackages[subpackage.parent];\n if (next == null) {\n break;\n }\n namespace.unshift(subpackage.parent);\n subpackage = next;\n loop++;\n }\n\n return [pkg.subpackageId, namespace];\n };\n\n migrateEndpoint = (\n id: V2.EndpointId,\n v1: APIV1Read.EndpointDefinition,\n namespace: V2.SubpackageId[]\n ): V2.EndpointDefinition => {\n const toRet: V2.EndpointDefinition = {\n id,\n namespace,\n displayName: v1?.name,\n operationId: v1?.urlSlug?.split(\"/\")?.pop(),\n description: v1?.description,\n subtitle: v1?.subtitle,\n availability: v1?.availability,\n method: v1?.method,\n path: v1?.path?.parts?.filter((part) => part?.value !== \"\") ?? [],\n auth: v1?.authV2 ? v1.authV2 : v1?.authed ? [AUTH_SCHEME_ID] : undefined,\n multiAuth: v1?.multiAuth,\n defaultEnvironment: v1?.defaultEnvironment,\n environments: v1?.environments,\n pathParameters: this.migratePathOrQueryParameters(v1?.path?.pathParameters),\n queryParameters: this.migratePathOrQueryParameters(v1?.queryParameters),\n requestHeaders: this.migrateParameters(v1?.headers),\n responseHeaders: this.migrateParameters(v1?.responseHeaders ?? undefined),\n requests: (() => {\n const requests = (v1?.requestsV2?.requests ?? undefined)\n ?.map((request) => this.migrateHttpRequest(request))\n ?.filter(isNonNullish);\n\n if (requests != null && requests.length > 0) {\n return requests;\n }\n\n return [this.migrateHttpRequest(v1?.request ?? undefined)].filter(isNonNullish);\n })(),\n responses: (() => {\n const responses = (v1?.responsesV2?.responses ?? undefined)\n ?.map((response) => this.migrateHttpResponse(response))\n ?.filter(isNonNullish);\n\n if (responses != null && responses.length > 0) {\n return responses;\n }\n\n return [this.migrateHttpResponse(v1?.response ?? undefined)].filter(isNonNullish);\n })(),\n errors: this.migrateHttpErrors(v1?.errorsV2 ?? undefined),\n examples: undefined,\n snippetTemplates: (v1 as Record<string, unknown>)?.snippetTemplates as unknown,\n protocol: v1?.protocol,\n includeInApiExplorer: v1?.includeInApiExplorer ?? true\n };\n\n toRet.examples = this.migrateHttpExamples(v1?.examples, toRet);\n\n return toRet;\n };\n\n migrateWebSocket = (\n id: V2.WebSocketId,\n v1: APIV1Read.WebSocketChannel,\n namespace: V2.SubpackageId[]\n ): V2.WebSocketChannel => {\n const messages = this.migrateChannelMessages(v1?.messages);\n const auth = v1?.auth\n ? this.v1.authSchemes && Object.keys(this.v1.authSchemes).length > 0\n ? Object.keys(this.v1.authSchemes).map((k) => V2.AuthSchemeId(k))\n : [AUTH_SCHEME_ID]\n : undefined;\n return {\n id,\n namespace,\n displayName: v1?.name,\n operationId: v1?.urlSlug?.split(\"/\")?.pop(),\n description: v1?.description,\n availability: v1?.availability,\n path: v1?.path?.parts?.filter((part) => part?.value !== \"\") ?? [],\n messages,\n auth,\n defaultEnvironment: v1?.defaultEnvironment,\n environments: v1?.environments,\n pathParameters: this.migratePathOrQueryParameters(v1?.path?.pathParameters),\n queryParameters: this.migratePathOrQueryParameters(v1?.queryParameters),\n requestHeaders: this.migrateParameters(v1?.headers),\n examples: this.migrateChannelExamples(v1?.examples, messages)\n };\n };\n\n migrateWebhook = (\n id: V2.WebhookId,\n v1: APIV1Read.WebhookDefinition,\n namespace: V2.SubpackageId[]\n ): V2.WebhookDefinition => {\n const payload = this.migrateWebhookPayload(v1?.payload);\n return {\n id,\n namespace,\n displayName: v1?.name,\n operationId: v1?.urlSlug?.split(\"/\")?.pop(),\n description: v1?.description,\n availability: v1?.availability,\n method: v1?.method,\n path: v1?.path,\n headers: this.migrateParameters(v1?.headers),\n payloads: [payload],\n responses: v1?.responses?.map(this.migrateHttpResponse)?.filter(isNonNullish),\n examples:\n v1?.examples?.map((example) => ({\n ...example,\n payload: sortKeysByShape(example?.payload, payload?.shape, this.types)\n })) ?? []\n };\n };\n\n migrateSubpackage = (subpackage: APIV1Read.ApiDefinitionSubpackage): V2.SubpackageMetadata => {\n return {\n id: subpackage?.subpackageId,\n name: subpackage?.name,\n displayName: subpackage?.displayName\n };\n };\n\n migrateParameters = (\n v1: APIV1Read.PathParameter[] | APIV1Read.QueryParameter[] | APIV1Read.Header[] | undefined\n ): V2.ObjectProperty[] | undefined => {\n if (v1 == null || v1.length === 0) {\n return undefined;\n }\n return v1\n .filter((parameter) => parameter?.type != null)\n .map((parameter) => ({\n key: V2.PropertyKey(parameter?.key),\n valueShape: {\n type: \"alias\",\n value: this.migrateTypeReference(parameter?.type)\n },\n propertyAccess: undefined,\n description: parameter?.description ?? undefined,\n availability: parameter?.availability ?? undefined\n }));\n };\n\n migratePathOrQueryParameters = (\n v1: APIV1Read.PathParameter[] | APIV1Read.QueryParameter[] | undefined\n ): V2.ParameterProperty[] | undefined => {\n if (v1 == null || v1.length === 0) {\n return undefined;\n }\n return v1\n .filter((parameter) => parameter?.type != null)\n .map((parameter) => ({\n key: V2.PropertyKey(parameter?.key),\n valueShape: {\n type: \"alias\",\n value: this.migrateTypeReference(parameter?.type)\n },\n propertyAccess: undefined,\n description: parameter?.description ?? undefined,\n availability: parameter?.availability ?? undefined,\n explode: parameter?.explode ?? undefined\n }));\n };\n\n migrateTypeReference = withDefault(\n (typeRef: APIV1Read.TypeReference): V2.TypeReference => {\n if (typeRef == null) {\n return DEFAULT_TYPE_REFERENCE;\n }\n return visitDiscriminatedUnion(typeRef)._visit<V2.TypeReference>({\n map: (value) => ({\n type: \"map\",\n keyShape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.keyType)\n },\n valueShape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.valueType)\n },\n minProperties: value?.minProperties ?? undefined,\n maxProperties: value?.maxProperties ?? undefined\n }),\n id: (value) => ({\n type: \"id\",\n id: value?.value,\n default: value?.default ?? undefined\n }),\n primitive: (value) => value,\n nullable: (value) => ({\n type: \"nullable\",\n shape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.itemType)\n }\n }),\n optional: (value) => ({\n type: \"optional\",\n shape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.itemType)\n },\n default: value?.defaultValue\n }),\n list: (value) => ({\n type: \"list\",\n itemShape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.itemType)\n },\n minItems: value?.minItems ?? undefined,\n maxItems: value?.maxItems ?? undefined\n }),\n set: (value) => ({\n type: \"set\",\n itemShape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.itemType)\n },\n minItems: value?.minItems ?? undefined,\n maxItems: value?.maxItems ?? undefined\n }),\n literal: (value) => value,\n unknown: () => ({\n type: \"unknown\",\n displayName: undefined\n })\n });\n },\n DEFAULT_TYPE_REFERENCE,\n \"migrateTypeReference\"\n );\n\n migrateTypeShape = withDefault(\n (shape: APIV1Read.TypeShape): V2.TypeShape => {\n if (shape == null) {\n return DEFAULT_TYPE_SHAPE;\n }\n return visitDiscriminatedUnion(shape)._visit<V2.TypeShape>({\n object: (value) => ({\n type: \"object\",\n extends: value?.extends,\n properties: this.migrateObjectProperties(value?.properties ?? []),\n extraProperties:\n value?.extraProperties != null ? this.migrateTypeReference(value.extraProperties) : undefined\n }),\n alias: (value) => ({\n type: \"alias\",\n value: this.migrateTypeReference(value?.value)\n }),\n enum: (value) => value,\n undiscriminatedUnion: (value) => ({\n type: \"undiscriminatedUnion\",\n variants: (value?.variants ?? [])\n .filter((variant) => variant?.type != null)\n .map((variant) => ({\n displayName: variant?.displayName ?? undefined,\n shape: {\n type: \"alias\",\n value: this.migrateTypeReference(variant?.type)\n },\n description: variant?.description ?? undefined,\n availability: variant?.availability ?? undefined\n }))\n }),\n discriminatedUnion: (value) => ({\n type: \"discriminatedUnion\",\n discriminant: V2.PropertyKey(value?.discriminant),\n variants: (value?.variants ?? []).map((variant) => ({\n discriminantValue: variant?.discriminantValue,\n displayName: variant?.displayName ?? undefined,\n description: variant?.description ?? undefined,\n availability: variant?.availability ?? undefined,\n extends: variant?.additionalProperties?.extends,\n properties: this.migrateObjectProperties(variant?.additionalProperties?.properties ?? []),\n extraProperties: undefined\n }))\n })\n });\n },\n DEFAULT_TYPE_SHAPE,\n \"migrateTypeShape\"\n );\n\n migrateObjectProperties = withDefault(\n (properties: APIV1Read.ObjectProperty[]): V2.ObjectProperty[] => {\n if (properties == null) {\n return [];\n }\n return properties\n .filter((value) => value?.valueType != null)\n .map((value) => ({\n key: V2.PropertyKey(value?.key),\n valueShape: {\n type: \"alias\",\n value: this.migrateTypeReference(value?.valueType)\n },\n propertyAccess: value?.propertyAccess ?? undefined,\n description: value?.description ?? undefined,\n availability: value?.availability ?? undefined,\n arguments: value?.arguments?.map((arg) => this.migrateGraphQlArgument(arg))\n }));\n },\n [] as V2.ObjectProperty[],\n \"migrateObjectProperties\"\n );\n\n migrateJsonShape = withDefault(\n (shape: APIV1Read.JsonBodyShape): V2.TypeShape => {\n if (shape == null) {\n return DEFAULT_TYPE_SHAPE;\n }\n return visitDiscriminatedUnion(shape)._visit<V2.TypeShape>({\n object: this.migrateTypeShape,\n reference: (ref) => ({\n type: \"alias\",\n value: this.migrateTypeReference(ref?.value)\n })\n });\n },\n DEFAULT_TYPE_SHAPE,\n \"migrateJsonShape\"\n );\n\n migrateWebhookPayloadShape = withDefault(\n (shape: APIV1Read.WebhookPayloadShape): V2.WebhookPayloadShape => {\n if (shape == null) {\n return DEFAULT_WEBHOOK_PAYLOAD_SHAPE;\n }\n return visitDiscriminatedUnion(shape)._visit<V2.WebhookPayloadShape>({\n object: (obj) => ({\n type: \"object\",\n extends: obj?.extends,\n properties: this.migrateObjectProperties(obj?.properties ?? []),\n extraProperties: undefined\n }),\n reference: (ref) => ({\n type: \"alias\",\n value: this.migrateTypeReference(ref?.value)\n }),\n formData: (formData) => ({\n type: \"formData\",\n description: formData?.description,\n availability: formData?.availability,\n fields: this.migrateFormDataProperties(formData?.properties ?? [])\n })\n });\n },\n DEFAULT_WEBHOOK_PAYLOAD_SHAPE,\n \"migrateWebhookPayloadShape\"\n );\n\n migrateWebhookPayload = withDefault(\n (payload: APIV1Read.WebhookPayload): V2.WebhookPayload => {\n if (payload == null) {\n return DEFAULT_WEBHOOK_PAYLOAD;\n }\n return {\n description: payload?.description,\n shape: this.migrateWebhookPayloadShape(payload?.type)\n };\n },\n DEFAULT_WEBHOOK_PAYLOAD,\n \"migrateWebhookPayload\"\n );\n\n migrateChannelExamples = withDefault(\n (\n examples: APIV1Read.ExampleWebSocketSession[],\n messages: V2.WebSocketMessage[]\n ): V2.ExampleWebSocketSession[] | undefined => {\n if (examples == null || examples.length === 0) {\n return undefined;\n }\n\n return examples.map((example) => ({\n description: example?.description,\n path: example?.path,\n name: example?.name,\n pathParameters: example?.pathParameters,\n queryParameters: example?.queryParameters,\n requestHeaders: example?.headers,\n messages: (example?.messages ?? []).map((example) => ({\n ...example,\n body: sortKeysByShape(\n example.body,\n messages.find((message) => message.type === example.type)?.body,\n this.types\n )\n }))\n }));\n },\n undefined,\n \"migrateChannelExamples\"\n );\n\n migrateChannelMessages = withDefault(\n (messages: APIV1Read.WebSocketMessage[]): V2.WebSocketMessage[] => {\n if (messages == null) {\n return [];\n }\n return messages.map((message) => ({\n type: message?.type,\n displayName: message?.displayName,\n origin: message?.origin,\n body: this.migrateJsonShape(message?.body),\n description: message?.description,\n availability: message?.availability\n }));\n },\n [] as V2.WebSocketMessage[],\n \"migrateChannelMessages\"\n );\n\n migrateHttpExamples = withDefault(\n (\n examples: APIV1Read.ExampleEndpointCall[],\n endpoint: V2.EndpointDefinition\n ): V2.ExampleEndpointCall[] | undefined => {\n if (examples == null || examples.length === 0) {\n return undefined;\n }\n\n return examples.map((example): V2.ExampleEndpointCall => {\n const toRet: V2.ExampleEndpointCall = {\n path: example?.path,\n responseStatusCode: example?.responseStatusCode,\n name: example?.name,\n description: example?.description,\n pathParameters: example?.pathParameters,\n queryParameters: example?.queryParameters,\n headers: example?.headers,\n requestBody: example?.requestBodyV3,\n responseBody: example?.responseBodyV3,\n snippets: undefined\n };\n\n if (example?.requestBodyV3) {\n toRet.requestBody = visitDiscriminatedUnion(\n example.requestBodyV3\n )._visit<APIV1Read.ExampleEndpointRequest>({\n bytes: (value) => value,\n json: (value) => ({\n type: \"json\",\n value: sortKeysByShape(value.value, endpoint.requests?.[0]?.body, this.types)\n }),\n form: (value) => ({\n type: \"form\",\n value: mapValues(value.value, (formValue, key): APIV1Read.FormValue => {\n const typedFormValue = formValue as APIV1Read.FormValue;\n if (typedFormValue.type === \"json\") {\n const shape =\n endpoint.requests?.[0]?.body.type === \"formData\"\n ? endpoint.requests?.[0]?.body.fields.find(\n (field): field is V2.FormDataPropertyVariant =>\n field.key === key && field.type === \"property\"\n )?.valueShape\n : undefined;\n return {\n type: \"json\",\n value: sortKeysByShape(typedFormValue.value, shape, this.types)\n };\n } else {\n return typedFormValue;\n }\n })\n })\n });\n }\n\n if (toRet.responseBody) {\n toRet.responseBody.value = sortKeysByShape(\n toRet.responseBody.value,\n endpoint.responses?.[0]?.body,\n this.types\n );\n }\n\n toRet.snippets = this.migrateEndpointSnippets(\n endpoint,\n toRet,\n example?.codeSamples,\n example?.codeExamples\n );\n\n return toRet;\n });\n },\n undefined,\n \"migrateHttpExamples\"\n );\n\n migrateHttpErrors = withDefault(\n (errors: APIV1Read.ErrorDeclarationV2[] | null | undefined): V2.ErrorResponse[] | undefined => {\n if (errors == null || errors.length === 0) {\n return undefined;\n }\n\n return errors.map((value) => {\n const shape = value?.type != null ? this.migrateTypeShape(value.type) : undefined;\n return {\n isWildcard: value?.isWildcard,\n description: value?.description,\n availability: value?.availability,\n name:\n (value?.name != null ? titleCase(value.name) : undefined) ??\n getMessageForStatus(value?.statusCode),\n statusCode: value?.statusCode,\n shape,\n examples: value?.examples?.map(\n (example): APIV1Read.ErrorExample => ({\n description: example?.description,\n name: example?.name,\n responseBody: {\n type: \"json\" as const,\n value: sortKeysByShape(example?.responseBody?.value, shape, this.types)\n }\n })\n ),\n headers: this.migrateParameters(value?.headers ?? undefined)\n };\n });\n },\n undefined,\n \"migrateHttpErrors\"\n );\n\n migrateHttpResponse = withDefault(\n (response: APIV1Read.HttpResponse | undefined): V2.HttpResponse | undefined => {\n if (response == null) {\n return undefined;\n }\n\n if (response.type == null) {\n return undefined;\n }\n\n return {\n description: response?.description,\n statusCode: response?.statusCode ?? 200,\n isWildcard: response?.isWildcard,\n body: visitDiscriminatedUnion(response?.type)._visit<V2.HttpResponseBodyShape>({\n object: (value) => ({\n type: \"object\",\n extends: value?.extends,\n properties: this.migrateObjectProperties(value?.properties ?? []),\n extraProperties: undefined\n }),\n reference: (value) => ({\n type: \"alias\",\n value: this.migrateTypeReference(value?.value)\n }),\n fileDownload: (value) => value,\n streamingText: (value) => value,\n stream: (value) => ({\n type: \"stream\",\n terminator: value?.terminator,\n shape: this.migrateJsonShape(value?.shape)\n }),\n\n // Careful! we're dropping non-streaming response shape in the following migration:\n streamCondition: (value) => ({\n type: \"stream\",\n terminator: undefined,\n shape: this.migrateJsonShape(value?.streamResponse?.shape)\n })\n })\n };\n },\n undefined,\n \"migrateHttpResponse\"\n );\n\n migrateHttpRequest = withDefault(\n (request: APIV1Read.HttpRequest | undefined): V2.HttpRequest | undefined => {\n if (request == null) {\n return undefined;\n }\n\n if (request.type == null) {\n return undefined;\n }\n\n return {\n description: request?.description,\n contentType: request?.contentType,\n body: visitDiscriminatedUnion(request?.type)._visit<V2.HttpRequestBodyShape>({\n object: (value) => ({\n type: \"object\",\n extends: value?.extends,\n properties: this.migrateObjectProperties(value?.properties ?? []),\n extraProperties: undefined\n }),\n reference: (value) => ({\n type: \"alias\",\n value: this.migrateTypeReference(value?.value)\n }),\n bytes: (value) => ({\n type: \"bytes\",\n isOptional: value?.isOptional,\n contentType: value?.contentType\n }),\n formData: (value) => ({\n type: \"formData\",\n description: value?.description,\n availability: value?.availability,\n fields: this.migrateFormDataProperties(value?.properties ?? [])\n }),\n fileUpload: (value) => ({\n type: \"formData\",\n description: value?.value?.description,\n availability: value?.value?.availability,\n fields: this.migrateFormDataProperties(value?.value?.properties ?? [])\n })\n })\n };\n },\n undefined,\n \"migrateHttpRequest\"\n );\n\n migrateFormDataProperties = withDefault(\n (properties: APIV1Read.FormDataProperty[]): V2.FormDataField[] => {\n if (properties == null) {\n return [];\n }\n return properties\n .map((prop) =>\n visitDiscriminatedUnion(prop)._visit<V2.FormDataField | undefined>({\n file: (file) =>\n visitDiscriminatedUnion(file?.value)._visit<V2.FormDataField>({\n file: (single) => ({\n type: \"file\",\n key: single?.key,\n isOptional: single?.isOptional,\n contentType: single?.contentType ?? undefined,\n description: single?.description ?? undefined,\n availability: single?.availability ?? undefined\n }),\n fileArray: (multiple) => ({\n type: \"files\",\n key: multiple?.key,\n isOptional: multiple?.isOptional,\n contentType: multiple?.contentType ?? undefined,\n description: multiple?.description ?? undefined,\n availability: multiple?.availability ?? undefined\n })\n }),\n bodyProperty: (bodyProp) => {\n if (bodyProp?.valueType == null) {\n return undefined;\n }\n return {\n type: \"property\",\n key: bodyProp?.key,\n contentType: bodyProp?.contentType ?? undefined,\n description: bodyProp?.description ?? undefined,\n availability: bodyProp?.availability ?? undefined,\n exploded: bodyProp?.exploded ?? undefined,\n valueShape: {\n type: \"alias\",\n value: this.migrateTypeReference(bodyProp.valueType)\n },\n propertyAccess: bodyProp?.propertyAccess ?? undefined\n };\n }\n })\n )\n .filter(isNonNullish);\n },\n [] as V2.FormDataField[],\n \"migrateFormDataProperties\"\n );\n\n migrateEndpointSnippets(\n endpoint: V2.EndpointDefinition,\n example: V2.ExampleEndpointCall,\n codeSamples: APIV1Read.CustomCodeSample[],\n codeExamples: APIV1Read.CodeExamples\n ): Record<string, V2.CodeSnippet[]> {\n const toRet: Record<string, V2.CodeSnippet[]> = {};\n function push(language: string, snippet: V2.CodeSnippet) {\n (toRet[language] ??= []).push(snippet);\n }\n\n const userProvidedLanguages = new Set<string>();\n\n // Add user-provided code snippets\n codeSamples?.forEach((codeSample) => {\n const language = cleanLanguage(codeSample?.language);\n userProvidedLanguages.add(language);\n\n push(language, {\n name: codeSample?.name,\n language,\n install: codeSample?.install,\n code: codeSample?.code,\n generated: false,\n description: codeSample?.description\n });\n });\n\n if (!userProvidedLanguages.has(SupportedLanguage.Curl)) {\n const code = convertToCurl(toSnippetHttpRequest(endpoint, example, this.auth));\n push(SupportedLanguage.Curl, {\n language: SupportedLanguage.Curl,\n code,\n name: undefined,\n install: undefined,\n generated: true,\n description: undefined\n });\n }\n\n if (!userProvidedLanguages.has(SupportedLanguage.Python) && codeExamples?.pythonSdk != null) {\n push(SupportedLanguage.Python, {\n name: undefined,\n language: SupportedLanguage.Python,\n install: codeExamples?.pythonSdk?.install,\n code: codeExamples?.pythonSdk?.sync_client,\n generated: true,\n description: undefined\n });\n }\n\n if (!userProvidedLanguages.has(SupportedLanguage.Typescript) && codeExamples?.typescriptSdk != null) {\n push(SupportedLanguage.Typescript, {\n name: undefined,\n language: SupportedLanguage.Typescript,\n install: codeExamples?.typescriptSdk?.install,\n code: codeExamples?.typescriptSdk?.client,\n generated: true,\n description: undefined\n });\n }\n\n if (!userProvidedLanguages.has(SupportedLanguage.Go) && codeExamples?.goSdk != null) {\n push(SupportedLanguage.Go, {\n name: undefined,\n language: SupportedLanguage.Go,\n install: codeExamples?.goSdk?.install,\n code: codeExamples?.goSdk?.client,\n generated: true,\n description: undefined\n });\n }\n\n if (!userProvidedLanguages.has(SupportedLanguage.Ruby) && codeExamples?.rubySdk != null) {\n push(SupportedLanguage.Ruby, {\n name: undefined,\n language: SupportedLanguage.Ruby,\n install: codeExamples?.rubySdk?.install,\n code: codeExamples?.rubySdk?.client,\n generated: true,\n description: undefined\n });\n }\n\n if (!userProvidedLanguages.has(SupportedLanguage.Csharp) && codeExamples?.csharpSdk != null) {\n push(SupportedLanguage.Csharp, {\n name: undefined,\n language: SupportedLanguage.Csharp,\n install: codeExamples?.csharpSdk?.install,\n code: codeExamples?.csharpSdk?.client,\n generated: true,\n description: undefined\n });\n }\n\n return toRet;\n }\n\n migrateGraphQlOperation = (v1: APIV1Read.GraphQlOperation, namespace: V2.SubpackageId[]): V2.GraphQlOperation => {\n if (v1 == null) {\n return {\n id: \"\" as V2.GraphQlOperationId,\n operationType: \"QUERY\",\n name: \"\",\n displayName: undefined,\n description: undefined,\n availability: undefined,\n namespace,\n arguments: undefined,\n returnType: DEFAULT_TYPE_SHAPE,\n examples: [],\n snippets: undefined\n };\n }\n return {\n id: v1?.id,\n operationType: v1?.operationType,\n name: v1?.name,\n displayName: v1?.displayName,\n description: v1?.description,\n availability: v1?.availability,\n namespace,\n fieldPath: v1?.fieldPath,\n arguments: v1?.arguments?.map((arg) => this.migrateGraphQlArgument(arg)),\n returnType: {\n type: \"alias\",\n value: this.migrateTypeReference(v1?.returnType)\n },\n examples: v1?.examples,\n snippets: v1?.snippets\n };\n };\n\n migrateGraphQlArgument = withDefault(\n (v1: APIV1Read.GraphQlArgument): V2.GraphQlArgument => {\n if (v1 == null) {\n return DEFAULT_GRAPHQL_ARGUMENT;\n }\n return {\n name: v1?.name,\n description: v1?.description,\n availability: v1?.availability,\n type: {\n type: \"alias\",\n value: this.migrateTypeReference(v1?.type)\n },\n defaultValue: v1?.defaultValue\n };\n },\n DEFAULT_GRAPHQL_ARGUMENT,\n \"migrateGraphQlArgument\"\n );\n}\n","export const ROOT_PACKAGE_ID = \"__package__\" as const;\n","import { isPlainObject, unknownToString } from \"@fern-api/ui-core-utils\";\nimport { compact } from \"es-toolkit/array\";\nimport qs from \"qs\";\nimport { UnreachableCaseError } from \"ts-essentials\";\n\nimport { obfuscateSecret } from \"../../utils/obfuscate-secret\";\nimport type * as Latest from \"../latest\";\nimport { wrapOpenRPCRequest } from \"../wrapOpenRPCRequest\";\nimport { replaceMultipartTemplateStrings } from \"./multipart-filename-placeholder\";\nimport type {\n SnippetHttpRequest,\n SnippetHttpRequestBodyFormValue,\n SnippetHttpRequestBodyFormValueFilename,\n SnippetHttpRequestBodyFormValueFilenames\n} from \"./SnippetHttpRequest\";\n\nfunction requiresUrlEncode(str: string): boolean {\n return encodeURIComponent(str) !== str;\n}\n\nexport function convertToCurl(request: SnippetHttpRequest): string {\n try {\n return unsafeStringifyHttpRequestExampleToCurl(request);\n } catch (e) {\n console.error(`[convert-to-curl] ${JSON.stringify(e)}`);\n\n return \"\";\n }\n}\n\nfunction getHttpRequest(method: string, url: string, searchParams: Record<string, unknown>): string {\n const queryParams = toUrlEncoded(searchParams)\n .map(([key, value]) => `${key}=${encodeURIComponent(unknownToString(value))}`)\n .join(\"&\");\n if (method !== \"GET\") {\n return queryParams.length > 0 ? `-X ${method} \"${url}?${queryParams}\"` : `-X ${method} ${url}`;\n }\n // if the method is GET, we don't need to include the query params in URL, but instead we'll include it as --data-urlencode\n return queryParams.length > 0 ? `-G ${url}` : url;\n}\n\nfunction getHeadersString(headers: Record<string, unknown>): string[] {\n return Object.entries(headers).map(([key, value]) => `-H \"${key}: ${unknownToString(value)}\"`);\n}\n\nfunction getBasicAuthString(\n basicAuth: {\n username: string;\n password: string;\n },\n redacted?: boolean\n): string[] {\n if (redacted) {\n return [`-u \"${basicAuth.username}:${obfuscateSecret(basicAuth.password)}\"`];\n }\n return [`-u \"${basicAuth.username}:${basicAuth.password}\"`];\n}\n\nexport function getUrlQueriesGetString(searchParams: Record<string, unknown>, forceManualEncoding = false): string[] {\n return toUrlEncoded(searchParams).map(([key, value]) => {\n // If we're dealing with form-urlencoded content-type, always use -d with pre-encoded values\n const encodedValue = forceManualEncoding ? encodeURIComponent(value) : value;\n const flag = forceManualEncoding || !requiresUrlEncode(value) ? \"-d\" : \"--data-urlencode\";\n\n if (forceManualEncoding || key.includes(\" \") || value.includes(\" \") || key.includes(\"[\")) {\n return `${flag} \"${key}=${encodedValue}\"`;\n }\n return `${flag} ${key}=${encodedValue}`;\n });\n}\n\nfunction getBodyJsonString(value: unknown | null | undefined, protocol?: Latest.Protocol): string[] {\n if (protocol?.type === \"openrpc\") {\n const payload = wrapOpenRPCRequest(value, protocol.methodName);\n const stringifiedValue = JSON.stringify(payload, null, 2).replace(/'/g, \"'\\\\''\");\n return [`-d '${stringifiedValue}'`];\n }\n\n if (value == null) {\n return [];\n }\n\n if (typeof value === \"string\") {\n return [`-d \"${value.replace(/\"/g, '\\\\\"')}\"`];\n }\n\n const stringifiedValue = JSON.stringify(value, null, 2).replace(/'/g, \"'\\\\''\");\n return [`-d '${stringifiedValue}'`];\n}\n\nfunction getBodyBytesString(filename: string): string[] {\n return [`--data-binary @${filename.includes(\" \") ? `\"${filename}\"` : filename}`];\n}\n\nfunction getBodyFormValueJsonString(value: unknown | null | undefined, key: string): string[] {\n if (value == null) {\n return [];\n }\n\n // TODO: this is a little sus\n if (typeof value === \"string\") {\n return [`-F ${key}=\"${value.replace(/\"/g, '\\\\\"')}\"`];\n }\n\n const stringValue = JSON.stringify(value, null, 2);\n\n return [`-F ${key}='${stringValue.replace(/'/g, \"'\\\\''\")}'`];\n}\n\nfunction formatFormFileValue(filename: string, contentType: string | undefined): string {\n if (filename.includes(\" \") || contentType != null) {\n return `\"${filename}${contentType != null ? `;type=${contentType}` : \"\"}\"`;\n }\n return filename;\n}\n\nfunction getBodyFormValueFilenamesStrings({ files }: SnippetHttpRequestBodyFormValueFilenames, key: string): string[] {\n return files\n .filter((file) => file.filename != null)\n .map(({ filename, contentType }) => {\n // When the property name carries a multipart template token (e.g.\n // `{filename}`) we emit one field per file using its resolved name\n // and omit the legacy `[]` array suffix because the keys are\n // already unique. Otherwise we preserve the existing `[]` behavior\n // for non-templated multi-file fields.\n const resolvedKey = replaceMultipartTemplateStrings(key, { filename });\n const finalKey = resolvedKey !== key ? resolvedKey : `${key}[]`;\n return `-F \"${finalKey}\"=@${formatFormFileValue(filename, contentType)}`;\n });\n}\n\nfunction getBodyFormValueFilenameString(\n { filename, contentType }: SnippetHttpRequestBodyFormValueFilename,\n key: string\n): string[] {\n if (filename == null) {\n return [];\n }\n const resolvedKey = replaceMultipartTemplateStrings(key, { filename });\n if (resolvedKey !== key) {\n return [`-F \"${resolvedKey}\"=@${formatFormFileValue(filename, contentType)}`];\n }\n return [`-F ${key}=@${formatFormFileValue(filename, contentType)}`];\n}\n\nfunction getBodyFormValueString(value: SnippetHttpRequestBodyFormValue, key: string): string[] {\n switch (value.type) {\n case \"json\":\n return getBodyFormValueJsonString(value.value, key);\n case \"filename\":\n return getBodyFormValueFilenameString(value, key);\n case \"filenames\":\n return getBodyFormValueFilenamesStrings(value, key);\n case \"exploded\":\n return (value.value ?? []).flatMap((item) => getBodyFormValueJsonString(item, key));\n default:\n throw new UnreachableCaseError(value);\n }\n}\n\nfunction getBodyFormString(value: Record<string, SnippetHttpRequestBodyFormValue>): string[] {\n return Object.entries(value).flatMap(([key, value]) => getBodyFormValueString(value, key));\n}\n\nfunction getBodyDataString(\n method: string,\n body: SnippetHttpRequest[\"body\"] | null | undefined,\n protocol: Latest.Protocol | undefined\n): string[] {\n if (method === \"GET\") {\n return [];\n }\n\n if (body == null) {\n if (protocol?.type === \"openrpc\") {\n return getBodyJsonString(undefined, protocol);\n }\n return [];\n }\n\n switch (body.type) {\n case \"json\":\n return getBodyJsonString(body.value, protocol);\n case \"bytes\":\n return getBodyBytesString(body.filename);\n case \"form\":\n return getBodyFormString(body.value);\n default:\n throw new UnreachableCaseError(body);\n }\n}\n\nfunction unsafeStringifyHttpRequestExampleToCurl({\n method,\n url,\n searchParams,\n headers,\n basicAuth,\n body,\n protocol,\n redacted\n}: SnippetHttpRequest): string {\n const httpRequest = getHttpRequest(method, url, searchParams);\n\n const headersStrings = getHeadersString(\n // If basicAuth is provided, we filter out any existing Authorization header\n // to avoid conflicts, as the basicAuth will be added separately with -u flag\n basicAuth != null\n ? Object.fromEntries(Object.entries(headers).filter(([key]) => key.toLowerCase() !== \"authorization\"))\n : headers\n );\n const basicAuthStrings = basicAuth != null ? getBasicAuthString(basicAuth, redacted) : [];\n\n // special handling for application/x-www-form-urlencoded\n const isFormUrlEncoded =\n method !== \"GET\" &&\n unknownToString(headers[\"Content-Type\"] ?? headers[\"content-type\"])\n .toLowerCase()\n .includes(\"form-urlencoded\");\n\n // GET requests don't have a body, so `--data-urlencode` is used to pass query parameters\n\n const urlQueriesGetStrings = getUrlQueriesGetString(\n {\n ...(method === \"GET\" ? searchParams : {}),\n // HACK: combine search params and body.value if body.type is json, because we expect the body.json to include url-encoded params\n ...(isFormUrlEncoded && body?.type === \"json\" && isPlainObject(body.value) ? body.value : {})\n },\n isFormUrlEncoded\n );\n\n const bodyDataStrings = isFormUrlEncoded ? [] : getBodyDataString(method, body, protocol);\n\n const allStrings = compact([...headersStrings, ...basicAuthStrings, ...urlQueriesGetStrings, ...bodyDataStrings]);\n\n function withNewLine(line: string): string {\n return ` \\\\\\n ${line}`;\n }\n\n return `curl ${httpRequest}${allStrings.map(withNewLine).join(\"\")}`;\n}\n\nfunction toUrlEncoded(urlQueries: Record<string, unknown>): [string, string][] {\n const queryString = qs.stringify(urlQueries, {\n encode: false,\n arrayFormat: \"repeat\",\n skipNulls: true,\n filter: (prefix, value) => {\n if (value != null && typeof value !== \"object\") {\n return String(value);\n }\n return value;\n }\n });\n\n if (!queryString) {\n return [];\n }\n\n return queryString.split(\"&\").map((pair) => {\n const [key, value] = pair.split(\"=\");\n return [key, value || \"\"] as [string, string];\n });\n}\n","export function obfuscateSecret(secret: string): string {\n if (secret.trimEnd().length === 0) {\n return secret;\n }\n if (secret.length < 28) {\n return secret.slice(0, 1) + \"*\".repeat(25) + secret.slice(-2);\n }\n return secret.slice(0, 12) + \"....\" + secret.slice(-12);\n}\n","/**\n * Wraps a request body in the OpenRPC format.\n *\n * @param body - The request body to wrap\n * @param methodName - The OpenRPC method name\n * @returns The wrapped request body in OpenRPC format\n */\nexport function wrapOpenRPCRequest(\n body: unknown,\n methodName: string\n): {\n jsonrpc: string;\n method: string;\n params: unknown[];\n id: number;\n} {\n let params: unknown[] = [];\n if (body && typeof body === \"object\") {\n params = Object.values(body);\n }\n return {\n jsonrpc: \"2.0\",\n method: methodName,\n params,\n id: 1\n };\n}\n","// Some OpenAPI specs (e.g. Uploadcare's /base/ direct upload) declare a\n// multipart property whose name is the literal token `{filename}`. The intent\n// is that the actual form field name should be the uploaded file's filename\n// rather than the placeholder itself. Code that emits multipart payloads\n// (curl/python/typescript snippets and the playground proxy fetch) must\n// resolve this placeholder per file before serializing the form-data.\n\nexport const MULTIPART_FILENAME_PLACEHOLDER = \"{filename}\";\n\n/**\n * Replaces every occurrence of each token key in `input` with the\n * corresponding value. Tokens whose replacement is `undefined` are left\n * in place. Returns the input unchanged if no token matches.\n */\nexport function replaceTemplateStrings(input: string, replacements: Record<string, string | undefined>): string {\n let result = input;\n for (const [token, replacement] of Object.entries(replacements)) {\n if (replacement != null && result.includes(token)) {\n result = result.split(token).join(replacement);\n }\n }\n return result;\n}\n\n/**\n * Resolves multipart-specific template placeholders (currently just\n * `{filename}`) in a form field name. Thin wrapper around\n * `replaceTemplateStrings` that fixes the supported token set.\n */\nexport function replaceMultipartTemplateStrings(input: string, vars: { filename?: string }): string {\n return replaceTemplateStrings(input, {\n [MULTIPART_FILENAME_PLACEHOLDER]: vars.filename\n });\n}\n","import { sanitizeUrl, unknownToString } from \"@fern-api/ui-core-utils\";\nimport visitDiscriminatedUnion from \"@fern-api/ui-core-utils/visitDiscriminatedUnion\";\nimport { compact } from \"es-toolkit/array\";\nimport { noop } from \"ts-essentials\";\nimport urljoin from \"url-join\";\n\nimport type * as Latest from \"../latest\";\nimport { preprocessQueryParameters } from \"../url\";\n\nfunction buildPathForSnippet(\n path: Latest.PathPart[] | undefined,\n pathParameters: Record<string, unknown> | undefined\n): string {\n if (path == null) {\n return \"\";\n }\n return path\n .map((part) => {\n if (part.type === \"pathParameter\") {\n const key = part.value;\n const value = unknownToString(pathParameters?.[key]);\n return value.length > 0 ? value : `{${key}}`;\n }\n return part.value;\n })\n .join(\"\");\n}\n\ninterface SnippetHttpRequestBodyJson {\n type: \"json\";\n value?: unknown;\n}\n\ninterface SnippetHttpRequestBodyJsonExploded {\n type: \"exploded\";\n value?: unknown[];\n}\n\nexport interface SnippetHttpRequestBodyForm {\n type: \"form\";\n value: Record<string, SnippetHttpRequestBodyFormValue>;\n}\n\nexport interface SnippetHttpRequestBodyFormValueFilename {\n type: \"filename\";\n filename: string;\n contentType: string | undefined;\n}\n\nexport interface SnippetHttpRequestBodyFormValueFilenames {\n type: \"filenames\";\n files: Omit<SnippetHttpRequestBodyFormValueFilename, \"type\">[];\n}\n\nexport type SnippetHttpRequestBodyFormValue =\n | SnippetHttpRequestBodyJson\n | SnippetHttpRequestBodyJsonExploded\n | SnippetHttpRequestBodyFormValueFilename\n | SnippetHttpRequestBodyFormValueFilenames;\n\ninterface SnippetHttpRequestBodyBytes {\n type: \"bytes\";\n filename: string;\n}\n\nexport type SnippetHttpRequestBody =\n | SnippetHttpRequestBodyJson\n | SnippetHttpRequestBodyForm\n | SnippetHttpRequestBodyBytes;\n\nexport interface SnippetHttpRequest {\n method: string;\n url: string;\n searchParams: Record<string, unknown>;\n headers: Record<string, unknown>;\n basicAuth?: {\n username: string;\n password: string;\n };\n body: SnippetHttpRequestBody | undefined;\n protocol?: Latest.Protocol;\n redacted?: boolean;\n}\n\n// TODO: validate that global headers are also included in the example by CLI or FDR\nexport function toSnippetHttpRequest(\n endpoint: Latest.EndpointDefinition,\n example: Latest.ExampleEndpointCall,\n auth: Latest.AuthScheme | undefined\n): SnippetHttpRequest {\n const environmentUrl = (\n endpoint.environments?.find((env) => env.id === endpoint.defaultEnvironment) ?? endpoint.environments?.[0]\n )?.baseUrl;\n const sanitizedEnvironment = sanitizeUrl(environmentUrl);\n\n const endpointPathRaw = buildPathForSnippet(endpoint.path, example.pathParameters ?? undefined);\n const examplePathRaw = example.path ? (example.path.startsWith(\"/\") ? example.path : `/${example.path}`) : \"\";\n\n // Normalize for comparison only (strip trailing slash, treat empty as \"/\")\n const normalize = (p: string): string => (p.endsWith(\"/\") ? p.slice(0, -1) : p) || \"/\";\n const endpointPath = normalize(endpointPathRaw);\n const examplePath = normalize(examplePathRaw);\n\n // Use endpoint.path if example.path is missing, or if endpoint.path equals / extends example.path\n // (endpoint.path carries the base path prefix)\n const useEndpointPath =\n examplePathRaw === \"\" ||\n endpointPath === examplePath ||\n (endpointPath.length > examplePath.length && endpointPath.endsWith(examplePath));\n const fullPath = useEndpointPath ? endpointPathRaw : examplePathRaw;\n\n const url = urljoin(compact([sanitizedEnvironment, fullPath]));\n\n const headers: Record<string, unknown> = { ...example.headers };\n\n let basicAuth: { username: string; password: string } | undefined;\n\n if (endpoint.auth && endpoint.auth.length > 0 && auth) {\n visitDiscriminatedUnion(auth, \"type\")._visit({\n basicAuth: ({ usernameName = \"username\", passwordName = \"password\", passwordAlwaysEmpty }) => {\n basicAuth = {\n username: `<${usernameName}>`,\n password: passwordAlwaysEmpty ? \"\" : `<${passwordName}>`\n };\n },\n bearerAuth: ({ tokenName = \"token\" }) => {\n headers.Authorization = `Bearer <${tokenName}>`;\n },\n header: ({ headerWireValue, nameOverride = headerWireValue, prefix }) => {\n headers[headerWireValue] = prefix != null ? `${prefix} <${nameOverride}>` : `<${nameOverride}>`;\n },\n oAuth: ({ value: clientCredentials }) => {\n visitDiscriminatedUnion(clientCredentials, \"type\")._visit({\n clientCredentials: () => {\n headers.Authorization = \"Bearer <token>\";\n },\n _other: noop\n });\n },\n _other: noop\n });\n }\n\n const body: Latest.ExampleEndpointRequest | undefined = example.requestBody ?? undefined;\n\n if (endpoint.requests?.[0]?.contentType != null) {\n headers[\"Content-Type\"] = endpoint.requests?.[0]?.contentType;\n }\n\n if (body != null && headers[\"Content-Type\"] == null) {\n if (body.type === \"json\") {\n headers[\"Content-Type\"] = \"application/json\";\n } else if (body.type === \"form\") {\n headers[\"Content-Type\"] = \"multipart/form-data\";\n }\n }\n\n // If endpoint is OpenRPC, ensure Content-Type is application/json\n if (endpoint.protocol?.type === \"openrpc\") {\n headers[\"Content-Type\"] = \"application/json\";\n }\n\n // Preprocess query parameters based on explode metadata\n const processedQueryParams =\n preprocessQueryParameters(example.queryParameters ?? undefined, endpoint.queryParameters ?? undefined) ?? {};\n\n return {\n method: endpoint.method,\n url,\n searchParams: processedQueryParams,\n headers: JSON.parse(JSON.stringify(headers)),\n basicAuth,\n protocol: endpoint.protocol ?? undefined,\n body:\n body == null\n ? undefined\n : visitDiscriminatedUnion(body)._visit<SnippetHttpRequestBody | undefined>({\n json: (value) => value,\n form: (value) => {\n const toRet: Record<string, SnippetHttpRequestBodyFormValue> = {};\n for (const [key, val] of Object.entries(value.value)) {\n const typedVal = val as {\n type: string;\n value?: unknown;\n filename?: string;\n files?: { filename: string }[];\n };\n const formValue = visitDiscriminatedUnion(typedVal, \"type\")._visit<\n SnippetHttpRequestBodyFormValue | undefined\n >({\n exploded: (value) => ({ type: \"exploded\", value: value.value as unknown[] }),\n json: (value) => ({ type: \"json\", value: value.value }),\n filename: (value) => ({\n type: \"filename\",\n filename: String(value.value ?? \"\"),\n contentType: undefined // TODO: infer content type?\n }),\n filenames: (value) => ({\n type: \"filenames\",\n files: (value.value as string[]).map((filename: string) => ({\n filename,\n contentType: undefined // TODO: infer content type?\n }))\n }),\n filenameWithData: (value) => ({\n type: \"filename\",\n filename: String(value.filename ?? \"\"),\n contentType: undefined // TODO: infer content type?\n }),\n filenamesWithData: (value) => ({\n type: \"filenames\",\n files: ((value.value as { filename: string }[]) ?? []).map(\n ({ filename }: { filename: string }) => ({\n filename,\n contentType: undefined // TODO: infer content type?\n })\n )\n }),\n _other: () => undefined\n });\n if (formValue != null) {\n toRet[key] = formValue;\n }\n }\n return { type: \"form\", value: toRet };\n },\n // TODO: filename should be provided in the example from the API definition\n bytes: () => ({ type: \"bytes\", filename: \"<filename>\" }),\n _other: () => undefined\n })\n };\n}\n","import { sanitizeUrl, unknownToString } from \"@fern-api/ui-core-utils\";\nimport qs from \"qs\";\n\nimport type { EndpointDefinition, ParameterProperty, PathPart } from \"./latest\";\n\n/**\n * Preprocesses query parameters based on explode metadata.\n * When explode=false, arrays are joined with commas instead of being repeated.\n */\nexport function preprocessQueryParameters(\n queryParameters: Record<string, unknown> | undefined,\n parameterMetadata: ParameterProperty[] | undefined\n): Record<string, unknown> | undefined {\n if (queryParameters == null) {\n return undefined;\n }\n\n // If no metadata, return as-is (default behavior is explode=true)\n if (parameterMetadata == null || parameterMetadata.length === 0) {\n return queryParameters;\n }\n\n // Create a map of parameter key to explode setting\n const explodeMap = new Map<string, boolean | undefined>();\n for (const param of parameterMetadata) {\n explodeMap.set(param.key, param.explode ?? undefined);\n }\n\n // Process each query parameter\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(queryParameters)) {\n const explode = explodeMap.get(key);\n\n // If explode is explicitly false and value is an array, join with commas\n if (explode === false && Array.isArray(value)) {\n result[key] = value.map((v) => unknownToString(v)).join(\",\");\n } else {\n result[key] = value;\n }\n }\n\n return result;\n}\n\nfunction buildQueryParams(queryParameters: Record<string, unknown> | undefined): string {\n if (queryParameters == null) {\n return \"\";\n }\n\n const filteredParams = Object.entries(queryParameters).reduce<Record<string, unknown>>((acc, [key, value]) => {\n if (value != null) {\n acc[key] = value;\n }\n return acc;\n }, {});\n\n if (Object.keys(filteredParams).length === 0) {\n return \"\";\n }\n\n const queryString = qs.stringify(filteredParams, {\n encode: false,\n arrayFormat: \"repeat\",\n skipNulls: true,\n serializeDate: (date: Date) => date.toISOString()\n });\n\n return queryString ? \"?\" + queryString : \"\";\n}\n\nfunction buildPath(path: PathPart[] = [], pathParameters?: Record<string, unknown>): string {\n return path\n .map((part) => {\n if (part.type === \"pathParameter\") {\n const key = part.value;\n const stateValue = unknownToString(pathParameters?.[key]);\n return stateValue.length > 0 ? encodeURIComponent(stateValue) : \":\" + key;\n }\n return part.value;\n })\n .join(\"\");\n}\n\ninterface BuildRequestUrlOptions {\n path?: PathPart[];\n pathParameters?: Record<string, unknown>;\n queryParameters?: Record<string, unknown>;\n baseUrl?: string;\n}\nexport function buildRequestUrl({\n baseUrl = \"\",\n path,\n pathParameters,\n queryParameters\n}: BuildRequestUrlOptions): string {\n const sanitizedBaseUrl = sanitizeUrl(baseUrl) || \"\";\n\n if (sanitizedBaseUrl.endsWith(\"/\")) {\n return sanitizedBaseUrl.slice(0, -1) + buildPath(path, pathParameters) + buildQueryParams(queryParameters);\n }\n return sanitizedBaseUrl + buildPath(path, pathParameters) + buildQueryParams(queryParameters);\n}\n\ninterface BuildEndpointUrlOptions {\n endpoint?: EndpointDefinition;\n pathParameters?: Record<string, unknown>;\n queryParameters?: Record<string, unknown>;\n baseUrl?: string;\n}\nexport function buildEndpointUrl({\n endpoint,\n pathParameters,\n queryParameters,\n baseUrl\n}: BuildEndpointUrlOptions): string {\n const environmentBaseUrl =\n baseUrl ??\n (endpoint?.environments?.find((env) => env.id === endpoint.defaultEnvironment) ?? endpoint?.environments?.[0])\n ?.baseUrl;\n\n // sanitize the base URL - if invalid, it will be null\n const sanitizedBaseUrl = sanitizeUrl(environmentBaseUrl);\n\n // Preprocess query parameters based on explode metadata\n const processedQueryParameters = preprocessQueryParameters(queryParameters, endpoint?.queryParameters ?? undefined);\n\n return buildRequestUrl({\n baseUrl: sanitizedBaseUrl || \"\",\n path: endpoint?.path,\n pathParameters,\n queryParameters: processedQueryParameters\n });\n}\n","import isPlainObject from \"@fern-api/ui-core-utils/isPlainObject\";\nimport visitDiscriminatedUnion from \"@fern-api/ui-core-utils/visitDiscriminatedUnion\";\nimport { difference, keyBy } from \"es-toolkit/array\";\nimport { mapValues } from \"es-toolkit/object\";\n\nimport type * as Latest from \"./latest\";\nimport type { TypeShapeOrReference } from \"./types\";\nimport { unwrapDiscriminatedUnionVariant, unwrapObjectType } from \"./unwrap\";\n\nfunction sortKeysBy(obj: Record<string, unknown>, order: string[]): Record<string, unknown> {\n return mapValues(\n // difference() is used to ensure that all keys are included in the result\n keyBy([...order, ...difference(Object.keys(obj), order)], (key) => key),\n (key) => obj[key]\n );\n}\n\nexport function sortKeysByShape(\n obj: unknown,\n shape: TypeShapeOrReference | Latest.HttpRequestBodyShape | Latest.HttpResponseBodyShape | null | undefined,\n types: Record<string, Latest.TypeDefinition>\n): unknown {\n if ((!isPlainObject(obj) && !Array.isArray(obj)) || shape == null) {\n return obj;\n }\n return visitDiscriminatedUnion(shape, \"type\")._visit<unknown>({\n id: ({ id }) => sortKeysByShape(obj, types[id]?.shape, types),\n primitive: () => obj,\n literal: () => obj,\n optional: ({ shape }) => sortKeysByShape(obj, shape, types),\n nullable: ({ shape }) => sortKeysByShape(obj, shape, types),\n list: ({ itemShape }) => (Array.isArray(obj) ? obj.map((o) => sortKeysByShape(o, itemShape, types)) : obj),\n set: ({ itemShape }) => (Array.isArray(obj) ? obj.map((o) => sortKeysByShape(o, itemShape, types)) : obj),\n map: ({ valueShape }) =>\n isPlainObject(obj) ? mapValues(obj, (value) => sortKeysByShape(value, valueShape, types)) : obj,\n unknown: () => obj,\n object: (object) => {\n const objectProperties = unwrapObjectType(object, types).properties;\n return isPlainObject(obj)\n ? mapValues(\n sortKeysBy(\n obj,\n objectProperties.map((p) => p.key)\n ),\n (value, key) => {\n const property = objectProperties.find((p) => p.key === key);\n if (property == null) {\n return value;\n }\n return sortKeysByShape(value, property?.valueShape, types);\n }\n )\n : obj;\n },\n undiscriminatedUnion: () => obj, // TODO: match variant and sort nested objects\n discriminatedUnion: (union) => {\n const { discriminant, variants } = union;\n if (!isPlainObject(obj)) {\n return obj;\n }\n const variant = obj[discriminant];\n if (variant == null) {\n return obj;\n }\n const variantShape = variants.find((v) => v.discriminantValue === variant);\n if (variantShape == null) {\n return obj;\n }\n const variantProperties = unwrapDiscriminatedUnionVariant(union, variantShape, types).properties;\n return mapValues(sortKeysBy(obj, [discriminant, ...variantProperties.map((p) => p.key)]), (value, key) => {\n if (key === discriminant) {\n return value;\n }\n const property = variantProperties.find((p) => p.key === key);\n if (property == null) {\n return value;\n }\n return sortKeysByShape(value, property.valueShape, types);\n });\n },\n enum: () => obj,\n alias: ({ value: typeRef }) => sortKeysByShape(obj, typeRef, types),\n formData: ({ fields }) => {\n if (!isPlainObject(obj)) {\n return obj;\n }\n\n return mapValues(\n sortKeysBy(\n obj,\n fields.map((p) => p.key)\n ),\n (v, key) => {\n const property = fields.find((p) => p.key === key);\n\n if (property == null) {\n return v;\n }\n\n if (property.type === \"property\") {\n return sortKeysByShape(v, property.valueShape, types);\n }\n\n return undefined;\n }\n );\n },\n bytes: () => obj,\n fileDownload: () => obj,\n streamingText: () => obj,\n stream: () => obj,\n empty: () => obj,\n _other: () => obj\n });\n}\n\nexport function safeSortKeysByShape(\n value: unknown,\n shape: TypeShapeOrReference | Latest.HttpRequestBodyShape | Latest.HttpResponseBodyShape | null | undefined,\n types: Record<string, Latest.TypeDefinition>\n): unknown {\n if (value == null) {\n return value;\n }\n try {\n return stripUndefines(sortKeysByShape(value, shape, types));\n } catch (e) {\n console.error(\"Failed to sort JSON keys by type shape\", e);\n\n return value;\n }\n}\n\nfunction stripUndefines(obj: unknown): unknown {\n return JSON.parse(JSON.stringify(obj));\n}\n","import type { HttpMethod } from \"./latest\";\n\ntype StatusCodeMessagesByMethod = Partial<Record<HttpMethod, string>>;\n\ntype StatusCodeMessages = Record<number, StatusCodeMessagesByMethod>;\n\ntype DefaultStatusCodeMessages = Record<number, string>;\n\nexport const STATUS_CODE_MESSAGES: DefaultStatusCodeMessages = {\n 100: \"Continue\",\n 101: \"Switching Protocols\",\n 102: \"Processing\",\n 103: \"Early Hints\",\n 200: \"OK\",\n 201: \"Created\",\n 202: \"Accepted\",\n 203: \"Non-Authoritative Information\",\n 204: \"No Content\",\n 205: \"Reset Content\",\n 206: \"Partial Content\",\n 207: \"Multi-Status\",\n 208: \"Already Reported\",\n 226: \"IM Used\",\n 300: \"Multiple Choices\",\n 301: \"Moved Permanently\",\n 302: \"Found\",\n 303: \"See Other\",\n 304: \"Not Modified\",\n 305: \"Use Proxy\",\n 306: \"Switch Proxy\",\n 307: \"Temporary Redirect\",\n 308: \"Permanent Redirect\",\n 400: \"Bad Request\",\n 401: \"Unauthorized\",\n 402: \"Payment Required\",\n 403: \"Forbidden\",\n 404: \"Not Found\",\n 405: \"Method Not Allowed\",\n 406: \"Not Acceptable\",\n 407: \"Proxy Authentication Required\",\n 408: \"Request Timeout\",\n 409: \"Conflict\",\n 410: \"Gone\",\n 411: \"Length Required\",\n 412: \"Precondition Failed\",\n 413: \"Payload Too Large\",\n 414: \"URI Too Long\",\n 415: \"Unsupported Media Type\",\n 416: \"Range Not Satisfiable\",\n 417: \"Expectation Failed\",\n 418: \"I'm a teapot\",\n 421: \"Misdirected Request\",\n 422: \"Unprocessable Entity\",\n 423: \"Locked\",\n 424: \"Failed Dependency\",\n 425: \"Too Early\",\n 426: \"Upgrade Required\",\n 428: \"Precondition Required\",\n 429: \"Too Many Requests\",\n 431: \"Request Header Fields Too Large\",\n 451: \"Unavailable For Legal Reasons\",\n 500: \"Internal Server Error\",\n 501: \"Not Implemented\",\n 502: \"Bad Gateway\",\n 503: \"Service Unavailable\",\n 504: \"Gateway Timeout\",\n 505: \"HTTP Version Not Supported\",\n 506: \"Variant Also Negotiates\",\n 507: \"Insufficient Storage\",\n 508: \"Loop Detected\",\n 510: \"Not Extended\",\n 511: \"Network Authentication Required\"\n};\n\nexport const STATUS_CODE_MESSAGES_METHOD_OVERRIDES: StatusCodeMessages = {\n 200: {\n GET: \"Retrieved\",\n POST: \"Successful\", // more accurate than \"Created\" for POST\n PUT: \"Updated\",\n PATCH: \"Updated\",\n DELETE: \"Deleted\"\n }\n};\n\nexport function getMessageForStatus(statusCode: number, method?: HttpMethod): string {\n // return the method-specific message if it exists\n if (method != null) {\n const methodOverrides = STATUS_CODE_MESSAGES_METHOD_OVERRIDES[statusCode];\n if (methodOverrides != null) {\n const message = methodOverrides[method];\n if (message != null) {\n return message;\n }\n }\n }\n\n // return the official status message if it exists\n const message = STATUS_CODE_MESSAGES[statusCode];\n if (message != null) {\n return message;\n }\n\n // return the default message if it exists\n if (statusCode >= 100 && statusCode < 200) {\n return \"Informational\";\n } else if (statusCode >= 200 && statusCode < 300) {\n return \"Success\";\n } else if (statusCode >= 300 && statusCode < 400) {\n return \"Redirection\";\n } else if (statusCode >= 400 && statusCode < 500) {\n return \"Client Error\";\n } else if (statusCode >= 500 && statusCode < 600) {\n return \"Server Error\";\n } else {\n return \"Unknown Status\";\n }\n}\n","import type { HTTPSnippetClient } from \"./types\";\n\n/**\n * HTTP snippet client configurations for each supported language.\n * These define which httpsnippet-lite target and client to use for each language.\n */\nexport const HTTP_SNIPPET_CLIENTS: HTTPSnippetClient[] = [\n { targetId: \"python\", clientId: \"requests\" },\n { targetId: \"javascript\", clientId: \"fetch\" },\n { targetId: \"go\", clientId: \"native\" },\n { targetId: \"ruby\", clientId: \"native\" },\n { targetId: \"java\", clientId: \"unirest\" },\n { targetId: \"php\", clientId: \"guzzle\" },\n { targetId: \"csharp\", clientId: \"restsharp\" },\n { targetId: \"swift\", clientId: \"nsurlsession\" }\n];\n","import type { ApiAuth } from \"../../client/APIV1Read\";\nimport type { AuthScheme, AuthSchemeId, CodeSnippet, EndpointDefinition } from \"../latest\";\n\n/**\n * Get the first auth scheme ID for an endpoint, preferring multiAuth over legacy auth.\n * multiAuth provides proper OR-of-AND semantics for endpoint-specific security.\n */\nexport function getFirstAuthSchemeId(endpoint: EndpointDefinition): AuthSchemeId | undefined {\n if (endpoint.multiAuth != null && endpoint.multiAuth.length > 0) {\n const firstGroup = endpoint.multiAuth[0];\n if (firstGroup && firstGroup.schemes.length > 0) {\n return firstGroup.schemes[0];\n }\n }\n return endpoint.auth?.[0];\n}\n\n/**\n * Get the first auth scheme for an endpoint from the auths record.\n * Uses getFirstAuthSchemeId to select the correct auth scheme.\n */\nexport function getFirstAuthScheme<T extends AuthScheme | ApiAuth>(\n endpoint: EndpointDefinition,\n auths: Record<AuthSchemeId, T>\n): T | undefined {\n const authId = getFirstAuthSchemeId(endpoint);\n return authId != null ? auths[authId] : undefined;\n}\n\n/**\n * Get the header name for an auth scheme.\n * Returns the header wire value for header auth, \"Authorization\" for bearer/OAuth, or undefined.\n */\nexport function getAuthHeaderName(auth: AuthScheme | ApiAuth | undefined): string | undefined {\n if (auth == null) {\n return undefined;\n }\n if (auth.type === \"header\") {\n return (auth as { headerWireValue?: string }).headerWireValue;\n }\n if (auth.type === \"bearerAuth\" || auth.type === \"oAuth\") {\n return \"Authorization\";\n }\n return undefined;\n}\n\n/**\n * Check if a snippet is likely auto-generated (not user-provided).\n * A snippet is considered likely generated if:\n * - generated === true, OR\n * - generated is undefined AND name, install, and description are all null\n */\nexport function isLikelyGeneratedSnippet(snippet: CodeSnippet): boolean {\n if (snippet.generated === true) {\n return true;\n }\n if (snippet.generated === false) {\n return false;\n }\n return snippet.name == null && snippet.install == null && snippet.description == null;\n}\n\n/**\n * Determine if a curl snippet should be regenerated because it has the wrong auth header or URL.\n * Only regenerates if:\n * - No existing snippets exist, OR\n * - All existing snippets are likely generated AND none contain the expected header, OR\n * - For basic auth: existing snippets use -H \"Authorization: Basic\" instead of -u flag, OR\n * - The endpoint has a non-trivial path but no existing snippet's URL contains it\n * (targeted repair for snippets generated before the empty-example-path fix)\n */\nexport function shouldRegenerateCurlSnippet(\n existingSnippets: CodeSnippet[] | undefined,\n expectedHeaderName: string | undefined,\n authScheme?: AuthScheme | ApiAuth,\n endpoint?: EndpointDefinition\n): boolean {\n if (existingSnippets == null || existingSnippets.length === 0) {\n return true;\n }\n\n const allLikelyGenerated = existingSnippets.every(isLikelyGeneratedSnippet);\n if (!allLikelyGenerated) {\n return false;\n }\n\n // Regenerate if the endpoint has a non-trivial path but no existing snippet's URL contains it.\n // This catches pre-stored snippets that were generated with a broken URL (base only, no path).\n if (endpoint != null && isMissingEndpointPath(existingSnippets, endpoint)) {\n return true;\n }\n\n // For basic auth, check if snippets use -H \"Authorization: Basic\" instead of -u flag\n // If so, regenerate to use -u flag\n if (authScheme?.type === \"basicAuth\") {\n const usesBasicAuthHeader = existingSnippets.some(\n (s) => s.code.includes('-H \"Authorization: Basic') || s.code.includes(\"-H 'Authorization: Basic\")\n );\n if (usesBasicAuthHeader) {\n return true;\n }\n\n // If passwordAlwaysEmpty, regenerate if existing snippet still contains a password placeholder\n if (authScheme.passwordAlwaysEmpty) {\n const passwordName = authScheme.passwordName ?? \"password\";\n const hasPasswordPlaceholder = existingSnippets.some((s) => s.code.includes(`:<${passwordName}>`));\n if (hasPasswordPlaceholder) {\n return true;\n }\n }\n\n // If basic auth and no header found, check if -u flag is present\n const usesUFlag = existingSnippets.some((s) => s.code.includes(\"-u \"));\n // If -u flag is present, no need to regenerate\n return !usesUFlag;\n }\n\n if (expectedHeaderName == null) {\n return false;\n }\n\n const hasCorrectHeader = existingSnippets.some(\n (s) => s.code.includes(`\"${expectedHeaderName}:`) || s.code.includes(`'${expectedHeaderName}:`)\n );\n return !hasCorrectHeader;\n}\n\n/**\n * Determine if an HTTP snippet for a given language should be regenerated.\n * Always regenerates auto-generated snippets so they pick up the latest\n * generation logic. Only preserves user-provided snippets (generated === false).\n */\nexport function shouldRegenerateHttpSnippet(existingSnippets: CodeSnippet[] | undefined): boolean {\n if (existingSnippets == null || existingSnippets.length === 0) {\n return false; // nothing to regenerate; will be generated fresh\n }\n\n return existingSnippets.every(isLikelyGeneratedSnippet);\n}\n\n/**\n * Check whether none of the existing curl snippets contain any literal segment of the\n * endpoint path. Returns true only when the endpoint has at least one non-empty literal\n * segment (ignoring bare slashes) and not a single snippet references any of those segments.\n */\nfunction isMissingEndpointPath(existingSnippets: CodeSnippet[], endpoint: EndpointDefinition): boolean {\n const literalSegments = (endpoint.path ?? [])\n .filter((part): part is { type: \"literal\"; value: string } => part.type === \"literal\")\n .flatMap((part) => part.value.split(\"/\"))\n .map((segment) => segment.trim())\n .filter((segment) => segment.length > 0);\n\n if (literalSegments.length === 0) {\n return false;\n }\n\n return existingSnippets.every((snippet) => literalSegments.every((segment) => !snippet.code.includes(segment)));\n}\n","import { unknownToString, visitDiscriminatedUnion } from \"@fern-api/ui-core-utils\";\nimport type { HarRequest } from \"httpsnippet-lite\";\nimport type { ApiAuth } from \"../../client/APIV1Read\";\nimport {\n type AuthSchemeId,\n buildEndpointUrl,\n type EndpointDefinition,\n type ExampleEndpointCall,\n type ExampleEndpointRequest,\n preprocessQueryParameters\n} from \"../\";\nimport { getFirstAuthScheme } from \"./auth-scheme\";\nimport type { BasicAuthInfo } from \"./HttpSnippetConverter\";\n\nexport function getHarRequest(\n endpoint: EndpointDefinition,\n example: ExampleEndpointCall,\n auths: Record<AuthSchemeId, ApiAuth>,\n requestBody: ExampleEndpointRequest | undefined\n): HarRequest {\n const request: HarRequest = {\n httpVersion: \"1.1\",\n method: \"GET\",\n url: \"\",\n headers: [],\n headersSize: -1,\n queryString: [],\n cookies: [],\n bodySize: -1\n };\n const builtUrl = buildEndpointUrl({\n endpoint,\n // omit query parameters here because they are included in the `queryString` field\n pathParameters: example.pathParameters ?? undefined\n });\n\n // HTTPSnippet requires a full URL with protocol and host\n // If the built URL is a relative path, prepend a placeholder base URL\n request.url =\n builtUrl.startsWith(\"http://\") || builtUrl.startsWith(\"https://\")\n ? builtUrl\n : `https://api.example.com${builtUrl.startsWith(\"/\") ? \"\" : \"/\"}${builtUrl}`;\n\n request.method = endpoint.method;\n\n // Preprocess query parameters based on explode metadata\n const processedQueryParams =\n preprocessQueryParameters(example.queryParameters ?? undefined, endpoint.queryParameters ?? undefined) ?? {};\n request.queryString = Object.entries(processedQueryParams).map(([name, value]) => ({\n name,\n value: unknownToString(value)\n }));\n request.headers = Object.entries(example.headers ?? {}).map(([name, value]) => ({\n name,\n value: unknownToString(value)\n }));\n\n let mimeType = endpoint.requests?.[0]?.contentType;\n\n if (requestBody != null) {\n if (mimeType == null) {\n mimeType = requestBody.type === \"json\" ? \"application/json\" : \"multipart/form-data\";\n }\n request.postData = {\n mimeType\n };\n\n // filter out request parameters that have no value and are not an array\n if (requestBody.value && typeof requestBody.value === \"object\" && !Array.isArray(requestBody.value)) {\n requestBody.value = Object.fromEntries(\n Object.entries(requestBody.value).filter(([_, valueObj]) => {\n // Keep arrays and primitive values\n if (Array.isArray(valueObj) || typeof valueObj !== \"object\" || valueObj == null) {\n return true;\n }\n // For objects, only filter out empty objects without a value property\n return Object.keys(valueObj).length > 0;\n })\n );\n }\n\n if (requestBody.type === \"json\") {\n request.postData.text = JSON.stringify(requestBody.value, null, 2);\n } else if (requestBody.type === \"form\") {\n request.postData.params = [];\n\n for (const [name, rawValue] of Object.entries(requestBody.value)) {\n const value = rawValue as {\n type: string;\n value?: unknown;\n filename?: string;\n };\n if (value.type === \"json\") {\n request.postData.params.push({\n name,\n value: typeof value.value === \"string\" ? value.value : JSON.stringify(value.value, null, 2)\n });\n } else if (value.type === \"filename\") {\n request.postData.params.push({\n name,\n fileName: String(value.value ?? \"\")\n });\n } else if (value.type === \"filenameWithData\") {\n request.postData.params.push({\n name,\n fileName: String(value.filename ?? \"\")\n });\n } else if (value.type === \"filenames\") {\n for (const fileName of value.value as string[]) {\n request.postData.params.push({\n name,\n fileName\n });\n }\n } else if (value.type === \"filenamesWithData\") {\n for (const { filename } of value.value as { filename: string }[]) {\n request.postData.params.push({\n name,\n fileName: filename\n });\n }\n }\n }\n } else if (requestBody.type === \"bytes\") {\n // TODO: verify this is correct\n request.postData.params = [\n {\n name: \"file\",\n value: String((requestBody.value as { value?: unknown })?.value ?? \"\")\n }\n ];\n }\n }\n\n const auth = getFirstAuthScheme(endpoint, auths);\n\n if (auth != null) {\n visitDiscriminatedUnion(auth)._visit({\n basicAuth: ({ usernameName = \"username\", passwordName = \"password\", passwordAlwaysEmpty }) => {\n request.headers.push({\n name: \"Authorization\",\n value: passwordAlwaysEmpty\n ? `Basic <${usernameName}>:`\n : `Basic <${usernameName}>:<${passwordName}>`\n });\n },\n bearerAuth: ({ tokenName = \"token\" }) => {\n request.headers.push({\n name: \"Authorization\",\n value: `Bearer <${tokenName}>`\n });\n },\n header: ({ headerWireValue, nameOverride = headerWireValue, prefix }) => {\n request.headers.push({\n name: headerWireValue,\n value: prefix != null ? `${prefix} <${nameOverride}>` : `<${nameOverride}>`\n });\n },\n oAuth: (oAuth) => {\n visitDiscriminatedUnion(oAuth.value, \"type\")._visit({\n clientCredentials: (clientCredentials) => {\n visitDiscriminatedUnion(clientCredentials.value, \"type\")._visit({\n referencedEndpoint: () => {\n request.headers.push({\n name: clientCredentials.value.headerName || \"Authorization\",\n value: `${clientCredentials.value.tokenPrefix ? `${clientCredentials.value.tokenPrefix ?? \"Bearer\"} ` : \"\"}<token>.`\n });\n }\n });\n }\n });\n }\n });\n }\n\n if (mimeType != null) {\n request.headers.push({\n name: \"Content-Type\",\n value: mimeType\n });\n }\n\n return request;\n}\n\n/**\n * Extract basic auth info from an endpoint's auth scheme, if present.\n * Returns the placeholder username and password names used in HAR headers.\n */\nexport function getHarRequestBasicAuth(\n endpoint: EndpointDefinition,\n auths: Record<AuthSchemeId, ApiAuth>\n): BasicAuthInfo | undefined {\n const auth = getFirstAuthScheme(endpoint, auths);\n if (auth?.type === \"basicAuth\") {\n const { usernameName = \"username\", passwordName = \"password\", passwordAlwaysEmpty } = auth;\n return {\n username: `<${usernameName}>`,\n password: passwordAlwaysEmpty ? \"\" : `<${passwordName}>`,\n passwordAlwaysEmpty: passwordAlwaysEmpty ?? false\n };\n }\n return undefined;\n}\n","import type { TypeId } from \"../../navigation\";\nimport type {\n GraphQlOperation,\n GraphQlOperationType,\n ObjectProperty,\n PrimitiveType,\n TypeDefinition,\n TypeReference,\n TypeShape\n} from \"../latest\";\n\n/**\n * Context needed to generate a GraphQL snippet\n */\nexport interface GraphQlSnippetContext {\n operation: GraphQlOperation;\n types: Record<TypeId, TypeDefinition>;\n}\n\n/**\n * Generated GraphQL snippet\n */\nexport interface GraphQlSnippet {\n query: string;\n variables: Record<string, unknown>;\n response: unknown;\n}\n\n// Cache for generated snippets to avoid regenerating on re-renders\nconst snippetCache = new WeakMap<GraphQlOperation, GraphQlSnippet>();\n\n/**\n * Generate a GraphQL snippet from an operation definition\n */\nexport function generateGraphQlSnippet(context: GraphQlSnippetContext): GraphQlSnippet {\n const cached = snippetCache.get(context.operation);\n if (cached) {\n return cached;\n }\n const { operation, types } = context;\n\n const operationKeyword = getOperationKeyword(operation.operationType);\n const operationName = getExampleOperationName(operation.operationType);\n\n const args = operation.arguments ?? [];\n const variables: Record<string, unknown> = {};\n\n // Build variable definitions and collect example values\n const variableDefinitions = args.map((arg) => {\n const graphqlType = typeShapeToGraphQlType(arg.type, types);\n const exampleValue = generateExampleValue(arg.type, types, 5, new Set(), arg.defaultValue);\n variables[arg.name] = exampleValue;\n return `$${arg.name}: ${graphqlType}`;\n });\n\n // Build argument usage in the query\n const argumentUsage = args.map((arg) => `${arg.name}: $${arg.name}`);\n\n // Build the selection set from the return type, adjusting indent for fieldPath nesting\n const fieldPath = operation.fieldPath;\n const hasFieldPath = fieldPath != null && fieldPath.length > 0;\n const selectionSetIndent = hasFieldPath ? 2 + fieldPath.length : 2;\n const selectionSet = generateSelectionSet(operation.returnType, types, 2, new Set(), selectionSetIndent);\n\n // Construct the query\n let query = operationKeyword;\n if (operationName || variableDefinitions.length > 0) {\n query += ` ${operationName}`;\n if (variableDefinitions.length > 0) {\n query += `(${variableDefinitions.join(\", \")})`;\n }\n }\n\n query += \" {\\n\";\n\n const baseIndent = 2;\n\n if (hasFieldPath) {\n for (let i = 0; i < fieldPath.length; i++) {\n const indent = \" \".repeat(baseIndent + i * 2);\n query += `${indent}${fieldPath[i]} {\\n`;\n }\n }\n\n const operationIndent = hasFieldPath ? \" \".repeat(baseIndent + fieldPath.length * 2) : \" \";\n query += `${operationIndent}${operation.name}`;\n\n if (argumentUsage.length > 0) {\n query += `(${argumentUsage.join(\", \")})`;\n }\n\n if (selectionSet) {\n query += ` ${selectionSet}`;\n }\n\n query += \"\\n\";\n\n // Close the fieldPath nesting brackets\n if (hasFieldPath) {\n for (let i = fieldPath.length - 1; i >= 0; i--) {\n const indent = \" \".repeat(baseIndent + i * 2);\n query += `${indent}}\\n`;\n }\n }\n\n query += \"}\";\n\n // Generate example response based on return type\n const response = generateResponseExample(operation.name, operation.returnType, types, fieldPath);\n\n const result = { query, variables, response };\n snippetCache.set(operation, result);\n return result;\n}\n\n/**\n * Get the GraphQL operation keyword (query, mutation, subscription)\n */\nfunction getOperationKeyword(operationType: GraphQlOperationType): string {\n switch (operationType) {\n case \"QUERY\":\n return \"query\";\n case \"MUTATION\":\n return \"mutation\";\n case \"SUBSCRIPTION\":\n return \"subscription\";\n default:\n return \"query\";\n }\n}\n\n/**\n * Get the example operation name based on operation type\n */\nfunction getExampleOperationName(operationType: GraphQlOperationType): string {\n switch (operationType) {\n case \"QUERY\":\n return \"ExampleQuery\";\n case \"MUTATION\":\n return \"ExampleMutation\";\n case \"SUBSCRIPTION\":\n return \"ExampleSubscription\";\n default:\n return \"ExampleQuery\";\n }\n}\n\n/**\n * Convert a TypeShape to a GraphQL type string.\n * @param nonNull - when true (default), appends `!` for non-null types.\n * The optional/nullable branches pass false to suppress the suffix.\n */\nfunction typeShapeToGraphQlType(shape: TypeShape, types: Record<TypeId, TypeDefinition>, nonNull = true): string {\n if (shape.type === \"alias\") {\n return typeReferenceToGraphQlType(shape.value, types, nonNull);\n }\n const base =\n shape.type === \"enum\"\n ? \"String\"\n : shape.type === \"object\" || shape.type === \"undiscriminatedUnion\" || shape.type === \"discriminatedUnion\"\n ? \"Object\"\n : \"String\";\n return nonNull ? `${base}!` : base;\n}\n\n/**\n * Convert a TypeReference to a GraphQL type string.\n * @param nonNull - when true (default), appends `!` for non-null types.\n */\nfunction typeReferenceToGraphQlType(ref: TypeReference, types: Record<TypeId, TypeDefinition>, nonNull = true): string {\n switch (ref.type) {\n case \"primitive\": {\n const base = primitiveToGraphQlType(ref.value);\n return nonNull ? `${base}!` : base;\n }\n case \"id\": {\n const typeDef = types[ref.id];\n const base = typeDef ? (typeDef.displayName ?? unnamespacedName(typeDef.name) ?? \"Object\") : \"Object\";\n return nonNull ? `${base}!` : base;\n }\n case \"optional\":\n return typeShapeToGraphQlType(ref.shape, types, false);\n case \"nullable\":\n return typeShapeToGraphQlType(ref.shape, types, false);\n case \"list\": {\n const inner = typeShapeToGraphQlType(ref.itemShape, types);\n return nonNull ? `[${inner}]!` : `[${inner}]`;\n }\n case \"set\": {\n const inner = typeShapeToGraphQlType(ref.itemShape, types);\n return nonNull ? `[${inner}]!` : `[${inner}]`;\n }\n case \"map\":\n return nonNull ? \"Object!\" : \"Object\";\n case \"literal\":\n return nonNull ? \"String!\" : \"String\";\n case \"unknown\":\n return nonNull ? \"Object!\" : \"Object\";\n default:\n return nonNull ? \"String!\" : \"String\";\n }\n}\n\n/**\n * Extract the un-namespaced type name from a Fern type name.\n * e.g., \"orders_UserInput\" -> \"UserInput\"\n */\nfunction unnamespacedName(name: string): string {\n const lastUnderscoreIndex = name.lastIndexOf(\"_\");\n return lastUnderscoreIndex !== -1 ? name.slice(lastUnderscoreIndex + 1) : name;\n}\n\n/**\n * Convert a primitive type to GraphQL type\n */\nfunction primitiveToGraphQlType(primitive: PrimitiveType): string {\n switch (primitive.type) {\n case \"scalar\":\n return primitive.name;\n case \"integer\":\n case \"long\":\n case \"uint\":\n case \"uint64\":\n case \"bigInteger\":\n return \"Int\";\n case \"double\":\n return \"Float\";\n case \"boolean\":\n return \"Boolean\";\n case \"string\":\n case \"uuid\":\n case \"base64\":\n case \"datetime\":\n case \"date\":\n default:\n return \"String\";\n }\n}\n\n/**\n * Collect all properties for an object type, including inherited properties from `extends`.\n */\nfunction collectObjectProperties(\n shape: { extends: TypeId[]; properties: ObjectProperty[] },\n types: Record<TypeId, TypeDefinition>\n): ObjectProperty[] {\n const properties: ObjectProperty[] = [];\n for (const parentId of shape.extends) {\n const parentDef = types[parentId];\n if (parentDef?.shape?.type === \"object\") {\n properties.push(...collectObjectProperties(parentDef.shape, types));\n }\n }\n properties.push(...shape.properties);\n return properties;\n}\n\n/**\n * Generate an example value for a type\n */\nfunction generateExampleValue(\n shape: TypeShape,\n types: Record<TypeId, TypeDefinition>,\n depth: number,\n visited: Set<TypeId>,\n defaultValue?: unknown\n): unknown {\n if (defaultValue !== undefined) {\n return defaultValue;\n }\n\n if (depth <= 0) {\n return null;\n }\n\n if (shape.type === \"alias\") {\n return generateExampleValueFromReference(shape.value, types, depth, visited);\n }\n if (shape.type === \"enum\") {\n // Return the first enum value if available\n const firstValue = shape.values?.[0];\n return firstValue?.value ?? \"EXAMPLE_VALUE\";\n }\n if (shape.type === \"object\") {\n const properties = collectObjectProperties(shape, types);\n if (properties.length === 0) {\n return {};\n }\n const result: Record<string, unknown> = {};\n for (const prop of properties.slice(0, 10)) {\n result[prop.key] = generateExampleValue(prop.valueShape, types, depth - 1, visited);\n }\n return result;\n }\n if (shape.type === \"undiscriminatedUnion\") {\n const firstVariant = shape.variants?.[0];\n if (firstVariant?.shape) {\n return generateExampleValue(firstVariant.shape, types, depth, visited);\n }\n return {};\n }\n if (shape.type === \"discriminatedUnion\") {\n const firstVariant = shape.variants?.[0];\n if (firstVariant) {\n const result: Record<string, unknown> = {\n [shape.discriminant]: firstVariant.discriminantValue\n };\n const properties = collectObjectProperties(firstVariant, types);\n for (const prop of properties.slice(0, 10)) {\n result[prop.key] = generateExampleValue(prop.valueShape, types, depth - 1, visited);\n }\n return result;\n }\n return {};\n }\n\n return \"example\";\n}\n\n/**\n * Generate an example value from a type reference\n */\nfunction generateExampleValueFromReference(\n ref: TypeReference,\n types: Record<TypeId, TypeDefinition>,\n depth: number,\n visited: Set<TypeId>\n): unknown {\n switch (ref.type) {\n case \"primitive\":\n return generateExamplePrimitiveValue(ref.value);\n case \"id\": {\n if (visited.has(ref.id)) {\n return null;\n }\n const typeDef = types[ref.id];\n if (typeDef?.shape) {\n visited.add(ref.id);\n const result = generateExampleValue(typeDef.shape, types, depth, visited);\n visited.delete(ref.id);\n return result;\n }\n return {};\n }\n case \"optional\":\n case \"nullable\":\n return generateExampleValue(ref.shape, types, depth, visited);\n case \"list\":\n case \"set\":\n return [generateExampleValue(ref.itemShape, types, depth, visited)];\n case \"map\":\n return {};\n case \"literal\":\n return ref.value.value;\n case \"unknown\":\n return {};\n default:\n return \"example\";\n }\n}\n\n/**\n * Generate example primitive values\n */\nfunction generateExamplePrimitiveValue(primitive: PrimitiveType): unknown {\n switch (primitive.type) {\n case \"integer\":\n case \"long\":\n case \"uint\":\n case \"uint64\":\n case \"bigInteger\":\n return 0;\n case \"double\":\n return 0.0;\n case \"boolean\":\n return true;\n case \"string\":\n return \"example\";\n case \"uuid\":\n return \"00000000-0000-0000-0000-000000000000\";\n case \"datetime\":\n return new Date().toISOString();\n case \"date\":\n return new Date().toISOString().split(\"T\")[0];\n case \"base64\":\n return \"ZXhhbXBsZQ==\";\n case \"scalar\":\n return primitive.default ?? primitive.name;\n default:\n return \"example\";\n }\n}\n\n/**\n * Generate a selection set for the return type\n */\nfunction generateSelectionSet(\n shape: TypeShape,\n types: Record<TypeId, TypeDefinition>,\n depth: number,\n visited: Set<TypeId> = new Set(),\n indentLevel: number = 2\n): string {\n if (depth <= 0) {\n return \"\";\n }\n\n if (shape.type === \"alias\") {\n return generateSelectionSetFromReference(shape.value, types, depth, visited, indentLevel);\n }\n\n if (shape.type === \"object\") {\n const properties = shape.properties ?? [];\n if (properties.length === 0) {\n return \"\";\n }\n\n const indent = \" \".repeat(indentLevel);\n const closingIndent = \" \".repeat(indentLevel - 1);\n\n const fields = properties\n .slice(0, 10) // Limit to first 10 fields\n .map((prop) => {\n const nestedSelection = generateSelectionSet(\n prop.valueShape,\n types,\n depth - 1,\n visited,\n indentLevel + 1\n );\n if (nestedSelection) {\n return `${indent}${prop.key} ${nestedSelection}`;\n }\n return `${indent}${prop.key}`;\n });\n\n return `{\\n${fields.join(\"\\n\")}\\n${closingIndent}}`;\n }\n\n if (shape.type === \"enum\") {\n return \"\"; // Enums don't have selection sets\n }\n\n if (shape.type === \"undiscriminatedUnion\" || shape.type === \"discriminatedUnion\") {\n // For unions, just return the field name without nested selection\n return \"\";\n }\n\n return \"\";\n}\n\n/**\n * Generate selection set from a type reference\n */\nfunction generateSelectionSetFromReference(\n ref: TypeReference,\n types: Record<TypeId, TypeDefinition>,\n depth: number,\n visited: Set<TypeId>,\n indentLevel: number\n): string {\n switch (ref.type) {\n case \"id\": {\n if (visited.has(ref.id)) {\n return \"\"; // Prevent infinite recursion\n }\n const typeDef = types[ref.id];\n if (typeDef?.shape) {\n visited.add(ref.id);\n const result = generateSelectionSet(typeDef.shape, types, depth, visited, indentLevel);\n visited.delete(ref.id);\n return result;\n }\n return \"\";\n }\n case \"optional\":\n case \"nullable\":\n return generateSelectionSet(ref.shape, types, depth, visited, indentLevel);\n case \"list\":\n case \"set\":\n return generateSelectionSet(ref.itemShape, types, depth, visited, indentLevel);\n case \"primitive\":\n case \"literal\":\n case \"unknown\":\n case \"map\":\n default:\n return \"\";\n }\n}\n\n/**\n * Generate a GraphQL response example\n */\nfunction generateResponseExample(\n operationName: string,\n returnType: TypeShape,\n types: Record<TypeId, TypeDefinition>,\n fieldPath?: string[] | null\n): unknown {\n const data = generateResponseData(returnType, types, 3, new Set());\n\n // Build the nested response structure following the fieldPath\n let responseData: Record<string, unknown> = { [operationName]: data };\n if (fieldPath != null && fieldPath.length > 0) {\n for (let i = fieldPath.length - 1; i >= 0; i--) {\n const key = fieldPath[i];\n if (key != null) {\n responseData = { [key]: responseData };\n }\n }\n }\n\n return { data: responseData };\n}\n\n/**\n * Generate response data from a type shape\n */\nfunction generateResponseData(\n shape: TypeShape,\n types: Record<TypeId, TypeDefinition>,\n depth: number,\n visited: Set<TypeId>\n): unknown {\n if (depth <= 0) {\n return null;\n }\n\n if (shape.type === \"alias\") {\n return generateResponseDataFromReference(shape.value, types, depth, visited);\n }\n\n if (shape.type === \"object\") {\n const properties = shape.properties ?? [];\n if (properties.length === 0) {\n return {};\n }\n\n const result: Record<string, unknown> = {};\n for (const prop of properties.slice(0, 10)) {\n result[prop.key] = generateResponseData(prop.valueShape, types, depth - 1, visited);\n }\n return result;\n }\n\n if (shape.type === \"enum\") {\n const firstValue = shape.values?.[0];\n return firstValue?.value ?? \"EXAMPLE_VALUE\";\n }\n\n if (shape.type === \"undiscriminatedUnion\") {\n // Return example for the first variant\n const firstVariant = shape.variants?.[0];\n if (firstVariant?.shape) {\n return generateResponseData(firstVariant.shape, types, depth, visited);\n }\n return {};\n }\n\n if (shape.type === \"discriminatedUnion\") {\n // Return example for the first variant\n const firstVariant = shape.variants?.[0];\n if (firstVariant) {\n const result: Record<string, unknown> = {\n [shape.discriminant]: firstVariant.discriminantValue\n };\n if (firstVariant.properties) {\n for (const prop of firstVariant.properties.slice(0, 10)) {\n result[prop.key] = generateResponseData(prop.valueShape, types, depth - 1, visited);\n }\n }\n return result;\n }\n return {};\n }\n\n return null;\n}\n\n/**\n * Generate response data from a type reference\n */\nfunction generateResponseDataFromReference(\n ref: TypeReference,\n types: Record<TypeId, TypeDefinition>,\n depth: number,\n visited: Set<TypeId>\n): unknown {\n switch (ref.type) {\n case \"primitive\":\n return generateExamplePrimitiveValue(ref.value);\n case \"id\": {\n if (visited.has(ref.id)) {\n return null; // Prevent infinite recursion\n }\n const typeDef = types[ref.id];\n if (typeDef?.shape) {\n visited.add(ref.id);\n const result = generateResponseData(typeDef.shape, types, depth, visited);\n visited.delete(ref.id);\n return result;\n }\n return {};\n }\n case \"optional\":\n case \"nullable\":\n return generateResponseData(ref.shape, types, depth, visited);\n case \"list\":\n case \"set\":\n return [generateResponseData(ref.itemShape, types, depth, visited)];\n case \"map\":\n return {};\n case \"literal\":\n return ref.value.value;\n case \"unknown\":\n return {};\n default:\n return null;\n }\n}\n","import { type HarRequest, HTTPSnippet, type TargetId } from \"httpsnippet-lite\";\n\nimport { HTTP_SNIPPET_CLIENTS } from \"./constants\";\n\nconst IMPORT_PREFIXES: Partial<Record<TargetId, string>> = {\n csharp: \"using RestSharp;\\n\\n\",\n java: \"import com.mashape.unirest.http.HttpResponse;\\nimport com.mashape.unirest.http.Unirest;\\n\\n\"\n};\n\nconst PHP_AUTOLOAD_INSERT = \"\\nrequire_once('vendor/autoload.php');\\n\";\n\nexport interface BasicAuthInfo {\n username: string;\n password: string;\n passwordAlwaysEmpty?: boolean;\n}\n\nexport class HttpSnippetConverter {\n private readonly snippet: HTTPSnippet;\n private readonly basicAuth: BasicAuthInfo | undefined;\n\n constructor(harRequest: HarRequest, basicAuth?: BasicAuthInfo) {\n this.snippet = new HTTPSnippet(harRequest);\n this.basicAuth = basicAuth;\n }\n\n async convert(targetId: TargetId, clientId: string): Promise<string | undefined> {\n const convertedCode = await this.snippet.convert(targetId, clientId);\n const raw =\n typeof convertedCode === \"string\" ? convertedCode : convertedCode != null ? convertedCode[0] : undefined;\n\n if (raw == null) {\n return undefined;\n }\n\n let code = this.addImports(raw, targetId);\n if (this.basicAuth != null) {\n code = applyBasicAuth(code, targetId, this.basicAuth);\n }\n return code;\n }\n\n async convertAll(): Promise<{ targetId: TargetId; code: string }[]> {\n const results: { targetId: TargetId; code: string }[] = [];\n\n for (const { targetId, clientId } of HTTP_SNIPPET_CLIENTS) {\n const code = await this.convert(targetId, clientId);\n if (code != null) {\n results.push({ targetId, code });\n }\n }\n\n return results;\n }\n\n private addImports(code: string, targetId: TargetId): string {\n if (targetId === \"php\") {\n return code.replace(/^<\\?php\\n/, `<?php${PHP_AUTOLOAD_INSERT}`);\n }\n\n const prefix = IMPORT_PREFIXES[targetId];\n if (prefix != null) {\n return `${prefix}${code}`;\n }\n\n return code;\n }\n}\n\n/**\n * Replace the literal \"Basic <username>:<password>\" header value with\n * native auth support or idiomatic base64 encoding for each target language.\n *\n * Languages with native HTTP basic auth support (Python, Ruby, Java, PHP, C#, Go)\n * use their own internal pattern matching to find and replace the Authorization header,\n * so they don't require the exact quoted literal pattern to match.\n *\n * Languages without native support (JavaScript, Swift) use a regex-based replacement\n * on the exact literal value, so they require the quoted pattern to match.\n */\nfunction applyBasicAuth(code: string, targetId: TargetId, auth: BasicAuthInfo): string {\n const literalValue = `Basic ${auth.username}:${auth.password}`;\n\n // Build a regex that matches the literal value in single or double quotes\n const escapedLiteral = literalValue.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n const quotedPattern = new RegExp(`([\"'])${escapedLiteral}\\\\1`);\n\n // Languages with native auth support use their own patterns to find the\n // Authorization header, so they don't need the exact literal to match.\n // This is important for passwordAlwaysEmpty where the literal is \"Basic <key>:\"\n // which may not match the quoted pattern exactly.\n switch (targetId) {\n case \"python\":\n return applyPythonBasicAuth(code, quotedPattern, auth);\n case \"go\":\n return applyGoBasicAuth(code, auth);\n case \"ruby\":\n return applyRubyBasicAuth(code, quotedPattern, auth);\n case \"java\":\n return applyJavaBasicAuth(code, quotedPattern, auth);\n case \"php\":\n return applyPhpBasicAuth(code, quotedPattern, auth);\n case \"csharp\":\n return applyCSharpBasicAuth(code, quotedPattern, auth);\n default:\n break;\n }\n\n // For languages without native auth (JS, Swift), we need the exact literal to match\n if (!quotedPattern.test(code)) {\n return code;\n }\n\n switch (targetId) {\n case \"javascript\":\n return applyJavaScriptBasicAuth(code, quotedPattern, auth);\n case \"swift\":\n return applySwiftBasicAuth(code, quotedPattern, auth);\n default:\n return code;\n }\n}\n\nfunction applyPythonBasicAuth(code: string, _pattern: RegExp, auth: BasicAuthInfo): string {\n // Python requests has native auth= parameter support\n // Remove the Authorization header from the headers dict and add auth= to requests call\n\n // Match Authorization header in dict - could be on same line or separate line\n const authHeaderInDictPattern = /,?\\s*\"Authorization\":\\s*\"[^\"]*\",?/;\n const hasAuthHeader = authHeaderInDictPattern.test(code);\n\n if (hasAuthHeader) {\n // Remove the Authorization header entry from the headers dict\n code = code.replace(authHeaderInDictPattern, \"\");\n\n // Clean up empty headers dict: `headers = {}` with surrounding whitespace\n const emptyHeadersPattern = /\\nheaders = \\{\\s*\\}\\n\\n/;\n const headersAreEmpty = emptyHeadersPattern.test(code);\n\n if (headersAreEmpty) {\n // Remove the empty headers dict\n code = code.replace(emptyHeadersPattern, \"\\n\");\n // Remove headers= parameter from the requests call\n code = code.replace(/,?\\s*headers=headers/, \"\");\n }\n\n // Add auth= parameter to the requests call\n const authTuple = auth.passwordAlwaysEmpty\n ? `auth=(\"${auth.username}\", \"\")`\n : `auth=(\"${auth.username}\", \"${auth.password}\")`;\n code = code.replace(/(response = requests\\.\\w+\\([^)]+)\\)/, `$1, ${authTuple})`);\n\n return code;\n }\n\n // Fallback: if we can't find the header pattern, use base64 encoding\n const importLine = \"import base64\\n\";\n const credentialsVar = `credentials = base64.b64encode(f\"${auth.username}:${auth.password}\".encode()).decode()\\n`;\n code = code.replace(/^(import requests\\n)/, `$1${importLine}`);\n code = code.replace(/^(headers = \\{)/m, `${credentialsVar}\\n$1`);\n code = code.replace(_pattern, `f\"Basic {credentials}\"`);\n return code;\n}\n\nfunction applyJavaScriptBasicAuth(code: string, pattern: RegExp, auth: BasicAuthInfo): string {\n const credentialsLine = `const credentials = btoa(\"${auth.username}:${auth.password}\");\\n`;\n\n // Add credentials variable before the options\n code = code.replace(/^(const options)/m, `${credentialsLine}\\n$1`);\n\n // Replace the literal with template literal\n code = code.replace(pattern, \"`Basic ${credentials}`\");\n\n return code;\n}\n\nfunction applyGoBasicAuth(code: string, auth: BasicAuthInfo): string {\n // Go has a built-in SetBasicAuth method on http.Request\n // Replace Header.Add(\"Authorization\", \"Basic ...\") with req.SetBasicAuth(username, password)\n const headerPattern = new RegExp(\n `req\\\\.Header\\\\.Add\\\\(\"Authorization\",\\\\s*\"Basic ${auth.username.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")}:${auth.password.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")}\"\\\\)`\n );\n code = code.replace(headerPattern, `req.SetBasicAuth(\"${auth.username}\", \"${auth.password}\")`);\n\n return code;\n}\n\nfunction applyRubyBasicAuth(code: string, pattern: RegExp, auth: BasicAuthInfo): string {\n // Ruby's Net::HTTP has native basic_auth support\n const authHeaderPattern = /request\\[\"Authorization\"\\]\\s*=\\s*[^\\n]+\\n/;\n const hasAuthHeader = authHeaderPattern.test(code);\n\n if (hasAuthHeader) {\n const password = auth.passwordAlwaysEmpty ? \"\" : auth.password;\n code = code.replace(authHeaderPattern, `request.basic_auth(\"${auth.username}\", \"${password}\")\\n`);\n return code;\n }\n\n // Fallback: use Base64 encoding\n const requireLine = \"require 'base64'\\n\";\n code = code.replace(/^(require 'uri'\\n)/, `$1${requireLine}`);\n code = code.replace(pattern, `\"Basic #{Base64.strict_encode64(\"${auth.username}:${auth.password}\")}\"`);\n return code;\n}\n\nfunction applyJavaBasicAuth(code: string, pattern: RegExp, auth: BasicAuthInfo): string {\n // Java Unirest has native .basicAuth() support\n const headerPattern = /\\.header\\(\"Authorization\",\\s*\"Basic [^\"]*\"\\)/;\n const hasAuthHeader = headerPattern.test(code);\n\n if (hasAuthHeader) {\n const password = auth.passwordAlwaysEmpty ? \"\" : auth.password;\n code = code.replace(headerPattern, `.basicAuth(\"${auth.username}\", \"${password}\")`);\n return code;\n }\n\n // Fallback: use Base64 encoding\n const importLine = \"import java.util.Base64;\\n\";\n code = code.replace(/^(import com\\.mashape)/m, `${importLine}$1`);\n code = code.replace(\n pattern,\n `\"Basic \" + Base64.getEncoder().encodeToString(\"${auth.username}:${auth.password}\".getBytes())`\n );\n return code;\n}\n\nfunction applyPhpBasicAuth(code: string, pattern: RegExp, auth: BasicAuthInfo): string {\n // PHP Guzzle has native 'auth' option support\n const headerPattern = /'Authorization'\\s*=>\\s*'Basic [^']*'/;\n const hasAuthHeader = headerPattern.test(code);\n\n if (hasAuthHeader) {\n // Remove the Authorization header\n code = code.replace(/\\s*'Authorization'\\s*=>\\s*'Basic [^']*',?/, \"\");\n\n // Add auth option to the Guzzle request options\n const password = auth.passwordAlwaysEmpty ? \"\" : auth.password;\n const authOption = `'auth' => ['${auth.username}', '${password}']`;\n\n // Insert auth option into the request options array\n // Look for the 'headers' key in the options array and add auth after it\n if (code.includes(\"'headers'\")) {\n code = code.replace(/('headers'\\s*=>\\s*\\[[^\\]]*\\]),?/, `$1,\\n ${authOption},`);\n } else {\n // Add before the closing bracket of options\n code = code.replace(/(\\$client->request\\([^,]+,\\s*[^,]+,\\s*\\[)/, `$1\\n ${authOption},`);\n }\n\n return code;\n }\n\n // Fallback: use base64_encode\n code = code.replace(pattern, `'Basic ' . base64_encode('${auth.username}:${auth.password}')`);\n return code;\n}\n\nfunction applyCSharpBasicAuth(code: string, pattern: RegExp, auth: BasicAuthInfo): string {\n // C# RestSharp has native Authenticator support\n const headerPattern = /request\\.AddHeader\\(\"Authorization\",\\s*\"Basic [^\"]*\"\\);/;\n const hasAuthHeader = headerPattern.test(code);\n\n if (hasAuthHeader) {\n const password = auth.passwordAlwaysEmpty ? \"\" : auth.password;\n // Remove the Authorization header line\n code = code.replace(headerPattern, \"\");\n // Add using for RestSharp.Authenticators\n code = code.replace(/^(using RestSharp;\\n)/, `$1using RestSharp.Authenticators;\\n`);\n // Add authenticator after client creation\n code = code.replace(\n /(var client = new RestClient\\([^)]*\\);)/,\n `$1\\nclient.Authenticator = new HttpBasicAuthenticator(\"${auth.username}\", \"${password}\");`\n );\n return code;\n }\n\n // Fallback: use Convert.ToBase64String\n const usingLine = \"using System;\\nusing System.Text;\\n\";\n code = code.replace(/^(using RestSharp;\\n)/, `$1${usingLine}`);\n code = code.replace(\n pattern,\n `\"Basic \" + Convert.ToBase64String(Encoding.UTF8.GetBytes(\"${auth.username}:${auth.password}\"))`\n );\n return code;\n}\n\nfunction applySwiftBasicAuth(code: string, pattern: RegExp, auth: BasicAuthInfo): string {\n // Add credentials variable after import Foundation\n const credentialsCode = `\\nlet credentials = Data(\"${auth.username}:${auth.password}\".utf8).base64EncodedString()\\n`;\n code = code.replace(/^(import Foundation\\n)/, `$1${credentialsCode}`);\n\n // Replace the literal with string interpolation\n code = code.replace(pattern, `\"Basic \\\\(credentials)\"`);\n\n return code;\n}\n","import type { ApiDefinition, CodeSnippet, EndpointDefinition, ExampleEndpointCall } from \"../latest\";\nimport {\n getAuthHeaderName,\n getFirstAuthScheme,\n shouldRegenerateCurlSnippet,\n shouldRegenerateHttpSnippet\n} from \"./auth-scheme\";\nimport { HTTP_SNIPPET_CLIENTS } from \"./constants\";\nimport { convertToCurl } from \"./curl\";\nimport { getHarRequest, getHarRequestBasicAuth } from \"./get-har-request\";\nimport { type BasicAuthInfo, HttpSnippetConverter } from \"./HttpSnippetConverter\";\nimport { toSnippetHttpRequest } from \"./SnippetHttpRequest\";\nimport type { HttpSnippetLanguage, SnippetGenerationFlags, SnippetGenerators } from \"./types\";\n\n/**\n * Options for HTTP snippet generation\n */\nexport interface HttpSnippetOptions {\n /** HTTP snippet generation flags */\n flags: SnippetGenerationFlags;\n /** Dynamic generators to check for available SDK snippets (optional) */\n dynamicGenerators?: SnippetGenerators;\n /** Existing snippets that should not be regenerated */\n existingSnippets?: Record<string, CodeSnippet[]>;\n}\n\n/**\n * Generate a curl snippet for an endpoint example\n */\nexport function generateCurlSnippet(\n apiDefinition: ApiDefinition,\n endpoint: EndpointDefinition,\n example: ExampleEndpointCall\n): CodeSnippet {\n const authScheme = getFirstAuthScheme(endpoint, apiDefinition.auths);\n const curlCode = convertToCurl(toSnippetHttpRequest(endpoint, example, authScheme));\n\n return {\n name: undefined,\n language: \"curl\",\n install: undefined,\n code: curlCode,\n generated: true,\n description: undefined\n };\n}\n\n/**\n * Generate HTTP snippets for an endpoint example using httpsnippet-lite\n */\nexport async function generateHttpSnippets(\n apiDefinition: ApiDefinition,\n endpoint: EndpointDefinition,\n example: ExampleEndpointCall,\n options: HttpSnippetOptions\n): Promise<CodeSnippet[]> {\n const { flags, dynamicGenerators = {}, existingSnippets = {} } = options;\n const snippets: CodeSnippet[] = [];\n\n const isHttpSnippetsEnabled = flags.httpSnippets !== false;\n const httpSnippetLanguages = Array.isArray(flags.httpSnippets) ? flags.httpSnippets : null;\n\n // Check if a language should be included based on the httpSnippets configuration\n const shouldIncludeLanguage = (language: string): boolean => {\n if (!isHttpSnippetsEnabled) {\n return language === \"curl\";\n }\n return httpSnippetLanguages == null || httpSnippetLanguages.includes(language as HttpSnippetLanguage);\n };\n\n // Generate or regenerate curl snippet if needed\n // Regenerate if existing snippet has wrong auth header (targeted repair for pre-stored snippets)\n // Also regenerate if basic auth uses -H \"Authorization: Basic\" instead of -u flag\n const authScheme = getFirstAuthScheme(endpoint, apiDefinition.auths);\n const expectedHeaderName = getAuthHeaderName(authScheme);\n const needsCurlRegeneration = shouldRegenerateCurlSnippet(\n existingSnippets.curl,\n expectedHeaderName,\n authScheme,\n endpoint\n );\n\n if (needsCurlRegeneration && shouldIncludeLanguage(\"curl\")) {\n snippets.push(generateCurlSnippet(apiDefinition, endpoint, example));\n }\n\n // Generate HTTP snippets for other languages\n if (isHttpSnippetsEnabled) {\n const harRequest = getHarRequest(endpoint, example, apiDefinition.auths, example.requestBody ?? undefined);\n const basicAuth: BasicAuthInfo | undefined = getHarRequestBasicAuth(endpoint, apiDefinition.auths);\n const converter = new HttpSnippetConverter(harRequest, basicAuth);\n\n for (const { clientId, targetId } of HTTP_SNIPPET_CLIENTS) {\n // Skip if snippet already exists and is user-provided; always regenerate auto-generated snippets\n if (existingSnippets[targetId]?.length && !shouldRegenerateHttpSnippet(existingSnippets[targetId])) {\n continue;\n }\n\n // Skip if dynamic SDK snippets are available for this language\n if (dynamicGenerators[targetId === \"javascript\" ? \"typescript\" : targetId]) {\n continue;\n }\n\n // Skip JavaScript if TypeScript snippets exist and alwaysEnableJavaScriptFetch is disabled\n if (\n targetId === \"javascript\" &&\n existingSnippets.typescript?.length &&\n !flags.alwaysEnableJavaScriptFetch\n ) {\n continue;\n }\n\n // Check if this language should be included\n if (!shouldIncludeLanguage(targetId)) {\n continue;\n }\n\n const code = await converter.convert(targetId, clientId);\n\n if (code != null) {\n snippets.push({\n name: undefined,\n language: targetId,\n install: undefined,\n code,\n generated: true,\n description: undefined\n });\n }\n }\n }\n\n return snippets;\n}\n\n/**\n * Check if a language should be included for HTTP snippet generation based on flags\n */\nexport function shouldIncludeHttpSnippetLanguage(\n language: string,\n flags: Pick<SnippetGenerationFlags, \"httpSnippets\">\n): boolean {\n const isHttpSnippetsEnabled = flags.httpSnippets !== false;\n const httpSnippetLanguages = Array.isArray(flags.httpSnippets) ? flags.httpSnippets : null;\n\n if (!isHttpSnippetsEnabled) {\n return language === \"curl\";\n }\n return httpSnippetLanguages == null || httpSnippetLanguages.includes(language as HttpSnippetLanguage);\n}\n","import type { ApiDefinition, AuthScheme, CodeSnippet, EndpointDefinition, ExampleEndpointCall } from \"../latest\";\nimport { getFirstAuthScheme } from \"./auth-scheme\";\nimport type { SnippetGenerators } from \"./types\";\n\n/**\n * Build the auth object for SDK snippet generators based on the auth scheme.\n * Returns a properly formatted auth object compatible with @fern-api/snippets generators.\n */\nfunction buildSnippetAuth(authScheme: AuthScheme | undefined): any {\n if (!authScheme) {\n return undefined;\n }\n\n switch (authScheme.type) {\n case \"bearerAuth\":\n return {\n type: \"bearer\",\n token: \"YOUR_TOKEN_HERE\"\n };\n case \"basicAuth\": {\n const userLabel = (authScheme.usernameName ?? \"username\").toUpperCase().replace(/\\s+/g, \"_\");\n const passLabel = (authScheme.passwordName ?? \"password\").toUpperCase().replace(/\\s+/g, \"_\");\n return {\n type: \"basic\",\n username: `YOUR_${userLabel}_HERE`,\n ...(authScheme.passwordAlwaysEmpty ? {} : { password: `YOUR_${passLabel}_HERE` })\n };\n }\n case \"header\":\n return {\n type: \"header\",\n value: \"YOUR_API_KEY_HERE\"\n };\n case \"oAuth\":\n // OAuth uses bearer token format for SDK snippets\n return {\n type: \"bearer\",\n token: \"YOUR_TOKEN_HERE\"\n };\n default:\n return undefined;\n }\n}\n\n/**\n * Build the SDK snippet request from an endpoint example.\n * Returns a request object compatible with @fern-api/snippets generators.\n */\nexport function buildSdkSnippetRequest(\n apiDefinition: ApiDefinition,\n endpoint: EndpointDefinition,\n example: ExampleEndpointCall\n): any {\n // Build auth configuration using multiAuth-aware selection\n const authDefinition = getFirstAuthScheme(endpoint, apiDefinition.auths);\n const auth = buildSnippetAuth(authDefinition);\n\n // Process request body (filter out empty objects)\n let bodyValue: unknown = undefined;\n if (example.requestBody != null && example.requestBody.type === \"json\" && example.requestBody.value) {\n if (typeof example.requestBody.value === \"object\" && !Array.isArray(example.requestBody.value)) {\n const filteredValue = Object.fromEntries(\n Object.entries(example.requestBody.value).filter(([_, valueObj]) => {\n // Keep arrays and primitive values\n if (Array.isArray(valueObj) || typeof valueObj !== \"object\" || valueObj == null) {\n return true;\n }\n // For objects, only filter out empty objects without a value property\n return Object.keys(valueObj).length > 0;\n })\n );\n bodyValue = filteredValue;\n } else {\n bodyValue = example.requestBody.value;\n }\n }\n\n return {\n baseURL: undefined,\n environment: undefined,\n auth,\n pathParameters: example.pathParameters,\n queryParameters: example.queryParameters,\n headers: example.headers,\n requestBody: bodyValue,\n method: endpoint.method\n };\n}\n\n/**\n * Generate SDK snippets for an endpoint example using the provided generators\n */\nexport function generateSdkSnippets(\n apiDefinition: ApiDefinition,\n endpoint: EndpointDefinition,\n example: ExampleEndpointCall,\n generators: SnippetGenerators\n): CodeSnippet[] {\n if (endpoint.method === \"HEAD\") {\n return [];\n }\n\n const snippets: CodeSnippet[] = [];\n const request = buildSdkSnippetRequest(apiDefinition, endpoint, example);\n\n for (const [language, generator] of Object.entries(generators)) {\n if (!generator) {\n continue;\n }\n\n try {\n const result = generator.generateSync(request);\n\n if (result?.snippet) {\n snippets.push({\n name: undefined,\n language,\n install: undefined,\n code: result.snippet,\n generated: true,\n description: undefined\n });\n }\n } catch (error) {\n console.error(`Error generating ${language} snippet:`, error);\n }\n }\n\n return snippets;\n}\n\n/**\n * Generate a single SDK snippet for a specific language\n */\nexport function generateSdkSnippetForLanguage(\n apiDefinition: ApiDefinition,\n endpoint: EndpointDefinition,\n example: ExampleEndpointCall,\n generators: SnippetGenerators,\n language: string\n): CodeSnippet | undefined {\n if (endpoint.method === \"HEAD\") {\n return undefined;\n }\n\n const generator = generators[language];\n if (!generator) {\n return undefined;\n }\n\n const request = buildSdkSnippetRequest(apiDefinition, endpoint, example);\n\n try {\n const result = generator.generateSync(request);\n\n if (result?.snippet) {\n return {\n name: undefined,\n language,\n install: undefined,\n code: result.snippet,\n generated: true,\n description: undefined\n };\n }\n } catch (error) {\n console.error(`Error generating ${language} snippet:`, error);\n }\n\n return undefined;\n}\n","import type { TargetId } from \"httpsnippet-lite\";\nimport type { DynamicIr } from \"../../client/APIV1Write\";\nimport type { HttpSnippetLanguage } from \"../../orpc-client/shared.js\";\n\n/**\n * Map of language identifiers to their dynamic IR data\n */\nexport type DynamicIRsByLanguage = Record<string, DynamicIr>;\n\n/**\n * Configuration for an HTTP snippet client\n */\nexport interface HTTPSnippetClient {\n targetId: TargetId;\n clientId: string;\n}\n\n/**\n * Flags controlling snippet generation behavior\n */\nexport interface SnippetGenerationFlags {\n /**\n * Controls HTTP snippet generation.\n * - `false`: Only generate curl snippets\n * - `true`: Generate HTTP snippets for all supported languages\n * - `HttpSnippetLanguage[]`: Generate HTTP snippets only for specified languages\n */\n httpSnippets: boolean | HttpSnippetLanguage[];\n\n /**\n * When true, always generate JavaScript fetch snippets even if TypeScript snippets exist\n */\n alwaysEnableJavaScriptFetch: boolean;\n}\n\n/**\n * Supported languages for SDK snippet generation\n */\nexport type SdkSnippetLanguage = \"typescript\" | \"python\" | \"java\" | \"ruby\" | \"swift\" | \"csharp\" | \"go\" | \"php\";\n\nexport const SDK_SNIPPET_LANGUAGES: SdkSnippetLanguage[] = [\n \"typescript\",\n \"python\",\n \"java\",\n \"ruby\",\n \"swift\",\n \"csharp\",\n \"go\",\n \"php\"\n];\n\n/**\n * Map of language identifiers to their snippet generators.\n * Uses `any` type because the actual generator type from @fern-api/snippets\n * has complex type requirements that we don't need to enforce here.\n */\nexport type SnippetGenerators = Record<string, any>;\n\nexport type { HttpSnippetLanguage };\n","import identity from \"@fern-api/ui-core-utils/identity\";\nimport visitDiscriminatedUnion from \"@fern-api/ui-core-utils/visitDiscriminatedUnion\";\n\nimport type * as Latest from \"./latest\";\n\n/**\n * Visitor for API definitions.\n * This is used to traverse the API definition and apply functions to each node.\n */\nexport interface ApiDefinitionVisitor {\n // endpoints\n EndpointDefinition(endpoint: Latest.EndpointDefinition, key: string): Latest.EndpointDefinition;\n HttpRequest(request: Latest.HttpRequest, key: string): Latest.HttpRequest;\n HttpResponse(response: Latest.HttpResponse, key: string): Latest.HttpResponse;\n ErrorResponse(error: Latest.ErrorResponse, key: string): Latest.ErrorResponse;\n ExampleEndpointCall(example: Latest.ExampleEndpointCall, key: string): Latest.ExampleEndpointCall;\n CodeSnippet(snippet: Latest.CodeSnippet, key: string): Latest.CodeSnippet;\n ErrorExample(error: Latest.ErrorExample, key: string): Latest.ErrorExample;\n\n // webhooks\n WebhookDefinition(webhook: Latest.WebhookDefinition, key: string): Latest.WebhookDefinition;\n WebhookPayload(payload: Latest.WebhookPayload, key: string): Latest.WebhookPayload;\n\n // websockets\n WebSocketChannel(channel: Latest.WebSocketChannel, key: string): Latest.WebSocketChannel;\n WebSocketMessage(message: Latest.WebSocketMessage, key: string): Latest.WebSocketMessage;\n ExampleWebSocketSession(session: Latest.ExampleWebSocketSession, key: string): Latest.ExampleWebSocketSession;\n\n // types\n TypeDefinition(type: Latest.TypeDefinition, key: string): Latest.TypeDefinition;\n TypeShape(shape: Latest.TypeShape, key: string): Latest.TypeShape;\n WebhookPayloadShape(shape: Latest.WebhookPayloadShape, key: string): Latest.WebhookPayloadShape;\n ObjectType(property: Latest.ObjectType, key: string): Latest.ObjectType;\n ObjectProperty(property: Latest.ObjectProperty, key: string): Latest.ObjectProperty;\n EnumValue(value: Latest.EnumValue, key: string): Latest.EnumValue;\n UndiscriminatedUnionVariant(\n variant: Latest.UndiscriminatedUnionVariant,\n key: string\n ): Latest.UndiscriminatedUnionVariant;\n DiscriminatedUnionVariant(variant: Latest.DiscriminatedUnionVariant, key: string): Latest.DiscriminatedUnionVariant;\n FormDataRequest(request: Latest.FormDataRequest, key: string): Latest.FormDataRequest;\n FormDataField(field: Latest.FormDataField, key: string): Latest.FormDataField;\n FormDataFile(file: Latest.FormDataFile, key: string): Latest.FormDataFile;\n FormDataFiles(files: Latest.FormDataFiles, key: string): Latest.FormDataFiles;\n}\n\nexport class Transformer {\n public static with(visitor: Partial<ApiDefinitionVisitor>): Transformer {\n return new Transformer({\n EndpointDefinition: visitor.EndpointDefinition ?? identity,\n HttpRequest: visitor.HttpRequest ?? identity,\n HttpResponse: visitor.HttpResponse ?? identity,\n ErrorResponse: visitor.ErrorResponse ?? identity,\n ExampleEndpointCall: visitor.ExampleEndpointCall ?? identity,\n CodeSnippet: visitor.CodeSnippet ?? identity,\n ErrorExample: visitor.ErrorExample ?? identity,\n WebhookDefinition: visitor.WebhookDefinition ?? identity,\n WebhookPayload: visitor.WebhookPayload ?? identity,\n WebSocketChannel: visitor.WebSocketChannel ?? identity,\n WebSocketMessage: visitor.WebSocketMessage ?? identity,\n ExampleWebSocketSession: visitor.ExampleWebSocketSession ?? identity,\n TypeDefinition: visitor.TypeDefinition ?? identity,\n TypeShape: visitor.TypeShape ?? identity,\n WebhookPayloadShape: visitor.WebhookPayloadShape ?? identity,\n ObjectType: visitor.ObjectType ?? identity,\n ObjectProperty: visitor.ObjectProperty ?? identity,\n EnumValue: visitor.EnumValue ?? identity,\n UndiscriminatedUnionVariant: visitor.UndiscriminatedUnionVariant ?? identity,\n DiscriminatedUnionVariant: visitor.DiscriminatedUnionVariant ?? identity,\n FormDataRequest: visitor.FormDataRequest ?? identity,\n FormDataField: visitor.FormDataField ?? identity,\n FormDataFile: visitor.FormDataFile ?? identity,\n FormDataFiles: visitor.FormDataFiles ?? identity\n });\n }\n\n public static descriptions(transformer: (description: string, key: string) => string): Transformer {\n function internalTransformer<T extends Latest.WithDescription>(withDescription: T, key: string): T {\n const description =\n withDescription.description != null ? transformer(withDescription.description, key) : undefined;\n return { ...withDescription, description };\n }\n\n return Transformer.with({\n EndpointDefinition: internalTransformer,\n HttpRequest: internalTransformer,\n HttpResponse: internalTransformer,\n ErrorResponse: internalTransformer,\n ExampleEndpointCall: internalTransformer,\n CodeSnippet: internalTransformer,\n ErrorExample: internalTransformer,\n WebhookDefinition: internalTransformer,\n WebhookPayload: internalTransformer,\n WebSocketChannel: internalTransformer,\n WebSocketMessage: internalTransformer,\n ExampleWebSocketSession: internalTransformer,\n TypeDefinition: internalTransformer,\n ObjectProperty: internalTransformer,\n EnumValue: internalTransformer,\n UndiscriminatedUnionVariant: internalTransformer,\n DiscriminatedUnionVariant: internalTransformer,\n FormDataRequest: internalTransformer,\n FormDataField: internalTransformer,\n FormDataFile: internalTransformer,\n FormDataFiles: internalTransformer\n });\n }\n\n /**\n * @internal visible for testing only\n */\n public static keys(collect: (key: string) => void): Transformer {\n function visit<T>(value: T, key: string): T {\n collect(key);\n return value;\n }\n return Transformer.with({\n EndpointDefinition: visit,\n HttpRequest: visit,\n HttpResponse: visit,\n ErrorResponse: visit,\n ExampleEndpointCall: visit,\n CodeSnippet: visit,\n ErrorExample: visit,\n WebhookDefinition: visit,\n WebhookPayload: visit,\n WebSocketChannel: visit,\n WebSocketMessage: visit,\n ExampleWebSocketSession: visit,\n TypeDefinition: visit,\n TypeShape: visit,\n WebhookPayloadShape: visit,\n ObjectType: visit,\n ObjectProperty: visit,\n EnumValue: visit,\n UndiscriminatedUnionVariant: visit,\n DiscriminatedUnionVariant: visit,\n FormDataRequest: visit,\n FormDataField: visit,\n FormDataFile: visit,\n FormDataFiles: visit\n });\n }\n\n private visitor: ApiDefinitionVisitor;\n private constructor(visitor: ApiDefinitionVisitor) {\n this.visitor = this.#wrapVisitor(visitor);\n }\n\n /**\n * Visits an API definition and applies the visitor transformations to each node.\n *\n * This function treats the API Definition as an AST. The purpose is to apply transformations to the \"description\" field of each node.\n *\n * @param api the API definition to visit\n * @param visitor the visitor to apply to the API definition\n * @returns the API definition with the visitor transformations applied\n */\n apiDefinition = (api: Latest.ApiDefinition): Latest.ApiDefinition => {\n const endpoints = Object.entries(api.endpoints).map(([id, endpoint]) => [\n id,\n this.visitor.EndpointDefinition(endpoint, `${api.id}/endpoint/${id}`)\n ]);\n\n const websockets = Object.entries(api.websockets).map(([id, websocket]) => [\n id,\n this.visitor.WebSocketChannel(websocket, `${api.id}/websocket/${id}`)\n ]);\n\n const webhooks = Object.entries(api.webhooks).map(([id, webhook]) => [\n id,\n this.visitor.WebhookDefinition(webhook, `${api.id}/webhoook/${id}`)\n ]);\n\n const types = Object.entries(api.types).map(([id, type]) => [\n id,\n this.visitor.TypeDefinition(type, `${api.id}/type-definition/${id}`)\n ]);\n\n const globalHeaders =\n api.globalHeaders?.map((header) =>\n this.visitor.ObjectProperty(header, `${api.id}/global-headers/${header.key}`)\n ) ?? [];\n\n return {\n id: api.id,\n apiName: api.apiName,\n endpoints: Object.fromEntries(endpoints),\n websockets: Object.fromEntries(websockets),\n webhooks: Object.fromEntries(webhooks),\n graphqlOperations: api.graphqlOperations,\n types: Object.fromEntries(types),\n globalHeaders,\n auths: api.auths,\n subpackages: api.subpackages,\n snippetsConfiguration: api.snippetsConfiguration\n };\n };\n\n #wrapVisitor = (visitor: ApiDefinitionVisitor): ApiDefinitionVisitor => {\n const innerVisitor: ApiDefinitionVisitor = {\n /**\n * The following types do not have any nested types that need to be visited.\n */\n\n CodeSnippet: visitor.CodeSnippet,\n ErrorExample: visitor.ErrorExample,\n ExampleWebSocketSession: visitor.ExampleWebSocketSession,\n ObjectProperty: visitor.ObjectProperty,\n EnumValue: visitor.EnumValue,\n UndiscriminatedUnionVariant: visitor.UndiscriminatedUnionVariant,\n FormDataFile: visitor.FormDataFile,\n FormDataFiles: visitor.FormDataFiles,\n\n /**\n * The following types have nested types that need to be visited.\n */\n\n EndpointDefinition: (endpoint, key) => visitor.EndpointDefinition(this.endpoint(endpoint, key), key),\n HttpRequest: (request, key) => visitor.HttpRequest(this.httpRequest(request, key), key),\n HttpResponse: (response, key) => visitor.HttpResponse(this.httpResponse(response, key), key),\n ErrorResponse: (error, key) => visitor.ErrorResponse(this.errorResponse(error, key), key),\n ExampleEndpointCall: (example, key) =>\n visitor.ExampleEndpointCall(this.exampleEndpointCall(example, key), key),\n WebhookDefinition: (webhook, key) => visitor.WebhookDefinition(this.webhookDefinition(webhook, key), key),\n WebhookPayload: (payload, key) => visitor.WebhookPayload(this.webhookPayload(payload, key), key),\n WebSocketChannel: (channel, key) => visitor.WebSocketChannel(this.webSocketChannel(channel, key), key),\n WebSocketMessage: (message, key) => visitor.WebSocketMessage(this.webSocketMessage(message, key), key),\n TypeDefinition: (type, key) => visitor.TypeDefinition(this.typeDefinition(type, key), key),\n TypeShape: (shape, key) => visitor.TypeShape(this.typeShape(shape, key), key),\n WebhookPayloadShape: (shape, key) => visitor.WebhookPayloadShape(this.webhookPayloadShape(shape, key), key),\n ObjectType: (type, key) => visitor.ObjectType(this.objectType(type, key), key),\n DiscriminatedUnionVariant: (variant, key) =>\n visitor.DiscriminatedUnionVariant(this.objectType(variant, key), key),\n FormDataRequest: (request, key) => visitor.FormDataRequest(this.formDataRequest(request, key), key),\n FormDataField: (field, key) => visitor.FormDataField(this.formDataField(field, key), key)\n };\n return innerVisitor;\n };\n\n endpoint = (endpoint: Latest.EndpointDefinition, parentKey: string): Latest.EndpointDefinition => {\n const pathParameters =\n endpoint.pathParameters?.map((param) => ({\n ...this.visitor.ObjectProperty(param, `${parentKey}/path/${param.key}`),\n explode: param.explode\n })) ?? [];\n const queryParameters =\n endpoint.queryParameters?.map((param) => ({\n ...this.visitor.ObjectProperty(param, `${parentKey}/query/${param.key}`),\n explode: param.explode\n })) ?? [];\n const requestHeaders =\n endpoint.requestHeaders?.map((param) =>\n this.visitor.ObjectProperty(param, `${parentKey}/requestHeader/${param.key}`)\n ) ?? [];\n const responseHeaders =\n endpoint.responseHeaders?.map((param) =>\n this.visitor.ObjectProperty(param, `${parentKey}/responseHeader/${param.key}`)\n ) ?? [];\n const requests = endpoint.requests?.map((request, i) =>\n // this has changed\n this.visitor.HttpRequest(request, `${parentKey}/request/${i}`)\n );\n const responses = endpoint.responses?.map((response, i) =>\n // this has changed discretely\n this.visitor.HttpResponse(response, `${parentKey}/response/${i}/${response.statusCode}`)\n );\n const errors =\n endpoint.errors?.map((error, i) =>\n this.visitor.ErrorResponse(error, `${parentKey}/error/${i}/${error.statusCode}`)\n ) ?? [];\n const examples =\n endpoint.examples?.map((example, i) =>\n this.visitor.ExampleEndpointCall(example, `${parentKey}/example/${i}`)\n ) ?? [];\n\n return {\n ...endpoint,\n pathParameters: pathParameters.length > 0 ? pathParameters : undefined,\n queryParameters: queryParameters.length > 0 ? queryParameters : undefined,\n requestHeaders: requestHeaders.length > 0 ? requestHeaders : undefined,\n responseHeaders: responseHeaders.length > 0 ? responseHeaders : undefined,\n requests,\n responses,\n errors: errors.length > 0 ? errors : undefined,\n examples: examples.length > 0 ? examples : undefined\n };\n };\n\n httpRequest = (request: Latest.HttpRequest, parentKey: string): Latest.HttpRequest => {\n const body = visitDiscriminatedUnion(request.body)._visit<Latest.HttpRequestBodyShape>({\n object: (value) => ({\n ...value,\n ...this.visitor.ObjectType(value, `${parentKey}/object`)\n }),\n alias: identity,\n bytes: identity,\n formData: (value) => ({\n ...value,\n ...this.visitor.FormDataRequest(value, `${parentKey}/formdata`)\n })\n });\n return { ...request, body };\n };\n\n formDataField = (field: Latest.FormDataField, parentKey: string): Latest.FormDataField => {\n return visitDiscriminatedUnion(field)._visit<Latest.FormDataField>({\n file: (value) => ({\n ...value,\n ...this.visitor.FormDataFile(value, `${parentKey}/file/${value.key}`)\n }),\n files: (value) => ({\n ...value,\n ...this.visitor.FormDataFiles(value, `${parentKey}/files/${value.key}`)\n }),\n property: (value) => ({\n ...value,\n ...this.visitor.ObjectProperty(value, `${parentKey}/property/${value.key}`)\n })\n });\n };\n\n httpResponse = (response: Latest.HttpResponse, parentKey: string): Latest.HttpResponse => {\n const body = visitDiscriminatedUnion(response.body)._visit<Latest.HttpResponseBodyShape>({\n object: (value) => ({\n ...value,\n ...this.visitor.ObjectType(value, `${parentKey}/object`)\n }),\n alias: identity,\n fileDownload: identity,\n streamingText: identity,\n stream: (value) => ({\n ...value,\n shape: this.visitor.TypeShape(value.shape, `${parentKey}/stream/shape`)\n }),\n empty: identity\n });\n return { ...response, body };\n };\n\n objectType = <T extends Latest.ObjectType>(type: T, parentKey: string): T => {\n const properties = type.properties.map((prop) =>\n this.visitor.ObjectProperty(prop, `${parentKey}/property/${prop.key}`)\n );\n return { ...type, properties };\n };\n\n errorResponse = (error: Latest.ErrorResponse, parentKey: string): Latest.ErrorResponse => {\n const shape = error.shape ? this.visitor.TypeShape(error.shape, `${parentKey}/error/shape`) : undefined;\n const examples =\n error.examples?.map((example, i) => this.visitor.ErrorExample(example, `${parentKey}/example/${i}`)) ?? [];\n return {\n ...error,\n shape,\n examples: examples.length > 0 ? examples : undefined\n };\n };\n\n exampleEndpointCall = (example: Latest.ExampleEndpointCall, parentKey: string): Latest.ExampleEndpointCall => {\n const snippetsEntries = Object.entries(example.snippets ?? {})\n .map(\n ([language, snippets]) =>\n [\n language,\n snippets.map((snippet, i) =>\n this.visitor.CodeSnippet(snippet, `${parentKey}/snippet/${language}/${i}`)\n )\n ] as const\n )\n .filter(([, snippets]) => snippets.length > 0);\n\n const snippets = Object.fromEntries(snippetsEntries);\n return {\n ...example,\n snippets: snippetsEntries.length > 0 ? snippets : undefined\n };\n };\n\n webhookDefinition = (webhook: Latest.WebhookDefinition, parentKey: string): Latest.WebhookDefinition => {\n const payload =\n webhook.payloads?.[0] != null\n ? this.visitor.WebhookPayload(webhook.payloads[0], `${parentKey}/payload`)\n : undefined;\n const headers =\n webhook.headers?.map((header) =>\n this.visitor.ObjectProperty(header, `${parentKey}/header/${header.key}`)\n ) ?? [];\n const responses = webhook.responses?.map((response, i) =>\n this.visitor.HttpResponse(response, `${parentKey}/response/${i}/${response.statusCode}`)\n );\n return {\n ...webhook,\n payloads: payload != null ? [payload] : undefined,\n headers: headers.length > 0 ? headers : undefined,\n responses\n };\n };\n\n webhookPayload = (payload: Latest.WebhookPayload, parentKey: string): Latest.WebhookPayload => {\n const shape = this.visitor.WebhookPayloadShape(payload.shape, `${parentKey}/shape`);\n return { ...payload, shape };\n };\n\n webhookPayloadShape = (shape: Latest.WebhookPayloadShape, parentKey: string): Latest.WebhookPayloadShape => {\n return visitDiscriminatedUnion(shape)._visit<Latest.WebhookPayloadShape>({\n object: (value) => ({\n ...value,\n ...this.visitor.ObjectType(value, `${parentKey}/object`)\n }),\n alias: identity,\n formData: (value) => ({\n ...value,\n ...this.visitor.FormDataRequest(value, `${parentKey}/formData`)\n })\n });\n };\n\n webSocketChannel = (channel: Latest.WebSocketChannel, parentKey: string): Latest.WebSocketChannel => {\n const pathParameters =\n channel.pathParameters?.map((param) => ({\n ...this.visitor.ObjectProperty(param, `${parentKey}/path/${param.key}`),\n explode: param.explode\n })) ?? [];\n const queryParameters =\n channel.queryParameters?.map((param) => ({\n ...this.visitor.ObjectProperty(param, `${parentKey}/query/${param.key}`),\n explode: param.explode\n })) ?? [];\n const requestHeaders =\n channel.requestHeaders?.map((param) =>\n this.visitor.ObjectProperty(param, `${parentKey}/requestHeader/${param.key}`)\n ) ?? [];\n const messages = channel.messages.map((message) =>\n this.visitor.WebSocketMessage(message, `${parentKey}/message/${message.origin}/${message.type}`)\n );\n const examples =\n channel.examples?.map((example, i) =>\n this.visitor.ExampleWebSocketSession(example, `${parentKey}/example/${i}`)\n ) ?? [];\n return {\n ...channel,\n pathParameters: pathParameters.length > 0 ? pathParameters : undefined,\n queryParameters: queryParameters.length > 0 ? queryParameters : undefined,\n requestHeaders: requestHeaders.length > 0 ? requestHeaders : undefined,\n messages,\n examples: examples.length > 0 ? examples : undefined\n };\n };\n\n webSocketMessage = (message: Latest.WebSocketMessage, parentKey: string): Latest.WebSocketMessage => {\n const body = this.visitor.TypeShape(message.body, `${parentKey}/body`);\n return { ...message, body };\n };\n\n typeShape = (shape: Latest.TypeShape, parentKey: string): Latest.TypeShape => {\n return visitDiscriminatedUnion(shape)._visit<Latest.TypeShape>({\n object: (value) => ({\n ...value,\n ...this.visitor.ObjectType(value, `${parentKey}/object`)\n }),\n alias: identity,\n enum: (value) => ({\n ...value,\n values: value.values.map((enumValue) =>\n this.visitor.EnumValue(enumValue, `${parentKey}/enum/value/${enumValue.value}`)\n )\n }),\n undiscriminatedUnion: (value) => ({\n ...value,\n variants: value.variants.map((variant, i) =>\n this.visitor.UndiscriminatedUnionVariant(variant, `${parentKey}/undiscriminatedUnion/variant/${i}`)\n )\n }),\n discriminatedUnion: (value) => ({\n ...value,\n variants: value.variants.map((variant) =>\n this.visitor.DiscriminatedUnionVariant(\n variant,\n `${parentKey}/discriminatedUnion/variant/${variant.discriminantValue}`\n )\n )\n })\n });\n };\n\n formDataRequest = (request: Latest.FormDataRequest, parentKey: string): Latest.FormDataRequest => {\n return {\n ...request,\n fields: request.fields.map((field) => this.visitor.FormDataField(field, `${parentKey}/field/${field.key}`))\n };\n };\n\n typeDefinition = (type: Latest.TypeDefinition, parentKey: string): Latest.TypeDefinition => {\n return {\n ...type,\n shape: this.visitor.TypeShape(type.shape, `${parentKey}/shape`)\n };\n };\n}\n"],"mappings":"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AAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,IAAM,YAA4B,oBAAI,IAAI;AAAA,EACxC,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL,CAAC;;;ACzFD,IAAM,WAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC1DA,IAAM,OAAO;AACb,IAAM,QAAQ,IAAI,OAAO,yCAAyC,IAAI,OAAO,IAAI,MAAM,IAAI,cAAc,IAAI,MAAM,GAAG;AACtH,IAAM,kBAAkB,CAAC,cAAc,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;AAC/F,SAAS,WAAW,OAAO;AACzB,QAAM,iBAAiB,MAAM,CAAC;AAC9B,MAAI,KAAK,KAAK,cAAc,GAAG;AAC7B,WAAO,MAAM,MAAM,CAAC;AAAA,EACtB;AACA,MAAI,SAAS,KAAK,cAAc,GAAG;AACjC,WAAO;AAAA,EACT;AACA,SAAO;AACT;AACA,IAAI,cAAc,CAAC,KAAK,UAAU,CAAC,MAAM;AACvC,QAAM,IAAI,YAAY,EAAE,QAAQ,OAAO,CAAC,GAAG,OAAO,IAAI,QAAQ,OAAO,MAAM,QAAQA,YAAW;AAC5F,UAAM,aAAa,EAAE,SAAS,UAAUA,QAAO;AAC/C,UAAM,cAAc,WAAW,CAAC;AAChC,QAAI,CAAC,aAAa;AAChB,aAAO;AAAA,IACT;AACA,QAAI,CAAC,QAAQ;AACX,YAAM,YAAY,QAAQ;AAC1B,UAAI,UAAU,IAAI,SAAS,KAAK,CAAC,YAAY;AAC3C,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO,QAAQ,SAAS,QAAQ,YAAY,IAAI;AAAA,EAClD,CAAC;AACD,QAAM,iBAAiB,QAAQ,WAAW,CAAC;AAC3C,QAAM,UAAU,CAAC,GAAG,UAAU,GAAG,cAAc;AAC/C,QAAM,gBAAgB,gBAAgB,OAAO;AAC7C,gBAAc,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM;AACtC,UAAM,IAAI,QAAQ,SAAS,CAAC;AAAA,EAC9B,CAAC;AACD,SAAO;AACT;;;ACrCO,IAAM,iBAAiB;;EAE1B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;EACA;;;EAGA;EACA;EACA;EACA;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","names":["string","z","z","z","object","typeId","properties","toRet","union","import_object","import_array","import_ts_essentials","stringifiedValue","value","qs","import_array","import_ts_essentials","import_qs","qs","urljoin","value","import_array","shape","object","union","message","example","snippets"]}
|