@fern-api/fdr-sdk 1.2.92-bd650af30b → 1.2.93-80ac90df5f

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 (57) hide show
  1. package/dist/js/api-definition/index.js +6 -3
  2. package/dist/js/api-definition/index.js.map +1 -1
  3. package/dist/js/api-definition/index.mjs +6 -3
  4. package/dist/js/api-definition/index.mjs.map +1 -1
  5. package/dist/js/client/FdrClient.js +156 -9
  6. package/dist/js/client/FdrClient.js.map +1 -1
  7. package/dist/js/client/FdrClient.mjs +156 -9
  8. package/dist/js/client/FdrClient.mjs.map +1 -1
  9. package/dist/js/client/types.js +6 -3
  10. package/dist/js/client/types.js.map +1 -1
  11. package/dist/js/client/types.mjs +6 -3
  12. package/dist/js/client/types.mjs.map +1 -1
  13. package/dist/js/converters/index.js +10 -5
  14. package/dist/js/converters/index.js.map +1 -1
  15. package/dist/js/converters/index.mjs +10 -5
  16. package/dist/js/converters/index.mjs.map +1 -1
  17. package/dist/js/index.js +160 -11
  18. package/dist/js/index.js.map +1 -1
  19. package/dist/js/index.mjs +160 -11
  20. package/dist/js/index.mjs.map +1 -1
  21. package/dist/js/navigation/index.js +8 -4
  22. package/dist/js/navigation/index.js.map +1 -1
  23. package/dist/js/navigation/index.mjs +8 -4
  24. package/dist/js/navigation/index.mjs.map +1 -1
  25. package/dist/js/orpc-client.js +166 -11
  26. package/dist/js/orpc-client.js.map +1 -1
  27. package/dist/js/orpc-client.mjs +161 -10
  28. package/dist/js/orpc-client.mjs.map +1 -1
  29. package/dist/types/api-definition/migrators/v1ToV2.d.ts.map +1 -1
  30. package/dist/types/converters/__test__/websocket-explorer-round-trip.test.d.ts +2 -0
  31. package/dist/types/converters/__test__/websocket-explorer-round-trip.test.d.ts.map +1 -0
  32. package/dist/types/converters/db/convertAPIDefinitionToDb.d.ts.map +1 -1
  33. package/dist/types/converters/read/convertDbAPIDefinitionToRead.d.ts +2 -0
  34. package/dist/types/converters/read/convertDbAPIDefinitionToRead.d.ts.map +1 -1
  35. package/dist/types/navigation/utils/toApis.d.ts +1 -0
  36. package/dist/types/navigation/utils/toApis.d.ts.map +1 -1
  37. package/dist/types/orpc-client/api/contract-db.d.ts +24 -0
  38. package/dist/types/orpc-client/api/contract-db.d.ts.map +1 -1
  39. package/dist/types/orpc-client/api/contract-latest.d.ts +13 -0
  40. package/dist/types/orpc-client/api/contract-latest.d.ts.map +1 -1
  41. package/dist/types/orpc-client/api/contract-read.d.ts +27 -0
  42. package/dist/types/orpc-client/api/contract-read.d.ts.map +1 -1
  43. package/dist/types/orpc-client/api/contract-register.d.ts +27 -0
  44. package/dist/types/orpc-client/api/contract-register.d.ts.map +1 -1
  45. package/dist/types/orpc-client/dashboard-agent/contract.d.ts +94 -0
  46. package/dist/types/orpc-client/dashboard-agent/contract.d.ts.map +1 -1
  47. package/dist/types/orpc-client/docs/v2/library-docs/__test__/doxyfile.test.d.ts +2 -0
  48. package/dist/types/orpc-client/docs/v2/library-docs/__test__/doxyfile.test.d.ts.map +1 -0
  49. package/dist/types/orpc-client/docs/v2/library-docs/contract.d.ts +9 -3
  50. package/dist/types/orpc-client/docs/v2/library-docs/contract.d.ts.map +1 -1
  51. package/dist/types/orpc-client/docs/v2/library-docs/doxyfile.d.ts +32 -0
  52. package/dist/types/orpc-client/docs/v2/library-docs/doxyfile.d.ts.map +1 -0
  53. package/dist/types/orpc-client/docs/v2/library-docs/index.d.ts +1 -0
  54. package/dist/types/orpc-client/docs/v2/library-docs/index.d.ts.map +1 -1
  55. package/dist/types/orpc-client/docs-deployment/contract.d.ts +8 -0
  56. package/dist/types/orpc-client/docs-deployment/contract.d.ts.map +1 -1
  57. package/package.json +1 -1
