@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.
- package/README.md +1 -1
- package/dist/builder.d.ts +1 -0
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +2 -2
- package/dist/builder.js.map +1 -1
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/codegen/freshness.d.ts.map +1 -1
- package/dist/codegen/freshness.js +2 -1
- package/dist/codegen/freshness.js.map +1 -1
- package/dist/codegen/reference.d.ts +17 -0
- package/dist/codegen/reference.d.ts.map +1 -0
- package/dist/codegen/reference.js +37 -0
- package/dist/codegen/reference.js.map +1 -0
- package/dist/codegen/report.d.ts.map +1 -1
- package/dist/codegen/report.js +17 -3
- package/dist/codegen/report.js.map +1 -1
- package/dist/codegen/run-codegen.d.ts +4 -0
- package/dist/codegen/run-codegen.d.ts.map +1 -1
- package/dist/codegen/run-codegen.js +93 -27
- package/dist/codegen/run-codegen.js.map +1 -1
- package/dist/commands/codegen.js +1 -1
- package/dist/commands/codegen.js.map +1 -1
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +10 -16
- package/dist/commands/docs.js.map +1 -1
- package/dist/commands/mcp.d.ts +13 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +68 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/deploy/freedesktop/localize.d.ts +6 -0
- package/dist/deploy/freedesktop/localize.d.ts.map +1 -0
- package/dist/deploy/freedesktop/localize.js +107 -0
- package/dist/deploy/freedesktop/localize.js.map +1 -0
- package/dist/deploy/install-hints.d.ts.map +1 -1
- package/dist/deploy/install-hints.js +5 -0
- package/dist/deploy/install-hints.js.map +1 -1
- package/dist/deploy/notices/gtkx.js +1 -1
- package/dist/deploy/notices/gtkx.js.map +1 -1
- package/dist/deploy/notices/libraries.d.ts.map +1 -1
- package/dist/deploy/notices/libraries.js +2 -1
- package/dist/deploy/notices/libraries.js.map +1 -1
- package/dist/deploy/payload/launcher.d.ts.map +1 -1
- package/dist/deploy/payload/launcher.js +2 -0
- package/dist/deploy/payload/launcher.js.map +1 -1
- package/dist/deploy/payload/stage.d.ts +1 -1
- package/dist/deploy/payload/stage.d.ts.map +1 -1
- package/dist/deploy/payload/stage.js +20 -11
- package/dist/deploy/payload/stage.js.map +1 -1
- package/dist/deploy/run-deploy.d.ts.map +1 -1
- package/dist/deploy/run-deploy.js +87 -15
- package/dist/deploy/run-deploy.js.map +1 -1
- package/dist/deploy/settings/libraries.d.ts.map +1 -1
- package/dist/deploy/settings/libraries.js +7 -9
- package/dist/deploy/settings/libraries.js.map +1 -1
- package/dist/deploy/targets/flatpak-source.d.ts.map +1 -1
- package/dist/deploy/targets/flatpak-source.js +21 -10
- package/dist/deploy/targets/flatpak-source.js.map +1 -1
- package/dist/deploy/tools.d.ts +6 -1
- package/dist/deploy/tools.d.ts.map +1 -1
- package/dist/deploy/tools.js +27 -4
- package/dist/deploy/tools.js.map +1 -1
- package/dist/dev/locale-dir.d.ts +3 -0
- package/dist/dev/locale-dir.d.ts.map +1 -0
- package/dist/dev/locale-dir.js +17 -0
- package/dist/dev/locale-dir.js.map +1 -0
- package/dist/dev/runner-main.d.ts.map +1 -1
- package/dist/dev/runner-main.js +4 -1
- package/dist/dev/runner-main.js.map +1 -1
- package/dist/dev/runner.d.ts.map +1 -1
- package/dist/dev/runner.js +6 -0
- package/dist/dev/runner.js.map +1 -1
- package/dist/dev/vite-dev-server.d.ts +1 -0
- package/dist/dev/vite-dev-server.d.ts.map +1 -1
- package/dist/dev/vite-dev-server.js.map +1 -1
- package/dist/i18n/binding-extractor.d.ts +30 -0
- package/dist/i18n/binding-extractor.d.ts.map +1 -0
- package/dist/i18n/binding-extractor.js +1324 -0
- package/dist/i18n/binding-extractor.js.map +1 -0
- package/dist/i18n/catalog-template.d.ts +3 -0
- package/dist/i18n/catalog-template.d.ts.map +1 -0
- package/dist/i18n/catalog-template.js +18 -0
- package/dist/i18n/catalog-template.js.map +1 -0
- package/dist/i18n/catalogs.d.ts +21 -0
- package/dist/i18n/catalogs.d.ts.map +1 -0
- package/dist/i18n/catalogs.js +139 -0
- package/dist/i18n/catalogs.js.map +1 -0
- package/dist/i18n/extractor-plugin.d.ts +8 -0
- package/dist/i18n/extractor-plugin.d.ts.map +1 -0
- package/dist/i18n/extractor-plugin.js +247 -0
- package/dist/i18n/extractor-plugin.js.map +1 -0
- package/dist/i18n/metadata-templates.d.ts +11 -0
- package/dist/i18n/metadata-templates.d.ts.map +1 -0
- package/dist/i18n/metadata-templates.js +11 -0
- package/dist/i18n/metadata-templates.js.map +1 -0
- package/dist/i18n/source-messages.d.ts +23 -0
- package/dist/i18n/source-messages.d.ts.map +1 -0
- package/dist/i18n/source-messages.js +403 -0
- package/dist/i18n/source-messages.js.map +1 -0
- package/dist/i18n/types.d.ts +10 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +108 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/internal/agent-rules.d.ts +7 -0
- package/dist/internal/agent-rules.d.ts.map +1 -0
- package/dist/internal/agent-rules.js +106 -0
- package/dist/internal/agent-rules.js.map +1 -0
- package/dist/internal/docs-elements.d.ts +8 -0
- package/dist/internal/docs-elements.d.ts.map +1 -0
- package/dist/internal/docs-elements.js +12 -0
- package/dist/internal/docs-elements.js.map +1 -0
- package/dist/internal/source-imports.d.ts +5 -1
- package/dist/internal/source-imports.d.ts.map +1 -1
- package/dist/internal/source-imports.js +25 -47
- package/dist/internal/source-imports.js.map +1 -1
- package/dist/mcp/client-config.d.ts +22 -0
- package/dist/mcp/client-config.d.ts.map +1 -0
- package/dist/mcp/client-config.js +94 -0
- package/dist/mcp/client-config.js.map +1 -0
- package/dist/mcp/client.d.ts +0 -1
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +11 -39
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/handlers.d.ts +2 -1
- package/dist/mcp/handlers.d.ts.map +1 -1
- package/dist/mcp/handlers.js.map +1 -1
- package/dist/settings/render.d.ts +4 -1
- package/dist/settings/render.d.ts.map +1 -1
- package/dist/settings/render.js +11 -2
- package/dist/settings/render.js.map +1 -1
- package/dist/settings/schema.d.ts.map +1 -1
- package/dist/settings/schema.js +3 -1
- package/dist/settings/schema.js.map +1 -1
- package/dist/vite-plugins/animated.d.ts +5 -0
- package/dist/vite-plugins/animated.d.ts.map +1 -0
- package/dist/vite-plugins/animated.js +325 -0
- package/dist/vite-plugins/animated.js.map +1 -0
- package/dist/vite-plugins/asset-imports.d.ts.map +1 -1
- package/dist/vite-plugins/asset-imports.js +4 -14
- package/dist/vite-plugins/asset-imports.js.map +1 -1
- package/dist/vite-plugins/i18n.d.ts +5 -0
- package/dist/vite-plugins/i18n.d.ts.map +1 -0
- package/dist/vite-plugins/i18n.js +88 -0
- package/dist/vite-plugins/i18n.js.map +1 -0
- package/dist/vite-plugins/index.d.ts +1 -1
- package/dist/vite-plugins/index.d.ts.map +1 -1
- package/dist/vite-plugins/index.js +5 -1
- package/dist/vite-plugins/index.js.map +1 -1
- package/dist/vite-plugins/resources.d.ts.map +1 -1
- package/dist/vite-plugins/resources.js +12 -57
- package/dist/vite-plugins/resources.js.map +1 -1
- package/dist/vite-plugins/self-contained.d.ts.map +1 -1
- package/dist/vite-plugins/self-contained.js +128 -135
- package/dist/vite-plugins/self-contained.js.map +1 -1
- package/dist/vite-plugins/settings-worker-env.js +2 -2
- package/dist/vite-plugins/settings-worker-env.js.map +1 -1
- package/dist/vite-plugins/settings.d.ts.map +1 -1
- package/dist/vite-plugins/settings.js +2 -1
- package/dist/vite-plugins/settings.js.map +1 -1
- package/package.json +11 -9
- package/src/builder.ts +3 -2
- package/src/cli.ts +5 -0
- package/src/codegen/freshness.ts +2 -1
- package/src/codegen/reference.ts +59 -0
- package/src/codegen/report.ts +18 -3
- package/src/codegen/run-codegen.ts +134 -31
- package/src/commands/codegen.ts +1 -1
- package/src/commands/docs.ts +10 -28
- package/src/commands/mcp.ts +81 -0
- package/src/deploy/freedesktop/localize.ts +144 -0
- package/src/deploy/install-hints.ts +5 -0
- package/src/deploy/notices/gtkx.ts +1 -1
- package/src/deploy/notices/libraries.ts +2 -1
- package/src/deploy/payload/launcher.ts +2 -0
- package/src/deploy/payload/stage.ts +35 -10
- package/src/deploy/run-deploy.ts +128 -13
- package/src/deploy/settings/libraries.ts +7 -10
- package/src/deploy/targets/flatpak-source.ts +33 -10
- package/src/deploy/tools.ts +36 -3
- package/src/dev/locale-dir.ts +22 -0
- package/src/dev/runner-main.ts +4 -1
- package/src/dev/runner.ts +8 -0
- package/src/dev/vite-dev-server.ts +1 -0
- package/src/i18n/binding-extractor.ts +1969 -0
- package/src/i18n/catalog-template.ts +24 -0
- package/src/i18n/catalogs.ts +216 -0
- package/src/i18n/extractor-plugin.ts +413 -0
- package/src/i18n/metadata-templates.ts +29 -0
- package/src/i18n/source-messages.ts +608 -0
- package/src/i18n/types.ts +154 -0
- package/src/internal/agent-rules.ts +135 -0
- package/src/internal/docs-elements.ts +21 -0
- package/src/internal/source-imports.ts +31 -60
- package/src/mcp/client-config.ts +130 -0
- package/src/mcp/client.ts +17 -44
- package/src/mcp/handlers.ts +7 -6
- package/src/settings/render.ts +16 -2
- package/src/settings/schema.ts +3 -1
- package/src/vite-plugins/animated.ts +486 -0
- package/src/vite-plugins/asset-imports.ts +5 -17
- package/src/vite-plugins/i18n.ts +146 -0
- package/src/vite-plugins/index.ts +5 -0
- package/src/vite-plugins/resources.ts +12 -74
- package/src/vite-plugins/self-contained.ts +150 -169
- package/src/vite-plugins/settings-worker-env.ts +2 -2
- package/src/vite-plugins/settings.ts +2 -1
package/src/deploy/tools.ts
CHANGED
|
@@ -56,6 +56,36 @@ const FLATPAK_NODE_GENERATOR_PNPM: DeployTool = {
|
|
|
56
56
|
isPresent: () => hasGeneratorPnpmSupport(),
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
+
const MSGFMT: DeployTool = {
|
|
60
|
+
command: "msgfmt",
|
|
61
|
+
purpose: "compiles the gettext catalogs and localized metadata",
|
|
62
|
+
isOptional: false,
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const MSGGREP: DeployTool = {
|
|
66
|
+
command: "msggrep",
|
|
67
|
+
purpose: "retains generated metadata while refreshing the catalog template",
|
|
68
|
+
isOptional: false,
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const MSGINIT: DeployTool = {
|
|
72
|
+
command: "msginit",
|
|
73
|
+
purpose: "initializes newly listed gettext catalogs",
|
|
74
|
+
isOptional: false,
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const MSGMERGE: DeployTool = {
|
|
78
|
+
command: "msgmerge",
|
|
79
|
+
purpose: "synchronizes translations with the catalog template",
|
|
80
|
+
isOptional: false,
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const XGETTEXT: DeployTool = {
|
|
84
|
+
command: "xgettext",
|
|
85
|
+
purpose: "extracts the gettext catalog template",
|
|
86
|
+
isOptional: false,
|
|
87
|
+
};
|
|
88
|
+
|
|
59
89
|
const STRIP: DeployTool = {
|
|
60
90
|
command: "strip",
|
|
61
91
|
purpose: "would shrink the bundled Node.js by removing its symbols",
|
|
@@ -115,11 +145,9 @@ const toolLines = (tool: DeployTool, hints: string[]): string[] => [
|
|
|
115
145
|
const missingToolsMessage = (report: ToolReport): string => {
|
|
116
146
|
const family = detectPackageFamily();
|
|
117
147
|
const required = report.missingRequired.flatMap((tool) => toolLines(tool, installHints(tool.command, family)));
|
|
118
|
-
const count = report.missingRequired.length;
|
|
119
|
-
const plural = count === 1 ? "tool is" : "tools are";
|
|
120
148
|
|
|
121
149
|
return [
|
|
122
|
-
|
|
150
|
+
"Cannot deploy without these tools:",
|
|
123
151
|
"",
|
|
124
152
|
...required,
|
|
125
153
|
"",
|
|
@@ -149,8 +177,13 @@ export {
|
|
|
149
177
|
FILE_TOOL,
|
|
150
178
|
FLATPAK,
|
|
151
179
|
FLATPAK_BUILDER,
|
|
180
|
+
MSGFMT,
|
|
181
|
+
MSGGREP,
|
|
182
|
+
MSGINIT,
|
|
183
|
+
MSGMERGE,
|
|
152
184
|
probeTools,
|
|
153
185
|
STRIP,
|
|
154
186
|
TAR,
|
|
155
187
|
warnMissingOptional,
|
|
188
|
+
XGETTEXT,
|
|
156
189
|
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { compileCatalogs, resolveCatalogProject, synchronizeCatalogs } from "../i18n/catalogs.js";
|
|
2
|
+
import { createRetainedStagingDir } from "../internal/staging-dir.js";
|
|
3
|
+
|
|
4
|
+
const LOCALE_DIR_ENV = "GTKX_LOCALE_DIR";
|
|
5
|
+
const localeDir = createRetainedStagingDir("locale");
|
|
6
|
+
|
|
7
|
+
const prepareDevLocaleDir = (root: string, domain: string): string | null => {
|
|
8
|
+
const project = resolveCatalogProject(root, domain);
|
|
9
|
+
|
|
10
|
+
if (project === null) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const outputDir = localeDir.retain();
|
|
15
|
+
synchronizeCatalogs(project);
|
|
16
|
+
compileCatalogs(project, outputDir);
|
|
17
|
+
process.env[LOCALE_DIR_ENV] = outputDir;
|
|
18
|
+
|
|
19
|
+
return outputDir;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { prepareDevLocaleDir };
|
package/src/dev/runner-main.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { loadConfig } from "@gtkx/config";
|
|
2
|
+
import { resolveFuture } from "@gtkx/config/internal";
|
|
2
3
|
import { error } from "@gtkx/utils";
|
|
3
4
|
import { resolve } from "node:path";
|
|
4
5
|
import { DEV_ENTRY_ENV } from "./entry-env.js";
|
|
5
6
|
import { prepareDevIconDir } from "./icon-dir.js";
|
|
7
|
+
import { prepareDevLocaleDir } from "./locale-dir.js";
|
|
6
8
|
import { createDevRunner } from "./runner.js";
|
|
7
9
|
import { prepareDevSchemaDir } from "./schema-dir.js";
|
|
8
10
|
|
|
@@ -22,7 +24,8 @@ const main = async (): Promise<void> => {
|
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
const { config, root } = await loadConfig(cwd, { mode: "development" });
|
|
25
|
-
|
|
27
|
+
prepareDevLocaleDir(root, config.applicationId);
|
|
28
|
+
prepareDevSchemaDir(root, resolveFuture(config.future).isResourceImported);
|
|
26
29
|
prepareDevIconDir(root, config.applicationId, config.applicationIcon);
|
|
27
30
|
const entryPath = resolve(cwd, entryArg);
|
|
28
31
|
const { defaultDevRunnerDeps } = await import("./runner-deps.js");
|
package/src/dev/runner.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ApplicationInstance } from "@gtkx/runtime/internal";
|
|
2
2
|
import type { InlineConfig, Plugin } from "vite";
|
|
3
3
|
import { error, warn } from "@gtkx/utils";
|
|
4
|
+
import { isCatalogSource } from "../i18n/catalogs.js";
|
|
4
5
|
import { loadModuleExclusively, withExclusiveLoad } from "../internal/module-loads.js";
|
|
5
6
|
import { createChangeQueue, type WatchedChange } from "./change-queue.js";
|
|
6
7
|
import { createFailureTracker, type FailureTracker } from "./failure-tracker.js";
|
|
@@ -374,6 +375,13 @@ const applyChange = async (session: DevSession, change: WatchedChange): Promise<
|
|
|
374
375
|
return;
|
|
375
376
|
}
|
|
376
377
|
|
|
378
|
+
if (isCatalogSource(session.server.config.root, change.path)) {
|
|
379
|
+
session.deps.log(`Translation catalog changed: ${change.path}`);
|
|
380
|
+
await requestRestart(session);
|
|
381
|
+
|
|
382
|
+
return;
|
|
383
|
+
}
|
|
384
|
+
|
|
377
385
|
if (isServerConfigFile(session.server.config, change.path)) {
|
|
378
386
|
await restartForServerConfig(session, change.path);
|
|
379
387
|
|