@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.
Files changed (231) hide show
  1. package/README.md +141 -45
  2. package/dist/address.d.ts +0 -1
  3. package/dist/address.d.ts.map +1 -1
  4. package/dist/address.js +1 -1
  5. package/dist/address.js.map +1 -1
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js +49 -48
  8. package/dist/app.js.map +1 -1
  9. package/dist/askpass/answer.d.ts +12 -0
  10. package/dist/askpass/answer.d.ts.map +1 -0
  11. package/dist/askpass/answer.js +204 -0
  12. package/dist/askpass/answer.js.map +1 -0
  13. package/dist/askpass/askpass.d.ts +6 -0
  14. package/dist/askpass/askpass.d.ts.map +1 -1
  15. package/dist/askpass/askpass.js +28 -0
  16. package/dist/askpass/askpass.js.map +1 -1
  17. package/dist/audit.d.ts +5 -2
  18. package/dist/audit.d.ts.map +1 -1
  19. package/dist/audit.js +15 -2
  20. package/dist/audit.js.map +1 -1
  21. package/dist/consent/consent-posix.d.ts +7 -3
  22. package/dist/consent/consent-posix.d.ts.map +1 -1
  23. package/dist/consent/consent-posix.js +82 -12
  24. package/dist/consent/consent-posix.js.map +1 -1
  25. package/dist/consent/consent-windows.d.ts +3 -1
  26. package/dist/consent/consent-windows.d.ts.map +1 -1
  27. package/dist/consent/consent-windows.js +174 -62
  28. package/dist/consent/consent-windows.js.map +1 -1
  29. package/dist/consent/consent.d.ts +41 -2
  30. package/dist/consent/consent.d.ts.map +1 -1
  31. package/dist/consent/consent.js +7 -5
  32. package/dist/consent/consent.js.map +1 -1
  33. package/dist/core.d.ts +3 -30
  34. package/dist/core.d.ts.map +1 -1
  35. package/dist/core.js +189 -62
  36. package/dist/core.js.map +1 -1
  37. package/dist/git-credential/git-credential.d.ts +18 -0
  38. package/dist/git-credential/git-credential.d.ts.map +1 -0
  39. package/dist/git-credential/git-credential.js +68 -0
  40. package/dist/git-credential/git-credential.js.map +1 -0
  41. package/dist/index.d.ts +5 -2
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +5 -2
  44. package/dist/index.js.map +1 -1
  45. package/dist/native-host/framing.d.ts +10 -0
  46. package/dist/native-host/framing.d.ts.map +1 -0
  47. package/dist/native-host/framing.js +33 -0
  48. package/dist/native-host/framing.js.map +1 -0
  49. package/dist/native-host/native-host.d.ts +11 -0
  50. package/dist/native-host/native-host.d.ts.map +1 -0
  51. package/dist/native-host/native-host.js +130 -0
  52. package/dist/native-host/native-host.js.map +1 -0
  53. package/dist/passwords/access.d.ts +73 -0
  54. package/dist/passwords/access.d.ts.map +1 -0
  55. package/dist/passwords/access.js +3 -0
  56. package/dist/passwords/access.js.map +1 -0
  57. package/dist/passwords/app-ops.d.ts +18 -0
  58. package/dist/passwords/app-ops.d.ts.map +1 -0
  59. package/dist/passwords/app-ops.js +261 -0
  60. package/dist/passwords/app-ops.js.map +1 -0
  61. package/dist/passwords/capture.d.ts +35 -0
  62. package/dist/passwords/capture.d.ts.map +1 -0
  63. package/dist/passwords/capture.js +306 -0
  64. package/dist/passwords/capture.js.map +1 -0
  65. package/dist/passwords/entries.d.ts +20 -0
  66. package/dist/passwords/entries.d.ts.map +1 -0
  67. package/dist/passwords/entries.js +57 -0
  68. package/dist/passwords/entries.js.map +1 -0
  69. package/dist/passwords/fills.d.ts +10 -0
  70. package/dist/passwords/fills.d.ts.map +1 -0
  71. package/dist/passwords/fills.js +87 -0
  72. package/dist/passwords/fills.js.map +1 -0
  73. package/dist/passwords/needs.d.ts +11 -0
  74. package/dist/passwords/needs.d.ts.map +1 -0
  75. package/dist/passwords/needs.js +232 -0
  76. package/dist/passwords/needs.js.map +1 -0
  77. package/dist/passwords/phone.d.ts +19 -0
  78. package/dist/passwords/phone.d.ts.map +1 -0
  79. package/dist/passwords/phone.js +125 -0
  80. package/dist/passwords/phone.js.map +1 -0
  81. package/dist/protocol.d.ts +1169 -0
  82. package/dist/protocol.d.ts.map +1 -1
  83. package/dist/protocol.js +86 -1
  84. package/dist/protocol.js.map +1 -1
  85. package/dist/service/channel.d.ts +10 -3
  86. package/dist/service/channel.d.ts.map +1 -1
  87. package/dist/service/channel.js +31 -13
  88. package/dist/service/channel.js.map +1 -1
  89. package/dist/service/door.d.ts +45 -4
  90. package/dist/service/door.d.ts.map +1 -1
  91. package/dist/service/door.js +31 -2
  92. package/dist/service/door.js.map +1 -1
  93. package/dist/service/helper.d.ts +18 -1
  94. package/dist/service/helper.d.ts.map +1 -1
  95. package/dist/service/helper.js +68 -28
  96. package/dist/service/helper.js.map +1 -1
  97. package/dist/service/linux/install-linux.d.ts +12 -0
  98. package/dist/service/linux/install-linux.d.ts.map +1 -0
  99. package/dist/service/linux/install-linux.js +133 -0
  100. package/dist/service/linux/install-linux.js.map +1 -0
  101. package/dist/service/linux/paths-linux.d.ts +21 -0
  102. package/dist/service/linux/paths-linux.d.ts.map +1 -0
  103. package/dist/service/linux/paths-linux.js +31 -0
  104. package/dist/service/linux/paths-linux.js.map +1 -0
  105. package/dist/service/linux/polkit-linux.d.ts +29 -0
  106. package/dist/service/linux/polkit-linux.d.ts.map +1 -0
  107. package/dist/service/linux/polkit-linux.js +89 -0
  108. package/dist/service/linux/polkit-linux.js.map +1 -0
  109. package/dist/service/linux/service-run-linux.d.ts +4 -0
  110. package/dist/service/linux/service-run-linux.d.ts.map +1 -0
  111. package/dist/service/linux/service-run-linux.js +52 -0
  112. package/dist/service/linux/service-run-linux.js.map +1 -0
  113. package/dist/service/linux/session-linux.d.ts +4 -0
  114. package/dist/service/linux/session-linux.d.ts.map +1 -0
  115. package/dist/service/linux/session-linux.js +13 -0
  116. package/dist/service/linux/session-linux.js.map +1 -0
  117. package/dist/service/linux/unit-linux.d.ts +16 -0
  118. package/dist/service/linux/unit-linux.d.ts.map +1 -0
  119. package/dist/service/linux/unit-linux.js +67 -0
  120. package/dist/service/linux/unit-linux.js.map +1 -0
  121. package/dist/service/platform.d.ts +7 -0
  122. package/dist/service/platform.d.ts.map +1 -0
  123. package/dist/service/platform.js +62 -0
  124. package/dist/service/platform.js.map +1 -0
  125. package/dist/service/recovery.d.ts +3 -0
  126. package/dist/service/recovery.d.ts.map +1 -0
  127. package/dist/service/recovery.js +22 -0
  128. package/dist/service/recovery.js.map +1 -0
  129. package/dist/service/remote.d.ts +4 -1
  130. package/dist/service/remote.d.ts.map +1 -1
  131. package/dist/service/remote.js +41 -6
  132. package/dist/service/remote.js.map +1 -1
  133. package/dist/service/service-key.d.ts +9 -0
  134. package/dist/service/service-key.d.ts.map +1 -0
  135. package/dist/service/service-key.js +55 -0
  136. package/dist/service/service-key.js.map +1 -0
  137. package/dist/service/service-run.d.ts +20 -2
  138. package/dist/service/service-run.d.ts.map +1 -1
  139. package/dist/service/service-run.js +52 -46
  140. package/dist/service/service-run.js.map +1 -1
  141. package/dist/service/user.d.ts +8 -0
  142. package/dist/service/user.d.ts.map +1 -0
  143. package/dist/service/user.js +39 -0
  144. package/dist/service/user.js.map +1 -0
  145. package/dist/service/{acl.d.ts → windows/acl-windows.d.ts} +3 -3
  146. package/dist/service/windows/acl-windows.d.ts.map +1 -0
  147. package/dist/service/{acl.js → windows/acl-windows.js} +3 -3
  148. package/dist/service/windows/acl-windows.js.map +1 -0
  149. package/dist/service/{install.d.ts → windows/install-windows.d.ts} +4 -2
  150. package/dist/service/windows/install-windows.d.ts.map +1 -0
  151. package/dist/service/{install.js → windows/install-windows.js} +13 -12
  152. package/dist/service/windows/install-windows.js.map +1 -0
  153. package/dist/service/windows/leftovers-windows.d.ts +8 -0
  154. package/dist/service/windows/leftovers-windows.d.ts.map +1 -0
  155. package/dist/service/windows/leftovers-windows.js +44 -0
  156. package/dist/service/windows/leftovers-windows.js.map +1 -0
  157. package/dist/service/{paths.d.ts → windows/paths-windows.d.ts} +4 -5
  158. package/dist/service/windows/paths-windows.d.ts.map +1 -0
  159. package/dist/service/{paths.js → windows/paths-windows.js} +5 -5
  160. package/dist/service/windows/paths-windows.js.map +1 -0
  161. package/dist/service/windows/service-run-windows.d.ts +4 -0
  162. package/dist/service/windows/service-run-windows.d.ts.map +1 -0
  163. package/dist/service/windows/service-run-windows.js +46 -0
  164. package/dist/service/windows/service-run-windows.js.map +1 -0
  165. package/dist/service/windows/session-windows.d.ts +4 -0
  166. package/dist/service/windows/session-windows.d.ts.map +1 -0
  167. package/dist/service/windows/session-windows.js +13 -0
  168. package/dist/service/windows/session-windows.js.map +1 -0
  169. package/dist/service/windows/sid-windows.d.ts +3 -0
  170. package/dist/service/windows/sid-windows.d.ts.map +1 -0
  171. package/dist/service/{sid.js → windows/sid-windows.js} +2 -2
  172. package/dist/service/windows/sid-windows.js.map +1 -0
  173. package/dist/service/{task.d.ts → windows/task-windows.d.ts} +4 -3
  174. package/dist/service/windows/task-windows.d.ts.map +1 -0
  175. package/dist/service/{task.js → windows/task-windows.js} +19 -2
  176. package/dist/service/windows/task-windows.js.map +1 -0
  177. package/dist/service/wire.d.ts +32 -0
  178. package/dist/service/wire.d.ts.map +1 -1
  179. package/dist/service/wire.js +15 -0
  180. package/dist/service/wire.js.map +1 -1
  181. package/dist/typing/clipboard.d.ts +13 -0
  182. package/dist/typing/clipboard.d.ts.map +1 -0
  183. package/dist/typing/clipboard.js +56 -0
  184. package/dist/typing/clipboard.js.map +1 -0
  185. package/dist/typing/index.d.ts.map +1 -1
  186. package/dist/typing/index.js +2 -1
  187. package/dist/typing/index.js.map +1 -1
  188. package/dist/typing/typist.d.ts +3 -1
  189. package/dist/typing/typist.d.ts.map +1 -1
  190. package/dist/typing/typist.js +2 -1
  191. package/dist/typing/typist.js.map +1 -1
  192. package/dist/vault.d.ts +785 -0
  193. package/dist/vault.d.ts.map +1 -1
  194. package/dist/vault.js +24 -2
  195. package/dist/vault.js.map +1 -1
  196. package/dist/watch/apps.d.ts +10 -0
  197. package/dist/watch/apps.d.ts.map +1 -0
  198. package/dist/watch/apps.js +95 -0
  199. package/dist/watch/apps.js.map +1 -0
  200. package/dist/watch/chip.d.ts +52 -0
  201. package/dist/watch/chip.d.ts.map +1 -0
  202. package/dist/watch/chip.js +76 -0
  203. package/dist/watch/chip.js.map +1 -0
  204. package/dist/watch/lines-child.d.ts +9 -0
  205. package/dist/watch/lines-child.d.ts.map +1 -0
  206. package/dist/watch/lines-child.js +34 -0
  207. package/dist/watch/lines-child.js.map +1 -0
  208. package/dist/watch/watch-linux.d.ts +6 -0
  209. package/dist/watch/watch-linux.d.ts.map +1 -0
  210. package/dist/watch/watch-linux.js +52 -0
  211. package/dist/watch/watch-linux.js.map +1 -0
  212. package/dist/watch/watch-windows.d.ts +6 -0
  213. package/dist/watch/watch-windows.d.ts.map +1 -0
  214. package/dist/watch/watch-windows.js +110 -0
  215. package/dist/watch/watch-windows.js.map +1 -0
  216. package/package.json +5 -5
  217. package/dist/serve.d.ts +0 -17
  218. package/dist/serve.d.ts.map +0 -1
  219. package/dist/serve.js +0 -65
  220. package/dist/serve.js.map +0 -1
  221. package/dist/service/acl.d.ts.map +0 -1
  222. package/dist/service/acl.js.map +0 -1
  223. package/dist/service/install.d.ts.map +0 -1
  224. package/dist/service/install.js.map +0 -1
  225. package/dist/service/paths.d.ts.map +0 -1
  226. package/dist/service/paths.js.map +0 -1
  227. package/dist/service/sid.d.ts +0 -3
  228. package/dist/service/sid.d.ts.map +0 -1
  229. package/dist/service/sid.js.map +0 -1
  230. package/dist/service/task.d.ts.map +0 -1
  231. package/dist/service/task.js.map +0 -1
