@langadventurellc/task-trellis-mcp 2.8.1 → 2.9.0

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 (190) hide show
  1. package/README.md +9 -0
  2. package/dist/__tests__/serverStartup.test.js +8 -0
  3. package/dist/__tests__/serverStartup.test.js.map +1 -1
  4. package/dist/repositories/Repository.d.ts +4 -0
  5. package/dist/repositories/Repository.d.ts.map +1 -1
  6. package/dist/repositories/local/LocalRepository.d.ts +4 -0
  7. package/dist/repositories/local/LocalRepository.d.ts.map +1 -1
  8. package/dist/repositories/local/LocalRepository.js +16 -0
  9. package/dist/repositories/local/LocalRepository.js.map +1 -1
  10. package/dist/repositories/local/__tests__/assertSafeFilename.test.d.ts +2 -0
  11. package/dist/repositories/local/__tests__/assertSafeFilename.test.d.ts.map +1 -0
  12. package/dist/repositories/local/__tests__/assertSafeFilename.test.js +46 -0
  13. package/dist/repositories/local/__tests__/assertSafeFilename.test.js.map +1 -0
  14. package/dist/repositories/local/__tests__/deleteProjectFile.test.d.ts +2 -0
  15. package/dist/repositories/local/__tests__/deleteProjectFile.test.d.ts.map +1 -0
  16. package/dist/repositories/local/__tests__/deleteProjectFile.test.js +75 -0
  17. package/dist/repositories/local/__tests__/deleteProjectFile.test.js.map +1 -0
  18. package/dist/repositories/local/__tests__/getProjectFilesFolder.test.d.ts +2 -0
  19. package/dist/repositories/local/__tests__/getProjectFilesFolder.test.d.ts.map +1 -0
  20. package/dist/repositories/local/__tests__/getProjectFilesFolder.test.js +13 -0
  21. package/dist/repositories/local/__tests__/getProjectFilesFolder.test.js.map +1 -0
  22. package/dist/repositories/local/__tests__/listProjectFiles.test.d.ts +2 -0
  23. package/dist/repositories/local/__tests__/listProjectFiles.test.d.ts.map +1 -0
  24. package/dist/repositories/local/__tests__/listProjectFiles.test.js +78 -0
  25. package/dist/repositories/local/__tests__/listProjectFiles.test.js.map +1 -0
  26. package/dist/repositories/local/__tests__/readProjectFile.test.d.ts +2 -0
  27. package/dist/repositories/local/__tests__/readProjectFile.test.d.ts.map +1 -0
  28. package/dist/repositories/local/__tests__/readProjectFile.test.js +76 -0
  29. package/dist/repositories/local/__tests__/readProjectFile.test.js.map +1 -0
  30. package/dist/repositories/local/__tests__/writeProjectFile.test.d.ts +2 -0
  31. package/dist/repositories/local/__tests__/writeProjectFile.test.d.ts.map +1 -0
  32. package/dist/repositories/local/__tests__/writeProjectFile.test.js +92 -0
  33. package/dist/repositories/local/__tests__/writeProjectFile.test.js.map +1 -0
  34. package/dist/repositories/local/assertSafeFilename.d.ts +3 -0
  35. package/dist/repositories/local/assertSafeFilename.d.ts.map +1 -0
  36. package/dist/repositories/local/assertSafeFilename.js +20 -0
  37. package/dist/repositories/local/assertSafeFilename.js.map +1 -0
  38. package/dist/repositories/local/deleteProjectFile.d.ts +3 -0
  39. package/dist/repositories/local/deleteProjectFile.d.ts.map +1 -0
  40. package/dist/repositories/local/deleteProjectFile.js +21 -0
  41. package/dist/repositories/local/deleteProjectFile.js.map +1 -0
  42. package/dist/repositories/local/getProjectFilesFolder.d.ts +3 -0
  43. package/dist/repositories/local/getProjectFilesFolder.d.ts.map +1 -0
  44. package/dist/repositories/local/getProjectFilesFolder.js +9 -0
  45. package/dist/repositories/local/getProjectFilesFolder.js.map +1 -0
  46. package/dist/repositories/local/listProjectFiles.d.ts +3 -0
  47. package/dist/repositories/local/listProjectFiles.d.ts.map +1 -0
  48. package/dist/repositories/local/listProjectFiles.js +20 -0
  49. package/dist/repositories/local/listProjectFiles.js.map +1 -0
  50. package/dist/repositories/local/readProjectFile.d.ts +3 -0
  51. package/dist/repositories/local/readProjectFile.d.ts.map +1 -0
  52. package/dist/repositories/local/readProjectFile.js +23 -0
  53. package/dist/repositories/local/readProjectFile.js.map +1 -0
  54. package/dist/repositories/local/writeProjectFile.d.ts +3 -0
  55. package/dist/repositories/local/writeProjectFile.d.ts.map +1 -0
  56. package/dist/repositories/local/writeProjectFile.js +26 -0
  57. package/dist/repositories/local/writeProjectFile.js.map +1 -0
  58. package/dist/server.js +12 -0
  59. package/dist/server.js.map +1 -1
  60. package/dist/services/TaskTrellisService.d.ts +28 -0
  61. package/dist/services/TaskTrellisService.d.ts.map +1 -1
  62. package/dist/services/local/LocalTaskTrellisService.d.ts +24 -0
  63. package/dist/services/local/LocalTaskTrellisService.d.ts.map +1 -1
  64. package/dist/services/local/LocalTaskTrellisService.js +16 -0
  65. package/dist/services/local/LocalTaskTrellisService.js.map +1 -1
  66. package/dist/services/local/__tests__/appendModifiedFiles.test.js +4 -0
  67. package/dist/services/local/__tests__/appendModifiedFiles.test.js.map +1 -1
  68. package/dist/services/local/__tests__/appendObjectLog.test.js +4 -0
  69. package/dist/services/local/__tests__/appendObjectLog.test.js.map +1 -1
  70. package/dist/services/local/__tests__/claimTask.test.js +4 -0
  71. package/dist/services/local/__tests__/claimTask.test.js.map +1 -1
  72. package/dist/services/local/__tests__/completeTask.test.js +4 -0
  73. package/dist/services/local/__tests__/completeTask.test.js.map +1 -1
  74. package/dist/services/local/__tests__/createObject.test.js +4 -0
  75. package/dist/services/local/__tests__/createObject.test.js.map +1 -1
  76. package/dist/services/local/__tests__/deleteProjectFile.test.d.ts +2 -0
  77. package/dist/services/local/__tests__/deleteProjectFile.test.d.ts.map +1 -0
  78. package/dist/services/local/__tests__/deleteProjectFile.test.js +39 -0
  79. package/dist/services/local/__tests__/deleteProjectFile.test.js.map +1 -0
  80. package/dist/services/local/__tests__/getNextAvailableIssue.test.js +4 -0
  81. package/dist/services/local/__tests__/getNextAvailableIssue.test.js.map +1 -1
  82. package/dist/services/local/__tests__/listObjects.test.js +4 -0
  83. package/dist/services/local/__tests__/listObjects.test.js.map +1 -1
  84. package/dist/services/local/__tests__/listProjectFiles.test.d.ts +2 -0
  85. package/dist/services/local/__tests__/listProjectFiles.test.d.ts.map +1 -0
  86. package/dist/services/local/__tests__/listProjectFiles.test.js +46 -0
  87. package/dist/services/local/__tests__/listProjectFiles.test.js.map +1 -0
  88. package/dist/services/local/__tests__/pruneClosed.test.js +4 -0
  89. package/dist/services/local/__tests__/pruneClosed.test.js.map +1 -1
  90. package/dist/services/local/__tests__/readProjectFile.test.d.ts +2 -0
  91. package/dist/services/local/__tests__/readProjectFile.test.d.ts.map +1 -0
  92. package/dist/services/local/__tests__/readProjectFile.test.js +39 -0
  93. package/dist/services/local/__tests__/readProjectFile.test.js.map +1 -0
  94. package/dist/services/local/__tests__/updateObject.test.js +4 -0
  95. package/dist/services/local/__tests__/updateObject.test.js.map +1 -1
  96. package/dist/services/local/__tests__/writeProjectFile.test.d.ts +2 -0
  97. package/dist/services/local/__tests__/writeProjectFile.test.d.ts.map +1 -0
  98. package/dist/services/local/__tests__/writeProjectFile.test.js +49 -0
  99. package/dist/services/local/__tests__/writeProjectFile.test.js.map +1 -0
  100. package/dist/services/local/deleteProjectFile.d.ts +9 -0
  101. package/dist/services/local/deleteProjectFile.d.ts.map +1 -0
  102. package/dist/services/local/deleteProjectFile.js +23 -0
  103. package/dist/services/local/deleteProjectFile.js.map +1 -0
  104. package/dist/services/local/listProjectFiles.d.ts +9 -0
  105. package/dist/services/local/listProjectFiles.d.ts.map +1 -0
  106. package/dist/services/local/listProjectFiles.js +21 -0
  107. package/dist/services/local/listProjectFiles.js.map +1 -0
  108. package/dist/services/local/readProjectFile.d.ts +9 -0
  109. package/dist/services/local/readProjectFile.d.ts.map +1 -0
  110. package/dist/services/local/readProjectFile.js +21 -0
  111. package/dist/services/local/readProjectFile.js.map +1 -0
  112. package/dist/services/local/writeProjectFile.d.ts +9 -0
  113. package/dist/services/local/writeProjectFile.d.ts.map +1 -0
  114. package/dist/services/local/writeProjectFile.js +23 -0
  115. package/dist/services/local/writeProjectFile.js.map +1 -0
  116. package/dist/tools/__tests__/addAttachmentTool.test.js +4 -0
  117. package/dist/tools/__tests__/addAttachmentTool.test.js.map +1 -1
  118. package/dist/tools/__tests__/appendModifiedFilesTool.test.js +4 -0
  119. package/dist/tools/__tests__/appendModifiedFilesTool.test.js.map +1 -1
  120. package/dist/tools/__tests__/appendObjectLogTool.test.js +4 -0
  121. package/dist/tools/__tests__/appendObjectLogTool.test.js.map +1 -1
  122. package/dist/tools/__tests__/claimTaskTool.test.js +8 -0
  123. package/dist/tools/__tests__/claimTaskTool.test.js.map +1 -1
  124. package/dist/tools/__tests__/completeTaskTool.test.js +8 -0
  125. package/dist/tools/__tests__/completeTaskTool.test.js.map +1 -1
  126. package/dist/tools/__tests__/createObjectTool.test.js +4 -0
  127. package/dist/tools/__tests__/createObjectTool.test.js.map +1 -1
  128. package/dist/tools/__tests__/deleteObjectTool.test.js +4 -0
  129. package/dist/tools/__tests__/deleteObjectTool.test.js.map +1 -1
  130. package/dist/tools/__tests__/deleteProjectFileTool.test.d.ts +2 -0
  131. package/dist/tools/__tests__/deleteProjectFileTool.test.d.ts.map +1 -0
  132. package/dist/tools/__tests__/deleteProjectFileTool.test.js +60 -0
  133. package/dist/tools/__tests__/deleteProjectFileTool.test.js.map +1 -0
  134. package/dist/tools/__tests__/getObjectTool.test.js +4 -0
  135. package/dist/tools/__tests__/getObjectTool.test.js.map +1 -1
  136. package/dist/tools/__tests__/listObjectsTool.test.js +8 -0
  137. package/dist/tools/__tests__/listObjectsTool.test.js.map +1 -1
  138. package/dist/tools/__tests__/listProjectFilesTool.test.d.ts +2 -0
  139. package/dist/tools/__tests__/listProjectFilesTool.test.d.ts.map +1 -0
  140. package/dist/tools/__tests__/listProjectFilesTool.test.js +59 -0
  141. package/dist/tools/__tests__/listProjectFilesTool.test.js.map +1 -0
  142. package/dist/tools/__tests__/readProjectFileTool.test.d.ts +2 -0
  143. package/dist/tools/__tests__/readProjectFileTool.test.d.ts.map +1 -0
  144. package/dist/tools/__tests__/readProjectFileTool.test.js +64 -0
  145. package/dist/tools/__tests__/readProjectFileTool.test.js.map +1 -0
  146. package/dist/tools/__tests__/removeAttachmentTool.test.js +4 -0
  147. package/dist/tools/__tests__/removeAttachmentTool.test.js.map +1 -1
  148. package/dist/tools/__tests__/updateObjectTool.test.js +4 -0
  149. package/dist/tools/__tests__/updateObjectTool.test.js.map +1 -1
  150. package/dist/tools/__tests__/writeProjectFileTool.test.d.ts +2 -0
  151. package/dist/tools/__tests__/writeProjectFileTool.test.d.ts.map +1 -0
  152. package/dist/tools/__tests__/writeProjectFileTool.test.js +87 -0
  153. package/dist/tools/__tests__/writeProjectFileTool.test.js.map +1 -0
  154. package/dist/tools/deleteProjectFileTool.d.ts +23 -0
  155. package/dist/tools/deleteProjectFileTool.d.ts.map +1 -0
  156. package/dist/tools/deleteProjectFileTool.js +23 -0
  157. package/dist/tools/deleteProjectFileTool.js.map +1 -0
  158. package/dist/tools/index.d.ts +4 -0
  159. package/dist/tools/index.d.ts.map +1 -1
  160. package/dist/tools/index.js +13 -1
  161. package/dist/tools/index.js.map +1 -1
  162. package/dist/tools/listProjectFilesTool.d.ts +18 -0
  163. package/dist/tools/listProjectFilesTool.d.ts.map +1 -0
  164. package/dist/tools/listProjectFilesTool.js +17 -0
  165. package/dist/tools/listProjectFilesTool.js.map +1 -0
  166. package/dist/tools/readProjectFileTool.d.ts +23 -0
  167. package/dist/tools/readProjectFileTool.d.ts.map +1 -0
  168. package/dist/tools/readProjectFileTool.js +23 -0
  169. package/dist/tools/readProjectFileTool.js.map +1 -0
  170. package/dist/tools/writeProjectFileTool.d.ts +32 -0
  171. package/dist/tools/writeProjectFileTool.d.ts.map +1 -0
  172. package/dist/tools/writeProjectFileTool.js +32 -0
  173. package/dist/tools/writeProjectFileTool.js.map +1 -0
  174. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js +4 -0
  175. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js.map +1 -1
  176. package/dist/utils/__tests__/checkPrerequisitesComplete.test.js +16 -0
  177. package/dist/utils/__tests__/checkPrerequisitesComplete.test.js.map +1 -1
  178. package/dist/utils/__tests__/filterUnavailableObjects.test.js +4 -0
  179. package/dist/utils/__tests__/filterUnavailableObjects.test.js.map +1 -1
  180. package/dist/utils/__tests__/isRequiredForOtherObjects.test.js +16 -0
  181. package/dist/utils/__tests__/isRequiredForOtherObjects.test.js.map +1 -1
  182. package/dist/utils/__tests__/updateParentHierarchy.test.js +4 -0
  183. package/dist/utils/__tests__/updateParentHierarchy.test.js.map +1 -1
  184. package/dist/validation/__tests__/validateObjectCreation.test.js +4 -0
  185. package/dist/validation/__tests__/validateObjectCreation.test.js.map +1 -1
  186. package/dist/validation/__tests__/validateParentExists.test.js +4 -0
  187. package/dist/validation/__tests__/validateParentExists.test.js.map +1 -1
  188. package/dist/validation/__tests__/validateStatusTransition.test.js +4 -0
  189. package/dist/validation/__tests__/validateStatusTransition.test.js.map +1 -1
  190. package/package.json +1 -1
