cj-tauri 1.1.2 → 2.1.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.
- package/README.md +137 -77
- package/bin/cj-tauri.js +287 -287
- package/cjpm.toml +13 -2
- package/cli/cjpm.toml +22 -13
- package/cli/src/doctor.cj +308 -304
- package/cli/src/main.cj +129 -121
- package/cli/src/manifest.cj +632 -0
- package/cli/src/manifest_test.cj +87 -0
- package/cli/src/project.cj +770 -754
- package/cli/src/resolve.cj +348 -348
- package/cli/src/scaffold.cj +46 -38
- package/cli/src/sync.cj +526 -0
- package/cli/src/util.cj +9 -0
- package/cli/templates/app/README.md +30 -59
- package/cli/templates/app/{ui → assets/ui}/index.html +2 -0
- package/cli/templates/app/cj-tauri.toml +32 -0
- package/cli/templates/app/cjpm.toml +21 -4
- package/cli/templates/app/src/main.cj +29 -16
- package/cli/templates/app-react/README.md +34 -45
- package/cli/templates/app-react/{ui → assets/ui}/index.html +25 -25
- package/cli/templates/app-react/{ui → assets/ui}/src/App.css +67 -67
- package/cli/templates/app-react/{ui → assets/ui}/src/App.jsx +124 -124
- package/cli/templates/app-react/cj-tauri.toml +33 -0
- package/cli/templates/app-react/cjpm.toml +21 -4
- package/cli/templates/app-react/src/main.cj +18 -29
- package/cli/templates/app-vue/README.md +34 -38
- package/cli/templates/app-vue/{ui → assets/ui}/index.html +25 -25
- package/cli/templates/app-vue/{ui → assets/ui}/src/App.vue +176 -176
- package/cli/templates/app-vue/cj-tauri.toml +33 -0
- package/cli/templates/app-vue/cjpm.toml +21 -4
- package/cli/templates/app-vue/src/main.cj +18 -29
- package/cli/templates/{ohos-pc → ohos-skeleton}/README.md +5 -0
- package/cli/templates/{ohos-pc → ohos-skeleton}/build-hap.sh +15 -0
- package/cli/templates/{ohos-pc → ohos-skeleton}/entry/cjpm.toml +8 -0
- package/cli/templates/ohos-skeleton/entry/src/main/cangjie/dialog_host.cj +217 -0
- package/cli/templates/ohos-skeleton/entry/src/main/cangjie/index.cj +527 -0
- package/cli/templates/{ohos-pc → ohos-skeleton}/entry/src/main/module.json5 +8 -0
- package/native/build_win.bat +62 -62
- package/native/core/bridge_core.c +1681 -1626
- package/native/core/bridge_core.h +675 -618
- package/native/core/bridge_js.h +108 -108
- package/native/platforms/harmonyos/README.md +115 -6
- package/native/platforms/linux/bridge_linux.c +2787 -2485
- package/native/platforms/windows/bridge_win.c +3740 -3248
- package/native/tests/gtk_threading_probe.c +143 -143
- package/native/tests/test_bridge_core.c +1339 -1228
- package/package.json +53 -51
- package/prebuilt/linux-x64/cj-tauri +0 -0
- package/src/api_system.cj +67 -67
- package/src/app.cj +325 -940
- package/src/app_events.cj +166 -0
- package/src/app_host_ops.cj +287 -0
- package/src/app_run.cj +283 -0
- package/src/app_spec.cj +76 -0
- package/src/arkweb_menu.cj +216 -0
- package/src/arkweb_script.cj +0 -12
- package/src/capability.cj +409 -409
- package/src/clipboard_bridge.cj +178 -0
- package/src/dialog_spec.cj +79 -0
- package/src/dragdrop.cj +26 -26
- package/src/embedded_assets.cj +98 -98
- package/src/host.cj +752 -604
- package/src/host_arkweb.cj +201 -17
- package/src/host_webkit.cj +663 -548
- package/src/host_webview2.cj +663 -548
- package/src/hotkey.cj +66 -66
- package/src/ipc_hub.cj +337 -337
- package/src/ipc_message.cj +286 -286
- package/src/launch.cj +62 -0
- package/src/logging.cj +127 -127
- package/src/menu.cj +197 -197
- package/src/platform/platform_app_context.cj +77 -0
- package/src/platform/platform_assets.cj +33 -0
- package/src/platform/platform_discover.cj +176 -0
- package/src/platform/platform_env.cj +29 -0
- package/src/platform/platform_feature.cj +31 -0
- package/src/platform/platform_page_source.cj +87 -0
- package/src/platform/platform_target_info.cj +32 -0
- package/src/platform_host_provider.cj +87 -0
- package/src/plugin.cj +333 -299
- package/src/plugins/clipboard/plugin_clipboard.cj +152 -144
- package/src/plugins/dialog/plugin_dialog.cj +209 -209
- package/src/plugins/fs/plugin_fs.cj +105 -1
- package/src/plugins/http/http_backend.cj +131 -0
- package/src/plugins/http/http_desktop.cj +195 -0
- package/src/plugins/http/http_ohos.cj +204 -0
- package/src/plugins/http/plugin_http.cj +310 -459
- package/src/plugins/log/plugin_log.cj +105 -105
- package/src/plugins/menu/plugin_menu.cj +8 -0
- package/src/plugins/notification/plugin_notification.cj +154 -146
- package/src/plugins/serial/plugin_serial.cj +17 -1
- package/src/plugins/serial/serial_bridge.cj +9 -1
- package/src/plugins/serial/serial_manager_ohos.cj +92 -0
- package/src/plugins/serial/serial_ohos.cj +529 -0
- package/src/plugins/shell/plugin_shell.cj +29 -1
- package/src/plugins/sqlite/plugin_sqlite.cj +8 -0
- package/src/plugins/ws/plugin_ws.cj +488 -470
- package/src/process_hidden.cj +174 -174
- package/src/scope.cj +391 -391
- package/src/shell_event.cj +69 -69
- package/src/tests/app_spec_test.cj +126 -0
- package/src/tests/capability_test.cj +243 -243
- package/src/tests/dialog_spec_test.cj +73 -0
- package/src/tests/fake_host.cj +201 -186
- package/src/tests/ipc_hub_test.cj +487 -487
- package/src/tests/logging_test.cj +62 -62
- package/src/tests/platform_contract_test.cj +251 -0
- package/src/tests/plugin_clipboard_test.cj +222 -222
- package/src/tests/plugin_dialog_test.cj +237 -237
- package/src/tests/plugin_fs_test.cj +207 -0
- package/src/tests/plugin_http_test.cj +124 -124
- package/src/tests/plugin_notification_test.cj +205 -205
- package/src/tests/plugin_serial_test.cj +48 -0
- package/src/tests/plugin_test.cj +66 -3
- package/src/tests/plugin_ws_test.cj +40 -40
- package/src/tests/process_hidden_test.cj +129 -129
- package/src/tests/scope_test.cj +350 -350
- package/src/tests/system_host_test.cj +99 -81
- package/src/tests/urlutil_test.cj +53 -53
- package/src/tests/version_test.cj +75 -75
- package/src/tests/window_registry_test.cj +123 -123
- package/src/tray.cj +90 -90
- package/src/urlutil.cj +159 -159
- package/src/version.cj +44 -44
- package/src/window.cj +51 -51
- package/src/window_registry.cj +116 -116
- package/cli/templates/ohos-pc/entry/src/main/cangjie/index.cj +0 -167
- package/prebuilt/win32-x64/cj-tauri.exe +0 -0
- package/src/host_factory.cj +0 -48
- /package/cli/templates/app/{capabilities → assets/capabilities}/default.json +0 -0
- /package/cli/templates/app-react/{capabilities → assets/capabilities}/default.json +0 -0
- /package/cli/templates/app-react/{ui → assets/ui}/package.json +0 -0
- /package/cli/templates/app-react/{ui → assets/ui}/src/main.jsx +0 -0
- /package/cli/templates/app-react/{ui → assets/ui}/vite.config.js +0 -0
- /package/cli/templates/app-vue/{capabilities → assets/capabilities}/default.json +0 -0
- /package/cli/templates/app-vue/{ui → assets/ui}/package.json +0 -0
- /package/cli/templates/app-vue/{ui → assets/ui}/src/main.js +0 -0
- /package/cli/templates/app-vue/{ui → assets/ui}/vite.config.js +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/AppScope/app.json5 +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/AppScope/resources/base/element/string.json +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/AppScope/resources/base/media/background.png +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/AppScope/resources/base/media/foreground.png +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/AppScope/resources/base/media/layered_image.json +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/build-profile.json5 +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/build-profile.json5 +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/hvigorfile.ts +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/oh-package.json5 +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/src/main/cangjie/ability_stage.cj +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/src/main/cangjie/app_host.cj +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/src/main/cangjie/main_ability.cj +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/src/main/resources/base/element/color.json +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/src/main/resources/base/element/string.json +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/src/main/resources/base/media/background.png +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/src/main/resources/base/media/foreground.png +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/src/main/resources/base/media/layered_image.json +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/src/main/resources/base/media/startIcon.png +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/src/main/resources/base/profile/main_pages.json +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/src/main/resources/rawfile/capabilities.json +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/entry/src/main/resources/rawfile/index.html +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/hvigor/hvigor-config.json5 +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/hvigorfile.ts +0 -0
- /package/cli/templates/{ohos-pc → ohos-skeleton}/oh-package.json5 +0 -0
package/cli/src/main.cj
CHANGED
|
@@ -1,121 +1,129 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* cj-tauri CLI 入口:create / dev / build / run / info / help
|
|
3
|
-
*/
|
|
4
|
-
package cli
|
|
5
|
-
|
|
6
|
-
func usage(): Unit {
|
|
7
|
-
println("cj-tauri ${cliVersion()} — 仓颉版 Tauri CLI(脚手架 + 构建 + 运行)")
|
|
8
|
-
println("")
|
|
9
|
-
println("用法:")
|
|
10
|
-
println(" cj-tauri create <项目名> [--template <t>] [--bundle <bundleName>] [--label <应用名>]")
|
|
11
|
-
println(" 创建新项目(
|
|
12
|
-
println(" 模板: app(内联单文件,缺省)/ vue / react")
|
|
13
|
-
println(" ohos
|
|
14
|
-
println(" --bundle / --label 只对 ohos 模板有意义(缺省由项目名推导)")
|
|
15
|
-
println(" cj-tauri dev 构建 C 桥 + cjpm build + 启动应用(鸿蒙工程改走 build-hap.sh)")
|
|
16
|
-
println(" cj-tauri build 构建 C 桥 + cjpm build(鸿蒙工程 = 编 hap)")
|
|
17
|
-
println(" cj-tauri run 运行已构建产物(鸿蒙工程 = 装到设备并拉起)")
|
|
18
|
-
println(" cj-tauri info [--json] 环境自检(排障用);--json 只输出插件清单(机器可读)")
|
|
19
|
-
println(" cj-tauri doctor 环境自检逐行给结论(每条自带「缺了就怎么办」)")
|
|
20
|
-
println(" cj-tauri
|
|
21
|
-
println("")
|
|
22
|
-
println("
|
|
23
|
-
println("
|
|
24
|
-
println("
|
|
25
|
-
println("
|
|
26
|
-
println("
|
|
27
|
-
println("
|
|
28
|
-
println("
|
|
29
|
-
println("")
|
|
30
|
-
println("
|
|
31
|
-
println("
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
var
|
|
52
|
-
var
|
|
53
|
-
var
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* cj-tauri CLI 入口:create / dev / build / run / info / help
|
|
3
|
+
*/
|
|
4
|
+
package cli
|
|
5
|
+
|
|
6
|
+
func usage(): Unit {
|
|
7
|
+
println("cj-tauri ${cliVersion()} — 仓颉版 Tauri CLI(脚手架 + 构建 + 运行)")
|
|
8
|
+
println("")
|
|
9
|
+
println("用法:")
|
|
10
|
+
println(" cj-tauri create <项目名> [--template <t>] [--bundle <bundleName>] [--label <应用名>]")
|
|
11
|
+
println(" 创建新项目(cj-tauri.toml + src/ + assets/;骨架由 cj-tauri sync 派生)")
|
|
12
|
+
println(" 模板: app(内联单文件,缺省)/ vue / react(Vite 前端,作为资产)")
|
|
13
|
+
println(" ohos(鸿蒙生态:同形态统一工程,清单决定目标端)")
|
|
14
|
+
println(" --bundle / --label 只对 ohos 模板有意义(缺省由项目名推导)")
|
|
15
|
+
println(" cj-tauri dev 构建 C 桥 + cjpm build + 启动应用(鸿蒙工程改走 build-hap.sh)")
|
|
16
|
+
println(" cj-tauri build 构建 C 桥 + cjpm build(鸿蒙工程 = 编 hap)")
|
|
17
|
+
println(" cj-tauri run 运行已构建产物(鸿蒙工程 = 装到设备并拉起)")
|
|
18
|
+
println(" cj-tauri info [--json] 环境自检(排障用);--json 只输出插件清单(机器可读)")
|
|
19
|
+
println(" cj-tauri doctor 环境自检逐行给结论(每条自带「缺了就怎么办」)")
|
|
20
|
+
println(" cj-tauri check 校验 cj-tauri.toml(id/窗口/资产存在)+ targets 骨架漂移")
|
|
21
|
+
println(" cj-tauri sync [desktop|ohos] 按清单派生 targets 骨架(缺省两端都派生)")
|
|
22
|
+
println(" cj-tauri help 显示本帮助")
|
|
23
|
+
println("")
|
|
24
|
+
println("环境变量:")
|
|
25
|
+
println(" CJ_TAURI_ROOT 框架仓库根目录(不在仓库内运行时必须设置)")
|
|
26
|
+
println(" CANGJIE_HOME 仓颉 SDK 根目录(默认从 PATH 中的 cjc 反推)")
|
|
27
|
+
println(" CANGJIE_STDX stdx 动态库目录(默认从框架/项目 cjpm.toml 读取)")
|
|
28
|
+
println(" CJ_TAURI_MANIFEST")
|
|
29
|
+
println(" 仅由 cj-tauri info 设置(json / text):应用装配完就打印清单并退出,")
|
|
30
|
+
println(" 不创建窗口——无显示环境也能取到真实的插件装配结果")
|
|
31
|
+
println("")
|
|
32
|
+
println("示例:")
|
|
33
|
+
println(" cd /tmp && cj-tauri create myapp && cd myapp && cj-tauri dev")
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
main(args: Array<String>): Int64 {
|
|
37
|
+
if (args.size == 0) {
|
|
38
|
+
usage()
|
|
39
|
+
return 1
|
|
40
|
+
}
|
|
41
|
+
let sub = args[0]
|
|
42
|
+
if (sub == "help" || sub == "-h" || sub == "--help") {
|
|
43
|
+
usage()
|
|
44
|
+
return 0
|
|
45
|
+
}
|
|
46
|
+
if (sub == "--version" || sub == "-V" || sub == "-v") {
|
|
47
|
+
println("cj-tauri ${cliVersion()}")
|
|
48
|
+
return 0
|
|
49
|
+
}
|
|
50
|
+
if (sub == "create") {
|
|
51
|
+
var name = ""
|
|
52
|
+
var tpl = "app"
|
|
53
|
+
var bundle = ""
|
|
54
|
+
var label = ""
|
|
55
|
+
var i = 1
|
|
56
|
+
while (i < args.size) {
|
|
57
|
+
let a = args[i]
|
|
58
|
+
if (a == "--template" || a == "-t") {
|
|
59
|
+
if (i + 1 >= args.size) {
|
|
60
|
+
eprintln("用法: cj-tauri create <项目名> [--template app|vue|react|ohos]")
|
|
61
|
+
return 1
|
|
62
|
+
}
|
|
63
|
+
tpl = args[i + 1]
|
|
64
|
+
i = i + 2
|
|
65
|
+
continue
|
|
66
|
+
}
|
|
67
|
+
if (a == "--bundle") {
|
|
68
|
+
if (i + 1 >= args.size) {
|
|
69
|
+
eprintln("用法: cj-tauri create <项目名> --template ohos [--bundle <bundleName>]")
|
|
70
|
+
return 1
|
|
71
|
+
}
|
|
72
|
+
bundle = args[i + 1]
|
|
73
|
+
i = i + 2
|
|
74
|
+
continue
|
|
75
|
+
}
|
|
76
|
+
if (a == "--label") {
|
|
77
|
+
if (i + 1 >= args.size) {
|
|
78
|
+
eprintln("用法: cj-tauri create <项目名> --template ohos [--label <应用名>]")
|
|
79
|
+
return 1
|
|
80
|
+
}
|
|
81
|
+
label = args[i + 1]
|
|
82
|
+
i = i + 2
|
|
83
|
+
continue
|
|
84
|
+
}
|
|
85
|
+
if (name.size == 0) {
|
|
86
|
+
name = a
|
|
87
|
+
}
|
|
88
|
+
i = i + 1
|
|
89
|
+
}
|
|
90
|
+
if (name.size == 0) {
|
|
91
|
+
eprintln("用法: cj-tauri create <项目名> [--template app|vue|react|ohos]")
|
|
92
|
+
return 1
|
|
93
|
+
}
|
|
94
|
+
return cmdCreate(name, tpl, bundle, label)
|
|
95
|
+
}
|
|
96
|
+
if (sub == "dev") {
|
|
97
|
+
return cmdDev()
|
|
98
|
+
}
|
|
99
|
+
if (sub == "build") {
|
|
100
|
+
return cmdBuild()
|
|
101
|
+
}
|
|
102
|
+
if (sub == "run") {
|
|
103
|
+
return cmdRun()
|
|
104
|
+
}
|
|
105
|
+
if (sub == "info") {
|
|
106
|
+
var asJson = false
|
|
107
|
+
var i = 1
|
|
108
|
+
while (i < args.size) {
|
|
109
|
+
if (args[i] == "--json") {
|
|
110
|
+
asJson = true
|
|
111
|
+
}
|
|
112
|
+
i = i + 1
|
|
113
|
+
}
|
|
114
|
+
return cmdInfo(asJson)
|
|
115
|
+
}
|
|
116
|
+
if (sub == "doctor") {
|
|
117
|
+
return cmdDoctor()
|
|
118
|
+
}
|
|
119
|
+
if (sub == "check") {
|
|
120
|
+
return cmdCheck()
|
|
121
|
+
}
|
|
122
|
+
if (sub == "sync") {
|
|
123
|
+
return cmdSync(args)
|
|
124
|
+
}
|
|
125
|
+
eprintln("未知子命令: ${sub}")
|
|
126
|
+
println("")
|
|
127
|
+
usage()
|
|
128
|
+
return 1
|
|
129
|
+
}
|