@gtkx/cli 1.4.0 → 1.6.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 (206) hide show
  1. package/README.md +1 -1
  2. package/dist/builder.d.ts +1 -0
  3. package/dist/builder.d.ts.map +1 -1
  4. package/dist/builder.js +2 -2
  5. package/dist/builder.js.map +1 -1
  6. package/dist/cli.js +4 -0
  7. package/dist/cli.js.map +1 -1
  8. package/dist/codegen/freshness.d.ts.map +1 -1
  9. package/dist/codegen/freshness.js +2 -1
  10. package/dist/codegen/freshness.js.map +1 -1
  11. package/dist/codegen/reference.d.ts +17 -0
  12. package/dist/codegen/reference.d.ts.map +1 -0
  13. package/dist/codegen/reference.js +37 -0
  14. package/dist/codegen/reference.js.map +1 -0
  15. package/dist/codegen/report.d.ts.map +1 -1
  16. package/dist/codegen/report.js +17 -3
  17. package/dist/codegen/report.js.map +1 -1
  18. package/dist/codegen/run-codegen.d.ts +4 -0
  19. package/dist/codegen/run-codegen.d.ts.map +1 -1
  20. package/dist/codegen/run-codegen.js +93 -27
  21. package/dist/codegen/run-codegen.js.map +1 -1
  22. package/dist/commands/codegen.js +1 -1
  23. package/dist/commands/codegen.js.map +1 -1
  24. package/dist/commands/docs.d.ts.map +1 -1
  25. package/dist/commands/docs.js +10 -16
  26. package/dist/commands/docs.js.map +1 -1
  27. package/dist/commands/mcp.d.ts +13 -0
  28. package/dist/commands/mcp.d.ts.map +1 -0
  29. package/dist/commands/mcp.js +68 -0
  30. package/dist/commands/mcp.js.map +1 -0
  31. package/dist/deploy/freedesktop/localize.d.ts +6 -0
  32. package/dist/deploy/freedesktop/localize.d.ts.map +1 -0
  33. package/dist/deploy/freedesktop/localize.js +107 -0
  34. package/dist/deploy/freedesktop/localize.js.map +1 -0
  35. package/dist/deploy/install-hints.d.ts.map +1 -1
  36. package/dist/deploy/install-hints.js +5 -0
  37. package/dist/deploy/install-hints.js.map +1 -1
  38. package/dist/deploy/notices/gtkx.js +1 -1
  39. package/dist/deploy/notices/gtkx.js.map +1 -1
  40. package/dist/deploy/notices/libraries.d.ts.map +1 -1
  41. package/dist/deploy/notices/libraries.js +2 -1
  42. package/dist/deploy/notices/libraries.js.map +1 -1
  43. package/dist/deploy/payload/launcher.d.ts.map +1 -1
  44. package/dist/deploy/payload/launcher.js +2 -0
  45. package/dist/deploy/payload/launcher.js.map +1 -1
  46. package/dist/deploy/payload/stage.d.ts +1 -1
  47. package/dist/deploy/payload/stage.d.ts.map +1 -1
  48. package/dist/deploy/payload/stage.js +20 -11
  49. package/dist/deploy/payload/stage.js.map +1 -1
  50. package/dist/deploy/run-deploy.d.ts.map +1 -1
  51. package/dist/deploy/run-deploy.js +87 -15
  52. package/dist/deploy/run-deploy.js.map +1 -1
  53. package/dist/deploy/settings/libraries.d.ts.map +1 -1
  54. package/dist/deploy/settings/libraries.js +7 -9
  55. package/dist/deploy/settings/libraries.js.map +1 -1
  56. package/dist/deploy/targets/flatpak-source.d.ts.map +1 -1
  57. package/dist/deploy/targets/flatpak-source.js +21 -10
  58. package/dist/deploy/targets/flatpak-source.js.map +1 -1
  59. package/dist/deploy/tools.d.ts +6 -1
  60. package/dist/deploy/tools.d.ts.map +1 -1
  61. package/dist/deploy/tools.js +27 -4
  62. package/dist/deploy/tools.js.map +1 -1
  63. package/dist/dev/locale-dir.d.ts +3 -0
  64. package/dist/dev/locale-dir.d.ts.map +1 -0
  65. package/dist/dev/locale-dir.js +17 -0
  66. package/dist/dev/locale-dir.js.map +1 -0
  67. package/dist/dev/runner-main.d.ts.map +1 -1
  68. package/dist/dev/runner-main.js +4 -1
  69. package/dist/dev/runner-main.js.map +1 -1
  70. package/dist/dev/runner.d.ts.map +1 -1
  71. package/dist/dev/runner.js +6 -0
  72. package/dist/dev/runner.js.map +1 -1
  73. package/dist/dev/vite-dev-server.d.ts +1 -0
  74. package/dist/dev/vite-dev-server.d.ts.map +1 -1
  75. package/dist/dev/vite-dev-server.js.map +1 -1
  76. package/dist/i18n/binding-extractor.d.ts +30 -0
  77. package/dist/i18n/binding-extractor.d.ts.map +1 -0
  78. package/dist/i18n/binding-extractor.js +1324 -0
  79. package/dist/i18n/binding-extractor.js.map +1 -0
  80. package/dist/i18n/catalog-template.d.ts +3 -0
  81. package/dist/i18n/catalog-template.d.ts.map +1 -0
  82. package/dist/i18n/catalog-template.js +18 -0
  83. package/dist/i18n/catalog-template.js.map +1 -0
  84. package/dist/i18n/catalogs.d.ts +21 -0
  85. package/dist/i18n/catalogs.d.ts.map +1 -0
  86. package/dist/i18n/catalogs.js +139 -0
  87. package/dist/i18n/catalogs.js.map +1 -0
  88. package/dist/i18n/extractor-plugin.d.ts +8 -0
  89. package/dist/i18n/extractor-plugin.d.ts.map +1 -0
  90. package/dist/i18n/extractor-plugin.js +247 -0
  91. package/dist/i18n/extractor-plugin.js.map +1 -0
  92. package/dist/i18n/metadata-templates.d.ts +11 -0
  93. package/dist/i18n/metadata-templates.d.ts.map +1 -0
  94. package/dist/i18n/metadata-templates.js +11 -0
  95. package/dist/i18n/metadata-templates.js.map +1 -0
  96. package/dist/i18n/source-messages.d.ts +23 -0
  97. package/dist/i18n/source-messages.d.ts.map +1 -0
  98. package/dist/i18n/source-messages.js +403 -0
  99. package/dist/i18n/source-messages.js.map +1 -0
  100. package/dist/i18n/types.d.ts +10 -0
  101. package/dist/i18n/types.d.ts.map +1 -0
  102. package/dist/i18n/types.js +108 -0
  103. package/dist/i18n/types.js.map +1 -0
  104. package/dist/internal/agent-rules.d.ts +7 -0
  105. package/dist/internal/agent-rules.d.ts.map +1 -0
  106. package/dist/internal/agent-rules.js +106 -0
  107. package/dist/internal/agent-rules.js.map +1 -0
  108. package/dist/internal/docs-elements.d.ts +8 -0
  109. package/dist/internal/docs-elements.d.ts.map +1 -0
  110. package/dist/internal/docs-elements.js +12 -0
  111. package/dist/internal/docs-elements.js.map +1 -0
  112. package/dist/internal/source-imports.d.ts +5 -1
  113. package/dist/internal/source-imports.d.ts.map +1 -1
  114. package/dist/internal/source-imports.js +25 -47
  115. package/dist/internal/source-imports.js.map +1 -1
  116. package/dist/mcp/client-config.d.ts +22 -0
  117. package/dist/mcp/client-config.d.ts.map +1 -0
  118. package/dist/mcp/client-config.js +94 -0
  119. package/dist/mcp/client-config.js.map +1 -0
  120. package/dist/mcp/client.d.ts +0 -1
  121. package/dist/mcp/client.d.ts.map +1 -1
  122. package/dist/mcp/client.js +11 -39
  123. package/dist/mcp/client.js.map +1 -1
  124. package/dist/mcp/handlers.d.ts +2 -1
  125. package/dist/mcp/handlers.d.ts.map +1 -1
  126. package/dist/mcp/handlers.js.map +1 -1
  127. package/dist/settings/render.d.ts +4 -1
  128. package/dist/settings/render.d.ts.map +1 -1
  129. package/dist/settings/render.js +11 -2
  130. package/dist/settings/render.js.map +1 -1
  131. package/dist/settings/schema.d.ts.map +1 -1
  132. package/dist/settings/schema.js +3 -1
  133. package/dist/settings/schema.js.map +1 -1
  134. package/dist/vite-plugins/animated.d.ts +5 -0
  135. package/dist/vite-plugins/animated.d.ts.map +1 -0
  136. package/dist/vite-plugins/animated.js +325 -0
  137. package/dist/vite-plugins/animated.js.map +1 -0
  138. package/dist/vite-plugins/asset-imports.d.ts.map +1 -1
  139. package/dist/vite-plugins/asset-imports.js +4 -14
  140. package/dist/vite-plugins/asset-imports.js.map +1 -1
  141. package/dist/vite-plugins/i18n.d.ts +5 -0
  142. package/dist/vite-plugins/i18n.d.ts.map +1 -0
  143. package/dist/vite-plugins/i18n.js +88 -0
  144. package/dist/vite-plugins/i18n.js.map +1 -0
  145. package/dist/vite-plugins/index.d.ts +1 -1
  146. package/dist/vite-plugins/index.d.ts.map +1 -1
  147. package/dist/vite-plugins/index.js +5 -1
  148. package/dist/vite-plugins/index.js.map +1 -1
  149. package/dist/vite-plugins/resources.d.ts.map +1 -1
  150. package/dist/vite-plugins/resources.js +12 -57
  151. package/dist/vite-plugins/resources.js.map +1 -1
  152. package/dist/vite-plugins/self-contained.d.ts.map +1 -1
  153. package/dist/vite-plugins/self-contained.js +128 -135
  154. package/dist/vite-plugins/self-contained.js.map +1 -1
  155. package/dist/vite-plugins/settings-worker-env.js +2 -2
  156. package/dist/vite-plugins/settings-worker-env.js.map +1 -1
  157. package/dist/vite-plugins/settings.d.ts.map +1 -1
  158. package/dist/vite-plugins/settings.js +2 -1
  159. package/dist/vite-plugins/settings.js.map +1 -1
  160. package/package.json +11 -9
  161. package/src/builder.ts +3 -2
  162. package/src/cli.ts +5 -0
  163. package/src/codegen/freshness.ts +2 -1
  164. package/src/codegen/reference.ts +59 -0
  165. package/src/codegen/report.ts +18 -3
  166. package/src/codegen/run-codegen.ts +134 -31
  167. package/src/commands/codegen.ts +1 -1
  168. package/src/commands/docs.ts +10 -28
  169. package/src/commands/mcp.ts +81 -0
  170. package/src/deploy/freedesktop/localize.ts +144 -0
  171. package/src/deploy/install-hints.ts +5 -0
  172. package/src/deploy/notices/gtkx.ts +1 -1
  173. package/src/deploy/notices/libraries.ts +2 -1
  174. package/src/deploy/payload/launcher.ts +2 -0
  175. package/src/deploy/payload/stage.ts +35 -10
  176. package/src/deploy/run-deploy.ts +128 -13
  177. package/src/deploy/settings/libraries.ts +7 -10
  178. package/src/deploy/targets/flatpak-source.ts +33 -10
  179. package/src/deploy/tools.ts +36 -3
  180. package/src/dev/locale-dir.ts +22 -0
  181. package/src/dev/runner-main.ts +4 -1
  182. package/src/dev/runner.ts +8 -0
  183. package/src/dev/vite-dev-server.ts +1 -0
  184. package/src/i18n/binding-extractor.ts +1969 -0
  185. package/src/i18n/catalog-template.ts +24 -0
  186. package/src/i18n/catalogs.ts +216 -0
  187. package/src/i18n/extractor-plugin.ts +413 -0
  188. package/src/i18n/metadata-templates.ts +29 -0
  189. package/src/i18n/source-messages.ts +608 -0
  190. package/src/i18n/types.ts +154 -0
  191. package/src/internal/agent-rules.ts +135 -0
  192. package/src/internal/docs-elements.ts +21 -0
  193. package/src/internal/source-imports.ts +31 -60
  194. package/src/mcp/client-config.ts +130 -0
  195. package/src/mcp/client.ts +17 -44
  196. package/src/mcp/handlers.ts +7 -6
  197. package/src/settings/render.ts +16 -2
  198. package/src/settings/schema.ts +3 -1
  199. package/src/vite-plugins/animated.ts +486 -0
  200. package/src/vite-plugins/asset-imports.ts +5 -17
  201. package/src/vite-plugins/i18n.ts +146 -0
  202. package/src/vite-plugins/index.ts +5 -0
  203. package/src/vite-plugins/resources.ts +12 -74
  204. package/src/vite-plugins/self-contained.ts +150 -169
  205. package/src/vite-plugins/settings-worker-env.ts +2 -2
  206. package/src/vite-plugins/settings.ts +2 -1
