@gtkx/cli 1.0.0-rc.1 → 1.0.0-rc.2
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/dist/builder.d.ts +3 -2
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +2 -1
- package/dist/builder.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +21 -6
- package/dist/cli.js.map +1 -1
- package/dist/codegen/freshness.d.ts +5 -5
- package/dist/codegen/freshness.d.ts.map +1 -1
- package/dist/codegen/freshness.js +26 -23
- package/dist/codegen/freshness.js.map +1 -1
- package/dist/codegen/report.d.ts +2 -1
- package/dist/codegen/report.d.ts.map +1 -1
- package/dist/codegen/report.js +4 -2
- package/dist/codegen/report.js.map +1 -1
- package/dist/codegen/run-codegen.d.ts +8 -8
- package/dist/codegen/run-codegen.d.ts.map +1 -1
- package/dist/codegen/run-codegen.js +72 -43
- package/dist/codegen/run-codegen.js.map +1 -1
- package/dist/codegen/store-resolver.d.ts +8 -5
- package/dist/codegen/store-resolver.d.ts.map +1 -1
- package/dist/codegen/store-resolver.js +26 -6
- package/dist/codegen/store-resolver.js.map +1 -1
- package/dist/commands/build.d.ts +4 -3
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +2 -1
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/codegen.d.ts +2 -1
- package/dist/commands/codegen.d.ts.map +1 -1
- package/dist/commands/codegen.js +6 -4
- package/dist/commands/codegen.js.map +1 -1
- package/dist/commands/dev.d.ts +2 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +2 -1
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/docs.d.ts +2 -1
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +22 -7
- package/dist/commands/docs.js.map +1 -1
- package/dist/dev/icon-dir.d.ts +2 -1
- package/dist/dev/icon-dir.d.ts.map +1 -1
- package/dist/dev/icon-dir.js +6 -3
- package/dist/dev/icon-dir.js.map +1 -1
- package/dist/dev/refresh-tracker.d.ts +5 -4
- package/dist/dev/refresh-tracker.d.ts.map +1 -1
- package/dist/dev/refresh-tracker.js +6 -5
- package/dist/dev/refresh-tracker.js.map +1 -1
- package/dist/dev/runner-deps.d.ts +2 -1
- package/dist/dev/runner-deps.d.ts.map +1 -1
- package/dist/dev/runner-deps.js +20 -4
- package/dist/dev/runner-deps.js.map +1 -1
- package/dist/dev/runner-main.d.ts +2 -1
- package/dist/dev/runner-main.d.ts.map +1 -1
- package/dist/dev/runner-main.js +3 -2
- package/dist/dev/runner-main.js.map +1 -1
- package/dist/dev/runner.d.ts +6 -5
- package/dist/dev/runner.d.ts.map +1 -1
- package/dist/dev/runner.js +69 -38
- package/dist/dev/runner.js.map +1 -1
- package/dist/dev/schema-dir.d.ts +2 -1
- package/dist/dev/schema-dir.d.ts.map +1 -1
- package/dist/dev/schema-dir.js +4 -2
- package/dist/dev/schema-dir.js.map +1 -1
- package/dist/dev/supervisor.d.ts +7 -6
- package/dist/dev/supervisor.d.ts.map +1 -1
- package/dist/dev/supervisor.js +107 -67
- package/dist/dev/supervisor.js.map +1 -1
- package/dist/dev/vite-dev-server.d.ts +3 -3
- package/dist/dev/vite-dev-server.d.ts.map +1 -1
- package/dist/dev/vite-dev-server.js +2 -1
- package/dist/dev/vite-dev-server.js.map +1 -1
- package/dist/internal/banner.d.ts +2 -1
- package/dist/internal/banner.d.ts.map +1 -1
- package/dist/internal/banner.js +2 -1
- package/dist/internal/banner.js.map +1 -1
- package/dist/internal/data-dir.d.ts +3 -2
- package/dist/internal/data-dir.d.ts.map +1 -1
- package/dist/internal/data-dir.js +29 -14
- package/dist/internal/data-dir.js.map +1 -1
- package/dist/internal/entry-arg.d.ts +5 -4
- package/dist/internal/entry-arg.d.ts.map +1 -1
- package/dist/internal/entry-arg.js +10 -7
- package/dist/internal/entry-arg.js.map +1 -1
- package/dist/internal/errors.d.ts +3 -2
- package/dist/internal/errors.d.ts.map +1 -1
- package/dist/internal/errors.js +7 -5
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/list-files.d.ts +3 -2
- package/dist/internal/list-files.d.ts.map +1 -1
- package/dist/internal/list-files.js +5 -3
- package/dist/internal/list-files.js.map +1 -1
- package/dist/internal/resolve-cli-tool.d.ts +2 -1
- package/dist/internal/resolve-cli-tool.d.ts.map +1 -1
- package/dist/internal/resolve-cli-tool.js +17 -10
- package/dist/internal/resolve-cli-tool.js.map +1 -1
- package/dist/internal/staging-dir.d.ts +3 -2
- package/dist/internal/staging-dir.d.ts.map +1 -1
- package/dist/internal/staging-dir.js +3 -2
- package/dist/internal/staging-dir.js.map +1 -1
- package/dist/internal/xdg-data-dirs.d.ts +2 -1
- package/dist/internal/xdg-data-dirs.d.ts.map +1 -1
- package/dist/internal/xdg-data-dirs.js +4 -2
- package/dist/internal/xdg-data-dirs.js.map +1 -1
- package/dist/mcp/client.d.ts +9 -4
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +106 -81
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/handlers.d.ts +3 -2
- package/dist/mcp/handlers.d.ts.map +1 -1
- package/dist/mcp/handlers.js +89 -61
- package/dist/mcp/handlers.js.map +1 -1
- package/dist/mcp/index.d.ts +2 -2
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +30 -13
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/serialize-widget.d.ts +3 -3
- package/dist/mcp/serialize-widget.d.ts.map +1 -1
- package/dist/mcp/serialize-widget.js +9 -6
- package/dist/mcp/serialize-widget.js.map +1 -1
- package/dist/mcp/testing-loader.d.ts +3 -4
- package/dist/mcp/testing-loader.d.ts.map +1 -1
- package/dist/mcp/testing-loader.js +43 -21
- package/dist/mcp/testing-loader.js.map +1 -1
- package/dist/mcp/widget-registry.d.ts +3 -2
- package/dist/mcp/widget-registry.d.ts.map +1 -1
- package/dist/mcp/widget-registry.js +4 -3
- package/dist/mcp/widget-registry.js.map +1 -1
- package/dist/refresh-globals.d.ts +2 -0
- package/dist/refresh-globals.d.ts.map +1 -0
- package/dist/refresh-globals.js +8 -0
- package/dist/refresh-globals.js.map +1 -0
- package/dist/refresh-runtime.d.ts +5 -11
- package/dist/refresh-runtime.d.ts.map +1 -1
- package/dist/refresh-runtime.js +16 -14
- package/dist/refresh-runtime.js.map +1 -1
- package/dist/settings/compile.d.ts +2 -1
- package/dist/settings/compile.d.ts.map +1 -1
- package/dist/settings/compile.js +6 -4
- package/dist/settings/compile.js.map +1 -1
- package/dist/settings/parser.d.ts +6 -5
- package/dist/settings/parser.d.ts.map +1 -1
- package/dist/settings/parser.js +26 -22
- package/dist/settings/parser.js.map +1 -1
- package/dist/settings/render.d.ts +3 -2
- package/dist/settings/render.d.ts.map +1 -1
- package/dist/settings/render.js +38 -64
- package/dist/settings/render.js.map +1 -1
- package/dist/settings/schema.d.ts +8 -8
- package/dist/settings/schema.d.ts.map +1 -1
- package/dist/settings/schema.js +61 -43
- package/dist/settings/schema.js.map +1 -1
- package/dist/vite-plugins/asset-extensions.d.ts +4 -3
- package/dist/vite-plugins/asset-extensions.d.ts.map +1 -1
- package/dist/vite-plugins/asset-extensions.js +4 -3
- package/dist/vite-plugins/asset-extensions.js.map +1 -1
- package/dist/vite-plugins/built-url.d.ts +2 -1
- package/dist/vite-plugins/built-url.d.ts.map +1 -1
- package/dist/vite-plugins/built-url.js +19 -13
- package/dist/vite-plugins/built-url.js.map +1 -1
- package/dist/vite-plugins/css.d.ts +2 -1
- package/dist/vite-plugins/css.d.ts.map +1 -1
- package/dist/vite-plugins/css.js +23 -15
- package/dist/vite-plugins/css.js.map +1 -1
- package/dist/vite-plugins/fast-refresh/refresh-filter.d.ts +5 -4
- package/dist/vite-plugins/fast-refresh/refresh-filter.d.ts.map +1 -1
- package/dist/vite-plugins/fast-refresh/refresh-filter.js +11 -7
- package/dist/vite-plugins/fast-refresh/refresh-filter.js.map +1 -1
- package/dist/vite-plugins/fast-refresh/swc-refresh.d.ts +4 -3
- package/dist/vite-plugins/fast-refresh/swc-refresh.d.ts.map +1 -1
- package/dist/vite-plugins/fast-refresh/swc-refresh.js +45 -41
- package/dist/vite-plugins/fast-refresh/swc-refresh.js.map +1 -1
- package/dist/vite-plugins/icons.d.ts +2 -1
- package/dist/vite-plugins/icons.d.ts.map +1 -1
- package/dist/vite-plugins/icons.js +24 -20
- package/dist/vite-plugins/icons.js.map +1 -1
- package/dist/vite-plugins/index.d.ts +2 -1
- package/dist/vite-plugins/index.d.ts.map +1 -1
- package/dist/vite-plugins/index.js +3 -2
- package/dist/vite-plugins/index.js.map +1 -1
- package/dist/vite-plugins/native.d.ts +2 -1
- package/dist/vite-plugins/native.d.ts.map +1 -1
- package/dist/vite-plugins/native.js +6 -4
- package/dist/vite-plugins/native.js.map +1 -1
- package/dist/vite-plugins/react-compiler.d.ts +3 -2
- package/dist/vite-plugins/react-compiler.d.ts.map +1 -1
- package/dist/vite-plugins/react-compiler.js +26 -20
- package/dist/vite-plugins/react-compiler.js.map +1 -1
- package/dist/vite-plugins/react-dom-prebundle.d.ts +2 -1
- package/dist/vite-plugins/react-dom-prebundle.d.ts.map +1 -1
- package/dist/vite-plugins/react-dom-prebundle.js +2 -1
- package/dist/vite-plugins/react-dom-prebundle.js.map +1 -1
- package/dist/vite-plugins/resource-init-module.d.ts +2 -1
- package/dist/vite-plugins/resource-init-module.d.ts.map +1 -1
- package/dist/vite-plugins/resource-init-module.js +39 -38
- package/dist/vite-plugins/resource-init-module.js.map +1 -1
- package/dist/vite-plugins/resource-shared.d.ts +7 -5
- package/dist/vite-plugins/resource-shared.d.ts.map +1 -1
- package/dist/vite-plugins/resource-shared.js +17 -10
- package/dist/vite-plugins/resource-shared.js.map +1 -1
- package/dist/vite-plugins/resources.d.ts +3 -2
- package/dist/vite-plugins/resources.d.ts.map +1 -1
- package/dist/vite-plugins/resources.js +94 -54
- package/dist/vite-plugins/resources.js.map +1 -1
- package/dist/vite-plugins/settings-worker-env.d.ts +2 -1
- package/dist/vite-plugins/settings-worker-env.d.ts.map +1 -1
- package/dist/vite-plugins/settings-worker-env.js +4 -2
- package/dist/vite-plugins/settings-worker-env.js.map +1 -1
- package/dist/vite-plugins/settings.d.ts +2 -1
- package/dist/vite-plugins/settings.d.ts.map +1 -1
- package/dist/vite-plugins/settings.js +56 -32
- package/dist/vite-plugins/settings.js.map +1 -1
- package/dist/vite-plugins/strip-query.d.ts +3 -0
- package/dist/vite-plugins/strip-query.d.ts.map +1 -0
- package/dist/vite-plugins/strip-query.js +6 -0
- package/dist/vite-plugins/strip-query.js.map +1 -0
- package/dist/vite-plugins/undeclared-library.d.ts +2 -1
- package/dist/vite-plugins/undeclared-library.d.ts.map +1 -1
- package/dist/vite-plugins/undeclared-library.js +8 -5
- package/dist/vite-plugins/undeclared-library.js.map +1 -1
- package/dist/vite-plugins/virtual-module.d.ts +2 -2
- package/dist/vite-plugins/virtual-module.d.ts.map +1 -1
- package/dist/vite-plugins/virtual-module.js +5 -3
- package/dist/vite-plugins/virtual-module.js.map +1 -1
- package/dist/vitest-plugin.d.ts.map +1 -1
- package/dist/vitest-plugin.js.map +1 -1
- package/env.d.ts +21 -61
- package/package.json +12 -14
- package/src/babel-modules.d.ts +0 -2
- package/src/builder.ts +7 -6
- package/src/cli.ts +26 -6
- package/src/codegen/freshness.ts +38 -25
- package/src/codegen/report.ts +10 -2
- package/src/codegen/run-codegen.ts +135 -60
- package/src/codegen/store-resolver.ts +56 -15
- package/src/commands/build.ts +3 -2
- package/src/commands/codegen.ts +9 -4
- package/src/commands/dev.ts +3 -4
- package/src/commands/docs.ts +36 -7
- package/src/dev/icon-dir.ts +13 -3
- package/src/dev/refresh-tracker.ts +12 -8
- package/src/dev/runner-deps.ts +30 -7
- package/src/dev/runner-main.ts +4 -3
- package/src/dev/runner.ts +100 -41
- package/src/dev/schema-dir.ts +7 -2
- package/src/dev/supervisor.ts +169 -71
- package/src/dev/vite-dev-server.ts +4 -2
- package/src/internal/banner.ts +5 -1
- package/src/internal/data-dir.ts +47 -16
- package/src/internal/entry-arg.ts +16 -8
- package/src/internal/errors.ts +15 -7
- package/src/internal/list-files.ts +10 -4
- package/src/internal/resolve-cli-tool.ts +28 -12
- package/src/internal/staging-dir.ts +5 -2
- package/src/internal/xdg-data-dirs.ts +8 -2
- package/src/mcp/client.ts +143 -85
- package/src/mcp/handlers.ts +126 -69
- package/src/mcp/index.ts +38 -14
- package/src/mcp/serialize-widget.ts +15 -8
- package/src/mcp/testing-loader.ts +64 -23
- package/src/mcp/widget-registry.ts +11 -5
- package/src/refresh-globals.ts +10 -0
- package/src/refresh-runtime.ts +20 -16
- package/src/settings/compile.ts +7 -4
- package/src/settings/parser.ts +69 -30
- package/src/settings/render.ts +66 -66
- package/src/settings/schema.ts +100 -46
- package/src/vite-plugins/asset-extensions.ts +4 -3
- package/src/vite-plugins/built-url.ts +30 -15
- package/src/vite-plugins/css.ts +35 -20
- package/src/vite-plugins/fast-refresh/refresh-filter.ts +18 -10
- package/src/vite-plugins/fast-refresh/swc-refresh.ts +60 -47
- package/src/vite-plugins/icons.ts +40 -24
- package/src/vite-plugins/index.ts +6 -3
- package/src/vite-plugins/native.ts +14 -5
- package/src/vite-plugins/react-compiler.ts +44 -30
- package/src/vite-plugins/react-dom-prebundle.ts +4 -1
- package/src/vite-plugins/resource-init-module.ts +41 -38
- package/src/vite-plugins/resource-shared.ts +27 -14
- package/src/vite-plugins/resources.ts +153 -59
- package/src/vite-plugins/settings-worker-env.ts +7 -2
- package/src/vite-plugins/settings.ts +107 -42
- package/src/vite-plugins/strip-query.ts +7 -0
- package/src/vite-plugins/undeclared-library.ts +21 -12
- package/src/vite-plugins/virtual-module.ts +9 -2
- package/src/vitest-plugin.ts +1 -2
package/dist/mcp/index.js
CHANGED
|
@@ -1,17 +1,34 @@
|
|
|
1
1
|
import { McpClient } from "./client.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
const { start: startMcpClient, stop: stopMcpClient } = createMcpClientController();
|
|
3
|
+
async function connectQuietly(client) {
|
|
4
|
+
try {
|
|
5
|
+
await client.connect();
|
|
6
|
+
return true;
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return globalClient;
|
|
10
|
-
};
|
|
11
|
-
export const stopMcpClient = () => {
|
|
12
|
-
if (globalClient) {
|
|
13
|
-
globalClient.disconnect();
|
|
14
|
-
globalClient = null;
|
|
8
|
+
catch {
|
|
9
|
+
return false;
|
|
15
10
|
}
|
|
16
|
-
}
|
|
11
|
+
}
|
|
12
|
+
function createMcpClientController() {
|
|
13
|
+
let current = null;
|
|
14
|
+
return {
|
|
15
|
+
start: async (applicationId) => {
|
|
16
|
+
if (current) {
|
|
17
|
+
return current;
|
|
18
|
+
}
|
|
19
|
+
const client = new McpClient({ applicationId });
|
|
20
|
+
current = client;
|
|
21
|
+
await connectQuietly(client);
|
|
22
|
+
return client;
|
|
23
|
+
},
|
|
24
|
+
stop: () => {
|
|
25
|
+
if (!current) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
current.disconnect();
|
|
29
|
+
current = null;
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export { startMcpClient, stopMcpClient };
|
|
17
34
|
//# sourceMappingURL=index.js.map
|
package/dist/mcp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAOxC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,yBAAyB,EAAE,CAAC;AAEnF,KAAK,UAAU,cAAc,CAAC,MAAiB;IAC3C,IAAI,CAAC;QACD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QAEvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,SAAS,yBAAyB;IAC9B,IAAI,OAAO,GAAqB,IAAI,CAAC;IAErC,OAAO;QACH,KAAK,EAAE,KAAK,EAAE,aAAqB,EAAsB,EAAE;YACvD,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,OAAO,CAAC;YACnB,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;YAChD,OAAO,GAAG,MAAM,CAAC;YACjB,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAE7B,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,IAAI,EAAE,GAAS,EAAE;YACb,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO;YACX,CAAC;YAED,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;KACJ,CAAC;AACN,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC","sourcesContent":["import { McpClient } from \"./client.js\";\n\ntype McpClientController = {\n start: (applicationId: string) => Promise<McpClient>;\n stop: () => void;\n};\n\nconst { start: startMcpClient, stop: stopMcpClient } = createMcpClientController();\n\nasync function connectQuietly(client: McpClient): Promise<boolean> {\n try {\n await client.connect();\n\n return true;\n } catch {\n return false;\n }\n}\n\nfunction createMcpClientController(): McpClientController {\n let current: McpClient | null = null;\n\n return {\n start: async (applicationId: string): Promise<McpClient> => {\n if (current) {\n return current;\n }\n\n const client = new McpClient({ applicationId });\n current = client;\n await connectQuietly(client);\n\n return client;\n },\n stop: (): void => {\n if (!current) {\n return;\n }\n\n current.disconnect();\n current = null;\n },\n };\n}\n\nexport { startMcpClient, stopMcpClient };\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type * as Gtk from "@gtkx/gi/gtk";
|
|
2
2
|
import type { SerializedWidget } from "@gtkx/mcp/internal";
|
|
3
3
|
type WidgetIdResolver = (widget: Gtk.Widget) => string;
|
|
4
|
-
|
|
4
|
+
type WidgetFormatting = {
|
|
5
5
|
formatRole(role: Gtk.AccessibleRole): string;
|
|
6
6
|
getWidgetNodeText(widget: Gtk.Widget): string | null;
|
|
7
7
|
};
|
|
8
|
-
|
|
9
|
-
export {};
|
|
8
|
+
declare const serializeWidget: (widget: Gtk.Widget, resolveId: WidgetIdResolver, testing: WidgetFormatting, maxDepth?: number) => SerializedWidget;
|
|
9
|
+
export { serializeWidget, type WidgetFormatting };
|
|
10
10
|
//# sourceMappingURL=serialize-widget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize-widget.d.ts","sourceRoot":"","sources":["../../src/mcp/serialize-widget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,KAAK,gBAAgB,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;AAEvD,
|
|
1
|
+
{"version":3,"file":"serialize-widget.d.ts","sourceRoot":"","sources":["../../src/mcp/serialize-widget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,KAAK,gBAAgB,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;AAEvD,KAAK,gBAAgB,GAAG;IACpB,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC;IAC7C,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACxD,CAAC;AAEF,QAAA,MAAM,eAAe,GACjB,QAAQ,GAAG,CAAC,MAAM,EAClB,WAAW,gBAAgB,EAC3B,SAAS,gBAAgB,EACzB,iBAAmB,KACpB,gBAuBF,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
const serializeWidget = (widget, resolveId, testing, maxDepth = Infinity) => {
|
|
2
2
|
const children = [];
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
if (maxDepth > 0) {
|
|
4
|
+
let child = widget.getFirstChild();
|
|
5
|
+
while (child) {
|
|
6
|
+
children.push(serializeWidget(child, resolveId, testing, maxDepth - 1));
|
|
7
|
+
child = child.getNextSibling();
|
|
8
|
+
}
|
|
7
9
|
}
|
|
8
10
|
return {
|
|
9
|
-
id:
|
|
11
|
+
id: resolveId(widget),
|
|
10
12
|
type: widget.constructor.name,
|
|
11
13
|
role: testing.formatRole(widget.getAccessibleRole()),
|
|
12
14
|
name: widget.getName() || null,
|
|
@@ -17,4 +19,5 @@ export const serializeWidget = (widget, idFor, testing) => {
|
|
|
17
19
|
children,
|
|
18
20
|
};
|
|
19
21
|
};
|
|
22
|
+
export { serializeWidget };
|
|
20
23
|
//# sourceMappingURL=serialize-widget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize-widget.js","sourceRoot":"","sources":["../../src/mcp/serialize-widget.ts"],"names":[],"mappings":"AAUA,MAAM,
|
|
1
|
+
{"version":3,"file":"serialize-widget.js","sourceRoot":"","sources":["../../src/mcp/serialize-widget.ts"],"names":[],"mappings":"AAUA,MAAM,eAAe,GAAG,CACpB,MAAkB,EAClB,SAA2B,EAC3B,OAAyB,EACzB,QAAQ,GAAG,QAAQ,EACH,EAAE;IAClB,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACf,IAAI,KAAK,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAEnC,OAAO,KAAK,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;YACxE,KAAK,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACnC,CAAC;IACL,CAAC;IAED,OAAO;QACH,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;QAC7B,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI;QAC9B,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC;QACvC,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE;QAChC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE;QAC5B,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE;QAClC,QAAQ;KACX,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAyB,CAAC","sourcesContent":["import type * as Gtk from \"@gtkx/gi/gtk\";\nimport type { SerializedWidget } from \"@gtkx/mcp/internal\";\n\ntype WidgetIdResolver = (widget: Gtk.Widget) => string;\n\ntype WidgetFormatting = {\n formatRole(role: Gtk.AccessibleRole): string;\n getWidgetNodeText(widget: Gtk.Widget): string | null;\n};\n\nconst serializeWidget = (\n widget: Gtk.Widget,\n resolveId: WidgetIdResolver,\n testing: WidgetFormatting,\n maxDepth = Infinity,\n): SerializedWidget => {\n const children: SerializedWidget[] = [];\n\n if (maxDepth > 0) {\n let child = widget.getFirstChild();\n\n while (child) {\n children.push(serializeWidget(child, resolveId, testing, maxDepth - 1));\n child = child.getNextSibling();\n }\n }\n\n return {\n id: resolveId(widget),\n type: widget.constructor.name,\n role: testing.formatRole(widget.getAccessibleRole()),\n name: widget.getName() || null,\n text: testing.getWidgetNodeText(widget),\n sensitive: widget.getSensitive(),\n visible: widget.getVisible(),\n cssClasses: widget.getCssClasses(),\n children,\n };\n};\n\nexport { serializeWidget, type WidgetFormatting };\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
type TestingModule = typeof import("@gtkx/testing");
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
export {};
|
|
2
|
+
type TestingModuleLoader = () => Promise<TestingModule>;
|
|
3
|
+
declare const setTestingModuleLoader: (next: TestingModuleLoader | null) => void, loadTestingModule: () => Promise<TestingModule>;
|
|
4
|
+
export { setTestingModuleLoader, loadTestingModule, type TestingModule, type TestingModuleLoader };
|
|
6
5
|
//# sourceMappingURL=testing-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing-loader.d.ts","sourceRoot":"","sources":["../../src/mcp/testing-loader.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,GAAG,cAAc,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"testing-loader.d.ts","sourceRoot":"","sources":["../../src/mcp/testing-loader.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,GAAG,cAAc,eAAe,CAAC,CAAC;AACpD,KAAK,mBAAmB,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;AAaxD,QAAA,MAAmB,sBAAsB,SAVnB,mBAAmB,GAAG,IAAI,KAAK,IAAI,EAUR,iBAAiB,QATlD,OAAO,CAAC,aAAa,CAS4D,CAAC;AA0DlG,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,CAAC"}
|
|
@@ -1,25 +1,47 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
const { setLoader: setTestingModuleLoader, load: loadTestingModule } = createTestingModuleCache();
|
|
2
|
+
function defaultLoader() {
|
|
3
|
+
return import("@gtkx/testing");
|
|
4
|
+
}
|
|
5
|
+
function missingTestingPackageError(cause) {
|
|
6
|
+
return new Error("@gtkx/testing is not installed, install it to enable MCP widget interactions: " +
|
|
7
|
+
`pnpm add -D @gtkx/testing (import failed: ${String(cause)})`, { cause });
|
|
8
|
+
}
|
|
9
|
+
function replaceLoader(state, next) {
|
|
10
|
+
state.loader = next ?? defaultLoader;
|
|
11
|
+
state.testingModule = null;
|
|
12
|
+
state.testingLoadError = null;
|
|
13
|
+
}
|
|
14
|
+
async function importTestingModule(state) {
|
|
15
15
|
try {
|
|
16
|
-
testingModule = await loader();
|
|
17
|
-
return testingModule;
|
|
16
|
+
state.testingModule = await state.loader();
|
|
17
|
+
return state.testingModule;
|
|
18
18
|
}
|
|
19
|
-
catch (
|
|
20
|
-
testingLoadError =
|
|
21
|
-
|
|
22
|
-
throw testingLoadError;
|
|
19
|
+
catch (error) {
|
|
20
|
+
state.testingLoadError = missingTestingPackageError(error);
|
|
21
|
+
throw state.testingLoadError;
|
|
23
22
|
}
|
|
24
|
-
}
|
|
23
|
+
}
|
|
24
|
+
function loadCachedTestingModule(state) {
|
|
25
|
+
if (state.testingModule) {
|
|
26
|
+
return Promise.resolve(state.testingModule);
|
|
27
|
+
}
|
|
28
|
+
if (state.testingLoadError) {
|
|
29
|
+
return Promise.reject(state.testingLoadError);
|
|
30
|
+
}
|
|
31
|
+
return importTestingModule(state);
|
|
32
|
+
}
|
|
33
|
+
function createTestingModuleCache() {
|
|
34
|
+
const state = {
|
|
35
|
+
loader: defaultLoader,
|
|
36
|
+
testingModule: null,
|
|
37
|
+
testingLoadError: null,
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
setLoader: (next) => {
|
|
41
|
+
replaceLoader(state, next);
|
|
42
|
+
},
|
|
43
|
+
load: () => loadCachedTestingModule(state),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export { setTestingModuleLoader, loadTestingModule };
|
|
25
47
|
//# sourceMappingURL=testing-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing-loader.js","sourceRoot":"","sources":["../../src/mcp/testing-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testing-loader.js","sourceRoot":"","sources":["../../src/mcp/testing-loader.ts"],"names":[],"mappings":"AAcA,MAAM,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,wBAAwB,EAAE,CAAC;AAElG,SAAS,aAAa;IAClB,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAC9C,OAAO,IAAI,KAAK,CACZ,gFAAgF;QAChF,6CAA6C,MAAM,CAAC,KAAK,CAAC,GAAG,EAC7D,EAAE,KAAK,EAAE,CACZ,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,KAAyB,EAAE,IAAgC;IAC9E,KAAK,CAAC,MAAM,GAAG,IAAI,IAAI,aAAa,CAAC;IACrC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,KAAyB;IACxD,IAAI,CAAC;QACD,KAAK,CAAC,aAAa,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QAE3C,OAAO,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,KAAK,CAAC,gBAAgB,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,KAAK,CAAC,gBAAgB,CAAC;IACjC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAyB;IACtD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,wBAAwB;IAC7B,MAAM,KAAK,GAAuB;QAC9B,MAAM,EAAE,aAAa;QACrB,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,IAAI;KACzB,CAAC;IAEF,OAAO;QACH,SAAS,EAAE,CAAC,IAAgC,EAAQ,EAAE;YAClD,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,EAAE,GAA2B,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;KACrE,CAAC;AACN,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAgD,CAAC","sourcesContent":["type TestingModule = typeof import(\"@gtkx/testing\");\ntype TestingModuleLoader = () => Promise<TestingModule>;\n\ntype TestingModuleCache = {\n setLoader: (next: TestingModuleLoader | null) => void;\n load: () => Promise<TestingModule>;\n};\n\ntype TestingModuleState = {\n loader: TestingModuleLoader;\n testingModule: TestingModule | null;\n testingLoadError: Error | null;\n};\n\nconst { setLoader: setTestingModuleLoader, load: loadTestingModule } = createTestingModuleCache();\n\nfunction defaultLoader(): Promise<TestingModule> {\n return import(\"@gtkx/testing\");\n}\n\nfunction missingTestingPackageError(cause: unknown): Error {\n return new Error(\n \"@gtkx/testing is not installed, install it to enable MCP widget interactions: \" +\n `pnpm add -D @gtkx/testing (import failed: ${String(cause)})`,\n { cause },\n );\n}\n\nfunction replaceLoader(state: TestingModuleState, next: TestingModuleLoader | null): void {\n state.loader = next ?? defaultLoader;\n state.testingModule = null;\n state.testingLoadError = null;\n}\n\nasync function importTestingModule(state: TestingModuleState): Promise<TestingModule> {\n try {\n state.testingModule = await state.loader();\n\n return state.testingModule;\n } catch (error) {\n state.testingLoadError = missingTestingPackageError(error);\n throw state.testingLoadError;\n }\n}\n\nfunction loadCachedTestingModule(state: TestingModuleState): Promise<TestingModule> {\n if (state.testingModule) {\n return Promise.resolve(state.testingModule);\n }\n\n if (state.testingLoadError) {\n return Promise.reject(state.testingLoadError);\n }\n\n return importTestingModule(state);\n}\n\nfunction createTestingModuleCache(): TestingModuleCache {\n const state: TestingModuleState = {\n loader: defaultLoader,\n testingModule: null,\n testingLoadError: null,\n };\n\n return {\n setLoader: (next: TestingModuleLoader | null): void => {\n replaceLoader(state, next);\n },\n load: (): Promise<TestingModule> => loadCachedTestingModule(state),\n };\n}\n\nexport { setTestingModuleLoader, loadTestingModule, type TestingModule, type TestingModuleLoader };\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Gtk from "@gtkx/gi/gtk";
|
|
2
|
-
|
|
2
|
+
declare class WidgetRegistry {
|
|
3
3
|
private idByWidget;
|
|
4
4
|
private nextId;
|
|
5
5
|
private widgetById;
|
|
@@ -7,7 +7,8 @@ export declare class WidgetRegistry {
|
|
|
7
7
|
refresh(): void;
|
|
8
8
|
toplevels(): Gtk.Window[];
|
|
9
9
|
register(widget: Gtk.Widget): void;
|
|
10
|
-
|
|
10
|
+
getOrCreateId(widget: Gtk.Widget): string;
|
|
11
11
|
get(id: string): Gtk.Widget | undefined;
|
|
12
12
|
}
|
|
13
|
+
export { WidgetRegistry };
|
|
13
14
|
//# sourceMappingURL=widget-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-registry.d.ts","sourceRoot":"","sources":["../../src/mcp/widget-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAEpC,
|
|
1
|
+
{"version":3,"file":"widget-registry.d.ts","sourceRoot":"","sources":["../../src/mcp/widget-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAEpC,cAAM,cAAc;IAChB,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,eAAe,CAAoB;IAE3C,OAAO,IAAI,IAAI;IASf,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE;IAIzB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI;IAWlC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM;IAWzC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,SAAS;CAG1C;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Gtk from "@gtkx/gi/gtk";
|
|
2
|
-
|
|
2
|
+
class WidgetRegistry {
|
|
3
3
|
idByWidget = new WeakMap();
|
|
4
4
|
nextId = 0;
|
|
5
5
|
widgetById = new Map();
|
|
@@ -15,7 +15,7 @@ export class WidgetRegistry {
|
|
|
15
15
|
return this.toplevelWindows;
|
|
16
16
|
}
|
|
17
17
|
register(widget) {
|
|
18
|
-
const id = this.
|
|
18
|
+
const id = this.getOrCreateId(widget);
|
|
19
19
|
this.widgetById.set(id, widget);
|
|
20
20
|
let child = widget.getFirstChild();
|
|
21
21
|
while (child) {
|
|
@@ -23,7 +23,7 @@ export class WidgetRegistry {
|
|
|
23
23
|
child = child.getNextSibling();
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
getOrCreateId(widget) {
|
|
27
27
|
let id = this.idByWidget.get(widget);
|
|
28
28
|
if (!id) {
|
|
29
29
|
id = String(this.nextId++);
|
|
@@ -35,4 +35,5 @@ export class WidgetRegistry {
|
|
|
35
35
|
return this.widgetById.get(id);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
+
export { WidgetRegistry };
|
|
38
39
|
//# sourceMappingURL=widget-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-registry.js","sourceRoot":"","sources":["../../src/mcp/widget-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAEpC,MAAM,
|
|
1
|
+
{"version":3,"file":"widget-registry.js","sourceRoot":"","sources":["../../src/mcp/widget-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAEpC,MAAM,cAAc;IACR,UAAU,GAAgC,IAAI,OAAO,EAAE,CAAC;IACxD,MAAM,GAAG,CAAC,CAAC;IACX,UAAU,GAA4B,IAAI,GAAG,EAAE,CAAC;IAChD,eAAe,GAAiB,EAAE,CAAC;IAE3C,OAAO;QACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,EAAkB,CAAC;QAElE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,QAAQ,CAAC,MAAkB;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,KAAK,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAEnC,OAAO,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrB,KAAK,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACnC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,MAAkB;QAC5B,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAED,GAAG,CAAC,EAAU;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;CACJ;AAED,OAAO,EAAE,cAAc,EAAE,CAAC","sourcesContent":["import * as Gtk from \"@gtkx/gi/gtk\";\n\nclass WidgetRegistry {\n private idByWidget: WeakMap<Gtk.Widget, string> = new WeakMap();\n private nextId = 0;\n private widgetById: Map<string, Gtk.Widget> = new Map();\n private toplevelWindows: Gtk.Window[] = [];\n\n refresh(): void {\n this.widgetById.clear();\n this.toplevelWindows = Gtk.Window.listToplevels() as Gtk.Window[];\n\n for (const window of this.toplevelWindows) {\n this.register(window);\n }\n }\n\n toplevels(): Gtk.Window[] {\n return this.toplevelWindows;\n }\n\n register(widget: Gtk.Widget): void {\n const id = this.getOrCreateId(widget);\n this.widgetById.set(id, widget);\n let child = widget.getFirstChild();\n\n while (child) {\n this.register(child);\n child = child.getNextSibling();\n }\n }\n\n getOrCreateId(widget: Gtk.Widget): string {\n let id = this.idByWidget.get(widget);\n\n if (!id) {\n id = String(this.nextId++);\n this.idByWidget.set(widget, id);\n }\n\n return id;\n }\n\n get(id: string): Gtk.Widget | undefined {\n return this.widgetById.get(id);\n }\n}\n\nexport { WidgetRegistry };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh-globals.d.ts","sourceRoot":"","sources":["../src/refresh-globals.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import RefreshRuntime from "react-refresh/runtime";
|
|
2
|
+
const identity = (type) => type;
|
|
3
|
+
RefreshRuntime.injectIntoGlobalHook(globalThis);
|
|
4
|
+
Object.assign(globalThis, {
|
|
5
|
+
$RefreshReg$: () => undefined,
|
|
6
|
+
$RefreshSig$: () => identity,
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=refresh-globals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh-globals.js","sourceRoot":"","sources":["../src/refresh-globals.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AAEnD,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAW,EAAE,CAAC,IAAI,CAAC;AAElD,cAAc,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;IACtB,YAAY,EAAE,GAAS,EAAE,CAAC,SAAS;IACnC,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ;CAC/B,CAAC,CAAC","sourcesContent":["import RefreshRuntime from \"react-refresh/runtime\";\n\nconst identity = (type: unknown): unknown => type;\n\nRefreshRuntime.injectIntoGlobalHook(globalThis);\n\nObject.assign(globalThis, {\n $RefreshReg$: (): void => undefined,\n $RefreshSig$: () => identity,\n});\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import RefreshRuntime from "react-refresh/runtime";
|
|
2
|
+
import "./refresh-globals.js";
|
|
2
3
|
type ComponentType = (...args: unknown[]) => unknown;
|
|
3
4
|
/**
|
|
4
5
|
* Builds the per-module `$RefreshReg$` and `$RefreshSig$` hooks that React Refresh
|
|
@@ -7,21 +8,14 @@ type ComponentType = (...args: unknown[]) => unknown;
|
|
|
7
8
|
* @param moduleId Identifier used to namespace registered component types so they are unique across modules.
|
|
8
9
|
* @returns An object with `$RefreshReg$` and `$RefreshSig$` to install as module-local globals.
|
|
9
10
|
*/
|
|
10
|
-
|
|
11
|
+
declare function createModuleRegistration(moduleId: string): {
|
|
11
12
|
$RefreshReg$: (type: ComponentType, id: string) => void;
|
|
12
13
|
$RefreshSig$: typeof RefreshRuntime.createSignatureFunctionForTransform;
|
|
13
14
|
};
|
|
14
|
-
|
|
15
|
-
* Determines whether a module can act as a React Refresh boundary, meaning every one of
|
|
16
|
-
* its exports (ignoring `__esModule`) looks like a React component type.
|
|
17
|
-
*
|
|
18
|
-
* @param moduleExports The module's export object to inspect.
|
|
19
|
-
* @returns `true` when the module qualifies as a refresh boundary, `false` otherwise.
|
|
20
|
-
*/
|
|
21
|
-
export declare function isRefreshBoundary(moduleExports: Record<string, unknown>): boolean;
|
|
15
|
+
declare function isRefreshBoundary(moduleExports: Record<string, unknown>): boolean;
|
|
22
16
|
/**
|
|
23
17
|
* Applies all pending React Refresh updates, re-rendering components whose modules have changed.
|
|
24
18
|
*/
|
|
25
|
-
|
|
26
|
-
export {};
|
|
19
|
+
declare function performRefresh(): void;
|
|
20
|
+
export { createModuleRegistration, isRefreshBoundary, performRefresh };
|
|
27
21
|
//# sourceMappingURL=refresh-runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-runtime.d.ts","sourceRoot":"","sources":["../src/refresh-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"refresh-runtime.d.ts","sourceRoot":"","sources":["../src/refresh-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,sBAAsB,CAAC;AAE9B,KAAK,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAErD;;;;;;GAMG;AACH,iBAAS,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACjD,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,YAAY,EAAE,OAAO,cAAc,CAAC,mCAAmC,CAAC;CAC3E,CAOA;AAsBD,iBAAS,iBAAiB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAU1E;AAED;;GAEG;AACH,iBAAS,cAAc,IAAI,IAAI,CAE9B;AAED,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/refresh-runtime.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import RefreshRuntime from "react-refresh/runtime";
|
|
2
|
-
|
|
3
|
-
globalThis.$RefreshReg$ = () => { };
|
|
4
|
-
globalThis.$RefreshSig$ = () => (type) => type;
|
|
2
|
+
import "./refresh-globals.js";
|
|
5
3
|
/**
|
|
6
4
|
* Builds the per-module `$RefreshReg$` and `$RefreshSig$` hooks that React Refresh
|
|
7
5
|
* transformed code expects, scoping every registered component to the given module.
|
|
@@ -9,7 +7,7 @@ globalThis.$RefreshSig$ = () => (type) => type;
|
|
|
9
7
|
* @param moduleId Identifier used to namespace registered component types so they are unique across modules.
|
|
10
8
|
* @returns An object with `$RefreshReg$` and `$RefreshSig$` to install as module-local globals.
|
|
11
9
|
*/
|
|
12
|
-
|
|
10
|
+
function createModuleRegistration(moduleId) {
|
|
13
11
|
return {
|
|
14
12
|
$RefreshReg$: (type, id) => {
|
|
15
13
|
RefreshRuntime.register(type, `${moduleId} ${id}`);
|
|
@@ -24,25 +22,29 @@ export function createModuleRegistration(moduleId) {
|
|
|
24
22
|
* @param moduleExports The module's export object to inspect.
|
|
25
23
|
* @returns `true` when the module qualifies as a refresh boundary, `false` otherwise.
|
|
26
24
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
25
|
+
const isComponentExport = (key, value) => key === "__esModule" || RefreshRuntime.isLikelyComponentType(value);
|
|
26
|
+
const areAllExportsComponents = (moduleExports) => {
|
|
31
27
|
for (const key in moduleExports) {
|
|
32
|
-
if (key
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
const value = moduleExports[key];
|
|
36
|
-
if (!RefreshRuntime.isLikelyComponentType(value)) {
|
|
28
|
+
if (!isComponentExport(key, moduleExports[key])) {
|
|
37
29
|
return false;
|
|
38
30
|
}
|
|
39
31
|
}
|
|
32
|
+
return true;
|
|
33
|
+
};
|
|
34
|
+
function isRefreshBoundary(moduleExports) {
|
|
35
|
+
if (RefreshRuntime.isLikelyComponentType(moduleExports)) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
if (!areAllExportsComponents(moduleExports)) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
40
41
|
return Object.keys(moduleExports).some((k) => k !== "__esModule");
|
|
41
42
|
}
|
|
42
43
|
/**
|
|
43
44
|
* Applies all pending React Refresh updates, re-rendering components whose modules have changed.
|
|
44
45
|
*/
|
|
45
|
-
|
|
46
|
+
function performRefresh() {
|
|
46
47
|
RefreshRuntime.performReactRefresh();
|
|
47
48
|
}
|
|
49
|
+
export { createModuleRegistration, isRefreshBoundary, performRefresh };
|
|
48
50
|
//# sourceMappingURL=refresh-runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-runtime.js","sourceRoot":"","sources":["../src/refresh-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"refresh-runtime.js","sourceRoot":"","sources":["../src/refresh-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,sBAAsB,CAAC;AAI9B;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,QAAgB;IAI9C,OAAO;QACH,YAAY,EAAE,CAAC,IAAmB,EAAE,EAAU,EAAE,EAAE;YAC9C,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,YAAY,EAAE,cAAc,CAAC,mCAAmC;KACnE,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,KAAc,EAAW,EAAE,CAC/D,GAAG,KAAK,YAAY,IAAI,cAAc,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAExE,MAAM,uBAAuB,GAAG,CAAC,aAAsC,EAAW,EAAE;IAChF,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,SAAS,iBAAiB,CAAC,aAAsC;IAC7D,IAAI,cAAc,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,SAAS,cAAc;IACnB,cAAc,CAAC,mBAAmB,EAAE,CAAC;AACzC,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC","sourcesContent":["import RefreshRuntime from \"react-refresh/runtime\";\nimport \"./refresh-globals.js\";\n\ntype ComponentType = (...args: unknown[]) => unknown;\n\n/**\n * Builds the per-module `$RefreshReg$` and `$RefreshSig$` hooks that React Refresh\n * transformed code expects, scoping every registered component to the given module.\n *\n * @param moduleId Identifier used to namespace registered component types so they are unique across modules.\n * @returns An object with `$RefreshReg$` and `$RefreshSig$` to install as module-local globals.\n */\nfunction createModuleRegistration(moduleId: string): {\n $RefreshReg$: (type: ComponentType, id: string) => void;\n $RefreshSig$: typeof RefreshRuntime.createSignatureFunctionForTransform;\n} {\n return {\n $RefreshReg$: (type: ComponentType, id: string) => {\n RefreshRuntime.register(type, `${moduleId} ${id}`);\n },\n $RefreshSig$: RefreshRuntime.createSignatureFunctionForTransform,\n };\n}\n\n/**\n * Determines whether a module can act as a React Refresh boundary, meaning every one of\n * its exports (ignoring `__esModule`) looks like a React component type.\n *\n * @param moduleExports The module's export object to inspect.\n * @returns `true` when the module qualifies as a refresh boundary, `false` otherwise.\n */\nconst isComponentExport = (key: string, value: unknown): boolean =>\n key === \"__esModule\" || RefreshRuntime.isLikelyComponentType(value);\n\nconst areAllExportsComponents = (moduleExports: Record<string, unknown>): boolean => {\n for (const key in moduleExports) {\n if (!isComponentExport(key, moduleExports[key])) {\n return false;\n }\n }\n\n return true;\n};\n\nfunction isRefreshBoundary(moduleExports: Record<string, unknown>): boolean {\n if (RefreshRuntime.isLikelyComponentType(moduleExports)) {\n return true;\n }\n\n if (!areAllExportsComponents(moduleExports)) {\n return false;\n }\n\n return Object.keys(moduleExports).some((k) => k !== \"__esModule\");\n}\n\n/**\n * Applies all pending React Refresh updates, re-rendering components whose modules have changed.\n */\nfunction performRefresh(): void {\n RefreshRuntime.performReactRefresh();\n}\n\nexport { createModuleRegistration, isRefreshBoundary, performRefresh };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/settings/compile.ts"],"names":[],"mappings":"AAOA,
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/settings/compile.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,IAYrC,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/settings/compile.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import { execFileSync } from "node:child_process";
|
|
2
1
|
import { formatChildProcessError } from "@gtkx/utils";
|
|
2
|
+
import { execFileSync } from "node:child_process";
|
|
3
3
|
import { resolveCliTool } from "../internal/resolve-cli-tool.js";
|
|
4
4
|
const SCHEMA_COMPILER = "glib-compile-schemas";
|
|
5
5
|
const SCHEMA_COMPILE_TIMEOUT_MS = 30_000;
|
|
6
|
-
|
|
6
|
+
const compileSchemas = (dir) => {
|
|
7
7
|
try {
|
|
8
8
|
execFileSync(resolveCliTool(SCHEMA_COMPILER), ["--strict", dir], {
|
|
9
9
|
stdio: ["ignore", "pipe", "pipe"],
|
|
10
10
|
timeout: SCHEMA_COMPILE_TIMEOUT_MS,
|
|
11
|
-
encoding: "
|
|
11
|
+
encoding: "utf8",
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
14
|
catch (error) {
|
|
15
15
|
const details = formatChildProcessError(error);
|
|
16
|
-
|
|
16
|
+
const suffix = details ? `:\n${details}` : "";
|
|
17
|
+
throw new Error(`glib-compile-schemas failed for ${dir}${suffix}`, { cause: error });
|
|
17
18
|
}
|
|
18
19
|
};
|
|
20
|
+
export { compileSchemas };
|
|
19
21
|
//# sourceMappingURL=compile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/settings/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/settings/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAC/C,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAEzC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAQ,EAAE;IACzC,IAAI,CAAC;QACD,YAAY,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE;YAC7D,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,OAAO,EAAE,yBAAyB;YAClC,QAAQ,EAAE,MAAM;SACnB,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,GAAG,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACzF,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC","sourcesContent":["import { formatChildProcessError } from \"@gtkx/utils\";\nimport { execFileSync } from \"node:child_process\";\nimport { resolveCliTool } from \"../internal/resolve-cli-tool.js\";\n\nconst SCHEMA_COMPILER = \"glib-compile-schemas\";\nconst SCHEMA_COMPILE_TIMEOUT_MS = 30_000;\n\nconst compileSchemas = (dir: string): void => {\n try {\n execFileSync(resolveCliTool(SCHEMA_COMPILER), [\"--strict\", dir], {\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n timeout: SCHEMA_COMPILE_TIMEOUT_MS,\n encoding: \"utf8\",\n });\n } catch (error) {\n const details = formatChildProcessError(error);\n const suffix = details ? `:\\n${details}` : \"\";\n throw new Error(`glib-compile-schemas failed for ${dir}${suffix}`, { cause: error });\n }\n};\n\nexport { compileSchemas };\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
type ParsedKey = {
|
|
2
2
|
name: string;
|
|
3
3
|
variantType: string | null;
|
|
4
4
|
enumId: string | null;
|
|
@@ -6,18 +6,19 @@ export type ParsedKey = {
|
|
|
6
6
|
choices: string[];
|
|
7
7
|
summary: string | null;
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
type ParsedSchema = {
|
|
10
10
|
id: string;
|
|
11
11
|
path: string | null;
|
|
12
12
|
keys: ParsedKey[];
|
|
13
13
|
};
|
|
14
|
-
|
|
14
|
+
type ParsedSchemaFile = {
|
|
15
15
|
fileName: string;
|
|
16
16
|
schemas: ParsedSchema[];
|
|
17
17
|
enums: Map<string, string[]>;
|
|
18
18
|
flags: Map<string, string[]>;
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
declare const parseSchemaXml: (xml: string, fileName: string) => ParsedSchemaFile;
|
|
21
|
+
declare class SchemaParseError extends Error {
|
|
21
22
|
}
|
|
22
|
-
export
|
|
23
|
+
export { parseSchemaXml, SchemaParseError, type ParsedKey, type ParsedSchema, type ParsedSchemaFile };
|
|
23
24
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/settings/parser.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/settings/parser.ts"],"names":[],"mappings":"AAEA,KAAK,SAAS,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,SAAS,EAAE,CAAC;CACrB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAChC,CAAC;AA2IF,QAAA,MAAM,cAAc,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,KAAG,gBA2BvD,CAAC;AAEF,cAAM,gBAAiB,SAAQ,KAAK;CAAG;AAEvC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,CAAC"}
|