@gtkx/config 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +118 -0
  3. package/dist/bundled-modules.d.ts +2 -0
  4. package/dist/bundled-modules.d.ts.map +1 -0
  5. package/dist/bundled-modules.js +2 -0
  6. package/dist/bundled-modules.js.map +1 -0
  7. package/dist/config.d.ts +45 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +104 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/data-dir.d.ts +4 -0
  12. package/dist/data-dir.d.ts.map +1 -0
  13. package/dist/data-dir.js +37 -0
  14. package/dist/data-dir.js.map +1 -0
  15. package/dist/index.d.ts +11 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +9 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/loader.d.ts +20 -0
  20. package/dist/loader.d.ts.map +1 -0
  21. package/dist/loader.js +62 -0
  22. package/dist/loader.js.map +1 -0
  23. package/dist/plugin.d.ts +9 -0
  24. package/dist/plugin.d.ts.map +1 -0
  25. package/dist/plugin.js +24 -0
  26. package/dist/plugin.js.map +1 -0
  27. package/dist/runtime.d.ts +22 -0
  28. package/dist/runtime.d.ts.map +1 -0
  29. package/dist/runtime.js +22 -0
  30. package/dist/runtime.js.map +1 -0
  31. package/dist/table-rules-ir.d.ts +36 -0
  32. package/dist/table-rules-ir.d.ts.map +1 -0
  33. package/dist/table-rules-ir.js +2 -0
  34. package/dist/table-rules-ir.js.map +1 -0
  35. package/dist/table-schema.d.ts +107 -0
  36. package/dist/table-schema.d.ts.map +1 -0
  37. package/dist/table-schema.js +199 -0
  38. package/dist/table-schema.js.map +1 -0
  39. package/dist/validators.d.ts +4 -0
  40. package/dist/validators.d.ts.map +1 -0
  41. package/dist/validators.js +10 -0
  42. package/dist/validators.js.map +1 -0
  43. package/dist/virtual.d.ts +7 -0
  44. package/dist/virtual.d.ts.map +1 -0
  45. package/dist/virtual.js +20 -0
  46. package/dist/virtual.js.map +1 -0
  47. package/dist/wrapper-protocol.d.ts +12 -0
  48. package/dist/wrapper-protocol.d.ts.map +1 -0
  49. package/dist/wrapper-protocol.js +12 -0
  50. package/dist/wrapper-protocol.js.map +1 -0
  51. package/env.d.ts +26 -0
  52. package/package.json +52 -0
  53. package/src/bundled-modules.ts +1 -0
  54. package/src/config.ts +191 -0
  55. package/src/data-dir.ts +39 -0
  56. package/src/index.ts +88 -0
  57. package/src/loader.ts +88 -0
  58. package/src/plugin.ts +30 -0
  59. package/src/table-rules-ir.ts +42 -0
  60. package/src/table-schema.ts +342 -0
  61. package/src/validators.ts +15 -0
  62. package/src/virtual.ts +42 -0
  63. package/src/wrapper-protocol.ts +21 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const DATA_IMPORT_PREFIX = "#data";
