trix-ui 0.2.8 → 0.2.9
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/__tests__/contracts/registry.test.d.ts +1 -0
- package/dist/__tests__/contracts/registry.test.js +42 -0
- package/dist/__tests__/contracts/registry.test.js.map +1 -0
- package/dist/__tests__/e2e/cli.test.d.ts +1 -0
- package/dist/__tests__/e2e/cli.test.js +67 -0
- package/dist/__tests__/e2e/cli.test.js.map +1 -0
- package/dist/__tests__/helpers/fs.d.ts +5 -0
- package/dist/__tests__/helpers/fs.js +26 -0
- package/dist/__tests__/helpers/fs.js.map +1 -0
- package/dist/__tests__/integration/commands.integration.test.d.ts +1 -0
- package/dist/__tests__/integration/commands.integration.test.js +184 -0
- package/dist/__tests__/integration/commands.integration.test.js.map +1 -0
- package/dist/commands/__tests__/add-composite.test.d.ts +2 -0
- package/dist/commands/__tests__/add-composite.test.js +171 -0
- package/dist/commands/__tests__/add-composite.test.js.map +1 -0
- package/dist/commands/__tests__/add-entry.mocks.d.ts +23 -0
- package/dist/commands/__tests__/add-entry.mocks.js +64 -0
- package/dist/commands/__tests__/add-entry.mocks.js.map +1 -0
- package/dist/commands/__tests__/add-section.test.d.ts +2 -0
- package/dist/commands/__tests__/add-section.test.js +191 -0
- package/dist/commands/__tests__/add-section.test.js.map +1 -0
- package/dist/commands/__tests__/add-wrapper.test.d.ts +2 -0
- package/dist/commands/__tests__/add-wrapper.test.js +171 -0
- package/dist/commands/__tests__/add-wrapper.test.js.map +1 -0
- package/dist/commands/__tests__/cli-mocks.d.ts +1 -0
- package/dist/commands/__tests__/cli-mocks.js +24 -0
- package/dist/commands/__tests__/cli-mocks.js.map +1 -0
- package/dist/commands/__tests__/doctor.mocks.d.ts +6 -0
- package/dist/commands/__tests__/doctor.mocks.js +20 -0
- package/dist/commands/__tests__/doctor.mocks.js.map +1 -0
- package/dist/commands/__tests__/doctor.test.d.ts +2 -0
- package/dist/commands/__tests__/doctor.test.js +80 -0
- package/dist/commands/__tests__/doctor.test.js.map +1 -0
- package/dist/commands/__tests__/list.mocks.d.ts +8 -0
- package/dist/commands/__tests__/list.mocks.js +20 -0
- package/dist/commands/__tests__/list.mocks.js.map +1 -0
- package/dist/commands/__tests__/list.test.d.ts +2 -0
- package/dist/commands/__tests__/list.test.js +60 -0
- package/dist/commands/__tests__/list.test.js.map +1 -0
- package/dist/commands/__tests__/remove.mocks.d.ts +9 -0
- package/dist/commands/__tests__/remove.mocks.js +26 -0
- package/dist/commands/__tests__/remove.mocks.js.map +1 -0
- package/dist/commands/__tests__/remove.test.d.ts +2 -0
- package/dist/commands/__tests__/remove.test.js +116 -0
- package/dist/commands/__tests__/remove.test.js.map +1 -0
- package/dist/commands/add/__tests__/add.mocks.d.ts +19 -19
- package/dist/commands/add/__tests__/add.mocks.js +59 -59
- package/dist/commands/add/__tests__/add.test.d.ts +2 -2
- package/dist/commands/add/__tests__/add.test.js +140 -140
- package/dist/commands/add/analysis.d.ts +4 -4
- package/dist/commands/add/analysis.js +56 -56
- package/dist/commands/add/command.d.ts +2 -2
- package/dist/commands/add/command.js +202 -202
- package/dist/commands/add/config.d.ts +2 -2
- package/dist/commands/add/config.js +11 -11
- package/dist/commands/add/install.d.ts +27 -27
- package/dist/commands/add/install.js +80 -80
- package/dist/commands/add/package-manager.d.ts +1 -1
- package/dist/commands/add/package-manager.js +4 -4
- package/dist/commands/add/project-files.d.ts +2 -2
- package/dist/commands/add/project-files.js +17 -17
- package/dist/commands/add/prompts.d.ts +3 -3
- package/dist/commands/add/prompts.js +28 -28
- package/dist/commands/add/registry.d.ts +4 -4
- package/dist/commands/add/registry.js +6 -6
- package/dist/commands/add/types.d.ts +33 -33
- package/dist/commands/add/types.js +1 -1
- package/dist/commands/add/ui.d.ts +4 -4
- package/dist/commands/add/ui.js +55 -55
- package/dist/commands/add/validation.d.ts +3 -3
- package/dist/commands/add/validation.js +30 -30
- package/dist/commands/add-collection.d.ts +1 -1
- package/dist/commands/add-collection.js +1 -1
- package/dist/commands/add-composite.d.ts +2 -2
- package/dist/commands/add-composite.js +201 -201
- package/dist/commands/add-section.d.ts +2 -2
- package/dist/commands/add-section.js +201 -201
- package/dist/commands/add-wrapper.d.ts +2 -2
- package/dist/commands/add-wrapper.js +201 -201
- package/dist/commands/add.d.ts +1 -1
- package/dist/commands/add.js +1 -1
- package/dist/commands/build.d.ts +2 -2
- package/dist/commands/doctor.d.ts +2 -2
- package/dist/commands/doctor.js +67 -67
- package/dist/commands/init/__tests__/init.mocks.d.ts +24 -0
- package/dist/commands/init/__tests__/init.mocks.js +84 -0
- package/dist/commands/init/__tests__/init.mocks.js.map +1 -0
- package/dist/commands/init/__tests__/init.test.d.ts +2 -0
- package/dist/commands/init/__tests__/init.test.js +283 -0
- package/dist/commands/init/__tests__/init.test.js.map +1 -0
- package/dist/commands/init/__tests__/tailwind.test.d.ts +1 -0
- package/dist/commands/init/__tests__/tailwind.test.js +56 -0
- package/dist/commands/init/__tests__/tailwind.test.js.map +1 -0
- package/dist/commands/init/__tests__/tsconfig.test.d.ts +1 -0
- package/dist/commands/init/__tests__/tsconfig.test.js +108 -0
- package/dist/commands/init/__tests__/tsconfig.test.js.map +1 -0
- package/dist/commands/init/__tests__/vite.test.d.ts +1 -0
- package/dist/commands/init/__tests__/vite.test.js +66 -0
- package/dist/commands/init/__tests__/vite.test.js.map +1 -0
- package/dist/commands/init/command.d.ts +2 -2
- package/dist/commands/init/command.js +114 -114
- package/dist/commands/init/config.d.ts +2 -2
- package/dist/commands/init/config.js +25 -25
- package/dist/commands/init/constants.d.ts +3 -3
- package/dist/commands/init/constants.js +105 -105
- package/dist/commands/init/dependencies.d.ts +5 -5
- package/dist/commands/init/dependencies.js +52 -52
- package/dist/commands/init/filesystem.d.ts +1 -1
- package/dist/commands/init/filesystem.js +10 -10
- package/dist/commands/init/lockfile.d.ts +1 -1
- package/dist/commands/init/lockfile.js +1 -1
- package/dist/commands/init/package-json.d.ts +6 -6
- package/dist/commands/init/package-json.js +18 -18
- package/dist/commands/init/project-files.d.ts +8 -0
- package/dist/commands/init/project-files.js +37 -0
- package/dist/commands/init/project-files.js.map +1 -0
- package/dist/commands/init/project.d.ts +3 -3
- package/dist/commands/init/project.js +97 -97
- package/dist/commands/init/style-imports.d.ts +9 -0
- package/dist/commands/init/style-imports.js +218 -0
- package/dist/commands/init/style-imports.js.map +1 -0
- package/dist/commands/init/tailwind.d.ts +3 -3
- package/dist/commands/init/tailwind.js +34 -34
- package/dist/commands/init/templates.d.ts +3 -3
- package/dist/commands/init/templates.js +15 -15
- package/dist/commands/init/tsconfig.d.ts +2 -2
- package/dist/commands/init/tsconfig.js +273 -273
- package/dist/commands/init/types.d.ts +33 -33
- package/dist/commands/init/types.js +1 -1
- package/dist/commands/init/ui.d.ts +3 -3
- package/dist/commands/init/ui.js +33 -33
- package/dist/commands/init/vite.d.ts +23 -0
- package/dist/commands/init/vite.js +347 -0
- package/dist/commands/init/vite.js.map +1 -0
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/list.d.ts +2 -2
- package/dist/commands/list.js +62 -62
- package/dist/commands/remove.d.ts +2 -2
- package/dist/commands/remove.js +93 -93
- package/dist/commands/shared/add-collection.d.ts +50 -50
- package/dist/commands/shared/add-collection.js +206 -206
- package/dist/commands/shared/list-entries.d.ts +6 -6
- package/dist/commands/shared/list-entries.js +12 -12
- package/dist/commands/shared/name-utils.d.ts +1 -1
- package/dist/commands/shared/name-utils.js +13 -13
- package/dist/commands/shared/remove-entries.d.ts +16 -16
- package/dist/commands/shared/remove-entries.js +41 -41
- package/dist/icons/index.d.ts +1 -1
- package/dist/icons/index.js +1 -1
- package/dist/icons/libraries.d.ts +37 -37
- package/dist/icons/libraries.js +34 -34
- package/dist/index.d.ts +2 -2
- package/dist/index.js +30 -30
- package/dist/lib/__tests__/config.test.d.ts +1 -0
- package/dist/lib/__tests__/config.test.js +49 -0
- package/dist/lib/__tests__/config.test.js.map +1 -0
- package/dist/lib/__tests__/install.test.d.ts +1 -0
- package/dist/lib/__tests__/install.test.js +149 -0
- package/dist/lib/__tests__/install.test.js.map +1 -0
- package/dist/lib/__tests__/lockfile.test.d.ts +1 -0
- package/dist/lib/__tests__/lockfile.test.js +89 -0
- package/dist/lib/__tests__/lockfile.test.js.map +1 -0
- package/dist/lib/__tests__/paths.test.d.ts +1 -0
- package/dist/lib/__tests__/paths.test.js +39 -0
- package/dist/lib/__tests__/paths.test.js.map +1 -0
- package/dist/lib/__tests__/registry.test.d.ts +1 -0
- package/dist/lib/__tests__/registry.test.js +76 -0
- package/dist/lib/__tests__/registry.test.js.map +1 -0
- package/dist/lib/config.d.ts +45 -45
- package/dist/lib/config.js +97 -97
- package/dist/lib/fs.d.ts +76 -76
- package/dist/lib/fs.js +302 -302
- package/dist/lib/highlighter.d.ts +6 -6
- package/dist/lib/highlighter.js +7 -7
- package/dist/lib/install.d.ts +19 -19
- package/dist/lib/install.js +55 -55
- package/dist/lib/lockfile.d.ts +63 -63
- package/dist/lib/lockfile.js +173 -173
- package/dist/lib/logger.d.ts +8 -8
- package/dist/lib/logger.js +41 -41
- package/dist/lib/paths.d.ts +14 -14
- package/dist/lib/paths.js +31 -31
- package/dist/lib/registry.d.ts +35 -35
- package/dist/lib/registry.js +180 -180
- package/dist/schema/index.d.ts +1128 -1128
- package/dist/schema/index.js +238 -238
- package/dist/styles/create-style-map.d.ts +4 -4
- package/dist/styles/create-style-map.js +68 -68
- package/dist/styles/transform-style-map.d.ts +3 -3
- package/dist/styles/transform-style-map.js +428 -428
- package/dist/styles/transform.d.ts +10 -10
- package/dist/styles/transform.js +15 -15
- package/dist/utils/index.d.ts +6 -6
- package/dist/utils/index.js +5 -5
- package/dist/utils/transformers/transform-icons.d.ts +2 -2
- package/dist/utils/transformers/transform-icons.js +164 -164
- package/dist/utils/transformers/transform-menu.d.ts +2 -2
- package/dist/utils/transformers/transform-menu.js +39 -39
- package/dist/utils/transformers/transform-render.d.ts +2 -2
- package/dist/utils/transformers/transform-render.js +97 -97
- package/dist/utils/transformers/types.d.ts +14 -14
- package/dist/utils/transformers/types.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
import { createTempDir, removeDir, writeJson } from "../../__tests__/helpers/fs.js";
|
|
4
|
+
import { loadRegistry } from "../registry.js";
|
|
5
|
+
describe("registry", () => {
|
|
6
|
+
it("loads a valid local registry", async () => {
|
|
7
|
+
const cwd = await createTempDir("trix-ui-registry-");
|
|
8
|
+
try {
|
|
9
|
+
const registryPath = path.join(cwd, "registry", "index.json");
|
|
10
|
+
await writeJson(registryPath, {
|
|
11
|
+
version: 1,
|
|
12
|
+
components: [
|
|
13
|
+
{
|
|
14
|
+
name: "button",
|
|
15
|
+
description: "Button",
|
|
16
|
+
files: [
|
|
17
|
+
{
|
|
18
|
+
source: "components/ui/button.tsx",
|
|
19
|
+
target: "{{components}}/button.tsx"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
});
|
|
25
|
+
const config = {
|
|
26
|
+
registry: {
|
|
27
|
+
type: "local",
|
|
28
|
+
path: "registry/index.json"
|
|
29
|
+
},
|
|
30
|
+
paths: {
|
|
31
|
+
components: "components/ui",
|
|
32
|
+
sections: "components/sections",
|
|
33
|
+
wrappers: "components/wrappers",
|
|
34
|
+
composites: "components/composites",
|
|
35
|
+
utils: "lib/utils.ts",
|
|
36
|
+
styles: "styles/globals.css"
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const registry = await loadRegistry(config, cwd);
|
|
40
|
+
expect(registry.components).toHaveLength(1);
|
|
41
|
+
expect(registry.components[0].name).toBe("button");
|
|
42
|
+
}
|
|
43
|
+
finally {
|
|
44
|
+
await removeDir(cwd);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
it("rejects invalid registry format", async () => {
|
|
48
|
+
const cwd = await createTempDir("trix-ui-registry-");
|
|
49
|
+
try {
|
|
50
|
+
const registryPath = path.join(cwd, "registry", "index.json");
|
|
51
|
+
await writeJson(registryPath, {
|
|
52
|
+
version: 1,
|
|
53
|
+
sections: []
|
|
54
|
+
});
|
|
55
|
+
const config = {
|
|
56
|
+
registry: {
|
|
57
|
+
type: "local",
|
|
58
|
+
path: "registry/index.json"
|
|
59
|
+
},
|
|
60
|
+
paths: {
|
|
61
|
+
components: "components/ui",
|
|
62
|
+
sections: "components/sections",
|
|
63
|
+
wrappers: "components/wrappers",
|
|
64
|
+
composites: "components/composites",
|
|
65
|
+
utils: "lib/utils.ts",
|
|
66
|
+
styles: "styles/globals.css"
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
await expect(loadRegistry(config, cwd)).rejects.toThrow(/missing 'components' array/i);
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
await removeDir(cwd);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=registry.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/registry.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,mBAAmB,CAAC,CAAA;QACpD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA;YAC7D,MAAM,SAAS,CAAC,YAAY,EAAE;gBAC5B,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,QAAQ;wBACrB,KAAK,EAAE;4BACL;gCACE,MAAM,EAAE,0BAA0B;gCAClC,MAAM,EAAE,2BAA2B;6BACpC;yBACF;qBACF;iBACF;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG;gBACb,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,qBAAqB;iBAC5B;gBACD,KAAK,EAAE;oBACL,UAAU,EAAE,eAAe;oBAC3B,QAAQ,EAAE,qBAAqB;oBAC/B,QAAQ,EAAE,qBAAqB;oBAC/B,UAAU,EAAE,uBAAuB;oBACnC,KAAK,EAAE,cAAc;oBACrB,MAAM,EAAE,oBAAoB;iBAC7B;aACF,CAAA;YAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YAChD,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;YAC3C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpD,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,mBAAmB,CAAC,CAAA;QACpD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA;YAC7D,MAAM,SAAS,CAAC,YAAY,EAAE;gBAC5B,OAAO,EAAE,CAAC;gBACV,QAAQ,EAAE,EAAE;aACb,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG;gBACb,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,qBAAqB;iBAC5B;gBACD,KAAK,EAAE;oBACL,UAAU,EAAE,eAAe;oBAC3B,QAAQ,EAAE,qBAAqB;oBAC/B,QAAQ,EAAE,qBAAqB;oBAC/B,UAAU,EAAE,uBAAuB;oBACnC,KAAK,EAAE,cAAc;oBACrB,MAAM,EAAE,oBAAoB;iBAC7B;aACF,CAAA;YAED,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACrD,6BAA6B,CAC9B,CAAA;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
export type RegistryConfig = {
|
|
2
|
-
type: "bundled";
|
|
3
|
-
} | {
|
|
4
|
-
type: "local";
|
|
5
|
-
path: string;
|
|
6
|
-
templates?: string;
|
|
7
|
-
};
|
|
8
|
-
export type RegistryConfigInput = RegistryConfig | string;
|
|
9
|
-
export interface TrixUIConfig {
|
|
10
|
-
$schema?: string;
|
|
11
|
-
typescript: boolean;
|
|
12
|
-
tailwind: boolean;
|
|
13
|
-
framework: "next" | "react" | "vite" | "unknown";
|
|
14
|
-
barrel: boolean;
|
|
15
|
-
paths: {
|
|
16
|
-
components: string;
|
|
17
|
-
sections: string;
|
|
18
|
-
wrappers: string;
|
|
19
|
-
composites: string;
|
|
20
|
-
utils: string;
|
|
21
|
-
styles: string;
|
|
22
|
-
};
|
|
23
|
-
registry?: RegistryConfigInput;
|
|
24
|
-
}
|
|
25
|
-
export declare const DEFAULT_CONFIG: TrixUIConfig;
|
|
26
|
-
/**
|
|
27
|
-
* Get the config file path
|
|
28
|
-
*/
|
|
29
|
-
export declare function getConfigPath(cwd: string): string;
|
|
30
|
-
/**
|
|
31
|
-
* Check if config file exists
|
|
32
|
-
*/
|
|
33
|
-
export declare function configExists(cwd: string): Promise<boolean>;
|
|
34
|
-
/**
|
|
35
|
-
* Load config from file
|
|
36
|
-
*/
|
|
37
|
-
export declare function loadConfig(cwd: string): Promise<TrixUIConfig>;
|
|
38
|
-
/**
|
|
39
|
-
* Write config to file
|
|
40
|
-
*/
|
|
41
|
-
export declare function writeConfig(cwd: string, config: TrixUIConfig, force?: boolean): Promise<void>;
|
|
42
|
-
/**
|
|
43
|
-
* Update specific config fields
|
|
44
|
-
*/
|
|
45
|
-
export declare function updateConfig(cwd: string, updates: Partial<TrixUIConfig>): Promise<void>;
|
|
1
|
+
export type RegistryConfig = {
|
|
2
|
+
type: "bundled";
|
|
3
|
+
} | {
|
|
4
|
+
type: "local";
|
|
5
|
+
path: string;
|
|
6
|
+
templates?: string;
|
|
7
|
+
};
|
|
8
|
+
export type RegistryConfigInput = RegistryConfig | string;
|
|
9
|
+
export interface TrixUIConfig {
|
|
10
|
+
$schema?: string;
|
|
11
|
+
typescript: boolean;
|
|
12
|
+
tailwind: boolean;
|
|
13
|
+
framework: "next" | "react" | "vite" | "unknown";
|
|
14
|
+
barrel: boolean;
|
|
15
|
+
paths: {
|
|
16
|
+
components: string;
|
|
17
|
+
sections: string;
|
|
18
|
+
wrappers: string;
|
|
19
|
+
composites: string;
|
|
20
|
+
utils: string;
|
|
21
|
+
styles: string;
|
|
22
|
+
};
|
|
23
|
+
registry?: RegistryConfigInput;
|
|
24
|
+
}
|
|
25
|
+
export declare const DEFAULT_CONFIG: TrixUIConfig;
|
|
26
|
+
/**
|
|
27
|
+
* Get the config file path
|
|
28
|
+
*/
|
|
29
|
+
export declare function getConfigPath(cwd: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Check if config file exists
|
|
32
|
+
*/
|
|
33
|
+
export declare function configExists(cwd: string): Promise<boolean>;
|
|
34
|
+
/**
|
|
35
|
+
* Load config from file
|
|
36
|
+
*/
|
|
37
|
+
export declare function loadConfig(cwd: string): Promise<TrixUIConfig>;
|
|
38
|
+
/**
|
|
39
|
+
* Write config to file
|
|
40
|
+
*/
|
|
41
|
+
export declare function writeConfig(cwd: string, config: TrixUIConfig, force?: boolean): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Update specific config fields
|
|
44
|
+
*/
|
|
45
|
+
export declare function updateConfig(cwd: string, updates: Partial<TrixUIConfig>): Promise<void>;
|
package/dist/lib/config.js
CHANGED
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import { fileExists, readJsonFile, writeJsonFile } from "./fs.js";
|
|
3
|
-
export const DEFAULT_CONFIG = {
|
|
4
|
-
typescript: true,
|
|
5
|
-
tailwind: true,
|
|
6
|
-
framework: "react",
|
|
7
|
-
barrel: false,
|
|
8
|
-
registry: {
|
|
9
|
-
type: "bundled"
|
|
10
|
-
},
|
|
11
|
-
paths: {
|
|
12
|
-
components: "components/ui",
|
|
13
|
-
sections: "components/sections",
|
|
14
|
-
wrappers: "components/wrappers",
|
|
15
|
-
composites: "components/composites",
|
|
16
|
-
utils: "lib/utils.ts",
|
|
17
|
-
styles: "globals.css",
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
const CONFIG_FILENAME = "trix-ui.json";
|
|
21
|
-
/**
|
|
22
|
-
* Get the config file path
|
|
23
|
-
*/
|
|
24
|
-
export function getConfigPath(cwd) {
|
|
25
|
-
return path.join(cwd, CONFIG_FILENAME);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Check if config file exists
|
|
29
|
-
*/
|
|
30
|
-
export async function configExists(cwd) {
|
|
31
|
-
return fileExists(getConfigPath(cwd));
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Load config from file
|
|
35
|
-
*/
|
|
36
|
-
export async function loadConfig(cwd) {
|
|
37
|
-
const configPath = getConfigPath(cwd);
|
|
38
|
-
if (!(await fileExists(configPath))) {
|
|
39
|
-
throw new Error(`Config file not found: ${CONFIG_FILENAME}\n` +
|
|
40
|
-
`Run 'trix-ui init' to initialize your project.`);
|
|
41
|
-
}
|
|
42
|
-
try {
|
|
43
|
-
const config = await readJsonFile(configPath);
|
|
44
|
-
// Validate required fields
|
|
45
|
-
if (!config.paths) {
|
|
46
|
-
throw new Error("Invalid config: missing 'paths' field");
|
|
47
|
-
}
|
|
48
|
-
if (!config.paths.components) {
|
|
49
|
-
throw new Error("Invalid config: missing 'paths.components' field");
|
|
50
|
-
}
|
|
51
|
-
// Merge with defaults to ensure all fields exist
|
|
52
|
-
return {
|
|
53
|
-
...DEFAULT_CONFIG,
|
|
54
|
-
...config,
|
|
55
|
-
paths: {
|
|
56
|
-
...DEFAULT_CONFIG.paths,
|
|
57
|
-
...config.paths,
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
catch (error) {
|
|
62
|
-
throw new Error(`Failed to load config: ${error.message}\n` +
|
|
63
|
-
`Please check your ${CONFIG_FILENAME} file for syntax errors.`);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Write config to file
|
|
68
|
-
*/
|
|
69
|
-
export async function writeConfig(cwd, config, force = false) {
|
|
70
|
-
const configPath = getConfigPath(cwd);
|
|
71
|
-
// Add schema for IDE support
|
|
72
|
-
const configWithSchema = {
|
|
73
|
-
$schema: "https://trix-ui.com/schema.json",
|
|
74
|
-
...config,
|
|
75
|
-
};
|
|
76
|
-
try {
|
|
77
|
-
await writeJsonFile(configPath, configWithSchema, force);
|
|
78
|
-
}
|
|
79
|
-
catch (error) {
|
|
80
|
-
throw new Error(`Failed to write config: ${error.message}`);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Update specific config fields
|
|
85
|
-
*/
|
|
86
|
-
export async function updateConfig(cwd, updates) {
|
|
87
|
-
const config = await loadConfig(cwd);
|
|
88
|
-
const updatedConfig = {
|
|
89
|
-
...config,
|
|
90
|
-
...updates,
|
|
91
|
-
paths: {
|
|
92
|
-
...config.paths,
|
|
93
|
-
...(updates.paths || {}),
|
|
94
|
-
},
|
|
95
|
-
};
|
|
96
|
-
await writeConfig(cwd, updatedConfig, true);
|
|
97
|
-
}
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { fileExists, readJsonFile, writeJsonFile } from "./fs.js";
|
|
3
|
+
export const DEFAULT_CONFIG = {
|
|
4
|
+
typescript: true,
|
|
5
|
+
tailwind: true,
|
|
6
|
+
framework: "react",
|
|
7
|
+
barrel: false,
|
|
8
|
+
registry: {
|
|
9
|
+
type: "bundled"
|
|
10
|
+
},
|
|
11
|
+
paths: {
|
|
12
|
+
components: "components/ui",
|
|
13
|
+
sections: "components/sections",
|
|
14
|
+
wrappers: "components/wrappers",
|
|
15
|
+
composites: "components/composites",
|
|
16
|
+
utils: "lib/utils.ts",
|
|
17
|
+
styles: "globals.css",
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
const CONFIG_FILENAME = "trix-ui.json";
|
|
21
|
+
/**
|
|
22
|
+
* Get the config file path
|
|
23
|
+
*/
|
|
24
|
+
export function getConfigPath(cwd) {
|
|
25
|
+
return path.join(cwd, CONFIG_FILENAME);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if config file exists
|
|
29
|
+
*/
|
|
30
|
+
export async function configExists(cwd) {
|
|
31
|
+
return fileExists(getConfigPath(cwd));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Load config from file
|
|
35
|
+
*/
|
|
36
|
+
export async function loadConfig(cwd) {
|
|
37
|
+
const configPath = getConfigPath(cwd);
|
|
38
|
+
if (!(await fileExists(configPath))) {
|
|
39
|
+
throw new Error(`Config file not found: ${CONFIG_FILENAME}\n` +
|
|
40
|
+
`Run 'trix-ui init' to initialize your project.`);
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
const config = await readJsonFile(configPath);
|
|
44
|
+
// Validate required fields
|
|
45
|
+
if (!config.paths) {
|
|
46
|
+
throw new Error("Invalid config: missing 'paths' field");
|
|
47
|
+
}
|
|
48
|
+
if (!config.paths.components) {
|
|
49
|
+
throw new Error("Invalid config: missing 'paths.components' field");
|
|
50
|
+
}
|
|
51
|
+
// Merge with defaults to ensure all fields exist
|
|
52
|
+
return {
|
|
53
|
+
...DEFAULT_CONFIG,
|
|
54
|
+
...config,
|
|
55
|
+
paths: {
|
|
56
|
+
...DEFAULT_CONFIG.paths,
|
|
57
|
+
...config.paths,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
throw new Error(`Failed to load config: ${error.message}\n` +
|
|
63
|
+
`Please check your ${CONFIG_FILENAME} file for syntax errors.`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Write config to file
|
|
68
|
+
*/
|
|
69
|
+
export async function writeConfig(cwd, config, force = false) {
|
|
70
|
+
const configPath = getConfigPath(cwd);
|
|
71
|
+
// Add schema for IDE support
|
|
72
|
+
const configWithSchema = {
|
|
73
|
+
$schema: "https://trix-ui.com/schema.json",
|
|
74
|
+
...config,
|
|
75
|
+
};
|
|
76
|
+
try {
|
|
77
|
+
await writeJsonFile(configPath, configWithSchema, force);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
throw new Error(`Failed to write config: ${error.message}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Update specific config fields
|
|
85
|
+
*/
|
|
86
|
+
export async function updateConfig(cwd, updates) {
|
|
87
|
+
const config = await loadConfig(cwd);
|
|
88
|
+
const updatedConfig = {
|
|
89
|
+
...config,
|
|
90
|
+
...updates,
|
|
91
|
+
paths: {
|
|
92
|
+
...config.paths,
|
|
93
|
+
...(updates.paths || {}),
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
await writeConfig(cwd, updatedConfig, true);
|
|
97
|
+
}
|
|
98
98
|
//# sourceMappingURL=config.js.map
|
package/dist/lib/fs.d.ts
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
import { Stats } from "node:fs";
|
|
2
|
-
/**
|
|
3
|
-
* Check if a file exists
|
|
4
|
-
*/
|
|
5
|
-
export declare function fileExists(filePath: string): Promise<boolean>;
|
|
6
|
-
/**
|
|
7
|
-
* Check if a directory exists
|
|
8
|
-
*/
|
|
9
|
-
export declare function directoryExists(dirPath: string): Promise<boolean>;
|
|
10
|
-
/**
|
|
11
|
-
* Ensure a directory exists, create if it doesn't
|
|
12
|
-
*/
|
|
13
|
-
export declare function ensureDir(dirPath: string): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
* Read a file as a string with proper encoding and BOM handling
|
|
16
|
-
*/
|
|
17
|
-
export declare function readFile(filePath: string): Promise<string>;
|
|
18
|
-
/**
|
|
19
|
-
* Read and parse a JSON file with comprehensive error handling
|
|
20
|
-
*/
|
|
21
|
-
export declare function readJsonFile<T = any>(filePath: string): Promise<T>;
|
|
22
|
-
/**
|
|
23
|
-
* Write content to a file
|
|
24
|
-
*/
|
|
25
|
-
export declare function writeFile(filePath: string, content: string): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* Write content to a file only if it doesn't exist or force is true
|
|
28
|
-
*/
|
|
29
|
-
export declare function writeFileSafe(filePath: string, content: string, force?: boolean): Promise<boolean>;
|
|
30
|
-
/**
|
|
31
|
-
* Write JSON to a file with pretty formatting
|
|
32
|
-
*/
|
|
33
|
-
export declare function writeJsonFile(filePath: string, data: any, force?: boolean): Promise<void>;
|
|
34
|
-
/**
|
|
35
|
-
* Copy a file from source to destination
|
|
36
|
-
*/
|
|
37
|
-
export declare function copyFile(src: string, dest: string): Promise<void>;
|
|
38
|
-
/**
|
|
39
|
-
* Copy a file only if destination doesn't exist or force is true
|
|
40
|
-
*/
|
|
41
|
-
export declare function copyFileSafe(src: string, dest: string, force?: boolean): Promise<boolean>;
|
|
42
|
-
/**
|
|
43
|
-
* Delete a file
|
|
44
|
-
*/
|
|
45
|
-
export declare function deleteFile(filePath: string): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Delete a directory recursively
|
|
48
|
-
*/
|
|
49
|
-
export declare function deleteDirectory(dirPath: string): Promise<void>;
|
|
50
|
-
/**
|
|
51
|
-
* List files in a directory
|
|
52
|
-
*/
|
|
53
|
-
export declare function listFiles(dirPath: string, options?: {
|
|
54
|
-
recursive?: boolean;
|
|
55
|
-
extension?: string;
|
|
56
|
-
}): Promise<string[]>;
|
|
57
|
-
/**
|
|
58
|
-
* Get file stats
|
|
59
|
-
*/
|
|
60
|
-
export declare function getFileStats(filePath: string): Promise<Stats | null>;
|
|
61
|
-
/**
|
|
62
|
-
* Check if path is a file
|
|
63
|
-
*/
|
|
64
|
-
export declare function isFile(filePath: string): Promise<boolean>;
|
|
65
|
-
/**
|
|
66
|
-
* Check if path is a directory
|
|
67
|
-
*/
|
|
68
|
-
export declare function isDirectory(dirPath: string): Promise<boolean>;
|
|
69
|
-
/**
|
|
70
|
-
* Read package.json with validation
|
|
71
|
-
*/
|
|
72
|
-
export declare function readPackageJson(cwd: string): Promise<any>;
|
|
73
|
-
/**
|
|
74
|
-
* Update package.json dependencies
|
|
75
|
-
*/
|
|
76
|
-
export declare function updatePackageJsonDependencies(cwd: string, dependencies: Record<string, string>, dev?: boolean): Promise<void>;
|
|
1
|
+
import { Stats } from "node:fs";
|
|
2
|
+
/**
|
|
3
|
+
* Check if a file exists
|
|
4
|
+
*/
|
|
5
|
+
export declare function fileExists(filePath: string): Promise<boolean>;
|
|
6
|
+
/**
|
|
7
|
+
* Check if a directory exists
|
|
8
|
+
*/
|
|
9
|
+
export declare function directoryExists(dirPath: string): Promise<boolean>;
|
|
10
|
+
/**
|
|
11
|
+
* Ensure a directory exists, create if it doesn't
|
|
12
|
+
*/
|
|
13
|
+
export declare function ensureDir(dirPath: string): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Read a file as a string with proper encoding and BOM handling
|
|
16
|
+
*/
|
|
17
|
+
export declare function readFile(filePath: string): Promise<string>;
|
|
18
|
+
/**
|
|
19
|
+
* Read and parse a JSON file with comprehensive error handling
|
|
20
|
+
*/
|
|
21
|
+
export declare function readJsonFile<T = any>(filePath: string): Promise<T>;
|
|
22
|
+
/**
|
|
23
|
+
* Write content to a file
|
|
24
|
+
*/
|
|
25
|
+
export declare function writeFile(filePath: string, content: string): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Write content to a file only if it doesn't exist or force is true
|
|
28
|
+
*/
|
|
29
|
+
export declare function writeFileSafe(filePath: string, content: string, force?: boolean): Promise<boolean>;
|
|
30
|
+
/**
|
|
31
|
+
* Write JSON to a file with pretty formatting
|
|
32
|
+
*/
|
|
33
|
+
export declare function writeJsonFile(filePath: string, data: any, force?: boolean): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Copy a file from source to destination
|
|
36
|
+
*/
|
|
37
|
+
export declare function copyFile(src: string, dest: string): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Copy a file only if destination doesn't exist or force is true
|
|
40
|
+
*/
|
|
41
|
+
export declare function copyFileSafe(src: string, dest: string, force?: boolean): Promise<boolean>;
|
|
42
|
+
/**
|
|
43
|
+
* Delete a file
|
|
44
|
+
*/
|
|
45
|
+
export declare function deleteFile(filePath: string): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Delete a directory recursively
|
|
48
|
+
*/
|
|
49
|
+
export declare function deleteDirectory(dirPath: string): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* List files in a directory
|
|
52
|
+
*/
|
|
53
|
+
export declare function listFiles(dirPath: string, options?: {
|
|
54
|
+
recursive?: boolean;
|
|
55
|
+
extension?: string;
|
|
56
|
+
}): Promise<string[]>;
|
|
57
|
+
/**
|
|
58
|
+
* Get file stats
|
|
59
|
+
*/
|
|
60
|
+
export declare function getFileStats(filePath: string): Promise<Stats | null>;
|
|
61
|
+
/**
|
|
62
|
+
* Check if path is a file
|
|
63
|
+
*/
|
|
64
|
+
export declare function isFile(filePath: string): Promise<boolean>;
|
|
65
|
+
/**
|
|
66
|
+
* Check if path is a directory
|
|
67
|
+
*/
|
|
68
|
+
export declare function isDirectory(dirPath: string): Promise<boolean>;
|
|
69
|
+
/**
|
|
70
|
+
* Read package.json with validation
|
|
71
|
+
*/
|
|
72
|
+
export declare function readPackageJson(cwd: string): Promise<any>;
|
|
73
|
+
/**
|
|
74
|
+
* Update package.json dependencies
|
|
75
|
+
*/
|
|
76
|
+
export declare function updatePackageJsonDependencies(cwd: string, dependencies: Record<string, string>, dev?: boolean): Promise<void>;
|