@intentic/machine 1.344.0 → 1.346.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.
Files changed (231) hide show
  1. package/README.md +185 -154
  2. package/dist/autostart/autostart.d.ts +0 -1
  3. package/dist/autostart/autostart.d.ts.map +1 -1
  4. package/dist/autostart/autostart.js +3 -9
  5. package/dist/autostart/autostart.js.map +1 -1
  6. package/dist/commands.d.ts.map +1 -1
  7. package/dist/commands.js +4 -21
  8. package/dist/commands.js.map +1 -1
  9. package/dist/device/commands.d.ts +8 -2
  10. package/dist/device/commands.d.ts.map +1 -1
  11. package/dist/device/commands.js +23 -9
  12. package/dist/device/commands.js.map +1 -1
  13. package/dist/device/connection.d.ts.map +1 -1
  14. package/dist/device/connection.js +27 -9
  15. package/dist/device/connection.js.map +1 -1
  16. package/dist/device/grant.d.ts +244 -1
  17. package/dist/device/grant.d.ts.map +1 -1
  18. package/dist/device/mcp.d.ts.map +1 -1
  19. package/dist/device/mcp.js +25 -8
  20. package/dist/device/mcp.js.map +1 -1
  21. package/dist/device/router.d.ts +469 -226
  22. package/dist/device/router.d.ts.map +1 -1
  23. package/dist/device/router.js +18 -10
  24. package/dist/device/router.js.map +1 -1
  25. package/dist/device/sandbox-rounds/keeper.d.ts +4 -1
  26. package/dist/device/sandbox-rounds/keeper.d.ts.map +1 -1
  27. package/dist/device/sandbox-rounds/keeper.js +13 -7
  28. package/dist/device/sandbox-rounds/keeper.js.map +1 -1
  29. package/dist/device/sandbox-rounds/sleep.d.ts +15 -2
  30. package/dist/device/sandbox-rounds/sleep.d.ts.map +1 -1
  31. package/dist/device/sandbox-rounds/sleep.js +68 -13
  32. package/dist/device/sandbox-rounds/sleep.js.map +1 -1
  33. package/dist/device/tools/agent.d.ts +15 -0
  34. package/dist/device/tools/agent.d.ts.map +1 -1
  35. package/dist/device/tools/agent.js +75 -19
  36. package/dist/device/tools/agent.js.map +1 -1
  37. package/dist/device/tools/android.d.ts +1 -1
  38. package/dist/device/tools/android.d.ts.map +1 -1
  39. package/dist/device/tools/android.js +17 -8
  40. package/dist/device/tools/android.js.map +1 -1
  41. package/dist/device/tools/browser.d.ts.map +1 -1
  42. package/dist/device/tools/browser.js +3 -5
  43. package/dist/device/tools/browser.js.map +1 -1
  44. package/dist/device/tools/ic-binary.d.ts +2 -1
  45. package/dist/device/tools/ic-binary.d.ts.map +1 -1
  46. package/dist/device/tools/ic-binary.js +34 -4
  47. package/dist/device/tools/ic-binary.js.map +1 -1
  48. package/dist/device/tools/os/settings.js +3 -3
  49. package/dist/device/tools/os/settings.js.map +1 -1
  50. package/dist/device/tools/programs/app-wait-tools.d.ts +12 -0
  51. package/dist/device/tools/programs/app-wait-tools.d.ts.map +1 -0
  52. package/dist/device/tools/programs/app-wait-tools.js +60 -0
  53. package/dist/device/tools/programs/app-wait-tools.js.map +1 -0
  54. package/dist/device/tools/programs/app-wait.d.ts +19 -0
  55. package/dist/device/tools/programs/app-wait.d.ts.map +1 -0
  56. package/dist/device/tools/programs/app-wait.js +89 -0
  57. package/dist/device/tools/programs/app-wait.js.map +1 -0
  58. package/dist/device/tools/programs/file-changes.d.ts +2 -0
  59. package/dist/device/tools/programs/file-changes.d.ts.map +1 -0
  60. package/dist/device/tools/programs/file-changes.js +19 -0
  61. package/dist/device/tools/programs/file-changes.js.map +1 -0
  62. package/dist/device/tools/programs/programs.d.ts +12 -0
  63. package/dist/device/tools/programs/programs.d.ts.map +1 -1
  64. package/dist/device/tools/programs/programs.js +13 -12
  65. package/dist/device/tools/programs/programs.js.map +1 -1
  66. package/dist/device/tools/programs/stop-all.d.ts +10 -0
  67. package/dist/device/tools/programs/stop-all.d.ts.map +1 -0
  68. package/dist/device/tools/programs/stop-all.js +52 -0
  69. package/dist/device/tools/programs/stop-all.js.map +1 -0
  70. package/dist/device/tools/sandboxes.d.ts +2 -0
  71. package/dist/device/tools/sandboxes.d.ts.map +1 -1
  72. package/dist/device/tools/sandboxes.js +11 -3
  73. package/dist/device/tools/sandboxes.js.map +1 -1
  74. package/dist/device/tools/shell.d.ts +1 -1
  75. package/dist/device/tools/shell.d.ts.map +1 -1
  76. package/dist/install.d.ts +15 -1
  77. package/dist/install.d.ts.map +1 -1
  78. package/dist/install.js +35 -6
  79. package/dist/install.js.map +1 -1
  80. package/dist/keyring/app-commands.d.ts +15 -0
  81. package/dist/keyring/app-commands.d.ts.map +1 -0
  82. package/dist/keyring/app-commands.js +247 -0
  83. package/dist/keyring/app-commands.js.map +1 -0
  84. package/dist/keyring/commands.d.ts +1 -1
  85. package/dist/keyring/commands.d.ts.map +1 -1
  86. package/dist/keyring/commands.js +26 -32
  87. package/dist/keyring/commands.js.map +1 -1
  88. package/dist/keyring/git-helper.d.ts +8 -0
  89. package/dist/keyring/git-helper.d.ts.map +1 -0
  90. package/dist/keyring/git-helper.js +60 -0
  91. package/dist/keyring/git-helper.js.map +1 -0
  92. package/dist/keyring/keyring-status.d.ts +8 -1
  93. package/dist/keyring/keyring-status.d.ts.map +1 -1
  94. package/dist/keyring/keyring-status.js +39 -4
  95. package/dist/keyring/keyring-status.js.map +1 -1
  96. package/dist/keyring/native-host-install.d.ts +28 -0
  97. package/dist/keyring/native-host-install.d.ts.map +1 -0
  98. package/dist/keyring/native-host-install.js +99 -0
  99. package/dist/keyring/native-host-install.js.map +1 -0
  100. package/dist/keyring/relay.d.ts +5 -1
  101. package/dist/keyring/relay.d.ts.map +1 -1
  102. package/dist/keyring/relay.js +16 -0
  103. package/dist/keyring/relay.js.map +1 -1
  104. package/dist/keyring/sandbox-push.d.ts +4 -0
  105. package/dist/keyring/sandbox-push.d.ts.map +1 -0
  106. package/dist/keyring/sandbox-push.js +21 -0
  107. package/dist/keyring/sandbox-push.js.map +1 -0
  108. package/dist/keyring/service.d.ts +11 -5
  109. package/dist/keyring/service.d.ts.map +1 -1
  110. package/dist/keyring/service.js +34 -51
  111. package/dist/keyring/service.js.map +1 -1
  112. package/dist/resident/resident.d.ts +1 -0
  113. package/dist/resident/resident.d.ts.map +1 -1
  114. package/dist/resident/resident.js +9 -1
  115. package/dist/resident/resident.js.map +1 -1
  116. package/dist/status.d.ts.map +1 -1
  117. package/dist/status.js +1 -8
  118. package/dist/status.js.map +1 -1
  119. package/dist/sync/binary/mutagen-binary.d.ts +4 -0
  120. package/dist/sync/binary/mutagen-binary.d.ts.map +1 -0
  121. package/dist/sync/binary/mutagen-binary.js +65 -0
  122. package/dist/sync/binary/mutagen-binary.js.map +1 -0
  123. package/dist/sync/commands.d.ts +1 -9
  124. package/dist/sync/commands.d.ts.map +1 -1
  125. package/dist/sync/commands.js +49 -84
  126. package/dist/sync/commands.js.map +1 -1
  127. package/dist/sync/config.d.ts +21 -25
  128. package/dist/sync/config.d.ts.map +1 -1
  129. package/dist/sync/config.js +76 -35
  130. package/dist/sync/config.js.map +1 -1
  131. package/dist/sync/endpoint.d.ts +1 -1
  132. package/dist/sync/endpoint.d.ts.map +1 -1
  133. package/dist/sync/endpoint.js +2 -3
  134. package/dist/sync/endpoint.js.map +1 -1
  135. package/dist/sync/folders.d.ts.map +1 -1
  136. package/dist/sync/folders.js.map +1 -1
  137. package/dist/sync/forget-command.js +1 -1
  138. package/dist/sync/forget-command.js.map +1 -1
  139. package/dist/sync/gone-watch.d.ts +1 -1
  140. package/dist/sync/gone-watch.d.ts.map +1 -1
  141. package/dist/sync/gone-watch.js +16 -40
  142. package/dist/sync/gone-watch.js.map +1 -1
  143. package/dist/sync/holds.d.ts +30 -0
  144. package/dist/sync/holds.d.ts.map +1 -0
  145. package/dist/sync/holds.js +117 -0
  146. package/dist/sync/holds.js.map +1 -0
  147. package/dist/sync/low-disk.d.ts +2 -9
  148. package/dist/sync/low-disk.d.ts.map +1 -1
  149. package/dist/sync/low-disk.js +10 -45
  150. package/dist/sync/low-disk.js.map +1 -1
  151. package/dist/sync/mirror.d.ts +2 -3
  152. package/dist/sync/mirror.d.ts.map +1 -1
  153. package/dist/sync/mirror.js +61 -160
  154. package/dist/sync/mirror.js.map +1 -1
  155. package/dist/sync/mutagen-env.d.ts +1 -3
  156. package/dist/sync/mutagen-env.d.ts.map +1 -1
  157. package/dist/sync/mutagen-env.js +2 -12
  158. package/dist/sync/mutagen-env.js.map +1 -1
  159. package/dist/sync/mutagen-move.d.ts +3 -1
  160. package/dist/sync/mutagen-move.d.ts.map +1 -1
  161. package/dist/sync/mutagen-move.js +31 -22
  162. package/dist/sync/mutagen-move.js.map +1 -1
  163. package/dist/sync/mutagen.d.ts +6 -12
  164. package/dist/sync/mutagen.d.ts.map +1 -1
  165. package/dist/sync/mutagen.js +17 -144
  166. package/dist/sync/mutagen.js.map +1 -1
  167. package/dist/sync/project/project-commands.d.ts +0 -3
  168. package/dist/sync/project/project-commands.d.ts.map +1 -1
  169. package/dist/sync/project/project-commands.js +5 -3
  170. package/dist/sync/project/project-commands.js.map +1 -1
  171. package/dist/sync/project/project-delivery.d.ts.map +1 -1
  172. package/dist/sync/project/project-delivery.js +5 -4
  173. package/dist/sync/project/project-delivery.js.map +1 -1
  174. package/dist/sync/project/project-transfer.d.ts +4 -0
  175. package/dist/sync/project/project-transfer.d.ts.map +1 -1
  176. package/dist/sync/project/project-transfer.js +9 -2
  177. package/dist/sync/project/project-transfer.js.map +1 -1
  178. package/dist/sync/report.d.ts.map +1 -1
  179. package/dist/sync/report.js +18 -11
  180. package/dist/sync/report.js.map +1 -1
  181. package/dist/sync/retire.d.ts.map +1 -1
  182. package/dist/sync/retire.js +1 -2
  183. package/dist/sync/retire.js.map +1 -1
  184. package/dist/sync/tunnel.d.ts +4 -3
  185. package/dist/sync/tunnel.d.ts.map +1 -1
  186. package/dist/sync/tunnel.js +107 -42
  187. package/dist/sync/tunnel.js.map +1 -1
  188. package/dist/sync/uninstall.d.ts.map +1 -1
  189. package/dist/sync/uninstall.js +4 -3
  190. package/dist/sync/uninstall.js.map +1 -1
  191. package/dist/sync/wake.d.ts +3 -0
  192. package/dist/sync/wake.d.ts.map +1 -0
  193. package/dist/sync/wake.js +43 -0
  194. package/dist/sync/wake.js.map +1 -0
  195. package/dist/uninstall/command.d.ts +3 -0
  196. package/dist/uninstall/command.d.ts.map +1 -0
  197. package/dist/uninstall/command.js +40 -0
  198. package/dist/uninstall/command.js.map +1 -0
  199. package/dist/uninstall/distros.d.ts +8 -0
  200. package/dist/uninstall/distros.d.ts.map +1 -0
  201. package/dist/uninstall/distros.js +103 -0
  202. package/dist/uninstall/distros.js.map +1 -0
  203. package/dist/uninstall/plan.d.ts +23 -0
  204. package/dist/uninstall/plan.d.ts.map +1 -0
  205. package/dist/uninstall/plan.js +71 -0
  206. package/dist/uninstall/plan.js.map +1 -0
  207. package/dist/uninstall/purge.d.ts +3 -0
  208. package/dist/uninstall/purge.d.ts.map +1 -0
  209. package/dist/uninstall/purge.js +79 -0
  210. package/dist/uninstall/purge.js.map +1 -0
  211. package/dist/uninstall/steps.d.ts +12 -0
  212. package/dist/uninstall/steps.d.ts.map +1 -0
  213. package/dist/uninstall/steps.js +200 -0
  214. package/dist/uninstall/steps.js.map +1 -0
  215. package/dist/uninstall/sweep.d.ts +12 -0
  216. package/dist/uninstall/sweep.d.ts.map +1 -0
  217. package/dist/uninstall/sweep.js +90 -0
  218. package/dist/uninstall/sweep.js.map +1 -0
  219. package/dist/uninstall/tally.d.ts +14 -0
  220. package/dist/uninstall/tally.d.ts.map +1 -0
  221. package/dist/uninstall/tally.js +25 -0
  222. package/dist/uninstall/tally.js.map +1 -0
  223. package/package.json +9 -9
  224. package/dist/sync/attach-commands.d.ts +0 -39
  225. package/dist/sync/attach-commands.d.ts.map +0 -1
  226. package/dist/sync/attach-commands.js +0 -163
  227. package/dist/sync/attach-commands.js.map +0 -1
  228. package/dist/sync/swap-pause.d.ts +0 -10
  229. package/dist/sync/swap-pause.d.ts.map +0 -1
  230. package/dist/sync/swap-pause.js +0 -29
  231. package/dist/sync/swap-pause.js.map +0 -1