@@ -1,11 +1,12 @@
1
- import type { HardenedPaths } from "./paths.js";
1
+ import type { WindowsServicePaths } from "./paths-windows.js";
2
2
  export declare const REGISTER_TASK_SCRIPT = "\n$ErrorActionPreference = 'Stop'\ntry {\n $account = (New-Object System.Security.Principal.SecurityIdentifier('S-1-5-19')).Translate([System.Security.Principal.NTAccount]).Value\n $action = New-ScheduledTaskAction -Execute $KeyringInput.exe -Argument ('service run --user ' + $KeyringInput.sid)\n $trigger = New-ScheduledTaskTrigger -AtStartup\n $principal = New-ScheduledTaskPrincipal -UserId $account -LogonType ServiceAccount -RunLevel Limited\n $settings = New-ScheduledTaskSettingsSet -RestartCount 999 -RestartInterval (New-TimeSpan -Minutes 1) -ExecutionTimeLimit ([TimeSpan]::Zero) -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable -MultipleInstances IgnoreNew\n Register-ScheduledTask -TaskPath $KeyringInput.taskPath -TaskName $KeyringInput.taskName -Action $action -Trigger $trigger -Principal $principal -Settings $settings -Force | Out-Null\n Stop-ScheduledTask -TaskPath $KeyringInput.taskPath -TaskName $KeyringInput.taskName -ErrorAction SilentlyContinue\n Start-ScheduledTask -TaskPath $KeyringInput.taskPath -TaskName $KeyringInput.taskName\n [Console]::Out.WriteLine('intentic-keyring>' + (@{ ok = $true } | ConvertTo-Json -Compress))\n} catch {\n [Console]::Out.WriteLine('intentic-keyring>' + (@{ ok = $false; error = $_.Exception.Message } | ConvertTo-Json -Compress))\n}\n";
