joist-codegen 2.3.0-next.2 → 2.3.0-next.20

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 (144) hide show
  1. package/build/EntityDbMetadata.d.ts +3 -1
  2. package/build/EntityDbMetadata.js +3 -0
  3. package/build/EntityDbMetadata.js.map +1 -1
  4. package/build/assignTags.d.ts +0 -1
  5. package/build/codemods/Codemod.d.ts +0 -1
  6. package/build/codemods/JscodeshiftMod.d.ts +0 -1
  7. package/build/codemods/codemod_0001-rename_has_async_property.d.ts +0 -1
  8. package/build/codemods/codemod_0002-rename_async_query_fields.d.ts +0 -1
  9. package/build/codemods/codemod_0003-rename_find_paginated.d.ts +0 -1
  10. package/build/codemods/index.d.ts +0 -1
  11. package/build/config.d.ts +13 -2
  12. package/build/config.js +23 -0
  13. package/build/config.js.map +1 -1
  14. package/build/docs/cache.d.ts +0 -1
  15. package/build/docs/generate-metadata-docs.d.ts +2 -3
  16. package/build/docs/generate-metadata-docs.js +4 -7
  17. package/build/docs/generate-metadata-docs.js.map +1 -1
  18. package/build/docs/index.d.ts +5 -1
  19. package/build/docs/index.js +16 -2
  20. package/build/docs/index.js.map +1 -1
  21. package/build/docs/markdown.d.ts +0 -1
  22. package/build/docs/parsing.d.ts +4 -1
  23. package/build/docs/parsing.js +6 -0
  24. package/build/docs/parsing.js.map +1 -1
  25. package/build/findEntityScopes.d.ts +0 -1
  26. package/build/foreignKeyOrdering.d.ts +0 -1
  27. package/build/generate.d.ts +0 -1
  28. package/build/generate.js +10 -4
  29. package/build/generate.js.map +1 -1
  30. package/build/generateEntitiesFile.d.ts +0 -1
  31. package/build/generateEntityCodegenFile.d.ts +2 -2
  32. package/build/generateEntityCodegenFile.js +56 -19
  33. package/build/generateEntityCodegenFile.js.map +1 -1
  34. package/build/generateEntityFile.d.ts +0 -1
  35. package/build/generateEntityTestFile.d.ts +0 -1
  36. package/build/generateEnumFile.d.ts +0 -1
  37. package/build/generateFactoriesFiles.d.ts +0 -1
  38. package/build/generateFlushFunction.d.ts +0 -1
  39. package/build/generateMetadataFile.d.ts +0 -1
  40. package/build/generateMetadataFile.js +7 -0
  41. package/build/generateMetadataFile.js.map +1 -1
  42. package/build/generatePgEnumFile.d.ts +0 -1
  43. package/build/index.d.ts +1 -1
  44. package/build/index.js +23 -0
  45. package/build/index.js.map +1 -1
  46. package/build/inheritance.d.ts +0 -1
  47. package/build/installSkills.d.ts +12 -0
  48. package/build/installSkills.js +69 -0
  49. package/build/installSkills.js.map +1 -0
  50. package/build/keywords.d.ts +0 -1
  51. package/build/loadMetadata.d.ts +0 -1
  52. package/build/logger.d.ts +0 -1
  53. package/build/scanEntityFiles.d.ts +0 -1
  54. package/build/sortForeignKeys.d.ts +0 -1
  55. package/build/symbols.d.ts +3 -1
  56. package/build/symbols.js +6 -3
  57. package/build/symbols.js.map +1 -1
  58. package/build/tsdoc.d.ts +0 -1
  59. package/build/utils.d.ts +0 -1
  60. package/build/write-json-schema.d.ts +0 -1
  61. package/package.json +4 -3
  62. package/skills/joist-docs/SKILL.md +133 -0
  63. package/skills/joist-em-basics/SKILL.md +114 -0
  64. package/skills/joist-partial-updates/SKILL.md +352 -0
  65. package/skills/joist-reactive-hints/SKILL.md +150 -0
  66. package/skills/joist-test-factories/SKILL.md +397 -0
  67. package/skills/joist-upsert/SKILL.md +95 -0
  68. package/build/EntityDbMetadata.d.ts.map +0 -1
  69. package/build/EntityDbMetadata.test.d.ts +0 -2
  70. package/build/EntityDbMetadata.test.d.ts.map +0 -1
  71. package/build/EntityDbMetadata.test.js +0 -211
  72. package/build/EntityDbMetadata.test.js.map +0 -1
  73. package/build/assignTags.d.ts.map +0 -1
  74. package/build/codemods/Codemod.d.ts.map +0 -1
  75. package/build/codemods/JscodeshiftMod.d.ts.map +0 -1
  76. package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.d.ts +0 -2
  77. package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.d.ts.map +0 -1
  78. package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.js +0 -9
  79. package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.js.map +0 -1
  80. package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.d.ts +0 -2
  81. package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.d.ts.map +0 -1
  82. package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.js +0 -9
  83. package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.js.map +0 -1
  84. package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.d.ts +0 -2
  85. package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.d.ts.map +0 -1
  86. package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.js +0 -9
  87. package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.js.map +0 -1
  88. package/build/codemods/codemod_0001-rename_has_async_property.d.ts.map +0 -1
  89. package/build/codemods/codemod_0002-rename_async_query_fields.d.ts.map +0 -1
  90. package/build/codemods/codemod_0003-rename_find_paginated.d.ts.map +0 -1
  91. package/build/codemods/index.d.ts.map +0 -1
  92. package/build/codemods/index.test.d.ts +0 -2
  93. package/build/codemods/index.test.d.ts.map +0 -1
  94. package/build/codemods/index.test.js +0 -24
  95. package/build/codemods/index.test.js.map +0 -1
  96. package/build/config.d.ts.map +0 -1
  97. package/build/config.test.d.ts +0 -2
  98. package/build/config.test.d.ts.map +0 -1
  99. package/build/config.test.js +0 -78
  100. package/build/config.test.js.map +0 -1
  101. package/build/docs/cache.d.ts.map +0 -1
  102. package/build/docs/cache.test.d.ts +0 -2
  103. package/build/docs/cache.test.d.ts.map +0 -1
  104. package/build/docs/cache.test.js +0 -47
  105. package/build/docs/cache.test.js.map +0 -1
  106. package/build/docs/generate-metadata-docs.d.ts.map +0 -1
  107. package/build/docs/index.d.ts.map +0 -1
  108. package/build/docs/index.test.d.ts +0 -2
  109. package/build/docs/index.test.d.ts.map +0 -1
  110. package/build/docs/index.test.js +0 -100
  111. package/build/docs/index.test.js.map +0 -1
  112. package/build/docs/markdown.d.ts.map +0 -1
  113. package/build/docs/markdown.test.d.ts +0 -2
  114. package/build/docs/markdown.test.d.ts.map +0 -1
  115. package/build/docs/markdown.test.js +0 -280
  116. package/build/docs/markdown.test.js.map +0 -1
  117. package/build/docs/parsing.d.ts.map +0 -1
  118. package/build/docs/parsing.test.d.ts +0 -2
  119. package/build/docs/parsing.test.d.ts.map +0 -1
  120. package/build/docs/parsing.test.js +0 -190
  121. package/build/docs/parsing.test.js.map +0 -1
  122. package/build/findEntityScopes.d.ts.map +0 -1
  123. package/build/foreignKeyOrdering.d.ts.map +0 -1
  124. package/build/generate.d.ts.map +0 -1
  125. package/build/generateEntitiesFile.d.ts.map +0 -1
  126. package/build/generateEntityCodegenFile.d.ts.map +0 -1
  127. package/build/generateEntityFile.d.ts.map +0 -1
  128. package/build/generateEntityTestFile.d.ts.map +0 -1
  129. package/build/generateEnumFile.d.ts.map +0 -1
  130. package/build/generateFactoriesFiles.d.ts.map +0 -1
  131. package/build/generateFlushFunction.d.ts.map +0 -1
  132. package/build/generateMetadataFile.d.ts.map +0 -1
  133. package/build/generatePgEnumFile.d.ts.map +0 -1
  134. package/build/index.d.ts.map +0 -1
  135. package/build/inheritance.d.ts.map +0 -1
  136. package/build/keywords.d.ts.map +0 -1
  137. package/build/loadMetadata.d.ts.map +0 -1
  138. package/build/logger.d.ts.map +0 -1
  139. package/build/scanEntityFiles.d.ts.map +0 -1
  140. package/build/sortForeignKeys.d.ts.map +0 -1
  141. package/build/symbols.d.ts.map +0 -1
  142. package/build/tsdoc.d.ts.map +0 -1
  143. package/build/utils.d.ts.map +0 -1
  144. package/build/write-json-schema.d.ts.map +0 -1