package/README.md CHANGED
@@ -181,6 +181,15 @@ The project tree view includes several features for navigating and filtering iss
181
181
 
182
182
  Attachments are returned as a list of filenames when calling **get_issue** and are linked in the browser UI detail view.
183
183
 
184
+ ### Project Files
185
+
186
+ - **write_project_file** - Write a UTF-8 text file to the project's files directory. Overwrites by default; pass `failIfExists: true` to error on collision instead.
187
+ - **read_project_file** - Read a UTF-8 text file from the project's files directory.
188
+ - **list_project_files** - List filenames in the project's files directory (returns `[]` if the directory does not yet exist).
189
+ - **delete_project_file** - Delete a named file from the project's files directory.
190
+
191
+ Project files live at `~/.trellis/projects/<key>/files/<filename>` and are scoped to the project — not tied to any individual issue. Filenames must not contain path separators or `..` (path-traversal protection); v1 supports a flat namespace of UTF-8 text files.
192
+
184
193
  ### Browser UI
185
194
 
186
195
  - **get_ui_info** - Returns the URL and port of the Task Trellis browser UI; use when the user asks about the UI or wants to view issues in a browser
@@ -32,6 +32,10 @@ const mockRepository = {
32
32
  listAttachments: jest.fn(),
33
33
  copyAttachment: jest.fn(),
34
34
  deleteAttachment: jest.fn(),
35
+ writeProjectFile: jest.fn(),
36
+ readProjectFile: jest.fn(),
37
+ listProjectFiles: jest.fn(),
38
+ deleteProjectFile: jest.fn(),
35
39
  };