3
3
  export declare const STOP_TASK_SCRIPT = "\ntry {\n Stop-ScheduledTask -TaskPath $KeyringInput.taskPath -TaskName $KeyringInput.taskName -ErrorAction SilentlyContinue\n} catch {\n # A task that is not there, or not running, has nothing to stop; said on stderr for the install's own record.\n [Console]::Error.WriteLine('stop: ' + $_.Exception.Message)\n}\n[Console]::Out.WriteLine('intentic-keyring>' + (@{ ok = $true } | ConvertTo-Json -Compress))\n";
4
4
  export declare const UNREGISTER_TASK_SCRIPT = "\n$ErrorActionPreference = 'Stop'\ntry {\n Stop-ScheduledTask -TaskPath $KeyringInput.taskPath -TaskName $KeyringInput.taskName -ErrorAction SilentlyContinue\n Unregister-ScheduledTask -TaskPath $KeyringInput.taskPath -TaskName $KeyringInput.taskName -Confirm:$false -ErrorAction SilentlyContinue\n [Console]::Out.WriteLine('intentic-keyring>' + (@{ ok = $true } | ConvertTo-Json -Compress))\n} catch {\n [Console]::Out.WriteLine('intentic-keyring>' + (@{ ok = $false; error = $_.Exception.Message } | ConvertTo-Json -Compress))\n}\n";
