@fern-api/fdr-sdk 1.2.93-91063bdea2 → 1.2.93-c507986598

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 (47) hide show
  1. package/dist/client/libraryDocs.d.ts +5 -0
  2. package/dist/client/libraryDocs.d.ts.map +1 -1
  3. package/dist/js/client/FdrClient.js +120 -1
  4. package/dist/js/client/FdrClient.js.map +1 -1
  5. package/dist/js/client/FdrClient.mjs +120 -1
  6. package/dist/js/client/FdrClient.mjs.map +1 -1
  7. package/dist/js/client/types.js.map +1 -1
  8. package/dist/js/client/types.mjs.map +1 -1
  9. package/dist/js/converters/index.js.map +1 -1
  10. package/dist/js/converters/index.mjs.map +1 -1
  11. package/dist/js/index.js +120 -1
  12. package/dist/js/index.js.map +1 -1
  13. package/dist/js/index.mjs +120 -1
  14. package/dist/js/index.mjs.map +1 -1
  15. package/dist/js/navigation/index.js.map +1 -1
  16. package/dist/js/navigation/index.mjs.map +1 -1
  17. package/dist/js/orpc-client.js +130 -3
  18. package/dist/js/orpc-client.js.map +1 -1
  19. package/dist/js/orpc-client.mjs +125 -2
  20. package/dist/js/orpc-client.mjs.map +1 -1
  21. package/dist/orpc-client/docs/v2/library-docs/__test__/doxyfile.test.d.ts +2 -0
  22. package/dist/orpc-client/docs/v2/library-docs/__test__/doxyfile.test.d.ts.map +1 -0
  23. package/dist/orpc-client/docs/v2/library-docs/__test__/doxyfile.test.js +68 -0
  24. package/dist/orpc-client/docs/v2/library-docs/__test__/doxyfile.test.js.map +1 -0
  25. package/dist/orpc-client/docs/v2/library-docs/contract.d.ts +9 -3
  26. package/dist/orpc-client/docs/v2/library-docs/contract.d.ts.map +1 -1
  27. package/dist/orpc-client/docs/v2/library-docs/contract.js +15 -1
  28. package/dist/orpc-client/docs/v2/library-docs/contract.js.map +1 -1
  29. package/dist/orpc-client/docs/v2/library-docs/doxyfile.d.ts +32 -0
  30. package/dist/orpc-client/docs/v2/library-docs/doxyfile.d.ts.map +1 -0
  31. package/dist/orpc-client/docs/v2/library-docs/doxyfile.js +142 -0
  32. package/dist/orpc-client/docs/v2/library-docs/doxyfile.js.map +1 -0
  33. package/dist/orpc-client/docs/v2/library-docs/index.d.ts +1 -0
  34. package/dist/orpc-client/docs/v2/library-docs/index.d.ts.map +1 -1
  35. package/dist/orpc-client/docs/v2/library-docs/index.js +1 -0
  36. package/dist/orpc-client/docs/v2/library-docs/index.js.map +1 -1
  37. package/dist/types/client/libraryDocs.d.ts +5 -0
  38. package/dist/types/client/libraryDocs.d.ts.map +1 -1
  39. package/dist/types/orpc-client/docs/v2/library-docs/__test__/doxyfile.test.d.ts +2 -0
  40. package/dist/types/orpc-client/docs/v2/library-docs/__test__/doxyfile.test.d.ts.map +1 -0
  41. package/dist/types/orpc-client/docs/v2/library-docs/contract.d.ts +9 -3
  42. package/dist/types/orpc-client/docs/v2/library-docs/contract.d.ts.map +1 -1
  43. package/dist/types/orpc-client/docs/v2/library-docs/doxyfile.d.ts +32 -0
  44. package/dist/types/orpc-client/docs/v2/library-docs/doxyfile.d.ts.map +1 -0
  45. package/dist/types/orpc-client/docs/v2/library-docs/index.d.ts +1 -0
  46. package/dist/types/orpc-client/docs/v2/library-docs/index.d.ts.map +1 -1
  47. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=doxyfile.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doxyfile.test.d.ts","sourceRoot":"","sources":["../../../../../../src/orpc-client/docs/v2/library-docs/__test__/doxyfile.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { CppLibraryDocsConfigSchema } from "../contract";
