@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 @@
1
+ {"version":3,"file":"native-host.js","sourceRoot":"","sources":["../../src/native-host/native-host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import type { KeyringSandboxKeys } from "@intentic/sandbox-contract/schemas/keyring";
2
+ import type { Audit, AuditRecord } from "../audit.js";
3
+ import type { BackendReader } from "../backends.js";
4
+ import type { Consent } from "../consent/consent.js";
5
+ import type { KeysFile } from "../keys.js";
6
+ import type { KeyringOp, KeyringResponse, Refusal } from "../protocol.js";
7
+ import type { Place, Seen, Typist } from "../typing/typist.js";
8
+ import type { OpenPart, ScryptCost, StoredEntry, VaultDocument, VaultFile } from "../vault.js";
9
+ export interface KeyringDeps {
10
+ readonly vault: {
11
+ readonly read: () => Promise<VaultFile | undefined>;
12
+ readonly write: (file: VaultFile) => Promise<void>;
13
+ };
14
+ readonly keys: {
15
+ readonly read: () => Promise<KeysFile>;
16
+ readonly write: (keys: KeysFile) => Promise<void>;
17
+ };
18
+ readonly consent: Consent;
19
+ readonly typist: Typist;
20
+ readonly backends: BackendReader;
21
+ readonly fetchKeys: (sandbox: string) => Promise<KeyringSandboxKeys>;
22
+ readonly audit: Audit;
23
+ readonly now: () => number;
24
+ readonly sleep: (ms: number) => Promise<void>;
25
+ readonly version: string;
26
+ readonly helloCredential: string;
27
+ readonly scrypt?: ScryptCost;
28
+ readonly needWaitMs?: number;
29
+ }
30
+ export type Answer<K extends KeyringOp> = Promise<KeyringResponse<K>>;
31
+ export declare const refuse: (code: Refusal["code"], refusal: string) => Refusal;
32
+ export declare const NOT_SET_UP = "Passwords is not set up on this computer yet: `intentic-machine keyring setup` sets it up.";
33
+ export type ValueRead = {
34
+ readonly ok: true;
35
+ readonly value: string;
36
+ } | Refusal;
37
+ export interface Opened {
38
+ readonly doc: VaultDocument;
39
+ readonly key: Buffer;
40
+ readonly asked: boolean;
41
+ readonly how: string | undefined;
42
+ readonly choice?: string | undefined;
43
+ }
44
+ export interface OpenRequest {
45
+ readonly title: string;
46
+ readonly message: string;
47
+ readonly person: boolean;
48
+ readonly choices?: readonly {
49
+ readonly id: string;
50
+ readonly label: string;
51
+ }[];
52
+ }
53
+ export type PendingParts = Partial<Pick<OpenPart, "pendingInbox" | "pendingSync" | "pendingCaptures" | "pendingNeeds" | "pendingSeen">>;
54
+ export interface VaultAccess {
55
+ readonly deps: KeyringDeps;
56
+ readonly file: () => VaultFile | undefined;
57
+ readonly keys: () => Promise<KeysFile>;
58
+ readonly held: () => {
59
+ readonly key: Buffer;
60
+ readonly doc: VaultDocument;
61
+ } | undefined;
62
+ readonly open: (file: VaultFile, request: OpenRequest) => Promise<Opened | Refusal>;
63
+ readonly commit: (opened: {
64
+ readonly doc: VaultDocument;
65
+ readonly key: Buffer;
66
+ }, pending?: PendingParts) => Promise<void>;
67
+ readonly writeOpen: (open: OpenPart) => Promise<void>;
68
+ readonly record: (record: AuditRecord) => Promise<void>;
69
+ readonly valueOf: (doc: VaultDocument, entry: StoredEntry) => Promise<ValueRead>;
70
+ readonly fetchKeys: (sandbox: string) => Promise<KeyringSandboxKeys | Refusal>;
71
+ readonly typeInto: (place: Place, seen: Seen, value: string, asked: boolean) => Answer<"type">;
72
+ }
73
+ //# sourceMappingURL=access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/passwords/access.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export const refuse = (code, refusal) => ({ ok: false, code, refusal });
2
+ export const NOT_SET_UP = "Passwords is not set up on this computer yet: `intentic-machine keyring setup` sets it up.";
3
+ //# sourceMappingURL=access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/passwords/access.ts"],"names":[],"mappings":"AAyCA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAqB,EAAE,OAAe,EAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1G,MAAM,CAAC,MAAM,UAAU,GAAG,4FAA4F,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { KeyringOrigin } from "@intentic/sandbox-contract/schemas/keyring";
2
+ import { type Answer, type VaultAccess } from "./access.js";
3
+ import { type KeyringResponse, type KeyringSettings, type KeyringSettingsPatch } from "../protocol.js";
4
+ export declare class AppOps {
5
+ #private;
6
+ private readonly vault;
7
+ constructor(vault: VaultAccess);
8
+ reveal(name: string, version: number | undefined): Answer<"reveal">;
9
+ copy(name: string, field: "password" | "username", clearAfterSeconds: number): Answer<"copy">;
10
+ history(name: string): Answer<"history">;
11
+ restore(name: string, version: number): Answer<"restore">;
12
+ settings(): KeyringSettings;
13
+ setSettings(patch: KeyringSettingsPatch): Answer<"set-settings">;
14
+ activity(name: string | undefined, limit: number): Answer<"activity">;
15
+ candidates(origin: KeyringOrigin): KeyringResponse<"candidates">;
16
+ fillValue(origin: KeyringOrigin, name: string): Answer<"fill-value">;
17
+ }
18
+ //# sourceMappingURL=app-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-ops.d.ts","sourceRoot":"","sources":["../../src/passwords/app-ops.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAEhF,OAAO,EAAE,KAAK,MAAM,EAAsB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhF,OAAO,EAAqC,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,oBAAoB,EAAyB,MAAM,gBAAgB,CAAC;AAoFjK,qBAAa,MAAM;;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAlC,YAA6B,KAAK,EAAE,WAAW,EAAI;IAY7C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAqBxE;IAEK,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAqClG;IAGK,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAiB7C;IAEK,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAkB9D;IAED,QAAQ,IAAI,eAAe,CAG1B;IAEK,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAAC,cAAc,CAAC,CA2BrE;IAEK,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAG1E;IAED,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAAC,YAAY,CAAC,CAS/D;IAEK,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAsBzE;CACJ"}
@@ -0,0 +1,261 @@
1
+ import { entriesFor, originKey, rulesServe } from "@intentic/sandbox-contract/policy/keyring-origins";
2
+ import { z } from "zod";
3
+ import { NOT_SET_UP, refuse } from "./access.js";
4
+ import { candidateOf, DEFAULT_SETTINGS, entryInfoOf, liveEntries, placeWords, settingsOf, titleOf, usedEntry, withEntry } from "./entries.js";
5
+ import { KeyringSettingsSchema } from "../protocol.js";
6
+ import { HISTORY_MAX } from "../vault.js";
7
+ const REMEMBER_SOURCES = ["browser", "terminal", "apps", "phone", "sandbox"];
8
+ const patchedSettings = (current, patch) => {
9
+ const next = {
10
+ remember: {
11
+ browser: patch.remember?.browser ?? current.remember.browser,
12
+ terminal: patch.remember?.terminal ?? current.remember.terminal,
13
+ apps: patch.remember?.apps ?? current.remember.apps,
14
+ phone: patch.remember?.phone ?? current.remember.phone,
15
+ sandbox: patch.remember?.sandbox ?? current.remember.sandbox,
16
+ },
17
+ neverSave: [...new Map((patch.neverSave ?? current.neverSave).map((origin) => [originKey(origin), origin])).values()],
18
+ autoLockMinutes: patch.autoLockMinutes ?? current.autoLockMinutes,
19
+ lockOnSleep: patch.lockOnSleep ?? current.lockOnSleep,
20
+ };
21
+ if (current.rememberAskedAt !== undefined) {
22
+ next.rememberAskedAt = current.rememberAskedAt;
23
+ }
24
+ return next;
25
+ };
26
+ const settingsWidening = (current, next) => {
27
+ const switched = REMEMBER_SOURCES.filter((source) => next.remember[source] && !current.remember[source]);
28
+ const kept = new Set(next.neverSave.map(originKey));
29
+ const freed = current.neverSave.filter((origin) => !kept.has(originKey(origin)));
30
+ return [
31
+ ...(switched.length === 0 ? [] : [`remembers the passwords you type in: ${switched.join(", ")}`]),
32
+ ...(freed.length === 0 ? [] : [`saves again for ${freed.map(placeWords).join(", ")}`]),
33
+ ];
34
+ };
35
+ const AuditLineSchema = z.object({
36
+ at: z.string(),
37
+ op: z.string(),
38
+ outcome: z.string(),
39
+ secret: z.string().optional(),
40
+ sandbox: z.string().optional(),
41
+ program: z.string().optional(),
42
+ target: z.string().optional(),
43
+ asked: z.boolean().optional(),
44
+ code: z.string().optional(),
45
+ });
46
+ const activityOf = (lines, name, limit) => {
47
+ const items = [];
48
+ for (let index = lines.length - 1; index >= 0 && items.length < limit; index--) {
49
+ let json;
50
+ try {
51
+ json = JSON.parse(lines[index] ?? "");
52
+ }
53
+ catch {
54
+ continue;
55
+ }
56
+ const parsed = AuditLineSchema.safeParse(json);
57
+ if (parsed.success && (name === undefined || parsed.data.secret === name)) {
58
+ const { at, ...rest } = parsed.data;
59
+ const item = { ...rest, at: Date.parse(at) };
60
+ items.push(item);
61
+ }
62
+ }
63
+ return items;
64
+ };
65
+ export class AppOps {
66
+ vault;
67
+ constructor(vault) {
68
+ this.vault = vault;
69
+ }
70
+ #shown() {
71
+ const held = this.vault.held();
72
+ return held === undefined ? (this.vault.file()?.open.entries ?? []) : liveEntries(held.doc).map(entryInfoOf);
73
+ }
74
+ #entry(name) {
75
+ return this.#shown().find((entry) => entry.name === name);
76
+ }
77
+ async reveal(name, version) {
78
+ const file = this.vault.file();
79
+ const shown = this.#entry(name);
80
+ if (file === undefined || shown === undefined) {
81
+ return refuse("unknown", `There is no password named ${name}.`);
82
+ }
83
+ const earlier = version === undefined ? "" : " (an earlier one)";
84
+ const opened = await this.vault.open(file, { title: `Show ${titleOf(shown)}'s password?`, message: `The Passwords app on this computer asks to show ${titleOf(shown)}'s password${earlier}.`, person: true });
85
+ if ("ok" in opened) {
86
+ return opened;
87
+ }
88
+ const entry = opened.doc.entries[name];
89
+ if (entry === undefined || entry.deleted === true) {
90
+ return refuse("unknown", `There is no password named ${name}.`);
91
+ }
92
+ const value = version === undefined ? await this.vault.valueOf(opened.doc, entry) : historyValue(entry, version);
93
+ if (!value.ok) {
94
+ return value;
95
+ }
96
+ await this.vault.record({ op: "reveal", outcome: "granted", secret: name, asked: true, how: opened.how });
97
+ return withUsername({ ok: true, value: value.value }, entry.rules.username);
98
+ }
99
+ async copy(name, field, clearAfterSeconds) {
100
+ const file = this.vault.file();
101
+ const shown = this.#entry(name);
102
+ if (file === undefined || shown === undefined) {
103
+ return refuse("unknown", `There is no password named ${name}.`);
104
+ }
105
+ const clipboard = this.vault.deps.typist.clipboard;
106
+ if (clipboard === undefined) {
107
+ return refuse("unavailable", "Passwords cannot reach this computer's clipboard.");
108
+ }
109
+ let value;
110
+ if (field === "username") {
111
+ if (shown.username === undefined) {
112
+ return refuse("unknown", `${titleOf(shown)} has no user name.`);
113
+ }
114
+ value = shown.username;
115
+ }
116
+ else {
117
+ const opened = await this.vault.open(file, { title: `Copy ${titleOf(shown)}'s password?`, message: `It goes on the clipboard for ${String(clearAfterSeconds)} seconds.`, person: true });
118
+ if ("ok" in opened) {
119
+ return opened;
120
+ }
121
+ const entry = opened.doc.entries[name];
122
+ const read = entry === undefined || entry.deleted === true ? refuse("unknown", `There is no password named ${name}.`) : await this.vault.valueOf(opened.doc, entry);
123
+ if (!read.ok) {
124
+ return read;
125
+ }
126
+ value = read.value;
127
+ }
128
+ const written = await clipboard.write(value);
129
+ if (!written.ok) {
130
+ return refuse("unavailable", written.reason);
131
+ }
132
+ const clearsAt = this.vault.deps.now() + clearAfterSeconds * 1000;
133
+ void this.vault.deps.sleep(clearAfterSeconds * 1000).then(async () => await clipboard.clearIf(value));
134
+ await this.vault.record({ op: "copy", outcome: "granted", secret: name, target: field, asked: field === "password" });
135
+ return { ok: true, clearsAt };
136
+ }
137
+ async history(name) {
138
+ const file = this.vault.file();
139
+ if (file === undefined || this.#entry(name) === undefined) {
140
+ return refuse("unknown", `There is no password named ${name}.`);
141
+ }
142
+ const opened = await this.vault.open(file, { title: "Unlock Passwords?", message: `Passwords is locked: unlock it to see ${name}'s earlier passwords.`, person: false });
143
+ if ("ok" in opened) {
144
+ return opened;
145
+ }
146
+ const versions = (opened.doc.entries[name]?.history ?? []).map((item, version) => {
147
+ const row = { version, at: item.at };
148
+ if (item.captured !== undefined) {
149
+ row.captured = item.captured;
150
+ }
151
+ return row;
152
+ });
153
+ return { ok: true, versions };
154
+ }
155
+ async restore(name, version) {
156
+ const file = this.vault.file();
157
+ const shown = this.#entry(name);
158
+ if (file === undefined || shown === undefined) {
159
+ return refuse("unknown", `There is no password named ${name}.`);
160
+ }
161
+ const opened = await this.vault.open(file, { title: `Put back an earlier password for ${titleOf(shown)}?`, message: "The one it has now is kept in its history.", person: true });
162
+ if ("ok" in opened) {
163
+ return opened;
164
+ }
165
+ const entry = opened.doc.entries[name];
166
+ const restored = entry === undefined ? undefined : restoredEntry(entry, version, this.vault.deps.now(), opened.doc.revision + 1);
167
+ if (restored === undefined) {
168
+ return refuse("unknown", `${name} has no earlier password ${String(version)}.`);
169
+ }
170
+ await this.vault.commit({ doc: withEntry(opened.doc, restored), key: opened.key });
171
+ await this.vault.record({ op: "restore", outcome: "done", secret: name, asked: true });
172
+ return { ok: true };
173
+ }
174
+ settings() {
175
+ const held = this.vault.held();
176
+ return held === undefined ? (this.vault.file()?.open.settings ?? DEFAULT_SETTINGS) : settingsOf(held.doc);
177
+ }
178
+ async setSettings(patch) {
179
+ const file = this.vault.file();
180
+ if (file === undefined) {
181
+ return refuse("locked", NOT_SET_UP);
182
+ }
183
+ const widening = settingsWidening(this.settings(), patchedSettings(this.settings(), patch));
184
+ const opened = await this.vault.open(file, {
185
+ title: "Change what Passwords remembers?",
186
+ message: widening.length === 0 ? "This change only lets Passwords remember less." : `This change ${widening.join("; ")}.`,
187
+ person: widening.length > 0,
188
+ });
189
+ if ("ok" in opened) {
190
+ return opened;
191
+ }
192
+ const current = settingsOf(opened.doc);
193
+ const next = patchedSettings(current, patch);
194
+ if (!opened.asked && settingsWidening(current, next).length > 0) {
195
+ return refuse("declined", "The settings on file differ from what this change was judged against: ask again.");
196
+ }
197
+ if (patch.remember !== undefined && next.rememberAskedAt === undefined) {
198
+ next.rememberAskedAt = this.vault.deps.now();
199
+ }
200
+ const settings = KeyringSettingsSchema.parse(next);
201
+ await this.vault.commit({ doc: { ...opened.doc, settings }, key: opened.key });
202
+ await this.vault.record({ op: "set-settings", outcome: "done", asked: opened.asked, reason: widening.join("; ") });
203
+ return { ok: true, settings };
204
+ }
205
+ async activity(name, limit) {
206
+ const lines = (await this.vault.deps.audit.lines?.()) ?? [];
207
+ return { ok: true, lines: activityOf(lines, name, limit) };
208
+ }
209
+ candidates(origin) {
210
+ const matches = entriesFor(this.#shown().map(candidateOf), origin).map((match) => {
211
+ const row = { name: match.name, title: match.title ?? match.name };
212
+ if (match.username !== undefined) {
213
+ row.username = match.username;
214
+ }
215
+ return row;
216
+ });
217
+ return { ok: true, matches };
218
+ }
219
+ async fillValue(origin, name) {
220
+ const file = this.vault.file();
221
+ const shown = this.#entry(name);
222
+ if (file === undefined || shown === undefined || !rulesServe(candidateOf(shown).rules, origin)) {
223
+ return refuse("unknown", `${name} is not saved for ${placeWords(origin)}.`);
224
+ }
225
+ const opened = await this.vault.open(file, { title: `Fill ${titleOf(shown)} on ${placeWords(origin)}?`, message: `Your browser asks to fill ${titleOf(shown)}${shown.username === undefined ? "" : ` (${shown.username})`} on ${placeWords(origin)}.`, person: true });
226
+ if ("ok" in opened) {
227
+ return opened;
228
+ }
229
+ const entry = opened.doc.entries[name];
230
+ if (entry === undefined || entry.deleted === true || !rulesServe(candidateOf(entryInfoOf(entry)).rules, origin)) {
231
+ return refuse("unknown", `${name} is not saved for ${placeWords(origin)}.`);
232
+ }
233
+ const value = await this.vault.valueOf(opened.doc, entry);
234
+ if (!value.ok) {
235
+ return value;
236
+ }
237
+ await this.vault.commit({ doc: withEntry(opened.doc, usedEntry(entry, this.vault.deps.now())), key: opened.key });
238
+ await this.vault.record({ op: "fill", outcome: "granted", secret: name, target: placeWords(origin), asked: true, how: opened.how });
239
+ return withUsername({ ok: true, value: value.value }, entry.rules.username);
240
+ }
241
+ }
242
+ const withUsername = (answer, username) => {
243
+ if (username !== undefined) {
244
+ answer.username = username;
245
+ }
246
+ return answer;
247
+ };
248
+ const historyValue = (entry, version) => {
249
+ const item = entry.history?.[version];
250
+ return item === undefined ? refuse("unknown", `${entry.name} has no earlier password ${String(version)}.`) : { ok: true, value: item.value };
251
+ };
252
+ const restoredEntry = (entry, version, now, revision) => {
253
+ const history = entry.history ?? [];
254
+ const item = history[version];
255
+ if (item === undefined || entry.value === undefined) {
256
+ return undefined;
257
+ }
258
+ const kept = [{ value: entry.value, at: entry.updatedAt }, ...history.filter((_other, index) => index !== version)].slice(0, HISTORY_MAX);
259
+ return { ...entry, value: item.value, history: kept, updatedAt: now, revision };
260
+ };
261
+ //# sourceMappingURL=app-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-ops.js","sourceRoot":"","sources":["../../src/passwords/app-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { KeyringCaptureItem, KeyringCaptureOutcome } from "@intentic/sandbox-contract/schemas/keyring";
2
+ import { type Answer, type ValueRead, type VaultAccess } from "./access.js";
3
+ import { type PendingCapture, type VaultDocument } from "../vault.js";
4
+ export declare const UNDO_WINDOW_MS: number;
5
+ export interface CaptureFacts {
6
+ readonly now: number;
7
+ readonly deliberate?: boolean | undefined;
8
+ }
9
+ export interface Applied {
10
+ readonly doc: VaultDocument;
11
+ readonly outcome: KeyringCaptureOutcome;
12
+ readonly name?: string | undefined;
13
+ readonly title?: string | undefined;
14
+ }
15
+ export declare const applyCapture: (doc: VaultDocument, item: CaptureDraft, value: string, facts: CaptureFacts) => Applied;
16
+ export declare const openedValue: (doc: VaultDocument, item: Pick<KeyringCaptureItem, "sealed" | "via" | "at">) => ValueRead;
17
+ export type CaptureDraft = Omit<KeyringCaptureItem, "sealed">;
18
+ export interface Kept {
19
+ readonly outcome: KeyringCaptureOutcome;
20
+ readonly name?: string | undefined;
21
+ readonly title?: string | undefined;
22
+ }
23
+ export declare class Captures {
24
+ #private;
25
+ private readonly vault;
26
+ constructor(vault: VaultAccess);
27
+ capture(asked: KeyringCaptureItem, sandbox: string | undefined): Answer<"capture">;
28
+ keep(draft: CaptureDraft, value: string, deliberate: boolean): Promise<Kept>;
29
+ takeIn(doc: VaultDocument, pending: readonly PendingCapture[]): VaultDocument;
30
+ batch(items: readonly KeyringCaptureItem[], from: string): Answer<"capture-batch">;
31
+ undo(name: string, at: number): Answer<"undo-capture">;
32
+ seen(names: readonly string[]): Answer<"seen">;
33
+ }
34
+ export declare const seenIn: (doc: VaultDocument, names: ReadonlySet<string>) => VaultDocument;
35
+ //# sourceMappingURL=capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/passwords/capture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAwB,MAAM,4CAA4C,CAAC;AAElI,OAAO,EAAE,KAAK,MAAM,EAAmC,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAG7G,OAAO,EAAiC,KAAK,cAAc,EAAsF,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAkBzL,eAAO,MAAM,cAAc,QAAc,CAAC;AAE1C,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,WAAW,OAAO;IACpB,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AA0ED,eAAO,MAAM,YAAY,QAAS,aAAa,QAAQ,YAAY,SAAS,MAAM,SAAS,YAAY,KAAG,OA0BzG,CAAC;AAkBF,eAAO,MAAM,WAAW,QAAS,aAAa,QAAQ,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,KAAG,SAQzG,CAAC;AAcF,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAE9D,MAAM,WAAW,IAAI;IACjB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,qBAAa,QAAQ;;IAGL,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAlC,YAA6B,KAAK,EAAE,WAAW,EAAI;IAe7C,OAAO,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAsCvF;IA2BK,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBjF;IAGD,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,aAAa,CAU5E;IAIK,KAAK,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,CA0BvF;IAEK,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAgB3D;IAGK,IAAI,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAiBnD;CACJ;AAGD,eAAO,MAAM,MAAM,QAAS,aAAa,SAAS,WAAW,CAAC,MAAM,CAAC,KAAG,aAUvE,CAAC"}