@weme-ui/weme-ui 0.1.5 → 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-5ZrkTNC3.mjs +0 -53
  15. package/dist/add-5ZrkTNC3.mjs.map +0 -1
  16. package/dist/build-DAAgZct5.mjs +0 -23
  17. package/dist/build-DAAgZct5.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-BBRg1Z-t.mjs +0 -41
  22. package/dist/info-BBRg1Z-t.mjs.map +0 -1
  23. package/dist/init-BlbSgl_W.mjs +0 -64
  24. package/dist/init-BlbSgl_W.mjs.map +0 -1
  25. package/dist/manifest-DtYvp2uU.mjs +0 -77
  26. package/dist/manifest-DtYvp2uU.mjs.map +0 -1
  27. package/dist/package-DPYgVv-f.mjs +0 -85
  28. package/dist/package-DPYgVv-f.mjs.map +0 -1
  29. package/dist/project-BpqIQqfR.mjs +0 -361
  30. package/dist/project-BpqIQqfR.mjs.map +0 -1
  31. package/dist/project-COPHBstt.mjs +0 -58
  32. package/dist/project-COPHBstt.mjs.map +0 -1
  33. package/dist/project-kIk5Kz3k.mjs +0 -148
  34. package/dist/project-kIk5Kz3k.mjs.map +0 -1
  35. package/dist/registry-CU5Ejwes.mjs +0 -82
  36. package/dist/registry-CU5Ejwes.mjs.map +0 -1
  37. package/dist/registry-DtG09FVz.mjs +0 -147
  38. package/dist/registry-DtG09FVz.mjs.map +0 -1
  39. package/dist/registry-NSadym2Q.mjs +0 -8
  40. package/dist/registry-NSadym2Q.mjs.map +0 -1
  41. package/dist/registry-bjxXghAl.mjs +0 -355
  42. package/dist/registry-bjxXghAl.mjs.map +0 -1
  43. package/dist/registry-item-B_neG4VO.mjs +0 -143
  44. package/dist/registry-item-B_neG4VO.mjs.map +0 -1
  45. package/dist/verify-CXBxJkzK.mjs +0 -78
  46. package/dist/verify-CXBxJkzK.mjs.map +0 -1
