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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (562) hide show
  1. package/LICENSE.txt +87 -0
  2. package/dist/ai-service/artifacts/bolt.d.ts +8 -0
  3. package/dist/ai-service/artifacts/bolt.d.ts.map +1 -0
  4. package/dist/ai-service/artifacts/bolt.js +34 -0
  5. package/dist/ai-service/artifacts/bolt.js.map +1 -0
  6. package/dist/ai-service/const.d.ts +8 -0
  7. package/dist/ai-service/const.d.ts.map +1 -0
  8. package/dist/ai-service/const.js +9 -0
  9. package/dist/ai-service/const.js.map +1 -0
  10. package/dist/ai-service/eval/template-renderer.d.ts +13 -0
  11. package/dist/ai-service/eval/template-renderer.d.ts.map +1 -0
  12. package/dist/ai-service/eval/template-renderer.js +66 -0
  13. package/dist/ai-service/eval/template-renderer.js.map +1 -0
  14. package/dist/ai-service/index.d.ts +18 -0
  15. package/dist/ai-service/index.d.ts.map +1 -0
  16. package/dist/ai-service/index.js +140 -0
  17. package/dist/ai-service/index.js.map +1 -0
  18. package/dist/ai-service/integrations/const.d.ts +41 -0
  19. package/dist/ai-service/integrations/const.d.ts.map +1 -0
  20. package/dist/ai-service/integrations/const.js +76 -0
  21. package/dist/ai-service/integrations/const.js.map +1 -0
  22. package/dist/ai-service/integrations/from-prompt-context.d.ts +4 -0
  23. package/dist/ai-service/integrations/from-prompt-context.d.ts.map +1 -0
  24. package/dist/ai-service/integrations/from-prompt-context.js +56 -0
  25. package/dist/ai-service/integrations/from-prompt-context.js.map +1 -0
  26. package/dist/ai-service/integrations/to-sdk-prompt.d.ts +3 -0
  27. package/dist/ai-service/integrations/to-sdk-prompt.d.ts.map +1 -0
  28. package/dist/ai-service/integrations/to-sdk-prompt.js +47 -0
  29. package/dist/ai-service/integrations/to-sdk-prompt.js.map +1 -0
  30. package/dist/ai-service/integrations/types.d.ts +31 -0
  31. package/dist/ai-service/integrations/types.d.ts.map +1 -0
  32. package/dist/ai-service/integrations/types.js +2 -0
  33. package/dist/ai-service/integrations/types.js.map +1 -0
  34. package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.d.ts +2 -0
  35. package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.d.ts.map +1 -0
  36. package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.js +386 -0
  37. package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.js.map +1 -0
  38. package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.d.ts +2 -0
  39. package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.d.ts.map +1 -0
  40. package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.js +219 -0
  41. package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.js.map +1 -0
  42. package/dist/ai-service/prompts/generated/index.d.ts +4 -0
  43. package/dist/ai-service/prompts/generated/index.d.ts.map +1 -0
  44. package/dist/ai-service/prompts/generated/index.js +6 -0
  45. package/dist/ai-service/prompts/generated/index.js.map +1 -0
  46. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.d.ts +2 -0
  47. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.d.ts.map +1 -0
  48. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.js +6 -0
  49. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.js.map +1 -0
  50. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.d.ts +2 -0
  51. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.d.ts.map +1 -0
  52. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.js +6 -0
  53. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.js.map +1 -0
  54. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.d.ts +2 -0
  55. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.d.ts.map +1 -0
  56. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.js +6 -0
  57. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.js.map +1 -0
  58. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.d.ts +2 -0
  59. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.d.ts.map +1 -0
  60. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.js +6 -0
  61. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.js.map +1 -0
  62. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.d.ts +2 -0
  63. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.d.ts.map +1 -0
  64. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.js +6 -0
  65. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.js.map +1 -0
  66. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.d.ts +2 -0
  67. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.d.ts.map +1 -0
  68. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.js +6 -0
  69. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.js.map +1 -0
  70. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.d.ts +2 -0
  71. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.d.ts.map +1 -0
  72. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.js +6 -0
  73. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.js.map +1 -0
  74. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.d.ts +2 -0
  75. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.d.ts.map +1 -0
  76. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.js +6 -0
  77. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.js.map +1 -0
  78. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.d.ts +2 -0
  79. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.d.ts.map +1 -0
  80. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.js +6 -0
  81. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.js.map +1 -0
  82. package/dist/ai-service/prompts/generated/library-components/SbKeyValuePropsDocs.d.ts +2 -0
  83. package/dist/ai-service/prompts/generated/library-components/SbKeyValuePropsDocs.d.ts.map +1 -0
  84. package/dist/ai-service/prompts/generated/library-components/SbKeyValuePropsDocs.js +6 -0
  85. package/dist/ai-service/prompts/generated/library-components/SbKeyValuePropsDocs.js.map +1 -0
  86. package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.d.ts +2 -0
  87. package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.d.ts.map +1 -0
  88. package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.js +6 -0
  89. package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.js.map +1 -0
  90. package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.d.ts +2 -0
  91. package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.d.ts.map +1 -0
  92. package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.js +6 -0
  93. package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.js.map +1 -0
  94. package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.d.ts +2 -0
  95. package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.d.ts.map +1 -0
  96. package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.js +6 -0
  97. package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.js.map +1 -0
  98. package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.d.ts +2 -0
  99. package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.d.ts.map +1 -0
  100. package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.js +6 -0
  101. package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.js.map +1 -0
  102. package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.d.ts +2 -0
  103. package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.d.ts.map +1 -0
  104. package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.js +6 -0
  105. package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.js.map +1 -0
  106. package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.d.ts +2 -0
  107. package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.d.ts.map +1 -0
  108. package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.js +6 -0
  109. package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.js.map +1 -0
  110. package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.d.ts +2 -0
  111. package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.d.ts.map +1 -0
  112. package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.js +6 -0
  113. package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.js.map +1 -0
  114. package/dist/ai-service/prompts/generated/library-components/index.d.ts +18 -0
  115. package/dist/ai-service/prompts/generated/library-components/index.d.ts.map +1 -0
  116. package/dist/ai-service/prompts/generated/library-components/index.js +20 -0
  117. package/dist/ai-service/prompts/generated/library-components/index.js.map +1 -0
  118. package/dist/ai-service/prompts/generated/library-typedefs/Dim.d.ts +2 -0
  119. package/dist/ai-service/prompts/generated/library-typedefs/Dim.d.ts.map +1 -0
  120. package/dist/ai-service/prompts/generated/library-typedefs/Dim.js +6 -0
  121. package/dist/ai-service/prompts/generated/library-typedefs/Dim.js.map +1 -0
  122. package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.d.ts +2 -0
  123. package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.d.ts.map +1 -0
  124. package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.js +6 -0
  125. package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.js.map +1 -0
  126. package/dist/ai-service/prompts/generated/library-typedefs/index.d.ts +3 -0
  127. package/dist/ai-service/prompts/generated/library-typedefs/index.d.ts.map +1 -0
  128. package/dist/ai-service/prompts/generated/library-typedefs/index.js +5 -0
  129. package/dist/ai-service/prompts/generated/library-typedefs/index.js.map +1 -0
  130. package/dist/ai-service/prompts/generated/subprompts/index.d.ts +12 -0
  131. package/dist/ai-service/prompts/generated/subprompts/index.d.ts.map +1 -0
  132. package/dist/ai-service/prompts/generated/subprompts/index.js +14 -0
  133. package/dist/ai-service/prompts/generated/subprompts/index.js.map +1 -0
  134. package/dist/ai-service/prompts/generated/subprompts/superblocks-api.d.ts +2 -0
  135. package/dist/ai-service/prompts/generated/subprompts/superblocks-api.d.ts.map +1 -0
  136. package/dist/ai-service/prompts/generated/subprompts/superblocks-api.js +6 -0
  137. package/dist/ai-service/prompts/generated/subprompts/superblocks-api.js.map +1 -0
  138. package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.d.ts +2 -0
  139. package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.d.ts.map +1 -0
  140. package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.js +6 -0
  141. package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.js.map +1 -0
  142. package/dist/ai-service/prompts/generated/subprompts/superblocks-custom-components.d.ts +2 -0
  143. package/dist/ai-service/prompts/generated/subprompts/superblocks-custom-components.d.ts.map +1 -0
  144. package/dist/ai-service/prompts/generated/subprompts/superblocks-custom-components.js +6 -0
  145. package/dist/ai-service/prompts/generated/subprompts/superblocks-custom-components.js.map +1 -0
  146. package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.d.ts +2 -0
  147. package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.d.ts.map +1 -0
  148. package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.js +6 -0
  149. package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.js.map +1 -0
  150. package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.d.ts +2 -0
  151. package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.d.ts.map +1 -0
  152. package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.js +6 -0
  153. package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.js.map +1 -0
  154. package/dist/ai-service/prompts/generated/subprompts/superblocks-page.d.ts +2 -0
  155. package/dist/ai-service/prompts/generated/subprompts/superblocks-page.d.ts.map +1 -0
  156. package/dist/ai-service/prompts/generated/subprompts/superblocks-page.js +6 -0
  157. package/dist/ai-service/prompts/generated/subprompts/superblocks-page.js.map +1 -0
  158. package/dist/ai-service/prompts/generated/subprompts/superblocks-routes.d.ts +2 -0
  159. package/dist/ai-service/prompts/generated/subprompts/superblocks-routes.d.ts.map +1 -0
  160. package/dist/ai-service/prompts/generated/subprompts/superblocks-routes.js +6 -0
  161. package/dist/ai-service/prompts/generated/subprompts/superblocks-routes.js.map +1 -0
  162. package/dist/ai-service/prompts/generated/subprompts/superblocks-state.d.ts +2 -0
  163. package/dist/ai-service/prompts/generated/subprompts/superblocks-state.d.ts.map +1 -0
  164. package/dist/ai-service/prompts/generated/subprompts/superblocks-state.js +6 -0
  165. package/dist/ai-service/prompts/generated/subprompts/superblocks-state.js.map +1 -0
  166. package/dist/ai-service/prompts/generated/subprompts/superblocks-theming.d.ts +2 -0
  167. package/dist/ai-service/prompts/generated/subprompts/superblocks-theming.d.ts.map +1 -0
  168. package/dist/ai-service/prompts/generated/subprompts/superblocks-theming.js +6 -0
  169. package/dist/ai-service/prompts/generated/subprompts/superblocks-theming.js.map +1 -0
  170. package/dist/ai-service/prompts/generated/subprompts/superblocks-timers.d.ts +2 -0
  171. package/dist/ai-service/prompts/generated/subprompts/superblocks-timers.d.ts.map +1 -0
  172. package/dist/ai-service/prompts/generated/subprompts/superblocks-timers.js +6 -0
  173. package/dist/ai-service/prompts/generated/subprompts/superblocks-timers.js.map +1 -0
  174. package/dist/ai-service/prompts/generated/subprompts/system.d.ts +2 -0
  175. package/dist/ai-service/prompts/generated/subprompts/system.d.ts.map +1 -0
  176. package/dist/ai-service/prompts/generated/subprompts/system.js +6 -0
  177. package/dist/ai-service/prompts/generated/subprompts/system.js.map +1 -0
  178. package/dist/ai-service/prompts/markdown-loader.d.ts +9 -0
  179. package/dist/ai-service/prompts/markdown-loader.d.ts.map +1 -0
  180. package/dist/ai-service/prompts/markdown-loader.js +55 -0
  181. package/dist/ai-service/prompts/markdown-loader.js.map +1 -0
  182. package/dist/ai-service/prompts/system.d.ts +2 -0
  183. package/dist/ai-service/prompts/system.d.ts.map +1 -0
  184. package/dist/ai-service/prompts/system.js +145 -0
  185. package/dist/ai-service/prompts/system.js.map +1 -0
  186. package/dist/ai-service/result-buffer/bolt.d.ts +15 -0
  187. package/dist/ai-service/result-buffer/bolt.d.ts.map +1 -0
  188. package/dist/ai-service/result-buffer/bolt.js +73 -0
  189. package/dist/ai-service/result-buffer/bolt.js.map +1 -0
  190. package/dist/ai-service/result-buffer/shared.d.ts +13 -0
  191. package/dist/ai-service/result-buffer/shared.d.ts.map +1 -0
  192. package/dist/ai-service/result-buffer/shared.js +7 -0
  193. package/dist/ai-service/result-buffer/shared.js.map +1 -0
  194. package/dist/ai-service/state-machine/clark-fsm.d.ts +158 -0
  195. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -0
  196. package/dist/ai-service/state-machine/clark-fsm.js +62 -0
  197. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -0
  198. package/dist/ai-service/state-machine/fsm.d.ts +42 -0
  199. package/dist/ai-service/state-machine/fsm.d.ts.map +1 -0
  200. package/dist/ai-service/state-machine/fsm.js +55 -0
  201. package/dist/ai-service/state-machine/fsm.js.map +1 -0
  202. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts +3 -0
  203. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -0
  204. package/dist/ai-service/state-machine/handlers/agent-planning.js +209 -0
  205. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -0
  206. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts +3 -0
  207. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -0
  208. package/dist/ai-service/state-machine/handlers/awaiting-user.js +21 -0
  209. package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -0
  210. package/dist/ai-service/state-machine/handlers/idle.d.ts +3 -0
  211. package/dist/ai-service/state-machine/handlers/idle.d.ts.map +1 -0
  212. package/dist/ai-service/state-machine/handlers/idle.js +22 -0
  213. package/dist/ai-service/state-machine/handlers/idle.js.map +1 -0
  214. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts +3 -0
  215. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -0
  216. package/dist/ai-service/state-machine/handlers/llm-generating.js +123 -0
  217. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -0
  218. package/dist/ai-service/state-machine/handlers/play-dead.d.ts +3 -0
  219. package/dist/ai-service/state-machine/handlers/play-dead.d.ts.map +1 -0
  220. package/dist/ai-service/state-machine/handlers/play-dead.js +11 -0
  221. package/dist/ai-service/state-machine/handlers/play-dead.js.map +1 -0
  222. package/dist/ai-service/state-machine/handlers/post-processing.d.ts +3 -0
  223. package/dist/ai-service/state-machine/handlers/post-processing.d.ts.map +1 -0
  224. package/dist/ai-service/state-machine/handlers/post-processing.js +50 -0
  225. package/dist/ai-service/state-machine/handlers/post-processing.js.map +1 -0
  226. package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts +3 -0
  227. package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts.map +1 -0
  228. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +37 -0
  229. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -0
  230. package/dist/ai-service/state-machine/helpers/metadata.d.ts +6 -0
  231. package/dist/ai-service/state-machine/helpers/metadata.d.ts.map +1 -0
  232. package/dist/ai-service/state-machine/helpers/metadata.js +11 -0
  233. package/dist/ai-service/state-machine/helpers/metadata.js.map +1 -0
  234. package/dist/ai-service/state-machine/helpers/peer.d.ts +5 -0
  235. package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -0
  236. package/dist/ai-service/state-machine/helpers/peer.js +7 -0
  237. package/dist/ai-service/state-machine/helpers/peer.js.map +1 -0
  238. package/dist/ai-service/state-machine/helpers/transition.d.ts +13 -0
  239. package/dist/ai-service/state-machine/helpers/transition.d.ts.map +1 -0
  240. package/dist/ai-service/state-machine/helpers/transition.js +6 -0
  241. package/dist/ai-service/state-machine/helpers/transition.js.map +1 -0
  242. package/dist/ai-service/state-machine/mocks.d.ts +7 -0
  243. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -0
  244. package/dist/ai-service/state-machine/mocks.js +63 -0
  245. package/dist/ai-service/state-machine/mocks.js.map +1 -0
  246. package/dist/ai-service/state-machine/test-util.d.ts +5 -0
  247. package/dist/ai-service/state-machine/test-util.d.ts.map +1 -0
  248. package/dist/ai-service/state-machine/test-util.js +29 -0
  249. package/dist/ai-service/state-machine/test-util.js.map +1 -0
  250. package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.d.ts +21 -0
  251. package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.d.ts.map +1 -0
  252. package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.js +47 -0
  253. package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.js.map +1 -0
  254. package/dist/ai-service/transform/api-builder/shared.d.ts +11 -0
  255. package/dist/ai-service/transform/api-builder/shared.d.ts.map +1 -0
  256. package/dist/ai-service/transform/api-builder/shared.js +53 -0
  257. package/dist/ai-service/transform/api-builder/shared.js.map +1 -0
  258. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts +27 -0
  259. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -0
  260. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +66 -0
  261. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -0
  262. package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts +23 -0
  263. package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts.map +1 -0
  264. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js +59 -0
  265. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js.map +1 -0
  266. package/dist/ai-service/transform/remove-api-builder-imports/transformer.d.ts +19 -0
  267. package/dist/ai-service/transform/remove-api-builder-imports/transformer.d.ts.map +1 -0
  268. package/dist/ai-service/transform/remove-api-builder-imports/transformer.js +45 -0
  269. package/dist/ai-service/transform/remove-api-builder-imports/transformer.js.map +1 -0
  270. package/dist/ai-service/transform/shared.d.ts +20 -0
  271. package/dist/ai-service/transform/shared.d.ts.map +1 -0
  272. package/dist/ai-service/transform/shared.js +132 -0
  273. package/dist/ai-service/transform/shared.js.map +1 -0
  274. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.d.ts +17 -0
  275. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.d.ts.map +1 -0
  276. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js +33 -0
  277. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js.map +1 -0
  278. package/dist/ai-service/types.d.ts +65 -0
  279. package/dist/ai-service/types.d.ts.map +1 -0
  280. package/dist/ai-service/types.js +2 -0
  281. package/dist/ai-service/types.js.map +1 -0
  282. package/dist/binding-extraction/extract-control-block-identifiers.d.ts +4 -0
  283. package/dist/binding-extraction/extract-control-block-identifiers.d.ts.map +1 -0
  284. package/dist/binding-extraction/extract-control-block-identifiers.js +86 -0
  285. package/dist/binding-extraction/extract-control-block-identifiers.js.map +1 -0
  286. package/dist/binding-extraction/extract-embedded-identifiers.d.ts +16 -0
  287. package/dist/binding-extraction/extract-embedded-identifiers.d.ts.map +1 -0
  288. package/dist/binding-extraction/extract-embedded-identifiers.js +100 -0
  289. package/dist/binding-extraction/extract-embedded-identifiers.js.map +1 -0
  290. package/dist/binding-extraction/extract-identifiers.d.ts +8 -0
  291. package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -0
  292. package/dist/binding-extraction/extract-identifiers.js +150 -0
  293. package/dist/binding-extraction/extract-identifiers.js.map +1 -0
  294. package/dist/binding-extraction/extract-js-identifiers.d.ts +19 -0
  295. package/dist/binding-extraction/extract-js-identifiers.d.ts.map +1 -0
  296. package/dist/binding-extraction/extract-js-identifiers.js +161 -0
  297. package/dist/binding-extraction/extract-js-identifiers.js.map +1 -0
  298. package/dist/binding-extraction/extract-py-identifiers.d.ts +4 -0
  299. package/dist/binding-extraction/extract-py-identifiers.d.ts.map +1 -0
  300. package/dist/binding-extraction/extract-py-identifiers.js +161 -0
  301. package/dist/binding-extraction/extract-py-identifiers.js.map +1 -0
  302. package/dist/binding-extraction/shared.d.ts +225 -0
  303. package/dist/binding-extraction/shared.d.ts.map +1 -0
  304. package/dist/binding-extraction/shared.js +43 -0
  305. package/dist/binding-extraction/shared.js.map +1 -0
  306. package/dist/binding-extraction/template-strings.d.ts +9 -0
  307. package/dist/binding-extraction/template-strings.d.ts.map +1 -0
  308. package/dist/binding-extraction/template-strings.js +45 -0
  309. package/dist/binding-extraction/template-strings.js.map +1 -0
  310. package/dist/codegen.d.ts +26 -0
  311. package/dist/codegen.d.ts.map +1 -0
  312. package/dist/codegen.js +217 -0
  313. package/dist/codegen.js.map +1 -0
  314. package/dist/components-manager.d.ts +38 -0
  315. package/dist/components-manager.d.ts.map +1 -0
  316. package/dist/components-manager.js +177 -0
  317. package/dist/components-manager.js.map +1 -0
  318. package/dist/custom-components.d.ts +6 -0
  319. package/dist/custom-components.d.ts.map +1 -0
  320. package/dist/custom-components.js +51 -0
  321. package/dist/custom-components.js.map +1 -0
  322. package/dist/draft-interface.d.ts +11 -0
  323. package/dist/draft-interface.d.ts.map +1 -0
  324. package/dist/draft-interface.js +2 -0
  325. package/dist/draft-interface.js.map +1 -0
  326. package/dist/errors/error-handler.d.ts +35 -0
  327. package/dist/errors/error-handler.d.ts.map +1 -0
  328. package/dist/errors/error-handler.js +65 -0
  329. package/dist/errors/error-handler.js.map +1 -0
  330. package/dist/errors/make-server-error.d.ts +5 -0
  331. package/dist/errors/make-server-error.d.ts.map +1 -0
  332. package/dist/errors/make-server-error.js +21 -0
  333. package/dist/errors/make-server-error.js.map +1 -0
  334. package/dist/file-sync-vite-plugin.d.ts +4 -0
  335. package/dist/file-sync-vite-plugin.d.ts.map +1 -0
  336. package/dist/file-sync-vite-plugin.js +573 -0
  337. package/dist/file-sync-vite-plugin.js.map +1 -0
  338. package/dist/file-system-helpers.d.ts +7 -0
  339. package/dist/file-system-helpers.d.ts.map +1 -0
  340. package/dist/file-system-helpers.js +12 -0
  341. package/dist/file-system-helpers.js.map +1 -0
  342. package/dist/file-system-manager.d.ts +131 -0
  343. package/dist/file-system-manager.d.ts.map +1 -0
  344. package/dist/file-system-manager.js +1159 -0
  345. package/dist/file-system-manager.js.map +1 -0
  346. package/dist/generate.d.ts +8 -0
  347. package/dist/generate.d.ts.map +1 -0
  348. package/dist/generate.js +7 -0
  349. package/dist/generate.js.map +1 -0
  350. package/dist/ids.d.ts +2 -0
  351. package/dist/ids.d.ts.map +1 -0
  352. package/dist/ids.js +21 -0
  353. package/dist/ids.js.map +1 -0
  354. package/dist/index.d.ts +6 -0
  355. package/dist/index.d.ts.map +1 -0
  356. package/dist/index.js +6 -0
  357. package/dist/index.js.map +1 -0
  358. package/dist/injected-index.d.ts +12 -0
  359. package/dist/injected-index.d.ts.map +1 -0
  360. package/dist/injected-index.js +38 -0
  361. package/dist/injected-index.js.map +1 -0
  362. package/dist/lock-service/index.d.ts +93 -0
  363. package/dist/lock-service/index.d.ts.map +1 -0
  364. package/dist/lock-service/index.js +267 -0
  365. package/dist/lock-service/index.js.map +1 -0
  366. package/dist/parsing/bindings.d.ts +4 -0
  367. package/dist/parsing/bindings.d.ts.map +1 -0
  368. package/dist/parsing/bindings.js +17 -0
  369. package/dist/parsing/bindings.js.map +1 -0
  370. package/dist/parsing/computed/to-code-computed.d.ts +2 -0
  371. package/dist/parsing/computed/to-code-computed.d.ts.map +1 -0
  372. package/dist/parsing/computed/to-code-computed.js +39 -0
  373. package/dist/parsing/computed/to-code-computed.js.map +1 -0
  374. package/dist/parsing/computed/to-value-computed.d.ts +4 -0
  375. package/dist/parsing/computed/to-value-computed.d.ts.map +1 -0
  376. package/dist/parsing/computed/to-value-computed.js +13 -0
  377. package/dist/parsing/computed/to-value-computed.js.map +1 -0
  378. package/dist/parsing/dim/to-code-dimensions.d.ts +3 -0
  379. package/dist/parsing/dim/to-code-dimensions.d.ts.map +1 -0
  380. package/dist/parsing/dim/to-code-dimensions.js +22 -0
  381. package/dist/parsing/dim/to-code-dimensions.js.map +1 -0
  382. package/dist/parsing/dim/to-value-dimensions.d.ts +4 -0
  383. package/dist/parsing/dim/to-value-dimensions.d.ts.map +1 -0
  384. package/dist/parsing/dim/to-value-dimensions.js +39 -0
  385. package/dist/parsing/dim/to-value-dimensions.js.map +1 -0
  386. package/dist/parsing/entity/index.d.ts +8 -0
  387. package/dist/parsing/entity/index.d.ts.map +1 -0
  388. package/dist/parsing/entity/index.js +8 -0
  389. package/dist/parsing/entity/index.js.map +1 -0
  390. package/dist/parsing/entity/to-code-entity.d.ts +3 -0
  391. package/dist/parsing/entity/to-code-entity.d.ts.map +1 -0
  392. package/dist/parsing/entity/to-code-entity.js +38 -0
  393. package/dist/parsing/entity/to-code-entity.js.map +1 -0
  394. package/dist/parsing/entity/to-value-entity.d.ts +8 -0
  395. package/dist/parsing/entity/to-value-entity.d.ts.map +1 -0
  396. package/dist/parsing/entity/to-value-entity.js +98 -0
  397. package/dist/parsing/entity/to-value-entity.js.map +1 -0
  398. package/dist/parsing/events/to-code-events.d.ts +3 -0
  399. package/dist/parsing/events/to-code-events.d.ts.map +1 -0
  400. package/dist/parsing/events/to-code-events.js +86 -0
  401. package/dist/parsing/events/to-code-events.js.map +1 -0
  402. package/dist/parsing/events/to-value-events.d.ts +5 -0
  403. package/dist/parsing/events/to-value-events.d.ts.map +1 -0
  404. package/dist/parsing/events/to-value-events.js +155 -0
  405. package/dist/parsing/events/to-value-events.js.map +1 -0
  406. package/dist/parsing/ids.d.ts +17 -0
  407. package/dist/parsing/ids.d.ts.map +1 -0
  408. package/dist/parsing/ids.js +121 -0
  409. package/dist/parsing/ids.js.map +1 -0
  410. package/dist/parsing/imports.d.ts +6 -0
  411. package/dist/parsing/imports.d.ts.map +1 -0
  412. package/dist/parsing/imports.js +27 -0
  413. package/dist/parsing/imports.js.map +1 -0
  414. package/dist/parsing/jsx-utils.d.ts +9 -0
  415. package/dist/parsing/jsx-utils.d.ts.map +1 -0
  416. package/dist/parsing/jsx-utils.js +42 -0
  417. package/dist/parsing/jsx-utils.js.map +1 -0
  418. package/dist/parsing/jsx.d.ts +23 -0
  419. package/dist/parsing/jsx.d.ts.map +1 -0
  420. package/dist/parsing/jsx.js +327 -0
  421. package/dist/parsing/jsx.js.map +1 -0
  422. package/dist/parsing/page.d.ts +9 -0
  423. package/dist/parsing/page.d.ts.map +1 -0
  424. package/dist/parsing/page.js +156 -0
  425. package/dist/parsing/page.js.map +1 -0
  426. package/dist/parsing/properties.d.ts +5 -0
  427. package/dist/parsing/properties.d.ts.map +1 -0
  428. package/dist/parsing/properties.js +89 -0
  429. package/dist/parsing/properties.js.map +1 -0
  430. package/dist/parsing/scope.d.ts +80 -0
  431. package/dist/parsing/scope.d.ts.map +1 -0
  432. package/dist/parsing/scope.js +549 -0
  433. package/dist/parsing/scope.js.map +1 -0
  434. package/dist/parsing/template/to-code-template.d.ts +2 -0
  435. package/dist/parsing/template/to-code-template.d.ts.map +1 -0
  436. package/dist/parsing/template/to-code-template.js +5 -0
  437. package/dist/parsing/template/to-code-template.js.map +1 -0
  438. package/dist/parsing/template/to-value-template.d.ts +4 -0
  439. package/dist/parsing/template/to-value-template.d.ts.map +1 -0
  440. package/dist/parsing/template/to-value-template.js +19 -0
  441. package/dist/parsing/template/to-value-template.js.map +1 -0
  442. package/dist/parsing/theme.d.ts +3 -0
  443. package/dist/parsing/theme.d.ts.map +1 -0
  444. package/dist/parsing/theme.js +87 -0
  445. package/dist/parsing/theme.js.map +1 -0
  446. package/dist/parsing/type-parsing-registry.d.ts +18 -0
  447. package/dist/parsing/type-parsing-registry.d.ts.map +1 -0
  448. package/dist/parsing/type-parsing-registry.js +31 -0
  449. package/dist/parsing/type-parsing-registry.js.map +1 -0
  450. package/dist/parsing/util.d.ts +30 -0
  451. package/dist/parsing/util.d.ts.map +1 -0
  452. package/dist/parsing/util.js +310 -0
  453. package/dist/parsing/util.js.map +1 -0
  454. package/dist/plugin-options.d.ts +25 -0
  455. package/dist/plugin-options.d.ts.map +1 -0
  456. package/dist/plugin-options.js +14 -0
  457. package/dist/plugin-options.js.map +1 -0
  458. package/dist/refactor/blocks.d.ts +10 -0
  459. package/dist/refactor/blocks.d.ts.map +1 -0
  460. package/dist/refactor/blocks.js +214 -0
  461. package/dist/refactor/blocks.js.map +1 -0
  462. package/dist/refactor/javascript.d.ts +15 -0
  463. package/dist/refactor/javascript.d.ts.map +1 -0
  464. package/dist/refactor/javascript.js +171 -0
  465. package/dist/refactor/javascript.js.map +1 -0
  466. package/dist/refactor-jsx.d.ts +28 -0
  467. package/dist/refactor-jsx.d.ts.map +1 -0
  468. package/dist/refactor-jsx.js +77 -0
  469. package/dist/refactor-jsx.js.map +1 -0
  470. package/dist/rename-manager.d.ts +27 -0
  471. package/dist/rename-manager.d.ts.map +1 -0
  472. package/dist/rename-manager.js +148 -0
  473. package/dist/rename-manager.js.map +1 -0
  474. package/dist/routing.d.ts +6 -0
  475. package/dist/routing.d.ts.map +1 -0
  476. package/dist/routing.js +76 -0
  477. package/dist/routing.js.map +1 -0
  478. package/dist/sb-scope-manager.d.ts +96 -0
  479. package/dist/sb-scope-manager.d.ts.map +1 -0
  480. package/dist/sb-scope-manager.js +438 -0
  481. package/dist/sb-scope-manager.js.map +1 -0
  482. package/dist/socket-manager.d.ts +40 -0
  483. package/dist/socket-manager.d.ts.map +1 -0
  484. package/dist/socket-manager.js +174 -0
  485. package/dist/socket-manager.js.map +1 -0
  486. package/dist/source-tracker.d.ts +190 -0
  487. package/dist/source-tracker.d.ts.map +1 -0
  488. package/dist/source-tracker.js +955 -0
  489. package/dist/source-tracker.js.map +1 -0
  490. package/dist/sync-service/download.d.ts +15 -0
  491. package/dist/sync-service/download.d.ts.map +1 -0
  492. package/dist/sync-service/download.js +116 -0
  493. package/dist/sync-service/download.js.map +1 -0
  494. package/dist/sync-service/draft-helpers.d.ts +68 -0
  495. package/dist/sync-service/draft-helpers.d.ts.map +1 -0
  496. package/dist/sync-service/draft-helpers.js +362 -0
  497. package/dist/sync-service/draft-helpers.js.map +1 -0
  498. package/dist/sync-service/hash-cache.d.ts +15 -0
  499. package/dist/sync-service/hash-cache.d.ts.map +1 -0
  500. package/dist/sync-service/hash-cache.js +58 -0
  501. package/dist/sync-service/hash-cache.js.map +1 -0
  502. package/dist/sync-service/hash-dir-tree.d.ts +10 -0
  503. package/dist/sync-service/hash-dir-tree.d.ts.map +1 -0
  504. package/dist/sync-service/hash-dir-tree.js +53 -0
  505. package/dist/sync-service/hash-dir-tree.js.map +1 -0
  506. package/dist/sync-service/index.d.ts +134 -0
  507. package/dist/sync-service/index.d.ts.map +1 -0
  508. package/dist/sync-service/index.js +323 -0
  509. package/dist/sync-service/index.js.map +1 -0
  510. package/dist/sync-service/list-dir.d.ts +29 -0
  511. package/dist/sync-service/list-dir.d.ts.map +1 -0
  512. package/dist/sync-service/list-dir.js +66 -0
  513. package/dist/sync-service/list-dir.js.map +1 -0
  514. package/dist/sync-service/server-rpc/client.d.ts +13 -0
  515. package/dist/sync-service/server-rpc/client.d.ts.map +1 -0
  516. package/dist/sync-service/server-rpc/client.js +62 -0
  517. package/dist/sync-service/server-rpc/client.js.map +1 -0
  518. package/dist/sync-service/server-rpc/handlers.d.ts +3 -0
  519. package/dist/sync-service/server-rpc/handlers.d.ts.map +1 -0
  520. package/dist/sync-service/server-rpc/handlers.js +18 -0
  521. package/dist/sync-service/server-rpc/handlers.js.map +1 -0
  522. package/dist/sync-service/snapshot/take-snapshot.d.ts +38 -0
  523. package/dist/sync-service/snapshot/take-snapshot.d.ts.map +1 -0
  524. package/dist/sync-service/snapshot/take-snapshot.js +232 -0
  525. package/dist/sync-service/snapshot/take-snapshot.js.map +1 -0
  526. package/dist/sync-service/snapshot/types.d.ts +24 -0
  527. package/dist/sync-service/snapshot/types.d.ts.map +1 -0
  528. package/dist/sync-service/snapshot/types.js +3 -0
  529. package/dist/sync-service/snapshot/types.js.map +1 -0
  530. package/dist/sync-service/snapshot/upload-snapshot.d.ts +5 -0
  531. package/dist/sync-service/snapshot/upload-snapshot.d.ts.map +1 -0
  532. package/dist/sync-service/snapshot/upload-snapshot.js +50 -0
  533. package/dist/sync-service/snapshot/upload-snapshot.js.map +1 -0
  534. package/dist/traverse.d.ts +6 -0
  535. package/dist/traverse.d.ts.map +1 -0
  536. package/dist/traverse.js +7 -0
  537. package/dist/traverse.js.map +1 -0
  538. package/dist/util/generation-number-sequence.d.ts +7 -0
  539. package/dist/util/generation-number-sequence.d.ts.map +1 -0
  540. package/dist/util/generation-number-sequence.js +13 -0
  541. package/dist/util/generation-number-sequence.js.map +1 -0
  542. package/dist/util/logger.d.ts +22 -0
  543. package/dist/util/logger.d.ts.map +1 -0
  544. package/dist/util/logger.js +64 -0
  545. package/dist/util/logger.js.map +1 -0
  546. package/dist/util/operation-queue.d.ts +17 -0
  547. package/dist/util/operation-queue.d.ts.map +1 -0
  548. package/dist/util/operation-queue.js +27 -0
  549. package/dist/util/operation-queue.js.map +1 -0
  550. package/dist/util/tracing.d.ts +4 -0
  551. package/dist/util/tracing.d.ts.map +1 -0
  552. package/dist/util/tracing.js +19 -0
  553. package/dist/util/tracing.js.map +1 -0
  554. package/dist/util/with-resolvers.d.ts +10 -0
  555. package/dist/util/with-resolvers.d.ts.map +1 -0
  556. package/dist/util/with-resolvers.js +14 -0
  557. package/dist/util/with-resolvers.js.map +1 -0
  558. package/dist/util.d.ts +26 -0
  559. package/dist/util.d.ts.map +1 -0
  560. package/dist/util.js +82 -0
  561. package/dist/util.js.map +1 -0
  562. package/package.json +123 -0
