@fern-api/fern-api-dev 3.48.2 → 3.48.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/cli.cjs +814 -110
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -1302568,90 +1302568,6 @@ function addAuthCommand(cli) {
1302568
1302568
  commandGroup(cli, "auth <command>", "Authenticate fern", [addLoginCommand, addLogoutCommand, addTokenCommand]);
1302569
1302569
  }
1302570
1302570
 
1302571
- // ../cli-v2/lib/config/FernYmlConverter.js
1302572
- var FernYmlConverter = class {
1302573
- /**
1302574
- * Converts a sourced fern.yml schema to a FernYml configuration, performing
1302575
- * validation beyond what zod can provide (e.g. does the SDK version actually
1302576
- * exist, etc).
1302577
- *
1302578
- * Extracts plain values from the sourced schema while preserving
1302579
- * access to the original sourced data for error reporting.
1302580
- */
1302581
- convert(sourced) {
1302582
- return {
1302583
- source: sourced,
1302584
- edition: sourced.edition.value,
1302585
- org: sourced.org.value,
1302586
- cli: this.ifPresent(sourced.cli, (cli) => this.convertCli(cli)),
1302587
- sdks: this.ifPresent(sourced.sdks, (sdks) => this.convertSdks(sdks))
1302588
- };
1302589
- }
1302590
- convertCli(cli) {
1302591
- return {
1302592
- version: cli.version?.value
1302593
- };
1302594
- }
1302595
- convertSdks(sourced) {
1302596
- return {
1302597
- autorelease: sourced.autorelease?.value,
1302598
- defaultGroup: sourced.defaultGroup?.value,
1302599
- readme: this.ifPresent(sourced.readme, (readme) => this.convertReadme(readme)),
1302600
- targets: this.ifPresent(sourced.targets, (targets2) => this.convertTargets(targets2))
1302601
- };
1302602
- }
1302603
- convertReadme(readme) {
1302604
- return {
1302605
- defaultEndpoint: readme.defaultEndpoint?.value
1302606
- };
1302607
- }
1302608
- convertTargets(sourced) {
1302609
- return Object.fromEntries(Object.entries(sourced).map(([name3, target]) => [name3, this.convertTarget(target)]));
1302610
- }
1302611
- convertTarget(sourced) {
1302612
- return {
1302613
- lang: sourced.lang?.value,
1302614
- version: sourced.version?.value,
1302615
- config: sourced.config?.value,
1302616
- publish: this.ifPresent(sourced.publish, (publish2) => this.convertPublish(publish2)),
1302617
- output: this.ifPresent(sourced.output, (output2) => this.convertOutput(output2))
1302618
- };
1302619
- }
1302620
- convertPublish(publish2) {
1302621
- return {
1302622
- npm: this.ifPresent(publish2.npm, (npm) => this.convertNpm(npm))
1302623
- };
1302624
- }
1302625
- convertNpm(npm) {
1302626
- return {
1302627
- packageName: npm.packageName.value
1302628
- };
1302629
- }
1302630
- convertOutput(output2) {
1302631
- return {
1302632
- path: output2.path?.value,
1302633
- git: this.ifPresent(output2.git, (git) => this.convertGit(git))
1302634
- };
1302635
- }
1302636
- convertGit(git) {
1302637
- return {
1302638
- repository: git.repository.value
1302639
- };
1302640
- }
1302641
- /**
1302642
- * Helper to handle optional sourced objects. The Sourced<T | undefined> type
1302643
- * creates a union of SourcedObject<T> | SourcedNullish<undefined>. At runtime,
1302644
- * missing properties return actual undefined (not SourcedNullish) due to proxy
1302645
- * behavior, but TypeScript can't know this. This helper narrows the type safely.
1302646
- */
1302647
- ifPresent(value, convert6) {
1302648
- if (value == null || "value" in value) {
1302649
- return void 0;
1302650
- }
1302651
- return convert6(value);
1302652
- }
1302653
- };
1302654
-
1302655
1302571
  // ../config/lib/FernYml.js
1302656
1302572
  var FernYml;
1302657
1302573
  (function(FernYml2) {
@@ -1316457,13 +1316373,26 @@ var PublishSchema = external_exports.object({
1316457
1316373
  npm: NpmPublishSchema.optional()
1316458
1316374
  });
1316459
1316375
 
1316376
+ // ../config/lib/schemas/SdkTargetLanguageSchema.js
1316377
+ var SdkTargetLanguageSchema = external_exports.enum([
1316378
+ "csharp",
1316379
+ "go",
1316380
+ "java",
1316381
+ "php",
1316382
+ "python",
1316383
+ "ruby",
1316384
+ "rust",
1316385
+ "swift",
1316386
+ "typescript"
1316387
+ ]);
1316388
+
1316460
1316389
  // ../config/lib/schemas/SdkTargetSchema.js
1316461
1316390
  var SdkTargetSchema = external_exports.object({
1316462
- lang: external_exports.string().optional(),
1316391
+ lang: SdkTargetLanguageSchema.optional(),
1316463
1316392
  version: external_exports.string().optional(),
1316464
1316393
  config: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
1316465
1316394
  publish: PublishSchema.optional(),
1316466
- output: OutputSchema.optional(),
1316395
+ output: OutputSchema,
1316467
1316396
  group: external_exports.array(external_exports.string()).optional()
1316468
1316397
  });
1316469
1316398
 
@@ -1324019,6 +1323948,11 @@ function createSourcedObject({ value, wrapChild, location: location2 }) {
1324019
1323948
  });
1324020
1323949
  }
1324021
1323950
 
1323951
+ // ../source/lib/isNullish.js
1323952
+ function isNullish(value) {
1323953
+ return value == null || typeof value === "object" && "value" in value;
1323954
+ }
1323955
+
1324022
1323956
  // ../source/lib/Sourced.js
1324023
1323957
  var SourcedString = class {
1324024
1323958
  _value;
@@ -1325014,7 +1324948,7 @@ var FileFinder = class {
1325014
1324948
  }
1325015
1324949
  };
1325016
1324950
 
1325017
- // ../cli-v2/lib/config/FernYmlSchemaLoader.js
1324951
+ // ../cli-v2/lib/config/fern-yml/FernYmlSchemaLoader.js
1325018
1324952
  var FernYmlSchemaLoader = class {
1325019
1324953
  finder;
1325020
1324954
  loader;
@@ -1325040,15 +1324974,14 @@ var FernYmlSchemaLoader = class {
1325040
1324974
  }
1325041
1324975
  };
1325042
1324976
 
1325043
- // ../cli-v2/lib/config/loadFernYml.js
1324977
+ // ../cli-v2/lib/config/fern-yml/loadFernYml.js
1325044
1324978
  async function loadFernYml({ cwd: cwd2 }) {
1325045
1324979
  const schemaLoader = new FernYmlSchemaLoader({ cwd: cwd2 });
1325046
1324980
  const result = await schemaLoader.load();
1325047
1324981
  if (!result.success) {
1325048
1324982
  throw new ValidationError(result.issues);
1325049
1324983
  }
1325050
- const converter = new FernYmlConverter();
1325051
- return converter.convert(result.sourced);
1324984
+ return result;
1325052
1324985
  }
1325053
1324986
 
1325054
1324987
  // ../cli-v2/lib/commands/check.js
@@ -1325059,12 +1324992,174 @@ async function handleCheck(context2, _args) {
1325059
1324992
  await loadFernYml({ cwd: context2.cwd });
1325060
1324993
  }
1325061
1324994
 
