@superblocksteam/vite-plugin-file-sync 1.99.99-next.2

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 (578) hide show
  1. package/LICENSE.txt +87 -0
  2. package/dist/ai-service/app-interface/shell.d.ts +15 -0
  3. package/dist/ai-service/app-interface/shell.d.ts.map +1 -0
  4. package/dist/ai-service/app-interface/shell.js +81 -0
  5. package/dist/ai-service/app-interface/shell.js.map +1 -0
  6. package/dist/ai-service/artifacts/bolt.d.ts +8 -0
  7. package/dist/ai-service/artifacts/bolt.d.ts.map +1 -0
  8. package/dist/ai-service/artifacts/bolt.js +34 -0
  9. package/dist/ai-service/artifacts/bolt.js.map +1 -0
  10. package/dist/ai-service/const.d.ts +9 -0
  11. package/dist/ai-service/const.d.ts.map +1 -0
  12. package/dist/ai-service/const.js +10 -0
  13. package/dist/ai-service/const.js.map +1 -0
  14. package/dist/ai-service/eval/template-renderer.d.ts +13 -0
  15. package/dist/ai-service/eval/template-renderer.d.ts.map +1 -0
  16. package/dist/ai-service/eval/template-renderer.js +67 -0
  17. package/dist/ai-service/eval/template-renderer.js.map +1 -0
  18. package/dist/ai-service/index.d.ts +21 -0
  19. package/dist/ai-service/index.d.ts.map +1 -0
  20. package/dist/ai-service/index.js +153 -0
  21. package/dist/ai-service/index.js.map +1 -0
  22. package/dist/ai-service/integrations/const.d.ts +41 -0
  23. package/dist/ai-service/integrations/const.d.ts.map +1 -0
  24. package/dist/ai-service/integrations/const.js +76 -0
  25. package/dist/ai-service/integrations/const.js.map +1 -0
  26. package/dist/ai-service/integrations/from-prompt-context.d.ts +4 -0
  27. package/dist/ai-service/integrations/from-prompt-context.d.ts.map +1 -0
  28. package/dist/ai-service/integrations/from-prompt-context.js +56 -0
  29. package/dist/ai-service/integrations/from-prompt-context.js.map +1 -0
  30. package/dist/ai-service/integrations/to-sdk-prompt.d.ts +3 -0
  31. package/dist/ai-service/integrations/to-sdk-prompt.d.ts.map +1 -0
  32. package/dist/ai-service/integrations/to-sdk-prompt.js +45 -0
  33. package/dist/ai-service/integrations/to-sdk-prompt.js.map +1 -0
  34. package/dist/ai-service/integrations/types.d.ts +31 -0
  35. package/dist/ai-service/integrations/types.d.ts.map +1 -0
  36. package/dist/ai-service/integrations/types.js +2 -0
  37. package/dist/ai-service/integrations/types.js.map +1 -0
  38. package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.d.ts +2 -0
  39. package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.d.ts.map +1 -0
  40. package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.js +386 -0
  41. package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.js.map +1 -0
  42. package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.d.ts +2 -0
  43. package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.d.ts.map +1 -0
  44. package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.js +219 -0
  45. package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.js.map +1 -0
  46. package/dist/ai-service/prompts/generated/index.d.ts +4 -0
  47. package/dist/ai-service/prompts/generated/index.d.ts.map +1 -0
  48. package/dist/ai-service/prompts/generated/index.js +6 -0
  49. package/dist/ai-service/prompts/generated/index.js.map +1 -0
  50. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.d.ts +2 -0
  51. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.d.ts.map +1 -0
  52. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.js +6 -0
  53. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.js.map +1 -0
  54. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.d.ts +2 -0
  55. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.d.ts.map +1 -0
  56. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.js +6 -0
  57. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.js.map +1 -0
  58. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.d.ts +2 -0
  59. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.d.ts.map +1 -0
  60. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.js +6 -0
  61. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.js.map +1 -0
  62. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.d.ts +2 -0
  63. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.d.ts.map +1 -0
  64. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.js +6 -0
  65. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.js.map +1 -0
  66. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.d.ts +2 -0
  67. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.d.ts.map +1 -0
  68. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.js +6 -0
  69. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.js.map +1 -0
  70. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.d.ts +2 -0
  71. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.d.ts.map +1 -0
  72. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.js +6 -0
  73. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.js.map +1 -0
  74. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.d.ts +2 -0
  75. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.d.ts.map +1 -0
  76. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.js +6 -0
  77. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.js.map +1 -0
  78. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.d.ts +2 -0
  79. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.d.ts.map +1 -0
  80. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.js +6 -0
  81. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.js.map +1 -0
  82. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.d.ts +2 -0
  83. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.d.ts.map +1 -0
  84. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.js +6 -0
  85. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.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 +17 -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 +19 -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 +11 -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 +13 -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/system.d.ts +2 -0
  171. package/dist/ai-service/prompts/generated/subprompts/system.d.ts.map +1 -0
  172. package/dist/ai-service/prompts/generated/subprompts/system.js +6 -0
  173. package/dist/ai-service/prompts/generated/subprompts/system.js.map +1 -0
  174. package/dist/ai-service/prompts/markdown-loader.d.ts +10 -0
  175. package/dist/ai-service/prompts/markdown-loader.d.ts.map +1 -0
  176. package/dist/ai-service/prompts/markdown-loader.js +71 -0
  177. package/dist/ai-service/prompts/markdown-loader.js.map +1 -0
  178. package/dist/ai-service/prompts/system.d.ts +2 -0
  179. package/dist/ai-service/prompts/system.d.ts.map +1 -0
  180. package/dist/ai-service/prompts/system.js +152 -0
  181. package/dist/ai-service/prompts/system.js.map +1 -0
  182. package/dist/ai-service/result-buffer/bolt.d.ts +15 -0
  183. package/dist/ai-service/result-buffer/bolt.d.ts.map +1 -0
  184. package/dist/ai-service/result-buffer/bolt.js +73 -0
  185. package/dist/ai-service/result-buffer/bolt.js.map +1 -0
  186. package/dist/ai-service/result-buffer/shared.d.ts +13 -0
  187. package/dist/ai-service/result-buffer/shared.d.ts.map +1 -0
  188. package/dist/ai-service/result-buffer/shared.js +7 -0
  189. package/dist/ai-service/result-buffer/shared.js.map +1 -0
  190. package/dist/ai-service/state-machine/clark-fsm.d.ts +177 -0
  191. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -0
  192. package/dist/ai-service/state-machine/clark-fsm.js +70 -0
  193. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -0
  194. package/dist/ai-service/state-machine/fsm.d.ts +42 -0
  195. package/dist/ai-service/state-machine/fsm.d.ts.map +1 -0
  196. package/dist/ai-service/state-machine/fsm.js +64 -0
  197. package/dist/ai-service/state-machine/fsm.js.map +1 -0
  198. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts +3 -0
  199. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -0
  200. package/dist/ai-service/state-machine/handlers/agent-planning.js +263 -0
  201. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -0
  202. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts +3 -0
  203. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -0
  204. package/dist/ai-service/state-machine/handlers/awaiting-user.js +36 -0
  205. package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -0
  206. package/dist/ai-service/state-machine/handlers/idle.d.ts +3 -0
  207. package/dist/ai-service/state-machine/handlers/idle.d.ts.map +1 -0
  208. package/dist/ai-service/state-machine/handlers/idle.js +24 -0
  209. package/dist/ai-service/state-machine/handlers/idle.js.map +1 -0
  210. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts +3 -0
  211. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -0
  212. package/dist/ai-service/state-machine/handlers/llm-generating.js +160 -0
  213. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -0
  214. package/dist/ai-service/state-machine/handlers/play-dead.d.ts +3 -0
  215. package/dist/ai-service/state-machine/handlers/play-dead.d.ts.map +1 -0
  216. package/dist/ai-service/state-machine/handlers/play-dead.js +11 -0
  217. package/dist/ai-service/state-machine/handlers/play-dead.js.map +1 -0
  218. package/dist/ai-service/state-machine/handlers/post-processing.d.ts +3 -0
  219. package/dist/ai-service/state-machine/handlers/post-processing.d.ts.map +1 -0
  220. package/dist/ai-service/state-machine/handlers/post-processing.js +85 -0
  221. package/dist/ai-service/state-machine/handlers/post-processing.js.map +1 -0
  222. package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts +4 -0
  223. package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts.map +1 -0
  224. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +40 -0
  225. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -0
  226. package/dist/ai-service/state-machine/helpers/metadata.d.ts +6 -0
  227. package/dist/ai-service/state-machine/helpers/metadata.d.ts.map +1 -0
  228. package/dist/ai-service/state-machine/helpers/metadata.js +11 -0
  229. package/dist/ai-service/state-machine/helpers/metadata.js.map +1 -0
  230. package/dist/ai-service/state-machine/helpers/peer.d.ts +5 -0
  231. package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -0
  232. package/dist/ai-service/state-machine/helpers/peer.js +7 -0
  233. package/dist/ai-service/state-machine/helpers/peer.js.map +1 -0
  234. package/dist/ai-service/state-machine/helpers/transition.d.ts +12 -0
  235. package/dist/ai-service/state-machine/helpers/transition.d.ts.map +1 -0
  236. package/dist/ai-service/state-machine/helpers/transition.js +12 -0
  237. package/dist/ai-service/state-machine/helpers/transition.js.map +1 -0
  238. package/dist/ai-service/state-machine/mocks.d.ts +7 -0
  239. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -0
  240. package/dist/ai-service/state-machine/mocks.js +72 -0
  241. package/dist/ai-service/state-machine/mocks.js.map +1 -0
  242. package/dist/ai-service/state-machine/test-util.d.ts +5 -0
  243. package/dist/ai-service/state-machine/test-util.d.ts.map +1 -0
  244. package/dist/ai-service/state-machine/test-util.js +29 -0
  245. package/dist/ai-service/state-machine/test-util.js.map +1 -0
  246. package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.d.ts +21 -0
  247. package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.d.ts.map +1 -0
  248. package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.js +48 -0
  249. package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.js.map +1 -0
  250. package/dist/ai-service/transform/api-builder/shared.d.ts +11 -0
  251. package/dist/ai-service/transform/api-builder/shared.d.ts.map +1 -0
  252. package/dist/ai-service/transform/api-builder/shared.js +55 -0
  253. package/dist/ai-service/transform/api-builder/shared.js.map +1 -0
  254. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts +27 -0
  255. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -0
  256. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +67 -0
  257. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -0
  258. package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts +23 -0
  259. package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts.map +1 -0
  260. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js +59 -0
  261. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js.map +1 -0
  262. package/dist/ai-service/transform/remove-api-builder-imports/transformer.d.ts +19 -0
  263. package/dist/ai-service/transform/remove-api-builder-imports/transformer.d.ts.map +1 -0
  264. package/dist/ai-service/transform/remove-api-builder-imports/transformer.js +45 -0
  265. package/dist/ai-service/transform/remove-api-builder-imports/transformer.js.map +1 -0
  266. package/dist/ai-service/transform/shared.d.ts +20 -0
  267. package/dist/ai-service/transform/shared.d.ts.map +1 -0
  268. package/dist/ai-service/transform/shared.js +134 -0
  269. package/dist/ai-service/transform/shared.js.map +1 -0
  270. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.d.ts +17 -0
  271. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.d.ts.map +1 -0
  272. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js +33 -0
  273. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js.map +1 -0
  274. package/dist/ai-service/types.d.ts +71 -0
  275. package/dist/ai-service/types.d.ts.map +1 -0
  276. package/dist/ai-service/types.js +8 -0
  277. package/dist/ai-service/types.js.map +1 -0
  278. package/dist/binding-extraction/extract-control-block-identifiers.d.ts +4 -0
  279. package/dist/binding-extraction/extract-control-block-identifiers.d.ts.map +1 -0
  280. package/dist/binding-extraction/extract-control-block-identifiers.js +86 -0
  281. package/dist/binding-extraction/extract-control-block-identifiers.js.map +1 -0
  282. package/dist/binding-extraction/extract-embedded-identifiers.d.ts +16 -0
  283. package/dist/binding-extraction/extract-embedded-identifiers.d.ts.map +1 -0
  284. package/dist/binding-extraction/extract-embedded-identifiers.js +100 -0
  285. package/dist/binding-extraction/extract-embedded-identifiers.js.map +1 -0
  286. package/dist/binding-extraction/extract-identifiers.d.ts +8 -0
  287. package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -0
  288. package/dist/binding-extraction/extract-identifiers.js +150 -0
  289. package/dist/binding-extraction/extract-identifiers.js.map +1 -0
  290. package/dist/binding-extraction/extract-js-identifiers.d.ts +19 -0
  291. package/dist/binding-extraction/extract-js-identifiers.d.ts.map +1 -0
  292. package/dist/binding-extraction/extract-js-identifiers.js +161 -0
  293. package/dist/binding-extraction/extract-js-identifiers.js.map +1 -0
  294. package/dist/binding-extraction/extract-py-identifiers.d.ts +4 -0
  295. package/dist/binding-extraction/extract-py-identifiers.d.ts.map +1 -0
  296. package/dist/binding-extraction/extract-py-identifiers.js +161 -0
  297. package/dist/binding-extraction/extract-py-identifiers.js.map +1 -0
  298. package/dist/binding-extraction/shared.d.ts +225 -0
  299. package/dist/binding-extraction/shared.d.ts.map +1 -0
  300. package/dist/binding-extraction/shared.js +43 -0
  301. package/dist/binding-extraction/shared.js.map +1 -0
  302. package/dist/binding-extraction/template-strings.d.ts +9 -0
  303. package/dist/binding-extraction/template-strings.d.ts.map +1 -0
  304. package/dist/binding-extraction/template-strings.js +45 -0
  305. package/dist/binding-extraction/template-strings.js.map +1 -0
  306. package/dist/codegen.d.ts +26 -0
  307. package/dist/codegen.d.ts.map +1 -0
  308. package/dist/codegen.js +222 -0
  309. package/dist/codegen.js.map +1 -0
  310. package/dist/components-manager.d.ts +38 -0
  311. package/dist/components-manager.d.ts.map +1 -0
  312. package/dist/components-manager.js +177 -0
  313. package/dist/components-manager.js.map +1 -0
  314. package/dist/custom-components.d.ts +6 -0
  315. package/dist/custom-components.d.ts.map +1 -0
  316. package/dist/custom-components.js +51 -0
  317. package/dist/custom-components.js.map +1 -0
  318. package/dist/draft-interface.d.ts +12 -0
  319. package/dist/draft-interface.d.ts.map +1 -0
  320. package/dist/draft-interface.js +2 -0
  321. package/dist/draft-interface.js.map +1 -0
  322. package/dist/errors/error-handler.d.ts +35 -0
  323. package/dist/errors/error-handler.d.ts.map +1 -0
  324. package/dist/errors/error-handler.js +65 -0
  325. package/dist/errors/error-handler.js.map +1 -0
  326. package/dist/errors/make-server-error.d.ts +5 -0
  327. package/dist/errors/make-server-error.d.ts.map +1 -0
  328. package/dist/errors/make-server-error.js +21 -0
  329. package/dist/errors/make-server-error.js.map +1 -0
  330. package/dist/file-sync-vite-plugin.d.ts +4 -0
  331. package/dist/file-sync-vite-plugin.d.ts.map +1 -0
  332. package/dist/file-sync-vite-plugin.js +691 -0
  333. package/dist/file-sync-vite-plugin.js.map +1 -0
  334. package/dist/file-system-helpers.d.ts +7 -0
  335. package/dist/file-system-helpers.d.ts.map +1 -0
  336. package/dist/file-system-helpers.js +12 -0
  337. package/dist/file-system-helpers.js.map +1 -0
  338. package/dist/file-system-manager.d.ts +133 -0
  339. package/dist/file-system-manager.d.ts.map +1 -0
  340. package/dist/file-system-manager.js +1205 -0
  341. package/dist/file-system-manager.js.map +1 -0
  342. package/dist/generate.d.ts +8 -0
  343. package/dist/generate.d.ts.map +1 -0
  344. package/dist/generate.js +7 -0
  345. package/dist/generate.js.map +1 -0
  346. package/dist/ids.d.ts +2 -0
  347. package/dist/ids.d.ts.map +1 -0
  348. package/dist/ids.js +21 -0
  349. package/dist/ids.js.map +1 -0
  350. package/dist/index.d.ts +6 -0
  351. package/dist/index.d.ts.map +1 -0
  352. package/dist/index.js +6 -0
  353. package/dist/index.js.map +1 -0
  354. package/dist/injected-index.d.ts +12 -0
  355. package/dist/injected-index.d.ts.map +1 -0
  356. package/dist/injected-index.js +38 -0
  357. package/dist/injected-index.js.map +1 -0
  358. package/dist/lock-service/index.d.ts +108 -0
  359. package/dist/lock-service/index.d.ts.map +1 -0
  360. package/dist/lock-service/index.js +324 -0
  361. package/dist/lock-service/index.js.map +1 -0
  362. package/dist/parsing/bindings.d.ts +4 -0
  363. package/dist/parsing/bindings.d.ts.map +1 -0
  364. package/dist/parsing/bindings.js +17 -0
  365. package/dist/parsing/bindings.js.map +1 -0
  366. package/dist/parsing/computed/index.d.ts +4 -0
  367. package/dist/parsing/computed/index.d.ts.map +1 -0
  368. package/dist/parsing/computed/index.js +7 -0
  369. package/dist/parsing/computed/index.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 +43 -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/index.d.ts +5 -0
  379. package/dist/parsing/dim/index.d.ts.map +1 -0
  380. package/dist/parsing/dim/index.js +7 -0
  381. package/dist/parsing/dim/index.js.map +1 -0
  382. package/dist/parsing/dim/to-code-dimensions.d.ts +3 -0
  383. package/dist/parsing/dim/to-code-dimensions.d.ts.map +1 -0
  384. package/dist/parsing/dim/to-code-dimensions.js +22 -0
  385. package/dist/parsing/dim/to-code-dimensions.js.map +1 -0
  386. package/dist/parsing/dim/to-value-dimensions.d.ts +4 -0
  387. package/dist/parsing/dim/to-value-dimensions.d.ts.map +1 -0
  388. package/dist/parsing/dim/to-value-dimensions.js +39 -0
  389. package/dist/parsing/dim/to-value-dimensions.js.map +1 -0
  390. package/dist/parsing/entity/index.d.ts +7 -0
  391. package/dist/parsing/entity/index.d.ts.map +1 -0
  392. package/dist/parsing/entity/index.js +7 -0
  393. package/dist/parsing/entity/index.js.map +1 -0
  394. package/dist/parsing/entity/to-code-entity.d.ts +3 -0
  395. package/dist/parsing/entity/to-code-entity.d.ts.map +1 -0
  396. package/dist/parsing/entity/to-code-entity.js +41 -0
  397. package/dist/parsing/entity/to-code-entity.js.map +1 -0
  398. package/dist/parsing/entity/to-value-entity.d.ts +8 -0
  399. package/dist/parsing/entity/to-value-entity.d.ts.map +1 -0
  400. package/dist/parsing/entity/to-value-entity.js +120 -0
  401. package/dist/parsing/entity/to-value-entity.js.map +1 -0
  402. package/dist/parsing/events/index.d.ts +5 -0
  403. package/dist/parsing/events/index.d.ts.map +1 -0
  404. package/dist/parsing/events/index.js +7 -0
  405. package/dist/parsing/events/index.js.map +1 -0
  406. package/dist/parsing/events/to-code-events.d.ts +3 -0
  407. package/dist/parsing/events/to-code-events.d.ts.map +1 -0
  408. package/dist/parsing/events/to-code-events.js +100 -0
  409. package/dist/parsing/events/to-code-events.js.map +1 -0
  410. package/dist/parsing/events/to-value-events.d.ts +6 -0
  411. package/dist/parsing/events/to-value-events.d.ts.map +1 -0
  412. package/dist/parsing/events/to-value-events.js +194 -0
  413. package/dist/parsing/events/to-value-events.js.map +1 -0
  414. package/dist/parsing/ids.d.ts +17 -0
  415. package/dist/parsing/ids.d.ts.map +1 -0
  416. package/dist/parsing/ids.js +143 -0
  417. package/dist/parsing/ids.js.map +1 -0
  418. package/dist/parsing/imports.d.ts +6 -0
  419. package/dist/parsing/imports.d.ts.map +1 -0
  420. package/dist/parsing/imports.js +31 -0
  421. package/dist/parsing/imports.js.map +1 -0
  422. package/dist/parsing/jsx-utils.d.ts +9 -0
  423. package/dist/parsing/jsx-utils.d.ts.map +1 -0
  424. package/dist/parsing/jsx-utils.js +48 -0
  425. package/dist/parsing/jsx-utils.js.map +1 -0
  426. package/dist/parsing/jsx.d.ts +23 -0
  427. package/dist/parsing/jsx.d.ts.map +1 -0
  428. package/dist/parsing/jsx.js +330 -0
  429. package/dist/parsing/jsx.js.map +1 -0
  430. package/dist/parsing/page.d.ts +9 -0
  431. package/dist/parsing/page.d.ts.map +1 -0
  432. package/dist/parsing/page.js +156 -0
  433. package/dist/parsing/page.js.map +1 -0
  434. package/dist/parsing/properties.d.ts +5 -0
  435. package/dist/parsing/properties.d.ts.map +1 -0
  436. package/dist/parsing/properties.js +89 -0
  437. package/dist/parsing/properties.js.map +1 -0
  438. package/dist/parsing/scope.d.ts +90 -0
  439. package/dist/parsing/scope.d.ts.map +1 -0
  440. package/dist/parsing/scope.js +669 -0
  441. package/dist/parsing/scope.js.map +1 -0
  442. package/dist/parsing/template/index.d.ts +5 -0
  443. package/dist/parsing/template/index.d.ts.map +1 -0
  444. package/dist/parsing/template/index.js +7 -0
  445. package/dist/parsing/template/index.js.map +1 -0
  446. package/dist/parsing/template/to-code-template.d.ts +2 -0
  447. package/dist/parsing/template/to-code-template.d.ts.map +1 -0
  448. package/dist/parsing/template/to-code-template.js +5 -0
  449. package/dist/parsing/template/to-code-template.js.map +1 -0
  450. package/dist/parsing/template/to-value-template.d.ts +4 -0
  451. package/dist/parsing/template/to-value-template.d.ts.map +1 -0
  452. package/dist/parsing/template/to-value-template.js +30 -0
  453. package/dist/parsing/template/to-value-template.js.map +1 -0
  454. package/dist/parsing/theme.d.ts +3 -0
  455. package/dist/parsing/theme.d.ts.map +1 -0
  456. package/dist/parsing/theme.js +87 -0
  457. package/dist/parsing/theme.js.map +1 -0
  458. package/dist/parsing/type-parsing-registry.d.ts +8 -0
  459. package/dist/parsing/type-parsing-registry.d.ts.map +1 -0
  460. package/dist/parsing/type-parsing-registry.js +11 -0
  461. package/dist/parsing/type-parsing-registry.js.map +1 -0
  462. package/dist/parsing/types.d.ts +9 -0
  463. package/dist/parsing/types.d.ts.map +1 -0
  464. package/dist/parsing/types.js +2 -0
  465. package/dist/parsing/types.js.map +1 -0
  466. package/dist/parsing/util.d.ts +34 -0
  467. package/dist/parsing/util.d.ts.map +1 -0
  468. package/dist/parsing/util.js +338 -0
  469. package/dist/parsing/util.js.map +1 -0
  470. package/dist/plugin-options.d.ts +25 -0
  471. package/dist/plugin-options.d.ts.map +1 -0
  472. package/dist/plugin-options.js +14 -0
  473. package/dist/plugin-options.js.map +1 -0
  474. package/dist/refactor/blocks.d.ts +10 -0
  475. package/dist/refactor/blocks.d.ts.map +1 -0
  476. package/dist/refactor/blocks.js +214 -0
  477. package/dist/refactor/blocks.js.map +1 -0
  478. package/dist/refactor/javascript.d.ts +15 -0
  479. package/dist/refactor/javascript.d.ts.map +1 -0
  480. package/dist/refactor/javascript.js +182 -0
  481. package/dist/refactor/javascript.js.map +1 -0
  482. package/dist/refactor-jsx.d.ts +28 -0
  483. package/dist/refactor-jsx.d.ts.map +1 -0
  484. package/dist/refactor-jsx.js +77 -0
  485. package/dist/refactor-jsx.js.map +1 -0
  486. package/dist/rename-manager.d.ts +27 -0
  487. package/dist/rename-manager.d.ts.map +1 -0
  488. package/dist/rename-manager.js +140 -0
  489. package/dist/rename-manager.js.map +1 -0
  490. package/dist/routing.d.ts +6 -0
  491. package/dist/routing.d.ts.map +1 -0
  492. package/dist/routing.js +76 -0
  493. package/dist/routing.js.map +1 -0
  494. package/dist/sb-scope-manager.d.ts +102 -0
  495. package/dist/sb-scope-manager.d.ts.map +1 -0
  496. package/dist/sb-scope-manager.js +507 -0
  497. package/dist/sb-scope-manager.js.map +1 -0
  498. package/dist/socket-manager.d.ts +39 -0
  499. package/dist/socket-manager.d.ts.map +1 -0
  500. package/dist/socket-manager.js +184 -0
  501. package/dist/socket-manager.js.map +1 -0
  502. package/dist/source-tracker.d.ts +190 -0
  503. package/dist/source-tracker.d.ts.map +1 -0
  504. package/dist/source-tracker.js +962 -0
  505. package/dist/source-tracker.js.map +1 -0
  506. package/dist/sync-service/download.d.ts +15 -0
  507. package/dist/sync-service/download.d.ts.map +1 -0
  508. package/dist/sync-service/download.js +116 -0
  509. package/dist/sync-service/download.js.map +1 -0
  510. package/dist/sync-service/draft-helpers.d.ts +77 -0
  511. package/dist/sync-service/draft-helpers.d.ts.map +1 -0
  512. package/dist/sync-service/draft-helpers.js +512 -0
  513. package/dist/sync-service/draft-helpers.js.map +1 -0
  514. package/dist/sync-service/hash-cache.d.ts +15 -0
  515. package/dist/sync-service/hash-cache.d.ts.map +1 -0
  516. package/dist/sync-service/hash-cache.js +58 -0
  517. package/dist/sync-service/hash-cache.js.map +1 -0
  518. package/dist/sync-service/hash-dir-tree.d.ts +10 -0
  519. package/dist/sync-service/hash-dir-tree.d.ts.map +1 -0
  520. package/dist/sync-service/hash-dir-tree.js +53 -0
  521. package/dist/sync-service/hash-dir-tree.js.map +1 -0
  522. package/dist/sync-service/index.d.ts +143 -0
  523. package/dist/sync-service/index.d.ts.map +1 -0
  524. package/dist/sync-service/index.js +351 -0
  525. package/dist/sync-service/index.js.map +1 -0
  526. package/dist/sync-service/list-dir.d.ts +29 -0
  527. package/dist/sync-service/list-dir.d.ts.map +1 -0
  528. package/dist/sync-service/list-dir.js +66 -0
  529. package/dist/sync-service/list-dir.js.map +1 -0
  530. package/dist/sync-service/server-rpc/client.d.ts +13 -0
  531. package/dist/sync-service/server-rpc/client.d.ts.map +1 -0
  532. package/dist/sync-service/server-rpc/client.js +65 -0
  533. package/dist/sync-service/server-rpc/client.js.map +1 -0
  534. package/dist/sync-service/server-rpc/handlers.d.ts +3 -0
  535. package/dist/sync-service/server-rpc/handlers.d.ts.map +1 -0
  536. package/dist/sync-service/server-rpc/handlers.js +18 -0
  537. package/dist/sync-service/server-rpc/handlers.js.map +1 -0
  538. package/dist/sync-service/snapshot/take-snapshot.d.ts +35 -0
  539. package/dist/sync-service/snapshot/take-snapshot.d.ts.map +1 -0
  540. package/dist/sync-service/snapshot/take-snapshot.js +227 -0
  541. package/dist/sync-service/snapshot/take-snapshot.js.map +1 -0
  542. package/dist/sync-service/snapshot/types.d.ts +24 -0
  543. package/dist/sync-service/snapshot/types.d.ts.map +1 -0
  544. package/dist/sync-service/snapshot/types.js +3 -0
  545. package/dist/sync-service/snapshot/types.js.map +1 -0
  546. package/dist/sync-service/snapshot/upload-snapshot.d.ts +5 -0
  547. package/dist/sync-service/snapshot/upload-snapshot.d.ts.map +1 -0
  548. package/dist/sync-service/snapshot/upload-snapshot.js +63 -0
  549. package/dist/sync-service/snapshot/upload-snapshot.js.map +1 -0
  550. package/dist/traverse.d.ts +6 -0
  551. package/dist/traverse.d.ts.map +1 -0
  552. package/dist/traverse.js +7 -0
  553. package/dist/traverse.js.map +1 -0
  554. package/dist/util/generation-number-sequence.d.ts +7 -0
  555. package/dist/util/generation-number-sequence.d.ts.map +1 -0
  556. package/dist/util/generation-number-sequence.js +13 -0
  557. package/dist/util/generation-number-sequence.js.map +1 -0
  558. package/dist/util/logger.d.ts +22 -0
  559. package/dist/util/logger.d.ts.map +1 -0
  560. package/dist/util/logger.js +64 -0
  561. package/dist/util/logger.js.map +1 -0
  562. package/dist/util/operation-queue.d.ts +17 -0
  563. package/dist/util/operation-queue.d.ts.map +1 -0
  564. package/dist/util/operation-queue.js +27 -0
  565. package/dist/util/operation-queue.js.map +1 -0
  566. package/dist/util/tracing.d.ts +4 -0
  567. package/dist/util/tracing.d.ts.map +1 -0
  568. package/dist/util/tracing.js +56 -0
  569. package/dist/util/tracing.js.map +1 -0
  570. package/dist/util/with-resolvers.d.ts +10 -0
  571. package/dist/util/with-resolvers.d.ts.map +1 -0
  572. package/dist/util/with-resolvers.js +14 -0
  573. package/dist/util/with-resolvers.js.map +1 -0
  574. package/dist/util.d.ts +28 -0
  575. package/dist/util.d.ts.map +1 -0
  576. package/dist/util.js +123 -0
  577. package/dist/util.js.map +1 -0
  578. package/package.json +127 -0