5
- export declare const taskInput: (paths: HardenedPaths, sid: string) => {
5
+ export declare const taskInput: (paths: WindowsServicePaths, sid: string) => {
6
6
  exe: string;
7
7
  sid: string;
8
8
  taskPath: string;
9
9
  taskName: string;
10
10
  };
11
- //# sourceMappingURL=task.d.ts.map
11
+ export declare const REMOVE_TASK_FOLDER_SCRIPT = "\n$ErrorActionPreference = 'Stop'\ntry {\n $name = $KeyringInput.taskPath.Trim('\\')\n $service = New-Object -ComObject Schedule.Service\n $service.Connect()\n $removed = $false\n try { $folder = $service.GetFolder('\\' + $name) } catch { $folder = $null }\n if ($folder -ne $null -and $folder.GetTasks(1).Count -eq 0 -and $folder.GetFolders(0).Count -eq 0) {\n $service.GetFolder('\\').DeleteFolder($name, 0)\n $removed = $true\n }\n [Console]::Out.WriteLine('intentic-keyring>' + (@{ ok = $true; removed = $removed } | ConvertTo-Json -Compress))\n} catch {\n [Console]::Out.WriteLine('intentic-keyring>' + (@{ ok = $false; error = $_.Exception.Message } | ConvertTo-Json -Compress))\n}\n";
12
+ //# sourceMappingURL=task-windows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-windows.d.ts","sourceRoot":"","sources":["../../../src/service/windows/task-windows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAQ9D,eAAO,MAAM,oBAAoB,szCAehC,CAAC;AAGF,eAAO,MAAM,gBAAgB,gaAQ5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,8hBASlC,CAAC;AAEF,eAAO,MAAM,SAAS,UAAW,mBAAmB,OAAO,MAAM;;;;;CAAkF,CAAC;AAIpJ,eAAO,MAAM,yBAAyB,qsBAgBrC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { LOCAL_SERVICE_SID } from "./paths.js";
1
+ import { LOCAL_SERVICE_SID } from "./paths-windows.js";
2
2
  export const REGISTER_TASK_SCRIPT = `
3
3
  $ErrorActionPreference = 'Stop'
4
4
  try {
@@ -35,4 +35,21 @@ try {
35
35
  }
36
36
  `;
37
37
  export const taskInput = (paths, sid) => ({ exe: paths.exe, sid, taskPath: paths.taskPath, taskName: paths.taskName });
38
- //# sourceMappingURL=task.js.map
38
+ export const REMOVE_TASK_FOLDER_SCRIPT = `
39
+ $ErrorActionPreference = 'Stop'
40
+ try {
41
+ $name = $KeyringInput.taskPath.Trim('\\')
42
+ $service = New-Object -ComObject Schedule.Service
43
+ $service.Connect()
44
+ $removed = $false
45
+ try { $folder = $service.GetFolder('\\' + $name) } catch { $folder = $null }
46
+ if ($folder -ne $null -and $folder.GetTasks(1).Count -eq 0 -and $folder.GetFolders(0).Count -eq 0) {
47
+ $service.GetFolder('\\').DeleteFolder($name, 0)
48
+ $removed = $true
49
+ }
50
+ [Console]::Out.WriteLine('intentic-keyring>' + (@{ ok = $true; removed = $removed } | ConvertTo-Json -Compress))
51
+ } catch {
52
+ [Console]::Out.WriteLine('intentic-keyring>' + (@{ ok = $false; error = $_.Exception.Message } | ConvertTo-Json -Compress))
53
+ }
54
+ `;
55
+ //# sourceMappingURL=task-windows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-windows.js","sourceRoot":"","sources":["../../../src/service/windows/task-windows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAOvD,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;yEAGqC,iBAAiB;;;;;;;;;;;;CAYzF,CAAC;AAGF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;CAQ/B,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;CASrC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAA0B,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAIpJ,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;CAgBxC,CAAC"}
@@ -50,4 +50,36 @@ export declare const TypedPassphraseSchema: z.ZodDiscriminatedUnion<[z.ZodObject
50
50
  kind: z.ZodLiteral<"unavailable">;
51
51
  reason: z.ZodString;
52
52
  }, z.core.$strip>], "kind">;