3
+ import { MAX_DOXYFILE_CONTENT_LENGTH, validateDoxyfileContent } from "../doxyfile";
4
+ describe("validateDoxyfileContent", () => {
5
+ it("accepts allowlisted settings with safe values", () => {
6
+ const result = validateDoxyfileContent([
7
+ 'ALIASES = "rst=\\verbatim embed:rst:leading-asterisk"',
8
+ 'ALIASES += "blockcollective{1}=Every thread uses the \\1 class."',
9
+ "PREDEFINED = __device__= __host__=",
10
+ "FILE_PATTERNS = *.h *.hpp *.cuh",
11
+ "OPTIMIZE_OUTPUT_FOR_C = YES"
12
+ ].join("\n"));
13
+ expect(result.errors).toEqual([]);
14
+ expect(result.droppedKeys).toEqual([]);
15
+ });
16
+ it("reports non-allowlisted settings as dropped, not errors", () => {
17
+ const result = validateDoxyfileContent(["INPUT_FILTER = \"sh -c 'touch /tmp/PWNED'\"", "INPUT = /etc", "GENERATE_XML = NO"].join("\n"));
18
+ expect(result.errors).toEqual([]);
19
+ expect(result.droppedKeys).toEqual(["INPUT_FILTER", "INPUT", "GENERATE_XML"]);
20
+ });
21
+ it("reports @INCLUDE directives as dropped", () => {
22
+ const result = validateDoxyfileContent("@INCLUDE = /etc/passwd\n@INCLUDE_PATH = /tmp\n");
23
+ expect(result.errors).toEqual([]);
24
+ expect(result.droppedKeys).toEqual(["@INCLUDE", "@INCLUDE_PATH"]);
25
+ });
26
+ it("rejects unsafe values for allowlisted settings", () => {
27
+ expect(validateDoxyfileContent('FILE_PATTERNS = "*.h; touch /tmp/PWNED"').errors).not.toEqual([]);
28
+ expect(validateDoxyfileContent("OPTIMIZE_OUTPUT_FOR_C = MAYBE").errors).not.toEqual([]);
29
+ expect(validateDoxyfileContent('ALIASES = "not an alias definition"').errors).not.toEqual([]);
30
+ expect(validateDoxyfileContent("ALIASES = a=one\\\\").errors).not.toEqual([]);
31
+ });
32
+ it("rejects doxygen $(ENV_VAR) expansion in values", () => {
33
+ expect(validateDoxyfileContent('ALIASES = "leak=$(AWS_ACCESS_KEY_ID)"').errors).not.toEqual([]);
34
+ expect(validateDoxyfileContent('ALIASES = "leak=$(AWS_SESSION_TOKEN)"').errors).not.toEqual([]);
35
+ expect(validateDoxyfileContent("PREDEFINED = LEAK=$(AWS_SECRET_ACCESS_KEY)").errors).not.toEqual([]);
36
+ });
37
+ it("handles line continuations and += accumulation", () => {
38
+ const result = validateDoxyfileContent("PREDEFINED = __device__= \\\n __host__=\n");
39
+ expect(result.errors).toEqual([]);
40
+ expect(result.droppedKeys).toEqual([]);
41
+ });
42
+ it("skips comments", () => {
43
+ const result = validateDoxyfileContent("# INPUT_FILTER = evil\n");
44
+ expect(result.errors).toEqual([]);
45
+ expect(result.droppedKeys).toEqual([]);
46
+ });
47
+ it("rejects oversized content", () => {
48
+ const result = validateDoxyfileContent("#".repeat(MAX_DOXYFILE_CONTENT_LENGTH + 1));
49
+ expect(result.errors).not.toEqual([]);
50
+ });
51
+ });
52
+ describe("CppLibraryDocsConfigSchema doxyfileContent", () => {
53
+ it("accepts safe doxyfileContent", () => {
54
+ expect(CppLibraryDocsConfigSchema.safeParse({ doxyfileContent: 'ALIASES += "myalias=replacement"\n' }).success).toBe(true);
55
+ });
56
+ it("accepts null/undefined doxyfileContent", () => {
57
+ expect(CppLibraryDocsConfigSchema.safeParse({}).success).toBe(true);
58
+ expect(CppLibraryDocsConfigSchema.safeParse({ doxyfileContent: null }).success).toBe(true);
59
+ });
60
+ it("accepts content whose dangerous settings will simply be dropped", () => {
61
+ expect(CppLibraryDocsConfigSchema.safeParse({ doxyfileContent: "INPUT_FILTER = \"sh -c 'evil'\"\n" }).success).toBe(true);
62
+ });
63
+ it("rejects allowlisted settings with unsafe values", () => {
64
+ expect(CppLibraryDocsConfigSchema.safeParse({ doxyfileContent: 'FILE_PATTERNS = "*.h; touch /tmp/PWNED"\n' })
65
+ .success).toBe(false);
66
+ });
67
+ });
68
+ //# sourceMappingURL=doxyfile.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doxyfile.test.js","sourceRoot":"","sources":["../../../../../../src/orpc-client/docs/v2/library-docs/__test__/doxyfile.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEnF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,uBAAuB,CAClC;YACI,uDAAuD;YACvD,kEAAkE;YAClE,oCAAoC;YACpC,iCAAiC;YACjC,6BAA6B;SAChC,CAAC,IAAI,CAAC,IAAI,CAAC,CACf,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QAC/D,MAAM,MAAM,GAAG,uBAAuB,CAClC,CAAC,6CAA6C,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAClG,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,uBAAuB,CAAC,gDAAgD,CAAC,CAAC;QACzF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,uBAAuB,CAAC,yCAAyC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClG,MAAM,CAAC,uBAAuB,CAAC,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxF,MAAM,CAAC,uBAAuB,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9F,MAAM,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,uBAAuB,CAAC,uCAAuC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChG,MAAM,CAAC,uBAAuB,CAAC,uCAAuC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChG,MAAM,CAAC,uBAAuB,CAAC,4CAA4C,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,uBAAuB,CAAC,uDAAuD,CAAC,CAAC;QAChG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACtB,MAAM,MAAM,GAAG,uBAAuB,CAAC,yBAAyB,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,2BAA2B,GAAG,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACpC,MAAM,CACF,0BAA0B,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,oCAAoC,EAAE,CAAC,CAAC,OAAO,CAC1G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACvE,MAAM,CACF,0BAA0B,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,mCAAmC,EAAE,CAAC,CAAC,OAAO,CACzG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACvD,MAAM,CACF,0BAA0B,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,2CAA2C,EAAE,CAAC;aACjG,OAAO,CACf,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -36,13 +36,19 @@ export declare const PythonLibraryDocsConfigSchema: z.ZodObject<{
36
36
  branch?: string | null | undefined;
