@gtkx/cli 2.0.0-beta.1 → 2.0.0-beta.10

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 (501) hide show
  1. package/README.md +43 -40
  2. package/bin/gtkx-dev-runner.js +5 -1
  3. package/bin/gtkx.js +5 -1
  4. package/dist/builder.d.ts +1 -0
  5. package/dist/builder.d.ts.map +1 -1
  6. package/dist/builder.js +44 -12
  7. package/dist/builder.js.map +1 -1
  8. package/dist/cli.d.ts +1 -1
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +14 -2
  11. package/dist/cli.js.map +1 -1
  12. package/dist/codegen/config-dependencies.d.ts +3 -0
  13. package/dist/codegen/config-dependencies.d.ts.map +1 -0
  14. package/dist/codegen/config-dependencies.js +355 -0
  15. package/dist/codegen/config-dependencies.js.map +1 -0
  16. package/dist/codegen/freshness.d.ts.map +1 -1
  17. package/dist/codegen/freshness.js +5 -1
  18. package/dist/codegen/freshness.js.map +1 -1
  19. package/dist/codegen/reference.d.ts.map +1 -1
  20. package/dist/codegen/reference.js +1 -0
  21. package/dist/codegen/reference.js.map +1 -1
  22. package/dist/codegen/run-codegen.d.ts +6 -3
  23. package/dist/codegen/run-codegen.d.ts.map +1 -1
  24. package/dist/codegen/run-codegen.js +42 -18
  25. package/dist/codegen/run-codegen.js.map +1 -1
  26. package/dist/codegen/store-resolver.d.ts +3 -1
  27. package/dist/codegen/store-resolver.d.ts.map +1 -1
  28. package/dist/codegen/store-resolver.js +7 -4
  29. package/dist/codegen/store-resolver.js.map +1 -1
  30. package/dist/commands/build.d.ts +5 -0
  31. package/dist/commands/build.d.ts.map +1 -1
  32. package/dist/commands/build.js +83 -10
  33. package/dist/commands/build.js.map +1 -1
  34. package/dist/commands/cleanup.d.ts +9 -0
  35. package/dist/commands/cleanup.d.ts.map +1 -0
  36. package/dist/commands/cleanup.js +42 -0
  37. package/dist/commands/cleanup.js.map +1 -0
  38. package/dist/commands/codegen.d.ts +1 -0
  39. package/dist/commands/codegen.d.ts.map +1 -1
  40. package/dist/commands/codegen.js +6 -5
  41. package/dist/commands/codegen.js.map +1 -1
  42. package/dist/commands/deploy.d.ts +5 -0
  43. package/dist/commands/deploy.d.ts.map +1 -1
  44. package/dist/commands/deploy.js +10 -2
  45. package/dist/commands/deploy.js.map +1 -1
  46. package/dist/commands/dev.d.ts +9 -0
  47. package/dist/commands/dev.d.ts.map +1 -1
  48. package/dist/commands/dev.js +31 -4
  49. package/dist/commands/dev.js.map +1 -1
  50. package/dist/commands/docs.d.ts.map +1 -1
  51. package/dist/commands/docs.js +1 -0
  52. package/dist/commands/docs.js.map +1 -1
  53. package/dist/deploy/depends.d.ts.map +1 -1
  54. package/dist/deploy/depends.js +24 -2
  55. package/dist/deploy/depends.js.map +1 -1
  56. package/dist/deploy/download.d.ts +7 -3
  57. package/dist/deploy/download.d.ts.map +1 -1
  58. package/dist/deploy/download.js +19 -20
  59. package/dist/deploy/download.js.map +1 -1
  60. package/dist/deploy/freedesktop/metainfo.d.ts.map +1 -1
  61. package/dist/deploy/freedesktop/metainfo.js +41 -2
  62. package/dist/deploy/freedesktop/metainfo.js.map +1 -1
  63. package/dist/deploy/freedesktop/validate.d.ts.map +1 -1
  64. package/dist/deploy/freedesktop/validate.js +58 -14
  65. package/dist/deploy/freedesktop/validate.js.map +1 -1
  66. package/dist/deploy/native-addon.d.ts +5 -0
  67. package/dist/deploy/native-addon.d.ts.map +1 -0
  68. package/dist/deploy/native-addon.js +134 -0
  69. package/dist/deploy/native-addon.js.map +1 -0
  70. package/dist/deploy/nfpm/config.d.ts +3 -2
  71. package/dist/deploy/nfpm/config.d.ts.map +1 -1
  72. package/dist/deploy/nfpm/config.js +7 -4
  73. package/dist/deploy/nfpm/config.js.map +1 -1
  74. package/dist/deploy/nfpm/contents.d.ts.map +1 -1
  75. package/dist/deploy/nfpm/contents.js +8 -0
  76. package/dist/deploy/nfpm/contents.js.map +1 -1
  77. package/dist/deploy/node-runtime/download.js +2 -2
  78. package/dist/deploy/node-runtime/download.js.map +1 -1
  79. package/dist/deploy/node-runtime/elf.d.ts +4 -1
  80. package/dist/deploy/node-runtime/elf.d.ts.map +1 -1
  81. package/dist/deploy/node-runtime/elf.js +34 -5
  82. package/dist/deploy/node-runtime/elf.js.map +1 -1
  83. package/dist/deploy/node-runtime/guard.d.ts.map +1 -1
  84. package/dist/deploy/node-runtime/guard.js +7 -14
  85. package/dist/deploy/node-runtime/guard.js.map +1 -1
  86. package/dist/deploy/node-runtime/index.d.ts +3 -1
  87. package/dist/deploy/node-runtime/index.d.ts.map +1 -1
  88. package/dist/deploy/node-runtime/index.js +103 -10
  89. package/dist/deploy/node-runtime/index.js.map +1 -1
  90. package/dist/deploy/node-runtime/sonames.d.ts +5 -0
  91. package/dist/deploy/node-runtime/sonames.d.ts.map +1 -0
  92. package/dist/deploy/node-runtime/sonames.js +13 -0
  93. package/dist/deploy/node-runtime/sonames.js.map +1 -0
  94. package/dist/deploy/notices/node-runtime.js +2 -2
  95. package/dist/deploy/notices/node-runtime.js.map +1 -1
  96. package/dist/deploy/payload/launcher.d.ts.map +1 -1
  97. package/dist/deploy/payload/launcher.js +14 -1
  98. package/dist/deploy/payload/launcher.js.map +1 -1
  99. package/dist/deploy/payload/stage.d.ts +2 -1
  100. package/dist/deploy/payload/stage.d.ts.map +1 -1
  101. package/dist/deploy/payload/stage.js +46 -5
  102. package/dist/deploy/payload/stage.js.map +1 -1
  103. package/dist/deploy/run-deploy.d.ts +2 -0
  104. package/dist/deploy/run-deploy.d.ts.map +1 -1
  105. package/dist/deploy/run-deploy.js +197 -52
  106. package/dist/deploy/run-deploy.js.map +1 -1
  107. package/dist/deploy/settings/arch.d.ts +9 -3
  108. package/dist/deploy/settings/arch.d.ts.map +1 -1
  109. package/dist/deploy/settings/arch.js +27 -6
  110. package/dist/deploy/settings/arch.js.map +1 -1
  111. package/dist/deploy/settings/build-manifest.d.ts +6 -1
  112. package/dist/deploy/settings/build-manifest.d.ts.map +1 -1
  113. package/dist/deploy/settings/build-manifest.js +15 -4
  114. package/dist/deploy/settings/build-manifest.js.map +1 -1
  115. package/dist/deploy/settings/extra-files.d.ts +1 -1
  116. package/dist/deploy/settings/extra-files.d.ts.map +1 -1
  117. package/dist/deploy/settings/extra-files.js +25 -3
  118. package/dist/deploy/settings/extra-files.js.map +1 -1
  119. package/dist/deploy/settings/index.d.ts +3 -1
  120. package/dist/deploy/settings/index.d.ts.map +1 -1
  121. package/dist/deploy/settings/index.js +4 -2
  122. package/dist/deploy/settings/index.js.map +1 -1
  123. package/dist/deploy/settings/libraries.d.ts.map +1 -1
  124. package/dist/deploy/settings/libraries.js +2 -1
  125. package/dist/deploy/settings/libraries.js.map +1 -1
  126. package/dist/deploy/settings/paths.d.ts +4 -2
  127. package/dist/deploy/settings/paths.d.ts.map +1 -1
  128. package/dist/deploy/settings/paths.js +121 -12
  129. package/dist/deploy/settings/paths.js.map +1 -1
  130. package/dist/deploy/targets/appimage.d.ts.map +1 -1
  131. package/dist/deploy/targets/appimage.js +1 -0
  132. package/dist/deploy/targets/appimage.js.map +1 -1
  133. package/dist/deploy/targets/flatpak-pnpm.js +4 -4
  134. package/dist/deploy/targets/flatpak-pnpm.js.map +1 -1
  135. package/dist/deploy/targets/flatpak-source.d.ts.map +1 -1
  136. package/dist/deploy/targets/flatpak-source.js +13 -2
  137. package/dist/deploy/targets/flatpak-source.js.map +1 -1
  138. package/dist/deploy/targets/flatpak.d.ts.map +1 -1
  139. package/dist/deploy/targets/flatpak.js +1 -0
  140. package/dist/deploy/targets/flatpak.js.map +1 -1
  141. package/dist/deploy/targets/nfpm-target.d.ts.map +1 -1
  142. package/dist/deploy/targets/nfpm-target.js +13 -7
  143. package/dist/deploy/targets/nfpm-target.js.map +1 -1
  144. package/dist/deploy/types.d.ts +5 -2
  145. package/dist/deploy/types.d.ts.map +1 -1
  146. package/dist/deploy/types.js.map +1 -1
  147. package/dist/deploy/vendored/appimagetool.js +2 -2
  148. package/dist/deploy/vendored/appimagetool.js.map +1 -1
  149. package/dist/deploy/vendored/nfpm.js +1 -1
  150. package/dist/deploy/vendored/nfpm.js.map +1 -1
  151. package/dist/dev/catalog-writes.d.ts +8 -0
  152. package/dist/dev/catalog-writes.d.ts.map +1 -0
  153. package/dist/dev/catalog-writes.js +26 -0
  154. package/dist/dev/catalog-writes.js.map +1 -0
  155. package/dist/dev/entry-env.d.ts +2 -1
  156. package/dist/dev/entry-env.d.ts.map +1 -1
  157. package/dist/dev/entry-env.js +2 -1
  158. package/dist/dev/entry-env.js.map +1 -1
  159. package/dist/dev/font-dir.d.ts +3 -0
  160. package/dist/dev/font-dir.d.ts.map +1 -0
  161. package/dist/dev/font-dir.js +9 -0
  162. package/dist/dev/font-dir.js.map +1 -0
  163. package/dist/dev/headless.d.ts +3 -0
  164. package/dist/dev/headless.d.ts.map +1 -0
  165. package/dist/dev/headless.js +35 -0
  166. package/dist/dev/headless.js.map +1 -0
  167. package/dist/dev/runner-deps.d.ts +1 -1
  168. package/dist/dev/runner-deps.d.ts.map +1 -1
  169. package/dist/dev/runner-deps.js +12 -7
  170. package/dist/dev/runner-deps.js.map +1 -1
  171. package/dist/dev/runner-main.d.ts.map +1 -1
  172. package/dist/dev/runner-main.js +10 -3
  173. package/dist/dev/runner-main.js.map +1 -1
  174. package/dist/dev/runner.d.ts +2 -0
  175. package/dist/dev/runner.d.ts.map +1 -1
  176. package/dist/dev/runner.js +26 -7
  177. package/dist/dev/runner.js.map +1 -1
  178. package/dist/dev/supervisor.d.ts +3 -1
  179. package/dist/dev/supervisor.d.ts.map +1 -1
  180. package/dist/dev/supervisor.js +132 -29
  181. package/dist/dev/supervisor.js.map +1 -1
  182. package/dist/dev/vite-dev-server.d.ts +1 -1
  183. package/dist/dev/vite-dev-server.d.ts.map +1 -1
  184. package/dist/dev/vite-dev-server.js +14 -2
  185. package/dist/dev/vite-dev-server.js.map +1 -1
  186. package/dist/dev/watch-ignore.d.ts +3 -0
  187. package/dist/dev/watch-ignore.d.ts.map +1 -0
  188. package/dist/dev/watch-ignore.js +11 -0
  189. package/dist/dev/watch-ignore.js.map +1 -0
  190. package/dist/i18n/catalogs.d.ts +6 -2
  191. package/dist/i18n/catalogs.d.ts.map +1 -1
  192. package/dist/i18n/catalogs.js +10 -7
  193. package/dist/i18n/catalogs.js.map +1 -1
  194. package/dist/i18n/source-messages.d.ts +3 -1
  195. package/dist/i18n/source-messages.d.ts.map +1 -1
  196. package/dist/i18n/source-messages.js +973 -9
  197. package/dist/i18n/source-messages.js.map +1 -1
  198. package/dist/internal/agent-rules.d.ts.map +1 -1
  199. package/dist/internal/agent-rules.js +7 -2
  200. package/dist/internal/agent-rules.js.map +1 -1
  201. package/dist/internal/banner.d.ts +4 -2
  202. package/dist/internal/banner.d.ts.map +1 -1
  203. package/dist/internal/banner.js +19 -5
  204. package/dist/internal/banner.js.map +1 -1
  205. package/dist/internal/build-manifest.d.ts +5 -2
  206. package/dist/internal/build-manifest.d.ts.map +1 -1
  207. package/dist/internal/build-manifest.js +15 -2
  208. package/dist/internal/build-manifest.js.map +1 -1
  209. package/dist/internal/build-output.d.ts +8 -0
  210. package/dist/internal/build-output.d.ts.map +1 -0
  211. package/dist/internal/build-output.js +116 -0
  212. package/dist/internal/build-output.js.map +1 -0
  213. package/dist/internal/cache-root.d.ts +3 -0
  214. package/dist/internal/cache-root.d.ts.map +1 -0
  215. package/dist/internal/cache-root.js +9 -0
  216. package/dist/internal/cache-root.js.map +1 -0
  217. package/dist/internal/compile-cache-store.d.ts +4 -0
  218. package/dist/internal/compile-cache-store.d.ts.map +1 -0
  219. package/dist/internal/compile-cache-store.js +41 -0
  220. package/dist/internal/compile-cache-store.js.map +1 -0
  221. package/dist/internal/compile-cache.d.ts +4 -0
  222. package/dist/internal/compile-cache.d.ts.map +1 -0
  223. package/dist/internal/compile-cache.js +16 -0
  224. package/dist/internal/compile-cache.js.map +1 -0
  225. package/dist/internal/deploy-out-dir.d.ts +4 -0
  226. package/dist/internal/deploy-out-dir.d.ts.map +1 -0
  227. package/dist/internal/deploy-out-dir.js +5 -0
  228. package/dist/internal/deploy-out-dir.js.map +1 -0
  229. package/dist/internal/docs-elements.d.ts +1 -0
  230. package/dist/internal/docs-elements.d.ts.map +1 -1
  231. package/dist/internal/docs-elements.js +5 -4
  232. package/dist/internal/docs-elements.js.map +1 -1
  233. package/dist/internal/entry-arg.d.ts +4 -1
  234. package/dist/internal/entry-arg.d.ts.map +1 -1
  235. package/dist/internal/entry-arg.js +7 -1
  236. package/dist/internal/entry-arg.js.map +1 -1
  237. package/dist/internal/errors.d.ts +2 -1
  238. package/dist/internal/errors.d.ts.map +1 -1
  239. package/dist/internal/errors.js +1 -1
  240. package/dist/internal/errors.js.map +1 -1
  241. package/dist/internal/font-path.d.ts +4 -0
  242. package/dist/internal/font-path.d.ts.map +1 -0
  243. package/dist/internal/font-path.js +12 -0
  244. package/dist/internal/font-path.js.map +1 -0
  245. package/dist/internal/font-staging.d.ts +6 -0
  246. package/dist/internal/font-staging.d.ts.map +1 -0
  247. package/dist/internal/font-staging.js +94 -0
  248. package/dist/internal/font-staging.js.map +1 -0
  249. package/dist/internal/icon-staging.d.ts +3 -0
  250. package/dist/internal/icon-staging.d.ts.map +1 -0
  251. package/dist/internal/icon-staging.js +40 -0
  252. package/dist/internal/icon-staging.js.map +1 -0
  253. package/dist/internal/import-scan.d.ts +4 -0
  254. package/dist/internal/import-scan.d.ts.map +1 -0
  255. package/dist/internal/import-scan.js +138 -0
  256. package/dist/internal/import-scan.js.map +1 -0
  257. package/dist/internal/module-hash.d.ts +3 -0
  258. package/dist/internal/module-hash.d.ts.map +1 -0
  259. package/dist/internal/module-hash.js +19 -0
  260. package/dist/internal/module-hash.js.map +1 -0
  261. package/dist/internal/output-directory.d.ts +15 -0
  262. package/dist/internal/output-directory.d.ts.map +1 -0
  263. package/dist/internal/output-directory.js +490 -0
  264. package/dist/internal/output-directory.js.map +1 -0
  265. package/dist/internal/parent-process.d.ts +12 -0
  266. package/dist/internal/parent-process.d.ts.map +1 -0
  267. package/dist/internal/parent-process.js +74 -0
  268. package/dist/internal/parent-process.js.map +1 -0
  269. package/dist/internal/prepare-project.d.ts +3 -0
  270. package/dist/internal/prepare-project.d.ts.map +1 -1
  271. package/dist/internal/prepare-project.js +9 -3
  272. package/dist/internal/prepare-project.js.map +1 -1
  273. package/dist/internal/react-compiler-cache.d.ts +13 -0
  274. package/dist/internal/react-compiler-cache.d.ts.map +1 -0
  275. package/dist/internal/react-compiler-cache.js +182 -0
  276. package/dist/internal/react-compiler-cache.js.map +1 -0
  277. package/dist/internal/source-imports.d.ts +7 -2
  278. package/dist/internal/source-imports.d.ts.map +1 -1
  279. package/dist/internal/source-imports.js +31 -11
  280. package/dist/internal/source-imports.js.map +1 -1
  281. package/dist/internal/staging-file.d.ts +5 -0
  282. package/dist/internal/staging-file.d.ts.map +1 -0
  283. package/dist/internal/staging-file.js +35 -0
  284. package/dist/internal/staging-file.js.map +1 -0
  285. package/dist/internal/xdg-banner.d.ts +4 -0
  286. package/dist/internal/xdg-banner.d.ts.map +1 -0
  287. package/dist/internal/xdg-banner.js +11 -0
  288. package/dist/internal/xdg-banner.js.map +1 -0
  289. package/dist/internal/xdg-data-dirs.d.ts +2 -1
  290. package/dist/internal/xdg-data-dirs.d.ts.map +1 -1
  291. package/dist/internal/xdg-data-dirs.js +1 -1
  292. package/dist/internal/xdg-data-dirs.js.map +1 -1
  293. package/dist/mcp/client.js +2 -2
  294. package/dist/mcp/client.js.map +1 -1
  295. package/dist/settings/schema.d.ts.map +1 -1
  296. package/dist/settings/schema.js +3 -8
  297. package/dist/settings/schema.js.map +1 -1
  298. package/dist/vite-plugins/asset-extensions.d.ts.map +1 -1
  299. package/dist/vite-plugins/asset-extensions.js +2 -0
  300. package/dist/vite-plugins/asset-extensions.js.map +1 -1
  301. package/dist/vite-plugins/asset-imports.d.ts.map +1 -1
  302. package/dist/vite-plugins/asset-imports.js +20 -6
  303. package/dist/vite-plugins/asset-imports.js.map +1 -1
  304. package/dist/vite-plugins/asset-specifier.d.ts +5 -1
  305. package/dist/vite-plugins/asset-specifier.d.ts.map +1 -1
  306. package/dist/vite-plugins/asset-specifier.js +10 -1
  307. package/dist/vite-plugins/asset-specifier.js.map +1 -1
  308. package/dist/vite-plugins/build-manifest.d.ts +5 -1
  309. package/dist/vite-plugins/build-manifest.d.ts.map +1 -1
  310. package/dist/vite-plugins/build-manifest.js +2 -1
  311. package/dist/vite-plugins/build-manifest.js.map +1 -1
  312. package/dist/vite-plugins/built-url.d.ts.map +1 -1
  313. package/dist/vite-plugins/built-url.js +5 -2
  314. package/dist/vite-plugins/built-url.js.map +1 -1
  315. package/dist/vite-plugins/css.d.ts.map +1 -1
  316. package/dist/vite-plugins/css.js +13 -5
  317. package/dist/vite-plugins/css.js.map +1 -1
  318. package/dist/vite-plugins/ensure-store.d.ts +1 -1
  319. package/dist/vite-plugins/ensure-store.d.ts.map +1 -1
  320. package/dist/vite-plugins/ensure-store.js +2 -2
  321. package/dist/vite-plugins/ensure-store.js.map +1 -1
  322. package/dist/vite-plugins/fast-refresh/refresh-filter.d.ts +6 -1
  323. package/dist/vite-plugins/fast-refresh/refresh-filter.d.ts.map +1 -1
  324. package/dist/vite-plugins/fast-refresh/refresh-filter.js +3 -1
  325. package/dist/vite-plugins/fast-refresh/refresh-filter.js.map +1 -1
  326. package/dist/vite-plugins/fast-refresh/swc-refresh.d.ts.map +1 -1
  327. package/dist/vite-plugins/fast-refresh/swc-refresh.js +23 -14
  328. package/dist/vite-plugins/fast-refresh/swc-refresh.js.map +1 -1
  329. package/dist/vite-plugins/font-name.d.ts +3 -0
  330. package/dist/vite-plugins/font-name.d.ts.map +1 -0
  331. package/dist/vite-plugins/font-name.js +406 -0
  332. package/dist/vite-plugins/font-name.js.map +1 -0
  333. package/dist/vite-plugins/font-worker-env.d.ts +4 -0
  334. package/dist/vite-plugins/font-worker-env.d.ts.map +1 -0
  335. package/dist/vite-plugins/font-worker-env.js +19 -0
  336. package/dist/vite-plugins/font-worker-env.js.map +1 -0
  337. package/dist/vite-plugins/font.d.ts +4 -0
  338. package/dist/vite-plugins/font.d.ts.map +1 -0
  339. package/dist/vite-plugins/font.js +111 -0
  340. package/dist/vite-plugins/font.js.map +1 -0
  341. package/dist/vite-plugins/i18n.d.ts +11 -2
  342. package/dist/vite-plugins/i18n.d.ts.map +1 -1
  343. package/dist/vite-plugins/i18n.js +74 -8
  344. package/dist/vite-plugins/i18n.js.map +1 -1
  345. package/dist/vite-plugins/icon-worker-env.d.ts +4 -0
  346. package/dist/vite-plugins/icon-worker-env.d.ts.map +1 -0
  347. package/dist/vite-plugins/icon-worker-env.js +23 -0
  348. package/dist/vite-plugins/icon-worker-env.js.map +1 -0
  349. package/dist/vite-plugins/icons.d.ts.map +1 -1
  350. package/dist/vite-plugins/icons.js +4 -9
  351. package/dist/vite-plugins/icons.js.map +1 -1
  352. package/dist/vite-plugins/index.d.ts +10 -1
  353. package/dist/vite-plugins/index.d.ts.map +1 -1
  354. package/dist/vite-plugins/index.js +17 -3
  355. package/dist/vite-plugins/index.js.map +1 -1
  356. package/dist/vite-plugins/native.d.ts.map +1 -1
  357. package/dist/vite-plugins/native.js +0 -4
  358. package/dist/vite-plugins/native.js.map +1 -1
  359. package/dist/vite-plugins/react-compiler.d.ts.map +1 -1
  360. package/dist/vite-plugins/react-compiler.js +57 -18
  361. package/dist/vite-plugins/react-compiler.js.map +1 -1
  362. package/dist/vite-plugins/resource-shared.d.ts +3 -1
  363. package/dist/vite-plugins/resource-shared.d.ts.map +1 -1
  364. package/dist/vite-plugins/resource-shared.js +3 -1
  365. package/dist/vite-plugins/resource-shared.js.map +1 -1
  366. package/dist/vite-plugins/resources.d.ts.map +1 -1
  367. package/dist/vite-plugins/resources.js +9 -6
  368. package/dist/vite-plugins/resources.js.map +1 -1
  369. package/dist/vite-plugins/self-contained.d.ts.map +1 -1
  370. package/dist/vite-plugins/self-contained.js +159 -158
  371. package/dist/vite-plugins/self-contained.js.map +1 -1
  372. package/dist/vite-plugins/settings-worker-env.d.ts +1 -1
  373. package/dist/vite-plugins/settings-worker-env.d.ts.map +1 -1
  374. package/dist/vite-plugins/settings-worker-env.js +4 -4
  375. package/dist/vite-plugins/settings-worker-env.js.map +1 -1
  376. package/dist/vite-plugins/settings.d.ts.map +1 -1
  377. package/dist/vite-plugins/settings.js +25 -14
  378. package/dist/vite-plugins/settings.js.map +1 -1
  379. package/dist/vite-plugins/store-links.d.ts.map +1 -1
  380. package/dist/vite-plugins/store-links.js +9 -5
  381. package/dist/vite-plugins/store-links.js.map +1 -1
  382. package/dist/vite-plugins/undeclared-library.d.ts.map +1 -1
  383. package/dist/vite-plugins/undeclared-library.js +18 -15
  384. package/dist/vite-plugins/undeclared-library.js.map +1 -1
  385. package/dist/vite-plugins/worker.d.ts.map +1 -1
  386. package/dist/vite-plugins/worker.js +21 -13
  387. package/dist/vite-plugins/worker.js.map +1 -1
  388. package/dist/vitest-plugin.d.ts +4 -3
  389. package/dist/vitest-plugin.d.ts.map +1 -1
  390. package/dist/vitest-plugin.js +12 -8
  391. package/dist/vitest-plugin.js.map +1 -1
  392. package/env.d.ts +9 -0
  393. package/package.json +18 -13
  394. package/src/builder.ts +45 -12
  395. package/src/cli.ts +15 -2
  396. package/src/codegen/config-dependencies.ts +470 -0
  397. package/src/codegen/freshness.ts +5 -1
  398. package/src/codegen/reference.ts +1 -0
  399. package/src/codegen/run-codegen.ts +51 -21
  400. package/src/codegen/store-resolver.ts +9 -4
  401. package/src/commands/build.ts +13 -2
  402. package/src/commands/cleanup.ts +48 -0
  403. package/src/commands/codegen.ts +6 -5
  404. package/src/commands/deploy.ts +10 -2
  405. package/src/commands/dev.ts +45 -4
  406. package/src/commands/docs.ts +1 -0
  407. package/src/deploy/depends.ts +30 -3
  408. package/src/deploy/download.ts +33 -24
  409. package/src/deploy/freedesktop/metainfo.ts +73 -21
  410. package/src/deploy/freedesktop/validate.ts +80 -15
  411. package/src/deploy/native-addon.ts +183 -0
  412. package/src/deploy/nfpm/config.ts +13 -4
  413. package/src/deploy/nfpm/contents.ts +8 -0
  414. package/src/deploy/node-runtime/download.ts +2 -2
  415. package/src/deploy/node-runtime/elf.ts +46 -5
  416. package/src/deploy/node-runtime/guard.ts +10 -14
  417. package/src/deploy/node-runtime/index.ts +148 -12
  418. package/src/deploy/node-runtime/sonames.ts +17 -0
  419. package/src/deploy/notices/node-runtime.ts +2 -2
  420. package/src/deploy/payload/launcher.ts +20 -1
  421. package/src/deploy/payload/stage.ts +76 -5
  422. package/src/deploy/run-deploy.ts +227 -72
  423. package/src/deploy/settings/arch.ts +40 -8
  424. package/src/deploy/settings/build-manifest.ts +28 -3
  425. package/src/deploy/settings/extra-files.ts +30 -4
  426. package/src/deploy/settings/index.ts +7 -2
  427. package/src/deploy/settings/libraries.ts +2 -1
  428. package/src/deploy/settings/paths.ts +80 -13
  429. package/src/deploy/targets/appimage.ts +1 -0
  430. package/src/deploy/targets/flatpak-pnpm.ts +4 -4
  431. package/src/deploy/targets/flatpak-source.ts +15 -2
  432. package/src/deploy/targets/flatpak.ts +1 -0
  433. package/src/deploy/targets/nfpm-target.ts +14 -6
  434. package/src/deploy/types.ts +5 -1
  435. package/src/deploy/vendored/appimagetool.ts +2 -2
  436. package/src/deploy/vendored/nfpm.ts +1 -1
  437. package/src/dev/catalog-writes.ts +35 -0
  438. package/src/dev/entry-env.ts +2 -1
  439. package/src/dev/font-dir.ts +11 -0
  440. package/src/dev/headless.ts +40 -0
  441. package/src/dev/runner-deps.ts +20 -7
  442. package/src/dev/runner-main.ts +12 -3
  443. package/src/dev/runner.ts +37 -7
  444. package/src/dev/supervisor.ts +183 -32
  445. package/src/dev/vite-dev-server.ts +20 -2
  446. package/src/dev/watch-ignore.ts +16 -0
  447. package/src/i18n/catalogs.ts +21 -8
  448. package/src/i18n/source-messages.ts +1446 -29
  449. package/src/internal/agent-rules.ts +7 -2
  450. package/src/internal/banner.ts +27 -6
  451. package/src/internal/build-manifest.ts +25 -1
  452. package/src/internal/build-output.ts +171 -0
  453. package/src/internal/cache-root.ts +12 -0
  454. package/src/internal/compile-cache-store.ts +50 -0
  455. package/src/internal/compile-cache.ts +20 -0
  456. package/src/internal/deploy-out-dir.ts +8 -0
  457. package/src/internal/docs-elements.ts +10 -4
  458. package/src/internal/entry-arg.ts +8 -1
  459. package/src/internal/errors.ts +1 -1
  460. package/src/internal/font-path.ts +15 -0
  461. package/src/internal/font-staging.ts +131 -0
  462. package/src/internal/icon-staging.ts +58 -0
  463. package/src/internal/import-scan.ts +206 -0
  464. package/src/internal/module-hash.ts +22 -0
  465. package/src/internal/output-directory.ts +699 -0
  466. package/src/internal/parent-process.ts +110 -0
  467. package/src/internal/prepare-project.ts +11 -5
  468. package/src/internal/react-compiler-cache.ts +246 -0
  469. package/src/internal/source-imports.ts +57 -12
  470. package/src/internal/staging-file.ts +42 -0
  471. package/src/internal/xdg-banner.ts +13 -0
  472. package/src/internal/xdg-data-dirs.ts +1 -1
  473. package/src/mcp/client.ts +2 -2
  474. package/src/settings/schema.ts +4 -10
  475. package/src/vite-plugins/asset-extensions.ts +2 -0
  476. package/src/vite-plugins/asset-imports.ts +23 -5
  477. package/src/vite-plugins/asset-specifier.ts +17 -0
  478. package/src/vite-plugins/build-manifest.ts +7 -1
  479. package/src/vite-plugins/built-url.ts +6 -2
  480. package/src/vite-plugins/css.ts +16 -5
  481. package/src/vite-plugins/ensure-store.ts +2 -2
  482. package/src/vite-plugins/fast-refresh/refresh-filter.ts +10 -1
  483. package/src/vite-plugins/fast-refresh/swc-refresh.ts +33 -14
  484. package/src/vite-plugins/font-name.ts +582 -0
  485. package/src/vite-plugins/font-worker-env.ts +25 -0
  486. package/src/vite-plugins/font.ts +180 -0
  487. package/src/vite-plugins/i18n.ts +122 -11
  488. package/src/vite-plugins/icon-worker-env.ts +36 -0
  489. package/src/vite-plugins/icons.ts +4 -10
  490. package/src/vite-plugins/index.ts +34 -9
  491. package/src/vite-plugins/native.ts +0 -5
  492. package/src/vite-plugins/react-compiler.ts +83 -19
  493. package/src/vite-plugins/resource-shared.ts +4 -0
  494. package/src/vite-plugins/resources.ts +11 -5
  495. package/src/vite-plugins/self-contained.ts +184 -185
  496. package/src/vite-plugins/settings-worker-env.ts +4 -4
  497. package/src/vite-plugins/settings.ts +36 -16
  498. package/src/vite-plugins/store-links.ts +10 -5
  499. package/src/vite-plugins/undeclared-library.ts +19 -15
  500. package/src/vite-plugins/worker.ts +31 -15
  501. package/src/vitest-plugin.ts +12 -8
