@weme-ui/weme-ui 0.1.4 → 0.2.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 (46) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +19 -11
  3. package/dist/add-DESSspHh.js +56 -0
  4. package/dist/add-DESSspHh.js.map +1 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.js +58 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/init-DZjeMuf3.js +219 -0
  9. package/dist/init-DZjeMuf3.js.map +1 -0
  10. package/dist/project-BZkWl9YJ.js +685 -0
  11. package/dist/project-BZkWl9YJ.js.map +1 -0
  12. package/package.json +72 -48
  13. package/LICENSE +0 -21
  14. package/dist/add-7tfye_HI.mjs +0 -53
  15. package/dist/add-7tfye_HI.mjs.map +0 -1
  16. package/dist/build-HG3tc2-q.mjs +0 -23
  17. package/dist/build-HG3tc2-q.mjs.map +0 -1
  18. package/dist/index.d.mts +0 -1
  19. package/dist/index.mjs +0 -31
  20. package/dist/index.mjs.map +0 -1
  21. package/dist/info-BxG4zcjx.mjs +0 -41
  22. package/dist/info-BxG4zcjx.mjs.map +0 -1
  23. package/dist/init-CDwuXmS4.mjs +0 -64
  24. package/dist/init-CDwuXmS4.mjs.map +0 -1
  25. package/dist/manifest-QuvehRif.mjs +0 -76
  26. package/dist/manifest-QuvehRif.mjs.map +0 -1
  27. package/dist/package-BnOb5LKd.mjs +0 -85
  28. package/dist/package-BnOb5LKd.mjs.map +0 -1
  29. package/dist/project-D1-8Zva8.mjs +0 -361
  30. package/dist/project-D1-8Zva8.mjs.map +0 -1
  31. package/dist/project-D1CJVddG.mjs +0 -58
  32. package/dist/project-D1CJVddG.mjs.map +0 -1
  33. package/dist/project-Du47BQ8B.mjs +0 -148
  34. package/dist/project-Du47BQ8B.mjs.map +0 -1
  35. package/dist/registry-Be2pmtXA.mjs +0 -341
  36. package/dist/registry-Be2pmtXA.mjs.map +0 -1
  37. package/dist/registry-CUbTtvmU.mjs +0 -147
  38. package/dist/registry-CUbTtvmU.mjs.map +0 -1
  39. package/dist/registry-DWimeo5w.mjs +0 -82
  40. package/dist/registry-DWimeo5w.mjs.map +0 -1
  41. package/dist/registry-Dj8XmKtl.mjs +0 -8
  42. package/dist/registry-Dj8XmKtl.mjs.map +0 -1
  43. package/dist/registry-item-Cz4VyV8f.mjs +0 -143
  44. package/dist/registry-item-Cz4VyV8f.mjs.map +0 -1
  45. package/dist/verify-DAzADRvE.mjs +0 -78
  46. package/dist/verify-DAzADRvE.mjs.map +0 -1