53
+ export declare const AvailableSchema: z.ZodObject<{
54
+ available: z.ZodBoolean;
55
+ }, z.core.$strict>;
56
+ export declare const EnrolledSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
57
+ ok: z.ZodLiteral<true>;
58
+ signature: z.ZodString;
59
+ publicKey: z.ZodString;
60
+ }, z.core.$strip>, z.ZodObject<{
61
+ ok: z.ZodLiteral<false>;
62
+ cancelled: z.ZodBoolean;
63
+ reason: z.ZodString;
64
+ }, z.core.$strip>], "ok">;
65
+ export declare const ChosenSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
66
+ kind: z.ZodLiteral<"chosen">;
67
+ id: z.ZodString;
68
+ }, z.core.$strip>, z.ZodObject<{
69
+ kind: z.ZodLiteral<"cancelled">;
70
+ }, z.core.$strip>, z.ZodObject<{
71
+ kind: z.ZodLiteral<"unavailable">;
72
+ reason: z.ZodString;
73
+ }, z.core.$strip>], "kind">;
74
+ export declare const TypedValueSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
75
+ kind: z.ZodLiteral<"answered">;
76
+ value: z.ZodString;
77
+ remember: z.ZodBoolean;
78
+ username: z.ZodOptional<z.ZodString>;
79
+ }, z.core.$strip>, z.ZodObject<{
80
+ kind: z.ZodLiteral<"cancelled">;
81
+ }, z.core.$strip>, z.ZodObject<{
82
+ kind: z.ZodLiteral<"unavailable">;
83
+ reason: z.ZodString;
84
+ }, z.core.$strip>], "kind">;
53
85
  //# sourceMappingURL=wire.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/service/wire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW;;;;;;;;kBAA+G,CAAC;AAExI,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;yBAG1B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;yBAA+I,CAAC;AAExK,eAAO,MAAM,YAAY;;;;;;;yBAGvB,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;2BAIhC,CAAC"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/service/wire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW;;;;;;;;kBAA+G,CAAC;AAExI,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;yBAG1B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;yBAA+I,CAAC;AAExK,eAAO,MAAM,YAAY;;;;;;;yBAGvB,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;2BAIhC,CAAC;AAEH,eAAO,MAAM,eAAe;;kBAAgD,CAAC;AAE7E,eAAO,MAAM,cAAc;;;;;;;;yBAGzB,CAAC;AAGH,eAAO,MAAM,YAAY;;;;;;;;2BAIvB,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;2BAI3B,CAAC"}