1324995
+ // ../cli-v2/lib/sdk/config/getDockerImageReference.js
1324996
+ var SDK_DOCKER_IMAGES = {
1324997
+ csharp: "fernapi/fern-csharp-sdk",
1324998
+ go: "fernapi/fern-go-sdk",
1324999
+ java: "fernapi/fern-java-sdk",
1325000
+ php: "fernapi/fern-php-sdk",
1325001
+ python: "fernapi/fern-python-sdk",
1325002
+ ruby: "fernapi/fern-ruby-sdk",
1325003
+ rust: "fernapi/fern-rust-sdk",
1325004
+ swift: "fernapi/fern-swift-sdk",
1325005
+ typescript: "fernapi/fern-typescript-node-sdk"
1325006
+ };
1325007
+ function getDockerImageReference({ lang, version: version7 }) {
1325008
+ const image3 = SDK_DOCKER_IMAGES[lang];
1325009
+ const tag = version7 ?? "latest";
1325010
+ return {
1325011
+ image: image3,
1325012
+ tag
1325013
+ };
1325014
+ }
1325015
+
1325016
+ // ../cli-v2/lib/sdk/config/Language.js
1325017
+ var LANGUAGES = ["csharp", "go", "java", "php", "python", "ruby", "rust", "swift", "typescript"];
1325018
+
1325019
+ // ../cli-v2/lib/sdk/config/SdkConfigConverter.js
1325020
+ var SdkConfigConverter = class {
1325021
+ logger;
1325022
+ issues = [];
1325023
+ constructor({ logger }) {
1325024
+ this.logger = logger;
1325025
+ }
1325026
+ /**
1325027
+ * Converts a sourced fern.yml schema to SDK generation configuration.
1325028
+ *
1325029
+ * @param sourced - The sourced fern.yml schema with source location tracking.
1325030
+ * @returns Result with either the converted config or validation issues.
1325031
+ */
1325032
+ convert({ fernYml }) {
1325033
+ if (!fernYml.success) {
1325034
+ return {
1325035
+ success: false,
1325036
+ issues: fernYml.issues
1325037
+ };
1325038
+ }
1325039
+ const sdks = fernYml.data.sdks;
1325040
+ const sourced = fernYml.sourced.sdks;
1325041
+ if (sdks == null || isNullish(sourced)) {
1325042
+ return {
1325043
+ success: false,
1325044
+ issues: []
1325045
+ };
1325046
+ }
1325047
+ const config3 = {
1325048
+ org: fernYml.data.org,
1325049
+ defaultGroup: sdks.defaultGroup,
1325050
+ targets: this.convertTargets({
1325051
+ targetsConfig: sdks.targets,
1325052
+ sourced: sourced.targets
1325053
+ })
1325054
+ };
1325055
+ if (this.issues.length > 0) {
1325056
+ return {
1325057
+ success: false,
1325058
+ issues: this.issues
1325059
+ };
1325060
+ }
1325061
+ return {
1325062
+ success: true,
1325063
+ config: config3
1325064
+ };
1325065
+ }
1325066
+ convertTargets({ targetsConfig, sourced }) {
1325067
+ const targets2 = [];
1325068
+ for (const [name3, target] of Object.entries(targetsConfig)) {
1325069
+ const sourcedTarget = sourced[name3];
1325070
+ if (sourcedTarget == null) {
1325071
+ continue;
1325072
+ }
1325073
+ const converted = this.convertTarget({
1325074
+ name: name3,
1325075
+ target,
1325076
+ sourced: sourcedTarget
1325077
+ });
1325078
+ if (converted != null) {
1325079
+ targets2.push(converted);
1325080
+ }
1325081
+ }
1325082
+ return targets2;
1325083
+ }
1325084
+ convertTarget({ name: name3, target, sourced }) {
1325085
+ const lang = this.resolveLanguage({ name: name3, target, sourced });
1325086
+ if (lang == null) {
1325087
+ return void 0;
1325088
+ }
1325089
+ const resolvedDockerImage = this.resolveDockerImage({ name: name3, lang, version: target.version });
1325090
+ return {
1325091
+ name: name3,
1325092
+ lang,
1325093
+ image: resolvedDockerImage.image,
1325094
+ version: target.version ?? resolvedDockerImage.tag,
1325095
+ config: target.config != null ? this.convertConfig(target.config) : void 0,
1325096
+ output: this.convertOutput({ output: target.output, sourced: sourced.output }),
1325097
+ publish: target.publish != null && !isNullish(sourced.publish) ? this.convertPublish({ publish: target.publish, sourced: sourced.publish }) : void 0,
1325098
+ groups: target.group ?? []
1325099
+ };
1325100
+ }
1325101
+ resolveDockerImage({ name: name3, lang, version: version7 }) {
1325102
+ const dockerImage = getDockerImageReference({ lang, version: version7 });
1325103
+ if (version7 == null) {
1325104
+ this.logger.debug(`Target "${name3}" has no version specified, using ${dockerImage}`);
1325105
+ }
1325106
+ return dockerImage;
1325107
+ }
1325108
+ convertConfig(config3) {
1325109
+ return config3;
1325110
+ }
1325111
+ convertOutput({ output: output2, sourced }) {
1325112
+ return {
1325113
+ path: output2.path,
1325114
+ git: output2.git != null && !isNullish(sourced.git) ? this.convertGit({ git: output2.git, sourced: sourced.git }) : void 0
1325115
+ };
1325116
+ }
1325117
+ convertGit({ git, sourced: _sourced }) {
1325118
+ return {
1325119
+ repository: git.repository
1325120
+ };
1325121
+ }
1325122
+ convertPublish({ publish: publish2, sourced }) {
1325123
+ return {
1325124
+ npm: publish2.npm != null && !isNullish(sourced.npm) ? this.convertNpm({ npm: publish2.npm, sourced: sourced.npm }) : void 0
1325125
+ };
1325126
+ }
1325127
+ convertNpm({ npm, sourced: _sourced }) {
1325128
+ return {
1325129
+ packageName: npm.packageName
1325130
+ };
1325131
+ }
1325132
+ resolveLanguage({ name: name3, target, sourced }) {
1325133
+ if (target.lang != null) {
1325134
+ return target.lang;
1325135
+ }
1325136
+ const lang = name3;
1325137
+ if (LANGUAGES.includes(lang)) {
1325138
+ return lang;
1325139
+ }
1325140
+ this.issues.push(new ValidationIssue({
1325141
+ message: `target "${name3}" is not a recognized language; please specify the "lang" property`,
1325142
+ location: sourced.$loc
1325143
+ }));
1325144
+ return void 0;
1325145
+ }
1325146
+ };
1325147
+
1325062
1325148
  // ../cli-v2/lib/commands/sdk/generate.js
1325063
1325149
  function addGenerateCommand(cli) {
1325064
1325150
  command2(cli, "generate", "Generate SDKs configured in fern.yml", handleGenerate);
1325065
1325151
  }
1325066
1325152
  async function handleGenerate(context2, _args) {
1325067
- context2.stdout.info("Generating SDKs...");
1325153
+ const fernYml = await loadFernYml({ cwd: context2.cwd });
1325154
+ const converter = new SdkConfigConverter({ logger: context2.stderr });
1325155
+ const result = converter.convert({ fernYml });
1325156
+ if (!result.success) {
1325157
+ throw new ValidationError(result.issues);
1325158
+ }
1325159
+ context2.stdout.info(`Generating SDKs for org: ${result.config.org}`);
1325160
+ for (const target of result.config.targets) {
1325161
+ context2.stdout.info(` ${target.name}: ${target.image}:${target.version}`);
1325162
+ }
1325068
1325163
  }
1325069
1325164
 
1325070
1325165
  // ../cli-v2/lib/commands/sdk.js
@@ -1338591,7 +1338686,7 @@ function sortBy(arr, criteria) {
1338591
1338686
  return orderBy(arr, criteria, ["asc"]);
1338592
1338687
  }
1338593
1338688
 
1338594
- // ../../../node_modules/.pnpm/@fern-api+fdr-sdk@0.143.9-f12426eb4_typescript@5.9.3/node_modules/@fern-api/fdr-sdk/dist/js/index.mjs
1338689
+ // ../../../node_modules/.pnpm/@fern-api+fdr-sdk@0.144.6-a76e5b58c_typescript@5.9.3/node_modules/@fern-api/fdr-sdk/dist/js/index.mjs
1338595
1338690
  var import_ts_essentials = __toESM(require_dist2(), 1);
1338596
1338691
 
1338597
1338692
  // ../../../node_modules/.pnpm/es-toolkit@1.43.0/node_modules/es-toolkit/dist/object/mapValues.mjs
@@ -1338612,7 +1338707,7 @@ function words2(str3) {
1338612
1338707
  return Array.from(str3.match(CASE_SPLIT_PATTERN) ?? []);
1338613
1338708
  }
1338614
1338709
 
1338615
- // ../../../node_modules/.pnpm/@fern-api+fdr-sdk@0.143.9-f12426eb4_typescript@5.9.3/node_modules/@fern-api/fdr-sdk/dist/js/index.mjs
1338710
+ // ../../../node_modules/.pnpm/@fern-api+fdr-sdk@0.144.6-a76e5b58c_typescript@5.9.3/node_modules/@fern-api/fdr-sdk/dist/js/index.mjs
1338616
1338711
  var import_qs = __toESM(require_lib2(), 1);
1338617
1338712
  var import_ts_essentials2 = __toESM(require_dist2(), 1);
1338618
1338713
  var import_ts_essentials3 = __toESM(require_dist2(), 1);
@@ -1344353,7 +1344448,7 @@ function kebabCase2(str3) {
1344353
1344448
  return words$1.map((word) => word.toLowerCase()).join("-");
1344354
1344449
  }
1344355
1344450
 
1344356
- // ../../../node_modules/.pnpm/@fern-api+fdr-sdk@0.143.9-f12426eb4_typescript@5.9.3/node_modules/@fern-api/fdr-sdk/dist/js/index.mjs
1344451
+ // ../../../node_modules/.pnpm/@fern-api+fdr-sdk@0.144.6-a76e5b58c_typescript@5.9.3/node_modules/@fern-api/fdr-sdk/dist/js/index.mjs
1344357
1344452
  var import_fast_deep_equal = __toESM(require_fast_deep_equal(), 1);
1344358
1344453
  var import_ts_essentials4 = __toESM(require_dist2(), 1);
1344359
1344454
  var import_url_join2 = __toESM(require_url_join(), 1);
@@ -1344372,7 +1344467,7 @@ function once(func) {
1344372
1344467
  };
1344373
1344468
  }
1344374
1344469
 
1344375
- // ../../../node_modules/.pnpm/@fern-api+fdr-sdk@0.143.9-f12426eb4_typescript@5.9.3/node_modules/@fern-api/fdr-sdk/dist/js/index.mjs
1344470
+ // ../../../node_modules/.pnpm/@fern-api+fdr-sdk@0.144.6-a76e5b58c_typescript@5.9.3/node_modules/@fern-api/fdr-sdk/dist/js/index.mjs
1344376
1344471
  var import_ts_essentials6 = __toESM(require_dist2(), 1);
1344377
1344472
  var import_ts_essentials7 = __toESM(require_dist2(), 1);
1344378
1344473
  var import_url_join3 = __toESM(require_url_join(), 1);
@@ -1344602,7 +1344697,7 @@ var esm_default2 = typeof structuredClone === "function" ? (
1344602
1344697
  (any9, options2) => options2 && ("json" in options2 || "lossy" in options2) ? deserialize(serialize(any9, options2)) : structuredClone(any9)
1344603
1344698
  ) : (any9, options2) => deserialize(serialize(any9, options2));
1344604
1344699
 
1344605
- // ../../../node_modules/.pnpm/@fern-api+fdr-sdk@0.143.9-f12426eb4_typescript@5.9.3/node_modules/@fern-api/fdr-sdk/dist/js/index.mjs
1344700
+ // ../../../node_modules/.pnpm/@fern-api+fdr-sdk@0.144.6-a76e5b58c_typescript@5.9.3/node_modules/@fern-api/fdr-sdk/dist/js/index.mjs
1344606
1344701
  var import_ts_essentials12 = __toESM(require_dist2(), 1);
1344607
1344702
  var __create2 = Object.create;
1344608
1344703
  var __defProp2 = Object.defineProperty;