@@ -17,4 +17,3 @@ export declare function generateExplicitFlushFunction(db: DbMetadata): string;
17
17
  * and ~5,000 tests, it gave an 8% speed-up vs. the "DELETE every table" approach).
18
18
  */
19
19
  export declare function generateSequenceFlushFunction(db: DbMetadata): string;
20
- //# sourceMappingURL=generateFlushFunction.d.ts.map
@@ -2,4 +2,3 @@ import { Code } from "ts-poet";
2
2
  import { Config } from "./config";
3
3
  import { DbMetadata, EntityDbMetadata } from "./EntityDbMetadata";
4
4
  export declare function generateMetadataFile(config: Config, dbMeta: DbMetadata, meta: EntityDbMetadata): Code;
5
- //# sourceMappingURL=generateMetadataFile.d.ts.map
@@ -128,6 +128,7 @@ function generateFields(config, dbMetadata) {
128
128
  type: ${typeof p.rawFieldType === "string" ? `"${p.rawFieldType}"` : p.rawFieldType},
129
129
  serde: ${serde},
130
130
  immutable: false,
131
+ ${p.lazy ? (0, ts_poet_1.code) `lazy: true,` : ""}
131
132
  ${extras}
132
133
  ${maybeDefault(p)}
133
134
  ${maybeSanitize(config, p)}
@@ -201,6 +202,7 @@ function generateFields(config, dbMetadata) {
201
202
  serde: undefined,
202
203
  immutable: false,
203
204
  ${maybeOrderBy(o2m)}
205
+ ${maybeSoftDeletes(o2m)}
204
206
  }
205
207
  `;
206
208
  });
@@ -236,6 +238,7 @@ function generateFields(config, dbMetadata) {
236
238
  joinTableName: "${m2m.joinTableName}",
237
239
  columnNames: ["${m2m.columnName}", "${m2m.otherColumnName}"],
238
240
  hasJoinTableId: ${m2m.hasJoinTableId},
241
+ ${maybeSoftDeletes(m2m)}
239
242
  }
240
243
  `;
241
244
  });
