@fern-api/fdr-sdk 1.2.93-9d4e38f080 → 1.2.94-cdc1690f8b

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 (33) hide show
  1. package/dist/js/client/FdrClient.js +150 -6
  2. package/dist/js/client/FdrClient.js.map +1 -1
  3. package/dist/js/client/FdrClient.mjs +150 -6
  4. package/dist/js/client/FdrClient.mjs.map +1 -1
  5. package/dist/js/client/types.js.map +1 -1
  6. package/dist/js/client/types.mjs.map +1 -1
  7. package/dist/js/converters/index.js.map +1 -1
  8. package/dist/js/converters/index.mjs.map +1 -1
  9. package/dist/js/index.js +150 -6
  10. package/dist/js/index.js.map +1 -1
  11. package/dist/js/index.mjs +150 -6
  12. package/dist/js/index.mjs.map +1 -1
  13. package/dist/js/navigation/index.js.map +1 -1
  14. package/dist/js/navigation/index.mjs.map +1 -1
  15. package/dist/js/orpc-client.js +160 -8
  16. package/dist/js/orpc-client.js.map +1 -1
  17. package/dist/js/orpc-client.mjs +155 -7
  18. package/dist/js/orpc-client.mjs.map +1 -1
  19. package/dist/types/client/libraryDocs.d.ts +5 -0
  20. package/dist/types/client/libraryDocs.d.ts.map +1 -1
  21. package/dist/types/orpc-client/dashboard-agent/contract.d.ts +94 -0
  22. package/dist/types/orpc-client/dashboard-agent/contract.d.ts.map +1 -1
  23. package/dist/types/orpc-client/docs/v2/library-docs/__test__/doxyfile.test.d.ts +2 -0
  24. package/dist/types/orpc-client/docs/v2/library-docs/__test__/doxyfile.test.d.ts.map +1 -0
  25. package/dist/types/orpc-client/docs/v2/library-docs/contract.d.ts +9 -3
  26. package/dist/types/orpc-client/docs/v2/library-docs/contract.d.ts.map +1 -1
  27. package/dist/types/orpc-client/docs/v2/library-docs/doxyfile.d.ts +32 -0
  28. package/dist/types/orpc-client/docs/v2/library-docs/doxyfile.d.ts.map +1 -0
  29. package/dist/types/orpc-client/docs/v2/library-docs/index.d.ts +1 -0
  30. package/dist/types/orpc-client/docs/v2/library-docs/index.d.ts.map +1 -1
  31. package/dist/types/orpc-client/docs-deployment/contract.d.ts +8 -0
  32. package/dist/types/orpc-client/docs-deployment/contract.d.ts.map +1 -1
  33. 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");
@@ -2700,7 +2704,9 @@ var GetDocsStatusResponseSchema = z8.object({
2700
2704
  });
2701
2705
  var GetDocsDeploymentsResponseSchema = z8.object({
2702
2706
  deployments: z8.array(DocsDeploymentSchema),
2703
- 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()
2704
2710
  });
