@xylabs/aries 0.1.1

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 (421) hide show
  1. package/README.md +693 -0
  2. package/dist/actions/audit/auditPaths.mjs +22 -0
  3. package/dist/actions/audit/auditPaths.mjs.map +1 -0
  4. package/dist/actions/audit/index.mjs +739 -0
  5. package/dist/actions/audit/index.mjs.map +1 -0
  6. package/dist/actions/audit/installPlugin.mjs +298 -0
  7. package/dist/actions/audit/installPlugin.mjs.map +1 -0
  8. package/dist/actions/audit/listSessions.mjs +93 -0
  9. package/dist/actions/audit/listSessions.mjs.map +1 -0
  10. package/dist/actions/audit/openAuditDir.mjs +44 -0
  11. package/dist/actions/audit/openAuditDir.mjs.map +1 -0
  12. package/dist/actions/audit/searchAudit.mjs +77 -0
  13. package/dist/actions/audit/searchAudit.mjs.map +1 -0
  14. package/dist/actions/audit/showAiMeta.mjs +105 -0
  15. package/dist/actions/audit/showAiMeta.mjs.map +1 -0
  16. package/dist/actions/audit/showSession.mjs +105 -0
  17. package/dist/actions/audit/showSession.mjs.map +1 -0
  18. package/dist/actions/audit/statusAudit.mjs +98 -0
  19. package/dist/actions/audit/statusAudit.mjs.map +1 -0
  20. package/dist/actions/clamp/clampAudit.mjs +53 -0
  21. package/dist/actions/clamp/clampAudit.mjs.map +1 -0
  22. package/dist/actions/clamp/index.mjs +2258 -0
  23. package/dist/actions/clamp/index.mjs.map +1 -0
  24. package/dist/actions/clamp/ipcServer.mjs +55 -0
  25. package/dist/actions/clamp/ipcServer.mjs.map +1 -0
  26. package/dist/actions/clamp/policyManagement.mjs +144 -0
  27. package/dist/actions/clamp/policyManagement.mjs.map +1 -0
  28. package/dist/actions/clamp/promptUser.mjs +91 -0
  29. package/dist/actions/clamp/promptUser.mjs.map +1 -0
  30. package/dist/actions/clamp/runClamped.mjs +2107 -0
  31. package/dist/actions/clamp/runClamped.mjs.map +1 -0
  32. package/dist/actions/clamp/sandboxExec.mjs +1612 -0
  33. package/dist/actions/clamp/sandboxExec.mjs.map +1 -0
  34. package/dist/actions/clamp/shellEnvSetup.mjs +59 -0
  35. package/dist/actions/clamp/shellEnvSetup.mjs.map +1 -0
  36. package/dist/actions/clamp/shimGenerator.mjs +68 -0
  37. package/dist/actions/clamp/shimGenerator.mjs.map +1 -0
  38. package/dist/actions/clamp/terminalRenderer.mjs +145 -0
  39. package/dist/actions/clamp/terminalRenderer.mjs.map +1 -0
  40. package/dist/actions/datalake/audit/auditLog.mjs +191 -0
  41. package/dist/actions/datalake/audit/auditLog.mjs.map +1 -0
  42. package/dist/actions/datalake/createDatalake.mjs +127 -0
  43. package/dist/actions/datalake/createDatalake.mjs.map +1 -0
  44. package/dist/actions/datalake/describeDatalake.mjs +159 -0
  45. package/dist/actions/datalake/describeDatalake.mjs.map +1 -0
  46. package/dist/actions/datalake/destroyDatalake.mjs +34 -0
  47. package/dist/actions/datalake/destroyDatalake.mjs.map +1 -0
  48. package/dist/actions/datalake/dev/downDevServer.mjs +102 -0
  49. package/dist/actions/datalake/dev/downDevServer.mjs.map +1 -0
  50. package/dist/actions/datalake/dev/index.mjs +369 -0
  51. package/dist/actions/datalake/dev/index.mjs.map +1 -0
  52. package/dist/actions/datalake/dev/logsDevServer.mjs +44 -0
  53. package/dist/actions/datalake/dev/logsDevServer.mjs.map +1 -0
  54. package/dist/actions/datalake/dev/paths.mjs +25 -0
  55. package/dist/actions/datalake/dev/paths.mjs.map +1 -0
  56. package/dist/actions/datalake/dev/resetDevServer.mjs +118 -0
  57. package/dist/actions/datalake/dev/resetDevServer.mjs.map +1 -0
  58. package/dist/actions/datalake/dev/resolveServerBin.mjs +26 -0
  59. package/dist/actions/datalake/dev/resolveServerBin.mjs.map +1 -0
  60. package/dist/actions/datalake/dev/state.mjs +62 -0
  61. package/dist/actions/datalake/dev/state.mjs.map +1 -0
  62. package/dist/actions/datalake/dev/statusDevServer.mjs +101 -0
  63. package/dist/actions/datalake/dev/statusDevServer.mjs.map +1 -0
  64. package/dist/actions/datalake/dev/upDevServer.mjs +221 -0
  65. package/dist/actions/datalake/dev/upDevServer.mjs.map +1 -0
  66. package/dist/actions/datalake/dev/waitForHealth.mjs +22 -0
  67. package/dist/actions/datalake/dev/waitForHealth.mjs.map +1 -0
  68. package/dist/actions/datalake/formatters.mjs +90 -0
  69. package/dist/actions/datalake/formatters.mjs.map +1 -0
  70. package/dist/actions/datalake/grantAccess.mjs +116 -0
  71. package/dist/actions/datalake/grantAccess.mjs.map +1 -0
  72. package/dist/actions/datalake/index.mjs +361 -0
  73. package/dist/actions/datalake/index.mjs.map +1 -0
  74. package/dist/actions/datalake/listDatalakes.mjs +54 -0
  75. package/dist/actions/datalake/listDatalakes.mjs.map +1 -0
  76. package/dist/actions/datalake/login.mjs +20 -0
  77. package/dist/actions/datalake/login.mjs.map +1 -0
  78. package/dist/actions/datalake/logout.mjs +11 -0
  79. package/dist/actions/datalake/logout.mjs.map +1 -0
  80. package/dist/actions/datalake/mintToken.mjs +37 -0
  81. package/dist/actions/datalake/mintToken.mjs.map +1 -0
  82. package/dist/actions/datalake/parseSize.mjs +21 -0
  83. package/dist/actions/datalake/parseSize.mjs.map +1 -0
  84. package/dist/actions/datalake/payloads/fetchPayload.mjs +76 -0
  85. package/dist/actions/datalake/payloads/fetchPayload.mjs.map +1 -0
  86. package/dist/actions/datalake/payloads/index.mjs +271 -0
  87. package/dist/actions/datalake/payloads/index.mjs.map +1 -0
  88. package/dist/actions/datalake/payloads/mintAndConnect.mjs +46 -0
  89. package/dist/actions/datalake/payloads/mintAndConnect.mjs.map +1 -0
  90. package/dist/actions/datalake/payloads/parsePayloadsFile.mjs +71 -0
  91. package/dist/actions/datalake/payloads/parsePayloadsFile.mjs.map +1 -0
  92. package/dist/actions/datalake/payloads/pushPayloads.mjs +181 -0
  93. package/dist/actions/datalake/payloads/pushPayloads.mjs.map +1 -0
  94. package/dist/actions/datalake/payloads/tailPayloads.mjs +106 -0
  95. package/dist/actions/datalake/payloads/tailPayloads.mjs.map +1 -0
  96. package/dist/actions/datalake/resolveTarget.mjs +15 -0
  97. package/dist/actions/datalake/resolveTarget.mjs.map +1 -0
  98. package/dist/actions/datalake/revokeAccess.mjs +108 -0
  99. package/dist/actions/datalake/revokeAccess.mjs.map +1 -0
  100. package/dist/actions/datalake/useDatalake.mjs +22 -0
  101. package/dist/actions/datalake/useDatalake.mjs.map +1 -0
  102. package/dist/actions/detect/detectAiClients.mjs +405 -0
  103. package/dist/actions/detect/detectAiClients.mjs.map +1 -0
  104. package/dist/actions/detect/index.mjs +405 -0
  105. package/dist/actions/detect/index.mjs.map +1 -0
  106. package/dist/actions/hash/algorithms/blockhash.mjs +61 -0
  107. package/dist/actions/hash/algorithms/blockhash.mjs.map +1 -0
  108. package/dist/actions/hash/algorithms/chromaprint.mjs +205 -0
  109. package/dist/actions/hash/algorithms/chromaprint.mjs.map +1 -0
  110. package/dist/actions/hash/algorithms/dhash.mjs +75 -0
  111. package/dist/actions/hash/algorithms/dhash.mjs.map +1 -0
  112. package/dist/actions/hash/algorithms/index.mjs +818 -0
  113. package/dist/actions/hash/algorithms/index.mjs.map +1 -0
  114. package/dist/actions/hash/algorithms/nilsimsa.mjs +27 -0
  115. package/dist/actions/hash/algorithms/nilsimsa.mjs.map +1 -0
  116. package/dist/actions/hash/algorithms/pdq.mjs +83 -0
  117. package/dist/actions/hash/algorithms/pdq.mjs.map +1 -0
  118. package/dist/actions/hash/algorithms/phash.mjs +71 -0
  119. package/dist/actions/hash/algorithms/phash.mjs.map +1 -0
  120. package/dist/actions/hash/algorithms/sha256.mjs +24 -0
  121. package/dist/actions/hash/algorithms/sha256.mjs.map +1 -0
  122. package/dist/actions/hash/algorithms/ssdeep.mjs +203 -0
  123. package/dist/actions/hash/algorithms/ssdeep.mjs.map +1 -0
  124. package/dist/actions/hash/algorithms/tlsh.mjs +66 -0
  125. package/dist/actions/hash/algorithms/tlsh.mjs.map +1 -0
  126. package/dist/actions/hash/algorithms/types.mjs +1 -0
  127. package/dist/actions/hash/algorithms/types.mjs.map +1 -0
  128. package/dist/actions/hash/algorithms/videoFrames.mjs +404 -0
  129. package/dist/actions/hash/algorithms/videoFrames.mjs.map +1 -0
  130. package/dist/actions/hash/algorithms/xyo.mjs +30 -0
  131. package/dist/actions/hash/algorithms/xyo.mjs.map +1 -0
  132. package/dist/actions/hash/compareHashes.mjs +823 -0
  133. package/dist/actions/hash/compareHashes.mjs.map +1 -0
  134. package/dist/actions/hash/hashInput.mjs +868 -0
  135. package/dist/actions/hash/hashInput.mjs.map +1 -0
  136. package/dist/actions/hash/index.mjs +881 -0
  137. package/dist/actions/hash/index.mjs.map +1 -0
  138. package/dist/actions/hash/lib/hamming.mjs +44 -0
  139. package/dist/actions/hash/lib/hamming.mjs.map +1 -0
  140. package/dist/actions/hash/lib/levenshtein.mjs +36 -0
  141. package/dist/actions/hash/lib/levenshtein.mjs.map +1 -0
  142. package/dist/actions/hash/lib/runBinary.mjs +54 -0
  143. package/dist/actions/hash/lib/runBinary.mjs.map +1 -0
  144. package/dist/actions/hash/lib/which.mjs +36 -0
  145. package/dist/actions/hash/lib/which.mjs.map +1 -0
  146. package/dist/actions/hash/lib/withTempfile.mjs +19 -0
  147. package/dist/actions/hash/lib/withTempfile.mjs.map +1 -0
  148. package/dist/actions/index.mjs +4615 -0
  149. package/dist/actions/index.mjs.map +1 -0
  150. package/dist/actions/printVersion.mjs +12 -0
  151. package/dist/actions/printVersion.mjs.map +1 -0
  152. package/dist/actions/sync/index.mjs +51 -0
  153. package/dist/actions/sync/index.mjs.map +1 -0
  154. package/dist/actions/sync/syncAiConfig.mjs +51 -0
  155. package/dist/actions/sync/syncAiConfig.mjs.map +1 -0
  156. package/dist/actions/wallet/account/deriveAndAdd.mjs +394 -0
  157. package/dist/actions/wallet/account/deriveAndAdd.mjs.map +1 -0
  158. package/dist/actions/wallet/account/getActiveWallet.mjs +338 -0
  159. package/dist/actions/wallet/account/getActiveWallet.mjs.map +1 -0
  160. package/dist/actions/wallet/account/labelAccount.mjs +389 -0
  161. package/dist/actions/wallet/account/labelAccount.mjs.map +1 -0
  162. package/dist/actions/wallet/account/listAccounts.mjs +374 -0
  163. package/dist/actions/wallet/account/listAccounts.mjs.map +1 -0
  164. package/dist/actions/wallet/account/removeAccount.mjs +384 -0
  165. package/dist/actions/wallet/account/removeAccount.mjs.map +1 -0
  166. package/dist/actions/wallet/account/showAccount.mjs +368 -0
  167. package/dist/actions/wallet/account/showAccount.mjs.map +1 -0
  168. package/dist/actions/wallet/addressBook/storage.mjs +110 -0
  169. package/dist/actions/wallet/addressBook/storage.mjs.map +1 -0
  170. package/dist/actions/wallet/backup/exportBackup.mjs +93 -0
  171. package/dist/actions/wallet/backup/exportBackup.mjs.map +1 -0
  172. package/dist/actions/wallet/backup/importBackup.mjs +142 -0
  173. package/dist/actions/wallet/backup/importBackup.mjs.map +1 -0
  174. package/dist/actions/wallet/balance/getBalance.mjs +434 -0
  175. package/dist/actions/wallet/balance/getBalance.mjs.map +1 -0
  176. package/dist/actions/wallet/client/walletClient.mjs +64 -0
  177. package/dist/actions/wallet/client/walletClient.mjs.map +1 -0
  178. package/dist/actions/wallet/contact/contactActions.mjs +120 -0
  179. package/dist/actions/wallet/contact/contactActions.mjs.map +1 -0
  180. package/dist/actions/wallet/contact/storage.mjs +69 -0
  181. package/dist/actions/wallet/contact/storage.mjs.map +1 -0
  182. package/dist/actions/wallet/index.mjs +1439 -0
  183. package/dist/actions/wallet/index.mjs.map +1 -0
  184. package/dist/actions/wallet/network/networkActions.mjs +137 -0
  185. package/dist/actions/wallet/network/networkActions.mjs.map +1 -0
  186. package/dist/actions/wallet/network/storage.mjs +93 -0
  187. package/dist/actions/wallet/network/storage.mjs.map +1 -0
  188. package/dist/actions/wallet/password/changePassword.mjs +282 -0
  189. package/dist/actions/wallet/password/changePassword.mjs.map +1 -0
  190. package/dist/actions/wallet/password/getActiveKey.mjs +297 -0
  191. package/dist/actions/wallet/password/getActiveKey.mjs.map +1 -0
  192. package/dist/actions/wallet/password/initOrUnlock.mjs +337 -0
  193. package/dist/actions/wallet/password/initOrUnlock.mjs.map +1 -0
  194. package/dist/actions/wallet/password/passwordStorage.mjs +69 -0
  195. package/dist/actions/wallet/password/passwordStorage.mjs.map +1 -0
  196. package/dist/actions/wallet/password/setPassword.mjs +138 -0
  197. package/dist/actions/wallet/password/setPassword.mjs.map +1 -0
  198. package/dist/actions/wallet/password/validatePassword.mjs +123 -0
  199. package/dist/actions/wallet/password/validatePassword.mjs.map +1 -0
  200. package/dist/actions/wallet/passwordKey.mjs +87 -0
  201. package/dist/actions/wallet/passwordKey.mjs.map +1 -0
  202. package/dist/actions/wallet/paths.mjs +26 -0
  203. package/dist/actions/wallet/paths.mjs.map +1 -0
  204. package/dist/actions/wallet/prompt.mjs +93 -0
  205. package/dist/actions/wallet/prompt.mjs.map +1 -0
  206. package/dist/actions/wallet/seedPhrase/createPhrase.mjs +392 -0
  207. package/dist/actions/wallet/seedPhrase/createPhrase.mjs.map +1 -0
  208. package/dist/actions/wallet/seedPhrase/exportPhrase.mjs +334 -0
  209. package/dist/actions/wallet/seedPhrase/exportPhrase.mjs.map +1 -0
  210. package/dist/actions/wallet/seedPhrase/idGen.mjs +11 -0
  211. package/dist/actions/wallet/seedPhrase/idGen.mjs.map +1 -0
  212. package/dist/actions/wallet/seedPhrase/importPhrase.mjs +393 -0
  213. package/dist/actions/wallet/seedPhrase/importPhrase.mjs.map +1 -0
  214. package/dist/actions/wallet/seedPhrase/listPhrases.mjs +62 -0
  215. package/dist/actions/wallet/seedPhrase/listPhrases.mjs.map +1 -0
  216. package/dist/actions/wallet/seedPhrase/phraseStorage.mjs +89 -0
  217. package/dist/actions/wallet/seedPhrase/phraseStorage.mjs.map +1 -0
  218. package/dist/actions/wallet/seedPhrase/removePhrase.mjs +366 -0
  219. package/dist/actions/wallet/seedPhrase/removePhrase.mjs.map +1 -0
  220. package/dist/actions/wallet/seedPhrase/renamePhrase.mjs +78 -0
  221. package/dist/actions/wallet/seedPhrase/renamePhrase.mjs.map +1 -0
  222. package/dist/actions/wallet/seedPhrase/types.mjs +1 -0
  223. package/dist/actions/wallet/seedPhrase/types.mjs.map +1 -0
  224. package/dist/actions/wallet/seedPhrase/usePhrase.mjs +83 -0
  225. package/dist/actions/wallet/seedPhrase/usePhrase.mjs.map +1 -0
  226. package/dist/actions/wallet/session/machineId.mjs +145 -0
  227. package/dist/actions/wallet/session/machineId.mjs.map +1 -0
  228. package/dist/actions/wallet/session/sessionCache.mjs +221 -0
  229. package/dist/actions/wallet/session/sessionCache.mjs.map +1 -0
  230. package/dist/actions/wallet/session/unlock.mjs +307 -0
  231. package/dist/actions/wallet/session/unlock.mjs.map +1 -0
  232. package/dist/actions/wallet/sign/signPayload.mjs +637 -0
  233. package/dist/actions/wallet/sign/signPayload.mjs.map +1 -0
  234. package/dist/actions/wallet/storage.mjs +51 -0
  235. package/dist/actions/wallet/storage.mjs.map +1 -0
  236. package/dist/actions/wallet/transaction/broadcastTransaction.mjs +453 -0
  237. package/dist/actions/wallet/transaction/broadcastTransaction.mjs.map +1 -0
  238. package/dist/actions/wallet/transaction/sendTransaction.mjs +457 -0
  239. package/dist/actions/wallet/transaction/sendTransaction.mjs.map +1 -0
  240. package/dist/actions/wallet/transaction/signTransactionFile.mjs +378 -0
  241. package/dist/actions/wallet/transaction/signTransactionFile.mjs.map +1 -0
  242. package/dist/actions/xyo/index.mjs +138 -0
  243. package/dist/actions/xyo/index.mjs.map +1 -0
  244. package/dist/actions/xyo/transaction/index.mjs +138 -0
  245. package/dist/actions/xyo/transaction/index.mjs.map +1 -0
  246. package/dist/actions/xyo/transaction/validateTransactions.mjs +138 -0
  247. package/dist/actions/xyo/transaction/validateTransactions.mjs.map +1 -0
  248. package/dist/aries.mjs +8466 -0
  249. package/dist/aries.mjs.map +1 -0
  250. package/dist/bin/aries.mjs +8472 -0
  251. package/dist/bin/aries.mjs.map +1 -0
  252. package/dist/commands/aiCommand.mjs +492 -0
  253. package/dist/commands/aiCommand.mjs.map +1 -0
  254. package/dist/commands/auditAiCommand.mjs +119 -0
  255. package/dist/commands/auditAiCommand.mjs.map +1 -0
  256. package/dist/commands/auditCommand.mjs +857 -0
  257. package/dist/commands/auditCommand.mjs.map +1 -0
  258. package/dist/commands/auditInstallCommand.mjs +324 -0
  259. package/dist/commands/auditInstallCommand.mjs.map +1 -0
  260. package/dist/commands/auditListCommand.mjs +107 -0
  261. package/dist/commands/auditListCommand.mjs.map +1 -0
  262. package/dist/commands/auditOpenCommand.mjs +51 -0
  263. package/dist/commands/auditOpenCommand.mjs.map +1 -0
  264. package/dist/commands/auditSearchCommand.mjs +98 -0
  265. package/dist/commands/auditSearchCommand.mjs.map +1 -0
  266. package/dist/commands/auditShowCommand.mjs +123 -0
  267. package/dist/commands/auditShowCommand.mjs.map +1 -0
  268. package/dist/commands/auditStatusCommand.mjs +105 -0
  269. package/dist/commands/auditStatusCommand.mjs.map +1 -0
  270. package/dist/commands/clampCommand.mjs +2328 -0
  271. package/dist/commands/clampCommand.mjs.map +1 -0
  272. package/dist/commands/clampPolicyCommand.mjs +184 -0
  273. package/dist/commands/clampPolicyCommand.mjs.map +1 -0
  274. package/dist/commands/clampPolicyInitCommand.mjs +63 -0
  275. package/dist/commands/clampPolicyInitCommand.mjs.map +1 -0
  276. package/dist/commands/clampPolicyListCommand.mjs +56 -0
  277. package/dist/commands/clampPolicyListCommand.mjs.map +1 -0
  278. package/dist/commands/clampPolicyShowCommand.mjs +83 -0
  279. package/dist/commands/clampPolicyShowCommand.mjs.map +1 -0
  280. package/dist/commands/clampRunCommand.mjs +2137 -0
  281. package/dist/commands/clampRunCommand.mjs.map +1 -0
  282. package/dist/commands/datalakeAuditCommand.mjs +273 -0
  283. package/dist/commands/datalakeAuditCommand.mjs.map +1 -0
  284. package/dist/commands/datalakeCommand.mjs +1637 -0
  285. package/dist/commands/datalakeCommand.mjs.map +1 -0
  286. package/dist/commands/datalakeCreateCommand.mjs +189 -0
  287. package/dist/commands/datalakeCreateCommand.mjs.map +1 -0
  288. package/dist/commands/datalakeDescribeCommand.mjs +172 -0
  289. package/dist/commands/datalakeDescribeCommand.mjs.map +1 -0
  290. package/dist/commands/datalakeDestroyCommand.mjs +53 -0
  291. package/dist/commands/datalakeDestroyCommand.mjs.map +1 -0
  292. package/dist/commands/datalakeDevCommand.mjs +470 -0
  293. package/dist/commands/datalakeDevCommand.mjs.map +1 -0
  294. package/dist/commands/datalakeDevDownCommand.mjs +111 -0
  295. package/dist/commands/datalakeDevDownCommand.mjs.map +1 -0
  296. package/dist/commands/datalakeDevLogsCommand.mjs +65 -0
  297. package/dist/commands/datalakeDevLogsCommand.mjs.map +1 -0
  298. package/dist/commands/datalakeDevResetCommand.mjs +125 -0
  299. package/dist/commands/datalakeDevResetCommand.mjs.map +1 -0
  300. package/dist/commands/datalakeDevStatusCommand.mjs +110 -0
  301. package/dist/commands/datalakeDevStatusCommand.mjs.map +1 -0
  302. package/dist/commands/datalakeDevUpCommand.mjs +268 -0
  303. package/dist/commands/datalakeDevUpCommand.mjs.map +1 -0
  304. package/dist/commands/datalakeFetchCommand.mjs +106 -0
  305. package/dist/commands/datalakeFetchCommand.mjs.map +1 -0
  306. package/dist/commands/datalakeGrantCommand.mjs +147 -0
  307. package/dist/commands/datalakeGrantCommand.mjs.map +1 -0
  308. package/dist/commands/datalakeListCommand.mjs +61 -0
  309. package/dist/commands/datalakeListCommand.mjs.map +1 -0
  310. package/dist/commands/datalakeLoginCommand.mjs +39 -0
  311. package/dist/commands/datalakeLoginCommand.mjs.map +1 -0
  312. package/dist/commands/datalakeLogoutCommand.mjs +20 -0
  313. package/dist/commands/datalakeLogoutCommand.mjs.map +1 -0
  314. package/dist/commands/datalakePushCommand.mjs +214 -0
  315. package/dist/commands/datalakePushCommand.mjs.map +1 -0
  316. package/dist/commands/datalakeRevokeCommand.mjs +127 -0
  317. package/dist/commands/datalakeRevokeCommand.mjs.map +1 -0
  318. package/dist/commands/datalakeTailCommand.mjs +144 -0
  319. package/dist/commands/datalakeTailCommand.mjs.map +1 -0
  320. package/dist/commands/datalakeTokenCommand.mjs +61 -0
  321. package/dist/commands/datalakeTokenCommand.mjs.map +1 -0
  322. package/dist/commands/datalakeUseCommand.mjs +35 -0
  323. package/dist/commands/datalakeUseCommand.mjs.map +1 -0
  324. package/dist/commands/detectCommand.mjs +419 -0
  325. package/dist/commands/detectCommand.mjs.map +1 -0
  326. package/dist/commands/hashCommand.mjs +976 -0
  327. package/dist/commands/hashCommand.mjs.map +1 -0
  328. package/dist/commands/hashCompareCommand.mjs +865 -0
  329. package/dist/commands/hashCompareCommand.mjs.map +1 -0
  330. package/dist/commands/index.mjs +8461 -0
  331. package/dist/commands/index.mjs.map +1 -0
  332. package/dist/commands/syncCommand.mjs +66 -0
  333. package/dist/commands/syncCommand.mjs.map +1 -0
  334. package/dist/commands/versionCommand.mjs +24 -0
  335. package/dist/commands/versionCommand.mjs.map +1 -0
  336. package/dist/commands/walletAccountCommand.mjs +536 -0
  337. package/dist/commands/walletAccountCommand.mjs.map +1 -0
  338. package/dist/commands/walletAccountDeriveCommand.mjs +415 -0
  339. package/dist/commands/walletAccountDeriveCommand.mjs.map +1 -0
  340. package/dist/commands/walletAccountLabelCommand.mjs +405 -0
  341. package/dist/commands/walletAccountLabelCommand.mjs.map +1 -0
  342. package/dist/commands/walletAccountListCommand.mjs +381 -0
  343. package/dist/commands/walletAccountListCommand.mjs.map +1 -0
  344. package/dist/commands/walletAccountRemoveCommand.mjs +396 -0
  345. package/dist/commands/walletAccountRemoveCommand.mjs.map +1 -0
  346. package/dist/commands/walletAccountShowCommand.mjs +380 -0
  347. package/dist/commands/walletAccountShowCommand.mjs.map +1 -0
  348. package/dist/commands/walletBackupCommand.mjs +222 -0
  349. package/dist/commands/walletBackupCommand.mjs.map +1 -0
  350. package/dist/commands/walletBackupExportCommand.mjs +107 -0
  351. package/dist/commands/walletBackupExportCommand.mjs.map +1 -0
  352. package/dist/commands/walletBackupImportCommand.mjs +154 -0
  353. package/dist/commands/walletBackupImportCommand.mjs.map +1 -0
  354. package/dist/commands/walletBalanceCommand.mjs +448 -0
  355. package/dist/commands/walletBalanceCommand.mjs.map +1 -0
  356. package/dist/commands/walletCommand.mjs +1968 -0
  357. package/dist/commands/walletCommand.mjs.map +1 -0
  358. package/dist/commands/walletContactAddCommand.mjs +111 -0
  359. package/dist/commands/walletContactAddCommand.mjs.map +1 -0
  360. package/dist/commands/walletContactCommand.mjs +184 -0
  361. package/dist/commands/walletContactCommand.mjs.map +1 -0
  362. package/dist/commands/walletContactListCommand.mjs +66 -0
  363. package/dist/commands/walletContactListCommand.mjs.map +1 -0
  364. package/dist/commands/walletContactRemoveCommand.mjs +97 -0
  365. package/dist/commands/walletContactRemoveCommand.mjs.map +1 -0
  366. package/dist/commands/walletContactRenameCommand.mjs +114 -0
  367. package/dist/commands/walletContactRenameCommand.mjs.map +1 -0
  368. package/dist/commands/walletCreateCommand.mjs +407 -0
  369. package/dist/commands/walletCreateCommand.mjs.map +1 -0
  370. package/dist/commands/walletExportCommand.mjs +345 -0
  371. package/dist/commands/walletExportCommand.mjs.map +1 -0
  372. package/dist/commands/walletImportCommand.mjs +413 -0
  373. package/dist/commands/walletImportCommand.mjs.map +1 -0
  374. package/dist/commands/walletListCommand.mjs +69 -0
  375. package/dist/commands/walletListCommand.mjs.map +1 -0
  376. package/dist/commands/walletLockCommand.mjs +56 -0
  377. package/dist/commands/walletLockCommand.mjs.map +1 -0
  378. package/dist/commands/walletNetworkAddCommand.mjs +131 -0
  379. package/dist/commands/walletNetworkAddCommand.mjs.map +1 -0
  380. package/dist/commands/walletNetworkCommand.mjs +206 -0
  381. package/dist/commands/walletNetworkCommand.mjs.map +1 -0
  382. package/dist/commands/walletNetworkListCommand.mjs +104 -0
  383. package/dist/commands/walletNetworkListCommand.mjs.map +1 -0
  384. package/dist/commands/walletNetworkRemoveCommand.mjs +112 -0
  385. package/dist/commands/walletNetworkRemoveCommand.mjs.map +1 -0
  386. package/dist/commands/walletNetworkUseCommand.mjs +110 -0
  387. package/dist/commands/walletNetworkUseCommand.mjs.map +1 -0
  388. package/dist/commands/walletPasswordChangeCommand.mjs +291 -0
  389. package/dist/commands/walletPasswordChangeCommand.mjs.map +1 -0
  390. package/dist/commands/walletPasswordCommand.mjs +301 -0
  391. package/dist/commands/walletPasswordCommand.mjs.map +1 -0
  392. package/dist/commands/walletRemoveCommand.mjs +378 -0
  393. package/dist/commands/walletRemoveCommand.mjs.map +1 -0
  394. package/dist/commands/walletRenameCommand.mjs +94 -0
  395. package/dist/commands/walletRenameCommand.mjs.map +1 -0
  396. package/dist/commands/walletSignCommand.mjs +662 -0
  397. package/dist/commands/walletSignCommand.mjs.map +1 -0
  398. package/dist/commands/walletTxBroadcastCommand.mjs +473 -0
  399. package/dist/commands/walletTxBroadcastCommand.mjs.map +1 -0
  400. package/dist/commands/walletTxCommand.mjs +612 -0
  401. package/dist/commands/walletTxCommand.mjs.map +1 -0
  402. package/dist/commands/walletTxSendCommand.mjs +492 -0
  403. package/dist/commands/walletTxSendCommand.mjs.map +1 -0
  404. package/dist/commands/walletTxSignCommand.mjs +403 -0
  405. package/dist/commands/walletTxSignCommand.mjs.map +1 -0
  406. package/dist/commands/walletUnlockCommand.mjs +308 -0
  407. package/dist/commands/walletUnlockCommand.mjs.map +1 -0
  408. package/dist/commands/walletUseCommand.mjs +95 -0
  409. package/dist/commands/walletUseCommand.mjs.map +1 -0
  410. package/dist/commands/xyoCommand.mjs +188 -0
  411. package/dist/commands/xyoCommand.mjs.map +1 -0
  412. package/dist/commands/xyoTxCommand.mjs +178 -0
  413. package/dist/commands/xyoTxCommand.mjs.map +1 -0
  414. package/dist/commands/xyoTxValidateCommand.mjs +168 -0
  415. package/dist/commands/xyoTxValidateCommand.mjs.map +1 -0
  416. package/dist/index.d.ts +3 -0
  417. package/dist/index.mjs +8466 -0
  418. package/dist/index.mjs.map +1 -0
  419. package/dist/types/modules.d.mjs +1 -0
  420. package/dist/types/modules.d.mjs.map +1 -0
  421. package/package.json +197 -0
