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

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 (558) 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 +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 +65 -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 +158 -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 +62 -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 +55 -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 +209 -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 +21 -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 +22 -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 +123 -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 +50 -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 +3 -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 +37 -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 +13 -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 +6 -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 +63 -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 +47 -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 +53 -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 +66 -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 +132 -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 +65 -0
  275. package/dist/ai-service/types.d.ts.map +1 -0
  276. package/dist/ai-service/types.js +2 -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 +11 -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 +624 -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 +132 -0
  339. package/dist/file-system-manager.d.ts.map +1 -0
  340. package/dist/file-system-manager.js +1176 -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 +93 -0
  359. package/dist/lock-service/index.d.ts.map +1 -0
  360. package/dist/lock-service/index.js +267 -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/to-code-computed.d.ts +2 -0
  367. package/dist/parsing/computed/to-code-computed.d.ts.map +1 -0
  368. package/dist/parsing/computed/to-code-computed.js +39 -0
  369. package/dist/parsing/computed/to-code-computed.js.map +1 -0
  370. package/dist/parsing/computed/to-value-computed.d.ts +4 -0
  371. package/dist/parsing/computed/to-value-computed.d.ts.map +1 -0
  372. package/dist/parsing/computed/to-value-computed.js +13 -0
  373. package/dist/parsing/computed/to-value-computed.js.map +1 -0
  374. package/dist/parsing/dim/to-code-dimensions.d.ts +3 -0
  375. package/dist/parsing/dim/to-code-dimensions.d.ts.map +1 -0
  376. package/dist/parsing/dim/to-code-dimensions.js +22 -0
  377. package/dist/parsing/dim/to-code-dimensions.js.map +1 -0
  378. package/dist/parsing/dim/to-value-dimensions.d.ts +4 -0
  379. package/dist/parsing/dim/to-value-dimensions.d.ts.map +1 -0
  380. package/dist/parsing/dim/to-value-dimensions.js +39 -0
  381. package/dist/parsing/dim/to-value-dimensions.js.map +1 -0
  382. package/dist/parsing/entity/index.d.ts +8 -0
  383. package/dist/parsing/entity/index.d.ts.map +1 -0
  384. package/dist/parsing/entity/index.js +8 -0
  385. package/dist/parsing/entity/index.js.map +1 -0
  386. package/dist/parsing/entity/to-code-entity.d.ts +3 -0
  387. package/dist/parsing/entity/to-code-entity.d.ts.map +1 -0
  388. package/dist/parsing/entity/to-code-entity.js +41 -0
  389. package/dist/parsing/entity/to-code-entity.js.map +1 -0
  390. package/dist/parsing/entity/to-value-entity.d.ts +8 -0
  391. package/dist/parsing/entity/to-value-entity.d.ts.map +1 -0
  392. package/dist/parsing/entity/to-value-entity.js +120 -0
  393. package/dist/parsing/entity/to-value-entity.js.map +1 -0
  394. package/dist/parsing/events/to-code-events.d.ts +3 -0
  395. package/dist/parsing/events/to-code-events.d.ts.map +1 -0
  396. package/dist/parsing/events/to-code-events.js +86 -0
  397. package/dist/parsing/events/to-code-events.js.map +1 -0
  398. package/dist/parsing/events/to-value-events.d.ts +5 -0
  399. package/dist/parsing/events/to-value-events.d.ts.map +1 -0
  400. package/dist/parsing/events/to-value-events.js +157 -0
  401. package/dist/parsing/events/to-value-events.js.map +1 -0
  402. package/dist/parsing/ids.d.ts +17 -0
  403. package/dist/parsing/ids.d.ts.map +1 -0
  404. package/dist/parsing/ids.js +121 -0
  405. package/dist/parsing/ids.js.map +1 -0
  406. package/dist/parsing/imports.d.ts +6 -0
  407. package/dist/parsing/imports.d.ts.map +1 -0
  408. package/dist/parsing/imports.js +27 -0
  409. package/dist/parsing/imports.js.map +1 -0
  410. package/dist/parsing/jsx-utils.d.ts +9 -0
  411. package/dist/parsing/jsx-utils.d.ts.map +1 -0
  412. package/dist/parsing/jsx-utils.js +42 -0
  413. package/dist/parsing/jsx-utils.js.map +1 -0
  414. package/dist/parsing/jsx.d.ts +23 -0
  415. package/dist/parsing/jsx.d.ts.map +1 -0
  416. package/dist/parsing/jsx.js +329 -0
  417. package/dist/parsing/jsx.js.map +1 -0
  418. package/dist/parsing/page.d.ts +9 -0
  419. package/dist/parsing/page.d.ts.map +1 -0
  420. package/dist/parsing/page.js +156 -0
  421. package/dist/parsing/page.js.map +1 -0
  422. package/dist/parsing/properties.d.ts +5 -0
  423. package/dist/parsing/properties.d.ts.map +1 -0
  424. package/dist/parsing/properties.js +89 -0
  425. package/dist/parsing/properties.js.map +1 -0
  426. package/dist/parsing/scope.d.ts +81 -0
  427. package/dist/parsing/scope.d.ts.map +1 -0
  428. package/dist/parsing/scope.js +575 -0
  429. package/dist/parsing/scope.js.map +1 -0
  430. package/dist/parsing/template/to-code-template.d.ts +2 -0
  431. package/dist/parsing/template/to-code-template.d.ts.map +1 -0
  432. package/dist/parsing/template/to-code-template.js +5 -0
  433. package/dist/parsing/template/to-code-template.js.map +1 -0
  434. package/dist/parsing/template/to-value-template.d.ts +4 -0
  435. package/dist/parsing/template/to-value-template.d.ts.map +1 -0
  436. package/dist/parsing/template/to-value-template.js +19 -0
  437. package/dist/parsing/template/to-value-template.js.map +1 -0
  438. package/dist/parsing/theme.d.ts +3 -0
  439. package/dist/parsing/theme.d.ts.map +1 -0
  440. package/dist/parsing/theme.js +87 -0
  441. package/dist/parsing/theme.js.map +1 -0
  442. package/dist/parsing/type-parsing-registry.d.ts +18 -0
  443. package/dist/parsing/type-parsing-registry.d.ts.map +1 -0
  444. package/dist/parsing/type-parsing-registry.js +31 -0
  445. package/dist/parsing/type-parsing-registry.js.map +1 -0
  446. package/dist/parsing/util.d.ts +31 -0
  447. package/dist/parsing/util.d.ts.map +1 -0
  448. package/dist/parsing/util.js +322 -0
  449. package/dist/parsing/util.js.map +1 -0
  450. package/dist/plugin-options.d.ts +25 -0
  451. package/dist/plugin-options.d.ts.map +1 -0
  452. package/dist/plugin-options.js +14 -0
  453. package/dist/plugin-options.js.map +1 -0
  454. package/dist/refactor/blocks.d.ts +10 -0
  455. package/dist/refactor/blocks.d.ts.map +1 -0
  456. package/dist/refactor/blocks.js +214 -0
  457. package/dist/refactor/blocks.js.map +1 -0
  458. package/dist/refactor/javascript.d.ts +15 -0
  459. package/dist/refactor/javascript.d.ts.map +1 -0
  460. package/dist/refactor/javascript.js +182 -0
  461. package/dist/refactor/javascript.js.map +1 -0
  462. package/dist/refactor-jsx.d.ts +28 -0
  463. package/dist/refactor-jsx.d.ts.map +1 -0
  464. package/dist/refactor-jsx.js +77 -0
  465. package/dist/refactor-jsx.js.map +1 -0
  466. package/dist/rename-manager.d.ts +27 -0
  467. package/dist/rename-manager.d.ts.map +1 -0
  468. package/dist/rename-manager.js +140 -0
  469. package/dist/rename-manager.js.map +1 -0
  470. package/dist/routing.d.ts +6 -0
  471. package/dist/routing.d.ts.map +1 -0
  472. package/dist/routing.js +76 -0
  473. package/dist/routing.js.map +1 -0
  474. package/dist/sb-scope-manager.d.ts +102 -0
  475. package/dist/sb-scope-manager.d.ts.map +1 -0
  476. package/dist/sb-scope-manager.js +501 -0
  477. package/dist/sb-scope-manager.js.map +1 -0
  478. package/dist/socket-manager.d.ts +40 -0
  479. package/dist/socket-manager.d.ts.map +1 -0
  480. package/dist/socket-manager.js +174 -0
  481. package/dist/socket-manager.js.map +1 -0
  482. package/dist/source-tracker.d.ts +190 -0
  483. package/dist/source-tracker.d.ts.map +1 -0
  484. package/dist/source-tracker.js +967 -0
  485. package/dist/source-tracker.js.map +1 -0
  486. package/dist/sync-service/download.d.ts +15 -0
  487. package/dist/sync-service/download.d.ts.map +1 -0
  488. package/dist/sync-service/download.js +116 -0
  489. package/dist/sync-service/download.js.map +1 -0
  490. package/dist/sync-service/draft-helpers.d.ts +68 -0
  491. package/dist/sync-service/draft-helpers.d.ts.map +1 -0
  492. package/dist/sync-service/draft-helpers.js +362 -0
  493. package/dist/sync-service/draft-helpers.js.map +1 -0
  494. package/dist/sync-service/hash-cache.d.ts +15 -0
  495. package/dist/sync-service/hash-cache.d.ts.map +1 -0
  496. package/dist/sync-service/hash-cache.js +58 -0
  497. package/dist/sync-service/hash-cache.js.map +1 -0
  498. package/dist/sync-service/hash-dir-tree.d.ts +10 -0
  499. package/dist/sync-service/hash-dir-tree.d.ts.map +1 -0
  500. package/dist/sync-service/hash-dir-tree.js +53 -0
  501. package/dist/sync-service/hash-dir-tree.js.map +1 -0
  502. package/dist/sync-service/index.d.ts +134 -0
  503. package/dist/sync-service/index.d.ts.map +1 -0
  504. package/dist/sync-service/index.js +323 -0
  505. package/dist/sync-service/index.js.map +1 -0
  506. package/dist/sync-service/list-dir.d.ts +29 -0
  507. package/dist/sync-service/list-dir.d.ts.map +1 -0
  508. package/dist/sync-service/list-dir.js +66 -0
  509. package/dist/sync-service/list-dir.js.map +1 -0
  510. package/dist/sync-service/server-rpc/client.d.ts +13 -0
  511. package/dist/sync-service/server-rpc/client.d.ts.map +1 -0
  512. package/dist/sync-service/server-rpc/client.js +62 -0
  513. package/dist/sync-service/server-rpc/client.js.map +1 -0
  514. package/dist/sync-service/server-rpc/handlers.d.ts +3 -0
  515. package/dist/sync-service/server-rpc/handlers.d.ts.map +1 -0
  516. package/dist/sync-service/server-rpc/handlers.js +18 -0
  517. package/dist/sync-service/server-rpc/handlers.js.map +1 -0
  518. package/dist/sync-service/snapshot/take-snapshot.d.ts +38 -0
  519. package/dist/sync-service/snapshot/take-snapshot.d.ts.map +1 -0
  520. package/dist/sync-service/snapshot/take-snapshot.js +232 -0
  521. package/dist/sync-service/snapshot/take-snapshot.js.map +1 -0
  522. package/dist/sync-service/snapshot/types.d.ts +24 -0
  523. package/dist/sync-service/snapshot/types.d.ts.map +1 -0
  524. package/dist/sync-service/snapshot/types.js +3 -0
  525. package/dist/sync-service/snapshot/types.js.map +1 -0
  526. package/dist/sync-service/snapshot/upload-snapshot.d.ts +5 -0
  527. package/dist/sync-service/snapshot/upload-snapshot.d.ts.map +1 -0
  528. package/dist/sync-service/snapshot/upload-snapshot.js +63 -0
  529. package/dist/sync-service/snapshot/upload-snapshot.js.map +1 -0
  530. package/dist/traverse.d.ts +6 -0
  531. package/dist/traverse.d.ts.map +1 -0
  532. package/dist/traverse.js +7 -0
  533. package/dist/traverse.js.map +1 -0
  534. package/dist/util/generation-number-sequence.d.ts +7 -0
  535. package/dist/util/generation-number-sequence.d.ts.map +1 -0
  536. package/dist/util/generation-number-sequence.js +13 -0
  537. package/dist/util/generation-number-sequence.js.map +1 -0
  538. package/dist/util/logger.d.ts +22 -0
  539. package/dist/util/logger.d.ts.map +1 -0
  540. package/dist/util/logger.js +64 -0
  541. package/dist/util/logger.js.map +1 -0
  542. package/dist/util/operation-queue.d.ts +17 -0
  543. package/dist/util/operation-queue.d.ts.map +1 -0
  544. package/dist/util/operation-queue.js +27 -0
  545. package/dist/util/operation-queue.js.map +1 -0
  546. package/dist/util/tracing.d.ts +4 -0
  547. package/dist/util/tracing.d.ts.map +1 -0
  548. package/dist/util/tracing.js +19 -0
  549. package/dist/util/tracing.js.map +1 -0
  550. package/dist/util/with-resolvers.d.ts +10 -0
  551. package/dist/util/with-resolvers.d.ts.map +1 -0
  552. package/dist/util/with-resolvers.js +14 -0
  553. package/dist/util/with-resolvers.js.map +1 -0
  554. package/dist/util.d.ts +26 -0
  555. package/dist/util.d.ts.map +1 -0
  556. package/dist/util.js +82 -0
  557. package/dist/util.js.map +1 -0
  558. package/package.json +126 -0
