cj-tauri 2.0.0 → 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 +113 -99
- package/bin/cj-tauri.js +287 -287
- package/cjpm.toml +63 -52
- package/cli/cjpm.toml +22 -22
- package/cli/src/doctor.cj +308 -306
- package/cli/src/main.cj +129 -129
- package/cli/src/manifest.cj +632 -558
- package/cli/src/manifest_test.cj +87 -0
- package/cli/src/project.cj +770 -770
- package/cli/src/resolve.cj +348 -348
- package/cli/src/scaffold.cj +369 -369
- package/cli/src/sync.cj +526 -526
- package/cli/src/util.cj +168 -168
- package/cli/templates/app/README.md +51 -48
- package/cli/templates/app/assets/capabilities/default.json +7 -7
- package/cli/templates/app/assets/ui/index.html +120 -118
- package/cli/templates/app/cj-tauri.toml +32 -22
- package/cli/templates/app/cjpm.toml +34 -34
- package/cli/templates/app/src/main.cj +101 -90
- package/cli/templates/app-react/README.md +56 -56
- package/cli/templates/app-react/assets/capabilities/default.json +7 -7
- package/cli/templates/app-react/assets/ui/index.html +25 -25
- package/cli/templates/app-react/assets/ui/package.json +19 -19
- package/cli/templates/app-react/assets/ui/src/App.css +67 -67
- package/cli/templates/app-react/assets/ui/src/App.jsx +124 -124
- package/cli/templates/app-react/assets/ui/src/main.jsx +6 -6
- package/cli/templates/app-react/assets/ui/vite.config.js +24 -24
- package/cli/templates/app-react/cj-tauri.toml +33 -23
- package/cli/templates/app-react/cjpm.toml +34 -34
- package/cli/templates/app-react/src/main.cj +91 -91
- package/cli/templates/app-vue/README.md +56 -56
- package/cli/templates/app-vue/assets/capabilities/default.json +7 -7
- package/cli/templates/app-vue/assets/ui/index.html +25 -25
- package/cli/templates/app-vue/assets/ui/package.json +18 -18
- package/cli/templates/app-vue/assets/ui/src/App.vue +176 -176
- package/cli/templates/app-vue/assets/ui/src/main.js +4 -4
- package/cli/templates/app-vue/assets/ui/vite.config.js +24 -24
- package/cli/templates/app-vue/cj-tauri.toml +33 -23
- package/cli/templates/app-vue/cjpm.toml +34 -34
- package/cli/templates/app-vue/src/main.cj +91 -91
- package/cli/templates/ohos-skeleton/AppScope/app.json5 +13 -13
- package/cli/templates/ohos-skeleton/AppScope/resources/base/element/string.json +8 -8
- package/cli/templates/ohos-skeleton/AppScope/resources/base/media/layered_image.json +6 -6
- package/cli/templates/ohos-skeleton/README.md +84 -79
- package/cli/templates/ohos-skeleton/build-hap.sh +15 -0
- package/cli/templates/ohos-skeleton/build-profile.json5 +46 -46
- package/cli/templates/ohos-skeleton/entry/build-profile.json5 +26 -26
- package/cli/templates/ohos-skeleton/entry/cjpm.toml +51 -43
- package/cli/templates/ohos-skeleton/entry/hvigorfile.ts +6 -6
- package/cli/templates/ohos-skeleton/entry/oh-package.json5 +9 -9
- package/cli/templates/ohos-skeleton/entry/src/main/cangjie/ability_stage.cj +17 -17
- package/cli/templates/ohos-skeleton/entry/src/main/cangjie/app_host.cj +94 -94
- 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 -167
- package/cli/templates/ohos-skeleton/entry/src/main/cangjie/main_ability.cj +139 -139
- package/cli/templates/ohos-skeleton/entry/src/main/module.json5 +57 -49
- package/cli/templates/ohos-skeleton/entry/src/main/resources/base/element/color.json +8 -8
- package/cli/templates/ohos-skeleton/entry/src/main/resources/base/element/string.json +16 -16
- package/cli/templates/ohos-skeleton/entry/src/main/resources/base/media/layered_image.json +6 -6
- package/cli/templates/ohos-skeleton/entry/src/main/resources/base/profile/main_pages.json +2 -2
- package/cli/templates/ohos-skeleton/entry/src/main/resources/rawfile/capabilities.json +6 -6
- package/cli/templates/ohos-skeleton/entry/src/main/resources/rawfile/index.html +92 -92
- package/cli/templates/ohos-skeleton/hvigor/hvigor-config.json5 +5 -5
- package/cli/templates/ohos-skeleton/hvigorfile.ts +6 -6
- package/cli/templates/ohos-skeleton/oh-package.json5 +10 -10
- 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 -53
- package/prebuilt/linux-x64/cj-tauri +0 -0
- package/src/api_system.cj +67 -67
- package/src/app.cj +325 -969
- 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 -76
- package/src/arkweb_menu.cj +216 -0
- package/src/arkweb_script.cj +142 -142
- 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 -607
- package/src/host_arkweb.cj +924 -778
- package/src/host_webkit.cj +663 -570
- package/src/host_webview2.cj +663 -570
- 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 -62
- package/src/logging.cj +127 -127
- package/src/menu.cj +197 -197
- package/src/platform/platform_app_context.cj +77 -77
- package/src/platform/platform_assets.cj +33 -33
- package/src/platform/platform_discover.cj +176 -176
- package/src/platform/platform_env.cj +29 -29
- package/src/platform/platform_feature.cj +31 -31
- package/src/platform/platform_page_source.cj +87 -87
- package/src/platform/platform_target_info.cj +32 -32
- package/src/platform_host_provider.cj +87 -87
- package/src/plugin.cj +333 -333
- package/src/plugins/clipboard/plugin_clipboard.cj +152 -152
- 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 +158 -158
- package/src/plugins/notification/plugin_notification.cj +154 -154
- package/src/plugins/serial/plugin_serial.cj +458 -454
- package/src/plugins/serial/serial_bridge.cj +194 -194
- 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 +258 -258
- package/src/plugins/sqlite/plugin_sqlite.cj +705 -710
- package/src/plugins/sqlite/sqlite_ffi.cj +206 -211
- 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 -127
- package/src/tests/capability_test.cj +243 -243
- package/src/tests/dialog_spec_test.cj +73 -0
- package/src/tests/fake_host.cj +201 -201
- 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 -251
- 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 +605 -585
- 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/prebuilt/win32-x64/cj-tauri.exe +0 -0
- package/src/plugins/serial/serial_ohos_stub.cj +0 -61
- package/src/plugins/sqlite/sqlite_ohos_stub.cj +0 -91
package/cli/src/main.cj
CHANGED
|
@@ -1,129 +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(" 创建新项目(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
|
-
}
|
|
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
|
+
}
|