@@ -1344850,6 +1344945,8 @@ __export2(api_definition_exports, {
1344850
1344945
  EndpointPathLiteral: () => EndpointPathLiteral,
1344851
1344946
  EnvironmentId: () => EnvironmentId,
1344852
1344947
  FileId: () => FileId,
1344948
+ GraphQlOperationId: () => GraphQlOperationId,
1344949
+ GraphQlOperationType: () => GraphQlOperationType,
1344853
1344950
  GrpcId: () => GrpcId,
1344854
1344951
  GrpcMethod: () => GrpcMethod,
1344855
1344952
  HTTP_SNIPPET_CLIENTS: () => HTTP_SNIPPET_CLIENTS,
@@ -1344887,6 +1344984,7 @@ __export2(api_definition_exports, {
1344887
1344984
  commons: () => commons_exports3,
1344888
1344985
  convertToCurl: () => convertToCurl,
1344889
1344986
  createEndpointContext: () => createEndpointContext,
1344987
+ createGraphqlContext: () => createGraphqlContext,
1344890
1344988
  createGrpcContext: () => createGrpcContext,
1344891
1344989
  createSnippetGenerators: () => createSnippetGenerators,
1344892
1344990
  createWebSocketContext: () => createWebSocketContext,
@@ -1344894,6 +1344992,7 @@ __export2(api_definition_exports, {
1344894
1344992
  endpoint: () => endpoint_exports,
1344895
1344993
  filterReferencedTypes: () => filterReferencedTypes,
1344896
1344994
  generateCurlSnippet: () => generateCurlSnippet,
1344995
+ generateGraphQlSnippet: () => generateGraphQlSnippet,
1344897
1344996
  generateHttpSnippets: () => generateHttpSnippets,
1344898
1344997
  generateSdkSnippetForLanguage: () => generateSdkSnippetForLanguage,
1344899
1344998
  generateSdkSnippets: () => generateSdkSnippets,
@@ -1344901,6 +1345000,7 @@ __export2(api_definition_exports, {
1344901
1345000
  getApiLatest: () => getApiLatest_exports,
1344902
1345001
  getHarRequest: () => getHarRequest,
1344903
1345002
  getMessageForStatus: () => getMessageForStatus,
1345003
+ graphql: () => graphql_exports,
1344904
1345004
  joiner: () => joiner,
1344905
1345005
  preprocessQueryParameters: () => preprocessQueryParameters,
1344906
1345006
  prune: () => prune,
@@ -1345401,12 +1345501,14 @@ function visitDiscriminatedUnion2(item, discriminant8 = "type") {
1345401
1345501
  var visitDiscriminatedUnion_default = visitDiscriminatedUnion2;
1345402
1345502
  var latest_exports = {};
1345403
1345503
  __export2(latest_exports, {
1345504
+ GraphQlOperationType: () => GraphQlOperationType,
1345404
1345505
  ObjectPropertyAccess: () => ObjectPropertyAccess,
1345405
1345506
  WebhookHttpMethod: () => WebhookHttpMethod,
1345406
1345507
  auth: () => auth_exports3,
1345407
1345508
  commons: () => commons_exports3,
1345408
1345509
  endpoint: () => endpoint_exports,
1345409
1345510
  getApiLatest: () => getApiLatest_exports,
1345511
+ graphql: () => graphql_exports,
1345410
1345512
  type_: () => type_exports,
1345411
1345513
  webhook: () => webhook_exports,
1345412
1345514
  websocket: () => websocket_exports
@@ -1345447,6 +1345549,15 @@ var Error2 = {
1345447
1345549
  var auth_exports3 = {};
1345448
1345550
  var commons_exports3 = {};
1345449
1345551
  var endpoint_exports = {};
1345552
+ var graphql_exports = {};
1345553
+ __export2(graphql_exports, {
1345554
+ GraphQlOperationType: () => GraphQlOperationType
1345555
+ });
1345556
+ var GraphQlOperationType = {
1345557
+ Query: "QUERY",
1345558
+ Mutation: "MUTATION",
1345559
+ Subscription: "SUBSCRIPTION"
1345560
+ };
1345450
1345561
  var type_exports = {};
1345451
1345562
  __export2(type_exports, {
1345452
1345563
  ObjectPropertyAccess: () => ObjectPropertyAccess
@@ -1345496,6 +1345607,7 @@ __export2(commons_exports32, {
1345496
1345607
  EndpointPathLiteral: () => EndpointPathLiteral,
1345497
1345608
  EnvironmentId: () => EnvironmentId,
1345498
1345609
  FileId: () => FileId,
1345610
+ GraphQlOperationId: () => GraphQlOperationId,
1345499
1345611
  GrpcId: () => GrpcId,
1345500
1345612
  GrpcMethod: () => GrpcMethod,
1345501
1345613
  HttpMethod: () => HttpMethod,
@@ -1345544,6 +1345656,9 @@ function EnvironmentId(value) {
1345544
1345656
  function FileId(value) {
1345545
1345657
  return value;
1345546
1345658
  }
1345659
+ function GraphQlOperationId(value) {
1345660
+ return value;
1345661
+ }
1345547
1345662
  function GrpcId(value) {
1345548
1345663
  return value;
1345549
1345664
  }
@@ -1345860,7 +1345975,8 @@ function primitiveToDefault(shape) {
1345860
1345975
  uuid: (uuid3) => uuid3.default,
1345861
1345976
  base64: (base643) => base643.default,
1345862
1345977
  date: (value) => value.default,
1345863
- bigInteger: (value) => value.default
1345978
+ bigInteger: (value) => value.default,
1345979
+ scalar: (value) => value.default
1345864
1345980
  });
1345865
1345981
  }
1345866
1345982
  function collectReferencedTypeIds(type8, types4, { maxDepth = 10 } = {}) {
@@ -1346177,6 +1346293,12 @@ var ApiTypeIdVisitor = class _ApiTypeIdVisitor {
1346177
1346293
  }
1346178
1346294
  });
1346179
1346295
  }
1346296
+ static visitGraphQlOperation(operation, visit3) {
1346297
+ operation.arguments?.forEach((arg) => {
1346298
+ _ApiTypeIdVisitor.visitTypeShape(arg.type, visit3);
1346299
+ });
1346300
+ _ApiTypeIdVisitor.visitTypeShape(operation.returnType, visit3);
1346301
+ }
1346180
1346302
  static visitWebhookPayloadShape(payloadShape, visit3) {
1346181
1346303
  return visitDiscriminatedUnion_default(payloadShape)._visit({
1346182
1346304
  object: (value) => _ApiTypeIdVisitor.visitObjectType(value, visit3),
@@ -1346269,6 +1346391,7 @@ var ApiDefinitionPruner = class _ApiDefinitionPruner {
1346269
1346391
  endpoints: {},
1346270
1346392
  websockets: {},
1346271
1346393
  webhooks: {},
1346394
+ graphqlOperations: {},
1346272
1346395
  types: {},
1346273
1346396
  subpackages: {},
1346274
1346397
  auths: {}
@@ -1346303,6 +1346426,12 @@ var ApiDefinitionPruner = class _ApiDefinitionPruner {
1346303
1346426
  toRet.endpoints[grpcIdAsEndpointId] = found;
1346304
1346427
  found.namespace?.forEach((subpackageId) => namespaces.add(subpackageId));
1346305
1346428
  }
1346429
+ } else if (node3.type === "graphql") {
1346430
+ const found = this.api.graphqlOperations[node3.graphqlOperationId];
1346431
+ if (found) {
1346432
+ toRet.graphqlOperations[node3.graphqlOperationId] = found;
1346433
+ found.namespace?.forEach((subpackageId) => namespaces.add(subpackageId));
1346434
+ }
1346306
1346435
  }
1346307
1346436
  }
1346308
1346437
  toRet.types = this.pruneTypes(toRet);
@@ -1346334,6 +1346463,9 @@ var ApiDefinitionPruner = class _ApiDefinitionPruner {
1346334
1346463
  for (const webhook of Object.values(partiallyPrunedApi.webhooks)) {
1346335
1346464
  ApiTypeIdVisitor.visitWebhookDefinition(webhook, (typeId) => typeIds.add(typeId));
1346336
1346465
  }
1346466
+ for (const graphqlOperation of Object.values(partiallyPrunedApi.graphqlOperations)) {
1346467
+ ApiTypeIdVisitor.visitGraphQlOperation(graphqlOperation, (typeId) => typeIds.add(typeId));
1346468
+ }
1346337
1346469
  typeIds = this.expandTypeIds(typeIds);
1346338
1346470
  const types4 = {};
1346339
1346471
  typeIds.forEach((typeId) => {
@@ -1346536,6 +1346668,21 @@ function createGrpcContext(node3, apiDefinition) {
1346536
1346668
  types: api.types
1346537
1346669
  };
1346538
1346670
  }
1346671
+ function createGraphqlContext(node3, apiDefinition) {
1346672
+ if (!node3) {
1346673
+ return void 0;
1346674
+ }
1346675
+ const api = apiDefinition != null ? prune(apiDefinition, node3) : void 0;
1346676
+ const operation = api?.graphqlOperations[node3.graphqlOperationId];
1346677
+ if (!operation) {
1346678
+ return void 0;
1346679
+ }
1346680
+ return {
1346681
+ node: node3,
1346682
+ operation,
1346683
+ types: api.types
1346684
+ };
1346685
+ }
1346539
1346686
  var APIV1Read_exports = {};
1346540
1346687
  __export2(APIV1Read_exports, {
1346541
1346688
  ApiDefinitionId: () => ApiDefinitionId,
@@ -1346547,6 +1346694,8 @@ __export2(APIV1Read_exports, {
1346547
1346694
  EndpointPathLiteral: () => EndpointPathLiteral,
1346548
1346695
  EnvironmentId: () => EnvironmentId,
1346549
1346696
  FileId: () => FileId,
1346697
+ GraphQlOperationId: () => GraphQlOperationId,
1346698
+ GraphQlOperationType: () => GraphQlOperationType2,
1346550
1346699
  GrpcId: () => GrpcId,
1346551
1346700
  GrpcMethod: () => GrpcMethod,
1346552
1346701
  HttpMethod: () => HttpMethod,
@@ -1346572,18 +1346721,21 @@ __export2(APIV1Read_exports, {
1346572
1346721
  getApi: () => getApi_exports,
1346573
1346722
  getEndpointById: () => getEndpointById_exports,
1346574
1346723
  getEndpointByLocator: () => getEndpointByLocator_exports,
1346724
+ graphql: () => graphql_exports2,
1346575
1346725
  type_: () => type_exports2,
1346576
1346726
  webhook: () => webhook_exports2,
1346577
1346727
  websocket: () => websocket_exports2
1346578
1346728
  });
1346579
1346729
  var read_exports = {};
1346580
1346730
  __export2(read_exports, {
1346731
+ GraphQlOperationType: () => GraphQlOperationType2,
1346581
1346732
  ObjectPropertyAccess: () => ObjectPropertyAccess2,
1346582
1346733
  SupportedLanguage: () => SupportedLanguage,
1346583
1346734
  endpoint: () => endpoint_exports2,
1346584
1346735
  getApi: () => getApi_exports,
1346585
1346736
  getEndpointById: () => getEndpointById_exports,
1346586
1346737
  getEndpointByLocator: () => getEndpointByLocator_exports,
1346738
+ graphql: () => graphql_exports2,
1346587
1346739
  type_: () => type_exports2,
1346588
1346740
  webhook: () => webhook_exports2,
1346589
1346741
  websocket: () => websocket_exports2
@@ -1346720,6 +1346872,15 @@ var SupportedLanguage = {
1346720
1346872
  Swift: "swift",
1346721
1346873
  Rust: "rust"
1346722
1346874
  };
1346875
+ var graphql_exports2 = {};
1346876
+ __export2(graphql_exports2, {
1346877
+ GraphQlOperationType: () => GraphQlOperationType2
1346878
+ });
1346879
+ var GraphQlOperationType2 = {
1346880
+ Query: "QUERY",
1346881
+ Mutation: "MUTATION",
1346882
+ Subscription: "SUBSCRIPTION"
1346883
+ };
1346723
1346884
  var type_exports2 = {};
1346724
1346885
  __export2(type_exports2, {
1346725
1346886
  ObjectPropertyAccess: () => ObjectPropertyAccess2
@@ -1346748,6 +1346909,7 @@ function joiner(force = false) {
1346748
1346909
  endpoints: { ...first3.endpoints },
1346749
1346910
  websockets: { ...first3.websockets },
1346750
1346911
  webhooks: { ...first3.webhooks },
1346912
+ graphqlOperations: { ...first3.graphqlOperations },
1346751
1346913
  types: { ...first3.types },
1346752
1346914
  subpackages: { ...first3.subpackages },
1346753
1346915
  auths: { ...first3.auths },
@@ -1347447,6 +1347609,7 @@ var ApiDefinitionV1ToLatest = class _ApiDefinitionV1ToLatest {
1347447
1347609
  endpoints = {};
1347448
1347610
  websockets = {};
1347449
1347611
  webhooks = {};
1347612
+ graphqlOperations = {};
1347450
1347613
  subpackages = {};
1347451
1347614
  types = {};
1347452
1347615
  migrate = () => {
@@ -1347473,6 +1347636,10 @@ var ApiDefinitionV1ToLatest = class _ApiDefinitionV1ToLatest {
1347473
1347636
  const id2 = _ApiDefinitionV1ToLatest.createWebhookId(webhook, subpackageId);
1347474
1347637
  this.webhooks[id2] = this.migrateWebhook(id2, webhook, namespace);
1347475
1347638
  });
1347639
+ pkg2.graphqlOperations?.forEach((graphqlOp) => {
1347640
+ const id2 = graphqlOp.id;
1347641
+ this.graphqlOperations[id2] = this.migrateGraphQlOperation(graphqlOp, namespace);
1347642
+ });
1347476
1347643
  });
1347477
1347644
  Object.values(this.v1.subpackages).forEach((subpackage) => {
1347478
1347645
  this.subpackages[subpackage.subpackageId] = this.migrateSubpackage(subpackage);
@@ -1347483,6 +1347650,7 @@ var ApiDefinitionV1ToLatest = class _ApiDefinitionV1ToLatest {
1347483
1347650
  endpoints: this.endpoints,
1347484
1347651
  websockets: this.websockets,
1347485
1347652
  webhooks: this.webhooks,
1347653
+ graphqlOperations: this.graphqlOperations,
1347486
1347654
  types: this.types,
1347487
1347655
  subpackages: this.subpackages,
1347488
1347656
  auths: this.v1.authSchemes ? this.v1.authSchemes : this.v1.auth ? { [AUTH_SCHEME_ID]: this.v1.auth } : {},
@@ -1348082,6 +1348250,36 @@ var ApiDefinitionV1ToLatest = class _ApiDefinitionV1ToLatest {
1348082
1348250
  }
1348083
1348251
  return toRet;
1348084
1348252
  }
1348253
+ migrateGraphQlOperation = (v1, namespace) => {
1348254
+ return {
1348255
+ id: v1.id,
1348256
+ operationType: v1.operationType,
1348257
+ name: v1.name,
1348258
+ displayName: v1.displayName,
1348259
+ description: v1.description,
1348260
+ availability: v1.availability,
1348261
+ namespace,
1348262
+ arguments: v1.arguments?.map((arg) => this.migrateGraphQlArgument(arg)),
1348263
+ returnType: {
1348264
+ type: "alias",
1348265
+ value: this.migrateTypeReference(v1.returnType)
1348266
+ },
1348267
+ examples: v1.examples,
1348268
+ snippets: v1.snippets
1348269
+ };
1348270
+ };
1348271
+ migrateGraphQlArgument = (v1) => {
1348272
+ return {
1348273
+ name: v1.name,
1348274
+ description: v1.description,
1348275
+ availability: v1.availability,
1348276
+ type: {
1348277
+ type: "alias",
1348278
+ value: this.migrateTypeReference(v1.type)
1348279
+ },
1348280
+ defaultValue: v1.defaultValue
1348281
+ };
1348282
+ };
1348085
1348283
  };
1348086
1348284
  var nP = Object.create;
1348087
1348285
  var bn = Object.defineProperty;
@@ -1395759,6 +1395957,361 @@ async function generateSnippetsForExample(apiDefinition, endpoint3, example, dyn
1395759
1395957
  }
1395760
1395958
  return snippets;
1395761
1395959
  }
1395960
+ var snippetCache = /* @__PURE__ */ new WeakMap();
1395961
+ function generateGraphQlSnippet(context2) {
1395962
+ const cached2 = snippetCache.get(context2.operation);
1395963
+ if (cached2) {
1395964
+ return cached2;
1395965
+ }
1395966
+ const { operation, types: types4 } = context2;
1395967
+ const operationKeyword = getOperationKeyword(operation.operationType);
1395968
+ const operationName = capitalizeFirst(operation.name);
1395969
+ const args = operation.arguments ?? [];
1395970
+ const variables = {};
1395971
+ const variableDefinitions = args.map((arg) => {
1395972
+ const graphqlType = typeShapeToGraphQlType(arg.type, types4);
1395973
+ const exampleValue = generateExampleValue(arg.type, types4, arg.defaultValue);
1395974
+ variables[arg.name] = exampleValue;
1395975
+ return `$${arg.name}: ${graphqlType}`;
1395976
+ });
1395977
+ const argumentUsage = args.map((arg) => `${arg.name}: $${arg.name}`);
1395978
+ const selectionSet = generateSelectionSet(operation.returnType, types4, 2);
1395979
+ let query = operationKeyword;
1395980
+ if (operationName || variableDefinitions.length > 0) {
1395981
+ query += ` ${operationName}`;
1395982
+ if (variableDefinitions.length > 0) {
1395983
+ query += `(${variableDefinitions.join(", ")})`;
1395984
+ }
1395985
+ }
1395986
+ query += " {\n";
1395987
+ query += ` ${operation.name}`;
1395988
+ if (argumentUsage.length > 0) {
1395989
+ query += `(${argumentUsage.join(", ")})`;
1395990
+ }
1395991
+ if (selectionSet) {
1395992
+ query += ` ${selectionSet}`;
1395993
+ }
1395994
+ query += "\n}";
1395995
+ const response = generateResponseExample(operation.name, operation.returnType, types4);
1395996
+ const result = { query, variables, response };
1395997
+ snippetCache.set(operation, result);
1395998
+ return result;
1395999
+ }
1396000
+ function getOperationKeyword(operationType) {
1396001
+ switch (operationType) {
1396002
+ case "QUERY":
1396003
+ return "query";
1396004
+ case "MUTATION":
1396005
+ return "mutation";
1396006
+ case "SUBSCRIPTION":
1396007
+ return "subscription";
1396008
+ default:
1396009
+ return "query";
1396010
+ }
1396011
+ }
1396012
+ function capitalizeFirst(str3) {
1396013
+ if (!str3) {
1396014
+ return str3;
1396015
+ }
1396016
+ return str3.charAt(0).toUpperCase() + str3.slice(1);
1396017
+ }
1396018
+ function typeShapeToGraphQlType(shape, types4) {
1396019
+ if (shape.type === "alias") {
1396020
+ return typeReferenceToGraphQlType(shape.value, types4);
1396021
+ }
1396022
+ if (shape.type === "enum") {
1396023
+ return "String";
1396024
+ }
1396025
+ if (shape.type === "object") {
1396026
+ return "Object";
1396027
+ }
1396028
+ if (shape.type === "undiscriminatedUnion" || shape.type === "discriminatedUnion") {
1396029
+ return "Object";
1396030
+ }
1396031
+ return "String";
1396032
+ }
1396033
+ function typeReferenceToGraphQlType(ref2, types4) {
1396034
+ switch (ref2.type) {
1396035
+ case "primitive":
1396036
+ return primitiveToGraphQlType(ref2.value);
1396037
+ case "id": {
1396038
+ const typeDef = types4[ref2.id];
1396039
+ if (typeDef) {
1396040
+ return typeDef.name ?? "Object";
1396041
+ }
1396042
+ return "Object";
1396043
+ }
1396044
+ case "optional":
1396045
+ return typeShapeToGraphQlType(ref2.shape, types4);
1396046
+ case "nullable":
1396047
+ return typeShapeToGraphQlType(ref2.shape, types4);
1396048
+ case "list":
1396049
+ return `[${typeShapeToGraphQlType(ref2.itemShape, types4)}]`;
1396050
+ case "set":
1396051
+ return `[${typeShapeToGraphQlType(ref2.itemShape, types4)}]`;
1396052
+ case "map":
1396053
+ return "Object";
1396054
+ // Maps don't have direct GraphQL equivalent
1396055
+ case "literal":
1396056
+ return "String";
1396057
+ case "unknown":
1396058
+ return "Object";
1396059
+ default:
1396060
+ return "String";
1396061
+ }
1396062
+ }
1396063
+ function primitiveToGraphQlType(primitive) {
1396064
+ switch (primitive.type) {
1396065
+ case "scalar":
1396066
+ return primitive.name;
1396067
+ case "integer":
1396068
+ case "long":
1396069
+ case "uint":
1396070
+ case "uint64":
1396071
+ case "bigInteger":
1396072
+ return "Int";
1396073
+ case "double":
1396074
+ return "Float";
1396075
+ case "boolean":
1396076
+ return "Boolean";
1396077
+ case "string":
1396078
+ case "uuid":
1396079
+ case "base64":
1396080
+ case "datetime":
1396081
+ case "date":
1396082
+ default:
1396083
+ return "String";
1396084
+ }
1396085
+ }
1396086
+ function generateExampleValue(shape, types4, defaultValue) {
1396087
+ if (defaultValue !== void 0) {
1396088
+ return defaultValue;
1396089
+ }
1396090
+ if (shape.type === "alias") {
1396091
+ return generateExampleValueFromReference(shape.value, types4);
1396092
+ }
1396093
+ if (shape.type === "enum") {
1396094
+ const firstValue = shape.values?.[0];
1396095
+ return firstValue?.value ?? "EXAMPLE_VALUE";
1396096
+ }
1396097
+ if (shape.type === "object") {
1396098
+ return {};
1396099
+ }
1396100
+ if (shape.type === "undiscriminatedUnion" || shape.type === "discriminatedUnion") {
1396101
+ return {};
1396102
+ }
1396103
+ return "example";
1396104
+ }
1396105
+ function generateExampleValueFromReference(ref2, types4) {
1396106
+ switch (ref2.type) {
1396107
+ case "primitive":
1396108
+ return generateExamplePrimitiveValue(ref2.value);
1396109
+ case "id": {
1396110
+ const typeDef = types4[ref2.id];
1396111
+ if (typeDef?.shape) {
1396112
+ return generateExampleValue(typeDef.shape, types4);
1396113
+ }
1396114
+ return {};
1396115
+ }
1396116
+ case "optional":
1396117
+ case "nullable":
1396118
+ return generateExampleValue(ref2.shape, types4);
1396119
+ case "list":
1396120
+ case "set":
1396121
+ return [generateExampleValue(ref2.itemShape, types4)];
1396122
+ case "map":
1396123
+ return {};
1396124
+ case "literal":
1396125
+ return ref2.value.value;
1396126
+ case "unknown":
1396127
+ return {};
1396128
+ default:
1396129
+ return "example";
1396130
+ }
1396131
+ }
1396132
+ function generateExamplePrimitiveValue(primitive) {
1396133
+ switch (primitive.type) {
1396134
+ case "integer":
1396135
+ case "long":
1396136
+ case "uint":
1396137
+ case "uint64":
1396138
+ case "bigInteger":
1396139
+ return 0;
1396140
+ case "double":
1396141
+ return 0;
1396142
+ case "boolean":
1396143
+ return true;
1396144
+ case "string":
1396145
+ return "example";
1396146
+ case "uuid":
1396147
+ return "00000000-0000-0000-0000-000000000000";
1396148
+ case "datetime":
1396149
+ return (/* @__PURE__ */ new Date()).toISOString();
1396150
+ case "date":
1396151
+ return (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
1396152
+ case "base64":
1396153
+ return "ZXhhbXBsZQ==";
1396154
+ case "scalar":
1396155
+ return primitive.default ?? primitive.name;
1396156
+ default:
1396157
+ return "example";
1396158
+ }
1396159
+ }
1396160
+ function generateSelectionSet(shape, types4, depth, visited = /* @__PURE__ */ new Set(), indentLevel = 2) {
1396161
+ if (depth <= 0) {
1396162
+ return "";
1396163
+ }
1396164
+ if (shape.type === "alias") {
1396165
+ return generateSelectionSetFromReference(shape.value, types4, depth, visited, indentLevel);
1396166
+ }
1396167
+ if (shape.type === "object") {
1396168
+ const properties7 = shape.properties ?? [];
1396169
+ if (properties7.length === 0) {
1396170
+ return "";
1396171
+ }
1396172
+ const indent3 = " ".repeat(indentLevel);
1396173
+ const closingIndent = " ".repeat(indentLevel - 1);
1396174
+ const fields = properties7.slice(0, 10).map((prop) => {
1396175
+ const nestedSelection = generateSelectionSet(
1396176
+ prop.valueShape,
1396177
+ types4,
1396178
+ depth - 1,
1396179
+ visited,
1396180
+ indentLevel + 1
1396181
+ );
1396182
+ if (nestedSelection) {
1396183
+ return `${indent3}${prop.key} ${nestedSelection}`;
1396184
+ }
1396185
+ return `${indent3}${prop.key}`;
1396186
+ });
1396187
+ return `{
1396188
+ ${fields.join("\n")}
1396189
+ ${closingIndent}}`;
1396190
+ }
1396191
+ if (shape.type === "enum") {
1396192
+ return "";
1396193
+ }
1396194
+ if (shape.type === "undiscriminatedUnion" || shape.type === "discriminatedUnion") {
1396195
+ return "";
1396196
+ }
1396197
+ return "";
1396198
+ }
1396199
+ function generateSelectionSetFromReference(ref2, types4, depth, visited, indentLevel) {
1396200
+ switch (ref2.type) {
1396201
+ case "id": {
1396202
+ if (visited.has(ref2.id)) {
1396203
+ return "";
1396204
+ }
1396205
+ const typeDef = types4[ref2.id];
1396206
+ if (typeDef?.shape) {
1396207
+ visited.add(ref2.id);
1396208
+ const result = generateSelectionSet(typeDef.shape, types4, depth, visited, indentLevel);
1396209
+ visited.delete(ref2.id);
1396210
+ return result;
1396211
+ }
1396212
+ return "";
1396213
+ }
1396214
+ case "optional":
1396215
+ case "nullable":
1396216
+ return generateSelectionSet(ref2.shape, types4, depth, visited, indentLevel);
1396217
+ case "list":
1396218
+ case "set":
1396219
+ return generateSelectionSet(ref2.itemShape, types4, depth, visited, indentLevel);
1396220
+ case "primitive":
1396221
+ case "literal":
1396222
+ case "unknown":
1396223
+ case "map":
1396224
+ default:
1396225
+ return "";
1396226
+ }
1396227
+ }
1396228
+ function generateResponseExample(operationName, returnType, types4) {
1396229
+ const data2 = generateResponseData(returnType, types4, 3, /* @__PURE__ */ new Set());
1396230
+ return {
1396231
+ data: {
1396232
+ [operationName]: data2
1396233
+ }
1396234
+ };
1396235
+ }
1396236
+ function generateResponseData(shape, types4, depth, visited) {
1396237
+ if (depth <= 0) {
1396238
+ return null;
1396239
+ }
1396240
+ if (shape.type === "alias") {
1396241
+ return generateResponseDataFromReference(shape.value, types4, depth, visited);
1396242
+ }
1396243
+ if (shape.type === "object") {
1396244
+ const properties7 = shape.properties ?? [];
1396245
+ if (properties7.length === 0) {
1396246
+ return {};
1396247
+ }
1396248
+ const result = {};
1396249
+ for (const prop of properties7.slice(0, 10)) {
1396250
+ result[prop.key] = generateResponseData(prop.valueShape, types4, depth - 1, visited);
1396251
+ }
1396252
+ return result;
1396253
+ }
1396254
+ if (shape.type === "enum") {
1396255
+ const firstValue = shape.values?.[0];
1396256
+ return firstValue?.value ?? "EXAMPLE_VALUE";
1396257
+ }
1396258
+ if (shape.type === "undiscriminatedUnion") {
1396259
+ const firstVariant = shape.variants?.[0];
1396260
+ if (firstVariant?.shape) {
1396261
+ return generateResponseData(firstVariant.shape, types4, depth, visited);
1396262
+ }
1396263
+ return {};
1396264
+ }
1396265
+ if (shape.type === "discriminatedUnion") {
1396266
+ const firstVariant = shape.variants?.[0];
1396267
+ if (firstVariant) {
1396268
+ const result = {
1396269
+ [shape.discriminant]: firstVariant.discriminantValue
1396270
+ };
1396271
+ if (firstVariant.properties) {
1396272
+ for (const prop of firstVariant.properties.slice(0, 10)) {
1396273
+ result[prop.key] = generateResponseData(prop.valueShape, types4, depth - 1, visited);
1396274
+ }
1396275
+ }
1396276
+ return result;
1396277
+ }
1396278
+ return {};
1396279
+ }
1396280
+ return null;
1396281
+ }
1396282
+ function generateResponseDataFromReference(ref2, types4, depth, visited) {
1396283
+ switch (ref2.type) {
1396284
+ case "primitive":
1396285
+ return generateExamplePrimitiveValue(ref2.value);
1396286
+ case "id": {
1396287
+ if (visited.has(ref2.id)) {
1396288
+ return null;
1396289
+ }
1396290
+ const typeDef = types4[ref2.id];
1396291
+ if (typeDef?.shape) {
1396292
+ visited.add(ref2.id);
1396293
+ const result = generateResponseData(typeDef.shape, types4, depth, visited);
1396294
+ visited.delete(ref2.id);
1396295
+ return result;
1396296
+ }
1396297
+ return {};
1396298
+ }
1396299
+ case "optional":
1396300
+ case "nullable":
1396301
+ return generateResponseData(ref2.shape, types4, depth, visited);
1396302
+ case "list":
1396303
+ case "set":
1396304
+ return [generateResponseData(ref2.itemShape, types4, depth, visited)];
1396305
+ case "map":
1396306
+ return {};
1396307
+ case "literal":
1396308
+ return ref2.value.value;
1396309
+ case "unknown":
1396310
+ return {};
1396311
+ default:
1396312
+ return null;
1396313
+ }
1396314
+ }
1395762
1396315
  var SDK_SNIPPET_LANGUAGES = [
1395763
1396316
  "typescript",
1395764
1396317
  "python",
@@ -1395901,6 +1396454,7 @@ var Transformer = class _Transformer {
1395901
1396454
  endpoints: Object.fromEntries(endpoints),
1395902
1396455
  websockets: Object.fromEntries(websockets),
1395903
1396456
  webhooks: Object.fromEntries(webhooks2),
1396457
+ graphqlOperations: api.graphqlOperations,
1395904
1396458
  types: Object.fromEntries(types4),
1395905
1396459
  globalHeaders,
1395906
1396460
  auths: api.auths,
@@ -1396195,11 +1396749,13 @@ __export2(db_exports, {
1396195
1396749
  var endpoint_exports3 = {};
1396196
1396750
  var register_exports = {};
1396197
1396751
  __export2(register_exports, {
1396752
+ GraphQlOperationType: () => GraphQlOperationType3,
1396198
1396753
  ObjectPropertyAccess: () => ObjectPropertyAccess3,
1396199
1396754
  SourceId: () => SourceId,
1396200
1396755
  checkSdkDynamicIrExists: () => checkSdkDynamicIrExists_exports,
1396201
1396756
  endpoint: () => endpoint_exports4,
1396202
1396757
  getSdkDynamicIrUploadUrls: () => getSdkDynamicIrUploadUrls_exports,
1396758
+ graphql: () => graphql_exports3,
1396203
1396759
  registerApiDefinition: () => registerApiDefinition_exports,
1396204
1396760
  type_: () => type_exports3,
1396205
1396761
  webhook: () => webhook_exports3,
@@ -1396308,6 +1396864,15 @@ var Error8 = {
1396308
1396864
  }
1396309
1396865
  };
1396310
1396866
  var endpoint_exports4 = {};
1396867
+ var graphql_exports3 = {};
1396868
+ __export2(graphql_exports3, {
1396869
+ GraphQlOperationType: () => GraphQlOperationType3
1396870
+ });
1396871
+ var GraphQlOperationType3 = {
1396872
+ Query: "QUERY",
1396873
+ Mutation: "MUTATION",
1396874
+ Subscription: "SUBSCRIPTION"
1396875
+ };
1396311
1396876
  var type_exports3 = {};
1396312
1396877
  __export2(type_exports3, {
1396313
1396878
  ObjectPropertyAccess: () => ObjectPropertyAccess3
@@ -1398189,12 +1398754,18 @@ __export2(navigation_exports, {
1398189
1398754
  });
1398190
1398755
  var latest_exports4 = {};
1398191
1398756
  __export2(latest_exports4, {
1398757
+ GraphQlOperationType: () => GraphQlOperationType4,
1398192
1398758
  NodeId: () => NodeId,
1398193
1398759
  ProductId: () => ProductId,
1398194
1398760
  Slug: () => Slug,
1398195
1398761
  TabId: () => TabId2,
1398196
1398762
  VariantId: () => VariantId
1398197
1398763
  });
1398764
+ var GraphQlOperationType4 = {
1398765
+ Query: "QUERY",
1398766
+ Mutation: "MUTATION",
1398767
+ Subscription: "SUBSCRIPTION"
1398768
+ };
1398198
1398769
  function NodeId(value) {
1398199
1398770
  return value;
1398200
1398771
  }
@@ -1398212,6 +1398783,7 @@ function VariantId(value) {
1398212
1398783
  }
1398213
1398784
  var v1_exports3 = {};
1398214
1398785
  __export2(v1_exports3, {
1398786
+ GraphQlOperationType: () => GraphQlOperationType5,
1398215
1398787
  NavigationV1Availability: () => NavigationV1Availability,
1398216
1398788
  NodeId: () => NodeId2,
1398217
1398789
  ProductId: () => ProductId2,
@@ -1398219,6 +1398791,11 @@ __export2(v1_exports3, {
1398219
1398791
  TabId: () => TabId22,
1398220
1398792
  VariantId: () => VariantId2
1398221
1398793
  });
1398794
+ var GraphQlOperationType5 = {
1398795
+ Query: "QUERY",
1398796
+ Mutation: "MUTATION",
1398797
+ Subscription: "SUBSCRIPTION"
1398798
+ };
1398222
1398799
  var NavigationV1Availability = {
1398223
1398800
  Stable: "stable",
1398224
1398801
  GenerallyAvailable: "generally-available",
@@ -1404888,6 +1405465,7 @@ __export2(APIV1Db_exports, {
1404888
1405465
  EndpointPathLiteral: () => EndpointPathLiteral,
1404889
1405466
  EnvironmentId: () => EnvironmentId,
1404890
1405467
  FileId: () => FileId,
1405468
+ GraphQlOperationId: () => GraphQlOperationId,
1404891
1405469
  GrpcId: () => GrpcId,
1404892
1405470
  GrpcMethod: () => GrpcMethod,
1404893
1405471
  HttpMethod: () => HttpMethod,
@@ -1404920,6 +1405498,8 @@ __export2(APIV1Write_exports, {
1404920
1405498
  EndpointPathLiteral: () => EndpointPathLiteral,
1404921
1405499
  EnvironmentId: () => EnvironmentId,
1404922
1405500
  FileId: () => FileId,
1405501
+ GraphQlOperationId: () => GraphQlOperationId,
1405502
+ GraphQlOperationType: () => GraphQlOperationType3,
1404923
1405503
  GrpcId: () => GrpcId,
1404924
1405504
  GrpcMethod: () => GrpcMethod,
1404925
1405505
  HttpMethod: () => HttpMethod,
@@ -1404944,6 +1405524,7 @@ __export2(APIV1Write_exports, {
1404944
1405524
  checkSdkDynamicIrExists: () => checkSdkDynamicIrExists_exports,
1404945
1405525
  endpoint: () => endpoint_exports4,
1404946
1405526
  getSdkDynamicIrUploadUrls: () => getSdkDynamicIrUploadUrls_exports,
1405527
+ graphql: () => graphql_exports3,
1404947
1405528
  registerApiDefinition: () => registerApiDefinition_exports,
1404948
1405529
  type_: () => type_exports3,
1404949
1405530
  webhook: () => webhook_exports3,
@@ -1404971,6 +1405552,7 @@ __export2(DocsV1Db_exports, {
1404971
1405552
  FontDisplay: () => FontDisplay3,
1404972
1405553
  FontStyle: () => FontStyle3,
1404973
1405554
  FooterNavConfig: () => FooterNavConfig,
1405555
+ GraphQlOperationId: () => GraphQlOperationId,
1404974
1405556
  GrpcId: () => GrpcId,
1404975
1405557
  GrpcMethod: () => GrpcMethod,
1404976
1405558
  HeaderPosition: () => HeaderPosition3,
@@ -1405021,6 +1405603,7 @@ __export2(DocsV1Read_exports, {
1405021
1405603
  FontDisplay: () => FontDisplay3,
1405022
1405604
  FontStyle: () => FontStyle3,
1405023
1405605
  FooterNavConfig: () => FooterNavConfig,
1405606
+ GraphQlOperationId: () => GraphQlOperationId,
1405024
1405607
  GrpcId: () => GrpcId,
1405025
1405608
  GrpcMethod: () => GrpcMethod,
1405026
1405609
  HeaderPosition: () => HeaderPosition3,
@@ -1405075,6 +1405658,7 @@ __export2(DocsV1Write_exports, {
1405075
1405658
  FontDisplay: () => FontDisplay3,
1405076
1405659
  FontStyle: () => FontStyle3,
1405077
1405660
  FooterNavConfig: () => FooterNavConfig,
1405661
+ GraphQlOperationId: () => GraphQlOperationId,
1405078
1405662
  GrpcId: () => GrpcId,
1405079
1405663
  GrpcMethod: () => GrpcMethod,
1405080
1405664
  HeaderPosition: () => HeaderPosition3,
@@ -1405116,6 +1405700,7 @@ __export2(FdrAPI_exports, {
1405116
1405700
  EndpointPathLiteral: () => EndpointPathLiteral,
1405117
1405701
  EnvironmentId: () => EnvironmentId,
1405118
1405702
  FileId: () => FileId,
1405703
+ GraphQlOperationId: () => GraphQlOperationId,
1405119
1405704
  GrpcId: () => GrpcId,
1405120
1405705
  GrpcMethod: () => GrpcMethod,
1405121
1405706
  HttpMethod: () => HttpMethod,
@@ -1405559,6 +1406144,8 @@ function generateExamplePrimitive(reference) {
1405559
1406144
  return "2023-01-01";
1405560
1406145
  case "bigInteger":
1405561
1406146
  return "123456789123456789";
1406147
+ case "scalar":
1406148
+ return reference.name;
1405562
1406149
  }
1405563
1406150
  }
1405564
1406151
  function getAllObjectProperties(object9, resolveTypeById) {
@@ -1405830,6 +1406417,7 @@ function convertAPIDefinitionToDb(writeShape, id2, snippets) {
1405830
1406417
  })
1405831
1406418
  ) ?? [],
1405832
1406419
  websockets: writeShape.rootPackage.websockets?.map((websocket) => transformWebsocket({ writeShape: websocket })) ?? [],
1406420
+ graphqlOperations: writeShape.rootPackage.graphqlOperations ?? [],
1405833
1406421
  subpackages: writeShape.rootPackage.subpackages,
1405834
1406422
  types: writeShape.rootPackage.types,
1405835
1406423
  pointsTo: void 0
@@ -1405877,12 +1406465,14 @@ function transformSubpackage({
1405877
1406465
  );
1405878
1406466
  const webhooks2 = writeShape.webhooks?.map((webhook) => transformWebhook({ writeShape: webhook, apiDefinition }));
1405879
1406467
  const websockets = writeShape.websockets?.map((websocket) => transformWebsocket({ writeShape: websocket }));
1406468
+ const graphqlOperations = writeShape.graphqlOperations;
1405880
1406469
  return {
1405881
1406470
  subpackageId: id2,
1405882
1406471
  parent,
1405883
1406472
  name: writeShape.name,
1405884
1406473
  endpoints,
1405885
1406474
  websockets: websockets ?? [],
1406475
+ graphqlOperations: graphqlOperations ?? [],
1405886
1406476
  types: writeShape.types,
1405887
1406477
  subpackages: writeShape.subpackages,
1405888
1406478
  pointsTo: writeShape.pointsTo,
@@ -1407058,6 +1407648,7 @@ function convertDbAPIDefinitionToRead(dbShape) {
1407058
1407648
  types: dbShape.rootPackage.types,
1407059
1407649
  webhooks: dbShape.rootPackage.webhooks ?? [],
1407060
1407650
  websockets: dbShape.rootPackage.websockets ?? [],
1407651
+ graphqlOperations: dbShape.rootPackage.graphqlOperations ?? [],
1407061
1407652
  pointsTo: dbShape.rootPackage.pointsTo
1407062
1407653
  },
1407063
1407654
  types: dbShape.types,
@@ -1407090,6 +1407681,7 @@ function transformSubpackage2({
1407090
1407681
  // htmlDescription: dbShape.htmlDescription,
1407091
1407682
  webhooks: dbShape.webhooks ?? [],
1407092
1407683
  websockets: dbShape.websockets ?? [],
1407684
+ graphqlOperations: dbShape.graphqlOperations ?? [],
1407093
1407685
  displayName: dbShape.displayName
1407094
1407686
  // descriptionContainsMarkdown: dbShape.descriptionContainsMarkdown,
1407095
1407687
  };
@@ -1407612,6 +1408204,8 @@ __export2(navigation_exports2, {
1407612
1408204
  EndpointPathLiteral: () => EndpointPathLiteral,
1407613
1408205
  EnvironmentId: () => EnvironmentId,
1407614
1408206
  FileId: () => FileId,
1408207
+ GraphQlOperationId: () => GraphQlOperationId,
1408208
+ GraphQlOperationType: () => GraphQlOperationType4,
1407615
1408209
  GrpcId: () => GrpcId,
1407616
1408210
  GrpcMethod: () => GrpcMethod,
1407617
1408211
  HttpMethod: () => HttpMethod,
@@ -1407670,7 +1408264,7 @@ function isSubpackage2(package_) {
1407670
1408264
  return typeof package_.subpackageId === "string";
1407671
1408265
  }
1407672
1408266
  function isApiLeaf(node3) {
1407673
- return node3.type === "endpoint" || node3.type === "webSocket" || node3.type === "webhook" || node3.type === "grpc";
1408267
+ return node3.type === "endpoint" || node3.type === "webSocket" || node3.type === "webhook" || node3.type === "grpc" || node3.type === "graphql";
1407674
1408268
  }
1407675
1408269
  function isMarkdownLeaf(node3) {
1407676
1408270
  return node3.type === "page" || node3.type === "landingPage" || node3.type === "changelogEntry";
@@ -1407731,7 +1408325,8 @@ function getPageId(node3) {
1407731
1408325
  endpoint: RETURN_UNDEFINED,
1407732
1408326
  webSocket: RETURN_UNDEFINED,
1407733
1408327
  webhook: RETURN_UNDEFINED,
1407734
- grpc: RETURN_UNDEFINED
1408328
+ grpc: RETURN_UNDEFINED,
1408329
+ graphql: RETURN_UNDEFINED
1407735
1408330
  // changelogYear: RETURN_UNDEFINED,
1407736
1408331
  // changelogMonth: RETURN_UNDEFINED,
1407737
1408332
  });
@@ -1407876,6 +1408471,12 @@ var ApiDefinitionHolder = class _ApiDefinitionHolder {
1407876
1408471
  package_.webhooks.forEach((webhook) => {
1407877
1408472
  this.#webhooks.set(_ApiDefinitionHolder.createWebhookId(webhook, subpackageId), webhook);
1407878
1408473
  });
1408474
+ package_.graphqlOperations?.forEach((graphqlOperation) => {
1408475
+ this.#graphqlOperations.set(
1408476
+ _ApiDefinitionHolder.createGraphQlOperationId(graphqlOperation),
1408477
+ graphqlOperation
1408478
+ );
1408479
+ });
1407879
1408480
  });
1407880
1408481
  }
1407881
1408482
  static create(api) {
@@ -1407884,6 +1408485,7 @@ var ApiDefinitionHolder = class _ApiDefinitionHolder {
1407884
1408485
  #endpoints = /* @__PURE__ */ new Map();
1407885
1408486
  #webSockets = /* @__PURE__ */ new Map();
1407886
1408487
  #webhooks = /* @__PURE__ */ new Map();
1408488
+ #graphqlOperations = /* @__PURE__ */ new Map();
1407887
1408489
  get endpoints() {
1407888
1408490
  return this.#endpoints;
1407889
1408491
  }
@@ -1407893,6 +1408495,9 @@ var ApiDefinitionHolder = class _ApiDefinitionHolder {
1407893
1408495
  get webhooks() {
1407894
1408496
  return this.#webhooks;
1407895
1408497
  }
1408498
+ get graphqlOperations() {
1408499
+ return this.#graphqlOperations;
1408500
+ }
1407896
1408501
  static createEndpointId(endpoint3, subpackageId = ROOT_PACKAGE_ID) {
1407897
1408502
  return EndpointId(endpoint3.originalEndpointId ?? `${subpackageId}.${endpoint3.id}`);
1407898
1408503
  }
@@ -1407905,6 +1408510,9 @@ var ApiDefinitionHolder = class _ApiDefinitionHolder {
1407905
1408510
  static createGrpcId(grpcEndpoint, subpackageId = ROOT_PACKAGE_ID) {
1407906
1408511
  return GrpcId(`${subpackageId}.${grpcEndpoint.id}`);
1407907
1408512
  }
1408513
+ static createGraphQlOperationId(graphqlOperation) {
1408514
+ return graphqlOperation.id;
1408515
+ }
1407908
1408516
  };
1407909
1408517
  var ApiTypeIdVisitor2 = class _ApiTypeIdVisitor2 {
1407910
1408518
  static visitEndpointDefinition(endpoint3, visit3) {
@@ -1407951,6 +1408559,12 @@ var ApiTypeIdVisitor2 = class _ApiTypeIdVisitor2 {
1407951
1408559
  });
1407952
1408560
  _ApiTypeIdVisitor2.visitWebhookPayloadShape(webhook.payload.type, visit3);
1407953
1408561
  }
1408562
+ static visitGraphQlOperation(graphqlOperation, visit3) {
1408563
+ graphqlOperation.arguments?.forEach((arg) => {
1408564
+ _ApiTypeIdVisitor2.visitTypeReference(arg.type, visit3);
1408565
+ });
1408566
+ _ApiTypeIdVisitor2.visitTypeReference(graphqlOperation.returnType, visit3);
1408567
+ }
1407954
1408568
  static visitWebhookPayloadShape(payloadShape, visit3) {
1407955
1408569
  return visitDiscriminatedUnion_default(payloadShape)._visit({
1407956
1408570
  object: (value) => _ApiTypeIdVisitor2.visitObjectType(value, visit3),
@@ -1408102,6 +1408716,7 @@ var ApiDefinitionPruner2 = class {
1408102
1408716
  const endpoints = this.pruneEndpoints(node3, pkg2.endpoints, subpackageId);
1408103
1408717
  const websockets = this.pruneWebSockets(node3, pkg2.websockets, subpackageId);
1408104
1408718
  const webhooks2 = this.pruneWebhooks(node3, pkg2.webhooks, subpackageId);
1408719
+ const graphqlOperations = this.pruneGraphqlOperations(node3, pkg2.graphqlOperations);
1408105
1408720
  const typeIds = /* @__PURE__ */ new Set();
1408106
1408721
  endpoints.forEach((endpoint3) => {
1408107
1408722
  ApiTypeIdVisitor2.visitEndpointDefinition(endpoint3, (typeId) => typeIds.add(typeId));
@@ -1408112,12 +1408727,16 @@ var ApiDefinitionPruner2 = class {
1408112
1408727
  webhooks2.forEach((webhook) => {
1408113
1408728
  ApiTypeIdVisitor2.visitWebhookDefinition(webhook, (typeId) => typeIds.add(typeId));
1408114
1408729
  });
1408730
+ graphqlOperations.forEach((graphqlOperation) => {
1408731
+ ApiTypeIdVisitor2.visitGraphQlOperation(graphqlOperation, (typeId) => typeIds.add(typeId));
1408732
+ });
1408115
1408733
  const expandedTypeIds = this.expandTypeIds(typeIds);
1408116
1408734
  return {
1408117
1408735
  ...pkg2,
1408118
1408736
  endpoints,
1408119
1408737
  websockets,
1408120
1408738
  webhooks: webhooks2,
1408739
+ graphqlOperations,
1408121
1408740
  types: Array.from(expandedTypeIds)
1408122
1408741
  };
1408123
1408742
  }
@@ -1408157,6 +1408776,16 @@ var ApiDefinitionPruner2 = class {
1408157
1408776
  );
1408158
1408777
  return found ? [found] : [];
1408159
1408778
  }
1408779
+ pruneGraphqlOperations(node3, graphqlOperations) {
1408780
+ if (node3.type !== "graphql" || graphqlOperations == null) {
1408781
+ return [];
1408782
+ }
1408783
+ const graphqlOperationId = node3.graphqlOperationId;
1408784
+ const found = graphqlOperations.find(
1408785
+ (graphqlOperation) => ApiDefinitionHolder.createGraphQlOperationId(graphqlOperation) === graphqlOperationId
1408786
+ );
1408787
+ return found ? [found] : [];
1408788
+ }
1408160
1408789
  };
1408161
1408790
  function pruneVersionNode(node3, rootSlug, versionSlug) {
1408162
1408791
  if (node3 == null) {
@@ -1408190,6 +1408819,8 @@ __export2(v1_exports4, {
1408190
1408819
  EndpointPathLiteral: () => EndpointPathLiteral,
1408191
1408820
  EnvironmentId: () => EnvironmentId,
1408192
1408821
  FileId: () => FileId,
1408822
+ GraphQlOperationId: () => GraphQlOperationId,
1408823
+ GraphQlOperationType: () => GraphQlOperationType5,
1408193
1408824
  GrpcId: () => GrpcId,
1408194
1408825
  GrpcMethod: () => GrpcMethod,
1408195
1408826
  HttpMethod: () => HttpMethod,
@@ -1408578,6 +1409209,7 @@ var ApiReferenceNavigationConverter = class _ApiReferenceNavigationConverter {
1408578
1409209
  #visitedWebSockets = /* @__PURE__ */ new Set();
1408579
1409210
  #visitedWebhooks = /* @__PURE__ */ new Set();
1408580
1409211
  #visitedGrpcs = /* @__PURE__ */ new Set();
1409212
+ #visitedGraphqlOperations = /* @__PURE__ */ new Set();
1408581
1409213
  #visitedSubpackages = /* @__PURE__ */ new Set();
1408582
1409214
  #idgen;
1408583
1409215
  convert() {
@@ -1408714,6 +1409346,25 @@ var ApiReferenceNavigationConverter = class _ApiReferenceNavigationConverter {
1408714
1409346
  featureFlags: void 0
1408715
1409347
  }));
1408716
1409348
  }
1409349
+ convertGraphQlNode(graphqlOperationId, graphqlOperation, parentSlug) {
1409350
+ return this.#idgen.with(graphqlOperationId, (id2) => ({
1409351
+ id: id2,
1409352
+ type: "graphql",
1409353
+ title: graphqlOperation.displayName ?? graphqlOperation.name,
1409354
+ graphqlOperationId,
1409355
+ slug: parentSlug.apply({ urlSlug: graphqlOperation.name }).get(),
1409356
+ icon: void 0,
1409357
+ hidden: void 0,
1409358
+ operationType: graphqlOperation.operationType,
1409359
+ apiDefinitionId: this.apiDefinitionId,
1409360
+ availability: navigation_exports2.V1.convertAvailability(graphqlOperation.availability),
1409361
+ playground: void 0,
1409362
+ authed: void 0,
1409363
+ viewers: void 0,
1409364
+ orphaned: void 0,
1409365
+ featureFlags: void 0
1409366
+ }));
1409367
+ }
1408717
1409368
  convertPackageToChildren(package_, parentSlug) {
1408718
1409369
  const children2 = [];
1408719
1409370
  let subpackageId = isSubpackage2(package_) ? package_.subpackageId : "__package__";
@@ -1408761,6 +1409412,14 @@ var ApiReferenceNavigationConverter = class _ApiReferenceNavigationConverter {
1408761
1409412
  children2.push(this.convertWebhookNode(webhookId, webhook, parentSlug));
1408762
1409413
  this.#visitedWebhooks.add(webhookId);
1408763
1409414
  });
1409415
+ package_.graphqlOperations.forEach((graphqlOperation) => {
1409416
+ const graphqlOperationId = ApiDefinitionHolder.createGraphQlOperationId(graphqlOperation);
1409417
+ if (this.#visitedGraphqlOperations.has(graphqlOperationId)) {
1409418
+ return;
1409419
+ }
1409420
+ children2.push(this.convertGraphQlNode(graphqlOperationId, graphqlOperation, parentSlug));
1409421
+ this.#visitedGraphqlOperations.add(graphqlOperationId);
1409422
+ });
1408764
1409423
  package_.subpackages.forEach((subpackageId2) => {
1408765
1409424
  const subpackage = this.api.subpackages[subpackageId2];
1408766
1409425
  if (subpackage == null) {
@@ -1409425,6 +1410084,7 @@ function followRedirect(nodeToFollow) {
1409425
1410084
  webSocket: (node3) => node3.slug,
1409426
1410085
  webhook: (node3) => node3.slug,
1409427
1410086
  grpc: (node3) => node3.slug,
1410087
+ graphql: (node3) => node3.slug,
1409428
1410088
  landingPage: (node3) => node3.slug,
1409429
1410089
  // nodes with overview
1409430
1410090
  apiPackage: (node3) => node3.overviewPageId != null ? node3.slug : followRedirects(node3.children),
@@ -1409476,12 +1410136,13 @@ function getPageId2(node3) {
1409476
1410136
  webSocket: RETURN_UNDEFINED2,
1409477
1410137
  webhook: RETURN_UNDEFINED2,
1409478
1410138
  grpc: RETURN_UNDEFINED2,
1410139
+ graphql: RETURN_UNDEFINED2,
1409479
1410140
  changelogYear: RETURN_UNDEFINED2,
1409480
1410141
  changelogMonth: RETURN_UNDEFINED2
1409481
1410142
  });
1409482
1410143
  }
1409483
1410144
  function isApiLeaf2(node3) {
1409484
- return node3.type === "endpoint" || node3.type === "webSocket" || node3.type === "webhook" || node3.type === "grpc";
1410145
+ return node3.type === "endpoint" || node3.type === "webSocket" || node3.type === "webhook" || node3.type === "grpc" || node3.type === "graphql";
1409485
1410146
  }
1409486
1410147
  function isMarkdownLeaf2(node3) {
1409487
1410148
  return node3.type === "page" || node3.type === "landingPage" || node3.type === "changelogEntry";
@@ -1410396,6 +1411057,33 @@ var FernNavigationV1ToLatest = class _FernNavigationV1ToLatest {
1410396
1411057
  };
1410397
1411058
  return latest2;
1410398
1411059
  };
1411060
+ graphql = (node3, parents) => {
1411061
+ const apiDisambiguation = this.#createApiDisambiguationKey(parents);
1411062
+ const slug = navigation_exports2.Slug(node3.slug);
1411063
+ const canonicalSlug = this.#getAndSetCanonicalSlug(
1411064
+ [`${apiDisambiguation}:api:graphql:${node3.id}`, this.#createTitleDisambiguationKey(node3, parents)],
1411065
+ slug
1411066
+ );
1411067
+ const latest2 = {
1411068
+ type: "graphql",
1411069
+ id: navigation_exports2.NodeId(node3.id),
1411070
+ title: node3.title,
1411071
+ slug,
1411072
+ canonicalSlug,
1411073
+ icon: node3.icon,
1411074
+ hidden: node3.hidden,
1411075
+ authed: node3.authed,
1411076
+ apiDefinitionId: node3.apiDefinitionId,
1411077
+ graphqlOperationId: node3.graphqlOperationId,
1411078
+ operationType: node3.operationType,
1411079
+ playground: node3.playground,
1411080
+ availability: this.#availability(node3.availability),
1411081
+ viewers: node3.viewers,
1411082
+ orphaned: node3.orphaned,
1411083
+ featureFlags: node3.featureFlags
1411084
+ };
1411085
+ return latest2;
1411086
+ };
1410399
1411087
  #variantChild = (child, parents) => {
1410400
1411088
  return visitDiscriminatedUnion_default(child)._visit({
1410401
1411089
  apiReference: (value) => this.apiReference(value, parents),
@@ -1410425,7 +1411113,8 @@ var FernNavigationV1ToLatest = class _FernNavigationV1ToLatest {
1410425
1411113
  endpointPair: (value) => this.endpointPair(value, parents),
1410426
1411114
  webSocket: (value) => this.webSocket(value, parents),
1410427
1411115
  webhook: (value) => this.webhook(value, parents),
1410428
- grpc: (value) => this.grpc(value, parents)
1411116
+ grpc: (value) => this.grpc(value, parents),
1411117
+ graphql: (value) => this.graphql(value, parents)
1410429
1411118
  });
1410430
1411119
  };
1410431
1411120
  /**
@@ -1410795,6 +1411484,7 @@ function getApiReferenceId(node3) {
1410795
1411484
  webSocket: RETURN_API_DEFINITION_ID,
1410796
1411485
  webhook: RETURN_API_DEFINITION_ID,
1410797
1411486
  grpc: RETURN_API_DEFINITION_ID,
1411487
+ graphql: RETURN_API_DEFINITION_ID,
1410798
1411488
  apiPackage: RETURN_API_DEFINITION_ID,
1410799
1411489
  unversioned: RETURN_UNDEFINED3,
1410800
1411490
  landingPage: RETURN_UNDEFINED3
@@ -1429451,7 +1430141,7 @@ var AccessTokenPosthogManager = class {
1429451
1430141
  properties: {
1429452
1430142
  ...event,
1429453
1430143
  ...event.properties,
1429454
- version: "3.48.2",
1430144
+ version: "3.48.3",
1429455
1430145
  usingAccessToken: true
1429456
1430146
  }
1429457
1430147
  });
@@ -1429550,7 +1430240,7 @@ var UserPosthogManager = class {
1429550
1430240
  distinctId: this.userId ?? await this.getPersistedDistinctId(),
1429551
1430241
  event: "CLI",
1429552
1430242
  properties: {
1429553
- version: "3.48.2",
1430243
+ version: "3.48.3",
1429554
1430244
  ...event,
1429555
1430245
  ...event.properties,
1429556
1430246
  usingAccessToken: false,
@@ -1502915,6 +1503605,9 @@ var AbstractMediaTypeObjectConverter = class extends AbstractConverter {
1502915
1503605
  /**
1502916
1503606
  * Determines the unique identifier for an example, handling duplicate summary collisions.
1502917
1503607
  * Uses the summary if available, disambiguating with key if there's a collision.
1503608
+ *
1503609
+ * This is used for OpenAPI request/response body examples which use the standard
1503610
+ * 'summary' field where collisions are more likely.
1502918
1503611
  */
1502919
1503612
  getIdForExample({ key, example, usedExampleNames }) {
1502920
1503613
  if (this.context.isExampleWithSummary(example)) {
@@ -1508976,7 +1509669,7 @@ var CliContext = class {
1508976
1509669
  if (false) {
1508977
1509670
  this.logger.error("CLI_VERSION is not defined");
1508978
1509671
  }
1508979
- return "3.48.2";
1509672
+ return "3.48.3";
1508980
1509673
  }
1508981
1509674
  getCliName() {
1508982
1509675
  if (false) {
@@ -1557312,6 +1558005,13 @@ var OperationConverter = class _OperationConverter extends AbstractOperationConv
1557312
1558005
  ];
1557313
1558006
  }));
1557314
1558007
  }
1558008
+ /**
1558009
+ * Gets the example name from x-fern-examples extension.
1558010
+ *
1558011
+ * Note: This uses the 'name' field directly without collision
1558012
+ * disambiguation. This is intentional because x-fern-examples is a
1558013
+ * Fern-specific extension where users explicitly provide unique names.
1558014
+ */
1557315
1558015
  getExampleName({ example, exampleIndex }) {
1557316
1558016
  return example.name ?? example["code-samples"]?.[0]?.name ?? `Example_${exampleIndex}`;
1557317
1558017
  }
@@ -1598037,7 +1598737,8 @@ function convertAuthScheme({ scheme, playgroundConfig, context: context2 }) {
1598037
1598737
  type: "basicAuth",
1598038
1598738
  passwordName: scheme.password.originalName,
1598039
1598739
  usernameName: scheme.username.originalName,
1598040
- description: scheme.docs
1598740
+ description: scheme.docs,
1598741
+ passwordAlwaysEmpty: void 0
1598041
1598742
  };
1598042
1598743
  case "bearer":
1598043
1598744
  return {
@@ -1598481,26 +1599182,29 @@ function convertPackage(irPackage, ir14) {
1598481
1599182
  websockets: websocket != null ? [convertWebSocketChannel(websocket, ir14)] : [],
1598482
1599183
  types: irPackage.types.map((typeId) => FdrAPI_exports.TypeId(typeId)),
1598483
1599184
  subpackages: irPackage.subpackages.map((subpackageId) => FdrAPI_exports.api.v1.SubpackageId(subpackageId)),
1598484
- pointsTo: irPackage.navigationConfig != null ? FdrAPI_exports.api.v1.SubpackageId(irPackage.navigationConfig.pointsTo) : void 0
1599185
+ pointsTo: irPackage.navigationConfig != null ? FdrAPI_exports.api.v1.SubpackageId(irPackage.navigationConfig.pointsTo) : void 0,
1599186
+ graphqlOperations: void 0
1598485
1599187
  };
1598486
1599188
  }
1598487
1599189
  function convertWebhookGroup2(webhookGroup) {
1598488
1599190
  return webhookGroup.map((webhook) => {
1598489
1599191
  const webhookExamples = [];
1598490
1599192
  if (webhook.v2Examples != null) {
1598491
- for (const [_exampleName, example] of Object.entries(webhook.v2Examples.userSpecifiedExamples)) {
1599193
+ for (const [exampleName, example] of Object.entries(webhook.v2Examples.userSpecifiedExamples)) {
1598492
1599194
  webhookExamples.push({
1599195
+ name: example.name ?? exampleName,
1598493
1599196
  payload: example.payload
1598494
1599197
  });
1598495
1599198
  }
1598496
- for (const [_exampleName, example] of Object.entries(webhook.v2Examples.autogeneratedExamples)) {
1599199
+ for (const [exampleName, example] of Object.entries(webhook.v2Examples.autogeneratedExamples)) {
1598497
1599200
  webhookExamples.push({
1599201
+ name: example.name ?? exampleName,
1598498
1599202
  payload: example.payload
1598499
1599203
  });
1598500
1599204
  }
1598501
1599205
  } else {
1598502
1599206
  webhookExamples.push(...webhook.examples?.map((example) => {
1598503
- return { payload: example.payload.jsonExample };
1599207
+ return { name: example.name?.originalName, payload: example.payload.jsonExample };
1598504
1599208
  }) ?? []);
1598505
1599209
  }
1598506
1599210
  return {
@@ -1610166,7 +1610870,7 @@ var import_path40 = __toESM(require("path"), 1);
1610166
1610870
  var LOCAL_STORAGE_FOLDER4 = ".fern-dev";
1610167
1610871
  var LOGS_FOLDER_NAME = "logs";
1610168
1610872
  function getCliSource() {
1610169
- const version7 = "3.48.2";
1610873
+ const version7 = "3.48.3";
1610170
1610874
  return `cli@${version7}`;
1610171
1610875
  }
1610172
1610876
  var DebugLogger = class {