@@ -92,6 +92,7 @@ __export(orpc_client_exports, {
92
92
  CurrentVersionInputSchema: () => CurrentVersionInputSchema,
93
93
  CurrentVersionResponseSchema: () => CurrentVersionResponseSchema,
94
94
  CustomSnippetPayloadSchema: () => CustomSnippetPayloadSchema,
95
+ DOXYFILE_ALLOWED_KEYS: () => DOXYFILE_ALLOWED_KEYS,
95
96
  DashboardAnalyticsCommonInputSchema: () => DashboardAnalyticsCommonInputSchema,
96
97
  DashboardDocsSiteSchema: () => DashboardDocsSiteSchema,
97
98
  DashboardFeedbackInputSchema: () => DashboardFeedbackInputSchema,
@@ -386,6 +387,7 @@ __export(orpc_client_exports, {
386
387
  LoadDocsForUrlResponseSchema: () => LoadDocsForUrlResponseSchema,
387
388
  LocaleEntrySchema: () => LocaleEntrySchema,
388
389
  LongTypeSchema: () => LongTypeSchema,
390
+ MAX_DOXYFILE_CONTENT_LENGTH: () => MAX_DOXYFILE_CONTENT_LENGTH,
389
391
  ManifestApiDefSchema: () => ManifestApiDefSchema,
390
392
  ManifestBlobRefSchema: () => ManifestBlobRefSchema,
391
393
  ManifestFileSchema: () => ManifestFileSchema,
@@ -524,6 +526,7 @@ __export(orpc_client_exports, {
524
526
  RouteContextInputSchema: () => RouteContextInputSchema,
525
527
  RouteContextResponseSchema: () => RouteContextResponseSchema,
526
528
  RubyGemSchema: () => RubyGemSchema,
529
+ SafeDoxyfileContentSchema: () => SafeDoxyfileContentSchema,
527
530
  ScalarTypeSchema: () => ScalarTypeSchema,
528
531
  ScriptSchema: () => ScriptSchema,
529
532
  SdkDynamicIrDownloadSchema: () => SdkDynamicIrDownloadSchema,
@@ -677,7 +680,8 @@ __export(orpc_client_exports, {
677
680
  snippetsFactoryContract: () => snippetsFactoryContract,
678
681
  stableStringify: () => stableStringify,
679
682
  templatesContract: () => templatesContract,
680
- tokensContract: () => tokensContract
683
+ tokensContract: () => tokensContract,
684
+ validateDoxyfileContent: () => validateDoxyfileContent
681
685
  });
682
686
  module.exports = __toCommonJS(orpc_client_exports);
683
687
  var import_client47 = require("@orpc/client");
@@ -1560,7 +1564,8 @@ var RegisterWebSocketChannelSchema = z3.object({
1560
1564
  headers: z3.array(HeaderSchema),
1561
1565
  queryParameters: z3.array(QueryParameterSchema),
1562
1566
  messages: z3.array(WebSocketMessageSchema),
1563
- examples: z3.array(ExampleWebSocketSessionSchema)
1567
+ examples: z3.array(ExampleWebSocketSessionSchema),
1568
+ includeInApiExplorer: z3.boolean().nullish()
1564
1569
  });
1565
1570
  var SourceIdSchema = z3.string();
1566
1571
  function SourceId(value) {
@@ -2164,7 +2169,8 @@ var LatestWebSocketChannelSchema = z4.object({
2164
2169
  pathParameters: z4.array(LatestParameterPropertySchema).nullish(),
2165
2170
  queryParameters: z4.array(LatestParameterPropertySchema).nullish(),
2166
2171
  requestHeaders: z4.array(LatestObjectPropertySchema).nullish(),
2167
- examples: z4.array(LatestExampleWebSocketSessionSchema).nullish()
2172
+ examples: z4.array(LatestExampleWebSocketSessionSchema).nullish(),
2173
+ includeInApiExplorer: z4.boolean().nullish()
2168
2174
  });
2169
2175
  var LatestSubpackageMetadataSchema = z4.object({
2170
2176
  id: SubpackageIdSchema,
@@ -2412,7 +2418,8 @@ var ReadWebSocketChannelSchema = z5.object({
2412
2418
  headers: z5.array(HeaderSchema),
2413
2419
  queryParameters: z5.array(QueryParameterSchema),
2414
2420
  messages: z5.array(WebSocketMessageSchema),
2415
- examples: z5.array(ExampleWebSocketSessionSchema)
2421
+ examples: z5.array(ExampleWebSocketSessionSchema),
2422
+ includeInApiExplorer: z5.boolean().nullish()
2416
2423
  });
2417
2424
  var ReadApiDefinitionPackageSchema = z5.object({
2418
2425
  endpoints: z5.array(ReadEndpointDefinitionSchema),
@@ -2697,7 +2704,9 @@ var GetDocsStatusResponseSchema = z8.object({
2697
2704
  });
2698
2705
  var GetDocsDeploymentsResponseSchema = z8.object({
2699
2706
  deployments: z8.array(DocsDeploymentSchema),
2700
- hasMore: z8.boolean()
2707
+ hasMore: z8.boolean(),
2708
+ /** Pass back as `cursor` to fetch the next page. Absent when `hasMore` is false. */
2709
+ nextCursor: z8.string().optional()
2701
2710
  });
2702
2711
  var CreateDeploymentResponseSchema = z8.object({
2703
2712
  deploymentId: z8.string()
@@ -2855,7 +2864,9 @@ var DashboardFeedbackInputSchema = z10.object({
2855
2864
  domain: z10.string().min(1),
2856
2865
  dateRange: z10.string().optional(),
2857
2866
  feedbackType: z10.enum(["page", "code_block", "all"]).optional(),
2858
- limit: z10.number().int().min(1).max(50).optional()
2867
+ limit: z10.number().int().min(1).max(50).optional(),
2868
+ /** `nextCursor` from a previous page; continues that page's ordering. */
2869
+ cursor: z10.string().optional()
2859
2870
  });
2860
2871
  var DashboardListOrgMembersInputSchema = z10.object({
2861
2872
  orgId: z10.string(),
@@ -2914,20 +2925,37 @@ var LlmBotTrafficResponseSchema = z10.object({
2914
2925
  });
2915
2926
  var RecentFeedbackResponseSchema = z10.object({
2916
2927
  resolvedDateRange: ResolvedDateRangeSchema,
2928
+ /**
2929
+ * Vote counts over the whole date range, not just the returned page, and over page
2930
+ * feedback only: code-block reports carry no helpful/unhelpful vote and are counted
2931
+ * by `codeBlockCount` instead.
2932
+ */
2917
2933
  helpfulCount: z10.number(),
2918
2934
  unhelpfulCount: z10.number(),
2935
+ codeBlockCount: z10.number(),
2936
+ /** Entries matching the filters over the whole date range. */
2937
+ totalCount: z10.number(),
2919
2938
  entries: z10.array(
2920
2939
  z10.object({
2921
2940
  date: z10.string(),
2922
2941
  location: z10.string(),
2942
+ /** Always false for code-block reports, which carry no vote. */
2923
2943
  wasHelpful: z10.boolean(),
2924
2944
  userFeedback: z10.string(),
2925
2945
  feedbackType: z10.string().optional(),
2926
2946
  /** URL of the docs page the feedback was submitted on. */
2927
- url: z10.string().optional()
2947
+ url: z10.string().optional(),
2948
+ /** What the reader selected on the page, for page feedback. */
2949
+ selection: z10.string().optional(),
2950
+ /** Language of the code block a code-block report was filed against. */
2951
+ language: z10.string().optional(),
2952
+ /** The reported code block, truncated. */
2953
+ code: z10.string().optional()
2928
2954
  })
2929
2955
  ),
2930
- hasMore: z10.boolean()
2956
+ hasMore: z10.boolean(),
2957
+ /** Pass back as `cursor` to fetch the next page. Absent when `hasMore` is false. */
2958
+ nextCursor: z10.string().optional()
2931
2959
  });
2932
2960
  var QueryAnalyticsResponseSchema = z10.object({
2933
2961
  resolvedDateRange: ResolvedDateRangeSchema,
@@ -2942,7 +2970,11 @@ var QueryAnalyticsResponseSchema = z10.object({
2942
2970
  visitors: z10.number().optional(),
2943
2971
  sessions: z10.number().optional()
2944
2972
  })
2945
- )
2973
+ ),
2974
+ /** The row cap the query ran with, after clamping. */
2975
+ limit: z10.number(),
2976
+ /** True when the metric had more rows than `limit`, so `rows` is a truncated ranking. */
2977
+ hasMore: z10.boolean()
2946
2978
  });
2947
2979
  var OrgMembersResponseSchema = z10.object({
2948
2980
  members: z10.array(
@@ -3829,6 +3861,120 @@ var import_fetch5 = require("@orpc/openapi-client/fetch");
3829
3861
  // src/orpc-client/docs/v2/library-docs/contract.ts
3830
3862
  var import_contract10 = require("@orpc/contract");
3831
3863
  var z15 = __toESM(require("zod"), 1);
3864
+
3865
+ // src/orpc-client/docs/v2/library-docs/doxyfile.ts
3866
+ var MAX_DOXYFILE_CONTENT_LENGTH = 262144;
3867
+ var SETTING_LINE_RE = /^\s*([A-Z][A-Z0-9_]*)\s*(\+?=)(.*)$/;
3868
+ var AT_DIRECTIVE_RE = /^\s*@[A-Z_]+\b/;
3869
+ var BOOL_RE = /^(?:YES|NO)$/i;
3870
+ var FILE_PATTERN_RE = /^[A-Za-z0-9_.*?+-]+$/;
3871
+ var PREDEFINED_RE = /^[A-Za-z_][A-Za-z0-9_]*(?:\([A-Za-z0-9_,. ]*\))?(?::?=.*)?$/;
3872
+ var ALIAS_DEF_RE = /^\w+(?:\{\d+\})?=/;
3873
+ var DOXYFILE_ALLOWED_KEYS = {
3874
+ ALIASES: (value) => ALIAS_DEF_RE.test(value),
3875
+ PREDEFINED: (value) => PREDEFINED_RE.test(value),
3876
+ FILE_PATTERNS: (value) => FILE_PATTERN_RE.test(value),
3877
+ OPTIMIZE_OUTPUT_FOR_C: (value) => BOOL_RE.test(value)
3878
+ };
3879
+ function joinContinuations(text) {
3880
+ const logical = [];
3881
+ let buffer = "";
3882
+ for (const rawLine of text.split(/\r?\n/)) {
3883
+ const line = rawLine.replace(/\s+$/, "");
3884
+ if (line.endsWith("\\") && !line.endsWith("\\\\")) {
3885
+ buffer += `${line.slice(0, -1)} `;
3886
+ continue;
3887
+ }
3888
+ buffer += line;
3889
+ logical.push(buffer);
3890
+ buffer = "";
3891
+ }
3892
+ if (buffer) {
3893
+ logical.push(buffer);
3894
+ }
3895
+ return logical;
3896
+ }
3897
+ function tokenizeValue(value) {
3898
+ const tokens = [];
3899
+ let i = 0;
3900
+ const n = value.length;
3901
+ while (i < n) {
3902
+ const ch = value[i];
3903
+ if (/\s/.test(ch ?? "")) {
3904
+ i++;
3905
+ continue;
3906
+ }
3907
+ if (ch === '"') {
3908
+ i++;
3909
+ let buf = "";
3910
+ while (i < n) {
3911
+ const c = value[i];
3912
+ if (c === "\\" && i + 1 < n && value[i + 1] === '"') {
3913
+ buf += '"';
3914
+ i += 2;
3915
+ continue;
3916
+ }
3917
+ if (c === '"') {
3918
+ i++;
3919
+ break;
3920
+ }
3921
+ buf += c;
3922
+ i++;
3923
+ }
3924
+ tokens.push(buf);
3925
+ } else {
3926
+ let j = i;
3927
+ while (j < n && !/\s/.test(value[j] ?? "")) {
3928
+ j++;
3929
+ }
3930
+ tokens.push(value.slice(i, j));
3931
+ i = j;
3932
+ }
3933
+ }
3934
+ return tokens;
3935
+ }
3936
+ function validateDoxyfileContent(content) {
3937
+ const errors = [];
3938
+ const droppedKeys = [];
3939
+ if (content.length > MAX_DOXYFILE_CONTENT_LENGTH) {
3940
+ errors.push(`doxyfileContent exceeds ${MAX_DOXYFILE_CONTENT_LENGTH} characters`);
3941
+ return { errors, droppedKeys };
3942
+ }
3943
+ for (const line of joinContinuations(content)) {
3944
+ const stripped = line.trim();
3945
+ if (!stripped || stripped.startsWith("#")) {
3946
+ continue;
3947
+ }
3948
+ if (AT_DIRECTIVE_RE.test(stripped)) {
3949
+ const directive = stripped.split(/\s+/)[0] ?? stripped;
3950
+ if (!droppedKeys.includes(directive)) {
3951
+ droppedKeys.push(directive);
3952
+ }
3953
+ continue;
3954
+ }
3955
+ const match = SETTING_LINE_RE.exec(line);
3956
+ if (match == null) {
3957
+ continue;
3958
+ }
3959
+ const key = match[1] ?? "";
3960
+ const rawValue = match[3] ?? "";
3961
+ const validator = DOXYFILE_ALLOWED_KEYS[key];
3962
+ if (validator == null) {
3963
+ if (!droppedKeys.includes(key)) {
3964
+ droppedKeys.push(key);
3965
+ }
3966
+ continue;
3967
+ }
3968
+ for (const token of tokenizeValue(rawValue)) {
3969
+ if (token.endsWith("\\") || token.includes("$(") || !validator(token)) {
3970
+ errors.push(`Invalid value for Doxyfile setting ${key}: ${JSON.stringify(token)}`);
3971
+ }
3972
+ }
3973
+ }
3974
+ return { errors, droppedKeys };
3975
+ }
3976
+
3977
+ // src/orpc-client/docs/v2/library-docs/contract.ts
3832
3978
  var ALLOWED_HOSTNAMES = /* @__PURE__ */ new Set(["github.com", "gitlab.com"]);
3833
3979
  var GithubUrlSchema = z15.string().url().describe(
3834
3980
  "HTTPS URL of a GitHub or GitLab repository. Currently only github.com and gitlab.com are supported. Must match the pattern https://github.com/<owner>/<repo> or https://gitlab.com/<owner>/<repo>."
@@ -3863,8 +4009,13 @@ var LibraryDocsBaseConfigSchema = z15.object({
3863
4009
  slug: z15.string().nullish()
3864
4010
  });
3865
4011
  var PythonLibraryDocsConfigSchema = LibraryDocsBaseConfigSchema;
4012
+ var SafeDoxyfileContentSchema = z15.string().superRefine((content, ctx) => {
4013
+ for (const error of validateDoxyfileContent(content).errors) {
4014
+ ctx.addIssue({ code: z15.ZodIssueCode.custom, message: error });
4015
+ }
4016
+ }).nullish();
3866
4017
  var CppLibraryDocsConfigSchema = LibraryDocsBaseConfigSchema.extend({
3867
- doxyfileContent: z15.string().nullish()
4018
+ doxyfileContent: SafeDoxyfileContentSchema
3868
4019
  });
3869
4020
  var StartLibraryDocsGenerationInputSchema = z15.discriminatedUnion("language", [
3870
4021
  z15.object({
@@ -7096,6 +7247,7 @@ var UpsertThemeBodySchema = z37.object({
7096
7247
  CurrentVersionInputSchema,
7097
7248
  CurrentVersionResponseSchema,
7098
7249
  CustomSnippetPayloadSchema,
7250
+ DOXYFILE_ALLOWED_KEYS,
7099
7251
  DashboardAnalyticsCommonInputSchema,
7100
7252
  DashboardDocsSiteSchema,
7101
7253
  DashboardFeedbackInputSchema,
@@ -7390,6 +7542,7 @@ var UpsertThemeBodySchema = z37.object({
7390
7542
  LoadDocsForUrlResponseSchema,
7391
7543
  LocaleEntrySchema,
7392
7544
  LongTypeSchema,
7545
+ MAX_DOXYFILE_CONTENT_LENGTH,
7393
7546
  ManifestApiDefSchema,
7394
7547
  ManifestBlobRefSchema,
7395
7548
  ManifestFileSchema,
@@ -7528,6 +7681,7 @@ var UpsertThemeBodySchema = z37.object({
7528
7681
  RouteContextInputSchema,
7529
7682
  RouteContextResponseSchema,
7530
7683
  RubyGemSchema,
7684
+ SafeDoxyfileContentSchema,
7531
7685
  ScalarTypeSchema,
7532
7686
  ScriptSchema,
7533
7687
  SdkDynamicIrDownloadSchema,
@@ -7681,6 +7835,7 @@ var UpsertThemeBodySchema = z37.object({
7681
7835
  snippetsFactoryContract,
7682
7836
  stableStringify,
7683
7837
  templatesContract,
7684
- tokensContract
7838
+ tokensContract,
7839
+ validateDoxyfileContent
7685
7840
  });
7686
7841
  //# sourceMappingURL=orpc-client.js.map