37
37
  packagePath?: string | null | undefined;
38
38
  }>;
39
+ /**
40
+ * Validates doxyfileContent against the Doxyfile setting allowlist. Non-allowlisted
41
+ * settings are dropped by the parser (not rejected); allowlisted settings with
42
+ * unsafe values are rejected here.
43
+ */
44
+ export declare const SafeDoxyfileContentSchema: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
39
45
  export declare const CppLibraryDocsConfigSchema: z.ZodObject<{
40
46
  branch: z.ZodOptional<z.ZodNullable<z.ZodString>>;
41
47
  packagePath: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
42
48
  title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
43
49
  slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
44
50
  } & {
45
- doxyfileContent: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
+ doxyfileContent: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
46
52
  }, "strip", z.ZodTypeAny, {
47
53
  title?: string | null | undefined;
48
54
  slug?: string | null | undefined;
@@ -106,7 +112,7 @@ export declare const StartLibraryDocsGenerationInputSchema: z.ZodDiscriminatedUn
106
112
  title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
107
113
  slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
108
114
  } & {
109
- doxyfileContent: z.ZodOptional<z.ZodNullable<z.ZodString>>;
115
+ doxyfileContent: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
110
116
  }, "strip", z.ZodTypeAny, {
111
117
  title?: string | null | undefined;
112
118
  slug?: string | null | undefined;
@@ -255,7 +261,7 @@ export declare const libraryDocsContract: {
255
261
  title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
256
262
  slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
257
263
  } & {
258
- doxyfileContent: z.ZodOptional<z.ZodNullable<z.ZodString>>;
264
+ doxyfileContent: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
259
265
  }, "strip", z.ZodTypeAny, {
260
266
  title?: string | null | undefined;
261
267
  slug?: string | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../../src/orpc-client/docs/v2/library-docs/contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAIzB;;;GAGG;AACH,eAAO,MAAM,eAAe,2CA4BvB,CAAC;AAgBN,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAKtC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;EAA8B,CAAC;AAEzE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;EAErC,CAAC;AAEH,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAahD,CAAC;AAEH,eAAO,MAAM,wCAAwC;;;;;;EAEnD,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;EAE1C,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY5C,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAe/B,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../../src/orpc-client/docs/v2/library-docs/contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAKzB;;;GAGG;AACH,eAAO,MAAM,eAAe,2CA4BvB,CAAC;AAgBN,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAKtC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;EAA8B,CAAC;AAEzE;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,yEAOxB,CAAC;AAEf,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;EAErC,CAAC;AAEH,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAahD,CAAC;AAEH,eAAO,MAAM,wCAAwC;;;;;;EAEnD,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;EAE1C,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY5C,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAe/B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import * as z from "zod";
3
+ import { validateDoxyfileContent } from "./doxyfile.js";
3
4
  const ALLOWED_HOSTNAMES = new Set(["github.com", "gitlab.com"]);
4
5
  /**
5
6
  * Validates that a URL is a valid GitHub or GitLab repository URL.
@@ -49,8 +50,21 @@ export const LibraryDocsBaseConfigSchema = z.object({
49
50
  slug: z.string().nullish()
50
51
  });
51
52
  export const PythonLibraryDocsConfigSchema = LibraryDocsBaseConfigSchema;
53
+ /**
54
+ * Validates doxyfileContent against the Doxyfile setting allowlist. Non-allowlisted
55
+ * settings are dropped by the parser (not rejected); allowlisted settings with
56
+ * unsafe values are rejected here.
57
+ */
58
+ export const SafeDoxyfileContentSchema = z
59
+ .string()
60
+ .superRefine((content, ctx) => {
61
+ for (const error of validateDoxyfileContent(content).errors) {
62
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: error });
63
+ }
64
+ })
65
+ .nullish();
52
66
  export const CppLibraryDocsConfigSchema = LibraryDocsBaseConfigSchema.extend({
53
- doxyfileContent: z.string().nullish()
67
+ doxyfileContent: SafeDoxyfileContentSchema
54
68
  });
