cj-tauri 2.0.0 → 2.1.1
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 +206 -139
- 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 +643 -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 +638 -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 +3745 -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/src/api_system.cj +67 -67
- package/src/app.cj +335 -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 +401 -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 +130 -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 +563 -487
- package/src/tests/logging_test.cj +62 -62
- package/src/tests/platform_contract_test.cj +264 -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/src/hotkey.cj
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
package cjTauri
|
|
2
|
-
|
|
3
|
-
import std.collection.*
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* 全局快捷键的**纯仓颉模型**(RFC-003 第 5 期首个落地项):只描述意图,不含任何平台概念。
|
|
7
|
-
*
|
|
8
|
-
* 分层与菜单同构(RFC-002 §5.1):模型(本文件)→ `WebViewHost.setGlobalHotkeys()`
|
|
9
|
-
* → C 桥 `cj_bridge_set_global_hotkeys` → 平台翻译层(Linux = X11 grab;Windows 桩如实报暂不支持)。
|
|
10
|
-
*
|
|
11
|
-
* wire 格式(与 `native/core/bridge_core.h` 的 `pending_hotkeys` 注释逐字对应):
|
|
12
|
-
* 一行一条 `<accel>:<id>`,如 `Ctrl+Alt+C:show-panel`。accel 的修饰键只有四个约定名
|
|
13
|
-
* (Ctrl / Alt / Shift / Super),键名是单字符或 F1..F12 / Enter / Esc 等常用键——
|
|
14
|
-
* 平台侧解析不了的那条整行丢弃并出声,而不是静默吞掉。
|
|
15
|
-
*
|
|
16
|
-
* 文本来自**应用作者**(不是页面可控输入),这里不做转义;id 里出现 `:` 或换行是应用自己的错,
|
|
17
|
-
* toWire 不出口这种行(防御性跳过并留一句 stderr 的成本太高,直接约定 + 文档)。
|
|
18
|
-
*/
|
|
19
|
-
public class Hotkey {
|
|
20
|
-
public let accel: String
|
|
21
|
-
public let id: String
|
|
22
|
-
|
|
23
|
-
public init(accel: String, id: String) {
|
|
24
|
-
this.accel = accel
|
|
25
|
-
this.id = id
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/** 快捷键模型:注册表即整表替换(运行期再调 setGlobalHotkeys = 先注销旧表再注册新表) */
|
|
30
|
-
public class HotkeyModel {
|
|
31
|
-
public let keys: ArrayList<Hotkey>
|
|
32
|
-
|
|
33
|
-
public init(keys: ArrayList<Hotkey>) {
|
|
34
|
-
this.keys = keys
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/** 便捷构造:可变参数式逐条 add */
|
|
38
|
-
public init() {
|
|
39
|
-
this.keys = ArrayList<Hotkey>()
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
public func add(accel: String, id: String): HotkeyModel {
|
|
43
|
-
this.keys.add(Hotkey(accel, id))
|
|
44
|
-
return this
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/** 线路文本(每行 `<accel>:<id>`;空模型给空串 = 全部注销) */
|
|
48
|
-
public func toWire(): String {
|
|
49
|
-
let sb = StringBuilder()
|
|
50
|
-
var first = true
|
|
51
|
-
for (k in this.keys) {
|
|
52
|
-
if (k.accel.contains(":") || k.accel.contains("\n") ||
|
|
53
|
-
k.id.contains(":") || k.id.contains("\n")) {
|
|
54
|
-
continue // 非法字段整条出局:wire 的分隔符就是这两个字符
|
|
55
|
-
}
|
|
56
|
-
if (!first) {
|
|
57
|
-
sb.append("\n")
|
|
58
|
-
}
|
|
59
|
-
first = false
|
|
60
|
-
sb.append(k.accel)
|
|
61
|
-
sb.append(":")
|
|
62
|
-
sb.append(k.id)
|
|
63
|
-
}
|
|
64
|
-
return sb.toString()
|
|
65
|
-
}
|
|
66
|
-
}
|
|
1
|
+
package cjTauri
|
|
2
|
+
|
|
3
|
+
import std.collection.*
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 全局快捷键的**纯仓颉模型**(RFC-003 第 5 期首个落地项):只描述意图,不含任何平台概念。
|
|
7
|
+
*
|
|
8
|
+
* 分层与菜单同构(RFC-002 §5.1):模型(本文件)→ `WebViewHost.setGlobalHotkeys()`
|
|
9
|
+
* → C 桥 `cj_bridge_set_global_hotkeys` → 平台翻译层(Linux = X11 grab;Windows 桩如实报暂不支持)。
|
|
10
|
+
*
|
|
11
|
+
* wire 格式(与 `native/core/bridge_core.h` 的 `pending_hotkeys` 注释逐字对应):
|
|
12
|
+
* 一行一条 `<accel>:<id>`,如 `Ctrl+Alt+C:show-panel`。accel 的修饰键只有四个约定名
|
|
13
|
+
* (Ctrl / Alt / Shift / Super),键名是单字符或 F1..F12 / Enter / Esc 等常用键——
|
|
14
|
+
* 平台侧解析不了的那条整行丢弃并出声,而不是静默吞掉。
|
|
15
|
+
*
|
|
16
|
+
* 文本来自**应用作者**(不是页面可控输入),这里不做转义;id 里出现 `:` 或换行是应用自己的错,
|
|
17
|
+
* toWire 不出口这种行(防御性跳过并留一句 stderr 的成本太高,直接约定 + 文档)。
|
|
18
|
+
*/
|
|
19
|
+
public class Hotkey {
|
|
20
|
+
public let accel: String
|
|
21
|
+
public let id: String
|
|
22
|
+
|
|
23
|
+
public init(accel: String, id: String) {
|
|
24
|
+
this.accel = accel
|
|
25
|
+
this.id = id
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** 快捷键模型:注册表即整表替换(运行期再调 setGlobalHotkeys = 先注销旧表再注册新表) */
|
|
30
|
+
public class HotkeyModel {
|
|
31
|
+
public let keys: ArrayList<Hotkey>
|
|
32
|
+
|
|
33
|
+
public init(keys: ArrayList<Hotkey>) {
|
|
34
|
+
this.keys = keys
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** 便捷构造:可变参数式逐条 add */
|
|
38
|
+
public init() {
|
|
39
|
+
this.keys = ArrayList<Hotkey>()
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public func add(accel: String, id: String): HotkeyModel {
|
|
43
|
+
this.keys.add(Hotkey(accel, id))
|
|
44
|
+
return this
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** 线路文本(每行 `<accel>:<id>`;空模型给空串 = 全部注销) */
|
|
48
|
+
public func toWire(): String {
|
|
49
|
+
let sb = StringBuilder()
|
|
50
|
+
var first = true
|
|
51
|
+
for (k in this.keys) {
|
|
52
|
+
if (k.accel.contains(":") || k.accel.contains("\n") ||
|
|
53
|
+
k.id.contains(":") || k.id.contains("\n")) {
|
|
54
|
+
continue // 非法字段整条出局:wire 的分隔符就是这两个字符
|
|
55
|
+
}
|
|
56
|
+
if (!first) {
|
|
57
|
+
sb.append("\n")
|
|
58
|
+
}
|
|
59
|
+
first = false
|
|
60
|
+
sb.append(k.accel)
|
|
61
|
+
sb.append(":")
|
|
62
|
+
sb.append(k.id)
|
|
63
|
+
}
|
|
64
|
+
return sb.toString()
|
|
65
|
+
}
|
|
66
|
+
}
|