@lingxia/cli 0.0.8 → 0.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,wBAAsB,MAAM,CAAC,IAAI,WAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,wBAAsB,MAAM,CAAC,IAAI,WAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/D"}
package/dist/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { Command } from 'commander';
2
2
  import { createRequire } from 'module';
3
3
  import { buildCommand } from './builder/index.js';
4
- import { createCommand } from './commands/create.js';
5
4
  import { fileURLToPath, pathToFileURL } from 'url';
6
5
  import path from 'path';
7
6
  const { version } = createRequire(import.meta.url)('../package.json');
@@ -19,14 +18,6 @@ export async function runCLI(argv = process.argv) {
19
18
  .option('--plugin', 'Build as plugin package')
20
19
  .option('--target <target>', 'JS target (es5, es2015, es2020, esnext). Note: es5 requires @vitejs/plugin-legacy')
21
20
  .action(buildCommand);
22
- program
23
- .command('create')
24
- .argument('[projectName]', 'Directory name for the new project')
25
- .description('Create a new LingXia project from a template')
26
- .option('-f, --framework <framework>', 'Pick a framework (react|vue)')
27
- .action((projectName, cmdOptions) => createCommand(projectName, {
28
- framework: cmdOptions.framework
29
- }));
30
21
  await program.parseAsync(argv);
31
22
  }
32
23
  const isMain = (() => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;IAC9C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CAAC,2BAA2B,CAAC;SACxC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;IAE/B,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;SACxC,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAAC;SACxC,MAAM,CAAC,UAAU,EAAE,yBAAyB,CAAC;SAC7C,MAAM,CAAC,mBAAmB,EAAE,mFAAmF,CAAC;SAChH,MAAM,CAAC,YAAY,CAAC,CAAC;IAExB,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,eAAe,EAAE,oCAAoC,CAAC;SAC/D,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,6BAA6B,EAAE,8BAA8B,CAAC;SACrE,MAAM,CAAC,CAAC,WAA+B,EAAE,UAAkC,EAAE,EAAE,CAC9E,aAAa,CAAC,WAAW,EAAE;QACzB,SAAS,EAAE,UAAU,CAAC,SAAgB;KACvC,CAAC,CACH,CAAC;IAEJ,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;IACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,OAAO,QAAQ,KAAK,UAAU,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACrF,CAAC,CAAC,EAAE,CAAC;AAEL,IAAI,MAAM,EAAE,CAAC;IACX,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;IAC9C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CAAC,2BAA2B,CAAC;SACxC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;IAE/B,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;SACxC,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAAC;SACxC,MAAM,CAAC,UAAU,EAAE,yBAAyB,CAAC;SAC7C,MAAM,CAAC,mBAAmB,EAAE,mFAAmF,CAAC;SAChH,MAAM,CAAC,YAAY,CAAC,CAAC;IAExB,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;IACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,OAAO,QAAQ,KAAK,UAAU,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACrF,CAAC,CAAC,EAAE,CAAC;AAEL,IAAI,MAAM,EAAE,CAAC;IACX,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lingxia/cli",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "private": false,
5
5
  "description": "LingXia CLI for scaffolding, building, and packaging mini-apps with LingXia templates and builders.",
6
6
  "type": "module",
@@ -36,9 +36,9 @@
36
36
  "vite": "^6.0.7"
37
37
  },
38
38
  "optionalDependencies": {
39
- "@lingxia/cli-darwin-arm64": "0.0.8",
40
- "@lingxia/cli-darwin-x64": "0.0.8",
41
- "@lingxia/cli-win32-x64": "0.0.8"
39
+ "@lingxia/cli-darwin-arm64": "0.0.9",
40
+ "@lingxia/cli-darwin-x64": "0.0.9",
41
+ "@lingxia/cli-win32-x64": "0.0.9"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/node": "^20.19.7",
@@ -39,7 +39,7 @@ android {
39
39
 
40
40
  dependencies {
41
41
  // LingXia SDK
42
- implementation("com.lingxia:lingxia:0.0.1")
42
+ implementation("com.lingxia:lingxia:{{SDK_VERSION}}")
43
43
 
44
44
  // Android dependencies
45
45
  implementation(libs.androidx.core.ktx)
@@ -16,8 +16,6 @@ dependencyResolutionManagement {
16
16
  repositories {
17
17
  google()
18
18
  mavenCentral()
19
- // Local Maven repo for LingXia SDK (generated by cargo build)
20
- maven { url = uri("$rootDir/../../../target/maven") }
21
19
  }
22
20
  }
23
21
 
@@ -14,13 +14,13 @@
14
14
  "framework": "react"
15
15
  },
16
16
  "dependencies": {
17
- "@lingxia/rong": "^0.0.1",
17
+ "@lingxia/rong": "^{{RONG_VERSION}}",
18
18
  "react": "^19.2.4",
19
19
  "react-dom": "^19.2.4"
20
20
  },
21
21
  "devDependencies": {
22
- "@types/react": "^19.0.6",
23
- "@types/react-dom": "^19.0.2",
24
- "typescript": "^5.7.2"
22
+ "@types/react": "^19.2.10",
23
+ "@types/react-dom": "^19.2.3",
24
+ "typescript": "^5.9.3"
25
25
  }
26
26
  }
@@ -14,11 +14,11 @@
14
14
  "framework": "vue"
15
15
  },
