fullstacked 0.12.1-1330 → 0.12.1-1355

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 (277) hide show
  1. package/fullstacked_modules/{ai/index.js → @fullstacked/ai-agent/ai-agent.js} +4868 -8601
  2. package/fullstacked_modules/@fullstacked/ai-agent/index.ts +5 -3
  3. package/fullstacked_modules/@fullstacked/ai-agent/package.json +26 -23
  4. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/anthropic.ts +11 -7
  5. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/deepseek.ts +11 -7
  6. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/google.ts +11 -7
  7. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/index.ts +10 -12
  8. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/interface.ts +10 -6
  9. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/mistral.ts +11 -7
  10. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/ollama.ts +19 -14
  11. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/openai.ts +11 -7
  12. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/xai.ts +11 -7
  13. package/fullstacked_modules/@fullstacked/ui/index.js +664 -0
  14. package/fullstacked_modules/auto_update/index.ts +66 -0
  15. package/fullstacked_modules/bridge/index.ts +2 -57
  16. package/fullstacked_modules/{esbuild/esbuild.ts → build/build.ts} +31 -28
  17. package/fullstacked_modules/build/index.ts +3 -0
  18. package/fullstacked_modules/build/sass.ts +55 -0
  19. package/fullstacked_modules/components/snackbar.css +54 -1
  20. package/fullstacked_modules/components/snackbar.scss +52 -0
  21. package/fullstacked_modules/sass/index.js +6445 -6464
  22. package/fullstacked_modules/zod/index.cjs +33 -0
  23. package/fullstacked_modules/zod/index.js +4 -0
  24. package/fullstacked_modules/zod/v3/ZodError.cjs +138 -0
  25. package/fullstacked_modules/zod/v3/ZodError.js +133 -0
  26. package/fullstacked_modules/zod/v3/errors.cjs +17 -0
  27. package/fullstacked_modules/zod/v3/errors.js +9 -0
  28. package/fullstacked_modules/zod/v3/external.cjs +22 -0
  29. package/fullstacked_modules/zod/v3/external.js +6 -0
  30. package/fullstacked_modules/zod/v3/helpers/enumUtil.cjs +2 -0
  31. package/fullstacked_modules/zod/v3/helpers/enumUtil.js +1 -0
  32. package/fullstacked_modules/zod/v3/helpers/errorUtil.cjs +9 -0
  33. package/fullstacked_modules/zod/v3/helpers/errorUtil.js +6 -0
  34. package/fullstacked_modules/zod/v3/helpers/parseUtil.cjs +124 -0
  35. package/fullstacked_modules/zod/v3/helpers/parseUtil.js +109 -0
  36. package/fullstacked_modules/zod/v3/helpers/partialUtil.cjs +2 -0
  37. package/fullstacked_modules/zod/v3/helpers/partialUtil.js +1 -0
  38. package/fullstacked_modules/zod/v3/helpers/typeAliases.cjs +2 -0
  39. package/fullstacked_modules/zod/v3/helpers/typeAliases.js +1 -0
  40. package/fullstacked_modules/zod/v3/helpers/util.cjs +137 -0
  41. package/fullstacked_modules/zod/v3/helpers/util.js +133 -0
  42. package/fullstacked_modules/zod/v3/index.cjs +33 -0
  43. package/fullstacked_modules/zod/v3/index.js +4 -0
  44. package/fullstacked_modules/zod/v3/locales/en.cjs +111 -0
  45. package/fullstacked_modules/zod/v3/locales/en.js +109 -0
  46. package/fullstacked_modules/zod/v3/standard-schema.cjs +2 -0
  47. package/fullstacked_modules/zod/v3/standard-schema.js +1 -0
  48. package/fullstacked_modules/zod/v3/types.cjs +3775 -0
  49. package/fullstacked_modules/zod/v3/types.js +3693 -0
  50. package/fullstacked_modules/zod/v4/classic/checks.cjs +32 -0
  51. package/fullstacked_modules/zod/v4/classic/checks.js +1 -0
  52. package/fullstacked_modules/zod/v4/classic/coerce.cjs +47 -0
  53. package/fullstacked_modules/zod/v4/classic/coerce.js +17 -0
  54. package/fullstacked_modules/zod/v4/classic/compat.cjs +57 -0
  55. package/fullstacked_modules/zod/v4/classic/compat.js +27 -0
  56. package/fullstacked_modules/zod/v4/classic/errors.cjs +67 -0
  57. package/fullstacked_modules/zod/v4/classic/errors.js +41 -0
  58. package/fullstacked_modules/zod/v4/classic/external.cjs +70 -0
  59. package/fullstacked_modules/zod/v4/classic/external.js +18 -0
  60. package/fullstacked_modules/zod/v4/classic/index.cjs +33 -0
  61. package/fullstacked_modules/zod/v4/classic/index.js +4 -0
  62. package/fullstacked_modules/zod/v4/classic/iso.cjs +60 -0
  63. package/fullstacked_modules/zod/v4/classic/iso.js +30 -0
  64. package/fullstacked_modules/zod/v4/classic/parse.cjs +32 -0
  65. package/fullstacked_modules/zod/v4/classic/parse.js +6 -0
  66. package/fullstacked_modules/zod/v4/classic/schemas.cjs +1109 -0
  67. package/fullstacked_modules/zod/v4/classic/schemas.js +1006 -0
  68. package/fullstacked_modules/zod/v4/core/api.cjs +1039 -0
  69. package/fullstacked_modules/zod/v4/core/api.js +906 -0
  70. package/fullstacked_modules/zod/v4/core/checks.cjs +591 -0
  71. package/fullstacked_modules/zod/v4/core/checks.js +565 -0
  72. package/fullstacked_modules/zod/v4/core/core.cjs +67 -0
  73. package/fullstacked_modules/zod/v4/core/core.js +61 -0
  74. package/fullstacked_modules/zod/v4/core/doc.cjs +39 -0
  75. package/fullstacked_modules/zod/v4/core/doc.js +35 -0
  76. package/fullstacked_modules/zod/v4/core/errors.cjs +226 -0
  77. package/fullstacked_modules/zod/v4/core/errors.js +195 -0
  78. package/fullstacked_modules/zod/v4/core/function.cjs +102 -0
  79. package/fullstacked_modules/zod/v4/core/function.js +75 -0
  80. package/fullstacked_modules/zod/v4/core/index.cjs +44 -0
  81. package/fullstacked_modules/zod/v4/core/index.js +15 -0
  82. package/fullstacked_modules/zod/v4/core/json-schema.cjs +2 -0
  83. package/fullstacked_modules/zod/v4/core/json-schema.js +1 -0
  84. package/fullstacked_modules/zod/v4/core/parse.cjs +87 -0
  85. package/fullstacked_modules/zod/v4/core/parse.js +57 -0
  86. package/fullstacked_modules/zod/v4/core/regexes.cjs +103 -0
  87. package/fullstacked_modules/zod/v4/core/regexes.js +95 -0
  88. package/fullstacked_modules/zod/v4/core/registries.cjs +56 -0
  89. package/fullstacked_modules/zod/v4/core/registries.js +51 -0
  90. package/fullstacked_modules/zod/v4/core/schemas.cjs +1748 -0
  91. package/fullstacked_modules/zod/v4/core/schemas.js +1717 -0
  92. package/fullstacked_modules/zod/v4/core/standard-schema.cjs +2 -0
  93. package/fullstacked_modules/zod/v4/core/standard-schema.js +1 -0
  94. package/fullstacked_modules/zod/v4/core/to-json-schema.cjs +854 -0
  95. package/fullstacked_modules/zod/v4/core/to-json-schema.js +849 -0
  96. package/fullstacked_modules/zod/v4/core/util.cjs +539 -0
  97. package/fullstacked_modules/zod/v4/core/util.js +493 -0
  98. package/fullstacked_modules/zod/v4/core/versions.cjs +8 -0
  99. package/fullstacked_modules/zod/v4/core/versions.js +5 -0
  100. package/fullstacked_modules/zod/v4/index.cjs +22 -0
  101. package/fullstacked_modules/zod/v4/index.js +3 -0
  102. package/fullstacked_modules/zod/v4/locales/ar.cjs +142 -0
  103. package/fullstacked_modules/zod/v4/locales/ar.js +116 -0
  104. package/fullstacked_modules/zod/v4/locales/az.cjs +141 -0
  105. package/fullstacked_modules/zod/v4/locales/az.js +115 -0
  106. package/fullstacked_modules/zod/v4/locales/be.cjs +190 -0
  107. package/fullstacked_modules/zod/v4/locales/be.js +164 -0
  108. package/fullstacked_modules/zod/v4/locales/ca.cjs +144 -0
  109. package/fullstacked_modules/zod/v4/locales/ca.js +118 -0
  110. package/fullstacked_modules/zod/v4/locales/cs.cjs +161 -0
  111. package/fullstacked_modules/zod/v4/locales/cs.js +135 -0
  112. package/fullstacked_modules/zod/v4/locales/de.cjs +142 -0
  113. package/fullstacked_modules/zod/v4/locales/de.js +116 -0
  114. package/fullstacked_modules/zod/v4/locales/en.cjs +145 -0
  115. package/fullstacked_modules/zod/v4/locales/en.js +117 -0
  116. package/fullstacked_modules/zod/v4/locales/eo.cjs +144 -0
  117. package/fullstacked_modules/zod/v4/locales/eo.js +116 -0
  118. package/fullstacked_modules/zod/v4/locales/es.cjs +143 -0
  119. package/fullstacked_modules/zod/v4/locales/es.js +117 -0
  120. package/fullstacked_modules/zod/v4/locales/fa.cjs +148 -0
  121. package/fullstacked_modules/zod/v4/locales/fa.js +122 -0
  122. package/fullstacked_modules/zod/v4/locales/fi.cjs +148 -0
  123. package/fullstacked_modules/zod/v4/locales/fi.js +122 -0
  124. package/fullstacked_modules/zod/v4/locales/fr-CA.cjs +143 -0
  125. package/fullstacked_modules/zod/v4/locales/fr-CA.js +117 -0
  126. package/fullstacked_modules/zod/v4/locales/fr.cjs +142 -0
  127. package/fullstacked_modules/zod/v4/locales/fr.js +116 -0
  128. package/fullstacked_modules/zod/v4/locales/he.cjs +143 -0
  129. package/fullstacked_modules/zod/v4/locales/he.js +117 -0
  130. package/fullstacked_modules/zod/v4/locales/hu.cjs +143 -0
  131. package/fullstacked_modules/zod/v4/locales/hu.js +117 -0
  132. package/fullstacked_modules/zod/v4/locales/id.cjs +142 -0
  133. package/fullstacked_modules/zod/v4/locales/id.js +116 -0
  134. package/fullstacked_modules/zod/v4/locales/index.cjs +84 -0
  135. package/fullstacked_modules/zod/v4/locales/index.js +39 -0
  136. package/fullstacked_modules/zod/v4/locales/it.cjs +143 -0
  137. package/fullstacked_modules/zod/v4/locales/it.js +117 -0
  138. package/fullstacked_modules/zod/v4/locales/ja.cjs +141 -0
  139. package/fullstacked_modules/zod/v4/locales/ja.js +115 -0
  140. package/fullstacked_modules/zod/v4/locales/kh.cjs +143 -0
  141. package/fullstacked_modules/zod/v4/locales/kh.js +117 -0
  142. package/fullstacked_modules/zod/v4/locales/ko.cjs +147 -0
  143. package/fullstacked_modules/zod/v4/locales/ko.js +121 -0
  144. package/fullstacked_modules/zod/v4/locales/mk.cjs +144 -0
  145. package/fullstacked_modules/zod/v4/locales/mk.js +118 -0
  146. package/fullstacked_modules/zod/v4/locales/ms.cjs +142 -0
  147. package/fullstacked_modules/zod/v4/locales/ms.js +116 -0
  148. package/fullstacked_modules/zod/v4/locales/nl.cjs +143 -0
  149. package/fullstacked_modules/zod/v4/locales/nl.js +117 -0
  150. package/fullstacked_modules/zod/v4/locales/no.cjs +142 -0
  151. package/fullstacked_modules/zod/v4/locales/no.js +116 -0
  152. package/fullstacked_modules/zod/v4/locales/ota.cjs +143 -0
  153. package/fullstacked_modules/zod/v4/locales/ota.js +117 -0
  154. package/fullstacked_modules/zod/v4/locales/pl.cjs +143 -0
  155. package/fullstacked_modules/zod/v4/locales/pl.js +117 -0
  156. package/fullstacked_modules/zod/v4/locales/ps.cjs +148 -0
  157. package/fullstacked_modules/zod/v4/locales/ps.js +122 -0
  158. package/fullstacked_modules/zod/v4/locales/pt.cjs +142 -0
  159. package/fullstacked_modules/zod/v4/locales/pt.js +116 -0
  160. package/fullstacked_modules/zod/v4/locales/ru.cjs +190 -0
  161. package/fullstacked_modules/zod/v4/locales/ru.js +164 -0
  162. package/fullstacked_modules/zod/v4/locales/sl.cjs +143 -0
  163. package/fullstacked_modules/zod/v4/locales/sl.js +117 -0
  164. package/fullstacked_modules/zod/v4/locales/sv.cjs +144 -0
  165. package/fullstacked_modules/zod/v4/locales/sv.js +118 -0
  166. package/fullstacked_modules/zod/v4/locales/ta.cjs +143 -0
  167. package/fullstacked_modules/zod/v4/locales/ta.js +117 -0
  168. package/fullstacked_modules/zod/v4/locales/th.cjs +143 -0
  169. package/fullstacked_modules/zod/v4/locales/th.js +117 -0
  170. package/fullstacked_modules/zod/v4/locales/tr.cjs +143 -0
  171. package/fullstacked_modules/zod/v4/locales/tr.js +115 -0
  172. package/fullstacked_modules/zod/v4/locales/ua.cjs +143 -0
  173. package/fullstacked_modules/zod/v4/locales/ua.js +117 -0
  174. package/fullstacked_modules/zod/v4/locales/ur.cjs +143 -0
  175. package/fullstacked_modules/zod/v4/locales/ur.js +117 -0
  176. package/fullstacked_modules/zod/v4/locales/vi.cjs +142 -0
  177. package/fullstacked_modules/zod/v4/locales/vi.js +116 -0
  178. package/fullstacked_modules/zod/v4/locales/zh-CN.cjs +142 -0
  179. package/fullstacked_modules/zod/v4/locales/zh-CN.js +116 -0
  180. package/fullstacked_modules/zod/v4/locales/zh-TW.cjs +143 -0
  181. package/fullstacked_modules/zod/v4/locales/zh-TW.js +117 -0
  182. package/fullstacked_modules/zod/v4/mini/checks.cjs +34 -0
  183. package/fullstacked_modules/zod/v4/mini/checks.js +1 -0
  184. package/fullstacked_modules/zod/v4/mini/coerce.cjs +47 -0
  185. package/fullstacked_modules/zod/v4/mini/coerce.js +17 -0
  186. package/fullstacked_modules/zod/v4/mini/external.cjs +62 -0
  187. package/fullstacked_modules/zod/v4/mini/external.js +13 -0
  188. package/fullstacked_modules/zod/v4/mini/index.cjs +32 -0
  189. package/fullstacked_modules/zod/v4/mini/index.js +3 -0
  190. package/fullstacked_modules/zod/v4/mini/iso.cjs +60 -0
  191. package/fullstacked_modules/zod/v4/mini/iso.js +30 -0
  192. package/fullstacked_modules/zod/v4/mini/parse.cjs +8 -0
  193. package/fullstacked_modules/zod/v4/mini/parse.js +1 -0
  194. package/fullstacked_modules/zod/v4/mini/schemas.cjs +839 -0
  195. package/fullstacked_modules/zod/v4/mini/schemas.js +732 -0
  196. package/fullstacked_modules/zod/v4-mini/index.cjs +17 -0
  197. package/fullstacked_modules/zod/v4-mini/index.js +1 -0
  198. package/index.js +121 -186
  199. package/package.json +4 -4
  200. package/fullstacked_modules/@fullstacked/ui/README.md +0 -3
  201. package/fullstacked_modules/@fullstacked/ui/components/button-group/button-group.scss +0 -28
  202. package/fullstacked_modules/@fullstacked/ui/components/button-group/index.ts +0 -8
  203. package/fullstacked_modules/@fullstacked/ui/components/dialog/dialog.scss +0 -39
  204. package/fullstacked_modules/@fullstacked/ui/components/dialog/index.ts +0 -17
  205. package/fullstacked_modules/@fullstacked/ui/components/list-item/index.ts +0 -37
  206. package/fullstacked_modules/@fullstacked/ui/components/list-item/list-item.scss +0 -19
  207. package/fullstacked_modules/@fullstacked/ui/components/loader/index.ts +0 -14
  208. package/fullstacked_modules/@fullstacked/ui/components/loader/loader.scss +0 -25
  209. package/fullstacked_modules/@fullstacked/ui/components/message/index.ts +0 -26
  210. package/fullstacked_modules/@fullstacked/ui/components/message/message.scss +0 -20
  211. package/fullstacked_modules/@fullstacked/ui/components/popover/index.ts +0 -114
  212. package/fullstacked_modules/@fullstacked/ui/components/popover/popover.scss +0 -44
  213. package/fullstacked_modules/@fullstacked/ui/globals.scss +0 -66
  214. package/fullstacked_modules/@fullstacked/ui/icons/Archive.svg +0 -3
  215. package/fullstacked_modules/@fullstacked/ui/icons/Arrow 2.svg +0 -3
  216. package/fullstacked_modules/@fullstacked/ui/icons/Arrow Corner.svg +0 -3
  217. package/fullstacked_modules/@fullstacked/ui/icons/Arrow.svg +0 -3
  218. package/fullstacked_modules/@fullstacked/ui/icons/Caret.svg +0 -3
  219. package/fullstacked_modules/@fullstacked/ui/icons/Check.svg +0 -3
  220. package/fullstacked_modules/@fullstacked/ui/icons/Clipboard.svg +0 -12
  221. package/fullstacked_modules/@fullstacked/ui/icons/Clock.svg +0 -12
  222. package/fullstacked_modules/@fullstacked/ui/icons/Close.svg +0 -10
  223. package/fullstacked_modules/@fullstacked/ui/icons/Copy.svg +0 -3
  224. package/fullstacked_modules/@fullstacked/ui/icons/Directory Add.svg +0 -3
  225. package/fullstacked_modules/@fullstacked/ui/icons/Edit.svg +0 -3
  226. package/fullstacked_modules/@fullstacked/ui/icons/Export.svg +0 -3
  227. package/fullstacked_modules/@fullstacked/ui/icons/External Link.svg +0 -3
  228. package/fullstacked_modules/@fullstacked/ui/icons/File Add.svg +0 -3
  229. package/fullstacked_modules/@fullstacked/ui/icons/File.svg +0 -3
  230. package/fullstacked_modules/@fullstacked/ui/icons/Git Branch.svg +0 -3
  231. package/fullstacked_modules/@fullstacked/ui/icons/Git.svg +0 -3
  232. package/fullstacked_modules/@fullstacked/ui/icons/Glitter.svg +0 -3
  233. package/fullstacked_modules/@fullstacked/ui/icons/Info.svg +0 -3
  234. package/fullstacked_modules/@fullstacked/ui/icons/Link.svg +0 -10
  235. package/fullstacked_modules/@fullstacked/ui/icons/Loader.svg +0 -4
  236. package/fullstacked_modules/@fullstacked/ui/icons/Lock.svg +0 -3
  237. package/fullstacked_modules/@fullstacked/ui/icons/Options.svg +0 -3
  238. package/fullstacked_modules/@fullstacked/ui/icons/Package.svg +0 -3
  239. package/fullstacked_modules/@fullstacked/ui/icons/Peers.svg +0 -3
  240. package/fullstacked_modules/@fullstacked/ui/icons/Play.svg +0 -3
  241. package/fullstacked_modules/@fullstacked/ui/icons/Plus.svg +0 -3
  242. package/fullstacked_modules/@fullstacked/ui/icons/Revert.svg +0 -3
  243. package/fullstacked_modules/@fullstacked/ui/icons/Settings.svg +0 -3
  244. package/fullstacked_modules/@fullstacked/ui/icons/Side Panel.svg +0 -3
  245. package/fullstacked_modules/@fullstacked/ui/icons/Terminal.svg +0 -3
  246. package/fullstacked_modules/@fullstacked/ui/icons/Trash.svg +0 -3
  247. package/fullstacked_modules/@fullstacked/ui/icons/TypeScript.svg +0 -3
  248. package/fullstacked_modules/@fullstacked/ui/icons/Upload.svg +0 -3
  249. package/fullstacked_modules/@fullstacked/ui/icons/User.svg +0 -3
  250. package/fullstacked_modules/@fullstacked/ui/icons/Warning.svg +0 -3
  251. package/fullstacked_modules/@fullstacked/ui/inputs/checkbox/index.ts +0 -28
  252. package/fullstacked_modules/@fullstacked/ui/inputs/file/index.ts +0 -48
  253. package/fullstacked_modules/@fullstacked/ui/inputs/inputs.scss +0 -224
  254. package/fullstacked_modules/@fullstacked/ui/inputs/observer.ts +0 -36
  255. package/fullstacked_modules/@fullstacked/ui/inputs/predictive/index.ts +0 -195
  256. package/fullstacked_modules/@fullstacked/ui/inputs/radio/index.ts +0 -28
  257. package/fullstacked_modules/@fullstacked/ui/inputs/select/index.ts +0 -125
  258. package/fullstacked_modules/@fullstacked/ui/inputs/switch/index.ts +0 -37
  259. package/fullstacked_modules/@fullstacked/ui/inputs/text/index.ts +0 -53
  260. package/fullstacked_modules/@fullstacked/ui/package.json +0 -8
  261. package/fullstacked_modules/@fullstacked/ui/primitives/badge/badge.scss +0 -35
  262. package/fullstacked_modules/@fullstacked/ui/primitives/badge/index.ts +0 -23
  263. package/fullstacked_modules/@fullstacked/ui/primitives/button/button.scss +0 -97
  264. package/fullstacked_modules/@fullstacked/ui/primitives/button/index.ts +0 -41
  265. package/fullstacked_modules/@fullstacked/ui/primitives/icon/icon.scss +0 -13
  266. package/fullstacked_modules/@fullstacked/ui/primitives/icon/index.ts +0 -30
  267. package/fullstacked_modules/@fullstacked/ui/ui.scss +0 -15
  268. package/fullstacked_modules/@fullstacked/ui/ui.ts +0 -18
  269. package/fullstacked_modules/@fullstacked/ui/values/breakpoints.scss +0 -7
  270. package/fullstacked_modules/@fullstacked/ui/values/colors.scss +0 -26
  271. package/fullstacked_modules/@fullstacked/ui/values/spacing.scss +0 -10
  272. package/fullstacked_modules/@fullstacked/ui/values/typography.scss +0 -23
  273. package/fullstacked_modules/esbuild/index.d.ts +0 -0
  274. package/fullstacked_modules/esbuild/index.ts +0 -3
  275. package/fullstacked_modules/esbuild/sass.ts +0 -100
  276. package/fullstacked_modules/sass/index.d.ts +0 -0
  277. /package/fullstacked_modules/{@fullstacked → build}/index.d.ts +0 -0
