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