@@ -1,16 +1,17 @@
1
1
  import { runCodegen as runCodegenCore } from "@gtkx/codegen";
2
2
  import { getShadowingStorePaths, sweepProjectStaging } from "@gtkx/codegen/internal";
3
3
  import { loadConfig } from "@gtkx/config";
4
- import { isAgentRulesEnabled, resolveElementComponents, resolveElementProps, resolveLazyElements, resolveOmittedProps, } from "@gtkx/config/internal";
4
+ import { configDependenciesFor, isAgentRulesEnabled, resolveElementComponents, resolveElementProps, resolveLazyElements, resolveOmittedProps, } from "@gtkx/config/internal";
5
5
  import { info } from "@gtkx/utils";
6
6
  import { existsSync, rmSync } from "node:fs";
7
- import { join, resolve } from "node:path";
7
+ import { join, relative, resolve } from "node:path";
8
8
  import { resolveCatalogProject, synchronizeCatalogs } from "../i18n/catalogs.js";
9
9
  import { extractSourceCatalog } from "../i18n/source-messages.js";
10
10
  import { clearI18nTypes, emitI18nTypes } from "../i18n/types.js";
11
11
  import { upsertAgentRules } from "../internal/agent-rules.js";
12
12
  import { discoverSourceFiles } from "../internal/source-imports.js";