@@ -1,147 +0,0 @@
1
- import { l as runStep, p as fetchURL, s as compile, t as REGISTRY_DIRNAME } from "./registry-Be2pmtXA.mjs";
2
- import { r as runDevPrepare, t as installDependencies } from "./package-BnOb5LKd.mjs";
3
- import { exit } from "node:process";
4
- import * as p from "@clack/prompts";
5
- import chalk from "chalk";
6
- import fs, { existsSync } from "node:fs";
7
- import path from "pathe";
8
-
9
- //#region src/commands/init/registry/context.ts
10
- async function createContext(args) {
11
- args.cwd = path.resolve(args.cwd);
12
- const answers = await p.group({
13
- name: async () => {
14
- if (args.name) return args.name.trim().toLowerCase();
15
- return p.text({
16
- message: "What is the name of the registry?",
17
- placeholder: "weme-ui/std",
18
- defaultValue: args.name?.trim().toLowerCase(),
19
- validate: (value) => {
20
- if (!value) return "Name is required";
21
- if (value.includes(" ")) return "Name should not contain spaces";
22
- if (!value.includes("/")) return "Name should contain slashes, e.g. weme-ui/std";
23
- if (existsSync(path.join(args.cwd, value))) return "Registry already exists";
24
- }
25
- });
26
- },
27
- description: () => p.text({
28
- message: "What is the description of the registry?",
29
- placeholder: "The standard components for Weme UI.",
30
- defaultValue: ""
31
- }),
32
- version: () => p.text({
33
- message: "What is the version of the registry?",
34
- placeholder: "0.0.0",
35
- validate: (value) => {
36
- if (!value) return "Version is required";
37
- }
38
- }),
39
- prefix: () => p.text({
40
- message: "What is the prefix of the registry?",
41
- placeholder: "ui",
42
- defaultValue: "ui"
43
- }),
44
- access: () => p.select({
45
- message: "Which access do you want to use?",
46
- options: [{
47
- label: "Public",
48
- value: "public"
49
- }, {
50
- label: "Private",
51
- value: "private"
52
- }],
53
- initialValue: "public"
54
- }),
55
- author: () => p.text({
56
- message: "What is the author of the registry?",
57
- placeholder: "Allen Luo <luoyi@mouji.net>",
58
- defaultValue: ""
59
- }),
60
- homepage: () => p.text({
61
- message: "What is the homepage of the registry?",
62
- placeholder: "https://github.com/weme-ui/weme-ui",
63
- defaultValue: ""
64
- }),
65
- github: () => p.text({
66
- message: "What is the github of the registry?",
67
- placeholder: "https://github.com/weme-ui/weme-ui",
68
- defaultValue: ""
69
- })
70
- }, { onCancel: () => {
71
- p.cancel("Operation cancelled.");
72
- exit(0);
73
- } });
74
- return {
75
- ...answers,
76
- directory: path.join(REGISTRY_DIRNAME, answers.name.split("/")[1]),
77
- cwd: args.cwd
78
- };
79
- }
80
-
81
- //#endregion
82
- //#region src/commands/init/registry/templates.ts
83
- async function generateTemplates(ctx) {
84
- await runStep("Generating files...", async (spinner) => {
85
- await Promise.all([
86
- "utils/props.ts.hbs",
87
- "utils/slots.ts.hbs",
88
- "utils/styles.ts.hbs",
89
- "README.md.hbs",
90
- "nuxt.config.ts.hbs",
91
- "package.json.hbs",
92
- "registry.json.hbs",
93
- "tsconfig.json.hbs",
94
- "uno.config.ts.hbs"
95
- ].map(async (tpl) => {
96
- try {
97
- const name = tpl.replace(".hbs", "");
98
- spinner.message(`Generating ${name}...`);
99
- const text = await fetchURL(`https://raw.githubusercontent.com/weme-ui/templates/refs/heads/main/registry/${tpl}`);
100
- if (!text) throw new Error(`Failed to fetch ${name}.`);
101
- const content = compile(text, ctx);
102
- if (!content) throw new Error(`Failed to compile ${name}.`);
103
- const filePath = path.join(ctx.cwd, ctx.directory, name);
104
- const dirname = path.dirname(filePath);
105
- if (!fs.existsSync(dirname)) fs.mkdirSync(dirname, { recursive: true });
106
- fs.writeFileSync(filePath, content, {
107
- encoding: "utf8",
108
- flag: "w"
109
- });
110
- } catch (e) {
111
- spinner.stop(e.message);
112
- }
113
- }));
114
- spinner.stop("Files generated.");
115
- });
116
- }
117
-
118
- //#endregion
119
- //#region src/commands/init/registry/index.ts
120
- async function registry_default(args) {
121
- p.intro(chalk.bold.blue("✨ Initializing Weme UI Registry"));
122
- const ctx = await createContext(args);
123
- const cwd$1 = path.join(ctx.cwd, ctx.directory);
124
- await generateTemplates(ctx);
125
- await installDependencies([
126
- "@vueuse/core",
127
- "clsx",
128
- "tailwind-merge",
129
- "tailwind-variants",
130
- "reka-ui",
131
- "unocss",
132
- "nuxt",
133
- "vue",
134
- "vue-router"
135
- ], { cwd: cwd$1 });
136
- await runDevPrepare(cwd$1);
137
- p.note([
138
- `1. Enter the registry directory: ${chalk.cyan(`cd ${ctx.directory}`)}`,
139
- `2. Start development server: ${chalk.cyan("pnpm dev")}`,
140
- `3. Build registry: ${chalk.cyan("pnpm @weme-ui/nuxt build")}`
141
- ].join("\n"), "Next?");
142
- p.outro("🥤 All done!");
143
- }
144
-
145
- //#endregion
146
- export { registry_default as default };
147
- //# sourceMappingURL=registry-CUbTtvmU.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-CUbTtvmU.mjs","names":["e: any","cwd"],"sources":["../src/commands/init/registry/context.ts","../src/commands/init/registry/templates.ts","../src/commands/init/registry/index.ts"],"sourcesContent":["import { existsSync } from 'node:fs'\nimport { exit } from 'node:process'\nimport * as p from '@clack/prompts'\nimport path from 'pathe'\nimport { REGISTRY_DIRNAME } from '../../../utils/schema/registry'\n\nexport interface InitRegistryContext {\n name: string\n description: string\n version: string\n directory: string\n prefix: string\n access: string\n author: string\n homepage: string\n github: string\n cwd: string\n}\n\nexport async function createContext(args: Record<string, any>): Promise<InitRegistryContext> {\n args.cwd = path.resolve(args.cwd)\n\n const answers = await p.group({\n name: async () => {\n if (args.name)\n return args.name.trim().toLowerCase()\n\n return p.text({\n message: 'What is the name of the registry?',\n placeholder: 'weme-ui/std',\n defaultValue: args.name?.trim().toLowerCase(),\n validate: (value: string) => {\n if (!value)\n return 'Name is required'\n\n if (value.includes(' '))\n return 'Name should not contain spaces'\n\n if (!value.includes('/'))\n return 'Name should contain slashes, e.g. weme-ui/std'\n\n if (existsSync(path.join(args.cwd, value)))\n return 'Registry already exists'\n },\n })\n },\n description: () => p.text({\n message: 'What is the description of the registry?',\n placeholder: 'The standard components for Weme UI.',\n defaultValue: '',\n }),\n version: () => p.text({\n message: 'What is the version of the registry?',\n placeholder: '0.0.0',\n validate: (value: string) => {\n if (!value)\n return 'Version is required'\n },\n }),\n prefix: () => p.text({\n message: 'What is the prefix of the registry?',\n placeholder: 'ui',\n defaultValue: 'ui',\n }),\n access: () => p.select({\n message: 'Which access do you want to use?',\n options: [\n { label: 'Public', value: 'public' },\n { label: 'Private', value: 'private' },\n ],\n initialValue: 'public',\n }),\n author: () => p.text({\n message: 'What is the author of the registry?',\n placeholder: 'Allen Luo <luoyi@mouji.net>',\n defaultValue: '',\n }),\n homepage: () => p.text({\n message: 'What is the homepage of the registry?',\n placeholder: 'https://github.com/weme-ui/weme-ui',\n defaultValue: '',\n }),\n github: () => p.text({\n message: 'What is the github of the registry?',\n placeholder: 'https://github.com/weme-ui/weme-ui',\n defaultValue: '',\n }),\n }, {\n onCancel: () => {\n p.cancel('Operation cancelled.')\n exit(0)\n },\n })\n\n return {\n ...answers,\n directory: path.join(REGISTRY_DIRNAME, answers.name.split('/')[1]),\n cwd: args.cwd,\n }\n}\n","import type { InitRegistryContext } from './context'\nimport fs from 'node:fs'\nimport path from 'pathe'\nimport { fetchURL } from '../../../utils/fetch'\nimport { compile, runStep } from '../../../utils/utilities'\n\nexport async function generateTemplates(ctx: InitRegistryContext) {\n await runStep('Generating files...', async (spinner) => {\n await Promise.all([\n 'utils/props.ts.hbs',\n 'utils/slots.ts.hbs',\n 'utils/styles.ts.hbs',\n 'README.md.hbs',\n 'nuxt.config.ts.hbs',\n 'package.json.hbs',\n 'registry.json.hbs',\n 'tsconfig.json.hbs',\n 'uno.config.ts.hbs',\n ].map(\n async (tpl) => {\n try {\n const name = tpl.replace('.hbs', '')\n\n spinner.message(`Generating ${name}...`)\n\n const text = await fetchURL(\n `https://raw.githubusercontent.com/weme-ui/templates/refs/heads/main/registry/${tpl}`,\n )\n if (!text) {\n throw new Error(`Failed to fetch ${name}.`)\n }\n\n const content = compile(text, ctx)\n if (!content) {\n throw new Error(`Failed to compile ${name}.`)\n }\n\n const filePath = path.join(ctx.cwd, ctx.directory, name)\n const dirname = path.dirname(filePath)\n\n if (!fs.existsSync(dirname))\n fs.mkdirSync(dirname, { recursive: true })\n\n fs.writeFileSync(filePath, content, {\n encoding: 'utf8',\n flag: 'w',\n })\n }\n catch (e: any) {\n spinner.stop(e.message)\n }\n },\n ))\n\n spinner.stop('Files generated.')\n })\n}\n","import * as p from '@clack/prompts'\nimport chalk from 'chalk'\nimport path from 'pathe'\nimport { installDependencies, runDevPrepare } from '../../../utils/schema/package'\nimport { createContext } from './context'\nimport { generateTemplates } from './templates'\n\nexport default async function (args: Record<string, any>) {\n p.intro(chalk.bold.blue('✨ Initializing Weme UI Registry'))\n\n const ctx = await createContext(args)\n const cwd = path.join(ctx.cwd, ctx.directory)\n\n await generateTemplates(ctx)\n await installDependencies([\n '@vueuse/core',\n 'clsx',\n 'tailwind-merge',\n 'tailwind-variants',\n 'reka-ui',\n 'unocss',\n 'nuxt',\n 'vue',\n 'vue-router',\n ], { cwd })\n await runDevPrepare(cwd)\n\n p.note([\n `1. Enter the registry directory: ${chalk.cyan(`cd ${ctx.directory}`)}`,\n `2. Start development server: ${chalk.cyan('pnpm dev')}`,\n `3. Build registry: ${chalk.cyan('pnpm @weme-ui/nuxt build')}`,\n ].join('\\n'), 'Next?')\n\n p.outro('🥤 All done!')\n}\n"],"mappings":"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"}
@@ -1,82 +0,0 @@
1
- import { r as loadProjectInfo } from "./project-D1-8Zva8.mjs";
2
- import { m as getGithubRepoName, n as fetchManifestConfig } from "./registry-Be2pmtXA.mjs";
3
- import "./package-BnOb5LKd.mjs";
4
- import { exit } from "node:process";
5
- import chalk from "chalk";
6
- import path from "pathe";
7
- import { titleCase } from "scule";
8
- import columnify from "columnify";
9
-
10
- //#region src/commands/info/registry.ts
11
- /**
12
- * Display registry information.
13
- *
14
- * @example
15
- * ```bash
16
- * pnpm dlx @weme-ui/weme-ui info weme-ui/std
17
- *
18
- * The standard components for Weme UI.
19
- *
20
- * @weme-ui/weme-ui ⇢ weme-ui/std (0.0.0) 🔒
21
- *
22
- * Available items:
23
- *
24
- * Components 46
25
- * Layouts 0
26
- * Themes 0
27
- * Blocks 0
28
- * Pages 0
29
- *
30
- * 46 available, 0 installed
31
- *
32
- * Run pnpm dlx @weme-ui/weme-ui info to get project all information.
33
- * ```
34
- */
35
- async function registry_default(args) {
36
- args.cwd = path.resolve(args.cwd);
37
- const result = await loadProjectInfo(args.cwd);
38
- if (result.isErr()) {
39
- console.error(result.unwrapErr());
40
- exit(1);
41
- }
42
- const registry = result.unwrap().registries.find((r) => r.name === args.name);
43
- if (!registry) {
44
- console.error("Registry not found.");
45
- exit(0);
46
- }
47
- if (registry.description) {
48
- console.log(chalk.bold.whiteBright(registry.description));
49
- console.log("");
50
- }
51
- console.log(chalk.cyan.underline(`@${getGithubRepoName(registry.repo)}`), chalk.dim(" ⇢ "), chalk.underline.white(registry.name) + (registry.access === "private" ? "🔒" : ""), chalk.dim(`(${registry.version})`));
52
- const manifest = await fetchManifestConfig(registry.repo);
53
- if (manifest.isErr()) {
54
- console.error("Could not find repository configuration file!");
55
- exit(1);
56
- }
57
- const total = manifest.unwrap().find((m) => m.name === registry.name);
58
- if (total) {
59
- console.log("");
60
- console.log(chalk.dim("Available items:"));
61
- console.log("");
62
- console.log(columnify(total.items, {
63
- showHeaders: false,
64
- config: {
65
- key: { dataTransform: (data) => titleCase(data) },
66
- value: {
67
- minWidth: 4,
68
- align: "right",
69
- dataTransform: (data) => Number.parseInt(data) > 0 ? chalk.yellow(data) : chalk.dim(data)
70
- }
71
- }
72
- }));
73
- console.log("");
74
- }
75
- console.log(chalk.gray([`${chalk.yellow(registry.available)} available`, `${chalk.yellow(registry.installed)} installed`].join(", ")));
76
- console.log("");
77
- console.log(`Run ${chalk.cyan("pnpm dlx @weme-ui/weme-ui info")} to get project all information.`);
78
- }
79
-
80
- //#endregion
81
- export { registry_default as default };
82
- //# sourceMappingURL=registry-DWimeo5w.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-DWimeo5w.mjs","names":[],"sources":["../src/commands/info/registry.ts"],"sourcesContent":["import { exit } from 'node:process'\nimport chalk from 'chalk'\nimport columnify from 'columnify'\nimport path from 'pathe'\nimport { titleCase } from 'scule'\nimport { getGithubRepoName } from '../../utils/fetch'\nimport { loadProjectInfo } from '../../utils/schema/project'\nimport { fetchManifestConfig } from '../../utils/schema/registry'\n\n/**\n * Display registry information.\n *\n * @example\n * ```bash\n * pnpm dlx @weme-ui/weme-ui info weme-ui/std\n *\n * The standard components for Weme UI.\n *\n * @weme-ui/weme-ui ⇢ weme-ui/std (0.0.0) 🔒\n *\n * Available items:\n *\n * Components 46\n * Layouts 0\n * Themes 0\n * Blocks 0\n * Pages 0\n *\n * 46 available, 0 installed\n *\n * Run pnpm dlx @weme-ui/weme-ui info to get project all information.\n * ```\n */\nexport default async function (args: Record<string, any>) {\n args.cwd = path.resolve(args.cwd)\n\n const result = await loadProjectInfo(args.cwd)\n\n if (result.isErr()) {\n console.error(result.unwrapErr())\n exit(1)\n }\n\n const info = result.unwrap()\n const registry = info.registries.find(r => r.name === args.name)\n\n if (!registry) {\n console.error('Registry not found.')\n exit(0)\n }\n\n if (registry.description) {\n console.log(chalk.bold.whiteBright(registry.description))\n console.log('')\n }\n\n console.log(\n chalk.cyan.underline(`@${getGithubRepoName(registry.repo)}`),\n chalk.dim(' ⇢ '),\n chalk.underline.white(registry.name) + (registry.access === 'private' ? '🔒' : ''),\n chalk.dim(`(${registry.version})`),\n )\n\n const manifest = await fetchManifestConfig(registry.repo)\n\n if (manifest.isErr()) {\n console.error('Could not find repository configuration file!')\n exit(1)\n }\n\n const total = manifest.unwrap().find(m => m.name === registry.name)\n\n if (total) {\n console.log('')\n console.log(chalk.dim('Available items:'))\n console.log('')\n\n console.log(columnify(total.items, {\n showHeaders: false,\n config: {\n key: {\n dataTransform: data => titleCase(data),\n },\n value: {\n minWidth: 4,\n align: 'right',\n dataTransform: data => Number.parseInt(data) > 0 ? chalk.yellow(data) : chalk.dim(data),\n },\n },\n }))\n\n console.log('')\n }\n\n console.log(chalk.gray(\n [\n `${chalk.yellow(registry.available)} available`,\n `${chalk.yellow(registry.installed)} installed`,\n ].join(', '),\n ))\n\n console.log('')\n console.log(`Run ${chalk.cyan('pnpm dlx @weme-ui/weme-ui info')} to get project all information.`)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,gCAA+B,MAA2B;AACxD,MAAK,MAAM,KAAK,QAAQ,KAAK,IAAI;CAEjC,MAAM,SAAS,MAAM,gBAAgB,KAAK,IAAI;AAE9C,KAAI,OAAO,OAAO,EAAE;AAClB,UAAQ,MAAM,OAAO,WAAW,CAAC;AACjC,OAAK,EAAE;;CAIT,MAAM,WADO,OAAO,QAAQ,CACN,WAAW,MAAK,MAAK,EAAE,SAAS,KAAK,KAAK;AAEhE,KAAI,CAAC,UAAU;AACb,UAAQ,MAAM,sBAAsB;AACpC,OAAK,EAAE;;AAGT,KAAI,SAAS,aAAa;AACxB,UAAQ,IAAI,MAAM,KAAK,YAAY,SAAS,YAAY,CAAC;AACzD,UAAQ,IAAI,GAAG;;AAGjB,SAAQ,IACN,MAAM,KAAK,UAAU,IAAI,kBAAkB,SAAS,KAAK,GAAG,EAC5D,MAAM,IAAI,MAAM,EAChB,MAAM,UAAU,MAAM,SAAS,KAAK,IAAI,SAAS,WAAW,YAAY,OAAO,KAC/E,MAAM,IAAI,IAAI,SAAS,QAAQ,GAAG,CACnC;CAED,MAAM,WAAW,MAAM,oBAAoB,SAAS,KAAK;AAEzD,KAAI,SAAS,OAAO,EAAE;AACpB,UAAQ,MAAM,gDAAgD;AAC9D,OAAK,EAAE;;CAGT,MAAM,QAAQ,SAAS,QAAQ,CAAC,MAAK,MAAK,EAAE,SAAS,SAAS,KAAK;AAEnE,KAAI,OAAO;AACT,UAAQ,IAAI,GAAG;AACf,UAAQ,IAAI,MAAM,IAAI,mBAAmB,CAAC;AAC1C,UAAQ,IAAI,GAAG;AAEf,UAAQ,IAAI,UAAU,MAAM,OAAO;GACjC,aAAa;GACb,QAAQ;IACN,KAAK,EACH,gBAAe,SAAQ,UAAU,KAAK,EACvC;IACD,OAAO;KACL,UAAU;KACV,OAAO;KACP,gBAAe,SAAQ,OAAO,SAAS,KAAK,GAAG,IAAI,MAAM,OAAO,KAAK,GAAG,MAAM,IAAI,KAAK;KACxF;IACF;GACF,CAAC,CAAC;AAEH,UAAQ,IAAI,GAAG;;AAGjB,SAAQ,IAAI,MAAM,KAChB,CACE,GAAG,MAAM,OAAO,SAAS,UAAU,CAAC,aACpC,GAAG,MAAM,OAAO,SAAS,UAAU,CAAC,YACrC,CAAC,KAAK,KAAK,CACb,CAAC;AAEF,SAAQ,IAAI,GAAG;AACf,SAAQ,IAAI,OAAO,MAAM,KAAK,iCAAiC,CAAC,kCAAkC"}
@@ -1,8 +0,0 @@
1
- //#region src/commands/add/registry/index.ts
2
- async function registry_default(args) {
3
- console.log("Adding registry items", args);
4
- }
5
-
6
- //#endregion
7
- export { registry_default as default };
8
- //# sourceMappingURL=registry-Dj8XmKtl.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-Dj8XmKtl.mjs","names":[],"sources":["../src/commands/add/registry/index.ts"],"sourcesContent":["export default async function (args: Record<string, any>) {\n console.log('Adding registry items', args)\n}\n"],"mappings":";AAAA,gCAA+B,MAA2B;AACxD,SAAQ,IAAI,yBAAyB,KAAK"}
@@ -1,143 +0,0 @@
1
- import { i as resolvePaths, n as loadProjectConfig, t as installRegistryItems } from "./project-D1-8Zva8.mjs";
2
- import { r as fetchRegistryConfig } from "./registry-Be2pmtXA.mjs";
3
- import "./package-BnOb5LKd.mjs";
4
- import { exit } from "node:process";
5
- import * as p from "@clack/prompts";
6
- import chalk from "chalk";
7
- import fs from "node:fs";
8
- import { DEFAULT_REGISTRY_PREFIX } from "@weme-ui/schema";
9
- import path from "pathe";
10
-
11
- //#region src/commands/add/registry-item/context.ts
12
- async function createContext(args) {
13
- const context = {
14
- project: {},
15
- names: [],
16
- repo: "",
17
- registry: "",
18
- prefix: "",
19
- cwd: path.resolve(args.cwd)
20
- };
21
- if (args.names) context.names = args.names.split(",");
22
- const project = loadProjectConfig(args.cwd);
23
- if (project.isErr()) {
24
- console.error(project.unwrapErr());
25
- return context;
26
- }
27
- context.project = project.unwrap();
28
- const defaultRegistry = project.unwrap().repos.find((r) => r.default);
29
- if (defaultRegistry) {
30
- context.repo = args.repo || defaultRegistry.repo;
31
- context.registry = args.registry || defaultRegistry.registry;
32
- context.prefix = defaultRegistry.prefix || DEFAULT_REGISTRY_PREFIX;
33
- } else {
34
- const selectRegistry = await p.select({
35
- message: "Choose a registry?",
36
- options: project.unwrap().repos.map((r) => ({
37
- label: r.registry,
38
- value: r,
39
- hint: r.repo
40
- }))
41
- });
42
- if (p.isCancel(selectRegistry)) {
43
- p.cancel("Operation cancelled.");
44
- exit(0);
45
- }
46
- context.registry = selectRegistry.registry;
47
- context.repo = selectRegistry.repo;
48
- context.prefix = selectRegistry.prefix || DEFAULT_REGISTRY_PREFIX;
49
- }
50
- if (context.names.length === 0) {
51
- const remote = await fetchRegistryConfig(context.repo, context.registry);
52
- if (remote.isErr()) {
53
- console.error(remote.unwrapErr());
54
- return context;
55
- }
56
- let options = await getOptionsByType(remote.unwrap().items);
57
- while (options.length === 0) {
58
- p.log.warn("No items found, please choose another type.");
59
- options = await getOptionsByType(remote.unwrap().items);
60
- }
61
- const selectItems = await p.multiselect({
62
- message: "Choose registry items to add:",
63
- options,
64
- maxItems: 10
65
- });
66
- if (p.isCancel(selectItems)) {
67
- p.cancel("Operation cancelled.");
68
- exit(0);
69
- }
70
- const paths = resolvePaths(context.cwd, context.project.paths).unwrap();
71
- const updates = selectItems.filter((i) => {
72
- let _path = "";
73
- switch (i.type) {
74
- case "component":
75
- _path = path.join(paths.components, context.prefix, i.name);
76
- break;
77
- case "layout":
78
- _path = path.join(paths.layouts, context.prefix, i.name);
79
- break;
80
- case "theme":
81
- _path = path.join(paths.themes, context.prefix, i.name);
82
- break;
83
- case "page":
84
- _path = path.join(paths.pages, i.name);
85
- break;
86
- }
87
- return fs.existsSync(_path);
88
- }).map((i) => i.name);
89
- context.names = selectItems.filter((i) => !updates.includes(i.name)).map((i) => i.name);
90
- }
91
- return context;
92
- }
93
- async function getOptionsByType(items) {
94
- const type = await p.select({
95
- message: "Choose a type of registry items?",
96
- options: [
97
- {
98
- label: "Component",
99
- value: "component",
100
- hint: `${items.filter((i) => i.type === "component").length} items`
101
- },
102
- {
103
- label: "Layout",
104
- value: "layout",
105
- hint: `${items.filter((i) => i.type === "layout").length} items`
106
- },
107
- {
108
- label: "Theme",
109
- value: "theme",
110
- hint: `${items.filter((i) => i.type === "theme").length} items`
111
- },
112
- {
113
- label: "Block",
114
- value: "block",
115
- hint: `${items.filter((i) => i.type === "block").length} items`
116
- },
117
- {
118
- label: "Page",
119
- value: "page",
120
- hint: `${items.filter((i) => i.type === "page").length} items`
121
- }
122
- ]
123
- });
124
- if (p.isCancel(type)) p.cancel("Operation cancelled.");
125
- return items.filter((i) => i.type === type).sort((a, b) => a.name.localeCompare(b.name)).map((i) => ({
126
- label: `${i.title} ${i.type}`,
127
- value: i,
128
- hint: i.description || ""
129
- }));
130
- }
131
-
132
- //#endregion
133
- //#region src/commands/add/registry-item/index.ts
134
- async function registry_item_default(args) {
135
- p.intro(chalk.bold.blue("✨ Adding Registry Items"));
136
- const ctx = await createContext(args);
137
- await installRegistryItems(ctx.cwd, ctx.repo, ctx.registry, ctx.project, { name: ctx.names });
138
- p.outro("🥤 All done!");
139
- }
140
-
141
- //#endregion
142
- export { registry_item_default as default };
143
- //# sourceMappingURL=registry-item-Cz4VyV8f.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-item-Cz4VyV8f.mjs","names":["context: AddRegistryItemContext"],"sources":["../src/commands/add/registry-item/context.ts","../src/commands/add/registry-item/index.ts"],"sourcesContent":["import type { ProjectSchema, RegistryItem } from '@weme-ui/schema'\nimport fs from 'node:fs'\nimport { exit } from 'node:process'\nimport * as p from '@clack/prompts'\nimport { DEFAULT_REGISTRY_PREFIX } from '@weme-ui/schema'\nimport path from 'pathe'\nimport { loadProjectConfig, resolvePaths } from '../../../utils/schema/project'\nimport { fetchRegistryConfig } from '../../../utils/schema/registry'\n\nexport interface AddRegistryItemContext {\n project: ProjectSchema\n names: string[]\n repo: string\n registry: string\n prefix: string\n cwd: string\n}\n\nexport async function createContext(args: Record<string, any>): Promise<AddRegistryItemContext> {\n const context: AddRegistryItemContext = {\n project: {} as ProjectSchema,\n names: [],\n repo: '',\n registry: '',\n prefix: '',\n cwd: path.resolve(args.cwd),\n }\n\n if (args.names)\n context.names = args.names.split(',')\n\n const project = loadProjectConfig(args.cwd)\n\n if (project.isErr()) {\n console.error(project.unwrapErr())\n return context\n }\n\n context.project = project.unwrap()\n\n const defaultRegistry = project.unwrap().repos.find(r => r.default)\n\n if (defaultRegistry) {\n context.repo = args.repo || defaultRegistry.repo\n context.registry = args.registry || defaultRegistry.registry\n context.prefix = defaultRegistry.prefix || DEFAULT_REGISTRY_PREFIX\n }\n else {\n const selectRegistry = await p.select({\n message: 'Choose a registry?',\n options: project.unwrap().repos.map(r => ({\n label: r.registry,\n value: r,\n hint: r.repo,\n })),\n })\n\n if (p.isCancel(selectRegistry)) {\n p.cancel('Operation cancelled.')\n exit(0)\n }\n\n context.registry = selectRegistry.registry\n context.repo = selectRegistry.repo\n context.prefix = selectRegistry.prefix || DEFAULT_REGISTRY_PREFIX\n }\n\n if (context.names.length === 0) {\n const remote = await fetchRegistryConfig(context.repo, context.registry)\n\n if (remote.isErr()) {\n console.error(remote.unwrapErr())\n return context\n }\n\n let options = await getOptionsByType(remote.unwrap().items)\n\n while (options.length === 0) {\n p.log.warn('No items found, please choose another type.')\n options = await getOptionsByType(remote.unwrap().items)\n }\n\n const selectItems = await p.multiselect({\n message: 'Choose registry items to add:',\n options,\n maxItems: 10,\n })\n\n if (p.isCancel(selectItems)) {\n p.cancel('Operation cancelled.')\n exit(0)\n }\n\n const paths = resolvePaths(context.cwd, context.project.paths).unwrap()\n\n // TODO: diff updates and merge them all.\n const updates = selectItems\n .filter((i) => {\n let _path = ''\n\n switch (i.type) {\n case 'component':\n _path = path.join(paths.components, context.prefix, i.name)\n break\n case 'layout':\n _path = path.join(paths.layouts, context.prefix, i.name)\n break\n case 'theme':\n _path = path.join(paths.themes, context.prefix, i.name)\n break\n case 'page':\n _path = path.join(paths.pages, i.name)\n break\n }\n\n return fs.existsSync(_path)\n })\n .map(i => i.name)\n\n context.names = selectItems\n .filter(i => !updates.includes(i.name))\n .map(i => i.name)\n }\n\n return context\n}\n\nasync function getOptionsByType(\n items: RegistryItem[],\n): Promise<{\n label: string\n value: RegistryItem\n hint: string\n}[]> {\n const type = await p.select({\n message: 'Choose a type of registry items?',\n options: [\n { label: 'Component', value: 'component', hint: `${items.filter(i => i.type === 'component').length} items` },\n { label: 'Layout', value: 'layout', hint: `${items.filter(i => i.type === 'layout').length} items` },\n { label: 'Theme', value: 'theme', hint: `${items.filter(i => i.type === 'theme').length} items` },\n { label: 'Block', value: 'block', hint: `${items.filter(i => i.type === 'block').length} items` },\n { label: 'Page', value: 'page', hint: `${items.filter(i => i.type === 'page').length} items` },\n ],\n })\n\n if (p.isCancel(type)) {\n p.cancel('Operation cancelled.')\n }\n\n return items\n .filter(i => i.type === type)\n .sort((a, b) => a.name.localeCompare(b.name))\n .map(i => ({\n label: `${i.title} ${i.type}`,\n value: i,\n hint: i.description || '',\n }))\n}\n","import * as p from '@clack/prompts'\nimport chalk from 'chalk'\nimport { installRegistryItems } from '../../../utils/schema/project'\nimport { createContext } from './context'\n\nexport default async function (args: Record<string, any>) {\n p.intro(chalk.bold.blue('✨ Adding Registry Items'))\n\n const ctx = await createContext(args)\n\n await installRegistryItems(\n ctx.cwd,\n ctx.repo,\n ctx.registry,\n ctx.project,\n { name: ctx.names },\n )\n\n p.outro('🥤 All done!')\n}\n"],"mappings":"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"}
@@ -1,78 +0,0 @@
1
- import { a as loadRegistryConfig, t as REGISTRY_DIRNAME } from "./registry-Be2pmtXA.mjs";
2
- import { defineCommand } from "citty";
3
- import { cwd } from "node:process";
4
- import * as p from "@clack/prompts";
5
- import chalk from "chalk";
6
- import fs from "node:fs";
7
- import path from "pathe";
8
- import { glob } from "tinyglobby";
9
-
10
- //#region src/commands/verify/index.ts
11
- /**
12
- * Usage
13
- *
14
- * - **Verify all registries**:
15
- * - ```weme-ui verify```
16
- */
17
- var verify_default = defineCommand({
18
- meta: {
19
- name: "verify",
20
- description: "Verify all registries."
21
- },
22
- args: { cwd: {
23
- type: "string",
24
- description: "Change working directory.",
25
- valueHint: "PATH",
26
- default: cwd()
27
- } },
28
- async setup({ args }) {
29
- p.intro(chalk.bold.white("✨ Verifying registries..."));
30
- args.cwd = path.resolve(args.cwd);
31
- if (!fs.existsSync(path.join(args.cwd, REGISTRY_DIRNAME))) {
32
- p.cancel("No registries found.");
33
- return;
34
- }
35
- const dirs = await glob([`${REGISTRY_DIRNAME}/*`], {
36
- cwd: args.cwd,
37
- absolute: false,
38
- onlyDirectories: true,
39
- ignore: ["**/node_modules/**"]
40
- });
41
- (await Promise.all(dirs.map(async (dir) => {
42
- const results = {};
43
- const registry = loadRegistryConfig(path.join(args.cwd, dir));
44
- if (registry.isErr()) {
45
- p.log.error(registry.unwrapErr());
46
- return results;
47
- }
48
- const registryName = registry.unwrap().name;
49
- (registry.unwrap().items || []).forEach((item) => {
50
- if (item.files.length === 0) {
51
- results[registryName] = results[registryName] || [];
52
- results[registryName].push(`${item.name} : No files found.`);
53
- return;
54
- }
55
- item.files.forEach((file) => {
56
- if (!fs.existsSync(path.join(args.cwd, dir, file.path))) {
57
- results[registryName] = results[registryName] || [];
58
- results[registryName].push(`${item.name}: ${chalk.underline.yellow(file.path)} not exists.`);
59
- }
60
- });
61
- });
62
- return results;
63
- }))).forEach((error) => {
64
- Object.entries(error).forEach(([name, messages]) => {
65
- if (messages.length === 0) return;
66
- p.log.info(chalk.bold(name));
67
- messages.forEach((message) => {
68
- p.log.warn(message);
69
- });
70
- });
71
- });
72
- p.outro("🥤 All done!");
73
- }
74
- });
75
-
76
- //#endregion
77
- export { verify_default as default };
78
- //# sourceMappingURL=verify-DAzADRvE.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify-DAzADRvE.mjs","names":["results: Record<string, string[]>"],"sources":["../src/commands/verify/index.ts"],"sourcesContent":["import fs from 'node:fs'\nimport { cwd } from 'node:process'\nimport * as p from '@clack/prompts'\nimport chalk from 'chalk'\nimport { defineCommand } from 'citty'\nimport path from 'pathe'\nimport { glob } from 'tinyglobby'\nimport { loadRegistryConfig, REGISTRY_DIRNAME } from '../../utils/schema/registry'\n\n/**\n * Usage\n *\n * - **Verify all registries**:\n * - ```weme-ui verify```\n */\nexport default defineCommand({\n meta: {\n name: 'verify',\n description: 'Verify all registries.',\n },\n\n args: {\n cwd: {\n type: 'string',\n description: 'Change working directory.',\n valueHint: 'PATH',\n default: cwd(),\n },\n },\n\n async setup({ args }) {\n p.intro(chalk.bold.white('✨ Verifying registries...'))\n\n args.cwd = path.resolve(args.cwd)\n\n if (!fs.existsSync(path.join(args.cwd, REGISTRY_DIRNAME))) {\n p.cancel('No registries found.')\n return\n }\n\n const dirs = await glob([`${REGISTRY_DIRNAME}/*`], {\n cwd: args.cwd,\n absolute: false,\n onlyDirectories: true,\n ignore: ['**/node_modules/**'],\n })\n\n const errors = await Promise.all(dirs.map(async (dir) => {\n const results: Record<string, string[]> = {}\n const registry = loadRegistryConfig(path.join(args.cwd, dir))\n\n if (registry.isErr()) {\n p.log.error(registry.unwrapErr())\n return results\n }\n\n const registryName = registry.unwrap().name\n const items = registry.unwrap().items || []\n\n items.forEach((item) => {\n if (item.files.length === 0) {\n results[registryName] = results[registryName] || []\n results[registryName].push(`${item.name} : No files found.`)\n return\n }\n\n item.files.forEach((file) => {\n if (!fs.existsSync(path.join(args.cwd, dir, file.path))) {\n results[registryName] = results[registryName] || []\n results[registryName].push(`${item.name}: ${chalk.underline.yellow(file.path)} not exists.`)\n }\n })\n })\n\n return results\n }))\n\n // Display errors\n errors.forEach((error) => {\n Object.entries(error).forEach(([name, messages]) => {\n if (messages.length === 0)\n return\n\n p.log.info(chalk.bold(name))\n messages.forEach((message) => {\n p.log.warn(message)\n })\n })\n })\n\n p.outro('🥤 All done!')\n },\n})\n"],"mappings":";;;;;;;;;;;;;;;;AAeA,qBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CAED,MAAM,EACJ,KAAK;EACH,MAAM;EACN,aAAa;EACb,WAAW;EACX,SAAS,KAAK;EACf,EACF;CAED,MAAM,MAAM,EAAE,QAAQ;AACpB,IAAE,MAAM,MAAM,KAAK,MAAM,4BAA4B,CAAC;AAEtD,OAAK,MAAM,KAAK,QAAQ,KAAK,IAAI;AAEjC,MAAI,CAAC,GAAG,WAAW,KAAK,KAAK,KAAK,KAAK,iBAAiB,CAAC,EAAE;AACzD,KAAE,OAAO,uBAAuB;AAChC;;EAGF,MAAM,OAAO,MAAM,KAAK,CAAC,GAAG,iBAAiB,IAAI,EAAE;GACjD,KAAK,KAAK;GACV,UAAU;GACV,iBAAiB;GACjB,QAAQ,CAAC,qBAAqB;GAC/B,CAAC;AAiCF,GA/Be,MAAM,QAAQ,IAAI,KAAK,IAAI,OAAO,QAAQ;GACvD,MAAMA,UAAoC,EAAE;GAC5C,MAAM,WAAW,mBAAmB,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC;AAE7D,OAAI,SAAS,OAAO,EAAE;AACpB,MAAE,IAAI,MAAM,SAAS,WAAW,CAAC;AACjC,WAAO;;GAGT,MAAM,eAAe,SAAS,QAAQ,CAAC;AAGvC,IAFc,SAAS,QAAQ,CAAC,SAAS,EAAE,EAErC,SAAS,SAAS;AACtB,QAAI,KAAK,MAAM,WAAW,GAAG;AAC3B,aAAQ,gBAAgB,QAAQ,iBAAiB,EAAE;AACnD,aAAQ,cAAc,KAAK,GAAG,KAAK,KAAK,oBAAoB;AAC5D;;AAGF,SAAK,MAAM,SAAS,SAAS;AAC3B,SAAI,CAAC,GAAG,WAAW,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,CAAC,EAAE;AACvD,cAAQ,gBAAgB,QAAQ,iBAAiB,EAAE;AACnD,cAAQ,cAAc,KAAK,GAAG,KAAK,KAAK,IAAI,MAAM,UAAU,OAAO,KAAK,KAAK,CAAC,cAAc;;MAE9F;KACF;AAEF,UAAO;IACP,CAAC,EAGI,SAAS,UAAU;AACxB,UAAO,QAAQ,MAAM,CAAC,SAAS,CAAC,MAAM,cAAc;AAClD,QAAI,SAAS,WAAW,EACtB;AAEF,MAAE,IAAI,KAAK,MAAM,KAAK,KAAK,CAAC;AAC5B,aAAS,SAAS,YAAY;AAC5B,OAAE,IAAI,KAAK,QAAQ;MACnB;KACF;IACF;AAEF,IAAE,MAAM,eAAe;;CAE1B,CAAC"}