@@ -0,0 +1,501 @@
1
+ import EventEmitter from "node:events";
2
+ import path from "node:path";
3
+ import t, { isObjectProperty } from "@babel/types";
4
+ import { sbEntitySymbol } from "@superblocksteam/library-shared/types";
5
+ import { SCOPE_FILE } from "./file-system-helpers.js";
6
+ import { supplementElementIds } from "./parsing/ids.js";
7
+ import { getVariableReferences } from "./parsing/jsx.js";
8
+ import { buildScopeDestructuredUsageMap, fromEntityToNode, fromNodeToEntity, updateScopeUsages, addScopeToComponent, isComponentAlreadyUsingScope, parseSbScopeDefinition, updateEntityNode, getScopeElementId, findBindComponentsInScopeUsage, addTypeParametersToScope, } from "./parsing/scope.js";
9
+ import { addImport, getImportPath } from "./parsing/util.js";
10
+ export class SbScopeManager extends EventEmitter {
11
+ // maps file name to scope definition
12
+ pageAndAppScopes = new Map();
13
+ scopeIdToFilePath = {};
14
+ sourceTracker;
15
+ // this maps scope name to file name to the node where the scope is being spread
16
+ scopeNameToScopeUsage = {};
17
+ constructor(sourceTracker) {
18
+ super({ captureRejections: true });
19
+ this.sourceTracker = sourceTracker;
20
+ }
21
+ parseScopes(fileMeta) {
22
+ const scopeFiles = Object.keys(fileMeta).filter((filePath) => filePath.endsWith(SCOPE_FILE));
23
+ const nonScopeFiles = Object.keys(fileMeta).filter((filePath) => !scopeFiles.includes(filePath));
24
+ // get scope defs first
25
+ for (const scopeFile of scopeFiles) {
26
+ if (!fileMeta[scopeFile]) {
27
+ console.error("Scope file not found", scopeFile);
28
+ return;
29
+ }
30
+ const { ast } = fileMeta[scopeFile];
31
+ if (!ast) {
32
+ console.error("AST not found for scope file", scopeFile);
33
+ return;
34
+ }
35
+ try {
36
+ const scopeDefinition = parseSbScopeDefinition(ast);
37
+ this.pageAndAppScopes.set(scopeFile, scopeDefinition);
38
+ this.scopeIdToFilePath[scopeDefinition.id] = scopeFile;
39
+ const { idMap } = supplementElementIds({
40
+ fileName: scopeFile,
41
+ ast,
42
+ shouldModifyAst: false,
43
+ scopeId: scopeDefinition.id,
44
+ });
45
+ idMap.forEach((path, id) => {
46
+ this.sourceTracker.setElementToLocation(id, path);
47
+ this.sourceTracker.setElementToFilePath(id, scopeFile);
48
+ });
49
+ }
50
+ catch (e) {
51
+ console.error("Error parsing scope definition", e);
52
+ }
53
+ }
54
+ // look for scope usages in non-scope files
55
+ for (const nonScopeFile of nonScopeFiles) {
56
+ if (!fileMeta[nonScopeFile])
57
+ return;
58
+ const { ast } = fileMeta[nonScopeFile];
59
+ if (!ast)
60
+ return;
61
+ this.getScopeUsage(ast, nonScopeFile);
62
+ }
63
+ this.reconcileBindPropertiesAndScopeDefinitions();
64
+ }
65
+ /**
66
+ * Resets the scope tracking for a given file path. This function handles two cases:
67
+ * 1. For scope files (ending with SCOPE_FILE):
68
+ * - Removes the existing scope definition
69
+ * - Re-parses the scope definition from the AST
70
+ * - Updates the scope tracking maps with the new definition
71
+ * 2. For non-scope files:
72
+ * - Removes all existing scope usages for the file
73
+ * - Re-parses and adds new scope usages from the AST
74
+ *
75
+ * @param filePath - The path of the file to reset scope tracking for
76
+ */
77
+ resetScope(filePath) {
78
+ if (filePath.endsWith(SCOPE_FILE)) {
79
+ const scopeDef = this.pageAndAppScopes.get(filePath);
80
+ if (!scopeDef) {
81
+ return [];
82
+ }
83
+ this.pageAndAppScopes.delete(filePath);
84
+ const currentFiles = this.sourceTracker.getCurrentFiles();
85
+ const ast = currentFiles[filePath]?.ast;
86
+ if (!ast) {
87
+ console.error("AST not found for scope file", filePath);
88
+ return [];
89
+ }
90
+ const scopeDefinition = parseSbScopeDefinition(ast);
91
+ this.pageAndAppScopes.set(filePath, scopeDefinition);
92
+ this.scopeIdToFilePath[scopeDefinition.id] = filePath;
93
+ const { idMap } = supplementElementIds({
94
+ fileName: filePath,
95
+ ast,
96
+ shouldModifyAst: false,
97
+ scopeId: scopeDefinition.id,
98
+ });
99
+ idMap.forEach((path, id) => {
100
+ this.sourceTracker.setElementToLocation(id, path);
101
+ this.sourceTracker.setElementToFilePath(id, filePath);
102
+ });
103
+ }
104
+ else {
105
+ // remove old scope usages for this file
106
+ for (const scopeName of Object.keys(this.scopeNameToScopeUsage)) {
107
+ if (this.scopeNameToScopeUsage[scopeName]?.[filePath]) {
108
+ delete this.scopeNameToScopeUsage[scopeName][filePath];
109
+ }
110
+ }
111
+ // re-add scope usages for this file
112
+ const currentFiles = this.sourceTracker.getCurrentFiles();
113
+ const ast = currentFiles[filePath]?.ast;
114
+ if (!ast) {
115
+ console.error("AST not found for scope file", filePath);
116
+ return [];
117
+ }
118
+ this.getScopeUsage(ast, filePath);
119
+ }
120
+ return this.reconcileBindPropertiesAndScopeDefinitions();
121
+ }
122
+ getScopeDefinitionAndFilePathByNameOrId({ identifier, type, }) {
123
+ for (const [filePath, scopeDef] of this.pageAndAppScopes.entries()) {
124
+ if (type === "id" && scopeDef.id === identifier) {
125
+ return { scopeDefinition: scopeDef, filePath };
126
+ }
127
+ if (type === "name" && scopeDef.name === identifier) {
128
+ return { scopeDefinition: scopeDef, filePath };
129
+ }
130
+ }
131
+ return { scopeDefinition: undefined, filePath: undefined };
132
+ }
133
+ addScopeDestructuringForComponent({ elementLocation, scopeName, componentFilePath, }) {
134
+ if (isComponentAlreadyUsingScope(elementLocation, this.scopeNameToScopeUsage?.[scopeName]?.[componentFilePath])) {
135
+ return;
136
+ }
137
+ // Find the scope definition
138
+ const { scopeDefinition: scopeDef } = this.getScopeDefinitionAndFilePathByNameOrId({
139
+ identifier: scopeName,
140
+ type: "name",
141
+ });
142
+ if (!scopeDef) {
143
+ this.emit("scopeNotFound", scopeName);
144
+ return;
145
+ }
146
+ // Add scope to the component
147
+ const addedNodePath = addScopeToComponent({
148
+ elementLocation,
149
+ scopeDefinition: scopeDef,
150
+ });
151
+ // Update the scope usage map
152
+ if (addedNodePath) {
153
+ if (!this.scopeNameToScopeUsage[scopeName]) {
154
+ this.scopeNameToScopeUsage[scopeName] = {};
155
+ }
156
+ if (!this.scopeNameToScopeUsage[scopeName][componentFilePath]) {
157
+ this.scopeNameToScopeUsage[scopeName][componentFilePath] = [];
158
+ }
159
+ this.scopeNameToScopeUsage[scopeName][componentFilePath].push(addedNodePath);
160
+ }
161
+ }
162
+ getDefaultScopeDefForFile(filePath) {
163
+ const scopeFilePath = path.join(path.dirname(filePath), SCOPE_FILE);
164
+ return this.pageAndAppScopes.get(scopeFilePath);
165
+ }
166
+ getAndUpdateScopeImportsForCodeSnippet({ jsxAttribute, codeFilePath, existingImports, elementLocation, }) {
167
+ const defaultScopeDef = this.getDefaultScopeDefForFile(codeFilePath);
168
+ // We are searching for all references of different global scope or entities inside the default scope
169
+ // For example for an element in Page1, we want to search for "App", "PageEntity1", "PageEntity2", ..etc
170
+ const unimportedScopes = this.findUnimportedScopes(existingImports);
171
+ const referencesToSearch = new Set([
172
+ ...unimportedScopes,
173
+ ...(defaultScopeDef?.entityNames ?? []),
174
+ ]);
175
+ const usedReferences = getVariableReferences(jsxAttribute, referencesToSearch);
176
+ const usedScopes = usedReferences.filter((reference) => unimportedScopes.has(reference));
177
+ // if there are any references of default scope variables, make sure
178
+ // to import the default scope and update all
179
+ if (usedScopes.length !== referencesToSearch.size && defaultScopeDef) {
180
+ usedScopes.push(defaultScopeDef.name);
181
+ this.addScopeDestructuringForComponent({
182
+ elementLocation,
183
+ scopeName: defaultScopeDef.name,
184
+ componentFilePath: codeFilePath,
185
+ });
186
+ this.updateScopeUsages(defaultScopeDef.name, defaultScopeDef.entityNames);
187
+ }
188
+ const result = usedScopes
189
+ .map((scopeName) => {
190
+ const { scopeDefinition: scopeDef, filePath } = this.getScopeDefinitionAndFilePathByNameOrId({
191
+ identifier: scopeName,
192
+ type: "name",
193
+ });
194
+ if (!scopeDef || !filePath) {
195
+ return null;
196
+ }
197
+ const importPath = getImportPath(codeFilePath, filePath);
198
+ return {
199
+ importPath,
200
+ importName: scopeDef.name,
201
+ };
202
+ })
203
+ .filter((item) => item !== null);
204
+ return result;
205
+ }
206
+ findUnimportedScopes(existingImports) {
207
+ const unimportedScopes = new Set();
208
+ const allScopeNames = Array.from(this.pageAndAppScopes.values()).map((scope) => scope.name);
209
+ for (const scopeName of allScopeNames) {
210
+ if (existingImports?.[scopeName]) {
211
+ // already imported in this file, dont need to import
212
+ continue;
213
+ }
214
+ unimportedScopes.add(scopeName);
215
+ }
216
+ return unimportedScopes;
217
+ }
218
+ /**
219
+ Manage scope entities
220
+ */
221
+ addScopeEntity(scopeId, payload) {
222
+ // Find the scope definition
223
+ const { scopeDefinition: scopeDef, filePath } = this.getScopeDefinitionAndFilePathByNameOrId({
224
+ identifier: scopeId,
225
+ type: "id",
226
+ });
227
+ if (!scopeDef) {
228
+ console.warn("Scope definition not found for scopeId", scopeId);
229
+ this.emit("scopeNotFound", scopeId);
230
+ return [];
231
+ }
232
+ const { entity: entityAst, imports } = fromEntityToNode({
233
+ [sbEntitySymbol]: true,
234
+ type: payload.type,
235
+ name: payload.name,
236
+ ...payload.attributes,
237
+ });
238
+ // Use the existing scopeObject path
239
+ const objPath = scopeDef.scopeEntities;
240
+ if (!objPath || !objPath.isObjectExpression()) {
241
+ console.warn("Scope object path not found for scopeId", scopeId);
242
+ this.emit("scopeNotFound", scopeId);
243
+ return [];
244
+ }
245
+ // Add the entity to the object expression
246
+ const [newEntityNode] = objPath.pushContainer("properties", entityAst);
247
+ // Add all required imports
248
+ imports.forEach(({ importName, importPath }) => {
249
+ addImport({
250
+ path: objPath,
251
+ importName,
252
+ importPath,
253
+ onAdd: () => {
254
+ // todo: we could track this in the fileToMeta map
255
+ },
256
+ });
257
+ });
258
+ const id = getScopeElementId(scopeId, payload.name);
259
+ this.sourceTracker.setElementToLocation(id, newEntityNode);
260
+ this.sourceTracker.setElementToFilePath(id, filePath);
261
+ scopeDef.entityNames.push(payload.name);
262
+ scopeDef.scopeNameToEntityId[payload.name] = id;
263
+ const updatedFiles = this.updateScopeUsages(scopeDef.name, scopeDef.entityNames);
264
+ return [...updatedFiles, filePath];
265
+ }
266
+ updateScopeEntity({ entityId, updates }) {
267
+ const entityNode = this.sourceTracker.getElementToLocation(entityId);
268
+ const filePath = this.sourceTracker.getElementToFilePath(entityId);
269
+ if (!entityNode || !isObjectProperty(entityNode.node)) {
270
+ throw new Error("Entity to update not found" + entityId);
271
+ }
272
+ if (!filePath) {
273
+ throw new Error("File path not found for entity: " + entityId);
274
+ }
275
+ const scopeDef = this.pageAndAppScopes.get(filePath);
276
+ if (!scopeDef) {
277
+ throw new Error("Scope definition not found for file: " + filePath);
278
+ }
279
+ const newEntity = fromNodeToEntity(entityNode, entityId);
280
+ if (!newEntity) {
281
+ throw new Error("Entity could not be created from node: " + entityId);
282
+ }
283
+ const { imports } = updateEntityNode(entityNode, updates ?? {}, entityId);
284
+ imports.forEach(({ importName, importPath }) => {
285
+ addImport({
286
+ importPath,
287
+ importName,
288
+ path: entityNode.parentPath,
289
+ onAdd: () => { },
290
+ });
291
+ });
292
+ return filePath;
293
+ }
294
+ deleteScopeEntity(entityId) {
295
+ const entityNode = this.sourceTracker.getElementToLocation(entityId);
296
+ if (!entityNode) {
297
+ console.warn("Entity to delete not found", entityId);
298
+ this.emit("entityNotFound", entityId, "deleteScopeEntity");
299
+ return {
300
+ changedFiles: [],
301
+ deletedEntitiesNames: [],
302
+ };
303
+ }
304
+ const entityName = (entityNode?.node?.key).name;
305
+ const filePath = this.sourceTracker.getElementToFilePath(entityId);
306
+ if (!entityNode || !isObjectProperty(entityNode.node)) {
307
+ throw new Error("Entity to delete not found" + entityId);
308
+ }
309
+ if (!filePath) {
310
+ throw new Error("File path not found for entity: " + entityId);
311
+ }
312
+ const scopeDef = this.pageAndAppScopes.get(filePath);
313
+ if (!scopeDef) {
314
+ throw new Error("Scope definition not found for file: " + filePath);
315
+ }
316
+ entityNode.remove();
317
+ this.sourceTracker.deleteElementToLocation(entityId);
318
+ this.sourceTracker.deleteElementToFilePath(entityId);
319
+ scopeDef.entityNames = scopeDef.entityNames.filter((name) => name !== entityName);
320
+ delete scopeDef.scopeNameToEntityId[entityName];
321
+ const updatedFiles = this.updateScopeUsages(scopeDef.name, scopeDef.entityNames);
322
+ return {
323
+ changedFiles: [...updatedFiles, filePath],
324
+ deletedEntitiesNames: [entityName],
325
+ };
326
+ }
327
+ renameScopeEntity({ entityId, newName, oldName, }) {
328
+ const filePath = this.sourceTracker.getElementToFilePath(entityId);
329
+ if (!filePath) {
330
+ return {
331
+ changedFiles: [],
332
+ scopeFile: filePath,
333
+ };
334
+ }
335
+ const scopeDef = this.pageAndAppScopes.get(filePath);
336
+ if (!scopeDef) {
337
+ return {
338
+ changedFiles: [],
339
+ scopeFile: filePath,
340
+ };
341
+ }
342
+ const entityNode = this.sourceTracker.getElementToLocation(entityId);
343
+ if (!entityNode || !isObjectProperty(entityNode.node)) {
344
+ return {
345
+ changedFiles: [],
346
+ };
347
+ }
348
+ const key = entityNode.get("key");
349
+ if (key) {
350
+ key.replaceWith(t.identifier(newName));
351
+ }
352
+ scopeDef.entityNames = scopeDef.entityNames.map((name) => name === oldName ? newName : name);
353
+ scopeDef.scopeNameToEntityId[newName] = entityId;
354
+ delete scopeDef.scopeNameToEntityId[oldName];
355
+ const updatedFiles = this.updateScopeUsages(scopeDef.name, scopeDef.entityNames);
356
+ return {
357
+ changedFiles: [...updatedFiles, filePath],
358
+ scopeFile: filePath,
359
+ };
360
+ }
361
+ /*
362
+ Manage scope component types
363
+ */
364
+ addScopeComponent(scopeName, componentName) {
365
+ const { scopeDefinition: currentScope, filePath } = this.getScopeDefinitionAndFilePathByNameOrId({
366
+ identifier: scopeName,
367
+ type: "name",
368
+ });
369
+ if (!currentScope) {
370
+ this.emit("scopeNotFound", scopeName);
371
+ return [];
372
+ }
373
+ const scopeDef = currentScope.scopeComponents
374
+ ? currentScope
375
+ : addTypeParametersToScope(currentScope);
376
+ if (!scopeDef.scopeComponents) {
377
+ throw new Error("Scope components not found, even though we added type parameters");
378
+ }
379
+ const newProperty = t.tsPropertySignature(t.identifier(componentName), t.tsTypeAnnotation(t.tsAnyKeyword()));
380
+ const newComponents = scopeDef.scopeComponents.pushContainer("members", newProperty);
381
+ // Update the entity names list
382
+ scopeDef.entityNames.push(componentName);
383
+ // Update all scope usages to include the new component
384
+ const updatedFiles = this.updateScopeUsages(scopeDef.name, scopeDef.entityNames);
385
+ const entityId = getScopeElementId(scopeDef.id, componentName);
386
+ this.sourceTracker.setElementToLocation(entityId, newComponents[0]);
387
+ this.sourceTracker.setElementToFilePath(entityId, filePath);
388
+ return [...updatedFiles, filePath];
389
+ }
390
+ deleteScopeComponent(scopeName, componentName) {
391
+ const { scopeDefinition: scopeDef } = this.getScopeDefinitionAndFilePathByNameOrId({
392
+ identifier: scopeName,
393
+ type: "name",
394
+ });
395
+ if (!scopeDef) {
396
+ return [];
397
+ }
398
+ const componentTypeId = getScopeElementId(scopeDef.id, componentName);
399
+ const componentNode = this.sourceTracker.getElementToLocation(componentTypeId);
400
+ const filePath = this.sourceTracker.getElementToFilePath(componentTypeId);
401
+ if (!componentNode ||
402
+ !t.isTSPropertySignature(componentNode.node) ||
403
+ !filePath) {
404
+ return [];
405
+ }
406
+ // Remove the component node from the AST
407
+ componentNode.remove();
408
+ // Clean up references
409
+ this.sourceTracker.deleteElementToLocation(componentTypeId);
410
+ this.sourceTracker.deleteElementToFilePath(componentTypeId);
411
+ // Update the entity names list
412
+ scopeDef.entityNames = scopeDef.entityNames.filter((name) => name !== componentName);
413
+ delete scopeDef.scopeNameToEntityId[componentName];
414
+ const updatedFiles = this.updateScopeUsages(scopeDef.name, scopeDef.entityNames);
415
+ return [...updatedFiles, filePath];
416
+ }
417
+ renameScopeComponent({ newName, oldName, scopeName, }) {
418
+ if (!oldName) {
419
+ return this.addScopeComponent(scopeName, newName);
420
+ }
421
+ const { scopeDefinition: scopeDef } = this.getScopeDefinitionAndFilePathByNameOrId({
422
+ identifier: scopeName,
423
+ type: "name",
424
+ });
425
+ if (!scopeDef) {
426
+ return [];
427
+ }
428
+ const componentTypeId = getScopeElementId(scopeDef.id, oldName);
429
+ const filePath = this.sourceTracker.getElementToFilePath(componentTypeId);
430
+ if (!filePath) {
431
+ return [];
432
+ }
433
+ const componentNode = this.sourceTracker.getElementToLocation(componentTypeId);
434
+ if (!componentNode) {
435
+ return [];
436
+ }
437
+ // Update the key name in the AST
438
+ const key = componentNode.get("key");
439
+ if (key) {
440
+ key.replaceWith(t.identifier(newName));
441
+ }
442
+ // Update the entity names list
443
+ scopeDef.entityNames = scopeDef.entityNames.map((name) => name === oldName ? newName : name);
444
+ delete scopeDef.scopeNameToEntityId[oldName];
445
+ const updatedFiles = this.updateScopeUsages(scopeDef.name, scopeDef.entityNames);
446
+ // clear references to old name and set references to new name
447
+ this.sourceTracker.deleteElementToLocation(componentTypeId);
448
+ this.sourceTracker.deleteElementToFilePath(componentTypeId);
449
+ const newComponentTypeId = getScopeElementId(scopeDef.id, newName);
450
+ scopeDef.scopeNameToEntityId[newName] = newComponentTypeId;
451
+ this.sourceTracker.setElementToLocation(newComponentTypeId, componentNode);
452
+ this.sourceTracker.setElementToFilePath(newComponentTypeId, filePath);
453
+ return [...updatedFiles, filePath];
454
+ }
455
+ getScopeUsage(ast, filePath) {
456
+ const allScopeNames = new Set();
457
+ for (const [_, scopeDef] of this.pageAndAppScopes.entries()) {
458
+ allScopeNames.add(scopeDef.name);
459
+ }
460
+ buildScopeDestructuredUsageMap(ast, filePath, allScopeNames, this.scopeNameToScopeUsage);
461
+ }
462
+ reconcileBindPropertiesAndScopeDefinitions() {
463
+ for (const [scopeName, scopeUsages] of Object.entries(this.scopeNameToScopeUsage)) {
464
+ const { scopeDefinition: scopeDef } = this.getScopeDefinitionAndFilePathByNameOrId({
465
+ identifier: scopeName,
466
+ type: "name",
467
+ });
468
+ if (!scopeDef) {
469
+ continue;
470
+ }
471
+ const missingComponents = new Set();
472
+ for (const [_, usages] of Object.entries(scopeUsages)) {
473
+ for (const usage of usages) {
474
+ const bindNames = findBindComponentsInScopeUsage(usage);
475
+ for (const bindName of bindNames) {
476
+ if (!scopeDef.entityNames.includes(bindName)) {
477
+ missingComponents.add(bindName);
478
+ }
479
+ }
480
+ }
481
+ }
482
+ const updatedFiles = [];
483
+ // Add missing components to the scope definition
484
+ for (const missingComponent of missingComponents) {
485
+ updatedFiles.push(...this.addScopeComponent(scopeName, missingComponent));
486
+ }
487
+ return updatedFiles;
488
+ }
489
+ return [];
490
+ }
491
+ updateScopeUsages(scopeName, entityNames) {
492
+ const uniqueEntityNames = [...new Set(entityNames)];
493
+ const scopeUsages = this.scopeNameToScopeUsage[scopeName];
494
+ if (scopeUsages) {
495
+ updateScopeUsages(scopeUsages, uniqueEntityNames);
496
+ return Object.keys(scopeUsages);
497
+ }
498
+ return [];
499
+ }
500
+ }
501
+ //# sourceMappingURL=sb-scope-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sb-scope-manager.js","sourceRoot":"","sources":["../src/sb-scope-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import EventEmitter from "node:events";
2
+ import type { AiService } from "./ai-service/index.js";
3
+ import type { FileSyncManager } from "./file-system-manager.js";
4
+ import type { LockService } from "./lock-service/index.js";
5
+ import type { SyncService } from "./sync-service/index.js";
6
+ import type { EditorClientMethods, LibraryClientMethods } from "@superblocksteam/library-shared/types";
7
+ import type { ISocketClient } from "@superblocksteam/shared";
8
+ import type { Tracer } from "dd-trace";
9
+ import type http from "node:http";
10
+ type SocketManagerEvents = {
11
+ "connect:editor": [ISocketClient<EditorClientMethods>];
12
+ "connect:library": [ISocketClient<LibraryClientMethods>];
13
+ };
14
+ export declare class SocketManager extends EventEmitter<SocketManagerEvents> {
15
+ private peerIds;
16
+ private editorSockets;
17
+ private librarySockets;
18
+ private connectedUserPeerIdsMap;
19
+ constructor();
20
+ private socketServer;
21
+ startSocketServer({ server, fileSyncManager, syncService, lockService, aiService, path, tracer, }: {
22
+ server: http.Server;
23
+ fileSyncManager: FileSyncManager;
24
+ syncService?: SyncService;
25
+ lockService?: LockService;
26
+ aiService?: AiService;
27
+ path: string;
28
+ tracer?: Tracer;
29
+ }): void;
30
+ /**
31
+ * If we have no more socket connections, release the lock
32
+ * @param lockService
33
+ * @param syncService
34
+ */
35
+ checkSocketsRemainingAndShutdownIfNeeded(lockService?: LockService, syncService?: SyncService): Promise<void>;
36
+ callEditorClients(fn: (socket: ISocketClient<EditorClientMethods>) => Promise<void>): void;
37
+ callLibraryClients(fn: (socket: ISocketClient<LibraryClientMethods>) => Promise<void>): void;
38
+ }
39
+ export {};
40
+ //# sourceMappingURL=socket-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket-manager.d.ts","sourceRoot":"","sources":["../src/socket-manager.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AAKvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EAErB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,KAAK,mBAAmB,GAAG;IACzB,gBAAgB,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACvD,iBAAiB,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,qBAAa,aAAc,SAAQ,YAAY,CAAC,mBAAmB,CAAC;IAClE,OAAO,CAAC,OAAO,CAA8C;IAE7D,OAAO,CAAC,aAAa,CAAiD;IACtE,OAAO,CAAC,cAAc,CAAkD;IACxE,OAAO,CAAC,uBAAuB,CAAuC;;IAMtE,OAAO,CAAC,YAAY,CAA8B;IAClD,iBAAiB,CAAC,EAChB,MAAM,EACN,eAAe,EACf,WAAW,EACX,WAAW,EACX,SAAS,EACT,IAAI,EACJ,MAAM,GACP,EAAE;QACD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QACpB,eAAe,EAAE,eAAe,CAAC;QACjC,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IA+JD;;;;OAIG;IACG,wCAAwC,CAC5C,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW;IAkB3B,iBAAiB,CACf,EAAE,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAOnE,kBAAkB,CAChB,EAAE,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,oBAAoB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;CAMrE"}