@intentic/keyring 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 +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
|
@@ -9,61 +9,59 @@ using System.Threading;
|
|
|
9
9
|
using System.Windows.Forms;
|
|
10
10
|
|
|
11
11
|
namespace IntenticKeyring {
|
|
12
|
-
public class
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
thread.IsBackground = true;
|
|
21
|
-
thread.Start();
|
|
22
|
-
notice.shown.WaitOne(5000);
|
|
23
|
-
return notice;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
void Run(string title, string message) {
|
|
27
|
-
form = new Form();
|
|
28
|
-
form.Text = "intentic keyring";
|
|
29
|
-
form.FormBorderStyle = FormBorderStyle.FixedToolWindow;
|
|
12
|
+
public static class Passphrase {
|
|
13
|
+
public static string Ask(string title, string message, int seconds) {
|
|
14
|
+
Application.EnableVisualStyles();
|
|
15
|
+
Form form = new Form();
|
|
16
|
+
form.Text = title;
|
|
17
|
+
form.FormBorderStyle = FormBorderStyle.FixedDialog;
|
|
18
|
+
form.MinimizeBox = false;
|
|
19
|
+
form.MaximizeBox = false;
|
|
30
20
|
form.TopMost = true;
|
|
31
|
-
form.
|
|
32
|
-
form.StartPosition = FormStartPosition.Manual;
|
|
21
|
+
form.StartPosition = FormStartPosition.CenterScreen;
|
|
33
22
|
form.AutoSize = true;
|
|
34
23
|
form.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
|
35
24
|
form.Padding = new Padding(16);
|
|
36
25
|
FlowLayoutPanel panel = new FlowLayoutPanel();
|
|
37
26
|
panel.FlowDirection = FlowDirection.TopDown;
|
|
38
27
|
panel.AutoSize = true;
|
|
39
|
-
Label heading = new Label();
|
|
40
|
-
heading.Text = title;
|
|
41
|
-
heading.AutoSize = true;
|
|
42
|
-
heading.MaximumSize = new Size(480, 0);
|
|
43
|
-
heading.Font = new Font("Segoe UI Semibold", 11f);
|
|
44
28
|
Label body = new Label();
|
|
45
|
-
body.Text = message + "\r\n\r\
|
|
29
|
+
body.Text = message + "\r\n\r\nThe keyring's passphrase:";
|
|
46
30
|
body.AutoSize = true;
|
|
47
31
|
body.MaximumSize = new Size(480, 0);
|
|
48
|
-
|
|
49
|
-
|
|
32
|
+
TextBox box = new TextBox();
|
|
33
|
+
box.UseSystemPasswordChar = true;
|
|
34
|
+
box.Width = 320;
|
|
35
|
+
FlowLayoutPanel buttons = new FlowLayoutPanel();
|
|
36
|
+
buttons.AutoSize = true;
|
|
37
|
+
Button ok = new Button();
|
|
38
|
+
ok.Text = "OK";
|
|
39
|
+
ok.DialogResult = DialogResult.OK;
|
|
40
|
+
Button cancel = new Button();
|
|
41
|
+
cancel.Text = "Cancel";
|
|
42
|
+
cancel.DialogResult = DialogResult.Cancel;
|
|
43
|
+
buttons.Controls.Add(ok);
|
|
44
|
+
buttons.Controls.Add(cancel);
|
|
50
45
|
panel.Controls.Add(body);
|
|
46
|
+
panel.Controls.Add(box);
|
|
47
|
+
panel.Controls.Add(buttons);
|
|
51
48
|
form.Controls.Add(panel);
|
|
52
|
-
form.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
try { if (form != null && form.IsHandleCreated) form.BeginInvoke(new MethodInvoker(form.Close)); } catch (Exception) { } // allow(silent-catch): a notice already gone has nothing left to close
|
|
49
|
+
form.AcceptButton = ok;
|
|
50
|
+
form.CancelButton = cancel;
|
|
51
|
+
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
|
|
52
|
+
timer.Interval = seconds * 1000;
|
|
53
|
+
timer.Tick += delegate(object sender, EventArgs e) { form.DialogResult = DialogResult.Cancel; form.Close(); };
|
|
54
|
+
form.Shown += delegate(object sender, EventArgs e) { form.Activate(); box.Focus(); timer.Start(); };
|
|
55
|
+
DialogResult result = form.ShowDialog();
|
|
56
|
+
timer.Stop();
|
|
57
|
+
return result == DialogResult.OK ? box.Text : null;
|
|
62
58
|
}
|
|
63
59
|
}
|
|
64
60
|
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
// The type-once box: a value (hidden) and, when asked for, a user name, with a "Remember it" tick. Answers null on
|
|
62
|
+
// Cancel, else the three joined by NUL (user, remember, value), which none of them holds.
|
|
63
|
+
public static class ValueBox {
|
|
64
|
+
public static string Ask(string title, string message, bool remember, bool askUser, string user, int seconds) {
|
|
67
65
|
Application.EnableVisualStyles();
|
|
68
66
|
Form form = new Form();
|
|
69
67
|
form.Text = title;
|
|
@@ -79,12 +77,30 @@ namespace IntenticKeyring {
|
|
|
79
77
|
panel.FlowDirection = FlowDirection.TopDown;
|
|
80
78
|
panel.AutoSize = true;
|
|
81
79
|
Label body = new Label();
|
|
82
|
-
body.Text = message
|
|
80
|
+
body.Text = message;
|
|
83
81
|
body.AutoSize = true;
|
|
84
82
|
body.MaximumSize = new Size(480, 0);
|
|
83
|
+
panel.Controls.Add(body);
|
|
84
|
+
TextBox userBox = new TextBox();
|
|
85
|
+
userBox.Width = 320;
|
|
86
|
+
userBox.Text = user == null ? "" : user;
|
|
87
|
+
if (askUser) {
|
|
88
|
+
Label userLabel = new Label();
|
|
89
|
+
userLabel.Text = "User name:";
|
|
90
|
+
userLabel.AutoSize = true;
|
|
91
|
+
panel.Controls.Add(userLabel);
|
|
92
|
+
panel.Controls.Add(userBox);
|
|
93
|
+
}
|
|
94
|
+
Label valueLabel = new Label();
|
|
95
|
+
valueLabel.Text = "Password:";
|
|
96
|
+
valueLabel.AutoSize = true;
|
|
85
97
|
TextBox box = new TextBox();
|
|
86
98
|
box.UseSystemPasswordChar = true;
|
|
87
99
|
box.Width = 320;
|
|
100
|
+
CheckBox keep = new CheckBox();
|
|
101
|
+
keep.Text = "Remember it";
|
|
102
|
+
keep.Checked = remember;
|
|
103
|
+
keep.AutoSize = true;
|
|
88
104
|
FlowLayoutPanel buttons = new FlowLayoutPanel();
|
|
89
105
|
buttons.AutoSize = true;
|
|
90
106
|
Button ok = new Button();
|
|
@@ -95,8 +111,9 @@ namespace IntenticKeyring {
|
|
|
95
111
|
cancel.DialogResult = DialogResult.Cancel;
|
|
96
112
|
buttons.Controls.Add(ok);
|
|
97
113
|
buttons.Controls.Add(cancel);
|
|
98
|
-
panel.Controls.Add(
|
|
114
|
+
panel.Controls.Add(valueLabel);
|
|
99
115
|
panel.Controls.Add(box);
|
|
116
|
+
panel.Controls.Add(keep);
|
|
100
117
|
panel.Controls.Add(buttons);
|
|
101
118
|
form.Controls.Add(panel);
|
|
102
119
|
form.AcceptButton = ok;
|
|
@@ -104,10 +121,56 @@ namespace IntenticKeyring {
|
|
|
104
121
|
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
|
|
105
122
|
timer.Interval = seconds * 1000;
|
|
106
123
|
timer.Tick += delegate(object sender, EventArgs e) { form.DialogResult = DialogResult.Cancel; form.Close(); };
|
|
107
|
-
form.Shown += delegate(object sender, EventArgs e) { form.Activate(); box.Focus(); timer.Start(); };
|
|
124
|
+
form.Shown += delegate(object sender, EventArgs e) { form.Activate(); if (askUser && userBox.Text == "") userBox.Focus(); else box.Focus(); timer.Start(); };
|
|
108
125
|
DialogResult result = form.ShowDialog();
|
|
109
126
|
timer.Stop();
|
|
110
|
-
|
|
127
|
+
if (result != DialogResult.OK || box.Text == "") return null;
|
|
128
|
+
return userBox.Text + "\0" + (keep.Checked ? "1" : "0") + "\0" + box.Text;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// A few buttons, one per answer, in the order given. Answers the chosen one's index, or -1 on Cancel or time out.
|
|
133
|
+
public static class Choice {
|
|
134
|
+
public static int Ask(string title, string message, string[] labels, int seconds) {
|
|
135
|
+
Application.EnableVisualStyles();
|
|
136
|
+
Form form = new Form();
|
|
137
|
+
form.Text = title;
|
|
138
|
+
form.FormBorderStyle = FormBorderStyle.FixedDialog;
|
|
139
|
+
form.MinimizeBox = false;
|
|
140
|
+
form.MaximizeBox = false;
|
|
141
|
+
form.TopMost = true;
|
|
142
|
+
form.StartPosition = FormStartPosition.CenterScreen;
|
|
143
|
+
form.AutoSize = true;
|
|
144
|
+
form.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
|
145
|
+
form.Padding = new Padding(16);
|
|
146
|
+
FlowLayoutPanel panel = new FlowLayoutPanel();
|
|
147
|
+
panel.FlowDirection = FlowDirection.TopDown;
|
|
148
|
+
panel.AutoSize = true;
|
|
149
|
+
Label body = new Label();
|
|
150
|
+
body.Text = message;
|
|
151
|
+
body.AutoSize = true;
|
|
152
|
+
body.MaximumSize = new Size(480, 0);
|
|
153
|
+
panel.Controls.Add(body);
|
|
154
|
+
FlowLayoutPanel buttons = new FlowLayoutPanel();
|
|
155
|
+
buttons.AutoSize = true;
|
|
156
|
+
int chosen = -1;
|
|
157
|
+
for (int i = 0; i < labels.Length; i++) {
|
|
158
|
+
Button button = new Button();
|
|
159
|
+
button.Text = labels[i];
|
|
160
|
+
button.AutoSize = true;
|
|
161
|
+
int index = i;
|
|
162
|
+
button.Click += delegate(object sender, EventArgs e) { chosen = index; form.Close(); };
|
|
163
|
+
buttons.Controls.Add(button);
|
|
164
|
+
}
|
|
165
|
+
panel.Controls.Add(buttons);
|
|
166
|
+
form.Controls.Add(panel);
|
|
167
|
+
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
|
|
168
|
+
timer.Interval = seconds * 1000;
|
|
169
|
+
timer.Tick += delegate(object sender, EventArgs e) { chosen = -1; form.Close(); };
|
|
170
|
+
form.Shown += delegate(object sender, EventArgs e) { form.Activate(); timer.Start(); };
|
|
171
|
+
form.ShowDialog();
|
|
172
|
+
timer.Stop();
|
|
173
|
+
return chosen;
|
|
111
174
|
}
|
|
112
175
|
}
|
|
113
176
|
}
|
|
@@ -142,21 +205,18 @@ try {
|
|
|
142
205
|
$result = Await ([Windows.Security.Credentials.UI.UserConsentVerifier]::RequestVerificationAsync($KeyringInput.message)) ([Windows.Security.Credentials.UI.UserConsentVerificationResult])
|
|
143
206
|
Answer @{ ok = ([string]$result -eq 'Verified'); status = [string]$result }
|
|
144
207
|
} else {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
if ($
|
|
148
|
-
$
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
$answer.publicKey = [Convert]::ToBase64String($buffers::ToArray($made.Credential.RetrievePublicKey([Windows.Security.Cryptography.Core.CryptographicPublicKeyBlobType]::X509SubjectPublicKeyInfo)))
|
|
153
|
-
Answer $answer
|
|
154
|
-
}
|
|
155
|
-
} else {
|
|
156
|
-
$opened = Await ([Windows.Security.Credentials.KeyCredentialManager]::OpenAsync($KeyringInput.credential)) ([Windows.Security.Credentials.KeyCredentialRetrievalResult])
|
|
157
|
-
if ([string]$opened.Status -ne 'Success') { Answer @{ ok = $false; status = [string]$opened.Status } } else { Answer (SignWith $opened.Credential) }
|
|
208
|
+
if ($op -eq 'enrol') {
|
|
209
|
+
$made = Await ([Windows.Security.Credentials.KeyCredentialManager]::RequestCreateAsync($KeyringInput.credential, [Windows.Security.Credentials.KeyCredentialCreationOption]::ReplaceExisting)) ([Windows.Security.Credentials.KeyCredentialRetrievalResult])
|
|
210
|
+
if ([string]$made.Status -ne 'Success') { Answer @{ ok = $false; status = [string]$made.Status } } else {
|
|
211
|
+
$answer = SignWith $made.Credential
|
|
212
|
+
# X.509 SubjectPublicKeyInfo, which the protected service reads with node:crypto to check later signatures.
|
|
213
|
+
$answer.publicKey = [Convert]::ToBase64String($buffers::ToArray($made.Credential.RetrievePublicKey([Windows.Security.Cryptography.Core.CryptographicPublicKeyBlobType]::X509SubjectPublicKeyInfo)))
|
|
214
|
+
Answer $answer
|
|
158
215
|
}
|
|
159
|
-
}
|
|
216
|
+
} else {
|
|
217
|
+
$opened = Await ([Windows.Security.Credentials.KeyCredentialManager]::OpenAsync($KeyringInput.credential)) ([Windows.Security.Credentials.KeyCredentialRetrievalResult])
|
|
218
|
+
if ([string]$opened.Status -ne 'Success') { Answer @{ ok = $false; status = [string]$opened.Status } } else { Answer (SignWith $opened.Credential) }
|
|
219
|
+
}
|
|
160
220
|
}
|
|
161
221
|
} catch {
|
|
162
222
|
Answer @{ ok = $false; error = $_.Exception.Message }
|
|
@@ -170,6 +230,22 @@ try {
|
|
|
170
230
|
Answer @{ ok = $false; error = $_.Exception.Message }
|
|
171
231
|
}
|
|
172
232
|
`;
|
|
233
|
+
const VALUE_SCRIPT = `${PREAMBLE}
|
|
234
|
+
try {
|
|
235
|
+
$typed = [IntenticKeyring.ValueBox]::Ask($KeyringInput.title, $KeyringInput.message, $KeyringInput.remember -eq '1', $KeyringInput.askUser -eq '1', $KeyringInput.user, [int]$KeyringInput.seconds)
|
|
236
|
+
if ($typed -eq $null) { Answer @{ ok = $false; cancelled = $true } } else { Answer @{ ok = $true; passphrase = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($typed)) } }
|
|
237
|
+
} catch {
|
|
238
|
+
Answer @{ ok = $false; error = $_.Exception.Message }
|
|
239
|
+
}
|
|
240
|
+
`;
|
|
241
|
+
const CHOICE_SCRIPT = `${PREAMBLE}
|
|
242
|
+
try {
|
|
243
|
+
$index = [IntenticKeyring.Choice]::Ask($KeyringInput.title, $KeyringInput.message, [string[]]($KeyringInput.labels -split "\n"), [int]$KeyringInput.seconds)
|
|
244
|
+
if ($index -lt 0) { Answer @{ ok = $false; cancelled = $true } } else { Answer @{ ok = $true; status = [string]$index } }
|
|
245
|
+
} catch {
|
|
246
|
+
Answer @{ ok = $false; error = $_.Exception.Message }
|
|
247
|
+
}
|
|
248
|
+
`;
|
|
173
249
|
const AnswerSchema = z.object({
|
|
174
250
|
ok: z.boolean(),
|
|
175
251
|
supported: z.boolean().optional(),
|
|
@@ -204,8 +280,8 @@ export const windowsHello = (runner, now = Date.now) => {
|
|
|
204
280
|
known = { at: now(), available };
|
|
205
281
|
return available;
|
|
206
282
|
},
|
|
207
|
-
enrol: async (credential, challenge
|
|
208
|
-
const asked = await hello({ op: "enrol", credential, challenge: standardBase64(challenge)
|
|
283
|
+
enrol: async (credential, challenge) => {
|
|
284
|
+
const asked = await hello({ op: "enrol", credential, challenge: standardBase64(challenge) });
|
|
209
285
|
if (!asked.ok) {
|
|
210
286
|
return asked;
|
|
211
287
|
}
|
|
@@ -213,8 +289,8 @@ export const windowsHello = (runner, now = Date.now) => {
|
|
|
213
289
|
const publicKey = asked.value.publicKey;
|
|
214
290
|
return asked.value.ok && signature !== undefined && publicKey !== undefined ? { ok: true, value: { signature, publicKey } } : failed(asked.value);
|
|
215
291
|
},
|
|
216
|
-
sign: async (credential, challenge
|
|
217
|
-
const asked = await hello({ op: "sign", credential, challenge: standardBase64(challenge)
|
|
292
|
+
sign: async (credential, challenge) => {
|
|
293
|
+
const asked = await hello({ op: "sign", credential, challenge: standardBase64(challenge) });
|
|
218
294
|
if (!asked.ok) {
|
|
219
295
|
return asked;
|
|
220
296
|
}
|
|
@@ -241,4 +317,40 @@ export const windowsPassphrasePrompt = (runner) => async (notice) => {
|
|
|
241
317
|
}
|
|
242
318
|
return ran.answer.cancelled === true ? { kind: "cancelled" } : { kind: "unavailable", reason: ran.answer.error ?? "the passphrase dialog failed" };
|
|
243
319
|
};
|
|
320
|
+
const dialogSeconds = String(Math.floor(PROMPT_TIMEOUT_MS / 1000) - 5);
|
|
321
|
+
export const windowsValuePrompt = (runner) => async (notice) => {
|
|
322
|
+
const input = {
|
|
323
|
+
title: notice.title,
|
|
324
|
+
message: notice.message,
|
|
325
|
+
remember: notice.remember ? "1" : "0",
|
|
326
|
+
askUser: notice.username === undefined ? "0" : "1",
|
|
327
|
+
user: notice.username?.value ?? "",
|
|
328
|
+
seconds: dialogSeconds,
|
|
329
|
+
};
|
|
330
|
+
const ran = await runPowerShell(runner, { script: VALUE_SCRIPT, input, timeoutMs: PROMPT_TIMEOUT_MS }, AnswerSchema);
|
|
331
|
+
if (!ran.ok) {
|
|
332
|
+
return { kind: "unavailable", reason: ran.reason };
|
|
333
|
+
}
|
|
334
|
+
if (!ran.answer.ok) {
|
|
335
|
+
return ran.answer.cancelled === true ? { kind: "cancelled" } : { kind: "unavailable", reason: ran.answer.error ?? "the box failed" };
|
|
336
|
+
}
|
|
337
|
+
const [user = "", remember = "0", ...rest] = (base64(ran.answer.passphrase)?.toString("utf8") ?? "").split("\0");
|
|
338
|
+
const value = rest.join("\0");
|
|
339
|
+
if (value === "") {
|
|
340
|
+
return { kind: "cancelled" };
|
|
341
|
+
}
|
|
342
|
+
return user === "" ? { kind: "answered", value, remember: remember === "1" } : { kind: "answered", value, remember: remember === "1", username: user };
|
|
343
|
+
};
|
|
344
|
+
export const windowsChoicePrompt = (runner) => async (notice) => {
|
|
345
|
+
const input = { title: notice.title, message: notice.message, labels: notice.choices.map((choice) => choice.label.replace(/\n/gu, " ")).join("\n"), seconds: dialogSeconds };
|
|
346
|
+
const ran = await runPowerShell(runner, { script: CHOICE_SCRIPT, input, timeoutMs: PROMPT_TIMEOUT_MS }, AnswerSchema);
|
|
347
|
+
if (!ran.ok) {
|
|
348
|
+
return { kind: "unavailable", reason: ran.reason };
|
|
349
|
+
}
|
|
350
|
+
const chosen = ran.answer.ok ? notice.choices[Number(ran.answer.status)] : undefined;
|
|
351
|
+
if (chosen !== undefined) {
|
|
352
|
+
return { kind: "chosen", id: chosen.id };
|
|
353
|
+
}
|
|
354
|
+
return ran.answer.cancelled === true || ran.answer.ok ? { kind: "cancelled" } : { kind: "unavailable", reason: ran.answer.error ?? "the dialog failed" };
|
|
355
|
+
};
|
|
244
356
|
//# sourceMappingURL=consent-windows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent-windows.js","sourceRoot":"","sources":["../../src/consent/consent-windows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"consent-windows.js","sourceRoot":"","sources":["../../src/consent/consent-windows.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,12 +56,51 @@ export type PromptAnswer = {
|
|
|
56
56
|
readonly reason: string;
|
|
57
57
|
};
|
|
58
58
|
export type PassphrasePrompt = (notice: Notice) => Promise<PromptAnswer>;
|
|
59
|
+
export interface ValueNotice extends Notice {
|
|
60
|
+
readonly remember: boolean;
|
|
61
|
+
readonly username?: {
|
|
62
|
+
readonly value?: string | undefined;
|
|
63
|
+
} | undefined;
|
|
64
|
+
}
|
|
65
|
+
export type ValueAnswer = {
|
|
66
|
+
readonly kind: "answered";
|
|
67
|
+
readonly value: string;
|
|
68
|
+
readonly remember: boolean;
|
|
69
|
+
readonly username?: string | undefined;
|
|
70
|
+
} | {
|
|
71
|
+
readonly kind: "cancelled";
|
|
72
|
+
} | {
|
|
73
|
+
readonly kind: "unavailable";
|
|
74
|
+
readonly reason: string;
|
|
75
|
+
};
|
|
76
|
+
export type ValuePrompt = (notice: ValueNotice) => Promise<ValueAnswer>;
|
|
77
|
+
export interface ChoiceNotice extends Notice {
|
|
78
|
+
readonly choices: readonly {
|
|
79
|
+
readonly id: string;
|
|
80
|
+
readonly label: string;
|
|
81
|
+
}[];
|
|
82
|
+
}
|
|
83
|
+
export type ChoiceAnswer = {
|
|
84
|
+
readonly kind: "chosen";
|
|
85
|
+
readonly id: string;
|
|
86
|
+
} | {
|
|
87
|
+
readonly kind: "cancelled";
|
|
88
|
+
} | {
|
|
89
|
+
readonly kind: "unavailable";
|
|
90
|
+
readonly reason: string;
|
|
91
|
+
};
|
|
92
|
+
export type ChoicePrompt = (notice: ChoiceNotice) => Promise<ChoiceAnswer>;
|
|
93
|
+
export interface ConsentExtras {
|
|
94
|
+
readonly askValue?: ValuePrompt | undefined;
|
|
95
|
+
readonly choose?: ChoicePrompt | undefined;
|
|
96
|
+
}
|
|
59
97
|
export interface Consent {
|
|
60
98
|
readonly ask: (request: ConsentRequest) => Promise<ConsentAnswer>;
|
|
61
99
|
readonly hello: HelloDriver | undefined;
|
|
100
|
+
readonly askValue?: ValuePrompt | undefined;
|
|
101
|
+
readonly choose?: ChoicePrompt | undefined;
|
|
62
102
|
}
|
|
63
|
-
export declare const
|
|
64
|
-
export declare const passphraseConsent: (prompt: PassphrasePrompt) => Consent;
|
|
103
|
+
export declare const passphraseConsent: (prompt: PassphrasePrompt, extras?: ConsentExtras) => Consent;
|
|
65
104
|
export declare const helloConsent: (hello: HelloDriver, fallback: Consent) => Consent;
|
|
66
105
|
export declare const serialConsent: (inner: Consent, defaultWaitMs?: number) => Consent;
|
|
67
106
|
//# sourceMappingURL=consent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../src/consent/consent.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../src/consent/consent.ts"],"names":[],"mappings":"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"}
|
package/dist/consent/consent.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { KEYRING_GRANT_TTL_MAX_MS } from "@intentic/sandbox-contract/schemas/keyring";
|
|
2
2
|
const nobodyToAsk = (request, reason) => request.unlock ? { ok: false, code: "locked", reason: `The keyring is locked and ${reason}` } : { ok: false, code: "declined", reason: `Nobody could be asked: ${reason}` };
|
|
3
|
-
export const refusingConsent = (why) => ({
|
|
4
|
-
ask: (request) => Promise.resolve(nobodyToAsk(request, why)),
|
|
5
|
-
hello: undefined,
|
|
6
|
-
});
|
|
7
3
|
const PASSPHRASE_TRIES = 3;
|
|
8
|
-
export const passphraseConsent = (prompt) => ({
|
|
4
|
+
export const passphraseConsent = (prompt, extras = {}) => ({
|
|
9
5
|
hello: undefined,
|
|
6
|
+
askValue: extras.askValue,
|
|
7
|
+
choose: extras.choose,
|
|
10
8
|
ask: async (request) => {
|
|
11
9
|
const opener = request.opener;
|
|
12
10
|
if (opener === undefined) {
|
|
@@ -31,6 +29,8 @@ export const passphraseConsent = (prompt) => ({
|
|
|
31
29
|
});
|
|
32
30
|
export const helloConsent = (hello, fallback) => ({
|
|
33
31
|
hello,
|
|
32
|
+
askValue: fallback.askValue,
|
|
33
|
+
choose: fallback.choose,
|
|
34
34
|
ask: async (request) => {
|
|
35
35
|
const notice = { title: request.title, message: request.message };
|
|
36
36
|
if (!(await hello.available())) {
|
|
@@ -59,6 +59,8 @@ export const serialConsent = (inner, defaultWaitMs = KEYRING_GRANT_TTL_MAX_MS) =
|
|
|
59
59
|
let tail = Promise.resolve();
|
|
60
60
|
return {
|
|
61
61
|
hello: inner.hello,
|
|
62
|
+
askValue: inner.askValue,
|
|
63
|
+
choose: inner.choose,
|
|
62
64
|
ask: async (request) => {
|
|
63
65
|
const before = tail;
|
|
64
66
|
let release = () => undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent.js","sourceRoot":"","sources":["../../src/consent/consent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"consent.js","sourceRoot":"","sources":["../../src/consent/consent.ts"],"names":[],"mappings":"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"}
|
package/dist/core.d.ts
CHANGED
|
@@ -1,36 +1,11 @@
|
|
|
1
|
-
import { type KeyringInboxItem, type
|
|
2
|
-
import type
|
|
3
|
-
import type { BackendReader } from "./backends.js";
|
|
4
|
-
import type { Consent } from "./consent/consent.js";
|
|
5
|
-
import { type KeysFile } from "./keys.js";
|
|
1
|
+
import { type KeyringInboxItem, type KeyringSyncItem, type SealedBox } from "@intentic/sandbox-contract/schemas/keyring";
|
|
2
|
+
import { type Answer, type KeyringDeps } from "./passwords/access.js";
|
|
6
3
|
import type { KeyringRequest, KeyringResponse } from "./protocol.js";
|
|
7
|
-
|
|
8
|
-
import { type ScryptCost, type 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
|
-
}
|
|
4
|
+
export type { KeyringDeps } from "./passwords/access.js";
|
|
29
5
|
type Op = KeyringRequest["op"];
|
|
30
6
|
type RequestOf<K extends Op> = Extract<KeyringRequest, {
|
|
31
7
|
op: K;
|
|
32
8
|
}>;
|
|
33
|
-
type Answer<K extends Op> = Promise<KeyringResponse<K>>;
|
|
34
9
|
export declare class Keyring {
|
|
35
10
|
#private;
|
|
36
11
|
private readonly deps;
|
|
@@ -54,8 +29,6 @@ export declare class Keyring {
|
|
|
54
29
|
syncPair(pair: RequestOf<"sync-pair">["pair"]): Answer<"sync-pair">;
|
|
55
30
|
syncOutbox(): Answer<"sync-outbox">;
|
|
56
31
|
syncDeliver(items: readonly KeyringSyncItem[]): Answer<"sync-deliver">;
|
|
57
|
-
askpass(prompt: string, parent: string | undefined): Answer<"askpass">;
|
|
58
32
|
consentUpgrade(version: string): Answer<"consent-upgrade">;
|
|
59
33
|
}
|
|
60
|
-
export {};
|
|
61
34
|
//# sourceMappingURL=core.d.ts.map
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,gBAAgB,EAKrB,KAAK,eAAe,EAEpB,KAAK,SAAS,EACjB,MAAM,4CAA4C,CAAC;AAGpD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAA0G,MAAM,uBAAuB,CAAC;AA2B9K,OAAO,KAAK,EAAyB,cAAc,EAAE,eAAe,EAAsB,MAAM,eAAe,CAAC;AAqChH,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,KAAK,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AAC/B,KAAK,SAAS,CAAC,CAAC,SAAS,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE;IAAE,EAAE,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAmFlE,qBAAa,OAAO;;IAgBJ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,WAAW,EAoB7C;IA6LK,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAMlE;IA+GK,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,CAuB7B;IAEK,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAyBnE;IAEK,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAuB9C;IAwBD,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,CAkB9B;IAkCK,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CA6BlD;IAEK,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAkCrD;IAEK,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAiB3C;IAEK,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAqCtD;IAEK,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAmB5D;IAEK,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAavE;IAID,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAIjD;IA6BK,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAyCtE;IAEK,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAmClG;IA4EK,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,CA0BnD;IAqCK,SAAS,IAAI,MAAM,CAAC,YAAY,CAAC,CAOtC;IAEK,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAoBxE;IAgBK,UAAU,IAAI,MAAM,CAAC,aAAa,CAAC,CAWxC;IAEK,WAAW,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,CAkB3E;IAmCK,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAU/D;CACJ"}
|