@@ -1,148 +0,0 @@
1
- import { t as installRegistryItems } from "./project-BpqIQqfR.mjs";
2
- import { f as fetchBinary, l as runStep, o as selectRegistry, p as fetchURL } from "./registry-bjxXghAl.mjs";
3
- import { r as runDevPrepare } from "./package-DPYgVv-f.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 { PROJECT_FILE_NAME, PROJECT_SCHEMA_URL, projectSchema } from "@weme-ui/schema";
9
- import path from "pathe";
10
- import { Buffer } from "node:buffer";
11
-
12
- //#region src/commands/init/project/context.ts
13
- async function createContext(args) {
14
- const cwd$1 = path.resolve(args.cwd);
15
- if (!fs.existsSync(cwd$1)) fs.mkdirSync(cwd$1, { recursive: true });
16
- const components = await p.text({
17
- message: "Please enter a default path to install the components.",
18
- placeholder: "~/components",
19
- defaultValue: "~/components",
20
- validate: (value) => {
21
- if (!value) return "Path is required!";
22
- }
23
- });
24
- if (p.isCancel(components)) {
25
- p.cancel("Operation cancelled.");
26
- exit(0);
27
- }
28
- const repo = args.repo || "weme-ui/weme-ui";
29
- const registry = await selectRegistry(repo);
30
- const prefix = await p.text({
31
- message: "What is the prefix of the registry?",
32
- placeholder: registry.prefix,
33
- defaultValue: registry.prefix
34
- });
35
- if (p.isCancel(prefix)) {
36
- p.cancel("Operation cancelled.");
37
- exit(0);
38
- }
39
- return {
40
- repo,
41
- registry: registry.name,
42
- directory: registry.directory,
43
- prefix,
44
- access: registry.access,
45
- paths: { components },
46
- cwd: cwd$1
47
- };
48
- }
49
-
50
- //#endregion
51
- //#region src/commands/init/project/files.ts
52
- async function createFiles(ctx) {
53
- await runStep("Generating project files...", async (spinner) => {
54
- await Promise.all([
55
- "app/app.vue",
56
- "public/robots.txt",
57
- "public/favicon.ico",
58
- "package.json",
59
- "tsconfig.json",
60
- ".gitignore",
61
- "uno.config.ts",
62
- "README.md"
63
- ].map(async (file) => {
64
- spinner.message(`Generating ${chalk.cyan(file)}...`);
65
- const isFavicon = file === "public/favicon.ico";
66
- const content = await (isFavicon ? fetchBinary : fetchURL)(`https://raw.githubusercontent.com/weme-ui/templates/refs/heads/main/project/${file}`);
67
- if (content) {
68
- const filePath = path.join(ctx.cwd, file);
69
- const dirname = path.dirname(filePath);
70
- if (!fs.existsSync(dirname)) fs.mkdirSync(dirname, { recursive: true });
71
- if (isFavicon) {
72
- const buffer = Buffer.from(content);
73
- fs.writeFileSync(filePath, buffer, { flag: "w" });
74
- } else fs.writeFileSync(path.join(ctx.cwd, file), content, {
75
- encoding: "utf8",
76
- flag: "w"
77
- });
78
- }
79
- }));
80
- spinner.stop("Project files generated!");
81
- });
82
- }
83
- async function createNuxtConfig(ctx) {
84
- await runStep(`Generating ${chalk.cyan("nuxt.config.ts")}...`, async (spinner) => {
85
- const lines = [
86
- "export default defineNuxtConfig({",
87
- " modules: [",
88
- " '@weme-ui/nuxt',",
89
- " ],",
90
- "",
91
- " devtools: {",
92
- " enabled: true,",
93
- " },",
94
- "",
95
- ` compatibilityDate: ${JSON.stringify((/* @__PURE__ */ new Date()).toISOString().slice(0, 10))},`,
96
- "})"
97
- ];
98
- fs.writeFileSync(path.join(ctx.cwd, "nuxt.config.ts"), `${lines.join("\n")}\n`, {
99
- encoding: "utf8",
100
- flag: "w"
101
- });
102
- spinner.stop(`${chalk.cyan("nuxt.config.ts")} generated!`);
103
- });
104
- }
105
- async function createProjectConfig(ctx) {
106
- return await runStep(`Generating ${chalk.cyan(PROJECT_FILE_NAME)}...`, async (spinner) => {
107
- const config = projectSchema.safeParse({
108
- $schema: PROJECT_SCHEMA_URL,
109
- repos: [{
110
- repo: ctx.repo,
111
- registry: ctx.registry,
112
- prefix: ctx.prefix,
113
- default: true
114
- }],
115
- paths: ctx.paths
116
- });
117
- if (!config.success) {
118
- p.log.error(config.error.message);
119
- return;
120
- }
121
- fs.writeFileSync(path.join(ctx.cwd, PROJECT_FILE_NAME), `${JSON.stringify(config.data, null, 2)}\n`, {
122
- encoding: "utf8",
123
- flag: "w"
124
- });
125
- spinner.stop(`${chalk.cyan(PROJECT_FILE_NAME)} generated!`);
126
- return config.data;
127
- });
128
- }
129
-
130
- //#endregion
131
- //#region src/commands/init/project/index.ts
132
- async function project_default(args) {
133
- p.intro(chalk.bold.blue("✨ Initializing Weme UI Project"));
134
- const ctx = await createContext(args);
135
- const project = await createProjectConfig(ctx);
136
- if (project) {
137
- await createFiles(ctx);
138
- await createNuxtConfig(ctx);
139
- await installRegistryItems(ctx.cwd, ctx.repo, ctx.registry, project, { type: "init" });
140
- await runDevPrepare(ctx.cwd);
141
- } else p.log.error("Failed to create project configuration file.");
142
- p.note([`1. Add components to your project: ${chalk.cyan("pnpm dlx @weme-ui/weme-ui add <component-name>")}`, `2. Start development server: ${chalk.cyan("pnpm dev")}`].join("\n"), "Next?");
143
- p.outro("🥤 All done!");
144
- }
145
-
146
- //#endregion
147
- export { project_default as default };
148
- //# sourceMappingURL=project-kIk5Kz3k.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-kIk5Kz3k.mjs","names":["cwd","lines: string[]"],"sources":["../src/commands/init/project/context.ts","../src/commands/init/project/files.ts","../src/commands/init/project/index.ts"],"sourcesContent":["import type { ProjectPaths } from '@weme-ui/schema'\nimport fs from 'node:fs'\nimport { exit } from 'node:process'\nimport * as p from '@clack/prompts'\nimport path from 'pathe'\nimport { selectRegistry } from '../../../utils/schema/registry'\n\nexport interface InitProjectContext {\n repo: string\n registry: string\n directory: string\n prefix: string\n access: string\n paths: ProjectPaths\n cwd: string\n}\n\nexport async function createContext(args: Record<string, any>): Promise<InitProjectContext> {\n const cwd = path.resolve(args.cwd)\n\n if (!fs.existsSync(cwd))\n fs.mkdirSync(cwd, { recursive: true })\n\n const components = await p.text({\n message: 'Please enter a default path to install the components.',\n placeholder: '~/components',\n defaultValue: '~/components',\n validate: (value: string) => {\n if (!value)\n return 'Path is required!'\n },\n })\n\n if (p.isCancel(components)) {\n p.cancel('Operation cancelled.')\n exit(0)\n }\n\n const repo = args.repo || 'weme-ui/weme-ui'\n const registry = await selectRegistry(repo)\n\n const prefix = await p.text({\n message: 'What is the prefix of the registry?',\n placeholder: registry.prefix,\n defaultValue: registry.prefix,\n })\n\n if (p.isCancel(prefix)) {\n p.cancel('Operation cancelled.')\n exit(0)\n }\n\n return {\n repo,\n registry: registry.name,\n directory: registry.directory,\n prefix,\n access: registry.access,\n paths: {\n components,\n },\n cwd,\n }\n}\n","import type { InitProjectContext } from './context'\nimport { Buffer } from 'node:buffer'\nimport fs from 'node:fs'\nimport * as p from '@clack/prompts'\nimport { PROJECT_FILE_NAME, PROJECT_SCHEMA_URL, projectSchema } from '@weme-ui/schema'\nimport chalk from 'chalk'\nimport path from 'pathe'\nimport { fetchBinary, fetchURL } from '../../../utils/fetch'\nimport { runStep } from '../../../utils/utilities'\n\nexport async function createFiles(ctx: InitProjectContext) {\n await runStep('Generating project files...', async (spinner) => {\n await Promise.all([\n 'app/app.vue',\n 'public/robots.txt',\n 'public/favicon.ico',\n 'package.json',\n 'tsconfig.json',\n '.gitignore',\n 'uno.config.ts',\n 'README.md',\n ].map(async (file) => {\n spinner.message(`Generating ${chalk.cyan(file)}...`)\n\n const isFavicon = file === 'public/favicon.ico'\n const fetchFn = isFavicon ? fetchBinary : fetchURL\n\n const content = await fetchFn(\n `https://raw.githubusercontent.com/weme-ui/templates/refs/heads/main/project/${file}`,\n )\n\n if (content) {\n const filePath = path.join(ctx.cwd, file)\n const dirname = path.dirname(filePath)\n\n if (!fs.existsSync(dirname))\n fs.mkdirSync(dirname, { recursive: true })\n\n if (isFavicon) {\n const buffer = Buffer.from(content as ArrayBuffer)\n fs.writeFileSync(filePath, buffer, {\n flag: 'w',\n })\n }\n else {\n fs.writeFileSync(\n path.join(ctx.cwd, file),\n content as string,\n {\n encoding: 'utf8',\n flag: 'w',\n },\n )\n }\n }\n }))\n\n spinner.stop('Project files generated!')\n })\n}\n\nexport async function createNuxtConfig(ctx: InitProjectContext) {\n await runStep(`Generating ${chalk.cyan('nuxt.config.ts')}...`, async (spinner) => {\n const lines: string[] = [\n 'export default defineNuxtConfig({',\n ' modules: [',\n ' \\'@weme-ui/nuxt\\',',\n ' ],',\n '',\n ' devtools: {',\n ' enabled: true,',\n ' },',\n '',\n ` compatibilityDate: ${JSON.stringify(new Date().toISOString().slice(0, 10))},`,\n '})',\n ]\n\n fs.writeFileSync(\n path.join(ctx.cwd, 'nuxt.config.ts'),\n `${lines.join('\\n')}\\n`,\n {\n encoding: 'utf8',\n flag: 'w',\n },\n )\n\n spinner.stop(`${chalk.cyan('nuxt.config.ts')} generated!`)\n })\n}\n\nexport async function createProjectConfig(ctx: InitProjectContext) {\n return await runStep(`Generating ${chalk.cyan(PROJECT_FILE_NAME)}...`, async (spinner) => {\n const config = projectSchema.safeParse({\n $schema: PROJECT_SCHEMA_URL,\n repos: [\n {\n repo: ctx.repo,\n registry: ctx.registry,\n prefix: ctx.prefix,\n default: true,\n },\n ],\n paths: ctx.paths,\n })\n\n if (!config.success) {\n p.log.error(config.error.message)\n return\n }\n\n fs.writeFileSync(\n path.join(ctx.cwd, PROJECT_FILE_NAME),\n `${JSON.stringify(config.data, null, 2)}\\n`,\n {\n encoding: 'utf8',\n flag: 'w',\n },\n )\n\n spinner.stop(`${chalk.cyan(PROJECT_FILE_NAME)} generated!`)\n\n return config.data\n })\n}\n","import * as p from '@clack/prompts'\nimport chalk from 'chalk'\nimport { runDevPrepare } from '../../../utils/schema/package'\nimport { installRegistryItems } from '../../../utils/schema/project'\nimport { createContext } from './context'\nimport { createFiles, createNuxtConfig, createProjectConfig } from './files'\n\nexport default async function (args: Record<string, any>) {\n p.intro(chalk.bold.blue('✨ Initializing Weme UI Project'))\n\n const ctx = await createContext(args)\n const project = await createProjectConfig(ctx)\n\n if (project) {\n await createFiles(ctx)\n await createNuxtConfig(ctx)\n\n await installRegistryItems(\n ctx.cwd,\n ctx.repo,\n ctx.registry,\n project,\n { type: 'init' },\n )\n\n await runDevPrepare(ctx.cwd)\n }\n else {\n p.log.error('Failed to create project configuration file.')\n }\n\n p.note([\n `1. Add components to your project: ${chalk.cyan('pnpm dlx @weme-ui/weme-ui add <component-name>')}`,\n `2. Start development server: ${chalk.cyan('pnpm dev')}`,\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-BpqIQqfR.mjs";
2
- import { m as getGithubRepoName, n as fetchManifestConfig } from "./registry-bjxXghAl.mjs";
3
- import "./package-DPYgVv-f.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-CU5Ejwes.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-CU5Ejwes.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,147 +0,0 @@
1
- import { l as runStep, p as fetchURL, s as compile, t as REGISTRY_DIRNAME } from "./registry-bjxXghAl.mjs";
2
- import { r as runDevPrepare, t as installDependencies } from "./package-DPYgVv-f.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-DtG09FVz.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-DtG09FVz.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,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-NSadym2Q.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-NSadym2Q.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"}