@superblocksteam/vite-plugin-file-sync 2.0.3-next.46

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 (562) hide show
  1. package/LICENSE.txt +87 -0
  2. package/dist/ai-service/artifacts/bolt.d.ts +8 -0
  3. package/dist/ai-service/artifacts/bolt.d.ts.map +1 -0
  4. package/dist/ai-service/artifacts/bolt.js +34 -0
  5. package/dist/ai-service/artifacts/bolt.js.map +1 -0
  6. package/dist/ai-service/const.d.ts +8 -0
  7. package/dist/ai-service/const.d.ts.map +1 -0
  8. package/dist/ai-service/const.js +9 -0
  9. package/dist/ai-service/const.js.map +1 -0
  10. package/dist/ai-service/eval/template-renderer.d.ts +13 -0
  11. package/dist/ai-service/eval/template-renderer.d.ts.map +1 -0
  12. package/dist/ai-service/eval/template-renderer.js +66 -0
  13. package/dist/ai-service/eval/template-renderer.js.map +1 -0
  14. package/dist/ai-service/index.d.ts +18 -0
  15. package/dist/ai-service/index.d.ts.map +1 -0
  16. package/dist/ai-service/index.js +140 -0
  17. package/dist/ai-service/index.js.map +1 -0
  18. package/dist/ai-service/integrations/const.d.ts +41 -0
  19. package/dist/ai-service/integrations/const.d.ts.map +1 -0
  20. package/dist/ai-service/integrations/const.js +76 -0
  21. package/dist/ai-service/integrations/const.js.map +1 -0
  22. package/dist/ai-service/integrations/from-prompt-context.d.ts +4 -0
  23. package/dist/ai-service/integrations/from-prompt-context.d.ts.map +1 -0
  24. package/dist/ai-service/integrations/from-prompt-context.js +56 -0
  25. package/dist/ai-service/integrations/from-prompt-context.js.map +1 -0
  26. package/dist/ai-service/integrations/to-sdk-prompt.d.ts +3 -0
  27. package/dist/ai-service/integrations/to-sdk-prompt.d.ts.map +1 -0
  28. package/dist/ai-service/integrations/to-sdk-prompt.js +47 -0
  29. package/dist/ai-service/integrations/to-sdk-prompt.js.map +1 -0
  30. package/dist/ai-service/integrations/types.d.ts +31 -0
  31. package/dist/ai-service/integrations/types.d.ts.map +1 -0
  32. package/dist/ai-service/integrations/types.js +2 -0
  33. package/dist/ai-service/integrations/types.js.map +1 -0
  34. package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.d.ts +2 -0
  35. package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.d.ts.map +1 -0
  36. package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.js +386 -0
  37. package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.js.map +1 -0
  38. package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.d.ts +2 -0
  39. package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.d.ts.map +1 -0
  40. package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.js +219 -0
  41. package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.js.map +1 -0
  42. package/dist/ai-service/prompts/generated/index.d.ts +4 -0
  43. package/dist/ai-service/prompts/generated/index.d.ts.map +1 -0
  44. package/dist/ai-service/prompts/generated/index.js +6 -0
  45. package/dist/ai-service/prompts/generated/index.js.map +1 -0
  46. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.d.ts +2 -0
  47. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.d.ts.map +1 -0
  48. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.js +6 -0
  49. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.js.map +1 -0
  50. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.d.ts +2 -0
  51. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.d.ts.map +1 -0
  52. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.js +6 -0
  53. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.js.map +1 -0
  54. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.d.ts +2 -0
  55. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.d.ts.map +1 -0
  56. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.js +6 -0
  57. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.js.map +1 -0
  58. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.d.ts +2 -0
  59. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.d.ts.map +1 -0
  60. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.js +6 -0
  61. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.js.map +1 -0
  62. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.d.ts +2 -0
  63. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.d.ts.map +1 -0
  64. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.js +6 -0
  65. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.js.map +1 -0
  66. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.d.ts +2 -0
  67. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.d.ts.map +1 -0
  68. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.js +6 -0
  69. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.js.map +1 -0
  70. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.d.ts +2 -0
  71. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.d.ts.map +1 -0
  72. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.js +6 -0
  73. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.js.map +1 -0
  74. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.d.ts +2 -0
  75. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.d.ts.map +1 -0
  76. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.js +6 -0
  77. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.js.map +1 -0
  78. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.d.ts +2 -0
  79. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.d.ts.map +1 -0
  80. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.js +6 -0
  81. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.js.map +1 -0
  82. package/dist/ai-service/prompts/generated/library-components/SbKeyValuePropsDocs.d.ts +2 -0
  83. package/dist/ai-service/prompts/generated/library-components/SbKeyValuePropsDocs.d.ts.map +1 -0
  84. package/dist/ai-service/prompts/generated/library-components/SbKeyValuePropsDocs.js +6 -0
  85. package/dist/ai-service/prompts/generated/library-components/SbKeyValuePropsDocs.js.map +1 -0
  86. package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.d.ts +2 -0
  87. package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.d.ts.map +1 -0
  88. package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.js +6 -0
  89. package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.js.map +1 -0
  90. package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.d.ts +2 -0
  91. package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.d.ts.map +1 -0
  92. package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.js +6 -0
  93. package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.js.map +1 -0
  94. package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.d.ts +2 -0
  95. package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.d.ts.map +1 -0
  96. package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.js +6 -0
  97. package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.js.map +1 -0
  98. package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.d.ts +2 -0
  99. package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.d.ts.map +1 -0
  100. package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.js +6 -0
  101. package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.js.map +1 -0
  102. package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.d.ts +2 -0
  103. package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.d.ts.map +1 -0
  104. package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.js +6 -0
  105. package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.js.map +1 -0
  106. package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.d.ts +2 -0
  107. package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.d.ts.map +1 -0
  108. package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.js +6 -0
  109. package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.js.map +1 -0
  110. package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.d.ts +2 -0
  111. package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.d.ts.map +1 -0
  112. package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.js +6 -0
  113. package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.js.map +1 -0
  114. package/dist/ai-service/prompts/generated/library-components/index.d.ts +18 -0
  115. package/dist/ai-service/prompts/generated/library-components/index.d.ts.map +1 -0
  116. package/dist/ai-service/prompts/generated/library-components/index.js +20 -0
  117. package/dist/ai-service/prompts/generated/library-components/index.js.map +1 -0
  118. package/dist/ai-service/prompts/generated/library-typedefs/Dim.d.ts +2 -0
  119. package/dist/ai-service/prompts/generated/library-typedefs/Dim.d.ts.map +1 -0
  120. package/dist/ai-service/prompts/generated/library-typedefs/Dim.js +6 -0
  121. package/dist/ai-service/prompts/generated/library-typedefs/Dim.js.map +1 -0
  122. package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.d.ts +2 -0
  123. package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.d.ts.map +1 -0
  124. package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.js +6 -0
  125. package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.js.map +1 -0
  126. package/dist/ai-service/prompts/generated/library-typedefs/index.d.ts +3 -0
  127. package/dist/ai-service/prompts/generated/library-typedefs/index.d.ts.map +1 -0
  128. package/dist/ai-service/prompts/generated/library-typedefs/index.js +5 -0
  129. package/dist/ai-service/prompts/generated/library-typedefs/index.js.map +1 -0
  130. package/dist/ai-service/prompts/generated/subprompts/index.d.ts +12 -0
  131. package/dist/ai-service/prompts/generated/subprompts/index.d.ts.map +1 -0
  132. package/dist/ai-service/prompts/generated/subprompts/index.js +14 -0
  133. package/dist/ai-service/prompts/generated/subprompts/index.js.map +1 -0
  134. package/dist/ai-service/prompts/generated/subprompts/superblocks-api.d.ts +2 -0
  135. package/dist/ai-service/prompts/generated/subprompts/superblocks-api.d.ts.map +1 -0
  136. package/dist/ai-service/prompts/generated/subprompts/superblocks-api.js +6 -0
  137. package/dist/ai-service/prompts/generated/subprompts/superblocks-api.js.map +1 -0
  138. package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.d.ts +2 -0
  139. package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.d.ts.map +1 -0
  140. package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.js +6 -0
  141. package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.js.map +1 -0
  142. package/dist/ai-service/prompts/generated/subprompts/superblocks-custom-components.d.ts +2 -0
  143. package/dist/ai-service/prompts/generated/subprompts/superblocks-custom-components.d.ts.map +1 -0
  144. package/dist/ai-service/prompts/generated/subprompts/superblocks-custom-components.js +6 -0
  145. package/dist/ai-service/prompts/generated/subprompts/superblocks-custom-components.js.map +1 -0
  146. package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.d.ts +2 -0
  147. package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.d.ts.map +1 -0
  148. package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.js +6 -0
  149. package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.js.map +1 -0
  150. package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.d.ts +2 -0
  151. package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.d.ts.map +1 -0
  152. package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.js +6 -0
  153. package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.js.map +1 -0
  154. package/dist/ai-service/prompts/generated/subprompts/superblocks-page.d.ts +2 -0
  155. package/dist/ai-service/prompts/generated/subprompts/superblocks-page.d.ts.map +1 -0
  156. package/dist/ai-service/prompts/generated/subprompts/superblocks-page.js +6 -0
  157. package/dist/ai-service/prompts/generated/subprompts/superblocks-page.js.map +1 -0
  158. package/dist/ai-service/prompts/generated/subprompts/superblocks-routes.d.ts +2 -0
  159. package/dist/ai-service/prompts/generated/subprompts/superblocks-routes.d.ts.map +1 -0
  160. package/dist/ai-service/prompts/generated/subprompts/superblocks-routes.js +6 -0
  161. package/dist/ai-service/prompts/generated/subprompts/superblocks-routes.js.map +1 -0
  162. package/dist/ai-service/prompts/generated/subprompts/superblocks-state.d.ts +2 -0
  163. package/dist/ai-service/prompts/generated/subprompts/superblocks-state.d.ts.map +1 -0
  164. package/dist/ai-service/prompts/generated/subprompts/superblocks-state.js +6 -0
  165. package/dist/ai-service/prompts/generated/subprompts/superblocks-state.js.map +1 -0
  166. package/dist/ai-service/prompts/generated/subprompts/superblocks-theming.d.ts +2 -0
  167. package/dist/ai-service/prompts/generated/subprompts/superblocks-theming.d.ts.map +1 -0
  168. package/dist/ai-service/prompts/generated/subprompts/superblocks-theming.js +6 -0
  169. package/dist/ai-service/prompts/generated/subprompts/superblocks-theming.js.map +1 -0
  170. package/dist/ai-service/prompts/generated/subprompts/superblocks-timers.d.ts +2 -0
  171. package/dist/ai-service/prompts/generated/subprompts/superblocks-timers.d.ts.map +1 -0
  172. package/dist/ai-service/prompts/generated/subprompts/superblocks-timers.js +6 -0
  173. package/dist/ai-service/prompts/generated/subprompts/superblocks-timers.js.map +1 -0
  174. package/dist/ai-service/prompts/generated/subprompts/system.d.ts +2 -0
  175. package/dist/ai-service/prompts/generated/subprompts/system.d.ts.map +1 -0
  176. package/dist/ai-service/prompts/generated/subprompts/system.js +6 -0
  177. package/dist/ai-service/prompts/generated/subprompts/system.js.map +1 -0
  178. package/dist/ai-service/prompts/markdown-loader.d.ts +9 -0
  179. package/dist/ai-service/prompts/markdown-loader.d.ts.map +1 -0
  180. package/dist/ai-service/prompts/markdown-loader.js +55 -0
  181. package/dist/ai-service/prompts/markdown-loader.js.map +1 -0
  182. package/dist/ai-service/prompts/system.d.ts +2 -0
  183. package/dist/ai-service/prompts/system.d.ts.map +1 -0
  184. package/dist/ai-service/prompts/system.js +145 -0
  185. package/dist/ai-service/prompts/system.js.map +1 -0
  186. package/dist/ai-service/result-buffer/bolt.d.ts +15 -0
  187. package/dist/ai-service/result-buffer/bolt.d.ts.map +1 -0
  188. package/dist/ai-service/result-buffer/bolt.js +73 -0
  189. package/dist/ai-service/result-buffer/bolt.js.map +1 -0
  190. package/dist/ai-service/result-buffer/shared.d.ts +13 -0
  191. package/dist/ai-service/result-buffer/shared.d.ts.map +1 -0
  192. package/dist/ai-service/result-buffer/shared.js +7 -0
  193. package/dist/ai-service/result-buffer/shared.js.map +1 -0
  194. package/dist/ai-service/state-machine/clark-fsm.d.ts +158 -0
  195. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -0
  196. package/dist/ai-service/state-machine/clark-fsm.js +62 -0
  197. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -0
  198. package/dist/ai-service/state-machine/fsm.d.ts +42 -0
  199. package/dist/ai-service/state-machine/fsm.d.ts.map +1 -0
  200. package/dist/ai-service/state-machine/fsm.js +55 -0
  201. package/dist/ai-service/state-machine/fsm.js.map +1 -0
  202. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts +3 -0
  203. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -0
  204. package/dist/ai-service/state-machine/handlers/agent-planning.js +209 -0
  205. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -0
  206. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts +3 -0
  207. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -0
  208. package/dist/ai-service/state-machine/handlers/awaiting-user.js +21 -0
  209. package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -0
  210. package/dist/ai-service/state-machine/handlers/idle.d.ts +3 -0
  211. package/dist/ai-service/state-machine/handlers/idle.d.ts.map +1 -0
  212. package/dist/ai-service/state-machine/handlers/idle.js +22 -0
  213. package/dist/ai-service/state-machine/handlers/idle.js.map +1 -0
  214. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts +3 -0
  215. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -0
  216. package/dist/ai-service/state-machine/handlers/llm-generating.js +123 -0
  217. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -0
  218. package/dist/ai-service/state-machine/handlers/play-dead.d.ts +3 -0
  219. package/dist/ai-service/state-machine/handlers/play-dead.d.ts.map +1 -0
  220. package/dist/ai-service/state-machine/handlers/play-dead.js +11 -0
  221. package/dist/ai-service/state-machine/handlers/play-dead.js.map +1 -0
  222. package/dist/ai-service/state-machine/handlers/post-processing.d.ts +3 -0
  223. package/dist/ai-service/state-machine/handlers/post-processing.d.ts.map +1 -0
  224. package/dist/ai-service/state-machine/handlers/post-processing.js +50 -0
  225. package/dist/ai-service/state-machine/handlers/post-processing.js.map +1 -0
  226. package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts +3 -0
  227. package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts.map +1 -0
  228. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +37 -0
  229. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -0
  230. package/dist/ai-service/state-machine/helpers/metadata.d.ts +6 -0
  231. package/dist/ai-service/state-machine/helpers/metadata.d.ts.map +1 -0
  232. package/dist/ai-service/state-machine/helpers/metadata.js +11 -0
  233. package/dist/ai-service/state-machine/helpers/metadata.js.map +1 -0
  234. package/dist/ai-service/state-machine/helpers/peer.d.ts +5 -0
  235. package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -0
  236. package/dist/ai-service/state-machine/helpers/peer.js +7 -0
  237. package/dist/ai-service/state-machine/helpers/peer.js.map +1 -0
  238. package/dist/ai-service/state-machine/helpers/transition.d.ts +13 -0
  239. package/dist/ai-service/state-machine/helpers/transition.d.ts.map +1 -0
  240. package/dist/ai-service/state-machine/helpers/transition.js +6 -0
  241. package/dist/ai-service/state-machine/helpers/transition.js.map +1 -0
  242. package/dist/ai-service/state-machine/mocks.d.ts +7 -0
  243. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -0
  244. package/dist/ai-service/state-machine/mocks.js +63 -0
  245. package/dist/ai-service/state-machine/mocks.js.map +1 -0
  246. package/dist/ai-service/state-machine/test-util.d.ts +5 -0
  247. package/dist/ai-service/state-machine/test-util.d.ts.map +1 -0
  248. package/dist/ai-service/state-machine/test-util.js +29 -0
  249. package/dist/ai-service/state-machine/test-util.js.map +1 -0
  250. package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.d.ts +21 -0
  251. package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.d.ts.map +1 -0
  252. package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.js +47 -0
  253. package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.js.map +1 -0
  254. package/dist/ai-service/transform/api-builder/shared.d.ts +11 -0
  255. package/dist/ai-service/transform/api-builder/shared.d.ts.map +1 -0
  256. package/dist/ai-service/transform/api-builder/shared.js +53 -0
  257. package/dist/ai-service/transform/api-builder/shared.js.map +1 -0
  258. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts +27 -0
  259. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -0
  260. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +66 -0
  261. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -0
  262. package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts +23 -0
  263. package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts.map +1 -0
  264. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js +59 -0
  265. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js.map +1 -0
  266. package/dist/ai-service/transform/remove-api-builder-imports/transformer.d.ts +19 -0
  267. package/dist/ai-service/transform/remove-api-builder-imports/transformer.d.ts.map +1 -0
  268. package/dist/ai-service/transform/remove-api-builder-imports/transformer.js +45 -0
  269. package/dist/ai-service/transform/remove-api-builder-imports/transformer.js.map +1 -0
  270. package/dist/ai-service/transform/shared.d.ts +20 -0
  271. package/dist/ai-service/transform/shared.d.ts.map +1 -0
  272. package/dist/ai-service/transform/shared.js +132 -0
  273. package/dist/ai-service/transform/shared.js.map +1 -0
  274. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.d.ts +17 -0
  275. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.d.ts.map +1 -0
  276. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js +33 -0
  277. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js.map +1 -0
  278. package/dist/ai-service/types.d.ts +65 -0
  279. package/dist/ai-service/types.d.ts.map +1 -0
  280. package/dist/ai-service/types.js +2 -0
  281. package/dist/ai-service/types.js.map +1 -0
  282. package/dist/binding-extraction/extract-control-block-identifiers.d.ts +4 -0
  283. package/dist/binding-extraction/extract-control-block-identifiers.d.ts.map +1 -0
  284. package/dist/binding-extraction/extract-control-block-identifiers.js +86 -0
  285. package/dist/binding-extraction/extract-control-block-identifiers.js.map +1 -0
  286. package/dist/binding-extraction/extract-embedded-identifiers.d.ts +16 -0
  287. package/dist/binding-extraction/extract-embedded-identifiers.d.ts.map +1 -0
  288. package/dist/binding-extraction/extract-embedded-identifiers.js +100 -0
  289. package/dist/binding-extraction/extract-embedded-identifiers.js.map +1 -0
  290. package/dist/binding-extraction/extract-identifiers.d.ts +8 -0
  291. package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -0
  292. package/dist/binding-extraction/extract-identifiers.js +150 -0
  293. package/dist/binding-extraction/extract-identifiers.js.map +1 -0
  294. package/dist/binding-extraction/extract-js-identifiers.d.ts +19 -0
  295. package/dist/binding-extraction/extract-js-identifiers.d.ts.map +1 -0
  296. package/dist/binding-extraction/extract-js-identifiers.js +161 -0
  297. package/dist/binding-extraction/extract-js-identifiers.js.map +1 -0
  298. package/dist/binding-extraction/extract-py-identifiers.d.ts +4 -0
  299. package/dist/binding-extraction/extract-py-identifiers.d.ts.map +1 -0
  300. package/dist/binding-extraction/extract-py-identifiers.js +161 -0
  301. package/dist/binding-extraction/extract-py-identifiers.js.map +1 -0
  302. package/dist/binding-extraction/shared.d.ts +225 -0
  303. package/dist/binding-extraction/shared.d.ts.map +1 -0
  304. package/dist/binding-extraction/shared.js +43 -0
  305. package/dist/binding-extraction/shared.js.map +1 -0
  306. package/dist/binding-extraction/template-strings.d.ts +9 -0
  307. package/dist/binding-extraction/template-strings.d.ts.map +1 -0
  308. package/dist/binding-extraction/template-strings.js +45 -0
  309. package/dist/binding-extraction/template-strings.js.map +1 -0
  310. package/dist/codegen.d.ts +26 -0
  311. package/dist/codegen.d.ts.map +1 -0
  312. package/dist/codegen.js +217 -0
  313. package/dist/codegen.js.map +1 -0
  314. package/dist/components-manager.d.ts +38 -0
  315. package/dist/components-manager.d.ts.map +1 -0
  316. package/dist/components-manager.js +177 -0
  317. package/dist/components-manager.js.map +1 -0
  318. package/dist/custom-components.d.ts +6 -0
  319. package/dist/custom-components.d.ts.map +1 -0
  320. package/dist/custom-components.js +51 -0
  321. package/dist/custom-components.js.map +1 -0
  322. package/dist/draft-interface.d.ts +11 -0
  323. package/dist/draft-interface.d.ts.map +1 -0
  324. package/dist/draft-interface.js +2 -0
  325. package/dist/draft-interface.js.map +1 -0
  326. package/dist/errors/error-handler.d.ts +35 -0
  327. package/dist/errors/error-handler.d.ts.map +1 -0
  328. package/dist/errors/error-handler.js +65 -0
  329. package/dist/errors/error-handler.js.map +1 -0
  330. package/dist/errors/make-server-error.d.ts +5 -0
  331. package/dist/errors/make-server-error.d.ts.map +1 -0
  332. package/dist/errors/make-server-error.js +21 -0
  333. package/dist/errors/make-server-error.js.map +1 -0
  334. package/dist/file-sync-vite-plugin.d.ts +4 -0
  335. package/dist/file-sync-vite-plugin.d.ts.map +1 -0
  336. package/dist/file-sync-vite-plugin.js +573 -0
  337. package/dist/file-sync-vite-plugin.js.map +1 -0
  338. package/dist/file-system-helpers.d.ts +7 -0
  339. package/dist/file-system-helpers.d.ts.map +1 -0
  340. package/dist/file-system-helpers.js +12 -0
  341. package/dist/file-system-helpers.js.map +1 -0
  342. package/dist/file-system-manager.d.ts +131 -0
  343. package/dist/file-system-manager.d.ts.map +1 -0
  344. package/dist/file-system-manager.js +1159 -0
  345. package/dist/file-system-manager.js.map +1 -0
  346. package/dist/generate.d.ts +8 -0
  347. package/dist/generate.d.ts.map +1 -0
  348. package/dist/generate.js +7 -0
  349. package/dist/generate.js.map +1 -0
  350. package/dist/ids.d.ts +2 -0
  351. package/dist/ids.d.ts.map +1 -0
  352. package/dist/ids.js +21 -0
  353. package/dist/ids.js.map +1 -0
  354. package/dist/index.d.ts +6 -0
  355. package/dist/index.d.ts.map +1 -0
  356. package/dist/index.js +6 -0
  357. package/dist/index.js.map +1 -0
  358. package/dist/injected-index.d.ts +12 -0
  359. package/dist/injected-index.d.ts.map +1 -0
  360. package/dist/injected-index.js +38 -0
  361. package/dist/injected-index.js.map +1 -0
  362. package/dist/lock-service/index.d.ts +93 -0
  363. package/dist/lock-service/index.d.ts.map +1 -0
  364. package/dist/lock-service/index.js +267 -0
  365. package/dist/lock-service/index.js.map +1 -0
  366. package/dist/parsing/bindings.d.ts +4 -0
  367. package/dist/parsing/bindings.d.ts.map +1 -0
  368. package/dist/parsing/bindings.js +17 -0
  369. package/dist/parsing/bindings.js.map +1 -0
  370. package/dist/parsing/computed/to-code-computed.d.ts +2 -0
  371. package/dist/parsing/computed/to-code-computed.d.ts.map +1 -0
  372. package/dist/parsing/computed/to-code-computed.js +39 -0
  373. package/dist/parsing/computed/to-code-computed.js.map +1 -0
  374. package/dist/parsing/computed/to-value-computed.d.ts +4 -0
  375. package/dist/parsing/computed/to-value-computed.d.ts.map +1 -0
  376. package/dist/parsing/computed/to-value-computed.js +13 -0
  377. package/dist/parsing/computed/to-value-computed.js.map +1 -0
  378. package/dist/parsing/dim/to-code-dimensions.d.ts +3 -0
  379. package/dist/parsing/dim/to-code-dimensions.d.ts.map +1 -0
  380. package/dist/parsing/dim/to-code-dimensions.js +22 -0
  381. package/dist/parsing/dim/to-code-dimensions.js.map +1 -0
  382. package/dist/parsing/dim/to-value-dimensions.d.ts +4 -0
  383. package/dist/parsing/dim/to-value-dimensions.d.ts.map +1 -0
  384. package/dist/parsing/dim/to-value-dimensions.js +39 -0
  385. package/dist/parsing/dim/to-value-dimensions.js.map +1 -0
  386. package/dist/parsing/entity/index.d.ts +8 -0
  387. package/dist/parsing/entity/index.d.ts.map +1 -0
  388. package/dist/parsing/entity/index.js +8 -0
  389. package/dist/parsing/entity/index.js.map +1 -0
  390. package/dist/parsing/entity/to-code-entity.d.ts +3 -0
  391. package/dist/parsing/entity/to-code-entity.d.ts.map +1 -0
  392. package/dist/parsing/entity/to-code-entity.js +38 -0
  393. package/dist/parsing/entity/to-code-entity.js.map +1 -0
  394. package/dist/parsing/entity/to-value-entity.d.ts +8 -0
  395. package/dist/parsing/entity/to-value-entity.d.ts.map +1 -0
  396. package/dist/parsing/entity/to-value-entity.js +98 -0
  397. package/dist/parsing/entity/to-value-entity.js.map +1 -0
  398. package/dist/parsing/events/to-code-events.d.ts +3 -0
  399. package/dist/parsing/events/to-code-events.d.ts.map +1 -0
  400. package/dist/parsing/events/to-code-events.js +86 -0
  401. package/dist/parsing/events/to-code-events.js.map +1 -0
  402. package/dist/parsing/events/to-value-events.d.ts +5 -0
  403. package/dist/parsing/events/to-value-events.d.ts.map +1 -0
  404. package/dist/parsing/events/to-value-events.js +155 -0
  405. package/dist/parsing/events/to-value-events.js.map +1 -0
  406. package/dist/parsing/ids.d.ts +17 -0
  407. package/dist/parsing/ids.d.ts.map +1 -0
  408. package/dist/parsing/ids.js +121 -0
  409. package/dist/parsing/ids.js.map +1 -0
  410. package/dist/parsing/imports.d.ts +6 -0
  411. package/dist/parsing/imports.d.ts.map +1 -0
  412. package/dist/parsing/imports.js +27 -0
  413. package/dist/parsing/imports.js.map +1 -0
  414. package/dist/parsing/jsx-utils.d.ts +9 -0
  415. package/dist/parsing/jsx-utils.d.ts.map +1 -0
  416. package/dist/parsing/jsx-utils.js +42 -0
  417. package/dist/parsing/jsx-utils.js.map +1 -0
  418. package/dist/parsing/jsx.d.ts +23 -0
  419. package/dist/parsing/jsx.d.ts.map +1 -0
  420. package/dist/parsing/jsx.js +327 -0
  421. package/dist/parsing/jsx.js.map +1 -0
  422. package/dist/parsing/page.d.ts +9 -0
  423. package/dist/parsing/page.d.ts.map +1 -0
  424. package/dist/parsing/page.js +156 -0
  425. package/dist/parsing/page.js.map +1 -0
  426. package/dist/parsing/properties.d.ts +5 -0
  427. package/dist/parsing/properties.d.ts.map +1 -0
  428. package/dist/parsing/properties.js +89 -0
  429. package/dist/parsing/properties.js.map +1 -0
  430. package/dist/parsing/scope.d.ts +80 -0
  431. package/dist/parsing/scope.d.ts.map +1 -0
  432. package/dist/parsing/scope.js +549 -0
  433. package/dist/parsing/scope.js.map +1 -0
  434. package/dist/parsing/template/to-code-template.d.ts +2 -0
  435. package/dist/parsing/template/to-code-template.d.ts.map +1 -0
  436. package/dist/parsing/template/to-code-template.js +5 -0
  437. package/dist/parsing/template/to-code-template.js.map +1 -0
  438. package/dist/parsing/template/to-value-template.d.ts +4 -0
  439. package/dist/parsing/template/to-value-template.d.ts.map +1 -0
  440. package/dist/parsing/template/to-value-template.js +19 -0
  441. package/dist/parsing/template/to-value-template.js.map +1 -0
  442. package/dist/parsing/theme.d.ts +3 -0
  443. package/dist/parsing/theme.d.ts.map +1 -0
  444. package/dist/parsing/theme.js +87 -0
  445. package/dist/parsing/theme.js.map +1 -0
  446. package/dist/parsing/type-parsing-registry.d.ts +18 -0
  447. package/dist/parsing/type-parsing-registry.d.ts.map +1 -0
  448. package/dist/parsing/type-parsing-registry.js +31 -0
  449. package/dist/parsing/type-parsing-registry.js.map +1 -0
  450. package/dist/parsing/util.d.ts +30 -0
  451. package/dist/parsing/util.d.ts.map +1 -0
  452. package/dist/parsing/util.js +310 -0
  453. package/dist/parsing/util.js.map +1 -0
  454. package/dist/plugin-options.d.ts +25 -0
  455. package/dist/plugin-options.d.ts.map +1 -0
  456. package/dist/plugin-options.js +14 -0
  457. package/dist/plugin-options.js.map +1 -0
  458. package/dist/refactor/blocks.d.ts +10 -0
  459. package/dist/refactor/blocks.d.ts.map +1 -0
  460. package/dist/refactor/blocks.js +214 -0
  461. package/dist/refactor/blocks.js.map +1 -0
  462. package/dist/refactor/javascript.d.ts +15 -0
  463. package/dist/refactor/javascript.d.ts.map +1 -0
  464. package/dist/refactor/javascript.js +171 -0
  465. package/dist/refactor/javascript.js.map +1 -0
  466. package/dist/refactor-jsx.d.ts +28 -0
  467. package/dist/refactor-jsx.d.ts.map +1 -0
  468. package/dist/refactor-jsx.js +77 -0
  469. package/dist/refactor-jsx.js.map +1 -0
  470. package/dist/rename-manager.d.ts +27 -0
  471. package/dist/rename-manager.d.ts.map +1 -0
  472. package/dist/rename-manager.js +148 -0
  473. package/dist/rename-manager.js.map +1 -0
  474. package/dist/routing.d.ts +6 -0
  475. package/dist/routing.d.ts.map +1 -0
  476. package/dist/routing.js +76 -0
  477. package/dist/routing.js.map +1 -0
  478. package/dist/sb-scope-manager.d.ts +96 -0
  479. package/dist/sb-scope-manager.d.ts.map +1 -0
  480. package/dist/sb-scope-manager.js +438 -0
  481. package/dist/sb-scope-manager.js.map +1 -0
  482. package/dist/socket-manager.d.ts +40 -0
  483. package/dist/socket-manager.d.ts.map +1 -0
  484. package/dist/socket-manager.js +174 -0
  485. package/dist/socket-manager.js.map +1 -0
  486. package/dist/source-tracker.d.ts +190 -0
  487. package/dist/source-tracker.d.ts.map +1 -0
  488. package/dist/source-tracker.js +955 -0
  489. package/dist/source-tracker.js.map +1 -0
  490. package/dist/sync-service/download.d.ts +15 -0
  491. package/dist/sync-service/download.d.ts.map +1 -0
  492. package/dist/sync-service/download.js +116 -0
  493. package/dist/sync-service/download.js.map +1 -0
  494. package/dist/sync-service/draft-helpers.d.ts +68 -0
  495. package/dist/sync-service/draft-helpers.d.ts.map +1 -0
  496. package/dist/sync-service/draft-helpers.js +362 -0
  497. package/dist/sync-service/draft-helpers.js.map +1 -0
  498. package/dist/sync-service/hash-cache.d.ts +15 -0
  499. package/dist/sync-service/hash-cache.d.ts.map +1 -0
  500. package/dist/sync-service/hash-cache.js +58 -0
  501. package/dist/sync-service/hash-cache.js.map +1 -0
  502. package/dist/sync-service/hash-dir-tree.d.ts +10 -0
  503. package/dist/sync-service/hash-dir-tree.d.ts.map +1 -0
  504. package/dist/sync-service/hash-dir-tree.js +53 -0
  505. package/dist/sync-service/hash-dir-tree.js.map +1 -0
  506. package/dist/sync-service/index.d.ts +134 -0
  507. package/dist/sync-service/index.d.ts.map +1 -0
  508. package/dist/sync-service/index.js +323 -0
  509. package/dist/sync-service/index.js.map +1 -0
  510. package/dist/sync-service/list-dir.d.ts +29 -0
  511. package/dist/sync-service/list-dir.d.ts.map +1 -0
  512. package/dist/sync-service/list-dir.js +66 -0
  513. package/dist/sync-service/list-dir.js.map +1 -0
  514. package/dist/sync-service/server-rpc/client.d.ts +13 -0
  515. package/dist/sync-service/server-rpc/client.d.ts.map +1 -0
  516. package/dist/sync-service/server-rpc/client.js +62 -0
  517. package/dist/sync-service/server-rpc/client.js.map +1 -0
  518. package/dist/sync-service/server-rpc/handlers.d.ts +3 -0
  519. package/dist/sync-service/server-rpc/handlers.d.ts.map +1 -0
  520. package/dist/sync-service/server-rpc/handlers.js +18 -0
  521. package/dist/sync-service/server-rpc/handlers.js.map +1 -0
  522. package/dist/sync-service/snapshot/take-snapshot.d.ts +38 -0
  523. package/dist/sync-service/snapshot/take-snapshot.d.ts.map +1 -0
  524. package/dist/sync-service/snapshot/take-snapshot.js +232 -0
  525. package/dist/sync-service/snapshot/take-snapshot.js.map +1 -0
  526. package/dist/sync-service/snapshot/types.d.ts +24 -0
  527. package/dist/sync-service/snapshot/types.d.ts.map +1 -0
  528. package/dist/sync-service/snapshot/types.js +3 -0
  529. package/dist/sync-service/snapshot/types.js.map +1 -0
  530. package/dist/sync-service/snapshot/upload-snapshot.d.ts +5 -0
  531. package/dist/sync-service/snapshot/upload-snapshot.d.ts.map +1 -0
  532. package/dist/sync-service/snapshot/upload-snapshot.js +50 -0
  533. package/dist/sync-service/snapshot/upload-snapshot.js.map +1 -0
  534. package/dist/traverse.d.ts +6 -0
  535. package/dist/traverse.d.ts.map +1 -0
  536. package/dist/traverse.js +7 -0
  537. package/dist/traverse.js.map +1 -0
  538. package/dist/util/generation-number-sequence.d.ts +7 -0
  539. package/dist/util/generation-number-sequence.d.ts.map +1 -0
  540. package/dist/util/generation-number-sequence.js +13 -0
  541. package/dist/util/generation-number-sequence.js.map +1 -0
  542. package/dist/util/logger.d.ts +22 -0
  543. package/dist/util/logger.d.ts.map +1 -0
  544. package/dist/util/logger.js +64 -0
  545. package/dist/util/logger.js.map +1 -0
  546. package/dist/util/operation-queue.d.ts +17 -0
  547. package/dist/util/operation-queue.d.ts.map +1 -0
  548. package/dist/util/operation-queue.js +27 -0
  549. package/dist/util/operation-queue.js.map +1 -0
  550. package/dist/util/tracing.d.ts +4 -0
  551. package/dist/util/tracing.d.ts.map +1 -0
  552. package/dist/util/tracing.js +19 -0
  553. package/dist/util/tracing.js.map +1 -0
  554. package/dist/util/with-resolvers.d.ts +10 -0
  555. package/dist/util/with-resolvers.d.ts.map +1 -0
  556. package/dist/util/with-resolvers.js +14 -0
  557. package/dist/util/with-resolvers.js.map +1 -0
  558. package/dist/util.d.ts +26 -0
  559. package/dist/util.d.ts.map +1 -0
  560. package/dist/util.js +82 -0
  561. package/dist/util.js.map +1 -0
  562. package/package.json +123 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-tracker.js","sourceRoot":"","sources":["../src/source-tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { HashCache } from "./hash-cache.js";