@@ -300,6 +303,10 @@ function maybeDefault(f) {
300
303
  function maybeOrderBy(f) {
301
304
  return f.orderBy ? (0, ts_poet_1.code) `orderBy: { field: "${f.orderBy.field}", direction: "${f.orderBy.direction}" },` : "";
302
305
  }
306
+ /** Emits the `softDeletes` config, i.e. `softDeletes: "include",`, for relations that opt out of hiding soft-deletes. */
307
+ function maybeSoftDeletes(f) {
308
+ return f.softDeletes ? (0, ts_poet_1.code) `softDeletes: "${f.softDeletes}",` : "";
309
+ }
303
310
  /** We sanitize/cleanStringValue all varchars, unless opted out by the column default/arrays/custom serdes. */
304
311
  function maybeSanitize(config, f) {
305
312
  // Only strings need to maybe turn off their cleanStringValue sanitization, if the default="" or its an array
@@ -1 +1 @@
1
- {"version":3,"file":"generateMetadataFile.js","sourceRoot":"","sources":["../src/generateMetadataFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateMetadataFile.js","sourceRoot":"","sources":["../src/generateMetadataFile.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,3 @@ import { Code } from "ts-poet";
2
2
  import { Config } from "./config";
3
3
  import { PgEnumData } from "./index";
4
4
  export declare function generatePgEnumFile(config: Config, enumData: PgEnumData): Code;
5
- //# sourceMappingURL=generatePgEnumFile.d.ts.map
package/build/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env node
1
2
  import { DbMetadata, EntityDbMetadata } from "./EntityDbMetadata";
2
3
  import { Config } from "./config";
3
4
  import { mapSimpleDbTypeToTypescriptType } from "./utils";
@@ -8,4 +9,3 @@ export declare function joistCodegen(): Promise<void>;
8
9
  /** Uses entities and enums from the `db` schema and saves them into our entities directory. */
9
10
  export declare function generateAndSaveFiles(config: Config, dbMeta: DbMetadata): Promise<void>;
10
11
  export declare function maybeSetExitCode(): void;
11
- //# sourceMappingURL=index.d.ts.map
package/build/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env node
1
2
  "use strict";
2
3
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
4
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -21,6 +22,7 @@ const foreignKeyOrdering_1 = require("./foreignKeyOrdering");
21
22
  const generate_1 = require("./generate");
22
23
  const generateFlushFunction_1 = require("./generateFlushFunction");
23
24
  const inheritance_1 = require("./inheritance");
25
+ const installSkills_1 = require("./installSkills");
24
26
  const loadMetadata_1 = require("./loadMetadata");
25
27
  const logger_1 = require("./logger");
26
28
  const scanEntityFiles_1 = require("./scanEntityFiles");
@@ -50,6 +52,7 @@ async function joistCodegen() {
50
52
  (0, EntityDbMetadata_1.resolveNameConflicts)(config, dbMetadata);
51
53
  // Assign any new tags and write them back to the config file
52
54
  (0, assignTags_1.assignTags)(config, dbMetadata);
55
+ validateTagDelimiter(config, entities);
53
56
  // Scan `*.ts` files after we've expanded `Task` -> `TaskOld.ts`
54
57
  await (0, scanEntityFiles_1.scanEntityFiles)(config, dbMetadata);
55
58
  // If we're not using deferred FKs, determine our DAG insert order
@@ -65,6 +68,9 @@ async function joistCodegen() {
65
68
  (0, config_1.warnInvalidConfigEntries)(config, dbMetadata);
66
69
  // Finally actually generate the files (even if we found a fatal error)
67
70
  await generateAndSaveFiles(config, dbMetadata);
71
+ // Install our bundled Agent Skills so coding agents can find them, unless explicitly disabled
72
+ if (config.skills !== false)
73
+ await (0, installSkills_1.installSkills)();
68
74
  (0, config_1.stripStiPlaceholders)(config, entities);
69
75
  await (0, config_1.writeConfig)(config);
70
76
  }
@@ -131,6 +137,23 @@ function maybeSetExitCode() {
131
137
  node_process_1.default.exitCode = 1;
132
138
  }
133
139
  }
140
+ /** Validates that tags can be parsed unambiguously with the configured delimiter. */
141
+ function validateTagDelimiter(config, entities) {
142
+ const tagDelimiter = config.tagDelimiter ?? ":";
143
+ for (const entity of entities) {
144
+ if (tagDelimiter !== "" && `${entity.tagName}${tagDelimiter}`.indexOf(tagDelimiter) !== entity.tagName.length) {
145
+ throw new Error(`Tagged id delimiter '${tagDelimiter}' cannot occur in or overlap tag '${entity.tagName}' for ${entity.name}`);
146
+ }
147
+ else if (tagDelimiter === "" && !/^[a-z]+$/i.test(entity.tagName)) {
148
+ throw new Error(`Delimiterless ids require an alphabetic tag, got '${entity.tagName}' for ${entity.name}`);
149
+ }
150
+ else if (tagDelimiter === "" &&
151
+ entity.primaryKey.columnType !== "int" &&
152
+ entity.primaryKey.columnType !== "bigint") {
153
+ throw new Error(`Delimiterless ids require an int or bigint primary key, got '${entity.primaryKey.columnType}' for ${entity.name}`);
154
+ }
155
+ }
156
+ }
134
157
  if (require.main === module) {
135
158
  joistCodegen()
136
159
  .then(() => maybeSetExitCode())
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAiCA,oCAsDC;AAGD,oDASC;AAiDD,4CAUC;AA9JD,6CAAsE;AACtE,gEAAmC;AACnC,2BAA4B;AAC5B,gEAAuC;AACvC,qCAAoC;AACpC,yDAAqH;AA0BpG,iGA1BI,mCAAgB,OA0BJ;AAzBjC,6CAA0C;AAC1C,yCAAgD;AAChD,qCAA2G;AAC3G,6DAAkE;AAClE,yCAA2C;AAC3C,mEAA8D;AAC9D,+CAAwD;AACxD,iDAAsE;AACtE,qCAAgE;AAChE,uDAAoD;AACpD,mCAAmG;AAehE,gHAfe,uCAA+B,OAef;AAblE,uDAW4B;AAR1B,8GAAA,UAAU,OAAA;AAYL,KAAK,UAAU,YAAY;IAChC,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAU,GAAE,CAAC;IAElC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC,sBAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,sBAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,IAAA,mCAAqB,GAAE,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAI,WAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IAEvB,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;IACpD,OAAO,CAAC,GAAG,CACT,SAAS,WAAW,kBAAkB,QAAQ,CAAC,MAAM,mBAAmB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,cAAc,CACnH,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,mDAAmD;IACnD,IAAA,qCAAuB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE5C,kGAAkG;IAClG,IAAA,uCAAoB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAEzC,6DAA6D;IAC7D,IAAA,uBAAU,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE/B,gEAAgE;IAChE,MAAM,IAAA,iCAAe,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1C,kEAAkE;IAClE,MAAM,IAAA,+CAA0B,EAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE9D,wCAAwC;IACxC,MAAM,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAExE,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IAEnB,6DAA6D;IAC7D,MAAM,IAAA,6BAAkB,EAAC,MAAM,CAAC,CAAC;IAEjC,mBAAmB;IACnB,KAAK,MAAM,MAAM,IAAI,QAAQ;QAAE,IAAA,8CAA2B,EAAC,MAAM,CAAC,CAAC;IACnE,IAAA,iCAAwB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE7C,uEAAuE;IACvE,MAAM,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE/C,IAAA,6BAAoB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,+FAA+F;AACxF,KAAK,UAAU,oBAAoB,CAAC,MAAc,EAAE,MAAkB;IAC3E,MAAM,KAAK,GAAG,MAAM,IAAA,wBAAa,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,IAAA,mBAAS,EAAC;QACd,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,MAAM,CAAC,iBAAiB;QACnC,KAAK;QACL,YAAY,EAAE,EAAE,gBAAgB,EAAE,MAAM,IAAI,KAAK,EAAE;KACpD,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,MAAc,EAAE,MAAc,EAAE,QAA0B,EAAE,EAAc;IACnH,mFAAmF;IACnF,IAAI,MAAM,CAAC,mBAAmB,KAAK,KAAK,EAAE,CAAC;QACzC,mCAAmC;QACnC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACjD,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC9C,MAAM,MAAM,GAAG,IAAI,WAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC7D,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACvB,MAAM,IAAA,2CAAmB,EAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACtC,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;YACrB,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,MAAM,IAAA,2CAAmB,EAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,MAAc,EAAE,MAAc;IAC9D,uFAAuF;IACvF,yFAAyF;IACzF,kDAAkD;IAClD,MAAM,EAAE,GAAG,MAAM,IAAA,sBAAW,EAAC,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,IAAA,+BAAgB,EAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAkB,EAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM;SACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACvC,MAAM,CAAC,MAAM,CAAC;SACd,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,mCAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,qBAAa,EAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC9F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAC5F,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc;IACzC,IAAI,CAAC,sBAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACpD,sBAAO,CAAC,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB;IAC9B,IACE,CAAC,sBAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACjD,oCAAoC;QACpC,CAAC,CAAC,sBAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,iCAAwB,IAAI,mBAAU,CAAC,IAAI,CAAC;YACjF,8BAA8B;YAC9B,iCAAwB,IAAI,mBAAU,CAAC,KAAK,CAAC,EAC/C,CAAC;QACD,sBAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,YAAY,EAAE;SACX,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC;SAC9B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,3 @@ type StiEntityMap = Map<string, {
7
7
  }>;
8
8
  export declare function getStiEntities(entities: EntityDbMetadata[]): StiEntityMap;
9
9
  export {};
10
- //# sourceMappingURL=inheritance.d.ts.map
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Copies Joist's bundled Agent Skills into the project so coding agents can
3
+ * discover them, then prunes any previously-installed Joist skills that no
4
+ * longer ship with this version.
5
+ *
6
+ * The skills are framework-owned and rewritten on every codegen run, so users
7
+ * should not hand-edit them (re-run codegen to pick up new Joist versions).
8
+ *
9
+ * Logs only what actually changed: the added and removed skill names, staying
10
+ * quiet when nothing changed.
11
+ */
12
+ export declare function installSkills(rootDir?: string): Promise<void>;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.installSkills = installSkills;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ /** The bundled skills live at the package root, alongside `build`/`src`. */
7
+ const bundledSkillsDir = (0, path_1.resolve)(__dirname, "../skills");
8
+ /**
9
+ * Targets that each get a full copy of every skill directory.
10
+ *
11
+ * `.claude/skills` is read by Claude Code (and opencode); `.agents/skills` is read
12
+ * by Codex (and opencode), so writing both gives native coverage across all three.
13
+ */
14
+ const skillTargets = [".claude/skills", ".agents/skills"];
15
+ /** Joist owns the `joist-` skill namespace, so stale ones there are ours to prune. */
16
+ const skillPrefix = "joist-";
17
+ /**
18
+ * Copies Joist's bundled Agent Skills into the project so coding agents can
19
+ * discover them, then prunes any previously-installed Joist skills that no
20
+ * longer ship with this version.
21
+ *
22
+ * The skills are framework-owned and rewritten on every codegen run, so users
23
+ * should not hand-edit them (re-run codegen to pick up new Joist versions).
24
+ *
25
+ * Logs only what actually changed: the added and removed skill names, staying
26
+ * quiet when nothing changed.
27
+ */
28
+ async function installSkills(rootDir = ".") {
29
+ const bundled = await readSkillNames(bundledSkillsDir);
30
+ if (bundled.length === 0)
31
+ return;
32
+ const bundledSet = new Set(bundled);
33
+ // Snapshot what each target already has before we copy/remove, so we can diff.
34
+ const existingPerTarget = await Promise.all(skillTargets.map((target) => readSkillNames((0, path_1.join)(rootDir, target))));
35
+ // Always `cp` the bundled skills into each target, overwriting any existing ones
36
+ await Promise.all(skillTargets.flatMap((target) => bundled.map((name) => fs_1.promises.cp((0, path_1.join)(bundledSkillsDir, name), (0, path_1.join)(rootDir, target, name), { recursive: true, force: true }))));
37
+ // Prune stale Joist skills (previously installed here, but no longer bundled).
38
+ const removed = new Set();
39
+ await Promise.all(skillTargets.map(async (target, i) => {
40
+ const stale = existingPerTarget[i].filter((name) => name.startsWith(skillPrefix) && !bundledSet.has(name));
41
+ await Promise.all(stale.map(async (name) => {
42
+ removed.add(name);
43
+ await fs_1.promises.rm((0, path_1.join)(rootDir, target, name), { recursive: true, force: true });
44
+ }));
45
+ }));
46
+ // A skill is "new" if it was missing from at least one target before this run.
47
+ const added = bundled.filter((name) => existingPerTarget.some((names) => !names.includes(name)));
48
+ if (added.length > 0) {
49
+ console.log(`Added ${added.length} Joist skill(s) to ${skillTargets.join(" and ")}:`);
50
+ for (const name of added)
51
+ console.log(` + ${name}`);
52
+ }
53
+ if (removed.size > 0) {
54
+ console.log(`Removed ${removed.size} stale Joist skill(s) from ${skillTargets.join(" and ")}:`);
55
+ for (const name of removed)
56
+ console.log(` - ${name}`);
57
+ }
58
+ }
59
+ /** Lists the skill directory names in a dir, or `[]` if it's missing. I.e. ["joist-upsert", ...]. */
60
+ async function readSkillNames(dir) {
61
+ try {
62
+ const entries = await fs_1.promises.readdir(dir, { withFileTypes: true });
63
+ return entries.filter((e) => e.isDirectory()).map((e) => e.name);
64
+ }
65
+ catch {
66
+ return [];
67
+ }
68
+ }
69
+ //# sourceMappingURL=installSkills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installSkills.js","sourceRoot":"","sources":["../src/installSkills.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1 @@
1
1
  export declare const keywords: string[];
2
- //# sourceMappingURL=keywords.d.ts.map
@@ -23,4 +23,3 @@ export type EnumRow = {
23
23
  };
24
24
  export declare function loadEnumMetadata(db: Db, client: Client, config: Config): Promise<EnumMetadata>;
25
25
  export declare function loadPgEnumMetadata(db: Db, client: Client, config: Config): Promise<PgEnumMetadata>;
26
- //# sourceMappingURL=loadMetadata.d.ts.map
package/build/logger.d.ts CHANGED
@@ -7,4 +7,3 @@ export declare const logger: {
7
7
  warn(...args: Parameters<(typeof console)["warn"]>): void;
8
8
  error(...args: Parameters<(typeof console)["error"]>): void;
9
9
  };
10
- //# sourceMappingURL=logger.d.ts.map
@@ -2,4 +2,3 @@ import { DbMetadata } from "./EntityDbMetadata";
2
2
  import { Config } from "./config";
3
3
  /** Scans the entity files themselves for usage hints (like `setDefault` calls) to drive our codegen output. */
4
4
  export declare function scanEntityFiles(config: Config, dbMeta: DbMetadata): Promise<void>;
5
- //# sourceMappingURL=scanEntityFiles.d.ts.map
@@ -29,4 +29,3 @@ export declare function sortByNonDeferredForeignKeys(entities: EntityDbMetadata[
29
29
  nullableCycles: string[];
30
30
  notNullCycles: string[];
31
31
  };
32
- //# sourceMappingURL=sortForeignKeys.d.ts.map
@@ -18,6 +18,8 @@ export declare const EnumMetadata: import("ts-poet").Import;
18
18
  export declare const Lens: import("ts-poet").Import;
19
19
  export declare const KeySerde: import("ts-poet").Import;
20
20
  export declare const ManyToOneReference: import("ts-poet").Import;
21
+ export declare const LazyField: import("ts-poet").Import;
22
+ export declare const hasLazyField: import("ts-poet").Import;
21
23
  export declare const ReadOnlyCollection: import("ts-poet").Import;
22
24
  export declare const PolymorphicReference: import("ts-poet").Import;
23
25
  export declare const OneToOneReference: import("ts-poet").Import;
@@ -64,6 +66,7 @@ export declare const ToJsonHint: import("ts-poet").Import;
64
66
  export declare const JsonPayload: import("ts-poet").Import;
65
67
  export declare const configureMetadata: import("ts-poet").Import;
66
68
  export declare const newRequiredRule: import("ts-poet").Import;
69
+ export declare const newRequiredLazyFieldRule: import("ts-poet").Import;
67
70
  export declare const cannotBeUpdated: import("ts-poet").Import;
68
71
  export declare const mustBeSubType: import("ts-poet").Import;
69
72
  export declare const cleanStringValue: import("ts-poet").Import;
@@ -105,4 +108,3 @@ export declare const ReactiveManyToManyOtherSide: import("ts-poet").Import;
105
108
  export declare const hasReactiveManyToManyOtherSide: import("ts-poet").Import;
106
109
  export declare const updatePartial: import("ts-poet").Import;
107
110
  export declare const setRuntimeConfig: import("ts-poet").Import;
108
- //# sourceMappingURL=symbols.d.ts.map
package/build/symbols.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IdOf = exports.RelationsOf = exports.FieldsOf = exports.OptsOf = exports.OrderBy = exports.setField = exports.getField = exports.setOpts = exports.failNoIdYet = exports.fail = exports.DecimalToNumberSerde = exports.CustomSerdeAdapter = exports.ZodSerde = exports.TaggedId = exports.SuperstructSerde = exports.JsonSerde = exports.ZonedDateTimeSerde = exports.PlainDateTimeSerde = exports.PlainTimeSerde = exports.PlainDateSerde = exports.DateSerde = exports.BigIntSerde = exports.PrimitiveSerde = exports.PolymorphicKeySerde = exports.EnumArrayFieldSerde = exports.EnumFieldSerde = exports.ManyToManyCollection = exports.OneToOneReference = exports.PolymorphicReference = exports.ReadOnlyCollection = exports.ManyToOneReference = exports.KeySerde = exports.Lens = exports.EnumMetadata = exports.EntityMetadata = exports.JoistEntityManager = exports.OneToManyCollection = exports.LargeCollection = exports.EnumCollection = exports.Collection = exports.Reference = exports.Flavor = exports.BaseEntity = exports.Entity = exports.FieldStatus = exports.Scope = exports.newScopeFn = exports.ConfigApi = exports.EntityManager = exports.ProjectEntity = void 0;
4
- exports.toJSON = exports.toIdOf = exports.deTagId = exports.MaybeAbstractEntityConstructor = exports.EntityConstructor = exports.Zod = exports.SSAssert = exports.FactoryOpts = exports.DeepNew = exports.New = exports.newTestInstance = exports.hasLargeManyToMany = exports.hasEnumCollection = exports.hasManyToMany = exports.hasOneToOne = exports.hasOnePolymorphic = exports.hasRecursiveParents = exports.hasRecursiveM2m = exports.hasRecursiveChildren = exports.hasOne = exports.hasLargeMany = exports.hasMany = exports.hasOneThrough = exports.loadLens = exports.isEntity = exports.getInstanceData = exports.isLoaded = exports.Loaded = exports.LoadHint = exports.newChangesProxy = exports.Changes = exports.cleanStringValue = exports.mustBeSubType = exports.cannotBeUpdated = exports.newRequiredRule = exports.configureMetadata = exports.JsonPayload = exports.ToJsonHint = exports.JsonHint = exports.GraphQLFilterOf = exports.FilterOf = exports.ValueGraphQLFilter = exports.EnumGraphQLFilter = exports.EntityGraphQLFilter = exports.BooleanGraphQLFilter = exports.EntityFilter = exports.ValueFilter = exports.BooleanFilter = exports.DeepPartialOrNull = exports.PartialOrNull = void 0;
5
- exports.setRuntimeConfig = exports.updatePartial = exports.hasReactiveManyToManyOtherSide = exports.ReactiveManyToManyOtherSide = exports.ReactiveManyToMany = exports.ReactiveReference = exports.ReactiveField = void 0;
3
+ exports.FieldsOf = exports.OptsOf = exports.OrderBy = exports.setField = exports.getField = exports.setOpts = exports.failNoIdYet = exports.fail = exports.DecimalToNumberSerde = exports.CustomSerdeAdapter = exports.ZodSerde = exports.TaggedId = exports.SuperstructSerde = exports.JsonSerde = exports.ZonedDateTimeSerde = exports.PlainDateTimeSerde = exports.PlainTimeSerde = exports.PlainDateSerde = exports.DateSerde = exports.BigIntSerde = exports.PrimitiveSerde = exports.PolymorphicKeySerde = exports.EnumArrayFieldSerde = exports.EnumFieldSerde = exports.ManyToManyCollection = exports.OneToOneReference = exports.PolymorphicReference = exports.ReadOnlyCollection = exports.hasLazyField = exports.LazyField = exports.ManyToOneReference = exports.KeySerde = exports.Lens = exports.EnumMetadata = exports.EntityMetadata = exports.JoistEntityManager = exports.OneToManyCollection = exports.LargeCollection = exports.EnumCollection = exports.Collection = exports.Reference = exports.Flavor = exports.BaseEntity = exports.Entity = exports.FieldStatus = exports.Scope = exports.newScopeFn = exports.ConfigApi = exports.EntityManager = exports.ProjectEntity = void 0;
4
+ exports.MaybeAbstractEntityConstructor = exports.EntityConstructor = exports.Zod = exports.SSAssert = exports.FactoryOpts = exports.DeepNew = exports.New = exports.newTestInstance = exports.hasLargeManyToMany = exports.hasEnumCollection = exports.hasManyToMany = exports.hasOneToOne = exports.hasOnePolymorphic = exports.hasRecursiveParents = exports.hasRecursiveM2m = exports.hasRecursiveChildren = exports.hasOne = exports.hasLargeMany = exports.hasMany = exports.hasOneThrough = exports.loadLens = exports.isEntity = exports.getInstanceData = exports.isLoaded = exports.Loaded = exports.LoadHint = exports.newChangesProxy = exports.Changes = exports.cleanStringValue = exports.mustBeSubType = exports.cannotBeUpdated = exports.newRequiredLazyFieldRule = exports.newRequiredRule = exports.configureMetadata = exports.JsonPayload = exports.ToJsonHint = exports.JsonHint = exports.GraphQLFilterOf = exports.FilterOf = exports.ValueGraphQLFilter = exports.EnumGraphQLFilter = exports.EntityGraphQLFilter = exports.BooleanGraphQLFilter = exports.EntityFilter = exports.ValueFilter = exports.BooleanFilter = exports.DeepPartialOrNull = exports.PartialOrNull = exports.IdOf = exports.RelationsOf = void 0;
5
+ exports.setRuntimeConfig = exports.updatePartial = exports.hasReactiveManyToManyOtherSide = exports.ReactiveManyToManyOtherSide = exports.ReactiveManyToMany = exports.ReactiveReference = exports.ReactiveField = exports.toJSON = exports.toIdOf = exports.deTagId = void 0;
6
6
  const ts_poet_1 = require("ts-poet");
7
7
  exports.ProjectEntity = (0, ts_poet_1.imp)(`t:Entity@./entities.ts`);
8
8
  exports.EntityManager = (0, ts_poet_1.imp)("EntityManager@./entities.ts");
@@ -24,6 +24,8 @@ exports.EnumMetadata = (0, ts_poet_1.imp)("t:EnumMetadata@joist-orm");
24
24
  exports.Lens = (0, ts_poet_1.imp)("t:Lens@joist-orm");
25
25
  exports.KeySerde = (0, ts_poet_1.imp)("KeySerde@joist-orm");
26
26
  exports.ManyToOneReference = (0, ts_poet_1.imp)("t:ManyToOneReference@joist-orm");
27
+ exports.LazyField = (0, ts_poet_1.imp)("t:LazyField@joist-orm");
28
+ exports.hasLazyField = (0, ts_poet_1.imp)("hasLazyField@joist-orm");
27
29
  exports.ReadOnlyCollection = (0, ts_poet_1.imp)("t:ReadOnlyCollection@joist-orm");
28
30
  exports.PolymorphicReference = (0, ts_poet_1.imp)("t:PolymorphicReference@joist-orm");
29
31
  exports.OneToOneReference = (0, ts_poet_1.imp)("t:OneToOneReference@joist-orm");
@@ -70,6 +72,7 @@ exports.ToJsonHint = (0, ts_poet_1.imp)("t:ToJsonHint@joist-orm");
70
72
  exports.JsonPayload = (0, ts_poet_1.imp)("t:JsonPayload@joist-orm");
71
73
  exports.configureMetadata = (0, ts_poet_1.imp)("configureMetadata@joist-orm");
72
74
  exports.newRequiredRule = (0, ts_poet_1.imp)("newRequiredRule@joist-orm");
75
+ exports.newRequiredLazyFieldRule = (0, ts_poet_1.imp)("newRequiredLazyFieldRule@joist-orm");
73
76
  exports.cannotBeUpdated = (0, ts_poet_1.imp)("cannotBeUpdated@joist-orm");
74
77
  exports.mustBeSubType = (0, ts_poet_1.imp)("mustBeSubType@joist-orm");
75
78
  exports.cleanStringValue = (0, ts_poet_1.imp)("cleanStringValue@joist-orm");
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../src/symbols.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../src/symbols.ts"],"names":[],"mappings":"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"}
package/build/tsdoc.d.ts CHANGED
@@ -9,4 +9,3 @@ export declare const tsdocComments: {
9
9
  toJSON: string;
10
10
  };
11
11
  };
12
- //# sourceMappingURL=tsdoc.d.ts.map
package/build/utils.d.ts CHANGED
@@ -28,4 +28,3 @@ export declare function parseOrder(order: string | undefined): {
28
28
  } | undefined;
29
29
  export declare function q(s: string | undefined): string;
30
30
  export declare function uncapitalize(s: string): string;
31
- //# sourceMappingURL=utils.d.ts.map
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=write-json-schema.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "joist-codegen",
3
- "version": "2.3.0-next.2",
3
+ "version": "2.3.0-next.20",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14,10 +14,11 @@
14
14
  "format": "prettier --ignore-path ../../.prettierignore --write '{schema,migrations,src}/**/*.{ts,js,tsx,jsx,graphql}'"
15
15
  },
16
16
  "files": [
17
- "build"
17
+ "build",
18
+ "skills"
18
19
  ],
19
20
  "peerDependencies": {
20
- "joist-utils": "2.3.0-next.2",
21
+ "joist-utils": "2.3.0-next.20",
21
22
  "knex": "^3.1.0",
22
23
  "pg": "^8.22.0"
23
24
  },
@@ -0,0 +1,133 @@
1
+ ---
2
+ name: entity-docs
3
+ description: Read and write the `src/entities/<Entity>.md` business-docs that sit next to each Joist entity. Use when working on ANY entity in `src/entities/` (its `.ts`, resolvers, jobs, or tests) — read the sibling `.md` first for the business rationale, worked scenarios, and gotchas the code can't show, and record any non-obvious domain knowledge you learn back into it. Also covers the codegen doc-sync: how `## Overview` and `## Fields`/`### fieldName` sections become entity JSDocs via `yarn joist-codegen`, and what belongs in field docs vs. free-form narrative.
4
+ ---
5
+
6
+ # Entity docs (`src/entities/<Entity>.md`)
7
+
8
+ Many Joist entities have a sibling Markdown doc — `src/entities/Author.ts` ↔
9
+ `src/entities/Author.md` (same basename; enums under `src/entities/enums/` too). These files hold the
10
+ **"why"** that code can't: business rationale, worked scenarios, gotchas, domain vocabulary, and
11
+ cross-entity workflows. They are written for **both humans and agents** — you are a primary audience.
12
+
13
+ Two jobs, and you should do both as a matter of course:
14
+
15
+ 1. **Read** the sibling `.md` before/while you work on an entity, to get domain context.
16
+ 2. **Write** back to it whenever you learn something useful, weird, or non-obvious.
17
+
18
+ ## 1. Read it first
19
+
20
+ Before editing an entity — its `src/entities/<Entity>.ts`, its resolvers, a job that touches it, or its
21
+ tests — open `src/entities/<Entity>.md` if one exists. It routinely explains things you would otherwise
22
+ have to reverse-engineer or would get subtly wrong:
23
+
24
+ - **Business rationale** — *why* a field/entity exists and what real-world thing it models
25
+ (e.g. `PurchaseOrder.md` on tracking "what and why" a project's cost changed).
26
+ - **Worked scenarios** — concrete `I.e.` walkthroughs with real values ("when an `Employee` is termined, the status workflow is...").
27
+ - **Gotchas & edge cases** — footguns, "this looks stale but isn't", exemptions
28
+ - **Domain vocabulary** — statuses, flags, and other "esoteric unless you know it" domain concepts
29
+
30
+ Follow the cross-links (`[Book](Book.md)`, sometimes with anchors like
31
+ `Book.md#Definitions`) into related docs. If the doc is missing or thin, that's your cue to add
32
+ to it once you've figured things out (job #2).
33
+
34
+ ## 2. How the file maps to code (the codegen doc-sync)
35
+
36
+ `joist-config.json` has `"docs": true`, so `yarn joist-codegen` keeps these `.md` files and the entity
37
+ JSDocs in sync. Understanding this is what makes your writing land in the right place.
38
+
39
+ **Only two heading shapes are parsed and synced; everything else is free-form narrative:**
40
+
41
+ | `.md` section | Syncs to | Notes |
42
+ |---|---|---|
43
+ | `## Overview` (body) | the entity **class** JSDoc | exact heading `## Overview` |
44
+ | `## Fields` → `### <fieldName>` (body) | that field/property/relation's JSDoc | `### ` heading must be the **exact member name** |
45
+ | any other `## Section` (e.g. `## Hard vs. Soft Costs`, `## DB Constraints`, mermaid) | **nothing** | free-form; lives only in the `.md`, preserved verbatim |
46
+
47
+ Synced JSDocs are tagged `@generated <Entity>.md` in the `.ts` — that tag means "this comment came from
48
+ the `.md`; edit the `.md`, not here."
49
+
50
+ **Sync is bidirectional, but the `.md` wins.** `yarn joist-codegen`:
51
+
52
+ 1. **Backfills** the `.md` from any hand-written `.ts` JSDoc that isn't in the `.md` yet (so a jsdoc you
53
+ write directly on a field gets pulled into `## Fields` for you), then
54
+ 2. **Writes the `.md` back into the `.ts`** JSDocs — so for anything already in the `.md`, the `.md` is
55
+ the source of truth and will overwrite a divergent `.ts` comment.
56
+
57
+ Net rule: **to durably document an entity or field, edit the `.md`.** Hand-editing a `@generated` JSDoc
58
+ in the `.ts` gets stomped on the next codegen.
59
+
60
+ ### Field-heading constraints (easy to get wrong)
61
+
62
+ - `### <fieldName>` must be a **single word** — the parser matches `\w+` only. `### excludeFromBudget`
63
+ works; `### is excluded`, `` ### `excludeFromBudget` ``, or `### excludeFromBudget (derived)` are **not**
64
+ recognized as field docs.
65
+ - It must be the **exact** name of a field, relation, or property on the entity, and must sit **under the
66
+ `## Fields` heading**. Any other `##` heading ends the fields section — so keep all `### fieldName`
67
+ entries together under the one `## Fields` section (conventionally at the bottom of the file).
68
+ - **Methods don't sync** — only fields/getters/properties/relations get their JSDoc updated.
69
+
70
+ ## 3. Write back what you learn
71
+
72
+ When you discover something useful/weird/non-obvious while working — record it. This is the point of the
73
+ files. Good triggers to write:
74
+
75
+ - You just figured out **why** an entity or field exists, or what it really models.
76
+ - A **non-obvious business rule**, invariant, or "this only applies to X clients" exemption.
77
+ - A **gotcha / footgun** — a value that looks stale but isn't, an ordering requirement, a special-cased
78
+ type.
79
+ - A **cross-entity interaction** or workflow that isn't visible from one file.
80
+ - **Domain vocabulary** a newcomer (human or agent) wouldn't know.
81
+ - A **worked scenario** that makes an abstract entity concrete.
82
+
83
+ **Don't** document what the code already says plainly (restating a type, signature, or an obvious
84
+ one-liner), or transient implementation detail that will rot.
85
+
86
+ **Where to put it:**
87
+
88
+ - Something specific to one field → a `### <fieldName>` block under `## Fields`. It syncs to that
89
+ member's JSDoc, so it shows on hover/`@generated` in the `.ts`.
90
+ - Broad rationale, scenarios, diagrams, cross-entity workflows, DB constraints, glossary → a free-form
91
+ `##` section (`## Overview` for the headline, or a custom section like `## Employee Onboarding Flow`).
92
+
93
+ **Style** (match the existing docs):
94
+
95
+ - Lead with business meaning and *why*, not mechanics.
96
+ - Use `I.e. ...` worked examples with concrete values.
97
+ - Cross-link related entities with relative links: `[Book](Book.md)`.
98
+ - Reference field/entity names in backticks.
99
+
100
+ ## 4. Workflow to add or update a doc
101
+
102
+ 1. Edit `src/entities/<Entity>.md` (create it if missing — basename must equal the entity, e.g.
103
+ `Author.md`). For field docs, use the exact member name as a `### ` heading under `## Fields`.
104
+ 2. Sync into the JSDocs:
105
+ ```bash
106
+ mise exec -- yarn joist-codegen
107
+ ```
108
+ (or `mise exec -- yarn codegen` to also run graphql-codegen.)
109
+ 3. Verify the `@generated <Entity>.md` JSDoc now appears on the class / field in `src/entities/<Entity>.ts`.
110
+ 4. Commit the `.md` **and** the regenerated `.ts` JSDoc changes together.
111
+
112
+ Never hand-edit a `@generated <Entity>.md` JSDoc in the `.ts` — edit the `.md` and re-run codegen. Do not
113
+ touch files under `src/entities/codegen/` (see the repo's generated-files rules).
114
+
115
+ ## Skeleton for a new doc
116
+
117
+ ```markdown
118
+ # <Entity>
119
+
120
+ ## Overview
121
+
122
+ <What this entity models and *why* it exists, in business terms. One short paragraph.>
123
+
124
+ ## <Some Business Concept> <!-- free-form: rationale, scenarios, gotchas, diagrams; NOT synced -->
125
+
126
+ <Prose, `I.e.` examples, mermaid, cross-links to [OtherEntity](OtherEntity.md).>
127
+
128
+ ## Fields <!-- each ### below syncs into that member's JSDoc -->
129
+
130
+ ### someField
131
+
132
+ <Why it exists / the non-obvious rule or gotcha. Exact field name, single word.>
133
+ ```