@@ -0,0 +1,662 @@
1
+ // src/actions/wallet/paths.ts
2
+ import OS from "os";
3
+ import PATH from "path";
4
+ function walletRoot() {
5
+ const override = process.env.ARIES_WALLET_HOME;
6
+ if (override) return override;
7
+ return PATH.join(OS.homedir(), ".aries", "wallet");
8
+ }
9
+ function walletPaths(root = walletRoot()) {
10
+ return {
11
+ root,
12
+ password: PATH.join(root, "password.json"),
13
+ phrases: PATH.join(root, "phrases.json"),
14
+ active: PATH.join(root, "active.json"),
15
+ addressBooks: PATH.join(root, "address-books.json"),
16
+ contacts: PATH.join(root, "contacts.json"),
17
+ networks: PATH.join(root, "networks.json"),
18
+ session: PATH.join(root, "session.json"),
19
+ machineId: PATH.join(root, ".machine-id")
20
+ };
21
+ }
22
+
23
+ // src/actions/wallet/storage.ts
24
+ import FS from "fs";
25
+ import PATH2 from "path";
26
+ function ensureWalletDir(root = walletRoot()) {
27
+ if (!FS.existsSync(root)) {
28
+ FS.mkdirSync(root, { recursive: true, mode: 448 });
29
+ return;
30
+ }
31
+ try {
32
+ FS.chmodSync(root, 448);
33
+ } catch {
34
+ }
35
+ }
36
+ function readJsonFile(file) {
37
+ if (!FS.existsSync(file)) return void 0;
38
+ const raw = FS.readFileSync(file, "utf8");
39
+ if (raw.trim().length === 0) return void 0;
40
+ return JSON.parse(raw);
41
+ }
42
+ function deleteFile(file) {
43
+ if (FS.existsSync(file)) FS.unlinkSync(file);
44
+ }
45
+
46
+ // src/actions/wallet/account/getActiveWallet.ts
47
+ import { HDWallet } from "@xyo-network/sdk-js";
48
+ import { DEFAULT_WALLET_PATH } from "@xyo-network/xl1-protocol-sdk";
49
+
50
+ // src/actions/wallet/prompt.ts
51
+ import { execFileSync } from "child_process";
52
+ import {
53
+ closeSync,
54
+ openSync,
55
+ readSync,
56
+ writeSync
57
+ } from "fs";
58
+ var CTRL_C = 3;
59
+ var ENTER = 13;
60
+ var NEWLINE = 10;
61
+ var BACKSPACE_DELETE = 127;
62
+ var BACKSPACE = 8;
63
+ function readChars(readFd, writeFd, mask) {
64
+ const chars = [];
65
+ const buf = Buffer.alloc(1);
66
+ for (; ; ) {
67
+ const bytes = readSync(readFd, buf, 0, 1, null);
68
+ if (bytes === 0) break;
69
+ const ch = buf[0];
70
+ if (ch === ENTER || ch === NEWLINE) break;
71
+ if (ch === CTRL_C) {
72
+ writeSync(writeFd, "\n");
73
+ throw new Error("Aborted");
74
+ }
75
+ if (ch === BACKSPACE_DELETE || ch === BACKSPACE) {
76
+ if (chars.length > 0) {
77
+ chars.pop();
78
+ writeSync(writeFd, "\b \b");
79
+ }
80
+ continue;
81
+ }
82
+ chars.push(ch);
83
+ writeSync(writeFd, mask ? "*" : String.fromCodePoint(ch));
84
+ }
85
+ writeSync(writeFd, "\n");
86
+ return Buffer.from(chars).toString("utf8");
87
+ }
88
+ function saveStty(readFd) {
89
+ try {
90
+ return execFileSync("stty", ["-g"], {
91
+ stdio: [readFd, "pipe", "ignore"],
92
+ encoding: "utf8"
93
+ }).trim();
94
+ } catch {
95
+ return void 0;
96
+ }
97
+ }
98
+ function applyStty(readFd, args) {
99
+ try {
100
+ execFileSync("stty", args, { stdio: [readFd, "ignore", "ignore"] });
101
+ } catch {
102
+ }
103
+ }
104
+ function promptTty(options) {
105
+ const readFd = openSync("/dev/tty", "r");
106
+ const writeFd = openSync("/dev/tty", "w");
107
+ const saved = saveStty(readFd);
108
+ try {
109
+ if (saved) applyStty(readFd, ["-echo", "-icanon", "min", "1", "time", "0"]);
110
+ writeSync(writeFd, options.prompt);
111
+ return readChars(readFd, writeFd, options.mask === true);
112
+ } finally {
113
+ if (saved) applyStty(readFd, [saved]);
114
+ try {
115
+ closeSync(readFd);
116
+ } catch {
117
+ }
118
+ try {
119
+ closeSync(writeFd);
120
+ } catch {
121
+ }
122
+ }
123
+ }
124
+ function promptPassword(prompt = "Password: ") {
125
+ const env = process.env.ARIES_WALLET_PASSWORD;
126
+ if (env !== void 0 && env.length > 0) return env;
127
+ return promptTty({ prompt, mask: true });
128
+ }
129
+
130
+ // src/actions/wallet/session/sessionCache.ts
131
+ import { webcrypto as webcrypto3 } from "crypto";
132
+
133
+ // src/actions/wallet/passwordKey.ts
134
+ import { webcrypto } from "crypto";
135
+ var subtle = webcrypto.subtle;
136
+ var INITIALIZATION_VECTOR_LENGTH = 12;
137
+ var PBKDF2_ITERATIONS = 1e5;
138
+ var SALT_BYTES = 16;
139
+ var PasswordKey = class _PasswordKey {
140
+ password;
141
+ salt;
142
+ constructor(password, salt = _PasswordKey.generateSalt()) {
143
+ this.password = password;
144
+ this.salt = salt;
145
+ }
146
+ static async decryptString(key, data) {
147
+ const encryptedData = new Uint8Array(Buffer.from(data, "base64"));
148
+ const iv = encryptedData.slice(0, INITIALIZATION_VECTOR_LENGTH);
149
+ const ciphertext = encryptedData.slice(INITIALIZATION_VECTOR_LENGTH);
150
+ const decrypted = await subtle.decrypt({ name: "AES-GCM", iv }, key, ciphertext);
151
+ return new TextDecoder("utf-8").decode(decrypted);
152
+ }
153
+ static async encryptString(key, data) {
154
+ const iv = webcrypto.getRandomValues(new Uint8Array(INITIALIZATION_VECTOR_LENGTH));
155
+ const ciphertext = await subtle.encrypt({ name: "AES-GCM", iv }, key, new TextEncoder().encode(data));
156
+ const combined = new Uint8Array(iv.length + ciphertext.byteLength);
157
+ combined.set(iv, 0);
158
+ combined.set(new Uint8Array(ciphertext), iv.length);
159
+ return Buffer.from(combined).toString("base64");
160
+ }
161
+ static generateSalt() {
162
+ const array = new Uint8Array(SALT_BYTES);
163
+ webcrypto.getRandomValues(array);
164
+ return [...array].map((byte) => byte.toString(16).padStart(2, "0")).join("");
165
+ }
166
+ static async getHashFromKey(key) {
167
+ const exported = await subtle.exportKey("raw", key);
168
+ const digest = await subtle.digest("SHA-256", exported);
169
+ return [...new Uint8Array(digest)].map((byte) => byte.toString(16).padStart(2, "0")).join("");
170
+ }
171
+ static async importEncryptionKey(rawKey) {
172
+ return await subtle.importKey("raw", rawKey, { name: "AES-GCM" }, false, ["encrypt", "decrypt"]);
173
+ }
174
+ static async importExtractableKey(rawKey) {
175
+ return await subtle.importKey("raw", rawKey, { name: "AES-GCM" }, true, ["encrypt", "decrypt"]);
176
+ }
177
+ static async serializeKey(key, salt = _PasswordKey.generateSalt()) {
178
+ const hash = await _PasswordKey.getHashFromKey(key);
179
+ return { hash, salt };
180
+ }
181
+ async deriveKey() {
182
+ const encoder = new TextEncoder();
183
+ const passphraseKey = await subtle.importKey(
184
+ "raw",
185
+ encoder.encode(this.password),
186
+ { name: "PBKDF2" },
187
+ false,
188
+ ["deriveKey"]
189
+ );
190
+ return await subtle.deriveKey(
191
+ {
192
+ name: "PBKDF2",
193
+ salt: encoder.encode(this.salt),
194
+ iterations: PBKDF2_ITERATIONS,
195
+ hash: "SHA-256"
196
+ },
197
+ passphraseKey,
198
+ { name: "AES-GCM", length: 256 },
199
+ true,
200
+ ["encrypt", "decrypt"]
201
+ );
202
+ }
203
+ };
204
+ async function decryptWithKey(key, data) {
205
+ const exported = await subtle.exportKey("raw", key);
206
+ const encKey = await PasswordKey.importEncryptionKey(exported);
207
+ return await PasswordKey.decryptString(encKey, data);
208
+ }
209
+
210
+ // src/actions/wallet/session/machineId.ts
211
+ import { webcrypto as webcrypto2 } from "crypto";
212
+ import FS2 from "fs";
213
+ import OS2 from "os";
214
+ function generateMachineSecret() {
215
+ const bytes = new Uint8Array(32);
216
+ webcrypto2.getRandomValues(bytes);
217
+ return [...bytes].map((b) => b.toString(16).padStart(2, "0")).join("");
218
+ }
219
+ function loadMachineSecret() {
220
+ ensureWalletDir();
221
+ const path = walletPaths().machineId;
222
+ if (FS2.existsSync(path)) {
223
+ return FS2.readFileSync(path, "utf8").trim();
224
+ }
225
+ const secret = generateMachineSecret();
226
+ FS2.writeFileSync(path, `${secret}
227
+ `, { mode: 384 });
228
+ try {
229
+ FS2.chmodSync(path, 384);
230
+ } catch {
231
+ }
232
+ return secret;
233
+ }
234
+ async function deriveMachineKey() {
235
+ const secret = loadMachineSecret();
236
+ const stable = `${OS2.hostname()}:${OS2.userInfo().username}:${secret}`;
237
+ const passwordKey = new PasswordKey(stable, "aries-wallet-machine-kek-v1");
238
+ return await passwordKey.deriveKey();
239
+ }
240
+
241
+ // src/actions/wallet/session/sessionCache.ts
242
+ var subtle2 = webcrypto3.subtle;
243
+ var DEFAULT_SESSION_TTL_SECONDS = 15 * 60;
244
+ function lockSession() {
245
+ deleteFile(walletPaths().session);
246
+ }
247
+ async function readSession() {
248
+ const data = readJsonFile(walletPaths().session);
249
+ if (!data) return void 0;
250
+ if (data.expiresAt <= Date.now()) {
251
+ lockSession();
252
+ return void 0;
253
+ }
254
+ try {
255
+ const machineKey = await deriveMachineKey();
256
+ const exportedBase64 = await decryptWithKey(machineKey, data.encryptedKey);
257
+ const raw = Buffer.from(exportedBase64, "base64");
258
+ return await PasswordKey.importExtractableKey(
259
+ raw.buffer.slice(raw.byteOffset, raw.byteOffset + raw.byteLength)
260
+ );
261
+ } catch {
262
+ lockSession();
263
+ return void 0;
264
+ }
265
+ }
266
+
267
+ // src/actions/wallet/password/passwordStorage.ts
268
+ function readPassword() {
269
+ return readJsonFile(walletPaths().password);
270
+ }
271
+ function hasPassword() {
272
+ return readPassword() !== void 0;
273
+ }
274
+
275
+ // src/actions/wallet/password/validatePassword.ts
276
+ async function validatePassword(password) {
277
+ const stored = readPassword();
278
+ if (!stored) return void 0;
279
+ const passwordKey = new PasswordKey(password, stored.salt);
280
+ const key = await passwordKey.deriveKey();
281
+ const hash = await PasswordKey.getHashFromKey(key);
282
+ if (hash !== stored.hash) return void 0;
283
+ return key;
284
+ }
285
+
286
+ // src/actions/wallet/password/getActiveKey.ts
287
+ async function getActiveKey() {
288
+ if (!hasPassword()) {
289
+ throw new Error("Wallet not initialized. Run `aries wallet create` or `aries wallet import` first.");
290
+ }
291
+ const cached = await readSession();
292
+ if (cached) return cached;
293
+ const password = promptPassword("Wallet password: ");
294
+ const key = await validatePassword(password);
295
+ if (!key) throw new Error("Incorrect password.");
296
+ return key;
297
+ }
298
+
299
+ // src/actions/wallet/seedPhrase/phraseStorage.ts
300
+ function readPhrases() {
301
+ const data = readJsonFile(walletPaths().phrases);
302
+ return data?.phrases ?? [];
303
+ }
304
+ function readActive() {
305
+ return readJsonFile(walletPaths().active) ?? {};
306
+ }
307
+ function getActivePhrase() {
308
+ const phrases = readPhrases();
309
+ if (phrases.length === 0) return void 0;
310
+ const active = readActive();
311
+ if (active.phraseId) {
312
+ const found = phrases.find((p) => p.id === active.phraseId);
313
+ if (found) return found;
314
+ }
315
+ return phrases[0];
316
+ }
317
+
318
+ // src/actions/wallet/account/getActiveWallet.ts
319
+ async function getActiveWallet() {
320
+ const record = getActivePhrase();
321
+ if (!record) throw new Error("No active wallet. Run `aries wallet create` or `aries wallet import` first.");
322
+ const key = await getActiveKey();
323
+ const mnemonic = await decryptWithKey(key, record.encryptedPhrase);
324
+ const rootWallet = await HDWallet.fromPhrase(mnemonic, DEFAULT_WALLET_PATH);
325
+ return {
326
+ record,
327
+ mnemonic,
328
+ rootWallet
329
+ };
330
+ }
331
+ async function deriveAccount(rootWallet, offset) {
332
+ return await rootWallet.derivePath(offset);
333
+ }
334
+
335
+ // src/actions/wallet/sign/signPayload.ts
336
+ import FS3 from "fs";
337
+
338
+ // ../../node_modules/.pnpm/@xyo-network+boundwitness-builder@5.5.2_@bitauth+libauth@3.0.0_@scure+base@2.2.0_@xylab_4c4b2704d625c906bfa16bd14f65b27b/node_modules/@xyo-network/boundwitness-builder/dist/neutral/index.mjs
339
+ import {
340
+ asAddress,
341
+ asHash,
342
+ assertEx,
343
+ hexFromArrayBuffer,
344
+ toArrayBuffer
345
+ } from "@xylabs/sdk-js";
346
+
347
+ // ../../node_modules/.pnpm/@xyo-network+boundwitness-model@5.5.2_@xylabs+sdk-js@5.0.101_@opentelemetry+api@1.9.1_@_815cc9f8526e164e787cddfcee3cd298/node_modules/@xyo-network/boundwitness-model/dist/neutral/index.mjs
348
+ import {
349
+ AddressZod,
350
+ HashZod,
351
+ zodAsFactory,
352
+ zodIsFactory,
353
+ zodToFactory
354
+ } from "@xylabs/sdk-js";
355
+ import { PayloadZod, SchemaZod } from "@xyo-network/payload-model";
356
+ import z2 from "zod";
357
+ import { asSchema } from "@xyo-network/payload-model";
358
+ import { HexZod } from "@xylabs/sdk-js";
359
+ import z from "zod";
360
+ import { PayloadZod as PayloadZod2 } from "@xyo-network/payload-model";
361
+ import z3 from "zod";
362
+ import { isStorageMeta } from "@xyo-network/payload-model";
363
+ var BoundWitnessSchema = asSchema("network.xyo.boundwitness", true);
364
+ var SignaturesMetaZod = z.object({ $signatures: z.array(z.union([HexZod, z.null()])) });
365
+ var UnsignedSignaturesMetaZod = z.object({ $signatures: z.array(z.null()) });
366
+ var SignedSignaturesMetaZod = z.object({ $signatures: z.array(HexZod).min(1) });
367
+ var BoundWitnessRequiredFieldsZod = z2.object({
368
+ addresses: z2.array(AddressZod),
369
+ payload_hashes: z2.array(HashZod),
370
+ payload_schemas: z2.array(SchemaZod),
371
+ previous_hashes: z2.array(HashZod.nullable())
372
+ });
373
+ var BoundWitnessMetaZod = z2.object({
374
+ $destination: AddressZod.optional(),
375
+ $sourceQuery: HashZod.optional()
376
+ }).extend(SignaturesMetaZod.shape);
377
+ var BoundWitnessZod = PayloadZod.safeExtend({ schema: z2.literal(BoundWitnessSchema) }).safeExtend(BoundWitnessRequiredFieldsZod.shape).safeExtend(BoundWitnessMetaZod.shape);
378
+ var isBoundWitness = zodIsFactory(BoundWitnessZod);
379
+ var asBoundWitness = zodAsFactory(BoundWitnessZod, "asBoundWitness");
380
+ var toBoundWitness = zodToFactory(BoundWitnessZod, "toBoundWitness");
381
+ var AnyBoundWitnessZod = BoundWitnessZod.loose();
382
+ var SignedBoundWitnessZod = BoundWitnessZod.extend(SignedSignaturesMetaZod.shape);
383
+ var AnySignedBoundWitnessZod = SignedBoundWitnessZod.loose();
384
+ var UnsignedBoundWitnessZod = BoundWitnessZod.extend(UnsignedSignaturesMetaZod.shape);
385
+ var AnyUnsignedBoundWitnessZod = UnsignedBoundWitnessZod.loose();
386
+ function HydratedBoundWitnessZodBuilder(bwZod) {
387
+ return z3.tuple([bwZod, z3.array(PayloadZod2.loose())]);
388
+ }
389
+ var HydratedBoundWitnessZod = HydratedBoundWitnessZodBuilder(BoundWitnessZod);
390
+ var SignedHydratedBoundWitnessZod = HydratedBoundWitnessZodBuilder(SignedBoundWitnessZod);
391
+ var UnsignedHydratedBoundWitnessZod = HydratedBoundWitnessZodBuilder(UnsignedBoundWitnessZod);
392
+
393
+ // ../../node_modules/.pnpm/@xyo-network+boundwitness-builder@5.5.2_@bitauth+libauth@3.0.0_@scure+base@2.2.0_@xylab_4c4b2704d625c906bfa16bd14f65b27b/node_modules/@xyo-network/boundwitness-builder/dist/neutral/index.mjs
394
+ import {
395
+ ObjectHasher,
396
+ removeEmptyFields,
397
+ sortFields
398
+ } from "@xyo-network/hash";
399
+ import { omitSchema, PayloadBuilder } from "@xyo-network/payload-builder";
400
+ import { Mutex } from "async-mutex";
401
+ import {
402
+ asHash as asHash2,
403
+ difference,
404
+ exists
405
+ } from "@xylabs/sdk-js";
406
+ import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
407
+ import { asHash as asHash3 } from "@xylabs/sdk-js";
408
+ import { assertEx as assertEx2 } from "@xylabs/sdk-js";
409
+ var GeneratedBoundWitnessFields = ["addresses", "payload_hashes", "payload_schemas", "previous_hashes"];
410
+ var uniqueAddresses = (addresses, throwOnFalse = false) => {
411
+ const addressesSet = /* @__PURE__ */ new Set();
412
+ for (const address of addresses) {
413
+ if (addressesSet.has(address)) {
414
+ if (throwOnFalse) {
415
+ throw new Error("Duplicate address");
416
+ }
417
+ return false;
418
+ }
419
+ addressesSet.add(address);
420
+ }
421
+ return true;
422
+ };
423
+ var uniqueAccounts = (accounts, throwOnFalse = false) => {
424
+ return uniqueAddresses(accounts.map((account) => account.address), throwOnFalse);
425
+ };
426
+ var BoundWitnessBuilder = class _BoundWitnessBuilder extends PayloadBuilder {
427
+ static _buildMutex = new Mutex();
428
+ _accounts = [];
429
+ _errorHashes;
430
+ _errors = [];
431
+ _payloadHashes;
432
+ _payloadSchemas;
433
+ _payloads = [];
434
+ constructor(options) {
435
+ super({ ...options, schema: BoundWitnessSchema });
436
+ }
437
+ get addresses() {
438
+ uniqueAccounts(this._accounts, true);
439
+ return this._accounts.map((account) => account.address.toLowerCase());
440
+ }
441
+ get payloadSchemas() {
442
+ return this._payloadSchemas ?? this._payloads.map((payload) => {
443
+ return assertEx(payload.schema, () => this.missingSchemaMessage(payload));
444
+ });
445
+ }
446
+ get previousHashBytes() {
447
+ return this._accounts.map((account) => account.previousHashBytes ?? null);
448
+ }
449
+ get previousHashes() {
450
+ return this._accounts.map((account) => account.previousHash ?? null);
451
+ }
452
+ static addressIndex(payload, address) {
453
+ const index = payload.addresses.indexOf(address);
454
+ if (index === -1) {
455
+ throw new Error("Invalid address");
456
+ }
457
+ return index;
458
+ }
459
+ static previousHash(boundWitness, address) {
460
+ return asHash(boundWitness.previous_hashes[this.addressIndex(boundWitness, address)])?.toLowerCase();
461
+ }
462
+ static async linkingFields(accounts, payloads) {
463
+ const addresses = accounts.map((account) => asAddress(hexFromArrayBuffer(account.addressBytes, { prefix: false }), true));
464
+ const previous_hashes = accounts.map((account) => account.previousHash ?? null);
465
+ const payload_hashes = payloads ? await _BoundWitnessBuilder.hashes(payloads) : [];
466
+ const payload_schemas = payloads?.map(({ schema }) => schema) ?? [];
467
+ return {
468
+ addresses,
469
+ payload_hashes,
470
+ payload_schemas,
471
+ previous_hashes
472
+ };
473
+ }
474
+ static signature(payload, address) {
475
+ return payload.$signatures[this.addressIndex(payload, address)];
476
+ }
477
+ static async signatures(accounts, dataHash) {
478
+ const hashBytes = toArrayBuffer(dataHash);
479
+ const previousHashesBytes = accounts?.map((account) => account.previousHashBytes);
480
+ return await Promise.all(accounts.map(async (account, index) => hexFromArrayBuffer((await account.sign(hashBytes, previousHashesBytes[index]))[0])));
481
+ }
482
+ static validateGeneratedFields(fields) {
483
+ assertEx(fields.payload_hashes?.length === fields.payload_schemas?.length, () => "Payload hash/schema mismatch");
484
+ assertEx(!fields.payload_hashes.includes(null), () => "nulls found in hashes");
485
+ assertEx(!fields.payload_schemas.includes(null), () => "nulls found in schemas");
486
+ }
487
+ async build(sign = true) {
488
+ return await _BoundWitnessBuilder._buildMutex.runExclusive(async () => {
489
+ const dataHashableFields = await this.dataHashableFields();
490
+ const $signatures = sign ? await this.sign() : this.addresses.map(() => null);
491
+ const ret = {
492
+ ...this._meta,
493
+ ...dataHashableFields,
494
+ ...this._fields,
495
+ $signatures
496
+ };
497
+ return [
498
+ ret,
499
+ this._payloads,
500
+ this._errors
501
+ ];
502
+ });
503
+ }
504
+ async dataHash() {
505
+ const dataHashableFields = await this.dataHashableFields();
506
+ const hash = await ObjectHasher.hash(dataHashableFields);
507
+ return hash;
508
+ }
509
+ async dataHashableFields() {
510
+ const generatedFields = await this.generatedFields();
511
+ _BoundWitnessBuilder.validateGeneratedFields(generatedFields);
512
+ const fields = {
513
+ ...PayloadBuilder.omitMeta(this._fields ?? {}),
514
+ ...generatedFields
515
+ };
516
+ return await _BoundWitnessBuilder.dataHashableFields(this._schema, fields);
517
+ }
518
+ error(payload) {
519
+ assertEx(this._errorHashes === void 0, () => "Can not set errors when hashes already set");
520
+ if (payload) {
521
+ this._errors.push(assertEx(sortFields(payload)));
522
+ }
523
+ return this;
524
+ }
525
+ errors(errors) {
526
+ if (errors) {
527
+ for (const error of errors) {
528
+ if (error !== null) {
529
+ this.error(error);
530
+ }
531
+ }
532
+ }
533
+ return this;
534
+ }
535
+ fields(fields) {
536
+ const clone = structuredClone(fields);
537
+ for (const field of GeneratedBoundWitnessFields) {
538
+ delete clone[field];
539
+ }
540
+ this._fields = _BoundWitnessBuilder.omitStorageMeta(
541
+ _BoundWitnessBuilder.omitClientMeta(
542
+ omitSchema(removeEmptyFields(clone))
543
+ )
544
+ );
545
+ return this;
546
+ }
547
+ hashes(hashes, schema) {
548
+ assertEx(this.payloads.length === 0, () => "Can not set hashes when payloads already set");
549
+ this._payloadHashes = hashes;
550
+ this._payloadSchemas = schema;
551
+ return this;
552
+ }
553
+ payload(payload) {
554
+ assertEx(this._payloadHashes === void 0, () => "Can not set payloads when hashes already set");
555
+ if (payload) {
556
+ this._payloads.push(assertEx(sortFields(payload)));
557
+ }
558
+ return this;
559
+ }
560
+ payloads(payloads) {
561
+ if (payloads)
562
+ for (const payload of payloads) {
563
+ if (payload !== null) {
564
+ this.payload(payload);
565
+ }
566
+ }
567
+ return this;
568
+ }
569
+ signer(account) {
570
+ uniqueAccounts([...this._accounts, account], true);
571
+ this._accounts?.push(account);
572
+ return this;
573
+ }
574
+ signers(accounts) {
575
+ uniqueAccounts([...this._accounts, ...accounts], true);
576
+ this._accounts?.push(...accounts);
577
+ return this;
578
+ }
579
+ sourceQuery(sourceQuery) {
580
+ this._meta = {
581
+ ...this._meta,
582
+ $sourceQuery: sourceQuery
583
+ };
584
+ return this;
585
+ }
586
+ /** @deprecated use signer instead */
587
+ witness(account) {
588
+ this._accounts?.push(account);
589
+ return this;
590
+ }
591
+ /** @deprecated use signers instead */
592
+ witnesses(accounts) {
593
+ this._accounts?.push(...accounts);
594
+ return this;
595
+ }
596
+ async sign() {
597
+ uniqueAccounts(this._accounts, true);
598
+ const hashBytes = toArrayBuffer(await this.dataHash());
599
+ return await Promise.all(this._accounts.map(async (account) => hexFromArrayBuffer((await account.sign(hashBytes))[0])));
600
+ }
601
+ async generatedFields() {
602
+ return await _BoundWitnessBuilder.linkingFields(this._accounts, this._payloads);
603
+ }
604
+ missingSchemaMessage(payload) {
605
+ return `Builder: Missing Schema
606
+ ${JSON.stringify(payload, null, 2)}`;
607
+ }
608
+ };
609
+
610
+ // src/actions/wallet/sign/signPayload.ts
611
+ import chalk from "chalk";
612
+ async function signPayload(options) {
613
+ const offset = options.offset ?? "0";
614
+ const raw = FS3.readFileSync(options.file, "utf8");
615
+ const payload = JSON.parse(raw);
616
+ if (typeof payload.schema !== "string" || payload.schema.length === 0) {
617
+ throw new Error("Payload must have a non-empty `schema` string field.");
618
+ }
619
+ const { rootWallet } = await getActiveWallet();
620
+ const account = await deriveAccount(rootWallet, offset);
621
+ const [boundwitness, payloads] = await new BoundWitnessBuilder().payload(payload).signer(account).build();
622
+ const result = { boundwitness, payloads };
623
+ const json = JSON.stringify(result, null, 2);
624
+ if (options.output) {
625
+ FS3.writeFileSync(options.output, `${json}
626
+ `);
627
+ console.log(chalk.green(`Signed payload written to ${options.output}`));
628
+ } else {
629
+ console.log(json);
630
+ }
631
+ }
632
+
633
+ // src/commands/walletSignCommand.ts
634
+ var walletSignCommand = {
635
+ command: "sign <file>",
636
+ describe: "Sign a JSON payload with a derived account (produces a BoundWitness)",
637
+ builder: (yargs) => yargs.positional("file", {
638
+ type: "string",
639
+ demandOption: true,
640
+ describe: "Path to a JSON payload file"
641
+ }).option("offset", {
642
+ alias: "o",
643
+ type: "string",
644
+ default: "0",
645
+ describe: "HD path offset of the signer"
646
+ }).option("output", {
647
+ alias: "O",
648
+ type: "string",
649
+ describe: "Write output to file instead of stdout"
650
+ }),
651
+ handler: async (argv) => {
652
+ await signPayload({
653
+ file: argv.file,
654
+ offset: argv.offset,
655
+ output: argv.output
656
+ });
657
+ }
658
+ };
659
+ export {
660
+ walletSignCommand
661
+ };
662
+ //# sourceMappingURL=walletSignCommand.mjs.map