@intentic/machine 1.343.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 +134 -29
- 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 +2 -1
- package/dist/device/commands.d.ts.map +1 -1
- package/dist/device/commands.js +4 -2
- 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 +259 -0
- 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 +484 -225
- 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 +12 -6
- 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 +1 -1
- package/dist/device/tools/ic-binary.d.ts.map +1 -1
- package/dist/device/tools/ic-binary.js +6 -4
- package/dist/device/tools/ic-binary.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 +1 -0
- package/dist/device/tools/sandboxes.d.ts.map +1 -1
- package/dist/device/tools/sandboxes.js +4 -1
- 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 +6 -0
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +7 -2
- 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 -0
- package/dist/resident/resident.js.map +1 -1
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +22 -1
- package/dist/status.js.map +1 -1
- package/dist/sync/attach-commands.d.ts.map +1 -1
- package/dist/sync/attach-commands.js +2 -1
- package/dist/sync/attach-commands.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 +2 -1
- package/dist/sync/commands.d.ts.map +1 -1
- package/dist/sync/commands.js +29 -64
- package/dist/sync/commands.js.map +1 -1
- package/dist/sync/config.d.ts +19 -1
- package/dist/sync/config.d.ts.map +1 -1
- package/dist/sync/config.js +19 -4
- package/dist/sync/config.js.map +1 -1
- package/dist/sync/exec.d.ts +17 -0
- package/dist/sync/exec.d.ts.map +1 -1
- package/dist/sync/exec.js +56 -2
- package/dist/sync/exec.js.map +1 -1
- package/dist/sync/forget-command.js +1 -1
- package/dist/sync/forget-command.js.map +1 -1
- package/dist/sync/git-bridge.d.ts +35 -3
- package/dist/sync/git-bridge.d.ts.map +1 -1
- package/dist/sync/git-bridge.js +201 -16
- package/dist/sync/git-bridge.js.map +1 -1
- package/dist/sync/gone-watch.d.ts +1 -0
- package/dist/sync/gone-watch.d.ts.map +1 -1
- package/dist/sync/gone-watch.js +20 -7
- package/dist/sync/gone-watch.js.map +1 -1
- package/dist/sync/low-disk.d.ts +25 -0
- package/dist/sync/low-disk.d.ts.map +1 -0
- package/dist/sync/low-disk.js +91 -0
- package/dist/sync/low-disk.js.map +1 -0
- package/dist/sync/mirror.d.ts +2 -0
- package/dist/sync/mirror.d.ts.map +1 -1
- package/dist/sync/mirror.js +76 -27
- package/dist/sync/mirror.js.map +1 -1
- package/dist/sync/mutagen-env.d.ts +9 -0
- package/dist/sync/mutagen-env.d.ts.map +1 -0
- package/dist/sync/mutagen-env.js +25 -0
- package/dist/sync/mutagen-env.js.map +1 -0
- package/dist/sync/mutagen-move.d.ts +53 -0
- package/dist/sync/mutagen-move.d.ts.map +1 -0
- package/dist/sync/mutagen-move.js +207 -0
- package/dist/sync/mutagen-move.js.map +1 -0
- package/dist/sync/mutagen.d.ts +13 -10
- package/dist/sync/mutagen.d.ts.map +1 -1
- package/dist/sync/mutagen.js +60 -113
- package/dist/sync/mutagen.js.map +1 -1
- package/dist/sync/project/project-commands.d.ts.map +1 -1
- package/dist/sync/project/project-commands.js +2 -1
- 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 +2 -1
- package/dist/sync/project/project-delivery.js.map +1 -1
- package/dist/sync/project/project-remote.d.ts.map +1 -1
- package/dist/sync/project/project-remote.js +2 -1
- package/dist/sync/project/project-remote.js.map +1 -1
- package/dist/sync/report.d.ts.map +1 -1
- package/dist/sync/report.js +15 -4
- package/dist/sync/report.js.map +1 -1
- package/dist/sync/uninstall.d.ts +9 -0
- package/dist/sync/uninstall.d.ts.map +1 -0
- package/dist/sync/uninstall.js +76 -0
- package/dist/sync/uninstall.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/dist/upkeep/login.d.ts +0 -9
- package/dist/upkeep/login.d.ts.map +1 -1
- package/dist/upkeep/login.js +12 -59
- package/dist/upkeep/login.js.map +1 -1
- package/package.json +9 -9
package/dist/keyring/commands.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { plural } from "@intentic/base/format";
|
|
2
|
-
import { askKeyring, keyringPaths, KeyringUnavailable, sealForKeyring } from "@intentic/keyring";
|
|
2
|
+
import { askKeyring, keyringPaths, KeyringUnavailable, newRecoveryKey, sealForKeyring } from "@intentic/keyring";
|
|
3
3
|
import { civilDayIn, localZone } from "@intentic/sandbox-contract/time/zone";
|
|
4
4
|
import { buildChoiceParser, buildRouteMap, numberParser } from "@stricli/core";
|
|
5
5
|
import { buildCommand } from "../cli-ui.js";
|
|
@@ -9,8 +9,11 @@ import { keyringAnswer } from "./answer.js";
|
|
|
9
9
|
import { askpassStatus, installAskpass, uninstallAskpass } from "./askpass.js";
|
|
10
10
|
import { addPlan, backendConfig, editPatch, editTakesValue, entryName, KeyringCliError, shareTarget, unshareTarget, } from "./flags.js";
|
|
11
11
|
import { readConfirmed, readStdin } from "./secret-input.js";
|
|
12
|
-
import { clock, keyringLine, keyringStatusLine, readAskpassAnswer, readKeyringStatus } from "./keyring-status.js";
|
|
13
|
-
import {
|
|
12
|
+
import { clock, keyringLine, keyringStatusLine, readAskpassAnswer, readKeyringStatus, supportOf } from "./keyring-status.js";
|
|
13
|
+
import { ensureService, installKeyring, keyringState, uninstallKeyring, upgradeKeyring } from "./service.js";
|
|
14
|
+
import { appCommands } from "./app-commands.js";
|
|
15
|
+
import { uninstallGitHelper } from "./git-helper.js";
|
|
16
|
+
import { uninstallNativeHost } from "./native-host-install.js";
|
|
14
17
|
const pipe = () => ({ address: keyringPaths().address });
|
|
15
18
|
const json = { kind: "boolean", brief: "Print one JSON line, `ok` first (what the desktop app reads)", default: false };
|
|
16
19
|
const NAME = { brief: "The entry's name, as `{{secret:NAME}}` spells it", parse: String, placeholder: "NAME" };
|
|
@@ -38,30 +41,22 @@ const sealedValue = async (ui, name, from, what) => {
|
|
|
38
41
|
const value = from === "stdin" ? await readStdin() : await prompted(ui, async () => await readConfirmed(what));
|
|
39
42
|
return sealForKeyring(key, name, value);
|
|
40
43
|
};
|
|
41
|
-
const PASSPHRASE_MIN = 10;
|
|
42
|
-
const choosePassphrase = async (ui, fromStdin) => {
|
|
43
|
-
if (!fromStdin) {
|
|
44
|
-
ui.note(`Choose the keyring's passphrase: ${PASSPHRASE_MIN} characters or more. It opens the vault where Windows Hello cannot, and nothing can recover it.`);
|
|
45
|
-
}
|
|
46
|
-
const passphrase = fromStdin ? await readStdin() : await prompted(ui, async () => await readConfirmed("Passphrase"));
|
|
47
|
-
if (passphrase.length < PASSPHRASE_MIN) {
|
|
48
|
-
throw new KeyringCliError("usage", `The passphrase is shorter than ${PASSPHRASE_MIN} characters: choose a longer one.`);
|
|
49
|
-
}
|
|
50
|
-
return passphrase;
|
|
51
|
-
};
|
|
52
44
|
const setup = buildCommand({
|
|
53
|
-
docs: { brief: "Install
|
|
45
|
+
docs: { brief: "Install Passwords' protected service (an administrator's yes, once), start it at login, and set up its vault" },
|
|
54
46
|
parameters: {
|
|
55
47
|
flags: {
|
|
56
|
-
|
|
57
|
-
hello: { kind: "boolean", brief: "Also unlock with Windows Hello where this computer has it (--no-hello: the passphrase alone)", default: true },
|
|
48
|
+
hello: { kind: "boolean", brief: "Unlock with Windows Hello where this computer has it (--no-hello: the recovery key alone)", default: true },
|
|
58
49
|
json,
|
|
59
50
|
},
|
|
60
51
|
},
|
|
61
52
|
async func(flags) {
|
|
62
|
-
await keyringAnswer(this, flags.json, { doing: "Setting up
|
|
53
|
+
await keyringAnswer(this, flags.json, { doing: "Setting up Passwords", failed: "Passwords was not set up." }, async (ui) => {
|
|
54
|
+
const support = supportOf(process.platform);
|
|
55
|
+
if (!support.canSetUp) {
|
|
56
|
+
throw new KeyringCliError("unavailable", support.why ?? "Passwords cannot be set up on this computer.");
|
|
57
|
+
}
|
|
63
58
|
const installed = await installKeyring(MACHINE_VERSION, ui.note);
|
|
64
|
-
const started = await
|
|
59
|
+
const started = await ensureService(ui.note);
|
|
65
60
|
if (!started.state.ok) {
|
|
66
61
|
return started.state;
|
|
67
62
|
}
|
|
@@ -69,17 +64,21 @@ const setup = buildCommand({
|
|
|
69
64
|
if (started.state.setUp) {
|
|
70
65
|
return { ...base, alreadySetUp: true, askpass: await readAskpassAnswer(), state: started.state.state };
|
|
71
66
|
}
|
|
72
|
-
const
|
|
73
|
-
const done = await askKeyring(pipe(), { op: "setup", passphrase, hello: flags.hello && process.platform === "win32" });
|
|
67
|
+
const recoveryKey = newRecoveryKey();
|
|
68
|
+
const done = await askKeyring(pipe(), { op: "setup", passphrase: recoveryKey, hello: flags.hello && process.platform === "win32" });
|
|
74
69
|
if (!done.ok) {
|
|
75
70
|
return done;
|
|
76
71
|
}
|
|
77
72
|
const after = await keyringState();
|
|
78
73
|
const state = after instanceof KeyringUnavailable || !after.ok ? undefined : after.state;
|
|
79
|
-
const answer = { ...base, alreadySetUp: false, askpass: await readAskpassAnswer() };
|
|
74
|
+
const answer = { ...base, alreadySetUp: false, askpass: await readAskpassAnswer(), recoveryKey };
|
|
80
75
|
return state === undefined ? answer : { ...answer, state };
|
|
81
76
|
}, (result, ui) => {
|
|
82
|
-
|
|
77
|
+
if (result.recoveryKey !== undefined) {
|
|
78
|
+
ui.note(`Your recovery key: ${result.recoveryKey}`);
|
|
79
|
+
ui.note("Write it down and keep it somewhere safe. It is shown only now, and it is the only way into your passwords if this computer's sign-in check is ever reset.");
|
|
80
|
+
}
|
|
81
|
+
ui.done(result.alreadySetUp ? `Passwords was set up already, and is running from ${result.path}.` : `Set up Passwords at ${result.path}; it starts at every sign-in.`);
|
|
83
82
|
ui.later([
|
|
84
83
|
["keep a password in it", "intentic-machine keyring add NAME"],
|
|
85
84
|
...(result.askpass.installed ? [] : [["let ssh, sudo and git ask it", "intentic-machine keyring askpass install"]]),
|
|
@@ -340,22 +339,17 @@ const upgrade = buildCommand({
|
|
|
340
339
|
await keyringAnswer(this, flags.json, { doing: `Updating the keyring to ${MACHINE_VERSION}`, failed: "The keyring was not updated." }, async (ui) => await upgradeKeyring(MACHINE_VERSION, ui.note), (result, ui) => ui.done(result.upgraded ? `Updated the keyring from ${result.from} to ${result.to}.` : `The keyring is already on ${result.to}. Nothing to do.`));
|
|
341
340
|
},
|
|
342
341
|
});
|
|
343
|
-
const harden = buildCommand({
|
|
344
|
-
docs: { brief: "Windows: move the vault under a service of its own, out of reach of your user's processes (one UAC prompt)" },
|
|
345
|
-
parameters: { flags: { json } },
|
|
346
|
-
async func(flags) {
|
|
347
|
-
await keyringAnswer(this, flags.json, { doing: "Hardening the keyring", failed: "The keyring was not hardened." }, async (ui) => ({ ok: true, ...(await hardenKeyring(ui.note)) }), (result, ui) => ui.done(`The vault is held by the ${result.service} service now; its helper starts at every sign-in.`));
|
|
348
|
-
},
|
|
349
|
-
});
|
|
350
342
|
const uninstall = buildCommand({
|
|
351
343
|
docs: { brief: "Remove the keyring from this computer, keeping its vault" },
|
|
352
344
|
parameters: { flags: { json } },
|
|
353
345
|
async func(flags) {
|
|
354
346
|
await keyringAnswer(this, flags.json, { doing: "Removing the keyring", failed: "The keyring was not removed." }, async (ui) => {
|
|
355
347
|
await uninstallAskpass();
|
|
348
|
+
await uninstallGitHelper();
|
|
349
|
+
await uninstallNativeHost();
|
|
356
350
|
return { ok: true, ...(await uninstallKeyring(ui.note)) };
|
|
357
351
|
}, (result, ui) => {
|
|
358
|
-
ui.note(`The vault stays in ${result.vault}
|
|
352
|
+
ui.note(`The vault stays in ${result.vault}: set Passwords up again and the same recovery key opens it.`);
|
|
359
353
|
ui.done("Removed the keyring from this computer.");
|
|
360
354
|
});
|
|
361
355
|
},
|
|
@@ -377,8 +371,8 @@ export const keyringCommands = {
|
|
|
377
371
|
docs: { brief: "Let ssh, sudo and git ask the keyring for passwords" },
|
|
378
372
|
}),
|
|
379
373
|
sync: buildRouteMap({ routes: { status: syncStatus }, docs: { brief: "The keyring's sync with your other computers" } }),
|
|
374
|
+
app: appCommands,
|
|
380
375
|
upgrade,
|
|
381
|
-
harden,
|
|
382
376
|
uninstall,
|
|
383
377
|
};
|
|
384
378
|
//# sourceMappingURL=commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/keyring/commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/keyring/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface GitHelperState {
|
|
2
|
+
readonly available: boolean;
|
|
3
|
+
readonly installed: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare const gitHelperStatus: (path?: string) => Promise<GitHelperState>;
|
|
6
|
+
export declare const installGitHelper: (path?: string) => Promise<GitHelperState>;
|
|
7
|
+
export declare const uninstallGitHelper: () => Promise<GitHelperState>;
|
|
8
|
+
//# sourceMappingURL=git-helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-helper.d.ts","sourceRoot":"","sources":["../../src/keyring/git-helper.ts"],"names":[],"mappings":"AAoDA,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,eAAe,UAAgB,MAAM,KAAiB,OAAO,CAAC,cAAc,CAGxF,CAAC;AAGF,eAAO,MAAM,gBAAgB,UAAgB,MAAM,KAAiB,OAAO,CAAC,cAAc,CAUzF,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,cAAc,CAUjE,CAAC"}
|
|
@@ -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"}
|