@intentic/keyring 1.344.0 → 1.345.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 +141 -45
  2. package/dist/address.d.ts +0 -1
  3. package/dist/address.d.ts.map +1 -1
  4. package/dist/address.js +1 -1
  5. package/dist/address.js.map +1 -1
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js +49 -48
  8. package/dist/app.js.map +1 -1
  9. package/dist/askpass/answer.d.ts +12 -0
  10. package/dist/askpass/answer.d.ts.map +1 -0
  11. package/dist/askpass/answer.js +204 -0
  12. package/dist/askpass/answer.js.map +1 -0
  13. package/dist/askpass/askpass.d.ts +6 -0
  14. package/dist/askpass/askpass.d.ts.map +1 -1
  15. package/dist/askpass/askpass.js +28 -0
  16. package/dist/askpass/askpass.js.map +1 -1
  17. package/dist/audit.d.ts +5 -2
  18. package/dist/audit.d.ts.map +1 -1
  19. package/dist/audit.js +15 -2
  20. package/dist/audit.js.map +1 -1
  21. package/dist/consent/consent-posix.d.ts +7 -3
  22. package/dist/consent/consent-posix.d.ts.map +1 -1
  23. package/dist/consent/consent-posix.js +82 -12
  24. package/dist/consent/consent-posix.js.map +1 -1
  25. package/dist/consent/consent-windows.d.ts +3 -1
  26. package/dist/consent/consent-windows.d.ts.map +1 -1
  27. package/dist/consent/consent-windows.js +174 -62
  28. package/dist/consent/consent-windows.js.map +1 -1
  29. package/dist/consent/consent.d.ts +41 -2
  30. package/dist/consent/consent.d.ts.map +1 -1
  31. package/dist/consent/consent.js +7 -5
  32. package/dist/consent/consent.js.map +1 -1
  33. package/dist/core.d.ts +3 -30
  34. package/dist/core.d.ts.map +1 -1
  35. package/dist/core.js +189 -62
  36. package/dist/core.js.map +1 -1
  37. package/dist/git-credential/git-credential.d.ts +18 -0
  38. package/dist/git-credential/git-credential.d.ts.map +1 -0
  39. package/dist/git-credential/git-credential.js +68 -0
  40. package/dist/git-credential/git-credential.js.map +1 -0
  41. package/dist/index.d.ts +5 -2
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +5 -2
  44. package/dist/index.js.map +1 -1
  45. package/dist/native-host/framing.d.ts +10 -0
  46. package/dist/native-host/framing.d.ts.map +1 -0
  47. package/dist/native-host/framing.js +33 -0
  48. package/dist/native-host/framing.js.map +1 -0
  49. package/dist/native-host/native-host.d.ts +11 -0
  50. package/dist/native-host/native-host.d.ts.map +1 -0
  51. package/dist/native-host/native-host.js +130 -0
  52. package/dist/native-host/native-host.js.map +1 -0
  53. package/dist/passwords/access.d.ts +73 -0
  54. package/dist/passwords/access.d.ts.map +1 -0
  55. package/dist/passwords/access.js +3 -0
  56. package/dist/passwords/access.js.map +1 -0
  57. package/dist/passwords/app-ops.d.ts +18 -0
  58. package/dist/passwords/app-ops.d.ts.map +1 -0
  59. package/dist/passwords/app-ops.js +261 -0
  60. package/dist/passwords/app-ops.js.map +1 -0
  61. package/dist/passwords/capture.d.ts +35 -0
  62. package/dist/passwords/capture.d.ts.map +1 -0
  63. package/dist/passwords/capture.js +306 -0
  64. package/dist/passwords/capture.js.map +1 -0
  65. package/dist/passwords/entries.d.ts +20 -0
  66. package/dist/passwords/entries.d.ts.map +1 -0
  67. package/dist/passwords/entries.js +57 -0
  68. package/dist/passwords/entries.js.map +1 -0
  69. package/dist/passwords/fills.d.ts +10 -0
  70. package/dist/passwords/fills.d.ts.map +1 -0
  71. package/dist/passwords/fills.js +87 -0
  72. package/dist/passwords/fills.js.map +1 -0
  73. package/dist/passwords/needs.d.ts +11 -0
  74. package/dist/passwords/needs.d.ts.map +1 -0
  75. package/dist/passwords/needs.js +232 -0
  76. package/dist/passwords/needs.js.map +1 -0
  77. package/dist/passwords/phone.d.ts +19 -0
  78. package/dist/passwords/phone.d.ts.map +1 -0
  79. package/dist/passwords/phone.js +125 -0
  80. package/dist/passwords/phone.js.map +1 -0
  81. package/dist/protocol.d.ts +1169 -0
  82. package/dist/protocol.d.ts.map +1 -1
  83. package/dist/protocol.js +86 -1
  84. package/dist/protocol.js.map +1 -1
  85. package/dist/service/channel.d.ts +10 -3
  86. package/dist/service/channel.d.ts.map +1 -1
  87. package/dist/service/channel.js +31 -13
  88. package/dist/service/channel.js.map +1 -1
  89. package/dist/service/door.d.ts +45 -4
  90. package/dist/service/door.d.ts.map +1 -1
  91. package/dist/service/door.js +31 -2
  92. package/dist/service/door.js.map +1 -1
  93. package/dist/service/helper.d.ts +18 -1
  94. package/dist/service/helper.d.ts.map +1 -1
  95. package/dist/service/helper.js +68 -28
  96. package/dist/service/helper.js.map +1 -1
  97. package/dist/service/linux/install-linux.d.ts +12 -0
  98. package/dist/service/linux/install-linux.d.ts.map +1 -0
  99. package/dist/service/linux/install-linux.js +133 -0
  100. package/dist/service/linux/install-linux.js.map +1 -0
  101. package/dist/service/linux/paths-linux.d.ts +21 -0
  102. package/dist/service/linux/paths-linux.d.ts.map +1 -0
  103. package/dist/service/linux/paths-linux.js +31 -0
  104. package/dist/service/linux/paths-linux.js.map +1 -0
  105. package/dist/service/linux/polkit-linux.d.ts +29 -0
  106. package/dist/service/linux/polkit-linux.d.ts.map +1 -0
  107. package/dist/service/linux/polkit-linux.js +89 -0
  108. package/dist/service/linux/polkit-linux.js.map +1 -0
  109. package/dist/service/linux/service-run-linux.d.ts +4 -0
  110. package/dist/service/linux/service-run-linux.d.ts.map +1 -0
  111. package/dist/service/linux/service-run-linux.js +52 -0
  112. package/dist/service/linux/service-run-linux.js.map +1 -0
  113. package/dist/service/linux/session-linux.d.ts +4 -0
  114. package/dist/service/linux/session-linux.d.ts.map +1 -0
  115. package/dist/service/linux/session-linux.js +13 -0
  116. package/dist/service/linux/session-linux.js.map +1 -0
  117. package/dist/service/linux/unit-linux.d.ts +16 -0
  118. package/dist/service/linux/unit-linux.d.ts.map +1 -0
  119. package/dist/service/linux/unit-linux.js +67 -0
  120. package/dist/service/linux/unit-linux.js.map +1 -0
  121. package/dist/service/platform.d.ts +7 -0
  122. package/dist/service/platform.d.ts.map +1 -0
  123. package/dist/service/platform.js +62 -0
  124. package/dist/service/platform.js.map +1 -0
  125. package/dist/service/recovery.d.ts +3 -0
  126. package/dist/service/recovery.d.ts.map +1 -0
  127. package/dist/service/recovery.js +22 -0
  128. package/dist/service/recovery.js.map +1 -0
  129. package/dist/service/remote.d.ts +4 -1
  130. package/dist/service/remote.d.ts.map +1 -1
  131. package/dist/service/remote.js +41 -6
  132. package/dist/service/remote.js.map +1 -1
  133. package/dist/service/service-key.d.ts +9 -0
  134. package/dist/service/service-key.d.ts.map +1 -0
  135. package/dist/service/service-key.js +55 -0
  136. package/dist/service/service-key.js.map +1 -0
  137. package/dist/service/service-run.d.ts +20 -2
  138. package/dist/service/service-run.d.ts.map +1 -1
  139. package/dist/service/service-run.js +52 -46
  140. package/dist/service/service-run.js.map +1 -1
  141. package/dist/service/user.d.ts +8 -0
  142. package/dist/service/user.d.ts.map +1 -0
  143. package/dist/service/user.js +39 -0
  144. package/dist/service/user.js.map +1 -0
  145. package/dist/service/{acl.d.ts → windows/acl-windows.d.ts} +3 -3
  146. package/dist/service/windows/acl-windows.d.ts.map +1 -0
  147. package/dist/service/{acl.js → windows/acl-windows.js} +3 -3
  148. package/dist/service/windows/acl-windows.js.map +1 -0
  149. package/dist/service/{install.d.ts → windows/install-windows.d.ts} +4 -2
  150. package/dist/service/windows/install-windows.d.ts.map +1 -0
  151. package/dist/service/{install.js → windows/install-windows.js} +13 -12
  152. package/dist/service/windows/install-windows.js.map +1 -0
  153. package/dist/service/windows/leftovers-windows.d.ts +8 -0
  154. package/dist/service/windows/leftovers-windows.d.ts.map +1 -0
  155. package/dist/service/windows/leftovers-windows.js +44 -0
  156. package/dist/service/windows/leftovers-windows.js.map +1 -0
  157. package/dist/service/{paths.d.ts → windows/paths-windows.d.ts} +4 -5
  158. package/dist/service/windows/paths-windows.d.ts.map +1 -0
  159. package/dist/service/{paths.js → windows/paths-windows.js} +5 -5
  160. package/dist/service/windows/paths-windows.js.map +1 -0
  161. package/dist/service/windows/service-run-windows.d.ts +4 -0
  162. package/dist/service/windows/service-run-windows.d.ts.map +1 -0
  163. package/dist/service/windows/service-run-windows.js +46 -0
  164. package/dist/service/windows/service-run-windows.js.map +1 -0
  165. package/dist/service/windows/session-windows.d.ts +4 -0
  166. package/dist/service/windows/session-windows.d.ts.map +1 -0
  167. package/dist/service/windows/session-windows.js +13 -0
  168. package/dist/service/windows/session-windows.js.map +1 -0
  169. package/dist/service/windows/sid-windows.d.ts +3 -0
  170. package/dist/service/windows/sid-windows.d.ts.map +1 -0
  171. package/dist/service/{sid.js → windows/sid-windows.js} +2 -2
  172. package/dist/service/windows/sid-windows.js.map +1 -0
  173. package/dist/service/{task.d.ts → windows/task-windows.d.ts} +4 -3
  174. package/dist/service/windows/task-windows.d.ts.map +1 -0
  175. package/dist/service/{task.js → windows/task-windows.js} +19 -2
  176. package/dist/service/windows/task-windows.js.map +1 -0
  177. package/dist/service/wire.d.ts +32 -0
  178. package/dist/service/wire.d.ts.map +1 -1
  179. package/dist/service/wire.js +15 -0
  180. package/dist/service/wire.js.map +1 -1
  181. package/dist/typing/clipboard.d.ts +13 -0
  182. package/dist/typing/clipboard.d.ts.map +1 -0
  183. package/dist/typing/clipboard.js +56 -0
  184. package/dist/typing/clipboard.js.map +1 -0
  185. package/dist/typing/index.d.ts.map +1 -1
  186. package/dist/typing/index.js +2 -1
  187. package/dist/typing/index.js.map +1 -1
  188. package/dist/typing/typist.d.ts +3 -1
  189. package/dist/typing/typist.d.ts.map +1 -1
  190. package/dist/typing/typist.js +2 -1
  191. package/dist/typing/typist.js.map +1 -1
  192. package/dist/vault.d.ts +785 -0
  193. package/dist/vault.d.ts.map +1 -1
  194. package/dist/vault.js +24 -2
  195. package/dist/vault.js.map +1 -1
  196. package/dist/watch/apps.d.ts +10 -0
  197. package/dist/watch/apps.d.ts.map +1 -0
  198. package/dist/watch/apps.js +95 -0
  199. package/dist/watch/apps.js.map +1 -0
  200. package/dist/watch/chip.d.ts +52 -0
  201. package/dist/watch/chip.d.ts.map +1 -0
  202. package/dist/watch/chip.js +76 -0
  203. package/dist/watch/chip.js.map +1 -0
  204. package/dist/watch/lines-child.d.ts +9 -0
  205. package/dist/watch/lines-child.d.ts.map +1 -0
  206. package/dist/watch/lines-child.js +34 -0
  207. package/dist/watch/lines-child.js.map +1 -0
  208. package/dist/watch/watch-linux.d.ts +6 -0
  209. package/dist/watch/watch-linux.d.ts.map +1 -0
  210. package/dist/watch/watch-linux.js +52 -0
  211. package/dist/watch/watch-linux.js.map +1 -0
  212. package/dist/watch/watch-windows.d.ts +6 -0
  213. package/dist/watch/watch-windows.d.ts.map +1 -0
  214. package/dist/watch/watch-windows.js +110 -0
  215. package/dist/watch/watch-windows.js.map +1 -0
  216. package/package.json +5 -5
  217. package/dist/serve.d.ts +0 -17
  218. package/dist/serve.d.ts.map +0 -1
  219. package/dist/serve.js +0 -65
  220. package/dist/serve.js.map +0 -1
  221. package/dist/service/acl.d.ts.map +0 -1
  222. package/dist/service/acl.js.map +0 -1
  223. package/dist/service/install.d.ts.map +0 -1
  224. package/dist/service/install.js.map +0 -1
  225. package/dist/service/paths.d.ts.map +0 -1
  226. package/dist/service/paths.js.map +0 -1
  227. package/dist/service/sid.d.ts +0 -3
  228. package/dist/service/sid.d.ts.map +0 -1
  229. package/dist/service/sid.js.map +0 -1
  230. package/dist/service/task.d.ts.map +0 -1
  231. package/dist/service/task.js.map +0 -1
