joist-codegen 2.0.3-next.32 → 2.0.3-next.34

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 (44) hide show
  1. package/build/config.d.ts +8 -0
  2. package/build/config.d.ts.map +1 -1
  3. package/build/config.js +4 -0
  4. package/build/config.js.map +1 -1
  5. package/build/docs/cache.d.ts +14 -0
  6. package/build/docs/cache.d.ts.map +1 -0
  7. package/build/docs/cache.js +61 -0
  8. package/build/docs/cache.js.map +1 -0
  9. package/build/docs/cache.test.d.ts +2 -0
  10. package/build/docs/cache.test.d.ts.map +1 -0
  11. package/build/docs/cache.test.js +47 -0
  12. package/build/docs/cache.test.js.map +1 -0
  13. package/build/docs/generate-metadata-docs.d.ts +6 -0
  14. package/build/docs/generate-metadata-docs.d.ts.map +1 -0
  15. package/build/docs/generate-metadata-docs.js +36 -0
  16. package/build/docs/generate-metadata-docs.js.map +1 -0
  17. package/build/docs/index.d.ts +9 -0
  18. package/build/docs/index.d.ts.map +1 -0
  19. package/build/docs/index.js +90 -0
  20. package/build/docs/index.js.map +1 -0
  21. package/build/docs/index.test.d.ts +2 -0
  22. package/build/docs/index.test.d.ts.map +1 -0
  23. package/build/docs/index.test.js +89 -0
  24. package/build/docs/index.test.js.map +1 -0
  25. package/build/docs/markdown.d.ts +30 -0
  26. package/build/docs/markdown.d.ts.map +1 -0
  27. package/build/docs/markdown.js +201 -0
  28. package/build/docs/markdown.js.map +1 -0
  29. package/build/docs/markdown.test.d.ts +2 -0
  30. package/build/docs/markdown.test.d.ts.map +1 -0
  31. package/build/docs/markdown.test.js +240 -0
  32. package/build/docs/markdown.test.js.map +1 -0
  33. package/build/docs/parsing.d.ts +42 -0
  34. package/build/docs/parsing.d.ts.map +1 -0
  35. package/build/docs/parsing.js +109 -0
  36. package/build/docs/parsing.js.map +1 -0
  37. package/build/docs/parsing.test.d.ts +2 -0
  38. package/build/docs/parsing.test.d.ts.map +1 -0
  39. package/build/docs/parsing.test.js +190 -0
  40. package/build/docs/parsing.test.js.map +1 -0
  41. package/build/generate.d.ts.map +1 -1
  42. package/build/generate.js +9 -0
  43. package/build/generate.js.map +1 -1
  44. package/package.json +2 -2
