@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.
Files changed (163) hide show
  1. package/bin/lingxia.js +91 -0
  2. package/dist/builder/commands/build.d.ts +3 -0
  3. package/dist/builder/commands/build.d.ts.map +1 -0
  4. package/dist/builder/commands/build.js +317 -0
  5. package/dist/builder/commands/build.js.map +1 -0
  6. package/dist/builder/core/builders/logic.d.ts +48 -0
  7. package/dist/builder/core/builders/logic.d.ts.map +1 -0
  8. package/dist/builder/core/builders/logic.js +212 -0
  9. package/dist/builder/core/builders/logic.js.map +1 -0
  10. package/dist/builder/core/builders/page-functions.d.ts +2 -0
  11. package/dist/builder/core/builders/page-functions.d.ts.map +1 -0
  12. package/dist/builder/core/builders/page-functions.js +119 -0
  13. package/dist/builder/core/builders/page-functions.js.map +1 -0
  14. package/dist/builder/core/builders/page-path-injector.d.ts +5 -0
  15. package/dist/builder/core/builders/page-path-injector.d.ts.map +1 -0
  16. package/dist/builder/core/builders/page-path-injector.js +94 -0
  17. package/dist/builder/core/builders/page-path-injector.js.map +1 -0
  18. package/dist/builder/core/builders/page.d.ts +37 -0
  19. package/dist/builder/core/builders/page.d.ts.map +1 -0
  20. package/dist/builder/core/builders/page.js +246 -0
  21. package/dist/builder/core/builders/page.js.map +1 -0
  22. package/dist/builder/core/builders/view.d.ts +23 -0
  23. package/dist/builder/core/builders/view.d.ts.map +1 -0
  24. package/dist/builder/core/builders/view.js +194 -0
  25. package/dist/builder/core/builders/view.js.map +1 -0
  26. package/dist/builder/core/config/alias-config.d.ts +4 -0
  27. package/dist/builder/core/config/alias-config.d.ts.map +1 -0
  28. package/dist/builder/core/config/alias-config.js +29 -0
  29. package/dist/builder/core/config/alias-config.js.map +1 -0
  30. package/dist/builder/core/config/build-config.d.ts +8 -0
  31. package/dist/builder/core/config/build-config.d.ts.map +1 -0
  32. package/dist/builder/core/config/build-config.js +33 -0
  33. package/dist/builder/core/config/build-config.js.map +1 -0
  34. package/dist/builder/core/config/framework.d.ts +3 -0
  35. package/dist/builder/core/config/framework.d.ts.map +1 -0
  36. package/dist/builder/core/config/framework.js +51 -0
  37. package/dist/builder/core/config/framework.js.map +1 -0
  38. package/dist/builder/core/config/lingxia-config.d.ts +55 -0
  39. package/dist/builder/core/config/lingxia-config.d.ts.map +1 -0
  40. package/dist/builder/core/config/lingxia-config.js +174 -0
  41. package/dist/builder/core/config/lingxia-config.js.map +1 -0
  42. package/dist/builder/core/config/view-build-schema.d.ts +17 -0
  43. package/dist/builder/core/config/view-build-schema.d.ts.map +1 -0
  44. package/dist/builder/core/config/view-build-schema.js +2 -0
  45. package/dist/builder/core/config/view-build-schema.js.map +1 -0
  46. package/dist/builder/core/config/view-config.d.ts +11 -0
  47. package/dist/builder/core/config/view-config.d.ts.map +1 -0
  48. package/dist/builder/core/config/view-config.js +79 -0
  49. package/dist/builder/core/config/view-config.js.map +1 -0
  50. package/dist/builder/core/config.d.ts +34 -0
  51. package/dist/builder/core/config.d.ts.map +1 -0
  52. package/dist/builder/core/config.js +73 -0
  53. package/dist/builder/core/config.js.map +1 -0
  54. package/dist/builder/core/constants/source-dirs.d.ts +4 -0
  55. package/dist/builder/core/constants/source-dirs.d.ts.map +1 -0
  56. package/dist/builder/core/constants/source-dirs.js +24 -0
  57. package/dist/builder/core/constants/source-dirs.js.map +1 -0
  58. package/dist/builder/core/constants/static-dirs.d.ts +4 -0
  59. package/dist/builder/core/constants/static-dirs.d.ts.map +1 -0
  60. package/dist/builder/core/constants/static-dirs.js +51 -0
  61. package/dist/builder/core/constants/static-dirs.js.map +1 -0
  62. package/dist/builder/core/frameworks/base.d.ts +49 -0
  63. package/dist/builder/core/frameworks/base.d.ts.map +1 -0
  64. package/dist/builder/core/frameworks/base.js +61 -0
  65. package/dist/builder/core/frameworks/base.js.map +1 -0
  66. package/dist/builder/core/frameworks/factory.d.ts +29 -0
  67. package/dist/builder/core/frameworks/factory.d.ts.map +1 -0
  68. package/dist/builder/core/frameworks/factory.js +59 -0
  69. package/dist/builder/core/frameworks/factory.js.map +1 -0
  70. package/dist/builder/core/frameworks/html.d.ts +30 -0
  71. package/dist/builder/core/frameworks/html.d.ts.map +1 -0
  72. package/dist/builder/core/frameworks/html.js +92 -0
  73. package/dist/builder/core/frameworks/html.js.map +1 -0
  74. package/dist/builder/core/frameworks/react.d.ts +33 -0
  75. package/dist/builder/core/frameworks/react.d.ts.map +1 -0
  76. package/dist/builder/core/frameworks/react.js +161 -0
  77. package/dist/builder/core/frameworks/react.js.map +1 -0
  78. package/dist/builder/core/frameworks/templates.d.ts +2 -0
  79. package/dist/builder/core/frameworks/templates.d.ts.map +1 -0
  80. package/dist/builder/core/frameworks/templates.js +3 -0
  81. package/dist/builder/core/frameworks/templates.js.map +1 -0
  82. package/dist/builder/core/frameworks/vue.d.ts +33 -0
  83. package/dist/builder/core/frameworks/vue.d.ts.map +1 -0
  84. package/dist/builder/core/frameworks/vue.js +161 -0
  85. package/dist/builder/core/frameworks/vue.js.map +1 -0
  86. package/dist/builder/core/registry.d.ts +43 -0
  87. package/dist/builder/core/registry.d.ts.map +1 -0
  88. package/dist/builder/core/registry.js +79 -0
  89. package/dist/builder/core/registry.js.map +1 -0
  90. package/dist/builder/core/template.d.ts +7 -0
  91. package/dist/builder/core/template.d.ts.map +1 -0
  92. package/dist/builder/core/template.js +57 -0
  93. package/dist/builder/core/template.js.map +1 -0
  94. package/dist/builder/core/templates/embedded.d.ts +17 -0
  95. package/dist/builder/core/templates/embedded.d.ts.map +1 -0
  96. package/dist/builder/core/templates/embedded.js +121 -0
  97. package/dist/builder/core/templates/embedded.js.map +1 -0
  98. package/dist/builder/core/utils/file.d.ts +35 -0
  99. package/dist/builder/core/utils/file.d.ts.map +1 -0
  100. package/dist/builder/core/utils/file.js +99 -0
  101. package/dist/builder/core/utils/file.js.map +1 -0
  102. package/dist/builder/core/utils/page.d.ts +14 -0
  103. package/dist/builder/core/utils/page.d.ts.map +1 -0
  104. package/dist/builder/core/utils/page.js +46 -0
  105. package/dist/builder/core/utils/page.js.map +1 -0
  106. package/dist/builder/index.d.ts +2 -0
  107. package/dist/builder/index.d.ts.map +1 -0
  108. package/dist/builder/index.js +2 -0
  109. package/dist/builder/index.js.map +1 -0
  110. package/dist/builder/types/index.d.ts +67 -0
  111. package/dist/builder/types/index.d.ts.map +1 -0
  112. package/dist/builder/types/index.js +2 -0
  113. package/dist/builder/types/index.js.map +1 -0
  114. package/dist/commands/create.d.ts +7 -0
  115. package/dist/commands/create.d.ts.map +1 -0
  116. package/dist/commands/create.js +151 -0
  117. package/dist/commands/create.js.map +1 -0
  118. package/dist/index.d.ts +2 -0
  119. package/dist/index.d.ts.map +1 -0
  120. package/dist/index.js +45 -0
  121. package/dist/index.js.map +1 -0
  122. package/package.json +49 -0
  123. package/scripts/ensure-deps.cjs +54 -0
  124. package/scripts/install.cjs +62 -0
  125. package/scripts/set-version.cjs +34 -0
  126. package/scripts/sync-templates.cjs +36 -0
  127. package/templates/android-native/app/build.gradle.kts +48 -0
  128. package/templates/android-native/app/proguard-rules.pro +21 -0
  129. package/templates/android-native/app/src/main/AndroidManifest.xml +21 -0
  130. package/templates/android-native/app/src/main/java/MainActivity.kt +27 -0
  131. package/templates/android-native/app/src/main/res/values/strings.xml +3 -0
  132. package/templates/android-native/build.gradle.kts +5 -0
  133. package/templates/android-native/gradle/libs.versions.toml +16 -0
  134. package/templates/android-native/gradle/wrapper/gradle-wrapper.jar +0 -0
  135. package/templates/android-native/gradle/wrapper/gradle-wrapper.properties +6 -0
  136. package/templates/android-native/gradle.properties +4 -0
  137. package/templates/android-native/gradlew +185 -0
  138. package/templates/android-native/gradlew.bat +89 -0
  139. package/templates/android-native/settings.gradle.kts +25 -0
  140. package/templates/lxapp-create/react/lxapp.config.json +8 -0
  141. package/templates/lxapp-create/react/lxapp.json +8 -0
  142. package/templates/lxapp-create/react/lxapp.ts +8 -0
  143. package/templates/lxapp-create/react/package.json +26 -0
  144. package/templates/lxapp-create/react/pages/home/index.json +3 -0
  145. package/templates/lxapp-create/react/pages/home/index.ts +14 -0
  146. package/templates/lxapp-create/react/pages/home/index.tsx +60 -0
  147. package/templates/lxapp-create/react/public/.gitkeep +0 -0
  148. package/templates/lxapp-create/react/shared/.gitkeep +0 -0
  149. package/templates/lxapp-create/react/tsconfig.json +20 -0
  150. package/templates/lxapp-create/vue/lxapp.config.json +8 -0
  151. package/templates/lxapp-create/vue/lxapp.json +8 -0
  152. package/templates/lxapp-create/vue/lxapp.ts +8 -0
  153. package/templates/lxapp-create/vue/package.json +24 -0
  154. package/templates/lxapp-create/vue/pages/home/index.json +3 -0
  155. package/templates/lxapp-create/vue/pages/home/index.ts +14 -0
  156. package/templates/lxapp-create/vue/pages/home/index.vue +48 -0
  157. package/templates/lxapp-create/vue/public/.gitkeep +0 -0
  158. package/templates/lxapp-create/vue/shared/.gitkeep +0 -0
  159. package/templates/lxapp-create/vue/tsconfig.json +20 -0
  160. package/templates/rust-lib/Cargo.toml +13 -0
  161. package/templates/rust-lib/README.md +14 -0
  162. package/templates/rust-lib/src/lib.rs +13 -0
  163. 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,8 @@
1
+ {
2
+ "staticDirs": ["public"],
3
+ "alias": {
4
+ "@shared": "shared"
5
+ },
6
+ "sourceDirs": ["shared"],
7
+ "assetDir": "assets"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "lxAppId": "__APP_ID__",
3
+ "lxAppName": "__APP_DISPLAY_NAME__",
4
+ "version": "0.1.0",
5
+ "pages": [
6
+ "pages/home/index.vue"
7
+ ]
8
+ }
@@ -0,0 +1,8 @@
1
+ App({
2
+ onLaunch() {
3
+ console.log('LingXia app launched');
4
+ },
5
+ globalData: {
6
+ greeting: 'Hello from App global data'
7
+ }
8
+ });
@@ -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,3 @@
1
+ {
2
+ "navigationBarTitleText": "Home"
3
+ }
@@ -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::*;
@@ -0,0 +1 @@
1
+