@gtkx/cli 1.0.0 → 1.1.0

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 (449) hide show
  1. package/README.md +1 -1
  2. package/dist/builder.d.ts +1 -1
  3. package/dist/builder.d.ts.map +1 -1
  4. package/dist/builder.js +20 -3
  5. package/dist/builder.js.map +1 -1
  6. package/dist/cli.js +6 -2
  7. package/dist/cli.js.map +1 -1
  8. package/dist/codegen/freshness.js +2 -2
  9. package/dist/codegen/freshness.js.map +1 -1
  10. package/dist/codegen/run-codegen.d.ts +8 -5
  11. package/dist/codegen/run-codegen.d.ts.map +1 -1
  12. package/dist/codegen/run-codegen.js +24 -19
  13. package/dist/codegen/run-codegen.js.map +1 -1
  14. package/dist/codegen/store-resolver.d.ts +1 -1
  15. package/dist/codegen/store-resolver.d.ts.map +1 -1
  16. package/dist/codegen/store-resolver.js.map +1 -1
  17. package/dist/commands/build.d.ts.map +1 -1
  18. package/dist/commands/build.js +5 -6
  19. package/dist/commands/build.js.map +1 -1
  20. package/dist/commands/codegen.d.ts.map +1 -1
  21. package/dist/commands/codegen.js +11 -1
  22. package/dist/commands/codegen.js.map +1 -1
  23. package/dist/commands/deploy.d.ts +22 -0
  24. package/dist/commands/deploy.d.ts.map +1 -0
  25. package/dist/commands/deploy.js +44 -0
  26. package/dist/commands/deploy.js.map +1 -0
  27. package/dist/commands/dev.d.ts.map +1 -1
  28. package/dist/commands/dev.js +4 -4
  29. package/dist/commands/dev.js.map +1 -1
  30. package/dist/commands/docs.d.ts +2 -2
  31. package/dist/commands/docs.d.ts.map +1 -1
  32. package/dist/commands/docs.js +27 -4
  33. package/dist/commands/docs.js.map +1 -1
  34. package/dist/deploy/depends.d.ts +8 -0
  35. package/dist/deploy/depends.d.ts.map +1 -0
  36. package/dist/deploy/depends.js +27 -0
  37. package/dist/deploy/depends.js.map +1 -0
  38. package/dist/deploy/download.d.ts +20 -0
  39. package/dist/deploy/download.d.ts.map +1 -0
  40. package/dist/deploy/download.js +98 -0
  41. package/dist/deploy/download.js.map +1 -0
  42. package/dist/deploy/freedesktop/copyright.d.ts +4 -0
  43. package/dist/deploy/freedesktop/copyright.d.ts.map +1 -0
  44. package/dist/deploy/freedesktop/copyright.js +33 -0
  45. package/dist/deploy/freedesktop/copyright.js.map +1 -0
  46. package/dist/deploy/freedesktop/dbus-service.d.ts +4 -0
  47. package/dist/deploy/freedesktop/dbus-service.d.ts.map +1 -0
  48. package/dist/deploy/freedesktop/dbus-service.js +15 -0
  49. package/dist/deploy/freedesktop/dbus-service.js.map +1 -0
  50. package/dist/deploy/freedesktop/desktop-entry.d.ts +4 -0
  51. package/dist/deploy/freedesktop/desktop-entry.d.ts.map +1 -0
  52. package/dist/deploy/freedesktop/desktop-entry.js +73 -0
  53. package/dist/deploy/freedesktop/desktop-entry.js.map +1 -0
  54. package/dist/deploy/freedesktop/ini.d.ts +7 -0
  55. package/dist/deploy/freedesktop/ini.d.ts.map +1 -0
  56. package/dist/deploy/freedesktop/ini.js +22 -0
  57. package/dist/deploy/freedesktop/ini.js.map +1 -0
  58. package/dist/deploy/freedesktop/metainfo-sections.d.ts +13 -0
  59. package/dist/deploy/freedesktop/metainfo-sections.d.ts.map +1 -0
  60. package/dist/deploy/freedesktop/metainfo-sections.js +73 -0
  61. package/dist/deploy/freedesktop/metainfo-sections.js.map +1 -0
  62. package/dist/deploy/freedesktop/metainfo.d.ts +4 -0
  63. package/dist/deploy/freedesktop/metainfo.d.ts.map +1 -0
  64. package/dist/deploy/freedesktop/metainfo.js +29 -0
  65. package/dist/deploy/freedesktop/metainfo.js.map +1 -0
  66. package/dist/deploy/freedesktop/mime-package.d.ts +4 -0
  67. package/dist/deploy/freedesktop/mime-package.d.ts.map +1 -0
  68. package/dist/deploy/freedesktop/mime-package.js +16 -0
  69. package/dist/deploy/freedesktop/mime-package.js.map +1 -0
  70. package/dist/deploy/freedesktop/validate.d.ts +4 -0
  71. package/dist/deploy/freedesktop/validate.d.ts.map +1 -0
  72. package/dist/deploy/freedesktop/validate.js +81 -0
  73. package/dist/deploy/freedesktop/validate.js.map +1 -0
  74. package/dist/deploy/freedesktop/xml.d.ts +11 -0
  75. package/dist/deploy/freedesktop/xml.d.ts.map +1 -0
  76. package/dist/deploy/freedesktop/xml.js +33 -0
  77. package/dist/deploy/freedesktop/xml.js.map +1 -0
  78. package/dist/deploy/git.d.ts +4 -0
  79. package/dist/deploy/git.d.ts.map +1 -0
  80. package/dist/deploy/git.js +17 -0
  81. package/dist/deploy/git.js.map +1 -0
  82. package/dist/deploy/install-hints.d.ts +5 -0
  83. package/dist/deploy/install-hints.d.ts.map +1 -0
  84. package/dist/deploy/install-hints.js +85 -0
  85. package/dist/deploy/install-hints.js.map +1 -0
  86. package/dist/deploy/nfpm/config.d.ts +8 -0
  87. package/dist/deploy/nfpm/config.d.ts.map +1 -0
  88. package/dist/deploy/nfpm/config.js +119 -0
  89. package/dist/deploy/nfpm/config.js.map +1 -0
  90. package/dist/deploy/nfpm/contents.d.ts +12 -0
  91. package/dist/deploy/nfpm/contents.d.ts.map +1 -0
  92. package/dist/deploy/nfpm/contents.js +48 -0
  93. package/dist/deploy/nfpm/contents.js.map +1 -0
  94. package/dist/deploy/nfpm/description.d.ts +5 -0
  95. package/dist/deploy/nfpm/description.d.ts.map +1 -0
  96. package/dist/deploy/nfpm/description.js +5 -0
  97. package/dist/deploy/nfpm/description.js.map +1 -0
  98. package/dist/deploy/nfpm/optional.d.ts +5 -0
  99. package/dist/deploy/nfpm/optional.d.ts.map +1 -0
  100. package/dist/deploy/nfpm/optional.js +4 -0
  101. package/dist/deploy/nfpm/optional.js.map +1 -0
  102. package/dist/deploy/nfpm/pack.d.ts +5 -0
  103. package/dist/deploy/nfpm/pack.d.ts.map +1 -0
  104. package/dist/deploy/nfpm/pack.js +32 -0
  105. package/dist/deploy/nfpm/pack.js.map +1 -0
  106. package/dist/deploy/node-runtime/download.d.ts +3 -0
  107. package/dist/deploy/node-runtime/download.d.ts.map +1 -0
  108. package/dist/deploy/node-runtime/download.js +39 -0
  109. package/dist/deploy/node-runtime/download.js.map +1 -0
  110. package/dist/deploy/node-runtime/elf.d.ts +7 -0
  111. package/dist/deploy/node-runtime/elf.d.ts.map +1 -0
  112. package/dist/deploy/node-runtime/elf.js +100 -0
  113. package/dist/deploy/node-runtime/elf.js.map +1 -0
  114. package/dist/deploy/node-runtime/guard.d.ts +4 -0
  115. package/dist/deploy/node-runtime/guard.d.ts.map +1 -0
  116. package/dist/deploy/node-runtime/guard.js +22 -0
  117. package/dist/deploy/node-runtime/guard.js.map +1 -0
  118. package/dist/deploy/node-runtime/index.d.ts +4 -0
  119. package/dist/deploy/node-runtime/index.d.ts.map +1 -0
  120. package/dist/deploy/node-runtime/index.js +61 -0
  121. package/dist/deploy/node-runtime/index.js.map +1 -0
  122. package/dist/deploy/payload/copy-tree.d.ts +7 -0
  123. package/dist/deploy/payload/copy-tree.d.ts.map +1 -0
  124. package/dist/deploy/payload/copy-tree.js +36 -0
  125. package/dist/deploy/payload/copy-tree.js.map +1 -0
  126. package/dist/deploy/payload/icons.d.ts +6 -0
  127. package/dist/deploy/payload/icons.d.ts.map +1 -0
  128. package/dist/deploy/payload/icons.js +53 -0
  129. package/dist/deploy/payload/icons.js.map +1 -0
  130. package/dist/deploy/payload/launcher.d.ts +5 -0
  131. package/dist/deploy/payload/launcher.d.ts.map +1 -0
  132. package/dist/deploy/payload/launcher.js +22 -0
  133. package/dist/deploy/payload/launcher.js.map +1 -0
  134. package/dist/deploy/payload/schemas.d.ts +4 -0
  135. package/dist/deploy/payload/schemas.d.ts.map +1 -0
  136. package/dist/deploy/payload/schemas.js +17 -0
  137. package/dist/deploy/payload/schemas.js.map +1 -0
  138. package/dist/deploy/payload/stage.d.ts +15 -0
  139. package/dist/deploy/payload/stage.d.ts.map +1 -0
  140. package/dist/deploy/payload/stage.js +100 -0
  141. package/dist/deploy/payload/stage.js.map +1 -0
  142. package/dist/deploy/registry.d.ts +7 -0
  143. package/dist/deploy/registry.d.ts.map +1 -0
  144. package/dist/deploy/registry.js +30 -0
  145. package/dist/deploy/registry.js.map +1 -0
  146. package/dist/deploy/run-deploy.d.ts +11 -0
  147. package/dist/deploy/run-deploy.d.ts.map +1 -0
  148. package/dist/deploy/run-deploy.js +153 -0
  149. package/dist/deploy/run-deploy.js.map +1 -0
  150. package/dist/deploy/settings/arch.d.ts +4 -0
  151. package/dist/deploy/settings/arch.d.ts.map +1 -0
  152. package/dist/deploy/settings/arch.js +13 -0
  153. package/dist/deploy/settings/arch.js.map +1 -0
  154. package/dist/deploy/settings/categories.d.ts +4 -0
  155. package/dist/deploy/settings/categories.d.ts.map +1 -0
  156. package/dist/deploy/settings/categories.js +29 -0
  157. package/dist/deploy/settings/categories.js.map +1 -0
  158. package/dist/deploy/settings/exec.d.ts +6 -0
  159. package/dist/deploy/settings/exec.d.ts.map +1 -0
  160. package/dist/deploy/settings/exec.js +20 -0
  161. package/dist/deploy/settings/exec.js.map +1 -0
  162. package/dist/deploy/settings/identity.d.ts +18 -0
  163. package/dist/deploy/settings/identity.d.ts.map +1 -0
  164. package/dist/deploy/settings/identity.js +73 -0
  165. package/dist/deploy/settings/identity.js.map +1 -0
  166. package/dist/deploy/settings/index.d.ts +11 -0
  167. package/dist/deploy/settings/index.d.ts.map +1 -0
  168. package/dist/deploy/settings/index.js +103 -0
  169. package/dist/deploy/settings/index.js.map +1 -0
  170. package/dist/deploy/settings/package-manifest.d.ts +15 -0
  171. package/dist/deploy/settings/package-manifest.d.ts.map +1 -0
  172. package/dist/deploy/settings/package-manifest.js +41 -0
  173. package/dist/deploy/settings/package-manifest.js.map +1 -0
  174. package/dist/deploy/settings/paths.d.ts +9 -0
  175. package/dist/deploy/settings/paths.d.ts.map +1 -0
  176. package/dist/deploy/settings/paths.js +82 -0
  177. package/dist/deploy/settings/paths.js.map +1 -0
  178. package/dist/deploy/settings/screenshots.d.ts +8 -0
  179. package/dist/deploy/settings/screenshots.d.ts.map +1 -0
  180. package/dist/deploy/settings/screenshots.js +79 -0
  181. package/dist/deploy/settings/screenshots.js.map +1 -0
  182. package/dist/deploy/settings/starter.d.ts +4 -0
  183. package/dist/deploy/settings/starter.d.ts.map +1 -0
  184. package/dist/deploy/settings/starter.js +28 -0
  185. package/dist/deploy/settings/starter.js.map +1 -0
  186. package/dist/deploy/settings/version.d.ts +9 -0
  187. package/dist/deploy/settings/version.d.ts.map +1 -0
  188. package/dist/deploy/settings/version.js +37 -0
  189. package/dist/deploy/settings/version.js.map +1 -0
  190. package/dist/deploy/targets/appimage.d.ts +4 -0
  191. package/dist/deploy/targets/appimage.d.ts.map +1 -0
  192. package/dist/deploy/targets/appimage.js +105 -0
  193. package/dist/deploy/targets/appimage.js.map +1 -0
  194. package/dist/deploy/targets/deb.d.ts +4 -0
  195. package/dist/deploy/targets/deb.d.ts.map +1 -0
  196. package/dist/deploy/targets/deb.js +4 -0
  197. package/dist/deploy/targets/deb.js.map +1 -0
  198. package/dist/deploy/targets/flatpak-manifest.d.ts +6 -0
  199. package/dist/deploy/targets/flatpak-manifest.d.ts.map +1 -0
  200. package/dist/deploy/targets/flatpak-manifest.js +48 -0
  201. package/dist/deploy/targets/flatpak-manifest.js.map +1 -0
  202. package/dist/deploy/targets/flatpak-prebuilt.d.ts +8 -0
  203. package/dist/deploy/targets/flatpak-prebuilt.d.ts.map +1 -0
  204. package/dist/deploy/targets/flatpak-prebuilt.js +43 -0
  205. package/dist/deploy/targets/flatpak-prebuilt.js.map +1 -0
  206. package/dist/deploy/targets/flatpak-source.d.ts +5 -0
  207. package/dist/deploy/targets/flatpak-source.d.ts.map +1 -0
  208. package/dist/deploy/targets/flatpak-source.js +110 -0
  209. package/dist/deploy/targets/flatpak-source.js.map +1 -0
  210. package/dist/deploy/targets/flatpak-sources.d.ts +17 -0
  211. package/dist/deploy/targets/flatpak-sources.d.ts.map +1 -0
  212. package/dist/deploy/targets/flatpak-sources.js +108 -0
  213. package/dist/deploy/targets/flatpak-sources.js.map +1 -0
  214. package/dist/deploy/targets/flatpak.d.ts +4 -0
  215. package/dist/deploy/targets/flatpak.d.ts.map +1 -0
  216. package/dist/deploy/targets/flatpak.js +112 -0
  217. package/dist/deploy/targets/flatpak.js.map +1 -0
  218. package/dist/deploy/targets/nfpm-target.d.ts +5 -0
  219. package/dist/deploy/targets/nfpm-target.d.ts.map +1 -0
  220. package/dist/deploy/targets/nfpm-target.js +26 -0
  221. package/dist/deploy/targets/nfpm-target.js.map +1 -0
  222. package/dist/deploy/targets/rpm.d.ts +4 -0
  223. package/dist/deploy/targets/rpm.d.ts.map +1 -0
  224. package/dist/deploy/targets/rpm.js +4 -0
  225. package/dist/deploy/targets/rpm.js.map +1 -0
  226. package/dist/deploy/tools.d.ts +18 -0
  227. package/dist/deploy/tools.d.ts.map +1 -0
  228. package/dist/deploy/tools.js +92 -0
  229. package/dist/deploy/tools.js.map +1 -0
  230. package/dist/deploy/types.d.ts +140 -0
  231. package/dist/deploy/types.d.ts.map +1 -0
  232. package/dist/deploy/types.js +2 -0
  233. package/dist/deploy/types.js.map +1 -0
  234. package/dist/deploy/vendored/appimagetool.d.ts +7 -0
  235. package/dist/deploy/vendored/appimagetool.d.ts.map +1 -0
  236. package/dist/deploy/vendored/appimagetool.js +42 -0
  237. package/dist/deploy/vendored/appimagetool.js.map +1 -0
  238. package/dist/deploy/vendored/nfpm.d.ts +3 -0
  239. package/dist/deploy/vendored/nfpm.d.ts.map +1 -0
  240. package/dist/deploy/vendored/nfpm.js +60 -0
  241. package/dist/deploy/vendored/nfpm.js.map +1 -0
  242. package/dist/dev/change-queue.d.ts +11 -0
  243. package/dist/dev/change-queue.d.ts.map +1 -0
  244. package/dist/dev/change-queue.js +34 -0
  245. package/dist/dev/change-queue.js.map +1 -0
  246. package/dist/dev/failure-tracker.d.ts +10 -0
  247. package/dist/dev/failure-tracker.d.ts.map +1 -0
  248. package/dist/dev/failure-tracker.js +61 -0
  249. package/dist/dev/failure-tracker.js.map +1 -0
  250. package/dist/dev/missing-import.d.ts +4 -0
  251. package/dist/dev/missing-import.d.ts.map +1 -0
  252. package/dist/dev/missing-import.js +23 -0
  253. package/dist/dev/missing-import.js.map +1 -0
  254. package/dist/dev/runner-deps.d.ts.map +1 -1
  255. package/dist/dev/runner-deps.js +25 -6
  256. package/dist/dev/runner-deps.js.map +1 -1
  257. package/dist/dev/runner.d.ts +8 -4
  258. package/dist/dev/runner.d.ts.map +1 -1
  259. package/dist/dev/runner.js +334 -66
  260. package/dist/dev/runner.js.map +1 -1
  261. package/dist/dev/supervisor.d.ts +1 -2
  262. package/dist/dev/supervisor.d.ts.map +1 -1
  263. package/dist/dev/supervisor.js +1 -1
  264. package/dist/dev/supervisor.js.map +1 -1
  265. package/dist/dev/vite-dev-server.d.ts +13 -2
  266. package/dist/dev/vite-dev-server.d.ts.map +1 -1
  267. package/dist/dev/vite-dev-server.js +30 -2
  268. package/dist/dev/vite-dev-server.js.map +1 -1
  269. package/dist/internal/entry-arg.d.ts +1 -7
  270. package/dist/internal/entry-arg.d.ts.map +1 -1
  271. package/dist/internal/entry-arg.js +18 -11
  272. package/dist/internal/entry-arg.js.map +1 -1
  273. package/dist/internal/module-loads.d.ts +7 -0
  274. package/dist/internal/module-loads.d.ts.map +1 -0
  275. package/dist/internal/module-loads.js +21 -0
  276. package/dist/internal/module-loads.js.map +1 -0
  277. package/dist/internal/prepare-project.d.ts +16 -0
  278. package/dist/internal/prepare-project.d.ts.map +1 -0
  279. package/dist/internal/prepare-project.js +15 -0
  280. package/dist/internal/prepare-project.js.map +1 -0
  281. package/dist/internal/run-cli-tool.d.ts +2 -1
  282. package/dist/internal/run-cli-tool.d.ts.map +1 -1
  283. package/dist/internal/run-cli-tool.js +15 -6
  284. package/dist/internal/run-cli-tool.js.map +1 -1
  285. package/dist/internal/staging-dir.d.ts +8 -1
  286. package/dist/internal/staging-dir.d.ts.map +1 -1
  287. package/dist/internal/staging-dir.js +38 -2
  288. package/dist/internal/staging-dir.js.map +1 -1
  289. package/dist/mcp/serialize-widget.d.ts +2 -1
  290. package/dist/mcp/serialize-widget.d.ts.map +1 -1
  291. package/dist/mcp/serialize-widget.js +1 -1
  292. package/dist/mcp/serialize-widget.js.map +1 -1
  293. package/dist/mcp/testing-loader.d.ts +5 -2
  294. package/dist/mcp/testing-loader.d.ts.map +1 -1
  295. package/dist/mcp/testing-loader.js +7 -3
  296. package/dist/mcp/testing-loader.js.map +1 -1
  297. package/dist/refresh-runtime.d.ts +2 -1
  298. package/dist/refresh-runtime.d.ts.map +1 -1
  299. package/dist/refresh-runtime.js +32 -2
  300. package/dist/refresh-runtime.js.map +1 -1
  301. package/dist/settings/schema.d.ts +1 -2
  302. package/dist/settings/schema.d.ts.map +1 -1
  303. package/dist/settings/schema.js +1 -1
  304. package/dist/settings/schema.js.map +1 -1
  305. package/dist/vite-plugins/asset-extensions.d.ts +2 -1
  306. package/dist/vite-plugins/asset-extensions.d.ts.map +1 -1
  307. package/dist/vite-plugins/asset-extensions.js +2 -1
  308. package/dist/vite-plugins/asset-extensions.js.map +1 -1
  309. package/dist/vite-plugins/asset-imports.d.ts +4 -0
  310. package/dist/vite-plugins/asset-imports.d.ts.map +1 -0
  311. package/dist/vite-plugins/asset-imports.js +88 -0
  312. package/dist/vite-plugins/asset-imports.js.map +1 -0
  313. package/dist/vite-plugins/asset-specifier.d.ts +5 -0
  314. package/dist/vite-plugins/asset-specifier.d.ts.map +1 -0
  315. package/dist/vite-plugins/asset-specifier.js +7 -0
  316. package/dist/vite-plugins/asset-specifier.js.map +1 -0
  317. package/dist/vite-plugins/esm-extension.d.ts +4 -0
  318. package/dist/vite-plugins/esm-extension.d.ts.map +1 -0
  319. package/dist/vite-plugins/esm-extension.js +4 -0
  320. package/dist/vite-plugins/esm-extension.js.map +1 -0
  321. package/dist/vite-plugins/fast-refresh/swc-refresh.d.ts +1 -3
  322. package/dist/vite-plugins/fast-refresh/swc-refresh.d.ts.map +1 -1
  323. package/dist/vite-plugins/fast-refresh/swc-refresh.js +1 -1
  324. package/dist/vite-plugins/fast-refresh/swc-refresh.js.map +1 -1
  325. package/dist/vite-plugins/index.d.ts.map +1 -1
  326. package/dist/vite-plugins/index.js +4 -0
  327. package/dist/vite-plugins/index.js.map +1 -1
  328. package/dist/vite-plugins/resource-shared.d.ts +2 -1
  329. package/dist/vite-plugins/resource-shared.d.ts.map +1 -1
  330. package/dist/vite-plugins/resource-shared.js +2 -1
  331. package/dist/vite-plugins/resource-shared.js.map +1 -1
  332. package/dist/vite-plugins/resources.d.ts.map +1 -1
  333. package/dist/vite-plugins/resources.js +30 -29
  334. package/dist/vite-plugins/resources.js.map +1 -1
  335. package/dist/vite-plugins/self-contained.d.ts +4 -0
  336. package/dist/vite-plugins/self-contained.d.ts.map +1 -0
  337. package/dist/vite-plugins/self-contained.js +244 -0
  338. package/dist/vite-plugins/self-contained.js.map +1 -0
  339. package/dist/vite-plugins/settings.d.ts.map +1 -1
  340. package/dist/vite-plugins/settings.js +19 -40
  341. package/dist/vite-plugins/settings.js.map +1 -1
  342. package/dist/vite-plugins/store-links.d.ts +4 -0
  343. package/dist/vite-plugins/store-links.d.ts.map +1 -0
  344. package/dist/vite-plugins/store-links.js +19 -0
  345. package/dist/vite-plugins/store-links.js.map +1 -0
  346. package/dist/vite-plugins/undeclared-library.d.ts.map +1 -1
  347. package/dist/vite-plugins/undeclared-library.js +51 -12
  348. package/dist/vite-plugins/undeclared-library.js.map +1 -1
  349. package/dist/vite-plugins/worker.d.ts.map +1 -1
  350. package/dist/vite-plugins/worker.js +3 -1
  351. package/dist/vite-plugins/worker.js.map +1 -1
  352. package/env.d.ts +106 -25
  353. package/package.json +20 -13
  354. package/src/builder.ts +22 -4
  355. package/src/cli.ts +7 -2
  356. package/src/codegen/freshness.ts +2 -2
  357. package/src/codegen/run-codegen.ts +37 -23
  358. package/src/codegen/store-resolver.ts +1 -1
  359. package/src/commands/build.ts +5 -6
  360. package/src/commands/codegen.ts +14 -1
  361. package/src/commands/deploy.ts +47 -0
  362. package/src/commands/dev.ts +4 -4
  363. package/src/commands/docs.ts +39 -4
  364. package/src/deploy/depends.ts +42 -0
  365. package/src/deploy/download.ts +148 -0
  366. package/src/deploy/freedesktop/copyright.ts +41 -0
  367. package/src/deploy/freedesktop/dbus-service.ts +19 -0
  368. package/src/deploy/freedesktop/desktop-entry.ts +102 -0
  369. package/src/deploy/freedesktop/ini.ts +39 -0
  370. package/src/deploy/freedesktop/metainfo-sections.ts +116 -0
  371. package/src/deploy/freedesktop/metainfo.ts +46 -0
  372. package/src/deploy/freedesktop/mime-package.ts +28 -0
  373. package/src/deploy/freedesktop/validate.ts +124 -0
  374. package/src/deploy/freedesktop/xml.ts +53 -0
  375. package/src/deploy/git.ts +20 -0
  376. package/src/deploy/install-hints.ts +108 -0
  377. package/src/deploy/nfpm/config.ts +153 -0
  378. package/src/deploy/nfpm/contents.ts +69 -0
  379. package/src/deploy/nfpm/description.ts +11 -0
  380. package/src/deploy/nfpm/optional.ts +8 -0
  381. package/src/deploy/nfpm/pack.ts +44 -0
  382. package/src/deploy/node-runtime/download.ts +48 -0
  383. package/src/deploy/node-runtime/elf.ts +145 -0
  384. package/src/deploy/node-runtime/guard.ts +29 -0
  385. package/src/deploy/node-runtime/index.ts +80 -0
  386. package/src/deploy/payload/copy-tree.ts +51 -0
  387. package/src/deploy/payload/icons.ts +80 -0
  388. package/src/deploy/payload/launcher.ts +27 -0
  389. package/src/deploy/payload/schemas.ts +27 -0
  390. package/src/deploy/payload/stage.ts +145 -0
  391. package/src/deploy/registry.ts +40 -0
  392. package/src/deploy/run-deploy.ts +235 -0
  393. package/src/deploy/settings/arch.ts +18 -0
  394. package/src/deploy/settings/categories.ts +39 -0
  395. package/src/deploy/settings/exec.ts +29 -0
  396. package/src/deploy/settings/identity.ts +133 -0
  397. package/src/deploy/settings/index.ts +189 -0
  398. package/src/deploy/settings/package-manifest.ts +66 -0
  399. package/src/deploy/settings/paths.ts +115 -0
  400. package/src/deploy/settings/screenshots.ts +125 -0
  401. package/src/deploy/settings/starter.ts +41 -0
  402. package/src/deploy/settings/version.ts +59 -0
  403. package/src/deploy/targets/appimage.ts +140 -0
  404. package/src/deploy/targets/deb.ts +6 -0
  405. package/src/deploy/targets/flatpak-manifest.ts +61 -0
  406. package/src/deploy/targets/flatpak-prebuilt.ts +59 -0
  407. package/src/deploy/targets/flatpak-source.ts +168 -0
  408. package/src/deploy/targets/flatpak-sources.ts +171 -0
  409. package/src/deploy/targets/flatpak.ts +143 -0
  410. package/src/deploy/targets/nfpm-target.ts +33 -0
  411. package/src/deploy/targets/rpm.ts +6 -0
  412. package/src/deploy/tools.ts +135 -0
  413. package/src/deploy/types.ts +174 -0
  414. package/src/deploy/vendored/appimagetool.ts +57 -0
  415. package/src/deploy/vendored/nfpm.ts +79 -0
  416. package/src/dev/change-queue.ts +59 -0
  417. package/src/dev/failure-tracker.ts +92 -0
  418. package/src/dev/missing-import.ts +32 -0
  419. package/src/dev/runner-deps.ts +34 -6
  420. package/src/dev/runner.ts +506 -102
  421. package/src/dev/supervisor.ts +0 -3
  422. package/src/dev/vite-dev-server.ts +54 -3
  423. package/src/internal/entry-arg.ts +25 -11
  424. package/src/internal/module-loads.ts +32 -0
  425. package/src/internal/prepare-project.ts +23 -0
  426. package/src/internal/run-cli-tool.ts +22 -6
  427. package/src/internal/staging-dir.ts +57 -2
  428. package/src/mcp/serialize-widget.ts +3 -2
  429. package/src/mcp/testing-loader.ts +19 -4
  430. package/src/refresh-runtime.ts +48 -2
  431. package/src/settings/schema.ts +0 -1
  432. package/src/vite-plugins/asset-extensions.ts +2 -1
  433. package/src/vite-plugins/asset-imports.ts +134 -0
  434. package/src/vite-plugins/asset-specifier.ts +9 -0
  435. package/src/vite-plugins/esm-extension.ts +4 -0
  436. package/src/vite-plugins/fast-refresh/swc-refresh.ts +1 -1
  437. package/src/vite-plugins/index.ts +4 -0
  438. package/src/vite-plugins/resource-shared.ts +2 -0
  439. package/src/vite-plugins/resources.ts +33 -33
  440. package/src/vite-plugins/self-contained.ts +352 -0
  441. package/src/vite-plugins/settings.ts +21 -48
  442. package/src/vite-plugins/store-links.ts +25 -0
  443. package/src/vite-plugins/undeclared-library.ts +74 -12
  444. package/src/vite-plugins/worker.ts +4 -1
  445. package/dist/internal.d.ts +0 -3
  446. package/dist/internal.d.ts.map +0 -1
  447. package/dist/internal.js +0 -3
  448. package/dist/internal.js.map +0 -1
  449. package/src/internal.ts +0 -2