2
+ export declare const DATA_IMPORT_KEY: string;
3
+ export declare const resolveDataDir: (root: string) => string | null;
4
+ //# sourceMappingURL=data-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-dir.d.ts","sourceRoot":"","sources":["../src/data-dir.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,eAAO,MAAM,eAAe,EAAE,MAAkC,CAAC;AAuBjE,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,IAUtD,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ export const DATA_IMPORT_PREFIX = "#data";
4
+ export const DATA_IMPORT_KEY = `${DATA_IMPORT_PREFIX}/*`;
5
+ const CONDITION_PRIORITY = ["default", "import", "node"];
6
+ const targetString = (entry) => {
7
+ if (typeof entry === "string")
8
+ return entry;
9
+ if (entry !== null && typeof entry === "object" && !Array.isArray(entry)) {
10
+ const conditions = entry;
11
+ for (const condition of CONDITION_PRIORITY) {
12
+ const value = conditions[condition];
13
+ if (typeof value === "string")
14
+ return value;
15
+ }
16
+ }
17
+ return null;
18
+ };
19
+ const DATA_TARGET_PATTERN = /^\.?\/?(.+?)\/\*$/;
20
+ const directoryFromTarget = (target) => {
21
+ const match = DATA_TARGET_PATTERN.exec(target);
22
+ return match?.[1] ?? null;
23
+ };
24
+ export const resolveDataDir = (root) => {
25
+ let manifest;
26
+ try {
27
+ manifest = JSON.parse(readFileSync(join(root, "package.json"), "utf-8"));
28
+ }
29
+ catch {
30
+ return null;
31
+ }
32
+ const target = targetString(manifest.imports?.[DATA_IMPORT_KEY]);
33
+ if (target === null)
34
+ return null;
35
+ return directoryFromTarget(target);
36
+ };
37
+ //# sourceMappingURL=data-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-dir.js","sourceRoot":"","sources":["../src/data-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAW,GAAG,kBAAkB,IAAI,CAAC;AAEjE,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAElE,MAAM,YAAY,GAAG,CAAC,KAAc,EAAiB,EAAE;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvE,MAAM,UAAU,GAAG,KAAgC,CAAC;QACpD,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;QAChD,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEhD,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAiB,EAAE;IAC1D,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAiB,EAAE;IAC1D,IAAI,QAA+C,CAAC;IACpD,IAAI,CAAC;QACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACjE,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { gtkxBundledModulePatterns } from "./bundled-modules.js";
2
+ export { defineConfig, GIR_NAMESPACE_PATTERN, type GtkxConfig, type GtkxConfigEnv, type GtkxConfigExport, type GtkxConfigFn, type GtkxConfigFnPromise, LIBRARIES_WILDCARD, mergeConfig, type ReactCompilerCompilationMode, type ReactCompilerOptions, type ReactCompilerPanicThreshold, type ResolvedGtkxConfig, type ResolvedReactCompilerOptions, resolveGtkxConfig, resolveReactCompilerOptions, validateGtkxConfig, } from "./config.js";
3
+ export { DATA_IMPORT_KEY, DATA_IMPORT_PREFIX, resolveDataDir } from "./data-dir.js";
4
+ export { createGtkxConfigLoader, type GtkxConfigLoader, GtkxConfigNotFoundError, type LoadedConfig, type LoadGtkxConfigOptions, type LoadResolvedGtkxConfigOptions, loadGtkxConfig, loadResolvedGtkxConfig, } from "./loader.js";
5
+ export { createGtkxConfigPlugin, type GtkxConfigPluginOptions } from "./plugin.js";
6
+ export type { AddMethodArg, AddMethodRule, PageMetaSetter, PropCondition, PropRule, SetterPropGroup, SetterPropStep, SignalPropRule, } from "./table-rules-ir.js";
7
+ export type { ArrayPropRow, AttachShape, AttachShapeTable, AttachVerb, CallArg, CallStep, ConstructSetter, ConstructStep, ContainerPropRow, DetachGuard, ElementMapRule, MethodVerb, ObjectPropRow, OrderedInsertVerb, PerElementPropRows, PresenceCondition, UserTableRows, VerbArgs, VirtualPropRow, } from "./table-schema.js";
8
+ export { CAMEL_CASE_NAME_PATTERN, PASCAL_CASE_NAME_PATTERN, validateArrayOf, } from "./validators.js";
9
+ export { GTKX_CONFIG_VIRTUAL_ID, RESOLVED_GTKX_CONFIG_VIRTUAL_ID, renderGtkxConfigModule, type SerializedGtkxConfig, serializeGtkxConfig, } from "./virtual.js";
10
+ export { BUFFER_TEXT_KIND, CONTAINER_PROP_KIND, LABEL_TEXT_KIND, LAYOUT_CHILD_KIND, META_OBJECT_KIND, OVERLAY_KIND, SLOT_KIND, TAB_LABEL_KIND, TEXT_ANCHOR_KIND, TEXT_PAINTABLE_KIND, WRAPPER_NODE_ELEMENT, } from "./wrapper-protocol.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACH,YAAY,EACZ,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,WAAW,EACX,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,kBAAkB,EACvB,KAAK,4BAA4B,EACjC,iBAAiB,EACjB,2BAA2B,EAC3B,kBAAkB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EACH,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,cAAc,EACd,sBAAsB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACnF,YAAY,EACR,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,QAAQ,EACR,eAAe,EACf,cAAc,EACd,cAAc,GACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACR,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,OAAO,EACP,QAAQ,EACR,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,cAAc,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,mBAAmB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,GACvB,MAAM,uBAAuB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ export { gtkxBundledModulePatterns } from "./bundled-modules.js";
2
+ export { defineConfig, GIR_NAMESPACE_PATTERN, LIBRARIES_WILDCARD, mergeConfig, resolveGtkxConfig, resolveReactCompilerOptions, validateGtkxConfig, } from "./config.js";
3
+ export { DATA_IMPORT_KEY, DATA_IMPORT_PREFIX, resolveDataDir } from "./data-dir.js";
4
+ export { createGtkxConfigLoader, GtkxConfigNotFoundError, loadGtkxConfig, loadResolvedGtkxConfig, } from "./loader.js";
5
+ export { createGtkxConfigPlugin } from "./plugin.js";
6
+ export { CAMEL_CASE_NAME_PATTERN, PASCAL_CASE_NAME_PATTERN, validateArrayOf, } from "./validators.js";
7
+ export { GTKX_CONFIG_VIRTUAL_ID, RESOLVED_GTKX_CONFIG_VIRTUAL_ID, renderGtkxConfigModule, serializeGtkxConfig, } from "./virtual.js";
8
+ export { BUFFER_TEXT_KIND, CONTAINER_PROP_KIND, LABEL_TEXT_KIND, LAYOUT_CHILD_KIND, META_OBJECT_KIND, OVERLAY_KIND, SLOT_KIND, TAB_LABEL_KIND, TEXT_ANCHOR_KIND, TEXT_PAINTABLE_KIND, WRAPPER_NODE_ELEMENT, } from "./wrapper-protocol.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACH,YAAY,EACZ,qBAAqB,EAMrB,kBAAkB,EAClB,WAAW,EAMX,iBAAiB,EACjB,2BAA2B,EAC3B,kBAAkB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EACH,sBAAsB,EAEtB,uBAAuB,EAIvB,cAAc,EACd,sBAAsB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAgC,MAAM,aAAa,CAAC;AAgCnF,OAAO,EACH,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,EAEtB,mBAAmB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,GACvB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { type GtkxConfig, type ResolvedGtkxConfig } from "./config.js";
2
+ export type LoadedConfig = {
3
+ config: GtkxConfig;
4
+ configFile: string | undefined;
5
+ rootDir: string;
6
+ };
7
+ export declare class GtkxConfigNotFoundError extends Error {
8
+ constructor(cwd: string);
9
+ }
10
+ export type LoadGtkxConfigOptions = {
11
+ mode?: string;
12
+ };
13
+ export declare const loadGtkxConfig: (cwd: string, options?: LoadGtkxConfigOptions) => Promise<LoadedConfig>;
14
+ export type LoadResolvedGtkxConfigOptions = LoadGtkxConfigOptions & {
15
+ allowMissing?: boolean;
16
+ };
17
+ export declare const loadResolvedGtkxConfig: (cwd: string, options?: LoadResolvedGtkxConfigOptions) => Promise<ResolvedGtkxConfig>;
18
+ export type GtkxConfigLoader = (cwd: string) => Promise<ResolvedGtkxConfig>;
19
+ export declare const createGtkxConfigLoader: (options?: LoadResolvedGtkxConfigOptions) => GtkxConfigLoader;
20
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAyC,MAAM,aAAa,CAAC;AAE9G,MAAM,MAAM,YAAY,GAAG;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,uBAAwB,SAAQ,KAAK;gBAClC,GAAG,EAAE,MAAM;CAc1B;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,KAAK,MAAM,EAAE,UAAS,qBAA0B,KAAG,OAAO,CAAC,YAAY,CAqB3G,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,qBAAqB,GAAG;IAChE,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAC/B,KAAK,MAAM,EACX,UAAS,6BAAkC,KAC5C,OAAO,CAAC,kBAAkB,CAU5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAE5E,eAAO,MAAM,sBAAsB,GAAI,UAAS,6BAAkC,KAAG,gBAWpF,CAAC"}
package/dist/loader.js ADDED
@@ -0,0 +1,62 @@
1
+ import { existsSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import { loadConfig } from "c12";
4
+ import { resolveGtkxConfig, validateGtkxConfig } from "./config.js";
5
+ export class GtkxConfigNotFoundError extends Error {
6
+ constructor(cwd) {
7
+ super(`No gtkx.config.ts found in ${cwd}.\n` +
8
+ `Create one with:\n` +
9
+ `\n` +
10
+ ` // gtkx.config.ts\n` +
11
+ ` import { defineConfig } from "@gtkx/config";\n` +
12
+ `\n` +
13
+ ` export default defineConfig({\n` +
14
+ ` libraries: ["Gtk-4.0", "Adw-1"],\n` +
15
+ ` });\n`);
16
+ this.name = "GtkxConfigNotFoundError";
17
+ }
18
+ }
19
+ export const loadGtkxConfig = async (cwd, options = {}) => {
20
+ const result = await loadConfig({
21
+ name: "gtkx",
22
+ cwd,
23
+ rcFile: false,
24
+ globalRc: false,
25
+ packageJson: false,
26
+ context: { mode: options.mode },
27
+ });
28
+ if (!result.configFile || !result.config || !existsSync(resolve(cwd, result.configFile))) {
29
+ throw new GtkxConfigNotFoundError(cwd);
30
+ }
31
+ validateGtkxConfig(result.config);
32
+ return {
33
+ config: result.config,
34
+ configFile: result.configFile,
35
+ rootDir: result.cwd ?? cwd,
36
+ };
37
+ };
38
+ export const loadResolvedGtkxConfig = async (cwd, options = {}) => {
39
+ try {
40
+ const { config } = await loadGtkxConfig(cwd, options.mode === undefined ? {} : { mode: options.mode });
41
+ return resolveGtkxConfig(config);
42
+ }
43
+ catch (error) {
44
+ if (options.allowMissing && error instanceof GtkxConfigNotFoundError) {
45
+ return resolveGtkxConfig({});
46
+ }
47
+ throw error;
48
+ }
49
+ };
50
+ export const createGtkxConfigLoader = (options = {}) => {
51
+ const cache = new Map();
52
+ return (cwd) => {
53
+ const root = resolve(cwd);
54
+ let pending = cache.get(root);
55
+ if (!pending) {
56
+ pending = loadResolvedGtkxConfig(root, options);
57
+ cache.set(root, pending);
58
+ }
59
+ return pending;
60
+ };
61
+ };
62
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAA4C,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAQ9G,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC9C,YAAY,GAAW;QACnB,KAAK,CACD,8BAA8B,GAAG,KAAK;YAClC,oBAAoB;YACpB,IAAI;YACJ,uBAAuB;YACvB,kDAAkD;YAClD,IAAI;YACJ,mCAAmC;YACnC,0CAA0C;YAC1C,SAAS,CAChB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IAC1C,CAAC;CACJ;AAMD,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,GAAW,EAAE,UAAiC,EAAE,EAAyB,EAAE;IAC5G,MAAM,MAAM,GAAG,MAAM,UAAU,CAAa;QACxC,IAAI,EAAE,MAAM;QACZ,GAAG;QACH,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;KAClC,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,IAAI,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAElC,OAAO;QACH,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG;KAC7B,CAAC;AACN,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACvC,GAAW,EACX,UAAyC,EAAE,EAChB,EAAE;IAC7B,IAAI,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACvG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,OAAO,CAAC,YAAY,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;YACnE,OAAO,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,UAAyC,EAAE,EAAoB,EAAE;IACpG,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuC,CAAC;IAC7D,OAAO,CAAC,GAAW,EAA+B,EAAE;QAChD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAChD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Plugin, UserConfig } from "vite";
2
+ import { type GtkxConfigLoader } from "./loader.js";
3
+ export interface GtkxConfigPluginOptions {
4
+ name: string;
5
+ loadConfig?: GtkxConfigLoader;
6
+ config?: (config: UserConfig) => Omit<UserConfig, "plugins"> | null | undefined;
7
+ }
8
+ export declare const createGtkxConfigPlugin: (options: GtkxConfigPluginOptions) => Plugin;
9
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG5E,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACnF;AAED,eAAO,MAAM,sBAAsB,GAAI,SAAS,uBAAuB,KAAG,MAmBzE,CAAC"}
package/dist/plugin.js ADDED
@@ -0,0 +1,24 @@
1
+ import { createGtkxConfigLoader } from "./loader.js";
2
+ import { GTKX_CONFIG_VIRTUAL_ID, RESOLVED_GTKX_CONFIG_VIRTUAL_ID, renderGtkxConfigModule } from "./virtual.js";
3
+ export const createGtkxConfigPlugin = (options) => {
4
+ const loadConfig = options.loadConfig ?? createGtkxConfigLoader();
5
+ let root;
6
+ return {
7
+ name: options.name,
8
+ config(config) {
9
+ root = config.root ?? root;
10
+ return options.config?.(config) ?? undefined;
11
+ },
12
+ resolveId(id) {
13
+ if (id === GTKX_CONFIG_VIRTUAL_ID)
14
+ return RESOLVED_GTKX_CONFIG_VIRTUAL_ID;
15
+ return undefined;
16
+ },
17
+ async load(id) {
18
+ if (id !== RESOLVED_GTKX_CONFIG_VIRTUAL_ID)
19
+ return undefined;
20
+ return renderGtkxConfigModule(await loadConfig(root ?? process.cwd()));
21
+ },
22
+ };
23
+ };
24
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAQ/G,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAgC,EAAU,EAAE;IAC/E,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,sBAAsB,EAAE,CAAC;IAClE,IAAI,IAAwB,CAAC;IAE7B,OAAO;QACH,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,CAAC,MAAkB;YACrB,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;YAC3B,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;QACjD,CAAC;QACD,SAAS,CAAC,EAAU;YAChB,IAAI,EAAE,KAAK,sBAAsB;gBAAE,OAAO,+BAA+B,CAAC;YAC1E,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAU;YACjB,IAAI,EAAE,KAAK,+BAA+B;gBAAE,OAAO,SAAS,CAAC;YAC7D,OAAO,sBAAsB,CAAC,MAAM,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC;KACJ,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /// <reference path="../virtual.d.ts" preserve="true" />
2
+ /**
3
+ * Runtime window onto the project's resolved `gtkx.config.ts`: a verbatim
4
+ * re-export of the `virtual:gtkx-config` module served by `gtkx dev`/
5
+ * `gtkx build` and by the `@gtkx/vitest` plugin. Each resolved config field
6
+ * is a named constant — frozen at build time, identical on every import —
7
+ * alongside the codegen-derived metadata tables.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { applicationId } from "@gtkx/config/runtime";
12
+ * import { GtkApplication, GtkApplicationWindow } from "@gtkx/jsx/gtk";
13
+ *
14
+ * const App = () => (
15
+ * <GtkApplication applicationId={applicationId}>
16
+ * <GtkApplicationWindow title="Hello" defaultWidth={400} defaultHeight={300} />
17
+ * </GtkApplication>
18
+ * );
19
+ * ```
20
+ */
21
+ export * from "virtual:gtkx-config";
22
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /// <reference path="../virtual.d.ts" preserve="true" />
2
+ /**
3
+ * Runtime window onto the project's resolved `gtkx.config.ts`: a verbatim
4
+ * re-export of the `virtual:gtkx-config` module served by `gtkx dev`/
5
+ * `gtkx build` and by the `@gtkx/vitest` plugin. Each resolved config field
6
+ * is a named constant — frozen at build time, identical on every import —
7
+ * alongside the codegen-derived metadata tables.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { applicationId } from "@gtkx/config/runtime";
12
+ * import { GtkApplication, GtkApplicationWindow } from "@gtkx/jsx/gtk";
13
+ *
14
+ * const App = () => (
15
+ * <GtkApplication applicationId={applicationId}>
16
+ * <GtkApplicationWindow title="Hello" defaultWidth={400} defaultHeight={300} />
17
+ * </GtkApplication>
18
+ * );
19
+ * ```
20
+ */
21
+ export * from "virtual:gtkx-config";
22
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,wDAAwD;AAExD;;;;;;;;;;;;;;;;;;GAkBG;AACH,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,36 @@
1
+ export type PropCondition = "defined" | "nonNull" | "truthy";
2
+ export type SetterPropStep = {
3
+ prop: string;
4
+ call?: string;
5
+ set?: string;
6
+ when?: PropCondition;
7
+ skipWhenGetterEquals?: string;
8
+ requireGetterTruthyWithValue?: string;
9
+ skipWhenGetterDivergedFromCommitted?: string;
10
+ };
11
+ export type SetterPropGroup = {
12
+ kind: "setters";
13
+ props: SetterPropStep[];
14
+ always?: boolean;
15
+ };
16
+ export type SignalPropRule = {
17
+ kind: "signal";
18
+ prop: string;
19
+ signal: string;
20
+ noArgs?: boolean;
21
+ returnValue?: unknown;
22
+ };
23
+ export type PropRule = SetterPropGroup | SignalPropRule;
24
+ export type AddMethodArg = "widget" | "id" | "title" | "iconName";
25
+ export type AddMethodRule = {
26
+ method: string;
27
+ args: AddMethodArg[];
28
+ requires: AddMethodArg[];
29
+ };
30
+ export type PageMetaSetter = {
31
+ setter: string;
32
+ prop: string;
33
+ fallback?: unknown;
34
+ whenPresent?: boolean;
35
+ };
36
+ //# sourceMappingURL=table-rules-ir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-rules-ir.d.ts","sourceRoot":"","sources":["../src/table-rules-ir.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,mCAAmC,CAAC,EAAE,MAAM,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,eAAe,GAAG,cAAc,CAAC;AAExD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,GAAG,UAAU,CAAC;AAElE,MAAM,MAAM,aAAa,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=table-rules-ir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-rules-ir.js","sourceRoot":"","sources":["../src/table-rules-ir.ts"],"names":[],"mappings":""}
@@ -0,0 +1,107 @@
1
+ export type VerbArgs = "child" | "childName" | "null" | "prefixChild" | "prefixNull";
2
+ export type DetachGuard = {
3
+ side: "child" | "parent";
4
+ getter: string;
5
+ };
6
+ export type MethodVerb = {
7
+ kind: "method";
8
+ attach: string;
9
+ attachArgs: VerbArgs;
10
+ detach: string;
11
+ detachArgs: VerbArgs;
12
+ detachGuard?: DetachGuard;
13
+ };
14
+ export type ContainerPropRow = {
15
+ attach: string;
16
+ attachArgs?: VerbArgs;
17
+ detach?: string;
18
+ detachArgs?: VerbArgs;
19
+ detachGuard?: DetachGuard;
20
+ };
21
+ export type OrderedInsertVerb = {
22
+ kind: "orderedInsert";
23
+ attach: string;
24
+ detach: string;
25
+ collection: string;
26
+ };
27
+ export type AttachVerb = MethodVerb | OrderedInsertVerb;
28
+ export type ElementMapRule = {
29
+ child: string;
30
+ parentType?: string;
31
+ parentMethod?: string;
32
+ verb: AttachVerb;
33
+ };
34
+ export type PresenceCondition = "defined" | "nonNull";
35
+ export type CallArg = {
36
+ kind: "item";
37
+ path?: string;
38
+ fallback?: unknown;
39
+ } | {
40
+ kind: "value";
41
+ value: unknown;
42
+ };
43
+ export type CallStep = {
44
+ method: string;
45
+ args: CallArg[];
46
+ when?: {
47
+ path: string;
48
+ is: PresenceCondition;
49
+ };
50
+ };
51
+ export type ConstructSetter = {
52
+ method: string;
53
+ path: string;
54
+ when: PresenceCondition;
55
+ };
56
+ export type ConstructStep = {
57
+ type: string;
58
+ setters: ConstructSetter[];
59
+ attach: string;
60
+ };
61
+ export type ArrayPropRow = {
62
+ itemType: string;
63
+ clear?: string;
64
+ remove?: CallStep;
65
+ add?: CallStep[];
66
+ construct?: ConstructStep;
67
+ set?: string;
68
+ appendOnce?: boolean;
69
+ };
70
+ export type ObjectPropRow = {
71
+ itemType: string;
72
+ set: CallStep[];
73
+ unset?: CallStep[];
74
+ };
75
+ export type VirtualPropRow = {
76
+ type: string;
77
+ setter: string;
78
+ after?: string;
79
+ };
80
+ export type PerElementPropRows<Row> = Record<string, Record<string, Row>>;
81
+ /**
82
+ * Names of the child-attachment method shapes a GObject type can satisfy. Each
83
+ * shape corresponds to a runtime method whose presence *and* signature (argument
84
+ * arity, parameter types, nullability) `@gtkx/codegen` verifies against the GIR
85
+ * model, so the reconciler can rely on the call shape instead of duck-typing the
86
+ * method name alone.
87
+ */
88
+ export type AttachShape = "append" | "add" | "setContent" | "setChild" | "getChild" | "remove" | "reorderChildAfter" | "insertChildAfter" | "insert" | "getFirstChild";
89
+ /**
90
+ * Maps a GLib type name to the verified {@link AttachShape}s its own methods
91
+ * introduce. The reconciler resolves an instance's full shape set by unioning
92
+ * the entries across its type-name chain and implemented interfaces.
93
+ */
94
+ export type AttachShapeTable = Record<string, AttachShape[]>;
95
+ export type UserTableRows = {
96
+ containerProps?: PerElementPropRows<ContainerPropRow> | undefined;
97
+ arrayProps?: PerElementPropRows<ArrayPropRow> | undefined;
98
+ objectProps?: PerElementPropRows<ObjectPropRow> | undefined;
99
+ virtualProps?: PerElementPropRows<VirtualPropRow> | undefined;
100
+ elementMap?: ElementMapRule[] | undefined;
101
+ };
102
+ export declare const validateContainerPropRows: (containerProps: unknown) => void;
103
+ export declare const validateElementMap: (elementMap: unknown) => void;
104
+ export declare const validateArrayPropRows: (arrayProps: unknown) => void;
105
+ export declare const validateObjectPropRows: (objectProps: unknown) => void;
106
+ export declare const validateVirtualPropRows: (virtualProps: unknown) => void;
107
+ //# sourceMappingURL=table-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-schema.d.ts","sourceRoot":"","sources":["../src/table-schema.ts"],"names":[],"mappings":"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"}