13
13
  import { emitSchemaEnv } from "../settings/schema.js";
14
+ import { resolveConfigDependencies } from "./config-dependencies.js";
14
15
  import { isCodegenStale, resolveCodegenInputs } from "./freshness.js";
15
16
  import { writeReference } from "./reference.js";
16
17
  import { resolveCodegenContext } from "./store-resolver.js";
@@ -33,6 +34,7 @@ const codegenOptions = ({ store, libraries, girPath, elements }) => ({
33
34
  storeDir: store.giStoreDir,
34
35
  linkDir: store.giLinkDir,
35
36
  version: store.runtimeVersion,
37
+ owner: store.owner,
36
38
  },
37
39
  jsx: store.react === null
38
40
  ? undefined
@@ -40,6 +42,7 @@ const codegenOptions = ({ store, libraries, girPath, elements }) => ({
40
42
  storeDir: store.jsxStoreDir,
41
43
  linkDir: store.jsxLinkDir,
42
44
  version: store.react.version,
45
+ owner: store.owner,
43
46
  },
44
47
  userComponents: resolveElementComponents(elements),
45
48
  userProps: resolveElementProps(elements),
@@ -55,11 +58,6 @@ const disabledCodegenResult = (configFile) => ({
55
58
  configFile,
56
59
  libraries: [],
57
60
  });
58
- const clearGeneratedStores = (store) => {
59
- removeStores(store.react === null
60
- ? [store.giStoreDir, store.giLinkDir]
61
- : [store.giStoreDir, store.giLinkDir, store.jsxStoreDir, store.jsxLinkDir]);
62
- };
63
61
  const prepareCodegen = (options, cwd, config) => {
64
62
  const { girPath, libraries, store } = options.inputs ?? resolveCodegenInputs(cwd, config);
65
63
  if (girPath.length === 0) {
@@ -70,7 +68,10 @@ const prepareCodegen = (options, cwd, config) => {
70
68
  };
71
69
  const runCodegen = async (options = {}) => {
72
70
  const cwd = options.cwd ?? process.cwd();
73
- const { config, configFile } = options.resolved ?? (await loadConfig(cwd, { mode: options.mode }));
71
+ const { config, configFile } = options.resolved ?? (await loadConfig(cwd, {
72
+ mode: options.mode,
73
+ configFile: options.configFile,
74
+ }));
74
75
  await syncI18n(cwd, config.applicationId, options.shouldPreserveI18nMetadata);
75
76
  emitSchemaEnv(cwd);
76
77
  if (config.codegen === false) {
@@ -78,9 +79,6 @@ const runCodegen = async (options = {}) => {
78
79
  return disabledCodegenResult(configFile);
79
80
  }
80
81
  const { girPath, libraries, store, isForced } = prepareCodegen(options, cwd, config);
81
- if (options.isForced) {
82
- clearGeneratedStores(store);
83
- }
84
82
  const result = await runCodegenCore({
85
83
  ...codegenOptions({ store, libraries, girPath, elements: config.elements }),
86
84
  isForced,
@@ -112,9 +110,9 @@ const syncI18n = async (root, applicationId, shouldPreserveMetadataMessages = tr
112
110
  synchronizeCatalogs(project);
113
111
  await emitI18nTypes(root);
114
112
  };
115
- const isCodegenDisabled = async (cwd, mode) => {
113
+ const isCodegenDisabled = async (cwd, mode, configFile) => {
116
114
  try {
117
- const { config } = await loadConfig(cwd, { mode });
115
+ const { config } = await loadConfig(cwd, { mode, configFile });
118
116
  return config.codegen === false;
119
117
  }
120
118
  catch {
@@ -164,13 +162,39 @@ const generate = async (context, options) => {
164
162
  /* eslint-disable-next-line unicorn/consistent-boolean-name -- the boolean reports whether codegen ran */
165
163
  const ensureGeneratedIn = async (context, options = {}) => (isPreflightSkipped(options) ? false : generate(context, options));
166
164
  /* eslint-disable-next-line unicorn/consistent-boolean-name -- the boolean reports whether codegen ran */
167
- const ensureGenerated = async (cwd, options = {}) => isPreflightSkipped(options) ? false : generate(await resolveCodegenContext(cwd, options.mode), options);
168
- const resolveConfigWatch = async (cwd, mode) => {
169
- const { configFile, root } = await loadConfig(cwd, { mode });
165
+ const ensureGenerated = async (cwd, options = {}) => isPreflightSkipped(options)
166
+ ? false
167
+ : generate(await resolveCodegenContext(cwd, options.mode, options.configFile), options);
168
+ const resolveConfigWatch = async (cwd, mode, configFile, initialDependencies = []) => {
169
+ let selectedConfigFile;
170
+ if (configFile === undefined) {
171
+ const loaded = await loadConfig(cwd, { mode });
172
+ selectedConfigFile = loaded.configFile;
173
+ }
174
+ else {
175
+ selectedConfigFile = resolve(cwd, configFile);
176
+ }
177
+ let knownDependencies = initialDependencies;
178
+ const selectedConfigName = relative(cwd, selectedConfigFile);
179
+ const resolvePaths = () => [
180
+ ...new Set([selectedConfigFile, ...knownDependencies]
181
+ .flatMap((path) => resolveConfigDependencies(path, selectedConfigName, cwd))),
182
+ ];
170
183
  return {
171
- paths: [resolve(root, configFile)],
184
+ paths: resolvePaths(),
185
+ resolvePaths,
172
186
  regenerate: async () => {
173
- await runCodegen({ cwd: root, mode });
187
+ let loaded;
188
+ try {
189
+ loaded = await loadConfig(cwd, { mode, configFile: selectedConfigFile });
190
+ }
191
+ catch (error) {
192
+ knownDependencies = [...new Set([...knownDependencies, ...configDependenciesFor(error)])];
193
+ throw error;
194
+ }
195
+ knownDependencies = configDependenciesFor(loaded);
196
+ await runCodegen({ cwd, mode, resolved: loaded });
197
+ return resolvePaths();
174
198
  },
175
199
  };
176
200
  };
@@ -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 { getShadowingStorePaths, sweepProjectStaging } from \"@gtkx/codegen/internal\";\nimport { type Config, loadConfig } from \"@gtkx/config\";\nimport {\n isAgentRulesEnabled,\n resolveElementComponents,\n resolveElementProps,\n resolveLazyElements,\n resolveOmittedProps,\n} from \"@gtkx/config/internal\";\nimport { info } from \"@gtkx/utils\";\nimport { existsSync, rmSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { resolveCatalogProject, synchronizeCatalogs } from \"../i18n/catalogs.js\";\nimport { extractSourceCatalog } from \"../i18n/source-messages.js\";\nimport { clearI18nTypes, emitI18nTypes } from \"../i18n/types.js\";\nimport { upsertAgentRules } from \"../internal/agent-rules.js\";\nimport { discoverSourceFiles } from \"../internal/source-imports.js\";\nimport { emitSchemaEnv } from \"../settings/schema.js\";\nimport { type CodegenInputs, isCodegenStale, resolveCodegenInputs } from \"./freshness.js\";\nimport { type ReferenceResult, writeReference } from \"./reference.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 shouldPreserveI18nMetadata?: boolean | undefined;\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[];\n configFile: string;\n libraries: string[];\n reference?: ReferenceResult | 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 EnsureGeneratedOptions = {\n shouldAnnounce?: boolean;\n mode?: string;\n shouldPreserveI18nMetadata?: boolean | undefined;\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 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 removeStores(\n store.react === null\n ? [store.giStoreDir, store.giLinkDir]\n : [store.giStoreDir, store.giLinkDir, store.jsxStoreDir, store.jsxLinkDir],\n );\n};\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 } = options.resolved ?? (await loadConfig(cwd, { mode: options.mode }));\n await syncI18n(cwd, config.applicationId, options.shouldPreserveI18nMetadata);\n emitSchemaEnv(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({ store, libraries, girPath, elements: config.elements }),\n isForced,\n });\n\n const reference = await writeReference({ root: cwd, config, girPath, libraries, isForced });\n\n if (isAgentRulesEnabled(config)) {\n upsertAgentRules(cwd);\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 reference,\n };\n};\n\nconst syncI18n = async (\n root: string,\n applicationId: string,\n shouldPreserveMetadataMessages = true,\n): Promise<void> => {\n const project = resolveCatalogProject(root, applicationId);\n\n if (project === null) {\n clearI18nTypes(root);\n\n return;\n }\n\n const srcDir = join(root, \"src\");\n const sourceFiles = discoverSourceFiles(existsSync(srcDir) ? srcDir : root);\n await extractSourceCatalog(project, sourceFiles, shouldPreserveMetadataMessages);\n synchronizeCatalogs(project);\n await emitI18nTypes(root);\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 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 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 if (context.config.codegen === false) {\n const result = await runCodegen({\n cwd: context.root,\n mode: options.mode,\n resolved: { config: context.config, configFile: context.configFile },\n shouldPreserveI18nMetadata: options.shouldPreserveI18nMetadata,\n });\n\n return result.isRegenerated;\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\n const result = await runCodegen({\n cwd: context.root,\n mode: options.mode,\n resolved,\n shouldPreserveI18nMetadata: options.shouldPreserveI18nMetadata,\n ...(inputs !== null && { inputs }),\n });\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 ensureGenerated,\n ensureGeneratedIn,\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 configDependenciesFor,\n isAgentRulesEnabled,\n resolveElementComponents,\n resolveElementProps,\n resolveLazyElements,\n resolveOmittedProps,\n} from \"@gtkx/config/internal\";\nimport { info } from \"@gtkx/utils\";\nimport { existsSync, rmSync } from \"node:fs\";\nimport { join, relative, resolve } from \"node:path\";\nimport { resolveCatalogProject, synchronizeCatalogs } from \"../i18n/catalogs.js\";\nimport { extractSourceCatalog } from \"../i18n/source-messages.js\";\nimport { clearI18nTypes, emitI18nTypes } from \"../i18n/types.js\";\nimport { upsertAgentRules } from \"../internal/agent-rules.js\";\nimport { discoverSourceFiles } from \"../internal/source-imports.js\";\nimport { emitSchemaEnv } from \"../settings/schema.js\";\nimport { resolveConfigDependencies } from \"./config-dependencies.js\";\nimport { type CodegenInputs, isCodegenStale, resolveCodegenInputs } from \"./freshness.js\";\nimport { type ReferenceResult, writeReference } from \"./reference.js\";\nimport { type CodegenContext, type CodegenStore, resolveCodegenContext } from \"./store-resolver.js\";\n\ntype RunCodegenOptions = {\n cwd?: string;\n mode?: string | undefined;\n configFile?: string | undefined;\n isForced?: boolean;\n inputs?: CodegenInputs;\n resolved?: LoadedConfig;\n shouldPreserveI18nMetadata?: boolean | undefined;\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[];\n configFile: string;\n libraries: string[];\n reference?: ReferenceResult | 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 EnsureGeneratedOptions = {\n shouldAnnounce?: boolean;\n mode?: string;\n configFile?: string | undefined;\n shouldPreserveI18nMetadata?: boolean | undefined;\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 owner: store.owner,\n },\n jsx:\n store.react === null\n ? undefined\n : {\n storeDir: store.jsxStoreDir,\n linkDir: store.jsxLinkDir,\n version: store.react.version,\n owner: store.owner,\n },\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 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 } = options.resolved ?? (await loadConfig(cwd, {\n mode: options.mode,\n configFile: options.configFile,\n }));\n await syncI18n(cwd, config.applicationId, options.shouldPreserveI18nMetadata);\n emitSchemaEnv(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 const result = await runCodegenCore({\n ...codegenOptions({ store, libraries, girPath, elements: config.elements }),\n isForced,\n });\n\n const reference = await writeReference({ root: cwd, config, girPath, libraries, isForced });\n\n if (isAgentRulesEnabled(config)) {\n upsertAgentRules(cwd);\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 reference,\n };\n};\n\nconst syncI18n = async (\n root: string,\n applicationId: string,\n shouldPreserveMetadataMessages = true,\n): Promise<void> => {\n const project = resolveCatalogProject(root, applicationId);\n\n if (project === null) {\n clearI18nTypes(root);\n\n return;\n }\n\n const srcDir = join(root, \"src\");\n const sourceFiles = discoverSourceFiles(existsSync(srcDir) ? srcDir : root);\n await extractSourceCatalog(project, sourceFiles, shouldPreserveMetadataMessages);\n synchronizeCatalogs(project);\n await emitI18nTypes(root);\n};\n\nconst isCodegenDisabled = async (cwd: string, mode?: string, configFile?: string): Promise<boolean> => {\n try {\n const { config } = await loadConfig(cwd, { mode, configFile });\n\n return config.codegen === false;\n } catch {\n return false;\n }\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 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 if (context.config.codegen === false) {\n const result = await runCodegen({\n cwd: context.root,\n mode: options.mode,\n resolved: { config: context.config, configFile: context.configFile },\n shouldPreserveI18nMetadata: options.shouldPreserveI18nMetadata,\n });\n\n return result.isRegenerated;\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\n const result = await runCodegen({\n cwd: context.root,\n mode: options.mode,\n resolved,\n shouldPreserveI18nMetadata: options.shouldPreserveI18nMetadata,\n ...(inputs !== null && { inputs }),\n });\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)\n ? false\n : generate(await resolveCodegenContext(cwd, options.mode, options.configFile), options);\n\nconst resolveConfigWatch = async (\n cwd: string,\n mode?: string,\n configFile?: string,\n initialDependencies: string[] = [],\n): Promise<{ paths: string[]; resolvePaths: () => string[]; regenerate: () => Promise<string[]> }> => {\n let selectedConfigFile: string;\n\n if (configFile === undefined) {\n const loaded = await loadConfig(cwd, { mode });\n selectedConfigFile = loaded.configFile;\n } else {\n selectedConfigFile = resolve(cwd, configFile);\n }\n\n let knownDependencies = initialDependencies;\n const selectedConfigName = relative(cwd, selectedConfigFile);\n const resolvePaths = (): string[] => [\n ...new Set(\n [selectedConfigFile, ...knownDependencies]\n .flatMap((path) => resolveConfigDependencies(path, selectedConfigName, cwd)),\n ),\n ];\n\n return {\n paths: resolvePaths(),\n resolvePaths,\n regenerate: async () => {\n let loaded: Awaited<ReturnType<typeof loadConfig>>;\n\n try {\n loaded = await loadConfig(cwd, { mode, configFile: selectedConfigFile });\n } catch (error) {\n knownDependencies = [...new Set([...knownDependencies, ...configDependenciesFor(error)])];\n throw error;\n }\n\n knownDependencies = configDependenciesFor(loaded);\n await runCodegen({ cwd, mode, resolved: loaded });\n\n return resolvePaths();\n },\n };\n};\n\nexport {\n runCodegen,\n isCodegenDisabled,\n ensureGenerated,\n ensureGeneratedIn,\n resolveConfigWatch,\n type RunCodegenResult,\n};\n"]}
@@ -5,6 +5,7 @@ type CodegenStore = {
5
5
  jsxStoreDir: string;
6
6
  jsxLinkDir: string;
7
7
  runtimeVersion: string;
8
+ owner: string;
8
9
  react: CodegenReactPackage | null;
9
10
  };
10
11
  type CodegenReactPackage = {
@@ -14,8 +15,9 @@ type CodegenContext = {
14
15
  root: string;
15
16
  config: Config;
16
17
  configFile: string;
18
+ configDependencies: string[];
17
19
  };
18
20
  declare const resolveCodegenStore: (dir: string) => CodegenStore;
19
- declare const resolveCodegenContext: (cwd: string, mode?: string) => Promise<CodegenContext>;
21
+ declare const resolveCodegenContext: (cwd: string, mode?: string, selectedConfig?: string) => Promise<CodegenContext>;
20
22
  export { resolveCodegenStore, resolveCodegenContext, type CodegenContext, type CodegenStore };
21
23
  //# 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;CACnB,CAAC;AAEF,KAAK,cAAc,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AAgBF,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
+ {"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;AAOvD,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,MAAM,CAAC;IACd,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,cAAc,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAChC,CAAC;AAgBF,QAAA,MAAM,mBAAmB,GAAI,KAAK,MAAM,KAAG,YAsB1C,CAAC;AAEF,QAAA,MAAM,qBAAqB,GAAU,KAAK,MAAM,EAAE,OAAO,MAAM,EAAE,iBAAiB,MAAM,KAAG,OAAO,CAAC,cAAc,CAKhH,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { resolveStore } from "@gtkx/codegen";
2
2
  import { loadConfig } from "@gtkx/config";
3
- import { existsSync } from "node:fs";
3
+ import { configDependenciesFor } from "@gtkx/config/internal";
4
+ import { existsSync, realpathSync } from "node:fs";
4
5
  import { createRequire } from "node:module";
5
6
  import { dirname, join } from "node:path";
6
7
  import { pathToFileURL } from "node:url";
@@ -28,14 +29,16 @@ const resolveCodegenStore = (dir) => {
28
29
  jsxStoreDir: store.jsx?.storeDir ?? siblingStore(store.gi.storeDir),
29
30
  jsxLinkDir: store.jsx?.linkDir ?? siblingStore(store.gi.linkDir),
30
31
  runtimeVersion: store.gi.version,
32
+ owner: store.gi.owner ?? realpathSync(dir),
31
33
  react: hasReactRuntime && store.jsx !== null
32
34
  ? { version: store.jsx.version }
33
35
  : null,
34
36
  };
35
37
  };
36
- const resolveCodegenContext = async (cwd, mode) => {
37
- const { config, configFile } = await loadConfig(cwd, { mode });
38
- return { root: cwd, config, configFile };
38
+ const resolveCodegenContext = async (cwd, mode, selectedConfig) => {
39
+ const loaded = await loadConfig(cwd, { mode, configFile: selectedConfig });
40
+ const { config, configFile } = loaded;
41
+ return { root: cwd, config, configFile, configDependencies: configDependenciesFor(loaded) };
39
42
  };
40
43
  export { resolveCodegenStore, resolveCodegenContext };
41
44
  //# sourceMappingURL=store-resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store-resolver.js","sourceRoot":"","sources":["../../src/codegen/store-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAe,UAAU,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAqBzC,MAAM,UAAU,GAAG,CAAC,OAAuB,EAAE,GAAW,EAAE,WAAmB,EAAW,EAAE;IACtF,IAAI,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,eAAe,CAAC,CAAC;QAE/C,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAEtD,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IACvE,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAE5E,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAgB,EAAE;IACtD,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAErF,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAE1D,OAAO;QACH,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ;QAC7B,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO;QAC3B,WAAW,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC;QACnE,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;QAChE,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO;QAChC,KAAK,EACD,eAAe,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI;YACjC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE;YAChC,CAAC,CAAC,IAAI;KACjB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,KAAK,EAAE,GAAW,EAAE,IAAa,EAA2B,EAAE;IACxF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAC7C,CAAC,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAA0C,CAAC","sourcesContent":["import { resolveStore } from \"@gtkx/codegen\";\nimport { type Config, loadConfig } from \"@gtkx/config\";\nimport { existsSync } 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};\n\ntype CodegenContext = {\n root: string;\n config: Config;\n configFile: string;\n};\n\nconst hasPackage = (require: NodeJS.Require, dir: string, packageName: string): boolean => {\n try {\n require.resolve(`${packageName}/package.json`);\n\n return true;\n } catch {\n const unscoped = packageName.replace(/^@[^/]+\\//, \"\");\n\n return existsSync(join(dir, \"packages\", unscoped, \"package.json\"));\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 (!hasPackage(require, dir, \"@gtkx/native\")) {\n throw new Error(\"Cannot resolve @gtkx/native from the project; is it installed?\");\n }\n\n const store = resolveStore(dir);\n const hasReactRuntime = hasPackage(require, dir, \"react\");\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 }\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
+ {"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 { configDependenciesFor } from \"@gtkx/config/internal\";\nimport { existsSync, 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 owner: string;\n react: CodegenReactPackage | null;\n};\n\ntype CodegenReactPackage = {\n version: string;\n};\n\ntype CodegenContext = {\n root: string;\n config: Config;\n configFile: string;\n configDependencies: string[];\n};\n\nconst hasPackage = (require: NodeJS.Require, dir: string, packageName: string): boolean => {\n try {\n require.resolve(`${packageName}/package.json`);\n\n return true;\n } catch {\n const unscoped = packageName.replace(/^@[^/]+\\//, \"\");\n\n return existsSync(join(dir, \"packages\", unscoped, \"package.json\"));\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 (!hasPackage(require, dir, \"@gtkx/native\")) {\n throw new Error(\"Cannot resolve @gtkx/native from the project; is it installed?\");\n }\n\n const store = resolveStore(dir);\n const hasReactRuntime = hasPackage(require, dir, \"react\");\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 owner: store.gi.owner ?? realpathSync(dir),\n react:\n hasReactRuntime && store.jsx !== null\n ? { version: store.jsx.version }\n : null,\n };\n};\n\nconst resolveCodegenContext = async (cwd: string, mode?: string, selectedConfig?: string): Promise<CodegenContext> => {\n const loaded = await loadConfig(cwd, { mode, configFile: selectedConfig });\n const { config, configFile } = loaded;\n\n return { root: cwd, config, configFile, configDependencies: configDependenciesFor(loaded) };\n};\n\nexport { resolveCodegenStore, resolveCodegenContext, type CodegenContext, type CodegenStore };\n"]}
@@ -1,4 +1,9 @@
1
1
  declare const build: import("citty").CommandDef<{
2
+ readonly out: {
3
+ readonly type: "string";
4
+ readonly description: "Output directory below the project root (default: dist)";
5
+ };
6
+ readonly config: import("citty").StringArgDef;
2
7
  readonly entry: import("citty").PositionalArgDef;
3
8
  readonly cwd: import("citty").StringArgDef;
4
9
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,KAAK;;;EAqBT,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,KAAK;;;;;;;;EA+BT,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1,7 +1,60 @@
1
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
2
+ if (value !== null && value !== void 0) {
3
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
4
+ var dispose, inner;
5
+ if (async) {
6
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
7
+ dispose = value[Symbol.asyncDispose];
8
+ }
9
+ if (dispose === void 0) {
10
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
11
+ dispose = value[Symbol.dispose];
12
+ if (async) inner = dispose;
13
+ }
14
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
15
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
16
+ env.stack.push({ value: value, dispose: dispose, async: async });
17
+ }
18
+ else if (async) {
19
+ env.stack.push({ async: true });
20
+ }
21
+ return value;
22
+ };
23
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
24
+ return function (env) {
25
+ function fail(e) {
26
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
27
+ env.hasError = true;
28
+ }
29
+ var r, s = 0;
30
+ function next() {
31
+ while (r = env.stack.pop()) {
32
+ try {
33
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
34
+ if (r.dispose) {
35
+ var result = r.dispose.call(r.value);
36
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
37
+ }
38
+ else s |= 1;
39
+ }
40
+ catch (e) {
41
+ fail(e);
42
+ }
43
+ }
44
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
45
+ if (env.hasError) throw env.error;
46
+ }
47
+ return next();
48
+ };
49
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
50
+ var e = new Error(message);
51
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
+ });
1
53
  import { info } from "@gtkx/utils";
2
54
  import { defineCommand } from "citty";
3
55
  import { build as buildApp } from "../builder.js";
4
- import { entryArg } from "../internal/entry-arg.js";
56
+ import { prepareBuildOutDir, resolveBuildOutDir } from "../internal/build-output.js";
57
+ import { configArg, entryArg } from "../internal/entry-arg.js";
5
58
  import { prepareProject } from "../internal/prepare-project.js";
6
59
  const BUILD_MODE = "production";
7
60
  const build = defineCommand({
@@ -11,17 +64,37 @@ const build = defineCommand({
11
64
  },
12
65
  args: {
13
66
  ...entryArg,
67
+ ...configArg,
68
+ out: {
69
+ type: "string",
70
+ description: "Output directory below the project root (default: dist)",
71
+ },
14
72
  },
15
73
  async run({ args }) {
16
- const { cwd, entry } = await prepareProject(args, BUILD_MODE);
17
- info(`Building ${entry}`);
18
- const bundlePath = await buildApp({
19
- entry,
20
- vite: {
21
- root: cwd,
22
- },
23
- });
24
- info(`Build complete: ${bundlePath}`);
74
+ const env_1 = { stack: [], error: void 0, hasError: false };
75
+ try {
76
+ const { cwd, entry, configFile } = await prepareProject(args, BUILD_MODE);
77
+ const outDir = resolveBuildOutDir(cwd, args.out);
78
+ const preparedOutput = __addDisposableResource(env_1, prepareBuildOutDir(cwd, outDir), false);
79
+ info(`Building ${entry}`);
80
+ const bundlePath = await buildApp({
81
+ entry,
82
+ configFile,
83
+ vite: {
84
+ root: cwd,
85
+ build: { outDir: preparedOutput.path, emptyOutDir: false },
86
+ },
87
+ });
88
+ preparedOutput.commit();
89
+ info(`Build complete: ${bundlePath}`);
90
+ }
91
+ catch (e_1) {
92
+ env_1.error = e_1;
93
+ env_1.hasError = true;
94
+ }
95
+ finally {
96
+ __disposeResources(env_1);
97
+ }
25
98
  },
26
99
  });
27
100
  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,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;KACd;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,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 },\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 vite: {\n root: cwd,\n },\n });\n\n info(`Build complete: ${bundlePath}`);\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,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC/D,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,GAAG,SAAS;QACZ,GAAG,EAAE;YACD,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yDAAyD;SACzE;KACJ;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;;;YACd,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACjD,MAAM,cAAc,kCAAG,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,QAAA,CAAC;YACvD,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;YAE1B,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC;gBAC9B,KAAK;gBACL,UAAU;gBACV,IAAI,EAAE;oBACF,IAAI,EAAE,GAAG;oBACT,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;iBAC7D;aACJ,CAAC,CAAC;YAEH,cAAc,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;;;;;;;;;KACzC;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 { prepareBuildOutDir, resolveBuildOutDir } from \"../internal/build-output.js\";\nimport { configArg, 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 ...configArg,\n out: {\n type: \"string\",\n description: \"Output directory below the project root (default: dist)\",\n },\n },\n async run({ args }) {\n const { cwd, entry, configFile } = await prepareProject(args, BUILD_MODE);\n const outDir = resolveBuildOutDir(cwd, args.out);\n using preparedOutput = prepareBuildOutDir(cwd, outDir);\n info(`Building ${entry}`);\n\n const bundlePath = await buildApp({\n entry,\n configFile,\n vite: {\n root: cwd,\n build: { outDir: preparedOutput.path, emptyOutDir: false },\n },\n });\n\n preparedOutput.commit();\n info(`Build complete: ${bundlePath}`);\n },\n});\n\nexport { build };\n"]}
@@ -0,0 +1,9 @@
1
+ declare const cleanup: import("citty").CommandDef<{
2
+ readonly cwd: import("citty").StringArgDef;
3
+ readonly "dry-run": {
4
+ readonly type: "boolean";
5
+ readonly description: "List stale directories without removing them";
6
+ };
7
+ }>;
8
+ export { cleanup };
9
+ //# sourceMappingURL=cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/commands/cleanup.ts"],"names":[],"mappings":"AAeA,QAAA,MAAM,OAAO;;;;;;EA8BX,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { info } from "@gtkx/utils";
2
+ import { findStaleHeadlessDisplays, reapStaleHeadlessDisplays } from "@gtkx/vitest/headless";
3
+ import { defineCommand } from "citty";
4
+ import { findStaleCompileCaches, reapStaleCompileCaches } from "../internal/compile-cache-store.js";
5
+ import { cwdArg } from "../internal/entry-arg.js";
6
+ const DISPLAY_LABEL = "stale headless runtime directories";
7
+ const COMPILE_CACHE_LABEL = "stale compile cache directories";
8
+ const report = (paths) => {
9
+ for (const path of paths) {
10
+ info(`cleanup: ${path}`);
11
+ }
12
+ };
13
+ const cleanup = defineCommand({
14
+ meta: {
15
+ name: "cleanup",
16
+ description: "Remove stale GTKX headless runtime and compile cache directories",
17
+ },
18
+ args: {
19
+ "dry-run": {
20
+ type: "boolean",
21
+ description: "List stale directories without removing them",
22
+ },
23
+ ...cwdArg,
24
+ },
25
+ run({ args }) {
26
+ const displays = findStaleHeadlessDisplays();
27
+ const compileCaches = findStaleCompileCaches();
28
+ report(displays.map((candidate) => candidate.runtimeDir));
29
+ report(compileCaches);
30
+ if (args["dry-run"] === true) {
31
+ info(`cleanup: found ${String(displays.length)} ${DISPLAY_LABEL}`);
32
+ info(`cleanup: found ${String(compileCaches.length)} ${COMPILE_CACHE_LABEL}`);
33
+ return;
34
+ }
35
+ const removedDisplays = reapStaleHeadlessDisplays(displays);
36
+ const removedCaches = reapStaleCompileCaches(compileCaches);
37
+ info(`cleanup: removed ${String(removedDisplays.length)} ${DISPLAY_LABEL}`);
38
+ info(`cleanup: removed ${String(removedCaches.length)} ${COMPILE_CACHE_LABEL}`);
39
+ },
40
+ });
41
+ export { cleanup };
42
+ //# sourceMappingURL=cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/commands/cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACpG,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,MAAM,aAAa,GAAG,oCAAoC,CAAC;AAC3D,MAAM,mBAAmB,GAAG,iCAAiC,CAAC;AAE9D,MAAM,MAAM,GAAG,CAAC,KAAe,EAAQ,EAAE;IACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,aAAa,CAAC;IAC1B,IAAI,EAAE;QACF,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,kEAAkE;KAClF;IACD,IAAI,EAAE;QACF,SAAS,EAAE;YACP,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,8CAA8C;SAC9D;QACD,GAAG,MAAM;KACZ;IACD,GAAG,CAAC,EAAE,IAAI,EAAE;QACR,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,sBAAsB,EAAE,CAAC;QAC/C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,aAAa,CAAC,CAAC;QAEtB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,kBAAkB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,kBAAkB,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;YAE9E,OAAO;QACX,CAAC;QAED,MAAM,eAAe,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,oBAAoB,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,oBAAoB,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IACpF,CAAC;CACJ,CAAC,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,CAAC","sourcesContent":["import { info } from \"@gtkx/utils\";\nimport { findStaleHeadlessDisplays, reapStaleHeadlessDisplays } from \"@gtkx/vitest/headless\";\nimport { defineCommand } from \"citty\";\nimport { findStaleCompileCaches, reapStaleCompileCaches } from \"../internal/compile-cache-store.js\";\nimport { cwdArg } from \"../internal/entry-arg.js\";\n\nconst DISPLAY_LABEL = \"stale headless runtime directories\";\nconst COMPILE_CACHE_LABEL = \"stale compile cache directories\";\n\nconst report = (paths: string[]): void => {\n for (const path of paths) {\n info(`cleanup: ${path}`);\n }\n};\n\nconst cleanup = defineCommand({\n meta: {\n name: \"cleanup\",\n description: \"Remove stale GTKX headless runtime and compile cache directories\",\n },\n args: {\n \"dry-run\": {\n type: \"boolean\",\n description: \"List stale directories without removing them\",\n },\n ...cwdArg,\n },\n run({ args }) {\n const displays = findStaleHeadlessDisplays();\n const compileCaches = findStaleCompileCaches();\n report(displays.map((candidate) => candidate.runtimeDir));\n report(compileCaches);\n\n if (args[\"dry-run\"] === true) {\n info(`cleanup: found ${String(displays.length)} ${DISPLAY_LABEL}`);\n info(`cleanup: found ${String(compileCaches.length)} ${COMPILE_CACHE_LABEL}`);\n\n return;\n }\n\n const removedDisplays = reapStaleHeadlessDisplays(displays);\n const removedCaches = reapStaleCompileCaches(compileCaches);\n info(`cleanup: removed ${String(removedDisplays.length)} ${DISPLAY_LABEL}`);\n info(`cleanup: removed ${String(removedCaches.length)} ${COMPILE_CACHE_LABEL}`);\n },\n});\n\nexport { cleanup };\n"]}
@@ -1,5 +1,6 @@
1
1
  declare const codegen: import("citty").CommandDef<{
2
2
  readonly cwd: import("citty").StringArgDef;
3
+ readonly config: import("citty").StringArgDef;
3
4
  readonly force: {
4
5
  readonly type: "boolean";
5
6
  readonly description: "Wipe the generated store and regenerate unconditionally (recover a corrupted store)";
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"AAWA,QAAA,MAAM,OAAO;;;;;;;EAwCX,CAAC;AAQH,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"AAWA,QAAA,MAAM,OAAO;;;;;;;;EAyCX,CAAC;AAQH,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -2,7 +2,7 @@ import { info } from "@gtkx/utils";
2
2
  import { defineCommand } from "citty";
3
3
  import { formatCodegenResult } from "../codegen/report.js";
4
4
  import { ensureGenerated, isCodegenDisabled, runCodegen } from "../codegen/run-codegen.js";
5
- import { cwdArg, resolveCwd } from "../internal/entry-arg.js";
5
+ import { configArg, cwdArg, resolveCwd } from "../internal/entry-arg.js";
6
6
  const FORCED_WHILE_DISABLED_MESSAGE = "codegen is disabled for this project, so --force has no store to regenerate here. " +
7
7
  "Remove `codegen: false` from gtkx.config.ts, or run `gtkx codegen --force` where the installed " +
8
8
  "binding store is generated.";
@@ -17,24 +17,25 @@ const codegen = defineCommand({
17
17
  description: "Wipe the generated store and regenerate unconditionally (recover a corrupted store)",
18
18
  default: false,
19
19
  },
20
+ ...configArg,
20
21
  ...cwdArg,
21
22
  },
22
23
  async run({ args }) {
23
24
  const cwd = resolveCwd(args);
24
- const isDisabled = await isCodegenDisabled(cwd);
25
+ const isDisabled = await isCodegenDisabled(cwd, undefined, args.config);
25
26
  checkForce(isDisabled, args.force);
26
27
  if (isDisabled) {
27
- await runCodegen({ cwd });
28
+ await runCodegen({ cwd, configFile: args.config });
28
29
  info("codegen: disabled for this project; reusing an installed binding store");
29
30
  return;
30
31
  }
31
32
  if (!args.force) {
32
- const isRan = await ensureGenerated(cwd);
33
+ const isRan = await ensureGenerated(cwd, { configFile: args.config });
33
34
  info(isRan ? "codegen: regenerated stale bindings" : "codegen: bindings up to date");
34
35
  return;
35
36
  }
36
37
  const startedAt = Date.now();
37
- const result = await runCodegen({ cwd, isForced: true });
38
+ const result = await runCodegen({ cwd, configFile: args.config, isForced: true });
38
39
  const lines = formatCodegenResult(result, Date.now() - startedAt);
39
40
  for (const line of lines) {
40
41
  info(line);
@@ -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,MAAM,2BAA2B,CAAC;AAC3F,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,8EAA8E;KAC9F;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,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,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 } 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 project bindings, translation catalogs, and TypeScript declarations\",\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 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 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"]}
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,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEzE,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,8EAA8E;KAC9F;IACD,IAAI,EAAE;QACF,KAAK,EAAE;YACH,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,qFAAqF;YAClG,OAAO,EAAE,KAAK;SACjB;QACD,GAAG,SAAS;QACZ,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,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxE,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACnD,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,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,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,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,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 } from \"../codegen/run-codegen.js\";\nimport { configArg, 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 project bindings, translation catalogs, and TypeScript declarations\",\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 ...configArg,\n ...cwdArg,\n },\n async run({ args }) {\n const cwd = resolveCwd(args);\n const isDisabled = await isCodegenDisabled(cwd, undefined, args.config);\n checkForce(isDisabled, args.force);\n\n if (isDisabled) {\n await runCodegen({ cwd, configFile: args.config });\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, { configFile: args.config });\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, configFile: args.config, isForced: true });\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"]}
@@ -3,6 +3,10 @@ declare const deploy: import("citty").CommandDef<{
3
3
  readonly type: "string";
4
4
  readonly description: `Comma-separated package formats to build (${string})`;
5
5
  };
6
+ readonly arch: {
7
+ readonly type: "string";
8
+ readonly description: `Comma-separated architectures to build (${string}; default: the host)`;
9
+ };
6
10
  readonly out: {
7
11
  readonly type: "string";
8
12
  readonly description: "Output directory relative to the project root (default: build)";
@@ -15,6 +19,7 @@ declare const deploy: import("citty").CommandDef<{
15
19
  readonly type: "boolean";
16
20
  readonly description: "Package what is already in dist/ instead of rebuilding";
17
21
  };
22
+ readonly config: import("citty").StringArgDef;
18
23
  readonly entry: import("citty").PositionalArgDef;
19
24
  readonly cwd: import("citty").StringArgDef;
20
25
  }>;
@@ -1 +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"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;EA2CV,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC"}