@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":"index.js","sourceRoot":"","sources":["../../src/sync-service/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export interface LocalDirEntryFile {
2
+ type: "-";
3
+ executable: boolean;
4
+ name: string;
5
+ localPath: string;
6
+ contents: Buffer;
7
+ }
8
+ export interface LocalDirEntryDirectory {
9
+ type: "d";
10
+ name: string;
11
+ localPath: string;
12
+ }
13
+ export interface LocalDirEntrySymLink {
14
+ type: "l";
15
+ name: string;
16
+ localPath: string;
17
+ target: string;
18
+ }
19
+ export type LocalDirEntry = LocalDirEntryFile | LocalDirEntryDirectory | LocalDirEntrySymLink;
20
+ /**
21
+ * Lists the contents of a local directory. The function will load the contents of files into memory, but as it is a generator, this
22
+ * will happen lazily, so only one file will be loaded into memory at a time. The function will also ignore files in the directories
23
+ * listed in `codeModeExcludedDirectories` and `codeModeExcludedFiles`.
24
+ *
25
+ * @param localDirectoryPath - The path to the local directory to list.
26
+ * @returns An async generator that yields the contents of the directory.
27
+ */
28
+ export declare function listLocalDirectory(localDirectoryPath: string): AsyncGenerator<LocalDirEntry, void, void>;
29
+ //# sourceMappingURL=list-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-dir.d.ts","sourceRoot":"","sources":["../../src/sync-service/list-dir.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GACrB,iBAAiB,GACjB,sBAAsB,GACtB,oBAAoB,CAAC;AAWzB;;;;;;;GAOG;AACH,wBAAuB,kBAAkB,CACvC,kBAAkB,EAAE,MAAM,GACzB,cAAc,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CA6C3C"}
@@ -0,0 +1,66 @@
1
+ import * as fsp from "node:fs/promises";
2
+ const codeModeExcludedDirectories = [
3
+ ".superblocks",
4
+ ".git",
5
+ "node_modules",
6
+ "build",
7
+ ];
8
+ const codeModeExcludedFiles = [".env"];
9
+ /**
10
+ * Lists the contents of a local directory. The function will load the contents of files into memory, but as it is a generator, this
11
+ * will happen lazily, so only one file will be loaded into memory at a time. The function will also ignore files in the directories
12
+ * listed in `codeModeExcludedDirectories` and `codeModeExcludedFiles`.
13
+ *
14
+ * @param localDirectoryPath - The path to the local directory to list.
15
+ * @returns An async generator that yields the contents of the directory.
16
+ */
17
+ export async function* listLocalDirectory(localDirectoryPath) {
18
+ const localDirHandle = await fsp.opendir(localDirectoryPath);
19
+ for await (const localDirEntry of localDirHandle) {
20
+ const name = localDirEntry.name
21
+ // On macOS, filenames in the filesystem are typically stored in decomposed form from a Unicode normalization perspective
22
+ // (i.e. NFD). We need to convert it to precomposed form (i.e. NFC) to match what everything else uses and expects.
23
+ .normalize("NFC");
24
+ const localFilePath = `${localDirectoryPath}/${name}`;
25
+ if (localDirEntry.isFile()) {
26
+ if (codeModeExcludedFiles.includes(name)) {
27
+ continue;
28
+ }
29
+ const status = await fsp.lstat(localFilePath);
30
+ // extract the executable bit from the owner's permissions, this is how git does it
31
+ const executable = (status.mode & fsp.constants.S_IXUSR) !== 0;
32
+ const fileContents = await fsp.readFile(localFilePath);
33
+ yield {
34
+ type: "-",
35
+ executable,
36
+ name,
37
+ localPath: localFilePath,
38
+ contents: fileContents,
39
+ };
40
+ }
41
+ else if (localDirEntry.isDirectory()) {
42
+ if (codeModeExcludedDirectories.includes(name)) {
43
+ continue;
44
+ }
45
+ yield {
46
+ type: "d",
47
+ name,
48
+ localPath: localFilePath,
49
+ };
50
+ }
51
+ else if (localDirEntry.isSymbolicLink()) {
52
+ const target = await fsp.readlink(localFilePath);
53
+ yield {
54
+ type: "l",
55
+ name,
56
+ localPath: localFilePath,
57
+ target,
58
+ };
59
+ }
60
+ else {
61
+ // ignore files of other types
62
+ continue;
63
+ }
64
+ }
65
+ }
66
+ //# sourceMappingURL=list-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-dir.js","sourceRoot":"","sources":["../../src/sync-service/list-dir.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AA4BxC,MAAM,2BAA2B,GAAG;IAClC,cAAc;IACd,MAAM;IACN,cAAc;IACd,OAAO;CACR,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,MAAM,CAAC,CAAC;AAEvC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,kBAAkB,CACvC,kBAA0B;IAE1B,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7D,IAAI,KAAK,EAAE,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI;YAC7B,yHAAyH;YACzH,mHAAmH;aAClH,SAAS,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,aAAa,GAAG,GAAG,kBAAkB,IAAI,IAAI,EAAE,CAAC;QACtD,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3B,IAAI,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC9C,mFAAmF;YACnF,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM;gBACJ,IAAI,EAAE,GAAG;gBACT,UAAU;gBACV,IAAI;gBACJ,SAAS,EAAE,aAAa;gBACxB,QAAQ,EAAE,YAAY;aACvB,CAAC;QACJ,CAAC;aAAM,IAAI,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;YACvC,IAAI,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,SAAS;YACX,CAAC;YACD,MAAM;gBACJ,IAAI,EAAE,GAAG;gBACT,IAAI;gBACJ,SAAS,EAAE,aAAa;aACzB,CAAC;QACJ,CAAC;aAAM,IAAI,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACjD,MAAM;gBACJ,IAAI,EAAE,GAAG;gBACT,IAAI;gBACJ,SAAS,EAAE,aAAa;gBACxB,MAAM;aACP,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,8BAA8B;YAC9B,SAAS;QACX,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ISocketClient, ResponseMeta, ServerMethods } from "@superblocksteam/shared";
2
+ export type StdISocketRPCClient = ISocketClient<ServerMethods>;
3
+ export declare function connectToISocketRPCServer({ superblocksBaseUrl, token, }: {
4
+ superblocksBaseUrl: string;
5
+ token: string;
6
+ }): Promise<StdISocketRPCClient>;
7
+ type ResponseDto<T> = {
8
+ responseMeta: ResponseMeta;
9
+ data: T;
10
+ };
11
+ export declare function unwrapResponseDto<T>(request: Promise<ResponseDto<T>>): Promise<T>;
12
+ export {};
13
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/sync-service/server-rpc/client.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAGV,aAAa,EAGb,YAAY,EACZ,aAAa,EAEd,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;AAE/D,wBAAsB,yBAAyB,CAAC,EAC9C,kBAAkB,EAClB,KAAK,GACN,EAAE;IACD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA0B/B;AA8CD,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAGF,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC,CAiBZ"}
@@ -0,0 +1,62 @@
1
+ import { createISocketClient, ISocketWithClientAuth, serverWsPath, } from "@superblocksteam/shared";
2
+ import { ConflictError } from "@superblocksteam/shared";
3
+ import WebSocket from "ws";
4
+ import { createRequestHandlers } from "./handlers.js";
5
+ export async function connectToISocketRPCServer({ superblocksBaseUrl, token, }) {
6
+ const requestHandlers = createRequestHandlers();
7
+ const authorization = `Bearer ${token}`;
8
+ const wsUrl = new URL(`api/${serverWsPath}`, superblocksBaseUrl);
9
+ if (wsUrl.protocol === "http:") {
10
+ wsUrl.protocol = "ws:";
11
+ }
12
+ else if (wsUrl.protocol === "https:") {
13
+ wsUrl.protocol = "wss:";
14
+ }
15
+ if (wsUrl.host === "localhost:3000" || wsUrl.host === "127.0.0.1:3000") {
16
+ wsUrl.host = "127.0.0.1:8080";
17
+ }
18
+ else if (wsUrl.hostname === "localhost") {
19
+ wsUrl.hostname = "127.0.0.1";
20
+ }
21
+ return await connectISocket(wsUrl.href, authorization, requestHandlers, [], {
22
+ connectionTimeoutInSeconds: 6 * 60, // 6 minutes
23
+ noResponseTimeoutInSeconds: 5 * 60, // 5 minutes
24
+ });
25
+ }
26
+ async function connectISocket(wsUrl, authorization, requestHandlers, globalMiddlewares, timeouts) {
27
+ const ws = await connectWebSocket(wsUrl);
28
+ const isocket = new ISocketWithClientAuth(ws, authorization, requestHandlers, globalMiddlewares, timeouts);
29
+ return createISocketClient(isocket);
30
+ }
31
+ function connectWebSocket(wsUrl) {
32
+ return new Promise((resolve, reject) => {
33
+ const ws = new WebSocket(wsUrl);
34
+ ws.addEventListener("open", () => {
35
+ // Resolve the promise with the WebSocket instance when the connection is open
36
+ resolve(ws);
37
+ });
38
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
39
+ // @ts-ignore
40
+ ws.addEventListener("error", (error) => {
41
+ // Reject the promise if there's an error
42
+ reject(error);
43
+ });
44
+ });
45
+ }
46
+ // TODO(David): Move this general rpc file to a shared dir
47
+ export async function unwrapResponseDto(request) {
48
+ const response = await request;
49
+ if (!response.responseMeta.success ||
50
+ response.responseMeta.error ||
51
+ response.responseMeta.status !== 200) {
52
+ const errorMessage = response.responseMeta.error?.message ??
53
+ response.responseMeta.message ??
54
+ `Request failed with status ${response.responseMeta.status}`;
55
+ if (response.responseMeta.status === 409) {
56
+ throw new ConflictError(errorMessage);
57
+ }
58
+ throw new Error(errorMessage);
59
+ }
60
+ return response.data;
61
+ }
62
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/sync-service/server-rpc/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ClientMethods, MethodHandlers, ServerMethods } from "@superblocksteam/shared";
2
+ export declare function createRequestHandlers(): MethodHandlers<ClientMethods, ServerMethods, unknown>;
3
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/sync-service/server-rpc/handlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACd,MAAM,yBAAyB,CAAC;AAMjC,wBAAgB,qBAAqB,0DAapC"}
@@ -0,0 +1,18 @@
1
+ import { NotImplementedError } from "@superblocksteam/shared";
2
+ async function notImplemented() {
3
+ throw new NotImplementedError("Signing methods are not implemented");
4
+ }
5
+ export function createRequestHandlers() {
6
+ const requestHandlers = {
7
+ v1: {
8
+ signing: {
9
+ signApplication: [notImplemented],
10
+ signApis: [notImplemented],
11
+ verifyApplication: [notImplemented],
12
+ verifyApi: [notImplemented],
13
+ },
14
+ },
15
+ };
16
+ return requestHandlers;
17
+ }
18
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/sync-service/server-rpc/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAO9D,KAAK,UAAU,cAAc;IAC3B,MAAM,IAAI,mBAAmB,CAAC,qCAAqC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,eAAe,GACnB;QACE,EAAE,EAAE;YACF,OAAO,EAAE;gBACP,eAAe,EAAE,CAAC,cAAc,CAAC;gBACjC,QAAQ,EAAE,CAAC,cAAc,CAAC;gBAC1B,iBAAiB,EAAE,CAAC,cAAc,CAAC;gBACnC,SAAS,EAAE,CAAC,cAAc,CAAC;aAC5B;SACF;KACF,CAAC;IACJ,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { DirectorySnapshot } from "./types.js";
2
+ /**
3
+ * Takes a snapshot of a local directory. The current implementation stores the snapshot in memory.
4
+ * This is not scalable for large directories and is subject to change.
5
+ *
6
+ * This function now captures the DRAFT state (current filesystem state).
7
+ * For committed state, use snapshotLocalDirectoryCommittedState.
8
+ *
9
+ * @param localDirectoryPath - The path to the local directory to snapshot.
10
+ * @returns A promise that resolves to a snapshot of the local directory.
11
+ */
12
+ export declare function snapshotLocalDirectory(localDirectoryPath: string): Promise<DirectorySnapshot>;
13
+ /**
14
+ * Takes a snapshot of a local directory showing the COMMITTED state.
15
+ * This function:
16
+ * - Uses .sbswap.edit content from the drafts directory instead of current files (for edited files)
17
+ * - Excludes files that have .sbswap.add markers in the drafts directory (draft additions)
18
+ * - Excludes .sbswap.edit and .sbswap.add marker files themselves
19
+ *
20
+ * @param localDirectoryPath - The path to the local directory to snapshot.
21
+ * @param appRootPath - The app root path (defaults to localDirectoryPath for top-level calls).
22
+ * @param editMarkerMap - Map of edit markers (for internal recursive use).
23
+ * @param addMarkerSet - Set of add markers (for internal recursive use).
24
+ * @returns A promise that resolves to a snapshot of the committed state.
25
+ */
26
+ export declare function snapshotLocalDirectoryCommittedState(localDirectoryPath: string, appRootPath?: string, editMarkerMap?: Map<string, Buffer>, addMarkerSet?: Set<string>): Promise<DirectorySnapshot>;
27
+ /**
28
+ * Takes a snapshot of a local directory, prioritizing .sbswap files for content.
29
+ * .sbswap files themselves are not included in the snapshot output.
30
+ *
31
+ * @deprecated This function is deprecated. Use snapshotLocalDirectory for draft state
32
+ * or snapshotLocalDirectoryCommittedState for committed state.
33
+ *
34
+ * @param localDirectoryPath - The path to the local directory to snapshot.
35
+ * @returns A promise that resolves to a snapshot of the local directory, reflecting draft states.
36
+ */
37
+ export declare function snapshotLocalDirectoryWithDrafts(localDirectoryPath: string): Promise<DirectorySnapshot>;
38
+ //# sourceMappingURL=take-snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"take-snapshot.d.ts","sourceRoot":"","sources":["../../../src/sync-service/snapshot/take-snapshot.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,YAAY,CAAC;AAGtE;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,iBAAiB,CAAC,CA+C5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,oCAAoC,CACxD,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAqH5B;AA4DD;;;;;;;;;GASG;AACH,wBAAsB,gCAAgC,CACpD,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAI5B"}
@@ -0,0 +1,232 @@
1
+ import * as fsp from "node:fs/promises";
2
+ import * as path from "node:path";
3
+ import { hashDirectoryContents, hashFileContents, } from "@superblocksteam/shared";
4
+ import { unreachable } from "@superblocksteam/util";
5
+ import { listLocalDirectory } from "../list-dir.js";
6
+ /**
7
+ * Takes a snapshot of a local directory. The current implementation stores the snapshot in memory.
8
+ * This is not scalable for large directories and is subject to change.
9
+ *
10
+ * This function now captures the DRAFT state (current filesystem state).
11
+ * For committed state, use snapshotLocalDirectoryCommittedState.
12
+ *
13
+ * @param localDirectoryPath - The path to the local directory to snapshot.
14
+ * @returns A promise that resolves to a snapshot of the local directory.
15
+ */
16
+ export async function snapshotLocalDirectory(localDirectoryPath) {
17
+ const directoryContents = [];
18
+ const localDirListing = listLocalDirectory(localDirectoryPath);
19
+ for await (const localDirEntry of localDirListing) {
20
+ let entry;
21
+ switch (localDirEntry.type) {
22
+ case "-": {
23
+ const hash = await hashFileContents(localDirEntry.contents);
24
+ entry = {
25
+ type: "-",
26
+ name: localDirEntry.name,
27
+ executable: localDirEntry.executable,
28
+ hash,
29
+ contents: localDirEntry.contents,
30
+ };
31
+ break;
32
+ }
33
+ case "d": {
34
+ const subdirectoryContents = await snapshotLocalDirectory(localDirEntry.localPath);
35
+ entry = {
36
+ type: "d",
37
+ name: localDirEntry.name,
38
+ hash: subdirectoryContents.hash,
39
+ contents: subdirectoryContents.contents,
40
+ };
41
+ break;
42
+ }
43
+ case "l": {
44
+ entry = {
45
+ type: "l",
46
+ target: localDirEntry.target,
47
+ name: localDirEntry.name,
48
+ };
49
+ break;
50
+ }
51
+ default:
52
+ unreachable(localDirEntry);
53
+ }
54
+ directoryContents.push(entry);
55
+ }
56
+ const directoryHash = await hashDirectoryContents(directoryContents);
57
+ return {
58
+ hash: directoryHash,
59
+ contents: directoryContents,
60
+ };
61
+ }
62
+ /**
63
+ * Takes a snapshot of a local directory showing the COMMITTED state.
64
+ * This function:
65
+ * - Uses .sbswap.edit content from the drafts directory instead of current files (for edited files)
66
+ * - Excludes files that have .sbswap.add markers in the drafts directory (draft additions)
67
+ * - Excludes .sbswap.edit and .sbswap.add marker files themselves
68
+ *
69
+ * @param localDirectoryPath - The path to the local directory to snapshot.
70
+ * @param appRootPath - The app root path (defaults to localDirectoryPath for top-level calls).
71
+ * @param editMarkerMap - Map of edit markers (for internal recursive use).
72
+ * @param addMarkerSet - Set of add markers (for internal recursive use).
73
+ * @returns A promise that resolves to a snapshot of the committed state.
74
+ */
75
+ export async function snapshotLocalDirectoryCommittedState(localDirectoryPath, appRootPath, editMarkerMap, addMarkerSet) {
76
+ const directoryContents = [];
77
+ // Use the provided appRootPath, or default to localDirectoryPath for top-level calls
78
+ const rootPath = appRootPath || localDirectoryPath;
79
+ const draftsDir = path.join(rootPath, ".superblocks", "drafts");
80
+ // Step 1: Collect all physical entries in the directory
81
+ const allPhysicalEntries = [];
82
+ const localDirListing = listLocalDirectory(localDirectoryPath);
83
+ for await (const entry of localDirListing) {
84
+ allPhysicalEntries.push(entry);
85
+ }
86
+ // Step 2: Create maps for marker files from the drafts directory (only for top-level calls)
87
+ let finalEditMarkerMap;
88
+ let finalAddMarkerSet;
89
+ if (!editMarkerMap || !addMarkerSet) {
90
+ // This is the top-level call, scan the drafts directory
91
+ finalEditMarkerMap = new Map();
92
+ finalAddMarkerSet = new Set();
93
+ try {
94
+ await fsp.access(draftsDir);
95
+ await scanDraftsDirectory(draftsDir, rootPath, finalEditMarkerMap, finalAddMarkerSet);
96
+ }
97
+ catch {
98
+ // Drafts directory doesn't exist, no drafts to consider
99
+ }
100
+ }
101
+ else {
102
+ // Use the provided maps from recursive calls
103
+ finalEditMarkerMap = editMarkerMap;
104
+ finalAddMarkerSet = addMarkerSet;
105
+ }
106
+ // Step 3: Process entries for committed state
107
+ for (const localDirEntry of allPhysicalEntries) {
108
+ // Skip the .superblocks directory entirely
109
+ if (localDirEntry.name === ".superblocks") {
110
+ continue;
111
+ }
112
+ const relativePath = path.relative(rootPath, localDirEntry.localPath);
113
+ // Skip files that are draft additions
114
+ if (finalAddMarkerSet.has(relativePath)) {
115
+ continue;
116
+ }
117
+ let entry;
118
+ switch (localDirEntry.type) {
119
+ case "-": {
120
+ // Regular file
121
+ let fileContentsToUse;
122
+ let executableToUse;
123
+ if (finalEditMarkerMap.has(relativePath)) {
124
+ // Use the original content from .sbswap.edit file in drafts directory
125
+ fileContentsToUse = finalEditMarkerMap.get(relativePath);
126
+ executableToUse = localDirEntry.executable; // Use current executable flag
127
+ }
128
+ else {
129
+ // No edit marker, use current file content (this is committed content)
130
+ fileContentsToUse = localDirEntry.contents;
131
+ executableToUse = localDirEntry.executable;
132
+ }
133
+ const hash = await hashFileContents(fileContentsToUse);
134
+ entry = {
135
+ type: "-",
136
+ name: localDirEntry.name,
137
+ executable: executableToUse,
138
+ hash,
139
+ contents: fileContentsToUse,
140
+ };
141
+ break;
142
+ }
143
+ case "d": {
144
+ // Directory
145
+ // Recursive call uses the same committed-state snapshotting, passing the app root and marker maps
146
+ const subdirectorySnapshot = await snapshotLocalDirectoryCommittedState(localDirEntry.localPath, rootPath, // Pass the app root path to recursive calls
147
+ finalEditMarkerMap, // Pass the edit marker map
148
+ finalAddMarkerSet);
149
+ entry = {
150
+ type: "d",
151
+ name: localDirEntry.name,
152
+ hash: subdirectorySnapshot.hash,
153
+ contents: subdirectorySnapshot.contents,
154
+ };
155
+ break;
156
+ }
157
+ case "l": {
158
+ // Symlink
159
+ entry = {
160
+ type: "l",
161
+ target: localDirEntry.target,
162
+ name: localDirEntry.name,
163
+ };
164
+ break;
165
+ }
166
+ default:
167
+ unreachable(localDirEntry);
168
+ }
169
+ directoryContents.push(entry);
170
+ }
171
+ const directoryHash = await hashDirectoryContents(directoryContents);
172
+ return {
173
+ hash: directoryHash,
174
+ contents: directoryContents,
175
+ };
176
+ }
177
+ /**
178
+ * Recursively scans the drafts directory to build maps of edit markers and add markers.
179
+ *
180
+ * @param currentDraftsPath - The current path being scanned in the drafts directory.
181
+ * @param appRootPath - The app root directory path.
182
+ * @param editMarkerMap - Map to store edit marker file contents.
183
+ * @param addMarkerSet - Set to store paths of files that are draft additions.
184
+ */
185
+ async function scanDraftsDirectory(currentDraftsPath, appRootPath, editMarkerMap, addMarkerSet) {
186
+ try {
187
+ const entries = await fsp.readdir(currentDraftsPath, {
188
+ withFileTypes: true,
189
+ });
190
+ const draftsDir = path.join(appRootPath, ".superblocks", "drafts");
191
+ for (const entry of entries) {
192
+ const fullPath = path.join(currentDraftsPath, entry.name);
193
+ if (entry.isFile()) {
194
+ if (entry.name.endsWith(".sbswap.edit")) {
195
+ // This is the original content for an edited file
196
+ const markerRelativePath = path.relative(draftsDir, fullPath);
197
+ const originalRelativePath = markerRelativePath.slice(0, -".sbswap.edit".length);
198
+ const originalContent = await fsp.readFile(fullPath);
199
+ editMarkerMap.set(originalRelativePath, originalContent);
200
+ }
201
+ else if (entry.name.endsWith(".sbswap.add")) {
202
+ // This marks a file as a draft addition - exclude the corresponding file
203
+ const markerRelativePath = path.relative(draftsDir, fullPath);
204
+ const addedFileRelativePath = markerRelativePath.slice(0, -".sbswap.add".length);
205
+ addMarkerSet.add(addedFileRelativePath);
206
+ }
207
+ }
208
+ if (entry.isDirectory()) {
209
+ await scanDraftsDirectory(fullPath, appRootPath, editMarkerMap, addMarkerSet);
210
+ }
211
+ }
212
+ }
213
+ catch {
214
+ // Ignore errors reading directories
215
+ }
216
+ }
217
+ /**
218
+ * Takes a snapshot of a local directory, prioritizing .sbswap files for content.
219
+ * .sbswap files themselves are not included in the snapshot output.
220
+ *
221
+ * @deprecated This function is deprecated. Use snapshotLocalDirectory for draft state
222
+ * or snapshotLocalDirectoryCommittedState for committed state.
223
+ *
224
+ * @param localDirectoryPath - The path to the local directory to snapshot.
225
+ * @returns A promise that resolves to a snapshot of the local directory, reflecting draft states.
226
+ */
227
+ export async function snapshotLocalDirectoryWithDrafts(localDirectoryPath) {
228
+ // For backwards compatibility, this now just calls the regular snapshot function
229
+ // since the regular function now shows the draft state (current filesystem)
230
+ return snapshotLocalDirectory(localDirectoryPath);
231
+ }
232
+ //# sourceMappingURL=take-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"take-snapshot.js","sourceRoot":"","sources":["../../../src/sync-service/snapshot/take-snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { DirectoryEntryDir, DirectoryEntryRegFile, DirectoryEntrySymlink } from "@superblocksteam/shared";
2
+ export interface SnapshotDirEntryRegFile extends DirectoryEntryRegFile {
3
+ contents: Buffer;
4
+ }
5
+ export interface SnapshotDirEntryDir extends DirectoryEntryDir {
6
+ contents: SnapshotDirEntry[];
7
+ }
8
+ /** This is like `DirectoryEntry` but includes a complete snapshot of the entire directory tree, including all subdirectories and files. */
9
+ export type SnapshotDirEntry = SnapshotDirEntryRegFile | SnapshotDirEntryDir | DirectoryEntrySymlink;
10
+ export interface DirectorySnapshot {
11
+ hash: string;
12
+ contents: SnapshotDirEntry[];
13
+ }
14
+ /** This is like `DirectoryEntry` but includes the recursive contents of all subdirectories in the tree. */
15
+ export interface DirectoryEntryDirWithContents extends DirectoryEntryDir {
16
+ contents: DirectoryEntryTree[];
17
+ }
18
+ export type DirectoryEntryTree = DirectoryEntryRegFile | DirectoryEntryDirWithContents | DirectoryEntrySymlink;
19
+ /** The state of a directory, i.e. its hash and recursively the hashes of all the hashes of all the files and directories within it. */
20
+ export interface DirectoryState {
21
+ hash: string;
22
+ contents: DirectoryEntryTree[];
23
+ }
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sync-service/snapshot/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,2IAA2I;AAC3I,MAAM,MAAM,gBAAgB,GACxB,uBAAuB,GACvB,mBAAmB,GAGnB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,2GAA2G;AAC3G,MAAM,WAAW,6BAA8B,SAAQ,iBAAiB;IACtE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,MAAM,MAAM,kBAAkB,GAC1B,qBAAqB,GACrB,6BAA6B,GAC7B,qBAAqB,CAAC;AAE1B,uIAAuI;AACvI,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC"}
@@ -0,0 +1,3 @@
1
+ // `type` is a single character following the conventions of the 'ls' command
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/sync-service/snapshot/types.ts"],"names":[],"mappings":"AAAA,6EAA6E"}
@@ -0,0 +1,5 @@
1
+ import type { DirectorySnapshot } from "./types.js";
2
+ import type { HashCache } from "../hash-cache.js";
3
+ import type { StdISocketRPCClient } from "../server-rpc/client.js";
4
+ export declare function uploadDirectorySnapshot(rpcClient: StdISocketRPCClient, directorySnapshot: DirectorySnapshot, hashCache: HashCache): Promise<void>;
5
+ //# sourceMappingURL=upload-snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-snapshot.d.ts","sourceRoot":"","sources":["../../../src/sync-service/snapshot/upload-snapshot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,mBAAmB,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,IAAI,CAAC,CAuDf"}
@@ -0,0 +1,50 @@
1
+ import { unwrapResponseDto } from "../server-rpc/client.js";
2
+ export async function uploadDirectorySnapshot(rpcClient, directorySnapshot, hashCache) {
3
+ if (hashCache.check_directory(directorySnapshot.hash)) {
4
+ // The directory already exists on the server, we don't need to upload anything.
5
+ return;
6
+ }
7
+ const directoryContents = [];
8
+ for (const snapshotDirEntry of directorySnapshot.contents) {
9
+ const name = snapshotDirEntry.name;
10
+ let entry;
11
+ switch (snapshotDirEntry.type) {
12
+ case "-": {
13
+ if (!hashCache.check_file_content(snapshotDirEntry.hash)) {
14
+ // We are not sure if the file exists on the server, so we need to upload it
15
+ await unwrapResponseDto(rpcClient.call.v1.dbfs.fileContents.put({
16
+ contents: snapshotDirEntry.contents.toString("base64"),
17
+ }));
18
+ }
19
+ entry = {
20
+ type: "-",
21
+ hash: snapshotDirEntry.hash,
22
+ executable: snapshotDirEntry.executable,
23
+ name,
24
+ };
25
+ break;
26
+ }
27
+ case "d": {
28
+ if (!hashCache.check_directory(snapshotDirEntry.hash)) {
29
+ await uploadDirectorySnapshot(rpcClient, {
30
+ hash: snapshotDirEntry.hash,
31
+ contents: snapshotDirEntry.contents,
32
+ }, hashCache);
33
+ }
34
+ entry = { type: "d", name, hash: snapshotDirEntry.hash };
35
+ break;
36
+ }
37
+ case "l": {
38
+ entry = { type: "l", target: snapshotDirEntry.target, name };
39
+ break;
40
+ }
41
+ default:
42
+ throw new Error(`Unknown entry type: ${snapshotDirEntry}`);
43
+ }
44
+ directoryContents.push(entry);
45
+ }
46
+ await unwrapResponseDto(rpcClient.call.v1.dbfs.directoryContents.put({
47
+ contents: directoryContents,
48
+ }));
49
+ }
50
+ //# sourceMappingURL=upload-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-snapshot.js","sourceRoot":"","sources":["../../../src/sync-service/snapshot/upload-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,SAA8B,EAC9B,iBAAoC,EACpC,SAAoB;IAEpB,IAAI,SAAS,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,gFAAgF;QAChF,OAAO;IACT,CAAC;IACD,MAAM,iBAAiB,GAAqB,EAAE,CAAC;IAC/C,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;QACnC,IAAI,KAAqB,CAAC;QAC1B,QAAQ,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAC9B,KAAK,GAAG,CAAC,CAAC,CAAC;gBACT,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzD,4EAA4E;oBAC5E,MAAM,iBAAiB,CACrB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;wBACtC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;qBACvD,CAAC,CACH,CAAC;gBACJ,CAAC;gBACD,KAAK,GAAG;oBACN,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,gBAAgB,CAAC,IAAI;oBAC3B,UAAU,EAAE,gBAAgB,CAAC,UAAU;oBACvC,IAAI;iBACL,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,GAAG,CAAC,CAAC,CAAC;gBACT,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtD,MAAM,uBAAuB,CAC3B,SAAS,EACT;wBACE,IAAI,EAAE,gBAAgB,CAAC,IAAI;wBAC3B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;qBACpC,EACD,SAAS,CACV,CAAC;gBACJ,CAAC;gBACD,KAAK,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC;gBACzD,MAAM;YACR,CAAC;YACD,KAAK,GAAG,CAAC,CAAC,CAAC;gBACT,KAAK,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;gBAC7D,MAAM;YACR,CAAC;YACD;gBACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,gBAAgB,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,iBAAiB,CACrB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;QAC3C,QAAQ,EAAE,iBAAiB;KAC5B,CAAC,CACH,CAAC;AACJ,CAAC"}