@@ -0,0 +1,204 @@
1
+ import { entriesFor, gitOrigin, titleForOrigin } from "@intentic/sandbox-contract/policy/keyring-origins";
2
+ import { NOT_SET_UP, refuse } from "../passwords/access.js";
3
+ import { candidateOf, DEFAULT_SETTINGS, entryInfoOf, liveEntries, settingsOf, titleOf, usedEntry, withEntry } from "../passwords/entries.js";
4
+ import { hostOf, rememberedFresh } from "../policy.js";
5
+ import { askpassMatch, askpassPlace, normalMatcher, parseAskpassPrompt } from "./askpass.js";
6
+ const AGAIN_MS = 60_000;
7
+ const boxNotice = ({ question, place, asker, again, remember, knownUser }) => {
8
+ const where = titleForOrigin(place.origin).replace(/^(ssh|git|sudo) /u, "");
9
+ const wantsUser = question.wants === "username";
10
+ return {
11
+ title: wantsUser ? `${asker} asks who you sign in to ${where} as` : `${asker} asks for ${where}'s password`,
12
+ message: again ? `${asker} asked again: the password it was given did not work. Type the right one once.` : `"${question.prompt}" Type it once: Passwords answers ${asker} with it.`,
13
+ remember,
14
+ username: wantsUser || place.origin.kind === "git" ? { value: place.username ?? knownUser } : undefined,
15
+ };
16
+ };
17
+ export class Askpass {
18
+ vault;
19
+ captures;
20
+ #remembered = new Map();
21
+ #answered = new Map();
22
+ #typed = new Map();
23
+ constructor(vault, captures) {
24
+ this.vault = vault;
25
+ this.captures = captures;
26
+ }
27
+ forget() {
28
+ this.#remembered.clear();
29
+ this.#typed.clear();
30
+ }
31
+ #shown() {
32
+ const held = this.vault.held();
33
+ return held === undefined ? (this.vault.file()?.open.entries ?? []) : liveEntries(held.doc).map(entryInfoOf);
34
+ }
35
+ async #settle(now) {
36
+ const held = this.vault.held();
37
+ let doc = held?.doc;
38
+ for (const [key, answered] of this.#answered) {
39
+ if (now - answered.at < AGAIN_MS) {
40
+ continue;
41
+ }
42
+ this.#answered.delete(key);
43
+ const entry = answered.name === undefined ? undefined : doc?.entries[answered.name];
44
+ if (doc !== undefined && entry?.unverified === true) {
45
+ doc = withEntry(doc, usedEntry(entry, answered.at));
46
+ }
47
+ }
48
+ if (held !== undefined && doc !== undefined && doc !== held.doc) {
49
+ await this.vault.commit({ doc, key: held.key });
50
+ }
51
+ }
52
+ async askpass(prompt, parent) {
53
+ const file = this.vault.file();
54
+ if (file === undefined) {
55
+ return refuse("locked", NOT_SET_UP);
56
+ }
57
+ const now = this.vault.deps.now();
58
+ await this.#settle(now);
59
+ const question = parseAskpassPrompt(prompt);
60
+ const key = normalMatcher(question.matchers[0] ?? `prompt:${question.prompt}`);
61
+ const last = this.#answered.get(key);
62
+ this.#answered.delete(key);
63
+ const shown = file.open.entries.find((entry) => askpassMatch(question, entry.askpass) !== undefined);
64
+ const doubtful = last !== undefined && (last.name === undefined || this.#shown().find((entry) => entry.name === last.name)?.unverified === true);
65
+ const again = question.wants === "secret" && last !== undefined && now - last.at < AGAIN_MS && doubtful;
66
+ const typed = this.#typed.get(key);
67
+ if (question.wants === "secret" && typed !== undefined && now - typed.at < AGAIN_MS) {
68
+ this.#typed.delete(key);
69
+ return await this.#answerTyped(question, prompt, parent, typed, again);
70
+ }
71
+ if (shown === undefined || again) {
72
+ return await this.#box(question, prompt, parent, again, shown?.username);
73
+ }
74
+ return await this.#answerWith(shown, question, parent, key);
75
+ }
76
+ async #answerWith(shown, question, parent, key) {
77
+ const file = this.vault.file();
78
+ const matcher = askpassMatch(question, shown.askpass);
79
+ if (file === undefined || matcher === undefined) {
80
+ return refuse("unknown", `No password answers "${question.prompt}".`);
81
+ }
82
+ if (question.wants === "username") {
83
+ return shown.username === undefined ? refuse("unknown", `${shown.name} has no user name to answer with.`) : { ok: true, value: shown.username };
84
+ }
85
+ const now = this.vault.deps.now();
86
+ const remembered = this.vault.held() !== undefined && rememberedFresh(this.#remembered.get(matcher), shown.askpassRememberMinutes, now);
87
+ const asker = parent ?? "A program";
88
+ const opened = await this.vault.open(file, { title: `Answer ${asker}'s prompt?`, message: `${asker} asks: "${question.prompt}". Passwords answers with ${titleOf(shown)}.`, person: !remembered });
89
+ if ("ok" in opened) {
90
+ await this.vault.record({ op: "askpass", outcome: "refused", code: opened.code, secret: shown.name, target: matcher });
91
+ return opened;
92
+ }
93
+ const entry = opened.doc.entries[shown.name];
94
+ if (entry === undefined || entry.deleted === true || askpassMatch(question, entry.rules.askpass) === undefined) {
95
+ return refuse("unknown", `No password answers "${question.prompt}".`);
96
+ }
97
+ const value = await this.vault.valueOf(opened.doc, entry);
98
+ if (!value.ok) {
99
+ return value;
100
+ }
101
+ if (entry.rules.askpassRememberMinutes > 0) {
102
+ this.#remembered.set(matcher, now);
103
+ }
104
+ this.#answered.set(key, { at: now, name: entry.name });
105
+ await this.vault.record({ op: "askpass", outcome: "granted", secret: entry.name, target: matcher, asked: opened.asked, program: parent });
106
+ return { ok: true, value: value.value };
107
+ }
108
+ async #box(question, prompt, parent, again, knownUser) {
109
+ const box = this.vault.deps.consent.askValue;
110
+ if (box === undefined) {
111
+ return refuse("unknown", `No password answers "${question.prompt}": \`intentic-machine keyring edit NAME --askpass ${question.matchers[0] ?? "prompt:…"}\` adds one.`);
112
+ }
113
+ const place = askpassPlace(question, prompt);
114
+ const held = this.vault.held();
115
+ const remember = (held === undefined ? (this.vault.file()?.open.settings ?? DEFAULT_SETTINGS) : settingsOf(held.doc)).remember.terminal;
116
+ const wantsUser = question.wants === "username";
117
+ const answer = await box(boxNotice({ question, place, asker: parent ?? programOf(place.origin), again, remember, knownUser }));
118
+ if (answer.kind !== "answered") {
119
+ await this.vault.record({ op: "askpass", outcome: "refused", code: answer.kind === "cancelled" ? "declined" : "unavailable", target: question.matchers[0] });
120
+ return answer.kind === "cancelled" ? refuse("declined", "The person at the computer closed the box.") : refuse("unavailable", answer.reason);
121
+ }
122
+ const typed = { at: this.vault.deps.now(), value: answer.value, username: answer.username ?? place.username, remember: answer.remember };
123
+ if (wantsUser) {
124
+ this.#typed.set(normalMatcher(question.matchers[0] ?? ""), typed);
125
+ return typed.username === undefined ? refuse("unknown", "No user name was typed.") : { ok: true, value: typed.username };
126
+ }
127
+ return await this.#answerTyped(question, prompt, parent, typed, again);
128
+ }
129
+ async #answerTyped(question, prompt, parent, typed, again) {
130
+ const place = askpassPlace(question, prompt);
131
+ const now = this.vault.deps.now();
132
+ let name;
133
+ if (typed.remember) {
134
+ const draft = { origin: place.origin, username: typed.username ?? place.username, source: "askpass", via: parent ?? programOf(place.origin), kind: "password", at: now };
135
+ const kept = await this.captures.keep(again ? { ...draft, failed: true } : draft, typed.value, true);
136
+ name = kept.name;
137
+ }
138
+ this.#answered.set(normalMatcher(question.matchers[0] ?? `prompt:${question.prompt}`), { at: now, name });
139
+ await this.vault.record({ op: "askpass", outcome: "granted", secret: name, target: question.matchers[0], asked: true, how: "box", program: parent });
140
+ return { ok: true, value: typed.value };
141
+ }
142
+ async gitCredential(action, url, username) {
143
+ const file = this.vault.file();
144
+ if (file === undefined) {
145
+ return refuse("locked", NOT_SET_UP);
146
+ }
147
+ const origin = { kind: "git", url: gitOrigin(url) };
148
+ const match = entriesFor(this.#shown().map(candidateOf), origin, username).find((candidate) => username === undefined || candidate.username === undefined || candidate.username === username);
149
+ if (match === undefined) {
150
+ return { ok: true };
151
+ }
152
+ return action === "get" ? await this.#gitGet(match.name, origin) : await this.#gitErase(match.name);
153
+ }
154
+ async #gitGet(name, origin) {
155
+ const file = this.vault.file();
156
+ const shown = this.#shown().find((entry) => entry.name === name);
157
+ if (file === undefined || shown === undefined) {
158
+ return { ok: true };
159
+ }
160
+ const now = this.vault.deps.now();
161
+ const key = `git-credential:${normalMatcher(`git:${origin.kind === "git" ? origin.url : ""}`)}`;
162
+ const remembered = this.vault.held() !== undefined && rememberedFresh(this.#remembered.get(key), shown.askpassRememberMinutes, now);
163
+ const host = origin.kind === "git" ? hostOf(origin.url) : "";
164
+ const opened = await this.vault.open(file, { title: `Sign git in to ${host}?`, message: `git asks for its sign-in to ${host}. Passwords answers with ${titleOf(shown)}${shown.username === undefined ? "" : ` (${shown.username})`}.`, person: !remembered });
165
+ if ("ok" in opened) {
166
+ await this.vault.record({ op: "git-credential", outcome: "refused", code: opened.code, secret: name, target: host });
167
+ return opened;
168
+ }
169
+ const entry = opened.doc.entries[name];
170
+ const value = entry === undefined || entry.deleted === true ? refuse("unknown", `There is no password named ${name}.`) : await this.vault.valueOf(opened.doc, entry);
171
+ if (!value.ok) {
172
+ return value;
173
+ }
174
+ if (shown.askpassRememberMinutes > 0) {
175
+ this.#remembered.set(key, now);
176
+ }
177
+ await this.vault.record({ op: "git-credential", outcome: "granted", secret: name, target: host, asked: opened.asked });
178
+ const answer = { ok: true, value: value.value };
179
+ if (entry?.rules.username !== undefined) {
180
+ answer.username = entry.rules.username;
181
+ }
182
+ return answer;
183
+ }
184
+ async #gitErase(name) {
185
+ const held = this.vault.held();
186
+ const entry = held?.doc.entries[name];
187
+ if (held === undefined || entry === undefined) {
188
+ return { ok: true };
189
+ }
190
+ const now = this.vault.deps.now();
191
+ const revision = held.doc.revision + 1;
192
+ const [earlier, ...older] = entry.history ?? [];
193
+ const erased = entry.unverified !== true
194
+ ? { ...entry, failed: true, updatedAt: now, revision }
195
+ : earlier === undefined
196
+ ? { name, rules: entry.rules, source: entry.source, shares: [], createdAt: entry.createdAt, updatedAt: now, revision, deleted: true }
197
+ : { ...entry, value: earlier.value, history: older, updatedAt: now, revision, unverified: false };
198
+ await this.vault.commit({ doc: withEntry(held.doc, erased), key: held.key });
199
+ await this.vault.record({ op: "git-credential", outcome: "done", secret: name, target: "erase" });
200
+ return { ok: true };
201
+ }
202
+ }
203
+ const programOf = (origin) => (origin.kind === "ssh" || origin.kind === "ssh-key" ? "ssh" : origin.kind === "sudo" ? "sudo" : origin.kind === "git" ? "git" : "A program");
204
+ //# sourceMappingURL=answer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer.js","sourceRoot":"","sources":["../../src/askpass/answer.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { KeyringOrigin } from "@intentic/sandbox-contract/schemas/keyring";
1
2
  export interface AskpassQuestion {
2
3
  readonly wants: "secret" | "username";
3
4
  readonly matchers: readonly string[];
@@ -6,4 +7,9 @@ export interface AskpassQuestion {
6
7
  export declare const parseAskpassPrompt: (prompt: string) => AskpassQuestion;
7
8
  export declare const normalMatcher: (matcher: string) => string;
8
9
  export declare const askpassMatch: (question: AskpassQuestion, matchers: readonly string[]) => string | undefined;
10
+ export interface AskpassPlace {
11
+ readonly origin: KeyringOrigin;
12
+ readonly username?: string | undefined;
13
+ }
14
+ export declare const askpassPlace: (question: AskpassQuestion, prompt: string) => AskpassPlace;
9
15
  //# sourceMappingURL=askpass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"askpass.d.ts","sourceRoot":"","sources":["../../src/askpass/askpass.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAE5B,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;IAEtC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAErC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAwBD,eAAO,MAAM,kBAAkB,WAAY,MAAM,KAAG,eA0BnD,CAAC;AAIF,eAAO,MAAM,aAAa,YAAa,MAAM,KAAG,MAc/C,CAAC;AAGF,eAAO,MAAM,YAAY,aAAc,eAAe,YAAY,SAAS,MAAM,EAAE,KAAG,MAAM,GAAG,SAS9F,CAAC"}
1
+ {"version":3,"file":"askpass.d.ts","sourceRoot":"","sources":["../../src/askpass/askpass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAOhF,MAAM,WAAW,eAAe;IAE5B,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;IAEtC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAErC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAwBD,eAAO,MAAM,kBAAkB,WAAY,MAAM,KAAG,eA0BnD,CAAC;AAIF,eAAO,MAAM,aAAa,YAAa,MAAM,KAAG,MAc/C,CAAC;AAGF,eAAO,MAAM,YAAY,aAAc,eAAe,YAAY,SAAS,MAAM,EAAE,KAAG,MAAM,GAAG,SAS9F,CAAC;AAIF,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAaD,eAAO,MAAM,YAAY,aAAc,eAAe,UAAU,MAAM,KAAG,YAiBxE,CAAC"}
@@ -67,4 +67,32 @@ export const askpassMatch = (question, matchers) => {
67
67
  }
68
68
  return undefined;
69
69
  };
70
+ const gitUser = (prompt) => {
71
+ const url = /'(?<url>[^']+)'/u.exec(prompt)?.groups?.["url"];
72
+ try {
73
+ const user = url === undefined ? "" : decodeURIComponent(new URL(url).username);
74
+ return user === "" ? undefined : user;
75
+ }
76
+ catch {
77
+ return undefined;
78
+ }
79
+ };
80
+ export const askpassPlace = (question, prompt) => {
81
+ const matcher = question.matchers[0] ?? `prompt:${question.prompt}`;
82
+ const colon = matcher.indexOf(":");
83
+ const kind = colon === -1 ? matcher : matcher.slice(0, colon);
84
+ const rest = colon === -1 ? "" : matcher.slice(colon + 1);
85
+ switch (kind) {
86
+ case "ssh":
87
+ return { origin: { kind: "ssh", target: rest }, username: rest.split("@")[0] };
88
+ case "ssh-key":
89
+ return { origin: { kind: "ssh-key", path: rest } };
90
+ case "sudo":
91
+ return rest === "" ? { origin: { kind: "sudo" } } : { origin: { kind: "sudo", user: rest }, username: rest };
92
+ case "git":
93
+ return { origin: { kind: "git", url: rest }, username: gitUser(prompt) };
94
+ default:
95
+ return { origin: { kind: "prompt", text: (question.prompt === "" ? "Password:" : question.prompt).slice(0, 300) } };
96
+ }
97
+ };
70
98
  //# sourceMappingURL=askpass.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"askpass.js","sourceRoot":"","sources":["../../src/askpass/askpass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"askpass.js","sourceRoot":"","sources":["../../src/askpass/askpass.ts"],"names":[],"mappings":"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"}