@@ -14,4 +14,19 @@ export const TypedPassphraseSchema = z.discriminatedUnion("kind", [
14
14
  z.object({ kind: z.literal("cancelled") }),
15
15
  z.object({ kind: z.literal("unavailable"), reason: z.string() }),
16
16
  ]);
17
+ export const AvailableSchema = z.object({ available: z.boolean() }).strict();
18
+ export const EnrolledSchema = z.discriminatedUnion("ok", [
19
+ z.object({ ok: z.literal(true), signature: z.string(), publicKey: z.string() }),
20
+ z.object({ ok: z.literal(false), cancelled: z.boolean(), reason: z.string() }),
21
+ ]);
22
+ export const ChosenSchema = z.discriminatedUnion("kind", [
23
+ z.object({ kind: z.literal("chosen"), id: z.string().max(64) }),
24
+ z.object({ kind: z.literal("cancelled") }),
25
+ z.object({ kind: z.literal("unavailable"), reason: z.string() }),
26
+ ]);
27
+ export const TypedValueSchema = z.discriminatedUnion("kind", [
28
+ z.object({ kind: z.literal("answered"), value: z.string(), remember: z.boolean(), username: z.string().optional() }),
29
+ z.object({ kind: z.literal("cancelled") }),
30
+ z.object({ kind: z.literal("unavailable"), reason: z.string() }),
31
+ ]);
17
32
  //# sourceMappingURL=wire.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/service/wire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAExI,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE;IACtD,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;IAC7F,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CACzD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAExK,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE;IACnD,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACxD,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CACjF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC9D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACjE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;IAC1C,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CACnE,CAAC,CAAC"}
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/service/wire.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type Runner } from "../run.js";
2
+ export type ClipboardWrite = {
3
+ readonly ok: true;
4
+ } | {
5
+ readonly ok: false;
6
+ readonly reason: string;
7
+ };
8
+ export interface Clipboard {
9
+ readonly write: (value: string) => Promise<ClipboardWrite>;
10
+ readonly clearIf: (value: string) => Promise<void>;
11
+ }
12
+ export declare const platformClipboard: (runner: Runner, platform?: NodeJS.Platform, env?: NodeJS.ProcessEnv) => Clipboard;
13
+ //# sourceMappingURL=clipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/typing/clipboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,WAAW,CAAC;AAUnD,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAErG,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3D,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAsDD,eAAO,MAAM,iBAAiB,WAAY,MAAM,aAAY,MAAM,CAAC,QAAQ,QAA0B,MAAM,CAAC,UAAU,KAAiB,SAStI,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { z } from "zod";
2
+ import { runPowerShell } from "../powershell.js";
3
+ import { succeeded } from "../run.js";
4
+ import { linuxSession } from "./linux.js";
5
+ const TIMEOUT_MS = 10_000;
6
+ const unavailable = (reason) => ({ write: () => Promise.resolve({ ok: false, reason }), clearIf: () => Promise.resolve() });
7
+ const WINDOWS_SET = `
8
+ $ErrorActionPreference = 'Stop'
9
+ try { Set-Clipboard -Value $KeyringInput.value; [Console]::Out.WriteLine('intentic-keyring>{"ok":true}') } catch { [Console]::Out.WriteLine('intentic-keyring>{"ok":false}') }
10
+ `;
11
+ const WINDOWS_CLEAR = `
12
+ $ErrorActionPreference = 'Stop'
13
+ try { if ((Get-Clipboard -Raw) -ceq $KeyringInput.value) { Set-Clipboard -Value $null }; [Console]::Out.WriteLine('intentic-keyring>{"ok":true}') } catch { [Console]::Out.WriteLine('intentic-keyring>{"ok":false}') }
14
+ `;
15
+ const DoneSchema = z.object({ ok: z.boolean() });
16
+ const windowsClipboard = (runner) => ({
17
+ write: async (value) => {
18
+ const ran = await runPowerShell(runner, { script: WINDOWS_SET, input: { value }, timeoutMs: TIMEOUT_MS }, DoneSchema);
19
+ return ran.ok && ran.answer.ok ? { ok: true } : { ok: false, reason: "Windows did not take the value onto the clipboard." };
20
+ },
21
+ clearIf: async (value) => {
22
+ await runPowerShell(runner, { script: WINDOWS_CLEAR, input: { value }, timeoutMs: TIMEOUT_MS }, DoneSchema);
23
+ },
24
+ });
25
+ const WAYLAND = { set: { command: "wl-copy", args: [] }, get: { command: "wl-paste", args: ["--no-newline"] }, clear: { command: "wl-copy", args: ["--clear"] } };
26
+ const X11 = {
27
+ set: { command: "xclip", args: ["-selection", "clipboard"] },
28
+ get: { command: "xclip", args: ["-selection", "clipboard", "-o"] },
29
+ clear: { command: "xclip", args: ["-selection", "clipboard"], input: "" },
30
+ };
31
+ const linuxClipboard = (runner, tool) => ({
32
+ write: async (value) => {
33
+ const done = await runner({ ...tool.set, input: value, timeoutMs: TIMEOUT_MS });
34
+ if (done.missing) {
35
+ return { ok: false, reason: `${tool.set.command} is not installed: install it for Copy to work.` };
36
+ }
37
+ return succeeded(done) ? { ok: true } : { ok: false, reason: `${tool.set.command} could not take the value onto the clipboard.` };
38
+ },
39
+ clearIf: async (value) => {
40
+ const now = await runner({ ...tool.get, timeoutMs: TIMEOUT_MS });
41
+ if (succeeded(now) && now.stdout === value) {
42
+ await runner({ ...tool.clear, input: tool.clear.input ?? "", timeoutMs: TIMEOUT_MS });
43
+ }
44
+ },
45
+ });
46
+ export const platformClipboard = (runner, platform = process.platform, env = process.env) => {
47
+ if (platform === "win32") {
48
+ return windowsClipboard(runner);
49
+ }
50
+ if (platform === "linux") {
51
+ const session = linuxSession(env);
52
+ return session === "none" ? unavailable("There is no desktop session with a clipboard here.") : linuxClipboard(runner, session === "wayland" ? WAYLAND : X11);
53
+ }
54
+ return unavailable(`The keyring cannot reach the clipboard on ${platform}.`);
55
+ };
56
+ //# sourceMappingURL=clipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/typing/clipboard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/typing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAIxC,OAAO,EAAY,KAAK,MAAM,EAAa,MAAM,aAAa,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,eAAO,MAAM,cAAc,WAAY,MAAM,aAAY,MAAM,CAAC,QAAQ,QAA0B,MAAM,CAAC,UAAU,KAAiB,MAUnI,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/typing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAKxC,OAAO,EAAY,KAAK,MAAM,EAAa,MAAM,aAAa,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,eAAO,MAAM,cAAc,WAAY,MAAM,aAAY,MAAM,CAAC,QAAQ,QAA0B,MAAM,CAAC,UAAU,KAAiB,MAUnI,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { androidTypist } from "./android.js";
2
+ import { platformClipboard } from "./clipboard.js";
2
3
  import { linuxTypist } from "./linux.js";