55
69
  export const StartLibraryDocsGenerationInputSchema = z.discriminatedUnion("language", [
56
70
  z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../../../src/orpc-client/docs/v2/library-docs/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../../../src/orpc-client/docs/v2/library-docs/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Allowlist validation for caller-provided Doxyfile content.
3
+ *
4
+ * Doxyfile content is attacker-controlled and several Doxygen settings execute
5
+ * arbitrary commands (INPUT_FILTER, FILTER_PATTERNS, ...) or read arbitrary files
6
+ * (@INCLUDE, TAGFILES, ...). The content is therefore never written to disk or
7
+ * handed to doxygen: it is parsed into settings, reduced to DOXYFILE_ALLOWED_KEYS
8
+ * with per-setting value validation, and only the surviving values are
9
+ * interpolated into a controlled Doxyfile template by the parser Lambda.
10
+ *
11
+ * This mirrors servers/fdr-cpp-library-docs-parser/src/doxyfile_parser.py, which
12
+ * enforces the same allowlist inside the parser itself.
13
+ */
14
+ export declare const MAX_DOXYFILE_CONTENT_LENGTH = 262144;
15
+ type DoxyfileValueValidator = (value: string) => boolean;
16
+ /** Allowlist of caller-configurable Doxyfile settings. Everything else is dropped. */
17
+ export declare const DOXYFILE_ALLOWED_KEYS: Record<string, DoxyfileValueValidator>;
18
+ export interface DoxyfileValidationResult {
19
+ /** Validation errors for allowlisted settings with unsafe values. Empty when valid. */
20
+ errors: string[];
21
+ /** Non-allowlisted setting names that will be dropped by the parser. */
22
+ droppedKeys: string[];
23
+ }
24
+ /**
25
+ * Validates caller-provided Doxyfile content against the allowlist.
26
+ *
27
+ * Unknown settings are reported as droppedKeys (not errors) — the parser drops
28
+ * them. Allowlisted settings with values that fail validation are errors.
29
+ */
30
+ export declare function validateDoxyfileContent(content: string): DoxyfileValidationResult;
31
+ export {};
32
+ //# sourceMappingURL=doxyfile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doxyfile.d.ts","sourceRoot":"","sources":["../../../../../src/orpc-client/docs/v2/library-docs/doxyfile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,2BAA2B,SAAU,CAAC;AAmBnD,KAAK,sBAAsB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAEzD,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAKxE,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACrC,uFAAuF;IACvF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,wEAAwE;IACxE,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB;AA+DD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,CA6CjF"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Allowlist validation for caller-provided Doxyfile content.
3
+ *
4
+ * Doxyfile content is attacker-controlled and several Doxygen settings execute
5
+ * arbitrary commands (INPUT_FILTER, FILTER_PATTERNS, ...) or read arbitrary files
6
+ * (@INCLUDE, TAGFILES, ...). The content is therefore never written to disk or
7
+ * handed to doxygen: it is parsed into settings, reduced to DOXYFILE_ALLOWED_KEYS
8
+ * with per-setting value validation, and only the surviving values are
9
+ * interpolated into a controlled Doxyfile template by the parser Lambda.
10
+ *
11
+ * This mirrors servers/fdr-cpp-library-docs-parser/src/doxyfile_parser.py, which
12
+ * enforces the same allowlist inside the parser itself.
13
+ */
14
+ export const MAX_DOXYFILE_CONTENT_LENGTH = 262_144;
15
+ // Matches: KEY = value or KEY += value
16
+ const SETTING_LINE_RE = /^\s*([A-Z][A-Z0-9_]*)\s*(\+?=)(.*)$/;
17
+ // @INCLUDE / @INCLUDE_PATH directives pull in arbitrary files; always dropped.
18
+ const AT_DIRECTIVE_RE = /^\s*@[A-Z_]+\b/;
19
+ const BOOL_RE = /^(?:YES|NO)$/i;
20
+ // Glob patterns only: no shell metacharacters, quotes, spaces, or path separators.
21
+ const FILE_PATTERN_RE = /^[A-Za-z0-9_.*?+-]+$/;
22
+ // PREDEFINED entries: macro name, optional argument list, optional definition.
23
+ const PREDEFINED_RE = /^[A-Za-z_][A-Za-z0-9_]*(?:\([A-Za-z0-9_,. ]*\))?(?::?=.*)?$/;
24
+ // Alias definition: name or name{N} followed by = and expansion.
25
+ const ALIAS_DEF_RE = /^\w+(?:\{\d+\})?=/;
26
+ /** Allowlist of caller-configurable Doxyfile settings. Everything else is dropped. */
27
+ export const DOXYFILE_ALLOWED_KEYS = {
28
+ ALIASES: (value) => ALIAS_DEF_RE.test(value),
29
+ PREDEFINED: (value) => PREDEFINED_RE.test(value),
30
+ FILE_PATTERNS: (value) => FILE_PATTERN_RE.test(value),
31
+ OPTIMIZE_OUTPUT_FOR_C: (value) => BOOL_RE.test(value)
32
+ };
33
+ /** Join lines ending with a backslash continuation into logical lines. */
34
+ function joinContinuations(text) {
35
+ const logical = [];
36
+ let buffer = "";
37
+ for (const rawLine of text.split(/\r?\n/)) {
38
+ const line = rawLine.replace(/\s+$/, "");
39
+ if (line.endsWith("\\") && !line.endsWith("\\\\")) {
40
+ buffer += `${line.slice(0, -1)} `;
41
+ continue;
42
+ }
43
+ buffer += line;
44
+ logical.push(buffer);
45
+ buffer = "";
46
+ }
47
+ if (buffer) {
48
+ logical.push(buffer);
49
+ }
50
+ return logical;
51
+ }
52
+ /** Split a setting value into tokens, honoring double quotes and \" escapes. */
53
+ function tokenizeValue(value) {
54
+ const tokens = [];
55
+ let i = 0;
56
+ const n = value.length;
57
+ while (i < n) {
58
+ const ch = value[i];
59
+ if (/\s/.test(ch ?? "")) {
60
+ i++;
61
+ continue;
62
+ }
63
+ if (ch === '"') {
64
+ i++;
65
+ let buf = "";
66
+ while (i < n) {
67
+ const c = value[i];
68
+ if (c === "\\" && i + 1 < n && value[i + 1] === '"') {
69
+ buf += '"';
70
+ i += 2;
71
+ continue;
72
+ }
73
+ if (c === '"') {
74
+ i++;
75
+ break;
76
+ }
77
+ buf += c;
78
+ i++;
79
+ }
80
+ tokens.push(buf);
81
+ }
82
+ else {
83
+ let j = i;
84
+ while (j < n && !/\s/.test(value[j] ?? "")) {
85
+ j++;
86
+ }
87
+ tokens.push(value.slice(i, j));
88
+ i = j;
89
+ }
90
+ }
91
+ return tokens;
92
+ }
93
+ /**
94
+ * Validates caller-provided Doxyfile content against the allowlist.
95
+ *
96
+ * Unknown settings are reported as droppedKeys (not errors) — the parser drops
97
+ * them. Allowlisted settings with values that fail validation are errors.
98
+ */
99
+ export function validateDoxyfileContent(content) {
100
+ const errors = [];
101
+ const droppedKeys = [];
102
+ if (content.length > MAX_DOXYFILE_CONTENT_LENGTH) {
103
+ errors.push(`doxyfileContent exceeds ${MAX_DOXYFILE_CONTENT_LENGTH} characters`);
104
+ return { errors, droppedKeys };
105
+ }
106
+ for (const line of joinContinuations(content)) {
107
+ const stripped = line.trim();
108
+ if (!stripped || stripped.startsWith("#")) {
109
+ continue;
110
+ }
111
+ if (AT_DIRECTIVE_RE.test(stripped)) {
112
+ const directive = stripped.split(/\s+/)[0] ?? stripped;
113
+ if (!droppedKeys.includes(directive)) {
114
+ droppedKeys.push(directive);
115
+ }
116
+ continue;
117
+ }
118
+ const match = SETTING_LINE_RE.exec(line);
119
+ if (match == null) {
120
+ continue;
121
+ }
122
+ const key = match[1] ?? "";
123
+ const rawValue = match[3] ?? "";
124
+ const validator = DOXYFILE_ALLOWED_KEYS[key];
125
+ if (validator == null) {
126
+ if (!droppedKeys.includes(key)) {
127
+ droppedKeys.push(key);
128
+ }
129
+ continue;
130
+ }
131
+ for (const token of tokenizeValue(rawValue)) {
132
+ // A trailing backslash would escape the closing quote once re-rendered.
133
+ // $( is doxygen's environment-variable expansion syntax; blocking it
134
+ // keeps process env vars out of generated output.
135
+ if (token.endsWith("\\") || token.includes("$(") || !validator(token)) {
136
+ errors.push(`Invalid value for Doxyfile setting ${key}: ${JSON.stringify(token)}`);
137
+ }
138
+ }
139
+ }
140
+ return { errors, droppedKeys };
141
+ }
142
+ //# sourceMappingURL=doxyfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doxyfile.js","sourceRoot":"","sources":["../../../../../src/orpc-client/docs/v2/library-docs/doxyfile.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from "./client.js";
2
2
  export * from "./contract.js";
3
+ export * from "./doxyfile.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/orpc-client/docs/v2/library-docs/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/orpc-client/docs/v2/library-docs/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from "./client.js";
2
2
  export * from "./contract.js";
3
+ export * from "./doxyfile.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/orpc-client/docs/v2/library-docs/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/orpc-client/docs/v2/library-docs/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -370,6 +370,11 @@ export declare namespace cpp {
370
370
  memberRefs: string[];
371
371
  innerClassRefs: string[];
372
372
  innerNamespaceRefs: string[];
373
+ classes: CppClassIr[];
374
+ functions: CppFunctionIr[];
375
+ enums: CppEnumIr[];
376
+ typedefs: CppTypedefIr[];
377
+ variables: CppVariableIr[];
373
378
  subgroups: CppGroupIr[];
374
379
  }
375
380
  interface CppLibraryDocsIr {
@@ -1 +1 @@
1
- {"version":3,"file":"libraryDocs.d.ts","sourceRoot":"","sources":["../../../src/client/libraryDocs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libraryDocs.d.ts","sourceRoot":"","sources":["../../../src/client/libraryDocs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=doxyfile.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doxyfile.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/orpc-client/docs/v2/library-docs/__test__/doxyfile.test.ts"],"names":[],"mappings":""}
@@ -36,13 +36,19 @@ export declare const PythonLibraryDocsConfigSchema: z.ZodObject<{
36
36
  branch?: string | null | undefined;
37
37
  packagePath?: string | null | undefined;
38
38
  }>;
39
+ /**
40
+ * Validates doxyfileContent against the Doxyfile setting allowlist. Non-allowlisted
41
+ * settings are dropped by the parser (not rejected); allowlisted settings with
42
+ * unsafe values are rejected here.
43
+ */
44
+ export declare const SafeDoxyfileContentSchema: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
39
45
  export declare const CppLibraryDocsConfigSchema: z.ZodObject<{
40
46
  branch: z.ZodOptional<z.ZodNullable<z.ZodString>>;
41
47
  packagePath: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
42
48
  title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
43
49
  slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
44
50
  } & {
45
- doxyfileContent: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
+ doxyfileContent: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
46
52
  }, "strip", z.ZodTypeAny, {
47
53
  title?: string | null | undefined;
48
54
  slug?: string | null | undefined;
@@ -106,7 +112,7 @@ export declare const StartLibraryDocsGenerationInputSchema: z.ZodDiscriminatedUn
106
112
  title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
107
113
  slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
108
114
  } & {
109
- doxyfileContent: z.ZodOptional<z.ZodNullable<z.ZodString>>;
115
+ doxyfileContent: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
110
116
  }, "strip", z.ZodTypeAny, {
111
117
  title?: string | null | undefined;
112
118
  slug?: string | null | undefined;
@@ -255,7 +261,7 @@ export declare const libraryDocsContract: {
255
261
  title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
256
262
  slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
257
263
  } & {
258
- doxyfileContent: z.ZodOptional<z.ZodNullable<z.ZodString>>;
264
+ doxyfileContent: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
259
265
  }, "strip", z.ZodTypeAny, {
260
266
  title?: string | null | undefined;
261
267
  slug?: string | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../../../src/orpc-client/docs/v2/library-docs/contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAIzB;;;GAGG;AACH,eAAO,MAAM,eAAe,2CA4BvB,CAAC;AAgBN,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAKtC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;EAA8B,CAAC;AAEzE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;EAErC,CAAC;AAEH,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAahD,CAAC;AAEH,eAAO,MAAM,wCAAwC;;;;;;EAEnD,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;EAE1C,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY5C,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAe/B,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../../../src/orpc-client/docs/v2/library-docs/contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAKzB;;;GAGG;AACH,eAAO,MAAM,eAAe,2CA4BvB,CAAC;AAgBN,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAKtC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;EAA8B,CAAC;AAEzE;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,yEAOxB,CAAC;AAEf,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;EAErC,CAAC;AAEH,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAahD,CAAC;AAEH,eAAO,MAAM,wCAAwC;;;;;;EAEnD,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;EAE1C,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY5C,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAe/B,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Allowlist validation for caller-provided Doxyfile content.
3
+ *
4
+ * Doxyfile content is attacker-controlled and several Doxygen settings execute
5
+ * arbitrary commands (INPUT_FILTER, FILTER_PATTERNS, ...) or read arbitrary files
6
+ * (@INCLUDE, TAGFILES, ...). The content is therefore never written to disk or
7
+ * handed to doxygen: it is parsed into settings, reduced to DOXYFILE_ALLOWED_KEYS
8
+ * with per-setting value validation, and only the surviving values are
9
+ * interpolated into a controlled Doxyfile template by the parser Lambda.
10
+ *
11
+ * This mirrors servers/fdr-cpp-library-docs-parser/src/doxyfile_parser.py, which
12
+ * enforces the same allowlist inside the parser itself.
13
+ */
14
+ export declare const MAX_DOXYFILE_CONTENT_LENGTH = 262144;
15
+ type DoxyfileValueValidator = (value: string) => boolean;
16
+ /** Allowlist of caller-configurable Doxyfile settings. Everything else is dropped. */
17
+ export declare const DOXYFILE_ALLOWED_KEYS: Record<string, DoxyfileValueValidator>;
18
+ export interface DoxyfileValidationResult {
19
+ /** Validation errors for allowlisted settings with unsafe values. Empty when valid. */
20
+ errors: string[];
21
+ /** Non-allowlisted setting names that will be dropped by the parser. */
22
+ droppedKeys: string[];
23
+ }
24
+ /**
25
+ * Validates caller-provided Doxyfile content against the allowlist.
26
+ *
27
+ * Unknown settings are reported as droppedKeys (not errors) — the parser drops
28
+ * them. Allowlisted settings with values that fail validation are errors.
29
+ */
30
+ export declare function validateDoxyfileContent(content: string): DoxyfileValidationResult;
31
+ export {};
32
+ //# sourceMappingURL=doxyfile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doxyfile.d.ts","sourceRoot":"","sources":["../../../../../../src/orpc-client/docs/v2/library-docs/doxyfile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,2BAA2B,SAAU,CAAC;AAmBnD,KAAK,sBAAsB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAEzD,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAKxE,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACrC,uFAAuF;IACvF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,wEAAwE;IACxE,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB;AA+DD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,CA6CjF"}
@@ -1,3 +1,4 @@
1
1
  export * from "./client.js";
2
2
  export * from "./contract.js";
3
+ export * from "./doxyfile.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/orpc-client/docs/v2/library-docs/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/orpc-client/docs/v2/library-docs/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fern-api/fdr-sdk",
3
- "version": "1.2.93-91063bdea2",
3
+ "version": "1.2.93-c507986598",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/fern-api/fern-platform.git",