16
16
  "dependencies": {
17
- "@lingxia/rong": "^0.0.1",
17
+ "@lingxia/rong": "^{{RONG_VERSION}}",
18
18
  "vue": "^3.5.27"
19
19
  },
20
20
  "devDependencies": {
21
- "typescript": "^5.7.2",
22
- "vue-tsc": "^2.2.0"
21
+ "typescript": "^5.9.3",
22
+ "vue-tsc": "^3.2.4"
23
23
  }
24
24
  }
@@ -10,4 +10,4 @@ name = "lingxia"
10
10
  crate-type = ["cdylib", "staticlib"]
11
11
 
12
12
  [dependencies]
13
- lingxia = "0.1.1"
13
+ lingxia = "{{CRATE_VERSION}}"
@@ -1,7 +0,0 @@
1
- type Framework = 'react' | 'vue';
2
- type CreateOptions = {
3
- framework?: Framework;
4
- };
5
- export declare function createCommand(projectNameArg?: string, options?: CreateOptions): Promise<void>;
6
- export {};
7
- //# sourceMappingURL=create.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAMA,KAAK,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;AAEjC,KAAK,aAAa,GAAG;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAoBF,wBAAsB,aAAa,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBvG"}
@@ -1,151 +0,0 @@
1
- import path from 'path';
2
- import { fileURLToPath } from 'url';
3
- import { existsSync, promises as fs } from 'fs';
4
- import { createInterface } from 'readline/promises';
5
- import { stdin as input, stdout as output } from 'process';
6
- const TEMPLATE_ROOT = resolveTemplateRoot();
7
- function resolveTemplateRoot() {
8
- // From npm/dist/commands/create.js → ../../templates/lxapp-create
9
- // Dev fallback → ../../../templates/lxapp-create (repo root templates)
10
- const candidates = [
11
- new URL('../../templates/lxapp-create', import.meta.url),
12
- new URL('../../../templates/lxapp-create', import.meta.url),
13
- ];
14
- for (const candidate of candidates) {
15
- const resolved = fileURLToPath(candidate);
16
- if (existsSync(resolved))
17
- return resolved;
18
- }
19
- return fileURLToPath(candidates[0]);
20
- }
21
- export async function createCommand(projectNameArg, options = {}) {
22
- const prompts = new PromptManager();
23
- try {
24
- const projectName = await resolveProjectName(projectNameArg, prompts);
25
- const framework = await resolveFramework(options.framework, prompts);
26
- const targetDir = path.resolve(process.cwd(), projectName);
27
- await ensureTargetDirectory(targetDir);
28
- const templateDir = path.join(TEMPLATE_ROOT, framework);
29
- await copyTemplate(templateDir, targetDir);
30
- await applyPlaceholders(targetDir, projectName);
31
- await recordFrameworkMetadata(targetDir, framework);
32
- console.log('\n✅ Project scaffolded!');
33
- console.log(`\nNext steps:`);
34
- console.log(` cd ${path.relative(process.cwd(), targetDir) || '.'}`);
35
- console.log(` npm install`);
36
- console.log(` npm run dev # or npm run build`);
37
- }
38
- finally {
39
- prompts.dispose();
40
- }
41
- }
42
- async function resolveProjectName(projectNameArg, prompts) {
43
- const defaultName = 'lingxia-app';
44
- if (projectNameArg && projectNameArg.trim().length > 0) {
45
- return projectNameArg.trim();
46
- }
47
- return prompts.input(`Project name (${defaultName}): `, defaultName);
48
- }
49
- async function resolveFramework(current, prompts) {
50
- if (current === 'react' || current === 'vue') {
51
- return current;
52
- }
53
- const answer = await prompts.select('Choose framework', ['react', 'vue']);
54
- return answer;
55
- }
56
- async function ensureTargetDirectory(targetDir) {
57
- if (existsSync(targetDir)) {
58
- const entries = await fs.readdir(targetDir);
59
- if (entries.length > 0) {
60
- throw new Error(`Target directory "${targetDir}" is not empty. Please choose a different name or empty the folder.`);
61
- }
62
- return;
63
- }
64
- await fs.mkdir(targetDir, { recursive: true });
65
- }
66
- async function copyTemplate(templateDir, targetDir) {
67
- await fs.cp(templateDir, targetDir, { recursive: true });
68
- }
69
- async function applyPlaceholders(targetDir, projectName) {
70
- const pkgPath = path.join(targetDir, 'package.json');
71
- const appPath = path.join(targetDir, 'lxapp.json');
72
- const packageName = slugify(projectName);
73
- const appId = packageName;
74
- const displayName = titleCase(projectName);
75
- const replacements = {
76
- __APP_PACKAGE_NAME__: packageName,
77
- __APP_ID__: appId,
78
- __APP_DISPLAY_NAME__: displayName
79
- };
80
- await replacePlaceholders(pkgPath, replacements);
81
- await replacePlaceholders(appPath, replacements);
82
- }
83
- async function recordFrameworkMetadata(targetDir, framework) {
84
- const pkgPath = path.join(targetDir, 'package.json');
85
- if (!existsSync(pkgPath))
86
- return;
87
- const pkg = JSON.parse(await fs.readFile(pkgPath, 'utf8'));
88
- pkg.lingxia = { ...(pkg.lingxia ?? {}), framework };
89
- await fs.writeFile(pkgPath, JSON.stringify(pkg, null, 2));
90
- }
91
- async function replacePlaceholders(filePath, replacements) {
92
- if (!existsSync(filePath))
93
- return;
94
- let content = await fs.readFile(filePath, 'utf8');
95
- for (const [token, value] of Object.entries(replacements)) {
96
- content = content.replace(new RegExp(token, 'g'), value);
97
- }
98
- await fs.writeFile(filePath, content);
99
- }
100
- class PromptManager {
101
- rl = null;
102
- ensureInterface() {
103
- if (!this.rl) {
104
- this.rl = createInterface({ input, output });
105
- }
106
- return this.rl;
107
- }
108
- async input(message, fallback) {
109
- const answer = await this.ensureInterface().question(message);
110
- return answer.trim().length > 0 ? answer.trim() : fallback;
111
- }
112
- async select(message, options) {
113
- const formatted = options.map((option, index) => `${index + 1}) ${option}`).join('\n');
114
- const prompt = `${message}:\n${formatted}\nEnter choice: `;
115
- const answer = await this.ensureInterface().question(prompt);
116
- const index = Number.parseInt(answer, 10);
117
- if (!Number.isNaN(index) && index >= 1 && index <= options.length) {
118
- return options[index - 1];
119
- }
120
- return options[0];
121
- }
122
- async confirm(message, defaultValue) {
123
- const suffix = defaultValue ? 'Y/n' : 'y/N';
124
- const answer = (await this.ensureInterface().question(message || `Confirm (${suffix}): `)).trim().toLowerCase();
125
- if (answer === '') {
126
- return defaultValue;
127
- }
128
- return ['y', 'yes'].includes(answer);
129
- }
130
- dispose() {
131
- this.rl?.close();
132
- this.rl = null;
133
- }
134
- }
135
- function slugify(value) {
136
- const slug = value
137
- .trim()
138
- .toLowerCase()
139
- .replace(/[^a-z0-9]+/g, '-')
140
- .replace(/^-+|-+$/g, '');
141
- return slug.length > 0 ? slug : 'lingxia-app';
142
- }
143
- function titleCase(value) {
144
- return value
145
- .trim()
146
- .split(/[\s\-_.]+/)
147
- .filter(Boolean)
148
- .map(word => word.charAt(0).toUpperCase() + word.slice(1))
149
- .join(' ') || 'LingXia App';
150
- }
151
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}