@langadventurellc/task-trellis-mcp 0.1.0-rc.3

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 (343) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +81 -0
  3. package/dist/configuration/ServerConfig.d.ts +8 -0
  4. package/dist/configuration/ServerConfig.d.ts.map +1 -0
  5. package/dist/configuration/ServerConfig.js +3 -0
  6. package/dist/configuration/ServerConfig.js.map +1 -0
  7. package/dist/configuration/index.d.ts +2 -0
  8. package/dist/configuration/index.d.ts.map +1 -0
  9. package/dist/configuration/index.js +18 -0
  10. package/dist/configuration/index.js.map +1 -0
  11. package/dist/models/TrellisObject.d.ts +18 -0
  12. package/dist/models/TrellisObject.d.ts.map +1 -0
  13. package/dist/models/TrellisObject.js +3 -0
  14. package/dist/models/TrellisObject.js.map +1 -0
  15. package/dist/models/TrellisObjectPriority.d.ts +6 -0
  16. package/dist/models/TrellisObjectPriority.d.ts.map +1 -0
  17. package/dist/models/TrellisObjectPriority.js +10 -0
  18. package/dist/models/TrellisObjectPriority.js.map +1 -0
  19. package/dist/models/TrellisObjectStatus.d.ts +8 -0
  20. package/dist/models/TrellisObjectStatus.d.ts.map +1 -0
  21. package/dist/models/TrellisObjectStatus.js +12 -0
  22. package/dist/models/TrellisObjectStatus.js.map +1 -0
  23. package/dist/models/TrellisObjectType.d.ts +7 -0
  24. package/dist/models/TrellisObjectType.d.ts.map +1 -0
  25. package/dist/models/TrellisObjectType.js +11 -0
  26. package/dist/models/TrellisObjectType.js.map +1 -0
  27. package/dist/models/__tests__/isClaimable.test.d.ts +2 -0
  28. package/dist/models/__tests__/isClaimable.test.d.ts.map +1 -0
  29. package/dist/models/__tests__/isClaimable.test.js +101 -0
  30. package/dist/models/__tests__/isClaimable.test.js.map +1 -0
  31. package/dist/models/__tests__/isClosed.test.d.ts +2 -0
  32. package/dist/models/__tests__/isClosed.test.d.ts.map +1 -0
  33. package/dist/models/__tests__/isClosed.test.js +84 -0
  34. package/dist/models/__tests__/isClosed.test.js.map +1 -0
  35. package/dist/models/__tests__/isOpen.test.d.ts +2 -0
  36. package/dist/models/__tests__/isOpen.test.d.ts.map +1 -0
  37. package/dist/models/__tests__/isOpen.test.js +84 -0
  38. package/dist/models/__tests__/isOpen.test.js.map +1 -0
  39. package/dist/models/index.d.ts +8 -0
  40. package/dist/models/index.d.ts.map +1 -0
  41. package/dist/models/index.js +16 -0
  42. package/dist/models/index.js.map +1 -0
  43. package/dist/models/isClaimable.d.ts +10 -0
  44. package/dist/models/isClaimable.d.ts.map +1 -0
  45. package/dist/models/isClaimable.js +16 -0
  46. package/dist/models/isClaimable.js.map +1 -0
  47. package/dist/models/isClosed.d.ts +10 -0
  48. package/dist/models/isClosed.d.ts.map +1 -0
  49. package/dist/models/isClosed.js +16 -0
  50. package/dist/models/isClosed.js.map +1 -0
  51. package/dist/models/isOpen.d.ts +10 -0
  52. package/dist/models/isOpen.d.ts.map +1 -0
  53. package/dist/models/isOpen.js +16 -0
  54. package/dist/models/isOpen.js.map +1 -0
  55. package/dist/repositories/Repository.d.ts +8 -0
  56. package/dist/repositories/Repository.d.ts.map +1 -0
  57. package/dist/repositories/Repository.js +3 -0
  58. package/dist/repositories/Repository.js.map +1 -0
  59. package/dist/repositories/index.d.ts +3 -0
  60. package/dist/repositories/index.d.ts.map +1 -0
  61. package/dist/repositories/index.js +19 -0
  62. package/dist/repositories/index.js.map +1 -0
  63. package/dist/repositories/local/LocalRepository.d.ts +21 -0
  64. package/dist/repositories/local/LocalRepository.d.ts.map +1 -0
  65. package/dist/repositories/local/LocalRepository.js +75 -0
  66. package/dist/repositories/local/LocalRepository.js.map +1 -0
  67. package/dist/repositories/local/__tests__/deleteObjectById.test.d.ts +2 -0
  68. package/dist/repositories/local/__tests__/deleteObjectById.test.d.ts.map +1 -0
  69. package/dist/repositories/local/__tests__/deleteObjectById.test.js +228 -0
  70. package/dist/repositories/local/__tests__/deleteObjectById.test.js.map +1 -0
  71. package/dist/repositories/local/__tests__/extractMarkdownIds.test.d.ts +2 -0
  72. package/dist/repositories/local/__tests__/extractMarkdownIds.test.d.ts.map +1 -0
  73. package/dist/repositories/local/__tests__/extractMarkdownIds.test.js +135 -0
  74. package/dist/repositories/local/__tests__/extractMarkdownIds.test.js.map +1 -0
  75. package/dist/repositories/local/__tests__/findMarkdownFiles.test.d.ts +2 -0
  76. package/dist/repositories/local/__tests__/findMarkdownFiles.test.d.ts.map +1 -0
  77. package/dist/repositories/local/__tests__/findMarkdownFiles.test.js +236 -0
  78. package/dist/repositories/local/__tests__/findMarkdownFiles.test.js.map +1 -0
  79. package/dist/repositories/local/__tests__/getObjectByFilePath.test.d.ts +2 -0
  80. package/dist/repositories/local/__tests__/getObjectByFilePath.test.d.ts.map +1 -0
  81. package/dist/repositories/local/__tests__/getObjectByFilePath.test.js +96 -0
  82. package/dist/repositories/local/__tests__/getObjectByFilePath.test.js.map +1 -0
  83. package/dist/repositories/local/__tests__/getObjectById.test.d.ts +2 -0
  84. package/dist/repositories/local/__tests__/getObjectById.test.d.ts.map +1 -0
  85. package/dist/repositories/local/__tests__/getObjectById.test.js +46 -0
  86. package/dist/repositories/local/__tests__/getObjectById.test.js.map +1 -0
  87. package/dist/repositories/local/__tests__/getObjectFilePath.test.d.ts +2 -0
  88. package/dist/repositories/local/__tests__/getObjectFilePath.test.d.ts.map +1 -0
  89. package/dist/repositories/local/__tests__/getObjectFilePath.test.js +172 -0
  90. package/dist/repositories/local/__tests__/getObjectFilePath.test.js.map +1 -0
  91. package/dist/repositories/local/__tests__/getObjects.test.d.ts +2 -0
  92. package/dist/repositories/local/__tests__/getObjects.test.d.ts.map +1 -0
  93. package/dist/repositories/local/__tests__/getObjects.test.js +351 -0
  94. package/dist/repositories/local/__tests__/getObjects.test.js.map +1 -0
  95. package/dist/repositories/local/__tests__/scopeFilter.test.d.ts +2 -0
  96. package/dist/repositories/local/__tests__/scopeFilter.test.d.ts.map +1 -0
  97. package/dist/repositories/local/__tests__/scopeFilter.test.js +109 -0
  98. package/dist/repositories/local/__tests__/scopeFilter.test.js.map +1 -0
  99. package/dist/repositories/local/deleteObjectById.d.ts +16 -0
  100. package/dist/repositories/local/deleteObjectById.d.ts.map +1 -0
  101. package/dist/repositories/local/deleteObjectById.js +108 -0
  102. package/dist/repositories/local/deleteObjectById.js.map +1 -0
  103. package/dist/repositories/local/extractMarkdownIds.d.ts +17 -0
  104. package/dist/repositories/local/extractMarkdownIds.d.ts.map +1 -0
  105. package/dist/repositories/local/extractMarkdownIds.js +34 -0
  106. package/dist/repositories/local/extractMarkdownIds.js.map +1 -0
  107. package/dist/repositories/local/filterByScope.d.ts +8 -0
  108. package/dist/repositories/local/filterByScope.d.ts.map +1 -0
  109. package/dist/repositories/local/filterByScope.js +17 -0
  110. package/dist/repositories/local/filterByScope.js.map +1 -0
  111. package/dist/repositories/local/findMarkdownFiles.d.ts +9 -0
  112. package/dist/repositories/local/findMarkdownFiles.d.ts.map +1 -0
  113. package/dist/repositories/local/findMarkdownFiles.js +47 -0
  114. package/dist/repositories/local/findMarkdownFiles.js.map +1 -0
  115. package/dist/repositories/local/getObjectByFilePath.d.ts +9 -0
  116. package/dist/repositories/local/getObjectByFilePath.d.ts.map +1 -0
  117. package/dist/repositories/local/getObjectByFilePath.js +16 -0
  118. package/dist/repositories/local/getObjectByFilePath.js.map +1 -0
  119. package/dist/repositories/local/getObjectById.d.ts +10 -0
  120. package/dist/repositories/local/getObjectById.d.ts.map +1 -0
  121. package/dist/repositories/local/getObjectById.js +36 -0
  122. package/dist/repositories/local/getObjectById.js.map +1 -0
  123. package/dist/repositories/local/getObjectFilePath.d.ts +7 -0
  124. package/dist/repositories/local/getObjectFilePath.d.ts.map +1 -0
  125. package/dist/repositories/local/getObjectFilePath.js +90 -0
  126. package/dist/repositories/local/getObjectFilePath.js.map +1 -0
  127. package/dist/repositories/local/getObjects.d.ts +3 -0
  128. package/dist/repositories/local/getObjects.d.ts.map +1 -0
  129. package/dist/repositories/local/getObjects.js +64 -0
  130. package/dist/repositories/local/getObjects.js.map +1 -0
  131. package/dist/repositories/local/index.d.ts +8 -0
  132. package/dist/repositories/local/index.d.ts.map +1 -0
  133. package/dist/repositories/local/index.js +24 -0
  134. package/dist/repositories/local/index.js.map +1 -0
  135. package/dist/repositories/local/saveObject.d.ts +12 -0
  136. package/dist/repositories/local/saveObject.d.ts.map +1 -0
  137. package/dist/repositories/local/saveObject.js +27 -0
  138. package/dist/repositories/local/saveObject.js.map +1 -0
  139. package/dist/repositories/local/scopeFilter.d.ts +12 -0
  140. package/dist/repositories/local/scopeFilter.d.ts.map +1 -0
  141. package/dist/repositories/local/scopeFilter.js +21 -0
  142. package/dist/repositories/local/scopeFilter.js.map +1 -0
  143. package/dist/server.d.ts +3 -0
  144. package/dist/server.d.ts.map +1 -0
  145. package/dist/server.js +138 -0
  146. package/dist/server.js.map +1 -0
  147. package/dist/tools/__tests__/appendObjectLogTool.test.d.ts +2 -0
  148. package/dist/tools/__tests__/appendObjectLogTool.test.d.ts.map +1 -0
  149. package/dist/tools/__tests__/appendObjectLogTool.test.js +125 -0
  150. package/dist/tools/__tests__/appendObjectLogTool.test.js.map +1 -0
  151. package/dist/tools/__tests__/claimTaskTool.test.d.ts +2 -0
  152. package/dist/tools/__tests__/claimTaskTool.test.d.ts.map +1 -0
  153. package/dist/tools/__tests__/claimTaskTool.test.js +348 -0
  154. package/dist/tools/__tests__/claimTaskTool.test.js.map +1 -0
  155. package/dist/tools/__tests__/completeTaskTool.test.d.ts +2 -0
  156. package/dist/tools/__tests__/completeTaskTool.test.d.ts.map +1 -0
  157. package/dist/tools/__tests__/completeTaskTool.test.js +221 -0
  158. package/dist/tools/__tests__/completeTaskTool.test.js.map +1 -0
  159. package/dist/tools/__tests__/createObjectTool.test.d.ts +2 -0
  160. package/dist/tools/__tests__/createObjectTool.test.d.ts.map +1 -0
  161. package/dist/tools/__tests__/createObjectTool.test.js +387 -0
  162. package/dist/tools/__tests__/createObjectTool.test.js.map +1 -0
  163. package/dist/tools/__tests__/deleteObjectTool.test.d.ts +2 -0
  164. package/dist/tools/__tests__/deleteObjectTool.test.d.ts.map +1 -0
  165. package/dist/tools/__tests__/deleteObjectTool.test.js +169 -0
  166. package/dist/tools/__tests__/deleteObjectTool.test.js.map +1 -0
  167. package/dist/tools/__tests__/getObjectTool.test.d.ts +2 -0
  168. package/dist/tools/__tests__/getObjectTool.test.d.ts.map +1 -0
  169. package/dist/tools/__tests__/getObjectTool.test.js +124 -0
  170. package/dist/tools/__tests__/getObjectTool.test.js.map +1 -0
  171. package/dist/tools/__tests__/listObjectsTool.test.d.ts +2 -0
  172. package/dist/tools/__tests__/listObjectsTool.test.d.ts.map +1 -0
  173. package/dist/tools/__tests__/listObjectsTool.test.js +266 -0
  174. package/dist/tools/__tests__/listObjectsTool.test.js.map +1 -0
  175. package/dist/tools/__tests__/updateObjectTool.test.d.ts +2 -0
  176. package/dist/tools/__tests__/updateObjectTool.test.d.ts.map +1 -0
  177. package/dist/tools/__tests__/updateObjectTool.test.js +208 -0
  178. package/dist/tools/__tests__/updateObjectTool.test.js.map +1 -0
  179. package/dist/tools/activateTool.d.ts +38 -0
  180. package/dist/tools/activateTool.d.ts.map +1 -0
  181. package/dist/tools/activateTool.js +48 -0
  182. package/dist/tools/activateTool.js.map +1 -0
  183. package/dist/tools/appendObjectLogTool.d.ts +26 -0
  184. package/dist/tools/appendObjectLogTool.d.ts.map +1 -0
  185. package/dist/tools/appendObjectLogTool.js +65 -0
  186. package/dist/tools/appendObjectLogTool.js.map +1 -0
  187. package/dist/tools/claimTaskTool.d.ts +30 -0
  188. package/dist/tools/claimTaskTool.d.ts.map +1 -0
  189. package/dist/tools/claimTaskTool.js +109 -0
  190. package/dist/tools/claimTaskTool.js.map +1 -0
  191. package/dist/tools/completeTaskTool.d.ts +33 -0
  192. package/dist/tools/completeTaskTool.d.ts.map +1 -0
  193. package/dist/tools/completeTaskTool.js +61 -0
  194. package/dist/tools/completeTaskTool.js.map +1 -0
  195. package/dist/tools/createObjectTool.d.ts +52 -0
  196. package/dist/tools/createObjectTool.d.ts.map +1 -0
  197. package/dist/tools/createObjectTool.js +87 -0
  198. package/dist/tools/createObjectTool.js.map +1 -0
  199. package/dist/tools/deleteObjectTool.d.ts +27 -0
  200. package/dist/tools/deleteObjectTool.d.ts.map +1 -0
  201. package/dist/tools/deleteObjectTool.js +48 -0
  202. package/dist/tools/deleteObjectTool.js.map +1 -0
  203. package/dist/tools/getObjectTool.d.ts +22 -0
  204. package/dist/tools/getObjectTool.d.ts.map +1 -0
  205. package/dist/tools/getObjectTool.js +53 -0
  206. package/dist/tools/getObjectTool.js.map +1 -0
  207. package/dist/tools/index.d.ts +11 -0
  208. package/dist/tools/index.d.ts.map +1 -0
  209. package/dist/tools/index.js +34 -0
  210. package/dist/tools/index.js.map +1 -0
  211. package/dist/tools/listObjectsTool.d.ts +39 -0
  212. package/dist/tools/listObjectsTool.d.ts.map +1 -0
  213. package/dist/tools/listObjectsTool.js +87 -0
  214. package/dist/tools/listObjectsTool.js.map +1 -0
  215. package/dist/tools/pruneClosedTool.d.ts +26 -0
  216. package/dist/tools/pruneClosedTool.d.ts.map +1 -0
  217. package/dist/tools/pruneClosedTool.js +35 -0
  218. package/dist/tools/pruneClosedTool.js.map +1 -0
  219. package/dist/tools/updateObjectTool.d.ts +46 -0
  220. package/dist/tools/updateObjectTool.d.ts.map +1 -0
  221. package/dist/tools/updateObjectTool.js +93 -0
  222. package/dist/tools/updateObjectTool.js.map +1 -0
  223. package/dist/utils/__tests__/checkPrerequisitesComplete.test.d.ts +2 -0
  224. package/dist/utils/__tests__/checkPrerequisitesComplete.test.d.ts.map +1 -0
  225. package/dist/utils/__tests__/checkPrerequisitesComplete.test.js +200 -0
  226. package/dist/utils/__tests__/checkPrerequisitesComplete.test.js.map +1 -0
  227. package/dist/utils/__tests__/deserializeTrellisObject.test.d.ts +2 -0
  228. package/dist/utils/__tests__/deserializeTrellisObject.test.d.ts.map +1 -0
  229. package/dist/utils/__tests__/deserializeTrellisObject.test.js +329 -0
  230. package/dist/utils/__tests__/deserializeTrellisObject.test.js.map +1 -0
  231. package/dist/utils/__tests__/filterUnavailableObjects.test.d.ts +2 -0
  232. package/dist/utils/__tests__/filterUnavailableObjects.test.d.ts.map +1 -0
  233. package/dist/utils/__tests__/filterUnavailableObjects.test.js +172 -0
  234. package/dist/utils/__tests__/filterUnavailableObjects.test.js.map +1 -0
  235. package/dist/utils/__tests__/generateUniqueId.test.d.ts +2 -0
  236. package/dist/utils/__tests__/generateUniqueId.test.d.ts.map +1 -0
  237. package/dist/utils/__tests__/generateUniqueId.test.js +186 -0
  238. package/dist/utils/__tests__/generateUniqueId.test.js.map +1 -0
  239. package/dist/utils/__tests__/inferObjectType.test.d.ts +2 -0
  240. package/dist/utils/__tests__/inferObjectType.test.d.ts.map +1 -0
  241. package/dist/utils/__tests__/inferObjectType.test.js +43 -0
  242. package/dist/utils/__tests__/inferObjectType.test.js.map +1 -0
  243. package/dist/utils/__tests__/isRequiredForOtherObjects.test.d.ts +2 -0
  244. package/dist/utils/__tests__/isRequiredForOtherObjects.test.d.ts.map +1 -0
  245. package/dist/utils/__tests__/isRequiredForOtherObjects.test.js +229 -0
  246. package/dist/utils/__tests__/isRequiredForOtherObjects.test.js.map +1 -0
  247. package/dist/utils/__tests__/serializationRoundTrip.test.d.ts +2 -0
  248. package/dist/utils/__tests__/serializationRoundTrip.test.d.ts.map +1 -0
  249. package/dist/utils/__tests__/serializationRoundTrip.test.js +389 -0
  250. package/dist/utils/__tests__/serializationRoundTrip.test.js.map +1 -0
  251. package/dist/utils/__tests__/serializeTrellisObject.test.d.ts +2 -0
  252. package/dist/utils/__tests__/serializeTrellisObject.test.d.ts.map +1 -0
  253. package/dist/utils/__tests__/serializeTrellisObject.test.js +192 -0
  254. package/dist/utils/__tests__/serializeTrellisObject.test.js.map +1 -0
  255. package/dist/utils/__tests__/sortTrellisObjects.test.d.ts +2 -0
  256. package/dist/utils/__tests__/sortTrellisObjects.test.d.ts.map +1 -0
  257. package/dist/utils/__tests__/sortTrellisObjects.test.js +114 -0
  258. package/dist/utils/__tests__/sortTrellisObjects.test.js.map +1 -0
  259. package/dist/utils/checkPrerequisitesComplete.d.ts +12 -0
  260. package/dist/utils/checkPrerequisitesComplete.d.ts.map +1 -0
  261. package/dist/utils/checkPrerequisitesComplete.js +38 -0
  262. package/dist/utils/checkPrerequisitesComplete.js.map +1 -0
  263. package/dist/utils/deserializeTrellisObject.d.ts +9 -0
  264. package/dist/utils/deserializeTrellisObject.d.ts.map +1 -0
  265. package/dist/utils/deserializeTrellisObject.js +134 -0
  266. package/dist/utils/deserializeTrellisObject.js.map +1 -0
  267. package/dist/utils/filterUnavailableObjects.d.ts +13 -0
  268. package/dist/utils/filterUnavailableObjects.d.ts.map +1 -0
  269. package/dist/utils/filterUnavailableObjects.js +40 -0
  270. package/dist/utils/filterUnavailableObjects.js.map +1 -0
  271. package/dist/utils/generateUniqueId.d.ts +10 -0
  272. package/dist/utils/generateUniqueId.d.ts.map +1 -0
  273. package/dist/utils/generateUniqueId.js +67 -0
  274. package/dist/utils/generateUniqueId.js.map +1 -0
  275. package/dist/utils/index.d.ts +9 -0
  276. package/dist/utils/index.d.ts.map +1 -0
  277. package/dist/utils/index.js +20 -0
  278. package/dist/utils/index.js.map +1 -0
  279. package/dist/utils/inferObjectType.d.ts +3 -0
  280. package/dist/utils/inferObjectType.d.ts.map +1 -0
  281. package/dist/utils/inferObjectType.js +26 -0
  282. package/dist/utils/inferObjectType.js.map +1 -0
  283. package/dist/utils/isRequiredForOtherObjects.d.ts +12 -0
  284. package/dist/utils/isRequiredForOtherObjects.d.ts.map +1 -0
  285. package/dist/utils/isRequiredForOtherObjects.js +33 -0
  286. package/dist/utils/isRequiredForOtherObjects.js.map +1 -0
  287. package/dist/utils/serializeTrellisObject.d.ts +8 -0
  288. package/dist/utils/serializeTrellisObject.d.ts.map +1 -0
  289. package/dist/utils/serializeTrellisObject.js +35 -0
  290. package/dist/utils/serializeTrellisObject.js.map +1 -0
  291. package/dist/utils/sortTrellisObjects.d.ts +8 -0
  292. package/dist/utils/sortTrellisObjects.d.ts.map +1 -0
  293. package/dist/utils/sortTrellisObjects.js +20 -0
  294. package/dist/utils/sortTrellisObjects.js.map +1 -0
  295. package/dist/validation/ValidationError.d.ts +9 -0
  296. package/dist/validation/ValidationError.d.ts.map +1 -0
  297. package/dist/validation/ValidationError.js +18 -0
  298. package/dist/validation/ValidationError.js.map +1 -0
  299. package/dist/validation/ValidationErrorCode.d.ts +3 -0
  300. package/dist/validation/ValidationErrorCode.d.ts.map +1 -0
  301. package/dist/validation/ValidationErrorCode.js +3 -0
  302. package/dist/validation/ValidationErrorCode.js.map +1 -0
  303. package/dist/validation/ValidationErrorCodes.d.ts +8 -0
  304. package/dist/validation/ValidationErrorCodes.d.ts.map +1 -0
  305. package/dist/validation/ValidationErrorCodes.js +11 -0
  306. package/dist/validation/ValidationErrorCodes.js.map +1 -0
  307. package/dist/validation/__tests__/ValidationError.test.d.ts +2 -0
  308. package/dist/validation/__tests__/ValidationError.test.d.ts.map +1 -0
  309. package/dist/validation/__tests__/ValidationError.test.js +32 -0
  310. package/dist/validation/__tests__/ValidationError.test.js.map +1 -0
  311. package/dist/validation/__tests__/validateObjectCreation.test.d.ts +2 -0
  312. package/dist/validation/__tests__/validateObjectCreation.test.d.ts.map +1 -0
  313. package/dist/validation/__tests__/validateObjectCreation.test.js +93 -0
  314. package/dist/validation/__tests__/validateObjectCreation.test.js.map +1 -0
  315. package/dist/validation/__tests__/validateParentExists.test.d.ts +2 -0
  316. package/dist/validation/__tests__/validateParentExists.test.d.ts.map +1 -0
  317. package/dist/validation/__tests__/validateParentExists.test.js +62 -0
  318. package/dist/validation/__tests__/validateParentExists.test.js.map +1 -0
  319. package/dist/validation/__tests__/validateParentType.test.d.ts +2 -0
  320. package/dist/validation/__tests__/validateParentType.test.d.ts.map +1 -0
  321. package/dist/validation/__tests__/validateParentType.test.js +125 -0
  322. package/dist/validation/__tests__/validateParentType.test.js.map +1 -0
  323. package/dist/validation/__tests__/validateStatusTransition.test.d.ts +2 -0
  324. package/dist/validation/__tests__/validateStatusTransition.test.d.ts.map +1 -0
  325. package/dist/validation/__tests__/validateStatusTransition.test.js +103 -0
  326. package/dist/validation/__tests__/validateStatusTransition.test.js.map +1 -0
  327. package/dist/validation/validateObjectCreation.d.ts +12 -0
  328. package/dist/validation/validateObjectCreation.d.ts.map +1 -0
  329. package/dist/validation/validateObjectCreation.js +24 -0
  330. package/dist/validation/validateObjectCreation.js.map +1 -0
  331. package/dist/validation/validateParentExists.d.ts +10 -0
  332. package/dist/validation/validateParentExists.d.ts.map +1 -0
  333. package/dist/validation/validateParentExists.js +23 -0
  334. package/dist/validation/validateParentExists.js.map +1 -0
  335. package/dist/validation/validateParentType.d.ts +16 -0
  336. package/dist/validation/validateParentType.d.ts.map +1 -0
  337. package/dist/validation/validateParentType.js +48 -0
  338. package/dist/validation/validateParentType.js.map +1 -0
  339. package/dist/validation/validateStatusTransition.d.ts +12 -0
  340. package/dist/validation/validateStatusTransition.d.ts.map +1 -0
  341. package/dist/validation/validateStatusTransition.js +29 -0
  342. package/dist/validation/validateStatusTransition.js.map +1 -0
  343. package/package.json +78 -0
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isClaimable = isClaimable;
4
+ const TrellisObjectStatus_1 = require("./TrellisObjectStatus");
5
+ /**
6
+ * Checks if a TrellisObject is claimable.
7
+ * A claimable object has status DRAFT or OPEN.
8
+ *
9
+ * @param obj - The TrellisObject to check
10
+ * @returns true if the object is claimable (DRAFT or OPEN), false otherwise
11
+ */
12
+ function isClaimable(obj) {
13
+ return (obj.status === TrellisObjectStatus_1.TrellisObjectStatus.DRAFT ||
14
+ obj.status === TrellisObjectStatus_1.TrellisObjectStatus.OPEN);
15
+ }
16
+ //# sourceMappingURL=isClaimable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isClaimable.js","sourceRoot":"","sources":["../../src/models/isClaimable.ts"],"names":[],"mappings":";;AAUA,kCAKC;AAdD,+DAA4D;AAE5D;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,GAAkB;IAC5C,OAAO,CACL,GAAG,CAAC,MAAM,KAAK,yCAAmB,CAAC,KAAK;QACxC,GAAG,CAAC,MAAM,KAAK,yCAAmB,CAAC,IAAI,CACxC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { TrellisObject } from "./TrellisObject";
2
+ /**
3
+ * Checks if a TrellisObject is in a closed state.
4
+ * A closed object has status DONE or WONT_DO.
5
+ *
6
+ * @param obj - The TrellisObject to check
7
+ * @returns true if the object is closed (DONE or WONT_DO), false otherwise
8
+ */
9
+ export declare function isClosed(obj: TrellisObject): boolean;
10
+ //# sourceMappingURL=isClosed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isClosed.d.ts","sourceRoot":"","sources":["../../src/models/isClosed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAKpD"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isClosed = isClosed;
4
+ const TrellisObjectStatus_1 = require("./TrellisObjectStatus");
5
+ /**
6
+ * Checks if a TrellisObject is in a closed state.
7
+ * A closed object has status DONE or WONT_DO.
8
+ *
9
+ * @param obj - The TrellisObject to check
10
+ * @returns true if the object is closed (DONE or WONT_DO), false otherwise
11
+ */
12
+ function isClosed(obj) {
13
+ return (obj.status === TrellisObjectStatus_1.TrellisObjectStatus.DONE ||
14
+ obj.status === TrellisObjectStatus_1.TrellisObjectStatus.WONT_DO);
15
+ }
16
+ //# sourceMappingURL=isClosed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isClosed.js","sourceRoot":"","sources":["../../src/models/isClosed.ts"],"names":[],"mappings":";;AAUA,4BAKC;AAdD,+DAA4D;AAE5D;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,GAAkB;IACzC,OAAO,CACL,GAAG,CAAC,MAAM,KAAK,yCAAmB,CAAC,IAAI;QACvC,GAAG,CAAC,MAAM,KAAK,yCAAmB,CAAC,OAAO,CAC3C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { TrellisObject } from "./TrellisObject";
2
+ /**
3
+ * Checks if a TrellisObject is in an open state.
4
+ * An open object has any status except DONE or WONT_DO.
5
+ *
6
+ * @param obj - The TrellisObject to check
7
+ * @returns true if the object is open (not DONE or WONT_DO), false otherwise
8
+ */
9
+ export declare function isOpen(obj: TrellisObject): boolean;
10
+ //# sourceMappingURL=isOpen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isOpen.d.ts","sourceRoot":"","sources":["../../src/models/isOpen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAKlD"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isOpen = isOpen;
4
+ const TrellisObjectStatus_1 = require("./TrellisObjectStatus");
5
+ /**
6
+ * Checks if a TrellisObject is in an open state.
7
+ * An open object has any status except DONE or WONT_DO.
8
+ *
9
+ * @param obj - The TrellisObject to check
10
+ * @returns true if the object is open (not DONE or WONT_DO), false otherwise
11
+ */
12
+ function isOpen(obj) {
13
+ return (obj.status !== TrellisObjectStatus_1.TrellisObjectStatus.DONE &&
14
+ obj.status !== TrellisObjectStatus_1.TrellisObjectStatus.WONT_DO);
15
+ }
16
+ //# sourceMappingURL=isOpen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isOpen.js","sourceRoot":"","sources":["../../src/models/isOpen.ts"],"names":[],"mappings":";;AAUA,wBAKC;AAdD,+DAA4D;AAE5D;;;;;;GAMG;AACH,SAAgB,MAAM,CAAC,GAAkB;IACvC,OAAO,CACL,GAAG,CAAC,MAAM,KAAK,yCAAmB,CAAC,IAAI;QACvC,GAAG,CAAC,MAAM,KAAK,yCAAmB,CAAC,OAAO,CAC3C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { TrellisObject, TrellisObjectPriority, TrellisObjectStatus, TrellisObjectType } from "../models";
2
+ export interface Repository {
3
+ getObjectById(id: string): Promise<TrellisObject | null>;
4
+ getObjects(includeClosed?: boolean, scope?: string, type?: TrellisObjectType, status?: TrellisObjectStatus, priority?: TrellisObjectPriority): Promise<TrellisObject[]>;
5
+ saveObject(trellisObject: TrellisObject): Promise<void>;
6
+ deleteObject(id: string, force?: boolean): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=Repository.d.ts.map
@@ -0,0 +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,EACxB,MAAM,CAAC,EAAE,mBAAmB,EAC5B,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,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;CAC1D"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Repository.js","sourceRoot":"","sources":["../../src/repositories/Repository.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from "./local";
2
+ export * from "./Repository";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
@@ -0,0 +1,19 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./local"), exports);
18
+ __exportStar(require("./Repository"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,+CAA6B"}
@@ -0,0 +1,21 @@
1
+ import { ServerConfig } from "../../configuration/ServerConfig";
2
+ import { TrellisObject, TrellisObjectPriority, TrellisObjectStatus, TrellisObjectType } from "../../models";
3
+ import { Repository } from "../Repository";
4
+ /**
5
+ * Local file-based repository implementation.
6
+ * Manages Trellis objects stored as markdown files in the local filesystem.
7
+ */
8
+ export declare class LocalRepository implements Repository {
9
+ private config;
10
+ /**
11
+ * Creates a new LocalRepository instance.
12
+ *
13
+ * @param config - Server configuration containing local repository settings
14
+ */
15
+ constructor(config: ServerConfig);
16
+ getObjectById(id: string): Promise<TrellisObject | null>;
17
+ getObjects(includeClosed?: boolean, scope?: string, type?: TrellisObjectType, status?: TrellisObjectStatus, priority?: TrellisObjectPriority): Promise<TrellisObject[]>;
18
+ saveObject(trellisObject: TrellisObject): Promise<void>;
19
+ deleteObject(id: string, force?: boolean): Promise<void>;
20
+ }
21
+ //# sourceMappingURL=LocalRepository.d.ts.map
@@ -0,0 +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;IAWlC,aAAa,CAAC,EAAE,EAAE,MAAM;IAKxB,UAAU,CACd,aAAa,CAAC,EAAE,OAAO,EACvB,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,iBAAiB,EACxB,MAAM,CAAC,EAAE,mBAAmB,EAC5B,QAAQ,CAAC,EAAE,qBAAqB;IAa5B,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAI/D"}
@@ -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
+ exports.LocalRepository = void 0;
37
+ /**
38
+ * Local file-based repository implementation.
39
+ * Manages Trellis objects stored as markdown files in the local filesystem.
40
+ */
41
+ class LocalRepository {
42
+ config;
43
+ /**
44
+ * Creates a new LocalRepository instance.
45
+ *
46
+ * @param config - Server configuration containing local repository settings
47
+ */
48
+ constructor(config) {
49
+ this.config = config;
50
+ if (config.mode !== "local") {
51
+ throw new Error("LocalRepository requires mode to be 'local'");
52
+ }
53
+ if (!config.planningRootFolder) {
54
+ throw new Error("LocalRepository requires planningRootFolder to be configured");
55
+ }
56
+ }
57
+ async getObjectById(id) {
58
+ const { getObjectById } = await Promise.resolve().then(() => __importStar(require("./getObjectById.js")));
59
+ return await getObjectById(id, this.config.planningRootFolder);
60
+ }
61
+ async getObjects(includeClosed, scope, type, status, priority) {
62
+ const { getObjects } = await Promise.resolve().then(() => __importStar(require("./getObjects")));
63
+ return await getObjects(this.config.planningRootFolder, includeClosed, scope, type, status, priority);
64
+ }
65
+ async saveObject(trellisObject) {
66
+ const { saveObject: saveObjectImpl } = await Promise.resolve().then(() => __importStar(require("./saveObject")));
67
+ await saveObjectImpl(trellisObject, this.config.planningRootFolder);
68
+ }
69
+ async deleteObject(id, force) {
70
+ const { deleteObjectById } = await Promise.resolve().then(() => __importStar(require("./deleteObjectById")));
71
+ await deleteObjectById(id, this.config.planningRootFolder, force);
72
+ }
73
+ }
74
+ exports.LocalRepository = LocalRepository;
75
+ //# sourceMappingURL=LocalRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalRepository.js","sourceRoot":"","sources":["../../../src/repositories/local/LocalRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA;;;GAGG;AACH,MAAa,eAAe;IAMN;IALpB;;;;OAIG;IACH,YAAoB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;QACtC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;QAC7D,OAAO,MAAM,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAmB,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,UAAU,CACd,aAAuB,EACvB,KAAc,EACd,IAAwB,EACxB,MAA4B,EAC5B,QAAgC;QAEhC,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,cAAc,GAAC,CAAC;QACpD,OAAO,MAAM,UAAU,CACrB,IAAI,CAAC,MAAM,CAAC,kBAAmB,EAC/B,aAAa,EACb,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,aAA4B;QAC3C,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,wDAAa,cAAc,GAAC,CAAC;QACpE,MAAM,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAmB,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,KAAe;QAC5C,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;QAChE,MAAM,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAmB,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;CACF;AAjDD,0CAiDC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deleteObjectById.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteObjectById.test.d.ts","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/deleteObjectById.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path_1 = require("path");
4
+ const promises_1 = require("fs/promises");
5
+ const fs_1 = require("fs");
6
+ const models_1 = require("../../../models");
7
+ const deleteObjectById_1 = require("../deleteObjectById");
8
+ const getObjectById_1 = require("../getObjectById");
9
+ describe("deleteObjectById - Integration Tests", () => {
10
+ const sourceSchemaPath = (0, path_1.join)(__dirname, "schema1_0");
11
+ const tempPath = (0, path_1.join)(__dirname, "temp");
12
+ const testPlanningRoot = (0, path_1.join)(tempPath, ".trellis");
13
+ beforeEach(async () => {
14
+ // Clean up temp directory if it exists
15
+ try {
16
+ await (0, promises_1.rm)(tempPath, { recursive: true, force: true });
17
+ }
18
+ catch {
19
+ // Directory doesn't exist, which is fine
20
+ }
21
+ // Copy schema1_0 to temp directory for testing
22
+ await (0, promises_1.cp)(sourceSchemaPath, tempPath, { recursive: true });
23
+ });
24
+ afterEach(async () => {
25
+ // Clean up temp directory after each test
26
+ try {
27
+ await (0, promises_1.rm)(tempPath, { recursive: true, force: true });
28
+ }
29
+ catch {
30
+ // Directory might not exist, which is fine
31
+ }
32
+ });
33
+ describe("Task deletion", () => {
34
+ it("should delete a standalone task file", async () => {
35
+ // Verify the task exists first
36
+ const task = await (0, getObjectById_1.getObjectById)("T-setup-database", testPlanningRoot);
37
+ expect(task).not.toBeNull();
38
+ expect(task.type).toBe(models_1.TrellisObjectType.TASK);
39
+ // Delete the task
40
+ await (0, deleteObjectById_1.deleteObjectById)("T-setup-database", testPlanningRoot);
41
+ // Verify the task no longer exists
42
+ const result = await (0, getObjectById_1.getObjectById)("T-setup-database", testPlanningRoot);
43
+ expect(result).toBeNull();
44
+ });
45
+ it("should delete a task within a feature folder", async () => {
46
+ // Verify the task exists first
47
+ const task = await (0, getObjectById_1.getObjectById)("T-implement-login", testPlanningRoot);
48
+ expect(task).not.toBeNull();
49
+ expect(task.type).toBe(models_1.TrellisObjectType.TASK);
50
+ // Delete the task
51
+ await (0, deleteObjectById_1.deleteObjectById)("T-implement-login", testPlanningRoot);
52
+ // Verify the task no longer exists
53
+ const result = await (0, getObjectById_1.getObjectById)("T-implement-login", testPlanningRoot);
54
+ expect(result).toBeNull();
55
+ // Verify the feature folder still exists (only the task file should be deleted)
56
+ const featureFolderPath = (0, path_1.join)(testPlanningRoot, "f", "F-user-authentication");
57
+ await expect((0, promises_1.access)(featureFolderPath, fs_1.constants.F_OK)).resolves.not.toThrow();
58
+ });
59
+ });
60
+ describe("Feature deletion", () => {
61
+ it("should delete a feature file and its associated folder", async () => {
62
+ // Verify the feature exists first
63
+ const feature = await (0, getObjectById_1.getObjectById)("F-user-authentication", testPlanningRoot);
64
+ expect(feature).not.toBeNull();
65
+ expect(feature.type).toBe(models_1.TrellisObjectType.FEATURE);
66
+ // Verify the feature folder exists
67
+ const featureFolderPath = (0, path_1.join)(testPlanningRoot, "f", "F-user-authentication");
68
+ await expect((0, promises_1.access)(featureFolderPath, fs_1.constants.F_OK)).resolves.not.toThrow();
69
+ // Delete the feature
70
+ await (0, deleteObjectById_1.deleteObjectById)("F-user-authentication", testPlanningRoot);
71
+ // Verify the feature no longer exists
72
+ const result = await (0, getObjectById_1.getObjectById)("F-user-authentication", testPlanningRoot);
73
+ expect(result).toBeNull();
74
+ // Verify the feature folder no longer exists
75
+ await expect((0, promises_1.access)(featureFolderPath, fs_1.constants.F_OK)).rejects.toThrow();
76
+ });
77
+ it("should delete a nested feature and its folder", async () => {
78
+ // Verify the nested feature exists first
79
+ const feature = await (0, getObjectById_1.getObjectById)("F-product-search", testPlanningRoot);
80
+ expect(feature).not.toBeNull();
81
+ expect(feature.type).toBe(models_1.TrellisObjectType.FEATURE);
82
+ // Verify the feature folder exists
83
+ const featureFolderPath = (0, path_1.join)(testPlanningRoot, "p", "P-ecommerce-platform", "e", "E-product-catalog", "f", "F-product-search");
84
+ await expect((0, promises_1.access)(featureFolderPath, fs_1.constants.F_OK)).resolves.not.toThrow();
85
+ // Delete the feature
86
+ await (0, deleteObjectById_1.deleteObjectById)("F-product-search", testPlanningRoot);
87
+ // Verify the feature no longer exists
88
+ const result = await (0, getObjectById_1.getObjectById)("F-product-search", testPlanningRoot);
89
+ expect(result).toBeNull();
90
+ // Verify the feature folder no longer exists
91
+ await expect((0, promises_1.access)(featureFolderPath, fs_1.constants.F_OK)).rejects.toThrow();
92
+ // Verify the parent epic folder still exists
93
+ const epicFolderPath = (0, path_1.join)(testPlanningRoot, "p", "P-ecommerce-platform", "e", "E-product-catalog");
94
+ await expect((0, promises_1.access)(epicFolderPath, fs_1.constants.F_OK)).resolves.not.toThrow();
95
+ });
96
+ });
97
+ describe("Epic deletion", () => {
98
+ it("should delete an epic file and its associated folder with all contents", async () => {
99
+ // Verify the epic exists first
100
+ const epic = await (0, getObjectById_1.getObjectById)("E-product-catalog", testPlanningRoot);
101
+ expect(epic).not.toBeNull();
102
+ expect(epic.type).toBe(models_1.TrellisObjectType.EPIC);
103
+ // Verify the epic folder exists and has contents
104
+ const epicFolderPath = (0, path_1.join)(testPlanningRoot, "p", "P-ecommerce-platform", "e", "E-product-catalog");
105
+ await expect((0, promises_1.access)(epicFolderPath, fs_1.constants.F_OK)).resolves.not.toThrow();
106
+ const epicContents = await (0, promises_1.readdir)(epicFolderPath);
107
+ expect(epicContents.length).toBeGreaterThan(0);
108
+ // Delete the epic
109
+ await (0, deleteObjectById_1.deleteObjectById)("E-product-catalog", testPlanningRoot);
110
+ // Verify the epic no longer exists
111
+ const result = await (0, getObjectById_1.getObjectById)("E-product-catalog", testPlanningRoot);
112
+ expect(result).toBeNull();
113
+ // Verify the epic folder no longer exists
114
+ await expect((0, promises_1.access)(epicFolderPath, fs_1.constants.F_OK)).rejects.toThrow();
115
+ // Verify the parent project folder still exists
116
+ const projectFolderPath = (0, path_1.join)(testPlanningRoot, "p", "P-ecommerce-platform");
117
+ await expect((0, promises_1.access)(projectFolderPath, fs_1.constants.F_OK)).resolves.not.toThrow();
118
+ });
119
+ });
120
+ describe("Project deletion", () => {
121
+ it("should delete a project file and its associated folder with all contents", async () => {
122
+ // Verify the project exists first
123
+ const project = await (0, getObjectById_1.getObjectById)("P-ecommerce-platform", testPlanningRoot);
124
+ expect(project).not.toBeNull();
125
+ expect(project.type).toBe(models_1.TrellisObjectType.PROJECT);
126
+ // Verify the project folder exists and has contents
127
+ const projectFolderPath = (0, path_1.join)(testPlanningRoot, "p", "P-ecommerce-platform");
128
+ await expect((0, promises_1.access)(projectFolderPath, fs_1.constants.F_OK)).resolves.not.toThrow();
129
+ const projectContents = await (0, promises_1.readdir)(projectFolderPath);
130
+ expect(projectContents.length).toBeGreaterThan(0);
131
+ // Delete the project
132
+ await (0, deleteObjectById_1.deleteObjectById)("P-ecommerce-platform", testPlanningRoot);
133
+ // Verify the project no longer exists
134
+ const result = await (0, getObjectById_1.getObjectById)("P-ecommerce-platform", testPlanningRoot);
135
+ expect(result).toBeNull();
136
+ // Verify the project folder no longer exists
137
+ await expect((0, promises_1.access)(projectFolderPath, fs_1.constants.F_OK)).rejects.toThrow();
138
+ // Verify the parent projects folder still exists
139
+ const projectsRootPath = (0, path_1.join)(testPlanningRoot, "p");
140
+ await expect((0, promises_1.access)(projectsRootPath, fs_1.constants.F_OK)).resolves.not.toThrow();
141
+ });
142
+ });
143
+ describe("Force parameter functionality", () => {
144
+ beforeEach(async () => {
145
+ // Create test objects with prerequisite relationships
146
+ const taskWithPrerequisite = `---
147
+ id: T-dependent-task
148
+ title: Dependent Task
149
+ status: open
150
+ priority: medium
151
+ schema: v1.0
152
+ prerequisites:
153
+ - T-setup-database
154
+ parent: F-user-authentication
155
+ created: 2025-01-15T14:00:00Z
156
+ updated: 2025-01-15T14:00:00Z
157
+ ---
158
+
159
+ # Dependent Task
160
+
161
+ This task depends on T-setup-database.
162
+ `;
163
+ await (0, promises_1.writeFile)((0, path_1.join)(testPlanningRoot, "f", "F-user-authentication", "t", "open", "T-dependent-task.md"), taskWithPrerequisite);
164
+ });
165
+ it("should throw error when trying to delete object required by others without force", async () => {
166
+ // Try to delete T-setup-database which is required by T-dependent-task
167
+ await expect((0, deleteObjectById_1.deleteObjectById)("T-setup-database", testPlanningRoot)).rejects.toThrow("Cannot delete object T-setup-database because it is required by other objects. Use force=true to override.");
168
+ // Verify the object still exists
169
+ const task = await (0, getObjectById_1.getObjectById)("T-setup-database", testPlanningRoot);
170
+ expect(task).not.toBeNull();
171
+ });
172
+ it("should delete object required by others when force=true", async () => {
173
+ // Verify the prerequisite relationship exists
174
+ const dependentTask = await (0, getObjectById_1.getObjectById)("T-dependent-task", testPlanningRoot);
175
+ expect(dependentTask).not.toBeNull();
176
+ expect(dependentTask.prerequisites).toContain("T-setup-database");
177
+ // Delete T-setup-database with force=true
178
+ await (0, deleteObjectById_1.deleteObjectById)("T-setup-database", testPlanningRoot, true);
179
+ // Verify the object no longer exists
180
+ const result = await (0, getObjectById_1.getObjectById)("T-setup-database", testPlanningRoot);
181
+ expect(result).toBeNull();
182
+ });
183
+ it("should delete object not required by others without force parameter", async () => {
184
+ // Delete a task that has no dependencies (T-dependent-task doesn't depend on T-implement-login)
185
+ await (0, deleteObjectById_1.deleteObjectById)("T-implement-login", testPlanningRoot);
186
+ // Verify the task no longer exists
187
+ const result = await (0, getObjectById_1.getObjectById)("T-implement-login", testPlanningRoot);
188
+ expect(result).toBeNull();
189
+ });
190
+ it("should delete object not required by others with force=false", async () => {
191
+ // Delete a task that has no dependencies with explicit force=false
192
+ await (0, deleteObjectById_1.deleteObjectById)("T-implement-login", testPlanningRoot, false);
193
+ // Verify the task no longer exists
194
+ const result = await (0, getObjectById_1.getObjectById)("T-implement-login", testPlanningRoot);
195
+ expect(result).toBeNull();
196
+ });
197
+ });
198
+ describe("Error handling", () => {
199
+ it("should throw an error when trying to delete a non-existent object", async () => {
200
+ await expect((0, deleteObjectById_1.deleteObjectById)("non-existent-id", testPlanningRoot)).rejects.toThrow("No object found with ID: non-existent-id");
201
+ });
202
+ it("should throw an error when planning root does not exist", async () => {
203
+ await expect((0, deleteObjectById_1.deleteObjectById)("T-setup-database", "/non/existent/path")).rejects.toThrow();
204
+ });
205
+ });
206
+ describe("Folder structure integrity", () => {
207
+ it("should not affect other objects when deleting one object", async () => {
208
+ // Verify multiple objects exist
209
+ const project = await (0, getObjectById_1.getObjectById)("P-ecommerce-platform", testPlanningRoot);
210
+ const otherProject = await (0, getObjectById_1.getObjectById)("P-mobile-app", testPlanningRoot);
211
+ const task = await (0, getObjectById_1.getObjectById)("T-setup-database", testPlanningRoot);
212
+ expect(project).toBeDefined();
213
+ expect(otherProject).toBeDefined();
214
+ expect(task).toBeDefined();
215
+ // Delete one project
216
+ await (0, deleteObjectById_1.deleteObjectById)("P-ecommerce-platform", testPlanningRoot);
217
+ // Verify other objects still exist
218
+ const mobileApp = await (0, getObjectById_1.getObjectById)("P-mobile-app", testPlanningRoot);
219
+ expect(mobileApp).not.toBeNull();
220
+ const taskAgain = await (0, getObjectById_1.getObjectById)("T-setup-database", testPlanningRoot);
221
+ expect(taskAgain).not.toBeNull();
222
+ // Verify the deleted project is gone
223
+ const result = await (0, getObjectById_1.getObjectById)("P-ecommerce-platform", testPlanningRoot);
224
+ expect(result).toBeNull();
225
+ });
226
+ });
227
+ });
228
+ //# sourceMappingURL=deleteObjectById.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteObjectById.test.js","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/deleteObjectById.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=extractMarkdownIds.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractMarkdownIds.test.d.ts","sourceRoot":"","sources":["../../../../src/repositories/local/__tests__/extractMarkdownIds.test.ts"],"names":[],"mappings":""}