2705
2711
  var CreateDeploymentResponseSchema = z8.object({
2706
2712
  deploymentId: z8.string()
@@ -2858,7 +2864,9 @@ var DashboardFeedbackInputSchema = z10.object({
2858
2864
  domain: z10.string().min(1),
2859
2865
  dateRange: z10.string().optional(),
2860
2866
  feedbackType: z10.enum(["page", "code_block", "all"]).optional(),
2861
- 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()
2862
2870
  });
2863
2871
  var DashboardListOrgMembersInputSchema = z10.object({
2864
2872
  orgId: z10.string(),
@@ -2917,20 +2925,37 @@ var LlmBotTrafficResponseSchema = z10.object({
2917
2925
  });
2918
2926
  var RecentFeedbackResponseSchema = z10.object({
2919
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
+ */
2920
2933
  helpfulCount: z10.number(),
2921
2934
  unhelpfulCount: z10.number(),
2935
+ codeBlockCount: z10.number(),
2936
+ /** Entries matching the filters over the whole date range. */
2937
+ totalCount: z10.number(),
2922
2938
  entries: z10.array(
2923
2939
  z10.object({
2924
2940
  date: z10.string(),
2925
2941
  location: z10.string(),
2942
+ /** Always false for code-block reports, which carry no vote. */
2926
2943
  wasHelpful: z10.boolean(),
2927
2944
  userFeedback: z10.string(),
2928
2945
  feedbackType: z10.string().optional(),
2929
2946
  /** URL of the docs page the feedback was submitted on. */
2930
- 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()
2931
2954
  })
2932
2955
  ),
2933
- 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()
2934
2959
  });
2935
2960
  var QueryAnalyticsResponseSchema = z10.object({
2936
2961
  resolvedDateRange: ResolvedDateRangeSchema,
@@ -2945,7 +2970,11 @@ var QueryAnalyticsResponseSchema = z10.object({
2945
2970
  visitors: z10.number().optional(),
2946
2971
  sessions: z10.number().optional()
2947
2972
  })
2948
- )
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()
2949
2978
  });
2950
2979
  var OrgMembersResponseSchema = z10.object({
2951
2980
  members: z10.array(
@@ -3832,6 +3861,120 @@ var import_fetch5 = require("@orpc/openapi-client/fetch");
3832
3861
  // src/orpc-client/docs/v2/library-docs/contract.ts
3833
3862
  var import_contract10 = require("@orpc/contract");
3834
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
3835
3978
  var ALLOWED_HOSTNAMES = /* @__PURE__ */ new Set(["github.com", "gitlab.com"]);
3836
3979
  var GithubUrlSchema = z15.string().url().describe(
3837
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>."
@@ -3866,8 +4009,13 @@ var LibraryDocsBaseConfigSchema = z15.object({
3866
4009
  slug: z15.string().nullish()
3867
4010
  });
3868
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();
3869
4017
  var CppLibraryDocsConfigSchema = LibraryDocsBaseConfigSchema.extend({
3870
- doxyfileContent: z15.string().nullish()
4018
+ doxyfileContent: SafeDoxyfileContentSchema
3871
4019
  });
3872
4020
  var StartLibraryDocsGenerationInputSchema = z15.discriminatedUnion("language", [
3873
4021
  z15.object({
@@ -7099,6 +7247,7 @@ var UpsertThemeBodySchema = z37.object({
7099
7247
  CurrentVersionInputSchema,
7100
7248
  CurrentVersionResponseSchema,
7101
7249
  CustomSnippetPayloadSchema,
7250
+ DOXYFILE_ALLOWED_KEYS,
7102
7251
  DashboardAnalyticsCommonInputSchema,
7103
7252
  DashboardDocsSiteSchema,
7104
7253
  DashboardFeedbackInputSchema,
@@ -7393,6 +7542,7 @@ var UpsertThemeBodySchema = z37.object({
7393
7542
  LoadDocsForUrlResponseSchema,
7394
7543
  LocaleEntrySchema,
7395
7544
  LongTypeSchema,
7545
+ MAX_DOXYFILE_CONTENT_LENGTH,
7396
7546
  ManifestApiDefSchema,
7397
7547
  ManifestBlobRefSchema,
7398
7548
  ManifestFileSchema,
@@ -7531,6 +7681,7 @@ var UpsertThemeBodySchema = z37.object({
7531
7681
  RouteContextInputSchema,
7532
7682
  RouteContextResponseSchema,
7533
7683
  RubyGemSchema,
7684
+ SafeDoxyfileContentSchema,
7534
7685
  ScalarTypeSchema,
7535
7686
  ScriptSchema,
7536
7687
  SdkDynamicIrDownloadSchema,
@@ -7684,6 +7835,7 @@ var UpsertThemeBodySchema = z37.object({
7684
7835
  snippetsFactoryContract,
7685
7836
  stableStringify,
7686
7837
  templatesContract,
7687
- tokensContract
7838
+ tokensContract,
7839
+ validateDoxyfileContent
7688
7840
  });
7689
7841
  //# sourceMappingURL=orpc-client.js.map