@morlay/dsh-desktop-shell 0.2.5 → 0.2.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 (51) hide show
  1. package/README.md +4 -4
  2. package/dist/{appconfig-BZ9wPROk.mjs → appconfig-CSZh3JG7.mjs} +2 -2
  3. package/dist/appconfig.d.mts +21 -0
  4. package/dist/appconfig.mjs +1 -2
  5. package/dist/{dshhome-Dp89FOr-.mjs → dshhome-DAJ9dkn2.mjs} +2 -2
  6. package/dist/dshhome.d.mts +6 -0
  7. package/dist/dshhome.mjs +1 -2
  8. package/dist/index.d.mts +6 -0
  9. package/dist/index.mjs +1050 -139
  10. package/dist/inline-packages.d.mts +14 -0
  11. package/dist/inline-packages.mjs +21 -0
  12. package/dist/official-BmgBsdhq.mjs +5 -0
  13. package/dist/official.d.mts +4 -0
  14. package/dist/official.mjs +1 -2
  15. package/dist/preload-app.cjs +5 -1
  16. package/dist/profile-project.d.mts +20 -0
  17. package/dist/profile-project.mjs +1 -2
  18. package/dist/{seed-BF71UAuI.mjs → seed-Bxr0BsCk.mjs} +52 -5
  19. package/dist/seed.d.mts +21 -0
  20. package/dist/seed.mjs +1 -2
  21. package/package.json +44 -22
  22. package/src/__tests__/developer-endpoint.spec.ts +17 -0
  23. package/src/__tests__/document-marks.spec.ts +42 -0
  24. package/src/__tests__/dshhome.spec.ts +108 -0
  25. package/src/__tests__/host-process.spec.ts +205 -0
  26. package/src/__tests__/ipc.spec.ts +39 -0
  27. package/src/__tests__/profile-project.spec.ts +204 -0
  28. package/src/__tests__/seed-profile.spec.ts +189 -0
  29. package/src/__tests__/shell-env.spec.ts +131 -0
  30. package/src/__tests__/shell-import-boundary.spec.ts +69 -0
  31. package/src/__tests__/stream-uplink.spec.ts +49 -0
  32. package/src/appconfig.ts +79 -0
  33. package/src/developer-endpoint.ts +30 -0
  34. package/src/developer-menu.ts +198 -0
  35. package/src/directory-picker.ts +37 -0
  36. package/src/document-marks.ts +58 -0
  37. package/src/dshhome.ts +29 -0
  38. package/src/electron.ts +33 -0
  39. package/src/host-process.ts +533 -0
  40. package/src/index.ts +716 -0
  41. package/src/inline-packages.ts +18 -0
  42. package/src/ipc.ts +58 -0
  43. package/src/keybindings.ts +35 -0
  44. package/src/official.ts +8 -0
  45. package/src/preload-app.ts +147 -0
  46. package/src/profile-project.ts +138 -0
  47. package/src/seed.ts +183 -0
  48. package/src/shell-env.ts +31 -0
  49. package/src/shortcuts.ts +236 -0
  50. package/src/stream-uplink.ts +41 -0
  51. 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
- 它**不单独跑**——启动与打包它的是 [`@morlay/dsh-desktopify`](../dsh-desktopify/README.md):
7
+ 它**不单独跑**——启动与打包它的是 [`@local/dshdev`](../../../devpackages/dshdev/README.md):
8
8
 
9
- - `dsh-desktopify dev` 以**本包目录**为 Electron app 启动(Electron 按本包清单的 `main` 找到 `dist/index.mjs`);
10
- - `dsh-desktopify bundle` 把本包的 `dist/` 复制成最小壳 app 目录再交给 electron-builder。
9
+ - `dshdev dev` 以**本包目录**为 Electron app 启动(Electron 按本包清单的 `main` 找到 `dist/index.mjs`);
10
+ - `dshdev bundle` 把本包的 `dist/` 复制成最小壳 app 目录再交给 electron-builder。
11
11
 
12
- 出口面、依赖边界与拆分理由见[设计 壳独立成包](./.agents/designs/20260924-壳独立成包.md);传输、启动链与平台标记见[设计 桌面无端口传输与窗口对齐](../dsh-desktopify/.agents/designs/20260920-桌面无端口传输与窗口对齐.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.dshHome !== "xdg" && value.dshHome !== "env" && typeof value.dshHome !== "string") throw new Error(`dsh desktop: invalid shell configuration ${path}`);
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
- dshHome: value.dshHome,
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
@@ -1,2 +1 @@
1
- import { i as writeAppConfig, n as PROFILE_PATCH_NAME, r as loadAppConfig, t as PROFILE_NAME } from "./appconfig-BZ9wPROk.mjs";
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: dshHome must be xdg, env, or an absolute path, got ${JSON.stringify(spec)}`);
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.dshHome);
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
- import { n as resolveDshHome, r as xdgDataHome, t as resolveConfiguredHome } from "./dshhome-Dp89FOr-.mjs";
2
- export { resolveConfiguredHome, resolveDshHome, xdgDataHome };
1
+ export { t as resolveConfiguredHome, n as resolveDshHome, r as xdgDataHome } from "./dshhome-DAJ9dkn2.mjs";
@@ -0,0 +1,6 @@
1
+ //#region src/index.d.ts
2
+ declare global {
3
+ /** 壳的包根:由引导(`bootstrap.mjs`,它就在包根)写入;发布包里没有引导时为 undefined。 */
4
+ var __DSH_SHELL_ROOT__: string | undefined;
5
+ }
6
+ export {};