@@ -0,0 +1,66 @@
1
+ import git from "../git";
2
+ import { Button } from "@fullstacked/ui";
3
+ import { SnackBar } from "../components/snackbar";
4
+ import packages from "../packages";
5
+ import build from "../build";
6
+
7
+ let lastUpdateCheck = 0;
8
+ const updateCheckDelay = 1000 * 10; // 10sec;
9
+ let updating = false;
10
+ let disabled = false;
11
+
12
+ export function disableAutoUpdate() {
13
+ disabled = true;
14
+ }
15
+ export function enableAutoUpdate() {
16
+ disabled = false;
17
+ }
18
+
19
+ async function checkForUpdates() {
20
+ window.requestAnimationFrame(checkForUpdates);
21
+
22
+ const now = Date.now();
23
+ if (disabled || now - lastUpdateCheck < updateCheckDelay || updating) {
24
+ return;
25
+ }
26
+
27
+ lastUpdateCheck = now;
28
+
29
+ if ((await git.pull()) !== git.PullResponse.DID_PULL) {
30
+ return;
31
+ }
32
+
33
+ let preventReload = false;
34
+ const preventReloadButton = Button({
35
+ text: "Stop"
36
+ });
37
+ preventReloadButton.onclick = () => {
38
+ preventReload = true;
39
+ snackbar.dismiss();
40
+ };
41
+
42
+ const snackbar = SnackBar({
43
+ message: "Project has updated. Rebuilding...",
44
+ button: preventReloadButton
45
+ });
46
+ console.log("ICICI2");
47
+
48
+ updating = true;
49
+ update().then(() => {
50
+ updating = false;
51
+ snackbar.dismiss();
52
+
53
+ if (preventReload) return;
54
+ window.location.reload();
55
+ });
56
+ }
57
+ if (await git.hasGit()) {
58
+ checkForUpdates();
59
+ }
60
+
61
+ async function update() {
62
+ console.log("ICICI1");
63
+ await packages.installQuick();
64
+ console.log("ICICI");
65
+ return build.buildProject();
66
+ }
@@ -8,14 +8,7 @@ import { BridgeElectron } from "./platform/electron";
8
8
  import { BridgeNode, initCallbackNode } from "./platform/node";