2
+ import type { StdISocketRPCClient } from "./server-rpc/client.js";
3
+ import type { DirectoryState } from "./snapshot/types.js";
4
+ export declare function getApplicationDirectoryHash(rpcClient: StdISocketRPCClient, applicationId: string, branch: string | undefined, localDirectoryPath: string): Promise<{
5
+ serverDirectoryHash: string;
6
+ localDirectoryState: DirectoryState;
7
+ }>;
8
+ export declare function downloadApplicationDirectory({ rpcClient, applicationId, branch, localDirectoryPath, hashCache, }: {
9
+ rpcClient: StdISocketRPCClient;
10
+ applicationId: string;
11
+ branch: string | undefined;
12
+ localDirectoryPath: string;
13
+ hashCache: HashCache;
14
+ }): Promise<string>;
15
+ //# sourceMappingURL=download.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/sync-service/download.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,qBAAqB,CAAC;AAQ7B,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,mBAAmB,EAC9B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,kBAAkB,EAAE,MAAM;;;GAmB3B;AAED,wBAAsB,4BAA4B,CAAC,EACjD,SAAS,EACT,aAAa,EACb,MAAM,EACN,kBAAkB,EAClB,SAAS,GACV,EAAE;IACD,SAAS,EAAE,mBAAmB,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBlB"}
@@ -0,0 +1,116 @@
1
+ import * as fsp from "node:fs/promises";
2
+ import { hashLocalDirectory } from "./hash-dir-tree.js";
3
+ import { unwrapResponseDto } from "./server-rpc/client.js";
4
+ // TODO(code-mode): this is re-implemented in the sdk package
5
+ // because SDK depends on vite-plugin-file-sync, but can't be circular
6
+ export async function getApplicationDirectoryHash(rpcClient, applicationId, branch, localDirectoryPath) {
7
+ const [liveEditHashResponse, localDirectoryState] = await Promise.all([
8
+ unwrapResponseDto(rpcClient.call.v3.application.liveEditDirectoryContents.get({
9
+ applicationId,
10
+ branchName: branch,
11
+ })),
12
+ hashLocalDirectory(localDirectoryPath),
13
+ ]);
14
+ const directoryHash = liveEditHashResponse.hash;
15
+ if (!directoryHash) {
16
+ throw new Error("No live edit hash found");
17
+ }
18
+ return {
19
+ serverDirectoryHash: directoryHash,
20
+ localDirectoryState,
21
+ };
22
+ }
23
+ export async function downloadApplicationDirectory({ rpcClient, applicationId, branch, localDirectoryPath, hashCache, }) {
24
+ const { serverDirectoryHash, localDirectoryState } = await getApplicationDirectoryHash(rpcClient, applicationId, branch, localDirectoryPath);
25
+ await doDownloadApplicationDirectory(rpcClient, serverDirectoryHash, localDirectoryState, localDirectoryPath);
26
+ // Now that the directory has been downloaded, we know that all of its hashes are in the server,
27
+ // so we can add them to the hash cache
28
+ hashCache.add_directory_recursive(localDirectoryState);
29
+ return serverDirectoryHash;
30
+ }
31
+ async function doDownloadApplicationDirectory(rpcClient, directoryHash, localDirState, localDirectoryPath) {
32
+ // keep track of the hashes we need to get from the server and save locally
33
+ const hashesToGet = {};
34
+ const doRecursive = async (rpcClient, directoryHash, localDirState, localDirectoryPath, hashesToGet) => {
35
+ if (localDirState?.hash === directoryHash) {
36
+ // The directory is already up to date, we don't need to download anything
37
+ return;
38
+ }
39
+ // FIXME: @joeyagreco - this is slow!
40
+ // FIXME: @joeyagreco - look into having this be a single call to the server beforehand or implement pagination of some sort
41
+ const directoryContentsResponse = await unwrapResponseDto(rpcClient.call.v1.dbfs.directoryContents.get({ hash: directoryHash }));
42
+ // Create a map of the local directory contents
43
+ // As we process the directory entries, we will be removing them from the map so that the entries left will
44
+ // correspond to files that have been deleted
45
+ const localDirMap = new Map(localDirState?.contents.map((entry) => [entry.name, entry]) ?? []);
46
+ for (const entry of directoryContentsResponse.contents) {
47
+ const localFilePath = `${localDirectoryPath}/${entry.name}`;
48
+ // The entry has been matched, remove it from the map, if it exists
49
+ let localEntry = localDirMap.get(entry.name);
50
+ localDirMap.delete(entry.name);
51
+ if (localEntry !== undefined && localEntry.type !== entry.type) {
52
+ // The file type has changed, the file is a regular file but the local file is not, so we need to delete the local file
53
+ // because we will not be able to overwrite it otherwise
54
+ await fsp.rm(localFilePath, { recursive: true });
55
+ localEntry = undefined;
56
+ }
57
+ // At this point, if `localEntry` is defined, it is guaranteed to have the same type as `entry`.
58
+ // TypeScript will not be able to infer this, so we need to cast it to the correct type in each case.
59
+ switch (entry.type) {
60
+ case "-": {
61
+ const localEntryTyped = localEntry;
62
+ if (localEntryTyped?.hash !== entry.hash) {
63
+ hashesToGet[entry.hash] = { localFilePath };
64
+ const fileContentsResponse = await unwrapResponseDto(rpcClient.call.v1.dbfs.fileContents.get({ hash: entry.hash }));
65
+ const fileContents = Buffer.from(fileContentsResponse.contents, "base64");
66
+ await fsp.writeFile(localFilePath, fileContents);
67
+ }
68
+ break;
69
+ }
70
+ case "l": {
71
+ const localEntryTyped = localEntry;
72
+ if (localEntryTyped?.target !== entry.target) {
73
+ await fsp.symlink(entry.target, localFilePath);
74
+ }
75
+ break;
76
+ }
77
+ case "d": {
78
+ const localEntryTyped = localEntry;
79
+ if (localEntryTyped === undefined) {
80
+ await fsp.mkdir(localFilePath, { recursive: true }); // don't fail if directory exists
81
+ }
82
+ const localSubDirState = localEntryTyped === undefined
83
+ ? undefined
84
+ : {
85
+ hash: localEntryTyped.hash,
86
+ contents: localEntryTyped.contents,
87
+ };
88
+ await doRecursive(rpcClient, entry.hash, localSubDirState, localFilePath, hashesToGet);
89
+ break;
90
+ }
91
+ default: {
92
+ throw new Error(`Unknown entry type: ${entry}`);
93
+ }
94
+ }
95
+ }
96
+ // Any remaining entries in the map are files/directories that have been deleted
97
+ for (const localEntry of localDirMap.values()) {
98
+ const localFilePath = `${localDirectoryPath}/${localEntry.name}`;
99
+ await fsp.rm(localFilePath, { recursive: true });
100
+ }
101
+ };
102
+ await doRecursive(rpcClient, directoryHash, localDirState, localDirectoryPath, hashesToGet);
103
+ // now that we have all the hashes, we can do the work in parallel batches
104
+ // NOTE: @joeyagreco - i do not know what a good number would be here, we can tweak as we see fit
105
+ const DOWNLOAD_BATCH_SIZE = 50;
106
+ const entries = Object.entries(hashesToGet);
107
+ for (let i = 0; i < entries.length; i += DOWNLOAD_BATCH_SIZE) {
108
+ const batch = entries.slice(i, i + DOWNLOAD_BATCH_SIZE);
109
+ await Promise.all(batch.map(async ([hash, { localFilePath }]) => {
110
+ const fileContentsResponse = await unwrapResponseDto(rpcClient.call.v1.dbfs.fileContents.get({ hash }));
111
+ const fileContents = Buffer.from(fileContentsResponse.contents, "base64");
112
+ await fsp.writeFile(localFilePath, fileContents);
113
+ }));
114
+ }
115
+ }
116
+ //# sourceMappingURL=download.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/sync-service/download.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Creates a draft edit or addition based on the presence of an existing file.
3
+ * This makes the draft content visible to the build system while preserving the original.
4
+ *
5
+ * @param filePath - The absolute path to the file to edit or add.
6
+ * @param draftContent - The content of the draft edit or addition.
7
+ * @param appRootDirPath - The absolute path to the app root directory.
8
+ * @returns A promise that resolves to "edit" if the file already exists, or "add" if the file does not exist.
9
+ */
10
+ export declare function createDraft(filePath: string, draftContent: string | Buffer, appRootDirPath: string): Promise<"edit" | "add">;
11
+ /**
12
+ * Creates a draft edit by copying the original file to the drafts directory and writing draft content to the original location.
13
+ * This makes the draft content visible to the build system while preserving the original.
14
+ * If a draft edit already exists, this will just update the draft content.
15
+ *
16
+ * @param filePath - The absolute path to the file to edit.
17
+ * @param draftContent - The content of the draft edit.
18
+ * @param appRootDirPath - The absolute path to the app root directory.
19
+ * @returns A promise that resolves when the draft edit is created.
20
+ */
21
+ export declare function createDraftEdit(filePath: string, draftContent: string | Buffer, appRootDirPath: string): Promise<void>;
22
+ /**
23
+ * Creates a draft addition by writing new file content and creating a .sbswap.add marker.
24
+ * This makes the new file visible to the build system while marking it as a draft addition.
25
+ * If a draft addition already exists, this will just update the content.
26
+ *
27
+ * @param filePath - The absolute path where the new file should be created.
28
+ * @param content - The content of the new file.
29
+ * @param appRootDirPath - The absolute path to the app root directory.
30
+ * @returns A promise that resolves when the draft addition is created.
31
+ */
32
+ export declare function createDraftAdd(filePath: string, content: string | Buffer, appRootDirPath: string): Promise<void>;
33
+ /**
34
+ * Recursively checks if any draft files exist in the drafts directory.
35
+ * Looks for .sbswap.edit and .sbswap.add marker files.
36
+ *
37
+ * @param appRootDirPath - The absolute path to the app root directory.
38
+ * @returns A promise that resolves to true if any draft files are found, false otherwise.
39
+ */
40
+ export declare function hasSwapFiles(appRootDirPath: string): Promise<boolean>;
41
+ /**
42
+ * Discards all draft changes by restoring original files and removing draft additions.
43
+ * - For .sbswap.edit files: copies them back to the original location
44
+ * - For .sbswap.add markers: removes both the marker and the corresponding file
45
+ *
46
+ * @param appRootDirPath - The absolute path to the app root directory.
47
+ * @returns A promise that resolves when all drafts have been discarded.
48
+ */
49
+ export declare function discardAllDrafts(appRootDirPath: string): Promise<void>;
50
+ /**
51
+ * Commits all draft changes by removing .sbswap.edit and .sbswap.add markers.
52
+ * This leaves the current filesystem state as the committed state.
53
+ *
54
+ * @param appRootDirPath - The absolute path to the app root directory.
55
+ * @returns A promise that resolves when all drafts have been committed.
56
+ */
57
+ export declare function commitAllDrafts(appRootDirPath: string): Promise<void>;
58
+ /**
59
+ * Gets information about all draft files in the drafts directory.
60
+ *
61
+ * @param appRootDirPath - The absolute path to the app root directory.
62
+ * @returns A promise that resolves to information about draft files.
63
+ */
64
+ export declare function getDraftInfo(appRootDirPath: string): Promise<{
65
+ edits: string[];
66
+ additions: string[];
67
+ }>;
68
+ //# sourceMappingURL=draft-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-helpers.d.ts","sourceRoot":"","sources":["../../src/sync-service/draft-helpers.ts"],"names":[],"mappings":"AAqCA;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GAAG,MAAM,EAC7B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAgDzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GAAG,MAAM,EAC7B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CA+Cf;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW3E;AAqCD;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB5E;AAwED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3E;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;IAClE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC,CAiDD"}
@@ -0,0 +1,362 @@
1
+ import * as fsp from "node:fs/promises";
2
+ import * as path from "node:path";
3
+ const EDIT_EXT = ".sbswap.edit";
4
+ const ADD_EXT = ".sbswap.add";
5
+ /**
6
+ * Gets the marker file path for a given file path and app root directory.
7
+ * Marker files are stored in .superblocks/drafts/ with the same relative structure.
8
+ *
9
+ * @param filePath - The absolute path to the file.
10
+ * @param appRootDirPath - The absolute path to the app root directory.
11
+ * @param markerType - The type of marker file ('.sbswap.edit' or '.sbswap.add').
12
+ * @returns The absolute path to the marker file.
13
+ */
14
+ function getMarkerFilePath(filePath, appRootDirPath, markerType) {
15
+ const relativePath = path.relative(appRootDirPath, filePath);
16
+ return path.join(getDraftsDirectoryPath(appRootDirPath), `${relativePath}${markerType}`);
17
+ }
18
+ /**
19
+ * Gets the drafts directory path for the app root.
20
+ *
21
+ * @param appRootDirPath - The absolute path to the app root directory.
22
+ * @returns The absolute path to the drafts directory.
23
+ */
24
+ function getDraftsDirectoryPath(appRootDirPath) {
25
+ return path.join(appRootDirPath, ".superblocks", "drafts");
26
+ }
27
+ /**
28
+ * Creates a draft edit or addition based on the presence of an existing file.
29
+ * This makes the draft content visible to the build system while preserving the original.
30
+ *
31
+ * @param filePath - The absolute path to the file to edit or add.
32
+ * @param draftContent - The content of the draft edit or addition.
33
+ * @param appRootDirPath - The absolute path to the app root directory.
34
+ * @returns A promise that resolves to "edit" if the file already exists, or "add" if the file does not exist.
35
+ */
36
+ export async function createDraft(filePath, draftContent, appRootDirPath) {
37
+ const editMarkerPath = getMarkerFilePath(filePath, appRootDirPath, EDIT_EXT);
38
+ const addMarkerPath = getMarkerFilePath(filePath, appRootDirPath, ADD_EXT);
39
+ let state = "NEW";
40
+ try {
41
+ await fsp.access(filePath);
42
+ state = "FILE_EXISTS";
43
+ }
44
+ catch {
45
+ //
46
+ }
47
+ try {
48
+ await fsp.access(editMarkerPath);
49
+ state = "EDIT_MARKER";
50
+ }
51
+ catch {
52
+ //
53
+ }
54
+ try {
55
+ await fsp.access(addMarkerPath);
56
+ state = "ADD_MARKER";
57
+ }
58
+ catch {
59
+ //
60
+ }
61
+ switch (state) {
62
+ case "ADD_MARKER": {
63
+ // This is an iteration on an existing draft addition - just update content
64
+ await fsp.writeFile(filePath, draftContent);
65
+ return "add";
66
+ }
67
+ case "EDIT_MARKER": {
68
+ // This is an iteration on an existing draft edit - just update content
69
+ await fsp.writeFile(filePath, draftContent);
70
+ return "edit";
71
+ }
72
+ case "FILE_EXISTS": {
73
+ // This is a new draft edit
74
+ await createDraftEdit(filePath, draftContent, appRootDirPath);
75
+ return "edit";
76
+ }
77
+ case "NEW": {
78
+ // This is a new draft addition
79
+ await createDraftAdd(filePath, draftContent, appRootDirPath);
80
+ return "add";
81
+ }
82
+ }
83
+ }
84
+ /**
85
+ * Creates a draft edit by copying the original file to the drafts directory and writing draft content to the original location.
86
+ * This makes the draft content visible to the build system while preserving the original.
87
+ * If a draft edit already exists, this will just update the draft content.
88
+ *
89
+ * @param filePath - The absolute path to the file to edit.
90
+ * @param draftContent - The content of the draft edit.
91
+ * @param appRootDirPath - The absolute path to the app root directory.
92
+ * @returns A promise that resolves when the draft edit is created.
93
+ */
94
+ export async function createDraftEdit(filePath, draftContent, appRootDirPath) {
95
+ const editMarkerPath = getMarkerFilePath(filePath, appRootDirPath, EDIT_EXT);
96
+ // Check if original file exists
97
+ try {
98
+ await fsp.access(filePath);
99
+ }
100
+ catch {
101
+ throw new Error(`Cannot create draft edit: original file does not exist: ${filePath}`);
102
+ }
103
+ // Check if draft already exists
104
+ try {
105
+ await fsp.access(editMarkerPath);
106
+ // If we get here, the marker file exists, which means draft already exists
107
+ // This is an iteration - just update the draft content
108
+ await fsp.writeFile(filePath, draftContent);
109
+ return;
110
+ }
111
+ catch {
112
+ // Marker file doesn't exist, proceed with normal draft creation
113
+ }
114
+ // Ensure the drafts directory structure exists
115
+ const editMarkerDir = path.dirname(editMarkerPath);
116
+ await fsp.mkdir(editMarkerDir, { recursive: true });
117
+ // Copy original file to .sbswap.edit marker in drafts directory
118
+ await fsp.copyFile(filePath, editMarkerPath);
119
+ // Write draft content to original location
120
+ await fsp.writeFile(filePath, draftContent);
121
+ }
122
+ /**
123
+ * Creates a draft addition by writing new file content and creating a .sbswap.add marker.
124
+ * This makes the new file visible to the build system while marking it as a draft addition.
125
+ * If a draft addition already exists, this will just update the content.
126
+ *
127
+ * @param filePath - The absolute path where the new file should be created.
128
+ * @param content - The content of the new file.
129
+ * @param appRootDirPath - The absolute path to the app root directory.
130
+ * @returns A promise that resolves when the draft addition is created.
131
+ */
132
+ export async function createDraftAdd(filePath, content, appRootDirPath) {
133
+ const addMarkerPath = getMarkerFilePath(filePath, appRootDirPath, ".sbswap.add");
134
+ // Check if this is an iteration on an existing draft addition
135
+ try {
136
+ await fsp.access(addMarkerPath);
137
+ // Marker exists, this is an iteration - just update content
138
+ const dirPath = path.dirname(filePath);
139
+ await fsp.mkdir(dirPath, { recursive: true });
140
+ await fsp.writeFile(filePath, content);
141
+ return;
142
+ }
143
+ catch {
144
+ // Marker doesn't exist, proceed with normal draft addition creation
145
+ }
146
+ // Check if file already exists (and it's not a draft)
147
+ try {
148
+ await fsp.access(filePath);
149
+ // If we get here, the file exists, which is not allowed for new draft additions
150
+ throw new Error(`Cannot create draft add: file already exists: ${filePath}`);
151
+ }
152
+ catch (accessError) {
153
+ // If access fails, the file doesn't exist, which is what we want
154
+ if (accessError.message?.includes("Cannot create draft add")) {
155
+ throw accessError; // Re-throw our own error
156
+ }
157
+ // Otherwise, continue - the file doesn't exist, which is expected
158
+ }
159
+ // Ensure directory exists for the new file
160
+ const dirPath = path.dirname(filePath);
161
+ await fsp.mkdir(dirPath, { recursive: true });
162
+ // Ensure the drafts directory structure exists
163
+ const addMarkerDir = path.dirname(addMarkerPath);
164
+ await fsp.mkdir(addMarkerDir, { recursive: true });
165
+ // Write new file content
166
+ await fsp.writeFile(filePath, content);
167
+ // Create marker to indicate this is a draft addition
168
+ await fsp.writeFile(addMarkerPath, "");
169
+ }
170
+ /**
171
+ * Recursively checks if any draft files exist in the drafts directory.
172
+ * Looks for .sbswap.edit and .sbswap.add marker files.
173
+ *
174
+ * @param appRootDirPath - The absolute path to the app root directory.
175
+ * @returns A promise that resolves to true if any draft files are found, false otherwise.
176
+ */
177
+ export async function hasSwapFiles(appRootDirPath) {
178
+ const draftsDir = getDraftsDirectoryPath(appRootDirPath);
179
+ try {
180
+ await fsp.access(draftsDir);
181
+ }
182
+ catch {
183
+ // Drafts directory doesn't exist, so no draft files
184
+ return false;
185
+ }
186
+ return await hasSwapFilesInDirectory(draftsDir);
187
+ }
188
+ /**
189
+ * Helper function to recursively check for swap files in a directory.
190
+ *
191
+ * @param directoryPath - The path to the directory to scan for draft files.
192
+ * @returns A promise that resolves to true if any draft files are found, false otherwise.
193
+ */
194
+ async function hasSwapFilesInDirectory(directoryPath) {
195
+ try {
196
+ const entries = await fsp.readdir(directoryPath, { withFileTypes: true });
197
+ for (const entry of entries) {
198
+ if (entry.isFile() &&
199
+ (entry.name.endsWith(EDIT_EXT) || entry.name.endsWith(ADD_EXT))) {
200
+ return true;
201
+ }
202
+ if (entry.isDirectory()) {
203
+ const subdirPath = path.join(directoryPath, entry.name);
204
+ if (await hasSwapFilesInDirectory(subdirPath)) {
205
+ return true;
206
+ }
207
+ }
208
+ }
209
+ return false;
210
+ }
211
+ catch (_error) {
212
+ // If directory doesn't exist or can't be read, no draft files
213
+ return false;
214
+ }
215
+ }
216
+ /**
217
+ * Discards all draft changes by restoring original files and removing draft additions.
218
+ * - For .sbswap.edit files: copies them back to the original location
219
+ * - For .sbswap.add markers: removes both the marker and the corresponding file
220
+ *
221
+ * @param appRootDirPath - The absolute path to the app root directory.
222
+ * @returns A promise that resolves when all drafts have been discarded.
223
+ */
224
+ export async function discardAllDrafts(appRootDirPath) {
225
+ const draftsDir = getDraftsDirectoryPath(appRootDirPath);
226
+ try {
227
+ await fsp.access(draftsDir);
228
+ }
229
+ catch {
230
+ // Drafts directory doesn't exist, nothing to discard
231
+ return;
232
+ }
233
+ await discardDraftsInDirectory(draftsDir, appRootDirPath);
234
+ // Clean up the entire drafts directory
235
+ try {
236
+ await fsp.rm(draftsDir, { recursive: true });
237
+ }
238
+ catch {
239
+ // Ignore cleanup errors
240
+ }
241
+ }
242
+ /**
243
+ * Helper function to recursively discard drafts in a directory.
244
+ *
245
+ * @param directoryPath - The path to the directory to discard drafts from.
246
+ * @param appRootDirPath - The absolute path to the app root directory.
247
+ * @returns A promise that resolves when all drafts have been discarded.
248
+ */
249
+ async function discardDraftsInDirectory(directoryPath, appRootDirPath) {
250
+ try {
251
+ const entries = await fsp.readdir(directoryPath, { withFileTypes: true });
252
+ for (const entry of entries) {
253
+ const fullPath = path.join(directoryPath, entry.name);
254
+ if (entry.isFile()) {
255
+ if (entry.name.endsWith(EDIT_EXT)) {
256
+ // Restore original file
257
+ const markerRelativePath = path.relative(getDraftsDirectoryPath(appRootDirPath), fullPath);
258
+ const originalRelativePath = markerRelativePath.slice(0, -EDIT_EXT.length);
259
+ const originalPath = path.join(appRootDirPath, originalRelativePath);
260
+ try {
261
+ // Remove current draft content
262
+ await fsp.unlink(originalPath);
263
+ }
264
+ catch {
265
+ // File might not exist, that's okay
266
+ }
267
+ // Copy original back from drafts directory
268
+ await fsp.copyFile(fullPath, originalPath);
269
+ }
270
+ else if (entry.name.endsWith(ADD_EXT)) {
271
+ // Remove draft addition
272
+ const markerRelativePath = path.relative(getDraftsDirectoryPath(appRootDirPath), fullPath);
273
+ const addedFileRelativePath = markerRelativePath.slice(0, -ADD_EXT.length);
274
+ const addedFilePath = path.join(appRootDirPath, addedFileRelativePath);
275
+ try {
276
+ await fsp.unlink(addedFilePath);
277
+ }
278
+ catch {
279
+ // File might not exist, that's okay
280
+ }
281
+ }
282
+ }
283
+ if (entry.isDirectory()) {
284
+ await discardDraftsInDirectory(fullPath, appRootDirPath);
285
+ }
286
+ }
287
+ }
288
+ catch (_error) {
289
+ // Ignore errors reading the directory
290
+ }
291
+ }
292
+ /**
293
+ * Commits all draft changes by removing .sbswap.edit and .sbswap.add markers.
294
+ * This leaves the current filesystem state as the committed state.
295
+ *
296
+ * @param appRootDirPath - The absolute path to the app root directory.
297
+ * @returns A promise that resolves when all drafts have been committed.
298
+ */
299
+ export async function commitAllDrafts(appRootDirPath) {
300
+ const draftsDir = getDraftsDirectoryPath(appRootDirPath);
301
+ try {
302
+ await fsp.access(draftsDir);
303
+ }
304
+ catch {
305
+ // Drafts directory doesn't exist, nothing to commit
306
+ return;
307
+ }
308
+ // Simply remove the entire drafts directory
309
+ try {
310
+ await fsp.rm(draftsDir, { recursive: true });
311
+ }
312
+ catch {
313
+ // Ignore deletion errors
314
+ }
315
+ }
316
+ /**
317
+ * Gets information about all draft files in the drafts directory.
318
+ *
319
+ * @param appRootDirPath - The absolute path to the app root directory.
320
+ * @returns A promise that resolves to information about draft files.
321
+ */
322
+ export async function getDraftInfo(appRootDirPath) {
323
+ const edits = [];
324
+ const additions = [];
325
+ const draftsDir = getDraftsDirectoryPath(appRootDirPath);
326
+ try {
327
+ await fsp.access(draftsDir);
328
+ }
329
+ catch {
330
+ // Drafts directory doesn't exist, no drafts
331
+ return { edits, additions };
332
+ }
333
+ async function scanDirectory(currentPath) {
334
+ try {
335
+ const entries = await fsp.readdir(currentPath, { withFileTypes: true });
336
+ for (const entry of entries) {
337
+ const fullPath = path.join(currentPath, entry.name);
338
+ if (entry.isFile()) {
339
+ if (entry.name.endsWith(EDIT_EXT)) {
340
+ const markerRelativePath = path.relative(draftsDir, fullPath);
341
+ const originalRelativePath = markerRelativePath.slice(0, -EDIT_EXT.length);
342
+ edits.push(originalRelativePath);
343
+ }
344
+ else if (entry.name.endsWith(ADD_EXT)) {
345
+ const markerRelativePath = path.relative(draftsDir, fullPath);
346
+ const addedFileRelativePath = markerRelativePath.slice(0, -ADD_EXT.length);
347
+ additions.push(addedFileRelativePath);
348
+ }
349
+ }
350
+ if (entry.isDirectory()) {
351
+ await scanDirectory(fullPath);
352
+ }
353
+ }
354
+ }
355
+ catch {
356
+ // Ignore errors reading directories
357
+ }
358
+ }
359
+ await scanDirectory(draftsDir);
360
+ return { edits, additions };
361
+ }
362
+ //# sourceMappingURL=draft-helpers.js.map