3
4
  import { macTypist } from "./mac.js";
4
5
  import { noTypist, typistFor } from "./typist.js";
@@ -16,6 +17,6 @@ export const platformTypist = (runner, platform = process.platform, env = proces
16
17
  : platform === "linux"
17
18
  ? linuxTypist(runner, env)
18
19
  : noTypist(`The keyring cannot type on ${platform}.`);
19
- return typistFor(desktop, androidTypist(runner));
20
+ return typistFor(desktop, androidTypist(runner), platformClipboard(runner, platform, env));
20
21
  };
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/typing/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAe,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAkE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,QAAQ,GAAoB,OAAO,CAAC,QAAQ,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG,EAAU,EAAE;IACzI,MAAM,OAAO,GACT,QAAQ,KAAK,OAAO;QAChB,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;QACvB,CAAC,CAAC,QAAQ,KAAK,QAAQ;YACrB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YACnB,CAAC,CAAC,QAAQ,KAAK,OAAO;gBACpB,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC;gBAC1B,CAAC,CAAC,QAAQ,CAAC,8BAA8B,QAAQ,GAAG,CAAC,CAAC;IAClE,OAAO,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/typing/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAe,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAkE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,QAAQ,GAAoB,OAAO,CAAC,QAAQ,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG,EAAU,EAAE;IACzI,MAAM,OAAO,GACT,QAAQ,KAAK,OAAO;QAChB,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;QACvB,CAAC,CAAC,QAAQ,KAAK,QAAQ;YACrB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YACnB,CAAC,CAAC,QAAQ,KAAK,OAAO;gBACpB,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC;gBAC1B,CAAC,CAAC,QAAQ,CAAC,8BAA8B,QAAQ,GAAG,CAAC,CAAC;IAClE,OAAO,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/F,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { Focus } from "../policy.js";
2
+ import type { Clipboard } from "./clipboard.js";
2
3
  export type Place = {
3
4
  readonly kind: "window";
4
5
  } | {
@@ -26,7 +27,8 @@ export type Typed = {
26
27
  export interface Typist {
27
28
  readonly inspect: (place: Place) => Promise<Inspected>;
28
29
  readonly type: (place: Place, seen: Seen, value: string) => Promise<Typed>;
30
+ readonly clipboard?: Clipboard | undefined;
29
31
  }
30
32
  export declare const noTypist: (why: string) => Typist;
31
- export declare const typistFor: (window: Typist, android: Typist) => Typist;
33
+ export declare const typistFor: (window: Typist, android: Typist, clipboard?: Clipboard) => Typist;
32
34
  //# sourceMappingURL=typist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typist.d.ts","sourceRoot":"","sources":["../../src/typing/typist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAO1C,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAKxG,MAAM,WAAW,IAAI;IACjB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAErH,MAAM,MAAM,KAAK,GACX;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GAErB;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhF,MAAM,WAAW,MAAM;IACnB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;CAC9E;AAGD,eAAO,MAAM,QAAQ,QAAS,MAAM,KAAG,MAGrC,CAAC;AAGH,eAAO,MAAM,SAAS,WAAY,MAAM,WAAW,MAAM,KAAG,MAG1D,CAAC"}
1
+ {"version":3,"file":"typist.d.ts","sourceRoot":"","sources":["../../src/typing/typist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAOhD,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAKxG,MAAM,WAAW,IAAI;IACjB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAErH,MAAM,MAAM,KAAK,GACX;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GAErB;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhF,MAAM,WAAW,MAAM;IACnB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAE3E,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CAC9C;AAGD,eAAO,MAAM,QAAQ,QAAS,MAAM,KAAG,MAGrC,CAAC;AAGH,eAAO,MAAM,SAAS,WAAY,MAAM,WAAW,MAAM,cAAc,SAAS,KAAG,MAIjF,CAAC"}
@@ -2,7 +2,8 @@ export const noTypist = (why) => ({
2
2
  inspect: () => Promise.resolve({ ok: false, reason: why }),
3
3
  type: () => Promise.resolve({ ok: false, reason: why, partly: false }),
4
4
  });
5
- export const typistFor = (window, android) => ({
5
+ export const typistFor = (window, android, clipboard) => ({
6
+ clipboard: clipboard ?? window.clipboard,
6
7
  inspect: async (place) => await (place.kind === "window" ? window : android).inspect(place),
7
8
  type: async (place, seen, value) => await (place.kind === "window" ? window : android).type(place, seen, value),
8
9
  });
@@ -1 +1 @@
1
- {"version":3,"file":"typist.js","sourceRoot":"","sources":["../../src/typing/typist.ts"],"names":[],"mappings":"AA8BA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,CAAC;IAC9C,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAC1D,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;CACzE,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,OAAe,EAAU,EAAE,CAAC,CAAC;IACnE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3F,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;CAClH,CAAC,CAAC"}
1
+ {"version":3,"file":"typist.js","sourceRoot":"","sources":["../../src/typing/typist.ts"],"names":[],"mappings":"AAiCA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,CAAC;IAC9C,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAC1D,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;CACzE,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,OAAe,EAAE,SAAqB,EAAU,EAAE,CAAC,CAAC;IAC1F,SAAS,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS;IACxC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3F,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;CAClH,CAAC,CAAC"}