package/README.md CHANGED
@@ -161,7 +161,7 @@ Explore the [example apps](https://github.com/gtkx-org/gtkx/tree/main/examples):
161
161
 
162
162
  ## Status
163
163
 
164
- GTKX 1.0 is released.
164
+ GTKX is stable and ready for production use.
165
165
 
166
166
  ## Contributing
167
167
 
package/dist/builder.d.ts CHANGED
@@ -4,6 +4,6 @@ type BuildOptions = {
4
4
  assetBase?: string | undefined;
5
5
  vite?: InlineConfig | undefined;
6
6
  };
7
- declare const build: (options: BuildOptions) => Promise<void>;
7
+ declare const build: (options: BuildOptions) => Promise<string>;
8
8
  export { build };
9
9
  //# sourceMappingURL=builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAmC,MAAM,MAAM,CAAC;AAM1E,KAAK,YAAY,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC,CAAC;AAgBF,QAAA,MAAM,KAAK,GAAU,SAAS,YAAY,KAAG,OAAO,CAAC,IAAI,CAmBxD,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAmC,MAAM,MAAM,CAAC;AAQ1E,KAAK,YAAY,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC,CAAC;AAoBF,QAAA,MAAM,KAAK,GAAU,SAAS,YAAY,KAAG,OAAO,CAAC,MAAM,CA8B1D,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC"}
package/dist/builder.js CHANGED
@@ -1,13 +1,20 @@
1
+ import { join, posix } from "node:path";
1
2
  import { mergeConfig, build as viteBuild } from "vite";
2
3
  import { gtkxBuiltUrl } from "./vite-plugins/built-url.js";
4
+ import { BUNDLE_FILENAME, ESM_EXTENSION } from "./vite-plugins/esm-extension.js";
3
5
  import { gtkxVitePlugins } from "./vite-plugins/index.js";
4
6
  import { gtkxNative } from "./vite-plugins/native.js";
7
+ import { gtkxSelfContained } from "./vite-plugins/self-contained.js";
5
8
  import { gtkxWorker } from "./vite-plugins/worker.js";
6
9
  const BUILD_MODE = "production";
10
+ const CHUNK_STEM = "[name]-[hash]";
11
+ const DEFAULT_OUT_DIR = "dist";
12
+ const DEFAULT_ASSETS_DIR = "assets";
13
+ const ENTRY_FILE_NAMES = BUNDLE_FILENAME;
7
14
  const buildDefaults = {
8
15
  build: {
9
16
  ssrEmitAssets: true,
10
- outDir: "dist",
17
+ outDir: DEFAULT_OUT_DIR,
11
18
  minify: true,
12
19
  cssMinify: false,
13
20
  },
@@ -18,20 +25,30 @@ const buildDefaults = {
18
25
  const build = async (options) => {
19
26
  const { entry, assetBase, vite: viteConfig } = options;
20
27
  const root = viteConfig?.root ?? process.cwd();
28
+ const assetsDir = viteConfig?.build?.assetsDir ?? DEFAULT_ASSETS_DIR;
21
29
  const forced = {
22
- plugins: [...gtkxVitePlugins(BUILD_MODE), gtkxWorker(), gtkxBuiltUrl(assetBase), gtkxNative(root)],
30
+ plugins: [
31
+ ...gtkxVitePlugins(BUILD_MODE),
32
+ gtkxWorker(),
33
+ gtkxBuiltUrl(assetBase),
34
+ gtkxNative(root),
35
+ gtkxSelfContained(),
36
+ ],
23
37
  build: {
24
38
  ssr: entry,
25
39
  assetsInlineLimit: 0,
26
40
  rolldownOptions: {
27
41
  output: {
28
- entryFileNames: "bundle.js",
42
+ entryFileNames: ENTRY_FILE_NAMES,
43
+ chunkFileNames: posix.join(assetsDir, CHUNK_STEM + ESM_EXTENSION),
44
+ keepNames: true,
29
45
  },
30
46
  },
31
47
  },
32
48
  };
33
49
  const merged = mergeConfig(mergeConfig(buildDefaults, viteConfig ?? {}), forced);
34
50
  await viteBuild({ ...merged, ssr: { ...merged.ssr, noExternal: true } });
51
+ return join(merged.build?.outDir ?? DEFAULT_OUT_DIR, ENTRY_FILE_NAMES);
35
52
  };
36
53
  export { build };
37
54
  //# sourceMappingURL=builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,WAAW,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAQtD,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,aAAa,GAAiB;IAChC,KAAK,EAAE;QACH,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,KAAK;KACnB;IACD,MAAM,EAAE;QACJ,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;KACrD;CACJ,CAAC;AAEF,MAAM,KAAK,GAAG,KAAK,EAAE,OAAqB,EAAiB,EAAE;IACzD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,IAAI,GAAG,UAAU,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAE/C,MAAM,MAAM,GAAiB;QACzB,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAClG,KAAK,EAAE;YACH,GAAG,EAAE,KAAK;YACV,iBAAiB,EAAE,CAAC;YACpB,eAAe,EAAE;gBACb,MAAM,EAAE;oBACJ,cAAc,EAAE,WAAW;iBAC9B;aACJ;SACJ;KACJ,CAAC;IAEF,MAAM,MAAM,GAAiB,WAAW,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/F,MAAM,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC","sourcesContent":["import { type InlineConfig, mergeConfig, build as viteBuild } from \"vite\";\nimport { gtkxBuiltUrl } from \"./vite-plugins/built-url.js\";\nimport { gtkxVitePlugins } from \"./vite-plugins/index.js\";\nimport { gtkxNative } from \"./vite-plugins/native.js\";\nimport { gtkxWorker } from \"./vite-plugins/worker.js\";\n\ntype BuildOptions = {\n entry: string;\n assetBase?: string | undefined;\n vite?: InlineConfig | undefined;\n};\n\nconst BUILD_MODE = \"production\";\n\nconst buildDefaults: InlineConfig = {\n build: {\n ssrEmitAssets: true,\n outDir: \"dist\",\n minify: true,\n cssMinify: false,\n },\n define: {\n \"process.env.NODE_ENV\": JSON.stringify(BUILD_MODE),\n },\n};\n\nconst build = async (options: BuildOptions): Promise<void> => {\n const { entry, assetBase, vite: viteConfig } = options;\n const root = viteConfig?.root ?? process.cwd();\n\n const forced: InlineConfig = {\n plugins: [...gtkxVitePlugins(BUILD_MODE), gtkxWorker(), gtkxBuiltUrl(assetBase), gtkxNative(root)],\n build: {\n ssr: entry,\n assetsInlineLimit: 0,\n rolldownOptions: {\n output: {\n entryFileNames: \"bundle.js\",\n },\n },\n },\n };\n\n const merged: InlineConfig = mergeConfig(mergeConfig(buildDefaults, viteConfig ?? {}), forced);\n await viteBuild({ ...merged, ssr: { ...merged.ssr, noExternal: true } });\n};\n\nexport { build };\n"]}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAqB,WAAW,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAQtD,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,UAAU,GAAG,eAAe,CAAC;AACnC,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAEzC,MAAM,aAAa,GAAiB;IAChC,KAAK,EAAE;QACH,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,KAAK;KACnB;IACD,MAAM,EAAE;QACJ,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;KACrD;CACJ,CAAC;AAEF,MAAM,KAAK,GAAG,KAAK,EAAE,OAAqB,EAAmB,EAAE;IAC3D,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,IAAI,GAAG,UAAU,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,UAAU,EAAE,KAAK,EAAE,SAAS,IAAI,kBAAkB,CAAC;IAErE,MAAM,MAAM,GAAiB;QACzB,OAAO,EAAE;YACL,GAAG,eAAe,CAAC,UAAU,CAAC;YAC9B,UAAU,EAAE;YACZ,YAAY,CAAC,SAAS,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC;YAChB,iBAAiB,EAAE;SACtB;QACD,KAAK,EAAE;YACH,GAAG,EAAE,KAAK;YACV,iBAAiB,EAAE,CAAC;YACpB,eAAe,EAAE;gBACb,MAAM,EAAE;oBACJ,cAAc,EAAE,gBAAgB;oBAChC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,aAAa,CAAC;oBACjE,SAAS,EAAE,IAAI;iBAClB;aACJ;SACJ;KACJ,CAAC;IAEF,MAAM,MAAM,GAAiB,WAAW,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/F,MAAM,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAEzE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,eAAe,EAAE,gBAAgB,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC","sourcesContent":["import { join, posix } from \"node:path\";\nimport { type InlineConfig, mergeConfig, build as viteBuild } from \"vite\";\nimport { gtkxBuiltUrl } from \"./vite-plugins/built-url.js\";\nimport { BUNDLE_FILENAME, ESM_EXTENSION } from \"./vite-plugins/esm-extension.js\";\nimport { gtkxVitePlugins } from \"./vite-plugins/index.js\";\nimport { gtkxNative } from \"./vite-plugins/native.js\";\nimport { gtkxSelfContained } from \"./vite-plugins/self-contained.js\";\nimport { gtkxWorker } from \"./vite-plugins/worker.js\";\n\ntype BuildOptions = {\n entry: string;\n assetBase?: string | undefined;\n vite?: InlineConfig | undefined;\n};\n\nconst BUILD_MODE = \"production\";\nconst CHUNK_STEM = \"[name]-[hash]\";\nconst DEFAULT_OUT_DIR = \"dist\";\nconst DEFAULT_ASSETS_DIR = \"assets\";\nconst ENTRY_FILE_NAMES = BUNDLE_FILENAME;\n\nconst buildDefaults: InlineConfig = {\n build: {\n ssrEmitAssets: true,\n outDir: DEFAULT_OUT_DIR,\n minify: true,\n cssMinify: false,\n },\n define: {\n \"process.env.NODE_ENV\": JSON.stringify(BUILD_MODE),\n },\n};\n\nconst build = async (options: BuildOptions): Promise<string> => {\n const { entry, assetBase, vite: viteConfig } = options;\n const root = viteConfig?.root ?? process.cwd();\n const assetsDir = viteConfig?.build?.assetsDir ?? DEFAULT_ASSETS_DIR;\n\n const forced: InlineConfig = {\n plugins: [\n ...gtkxVitePlugins(BUILD_MODE),\n gtkxWorker(),\n gtkxBuiltUrl(assetBase),\n gtkxNative(root),\n gtkxSelfContained(),\n ],\n build: {\n ssr: entry,\n assetsInlineLimit: 0,\n rolldownOptions: {\n output: {\n entryFileNames: ENTRY_FILE_NAMES,\n chunkFileNames: posix.join(assetsDir, CHUNK_STEM + ESM_EXTENSION),\n keepNames: true,\n },\n },\n },\n };\n\n const merged: InlineConfig = mergeConfig(mergeConfig(buildDefaults, viteConfig ?? {}), forced);\n await viteBuild({ ...merged, ssr: { ...merged.ssr, noExternal: true } });\n\n return join(merged.build?.outDir ?? DEFAULT_OUT_DIR, ENTRY_FILE_NAMES);\n};\n\nexport { build };\n"]}
package/dist/cli.js CHANGED
@@ -1,8 +1,8 @@
1
- import { packageVersion } from "@gtkx/utils";
2
1
  import { defineCommand, runMain } from "citty";
2
+ import packageManifest from "../package.json" with { type: "json" };
3
3
  import { splitApplicationArgs } from "./internal/application-args.js";
4
4
  import { withErrorBoundary } from "./internal/errors.js";
5
- const version = packageVersion(import.meta.url, "../package.json");
5
+ const version = packageManifest.version;
6
6
  const { cliArgs } = splitApplicationArgs(process.argv.slice(2));
7
7
  const main = defineCommand({
8
8
  meta: {
@@ -19,6 +19,10 @@ const main = defineCommand({
19
19
  const { build } = await import("./commands/build.js");
20
20
  return withErrorBoundary(build);
21
21
  },
22
+ deploy: async () => {
23
+ const { deploy } = await import("./commands/deploy.js");
24
+ return withErrorBoundary(deploy);
25
+ },
22
26
  codegen: async () => {
23
27
  const { codegen } = await import("./commands/codegen.js");
24
28
  return withErrorBoundary(codegen);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;AACnE,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhE,MAAM,IAAI,GAAG,aAAa,CAAC;IACvB,IAAI,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,OAAO;QACP,WAAW,EAAE,0DAA0D;KAC1E;IACD,WAAW,EAAE;QACT,GAAG,EAAE,KAAK,IAAI,EAAE;YACZ,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAElD,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAEtD,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YAE1D,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,EAAE,KAAK,IAAI,EAAE;YACb,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAEpD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YAExD,OAAO,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;KACJ;CACJ,CAAC,CAAC;AAEH,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC","sourcesContent":["import { packageVersion } from \"@gtkx/utils\";\nimport { defineCommand, runMain } from \"citty\";\nimport { splitApplicationArgs } from \"./internal/application-args.js\";\nimport { withErrorBoundary } from \"./internal/errors.js\";\n\nconst version = packageVersion(import.meta.url, \"../package.json\");\nconst { cliArgs } = splitApplicationArgs(process.argv.slice(2));\n\nconst main = defineCommand({\n meta: {\n name: \"gtkx\",\n version,\n description: \"CLI for GTKX: create and develop GTK4 React applications\",\n },\n subCommands: {\n dev: async () => {\n const { dev } = await import(\"./commands/dev.js\");\n\n return withErrorBoundary(dev);\n },\n build: async () => {\n const { build } = await import(\"./commands/build.js\");\n\n return withErrorBoundary(build);\n },\n codegen: async () => {\n const { codegen } = await import(\"./commands/codegen.js\");\n\n return withErrorBoundary(codegen);\n },\n docs: async () => {\n const { docs } = await import(\"./commands/docs.js\");\n\n return withErrorBoundary(docs);\n },\n create: async () => {\n const { scaffoldCommand } = await import(\"create-gtkx\");\n\n return withErrorBoundary(scaffoldCommand);\n },\n },\n});\n\nawait runMain(main, { rawArgs: cliArgs });\n"]}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,eAAe,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;AACxC,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhE,MAAM,IAAI,GAAG,aAAa,CAAC;IACvB,IAAI,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,OAAO;QACP,WAAW,EAAE,0DAA0D;KAC1E;IACD,WAAW,EAAE;QACT,GAAG,EAAE,KAAK,IAAI,EAAE;YACZ,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAElD,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAEtD,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAExD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YAE1D,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,EAAE,KAAK,IAAI,EAAE;YACb,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAEpD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YAExD,OAAO,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;KACJ;CACJ,CAAC,CAAC;AAEH,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC","sourcesContent":["import { defineCommand, runMain } from \"citty\";\nimport packageManifest from \"../package.json\" with { type: \"json\" };\nimport { splitApplicationArgs } from \"./internal/application-args.js\";\nimport { withErrorBoundary } from \"./internal/errors.js\";\n\nconst version = packageManifest.version;\nconst { cliArgs } = splitApplicationArgs(process.argv.slice(2));\n\nconst main = defineCommand({\n meta: {\n name: \"gtkx\",\n version,\n description: \"CLI for GTKX: create and develop GTK4 React applications\",\n },\n subCommands: {\n dev: async () => {\n const { dev } = await import(\"./commands/dev.js\");\n\n return withErrorBoundary(dev);\n },\n build: async () => {\n const { build } = await import(\"./commands/build.js\");\n\n return withErrorBoundary(build);\n },\n deploy: async () => {\n const { deploy } = await import(\"./commands/deploy.js\");\n\n return withErrorBoundary(deploy);\n },\n codegen: async () => {\n const { codegen } = await import(\"./commands/codegen.js\");\n\n return withErrorBoundary(codegen);\n },\n docs: async () => {\n const { docs } = await import(\"./commands/docs.js\");\n\n return withErrorBoundary(docs);\n },\n create: async () => {\n const { scaffoldCommand } = await import(\"create-gtkx\");\n\n return withErrorBoundary(scaffoldCommand);\n },\n },\n});\n\nawait runMain(main, { rawArgs: cliArgs });\n"]}
@@ -16,7 +16,7 @@ const namespaceBarrelPath = (giStoreDir, library) => {
16
16
  };
17
17
  const hasManifest = (storeDir) => existsSync(join(storeDir, "package.json"));
18
18
  const isGiStoreStale = (store, libraries) => {
19
- if (!existsSync(store.giLinkDir) || !hasManifest(store.giStoreDir)) {
19
+ if (!hasManifest(store.giStoreDir)) {
20
20
  return true;
21
21
  }
22
22
  return libraries.some((library) => !existsSync(namespaceBarrelPath(store.giStoreDir, library)));
@@ -25,7 +25,7 @@ const isReactStoreStale = (store) => {
25
25
  if (store.react === null) {
26
26
  return false;
27
27
  }
28
- if (!existsSync(store.jsxLinkDir) || !hasManifest(store.jsxStoreDir)) {
28
+ if (!hasManifest(store.jsxStoreDir)) {
29
29
  return true;
30
30
  }
31
31
  return REACT_GENERATED_MODULES.some((module) => !existsSync(join(store.jsxStoreDir, module)));
@@ -1 +1 @@
1
- {"version":3,"file":"freshness.js","sourceRoot":"","sources":["../../src/codegen/freshness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAqB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAQ7E,MAAM,uBAAuB,GAAa,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEjF,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAE,MAAc,EAAiB,EAAE;IACxE,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAEvC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,UAAkB,EAAE,OAAe,EAAU,EAAE;IACxE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAE3F,OAAO,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;AAE9F,MAAM,cAAc,GAAG,CAAC,KAAmB,EAAE,SAAmB,EAAW,EAAE;IACzE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACpG,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,KAAmB,EAAW,EAAE;IACvD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAClG,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,MAAqB,EAAW,EAAE;IACtD,IAAI,CAAC;QACD,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAsB,CAAC","sourcesContent":["import type { Config } from \"@gtkx/config\";\nimport { resolveGirPath, resolveLibraries } from \"@gtkx/codegen\";\nimport { existsSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { type CodegenStore, resolveCodegenStore } from \"./store-resolver.js\";\n\ntype CodegenInputs = {\n girPath: string[];\n libraries: string[];\n store: CodegenStore;\n};\n\nconst REACT_GENERATED_MODULES: string[] = [\"metadata.js\", join(\"gtk\", \"gtk.js\")];\n\nconst resolveCodegenInputs = (cwd: string, config: Config): CodegenInputs => {\n const girPath = resolveGirPath(config.girPath);\n const libraries = resolveLibraries(config.libraries, girPath);\n const store = resolveCodegenStore(cwd);\n\n return { girPath, libraries, store };\n};\n\nconst namespaceBarrelPath = (giStoreDir: string, library: string): string => {\n const separator = library.indexOf(\"-\");\n const namespace = (separator === -1 ? library : library.slice(0, separator)).toLowerCase();\n\n return join(giStoreDir, namespace, \"index.js\");\n};\n\nconst hasManifest = (storeDir: string): boolean => existsSync(join(storeDir, \"package.json\"));\n\nconst isGiStoreStale = (store: CodegenStore, libraries: string[]): boolean => {\n if (!existsSync(store.giLinkDir) || !hasManifest(store.giStoreDir)) {\n return true;\n }\n\n return libraries.some((library) => !existsSync(namespaceBarrelPath(store.giStoreDir, library)));\n};\n\nconst isReactStoreStale = (store: CodegenStore): boolean => {\n if (store.react === null) {\n return false;\n }\n\n if (!existsSync(store.jsxLinkDir) || !hasManifest(store.jsxStoreDir)) {\n return true;\n }\n\n return REACT_GENERATED_MODULES.some((module) => !existsSync(join(store.jsxStoreDir, module)));\n};\n\nconst isCodegenStale = (inputs: CodegenInputs): boolean => {\n try {\n return isGiStoreStale(inputs.store, inputs.libraries) || isReactStoreStale(inputs.store);\n } catch {\n return true;\n }\n};\n\nexport { resolveCodegenInputs, isCodegenStale, type CodegenInputs };\n"]}
1
+ {"version":3,"file":"freshness.js","sourceRoot":"","sources":["../../src/codegen/freshness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAqB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAQ7E,MAAM,uBAAuB,GAAa,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEjF,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAE,MAAc,EAAiB,EAAE;IACxE,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAEvC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,UAAkB,EAAE,OAAe,EAAU,EAAE;IACxE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAE3F,OAAO,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;AAE9F,MAAM,cAAc,GAAG,CAAC,KAAmB,EAAE,SAAmB,EAAW,EAAE;IACzE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACpG,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,KAAmB,EAAW,EAAE;IACvD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAClG,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,MAAqB,EAAW,EAAE;IACtD,IAAI,CAAC;QACD,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAsB,CAAC","sourcesContent":["import type { Config } from \"@gtkx/config\";\nimport { resolveGirPath, resolveLibraries } from \"@gtkx/codegen\";\nimport { existsSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { type CodegenStore, resolveCodegenStore } from \"./store-resolver.js\";\n\ntype CodegenInputs = {\n girPath: string[];\n libraries: string[];\n store: CodegenStore;\n};\n\nconst REACT_GENERATED_MODULES: string[] = [\"metadata.js\", join(\"gtk\", \"gtk.js\")];\n\nconst resolveCodegenInputs = (cwd: string, config: Config): CodegenInputs => {\n const girPath = resolveGirPath(config.girPath);\n const libraries = resolveLibraries(config.libraries, girPath);\n const store = resolveCodegenStore(cwd);\n\n return { girPath, libraries, store };\n};\n\nconst namespaceBarrelPath = (giStoreDir: string, library: string): string => {\n const separator = library.indexOf(\"-\");\n const namespace = (separator === -1 ? library : library.slice(0, separator)).toLowerCase();\n\n return join(giStoreDir, namespace, \"index.js\");\n};\n\nconst hasManifest = (storeDir: string): boolean => existsSync(join(storeDir, \"package.json\"));\n\nconst isGiStoreStale = (store: CodegenStore, libraries: string[]): boolean => {\n if (!hasManifest(store.giStoreDir)) {\n return true;\n }\n\n return libraries.some((library) => !existsSync(namespaceBarrelPath(store.giStoreDir, library)));\n};\n\nconst isReactStoreStale = (store: CodegenStore): boolean => {\n if (store.react === null) {\n return false;\n }\n\n if (!hasManifest(store.jsxStoreDir)) {\n return true;\n }\n\n return REACT_GENERATED_MODULES.some((module) => !existsSync(join(store.jsxStoreDir, module)));\n};\n\nconst isCodegenStale = (inputs: CodegenInputs): boolean => {\n try {\n return isGiStoreStale(inputs.store, inputs.libraries) || isReactStoreStale(inputs.store);\n } catch {\n return true;\n }\n};\n\nexport { resolveCodegenInputs, isCodegenStale, type CodegenInputs };\n"]}
@@ -1,5 +1,6 @@
1
1
  import { type Config } from "@gtkx/config";
2
2
  import { type CodegenInputs } from "./freshness.js";
3
+ import { type CodegenContext } from "./store-resolver.js";
3
4
  type RunCodegenOptions = {
4
5
  cwd?: string;
5
6
  mode?: string | undefined;
@@ -20,16 +21,18 @@ type RunCodegenResult = {
20
21
  configFile?: string | undefined;
21
22
  libraries?: string[] | undefined;
22
23
  };
24
+ type EnsureGeneratedOptions = {
25
+ shouldAnnounce?: boolean;
26
+ mode?: string;
27
+ };
23
28
  declare const runCodegen: (options?: RunCodegenOptions) => Promise<RunCodegenResult>;
24
29
  declare const isCodegenDisabled: (cwd: string, mode?: string) => Promise<boolean>;
25
30
  declare const syncSchemaEnv: (cwd: string) => void;
26
- declare const ensureGenerated: (cwd: string, options?: {
27
- shouldAnnounce?: boolean;
28
- mode?: string;
29
- }) => Promise<boolean>;
31
+ declare const ensureGeneratedIn: (context: CodegenContext, options?: EnsureGeneratedOptions) => Promise<boolean>;
32
+ declare const ensureGenerated: (cwd: string, options?: EnsureGeneratedOptions) => Promise<boolean>;
30
33
  declare const resolveConfigWatch: (cwd: string, mode?: string) => Promise<{
31
34
  paths: string[];
32
35
  regenerate: () => Promise<void>;
33
36
  }>;
34
- export { runCodegen, isCodegenDisabled, syncSchemaEnv, ensureGenerated, resolveConfigWatch, type RunCodegenResult, };
37
+ export { runCodegen, isCodegenDisabled, syncSchemaEnv, ensureGenerated, ensureGeneratedIn, resolveConfigWatch, type RunCodegenResult, };
35
38
  //# sourceMappingURL=run-codegen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-codegen.d.ts","sourceRoot":"","sources":["../../src/codegen/run-codegen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAc,MAAM,cAAc,CAAC;AAYvD,OAAO,EAAE,KAAK,aAAa,EAAwC,MAAM,gBAAgB,CAAC;AAG1F,KAAK,iBAAiB,GAAG;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,YAAY,CAAC;CAC3B,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACpC,CAAC;AAwFF,QAAA,MAAM,UAAU,GAAU,UAAS,iBAAsB,KAAG,OAAO,CAAC,gBAAgB,CAmCnF,CAAC;AAEF,QAAA,MAAM,iBAAiB,GAAU,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,OAAO,CAQ5E,CAAC;AAEF,QAAA,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,IAEpC,CAAC;AA6BF,QAAA,MAAM,eAAe,GACjB,KAAK,MAAM,EACX,UAAS;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,KAC1D,OAAO,CAAC,OAAO,CAoBjB,CAAC;AAEF,QAAA,MAAM,kBAAkB,GACpB,KAAK,MAAM,EACX,OAAO,MAAM,KACd,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAS9D,CAAC;AAEF,OAAO,EACH,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,KAAK,gBAAgB,GACxB,CAAC"}
1
+ {"version":3,"file":"run-codegen.d.ts","sourceRoot":"","sources":["../../src/codegen/run-codegen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAc,MAAM,cAAc,CAAC;AAYvD,OAAO,EAAE,KAAK,aAAa,EAAwC,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,cAAc,EAA4C,MAAM,qBAAqB,CAAC;AAEpG,KAAK,iBAAiB,GAAG;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,YAAY,CAAC;CAC3B,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACpC,CAAC;AAUF,KAAK,sBAAsB,GAAG;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAqF1E,QAAA,MAAM,UAAU,GAAU,UAAS,iBAAsB,KAAG,OAAO,CAAC,gBAAgB,CAmCnF,CAAC;AAEF,QAAA,MAAM,iBAAiB,GAAU,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,OAAO,CAQ5E,CAAC;AAEF,QAAA,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,IAEpC,CAAC;AAkDF,QAAA,MAAM,iBAAiB,GACnB,SAAS,cAAc,EACvB,UAAS,sBAA2B,KACrC,OAAO,CAAC,OAAO,CAAuE,CAAC;AAG1F,QAAA,MAAM,eAAe,GAAU,KAAK,MAAM,EAAE,UAAS,sBAA2B,KAAG,OAAO,CAAC,OAAO,CACS,CAAC;AAE5G,QAAA,MAAM,kBAAkB,GACpB,KAAK,MAAM,EACX,OAAO,MAAM,KACd,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAS9D,CAAC;AAEF,OAAO,EACH,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,gBAAgB,GACxB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { runCodegen as runCodegenCore } from "@gtkx/codegen";
2
+ import { getShadowingStorePaths, sweepProjectStaging } from "@gtkx/codegen/internal";
2
3
  import { loadConfig } from "@gtkx/config";
3
4
  import { resolveElementComponents, resolveElementProps, resolveLazyElements, resolveOmittedProps, } from "@gtkx/config/internal";
4
5
  import { info } from "@gtkx/utils";
@@ -11,16 +12,15 @@ import { resolveCodegenContext } from "./store-resolver.js";
11
12
  const GIR_PATH_MISSING_MESSAGE = "No GIR search paths available. Install gobject-introspection " +
12
13
  "(Linux: `sudo dnf install gobject-introspection-devel` or `sudo apt install libgirepository1.0-dev`), " +
13
14
  "or set `girPath` in gtkx.config.ts.";
14
- const removeSharedStoreShadow = (cwd) => {
15
- for (const path of [
16
- resolve(cwd, "node_modules/.gtkx/gi"),
17
- resolve(cwd, "node_modules/.gtkx/jsx"),
18
- resolve(cwd, "node_modules/@gtkx/gi"),
19
- resolve(cwd, "node_modules/@gtkx/jsx"),
20
- ]) {
15
+ const removeStores = (paths) => {
16
+ for (const path of paths) {
21
17
  rmSync(path, { recursive: true, force: true });
22
18
  }
23
19
  };
20
+ const removeShadowingStores = (cwd) => {
21
+ sweepProjectStaging(cwd);
22
+ removeStores(getShadowingStorePaths(cwd));
23
+ };
24
24
  const codegenOptions = ({ store, libraries, girPath, elements }) => ({
25
25
  libraries,
26
26
  girPath,
@@ -51,10 +51,14 @@ const disabledCodegenResult = (configFile) => ({
51
51
  configFile,
52
52
  libraries: [],
53
53
  });
54
- const clearGeneratedStores = (store) => {
55
- for (const path of [store.giStoreDir, store.giLinkDir, store.jsxStoreDir, store.jsxLinkDir]) {
56
- rmSync(path, { recursive: true, force: true });
54
+ const regeneratedStorePaths = (store) => {
55
+ if (store.react === null) {
56
+ return [store.giStoreDir, store.giLinkDir];
57
57
  }
58
+ return [store.giStoreDir, store.giLinkDir, store.jsxStoreDir, store.jsxLinkDir];
59
+ };
60
+ const clearGeneratedStores = (store) => {
61
+ removeStores(regeneratedStorePaths(store));
58
62
  };
59
63
  const resolveLoadedConfig = async (options, cwd) => options.resolved ?? (await loadConfig(cwd, { mode: options.mode }));
60
64
  const prepareCodegen = (options, cwd, config) => {
@@ -69,7 +73,7 @@ const runCodegen = async (options = {}) => {
69
73
  const cwd = options.cwd ?? process.cwd();
70
74
  const { config, configFile } = await resolveLoadedConfig(options, cwd);
71
75
  if (config.codegen === false) {
72
- removeSharedStoreShadow(cwd);
76
+ removeShadowingStores(cwd);
73
77
  return disabledCodegenResult(configFile);
74
78
  }
75
79
  const { girPath, libraries, store, isForced } = prepareCodegen(options, cwd, config);
@@ -129,15 +133,12 @@ const getRunOptions = ({ root, mode, inputs, resolved }) => {
129
133
  }
130
134
  return { cwd: root, mode, inputs, resolved };
131
135
  };
136
+ const isPreflightSkipped = (options) => options.shouldAnnounce === true && process.env.GTKX_DISABLE_PREFLIGHT === "1";
132
137
  /* eslint-disable-next-line unicorn/consistent-boolean-name -- the boolean reports whether codegen ran */
133
- const ensureGenerated = async (cwd, options = {}) => {
134
- if (options.shouldAnnounce && process.env.GTKX_DISABLE_PREFLIGHT === "1") {
135
- return false;
136
- }
137
- const context = await resolveCodegenContext(cwd, options.mode);
138
- syncSchemaEnv(cwd);
138
+ const generate = async (context, options) => {
139
+ syncSchemaEnv(context.root);
139
140
  if (context.config.codegen === false) {
140
- removeSharedStoreShadow(context.root);
141
+ removeShadowingStores(context.root);
141
142
  return false;
142
143
  }
143
144
  const inputs = resolveInputsOrNull(context.root, context.config);
@@ -146,6 +147,10 @@ const ensureGenerated = async (cwd, options = {}) => {
146
147
  const result = await runCodegen(getRunOptions({ root: context.root, mode: options.mode, inputs, resolved }));
147
148
  return result.isRegenerated;
148
149
  };
150
+ /* eslint-disable-next-line unicorn/consistent-boolean-name -- the boolean reports whether codegen ran */
151
+ const ensureGeneratedIn = async (context, options = {}) => (isPreflightSkipped(options) ? false : generate(context, options));
152
+ /* eslint-disable-next-line unicorn/consistent-boolean-name -- the boolean reports whether codegen ran */
153
+ const ensureGenerated = async (cwd, options = {}) => isPreflightSkipped(options) ? false : generate(await resolveCodegenContext(cwd, options.mode), options);
149
154
  const resolveConfigWatch = async (cwd, mode) => {
150
155
  const { configFile, root } = await loadConfig(cwd, { mode });
151
156
  return {
@@ -155,5 +160,5 @@ const resolveConfigWatch = async (cwd, mode) => {
155
160
  },
156
161
  };
157
162
  };
158
- export { runCodegen, isCodegenDisabled, syncSchemaEnv, ensureGenerated, resolveConfigWatch, };
163
+ export { runCodegen, isCodegenDisabled, syncSchemaEnv, ensureGenerated, ensureGeneratedIn, resolveConfigWatch, };
159
164
  //# sourceMappingURL=run-codegen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-codegen.js","sourceRoot":"","sources":["../../src/codegen/run-codegen.ts"],"names":[],"mappings":"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","sourcesContent":["import { runCodegen as runCodegenCore } from \"@gtkx/codegen\";\nimport { type Config, loadConfig } from \"@gtkx/config\";\nimport {\n resolveElementComponents,\n resolveElementProps,\n resolveLazyElements,\n resolveOmittedProps,\n} from \"@gtkx/config/internal\";\nimport { info } from \"@gtkx/utils\";\nimport { rmSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport { resolveDataDir } from \"../internal/data-dir.js\";\nimport { emitSchemaEnv } from \"../settings/schema.js\";\nimport { type CodegenInputs, isCodegenStale, resolveCodegenInputs } from \"./freshness.js\";\nimport { type CodegenStore, resolveCodegenContext } from \"./store-resolver.js\";\n\ntype RunCodegenOptions = {\n cwd?: string;\n mode?: string | undefined;\n isForced?: boolean;\n inputs?: CodegenInputs;\n resolved?: LoadedConfig;\n};\n\ntype LoadedConfig = {\n config: Config;\n configFile: string;\n};\n\ntype RunCodegenResult = {\n isRegenerated: boolean;\n namespaces: number;\n intrinsicElements: number;\n duration: number;\n girPath?: string[] | undefined;\n configFile?: string | undefined;\n libraries?: string[] | undefined;\n};\n\ntype CodegenOptionsInput = {\n store: CodegenStore;\n libraries: string[];\n girPath: string[];\n elements: Config[\"elements\"];\n};\n\ntype PreparedCodegen = CodegenInputs & { isForced: boolean };\n\ntype RunOptionsInput = {\n root: string;\n mode: string | undefined;\n inputs: CodegenInputs | null;\n resolved: LoadedConfig;\n};\n\nconst GIR_PATH_MISSING_MESSAGE =\n \"No GIR search paths available. Install gobject-introspection \" +\n \"(Linux: `sudo dnf install gobject-introspection-devel` or `sudo apt install libgirepository1.0-dev`), \" +\n \"or set `girPath` in gtkx.config.ts.\";\n\nconst removeSharedStoreShadow = (cwd: string): void => {\n for (const path of [\n resolve(cwd, \"node_modules/.gtkx/gi\"),\n resolve(cwd, \"node_modules/.gtkx/jsx\"),\n resolve(cwd, \"node_modules/@gtkx/gi\"),\n resolve(cwd, \"node_modules/@gtkx/jsx\"),\n ]) {\n rmSync(path, { recursive: true, force: true });\n }\n};\n\nconst codegenOptions = ({ store, libraries, girPath, elements }: CodegenOptionsInput) => ({\n libraries,\n girPath,\n gi: {\n storeDir: store.giStoreDir,\n linkDir: store.giLinkDir,\n version: store.runtimeVersion,\n },\n jsx:\n store.react === null\n ? undefined\n : {\n storeDir: store.jsxStoreDir,\n linkDir: store.jsxLinkDir,\n version: store.react.version,\n },\n reactSubexports: store.react?.subexports ?? [],\n userComponents: resolveElementComponents(elements),\n userProps: resolveElementProps(elements),\n userLazyElements: resolveLazyElements(elements),\n userOmittedProps: resolveOmittedProps(elements),\n});\n\nconst disabledCodegenResult = (configFile: string): RunCodegenResult => ({\n isRegenerated: false,\n namespaces: 0,\n intrinsicElements: 0,\n duration: 0,\n girPath: [],\n configFile,\n libraries: [],\n});\n\nconst clearGeneratedStores = (store: CodegenStore): void => {\n for (const path of [store.giStoreDir, store.giLinkDir, store.jsxStoreDir, store.jsxLinkDir]) {\n rmSync(path, { recursive: true, force: true });\n }\n};\n\nconst resolveLoadedConfig = async (options: RunCodegenOptions, cwd: string): Promise<LoadedConfig> =>\n options.resolved ?? (await loadConfig(cwd, { mode: options.mode }));\n\nconst prepareCodegen = (options: RunCodegenOptions, cwd: string, config: Config): PreparedCodegen => {\n const { girPath, libraries, store } = options.inputs ?? resolveCodegenInputs(cwd, config);\n\n if (girPath.length === 0) {\n throw new Error(GIR_PATH_MISSING_MESSAGE);\n }\n\n const isForced = options.isForced === true || isCodegenStale({ girPath, libraries, store });\n\n return { girPath, libraries, store, isForced };\n};\n\nconst runCodegen = async (options: RunCodegenOptions = {}): Promise<RunCodegenResult> => {\n const cwd = options.cwd ?? process.cwd();\n const { config, configFile } = await resolveLoadedConfig(options, cwd);\n\n if (config.codegen === false) {\n removeSharedStoreShadow(cwd);\n\n return disabledCodegenResult(configFile);\n }\n\n const { girPath, libraries, store, isForced } = prepareCodegen(options, cwd, config);\n\n if (options.isForced) {\n clearGeneratedStores(store);\n }\n\n const result = await runCodegenCore({\n ...codegenOptions({\n store,\n libraries,\n girPath,\n elements: config.elements,\n }),\n isForced,\n });\n\n return {\n isRegenerated: result.isRegenerated,\n namespaces: result.namespaces,\n intrinsicElements: result.intrinsicElements,\n duration: result.duration,\n girPath,\n configFile,\n libraries,\n };\n};\n\nconst isCodegenDisabled = async (cwd: string, mode?: string): Promise<boolean> => {\n try {\n const { config } = await loadConfig(cwd, { mode });\n\n return config.codegen === false;\n } catch {\n return false;\n }\n};\n\nconst syncSchemaEnv = (cwd: string): void => {\n emitSchemaEnv(cwd, resolveDataDir(cwd));\n};\n\nconst resolveInputsOrNull = (cwd: string, config: Config): CodegenInputs | null => {\n try {\n return resolveCodegenInputs(cwd, config);\n } catch {\n return null;\n }\n};\n\nconst maybeAnnounceStale = (shouldAnnounce: boolean | undefined, inputs: CodegenInputs | null): void => {\n if (!shouldAnnounce) {\n return;\n }\n\n if (inputs === null || isCodegenStale(inputs)) {\n info(\"generated bindings missing; running codegen...\");\n }\n};\n\nconst getRunOptions = ({ root, mode, inputs, resolved }: RunOptionsInput): RunCodegenOptions => {\n if (inputs === null) {\n return { cwd: root, mode, resolved };\n }\n\n return { cwd: root, mode, inputs, resolved };\n};\n\n/* eslint-disable-next-line unicorn/consistent-boolean-name -- the boolean reports whether codegen ran */\nconst ensureGenerated = async (\n cwd: string,\n options: { shouldAnnounce?: boolean; mode?: string } = {},\n): Promise<boolean> => {\n if (options.shouldAnnounce && process.env.GTKX_DISABLE_PREFLIGHT === \"1\") {\n return false;\n }\n\n const context = await resolveCodegenContext(cwd, options.mode);\n syncSchemaEnv(cwd);\n\n if (context.config.codegen === false) {\n removeSharedStoreShadow(context.root);\n\n return false;\n }\n\n const inputs = resolveInputsOrNull(context.root, context.config);\n maybeAnnounceStale(options.shouldAnnounce, inputs);\n const resolved = { config: context.config, configFile: context.configFile };\n const result = await runCodegen(getRunOptions({ root: context.root, mode: options.mode, inputs, resolved }));\n\n return result.isRegenerated;\n};\n\nconst resolveConfigWatch = async (\n cwd: string,\n mode?: string,\n): Promise<{ paths: string[]; regenerate: () => Promise<void> }> => {\n const { configFile, root } = await loadConfig(cwd, { mode });\n\n return {\n paths: [resolve(root, configFile)],\n regenerate: async () => {\n await runCodegen({ cwd: root, mode });\n },\n };\n};\n\nexport {\n runCodegen,\n isCodegenDisabled,\n syncSchemaEnv,\n ensureGenerated,\n resolveConfigWatch,\n type RunCodegenResult,\n};\n"]}
1
+ {"version":3,"file":"run-codegen.js","sourceRoot":"","sources":["../../src/codegen/run-codegen.ts"],"names":[],"mappings":"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","sourcesContent":["import { runCodegen as runCodegenCore } from \"@gtkx/codegen\";\nimport { getShadowingStorePaths, sweepProjectStaging } from \"@gtkx/codegen/internal\";\nimport { type Config, loadConfig } from \"@gtkx/config\";\nimport {\n resolveElementComponents,\n resolveElementProps,\n resolveLazyElements,\n resolveOmittedProps,\n} from \"@gtkx/config/internal\";\nimport { info } from \"@gtkx/utils\";\nimport { rmSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport { resolveDataDir } from \"../internal/data-dir.js\";\nimport { emitSchemaEnv } from \"../settings/schema.js\";\nimport { type CodegenInputs, isCodegenStale, resolveCodegenInputs } from \"./freshness.js\";\nimport { type CodegenContext, type CodegenStore, resolveCodegenContext } from \"./store-resolver.js\";\n\ntype RunCodegenOptions = {\n cwd?: string;\n mode?: string | undefined;\n isForced?: boolean;\n inputs?: CodegenInputs;\n resolved?: LoadedConfig;\n};\n\ntype LoadedConfig = {\n config: Config;\n configFile: string;\n};\n\ntype RunCodegenResult = {\n isRegenerated: boolean;\n namespaces: number;\n intrinsicElements: number;\n duration: number;\n girPath?: string[] | undefined;\n configFile?: string | undefined;\n libraries?: string[] | undefined;\n};\n\ntype CodegenOptionsInput = {\n store: CodegenStore;\n libraries: string[];\n girPath: string[];\n elements: Config[\"elements\"];\n};\n\ntype PreparedCodegen = CodegenInputs & { isForced: boolean };\ntype EnsureGeneratedOptions = { shouldAnnounce?: boolean; mode?: string };\n\ntype RunOptionsInput = {\n root: string;\n mode: string | undefined;\n inputs: CodegenInputs | null;\n resolved: LoadedConfig;\n};\n\nconst GIR_PATH_MISSING_MESSAGE =\n \"No GIR search paths available. Install gobject-introspection \" +\n \"(Linux: `sudo dnf install gobject-introspection-devel` or `sudo apt install libgirepository1.0-dev`), \" +\n \"or set `girPath` in gtkx.config.ts.\";\n\nconst removeStores = (paths: string[]): void => {\n for (const path of paths) {\n rmSync(path, { recursive: true, force: true });\n }\n};\n\nconst removeShadowingStores = (cwd: string): void => {\n sweepProjectStaging(cwd);\n removeStores(getShadowingStorePaths(cwd));\n};\n\nconst codegenOptions = ({ store, libraries, girPath, elements }: CodegenOptionsInput) => ({\n libraries,\n girPath,\n gi: {\n storeDir: store.giStoreDir,\n linkDir: store.giLinkDir,\n version: store.runtimeVersion,\n },\n jsx:\n store.react === null\n ? undefined\n : {\n storeDir: store.jsxStoreDir,\n linkDir: store.jsxLinkDir,\n version: store.react.version,\n },\n reactSubexports: store.react?.subexports ?? [],\n userComponents: resolveElementComponents(elements),\n userProps: resolveElementProps(elements),\n userLazyElements: resolveLazyElements(elements),\n userOmittedProps: resolveOmittedProps(elements),\n});\n\nconst disabledCodegenResult = (configFile: string): RunCodegenResult => ({\n isRegenerated: false,\n namespaces: 0,\n intrinsicElements: 0,\n duration: 0,\n girPath: [],\n configFile,\n libraries: [],\n});\n\nconst regeneratedStorePaths = (store: CodegenStore): string[] => {\n if (store.react === null) {\n return [store.giStoreDir, store.giLinkDir];\n }\n\n return [store.giStoreDir, store.giLinkDir, store.jsxStoreDir, store.jsxLinkDir];\n};\n\nconst clearGeneratedStores = (store: CodegenStore): void => {\n removeStores(regeneratedStorePaths(store));\n};\n\nconst resolveLoadedConfig = async (options: RunCodegenOptions, cwd: string): Promise<LoadedConfig> =>\n options.resolved ?? (await loadConfig(cwd, { mode: options.mode }));\n\nconst prepareCodegen = (options: RunCodegenOptions, cwd: string, config: Config): PreparedCodegen => {\n const { girPath, libraries, store } = options.inputs ?? resolveCodegenInputs(cwd, config);\n\n if (girPath.length === 0) {\n throw new Error(GIR_PATH_MISSING_MESSAGE);\n }\n\n const isForced = options.isForced === true || isCodegenStale({ girPath, libraries, store });\n\n return { girPath, libraries, store, isForced };\n};\n\nconst runCodegen = async (options: RunCodegenOptions = {}): Promise<RunCodegenResult> => {\n const cwd = options.cwd ?? process.cwd();\n const { config, configFile } = await resolveLoadedConfig(options, cwd);\n\n if (config.codegen === false) {\n removeShadowingStores(cwd);\n\n return disabledCodegenResult(configFile);\n }\n\n const { girPath, libraries, store, isForced } = prepareCodegen(options, cwd, config);\n\n if (options.isForced) {\n clearGeneratedStores(store);\n }\n\n const result = await runCodegenCore({\n ...codegenOptions({\n store,\n libraries,\n girPath,\n elements: config.elements,\n }),\n isForced,\n });\n\n return {\n isRegenerated: result.isRegenerated,\n namespaces: result.namespaces,\n intrinsicElements: result.intrinsicElements,\n duration: result.duration,\n girPath,\n configFile,\n libraries,\n };\n};\n\nconst isCodegenDisabled = async (cwd: string, mode?: string): Promise<boolean> => {\n try {\n const { config } = await loadConfig(cwd, { mode });\n\n return config.codegen === false;\n } catch {\n return false;\n }\n};\n\nconst syncSchemaEnv = (cwd: string): void => {\n emitSchemaEnv(cwd, resolveDataDir(cwd));\n};\n\nconst resolveInputsOrNull = (cwd: string, config: Config): CodegenInputs | null => {\n try {\n return resolveCodegenInputs(cwd, config);\n } catch {\n return null;\n }\n};\n\nconst maybeAnnounceStale = (shouldAnnounce: boolean | undefined, inputs: CodegenInputs | null): void => {\n if (!shouldAnnounce) {\n return;\n }\n\n if (inputs === null || isCodegenStale(inputs)) {\n info(\"generated bindings missing; running codegen...\");\n }\n};\n\nconst getRunOptions = ({ root, mode, inputs, resolved }: RunOptionsInput): RunCodegenOptions => {\n if (inputs === null) {\n return { cwd: root, mode, resolved };\n }\n\n return { cwd: root, mode, inputs, resolved };\n};\n\nconst isPreflightSkipped = (options: EnsureGeneratedOptions): boolean =>\n options.shouldAnnounce === true && process.env.GTKX_DISABLE_PREFLIGHT === \"1\";\n\n/* eslint-disable-next-line unicorn/consistent-boolean-name -- the boolean reports whether codegen ran */\nconst generate = async (context: CodegenContext, options: EnsureGeneratedOptions): Promise<boolean> => {\n syncSchemaEnv(context.root);\n\n if (context.config.codegen === false) {\n removeShadowingStores(context.root);\n\n return false;\n }\n\n const inputs = resolveInputsOrNull(context.root, context.config);\n maybeAnnounceStale(options.shouldAnnounce, inputs);\n const resolved = { config: context.config, configFile: context.configFile };\n const result = await runCodegen(getRunOptions({ root: context.root, mode: options.mode, inputs, resolved }));\n\n return result.isRegenerated;\n};\n\n/* eslint-disable-next-line unicorn/consistent-boolean-name -- the boolean reports whether codegen ran */\nconst ensureGeneratedIn = async (\n context: CodegenContext,\n options: EnsureGeneratedOptions = {},\n): Promise<boolean> => (isPreflightSkipped(options) ? false : generate(context, options));\n\n/* eslint-disable-next-line unicorn/consistent-boolean-name -- the boolean reports whether codegen ran */\nconst ensureGenerated = async (cwd: string, options: EnsureGeneratedOptions = {}): Promise<boolean> =>\n isPreflightSkipped(options) ? false : generate(await resolveCodegenContext(cwd, options.mode), options);\n\nconst resolveConfigWatch = async (\n cwd: string,\n mode?: string,\n): Promise<{ paths: string[]; regenerate: () => Promise<void> }> => {\n const { configFile, root } = await loadConfig(cwd, { mode });\n\n return {\n paths: [resolve(root, configFile)],\n regenerate: async () => {\n await runCodegen({ cwd: root, mode });\n },\n };\n};\n\nexport {\n runCodegen,\n isCodegenDisabled,\n syncSchemaEnv,\n ensureGenerated,\n ensureGeneratedIn,\n resolveConfigWatch,\n type RunCodegenResult,\n};\n"]}
@@ -18,5 +18,5 @@ type CodegenContext = {
18
18
  };
19
19
  declare const resolveCodegenStore: (dir: string) => CodegenStore;
20
20
  declare const resolveCodegenContext: (cwd: string, mode?: string) => Promise<CodegenContext>;
21
- export { resolveCodegenStore, resolveCodegenContext, type CodegenStore };
21
+ export { resolveCodegenStore, resolveCodegenContext, type CodegenContext, type CodegenStore };
22
22
  //# sourceMappingURL=store-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store-resolver.d.ts","sourceRoot":"","sources":["../../src/codegen/store-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAc,MAAM,cAAc,CAAC;AAMvD,KAAK,YAAY,GAAG;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAIF,KAAK,cAAc,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AA6BF,QAAA,MAAM,mBAAmB,GAAI,KAAK,MAAM,KAAG,YAqB1C,CAAC;AAEF,QAAA,MAAM,qBAAqB,GAAU,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,cAAc,CAIvF,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,KAAK,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"store-resolver.d.ts","sourceRoot":"","sources":["../../src/codegen/store-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAc,MAAM,cAAc,CAAC;AAMvD,KAAK,YAAY,GAAG;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAIF,KAAK,cAAc,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AA6BF,QAAA,MAAM,mBAAmB,GAAI,KAAK,MAAM,KAAG,YAqB1C,CAAC;AAEF,QAAA,MAAM,qBAAqB,GAAU,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,cAAc,CAIvF,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"store-resolver.js","sourceRoot":"","sources":["../../src/codegen/store-resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolveStore } from \"@gtkx/codegen\";\nimport { type Config, loadConfig } from \"@gtkx/config\";\nimport { existsSync, readFileSync, realpathSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\ntype CodegenStore = {\n giStoreDir: string;\n giLinkDir: string;\n jsxStoreDir: string;\n jsxLinkDir: string;\n runtimeVersion: string;\n react: CodegenReactPackage | null;\n};\n\ntype CodegenReactPackage = {\n version: string;\n subexports: string[];\n};\n\ntype ResolvedPackage = { dir: string; version: string };\n\ntype CodegenContext = {\n root: string;\n config: Config;\n configFile: string;\n};\n\nconst readVersion = (packageJsonPath: string): string => {\n const parsed = JSON.parse(readFileSync(packageJsonPath, \"utf8\")) as { version?: string };\n\n return parsed.version ?? \"0.0.0\";\n};\n\nconst resolvePackage = (require: NodeJS.Require, dir: string, packageName: string): ResolvedPackage | null => {\n try {\n const real = realpathSync(require.resolve(`${packageName}/package.json`));\n\n return { dir: dirname(real), version: readVersion(real) };\n } catch {\n const unscoped = packageName.replace(/^@[^/]+\\//, \"\");\n const workspacePkg = join(dir, \"packages\", unscoped, \"package.json\");\n\n if (!existsSync(workspacePkg)) {\n return null;\n }\n\n const real = realpathSync(workspacePkg);\n\n return { dir: dirname(real), version: readVersion(real) };\n }\n};\n\nconst siblingStore = (giDir: string): string => join(dirname(giDir), \"jsx\");\n\nconst resolveCodegenStore = (dir: string): CodegenStore => {\n const require = createRequire(pathToFileURL(join(dir, \"__gtkx_resolver__.js\")).href);\n\n if (resolvePackage(require, dir, \"@gtkx/native\") === null) {\n throw new Error(\"Cannot resolve @gtkx/native from the project; is it installed?\");\n }\n\n const store = resolveStore(dir);\n const hasReactRuntime = resolvePackage(require, dir, \"react\") !== null;\n\n return {\n giStoreDir: store.gi.storeDir,\n giLinkDir: store.gi.linkDir,\n jsxStoreDir: store.jsx?.storeDir ?? siblingStore(store.gi.storeDir),\n jsxLinkDir: store.jsx?.linkDir ?? siblingStore(store.gi.linkDir),\n runtimeVersion: store.gi.version,\n react:\n hasReactRuntime && store.jsx !== null\n ? { version: store.jsx.version, subexports: store.reactSubexports }\n : null,\n };\n};\n\nconst resolveCodegenContext = async (cwd: string, mode?: string): Promise<CodegenContext> => {\n const { config, configFile } = await loadConfig(cwd, { mode });\n\n return { root: cwd, config, configFile };\n};\n\nexport { resolveCodegenStore, resolveCodegenContext, type CodegenStore };\n"]}
1
+ {"version":3,"file":"store-resolver.js","sourceRoot":"","sources":["../../src/codegen/store-resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolveStore } from \"@gtkx/codegen\";\nimport { type Config, loadConfig } from \"@gtkx/config\";\nimport { existsSync, readFileSync, realpathSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\ntype CodegenStore = {\n giStoreDir: string;\n giLinkDir: string;\n jsxStoreDir: string;\n jsxLinkDir: string;\n runtimeVersion: string;\n react: CodegenReactPackage | null;\n};\n\ntype CodegenReactPackage = {\n version: string;\n subexports: string[];\n};\n\ntype ResolvedPackage = { dir: string; version: string };\n\ntype CodegenContext = {\n root: string;\n config: Config;\n configFile: string;\n};\n\nconst readVersion = (packageJsonPath: string): string => {\n const parsed = JSON.parse(readFileSync(packageJsonPath, \"utf8\")) as { version?: string };\n\n return parsed.version ?? \"0.0.0\";\n};\n\nconst resolvePackage = (require: NodeJS.Require, dir: string, packageName: string): ResolvedPackage | null => {\n try {\n const real = realpathSync(require.resolve(`${packageName}/package.json`));\n\n return { dir: dirname(real), version: readVersion(real) };\n } catch {\n const unscoped = packageName.replace(/^@[^/]+\\//, \"\");\n const workspacePkg = join(dir, \"packages\", unscoped, \"package.json\");\n\n if (!existsSync(workspacePkg)) {\n return null;\n }\n\n const real = realpathSync(workspacePkg);\n\n return { dir: dirname(real), version: readVersion(real) };\n }\n};\n\nconst siblingStore = (giDir: string): string => join(dirname(giDir), \"jsx\");\n\nconst resolveCodegenStore = (dir: string): CodegenStore => {\n const require = createRequire(pathToFileURL(join(dir, \"__gtkx_resolver__.js\")).href);\n\n if (resolvePackage(require, dir, \"@gtkx/native\") === null) {\n throw new Error(\"Cannot resolve @gtkx/native from the project; is it installed?\");\n }\n\n const store = resolveStore(dir);\n const hasReactRuntime = resolvePackage(require, dir, \"react\") !== null;\n\n return {\n giStoreDir: store.gi.storeDir,\n giLinkDir: store.gi.linkDir,\n jsxStoreDir: store.jsx?.storeDir ?? siblingStore(store.gi.storeDir),\n jsxLinkDir: store.jsx?.linkDir ?? siblingStore(store.gi.linkDir),\n runtimeVersion: store.gi.version,\n react:\n hasReactRuntime && store.jsx !== null\n ? { version: store.jsx.version, subexports: store.reactSubexports }\n : null,\n };\n};\n\nconst resolveCodegenContext = async (cwd: string, mode?: string): Promise<CodegenContext> => {\n const { config, configFile } = await loadConfig(cwd, { mode });\n\n return { root: cwd, config, configFile };\n};\n\nexport { resolveCodegenStore, resolveCodegenContext, type CodegenContext, type CodegenStore };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,KAAK;;;;;;;EA2BT,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,KAAK;;;;;;;EA0BT,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { info } from "@gtkx/utils";
2
2
  import { defineCommand } from "citty";
3
3
  import { build as buildApp } from "../builder.js";
4
- import { ensureGenerated } from "../codegen/run-codegen.js";
5
- import { entryArg, resolveEntry } from "../internal/entry-arg.js";
4
+ import { entryArg } from "../internal/entry-arg.js";
5
+ import { prepareProject } from "../internal/prepare-project.js";
6
6
  const BUILD_MODE = "production";
7
7
  const build = defineCommand({
8
8
  meta: {
@@ -17,17 +17,16 @@ const build = defineCommand({
17
17
  },
18
18
  },
19
19
  async run({ args }) {
20
- const { cwd, entry } = resolveEntry(args);
20
+ const { cwd, entry } = await prepareProject(args, BUILD_MODE);
21
21
  info(`Building ${entry}`);
22
- await ensureGenerated(cwd, { shouldAnnounce: true, mode: BUILD_MODE });
23
- await buildApp({
22
+ const bundlePath = await buildApp({
24
23
  entry,
25
24
  assetBase: args["asset-base"],
26
25
  vite: {
27
26
  root: cwd,
28
27
  },
29
28
  });
30
- info("Build complete: dist/bundle.js");
29
+ info(`Build complete: ${bundlePath}`);
31
30
  },
32
31
  });
33
32
  export { build };
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,KAAK,GAAG,aAAa,CAAC;IACxB,IAAI,EAAE;QACF,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,kCAAkC;KAClD;IACD,IAAI,EAAE;QACF,GAAG,QAAQ;QACX,YAAY,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0EAA0E;SAC1F;KACJ;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QACd,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QAC1B,MAAM,eAAe,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAEvE,MAAM,QAAQ,CAAC;YACX,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;YAC7B,IAAI,EAAE;gBACF,IAAI,EAAE,GAAG;aACZ;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC3C,CAAC;CACJ,CAAC,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC","sourcesContent":["import { info } from \"@gtkx/utils\";\nimport { defineCommand } from \"citty\";\nimport { build as buildApp } from \"../builder.js\";\nimport { ensureGenerated } from \"../codegen/run-codegen.js\";\nimport { entryArg, resolveEntry } from \"../internal/entry-arg.js\";\n\nconst BUILD_MODE = \"production\";\n\nconst build = defineCommand({\n meta: {\n name: \"build\",\n description: \"Build application for production\",\n },\n args: {\n ...entryArg,\n \"asset-base\": {\n type: \"string\",\n description: \"Asset base path relative to executable directory (e.g., ../share/my-app)\",\n },\n },\n async run({ args }) {\n const { cwd, entry } = resolveEntry(args);\n info(`Building ${entry}`);\n await ensureGenerated(cwd, { shouldAnnounce: true, mode: BUILD_MODE });\n\n await buildApp({\n entry,\n assetBase: args[\"asset-base\"],\n vite: {\n root: cwd,\n },\n });\n\n info(\"Build complete: dist/bundle.js\");\n },\n});\n\nexport { build };\n"]}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,KAAK,GAAG,aAAa,CAAC;IACxB,IAAI,EAAE;QACF,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,kCAAkC;KAClD;IACD,IAAI,EAAE;QACF,GAAG,QAAQ;QACX,YAAY,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0EAA0E;SAC1F;KACJ;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QACd,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC9D,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QAE1B,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC;YAC9B,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;YAC7B,IAAI,EAAE;gBACF,IAAI,EAAE,GAAG;aACZ;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;IAC1C,CAAC;CACJ,CAAC,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC","sourcesContent":["import { info } from \"@gtkx/utils\";\nimport { defineCommand } from \"citty\";\nimport { build as buildApp } from \"../builder.js\";\nimport { entryArg } from \"../internal/entry-arg.js\";\nimport { prepareProject } from \"../internal/prepare-project.js\";\n\nconst BUILD_MODE = \"production\";\n\nconst build = defineCommand({\n meta: {\n name: \"build\",\n description: \"Build application for production\",\n },\n args: {\n ...entryArg,\n \"asset-base\": {\n type: \"string\",\n description: \"Asset base path relative to executable directory (e.g., ../share/my-app)\",\n },\n },\n async run({ args }) {\n const { cwd, entry } = await prepareProject(args, BUILD_MODE);\n info(`Building ${entry}`);\n\n const bundlePath = await buildApp({\n entry,\n assetBase: args[\"asset-base\"],\n vite: {\n root: cwd,\n },\n });\n\n info(`Build complete: ${bundlePath}`);\n },\n});\n\nexport { build };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,OAAO;;;;;;;EAwCX,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"AAWA,QAAA,MAAM,OAAO;;;;;;;EA0CX,CAAC;AAQH,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -3,6 +3,9 @@ import { defineCommand } from "citty";
3
3
  import { formatCodegenResult } from "../codegen/report.js";
4
4
  import { ensureGenerated, isCodegenDisabled, runCodegen, syncSchemaEnv } from "../codegen/run-codegen.js";
5
5
  import { cwdArg, resolveCwd } from "../internal/entry-arg.js";
6
+ const FORCED_WHILE_DISABLED_MESSAGE = "codegen is disabled for this project, so --force has no store to regenerate here. " +
7
+ "Remove `codegen: false` from gtkx.config.ts, or run `gtkx codegen --force` where the installed " +
8
+ "binding store is generated.";
6
9
  const codegen = defineCommand({
7
10
  meta: {
8
11
  name: "codegen",
@@ -18,7 +21,9 @@ const codegen = defineCommand({
18
21
  },
19
22
  async run({ args }) {
20
23
  const cwd = resolveCwd(args);
21
- if (await isCodegenDisabled(cwd)) {
24
+ const isDisabled = await isCodegenDisabled(cwd);
25
+ checkForce(isDisabled, args.force);
26
+ if (isDisabled) {
22
27
  await runCodegen({ cwd });
23
28
  syncSchemaEnv(cwd);
24
29
  info("codegen: disabled for this project; reusing an installed binding store");
@@ -38,5 +43,10 @@ const codegen = defineCommand({
38
43
  }
39
44
  },
40
45
  });
46
+ const checkForce = (isDisabled, isForced) => {
47
+ if (isDisabled && isForced) {
48
+ throw new Error(FORCED_WHILE_DISABLED_MESSAGE);
49
+ }
50
+ };
41
51
  export { codegen };
42
52
  //# sourceMappingURL=codegen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1G,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,OAAO,GAAG,aAAa,CAAC;IAC1B,IAAI,EAAE;QACF,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+EAA+E;KAC/F;IACD,IAAI,EAAE;QACF,KAAK,EAAE;YACH,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,qFAAqF;YAClG,OAAO,EAAE,KAAK;SACjB;QACD,GAAG,MAAM;KACZ;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QACd,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,MAAM,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1B,aAAa,CAAC,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,wEAAwE,CAAC,CAAC;YAE/E,OAAO;QACX,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;YAErF,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,aAAa,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;QAElE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;IACL,CAAC;CACJ,CAAC,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,CAAC","sourcesContent":["import { info } from \"@gtkx/utils\";\nimport { defineCommand } from \"citty\";\nimport { formatCodegenResult } from \"../codegen/report.js\";\nimport { ensureGenerated, isCodegenDisabled, runCodegen, syncSchemaEnv } from \"../codegen/run-codegen.js\";\nimport { cwdArg, resolveCwd } from \"../internal/entry-arg.js\";\n\nconst codegen = defineCommand({\n meta: {\n name: \"codegen\",\n description: \"Generate TypeScript bindings for the GIR libraries declared in gtkx.config.ts\",\n },\n args: {\n force: {\n type: \"boolean\",\n description: \"Wipe the generated store and regenerate unconditionally (recover a corrupted store)\",\n default: false,\n },\n ...cwdArg,\n },\n async run({ args }) {\n const cwd = resolveCwd(args);\n\n if (await isCodegenDisabled(cwd)) {\n await runCodegen({ cwd });\n syncSchemaEnv(cwd);\n info(\"codegen: disabled for this project; reusing an installed binding store\");\n\n return;\n }\n\n if (!args.force) {\n const isRan = await ensureGenerated(cwd);\n info(isRan ? \"codegen: regenerated stale bindings\" : \"codegen: bindings up to date\");\n\n return;\n }\n\n const startedAt = Date.now();\n const result = await runCodegen({ cwd, isForced: true });\n syncSchemaEnv(cwd);\n const lines = formatCodegenResult(result, Date.now() - startedAt);\n\n for (const line of lines) {\n info(line);\n }\n },\n});\n\nexport { codegen };\n"]}
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1G,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,6BAA6B,GAC/B,oFAAoF;IACpF,iGAAiG;IACjG,6BAA6B,CAAC;AAElC,MAAM,OAAO,GAAG,aAAa,CAAC;IAC1B,IAAI,EAAE;QACF,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+EAA+E;KAC/F;IACD,IAAI,EAAE;QACF,KAAK,EAAE;YACH,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,qFAAqF;YAClG,OAAO,EAAE,KAAK;SACjB;QACD,GAAG,MAAM;KACZ;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QACd,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAChD,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1B,aAAa,CAAC,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,wEAAwE,CAAC,CAAC;YAE/E,OAAO;QACX,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;YAErF,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,aAAa,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;QAElE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;IACL,CAAC;CACJ,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,UAAmB,EAAE,QAAiB,EAAQ,EAAE;IAChE,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC","sourcesContent":["import { info } from \"@gtkx/utils\";\nimport { defineCommand } from \"citty\";\nimport { formatCodegenResult } from \"../codegen/report.js\";\nimport { ensureGenerated, isCodegenDisabled, runCodegen, syncSchemaEnv } from \"../codegen/run-codegen.js\";\nimport { cwdArg, resolveCwd } from \"../internal/entry-arg.js\";\n\nconst FORCED_WHILE_DISABLED_MESSAGE =\n \"codegen is disabled for this project, so --force has no store to regenerate here. \" +\n \"Remove `codegen: false` from gtkx.config.ts, or run `gtkx codegen --force` where the installed \" +\n \"binding store is generated.\";\n\nconst codegen = defineCommand({\n meta: {\n name: \"codegen\",\n description: \"Generate TypeScript bindings for the GIR libraries declared in gtkx.config.ts\",\n },\n args: {\n force: {\n type: \"boolean\",\n description: \"Wipe the generated store and regenerate unconditionally (recover a corrupted store)\",\n default: false,\n },\n ...cwdArg,\n },\n async run({ args }) {\n const cwd = resolveCwd(args);\n const isDisabled = await isCodegenDisabled(cwd);\n checkForce(isDisabled, args.force);\n\n if (isDisabled) {\n await runCodegen({ cwd });\n syncSchemaEnv(cwd);\n info(\"codegen: disabled for this project; reusing an installed binding store\");\n\n return;\n }\n\n if (!args.force) {\n const isRan = await ensureGenerated(cwd);\n info(isRan ? \"codegen: regenerated stale bindings\" : \"codegen: bindings up to date\");\n\n return;\n }\n\n const startedAt = Date.now();\n const result = await runCodegen({ cwd, isForced: true });\n syncSchemaEnv(cwd);\n const lines = formatCodegenResult(result, Date.now() - startedAt);\n\n for (const line of lines) {\n info(line);\n }\n },\n});\n\nconst checkForce = (isDisabled: boolean, isForced: boolean): void => {\n if (isDisabled && isForced) {\n throw new Error(FORCED_WHILE_DISABLED_MESSAGE);\n }\n};\n\nexport { codegen };\n"]}
@@ -0,0 +1,22 @@
1
+ declare const deploy: import("citty").CommandDef<{
2
+ readonly target: {
3
+ readonly type: "string";
4
+ readonly description: `Comma-separated package formats to build (${string})`;
5
+ };
6
+ readonly out: {
7
+ readonly type: "string";
8
+ readonly description: "Output directory relative to the project root (default: build)";
9
+ };
10
+ readonly "print-manifests": {
11
+ readonly type: "boolean";
12
+ readonly description: "Write the generated manifests and metadata, then stop without packaging";
13
+ };
14
+ readonly "skip-build": {
15
+ readonly type: "boolean";
16
+ readonly description: "Package what is already in dist/ instead of rebuilding";
17
+ };
18
+ readonly entry: import("citty").PositionalArgDef;
19
+ readonly cwd: import("citty").StringArgDef;
20
+ }>;
21
+ export { deploy };
22
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;EAoCV,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC"}