package/dist/audit.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export interface AuditRecord {
2
2
  readonly op: string;
3
- readonly outcome: "granted" | "refused" | "done" | "pending";
3
+ readonly outcome: "granted" | "refused" | "done" | "pending" | "saved" | "updated" | "unchanged" | "skipped";
4
4
  readonly code?: string | undefined;
5
5
  readonly secret?: string | undefined;
6
6
  readonly sandbox?: string | undefined;
@@ -12,7 +12,10 @@ export interface AuditRecord {
12
12
  readonly conversation?: string | undefined;
13
13
  readonly reason?: string | undefined;
14
14
  }
15
- export type Audit = (record: AuditRecord) => Promise<void>;
15
+ export interface Audit {
16
+ (record: AuditRecord): Promise<void>;
17
+ readonly lines?: () => Promise<readonly string[]>;
18
+ }
16
19
  export declare const fileAudit: (path: string, dir: string, now?: () => number) => Audit;
17
20
  export declare const noAudit: Audit;
18
21
  //# sourceMappingURL=audit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3D,eAAO,MAAM,SAAS,SAAU,MAAM,OAAO,MAAM,QAAO,MAAM,MAAM,KAAc,KAUnF,CAAC;AAGF,eAAO,MAAM,OAAO,EAAE,KAA+B,CAAC"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAGpB,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC7G,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,KAAK;IAClB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;CACrD;AAED,eAAO,MAAM,SAAS,SAAU,MAAM,OAAO,MAAM,QAAO,MAAM,MAAM,KAAc,KAqBnF,CAAC;AAGF,eAAO,MAAM,OAAO,EAAE,KAA+B,CAAC"}
package/dist/audit.js CHANGED
@@ -1,14 +1,27 @@
1
- import { appendFile, chmod, mkdir } from "node:fs/promises";
1
+ import { appendFile, chmod, mkdir, readFile } from "node:fs/promises";
2
+ import { isMissing } from "@intentic/base/errors";
2
3
  import { serialLock } from "@intentic/base/async";
3
4
  import { rotateIfLarge } from "@intentic/local-agent";
4
5
  export const fileAudit = (path, dir, now = Date.now) => {
5
6
  const queue = serialLock();
6
- return async (record) => await queue(async () => {
7
+ const write = async (record) => await queue(async () => {
7
8
  await mkdir(dir, { recursive: true, mode: 0o700 });
8
9
  await rotateIfLarge(path);
9
10
  await appendFile(path, `${JSON.stringify({ at: new Date(now()).toISOString(), ...record })}\n`, { mode: 0o600 });
10
11
  await chmod(path, 0o600);
11
12
  });
13
+ const lines = async () => {
14
+ try {
15
+ return (await readFile(path, "utf8")).split("\n").filter((line) => line.trim() !== "");
16
+ }
17
+ catch (error) {
18
+ if (isMissing(error)) {
19
+ return [];
20
+ }
21
+ throw error;
22
+ }
23
+ };
24
+ return Object.assign(write, { lines });
12
25
  };
13
26
  export const noAudit = () => Promise.resolve();
14
27
  //# sourceMappingURL=audit.js.map
package/dist/audit.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA0BtD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,GAAG,GAAiB,IAAI,CAAC,GAAG,EAAS,EAAE;IACxF,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,CACpB,MAAM,KAAK,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjH,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACX,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,OAAO,GAAU,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA+BtD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,GAAG,GAAiB,IAAI,CAAC,GAAG,EAAS,EAAE;IACxF,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,KAAK,EAAE,MAAmB,EAAiB,EAAE,CACvD,MAAM,KAAK,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjH,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IACP,MAAM,KAAK,GAAG,KAAK,IAAgC,EAAE;QACjD,IAAI,CAAC;YACD,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAC;YACd,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,OAAO,GAAU,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC"}
@@ -1,6 +1,10 @@
1
- import type { Notice, PassphrasePrompt } from "./consent.js";
1
+ import type { ChoiceNotice, ChoicePrompt, PassphrasePrompt, ValueAnswer, ValueNotice, ValuePrompt } from "./consent.js";
2
2
  import type { Runner } from "../run.js";
3
3
  export declare const linuxPassphrasePrompt: (runner: Runner, env?: NodeJS.ProcessEnv) => PassphrasePrompt;
4
- export declare const macDialogScript: (notice: Notice) => string;
5
- export declare const macPassphrasePrompt: (runner: Runner) => PassphrasePrompt;
4
+ export declare const zenityValueArgs: (notice: ValueNotice) => readonly string[];
5
+ export declare const zenityValueAnswer: (stdout: string, notice: ValueNotice) => ValueAnswer;
6
+ export declare const linuxValuePrompt: (runner: Runner, env?: NodeJS.ProcessEnv) => ValuePrompt;
7
+ export declare const zenityChoiceArgs: (notice: ChoiceNotice) => readonly string[];
8
+ export declare const chosenId: (notice: ChoiceNotice, answered: string) => string | undefined;
9
+ export declare const linuxChoicePrompt: (runner: Runner, env?: NodeJS.ProcessEnv) => ChoicePrompt;
6
10
  //# sourceMappingURL=consent-posix.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consent-posix.d.ts","sourceRoot":"","sources":["../../src/consent/consent-posix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAgB,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAa,MAAM,EAAE,MAAM,WAAW,CAAC;AAuCnD,eAAO,MAAM,qBAAqB,WACrB,MAAM,QAAO,MAAM,CAAC,UAAU,KAAiB,gBAwBvD,CAAC;AAKN,eAAO,MAAM,eAAe,WAAY,MAAM,KAAG,MAKjC,CAAC;AAEjB,eAAO,MAAM,mBAAmB,WACnB,MAAM,KAAG,gBAWjB,CAAC"}
1
+ {"version":3,"file":"consent-posix.d.ts","sourceRoot":"","sources":["../../src/consent/consent-posix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAU,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChI,OAAO,KAAK,EAAa,MAAM,EAAE,MAAM,WAAW,CAAC;AAuCnD,eAAO,MAAM,qBAAqB,WACrB,MAAM,QAAO,MAAM,CAAC,UAAU,KAAiB,gBAwBvD,CAAC;AAYN,eAAO,MAAM,eAAe,WAAY,WAAW,KAAG,SAAS,MAAM,EAcpE,CAAC;AAGF,eAAO,MAAM,iBAAiB,WAAY,MAAM,UAAU,WAAW,KAAG,WAUvE,CAAC;AAgBF,eAAO,MAAM,gBAAgB,WAChB,MAAM,QAAO,MAAM,CAAC,UAAU,KAAiB,WAavD,CAAC;AAKN,eAAO,MAAM,gBAAgB,WAAY,YAAY,KAAG,SAAS,MAAM,EAUtE,CAAC;AAGF,eAAO,MAAM,QAAQ,WAAY,YAAY,YAAY,MAAM,KAAG,MAAM,GAAG,SAAkG,CAAC;AAE9K,eAAO,MAAM,iBAAiB,WACjB,MAAM,QAAO,MAAM,CAAC,UAAU,KAAiB,YAqBvD,CAAC"}
@@ -38,20 +38,90 @@ export const linuxPassphrasePrompt = (runner, env = process.env) => async (notic
38
38
  reason: `${tried.join(", ")}${graphical ? "" : ", and no display to show a dialog on"}: install zenity or kdialog, or unlock from a desktop session`,
39
39
  };
40
40
  };
41
- const appleScriptText = (text) => `"${text.replace(/\\/gu, "\\\\").replace(/"/gu, '\\"')}"`;
42
- export const macDialogScript = (notice) => [
43
- `set answer to display dialog ${appleScriptText(`${notice.message}\n\nThe keyring's passphrase:`)} with title ${appleScriptText(notice.title)} default answer "" with hidden answer buttons {"Cancel", "OK"} default button "OK" giving up after ${String(PROMPT_SECONDS)}`,
44
- `if gave up of answer then error number -128`,
45
- `return text returned of answer`,
46
- ].join("\n");
47
- export const macPassphrasePrompt = (runner) => async (notice) => {
48
- const answer = await runner({ command: "osascript", args: ["-"], input: macDialogScript(notice), timeoutMs: PROMPT_TIMEOUT_MS });
41
+ const FIELD_SEPARATOR = "\u001f";
42
+ const rememberWords = (remember) => (remember ? "Yes|No" : "No|Yes");
43
+ export const zenityValueArgs = (notice) => {
44
+ const known = notice.username?.value;
45
+ const text = known === undefined ? notice.message : `${notice.message}\n\nUser name: ${known}`;
46
+ return [
47
+ "--forms",
48
+ `--title=${notice.title}`,
49
+ `--text=${markupText(text)}`,
50
+ `--separator=${FIELD_SEPARATOR}`,
51
+ ...(notice.username !== undefined && known === undefined ? ["--add-entry=User name"] : []),
52
+ "--add-password=Password",
53
+ "--add-combo=Remember it in Passwords",
54
+ `--combo-values=${rememberWords(notice.remember)}`,
55
+ `--timeout=${String(PROMPT_SECONDS)}`,
56
+ ];
57
+ };
58
+ export const zenityValueAnswer = (stdout, notice) => {
59
+ const fields = stdout.replace(/\r?\n$/u, "").split(FIELD_SEPARATOR);
60
+ const asksName = notice.username !== undefined && notice.username.value === undefined;
61
+ const [name, value, remember] = asksName ? fields : [notice.username?.value, ...fields];
62
+ if (value === undefined || value === "") {
63
+ return { kind: "cancelled" };
64
+ }
65
+ const kept = remember === "Yes" ? true : remember === "No" ? false : notice.remember;
66
+ return name === undefined || name === "" ? { kind: "answered", value, remember: kept } : { kind: "answered", value, remember: kept, username: name };
67
+ };
68
+ const kdialogValue = async (runner, notice) => {
69
+ const asked = await runner({ command: "kdialog", args: ["--title", notice.title, "--password", notice.message], timeoutMs: PROMPT_TIMEOUT_MS });
70
+ if (asked.missing) {
71
+ return undefined;
72
+ }
73
+ if (asked.exitCode !== 0 || asked.timedOut || typed(asked) === "") {
74
+ return { kind: "cancelled" };
75
+ }
76
+ const keep = await runner({ command: "kdialog", args: ["--title", notice.title, "--yesno", "Remember it in Passwords?"], timeoutMs: PROMPT_TIMEOUT_MS });
77
+ const remember = keep.exitCode === 0 ? true : keep.exitCode === 1 ? false : notice.remember;
78
+ const username = notice.username?.value;
79
+ return username === undefined ? { kind: "answered", value: typed(asked), remember } : { kind: "answered", value: typed(asked), remember, username };
80
+ };
81
+ export const linuxValuePrompt = (runner, env = process.env) => async (notice) => {
82
+ if ((env["DISPLAY"] ?? "") === "" && (env["WAYLAND_DISPLAY"] ?? "") === "") {
83
+ return { kind: "unavailable", reason: "there is no display to show Passwords' box on" };
84
+ }
85
+ const answer = await runner({ command: "zenity", args: zenityValueArgs(notice), timeoutMs: PROMPT_TIMEOUT_MS });
86
+ if (!answer.missing) {
87
+ if (answer.exitCode === 0 && !answer.timedOut) {
88
+ return zenityValueAnswer(answer.stdout, notice);
89
+ }
90
+ return answer.exitCode === 1 || answer.exitCode === 5 ? { kind: "cancelled" } : { kind: "unavailable", reason: `zenity could not ask (exit ${String(answer.exitCode ?? "none")})` };
91
+ }
92
+ return (await kdialogValue(runner, notice)) ?? { kind: "unavailable", reason: "neither zenity nor kdialog is installed" };
93
+ };
94
+ export const zenityChoiceArgs = (notice) => [
95
+ "--list",
96
+ "--radiolist",
97
+ `--title=${notice.title}`,
98
+ `--text=${markupText(notice.message)}`,
99
+ "--column=",
100
+ "--column=Answer",
101
+ "--hide-header",
102
+ ...notice.choices.flatMap((choice, at) => [at === 0 ? "TRUE" : "FALSE", choice.label]),
103
+ `--timeout=${String(PROMPT_SECONDS)}`,
104
+ ];
105
+ export const chosenId = (notice, answered) => notice.choices.find((choice) => choice.label === answered.replace(/\r?\n$/u, ""))?.id;
106
+ export const linuxChoicePrompt = (runner, env = process.env) => async (notice) => {
107
+ if ((env["DISPLAY"] ?? "") === "" && (env["WAYLAND_DISPLAY"] ?? "") === "") {
108
+ return { kind: "unavailable", reason: "there is no display to show Passwords' choice on" };
109
+ }
110
+ const zenity = await runner({ command: "zenity", args: zenityChoiceArgs(notice), timeoutMs: PROMPT_TIMEOUT_MS });
111
+ const answer = zenity.missing
112
+ ? await runner({
113
+ command: "kdialog",
114
+ args: ["--title", notice.title, "--radiolist", notice.message, ...notice.choices.flatMap((choice, at) => [choice.label, choice.label, at === 0 ? "on" : "off"])],
115
+ timeoutMs: PROMPT_TIMEOUT_MS,
116
+ })
117
+ : zenity;
49
118
  if (answer.missing) {
50
- return { kind: "unavailable", reason: "osascript was not found" };
119
+ return { kind: "unavailable", reason: "neither zenity nor kdialog is installed" };
51
120
  }
52
- if (answer.exitCode === 0 && !answer.timedOut) {
53
- return { kind: "answered", passphrase: typed(answer) };
121
+ if (answer.exitCode !== 0 || answer.timedOut) {
122
+ return { kind: "cancelled" };
54
123
  }
55
- return /-128/u.test(answer.stderr) ? { kind: "cancelled" } : { kind: "unavailable", reason: "the dialog could not be shown (no desktop session?)" };
124
+ const id = chosenId(notice, answer.stdout);
125
+ return id === undefined ? { kind: "cancelled" } : { kind: "chosen", id };
56
126
  };
57
127
  //# sourceMappingURL=consent-posix.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consent-posix.js","sourceRoot":"","sources":["../../src/consent/consent-posix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consent-posix.js","sourceRoot":"","sources":["../../src/consent/consent-posix.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
- import type { HelloDriver, PassphrasePrompt } from "./consent.js";
1
+ import type { ChoicePrompt, HelloDriver, PassphrasePrompt, ValuePrompt } from "./consent.js";
2
2
  import type { Runner } from "../run.js";
3
3
  export declare const windowsHello: (runner: Runner, now?: () => number) => HelloDriver;
4
4
  export declare const windowsPassphrasePrompt: (runner: Runner) => PassphrasePrompt;
5
+ export declare const windowsValuePrompt: (runner: Runner) => ValuePrompt;
6
+ export declare const windowsChoicePrompt: (runner: Runner) => ChoicePrompt;
5
7
  //# sourceMappingURL=consent-windows.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consent-windows.d.ts","sourceRoot":"","sources":["../../src/consent/consent-windows.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAuB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAqNxC,eAAO,MAAM,YAAY,WAAY,MAAM,QAAO,MAAM,MAAM,KAAc,WAyC3E,CAAC;AAEF,eAAO,MAAM,uBAAuB,WACvB,MAAM,KAAG,gBAejB,CAAC"}
1
+ {"version":3,"file":"consent-windows.d.ts","sourceRoot":"","sources":["../../src/consent/consent-windows.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAe,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE1G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAiSxC,eAAO,MAAM,YAAY,WAAY,MAAM,QAAO,MAAM,MAAM,KAAc,WAyC3E,CAAC;AAEF,eAAO,MAAM,uBAAuB,WACvB,MAAM,KAAG,gBAejB,CAAC;AAMN,eAAO,MAAM,kBAAkB,WAClB,MAAM,KAAG,WAuBjB,CAAC;AAGN,eAAO,MAAM,mBAAmB,WACnB,MAAM,KAAG,YAYjB,CAAC"}