@lingxia/cli 0.0.7
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/bin/lingxia.js +91 -0
- package/dist/builder/commands/build.d.ts +3 -0
- package/dist/builder/commands/build.d.ts.map +1 -0
- package/dist/builder/commands/build.js +317 -0
- package/dist/builder/commands/build.js.map +1 -0
- package/dist/builder/core/builders/logic.d.ts +48 -0
- package/dist/builder/core/builders/logic.d.ts.map +1 -0
- package/dist/builder/core/builders/logic.js +212 -0
- package/dist/builder/core/builders/logic.js.map +1 -0
- package/dist/builder/core/builders/page-functions.d.ts +2 -0
- package/dist/builder/core/builders/page-functions.d.ts.map +1 -0
- package/dist/builder/core/builders/page-functions.js +119 -0
- package/dist/builder/core/builders/page-functions.js.map +1 -0
- package/dist/builder/core/builders/page-path-injector.d.ts +5 -0
- package/dist/builder/core/builders/page-path-injector.d.ts.map +1 -0
- package/dist/builder/core/builders/page-path-injector.js +94 -0
- package/dist/builder/core/builders/page-path-injector.js.map +1 -0
- package/dist/builder/core/builders/page.d.ts +37 -0
- package/dist/builder/core/builders/page.d.ts.map +1 -0
- package/dist/builder/core/builders/page.js +246 -0
- package/dist/builder/core/builders/page.js.map +1 -0
- package/dist/builder/core/builders/view.d.ts +23 -0
- package/dist/builder/core/builders/view.d.ts.map +1 -0
- package/dist/builder/core/builders/view.js +194 -0
- package/dist/builder/core/builders/view.js.map +1 -0
- package/dist/builder/core/config/alias-config.d.ts +4 -0
- package/dist/builder/core/config/alias-config.d.ts.map +1 -0
- package/dist/builder/core/config/alias-config.js +29 -0
- package/dist/builder/core/config/alias-config.js.map +1 -0
- package/dist/builder/core/config/build-config.d.ts +8 -0
- package/dist/builder/core/config/build-config.d.ts.map +1 -0
- package/dist/builder/core/config/build-config.js +33 -0
- package/dist/builder/core/config/build-config.js.map +1 -0
- package/dist/builder/core/config/framework.d.ts +3 -0
- package/dist/builder/core/config/framework.d.ts.map +1 -0
- package/dist/builder/core/config/framework.js +51 -0
- package/dist/builder/core/config/framework.js.map +1 -0
- package/dist/builder/core/config/lingxia-config.d.ts +55 -0
- package/dist/builder/core/config/lingxia-config.d.ts.map +1 -0
- package/dist/builder/core/config/lingxia-config.js +174 -0
- package/dist/builder/core/config/lingxia-config.js.map +1 -0
- package/dist/builder/core/config/view-build-schema.d.ts +17 -0
- package/dist/builder/core/config/view-build-schema.d.ts.map +1 -0
- package/dist/builder/core/config/view-build-schema.js +2 -0
- package/dist/builder/core/config/view-build-schema.js.map +1 -0
- package/dist/builder/core/config/view-config.d.ts +11 -0
- package/dist/builder/core/config/view-config.d.ts.map +1 -0
- package/dist/builder/core/config/view-config.js +79 -0
- package/dist/builder/core/config/view-config.js.map +1 -0
- package/dist/builder/core/config.d.ts +34 -0
- package/dist/builder/core/config.d.ts.map +1 -0
- package/dist/builder/core/config.js +73 -0
- package/dist/builder/core/config.js.map +1 -0
- package/dist/builder/core/constants/source-dirs.d.ts +4 -0
- package/dist/builder/core/constants/source-dirs.d.ts.map +1 -0
- package/dist/builder/core/constants/source-dirs.js +24 -0
- package/dist/builder/core/constants/source-dirs.js.map +1 -0
- package/dist/builder/core/constants/static-dirs.d.ts +4 -0
- package/dist/builder/core/constants/static-dirs.d.ts.map +1 -0
- package/dist/builder/core/constants/static-dirs.js +51 -0
- package/dist/builder/core/constants/static-dirs.js.map +1 -0
- package/dist/builder/core/frameworks/base.d.ts +49 -0
- package/dist/builder/core/frameworks/base.d.ts.map +1 -0
- package/dist/builder/core/frameworks/base.js +61 -0
- package/dist/builder/core/frameworks/base.js.map +1 -0
- package/dist/builder/core/frameworks/factory.d.ts +29 -0
- package/dist/builder/core/frameworks/factory.d.ts.map +1 -0
- package/dist/builder/core/frameworks/factory.js +59 -0
- package/dist/builder/core/frameworks/factory.js.map +1 -0
- package/dist/builder/core/frameworks/html.d.ts +30 -0
- package/dist/builder/core/frameworks/html.d.ts.map +1 -0
- package/dist/builder/core/frameworks/html.js +92 -0
- package/dist/builder/core/frameworks/html.js.map +1 -0
- package/dist/builder/core/frameworks/react.d.ts +33 -0
- package/dist/builder/core/frameworks/react.d.ts.map +1 -0
- package/dist/builder/core/frameworks/react.js +161 -0
- package/dist/builder/core/frameworks/react.js.map +1 -0
- package/dist/builder/core/frameworks/templates.d.ts +2 -0
- package/dist/builder/core/frameworks/templates.d.ts.map +1 -0
- package/dist/builder/core/frameworks/templates.js +3 -0
- package/dist/builder/core/frameworks/templates.js.map +1 -0
- package/dist/builder/core/frameworks/vue.d.ts +33 -0
- package/dist/builder/core/frameworks/vue.d.ts.map +1 -0
- package/dist/builder/core/frameworks/vue.js +161 -0
- package/dist/builder/core/frameworks/vue.js.map +1 -0
- package/dist/builder/core/registry.d.ts +43 -0
- package/dist/builder/core/registry.d.ts.map +1 -0
- package/dist/builder/core/registry.js +79 -0
- package/dist/builder/core/registry.js.map +1 -0
- package/dist/builder/core/template.d.ts +7 -0
- package/dist/builder/core/template.d.ts.map +1 -0
- package/dist/builder/core/template.js +57 -0
- package/dist/builder/core/template.js.map +1 -0
- package/dist/builder/core/templates/embedded.d.ts +17 -0
- package/dist/builder/core/templates/embedded.d.ts.map +1 -0
- package/dist/builder/core/templates/embedded.js +121 -0
- package/dist/builder/core/templates/embedded.js.map +1 -0
- package/dist/builder/core/utils/file.d.ts +35 -0
- package/dist/builder/core/utils/file.d.ts.map +1 -0
- package/dist/builder/core/utils/file.js +99 -0
- package/dist/builder/core/utils/file.js.map +1 -0
- package/dist/builder/core/utils/page.d.ts +14 -0
- package/dist/builder/core/utils/page.d.ts.map +1 -0
- package/dist/builder/core/utils/page.js +46 -0
- package/dist/builder/core/utils/page.js.map +1 -0
- package/dist/builder/index.d.ts +2 -0
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/index.js +2 -0
- package/dist/builder/index.js.map +1 -0
- package/dist/builder/types/index.d.ts +67 -0
- package/dist/builder/types/index.d.ts.map +1 -0
- package/dist/builder/types/index.js +2 -0
- package/dist/builder/types/index.js.map +1 -0
- package/dist/commands/create.d.ts +7 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +151 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/package.json +49 -0
- package/scripts/ensure-deps.cjs +54 -0
- package/scripts/install.cjs +62 -0
- package/scripts/set-version.cjs +34 -0
- package/scripts/sync-templates.cjs +36 -0
- package/templates/android-native/app/build.gradle.kts +48 -0
- package/templates/android-native/app/proguard-rules.pro +21 -0
- package/templates/android-native/app/src/main/AndroidManifest.xml +21 -0
- package/templates/android-native/app/src/main/java/MainActivity.kt +27 -0
- package/templates/android-native/app/src/main/res/values/strings.xml +3 -0
- package/templates/android-native/build.gradle.kts +5 -0
- package/templates/android-native/gradle/libs.versions.toml +16 -0
- package/templates/android-native/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/templates/android-native/gradle/wrapper/gradle-wrapper.properties +6 -0
- package/templates/android-native/gradle.properties +4 -0
- package/templates/android-native/gradlew +185 -0
- package/templates/android-native/gradlew.bat +89 -0
- package/templates/android-native/settings.gradle.kts +25 -0
- package/templates/lxapp-create/react/lxapp.config.json +8 -0
- package/templates/lxapp-create/react/lxapp.json +8 -0
- package/templates/lxapp-create/react/lxapp.ts +8 -0
- package/templates/lxapp-create/react/package.json +26 -0
- package/templates/lxapp-create/react/pages/home/index.json +3 -0
- package/templates/lxapp-create/react/pages/home/index.ts +14 -0
- package/templates/lxapp-create/react/pages/home/index.tsx +60 -0
- package/templates/lxapp-create/react/public/.gitkeep +0 -0
- package/templates/lxapp-create/react/shared/.gitkeep +0 -0
- package/templates/lxapp-create/react/tsconfig.json +20 -0
- package/templates/lxapp-create/vue/lxapp.config.json +8 -0
- package/templates/lxapp-create/vue/lxapp.json +8 -0
- package/templates/lxapp-create/vue/lxapp.ts +8 -0
- package/templates/lxapp-create/vue/package.json +24 -0
- package/templates/lxapp-create/vue/pages/home/index.json +3 -0
- package/templates/lxapp-create/vue/pages/home/index.ts +14 -0
- package/templates/lxapp-create/vue/pages/home/index.vue +48 -0
- package/templates/lxapp-create/vue/public/.gitkeep +0 -0
- package/templates/lxapp-create/vue/shared/.gitkeep +0 -0
- package/templates/lxapp-create/vue/tsconfig.json +20 -0
- package/templates/rust-lib/Cargo.toml +13 -0
- package/templates/rust-lib/README.md +14 -0
- package/templates/rust-lib/src/lib.rs +13 -0
- package/vendor/.gitkeep +1 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
type PageState = {
|
|
4
|
+
greeting: string;
|
|
5
|
+
greetCount: number;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
type PageActions = {
|
|
9
|
+
data: PageState;
|
|
10
|
+
greet(payload: { name: string }): void;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
declare function useLingXia(): PageActions;
|
|
14
|
+
|
|
15
|
+
export default function HomePage() {
|
|
16
|
+
const { data, greet } = useLingXia();
|
|
17
|
+
const [name, setName] = React.useState('');
|
|
18
|
+
const [pending, setPending] = React.useState(false);
|
|
19
|
+
|
|
20
|
+
React.useEffect(() => {
|
|
21
|
+
if (pending) {
|
|
22
|
+
const timer = setTimeout(() => setPending(false), 500);
|
|
23
|
+
return () => clearTimeout(timer);
|
|
24
|
+
}
|
|
25
|
+
}, [data.greetCount, pending]);
|
|
26
|
+
|
|
27
|
+
const submit = () => {
|
|
28
|
+
const value = name.trim();
|
|
29
|
+
if (!value) return;
|
|
30
|
+
setPending(true);
|
|
31
|
+
greet({ name: value });
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<div className="home-screen">
|
|
36
|
+
<div className="card">
|
|
37
|
+
<p className="eyebrow">LingXia + React</p>
|
|
38
|
+
<h1>Hello there đź‘‹</h1>
|
|
39
|
+
<p className="description">
|
|
40
|
+
This starter demonstrates how logic data flows into a React view via the <code>useLingXia</code> hook.
|
|
41
|
+
</p>
|
|
42
|
+
<div className="form-row">
|
|
43
|
+
<input
|
|
44
|
+
value={name}
|
|
45
|
+
placeholder="Enter a name"
|
|
46
|
+
onChange={event => setName(event.target.value)}
|
|
47
|
+
onKeyDown={event => {
|
|
48
|
+
if (event.key === 'Enter') submit();
|
|
49
|
+
}}
|
|
50
|
+
/>
|
|
51
|
+
<button type="button" onClick={submit} disabled={pending}>
|
|
52
|
+
{pending ? 'Sending...' : 'Greet'}
|
|
53
|
+
</button>
|
|
54
|
+
</div>
|
|
55
|
+
<div className="greeting">{data.greeting}</div>
|
|
56
|
+
<div className="meta">Invoked {data.greetCount} times</div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
);
|
|
60
|
+
}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
6
|
+
"jsx": "react-jsx",
|
|
7
|
+
"strict": true,
|
|
8
|
+
"esModuleInterop": true,
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
"forceConsistentCasingInFileNames": true,
|
|
11
|
+
"moduleResolution": "bundler",
|
|
12
|
+
"resolveJsonModule": true,
|
|
13
|
+
"isolatedModules": true,
|
|
14
|
+
"noEmit": true,
|
|
15
|
+
"allowSyntheticDefaultImports": true,
|
|
16
|
+
"baseUrl": "."
|
|
17
|
+
},
|
|
18
|
+
"include": ["**/*.ts", "**/*.tsx"],
|
|
19
|
+
"exclude": ["node_modules", "dist"]
|
|
20
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "__APP_PACKAGE_NAME__",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "A LingXia mini app powered by Vue",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "lingxia build --dev",
|
|
8
|
+
"build": "lingxia build --prod"
|
|
9
|
+
},
|
|
10
|
+
"keywords": ["lingxia", "miniapp", "vue"],
|
|
11
|
+
"author": "",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"lingxia": {
|
|
14
|
+
"framework": "vue"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@lingxia/rong": "^0.0.1",
|
|
18
|
+
"vue": "^3.5.27"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"typescript": "^5.7.2",
|
|
22
|
+
"vue-tsc": "^2.2.0"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Page({
|
|
2
|
+
data: {
|
|
3
|
+
greeting: 'Welcome to your LingXia app',
|
|
4
|
+
greetCount: 0
|
|
5
|
+
},
|
|
6
|
+
|
|
7
|
+
greet({ name }: { name: string }) {
|
|
8
|
+
const count = this.data.greetCount + 1;
|
|
9
|
+
this.setData({
|
|
10
|
+
greetCount: count,
|
|
11
|
+
greeting: `Hello ${name}! (#${count})`
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, ref, watch } from 'vue';
|
|
3
|
+
|
|
4
|
+
const { data, greet } = useLingXia();
|
|
5
|
+
const state = computed(() => data ?? { greeting: '', greetCount: 0 });
|
|
6
|
+
const name = ref('');
|
|
7
|
+
const pending = ref(false);
|
|
8
|
+
|
|
9
|
+
watch(
|
|
10
|
+
() => state.value.greetCount,
|
|
11
|
+
() => {
|
|
12
|
+
if (pending.value) {
|
|
13
|
+
pending.value = false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
function submit() {
|
|
19
|
+
const value = name.value.trim();
|
|
20
|
+
if (!value) return;
|
|
21
|
+
pending.value = true;
|
|
22
|
+
greet({ name: value });
|
|
23
|
+
}
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<template>
|
|
27
|
+
<div class="home-screen">
|
|
28
|
+
<section class="card">
|
|
29
|
+
<p class="eyebrow">LingXia + Vue</p>
|
|
30
|
+
<h1>Hello there đź‘‹</h1>
|
|
31
|
+
<p class="description">
|
|
32
|
+
This starter wires data from the logic layer into a Vue component using the <code>useLingXia</code> API.
|
|
33
|
+
</p>
|
|
34
|
+
<div class="form-row">
|
|
35
|
+
<input
|
|
36
|
+
v-model="name"
|
|
37
|
+
placeholder="Enter a name"
|
|
38
|
+
@keydown.enter.prevent="submit"
|
|
39
|
+
/>
|
|
40
|
+
<button type="button" :disabled="pending" @click="submit">
|
|
41
|
+
{{ pending ? 'Sending…' : 'Greet' }}
|
|
42
|
+
</button>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="greeting">{{ state.greeting }}</div>
|
|
45
|
+
<div class="meta">Invoked {{ state.greetCount }} times</div>
|
|
46
|
+
</section>
|
|
47
|
+
</div>
|
|
48
|
+
</template>
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
6
|
+
"jsx": "preserve",
|
|
7
|
+
"strict": true,
|
|
8
|
+
"esModuleInterop": true,
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
"forceConsistentCasingInFileNames": true,
|
|
11
|
+
"moduleResolution": "bundler",
|
|
12
|
+
"resolveJsonModule": true,
|
|
13
|
+
"isolatedModules": true,
|
|
14
|
+
"noEmit": true,
|
|
15
|
+
"allowSyntheticDefaultImports": true,
|
|
16
|
+
"baseUrl": "."
|
|
17
|
+
},
|
|
18
|
+
"include": ["**/*.ts", "**/*.tsx", "**/*.vue"],
|
|
19
|
+
"exclude": ["node_modules", "dist"]
|
|
20
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "{{project_name}}"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
edition = "2024"
|
|
5
|
+
description = "Native library for LingXia App (builds to .so/.a)"
|
|
6
|
+
|
|
7
|
+
[lib]
|
|
8
|
+
name = "lingxia"
|
|
9
|
+
# cdylib for Android/Harmony (.so), staticlib for iOS (.a)
|
|
10
|
+
crate-type = ["cdylib", "staticlib"]
|
|
11
|
+
|
|
12
|
+
[dependencies]
|
|
13
|
+
lingxia = "0.1.1"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# {{project_name}}
|
|
2
|
+
|
|
3
|
+
Native library for your LingXia app.
|
|
4
|
+
|
|
5
|
+
This crate builds a platform-native library (`.so` for Android/Harmony, `.a` for iOS) that re-exports LingXia SDK symbols.
|
|
6
|
+
|
|
7
|
+
## Build
|
|
8
|
+
|
|
9
|
+
This crate is automatically built by `lingxia-cli` when you run:
|
|
10
|
+
```bash
|
|
11
|
+
lingxia dev
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The compiled library will be bundled into your app automatically.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//! Native library for the example app (builds to .so/.a).
|
|
2
|
+
//!
|
|
3
|
+
//! This crate re-exports platform FFI symbols from lingxia.
|
|
4
|
+
|
|
5
|
+
// Re-export platform FFI symbols from lingxia
|
|
6
|
+
#[cfg(target_os = "android")]
|
|
7
|
+
pub use lingxia::android::*;
|
|
8
|
+
|
|
9
|
+
#[cfg(any(target_os = "ios", target_os = "macos"))]
|
|
10
|
+
pub use lingxia::apple::*;
|
|
11
|
+
|
|
12
|
+
#[cfg(target_env = "ohos")]
|
|
13
|
+
pub use lingxia::harmony::*;
|
package/vendor/.gitkeep
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|