@morlay/dsh-desktop-shell 0.2.4 → 0.2.6
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 +4 -4
- package/dist/{appconfig-BZ9wPROk.mjs → appconfig-CSZh3JG7.mjs} +2 -2
- package/dist/appconfig.d.mts +21 -0
- package/dist/appconfig.mjs +1 -2
- package/dist/{dshhome-Dp89FOr-.mjs → dshhome-DAJ9dkn2.mjs} +2 -2
- package/dist/dshhome.d.mts +6 -0
- package/dist/dshhome.mjs +1 -2
- package/dist/index.d.mts +6 -0
- package/dist/index.mjs +1050 -139
- package/dist/inline-packages.d.mts +14 -0
- package/dist/inline-packages.mjs +21 -0
- package/dist/official-BmgBsdhq.mjs +5 -0
- package/dist/official.d.mts +4 -0
- package/dist/official.mjs +1 -2
- package/dist/preload-app.cjs +5 -1
- package/dist/profile-project.d.mts +20 -0
- package/dist/profile-project.mjs +1 -2
- package/dist/{seed-BF71UAuI.mjs → seed-Bxr0BsCk.mjs} +52 -5
- package/dist/seed.d.mts +21 -0
- package/dist/seed.mjs +1 -2
- package/package.json +42 -21
- package/src/__tests__/developer-endpoint.spec.ts +17 -0
- package/src/__tests__/document-marks.spec.ts +42 -0
- package/src/__tests__/dshhome.spec.ts +108 -0
- package/src/__tests__/host-process.spec.ts +205 -0
- package/src/__tests__/ipc.spec.ts +39 -0
- package/src/__tests__/profile-project.spec.ts +204 -0
- package/src/__tests__/seed-profile.spec.ts +189 -0
- package/src/__tests__/shell-env.spec.ts +131 -0
- package/src/__tests__/shell-import-boundary.spec.ts +69 -0
- package/src/__tests__/stream-uplink.spec.ts +49 -0
- package/src/appconfig.ts +79 -0
- package/src/developer-endpoint.ts +30 -0
- package/src/developer-menu.ts +198 -0
- package/src/directory-picker.ts +37 -0
- package/src/document-marks.ts +58 -0
- package/src/dshhome.ts +29 -0
- package/src/electron.ts +33 -0
- package/src/host-process.ts +533 -0
- package/src/index.ts +716 -0
- package/src/inline-packages.ts +18 -0
- package/src/ipc.ts +58 -0
- package/src/keybindings.ts +35 -0
- package/src/official.ts +8 -0
- package/src/preload-app.ts +147 -0
- package/src/profile-project.ts +138 -0
- package/src/seed.ts +183 -0
- package/src/shell-env.ts +31 -0
- package/src/shortcuts.ts +236 -0
- package/src/stream-uplink.ts +41 -0
- package/dist/official-Cz9Mry1n.mjs +0 -167
package/README.md
CHANGED
|
@@ -4,9 +4,9 @@ dsh 桌面应用的 **Electron 壳**:服务应用自己的 `<name>://` 协议
|
|
|
4
4
|
|
|
5
5
|
## 用法
|
|
6
6
|
|
|
7
|
-
它**不单独跑**——启动与打包它的是 [`@
|
|
7
|
+
它**不单独跑**——启动与打包它的是 [`@local/dshdev`](../../../devpackages/dshdev/README.md):
|
|
8
8
|
|
|
9
|
-
- `
|
|
10
|
-
- `
|
|
9
|
+
- `dshdev dev` 以**本包目录**为 Electron app 启动(Electron 按本包清单的 `main` 找到 `dist/index.mjs`);
|
|
10
|
+
- `dshdev bundle` 把本包的 `dist/` 复制成最小壳 app 目录再交给 electron-builder。
|
|
11
11
|
|
|
12
|
-
出口面、依赖边界与拆分理由见[设计 壳独立成包](./.agents/designs/20260924-壳独立成包.md);传输、启动链与平台标记见[设计
|
|
12
|
+
出口面、依赖边界与拆分理由见[设计 壳独立成包](./.agents/designs/20260924-壳独立成包.md);传输、启动链与平台标记见[设计 桌面运行形态与窗口对齐](../dsh-desktop-host/.agents/designs/20260920-桌面运行形态与窗口对齐.md)。
|
|
@@ -21,14 +21,14 @@ function numberOr(value, fallback) {
|
|
|
21
21
|
async function loadAppConfig(exeDir) {
|
|
22
22
|
const path = join(exeDir, "appconfig.json");
|
|
23
23
|
const value = JSON.parse(await readFile(path, "utf8"));
|
|
24
|
-
if (!isRecord(value) || typeof value.name !== "string" || value.name === "" || typeof value.displayName !== "string" || value.displayName === "" || typeof value.id !== "string" || value.id === "" || typeof value.version !== "string" || value.version === "" || value.profile !== "desktop" || value.
|
|
24
|
+
if (!isRecord(value) || typeof value.name !== "string" || value.name === "" || typeof value.displayName !== "string" || value.displayName === "" || typeof value.id !== "string" || value.id === "" || typeof value.version !== "string" || value.version === "" || value.profile !== "desktop" || value.dataDir !== "xdg" && value.dataDir !== "env" && typeof value.dataDir !== "string") throw new Error(`dsh desktop: invalid shell configuration ${path}`);
|
|
25
25
|
return {
|
|
26
26
|
name: value.name,
|
|
27
27
|
displayName: value.displayName,
|
|
28
28
|
id: value.id,
|
|
29
29
|
version: value.version,
|
|
30
30
|
profile: PROFILE_NAME,
|
|
31
|
-
|
|
31
|
+
dataDir: value.dataDir,
|
|
32
32
|
window: windowConfig(value.window)
|
|
33
33
|
};
|
|
34
34
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/appconfig.d.ts
|
|
2
|
+
export declare const PROFILE_NAME = "desktop";
|
|
3
|
+
export declare const PROFILE_PATCH_NAME = "cordis.patch.yml";
|
|
4
|
+
export interface AppWindowConfig {
|
|
5
|
+
readonly width: number;
|
|
6
|
+
readonly height: number;
|
|
7
|
+
readonly minWidth: number;
|
|
8
|
+
readonly minHeight: number;
|
|
9
|
+
}
|
|
10
|
+
export interface AppConfig {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly displayName: string;
|
|
13
|
+
readonly id: string;
|
|
14
|
+
readonly version: string;
|
|
15
|
+
readonly profile: typeof PROFILE_NAME;
|
|
16
|
+
readonly dataDir: string;
|
|
17
|
+
readonly window: AppWindowConfig;
|
|
18
|
+
}
|
|
19
|
+
export declare function loadAppConfig(exeDir: string): Promise<AppConfig>;
|
|
20
|
+
export declare function writeAppConfig(exeDir: string, config: AppConfig): Promise<void>;
|
|
21
|
+
//#endregion
|
package/dist/appconfig.mjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { PROFILE_NAME, PROFILE_PATCH_NAME, loadAppConfig, writeAppConfig };
|
|
1
|
+
export { t as PROFILE_NAME, n as PROFILE_PATCH_NAME, r as loadAppConfig, i as writeAppConfig } from "./appconfig-CSZh3JG7.mjs";
|
|
@@ -10,13 +10,13 @@ function xdgDataHome() {
|
|
|
10
10
|
function resolveConfiguredHome(name, spec) {
|
|
11
11
|
if (spec === "env") return void 0;
|
|
12
12
|
if (spec === "xdg") return join(xdgDataHome(), name);
|
|
13
|
-
if (!isAbsolute(spec)) throw new Error(`dsh desktop:
|
|
13
|
+
if (!isAbsolute(spec)) throw new Error(`dsh desktop: dataDir must be xdg, env, or an absolute path, got ${JSON.stringify(spec)}`);
|
|
14
14
|
return spec;
|
|
15
15
|
}
|
|
16
16
|
function resolveDshHome(config) {
|
|
17
17
|
const override = process.env.DSH_APP_DSH_HOME;
|
|
18
18
|
if (override !== void 0 && override.trim() !== "") return resolve(override);
|
|
19
|
-
return resolveConfiguredHome(config.name, config.
|
|
19
|
+
return resolveConfiguredHome(config.name, config.dataDir);
|
|
20
20
|
}
|
|
21
21
|
//#endregion
|
|
22
22
|
export { resolveDshHome as n, xdgDataHome as r, resolveConfiguredHome as t };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AppConfig } from "./appconfig.mjs";
|
|
2
|
+
//#region src/dshhome.d.ts
|
|
3
|
+
export declare function xdgDataHome(): string;
|
|
4
|
+
export declare function resolveConfiguredHome(name: string, spec: string): string | undefined;
|
|
5
|
+
export declare function resolveDshHome(config: AppConfig): string | undefined;
|
|
6
|
+
//#endregion
|
package/dist/dshhome.mjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { resolveConfiguredHome, resolveDshHome, xdgDataHome };
|
|
1
|
+
export { t as resolveConfiguredHome, n as resolveDshHome, r as xdgDataHome } from "./dshhome-DAJ9dkn2.mjs";
|