@@ -0,0 +1,80 @@
1
+ import { type PropertyInfo } from "@superblocksteam/library-shared";
2
+ import { type Import } from "./imports.js";
3
+ import type { ParseResult } from "@babel/parser";
4
+ import type { NodePath } from "@babel/traverse";
5
+ import type { CallExpression, File, JSXElement, Node, ObjectExpression, ObjectProperty, TSTypeLiteral, VariableDeclaration } from "@babel/types";
6
+ import type { AnyStaticSbEntity, SbElement, StaticScope } from "@superblocksteam/library-shared/types";
7
+ import type { SbEntity } from "@superblocksteam/library-shared/types";
8
+ export declare function getScopeElementId(scopeId: string, name: string): SbElement;
9
+ export type SbScopeDefinition = {
10
+ name: string;
11
+ id: string;
12
+ entityNames: string[];
13
+ mainNode: NodePath<CallExpression>;
14
+ scopeEntities: NodePath<ObjectExpression>;
15
+ scopeComponents: NodePath<TSTypeLiteral> | null;
16
+ scopeNameToEntityId: Record<string, SbElement>;
17
+ };
18
+ export type FileScopeDefinition = {
19
+ entities: NodePath<ObjectExpression> | null;
20
+ options?: NodePath<ObjectExpression> | null;
21
+ };
22
+ export declare function updateEntityNode(node: NodePath<ObjectProperty>, updates: Record<string, PropertyInfo>, entityId?: SbElement): {
23
+ imports: Import[];
24
+ };
25
+ export declare function fromEntityToNode(entity: SbEntity): {
26
+ entity: ObjectProperty;
27
+ imports: Import[];
28
+ };
29
+ export declare function fromNodeToEntity(property: NodePath<ObjectProperty>, entityId?: SbElement): AnyStaticSbEntity | null;
30
+ export declare function getScope(fileName: string, file?: {
31
+ ast: ParseResult<File> | null;
32
+ code: string;
33
+ }): StaticScope | null;
34
+ /**
35
+ * Builds a map of scope usages within files
36
+ * @param ast The AST to analyze
37
+ * @param filePath The path of the file being analyzed
38
+ * @param scopeDefinitions List of scope definitions (name and entities)
39
+ * @param scopeNameToScopeUsage Existing map to update (optional)
40
+ * @returns Updated map of scope usages
41
+ */
42
+ export declare function buildScopeDestructuredUsageMap(ast: ParseResult<File>, filePath: string, scopeNames: Set<string>, scopeNameToScopeUsage?: Record<string, Record<string, NodePath<Node>[]>>): Record<string, Record<string, NodePath<Node>[]>>;
43
+ /**
44
+ * Updates all scope usages to include the complete list of entity names
45
+ * @param scopeUsages Map of file paths to NodePaths where the scope is used
46
+ * @param entityNames Complete list of entity names to include in all usages
47
+ */
48
+ export declare function updateScopeUsages(scopeUsages: Record<string, NodePath<Node>[]>, entityNames: string[]): void;
49
+ /**
50
+ * Adds scope destructuring and imports to a component based on a JSX element locator
51
+ * @param elementPath Path to the JSX element that serves as the locator
52
+ * @param scopeDef Scope definition containing name, entities, and file path
53
+ * @param componentFilePath Path to the component file (for relative import calculation)
54
+ * @returns The newly created destructuring node path or null if failed
55
+ */
56
+ export declare function addScopeToComponent({ elementLocation, scopeDefinition, }: {
57
+ elementLocation: NodePath<JSXElement>;
58
+ scopeDefinition: SbScopeDefinition;
59
+ }): NodePath<VariableDeclaration> | null;
60
+ export declare function isComponentAlreadyUsingScope(elementLocation: NodePath<JSXElement>, usagesInFile?: NodePath<Node>[]): boolean;
61
+ export declare function parseSbScopeDefinition(ast: ParseResult<File>): SbScopeDefinition;
62
+ /**
63
+ * Creates an empty scope definition with the given scope name.
64
+ * This generates a minimal scope with no entities or components and returns the parsed definition.
65
+ * Useful as a fallback when components are missing and need to be initialized.
66
+ *
67
+ * @param scopeName - The name of the scope (e.g., "Page1")
68
+ * @returns A parsed SbScopeDefinition with empty entities and components
69
+ */
70
+ export declare function createEmptyScopeDefinition(scopeName: string): SbScopeDefinition;
71
+ /**
72
+ * Adds type parameters to an existing createSbScope call if they don't exist.
73
+ * This function modifies the AST directly by adding a TypeScript type parameter
74
+ * to the createSbScope call expression.
75
+ *
76
+ * @param scopeDefinition - The scope definition containing the AST nodes
77
+ * @returns The scope definition with type parameters added (modifies the scope definition in place)
78
+ */
79
+ export declare function addTypeParametersToScope(scopeDefinition: SbScopeDefinition): SbScopeDefinition;
80
+ //# sourceMappingURL=scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/parsing/scope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,549 @@
1
+ import { transformFromAstSync } from "@babel/core";
2
+ import { parse } from "@babel/parser";
3
+ import { variableDeclarator, objectPattern, objectProperty, variableDeclaration, identifier, blockStatement, returnStatement, } from "@babel/types";
4
+ import * as t from "@babel/types";
5
+ import { getStableScopeId, } from "@superblocksteam/library-shared";
6
+ import { SbEntityType } from "@superblocksteam/library-shared/types";
7
+ import { generatePredictableId } from "@superblocksteam/shared/dist/utils/appDSL.js";
8
+ import { getPropertyExpression } from "../codegen.js";
9
+ import { traverse } from "../traverse.js";
10
+ import { entityParser } from "./entity/index.js";
11
+ import { getSbElementId, setSbElementId, supplementElementIds } from "./ids.js";
12
+ import { REQUIRED_IMPORTS_BY_PROPERTY_TYPE } from "./imports.js";
13
+ import { getIdentiferName, isSbScopeFunction, nodeToValue } from "./util.js";
14
+ export function getScopeElementId(scopeId, name) {
15
+ return `SB-${generatePredictableId(scopeId + name)}-type`;
16
+ }
17
+ const importsByEntityType = {
18
+ [SbEntityType.VARIABLE]: [
19
+ { importName: "SB", importPath: "@superblocksteam/library" },
20
+ { importName: "SbVariable", importPath: "@superblocksteam/library" },
21
+ {
22
+ importName: "SbVariablePersistence",
23
+ importPath: "@superblocksteam/library",
24
+ },
25
+ ],
26
+ [SbEntityType.TIMER]: [
27
+ { importName: "SB", importPath: "@superblocksteam/library" },
28
+ { importName: "SbTimer", importPath: "@superblocksteam/library" },
29
+ { importName: "SbEventFlow", importPath: "@superblocksteam/library" },
30
+ ],
31
+ [SbEntityType.EVENT]: [
32
+ { importName: "SbEvent", importPath: "@superblocksteam/library" },
33
+ ],
34
+ [SbEntityType.API]: [
35
+ { importName: "SB", importPath: "@superblocksteam/library" },
36
+ { importName: "SbApi", importPath: "@superblocksteam/library" },
37
+ { importName: "SbEventFlow", importPath: "@superblocksteam/library" },
38
+ ],
39
+ };
40
+ /**
41
+ * Given an object property from a scope entry, like:
42
+ * pageSize: SbVariable({
43
+ * defaultValue: "test ${Math.random()}",
44
+ * persistence: SbVariablePersistence.TEMPORARY
45
+ * })
46
+ *
47
+ * Returns a reference to the object expression node
48
+ */
49
+ function getConfigObject(node) {
50
+ const config = node.get("value");
51
+ if (!config.isCallExpression()) {
52
+ return null;
53
+ }
54
+ const args = config.get("arguments");
55
+ if (args.length !== 1) {
56
+ return null;
57
+ }
58
+ const configObject = args[0];
59
+ if (!configObject?.isObjectExpression()) {
60
+ return null;
61
+ }
62
+ return configObject;
63
+ }
64
+ export function updateEntityNode(node, updates, entityId) {
65
+ const entity = fromNodeToEntity(node, entityId);
66
+ if (!entity) {
67
+ throw new Error("Entity could not be created from node: " +
68
+ getIdentiferName(node.node.key));
69
+ }
70
+ const configObject = getConfigObject(node);
71
+ if (!configObject) {
72
+ return {
73
+ imports: [],
74
+ };
75
+ }
76
+ let imports = importsByEntityType[entity.type] ?? [];
77
+ for (const [key, info] of Object.entries(updates ?? {})) {
78
+ const property = configObject.get("properties").find((property) => {
79
+ return (property.isObjectProperty() &&
80
+ property.get("key").isIdentifier() &&
81
+ getIdentiferName(property.node.key) === key);
82
+ });
83
+ if (!property) {
84
+ // add the property to the config
85
+ configObject.pushContainer("properties", objectProperty(identifier(key), getPropertyExpression(info)));
86
+ continue;
87
+ }
88
+ property.replaceWith(objectProperty(identifier(key), getPropertyExpression(info)));
89
+ if (info.type in REQUIRED_IMPORTS_BY_PROPERTY_TYPE) {
90
+ const requiredImports = REQUIRED_IMPORTS_BY_PROPERTY_TYPE[info.type];
91
+ if (requiredImports) {
92
+ imports = [...imports, ...requiredImports];
93
+ }
94
+ }
95
+ }
96
+ return { imports };
97
+ }
98
+ export function fromEntityToNode(entity) {
99
+ const imports = importsByEntityType[entity.type] ?? [];
100
+ const code = entityParser.toCode(entity);
101
+ const parsedEntity = parse(code, {
102
+ sourceType: "module",
103
+ plugins: ["typescript", "jsx"],
104
+ });
105
+ if (parsedEntity.program.body[0]?.type !== "ExpressionStatement") {
106
+ throw new Error("Invalid entity ast definition");
107
+ }
108
+ return {
109
+ entity: objectProperty(identifier(entity.name), parsedEntity.program.body[0].expression),
110
+ imports,
111
+ };
112
+ }
113
+ export function fromNodeToEntity(property, entityId) {
114
+ const entityName = nodeToValue(property.get("key").node);
115
+ const expression = property.get("value");
116
+ const id = entityId ?? getSbElementId(property.node);
117
+ return entityParser.toValue(expression, {
118
+ key: entityName,
119
+ id,
120
+ });
121
+ }
122
+ export function getScope(fileName, file) {
123
+ if (!file || !file.ast) {
124
+ return null;
125
+ }
126
+ const clonedAst = transformFromAstSync(file.ast, undefined, { ast: true });
127
+ if (!clonedAst?.ast) {
128
+ throw new Error("Failed to clone AST for file " + fileName);
129
+ }
130
+ const ast = clonedAst.ast;
131
+ if (!ast) {
132
+ throw new Error("Failed to parse AST for file " + fileName);
133
+ }
134
+ try {
135
+ const scope = parseSbScopeDefinition(ast);
136
+ if (!scope) {
137
+ return null;
138
+ }
139
+ const scopeId = scope.id;
140
+ supplementElementIds({ fileName, ast, shouldModifyAst: true, scopeId });
141
+ const entities = scope.scopeEntities?.get("properties").reduce((acc, property) => {
142
+ if (property.isObjectProperty()) {
143
+ const entity = fromNodeToEntity(property);
144
+ if (entity) {
145
+ acc[entity.name] = entity;
146
+ }
147
+ }
148
+ return acc;
149
+ }, {}) ?? {};
150
+ return {
151
+ entities: entities,
152
+ scopeName: scope.name,
153
+ scopeId: scope.id,
154
+ };
155
+ }
156
+ catch (_e) {
157
+ return null;
158
+ }
159
+ }
160
+ // sb scope utils
161
+ /**
162
+ * Builds a map of scope usages within files
163
+ * @param ast The AST to analyze
164
+ * @param filePath The path of the file being analyzed
165
+ * @param scopeDefinitions List of scope definitions (name and entities)
166
+ * @param scopeNameToScopeUsage Existing map to update (optional)
167
+ * @returns Updated map of scope usages
168
+ */
169
+ export function buildScopeDestructuredUsageMap(ast, filePath, scopeNames, scopeNameToScopeUsage = {}) {
170
+ traverse(ast, {
171
+ // Look for variable declarations like: const { Entity1 } = ScopeName;
172
+ VariableDeclaration(path) {
173
+ const declarations = path.get("declarations");
174
+ for (const declaration of declarations) {
175
+ if (!declaration.isVariableDeclarator())
176
+ continue;
177
+ const id = declaration.get("id");
178
+ const init = declaration.get("init");
179
+ // Check if this is a destructuring assignment
180
+ if (id.isObjectPattern() && init.isIdentifier()) {
181
+ const scopeName = init.node.name;
182
+ // Check if the identifier is a known scope
183
+ if (scopeNames.has(scopeName)) {
184
+ // Initialize the nested structure if it doesn't exist
185
+ if (!scopeNameToScopeUsage[scopeName]) {
186
+ scopeNameToScopeUsage[scopeName] = {};
187
+ }
188
+ if (!scopeNameToScopeUsage[scopeName][filePath]) {
189
+ scopeNameToScopeUsage[scopeName][filePath] = [];
190
+ }
191
+ // Add this usage to the map
192
+ scopeNameToScopeUsage[scopeName][filePath].push(path);
193
+ }
194
+ }
195
+ }
196
+ },
197
+ });
198
+ return scopeNameToScopeUsage;
199
+ }
200
+ /**
201
+ * Updates all scope usages to include the complete list of entity names
202
+ * @param scopeUsages Map of file paths to NodePaths where the scope is used
203
+ * @param entityNames Complete list of entity names to include in all usages
204
+ */
205
+ export function updateScopeUsages(scopeUsages, entityNames) {
206
+ // Process each file's usages
207
+ Object.values(scopeUsages).forEach((usages) => {
208
+ usages.forEach((usage) => {
209
+ if (usage.isVariableDeclaration()) {
210
+ // Handle variable declarations: const { Entity1 } = Scope;
211
+ const declarations = usage.get("declarations");
212
+ for (const declaration of declarations) {
213
+ if (!declaration.isVariableDeclarator())
214
+ continue;
215
+ const id = declaration.get("id");
216
+ if (id.isObjectPattern()) {
217
+ const newProperties = entityNames.map((name) => objectProperty(identifier(name), identifier(name), false, // computed
218
+ true));
219
+ id.node.properties = newProperties;
220
+ }
221
+ }
222
+ }
223
+ });
224
+ });
225
+ }
226
+ /**
227
+ * Adds scope destructuring and imports to a component based on a JSX element locator
228
+ * @param elementPath Path to the JSX element that serves as the locator
229
+ * @param scopeDef Scope definition containing name, entities, and file path
230
+ * @param componentFilePath Path to the component file (for relative import calculation)
231
+ * @returns The newly created destructuring node path or null if failed
232
+ */
233
+ export function addScopeToComponent({ elementLocation, scopeDefinition, }) {
234
+ // Find the function component or class that contains this JSX element
235
+ const componentPath = findEnclosingComponent(elementLocation);
236
+ if (!componentPath) {
237
+ throw new Error("Could not find enclosing component for the JSX element");
238
+ }
239
+ return addScopeDestructuring(componentPath, scopeDefinition);
240
+ }
241
+ function findEnclosingComponent(elementPath) {
242
+ let currentPath = elementPath.parentPath;
243
+ while (currentPath) {
244
+ // Check for component types
245
+ if (currentPath.isFunctionDeclaration() ||
246
+ currentPath.isArrowFunctionExpression() ||
247
+ currentPath.isFunctionExpression() ||
248
+ currentPath.isClassDeclaration()) {
249
+ return currentPath;
250
+ }
251
+ // Move up the tree
252
+ currentPath = currentPath.parentPath;
253
+ }
254
+ return null;
255
+ }
256
+ /**
257
+ * Adds scope destructuring to the component body
258
+ * @param componentPath Path to the component declaration
259
+ * @param scopeDef Scope definition containing name and entities
260
+ * @returns The newly created destructuring node path or null if failed
261
+ */
262
+ function addScopeDestructuring(componentPath, scopeDefinition) {
263
+ // Create the destructuring variable declaration
264
+ // const { Entity1, Entity2 } = ScopeName;
265
+ const uniqueEntityNames = [...new Set(scopeDefinition.entityNames)];
266
+ const destructuringDeclaration = variableDeclaration("const", [
267
+ variableDeclarator(objectPattern(uniqueEntityNames.map((name) => objectProperty(identifier(name), identifier(name), false, // computed
268
+ true))), identifier(scopeDefinition.name)),
269
+ ]);
270
+ let addedNodePath = null;
271
+ if (componentPath.isFunctionDeclaration() ||
272
+ componentPath.isFunctionExpression() ||
273
+ componentPath.isArrowFunctionExpression()) {
274
+ // For function components, add at the start of the function body
275
+ let body = componentPath.get("body");
276
+ if (Array.isArray(body)) {
277
+ body = body[0];
278
+ if (!body)
279
+ return null;
280
+ }
281
+ body = body;
282
+ if (body.isBlockStatement()) {
283
+ // Function with block body: function Component() { ... }
284
+ const [newPath] = body.unshiftContainer("body", destructuringDeclaration);
285
+ addedNodePath = newPath;
286
+ }
287
+ else {
288
+ // Arrow function with expression body: () => <div />
289
+ // Need to convert to block body first
290
+ const retStatement = returnStatement(body.node);
291
+ componentPath.node.body = blockStatement([
292
+ destructuringDeclaration,
293
+ retStatement,
294
+ ]);
295
+ // Get the path to the newly added node
296
+ const blockBody = componentPath.get("body");
297
+ addedNodePath = blockBody.get("body")[0];
298
+ }
299
+ }
300
+ else if (componentPath.isClassDeclaration()) {
301
+ // For class components, add to the render method
302
+ const renderMethod = findRenderMethod(componentPath);
303
+ if (renderMethod) {
304
+ const renderBody = renderMethod.get("body");
305
+ const [newPath] = renderBody.unshiftContainer("body", destructuringDeclaration);
306
+ addedNodePath = newPath;
307
+ }
308
+ }
309
+ return addedNodePath;
310
+ }
311
+ function findRenderMethod(classPath) {
312
+ const body = classPath.get("body");
313
+ const methods = body.get("body");
314
+ for (const method of methods) {
315
+ if (method.isClassMethod() &&
316
+ method.node.kind === "method" &&
317
+ method.get("key").isIdentifier() &&
318
+ method.get("key").node.name === "render") {
319
+ return method;
320
+ }
321
+ }
322
+ return null;
323
+ }
324
+ export function isComponentAlreadyUsingScope(elementLocation, usagesInFile) {
325
+ // Check if we have usage data for this scope and file
326
+ if (!usagesInFile?.length) {
327
+ return false;
328
+ }
329
+ // Find the component that contains this JSX element
330
+ const componentPath = findEnclosingComponent(elementLocation);
331
+ if (!componentPath) {
332
+ return false;
333
+ }
334
+ // Check if any of the usages are within the same component
335
+ for (const usage of usagesInFile) {
336
+ // Find the component containing this usage
337
+ let currentPath = usage;
338
+ let usageComponentPath = null;
339
+ // Traverse up the tree to find the containing component
340
+ while (currentPath) {
341
+ if (currentPath.isFunctionDeclaration() ||
342
+ currentPath.isArrowFunctionExpression() ||
343
+ currentPath.isFunctionExpression() ||
344
+ currentPath.isClassDeclaration()) {
345
+ usageComponentPath = currentPath;
346
+ break;
347
+ }
348
+ currentPath = currentPath.parentPath;
349
+ }
350
+ // If the usage is in the same component, return true
351
+ if (usageComponentPath && usageComponentPath === componentPath) {
352
+ return true;
353
+ }
354
+ }
355
+ return false;
356
+ }
357
+ /*
358
+ Example code:
359
+ export const Page1Scope = createSbScope<{component: any}>({
360
+ count: SbVariable({ defaultValue: 0 }),
361
+ });
362
+
363
+ export const Page1 = Page1Scope.entities;
364
+
365
+ SBDefintiion:
366
+ - name: Page1
367
+ - entityNames: ["count", "component"]
368
+ - scopeEntities: {count: SBVariable({defaultValue: 0})} (nodepath)
369
+ - scopeComponents: { component: any} (nodePath)
370
+ */
371
+ export function parseSbScopeDefinition(ast) {
372
+ let scopeName = null;
373
+ let scopeScopeName = null; // e.g., "Page1Scope"
374
+ const entityNames = [];
375
+ let mainNode = null;
376
+ let scopeEntities = null;
377
+ let scopeComponents = null;
378
+ const scopeNameToEntityId = {};
379
+ let scopeId = null;
380
+ // First pass: Find the export const Page1 = Page1Scope.entities statement to get the page name
381
+ traverse(ast, {
382
+ ExportNamedDeclaration(path) {
383
+ const declaration = path.get("declaration");
384
+ if (!declaration.isVariableDeclaration())
385
+ return;
386
+ const declarations = declaration.get("declarations");
387
+ for (const varDeclarator of declarations) {
388
+ if (!varDeclarator.isVariableDeclarator())
389
+ continue;
390
+ const id = varDeclarator.get("id");
391
+ const init = varDeclarator.get("init");
392
+ // Check if this is the entities export (e.g., export const Page1 = Page1Scope.entities)
393
+ if (id.isIdentifier() &&
394
+ init.isMemberExpression() &&
395
+ init.get("property").isIdentifier()) {
396
+ const property = init.get("property");
397
+ if (property.isIdentifier() && property.node.name === "entities") {
398
+ const object = init.get("object");
399
+ if (object.isIdentifier()) {
400
+ // Found the entities export, extract the page name from the left side of the assignment
401
+ scopeName = id.node.name;
402
+ scopeScopeName = object.node.name;
403
+ scopeId = getStableScopeId(scopeName);
404
+ break;
405
+ }
406
+ }
407
+ }
408
+ }
409
+ },
410
+ });
411
+ // Second pass: Find the scope definition and extract entity names
412
+ if (scopeName && scopeScopeName && scopeId) {
413
+ traverse(ast, {
414
+ VariableDeclaration(path) {
415
+ const declarations = path.get("declarations");
416
+ for (const varDeclarator of declarations) {
417
+ if (!varDeclarator.isVariableDeclarator())
418
+ continue;
419
+ const id = varDeclarator.get("id");
420
+ const init = varDeclarator.get("init");
421
+ if (id.isIdentifier() && id.node.name === scopeScopeName) {
422
+ if (init.isCallExpression() && init.get("callee").isIdentifier()) {
423
+ const callee = init.get("callee");
424
+ if (callee.isIdentifier() &&
425
+ isSbScopeFunction(callee.node.name)) {
426
+ // Extract entity names from the type parameters
427
+ if (init.node.typeParameters) {
428
+ const typeParameters = init.get("typeParameters");
429
+ if (typeParameters.isTSTypeParameterInstantiation() &&
430
+ typeParameters.node.params.length > 0) {
431
+ const typeParams = typeParameters.get("params");
432
+ if (typeParams.length > 0) {
433
+ const typeParam = typeParams[0];
434
+ if (typeParam && typeParam.isTSTypeLiteral()) {
435
+ const members = typeParam.get("members");
436
+ members.forEach((member) => {
437
+ if (member.isTSPropertySignature() &&
438
+ member.get("key").isIdentifier()) {
439
+ const key = member.get("key");
440
+ if (key.isIdentifier()) {
441
+ entityNames.push(key.node.name);
442
+ }
443
+ }
444
+ });
445
+ // Store reference to the type literal node for components
446
+ scopeComponents = typeParam;
447
+ }
448
+ }
449
+ }
450
+ }
451
+ // Extract entity names from the object argument
452
+ if (init.node.arguments.length > 0) {
453
+ const args = init.get("arguments");
454
+ if (args.length > 0) {
455
+ const objArg = args[0];
456
+ if (objArg && objArg.isObjectExpression()) {
457
+ const properties = objArg.get("properties");
458
+ properties.forEach((prop) => {
459
+ if (prop.isObjectProperty() &&
460
+ prop.node.key.type === "Identifier") {
461
+ const name = getIdentiferName(prop.node.key);
462
+ if (!name) {
463
+ console.warn("Could not find name for entity");
464
+ return;
465
+ }
466
+ entityNames.push(name);
467
+ let entityId = getSbElementId(prop.node);
468
+ if (!entityId) {
469
+ entityId = getScopeElementId(scopeId, name);
470
+ setSbElementId(prop.node, entityId);
471
+ }
472
+ if (entityId) {
473
+ scopeNameToEntityId[entityId] = entityId;
474
+ }
475
+ }
476
+ });
477
+ // Store reference to the object expression node
478
+ scopeEntities = objArg;
479
+ }
480
+ }
481
+ }
482
+ // Set mainNode to the createSbScope call expression
483
+ mainNode = init;
484
+ }
485
+ }
486
+ }
487
+ }
488
+ },
489
+ });
490
+ }
491
+ if (!scopeName || !scopeEntities || !mainNode || !scopeId) {
492
+ throw new Error("Failed to parse scope definition: missing required elements");
493
+ }
494
+ // Remove duplicates from entityNames if any
495
+ const uniqueEntityNames = [...new Set(entityNames)];
496
+ return {
497
+ name: scopeName,
498
+ entityNames: uniqueEntityNames,
499
+ mainNode,
500
+ scopeEntities,
501
+ scopeComponents,
502
+ id: scopeId,
503
+ scopeNameToEntityId,
504
+ };
505
+ }
506
+ /**
507
+ * Creates an empty scope definition with the given scope name.
508
+ * This generates a minimal scope with no entities or components and returns the parsed definition.
509
+ * Useful as a fallback when components are missing and need to be initialized.
510
+ *
511
+ * @param scopeName - The name of the scope (e.g., "Page1")
512
+ * @returns A parsed SbScopeDefinition with empty entities and components
513
+ */
514
+ export function createEmptyScopeDefinition(scopeName) {
515
+ const code = `const ${scopeName}Scope = createSbScope<{}>({});
516
+ export const ${scopeName} = ${scopeName}Scope.entities;`;
517
+ const ast = parse(code, {
518
+ sourceType: "module",
519
+ plugins: ["typescript", "jsx"],
520
+ });
521
+ return parseSbScopeDefinition(ast);
522
+ }
523
+ /**
524
+ * Adds type parameters to an existing createSbScope call if they don't exist.
525
+ * This function modifies the AST directly by adding a TypeScript type parameter
526
+ * to the createSbScope call expression.
527
+ *
528
+ * @param scopeDefinition - The scope definition containing the AST nodes
529
+ * @returns The scope definition with type parameters added (modifies the scope definition in place)
530
+ */
531
+ export function addTypeParametersToScope(scopeDefinition) {
532
+ // Get the createSbScope call expression
533
+ const mainPath = scopeDefinition.mainNode;
534
+ // Check if type parameters already exist
535
+ if (mainPath.node.typeParameters) {
536
+ const typeParams = mainPath.node.typeParameters.params;
537
+ if (typeParams.length > 0 && t.isTSTypeLiteral(typeParams[0])) {
538
+ return scopeDefinition;
539
+ }
540
+ }
541
+ const emptyScope = createEmptyScopeDefinition(scopeDefinition.name);
542
+ const typeParameterInstantiation = emptyScope.mainNode.node.typeParameters;
543
+ // Add type parameters to the AST
544
+ mainPath.node.typeParameters = typeParameterInstantiation;
545
+ // Add the type literal to the scope definition
546
+ scopeDefinition.scopeComponents = emptyScope.scopeComponents;
547
+ return scopeDefinition;
548
+ }
549
+ //# sourceMappingURL=scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/parsing/scope.ts"],"names":[],"mappings":"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"}