@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.
- package/README.md +141 -45
- package/dist/address.d.ts +0 -1
- package/dist/address.d.ts.map +1 -1
- package/dist/address.js +1 -1
- package/dist/address.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +49 -48
- package/dist/app.js.map +1 -1
- package/dist/askpass/answer.d.ts +12 -0
- package/dist/askpass/answer.d.ts.map +1 -0
- package/dist/askpass/answer.js +204 -0
- package/dist/askpass/answer.js.map +1 -0
- package/dist/askpass/askpass.d.ts +6 -0
- package/dist/askpass/askpass.d.ts.map +1 -1
- package/dist/askpass/askpass.js +28 -0
- package/dist/askpass/askpass.js.map +1 -1
- package/dist/audit.d.ts +5 -2
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +15 -2
- package/dist/audit.js.map +1 -1
- package/dist/consent/consent-posix.d.ts +7 -3
- package/dist/consent/consent-posix.d.ts.map +1 -1
- package/dist/consent/consent-posix.js +82 -12
- package/dist/consent/consent-posix.js.map +1 -1
- package/dist/consent/consent-windows.d.ts +3 -1
- package/dist/consent/consent-windows.d.ts.map +1 -1
- package/dist/consent/consent-windows.js +174 -62
- package/dist/consent/consent-windows.js.map +1 -1
- package/dist/consent/consent.d.ts +41 -2
- package/dist/consent/consent.d.ts.map +1 -1
- package/dist/consent/consent.js +7 -5
- package/dist/consent/consent.js.map +1 -1
- package/dist/core.d.ts +3 -30
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +189 -62
- package/dist/core.js.map +1 -1
- package/dist/git-credential/git-credential.d.ts +18 -0
- package/dist/git-credential/git-credential.d.ts.map +1 -0
- package/dist/git-credential/git-credential.js +68 -0
- package/dist/git-credential/git-credential.js.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/native-host/framing.d.ts +10 -0
- package/dist/native-host/framing.d.ts.map +1 -0
- package/dist/native-host/framing.js +33 -0
- package/dist/native-host/framing.js.map +1 -0
- package/dist/native-host/native-host.d.ts +11 -0
- package/dist/native-host/native-host.d.ts.map +1 -0
- package/dist/native-host/native-host.js +130 -0
- package/dist/native-host/native-host.js.map +1 -0
- package/dist/passwords/access.d.ts +73 -0
- package/dist/passwords/access.d.ts.map +1 -0
- package/dist/passwords/access.js +3 -0
- package/dist/passwords/access.js.map +1 -0
- package/dist/passwords/app-ops.d.ts +18 -0
- package/dist/passwords/app-ops.d.ts.map +1 -0
- package/dist/passwords/app-ops.js +261 -0
- package/dist/passwords/app-ops.js.map +1 -0
- package/dist/passwords/capture.d.ts +35 -0
- package/dist/passwords/capture.d.ts.map +1 -0
- package/dist/passwords/capture.js +306 -0
- package/dist/passwords/capture.js.map +1 -0
- package/dist/passwords/entries.d.ts +20 -0
- package/dist/passwords/entries.d.ts.map +1 -0
- package/dist/passwords/entries.js +57 -0
- package/dist/passwords/entries.js.map +1 -0
- package/dist/passwords/fills.d.ts +10 -0
- package/dist/passwords/fills.d.ts.map +1 -0
- package/dist/passwords/fills.js +87 -0
- package/dist/passwords/fills.js.map +1 -0
- package/dist/passwords/needs.d.ts +11 -0
- package/dist/passwords/needs.d.ts.map +1 -0
- package/dist/passwords/needs.js +232 -0
- package/dist/passwords/needs.js.map +1 -0
- package/dist/passwords/phone.d.ts +19 -0
- package/dist/passwords/phone.d.ts.map +1 -0
- package/dist/passwords/phone.js +125 -0
- package/dist/passwords/phone.js.map +1 -0
- package/dist/protocol.d.ts +1169 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +86 -1
- package/dist/protocol.js.map +1 -1
- package/dist/service/channel.d.ts +10 -3
- package/dist/service/channel.d.ts.map +1 -1
- package/dist/service/channel.js +31 -13
- package/dist/service/channel.js.map +1 -1
- package/dist/service/door.d.ts +45 -4
- package/dist/service/door.d.ts.map +1 -1
- package/dist/service/door.js +31 -2
- package/dist/service/door.js.map +1 -1
- package/dist/service/helper.d.ts +18 -1
- package/dist/service/helper.d.ts.map +1 -1
- package/dist/service/helper.js +68 -28
- package/dist/service/helper.js.map +1 -1
- package/dist/service/linux/install-linux.d.ts +12 -0
- package/dist/service/linux/install-linux.d.ts.map +1 -0
- package/dist/service/linux/install-linux.js +133 -0
- package/dist/service/linux/install-linux.js.map +1 -0
- package/dist/service/linux/paths-linux.d.ts +21 -0
- package/dist/service/linux/paths-linux.d.ts.map +1 -0
- package/dist/service/linux/paths-linux.js +31 -0
- package/dist/service/linux/paths-linux.js.map +1 -0
- package/dist/service/linux/polkit-linux.d.ts +29 -0
- package/dist/service/linux/polkit-linux.d.ts.map +1 -0
- package/dist/service/linux/polkit-linux.js +89 -0
- package/dist/service/linux/polkit-linux.js.map +1 -0
- package/dist/service/linux/service-run-linux.d.ts +4 -0
- package/dist/service/linux/service-run-linux.d.ts.map +1 -0
- package/dist/service/linux/service-run-linux.js +52 -0
- package/dist/service/linux/service-run-linux.js.map +1 -0
- package/dist/service/linux/session-linux.d.ts +4 -0
- package/dist/service/linux/session-linux.d.ts.map +1 -0
- package/dist/service/linux/session-linux.js +13 -0
- package/dist/service/linux/session-linux.js.map +1 -0
- package/dist/service/linux/unit-linux.d.ts +16 -0
- package/dist/service/linux/unit-linux.d.ts.map +1 -0
- package/dist/service/linux/unit-linux.js +67 -0
- package/dist/service/linux/unit-linux.js.map +1 -0
- package/dist/service/platform.d.ts +7 -0
- package/dist/service/platform.d.ts.map +1 -0
- package/dist/service/platform.js +62 -0
- package/dist/service/platform.js.map +1 -0
- package/dist/service/recovery.d.ts +3 -0
- package/dist/service/recovery.d.ts.map +1 -0
- package/dist/service/recovery.js +22 -0
- package/dist/service/recovery.js.map +1 -0
- package/dist/service/remote.d.ts +4 -1
- package/dist/service/remote.d.ts.map +1 -1
- package/dist/service/remote.js +41 -6
- package/dist/service/remote.js.map +1 -1
- package/dist/service/service-key.d.ts +9 -0
- package/dist/service/service-key.d.ts.map +1 -0
- package/dist/service/service-key.js +55 -0
- package/dist/service/service-key.js.map +1 -0
- package/dist/service/service-run.d.ts +20 -2
- package/dist/service/service-run.d.ts.map +1 -1
- package/dist/service/service-run.js +52 -46
- package/dist/service/service-run.js.map +1 -1
- package/dist/service/user.d.ts +8 -0
- package/dist/service/user.d.ts.map +1 -0
- package/dist/service/user.js +39 -0
- package/dist/service/user.js.map +1 -0
- package/dist/service/{acl.d.ts → windows/acl-windows.d.ts} +3 -3
- package/dist/service/windows/acl-windows.d.ts.map +1 -0
- package/dist/service/{acl.js → windows/acl-windows.js} +3 -3
- package/dist/service/windows/acl-windows.js.map +1 -0
- package/dist/service/{install.d.ts → windows/install-windows.d.ts} +4 -2
- package/dist/service/windows/install-windows.d.ts.map +1 -0
- package/dist/service/{install.js → windows/install-windows.js} +13 -12
- package/dist/service/windows/install-windows.js.map +1 -0
- package/dist/service/windows/leftovers-windows.d.ts +8 -0
- package/dist/service/windows/leftovers-windows.d.ts.map +1 -0
- package/dist/service/windows/leftovers-windows.js +44 -0
- package/dist/service/windows/leftovers-windows.js.map +1 -0
- package/dist/service/{paths.d.ts → windows/paths-windows.d.ts} +4 -5
- package/dist/service/windows/paths-windows.d.ts.map +1 -0
- package/dist/service/{paths.js → windows/paths-windows.js} +5 -5
- package/dist/service/windows/paths-windows.js.map +1 -0
- package/dist/service/windows/service-run-windows.d.ts +4 -0
- package/dist/service/windows/service-run-windows.d.ts.map +1 -0
- package/dist/service/windows/service-run-windows.js +46 -0
- package/dist/service/windows/service-run-windows.js.map +1 -0
- package/dist/service/windows/session-windows.d.ts +4 -0
- package/dist/service/windows/session-windows.d.ts.map +1 -0
- package/dist/service/windows/session-windows.js +13 -0
- package/dist/service/windows/session-windows.js.map +1 -0
- package/dist/service/windows/sid-windows.d.ts +3 -0
- package/dist/service/windows/sid-windows.d.ts.map +1 -0
- package/dist/service/{sid.js → windows/sid-windows.js} +2 -2
- package/dist/service/windows/sid-windows.js.map +1 -0
- package/dist/service/{task.d.ts → windows/task-windows.d.ts} +4 -3
- package/dist/service/windows/task-windows.d.ts.map +1 -0
- package/dist/service/{task.js → windows/task-windows.js} +19 -2
- package/dist/service/windows/task-windows.js.map +1 -0
- package/dist/service/wire.d.ts +32 -0
- package/dist/service/wire.d.ts.map +1 -1
- package/dist/service/wire.js +15 -0
- package/dist/service/wire.js.map +1 -1
- package/dist/typing/clipboard.d.ts +13 -0
- package/dist/typing/clipboard.d.ts.map +1 -0
- package/dist/typing/clipboard.js +56 -0
- package/dist/typing/clipboard.js.map +1 -0
- package/dist/typing/index.d.ts.map +1 -1
- package/dist/typing/index.js +2 -1
- package/dist/typing/index.js.map +1 -1
- package/dist/typing/typist.d.ts +3 -1
- package/dist/typing/typist.d.ts.map +1 -1
- package/dist/typing/typist.js +2 -1
- package/dist/typing/typist.js.map +1 -1
- package/dist/vault.d.ts +785 -0
- package/dist/vault.d.ts.map +1 -1
- package/dist/vault.js +24 -2
- package/dist/vault.js.map +1 -1
- package/dist/watch/apps.d.ts +10 -0
- package/dist/watch/apps.d.ts.map +1 -0
- package/dist/watch/apps.js +95 -0
- package/dist/watch/apps.js.map +1 -0
- package/dist/watch/chip.d.ts +52 -0
- package/dist/watch/chip.d.ts.map +1 -0
- package/dist/watch/chip.js +76 -0
- package/dist/watch/chip.js.map +1 -0
- package/dist/watch/lines-child.d.ts +9 -0
- package/dist/watch/lines-child.d.ts.map +1 -0
- package/dist/watch/lines-child.js +34 -0
- package/dist/watch/lines-child.js.map +1 -0
- package/dist/watch/watch-linux.d.ts +6 -0
- package/dist/watch/watch-linux.d.ts.map +1 -0
- package/dist/watch/watch-linux.js +52 -0
- package/dist/watch/watch-linux.js.map +1 -0
- package/dist/watch/watch-windows.d.ts +6 -0
- package/dist/watch/watch-windows.d.ts.map +1 -0
- package/dist/watch/watch-windows.js +110 -0
- package/dist/watch/watch-windows.js.map +1 -0
- package/package.json +5 -5
- package/dist/serve.d.ts +0 -17
- package/dist/serve.d.ts.map +0 -1
- package/dist/serve.js +0 -65
- package/dist/serve.js.map +0 -1
- package/dist/service/acl.d.ts.map +0 -1
- package/dist/service/acl.js.map +0 -1
- package/dist/service/install.d.ts.map +0 -1
- package/dist/service/install.js.map +0 -1
- package/dist/service/paths.d.ts.map +0 -1
- package/dist/service/paths.js.map +0 -1
- package/dist/service/sid.d.ts +0 -3
- package/dist/service/sid.d.ts.map +0 -1
- package/dist/service/sid.js.map +0 -1
- package/dist/service/task.d.ts.map +0 -1
- 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 @@
|
|
|
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"}
|