package/build/config.d.ts CHANGED
@@ -483,6 +483,10 @@ export declare const config: z.ZodObject<{
483
483
  nonDeferredForeignKeys: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">, z.ZodLiteral<"ignore">]>>;
484
484
  /** Enables esm output. */
485
485
  esm: z.ZodOptional<z.ZodBoolean>;
486
+ /** Enables documentation syncing between .md files and JSDocs. */
487
+ docs: z.ZodOptional<z.ZodBoolean>;
488
+ /** Output a metadata-docs.ts file with entity/field documentation available at runtime. */
489
+ outputDocs: z.ZodOptional<z.ZodBoolean>;
486
490
  /** Auto-set by probing the project's `tsconfig.json` file. */
487
491
  allowImportingTsExtensions: z.ZodOptional<z.ZodBoolean>;
488
492
  version: z.ZodDefault<z.ZodString>;
@@ -547,6 +551,8 @@ export declare const config: z.ZodObject<{
547
551
  idType?: "number" | "tagged-string" | "untagged-string" | undefined;
548
552
  nonDeferredForeignKeys?: "warn" | "error" | "ignore" | undefined;
549
553
  esm?: boolean | undefined;
554
+ docs?: boolean | undefined;
555
+ outputDocs?: boolean | undefined;
550
556
  allowImportingTsExtensions?: boolean | undefined;
551
557
  schemas?: string[] | undefined;
552
558
  }, {
@@ -607,6 +613,8 @@ export declare const config: z.ZodObject<{
607
613
  idType?: "number" | "tagged-string" | "untagged-string" | undefined;
608
614
  nonDeferredForeignKeys?: "warn" | "error" | "ignore" | undefined;
609
615
  esm?: boolean | undefined;
616
+ docs?: boolean | undefined;
617
+ outputDocs?: boolean | undefined;
610
618
  allowImportingTsExtensions?: boolean | undefined;
611
619
  version?: string | undefined;
612
620
  schemas?: string[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/build/config.js CHANGED
@@ -142,6 +142,10 @@ exports.config = zod_1.z
142
142
  nonDeferredForeignKeys: zod_1.z.optional(zod_1.z.union([zod_1.z.literal("error"), zod_1.z.literal("warn"), zod_1.z.literal("ignore")])),
143
143
  /** Enables esm output. */
144
144
  esm: zod_1.z.optional(zod_1.z.boolean()),
145
+ /** Enables documentation syncing between .md files and JSDocs. */
146
+ docs: zod_1.z.optional(zod_1.z.boolean()),
147
+ /** Output a metadata-docs.ts file with entity/field documentation available at runtime. */
148
+ outputDocs: zod_1.z.optional(zod_1.z.boolean()),
145
149
  /** Auto-set by probing the project's `tsconfig.json` file. */
146
150
  allowImportingTsExtensions: zod_1.z.optional(zod_1.z.boolean()),
147
151
  // The version of Joist that generated this config.
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /** A simple mtime-based cache for docs syncing, to skip processing when neither .ts nor .md has changed. */
2
+ export declare class DocsCache {
3
+ #private;
4
+ private constructor();
5
+ static load(): Promise<DocsCache>;
6
+ /** Returns true if both file mtimes match the cached values (i.e. skip processing). */
7
+ isUpToDate(entityName: string, tsMtime: number, mdMtime: number): boolean;
8
+ /** Record the current mtimes for an entity after processing it. */
9
+ update(entityName: string, tsMtime: number, mdMtime: number): void;
10
+ save(): Promise<void>;
11
+ }
12
+ /** Stat a file and return its mtimeMs, or -1 if it doesn't exist. */
13
+ export declare function getMtime(filePath: string): Promise<number>;
14
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/docs/cache.ts"],"names":[],"mappings":"AAoBA,4GAA4G;AAC5G,qBAAa,SAAS;;IAIpB,OAAO;WAKM,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAavC,uFAAuF;IACvF,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAKzE,mEAAmE;IACnE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAK5B;AAED,qEAAqE;AACrE,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhE"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DocsCache = void 0;
4
+ exports.getMtime = getMtime;
5
+ const crypto_1 = require("crypto");
6
+ const fs_1 = require("fs");
7
+ const os_1 = require("os");
8
+ const path_1 = require("path");
9
+ const CACHE_VERSION = 1;
10
+ const CACHE_DIR = (0, path_1.join)((0, os_1.tmpdir)(), "joist-codegen-cache");
11
+ /** A simple mtime-based cache for docs syncing, to skip processing when neither .ts nor .md has changed. */
12
+ class DocsCache {
13
+ #entries;
14
+ #cachePath;
15
+ constructor(cachePath, entries) {
16
+ this.#cachePath = cachePath;
17
+ this.#entries = entries;
18
+ }
19
+ static async load() {
20
+ const cachePath = getCachePath();
21
+ try {
22
+ const raw = JSON.parse(await fs_1.promises.readFile(cachePath, "utf-8"));
23
+ if (raw.version === CACHE_VERSION) {
24
+ return new DocsCache(cachePath, raw.entities);
25
+ }
26
+ }
27
+ catch {
28
+ // Missing or corrupt — start fresh
29
+ }
30
+ return new DocsCache(cachePath, {});
31
+ }
32
+ /** Returns true if both file mtimes match the cached values (i.e. skip processing). */
33
+ isUpToDate(entityName, tsMtime, mdMtime) {
34
+ const cached = this.#entries[entityName];
35
+ return !!cached && cached.tsMtime === Math.floor(tsMtime) && cached.mdMtime === Math.floor(mdMtime);
36
+ }
37
+ /** Record the current mtimes for an entity after processing it. */
38
+ update(entityName, tsMtime, mdMtime) {
39
+ this.#entries[entityName] = { tsMtime: Math.floor(tsMtime), mdMtime: Math.floor(mdMtime) };
40
+ }
41
+ async save() {
42
+ const data = { version: CACHE_VERSION, entities: this.#entries };
43
+ await fs_1.promises.mkdir(CACHE_DIR, { recursive: true });
44
+ await fs_1.promises.writeFile(this.#cachePath, JSON.stringify(data), "utf-8");
45
+ }
46
+ }
47
+ exports.DocsCache = DocsCache;
48
+ /** Stat a file and return its mtimeMs, or -1 if it doesn't exist. */
49
+ async function getMtime(filePath) {
50
+ try {
51
+ return (await fs_1.promises.stat(filePath)).mtimeMs;
52
+ }
53
+ catch {
54
+ return -1;
55
+ }
56
+ }
57
+ function getCachePath() {
58
+ const hash = (0, crypto_1.createHash)("sha256").update(process.cwd()).digest("hex").slice(0, 16);
59
+ return (0, path_1.join)(CACHE_DIR, `${hash}.json`);
60
+ }
61
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/docs/cache.ts"],"names":[],"mappings":";;;AA8DA,4BAMC;AApED,mCAAoC;AACpC,2BAAoC;AACpC,2BAA4B;AAC5B,+BAA4B;AAE5B,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,qBAAqB,CAAC,CAAC;AAcxD,4GAA4G;AAC5G,MAAa,SAAS;IACpB,QAAQ,CAA6B;IACrC,UAAU,CAAS;IAEnB,YAAoB,SAAiB,EAAE,OAAmC;QACxE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI;QACf,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,aAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAc,CAAC;YAC3E,IAAI,GAAG,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;gBAClC,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,uFAAuF;IACvF,UAAU,CAAC,UAAkB,EAAE,OAAe,EAAE,OAAe;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtG,CAAC;IAED,mEAAmE;IACnE,MAAM,CAAC,UAAkB,EAAE,OAAe,EAAE,OAAe;QACzD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAc,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5E,MAAM,aAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,aAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;CACF;AAtCD,8BAsCC;AAED,qEAAqE;AAC9D,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,aAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnF,OAAO,IAAA,WAAI,EAAC,SAAS,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cache.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.test.d.ts","sourceRoot":"","sources":["../../src/docs/cache.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path_1 = require("path");
4
+ const os_1 = require("os");
5
+ const cache_1 = require("./cache");
6
+ describe("DocsCache", () => {
7
+ it("returns not up-to-date for unknown entities", async () => {
8
+ const cache = await cache_1.DocsCache.load();
9
+ expect(cache.isUpToDate("Unknown", 100, 200)).toBe(false);
10
+ });
11
+ it("returns up-to-date when mtimes match", async () => {
12
+ const cache = await cache_1.DocsCache.load();
13
+ cache.update("Author", 100, 200);
14
+ expect(cache.isUpToDate("Author", 100, 200)).toBe(true);
15
+ });
16
+ it("returns not up-to-date when ts mtime changed", async () => {
17
+ const cache = await cache_1.DocsCache.load();
18
+ cache.update("Author", 100, 200);
19
+ expect(cache.isUpToDate("Author", 101, 200)).toBe(false);
20
+ });
21
+ it("returns not up-to-date when md mtime changed", async () => {
22
+ const cache = await cache_1.DocsCache.load();
23
+ cache.update("Author", 100, 200);
24
+ expect(cache.isUpToDate("Author", 100, 201)).toBe(false);
25
+ });
26
+ it("round-trips through save/load", async () => {
27
+ const cache = await cache_1.DocsCache.load();
28
+ cache.update("Author", 100, 200);
29
+ cache.update("Book", 300, -1);
30
+ await cache.save();
31
+ const reloaded = await cache_1.DocsCache.load();
32
+ expect(reloaded.isUpToDate("Author", 100, 200)).toBe(true);
33
+ expect(reloaded.isUpToDate("Book", 300, -1)).toBe(true);
34
+ expect(reloaded.isUpToDate("Unknown", 0, 0)).toBe(false);
35
+ });
36
+ });
37
+ describe("getMtime", () => {
38
+ it("returns mtimeMs for an existing file", async () => {
39
+ const mtime = await (0, cache_1.getMtime)(__filename);
40
+ expect(mtime).toBeGreaterThan(0);
41
+ });
42
+ it("returns -1 for a missing file", async () => {
43
+ const mtime = await (0, cache_1.getMtime)((0, path_1.join)((0, os_1.tmpdir)(), "nonexistent-joist-test-file.ts"));
44
+ expect(mtime).toBe(-1);
45
+ });
46
+ });
47
+ //# sourceMappingURL=cache.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.test.js","sourceRoot":"","sources":["../../src/docs/cache.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { CodegenFile } from "ts-poet";
2
+ import { Config } from "../config";
3
+ import { DbMetadata } from "../EntityDbMetadata";
4
+ /** Creates the `metadata-docs.ts` runtime artifact to access docs. */
5
+ export declare function generateMetadataDocsFile(config: Config, dbMeta: DbMetadata): Promise<CodegenFile>;
6
+ //# sourceMappingURL=generate-metadata-docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-metadata-docs.d.ts","sourceRoot":"","sources":["../../src/docs/generate-metadata-docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,WAAW,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,sEAAsE;AACtE,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA6BvG"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateMetadataDocsFile = generateMetadataDocsFile;
4
+ const ts_poet_1 = require("ts-poet");
5
+ const markdown_1 = require("./markdown");
6
+ /** Creates the `metadata-docs.ts` runtime artifact to access docs. */
7
+ async function generateMetadataDocsFile(config, dbMeta) {
8
+ const { entities } = dbMeta;
9
+ const entityEntries = await Promise.all(entities.map(async (meta) => {
10
+ const entityName = meta.entity.name;
11
+ const mdPath = `${config.entitiesDirectory}/${entityName}.md`;
12
+ const doc = await (0, markdown_1.maybeReadMarkdownFile)(mdPath);
13
+ const comment = escapeString(doc?.overview ?? "");
14
+ const fieldEntries = Object.entries(doc?.fields ?? {})
15
+ .map(([name, text]) => `${name}: "${escapeString(text)}"`)
16
+ .join(", ");
17
+ return `${entityName}: { comment: "${comment}", fields: { ${fieldEntries} }, operations: undefined }`;
18
+ }));
19
+ const body = entityEntries.map((e) => ` ${e},`).join("\n");
20
+ return {
21
+ name: "./codegen/metadata-docs.ts",
22
+ contents: (0, ts_poet_1.code) `
23
+ export const docs = {
24
+ ${body}
25
+ } as const;
26
+
27
+ export type EntityDocs = typeof docs;
28
+ `,
29
+ overwrite: true,
30
+ };
31
+ }
32
+ /** Escape a string for use inside a JS string literal (double-quoted). */
33
+ function escapeString(s) {
34
+ return s.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n");
35
+ }
36
+ //# sourceMappingURL=generate-metadata-docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-metadata-docs.js","sourceRoot":"","sources":["../../src/docs/generate-metadata-docs.ts"],"names":[],"mappings":";;AAMA,4DA6BC;AAnCD,qCAA4C;AAG5C,yCAAmD;AAEnD,sEAAsE;AAC/D,KAAK,UAAU,wBAAwB,CAAC,MAAc,EAAE,MAAkB;IAC/E,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE5B,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACpC,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,IAAI,UAAU,KAAK,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,IAAA,gCAAqB,EAAC,MAAM,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC;aACnD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;aACzD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,GAAG,UAAU,iBAAiB,OAAO,gBAAgB,YAAY,6BAA6B,CAAC;IACxG,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5D,OAAO;QACL,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,IAAA,cAAI,EAAA;;QAEV,IAAI;;;;KAIP;QACD,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { generateMetadataDocsFile } from "./generate-metadata-docs";
2
+ /**
3
+ * Run the full docs sync pipeline with mtime-based caching:
4
+ * 1. backfill .md from .ts JSDocs
5
+ * 2. sync .md back into .ts JSDocs
6
+ * 3. save the cache
7
+ */
8
+ export declare function syncDocs(entitiesDir: string, entityNames: string[]): Promise<void>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/docs/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCxF"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateMetadataDocsFile = void 0;
4
+ exports.syncDocs = syncDocs;
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ const cache_1 = require("./cache");
8
+ const markdown_1 = require("./markdown");
9
+ const parsing_1 = require("./parsing");
10
+ var generate_metadata_docs_1 = require("./generate-metadata-docs");
11
+ Object.defineProperty(exports, "generateMetadataDocsFile", { enumerable: true, get: function () { return generate_metadata_docs_1.generateMetadataDocsFile; } });
12
+ /**
13
+ * Run the full docs sync pipeline with mtime-based caching:
14
+ * 1. backfill .md from .ts JSDocs
15
+ * 2. sync .md back into .ts JSDocs
16
+ * 3. save the cache
17
+ */
18
+ async function syncDocs(entitiesDir, entityNames) {
19
+ const cache = await cache_1.DocsCache.load();
20
+ // Stat all files upfront in parallel to determine which entities need processing
21
+ const stats = await Promise.all(entityNames.map(async (entityName) => {
22
+ const tsPath = (0, path_1.join)(entitiesDir, `${entityName}.ts`);
23
+ const mdPath = (0, markdown_1.getMarkdownFilePath)(entitiesDir, entityName);
24
+ const [tsMtime, mdMtime] = await Promise.all([(0, cache_1.getMtime)(tsPath), (0, cache_1.getMtime)(mdPath)]);
25
+ return { entityName, tsPath, mdPath, tsMtime, mdMtime };
26
+ }));
27
+ const dirty = stats.filter((s) => !cache.isUpToDate(s.entityName, s.tsMtime, s.mdMtime));
28
+ if (dirty.length > 0) {
29
+ // Step 1: backfill .md from .ts
30
+ await Promise.all(dirty.map((s) => backfillMarkdownFromJsdoc(s.tsPath, s.mdPath)));
31
+ // Step 2: sync .md into .ts (re-read .md mtimes since backfill may have written them)
32
+ await Promise.all(dirty.map((s) => syncMarkdownToJsdoc(s.entityName, s.tsPath, s.mdPath)));
33
+ // Record final mtimes after both passes
34
+ await Promise.all(dirty.map(async (s) => {
35
+ const [tsMtime, mdMtime] = await Promise.all([(0, cache_1.getMtime)(s.tsPath), (0, cache_1.getMtime)(s.mdPath)]);
36
+ cache.update(s.entityName, tsMtime, mdMtime);
37
+ }));
38
+ }
39
+ await cache.save();
40
+ }
41
+ /** Sync a single entity's Markdown docs into its .ts file. */
42
+ async function syncMarkdownToJsdoc(entityName, tsPath, mdPath) {
43
+ const doc = await (0, markdown_1.maybeReadMarkdownFile)(mdPath);
44
+ if (!doc || (!doc.overview && Object.keys(doc.fields).length === 0))
45
+ return;
46
+ const source = await fs_1.promises.readFile(tsPath, "utf-8");
47
+ const { classNode, members } = (0, parsing_1.parseEntityJSDocs)(source);
48
+ const tag = `@generated ${entityName}.md`;
49
+ const edits = [];
50
+ if (doc.overview && classNode) {
51
+ edits.push((0, parsing_1.buildJSDocEdit)(classNode, `${doc.overview}\n${tag}`));
52
+ }
53
+ for (const [fieldName, fieldDoc] of Object.entries(doc.fields)) {
54
+ if (!fieldDoc)
55
+ continue;
56
+ for (const member of members.filter((m) => m.name === fieldName && m.kind !== "method")) {
57
+ edits.push((0, parsing_1.buildJSDocEdit)(member.node, `${fieldDoc}\n${tag}`));
58
+ }
59
+ }
60
+ if (edits.length > 0) {
61
+ const updated = (0, parsing_1.applyEdits)(source, edits);
62
+ if (updated !== source) {
63
+ await fs_1.promises.writeFile(tsPath, updated, "utf-8");
64
+ }
65
+ }
66
+ }
67
+ /**
68
+ * Backfill a single entity's .md file from JSDocs in its .ts file.
69
+ *
70
+ * If the .md doesn't exist, creates it. If it does exist, merges in any
71
+ * fields that are documented in .ts but missing from the .md.
72
+ */
73
+ async function backfillMarkdownFromJsdoc(tsPath, mdPath) {
74
+ const source = await fs_1.promises.readFile(tsPath, "utf-8");
75
+ const { classDoc, fieldDocs } = (0, parsing_1.parseEntityJSDocs)(source);
76
+ if (!classDoc && Object.keys(fieldDocs).length === 0)
77
+ return;
78
+ const existingDoc = await (0, markdown_1.maybeReadMarkdownFile)(mdPath);
79
+ const newFields = {};
80
+ for (const [name, doc] of Object.entries(fieldDocs)) {
81
+ if (!existingDoc?.fields[name]) {
82
+ newFields[name] = doc;
83
+ }
84
+ }
85
+ const newOverview = !existingDoc ? classDoc : existingDoc.overview ? undefined : classDoc;
86
+ if (!newOverview && Object.keys(newFields).length === 0)
87
+ return;
88
+ await (0, markdown_1.updateMarkdownDoc)(mdPath, newOverview, newFields);
89
+ }
90
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/docs/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/docs/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs_1 = require("fs");
4
+ const os_1 = require("os");
5
+ const path_1 = require("path");
6
+ const index_1 = require("./index");
7
+ let testDir;
8
+ beforeEach(async () => {
9
+ testDir = await fs_1.promises.mkdtemp((0, path_1.join)((0, os_1.tmpdir)(), "joist-docs-test-"));
10
+ });
11
+ afterEach(async () => {
12
+ await fs_1.promises.rm(testDir, { recursive: true, force: true });
13
+ });
14
+ describe("syncDocs", () => {
15
+ it("syncs markdown overview into ts file with @generated tag", async () => {
16
+ await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.ts"), "export class Author extends AuthorCodegen {}", "utf-8");
17
+ await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.md"), "## Overview\nThe Author entity.\n", "utf-8");
18
+ await (0, index_1.syncDocs)(testDir, ["Author"]);
19
+ const result = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.ts"), "utf-8");
20
+ expect(result).toContain("The Author entity.");
21
+ expect(result).toContain("@generated Author.md");
22
+ });
23
+ it("syncs field docs into ts file", async () => {
24
+ const ts = ["export class Author extends AuthorCodegen {", ' readonly firstName: string = "";', "}"].join("\n");
25
+ const md = ["## Overview", "", "## Fields", "", "### firstName", "", "The first name.", ""].join("\n");
26
+ await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.ts"), ts, "utf-8");
27
+ await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.md"), md, "utf-8");
28
+ await (0, index_1.syncDocs)(testDir, ["Author"]);
29
+ const result = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.ts"), "utf-8");
30
+ expect(result).toContain("The first name.");
31
+ expect(result).toContain("@generated Author.md");
32
+ });
33
+ it("backfills md from ts jsdoc when md does not exist", async () => {
34
+ const ts = ["/** The Author entity. */", "export class Author extends AuthorCodegen {}"].join("\n");
35
+ await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.ts"), ts, "utf-8");
36
+ await (0, index_1.syncDocs)(testDir, ["Author"]);
37
+ const md = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.md"), "utf-8");
38
+ expect(md).toContain("The Author entity.");
39
+ });
40
+ it("skips entities on second run when files are unchanged", async () => {
41
+ const bare = "export class Author extends AuthorCodegen {}";
42
+ await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.ts"), bare, "utf-8");
43
+ await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.md"), "## Overview\nThe Author entity.\n", "utf-8");
44
+ // First run — processes, writes JSDoc into .ts, and caches the resulting mtimes
45
+ await (0, index_1.syncDocs)(testDir, ["Author"]);
46
+ const firstResult = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.ts"), "utf-8");
47
+ expect(firstResult).toContain("The Author entity.");
48
+ // Snapshot the post-run mtimes (these are what the cache recorded)
49
+ const tsPath = (0, path_1.join)(testDir, "Author.ts");
50
+ const mdPath = (0, path_1.join)(testDir, "Author.md");
51
+ const tsStat = await fs_1.promises.stat(tsPath);
52
+ const mdStat = await fs_1.promises.stat(mdPath);
53
+ // Revert .ts to the bare version (no JSDoc) but restore the post-run mtime
54
+ // so the cache thinks nothing changed. If syncDocs re-processes, the overview
55
+ // would be re-injected; if it correctly skips, the bare content survives.
56
+ await fs_1.promises.writeFile(tsPath, bare, "utf-8");
57
+ await fs_1.promises.utimes(tsPath, tsStat.atimeMs / 1000, tsStat.mtimeMs / 1000);
58
+ await fs_1.promises.utimes(mdPath, mdStat.atimeMs / 1000, mdStat.mtimeMs / 1000);
59
+ // Second run — should skip because mtimes haven't changed
60
+ await (0, index_1.syncDocs)(testDir, ["Author"]);
61
+ const secondResult = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.ts"), "utf-8");
62
+ // If the cache correctly skipped, the bare content is still there (no JSDoc injected)
63
+ expect(secondResult).toBe(bare);
64
+ });
65
+ it("re-processes entity when md file changes", async () => {
66
+ const ts = ["export class Author extends AuthorCodegen {", ' readonly firstName: string = "";', "}"].join("\n");
67
+ await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.ts"), ts, "utf-8");
68
+ await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.md"), "## Overview\nVersion one.\n", "utf-8");
69
+ await (0, index_1.syncDocs)(testDir, ["Author"]);
70
+ const first = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.ts"), "utf-8");
71
+ expect(first).toContain("Version one.");
72
+ // Wait a tick to ensure mtime differs
73
+ await new Promise((r) => setTimeout(r, 50));
74
+ await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.md"), "## Overview\nVersion two.\n", "utf-8");
75
+ await (0, index_1.syncDocs)(testDir, ["Author"]);
76
+ const second = await fs_1.promises.readFile((0, path_1.join)(testDir, "Author.ts"), "utf-8");
77
+ expect(second).toContain("Version two.");
78
+ expect(second).not.toContain("Version one.");
79
+ });
80
+ it("handles entities with no md file", async () => {
81
+ await fs_1.promises.writeFile((0, path_1.join)(testDir, "Author.ts"), "export class Author extends AuthorCodegen {}", "utf-8");
82
+ // Should not throw
83
+ await (0, index_1.syncDocs)(testDir, ["Author"]);
84
+ // No md created since there's no jsdoc to backfill
85
+ const files = await fs_1.promises.readdir(testDir);
86
+ expect(files).toMatchObject(["Author.ts"]);
87
+ });
88
+ });
89
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/docs/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export interface ParsedDoc {
2
+ overview: string;
3
+ fields: Record<string, string>;
4
+ }
5
+ /** Read and parse a .md file if it exists, returning undefined if it doesn't. */
6
+ export declare function maybeReadMarkdownFile(filePath: string): Promise<ParsedDoc | undefined>;
7
+ /** Reads a basic `overview` and per-field docs out of md content. */
8
+ export declare function parseMarkdownContent(content: string): ParsedDoc;
9
+ /** Create a new .md file from scratch (used only for initial backfill when no .md exists). */
10
+ export declare function writeMarkdownDoc(filePath: string, overview: string, fields?: Record<string, string>): Promise<void>;
11
+ /**
12
+ * Update an existing .md file, merging in new/changed content without stomping user content.
13
+ * If the file doesn't exist, creates it from scratch.
14
+ */
15
+ export declare function updateMarkdownDoc(filePath: string, overview: string | undefined, fields: Record<string, string>): Promise<void>;
16
+ export declare function getMarkdownFilePath(entitiesDir: string, entityName: string): string;
17
+ /**
18
+ * Merge updates into an existing .md file, preserving all user content.
19
+ *
20
+ * - If `overview` is provided and the file has `## Overview`, replaces its body
21
+ * - For each field in `fields`, if `### fieldName` exists, replaces its body;
22
+ * otherwise appends it to the `## Fields` section (creating the section if needed)
23
+ * - All other content (custom sections, tables, etc.) is preserved verbatim
24
+ */
25
+ declare function mergeMarkdownContent(existing: string, overview: string | undefined, fields: Record<string, string>): string;
26
+ export declare const testing: {
27
+ mergeMarkdownContent: typeof mergeMarkdownContent;
28
+ };
29
+ export {};
30
+ //# sourceMappingURL=markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/docs/markdown.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,iFAAiF;AACjF,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAO5F;AAED,qEAAqE;AACrE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CA8C/D;AAED,8FAA8F;AAC9F,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnF;AAWD;;;;;;;GAOG;AACH,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CA6EpH;AAED,eAAO,MAAM,OAAO;;CAA2B,CAAC"}