36
40
  const mockService = {
37
41
  createObject: jest.fn(),
@@ -45,6 +49,10 @@ const mockService = {
45
49
  pruneClosed: jest.fn(),
46
50
  addAttachment: jest.fn(),
47
51
  removeAttachment: jest.fn(),
52
+ writeProjectFile: jest.fn(),
53
+ readProjectFile: jest.fn(),
54
+ listProjectFiles: jest.fn(),
55
+ deleteProjectFile: jest.fn(),
48
56
  };
49
57
  // Mock the repository and service getter functions
50
58
  jest.mock("../server", () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"serverStartup.test.js","sourceRoot":"","sources":["../../src/__tests__/serverStartup.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serverStartup.test.js","sourceRoot":"","sources":["../../src/__tests__/serverStartup.test.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,9 @@ export interface Repository {
9
9
  listAttachments(obj: TrellisObject): Promise<string[]>;
10
10
  copyAttachment(id: string, sourcePath: string): Promise<string>;
11
11
  deleteAttachment(id: string, filename: string): Promise<void>;
12
+ writeProjectFile(filename: string, content: string, failIfExists?: boolean): Promise<void>;
13
+ readProjectFile(filename: string): Promise<string>;
14
+ listProjectFiles(): Promise<string[]>;
15
+ deleteProjectFile(filename: string): Promise<void>;
12
16
  }
13
17
  //# sourceMappingURL=Repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Repository.d.ts","sourceRoot":"","sources":["../../src/repositories/Repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,UAAU;IACzB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACzD,UAAU,CACR,aAAa,CAAC,EAAE,OAAO,EACvB,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,EAC9C,MAAM,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,EACpD,QAAQ,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,GACzD,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5B,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5B,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D"}
1
+ {"version":3,"file":"Repository.d.ts","sourceRoot":"","sources":["../../src/repositories/Repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,UAAU;IACzB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACzD,UAAU,CACR,aAAa,CAAC,EAAE,OAAO,EACvB,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,EAC9C,MAAM,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,EACpD,QAAQ,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,GACzD,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5B,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5B,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,gBAAgB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD"}
@@ -23,5 +23,9 @@ export declare class LocalRepository implements Repository {
23
23
  listAttachments(obj: TrellisObject): Promise<string[]>;
24
24
  copyAttachment(id: string, sourcePath: string): Promise<string>;
25
25
  deleteAttachment(id: string, filename: string): Promise<void>;
26
+ writeProjectFile(filename: string, content: string, failIfExists?: boolean): Promise<void>;
27
+ readProjectFile(filename: string): Promise<string>;
28
+ listProjectFiles(): Promise<string[]>;
29
+ deleteProjectFile(filename: string): Promise<void>;
26
30
  }
27
31
  //# sourceMappingURL=LocalRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocalRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/local/LocalRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;GAGG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAMpC,OAAO,CAAC,MAAM;IAL1B;;;;OAIG;gBACiB,MAAM,EAAE,YAAY;IAQlC,aAAa,CAAC,EAAE,EAAE,MAAM;IAKxB,UAAU,CACd,aAAa,CAAC,EAAE,OAAO,EACvB,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,EAC9C,MAAM,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,EACpD,QAAQ,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,EAAE;IAatD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO;IASvD,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUrD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxD,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzD,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKtD,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/D,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIpE"}
1
+ {"version":3,"file":"LocalRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/local/LocalRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;GAGG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAMpC,OAAO,CAAC,MAAM;IAL1B;;;;OAIG;gBACiB,MAAM,EAAE,YAAY;IAQlC,aAAa,CAAC,EAAE,EAAE,MAAM;IAKxB,UAAU,CACd,aAAa,CAAC,EAAE,OAAO,EACvB,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,EAC9C,MAAM,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,EACpD,QAAQ,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,EAAE;IAatD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO;IASvD,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUrD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxD,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzD,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKtD,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/D,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,CAAC;IAUV,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlD,gBAAgB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKrC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIzD"}
@@ -102,6 +102,22 @@ class LocalRepository {
102
102
  const { deleteAttachment } = await Promise.resolve().then(() => __importStar(require("./deleteAttachment.js")));
103
103
  return deleteAttachment(id, filename, this.config.planningRootFolder);
104
104
  }
105
+ async writeProjectFile(filename, content, failIfExists) {
106
+ const { writeProjectFile } = await Promise.resolve().then(() => __importStar(require("./writeProjectFile.js")));
107
+ return writeProjectFile(filename, content, this.config.planningRootFolder, failIfExists);
108
+ }
109
+ async readProjectFile(filename) {
110
+ const { readProjectFile } = await Promise.resolve().then(() => __importStar(require("./readProjectFile.js")));
111
+ return readProjectFile(filename, this.config.planningRootFolder);
112
+ }
113
+ async listProjectFiles() {
114
+ const { listProjectFiles } = await Promise.resolve().then(() => __importStar(require("./listProjectFiles.js")));
115
+ return listProjectFiles(this.config.planningRootFolder);
116
+ }
117
+ async deleteProjectFile(filename) {
118
+ const { deleteProjectFile } = await Promise.resolve().then(() => __importStar(require("./deleteProjectFile.js")));
119
+ return deleteProjectFile(filename, this.config.planningRootFolder);
120
+ }
105
121
  }
106
122
  exports.LocalRepository = LocalRepository;
107
123
  //# sourceMappingURL=LocalRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocalRepository.js","sourceRoot":"","sources":["../../../src/repositories/local/LocalRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LocalRepository.js","sourceRoot":"","sources":["../../../src/repositories/local/LocalRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=assertSafeFilename.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertSafeFilename.test.d.ts","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/assertSafeFilename.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assertSafeFilename_1 = require("../assertSafeFilename");
4
+ describe("assertSafeFilename", () => {
5
+ describe("accepts valid filenames", () => {
6
+ it("accepts a plain filename", () => {
7
+ expect(() => (0, assertSafeFilename_1.assertSafeFilename)("foo.md")).not.toThrow();
8
+ });
9
+ it("accepts a hidden file", () => {
10
+ expect(() => (0, assertSafeFilename_1.assertSafeFilename)(".gitignore")).not.toThrow();
11
+ });
12
+ it("accepts a multi-dot filename", () => {
13
+ expect(() => (0, assertSafeFilename_1.assertSafeFilename)("a.b.c.txt")).not.toThrow();
14
+ });
15
+ });
16
+ describe("rejects invalid filenames", () => {
17
+ it("rejects empty string", () => {
18
+ expect(() => (0, assertSafeFilename_1.assertSafeFilename)("")).toThrow("Filename must be a non-empty string");
19
+ });
20
+ it("rejects '.'", () => {
21
+ expect(() => (0, assertSafeFilename_1.assertSafeFilename)(".")).toThrow("Invalid filename: '.'");
22
+ });
23
+ it("rejects '..'", () => {
24
+ expect(() => (0, assertSafeFilename_1.assertSafeFilename)("..")).toThrow("Invalid filename: '..'");
25
+ });
26
+ it("rejects filename with forward slash", () => {
27
+ expect(() => (0, assertSafeFilename_1.assertSafeFilename)("foo/bar")).toThrow("Invalid filename 'foo/bar': must not contain path separators");
28
+ });
29
+ it("rejects filename with backslash", () => {
30
+ expect(() => (0, assertSafeFilename_1.assertSafeFilename)("foo\\bar")).toThrow("Invalid filename 'foo\\bar': must not contain path separators");
31
+ });
32
+ it("rejects embedded '..' (parent traversal)", () => {
33
+ expect(() => (0, assertSafeFilename_1.assertSafeFilename)("../etc/passwd")).toThrow("Invalid filename '../etc/passwd': must not contain path separators");
34
+ });
35
+ it("rejects absolute path", () => {
36
+ expect(() => (0, assertSafeFilename_1.assertSafeFilename)("/abs/path")).toThrow("Invalid filename '/abs/path': must not contain path separators");
37
+ });
38
+ it("rejects mid-string '..'", () => {
39
+ expect(() => (0, assertSafeFilename_1.assertSafeFilename)("a..b")).toThrow("Invalid filename 'a..b': must not contain '..'");
40
+ });
41
+ it("rejects filename with nul byte", () => {
42
+ expect(() => (0, assertSafeFilename_1.assertSafeFilename)("fo\x00o")).toThrow();
43
+ });
44
+ });
45
+ });
46
+ //# sourceMappingURL=assertSafeFilename.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertSafeFilename.test.js","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/assertSafeFilename.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deleteProjectFile.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteProjectFile.test.d.ts","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/deleteProjectFile.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const fsp = __importStar(require("fs/promises"));
37
+ const assertSafeFilenameModule = __importStar(require("../assertSafeFilename"));
38
+ const deleteProjectFile_1 = require("../deleteProjectFile");
39
+ jest.mock("fs/promises");
40
+ jest.mock("../assertSafeFilename");
41
+ jest.mock("../getProjectFilesFolder", () => ({
42
+ getProjectFilesFolder: (root) => `${root}/files`,
43
+ }));
44
+ const mockAccess = jest.mocked(fsp.access);
45
+ const mockUnlink = jest.mocked(fsp.unlink);
46
+ const mockAssertSafeFilename = jest.mocked(assertSafeFilenameModule.assertSafeFilename);
47
+ describe("deleteProjectFile", () => {
48
+ const root = "/planning";
49
+ const folder = "/planning/files";
50
+ beforeEach(() => {
51
+ jest.clearAllMocks();
52
+ mockAccess.mockResolvedValue(undefined);
53
+ mockUnlink.mockResolvedValue(undefined);
54
+ });
55
+ it("deletes file when it exists", async () => {
56
+ await (0, deleteProjectFile_1.deleteProjectFile)("foo.md", root);
57
+ expect(mockAssertSafeFilename).toHaveBeenCalledWith("foo.md");
58
+ expect(mockAccess).toHaveBeenCalledWith(`${folder}/foo.md`);
59
+ expect(mockUnlink).toHaveBeenCalledWith(`${folder}/foo.md`);
60
+ });
61
+ it("throws user-friendly message when file does not exist", async () => {
62
+ mockAccess.mockRejectedValueOnce(Object.assign(new Error("ENOENT"), { code: "ENOENT" }));
63
+ await expect((0, deleteProjectFile_1.deleteProjectFile)("foo.md", root)).rejects.toThrow("Project file 'foo.md' does not exist");
64
+ expect(mockUnlink).not.toHaveBeenCalled();
65
+ });
66
+ it("filename rejection happens before any fs call", async () => {
67
+ mockAssertSafeFilename.mockImplementationOnce(() => {
68
+ throw new Error("Filename must be a non-empty string");
69
+ });
70
+ await expect((0, deleteProjectFile_1.deleteProjectFile)("", root)).rejects.toThrow("Filename must be a non-empty string");
71
+ expect(mockAccess).not.toHaveBeenCalled();
72
+ expect(mockUnlink).not.toHaveBeenCalled();
73
+ });
74
+ });
75
+ //# sourceMappingURL=deleteProjectFile.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteProjectFile.test.js","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/deleteProjectFile.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AACnC,gFAAkE;AAClE,4DAAyD;AAEzD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACzB,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACnC,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,qBAAqB,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,QAAQ;CACzD,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3C,MAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,CACxC,wBAAwB,CAAC,kBAAkB,CAC5C,CAAC;AAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,MAAM,IAAI,GAAG,WAAW,CAAC;IACzB,MAAM,MAAM,GAAG,iBAAiB,CAAC;IAEjC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACxC,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,IAAA,qCAAiB,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAExC,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC;QAC5D,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,UAAU,CAAC,qBAAqB,CAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CACvD,CAAC;QAEF,MAAM,MAAM,CAAC,IAAA,qCAAiB,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC7D,sCAAsC,CACvC,CAAC;QAEF,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,sBAAsB,CAAC,sBAAsB,CAAC,GAAG,EAAE;YACjD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,IAAA,qCAAiB,EAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACvD,qCAAqC,CACtC,CAAC;QAEF,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC1C,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getProjectFilesFolder.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProjectFilesFolder.test.d.ts","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/getProjectFilesFolder.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path_1 = require("path");
4
+ const getProjectFilesFolder_1 = require("../getProjectFilesFolder");
5
+ describe("getProjectFilesFolder", () => {
6
+ it("returns <root>/files for a typical root", () => {
7
+ expect((0, getProjectFilesFolder_1.getProjectFilesFolder)("/planning")).toBe((0, path_1.join)("/planning", "files"));
8
+ });
9
+ it("joins correctly when root has a trailing slash", () => {
10
+ expect((0, getProjectFilesFolder_1.getProjectFilesFolder)("/planning/")).toBe((0, path_1.join)("/planning/", "files"));
11
+ });
12
+ });
13
+ //# sourceMappingURL=getProjectFilesFolder.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProjectFilesFolder.test.js","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/getProjectFilesFolder.test.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,oEAAiE;AAEjE,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,IAAA,6CAAqB,EAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,IAAA,6CAAqB,EAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAC9C,IAAA,WAAI,EAAC,YAAY,EAAE,OAAO,CAAC,CAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=listProjectFiles.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listProjectFiles.test.d.ts","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/listProjectFiles.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const fsp = __importStar(require("fs/promises"));
37
+ const listProjectFiles_1 = require("../listProjectFiles");
38
+ jest.mock("fs/promises");
39
+ jest.mock("../getProjectFilesFolder", () => ({
40
+ getProjectFilesFolder: (root) => `${root}/files`,
41
+ }));
42
+ const mockReaddir = jest.mocked(fsp.readdir);
43
+ const makeDirents = (entries) => entries.map((e) => ({
44
+ name: e.name,
45
+ isFile: () => e.isFile,
46
+ isDirectory: () => !e.isFile,
47
+ isBlockDevice: () => false,
48
+ isCharacterDevice: () => false,
49
+ isSymbolicLink: () => false,
50
+ isFIFO: () => false,
51
+ isSocket: () => false,
52
+ parentPath: "",
53
+ }));
54
+ describe("listProjectFiles", () => {
55
+ const root = "/planning";
56
+ beforeEach(() => {
57
+ jest.clearAllMocks();
58
+ });
59
+ it("returns filenames when entries exist (directories excluded)", async () => {
60
+ mockReaddir.mockResolvedValueOnce(makeDirents([
61
+ { name: "notes.md", isFile: true },
62
+ { name: "archive", isFile: false },
63
+ { name: "report.txt", isFile: true },
64
+ ]));
65
+ const result = await (0, listProjectFiles_1.listProjectFiles)(root);
66
+ expect(result).toEqual(["notes.md", "report.txt"]);
67
+ });
68
+ it("returns [] when folder does not exist (ENOENT)", async () => {
69
+ mockReaddir.mockRejectedValueOnce(Object.assign(new Error("ENOENT"), { code: "ENOENT" }));
70
+ const result = await (0, listProjectFiles_1.listProjectFiles)(root);
71
+ expect(result).toEqual([]);
72
+ });
73
+ it("re-throws non-ENOENT errors", async () => {
74
+ mockReaddir.mockRejectedValueOnce(new Error("Permission denied"));
75
+ await expect((0, listProjectFiles_1.listProjectFiles)(root)).rejects.toThrow("Permission denied");
76
+ });
77
+ });
78
+ //# sourceMappingURL=listProjectFiles.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listProjectFiles.test.js","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/listProjectFiles.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AACnC,0DAAuD;AAEvD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACzB,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,qBAAqB,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,QAAQ;CACzD,CAAC,CAAC,CAAC;AAEJ,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAI7C,MAAM,WAAW,GAAG,CAClB,OAAiD,EAClC,EAAE,CACjB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClB,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM;IACtB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;IAC5B,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;IAC1B,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK;IAC9B,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK;IAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;IACnB,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;IACrB,UAAU,EAAE,EAAE;CACf,CAAC,CAA6B,CAAC;AAElC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,IAAI,GAAG,WAAW,CAAC;IAEzB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,WAAW,CAAC,qBAAqB,CAC/B,WAAW,CAAC;YACV,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;YAClC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;YAClC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE;SACrC,CAAC,CACH,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,EAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,WAAW,CAAC,qBAAqB,CAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CACvD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,EAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,WAAW,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAElE,MAAM,MAAM,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=readProjectFile.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readProjectFile.test.d.ts","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/readProjectFile.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const fsp = __importStar(require("fs/promises"));
37
+ const assertSafeFilenameModule = __importStar(require("../assertSafeFilename"));
38
+ const readProjectFile_1 = require("../readProjectFile");
39
+ jest.mock("fs/promises");
40
+ jest.mock("../assertSafeFilename");
41
+ jest.mock("../getProjectFilesFolder", () => ({
42
+ getProjectFilesFolder: (root) => `${root}/files`,
43
+ }));
44
+ const mockReadFile = jest.mocked(fsp.readFile);
45
+ const mockAssertSafeFilename = jest.mocked(assertSafeFilenameModule.assertSafeFilename);
46
+ describe("readProjectFile", () => {
47
+ const root = "/planning";
48
+ const folder = "/planning/files";
49
+ beforeEach(() => {
50
+ jest.clearAllMocks();
51
+ });
52
+ it("returns content on successful read", async () => {
53
+ mockReadFile.mockResolvedValueOnce("file contents");
54
+ const result = await (0, readProjectFile_1.readProjectFile)("foo.md", root);
55
+ expect(result).toBe("file contents");
56
+ expect(mockReadFile).toHaveBeenCalledWith(`${folder}/foo.md`, {
57
+ encoding: "utf8",
58
+ });
59
+ });
60
+ it("throws user-friendly message on ENOENT", async () => {
61
+ mockReadFile.mockRejectedValueOnce(Object.assign(new Error("ENOENT"), { code: "ENOENT" }));
62
+ await expect((0, readProjectFile_1.readProjectFile)("foo.md", root)).rejects.toThrow("Project file 'foo.md' does not exist");
63
+ });
64
+ it("re-throws non-ENOENT errors", async () => {
65
+ mockReadFile.mockRejectedValueOnce(new Error("Permission denied"));
66
+ await expect((0, readProjectFile_1.readProjectFile)("foo.md", root)).rejects.toThrow("Permission denied");
67
+ });
68
+ it("filename rejection happens before readFile", async () => {
69
+ mockAssertSafeFilename.mockImplementationOnce(() => {
70
+ throw new Error("Filename must be a non-empty string");
71
+ });
72
+ await expect((0, readProjectFile_1.readProjectFile)("", root)).rejects.toThrow("Filename must be a non-empty string");
73
+ expect(mockReadFile).not.toHaveBeenCalled();
74
+ });
75
+ });
76
+ //# sourceMappingURL=readProjectFile.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readProjectFile.test.js","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/readProjectFile.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AACnC,gFAAkE;AAClE,wDAAqD;AAErD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACzB,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACnC,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,qBAAqB,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,QAAQ;CACzD,CAAC,CAAC,CAAC;AAEJ,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/C,MAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,CACxC,wBAAwB,CAAC,kBAAkB,CAC5C,CAAC;AAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,IAAI,GAAG,WAAW,CAAC;IACzB,MAAM,MAAM,GAAG,iBAAiB,CAAC;IAEjC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,YAAY,CAAC,qBAAqB,CAAC,eAAoC,CAAC,CAAC;QAEzE,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAe,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAErD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrC,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,GAAG,MAAM,SAAS,EAAE;YAC5D,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,YAAY,CAAC,qBAAqB,CAChC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CACvD,CAAC;QAEF,MAAM,MAAM,CAAC,IAAA,iCAAe,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC3D,sCAAsC,CACvC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,YAAY,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAEnE,MAAM,MAAM,CAAC,IAAA,iCAAe,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC3D,mBAAmB,CACpB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,sBAAsB,CAAC,sBAAsB,CAAC,GAAG,EAAE;YACjD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,IAAA,iCAAe,EAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACrD,qCAAqC,CACtC,CAAC;QAEF,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=writeProjectFile.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeProjectFile.test.d.ts","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/writeProjectFile.test.ts"],"names":[],"mappings":""}