@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
|
@@ -1,12 +1,24 @@
|
|
|
1
|
+
import { loadConfig } from "@gtkx/config";
|
|
1
2
|
import { existsSync, readFileSync, realpathSync } from "node:fs";
|
|
2
3
|
import { createRequire } from "node:module";
|
|
3
4
|
import { dirname, join } from "node:path";
|
|
4
5
|
import { pathToFileURL } from "node:url";
|
|
5
|
-
import { loadConfig } from "@gtkx/config";
|
|
6
6
|
const readVersion = (packageJsonPath) => {
|
|
7
7
|
const parsed = JSON.parse(readFileSync(packageJsonPath, "utf8"));
|
|
8
8
|
return parsed.version ?? "0.0.0";
|
|
9
9
|
};
|
|
10
|
+
const readSubexports = (packageDir) => {
|
|
11
|
+
const parsed = JSON.parse(readFileSync(join(packageDir, "package.json"), "utf8"));
|
|
12
|
+
return Object.keys(parsed.exports ?? {})
|
|
13
|
+
.filter((key) => key.startsWith("./") && key !== "./package.json")
|
|
14
|
+
.map((key) => key.slice(2));
|
|
15
|
+
};
|
|
16
|
+
/** Resolves the `@gtkx/react` subexport names for a project without requiring runtime/native to be installed. */
|
|
17
|
+
const resolveReactSubexports = (dir) => {
|
|
18
|
+
const require = createRequire(pathToFileURL(join(dir, "__gtkx_resolver__.js")).href);
|
|
19
|
+
const react = resolvePackage(require, dir, "@gtkx/react");
|
|
20
|
+
return react === null ? [] : readSubexports(react.dir);
|
|
21
|
+
};
|
|
10
22
|
const resolvePackage = (require, dir, packageName) => {
|
|
11
23
|
try {
|
|
12
24
|
const real = realpathSync(require.resolve(`${packageName}/package.json`));
|
|
@@ -15,13 +27,14 @@ const resolvePackage = (require, dir, packageName) => {
|
|
|
15
27
|
catch {
|
|
16
28
|
const unscoped = packageName.replace(/^@[^/]+\//, "");
|
|
17
29
|
const workspacePkg = join(dir, "packages", unscoped, "package.json");
|
|
18
|
-
if (!existsSync(workspacePkg))
|
|
30
|
+
if (!existsSync(workspacePkg)) {
|
|
19
31
|
return null;
|
|
32
|
+
}
|
|
20
33
|
const real = realpathSync(workspacePkg);
|
|
21
34
|
return { dir: dirname(real), version: readVersion(real) };
|
|
22
35
|
}
|
|
23
36
|
};
|
|
24
|
-
|
|
37
|
+
const resolveCodegenStore = (dir) => {
|
|
25
38
|
const require = createRequire(pathToFileURL(join(dir, "__gtkx_resolver__.js")).href);
|
|
26
39
|
const runtime = resolvePackage(require, dir, "@gtkx/runtime");
|
|
27
40
|
if (runtime === null) {
|
|
@@ -40,13 +53,20 @@ export const resolveCodegenStore = (dir) => {
|
|
|
40
53
|
jsxStoreDir: join(nodeModules, ".gtkx", "jsx"),
|
|
41
54
|
jsxLinkDir: join(nodeModules, "@gtkx", "jsx"),
|
|
42
55
|
runtimeVersion: runtime.version,
|
|
43
|
-
react: react !== null && reactRuntime !== null
|
|
56
|
+
react: react !== null && reactRuntime !== null
|
|
57
|
+
? {
|
|
58
|
+
version: react.version,
|
|
59
|
+
subexports: readSubexports(react.dir),
|
|
60
|
+
}
|
|
61
|
+
: null,
|
|
44
62
|
};
|
|
45
63
|
};
|
|
46
|
-
|
|
64
|
+
const resolveCodegenContext = async (cwd, mode) => {
|
|
47
65
|
const { config, configFile } = await loadConfig(cwd, { mode });
|
|
48
|
-
if (configFile === undefined)
|
|
66
|
+
if (configFile === undefined) {
|
|
49
67
|
return null;
|
|
68
|
+
}
|
|
50
69
|
return { root: cwd, config, configFile };
|
|
51
70
|
};
|
|
71
|
+
export { resolveReactSubexports, resolveCodegenStore, resolveCodegenContext };
|
|
52
72
|
//# sourceMappingURL=store-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-resolver.js","sourceRoot":"","sources":["../../src/codegen/store-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"store-resolver.js","sourceRoot":"","sources":["../../src/codegen/store-resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Config, loadConfig } from \"@gtkx/config\";\nimport { existsSync, readFileSync, realpathSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\ntype CodegenStore = {\n giStoreDir: string;\n giLinkDir: string;\n jsxStoreDir: string;\n jsxLinkDir: string;\n runtimeVersion: string;\n react: CodegenReactPackage | null;\n};\n\ntype CodegenReactPackage = {\n version: string;\n subexports: string[];\n};\n\ntype ResolvedPackage = { dir: string; version: string };\n\ntype CodegenContext = {\n root: string;\n config: Config;\n configFile: string | undefined;\n};\n\nconst readVersion = (packageJsonPath: string): string => {\n const parsed = JSON.parse(readFileSync(packageJsonPath, \"utf8\")) as { version?: string };\n\n return parsed.version ?? \"0.0.0\";\n};\n\nconst readSubexports = (packageDir: string): string[] => {\n const parsed = JSON.parse(readFileSync(join(packageDir, \"package.json\"), \"utf8\")) as {\n exports?: Record<string, unknown>;\n };\n\n return Object.keys(parsed.exports ?? {})\n .filter((key) => key.startsWith(\"./\") && key !== \"./package.json\")\n .map((key) => key.slice(2));\n};\n\n/** Resolves the `@gtkx/react` subexport names for a project without requiring runtime/native to be installed. */\nconst resolveReactSubexports = (dir: string): string[] => {\n const require = createRequire(pathToFileURL(join(dir, \"__gtkx_resolver__.js\")).href);\n const react = resolvePackage(require, dir, \"@gtkx/react\");\n\n return react === null ? [] : readSubexports(react.dir);\n};\n\nconst resolvePackage = (require: NodeJS.Require, dir: string, packageName: string): ResolvedPackage | null => {\n try {\n const real = realpathSync(require.resolve(`${packageName}/package.json`));\n\n return { dir: dirname(real), version: readVersion(real) };\n } catch {\n const unscoped = packageName.replace(/^@[^/]+\\//, \"\");\n const workspacePkg = join(dir, \"packages\", unscoped, \"package.json\");\n\n if (!existsSync(workspacePkg)) {\n return null;\n }\n\n const real = realpathSync(workspacePkg);\n\n return { dir: dirname(real), version: readVersion(real) };\n }\n};\n\nconst resolveCodegenStore = (dir: string): CodegenStore => {\n const require = createRequire(pathToFileURL(join(dir, \"__gtkx_resolver__.js\")).href);\n const runtime = resolvePackage(require, dir, \"@gtkx/runtime\");\n\n if (runtime === null) {\n throw new Error(\"Cannot resolve @gtkx/runtime from the project; is it installed?\");\n }\n\n const native = resolvePackage(require, dir, \"@gtkx/native\");\n\n if (native === null) {\n throw new Error(\"Cannot resolve @gtkx/native from the project; is it installed?\");\n }\n\n const react = resolvePackage(require, dir, \"@gtkx/react\");\n const reactRuntime = resolvePackage(require, dir, \"react\");\n const nodeModules = join(dir, \"node_modules\");\n\n return {\n giStoreDir: join(nodeModules, \".gtkx\", \"gi\"),\n giLinkDir: join(nodeModules, \"@gtkx\", \"gi\"),\n jsxStoreDir: join(nodeModules, \".gtkx\", \"jsx\"),\n jsxLinkDir: join(nodeModules, \"@gtkx\", \"jsx\"),\n runtimeVersion: runtime.version,\n react:\n react !== null && reactRuntime !== null\n ? {\n version: react.version,\n subexports: readSubexports(react.dir),\n }\n : null,\n };\n};\n\nconst resolveCodegenContext = async (cwd: string, mode?: string): Promise<CodegenContext | null> => {\n const { config, configFile } = await loadConfig(cwd, { mode });\n\n if (configFile === undefined) {\n return null;\n }\n\n return { root: cwd, config, configFile };\n};\n\nexport { resolveReactSubexports, resolveCodegenStore, resolveCodegenContext, type CodegenStore, type CodegenContext };\n"]}
|
package/dist/commands/build.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
readonly entry: import("citty").PositionalArgDef;
|
|
3
|
-
readonly cwd: import("citty").StringArgDef;
|
|
1
|
+
declare const build: import("citty").CommandDef<{
|
|
4
2
|
readonly "asset-base": {
|
|
5
3
|
readonly type: "string";
|
|
6
4
|
readonly description: "Asset base path relative to executable directory (e.g., ../share/my-app)";
|
|
7
5
|
};
|
|
6
|
+
readonly entry: import("citty").PositionalArgDef;
|
|
7
|
+
readonly cwd: import("citty").StringArgDef;
|
|
8
8
|
}>;
|
|
9
|
+
export { build };
|
|
9
10
|
//# sourceMappingURL=build.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAQA,
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,KAAK;;;;;;;EA2BT,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
package/dist/commands/build.js
CHANGED
|
@@ -4,7 +4,7 @@ import { build as buildApp } from "../builder.js";
|
|
|
4
4
|
import { ensureGenerated } from "../codegen/run-codegen.js";
|
|
5
5
|
import { entryArg, resolveEntry } from "../internal/entry-arg.js";
|
|
6
6
|
const BUILD_MODE = "production";
|
|
7
|
-
|
|
7
|
+
const build = defineCommand({
|
|
8
8
|
meta: {
|
|
9
9
|
name: "build",
|
|
10
10
|
description: "Build application for production",
|
|
@@ -30,4 +30,5 @@ export const build = defineCommand({
|
|
|
30
30
|
info("Build complete: dist/bundle.js");
|
|
31
31
|
},
|
|
32
32
|
});
|
|
33
|
+
export { build };
|
|
33
34
|
//# sourceMappingURL=build.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,KAAK,GAAG,aAAa,CAAC;IACxB,IAAI,EAAE;QACF,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,kCAAkC;KAClD;IACD,IAAI,EAAE;QACF,GAAG,QAAQ;QACX,YAAY,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0EAA0E;SAC1F;KACJ;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QACd,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QAC1B,MAAM,eAAe,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAEjE,MAAM,QAAQ,CAAC;YACX,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;YAC7B,IAAI,EAAE;gBACF,IAAI,EAAE,GAAG;aACZ;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC3C,CAAC;CACJ,CAAC,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC","sourcesContent":["import { info } from \"@gtkx/utils\";\nimport { defineCommand } from \"citty\";\nimport { build as buildApp } from \"../builder.js\";\nimport { ensureGenerated } from \"../codegen/run-codegen.js\";\nimport { entryArg, resolveEntry } from \"../internal/entry-arg.js\";\n\nconst BUILD_MODE = \"production\";\n\nconst build = defineCommand({\n meta: {\n name: \"build\",\n description: \"Build application for production\",\n },\n args: {\n ...entryArg,\n \"asset-base\": {\n type: \"string\",\n description: \"Asset base path relative to executable directory (e.g., ../share/my-app)\",\n },\n },\n async run({ args }) {\n const { cwd, entry } = resolveEntry(args);\n info(`Building ${entry}`);\n await ensureGenerated(cwd, { announce: true, mode: BUILD_MODE });\n\n await buildApp({\n entry,\n assetBase: args[\"asset-base\"],\n vite: {\n root: cwd,\n },\n });\n\n info(\"Build complete: dist/bundle.js\");\n },\n});\n\nexport { build };\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
declare const codegen: import("citty").CommandDef<{
|
|
2
2
|
readonly cwd: import("citty").StringArgDef;
|
|
3
3
|
readonly force: {
|
|
4
4
|
readonly type: "boolean";
|
|
@@ -6,4 +6,5 @@ export declare const codegen: import("citty").CommandDef<{
|
|
|
6
6
|
readonly default: false;
|
|
7
7
|
};
|
|
8
8
|
}>;
|
|
9
|
+
export { codegen };
|
|
9
10
|
//# sourceMappingURL=codegen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"AAMA,
|
|
1
|
+
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,OAAO;;;;;;;EAwCX,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/commands/codegen.js
CHANGED
|
@@ -3,7 +3,7 @@ import { defineCommand } from "citty";
|
|
|
3
3
|
import { formatCodegenResult } from "../codegen/report.js";
|
|
4
4
|
import { ensureGenerated, isCodegenDisabled, runCodegen, syncSchemaEnv } from "../codegen/run-codegen.js";
|
|
5
5
|
import { cwdArg, resolveCwd } from "../internal/entry-arg.js";
|
|
6
|
-
|
|
6
|
+
const codegen = defineCommand({
|
|
7
7
|
meta: {
|
|
8
8
|
name: "codegen",
|
|
9
9
|
description: "Generate TypeScript bindings for the GIR libraries declared in gtkx.config.ts",
|
|
@@ -25,16 +25,18 @@ export const codegen = defineCommand({
|
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
if (!args.force) {
|
|
28
|
-
const
|
|
29
|
-
info(
|
|
28
|
+
const isRan = await ensureGenerated(cwd);
|
|
29
|
+
info(isRan ? "codegen: regenerated stale bindings" : "codegen: bindings up to date");
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
const startedAt = Date.now();
|
|
33
33
|
const result = await runCodegen({ cwd, force: true });
|
|
34
34
|
syncSchemaEnv(cwd);
|
|
35
|
-
|
|
35
|
+
const lines = formatCodegenResult(result, Date.now() - startedAt);
|
|
36
|
+
for (const line of lines) {
|
|
36
37
|
info(line);
|
|
37
38
|
}
|
|
38
39
|
},
|
|
39
40
|
});
|
|
41
|
+
export { codegen };
|
|
40
42
|
//# sourceMappingURL=codegen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1G,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1G,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,OAAO,GAAG,aAAa,CAAC;IAC1B,IAAI,EAAE;QACF,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+EAA+E;KAC/F;IACD,IAAI,EAAE;QACF,KAAK,EAAE;YACH,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,qFAAqF;YAClG,OAAO,EAAE,KAAK;SACjB;QACD,GAAG,MAAM;KACZ;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QACd,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,MAAM,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1B,aAAa,CAAC,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,wEAAwE,CAAC,CAAC;YAE/E,OAAO;QACX,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;YAErF,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,aAAa,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;QAElE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;IACL,CAAC;CACJ,CAAC,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,CAAC","sourcesContent":["import { info } from \"@gtkx/utils\";\nimport { defineCommand } from \"citty\";\nimport { formatCodegenResult } from \"../codegen/report.js\";\nimport { ensureGenerated, isCodegenDisabled, runCodegen, syncSchemaEnv } from \"../codegen/run-codegen.js\";\nimport { cwdArg, resolveCwd } from \"../internal/entry-arg.js\";\n\nconst codegen = defineCommand({\n meta: {\n name: \"codegen\",\n description: \"Generate TypeScript bindings for the GIR libraries declared in gtkx.config.ts\",\n },\n args: {\n force: {\n type: \"boolean\",\n description: \"Wipe the generated store and regenerate unconditionally (recover a corrupted store)\",\n default: false,\n },\n ...cwdArg,\n },\n async run({ args }) {\n const cwd = resolveCwd(args);\n\n if (await isCodegenDisabled(cwd)) {\n await runCodegen({ cwd });\n syncSchemaEnv(cwd);\n info(\"codegen: disabled for this project; reusing an installed binding store\");\n\n return;\n }\n\n if (!args.force) {\n const isRan = await ensureGenerated(cwd);\n info(isRan ? \"codegen: regenerated stale bindings\" : \"codegen: bindings up to date\");\n\n return;\n }\n\n const startedAt = Date.now();\n const result = await runCodegen({ cwd, force: true });\n syncSchemaEnv(cwd);\n const lines = formatCodegenResult(result, Date.now() - startedAt);\n\n for (const line of lines) {\n info(line);\n }\n },\n});\n\nexport { codegen };\n"]}
|
package/dist/commands/dev.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAOA,
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,GAAG;;;EAcP,CAAC;AAEH,OAAO,EAAE,GAAG,EAAE,CAAC"}
|
package/dist/commands/dev.js
CHANGED
|
@@ -3,7 +3,7 @@ import { ensureGenerated, resolveConfigWatch } from "../codegen/run-codegen.js";
|
|
|
3
3
|
import { runDevSupervisor } from "../dev/supervisor.js";
|
|
4
4
|
import { entryArg, resolveEntry } from "../internal/entry-arg.js";
|
|
5
5
|
const DEV_MODE = "development";
|
|
6
|
-
|
|
6
|
+
const dev = defineCommand({
|
|
7
7
|
meta: {
|
|
8
8
|
name: "dev",
|
|
9
9
|
description: "Start development server with HMR",
|
|
@@ -18,4 +18,5 @@ export const dev = defineCommand({
|
|
|
18
18
|
await runDevSupervisor(entryPath, cwd, watch);
|
|
19
19
|
},
|
|
20
20
|
});
|
|
21
|
+
export { dev };
|
|
21
22
|
//# sourceMappingURL=dev.js.map
|
package/dist/commands/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAiB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,QAAQ,GAAG,aAAa,CAAC;AAE/B,MAAM,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAiB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,QAAQ,GAAG,aAAa,CAAC;AAE/B,MAAM,GAAG,GAAG,aAAa,CAAC;IACtB,IAAI,EAAE;QACF,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,mCAAmC;KACnD;IACD,IAAI,EAAE;QACF,GAAG,QAAQ;KACd;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QACd,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,eAAe,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAyB,MAAM,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5E,MAAM,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;CACJ,CAAC,CAAC;AAEH,OAAO,EAAE,GAAG,EAAE,CAAC","sourcesContent":["import { defineCommand } from \"citty\";\nimport { ensureGenerated, resolveConfigWatch } from \"../codegen/run-codegen.js\";\nimport { type DevWatch, runDevSupervisor } from \"../dev/supervisor.js\";\nimport { entryArg, resolveEntry } from \"../internal/entry-arg.js\";\n\nconst DEV_MODE = \"development\";\n\nconst dev = defineCommand({\n meta: {\n name: \"dev\",\n description: \"Start development server with HMR\",\n },\n args: {\n ...entryArg,\n },\n async run({ args }) {\n const { cwd, entry: entryPath } = resolveEntry(args);\n await ensureGenerated(cwd, { announce: true, mode: DEV_MODE });\n const watch: DevWatch | undefined = await resolveConfigWatch(cwd, DEV_MODE);\n await runDevSupervisor(entryPath, cwd, watch);\n },\n});\n\nexport { dev };\n"]}
|
package/dist/commands/docs.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
declare const docs: import("citty").CommandDef<{
|
|
2
2
|
readonly cwd: import("citty").StringArgDef;
|
|
3
3
|
readonly out: {
|
|
4
4
|
readonly type: "string";
|
|
@@ -16,4 +16,5 @@ export declare const docs: import("citty").CommandDef<{
|
|
|
16
16
|
readonly default: false;
|
|
17
17
|
};
|
|
18
18
|
}>;
|
|
19
|
+
export { docs };
|
|
19
20
|
//# sourceMappingURL=docs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;EAuER,CAAC;AAcH,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
package/dist/commands/docs.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { resolveGirPath, resolveLibraries, writeDocs } from "@gtkx/codegen";
|
|
1
|
+
import { readBuiltinElements, resolveGirPath, resolveLibraries, writeDocs } from "@gtkx/codegen";
|
|
3
2
|
import { loadConfig } from "@gtkx/config";
|
|
4
3
|
import { info } from "@gtkx/utils";
|
|
5
4
|
import { defineCommand } from "citty";
|
|
5
|
+
import { existsSync } from "node:fs";
|
|
6
|
+
import { join, resolve } from "node:path";
|
|
7
|
+
import { resolveReactSubexports } from "../codegen/store-resolver.js";
|
|
6
8
|
import { cwdArg, resolveCwd } from "../internal/entry-arg.js";
|
|
7
|
-
|
|
9
|
+
const docs = defineCommand({
|
|
8
10
|
meta: {
|
|
9
11
|
name: "docs",
|
|
10
12
|
description: "Generate markdown reference pages for the JSX elements of the GIR libraries declared in gtkx.config.ts",
|
|
@@ -31,11 +33,14 @@ export const docs = defineCommand({
|
|
|
31
33
|
const cwd = resolveCwd(args);
|
|
32
34
|
const { config } = await loadConfig(cwd);
|
|
33
35
|
if (config.codegen === false) {
|
|
34
|
-
throw new Error("codegen is disabled for this project, so there are no GIR libraries to document.
|
|
36
|
+
throw new Error("codegen is disabled for this project, so there are no GIR libraries to document. " +
|
|
37
|
+
"Remove `codegen: false` from gtkx.config.ts to use `gtkx docs`.");
|
|
35
38
|
}
|
|
36
39
|
const girPath = resolveGirPath(config.girPath);
|
|
37
40
|
if (girPath.length === 0) {
|
|
38
|
-
throw new Error("No GIR search paths available. Install gobject-introspection
|
|
41
|
+
throw new Error("No GIR search paths available. Install gobject-introspection " +
|
|
42
|
+
"(Linux: `sudo dnf install gobject-introspection-devel` or " +
|
|
43
|
+
"`sudo apt install libgirepository1.0-dev`), or set `girPath` in gtkx.config.ts.");
|
|
39
44
|
}
|
|
40
45
|
const libraries = resolveLibraries(config.libraries, girPath);
|
|
41
46
|
const startedAt = Date.now();
|
|
@@ -45,7 +50,7 @@ export const docs = defineCommand({
|
|
|
45
50
|
girPath,
|
|
46
51
|
outDir,
|
|
47
52
|
basePath: args["base-path"],
|
|
48
|
-
|
|
53
|
+
props: await resolveDocsProps(cwd),
|
|
49
54
|
force: args.force,
|
|
50
55
|
});
|
|
51
56
|
if (!regenerated) {
|
|
@@ -53,7 +58,17 @@ export const docs = defineCommand({
|
|
|
53
58
|
return;
|
|
54
59
|
}
|
|
55
60
|
const count = namespaces.reduce((total, namespace) => total + namespace.elements.length, 0);
|
|
56
|
-
info(`docs: wrote ${count} element pages across ${namespaces.length} namespaces
|
|
61
|
+
info(`docs: wrote ${String(count)} element pages across ${String(namespaces.length)} namespaces ` +
|
|
62
|
+
`to ${outDir} in ${String(Date.now() - startedAt)}ms`);
|
|
57
63
|
},
|
|
58
64
|
});
|
|
65
|
+
const resolveDocsProps = async (cwd) => {
|
|
66
|
+
const giStoreDir = join(cwd, "node_modules", ".gtkx", "gi");
|
|
67
|
+
if (!existsSync(giStoreDir)) {
|
|
68
|
+
return {};
|
|
69
|
+
}
|
|
70
|
+
const { props } = await readBuiltinElements(resolveReactSubexports(cwd), giStoreDir);
|
|
71
|
+
return props;
|
|
72
|
+
};
|
|
73
|
+
export { docs };
|
|
59
74
|
//# sourceMappingURL=docs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"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","sourcesContent":["import { type ElementProps, readBuiltinElements, resolveGirPath, resolveLibraries, writeDocs } from \"@gtkx/codegen\";\nimport { loadConfig } from \"@gtkx/config\";\nimport { info } from \"@gtkx/utils\";\nimport { defineCommand } from \"citty\";\nimport { existsSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { resolveReactSubexports } from \"../codegen/store-resolver.js\";\nimport { cwdArg, resolveCwd } from \"../internal/entry-arg.js\";\n\nconst docs = defineCommand({\n meta: {\n name: \"docs\",\n description:\n \"Generate markdown reference pages for the JSX elements of the GIR libraries declared in gtkx.config.ts\",\n },\n args: {\n out: {\n type: \"string\",\n description: \"Output directory for the generated markdown pages, relative to the project root\",\n default: \"docs/reference\",\n },\n \"base-path\": {\n type: \"string\",\n description: \"URL base path used for links between generated pages\",\n default: \"/reference\",\n },\n force: {\n type: \"boolean\",\n description: \"Regenerate even when the pages are up to date with the GIR libraries\",\n default: false,\n },\n ...cwdArg,\n },\n async run({ args }) {\n const cwd = resolveCwd(args);\n const { config } = await loadConfig(cwd);\n\n if (config.codegen === false) {\n throw new Error(\n \"codegen is disabled for this project, so there are no GIR libraries to document. \" +\n \"Remove `codegen: false` from gtkx.config.ts to use `gtkx docs`.\",\n );\n }\n\n const girPath = resolveGirPath(config.girPath);\n\n if (girPath.length === 0) {\n throw new Error(\n \"No GIR search paths available. Install gobject-introspection \" +\n \"(Linux: `sudo dnf install gobject-introspection-devel` or \" +\n \"`sudo apt install libgirepository1.0-dev`), or set `girPath` in gtkx.config.ts.\",\n );\n }\n\n const libraries = resolveLibraries(config.libraries, girPath);\n const startedAt = Date.now();\n const outDir = resolve(cwd, args.out);\n\n const { regenerated, namespaces } = writeDocs({\n libraries,\n girPath,\n outDir,\n basePath: args[\"base-path\"],\n props: await resolveDocsProps(cwd),\n force: args.force,\n });\n\n if (!regenerated) {\n info(`docs: pages in ${outDir} are up to date`);\n\n return;\n }\n\n const count = namespaces.reduce((total, namespace) => total + namespace.elements.length, 0);\n\n info(\n `docs: wrote ${String(count)} element pages across ${String(namespaces.length)} namespaces ` +\n `to ${outDir} in ${String(Date.now() - startedAt)}ms`,\n );\n },\n});\n\nconst resolveDocsProps = async (cwd: string): Promise<ElementProps> => {\n const giStoreDir = join(cwd, \"node_modules\", \".gtkx\", \"gi\");\n\n if (!existsSync(giStoreDir)) {\n return {};\n }\n\n const { props } = await readBuiltinElements(resolveReactSubexports(cwd), giStoreDir);\n\n return props;\n};\n\nexport { docs };\n"]}
|
package/dist/dev/icon-dir.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-dir.d.ts","sourceRoot":"","sources":["../../src/dev/icon-dir.ts"],"names":[],"mappings":"AAIA,
|
|
1
|
+
{"version":3,"file":"icon-dir.d.ts","sourceRoot":"","sources":["../../src/dev/icon-dir.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,GAAG,IAAI,KAAG,MAAM,GAAG,IAc1E,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/dev/icon-dir.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { prependXdgDataDir } from "../internal/xdg-data-dirs.js";
|
|
4
|
-
|
|
5
|
-
if (dataDir === null)
|
|
4
|
+
const prepareDevIconDir = (root, dataDir) => {
|
|
5
|
+
if (dataDir === null) {
|
|
6
6
|
return null;
|
|
7
|
+
}
|
|
7
8
|
const shareDir = join(root, dataDir);
|
|
8
|
-
if (!existsSync(join(shareDir, "icons")))
|
|
9
|
+
if (!existsSync(join(shareDir, "icons"))) {
|
|
9
10
|
return null;
|
|
11
|
+
}
|
|
10
12
|
process.env.XDG_DATA_DIRS = prependXdgDataDir(shareDir, process.env.XDG_DATA_DIRS);
|
|
11
13
|
return shareDir;
|
|
12
14
|
};
|
|
15
|
+
export { prepareDevIconDir };
|
|
13
16
|
//# sourceMappingURL=icon-dir.js.map
|
package/dist/dev/icon-dir.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-dir.js","sourceRoot":"","sources":["../../src/dev/icon-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,
|
|
1
|
+
{"version":3,"file":"icon-dir.js","sourceRoot":"","sources":["../../src/dev/icon-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,OAAsB,EAAiB,EAAE;IAC9E,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAErC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAEnF,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC","sourcesContent":["import { existsSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { prependXdgDataDir } from \"../internal/xdg-data-dirs.js\";\n\nconst prepareDevIconDir = (root: string, dataDir: string | null): string | null => {\n if (dataDir === null) {\n return null;\n }\n\n const shareDir = join(root, dataDir);\n\n if (!existsSync(join(shareDir, \"icons\"))) {\n return null;\n }\n\n process.env.XDG_DATA_DIRS = prependXdgDataDir(shareDir, process.env.XDG_DATA_DIRS);\n\n return shareDir;\n};\n\nexport { prepareDevIconDir };\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
performRefresh()
|
|
3
|
-
isRefreshing()
|
|
1
|
+
type RefreshTracker = {
|
|
2
|
+
performRefresh: () => void;
|
|
3
|
+
isRefreshing: () => boolean;
|
|
4
4
|
};
|
|
5
|
-
|
|
5
|
+
declare const createRefreshTracker: (performRefresh: () => void) => RefreshTracker;
|
|
6
|
+
export { createRefreshTracker, type RefreshTracker };
|
|
6
7
|
//# sourceMappingURL=refresh-tracker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-tracker.d.ts","sourceRoot":"","sources":["../../src/dev/refresh-tracker.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"refresh-tracker.d.ts","sourceRoot":"","sources":["../../src/dev/refresh-tracker.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG;IAClB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,OAAO,CAAC;CAC/B,CAAC;AAEF,QAAA,MAAM,oBAAoB,GAAI,gBAAgB,MAAM,IAAI,KAAG,cAiB1D,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,CAAC"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
let
|
|
1
|
+
const createRefreshTracker = (performRefresh) => {
|
|
2
|
+
let isRefreshing = false;
|
|
3
3
|
return {
|
|
4
4
|
performRefresh: () => {
|
|
5
|
-
|
|
5
|
+
isRefreshing = true;
|
|
6
6
|
try {
|
|
7
7
|
performRefresh();
|
|
8
8
|
}
|
|
9
9
|
finally {
|
|
10
10
|
setTimeout(() => {
|
|
11
|
-
|
|
11
|
+
isRefreshing = false;
|
|
12
12
|
}, 0);
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
|
-
isRefreshing: () =>
|
|
15
|
+
isRefreshing: () => isRefreshing,
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
|
+
export { createRefreshTracker };
|
|
18
19
|
//# sourceMappingURL=refresh-tracker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-tracker.js","sourceRoot":"","sources":["../../src/dev/refresh-tracker.ts"],"names":[],"mappings":"AAKA,MAAM,
|
|
1
|
+
{"version":3,"file":"refresh-tracker.js","sourceRoot":"","sources":["../../src/dev/refresh-tracker.ts"],"names":[],"mappings":"AAKA,MAAM,oBAAoB,GAAG,CAAC,cAA0B,EAAkB,EAAE;IACxE,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,OAAO;QACH,cAAc,EAAE,GAAG,EAAE;YACjB,YAAY,GAAG,IAAI,CAAC;YAEpB,IAAI,CAAC;gBACD,cAAc,EAAE,CAAC;YACrB,CAAC;oBAAS,CAAC;gBACP,UAAU,CAAC,GAAG,EAAE;oBACZ,YAAY,GAAG,KAAK,CAAC;gBACzB,CAAC,EAAE,CAAC,CAAC,CAAC;YACV,CAAC;QACL,CAAC;QACD,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY;KACnC,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAuB,CAAC","sourcesContent":["type RefreshTracker = {\n performRefresh: () => void;\n isRefreshing: () => boolean;\n};\n\nconst createRefreshTracker = (performRefresh: () => void): RefreshTracker => {\n let isRefreshing = false;\n\n return {\n performRefresh: () => {\n isRefreshing = true;\n\n try {\n performRefresh();\n } finally {\n setTimeout(() => {\n isRefreshing = false;\n }, 0);\n }\n },\n isRefreshing: () => isRefreshing,\n };\n};\n\nexport { createRefreshTracker, type RefreshTracker };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-deps.d.ts","sourceRoot":"","sources":["../../src/dev/runner-deps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner-deps.d.ts","sourceRoot":"","sources":["../../src/dev/runner-deps.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAyBjD,QAAA,MAAM,oBAAoB,QAAO,aAgC/B,CAAC;AAEH,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
package/dist/dev/runner-deps.js
CHANGED
|
@@ -10,10 +10,24 @@ import { gtkxFastRefresh } from "../vite-plugins/fast-refresh/swc-refresh.js";
|
|
|
10
10
|
import { gtkxVitePlugins } from "../vite-plugins/index.js";
|
|
11
11
|
import { gtkxReactDomPrebundle } from "../vite-plugins/react-dom-prebundle.js";
|
|
12
12
|
const DEV_MODE = "development";
|
|
13
|
-
|
|
13
|
+
const APPLICATION_POLL_INTERVAL_MS = 50;
|
|
14
|
+
const currentApplicationId = () => Gio.Application.getDefault()?.applicationId ?? null;
|
|
15
|
+
const waitForApplicationId = async (timeoutMs) => {
|
|
16
|
+
const deadline = Date.now() + timeoutMs;
|
|
17
|
+
let applicationId = currentApplicationId();
|
|
18
|
+
while (applicationId === null && Date.now() < deadline) {
|
|
19
|
+
await new Promise((resolve) => setTimeout(resolve, APPLICATION_POLL_INTERVAL_MS));
|
|
20
|
+
applicationId = currentApplicationId();
|
|
21
|
+
}
|
|
22
|
+
return applicationId;
|
|
23
|
+
};
|
|
24
|
+
const defaultDevRunnerDeps = () => ({
|
|
14
25
|
createServer,
|
|
15
|
-
|
|
16
|
-
getConfiguredApplicationId: async (root) =>
|
|
26
|
+
waitForApplicationId,
|
|
27
|
+
getConfiguredApplicationId: async (root) => {
|
|
28
|
+
const loaded = await loadConfig(root, { mode: DEV_MODE });
|
|
29
|
+
return loaded.config.applicationId;
|
|
30
|
+
},
|
|
17
31
|
startMcpClient: (applicationId, loadAppModule) => {
|
|
18
32
|
setTestingModuleLoader(() => loadAppModule("@gtkx/testing"));
|
|
19
33
|
return startMcpClient(applicationId);
|
|
@@ -27,8 +41,9 @@ export const defaultDevRunnerDeps = () => ({
|
|
|
27
41
|
},
|
|
28
42
|
quitDefaultApplication: () => {
|
|
29
43
|
const application = Gio.Application.getDefault();
|
|
30
|
-
if (application)
|
|
44
|
+
if (application) {
|
|
31
45
|
quitApplication(application);
|
|
46
|
+
}
|
|
32
47
|
},
|
|
33
48
|
performRefresh,
|
|
34
49
|
isRefreshBoundary,
|
|
@@ -36,4 +51,5 @@ export const defaultDevRunnerDeps = () => ({
|
|
|
36
51
|
log: info,
|
|
37
52
|
exit: (code) => process.exit(code),
|
|
38
53
|
});
|
|
54
|
+
export { defaultDevRunnerDeps };
|
|
39
55
|
//# sourceMappingURL=runner-deps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-deps.js","sourceRoot":"","sources":["../../src/dev/runner-deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"runner-deps.js","sourceRoot":"","sources":["../../src/dev/runner-deps.ts"],"names":[],"mappings":"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","sourcesContent":["import { loadConfig } from \"@gtkx/config\";\nimport * as Gio from \"@gtkx/gi/gio\";\nimport { quitApplication } from \"@gtkx/runtime\";\nimport { info, installGracefulShutdown } from \"@gtkx/utils\";\nimport { createServer } from \"vite\";\nimport type { DevRunnerDeps } from \"./runner.js\";\nimport { startMcpClient, stopMcpClient } from \"../mcp/index.js\";\nimport { setTestingModuleLoader } from \"../mcp/testing-loader.js\";\nimport { isRefreshBoundary, performRefresh } from \"../refresh-runtime.js\";\nimport { gtkxFastRefresh } from \"../vite-plugins/fast-refresh/swc-refresh.js\";\nimport { gtkxVitePlugins } from \"../vite-plugins/index.js\";\nimport { gtkxReactDomPrebundle } from \"../vite-plugins/react-dom-prebundle.js\";\n\nconst DEV_MODE = \"development\";\nconst APPLICATION_POLL_INTERVAL_MS = 50;\n\nconst currentApplicationId = (): string | null => Gio.Application.getDefault()?.applicationId ?? null;\n\nconst waitForApplicationId = async (timeoutMs: number): Promise<string | null> => {\n const deadline = Date.now() + timeoutMs;\n let applicationId = currentApplicationId();\n\n while (applicationId === null && Date.now() < deadline) {\n await new Promise((resolve) => setTimeout(resolve, APPLICATION_POLL_INTERVAL_MS));\n applicationId = currentApplicationId();\n }\n\n return applicationId;\n};\n\nconst defaultDevRunnerDeps = (): DevRunnerDeps => ({\n createServer,\n waitForApplicationId,\n getConfiguredApplicationId: async (root: string) => {\n const loaded = await loadConfig(root, { mode: DEV_MODE });\n\n return loaded.config.applicationId;\n },\n startMcpClient: (applicationId, loadAppModule) => {\n setTestingModuleLoader(() => loadAppModule(\"@gtkx/testing\") as Promise<typeof import(\"@gtkx/testing\")>);\n\n return startMcpClient(applicationId);\n },\n stopMcpClient,\n watchApplicationShutdown: (onShutdown) => {\n Gio.Application.getDefault()?.on(\"shutdown\", onShutdown);\n },\n installShutdownHandlers: (onSignal) => {\n installGracefulShutdown({ onSignal });\n },\n quitDefaultApplication: () => {\n const application = Gio.Application.getDefault();\n\n if (application) {\n quitApplication(application);\n }\n },\n performRefresh,\n isRefreshBoundary,\n plugins: () => [...gtkxVitePlugins(DEV_MODE), ...gtkxFastRefresh(), gtkxReactDomPrebundle()],\n log: info,\n exit: (code: number): never => process.exit(code),\n});\n\nexport { defaultDevRunnerDeps };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-main.d.ts","sourceRoot":"","sources":["../../src/dev/runner-main.ts"],"names":[],"mappings":"AASA,
|
|
1
|
+
{"version":3,"file":"runner-main.d.ts","sourceRoot":"","sources":["../../src/dev/runner-main.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,IAAI,QAAa,OAAO,CAAC,IAAI,CAsBlC,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
package/dist/dev/runner-main.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { resolve } from "node:path";
|
|
2
1
|
import { error } from "@gtkx/utils";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
3
|
import { resolveDataDir } from "../internal/data-dir.js";
|
|
4
4
|
import { prepareDevIconDir } from "./icon-dir.js";
|
|
5
5
|
import { createDevRunner } from "./runner.js";
|
|
6
6
|
import { prepareDevSchemaDir } from "./schema-dir.js";
|
|
7
7
|
const ENTRY_ARG_INDEX = 2;
|
|
8
|
-
|
|
8
|
+
const main = async () => {
|
|
9
9
|
if (process.channel) {
|
|
10
10
|
process.once("disconnect", () => {
|
|
11
11
|
process.exit(0);
|
|
@@ -25,4 +25,5 @@ export const main = async () => {
|
|
|
25
25
|
const runner = createDevRunner(defaultDevRunnerDeps());
|
|
26
26
|
await runner.run(entryPath);
|
|
27
27
|
};
|
|
28
|
+
export { main };
|
|
28
29
|
//# sourceMappingURL=runner-main.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-main.js","sourceRoot":"","sources":["../../src/dev/runner-main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"runner-main.js","sourceRoot":"","sources":["../../src/dev/runner-main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;IACnC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,eAAe,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACvD,MAAM,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import { error } from \"@gtkx/utils\";\nimport { resolve } from \"node:path\";\nimport { resolveDataDir } from \"../internal/data-dir.js\";\nimport { prepareDevIconDir } from \"./icon-dir.js\";\nimport { createDevRunner } from \"./runner.js\";\nimport { prepareDevSchemaDir } from \"./schema-dir.js\";\n\nconst ENTRY_ARG_INDEX = 2;\n\nconst main = async (): Promise<void> => {\n if (process.channel) {\n process.once(\"disconnect\", () => {\n process.exit(0);\n });\n }\n\n const cwd = process.cwd();\n const entryArg = process.argv[ENTRY_ARG_INDEX];\n\n if (!entryArg) {\n error(\"Missing entry argument\");\n process.exit(1);\n }\n\n const dataDir = resolveDataDir(cwd);\n prepareDevSchemaDir(cwd, dataDir);\n prepareDevIconDir(cwd, dataDir);\n const entryPath = resolve(cwd, entryArg);\n const { defaultDevRunnerDeps } = await import(\"./runner-deps.js\");\n const runner = createDevRunner(defaultDevRunnerDeps());\n await runner.run(entryPath);\n};\n\nexport { main };\n"]}
|