@@ -0,0 +1,691 @@
1
+ import path from "node:path";
2
+ import { ApiTriggerType } from "@superblocksteam/shared";
3
+ import bodyParser from "body-parser";
4
+ import { stripIndent } from "common-tags";
5
+ import { normalizePath } from "vite";
6
+ import { extractApiDependencies, extractIdentifierPathsFromApi, } from "./binding-extraction/extract-identifiers.js";
7
+ import { ComponentsManager } from "./components-manager.js";
8
+ import { makeServerError } from "./errors/make-server-error.js";
9
+ import { getPageFilePath, SCOPE_FILE } from "./file-system-helpers.js";
10
+ import { FileSyncManager } from "./file-system-manager.js";
11
+ import { indexHtmlMiddleware } from "./injected-index.js";
12
+ import { LockServiceStatus } from "./lock-service/index.js";
13
+ import { getLegacyComponentsFolder, isCustomBuildEnabled, setOptions, } from "./plugin-options.js";
14
+ import { generateRootSource } from "./routing.js";
15
+ import { SocketManager } from "./socket-manager.js";
16
+ import { GenerationNumberSequence } from "./util/generation-number-sequence.js";
17
+ import { getErrorMeta, setLogger } from "./util/logger.js";
18
+ import { getAllApiDefinitions, getAllPages } from "./util.js";
19
+ let hasStarted = false;
20
+ let isInitialized = false;
21
+ let config;
22
+ const virtualLegacyId = "virtual:legacy-wrapper";
23
+ const resolvedVirtualLegacyId = `\0${virtualLegacyId}`;
24
+ const virtualRegisteredComponentsId = "virtual:registered-components";
25
+ const resolvedVirtualRegisteredComponentsId = `\0${virtualRegisteredComponentsId}`;
26
+ export const fileSyncVitePlugin = (pluginParams, options) => {
27
+ const logger = setLogger(pluginParams.logger);
28
+ setOptions(options ?? {
29
+ legacyComponentsFolder: "legacy",
30
+ });
31
+ const generationNumberSequence = new GenerationNumberSequence();
32
+ const syncService = pluginParams.syncService;
33
+ const lockService = pluginParams.lockService;
34
+ const aiService = pluginParams.aiService;
35
+ const fsOperationQueue = pluginParams.fsOperationQueue;
36
+ const httpServer = pluginParams.httpServer;
37
+ const fileSyncManager = new FileSyncManager(fsOperationQueue, generationNumberSequence);
38
+ if (syncService) {
39
+ syncService.generationNumberSequence = generationNumberSequence;
40
+ }
41
+ // Set up sync callback in lock service
42
+ if (lockService && syncService) {
43
+ lockService.setSyncCallback(async () => {
44
+ await syncService.uploadDirectory();
45
+ await syncService.uploadDirectoryNowIfNeeded();
46
+ });
47
+ }
48
+ return {
49
+ name: "sb-file-sync",
50
+ apply: "serve",
51
+ enforce: "pre",
52
+ async configureServer(server) {
53
+ config = server.config;
54
+ const componentsManager = ComponentsManager.getInstance();
55
+ await Promise.all([
56
+ componentsManager.initialize(process.cwd(), server.watcher),
57
+ server.waitForRequestsIdle("sb-file-sync").then(async () => {
58
+ if (hasStarted) {
59
+ // We only want to initialize the file sync once, but vite seems to fire this multiple times
60
+ return;
61
+ }
62
+ hasStarted = true;
63
+ const root = server.config.root;
64
+ try {
65
+ await fileSyncManager.watch(server.watcher, root).then(() => {
66
+ isInitialized = true;
67
+ });
68
+ }
69
+ catch (e) {
70
+ logger.error("Error watching files", getErrorMeta(e));
71
+ }
72
+ }),
73
+ ]);
74
+ server.middlewares.use(indexHtmlMiddleware(server, fileSyncManager));
75
+ server.middlewares.use("/sb-init", bodyParser.json({ strict: true }));
76
+ server.middlewares.use("/sb-init", async (req, res, next) => {
77
+ if (!isInitialized) {
78
+ return next();
79
+ }
80
+ if (req.method !== "GET" && req.method !== "OPTIONS") {
81
+ res.statusCode = 405;
82
+ res.end("Method not allowed");
83
+ return res.end();
84
+ }
85
+ res.setHeader("Access-Control-Allow-Origin", "*");
86
+ res.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS");
87
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type");
88
+ if (req.method === "OPTIONS") {
89
+ res.statusCode = 204;
90
+ res.end();
91
+ return;
92
+ }
93
+ const fullUrl = new URL(req.url ?? "/", "http://localhost:5173");
94
+ if (!fullUrl.searchParams.get("route")) {
95
+ res.statusCode = 400;
96
+ res.end("Missing route, use ?route=/route");
97
+ return res.end();
98
+ }
99
+ const actualUrl = new URL(fullUrl.searchParams.get("route") ?? "/", fullUrl);
100
+ const files = await getAllApiDefinitions({
101
+ rootDir: config.root,
102
+ currentUrl: actualUrl.toString(),
103
+ });
104
+ res.setHeader("Content-Type", "application/json");
105
+ return res.end(JSON.stringify(files));
106
+ });
107
+ server.middlewares.use("/sb-scopes", bodyParser.json({ strict: true }));
108
+ server.middlewares.use("/sb-scopes", async (req, res, next) => {
109
+ if (!isInitialized) {
110
+ return next();
111
+ }
112
+ if (req.method !== "GET" && req.method !== "OPTIONS") {
113
+ res.statusCode = 405;
114
+ res.end("Method not allowed");
115
+ return res.end();
116
+ }
117
+ res.setHeader("Access-Control-Allow-Origin", "*");
118
+ res.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS");
119
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type");
120
+ if (req.method === "OPTIONS") {
121
+ res.statusCode = 204;
122
+ res.end();
123
+ return;
124
+ }
125
+ const appScope = await getAppScope(fileSyncManager);
126
+ res.setHeader("Content-Type", "application/json");
127
+ return res.end(JSON.stringify(appScope));
128
+ });
129
+ // AI ping endpoint to keep connection alive during generation
130
+ server.middlewares.use("/sb-ping", async (req, res, _next) => {
131
+ if (req.method !== "GET" && req.method !== "OPTIONS") {
132
+ res.statusCode = 405;
133
+ res.end("Method not allowed");
134
+ return res.end();
135
+ }
136
+ res.setHeader("Access-Control-Allow-Origin", "*");
137
+ res.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS");
138
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type");
139
+ if (req.method === "OPTIONS") {
140
+ res.statusCode = 204;
141
+ res.end();
142
+ return;
143
+ }
144
+ res.setHeader("Content-Type", "application/json");
145
+ return res.end(JSON.stringify({ status: "ok", timestamp: Date.now() }));
146
+ });
147
+ const socketManager = new SocketManager();
148
+ socketManager.startSocketServer({
149
+ server: httpServer,
150
+ fileSyncManager,
151
+ lockService,
152
+ syncService,
153
+ aiService,
154
+ tracer: pluginParams.tracer,
155
+ path: "/sb-updates",
156
+ });
157
+ socketManager.removeAllListeners();
158
+ const sendError = (errorEvent) => {
159
+ socketManager.callEditorClients((socket) => socket.call.error(errorEvent));
160
+ };
161
+ // Add some process error handling to ensure to notify the user of
162
+ // any uncaught exceptions or rejections
163
+ process.on("uncaughtException", (error) => {
164
+ sendError(makeServerError(error));
165
+ process.exit(1);
166
+ });
167
+ process.on("unhandledRejection", (reason) => {
168
+ logger.error("Unhandled rejection", reason);
169
+ const error = reason instanceof Error
170
+ ? reason
171
+ : typeof reason === "object"
172
+ ? new Error(JSON.stringify(reason))
173
+ : new Error(String(reason));
174
+ sendError(makeServerError(error));
175
+ process.exit(1);
176
+ });
177
+ syncService?.removeListener?.("error", sendError);
178
+ syncService?.on?.("error", sendError);
179
+ lockService?.removeListener?.("error", sendError);
180
+ lockService?.on?.("error", sendError);
181
+ const extractApiParamsAndDependencies = (socket) => {
182
+ const allApis = fileSyncManager.getApiFiles();
183
+ const allApiNames = Object.values(allApis).map(({ api }) => api.apiPb.metadata.name);
184
+ const apiDependencyMap = {};
185
+ Promise.all([
186
+ ...Object.values(allApis).map(async ({ api }) => {
187
+ const bindings = await extractIdentifierPathsFromApi(api);
188
+ const allIdentifiers = bindings.flatMap((binding) => binding.bindings);
189
+ const apiDependencies = extractApiDependencies(allApiNames, bindings);
190
+ apiDependencyMap[api.apiPb.metadata.name] = apiDependencies;
191
+ return socket.call.updateApiParams({
192
+ apiName: api.apiPb.metadata.name,
193
+ params: allIdentifiers,
194
+ apiDependencies,
195
+ });
196
+ }),
197
+ ]).then(() => {
198
+ socketManager.callEditorClients((editorClientSocket) => {
199
+ return editorClientSocket.call.setApiDependencies({
200
+ apiDependencies: apiDependencyMap,
201
+ });
202
+ });
203
+ });
204
+ };
205
+ socketManager.on("connect:library", async (socket) => {
206
+ const allApis = fileSyncManager.getApiFiles();
207
+ socket.call
208
+ .setApiDefinitions(allApis)
209
+ .then(() => extractApiParamsAndDependencies(socket));
210
+ const tsFilePaths = fileSyncManager.getTsFilePaths();
211
+ return socket.call.updateLocalBindingEntities({
212
+ entities: Array.from(new Set(tsFilePaths.flatMap((file) => fileSyncManager.getLocalBindingEntities(file)))),
213
+ });
214
+ });
215
+ const sendRootUpdate = async (path, sync = false) => {
216
+ const roots = fileSyncManager.getPageRoots(path);
217
+ const scope = fileSyncManager.getScope(path);
218
+ if (!roots || !scope) {
219
+ logger?.error(`sendRootUpdate: no roots or scope ${path}`);
220
+ return;
221
+ }
222
+ const { scopeId } = scope;
223
+ socketManager.callEditorClients((socket) => {
224
+ return socket.call.updateScope({
225
+ scopeId,
226
+ updates: { roots },
227
+ });
228
+ });
229
+ if (sync && syncService) {
230
+ await syncService.uploadDirectory();
231
+ }
232
+ };
233
+ const sendMultiRootUpdate = async (paths, sync = false) => {
234
+ paths.forEach((path) => {
235
+ sendRootUpdate(path);
236
+ });
237
+ if (sync && syncService) {
238
+ await syncService.uploadDirectory();
239
+ }
240
+ };
241
+ const sendRootReset = async (sync = false) => {
242
+ const appScope = await getAppScope(fileSyncManager);
243
+ socketManager.callEditorClients((socket) => {
244
+ return socket.call.resetScope({
245
+ appScope,
246
+ });
247
+ });
248
+ if (sync && syncService) {
249
+ await syncService.uploadDirectory();
250
+ }
251
+ };
252
+ // TODO: @damian - Check if we need both sendFileUpdate and sendEntityUpdate
253
+ const sendFileUpdate = (path) => {
254
+ const scope = fileSyncManager.getScope(path);
255
+ const entities = scope?.entities ?? {};
256
+ const scopeId = scope?.scopeId ?? "";
257
+ const roots = fileSyncManager.getPageRoots(path);
258
+ socketManager.callEditorClients((socket) => socket.call.updateScope({
259
+ scopeId,
260
+ updates: { entities, roots: roots ?? undefined },
261
+ }));
262
+ };
263
+ const sendDeleteComponentsUpdate = async (path, sourceIds) => {
264
+ const scope = fileSyncManager.getScope(path);
265
+ if (!scope) {
266
+ console.error("No scope found for", path);
267
+ return;
268
+ }
269
+ await sendRootUpdate(path);
270
+ socketManager.callLibraryClients((socket) => {
271
+ return socket.call.deleteEntities(sourceIds.map((sourceId) => ({
272
+ scopeId: scope.scopeId,
273
+ sourceId,
274
+ })));
275
+ });
276
+ };
277
+ const sendDeleteEntityUpdate = async (path, entityName) => {
278
+ const scope = fileSyncManager.getScope(path);
279
+ if (!scope) {
280
+ console.error("No scope found for", path);
281
+ return;
282
+ }
283
+ const { scopeId } = scope;
284
+ await sendEntityUpdate(path);
285
+ socketManager.callLibraryClients((socket) => {
286
+ return socket.call.deleteEntities([
287
+ {
288
+ scopeId,
289
+ entityName,
290
+ },
291
+ ]);
292
+ });
293
+ };
294
+ const sendEntityUpdate = (path) => {
295
+ const scope = fileSyncManager.getScope(path);
296
+ if (!scope) {
297
+ console.error("No scope found for", path);
298
+ return;
299
+ }
300
+ const { entities, scopeId } = scope;
301
+ socketManager.callEditorClients((socket) => socket.call.updateScope({
302
+ scopeId,
303
+ updates: {
304
+ entities,
305
+ },
306
+ }));
307
+ };
308
+ // configured twice otherwise, always remove all listeners
309
+ fileSyncManager.removeAllListeners();
310
+ fileSyncManager.on("error", sendError);
311
+ fileSyncManager.on("reparent", sendRootUpdate);
312
+ fileSyncManager.on("batchUpdate", sendMultiRootUpdate);
313
+ fileSyncManager.on("createComponent", sendRootUpdate);
314
+ fileSyncManager.on("deleteComponents", sendDeleteComponentsUpdate);
315
+ fileSyncManager.on("addEntity", sendEntityUpdate);
316
+ fileSyncManager.on("updateEntity", sendEntityUpdate);
317
+ fileSyncManager.on("deleteEntity", sendDeleteEntityUpdate);
318
+ fileSyncManager.on("renameComponent", sendFileUpdate);
319
+ fileSyncManager.on("renameEntity", sendFileUpdate);
320
+ fileSyncManager.on("addPage", sendRootUpdate);
321
+ fileSyncManager.on("renamePage", () => sendRootReset(true));
322
+ fileSyncManager.on("fileChanged", async (path, _content, isNonVisualEdit) => {
323
+ socketManager.callLibraryClients((socket) => {
324
+ return socket.call.updateLocalBindingEntities({
325
+ entities: fileSyncManager.getLocalBindingEntities(path),
326
+ });
327
+ });
328
+ if (isNonVisualEdit) {
329
+ sendFileUpdate(path);
330
+ socketManager.callLibraryClients((socket) => {
331
+ return socket.call.nonVisualEdit();
332
+ });
333
+ }
334
+ if (syncService) {
335
+ await syncService.uploadDirectory();
336
+ }
337
+ });
338
+ fileSyncManager.on("apiUpdate", async (payload) => {
339
+ socketManager.callLibraryClients(async (socket) => {
340
+ Promise.all([
341
+ socket.call.updateApi(payload),
342
+ extractApiParamsAndDependencies(socket),
343
+ ]);
344
+ });
345
+ if (payload.api.pageName) {
346
+ const pagePath = getPageFilePath(config.root, payload.api.pageName);
347
+ sendEntityUpdate(pagePath);
348
+ }
349
+ if (syncService) {
350
+ await syncService.uploadDirectory();
351
+ }
352
+ });
353
+ fileSyncManager.on("apiManualUpdate", async (payload, sendScopeUpdates = false) => {
354
+ socketManager.callLibraryClients(async (socket) => {
355
+ Promise.all([
356
+ socket.call.updateApi(payload),
357
+ extractApiParamsAndDependencies(socket),
358
+ ]);
359
+ });
360
+ if (sendScopeUpdates) {
361
+ sendFileUpdate(getPageFilePath(config.root, payload.api.pageName));
362
+ }
363
+ if (syncService) {
364
+ await syncService.uploadDirectory();
365
+ }
366
+ socketManager.callEditorClients((socket) => {
367
+ return socket.call.manualUpdateApi({
368
+ api: payload.api,
369
+ });
370
+ });
371
+ });
372
+ if (syncService) {
373
+ syncService.on("synchronizationStatusChange", async (status, generationNumber) => {
374
+ socketManager.callEditorClients(async (socket) => {
375
+ try {
376
+ await socket.call.syncStatus({ status, generationNumber });
377
+ }
378
+ catch (err) {
379
+ logger.error("Failed to send syncStatus", getErrorMeta(err));
380
+ }
381
+ });
382
+ });
383
+ }
384
+ if (lockService) {
385
+ lockService.on("statusChange", (status) => {
386
+ if (status === LockServiceStatus.FAILED_TO_ACQUIRE_LOCK ||
387
+ status === LockServiceStatus.RELEASING) {
388
+ socketManager.callEditorClients(async (socket) => {
389
+ try {
390
+ await socket.call.releasingLock();
391
+ }
392
+ catch (err) {
393
+ logger.error("Failed to send releasingLock", getErrorMeta(err));
394
+ }
395
+ });
396
+ }
397
+ else if (status === LockServiceStatus.LOCK_INVALID) {
398
+ sendError(makeServerError(new Error("Error renewing connection to editing session. Please refresh the page.")));
399
+ }
400
+ else if (status === LockServiceStatus.LOCK_RELEASED) {
401
+ sendError(makeServerError(new Error("Editing session is no longer active. Please refresh the page or move to local mode.")));
402
+ }
403
+ });
404
+ }
405
+ fileSyncManager.on("routesChanged", () => {
406
+ const rootId = normalizePath(path.join(config.root, "root.tsx"));
407
+ const module = server.moduleGraph.getModuleById(rootId);
408
+ if (module) {
409
+ server.reloadModule(module);
410
+ }
411
+ });
412
+ fileSyncManager.on("apiDelete", async (payload) => {
413
+ socketManager.callLibraryClients(async (socket) => {
414
+ Promise.all([
415
+ socket.call.deleteApis(payload.apis.map((api) => ({
416
+ apiName: api.apiName,
417
+ scopeId: api.scopeId,
418
+ }))),
419
+ extractApiParamsAndDependencies(socket),
420
+ ]);
421
+ // All APIs should belong to the same page but to be consistant we iterate over all APIs
422
+ const pageNames = new Set(payload.apis.map((api) => api.pageName));
423
+ if (pageNames.size > 0) {
424
+ pageNames.forEach((pageName) => {
425
+ const pagePath = getPageFilePath(config.root, pageName);
426
+ sendEntityUpdate(pagePath);
427
+ });
428
+ }
429
+ if (syncService) {
430
+ await syncService.uploadDirectory();
431
+ }
432
+ });
433
+ });
434
+ fileSyncManager.on("apiManualDelete", async (payload) => {
435
+ socketManager.callLibraryClients(async (socket) => {
436
+ Promise.all([
437
+ socket.call.deleteApis([
438
+ {
439
+ apiName: payload.api.apiName,
440
+ scopeId: payload.api.scopeId,
441
+ },
442
+ ]),
443
+ extractApiParamsAndDependencies(socket),
444
+ ]);
445
+ const pagePath = getPageFilePath(config.root, payload.api.pageName);
446
+ sendEntityUpdate(pagePath);
447
+ });
448
+ socketManager.callEditorClients((socket) => {
449
+ return socket.call.manualDeleteApi({
450
+ id: payload.api.id,
451
+ });
452
+ });
453
+ if (syncService) {
454
+ await syncService.uploadDirectory();
455
+ }
456
+ });
457
+ if (syncService && aiService) {
458
+ socketManager.on("connect:editor", async (socket) => {
459
+ const hasDraft = await syncService.hasLocalDraftChanges();
460
+ return socket.call.aiSetDraftState({ hasDraft });
461
+ });
462
+ syncService.on("draftStateChanged", (hasDraft) => {
463
+ socketManager.callEditorClients((socket) => {
464
+ return socket.call.aiSetDraftState({ hasDraft });
465
+ });
466
+ });
467
+ aiService.on("generationCompleted", (hasDraft) => {
468
+ if (hasDraft) {
469
+ // we have been deferring hot updates; trigger a reload to render the ai draft
470
+ logger.info("Requesting full reload to render AI draft");
471
+ server.ws.send({
472
+ type: "full-reload",
473
+ });
474
+ }
475
+ });
476
+ // capture vite error logging
477
+ const originalErrorLogger = config.logger.error;
478
+ config.logger.error = (...args) => {
479
+ if (aiService.isBusy()) {
480
+ const [message, options] = args;
481
+ let error;
482
+ if (options?.error instanceof Error) {
483
+ error = options.error;
484
+ }
485
+ else if (typeof options?.error?.stack === "string") {
486
+ // it's a RollupError
487
+ error = new Error(options.error.stack);
488
+ }
489
+ else {
490
+ error = new Error(message);
491
+ }
492
+ aiService.handleBuildSystemError(error);
493
+ }
494
+ return originalErrorLogger.apply(config.logger, args);
495
+ };
496
+ }
497
+ const triggerRegisteredComponentUpdate = () => {
498
+ const module = server.moduleGraph.getModuleById(resolvedVirtualRegisteredComponentsId);
499
+ if (module) {
500
+ server.reloadModule(module);
501
+ }
502
+ };
503
+ componentsManager.on("error", sendError);
504
+ componentsManager.on("registeredComponentAdded", triggerRegisteredComponentUpdate);
505
+ componentsManager.on("registeredComponentRemoved", (name) => {
506
+ triggerRegisteredComponentUpdate();
507
+ socketManager.callLibraryClients((socket) => {
508
+ return socket.call.removeRegisteredComponent({
509
+ name,
510
+ });
511
+ });
512
+ });
513
+ componentsManager.on("registeredComponentChanged", (name, oldName) => {
514
+ triggerRegisteredComponentUpdate();
515
+ if (oldName) {
516
+ socketManager.callLibraryClients(async (socket) => {
517
+ await socket.call.renameRegisteredComponent({
518
+ name,
519
+ oldName,
520
+ });
521
+ });
522
+ }
523
+ });
524
+ },
525
+ async transform(code, id) {
526
+ const relativePath = path.relative(config.root, id);
527
+ if (!this.meta.watchMode)
528
+ return;
529
+ if (relativePath === "root.tsx") {
530
+ const source = generateRootSource(code, fileSyncManager);
531
+ return {
532
+ code: /*js*/ stripIndent `
533
+ import "${virtualRegisteredComponentsId}";
534
+
535
+ ${source}
536
+ `,
537
+ map: null,
538
+ };
539
+ }
540
+ else if (id.endsWith(".tsx") &&
541
+ !id.includes(`${getLegacyComponentsFolder()}/`)) {
542
+ try {
543
+ if (!fileSyncManager.readFile(id)) {
544
+ return { code, map: null };
545
+ }
546
+ const fileContents = await fileSyncManager.getFileWithIds(id);
547
+ if (!fileContents) {
548
+ throw new Error("File not found in file sync manager " + id);
549
+ }
550
+ return {
551
+ code: fileContents,
552
+ map: null,
553
+ };
554
+ }
555
+ catch (e) {
556
+ logger.error("Error transforming file", getErrorMeta(e));
557
+ }
558
+ }
559
+ else if (id.endsWith(SCOPE_FILE)) {
560
+ const fileContents = await fileSyncManager.getFileWithIds(id);
561
+ if (!fileContents) {
562
+ throw new Error("File not found in file sync manager " + id);
563
+ }
564
+ return {
565
+ code: fileContents,
566
+ map: null,
567
+ };
568
+ }
569
+ return {
570
+ code,
571
+ map: null,
572
+ };
573
+ },
574
+ resolveId(id) {
575
+ if (id === virtualLegacyId && isCustomBuildEnabled()) {
576
+ return resolvedVirtualLegacyId;
577
+ }
578
+ if (id === virtualRegisteredComponentsId) {
579
+ return resolvedVirtualRegisteredComponentsId;
580
+ }
581
+ },
582
+ async load(id) {
583
+ // This is a virtual file that we use to wrap any components that are using a
584
+ // version of React that is not our current library version. Those components need to be
585
+ // mounted with the version of React that is being used inside the "legacy" folder.
586
+ if (id === resolvedVirtualLegacyId) {
587
+ const customFolder = getLegacyComponentsFolder();
588
+ return /*js*/ `
589
+ import React from "react";
590
+ import ReactDOMLegacy from "/${customFolder}/dist/react-dom";
591
+ import ReactLegacy from "/${customFolder}/dist/react";
592
+
593
+ export function wrapCustomComponent(CustomComponent) {
594
+ return React.forwardRef((props, ref) => {
595
+ const containerRef = React.useRef(null);
596
+
597
+ React.useEffect(() => {
598
+ if (!containerRef.current) return;
599
+
600
+ const container = containerRef.current;
601
+
602
+ ReactDOMLegacy.render(
603
+ ReactLegacy.createElement(CustomComponent, props),
604
+ container,
605
+ );
606
+
607
+ return () => {
608
+ if (container) {
609
+ ReactDOMLegacy.unmountComponentAtNode(container);
610
+ }
611
+ };
612
+ }, [props]);
613
+
614
+ return React.createElement("div", { ref: mergeRefs(containerRef, ref) });
615
+ });
616
+ }
617
+
618
+ function mergeRefs(...refs) {
619
+ return (value) => {
620
+ refs.forEach((ref) => {
621
+ if (typeof ref === "function") {
622
+ ref(value);
623
+ } else if (ref != null) {
624
+ ref.current = value;
625
+ }
626
+ });
627
+ };
628
+ }
629
+ `;
630
+ }
631
+ if (id === resolvedVirtualRegisteredComponentsId) {
632
+ const componentsManager = ComponentsManager.getInstance();
633
+ const paths = componentsManager.componentFilePaths;
634
+ return /*js*/ `
635
+ ${Array.from(paths)
636
+ .map((filePath) => `
637
+ import "/${path.relative(config.root, filePath)}";
638
+ `)
639
+ .join("\n")}
640
+ `;
641
+ }
642
+ },
643
+ handleHotUpdate() {
644
+ // prevent hot updates if the AI service is busy generating a draft
645
+ if (aiService?.isBusy()) {
646
+ return [];
647
+ }
648
+ },
649
+ };
650
+ };
651
+ async function getAppScope(fileSyncManager) {
652
+ const pageContents = await getAllPages({
653
+ rootDir: config.root,
654
+ });
655
+ const pages = pageContents.reduce((acc, { name, route, fileName }) => {
656
+ const roots = fileSyncManager.getPageRoots(fileName);
657
+ const pageScopeDef = fileSyncManager.getScope(fileName);
658
+ if (roots && pageScopeDef) {
659
+ acc[name] = {
660
+ name,
661
+ ...pageScopeDef,
662
+ route,
663
+ roots,
664
+ };
665
+ }
666
+ return acc;
667
+ }, {});
668
+ const appScopeDef = fileSyncManager.getScope(fileSyncManager.appFilePath);
669
+ const apiFiles = fileSyncManager.getApiFiles();
670
+ const apis = Object.values(apiFiles)
671
+ .filter(({ api: { apiPb } }) => !!apiPb.metadata && !!apiPb.trigger?.application)
672
+ .map(({ api: { apiPb } }) => ({
673
+ id: apiPb.metadata.id,
674
+ name: apiPb.metadata.name,
675
+ applicationId: apiPb.trigger.application?.id,
676
+ pageId: apiPb.trigger.application?.pageId,
677
+ organizationId: apiPb.metadata.organization,
678
+ updated: apiPb.metadata?.timestamps?.updated
679
+ ? new Date(apiPb.metadata?.timestamps?.updated)
680
+ : undefined,
681
+ triggerType: ApiTriggerType.UI,
682
+ apiPb: apiPb,
683
+ }));
684
+ const appScope = {
685
+ ...appScopeDef,
686
+ pages,
687
+ apis,
688
+ };
689
+ return appScope;
690
+ }
691
+ //# sourceMappingURL=file-sync-vite-plugin.js.map