@@ -0,0 +1,60 @@
1
+ import { runBounded } from "@intentic/base/process";
2
+ import { keyringPath } from "../release.js";
3
+ import { KeyringCliError } from "./flags.js";
4
+ const gitHelperValue = (path) => `!"${path.replaceAll("\\", "/")}" git-credential`;
5
+ const isOurs = (helper) => /intentic-keyring[^"]*"? git-credential$/u.test(helper);
6
+ const orderedHelpers = (existing, ours) => {
7
+ const others = existing.filter((helper) => !isOurs(helper));
8
+ const reset = others.lastIndexOf("");
9
+ return [...others.slice(0, reset + 1), ours, ...others.slice(reset + 1)];
10
+ };
11
+ const git = async (args) => {
12
+ const result = await runBounded("git", [...args], { timeoutMs: 20_000 });
13
+ return { code: result.exitCode, out: result.stdout.text, missing: result.spawnError !== undefined };
14
+ };
15
+ const helpers = async () => {
16
+ const listed = await git(["config", "--global", "--get-all", "credential.helper"]);
17
+ if (listed.missing) {
18
+ return undefined;
19
+ }
20
+ return listed.code === 0 ? listed.out.split(/\r?\n/u).filter((line, index, all) => line !== "" || index < all.length - 1) : [];
21
+ };
22
+ const write = async (list) => {
23
+ const cleared = await git(["config", "--global", "--unset-all", "credential.helper"]);
24
+ if (cleared.code !== 0 && cleared.code !== 5) {
25
+ throw new KeyringCliError("failed", "git would not change its credential helpers.");
26
+ }
27
+ for (const helper of list) {
28
+ const added = await git(["config", "--global", "--add", "credential.helper", helper]);
29
+ if (added.code !== 0) {
30
+ throw new KeyringCliError("failed", "git would not take the keyring as a credential helper.");
31
+ }
32
+ }
33
+ };
34
+ export const gitHelperStatus = async (path = keyringPath) => {
35
+ const list = await helpers();
36
+ return { available: list !== undefined, installed: list?.includes(gitHelperValue(path)) === true };
37
+ };
38
+ export const installGitHelper = async (path = keyringPath) => {
39
+ const list = await helpers();
40
+ if (list === undefined) {
41
+ throw new KeyringCliError("unavailable", "git is not installed here, so there is no credential helper to set.");
42
+ }
43
+ const ordered = orderedHelpers(list, gitHelperValue(path));
44
+ if (ordered.join("\n") !== list.join("\n")) {
45
+ await write(ordered);
46
+ }
47
+ return { available: true, installed: true };
48
+ };
49
+ export const uninstallGitHelper = async () => {
50
+ const list = await helpers();
51
+ if (list === undefined) {
52
+ return { available: false, installed: false };
53
+ }
54
+ const kept = list.filter((helper) => !isOurs(helper));
55
+ if (kept.length !== list.length) {
56
+ await write(kept);
57
+ }
58
+ return { available: true, installed: false };
59
+ };
60
+ //# sourceMappingURL=git-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-helper.js","sourceRoot":"","sources":["../../src/keyring/git-helper.ts"],"names":[],"mappings":"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"}
@@ -12,10 +12,17 @@ export interface AskpassAnswer {
12
12
  readonly path?: string;
13
13
  }
14
14
  export declare const readAskpassAnswer: () => Promise<AskpassAnswer>;
15
+ export interface KeyringSupport {
16
+ readonly canSetUp: boolean;
17
+ readonly why?: string;
18
+ readonly hello: boolean;
19
+ readonly platform: "windows" | "linux" | "darwin";
20
+ }
21
+ export declare const supportOf: (platform: NodeJS.Platform, env?: NodeJS.ProcessEnv, booted?: () => boolean) => Omit<KeyringSupport, "hello">;
15
22
  export interface KeyringStatusAnswer extends KeyringSummary {
16
23
  readonly ok: true;
17
24
  readonly askpass: AskpassAnswer;
18
- readonly hardened: boolean;
25
+ readonly support: KeyringSupport;
19
26
  }
20
27
  export declare const readKeyringStatus: () => Promise<KeyringStatusAnswer>;
21
28
  export declare const clock: (ms: number) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"keyring-status.d.ts","sourceRoot":"","sources":["../../src/keyring/keyring-status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAQ/E,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;CACjC;AAED,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,cAAc,CAKjE,CAAC;AAGF,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,aAAa,CAG/D,CAAC;AAGF,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACvD,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAEhC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,mBAAmB,CAGrE,CAAC;AAGF,eAAO,MAAM,KAAK,OAAQ,MAAM,KAAG,MAAsC,CAAC;AAG1E,eAAO,MAAM,WAAW,SAAU,iBAAiB,KAAG,IAYrD,CAAC;AAGF,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,iBAAiB,YAAa,cAAc,KAAG,iBAO3D,CAAC"}
1
+ {"version":3,"file":"keyring-status.d.ts","sourceRoot":"","sources":["../../src/keyring/keyring-status.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAQ/E,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;CACjC;AAED,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,cAAc,CAKjE,CAAC;AAGF,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,aAAa,CAG/D,CAAC;AAGF,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;CACrD;AAoBD,eAAO,MAAM,SAAS,aAAc,MAAM,CAAC,QAAQ,QAAO,MAAM,CAAC,UAAU,WAAwB,MAAM,OAAO,KAA6C,IAAI,CAAC,cAAc,EAAE,OAAO,CAiBxL,CAAC;AAUF,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACvD,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,mBAAmB,CAGrE,CAAC;AAGF,eAAO,MAAM,KAAK,OAAQ,MAAM,KAAG,MAAsC,CAAC;AAG1E,eAAO,MAAM,WAAW,SAAU,iBAAiB,KAAG,IAYrD,CAAC;AAGF,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,iBAAiB,YAAa,cAAc,KAAG,iBAO3D,CAAC"}
@@ -1,7 +1,9 @@
1
- import { KeyringUnavailable } from "@intentic/keyring";
1
+ import { existsSync } from "node:fs";
2
+ import { delimiter, join } from "node:path";
3
+ import { helloHere, KeyringUnavailable, NOT_ON_MAC, realRunner } from "@intentic/keyring";
2
4
  import { localZone, wallClockIn } from "@intentic/sandbox-contract/time/zone";
3
5
  import { askpassStatus } from "./askpass.js";
4
- import { hardenedHere, keyringInstalled, keyringState } from "./service.js";
6
+ import { keyringInstalled, keyringState } from "./service.js";
5
7
  export const readKeyringSummary = async () => {
6
8
  const state = await keyringState();
7
9
  const running = !(state instanceof KeyringUnavailable);
@@ -12,9 +14,42 @@ export const readAskpassAnswer = async () => {
12
14
  const status = await askpassStatus();
13
15
  return status.path === undefined ? { installed: status.installed } : { installed: status.installed, path: status.path };
14
16
  };
17
+ const LINUX_NEEDS = [
18
+ { program: "systemctl", what: "systemd" },
19
+ { program: "pkexec", what: "polkit (pkexec)" },
20
+ { program: "pkcheck", what: "polkit (pkcheck)" },
21
+ { program: "setfacl", what: "the acl tools (setfacl)" },
22
+ ];
23
+ const onPath = (program, env) => (env["PATH"] ?? "")
24
+ .split(delimiter)
25
+ .filter((dir) => dir !== "")
26
+ .some((dir) => existsSync(join(dir, program)));
27
+ export const supportOf = (platform, env = process.env, booted = () => existsSync("/run/systemd/system")) => {
28
+ if (platform === "win32") {
29
+ return { canSetUp: true, platform: "windows" };
30
+ }
31
+ if (platform === "darwin") {
32
+ return { canSetUp: false, why: NOT_ON_MAC, platform: "darwin" };
33
+ }
34
+ if (platform !== "linux") {
35
+ return { canSetUp: false, why: `Passwords' protected service is not built for ${platform}.`, platform: "linux" };
36
+ }
37
+ const missing = LINUX_NEEDS.filter((need) => !onPath(need.program, env)).map((need) => need.what);
38
+ if (!booted()) {
39
+ missing.unshift("systemd running as this computer's init");
40
+ }
41
+ return missing.length === 0
42
+ ? { canSetUp: true, platform: "linux" }
43
+ : { canSetUp: false, why: `Passwords' protected service needs ${missing.join(", ")}, which this computer does not have.`, platform: "linux" };
44
+ };
45
+ const readSupport = async (summary) => {
46
+ const base = supportOf(process.platform);
47
+ const hello = summary.state === undefined ? base.canSetUp && (await helloHere(realRunner)) : summary.state.unlock.includes("hello");
48
+ return { ...base, hello };
49
+ };
15
50
  export const readKeyringStatus = async () => {
16
- const [summary, askpass, hardened] = await Promise.all([readKeyringSummary(), readAskpassAnswer(), hardenedHere()]);
17
- return { ok: true, ...summary, askpass, hardened };
51
+ const [summary, askpass] = await Promise.all([readKeyringSummary(), readAskpassAnswer()]);
52
+ return { ok: true, ...summary, askpass, support: await readSupport(summary) };
18
53
  };
19
54
  export const clock = (ms) => wallClockIn(ms, localZone());
20
55
  export const keyringLine = (line) => {
@@ -1 +1 @@
1
- {"version":3,"file":"keyring-status.js","sourceRoot":"","sources":["../../src/keyring/keyring-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyring-status.js","sourceRoot":"","sources":["../../src/keyring/keyring-status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export interface BrowserPlace {
2
+ readonly name: string;
3
+ readonly windowsData: string;
4
+ readonly windowsKey: string;
5
+ readonly linuxConfig: string;
6
+ }
7
+ export interface NativeHostManifest {
8
+ readonly name: string;
9
+ readonly description: string;
10
+ readonly path: string;
11
+ readonly type: "stdio";
12
+ readonly allowed_origins: readonly string[];
13
+ }
14
+ export interface NativeHostPlace {
15
+ readonly platform: NodeJS.Platform;
16
+ readonly home: string;
17
+ readonly localAppData: string;
18
+ readonly bin: string;
19
+ readonly keyring: string;
20
+ }
21
+ export interface NativeHostState {
22
+ readonly browsers: readonly string[];
23
+ readonly ready: readonly string[];
24
+ }
25
+ export declare const nativeHostStatus: (place?: NativeHostPlace) => Promise<NativeHostState>;
26
+ export declare const installNativeHost: (place?: NativeHostPlace) => Promise<NativeHostState>;
27
+ export declare const uninstallNativeHost: (place?: NativeHostPlace) => Promise<NativeHostState>;
28
+ //# sourceMappingURL=native-host-install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-host-install.d.ts","sourceRoot":"","sources":["../../src/keyring/native-host-install.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC;AASD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAeD,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AAuBD,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAErC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,gBAAgB,WAAiB,eAAe,KAAiB,OAAO,CAAC,eAAe,CAcpG,CAAC;AAGF,eAAO,MAAM,iBAAiB,WAAiB,eAAe,KAAiB,OAAO,CAAC,eAAe,CA4BrG,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAAiB,eAAe,KAAiB,OAAO,CAAC,eAAe,CAWvG,CAAC"}
@@ -0,0 +1,99 @@
1
+ import { existsSync } from "node:fs";
2
+ import { mkdir, rm, writeFile } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import { runBounded } from "@intentic/base/process";
5
+ import { homeDir } from "@intentic/local-agent";
6
+ import { KEYRING_NATIVE_HOST } from "@intentic/sandbox-contract/schemas/keyring-native";
7
+ import { binDir } from "../config.js";
8
+ import { keyringPath } from "../release.js";
9
+ import { KeyringCliError } from "./flags.js";
10
+ const INTENTIC_EXTENSION_IDS = ["ipdmljdopicihjdlgiiplaiolngbinma"];
11
+ const BROWSERS = [
12
+ { name: "Chrome", windowsData: "Google\\Chrome\\User Data", windowsKey: "HKCU\\Software\\Google\\Chrome\\NativeMessagingHosts", linuxConfig: "google-chrome" },
13
+ { name: "Chromium", windowsData: "Chromium\\User Data", windowsKey: "HKCU\\Software\\Chromium\\NativeMessagingHosts", linuxConfig: "chromium" },
14
+ { name: "Brave", windowsData: "BraveSoftware\\Brave-Browser\\User Data", windowsKey: "HKCU\\Software\\BraveSoftware\\Brave-Browser\\NativeMessagingHosts", linuxConfig: "BraveSoftware/Brave-Browser" },
15
+ { name: "Edge", windowsData: "Microsoft\\Edge\\User Data", windowsKey: "HKCU\\Software\\Microsoft\\Edge\\NativeMessagingHosts", linuxConfig: "microsoft-edge" },
16
+ ];
17
+ const nativeHostManifest = (launcher) => ({
18
+ name: KEYRING_NATIVE_HOST,
19
+ description: "Intentic Passwords",
20
+ path: launcher,
21
+ type: "stdio",
22
+ allowed_origins: INTENTIC_EXTENSION_IDS.map((id) => `chrome-extension://${id}/`),
23
+ });
24
+ const launcherText = (platform, keyring) => platform === "win32" ? `@echo off\r\n"${keyring}" native-host %*\r\n` : `#!/bin/sh\nexec '${keyring.replaceAll("'", "'\\''")}' native-host "$@"\n`;
25
+ const herePlace = () => ({
26
+ platform: process.platform,
27
+ home: homeDir(),
28
+ localAppData: process.env["LOCALAPPDATA"] ?? join(homeDir(), "AppData", "Local"),
29
+ bin: binDir,
30
+ keyring: keyringPath,
31
+ });
32
+ const manifestFile = (place) => join(place.bin, `${KEYRING_NATIVE_HOST}.json`);
33
+ const launcherFile = (place) => join(place.bin, place.platform === "win32" ? "intentic-native-host.bat" : "intentic-native-host");
34
+ const linuxManifest = (place, browser) => join(place.home, ".config", browser.linuxConfig, "NativeMessagingHosts", `${KEYRING_NATIVE_HOST}.json`);
35
+ const installedBrowsers = (place = herePlace()) => BROWSERS.filter((browser) => existsSync(place.platform === "win32" ? join(place.localAppData, browser.windowsData) : join(place.home, ".config", browser.linuxConfig)));
36
+ const reg = async (args) => {
37
+ const result = await runBounded("reg.exe", [...args], { timeoutMs: 20_000 });
38
+ return { ok: result.exitCode === 0, out: result.stdout.text };
39
+ };
40
+ export const nativeHostStatus = async (place = herePlace()) => {
41
+ const browsers = installedBrowsers(place);
42
+ const ready = [];
43
+ for (const browser of browsers) {
44
+ if (place.platform === "win32") {
45
+ const read = await reg(["query", `${browser.windowsKey}\\${KEYRING_NATIVE_HOST}`, "/ve"]);
46
+ if (read.ok && read.out.includes(manifestFile(place)) && existsSync(manifestFile(place))) {
47
+ ready.push(browser.name);
48
+ }
49
+ }
50
+ else if (existsSync(linuxManifest(place, browser))) {
51
+ ready.push(browser.name);
52
+ }
53
+ }
54
+ return { browsers: browsers.map((browser) => browser.name), ready };
55
+ };
56
+ export const installNativeHost = async (place = herePlace()) => {
57
+ if (place.platform !== "win32" && place.platform !== "linux") {
58
+ throw new KeyringCliError("unavailable", `Passwords cannot reach a browser on ${place.platform} yet.`);
59
+ }
60
+ const browsers = installedBrowsers(place);
61
+ if (browsers.length === 0) {
62
+ throw new KeyringCliError("unavailable", "No Chrome, Chromium, Brave or Edge has been run by this user here.");
63
+ }
64
+ await mkdir(place.bin, { recursive: true });
65
+ const launcher = launcherFile(place);
66
+ await writeFile(launcher, launcherText(place.platform, place.keyring), { mode: 0o755 });
67
+ const manifest = `${JSON.stringify(nativeHostManifest(launcher), null, 2)}\n`;
68
+ if (place.platform === "win32") {
69
+ await writeFile(manifestFile(place), manifest);
70
+ for (const browser of browsers) {
71
+ const added = await reg(["add", `${browser.windowsKey}\\${KEYRING_NATIVE_HOST}`, "/ve", "/t", "REG_SZ", "/d", manifestFile(place), "/f"]);
72
+ if (!added.ok) {
73
+ throw new KeyringCliError("failed", `Windows would not register Passwords for ${browser.name}.`);
74
+ }
75
+ }
76
+ }
77
+ else {
78
+ for (const browser of browsers) {
79
+ const file = linuxManifest(place, browser);
80
+ await mkdir(join(file, ".."), { recursive: true });
81
+ await writeFile(file, manifest, { mode: 0o644 });
82
+ }
83
+ }
84
+ return await nativeHostStatus(place);
85
+ };
86
+ export const uninstallNativeHost = async (place = herePlace()) => {
87
+ for (const browser of BROWSERS) {
88
+ if (place.platform === "win32") {
89
+ await reg(["delete", `${browser.windowsKey}\\${KEYRING_NATIVE_HOST}`, "/f"]);
90
+ }
91
+ else {
92
+ await rm(linuxManifest(place, browser), { force: true });
93
+ }
94
+ }
95
+ await rm(manifestFile(place), { force: true });
96
+ await rm(launcherFile(place), { force: true });
97
+ return { browsers: installedBrowsers(place).map((browser) => browser.name), ready: [] };
98
+ };
99
+ //# sourceMappingURL=native-host-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-host-install.js","sourceRoot":"","sources":["../../src/keyring/native-host-install.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { KeyringCopies, KeyringInboxItem, KeyringInboxResult, KeyringReleaseResult, KeyringShares, KeyringSyncDeliverResultSchema, KeyringSyncDeliverSchema, KeyringSyncOutboxSchema, KeyringSyncPairResultSchema, KeyringSyncPairSchema, KeyringSyncState, KeyringTypeInput, KeyringTypeResult, SignedKeyringGrant } from "@intentic/sandbox-contract/schemas/keyring";
1
+ import type { KeyringCaptureItem, KeyringCaptureResult, KeyringCopies, KeyringInboxItem, KeyringInboxResult, KeyringNeed, KeyringNeedResult, KeyringPhoneFillResult, KeyringPhoneKeys, KeyringPhonePairResult, KeyringReleaseResult, KeyringShares, KeyringSyncDeliverResultSchema, KeyringSyncDeliverSchema, KeyringSyncOutboxSchema, KeyringSyncPairResultSchema, KeyringSyncPairSchema, KeyringSyncState, KeyringTypeInput, KeyringTypeResult, SignedKeyringGrant, SignedKeyringPhoneFill } from "@intentic/sandbox-contract/schemas/keyring";
2
2
  import type { z } from "zod";
3
3
  type SyncPair = z.infer<typeof KeyringSyncPairSchema>;
4
4
  type SyncPairResult = z.infer<typeof KeyringSyncPairResultSchema>;
@@ -18,5 +18,9 @@ export declare const keyringSyncState: (link: KeyringLink) => Promise<KeyringSyn
18
18
  export declare const keyringSyncPair: (link: KeyringLink, pair: SyncPair) => Promise<SyncPairResult>;
19
19
  export declare const keyringSyncOutbox: (link: KeyringLink) => Promise<SyncOutbox>;
20
20
  export declare const keyringSyncDeliver: (link: KeyringLink, deliver: SyncDeliver) => Promise<SyncDeliverResult>;
21
+ export declare const keyringCapture: (link: KeyringLink, item: KeyringCaptureItem) => Promise<KeyringCaptureResult>;
22
+ export declare const keyringNeed: (link: KeyringLink, need: KeyringNeed) => Promise<KeyringNeedResult>;
23
+ export declare const keyringPhonePair: (link: KeyringLink, phone: KeyringPhoneKeys) => Promise<KeyringPhonePairResult>;
24
+ export declare const keyringPhoneFill: (link: KeyringLink, fill: SignedKeyringPhoneFill) => Promise<KeyringPhoneFillResult>;
21
25
  export {};
22
26
  //# sourceMappingURL=relay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/keyring/relay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAElB,oBAAoB,EACpB,aAAa,EACb,8BAA8B,EAC9B,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EACrB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACtD,KAAK,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAClE,KAAK,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC1D,KAAK,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC5D,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAYxE,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAwCD,eAAO,MAAM,aAAa,SAAgB,WAAW,KAAG,OAAO,CAAC,aAAa,CAkB5E,CAAC;AAEF,eAAO,MAAM,cAAc,SAAgB,WAAW,SAAS,kBAAkB,KAAG,OAAO,CAAC,oBAAoB,CAG/G,CAAC;AAEF,eAAO,MAAM,WAAW,SAAgB,WAAW,SAAS,gBAAgB,KAAG,OAAO,CAAC,iBAAiB,CAGvG,CAAC;AAIF,eAAO,MAAM,YAAY,SAAgB,WAAW,QAAQ,gBAAgB,KAAG,OAAO,CAAC,kBAAkB,CAUxG,CAAC;AAIF,eAAO,MAAM,aAAa,SAAgB,WAAW,KAAG,OAAO,CAAC,aAAa,CAS5E,CAAC;AAGF,eAAO,MAAM,gBAAgB,SAAgB,WAAW,KAAG,OAAO,CAAC,gBAAgB,CASlF,CAAC;AAEF,eAAO,MAAM,eAAe,SAAgB,WAAW,QAAQ,QAAQ,KAAG,OAAO,CAAC,cAAc,CAG/F,CAAC;AAEF,eAAO,MAAM,iBAAiB,SAAgB,WAAW,KAAG,OAAO,CAAC,UAAU,CAS7E,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAgB,WAAW,WAAW,WAAW,KAAG,OAAO,CAAC,iBAAiB,CAS3G,CAAC"}
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/keyring/relay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EAEtB,oBAAoB,EACpB,aAAa,EACb,8BAA8B,EAC9B,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACzB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACtD,KAAK,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAClE,KAAK,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC1D,KAAK,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC5D,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAYxE,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAwCD,eAAO,MAAM,aAAa,SAAgB,WAAW,KAAG,OAAO,CAAC,aAAa,CAkB5E,CAAC;AAEF,eAAO,MAAM,cAAc,SAAgB,WAAW,SAAS,kBAAkB,KAAG,OAAO,CAAC,oBAAoB,CAG/G,CAAC;AAEF,eAAO,MAAM,WAAW,SAAgB,WAAW,SAAS,gBAAgB,KAAG,OAAO,CAAC,iBAAiB,CAGvG,CAAC;AAIF,eAAO,MAAM,YAAY,SAAgB,WAAW,QAAQ,gBAAgB,KAAG,OAAO,CAAC,kBAAkB,CAUxG,CAAC;AAIF,eAAO,MAAM,aAAa,SAAgB,WAAW,KAAG,OAAO,CAAC,aAAa,CAS5E,CAAC;AAGF,eAAO,MAAM,gBAAgB,SAAgB,WAAW,KAAG,OAAO,CAAC,gBAAgB,CASlF,CAAC;AAEF,eAAO,MAAM,eAAe,SAAgB,WAAW,QAAQ,QAAQ,KAAG,OAAO,CAAC,cAAc,CAG/F,CAAC;AAEF,eAAO,MAAM,iBAAiB,SAAgB,WAAW,KAAG,OAAO,CAAC,UAAU,CAS7E,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAgB,WAAW,WAAW,WAAW,KAAG,OAAO,CAAC,iBAAiB,CAS3G,CAAC;AAMF,eAAO,MAAM,cAAc,SAAgB,WAAW,QAAQ,kBAAkB,KAAG,OAAO,CAAC,oBAAoB,CAG9G,CAAC;AAEF,eAAO,MAAM,WAAW,SAAgB,WAAW,QAAQ,WAAW,KAAG,OAAO,CAAC,iBAAiB,CAGjG,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAgB,WAAW,SAAS,gBAAgB,KAAG,OAAO,CAAC,sBAAsB,CAGjH,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAgB,WAAW,QAAQ,sBAAsB,KAAG,OAAO,CAAC,sBAAsB,CAGtH,CAAC"}
@@ -101,4 +101,20 @@ export const keyringSyncDeliver = async (link, deliver) => {
101
101
  }
102
102
  return { accepted: answer.accepted };
103
103
  };
104
+ export const keyringCapture = async (link, item) => {
105
+ const answer = await ask(link, { op: "capture", item, sandbox: link.sandboxUrl });
106
+ return answer instanceof KeyringUnavailable ? noKeyring(answer) : answer;
107
+ };
108
+ export const keyringNeed = async (link, need) => {
109
+ const answer = await ask(link, { op: "need", sandbox: link.sandboxUrl, need });
110
+ return answer instanceof KeyringUnavailable ? noKeyring(answer) : answer;
111
+ };
112
+ export const keyringPhonePair = async (link, phone) => {
113
+ const answer = await ask(link, { op: "phone-pair", sandbox: link.sandboxUrl, phone });
114
+ return answer instanceof KeyringUnavailable ? noKeyring(answer) : answer;
115
+ };
116
+ export const keyringPhoneFill = async (link, fill) => {
117
+ const answer = await ask(link, { op: "phone-fill", sandbox: link.sandboxUrl, fill });
118
+ return answer instanceof KeyringUnavailable ? noKeyring(answer) : answer;
119
+ };
104
120
  //# sourceMappingURL=relay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay.js","sourceRoot":"","sources":["../../src/keyring/relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay.js","sourceRoot":"","sources":["../../src/keyring/relay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type HostLink } from "../device/config.js";
2
+ export declare const linksToTell: <Link extends Pick<HostLink, "sandboxUrl">>(links: readonly Link[], sandboxUrl: string | undefined) => readonly Link[];
3
+ export declare const pushKeyringChanged: (sandboxUrl?: string) => Promise<void>;
4
+ //# sourceMappingURL=sandbox-push.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-push.d.ts","sourceRoot":"","sources":["../../src/keyring/sandbox-push.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAoB,MAAM,qBAAqB,CAAC;AActE,eAAO,MAAM,WAAW,GAAI,IAAI,SAAS,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,SAAS,IAAI,EAAE,cAAc,MAAM,GAAG,SAAS,KAAG,SAAS,IAAI,EACtC,CAAC;AAYxG,eAAO,MAAM,kBAAkB,gBAAuB,MAAM,KAAG,OAAO,CAAC,IAAI,CAI1E,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { hostKeyringChangedUrl } from "@intentic/sandbox-contract/protocol/doors/host-protocol";
2
+ import { readDeviceConfig } from "../device/config.js";
3
+ const PUSH_TIMEOUT_MS = 3_000;
4
+ const sameSandbox = (left, right) => {
5
+ const a = URL.parse(left);
6
+ const b = URL.parse(right);
7
+ return a !== null && b !== null && a.origin === b.origin && a.pathname.replace(/\/+$/u, "") === b.pathname.replace(/\/+$/u, "");
8
+ };
9
+ export const linksToTell = (links, sandboxUrl) => sandboxUrl === undefined ? links : links.filter((link) => sameSandbox(link.sandboxUrl, sandboxUrl));
10
+ const tell = async (link) => {
11
+ await fetch(hostKeyringChangedUrl(link.sandboxUrl), {
12
+ method: "POST",
13
+ headers: { authorization: `Bearer ${link.token}` },
14
+ signal: AbortSignal.timeout(PUSH_TIMEOUT_MS),
15
+ }).catch(() => undefined);
16
+ };
17
+ export const pushKeyringChanged = async (sandboxUrl) => {
18
+ const config = await readDeviceConfig().catch(() => undefined);
19
+ await Promise.all(linksToTell(config?.links ?? [], sandboxUrl).map(tell));
20
+ };
21
+ //# sourceMappingURL=sandbox-push.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-push.js","sourceRoot":"","sources":["../../src/keyring/sandbox-push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAChG,OAAO,EAAiB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAKtE,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,KAAa,EAAW,EAAE;IACzD,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACpI,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,WAAW,GAAG,CAA4C,KAAsB,EAAE,UAA8B,EAAmB,EAAE,CAC9I,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AAGxG,MAAM,IAAI,GAAG,KAAK,EAAE,IAAc,EAAiB,EAAE;IACjD,MAAM,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;QAChD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,EAAE;QAClD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC;KAE/C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,UAAmB,EAAiB,EAAE;IAE3E,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9E,CAAC,CAAC"}
@@ -7,8 +7,13 @@ export declare const keyringState: (timeoutMs?: number) => Promise<KeyringStateA
7
7
  export declare const localKeyringBuild: (from?: string) => string | undefined;
8
8
  export declare const stageKeyring: (version: string, log: Log) => Promise<string>;
9
9
  export declare const linkAskpass: () => Promise<"linked" | "copied">;
10
- export declare const KEYRING_SERVICE = "IntenticKeyring";
11
- export declare const hardenedHere: () => Promise<boolean>;
10
+ export declare const serviceHere: () => Promise<boolean>;
11
+ export declare const NEEDS_ADMIN = "Passwords needs an administrator's approval once, to install its protected service. Nothing was changed.";
12
+ export declare const elevatedCommand: (args: readonly string[], platform?: NodeJS.Platform) => {
13
+ readonly command: string;
14
+ readonly args: readonly string[];
15
+ };
16
+ export declare const approvalRefused: (exitCode: number | null, said: string, platform?: NodeJS.Platform) => boolean;
12
17
  export declare const keyringPid: () => Promise<number | undefined>;
13
18
  export declare const startKeyring: (log: Log) => Promise<{
14
19
  readonly autostart: AutostartKind;
@@ -32,13 +37,14 @@ export type KeyringUpgrade = {
32
37
  readonly refusal: string;
33
38
  };
34
39
  export declare const upgradeKeyring: (version: string, log: Log) => Promise<KeyringUpgrade>;
35
- export declare const hardenKeyring: (log: Log) => Promise<{
36
- readonly service: string;
40
+ export declare const ensureService: (log: Log) => Promise<{
37
41
  readonly autostart: AutostartKind;
42
+ readonly state: KeyringStateAnswer;
43
+ readonly installedNow: boolean;
38
44
  }>;
39
45
  export declare const uninstallKeyring: (log: Log) => Promise<{
40
46
  readonly removed: readonly string[];
41
47
  readonly vault: string;
42
- readonly hardened: boolean;
48
+ readonly service: boolean;
43
49
  }>;
44
50
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/keyring/service.ts"],"names":[],"mappings":"AAQA,OAAO,EAAoD,KAAK,eAAe,EAAE,kBAAkB,EAAc,MAAM,mBAAmB,CAAC;AAC3I,OAAO,EAAE,KAAK,aAAa,EAAiD,KAAK,GAAG,EAA8B,MAAM,uBAAuB,CAAC;AAEhJ,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAyBrF,eAAO,MAAM,gBAAgB,QAAO,OAAkC,CAAC;AAEvE,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;AAG1D,eAAO,MAAM,YAAY,eAAqB,MAAM,KAAsB,OAAO,CAAC,kBAAkB,GAAG,kBAAkB,CASxH,CAAC;AAoBF,eAAO,MAAM,iBAAiB,UAAU,MAAM,KAAqB,MAAM,GAAG,SAU3E,CAAC;AAsBF,eAAO,MAAM,YAAY,YAAmB,MAAM,OAAO,GAAG,KAAG,OAAO,CAAC,MAAM,CAyC5E,CAAC;AAOF,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAa/D,CAAC;AAKF,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAMjD,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,OAAO,CAUpD,CAAC;AA4BF,eAAO,MAAM,UAAU,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAsC,CAAC;AAMrG,eAAO,MAAM,YAAY,QAAe,GAAG,KAAG,OAAO,CAAC;IAAE,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,CAsB9H,CAAC;AAGF,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAM9D,CAAC;AAIF,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACzC;AAMD,eAAO,MAAM,cAAc,YAAmB,MAAM,OAAO,GAAG,KAAG,OAAO,CAAC,gBAAgB,CAOxF,CAAC;AAIF,MAAM,MAAM,cAAc,GACpB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC7F;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAS1F,eAAO,MAAM,cAAc,YAAmB,MAAM,OAAO,GAAG,KAAG,OAAO,CAAC,cAAc,CA0CtF,CAAC;AAQF,eAAO,MAAM,aAAa,QAAe,GAAG,KAAG,OAAO,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;CAAE,CA0BrH,CAAC;AAQF,eAAO,MAAM,gBAAgB,QAAe,GAAG,KAAG,OAAO,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CA2BpJ,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/keyring/service.ts"],"names":[],"mappings":"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"}