@@ -1,18 +1,21 @@
1
1
  import { createConfigLoader } from "@gtkx/config/internal";
2
2
  import createConfigPlugin from "@gtkx/config/vite-plugin";
3
+ import { gtkxAnimated } from "./animated.js";
3
4
  import { gtkxAssetImports } from "./asset-imports.js";
4
5
  import { gtkxBuiltUrl } from "./built-url.js";
5
6
  import { gtkxCss } from "./css.js";
7
+ import { gtkxI18n } from "./i18n.js";
6
8
  import { gtkxIcons } from "./icons.js";
7
9
  import { gtkxReactCompiler } from "./react-compiler.js";
8
10
  import { gtkxResources } from "./resources.js";
9
11
  import { gtkxSettings } from "./settings.js";
10
12
  import { gtkxStoreLinks } from "./store-links.js";
11
13
  import { gtkxUndeclaredLibrary } from "./undeclared-library.js";
12
- const gtkxVitePlugins = (mode, entryPath, buildManifest) => {
14
+ const gtkxVitePlugins = (mode, entryPath, buildManifest, shouldPreserveI18nMetadata = true) => {
13
15
  const loadConfig = createConfigLoader(mode === undefined ? {} : { mode });
14
16
  return [
15
17
  createConfigPlugin({ name: "gtkx:config", loadConfig }),
18
+ ...(entryPath === undefined ? [] : [gtkxI18n(entryPath, loadConfig, shouldPreserveI18nMetadata)]),
16
19
  gtkxStoreLinks(),
17
20
  gtkxUndeclaredLibrary(loadConfig),
18
21
  gtkxSettings(loadConfig, buildManifest),
@@ -21,6 +24,7 @@ const gtkxVitePlugins = (mode, entryPath, buildManifest) => {
21
24
  gtkxBuiltUrl(),
22
25
  gtkxResources(loadConfig, entryPath),
23
26
  gtkxCss(),
27
+ gtkxAnimated(loadConfig),
24
28
  gtkxReactCompiler(loadConfig),
25
29
  ];
26
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vite-plugins/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,eAAe,GAAG,CACpB,IAAa,EACb,SAAkB,EAClB,aAAsC,EAC9B,EAAE;IACV,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1E,OAAO;QACH,kBAAkB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;QACvD,cAAc,EAAE;QAChB,qBAAqB,CAAC,UAAU,CAAC;QACjC,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC;QACvC,SAAS,CAAC,UAAU,CAAC;QACrB,gBAAgB,CAAC,UAAU,CAAC;QAC5B,YAAY,EAAE;QACd,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC;QACpC,OAAO,EAAE;QACT,iBAAiB,CAAC,UAAU,CAAC;KAChC,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC","sourcesContent":["import type { Plugin } from \"vite\";\nimport { createConfigLoader } from \"@gtkx/config/internal\";\nimport createConfigPlugin from \"@gtkx/config/vite-plugin\";\nimport type { BuildManifestCollector } from \"../internal/build-manifest.js\";\nimport { gtkxAssetImports } from \"./asset-imports.js\";\nimport { gtkxBuiltUrl } from \"./built-url.js\";\nimport { gtkxCss } from \"./css.js\";\nimport { gtkxIcons } from \"./icons.js\";\nimport { gtkxReactCompiler } from \"./react-compiler.js\";\nimport { gtkxResources } from \"./resources.js\";\nimport { gtkxSettings } from \"./settings.js\";\nimport { gtkxStoreLinks } from \"./store-links.js\";\nimport { gtkxUndeclaredLibrary } from \"./undeclared-library.js\";\n\nconst gtkxVitePlugins = (\n mode?: string,\n entryPath?: string,\n buildManifest?: BuildManifestCollector,\n): Plugin[] => {\n const loadConfig = createConfigLoader(mode === undefined ? {} : { mode });\n\n return [\n createConfigPlugin({ name: \"gtkx:config\", loadConfig }),\n gtkxStoreLinks(),\n gtkxUndeclaredLibrary(loadConfig),\n gtkxSettings(loadConfig, buildManifest),\n gtkxIcons(loadConfig),\n gtkxAssetImports(loadConfig),\n gtkxBuiltUrl(),\n gtkxResources(loadConfig, entryPath),\n gtkxCss(),\n gtkxReactCompiler(loadConfig),\n ];\n};\n\nexport { gtkxVitePlugins };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vite-plugins/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,eAAe,GAAG,CACpB,IAAa,EACb,SAAkB,EAClB,aAAsC,EACtC,0BAA0B,GAAG,IAAI,EACzB,EAAE;IACV,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1E,OAAO;QACH,kBAAkB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;QACvD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,0BAA0B,CAAC,CAAC,CAAC;QACjG,cAAc,EAAE;QAChB,qBAAqB,CAAC,UAAU,CAAC;QACjC,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC;QACvC,SAAS,CAAC,UAAU,CAAC;QACrB,gBAAgB,CAAC,UAAU,CAAC;QAC5B,YAAY,EAAE;QACd,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC;QACpC,OAAO,EAAE;QACT,YAAY,CAAC,UAAU,CAAC;QACxB,iBAAiB,CAAC,UAAU,CAAC;KAChC,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC","sourcesContent":["import type { Plugin } from \"vite\";\nimport { createConfigLoader } from \"@gtkx/config/internal\";\nimport createConfigPlugin from \"@gtkx/config/vite-plugin\";\nimport type { BuildManifestCollector } from \"../internal/build-manifest.js\";\nimport { gtkxAnimated } from \"./animated.js\";\nimport { gtkxAssetImports } from \"./asset-imports.js\";\nimport { gtkxBuiltUrl } from \"./built-url.js\";\nimport { gtkxCss } from \"./css.js\";\nimport { gtkxI18n } from \"./i18n.js\";\nimport { gtkxIcons } from \"./icons.js\";\nimport { gtkxReactCompiler } from \"./react-compiler.js\";\nimport { gtkxResources } from \"./resources.js\";\nimport { gtkxSettings } from \"./settings.js\";\nimport { gtkxStoreLinks } from \"./store-links.js\";\nimport { gtkxUndeclaredLibrary } from \"./undeclared-library.js\";\n\nconst gtkxVitePlugins = (\n mode?: string,\n entryPath?: string,\n buildManifest?: BuildManifestCollector,\n shouldPreserveI18nMetadata = true,\n): Plugin[] => {\n const loadConfig = createConfigLoader(mode === undefined ? {} : { mode });\n\n return [\n createConfigPlugin({ name: \"gtkx:config\", loadConfig }),\n ...(entryPath === undefined ? [] : [gtkxI18n(entryPath, loadConfig, shouldPreserveI18nMetadata)]),\n gtkxStoreLinks(),\n gtkxUndeclaredLibrary(loadConfig),\n gtkxSettings(loadConfig, buildManifest),\n gtkxIcons(loadConfig),\n gtkxAssetImports(loadConfig),\n gtkxBuiltUrl(),\n gtkxResources(loadConfig, entryPath),\n gtkxCss(),\n gtkxAnimated(loadConfig),\n gtkxReactCompiler(loadConfig),\n ];\n};\n\nexport { gtkxVitePlugins };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAA6B,MAAM,EAAuD,MAAM,MAAM,CAAC;AAqpDnH,iBAAS,aAAa,CAAC,UAAU,GAAE,YAAmC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BlG;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAc,MAAM,EAAuD,MAAM,MAAM,CAAC;AAylDpG,iBAAS,aAAa,CAAC,UAAU,GAAE,YAAmC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAyBlG;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { createConfigLoader, resourceBasePath } from "@gtkx/config/internal";
1
+ import { createConfigLoader, resolveFuture, resourceBasePath } from "@gtkx/config/internal";
2
2
  import { error, info, isRecord, sortStrings } from "@gtkx/utils";
3
3
  import { copyFileSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
4
4
  import { basename, dirname, extname, isAbsolute, join, posix, relative, sep } from "node:path";
@@ -6,7 +6,7 @@ import { parseSync } from "vite";
6
6
  import { resolveDataDir } from "../internal/data-dir.js";
7
7
  import { listFilesRecursive } from "../internal/list-files.js";
8
8
  import { runCliTool } from "../internal/run-cli-tool.js";
9
- import { parseRuntimeImportsIn } from "../internal/source-imports.js";
9
+ import { parseRuntimeImportsIn, sourceLanguage } from "../internal/source-imports.js";
10
10
  import { createRetainedStagingDir, withStagingDir } from "../internal/staging-dir.js";
11
11
  import { ASSET_RE } from "./asset-extensions.js";
12
12
  import { DATA_PREFIX, isBareRelativeAsset, isDataAsset, parseIconSpecifier, parseResourceSpecifier, } from "./asset-specifier.js";
@@ -49,16 +49,6 @@ const STOCK_ICON_CONTEXTS = new Set([
49
49
  ]);
50
50
  const ICON_SIZE_RE = /^([1-9]\d*)x\1(?:@[1-9]\d*)?$/;
51
51
  const RESERVED_ICON_NAMES = new Set(["", ".", ".."]);
52
- const SOURCE_LANGUAGES = new Map([
53
- [".cjs", "jsx"],
54
- [".cts", "ts"],
55
- [".js", "jsx"],
56
- [".jsx", "jsx"],
57
- [".mjs", "jsx"],
58
- [".mts", "ts"],
59
- [".ts", "ts"],
60
- [".tsx", "tsx"],
61
- ]);
62
52
  const toForwardSlashes = (value) => value.replaceAll(/[/\\]/g, "/");
63
53
  const isWithin = (root, path) => {
64
54
  const rel = relative(root, path);
@@ -159,7 +149,7 @@ const derivedIconEntry = (state, sourcePath, requestedName) => {
159
149
  return { iconIdentity, iconName, resourcePath };
160
150
  };
161
151
  const hasSideEffectIconImport = (code, id) => {
162
- const lang = SOURCE_LANGUAGES.get(extname(stripQuery(id)).toLowerCase());
152
+ const lang = sourceLanguage(stripQuery(id));
163
153
  if (lang === undefined || !code.includes("?icon")) {
164
154
  return false;
165
155
  }
@@ -251,14 +241,6 @@ const registerDevAsset = (state) => {
251
241
  }
252
242
  };
253
243
  const importerKey = (importer) => stripQuery(importer);
254
- const claimEntry = (state, resourcePath, importer) => {
255
- if (importer === undefined) {
256
- return;
257
- }
258
- const importers = state.entryImporters.get(resourcePath) ?? new Set();
259
- importers.add(importerKey(importer));
260
- state.entryImporters.set(resourcePath, importers);
261
- };
262
244
  const trackBundledSpecifier = (state, importer, source) => {
263
245
  if (importer === undefined) {
264
246
  return;
@@ -268,32 +250,22 @@ const trackBundledSpecifier = (state, importer, source) => {
268
250
  specifiers.add(source);
269
251
  state.bundledSpecifiers.set(key, specifiers);
270
252
  };
271
- const claimIcon = (state, iconIdentity, importer) => {
272
- if (importer === undefined) {
273
- return;
274
- }
275
- const importers = state.iconImporters.get(iconIdentity) ?? new Set();
276
- importers.add(importerKey(importer));
277
- state.iconImporters.set(iconIdentity, importers);
278
- };
279
253
  const createResourceEntry = (sourcePath, resourcePath) => ({
280
254
  sourcePath,
281
255
  stagedRelPath: resourcePath.replace(/^\/+/, ""),
282
256
  resourcePath,
283
257
  });
284
- const activateEntry = (state, entry, importer) => {
258
+ const activateEntry = (state, entry) => {
285
259
  const existing = state.entries.get(entry.resourcePath);
286
260
  if (existing !== undefined) {
287
261
  if (existing.sourcePath !== entry.sourcePath) {
288
262
  throw new Error(`${existing.sourcePath} and ${entry.sourcePath} both resolve to the GResource path ` +
289
263
  entry.resourcePath);
290
264
  }
291
- claimEntry(state, entry.resourcePath, importer);
292
265
  return existing;
293
266
  }
294
267
  state.entries.set(entry.resourcePath, entry);
295
268
  state.sourcePaths.add(entry.sourcePath);
296
- claimEntry(state, entry.resourcePath, importer);
297
269
  return entry;
298
270
  };
299
271
  const isDeclarativeImporter = (state, importer) => !state.isBuild && state.isV2 && importer !== undefined;
@@ -344,10 +316,6 @@ const declareResolvedIcon = (state, importer, iconIdentity, entry) => {
344
316
  declareIcon(state, importer, iconIdentity, entry);
345
317
  }
346
318
  };
347
- const activateIcon = (state, importer, iconIdentity, entry) => {
348
- state.iconOwners.set(iconIdentity, entry);
349
- claimIcon(state, iconIdentity, importer);
350
- };
351
319
  const registerEntry = (state, absPath, rel, importer) => {
352
320
  const resourcePath = validateResourcePath(rel.startsWith("/") ? rel : `${state.prefix}/${rel}`);
353
321
  let entry = createResourceEntry(absPath, resourcePath);
@@ -357,7 +325,7 @@ const registerEntry = (state, absPath, rel, importer) => {
357
325
  return entry;
358
326
  }
359
327
  }
360
- return activateEntry(state, entry, importer);
328
+ return activateEntry(state, entry);
361
329
  };
362
330
  const registerIconEntry = (state, sourcePath, derived, importer) => {
363
331
  const shouldActivate = !isDeclarativeImporter(state, importer) ||
@@ -368,7 +336,7 @@ const registerIconEntry = (state, sourcePath, derived, importer) => {
368
336
  const entry = registerEntry(state, sourcePath, derived.resourcePath, importer);
369
337
  declareResolvedIcon(state, importer, derived.iconIdentity, entry);
370
338
  if (shouldActivate) {
371
- activateIcon(state, importer, derived.iconIdentity, entry);
339
+ state.iconOwners.set(derived.iconIdentity, entry);
372
340
  }
373
341
  return entry;
374
342
  };
@@ -554,8 +522,7 @@ const isSameSpecifiers = (left, right) => left === undefined
554
522
  const bundledSpecifiersIn = (imports) => new Set(imports
555
523
  .filter((entry) => parseResourceSpecifier(entry.source) !== null || parseIconSpecifier(entry.source) !== null)
556
524
  .map((entry) => entry.source));
557
- const isSourceModule = (file) => !file.endsWith(".d.ts") && !file.endsWith(".d.cts") && !file.endsWith(".d.mts") &&
558
- SOURCE_LANGUAGES.has(extname(file).toLowerCase());
525
+ const isSourceModule = (file) => sourceLanguage(file) !== undefined;
559
526
  const isBundledSource = (source) => parseResourceSpecifier(source) !== null || parseIconSpecifier(source) !== null;
560
527
  const validateUnbundledV2Source = (source) => {
561
528
  if (isLegacyDataSpecifier(source)) {
@@ -689,20 +656,18 @@ const activeImporterKeys = (state) => {
689
656
  return active;
690
657
  };
691
658
  const isImporterActive = (state, importer) => activeImporterKeys(state).has(importerKey(importer));
692
- const activateDeclaredIcon = (state, importer, iconIdentity, entry) => {
659
+ const activateDeclaredIcon = (state, iconIdentity, entry) => {
693
660
  const existing = state.iconOwners.get(iconIdentity);
694
661
  if (existing !== undefined && existing.sourcePath !== entry.sourcePath) {
695
662
  throw new Error(`${existing.sourcePath} and ${entry.sourcePath} both claim the themed icon ${iconIdentity}`);
696
663
  }
697
- const activeEntry = activateEntry(state, entry, importer);
698
- state.iconOwners.set(iconIdentity, activeEntry);
699
- claimIcon(state, iconIdentity, importer);
664
+ state.iconOwners.set(iconIdentity, activateEntry(state, entry));
700
665
  };
701
666
  const activateDeclaredEntries = (state, importer) => {
702
667
  const entries = state.declaredEntries.get(importer)?.values() ?? [];
703
668
  for (const entry of entries) {
704
669
  if (isDeclaredSourceAvailable(state, entry.sourcePath)) {
705
- activateEntry(state, entry, importer);
670
+ activateEntry(state, entry);
706
671
  }
707
672
  }
708
673
  };
@@ -710,7 +675,7 @@ const activateDeclaredIcons = (state, importer) => {
710
675
  const icons = state.declaredIcons.get(importer) ?? [];
711
676
  for (const [iconIdentity, entry] of icons) {
712
677
  if (isDeclaredSourceAvailable(state, entry.sourcePath)) {
713
- activateDeclaredIcon(state, importer, iconIdentity, entry);
678
+ activateDeclaredIcon(state, iconIdentity, entry);
714
679
  }
715
680
  }
716
681
  };
@@ -723,14 +688,10 @@ const activateDeclaredClaims = (state, active) => {
723
688
  const rebuildActiveClaims = (state) => {
724
689
  const previous = {
725
690
  entries: state.entries,
726
- entryImporters: state.entryImporters,
727
- iconImporters: state.iconImporters,
728
691
  iconOwners: state.iconOwners,
729
692
  sourcePaths: state.sourcePaths,
730
693
  };
731
694
  state.entries = new Map();
732
- state.entryImporters = new Map();
733
- state.iconImporters = new Map();
734
695
  state.iconOwners = new Map();
735
696
  state.sourcePaths = new Set();
736
697
  try {
@@ -738,8 +699,6 @@ const rebuildActiveClaims = (state) => {
738
699
  }
739
700
  catch (error_) {
740
701
  state.entries = previous.entries;
741
- state.entryImporters = previous.entryImporters;
742
- state.iconImporters = previous.iconImporters;
743
702
  state.iconOwners = previous.iconOwners;
744
703
  state.sourcePaths = previous.sourcePaths;
745
704
  throw error_;
@@ -840,7 +799,6 @@ const prepareReconciliation = async (ctx, state, reconciliation) => {
840
799
  };
841
800
  const commitReconciliation = (state, candidate) => {
842
801
  state.entries = candidate.entries;
843
- state.entryImporters = candidate.entryImporters;
844
802
  state.bundledSpecifiers = candidate.bundledSpecifiers;
845
803
  state.moduleDependencies = candidate.moduleDependencies;
846
804
  state.prunedDependencies = candidate.prunedDependencies;
@@ -849,7 +807,6 @@ const commitReconciliation = (state, candidate) => {
849
807
  state.missingSourcePaths = candidate.missingSourcePaths;
850
808
  state.sourcePaths = candidate.sourcePaths;
851
809
  state.iconOwners = candidate.iconOwners;
852
- state.iconImporters = candidate.iconImporters;
853
810
  };
854
811
  const reconcileV2Importer = async (ctx, state, id) => {
855
812
  const reconciliation = await importerReconciliation(ctx, state, id);
@@ -867,7 +824,7 @@ const resolveResourceConfig = async (state, config, loadConfig) => {
867
824
  const loaded = await loadConfig.load(config.root ?? process.cwd());
868
825
  state.prefix = resourceBasePath(loaded.config.applicationId);
869
826
  state.root = loaded.root;
870
- state.isV2 = loaded.config.future?.v2ResourceImports === true;
827
+ state.isV2 = resolveFuture(loaded.config.future).isResourceImported;
871
828
  return {
872
829
  assetsInclude: [ASSET_RE],
873
830
  };
@@ -1064,7 +1021,6 @@ function gtkxResources(loadConfig = createConfigLoader(), entryPath) {
1064
1021
  isBuild: false,
1065
1022
  isV2: false,
1066
1023
  entries: new Map(),
1067
- entryImporters: new Map(),
1068
1024
  bundledSpecifiers: new Map(),
1069
1025
  moduleDependencies: new Map(),
1070
1026
  prunedDependencies: new Map(),
@@ -1080,7 +1036,6 @@ function gtkxResources(loadConfig = createConfigLoader(), entryPath) {
1080
1036
  dataDir: null,
1081
1037
  bundleReferenceId: null,
1082
1038
  iconOwners: new Map(),
1083
- iconImporters: new Map(),
1084
1039
  };
1085
1040
  return createResourcesPlugin(state, loadConfig);
1086
1041
  }