9
9
  import { BridgeWasm } from "./platform/wasm";
10
10
  import { BridgeWindows, initRespondWindows } from "./platform/windows";
11
- import git from "../git";
12
- import esbuild from "../esbuild";
13
- import { SnackBar } from "../components/snackbar";
14
- import { Button } from "@fullstacked/ui";
15
11
  import { serializeArgs } from "./serialization";
16
- import { buildSASS } from "../esbuild/sass";
17
- import fs from "../fs";
18
- import packages from "../packages";
19
12
 
20
13
  export type Bridge = (
21
14
  payload: Uint8Array,
@@ -60,56 +53,6 @@ switch (platform) {
60
53
  console.log("FullStacked");
61
54
  bridge(new Uint8Array([0]));
62
55
 
63
- let lastUpdateCheck = 0;
64
- const updateCheckDelay = 1000 * 10; // 10sec;
65
- let updating = false;
66
- async function checkForUpdates() {
67
- window.requestAnimationFrame(checkForUpdates);
68
-
69
- const now = Date.now();
70
- if (now - lastUpdateCheck < updateCheckDelay || updating) {
71
- return;
72
- }
73
-
74
- lastUpdateCheck = now;
75
-
76
- if ((await git.pull()) !== git.PullResponse.DID_PULL) {
77
- return;
78
- }
79
-
80
- let preventReload = false;
81
- const preventReloadButton = Button({
82
- text: "Stop"
83
- });
84
- preventReloadButton.onclick = () => {
85
- preventReload = true;
86
- snackbar.dismiss();
87
- };
88
-
89
- const snackbar = SnackBar({
90
- message: "Project has updated. Rebuilding...",
91
- button: preventReloadButton
92
- });
93
-
94
- updating = true;
95
- update().then(() => {
96
- updating = false;
97
- snackbar.dismiss();
98
-
99
- if (preventReload) return;
100
- window.location.reload();
101
- });
102
- }
103
- if (await git.hasGit()) {
104
- checkForUpdates();
105
- }
106
-
107
- async function update() {
108
- await packages.installQuick();
109
- await buildSASS(fs);
110
- return esbuild.build();
111
- }
112
-
113
56
  // 40
114
57
  function setTitle(title: string) {
115
58
  const payload = new Uint8Array([40, ...serializeArgs([title])]);
@@ -125,3 +68,5 @@ setInterval(() => {
125
68
  }
126
69
  lastTitleSeen = document.title;
127
70
  }, 500);
71
+
72
+ import("../auto_update");
@@ -1,47 +1,48 @@
1
1
  import { Project } from "../../editor/types";
2
- import { toByteArray } from "../base64";
3
2
  import { bridge } from "../bridge";
4
3
  import {
5
- deserializeArgs,
6
4
  getLowestKeyIdAvailable,
7
5
  serializeArgs
8
6
  } from "../bridge/serialization";
9
7
  import type { Message } from "esbuild";
10
8
  import core_message from "../core_message";
9
+ import { buildSASS } from "./sass";
10
+ import fs from "../fs";
11
11
 
12
- // 55
13
- export function version(): Promise<string> {
14
- const payload = new Uint8Array([55]);
15
- return bridge(payload, ([str]) => str);
16
- }
12
+ core_message.addListener("build-style", async (messageStr) => {
13
+ console.log(messageStr)
14
+ const { id, entryPoint, projectId } = JSON.parse(messageStr);
15
+ const result = await buildSASS(entryPoint, {
16
+ canonicalize: (filePath) => new URL(filePath, "file://"),
17
+ load: (url) => fs.readFile(projectId + url.pathname, { encoding: "utf8" })
18
+ })
19
+ bridge(new Uint8Array([58, ...serializeArgs([id, JSON.stringify(result)])]))
20
+ });
17
21
 
18
- let addedListener = false;
19
22
  const activeBuilds = new Map<
20
23
  number,
21
24
  { project: Project; resolve: (buildErrors: Message[]) => void }
22
25
  >();
23
26
 
24
27
  function buildResponse(buildResult: string) {
25
- const responseData = toByteArray(buildResult);
26
- const [id, errorsStr] = deserializeArgs(responseData);
28
+ const { id, errors } = JSON.parse(buildResult);
27
29
  const activeBuild = activeBuilds.get(id);
28
30
 
29
- if (!errorsStr) {
31
+ if (!errors) {
30
32
  activeBuild.resolve([]);
31
33
  } else {
32
- const errors = JSON.parse(errorsStr);
33
- const messages = errors?.map(uncapitalizeKeys).map((error) => ({
34
+ const messages = errors.map(uncapitalizeKeys).map((error) => ({
34
35
  ...error,
35
36
  location: error.location
36
37
  ? {
37
- ...error.location,
38
- file: error.location.file.includes(activeBuild.project.id)
39
- ? activeBuild.project.id +
40
- error.location.file
41
- .split(activeBuild.project.id)
42
- .pop()
43
- : error.location.file
44
- }
38
+ ...error.location,
39
+ file: error.location.file.includes(activeBuild.project.id)
40
+ ? activeBuild.project.id +
41
+ error.location.file
42
+ .split(activeBuild.project.id)
43
+ .pop()
44
+ : error.location.file
45
+ }
45
46
  : null
46
47
  }));
47
48
  activeBuild.resolve(messages);
@@ -49,21 +50,23 @@ function buildResponse(buildResult: string) {
49
50
 
50
51
  activeBuilds.delete(id);
51
52
  }
53
+ core_message.addListener("build", buildResponse);
52
54
 
53
- // 56
54
- export function build(project?: Project): Promise<Message[]> {
55
- if (!addedListener) {
56
- core_message.addListener("build", buildResponse);
57
- addedListener = true;
58
- }
55
+ // 55
56
+ export function esbuildVersion(): Promise<string> {
57
+ const payload = new Uint8Array([55]);
58
+ return bridge(payload, ([str]) => str);
59
+ }
59
60
 
61
+ // 56
62
+ export function buildProject(project?: Project): Promise<Message[]> {
60
63
  const args: any[] = project ? [project.id] : [];
61
64
 
62
65
  const buildId = getLowestKeyIdAvailable(activeBuilds);
63
66
  args.push(buildId);
64
67
 
65
68
  const payload = new Uint8Array([56, ...serializeArgs(args)]);
66
-
69
+
67
70
  return new Promise((resolve) => {
68
71
  activeBuilds.set(buildId, {
69
72
  project,
@@ -0,0 +1,3 @@
1
+ import * as build from "./build";
2
+ export default build;
3
+ export * from "./build";
@@ -0,0 +1,55 @@
1
+ import * as sass from "sass";
2
+
3
+ export async function buildSASS(
4
+ entryPoint: string,
5
+ opts: {
6
+ canonicalize: (filePath: string) => URL | Promise<URL>;
7
+ load: (url: URL) => string | Promise<string>;
8
+ }
9
+ ) {
10
+ try {
11
+ const { css } = await sass.compileStringAsync(await opts.load(await opts.canonicalize(entryPoint)), {
12
+ syntax: entryPoint.endsWith(".sass")
13
+ ? "indented"
14
+ : entryPoint.endsWith(".scss")
15
+ ? "scss"
16
+ : "css",
17
+ importer: {
18
+ load: async (url) => ({
19
+ syntax: url.pathname.endsWith(".sass")
20
+ ? "indented"
21
+ : url.pathname.endsWith(".scss")
22
+ ? "scss"
23
+ : "css",
24
+ contents: await opts.load(url)
25
+ }),
26
+ canonicalize: opts.canonicalize
27
+ }
28
+ });
29
+ return {
30
+ css,
31
+ errors: []
32
+ };
33
+ } catch (e) {
34
+ console.log(e);
35
+ const File = e.span.url?.pathname;
36
+ const Line = e.span.start.line + 1;
37
+ const Column = e.span.start.column;
38
+ const Length = e.span.text.length;
39
+ return {
40
+ css: "",
41
+ errors: [
42
+ {
43
+ Location: {
44
+ File,
45
+ Line,
46
+ Column,
47
+ Length,
48
+ Namespace: "SASS"
49
+ },
50
+ Text: e.message
51
+ }
52
+ ]
53
+ };
54
+ }
55
+ }
@@ -1 +1,54 @@
1
- .snack-bars-container{display:flex;flex-direction:column;gap:10px;position:fixed;bottom:0;left:0;z-index:100;padding:0 20px 20px;align-items:flex-start;width:100%;pointer-events:none;text-align:left;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:16px;max-width:450px}@media(max-width: 450px){.snack-bars-container{align-items:center}}.snack-bars-container .snack-bar{pointer-events:all;background-color:#404958;border-radius:5px;color:#fff;min-height:42px;max-width:100%;width:max-content;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 10px;box-shadow:0px 4px 10px rgba(21,23,27,.6)}.snack-bars-container .snack-bar>div:first-child{padding:5px 0;width:100%;overflow-wrap:break-word}
1
+ /*
2
+ This file must follow the figma defined spacing components
3
+ https://www.figma.com/design/xb3JBRCvEWpbwGda03T5QQ/Mockups?node-id=6-49
4
+ */
5
+ /*
6
+ This file must follow the figma local color styles
7
+ https://www.figma.com/design/xb3JBRCvEWpbwGda03T5QQ/Mockups
8
+ */
9
+ /*
10
+ This file must follow the figma local text styles
11
+ https://www.figma.com/design/xb3JBRCvEWpbwGda03T5QQ/Mockups
12
+ */
13
+ .snack-bars-container {
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: 10px;
17
+ position: fixed;
18
+ bottom: 0;
19
+ left: 0;
20
+ z-index: 100;
21
+ padding: 0 20px 20px;
22
+ align-items: flex-start;
23
+ width: 100%;
24
+ pointer-events: none;
25
+ text-align: left;
26
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
27
+ font-size: 16px;
28
+ max-width: 450px;
29
+ }
30
+ @media (max-width: 450px) {
31
+ .snack-bars-container {
32
+ align-items: center;
33
+ }
34
+ }
35
+ .snack-bars-container .snack-bar {
36
+ pointer-events: all;
37
+ background-color: #404958;
38
+ border-radius: 5px;
39
+ color: #ffffff;
40
+ min-height: 42px;
41
+ max-width: 100%;
42
+ width: max-content;
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: space-between;
46
+ gap: 10px;
47
+ padding: 5px 10px;
48
+ box-shadow: 0px 4px 10px rgba(21, 23, 27, 0.6);
49
+ }
50
+ .snack-bars-container .snack-bar > div:first-child {
51
+ padding: 5px 0;
52
+ width: 100%;
53
+ overflow-wrap: break-word;
54
+ }
@@ -0,0 +1,52 @@
1
+ @use "../../node_modules/@fullstacked/ui/values/spacing.scss";
2
+ @use "../../node_modules/@fullstacked/ui/values/colors.scss";
3
+ @use "../../node_modules/@fullstacked/ui/values/typography.scss";
4
+
5
+ .snack-bars-container {
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: spacing.$small;
9
+ position: fixed;
10
+ bottom: 0;
11
+ left: 0;
12
+ z-index: 100;
13
+ padding: 0 spacing.$medium spacing.$medium;
14
+ align-items: flex-start;
15
+ width: 100%;
16
+ pointer-events: none;
17
+ text-align: left;
18
+ font-family: typography.$fonts;
19
+ font-size: typography.$medium;
20
+
21
+ max-width: 450px;
22
+ @media (max-width: 450px) {
23
+ align-items: center;
24
+ }
25
+
26
+ .snack-bar {
27
+ pointer-events: all;
28
+
29
+ background-color: colors.$gray-dark;
30
+ border-radius: spacing.$x-small;
31
+ color: colors.$light;
32
+
33
+ min-height: 42px;
34
+ max-width: 100%;
35
+ width: max-content;
36
+
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: space-between;
40
+ gap: spacing.$small;
41
+
42
+ padding: spacing.$x-small spacing.$small;
43
+
44
+ box-shadow: 0px 4px 10px colors.opacity(colors.$dark, 60);
45
+
46
+ > div:first-child {
47
+ padding: spacing.$x-small 0;
48
+ width: 100%;
49
+ overflow-wrap: break-word;
50
+ }
51
+ }
52
+ }