@xylabs/aries 0.1.1 → 0.1.6

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 +6 -688
  2. package/dist/aries.mjs +47 -8466
  3. package/package.json +15 -169
  4. package/dist/actions/audit/auditPaths.mjs +0 -22
  5. package/dist/actions/audit/auditPaths.mjs.map +0 -1
  6. package/dist/actions/audit/index.mjs +0 -739
  7. package/dist/actions/audit/index.mjs.map +0 -1
  8. package/dist/actions/audit/installPlugin.mjs +0 -298
  9. package/dist/actions/audit/installPlugin.mjs.map +0 -1
  10. package/dist/actions/audit/listSessions.mjs +0 -93
  11. package/dist/actions/audit/listSessions.mjs.map +0 -1
  12. package/dist/actions/audit/openAuditDir.mjs +0 -44
  13. package/dist/actions/audit/openAuditDir.mjs.map +0 -1
  14. package/dist/actions/audit/searchAudit.mjs +0 -77
  15. package/dist/actions/audit/searchAudit.mjs.map +0 -1
  16. package/dist/actions/audit/showAiMeta.mjs +0 -105
  17. package/dist/actions/audit/showAiMeta.mjs.map +0 -1
  18. package/dist/actions/audit/showSession.mjs +0 -105
  19. package/dist/actions/audit/showSession.mjs.map +0 -1
  20. package/dist/actions/audit/statusAudit.mjs +0 -98
  21. package/dist/actions/audit/statusAudit.mjs.map +0 -1
  22. package/dist/actions/clamp/clampAudit.mjs +0 -53
  23. package/dist/actions/clamp/clampAudit.mjs.map +0 -1
  24. package/dist/actions/clamp/index.mjs +0 -2258
  25. package/dist/actions/clamp/index.mjs.map +0 -1
  26. package/dist/actions/clamp/ipcServer.mjs +0 -55
  27. package/dist/actions/clamp/ipcServer.mjs.map +0 -1
  28. package/dist/actions/clamp/policyManagement.mjs +0 -144
  29. package/dist/actions/clamp/policyManagement.mjs.map +0 -1
  30. package/dist/actions/clamp/promptUser.mjs +0 -91
  31. package/dist/actions/clamp/promptUser.mjs.map +0 -1
  32. package/dist/actions/clamp/runClamped.mjs +0 -2107
  33. package/dist/actions/clamp/runClamped.mjs.map +0 -1
  34. package/dist/actions/clamp/sandboxExec.mjs +0 -1612
  35. package/dist/actions/clamp/sandboxExec.mjs.map +0 -1
  36. package/dist/actions/clamp/shellEnvSetup.mjs +0 -59
  37. package/dist/actions/clamp/shellEnvSetup.mjs.map +0 -1
  38. package/dist/actions/clamp/shimGenerator.mjs +0 -68
  39. package/dist/actions/clamp/shimGenerator.mjs.map +0 -1
  40. package/dist/actions/clamp/terminalRenderer.mjs +0 -145
  41. package/dist/actions/clamp/terminalRenderer.mjs.map +0 -1
  42. package/dist/actions/datalake/audit/auditLog.mjs +0 -191
  43. package/dist/actions/datalake/audit/auditLog.mjs.map +0 -1
  44. package/dist/actions/datalake/createDatalake.mjs +0 -127
  45. package/dist/actions/datalake/createDatalake.mjs.map +0 -1
  46. package/dist/actions/datalake/describeDatalake.mjs +0 -159
  47. package/dist/actions/datalake/describeDatalake.mjs.map +0 -1
  48. package/dist/actions/datalake/destroyDatalake.mjs +0 -34
  49. package/dist/actions/datalake/destroyDatalake.mjs.map +0 -1
  50. package/dist/actions/datalake/dev/downDevServer.mjs +0 -102
  51. package/dist/actions/datalake/dev/downDevServer.mjs.map +0 -1
  52. package/dist/actions/datalake/dev/index.mjs +0 -369
  53. package/dist/actions/datalake/dev/index.mjs.map +0 -1
  54. package/dist/actions/datalake/dev/logsDevServer.mjs +0 -44
  55. package/dist/actions/datalake/dev/logsDevServer.mjs.map +0 -1
  56. package/dist/actions/datalake/dev/paths.mjs +0 -25
  57. package/dist/actions/datalake/dev/paths.mjs.map +0 -1
  58. package/dist/actions/datalake/dev/resetDevServer.mjs +0 -118
  59. package/dist/actions/datalake/dev/resetDevServer.mjs.map +0 -1
  60. package/dist/actions/datalake/dev/resolveServerBin.mjs +0 -26
  61. package/dist/actions/datalake/dev/resolveServerBin.mjs.map +0 -1
  62. package/dist/actions/datalake/dev/state.mjs +0 -62
  63. package/dist/actions/datalake/dev/state.mjs.map +0 -1
  64. package/dist/actions/datalake/dev/statusDevServer.mjs +0 -101
  65. package/dist/actions/datalake/dev/statusDevServer.mjs.map +0 -1
  66. package/dist/actions/datalake/dev/upDevServer.mjs +0 -221
  67. package/dist/actions/datalake/dev/upDevServer.mjs.map +0 -1
  68. package/dist/actions/datalake/dev/waitForHealth.mjs +0 -22
  69. package/dist/actions/datalake/dev/waitForHealth.mjs.map +0 -1
  70. package/dist/actions/datalake/formatters.mjs +0 -90
  71. package/dist/actions/datalake/formatters.mjs.map +0 -1
  72. package/dist/actions/datalake/grantAccess.mjs +0 -116
  73. package/dist/actions/datalake/grantAccess.mjs.map +0 -1
  74. package/dist/actions/datalake/index.mjs +0 -361
  75. package/dist/actions/datalake/index.mjs.map +0 -1
  76. package/dist/actions/datalake/listDatalakes.mjs +0 -54
  77. package/dist/actions/datalake/listDatalakes.mjs.map +0 -1
  78. package/dist/actions/datalake/login.mjs +0 -20
  79. package/dist/actions/datalake/login.mjs.map +0 -1
  80. package/dist/actions/datalake/logout.mjs +0 -11
  81. package/dist/actions/datalake/logout.mjs.map +0 -1
  82. package/dist/actions/datalake/mintToken.mjs +0 -37
  83. package/dist/actions/datalake/mintToken.mjs.map +0 -1
  84. package/dist/actions/datalake/parseSize.mjs +0 -21
  85. package/dist/actions/datalake/parseSize.mjs.map +0 -1
  86. package/dist/actions/datalake/payloads/fetchPayload.mjs +0 -76
  87. package/dist/actions/datalake/payloads/fetchPayload.mjs.map +0 -1
  88. package/dist/actions/datalake/payloads/index.mjs +0 -271
  89. package/dist/actions/datalake/payloads/index.mjs.map +0 -1
  90. package/dist/actions/datalake/payloads/mintAndConnect.mjs +0 -46
  91. package/dist/actions/datalake/payloads/mintAndConnect.mjs.map +0 -1
  92. package/dist/actions/datalake/payloads/parsePayloadsFile.mjs +0 -71
  93. package/dist/actions/datalake/payloads/parsePayloadsFile.mjs.map +0 -1
  94. package/dist/actions/datalake/payloads/pushPayloads.mjs +0 -181
  95. package/dist/actions/datalake/payloads/pushPayloads.mjs.map +0 -1
  96. package/dist/actions/datalake/payloads/tailPayloads.mjs +0 -106
  97. package/dist/actions/datalake/payloads/tailPayloads.mjs.map +0 -1
  98. package/dist/actions/datalake/resolveTarget.mjs +0 -15
  99. package/dist/actions/datalake/resolveTarget.mjs.map +0 -1
  100. package/dist/actions/datalake/revokeAccess.mjs +0 -108
  101. package/dist/actions/datalake/revokeAccess.mjs.map +0 -1
  102. package/dist/actions/datalake/useDatalake.mjs +0 -22
  103. package/dist/actions/datalake/useDatalake.mjs.map +0 -1
  104. package/dist/actions/detect/detectAiClients.mjs +0 -405
  105. package/dist/actions/detect/detectAiClients.mjs.map +0 -1
  106. package/dist/actions/detect/index.mjs +0 -405
  107. package/dist/actions/detect/index.mjs.map +0 -1
  108. package/dist/actions/hash/algorithms/blockhash.mjs +0 -61
  109. package/dist/actions/hash/algorithms/blockhash.mjs.map +0 -1
  110. package/dist/actions/hash/algorithms/chromaprint.mjs +0 -205
  111. package/dist/actions/hash/algorithms/chromaprint.mjs.map +0 -1
  112. package/dist/actions/hash/algorithms/dhash.mjs +0 -75
  113. package/dist/actions/hash/algorithms/dhash.mjs.map +0 -1
  114. package/dist/actions/hash/algorithms/index.mjs +0 -818
  115. package/dist/actions/hash/algorithms/index.mjs.map +0 -1
  116. package/dist/actions/hash/algorithms/nilsimsa.mjs +0 -27
  117. package/dist/actions/hash/algorithms/nilsimsa.mjs.map +0 -1
  118. package/dist/actions/hash/algorithms/pdq.mjs +0 -83
  119. package/dist/actions/hash/algorithms/pdq.mjs.map +0 -1
  120. package/dist/actions/hash/algorithms/phash.mjs +0 -71
  121. package/dist/actions/hash/algorithms/phash.mjs.map +0 -1
  122. package/dist/actions/hash/algorithms/sha256.mjs +0 -24
  123. package/dist/actions/hash/algorithms/sha256.mjs.map +0 -1
  124. package/dist/actions/hash/algorithms/ssdeep.mjs +0 -203
  125. package/dist/actions/hash/algorithms/ssdeep.mjs.map +0 -1
  126. package/dist/actions/hash/algorithms/tlsh.mjs +0 -66
  127. package/dist/actions/hash/algorithms/tlsh.mjs.map +0 -1
  128. package/dist/actions/hash/algorithms/types.mjs +0 -1
  129. package/dist/actions/hash/algorithms/types.mjs.map +0 -1
  130. package/dist/actions/hash/algorithms/videoFrames.mjs +0 -404
  131. package/dist/actions/hash/algorithms/videoFrames.mjs.map +0 -1
  132. package/dist/actions/hash/algorithms/xyo.mjs +0 -30
  133. package/dist/actions/hash/algorithms/xyo.mjs.map +0 -1
  134. package/dist/actions/hash/compareHashes.mjs +0 -823
  135. package/dist/actions/hash/compareHashes.mjs.map +0 -1
  136. package/dist/actions/hash/hashInput.mjs +0 -868
  137. package/dist/actions/hash/hashInput.mjs.map +0 -1
  138. package/dist/actions/hash/index.mjs +0 -881
  139. package/dist/actions/hash/index.mjs.map +0 -1
  140. package/dist/actions/hash/lib/hamming.mjs +0 -44
  141. package/dist/actions/hash/lib/hamming.mjs.map +0 -1
  142. package/dist/actions/hash/lib/levenshtein.mjs +0 -36
  143. package/dist/actions/hash/lib/levenshtein.mjs.map +0 -1
  144. package/dist/actions/hash/lib/runBinary.mjs +0 -54
  145. package/dist/actions/hash/lib/runBinary.mjs.map +0 -1
  146. package/dist/actions/hash/lib/which.mjs +0 -36
  147. package/dist/actions/hash/lib/which.mjs.map +0 -1
  148. package/dist/actions/hash/lib/withTempfile.mjs +0 -19
  149. package/dist/actions/hash/lib/withTempfile.mjs.map +0 -1
  150. package/dist/actions/index.mjs +0 -4615
  151. package/dist/actions/index.mjs.map +0 -1
  152. package/dist/actions/printVersion.mjs +0 -12
  153. package/dist/actions/printVersion.mjs.map +0 -1
  154. package/dist/actions/sync/index.mjs +0 -51
  155. package/dist/actions/sync/index.mjs.map +0 -1
  156. package/dist/actions/sync/syncAiConfig.mjs +0 -51
  157. package/dist/actions/sync/syncAiConfig.mjs.map +0 -1
  158. package/dist/actions/wallet/account/deriveAndAdd.mjs +0 -394
  159. package/dist/actions/wallet/account/deriveAndAdd.mjs.map +0 -1
  160. package/dist/actions/wallet/account/getActiveWallet.mjs +0 -338
  161. package/dist/actions/wallet/account/getActiveWallet.mjs.map +0 -1
  162. package/dist/actions/wallet/account/labelAccount.mjs +0 -389
  163. package/dist/actions/wallet/account/labelAccount.mjs.map +0 -1
  164. package/dist/actions/wallet/account/listAccounts.mjs +0 -374
  165. package/dist/actions/wallet/account/listAccounts.mjs.map +0 -1
  166. package/dist/actions/wallet/account/removeAccount.mjs +0 -384
  167. package/dist/actions/wallet/account/removeAccount.mjs.map +0 -1
  168. package/dist/actions/wallet/account/showAccount.mjs +0 -368
  169. package/dist/actions/wallet/account/showAccount.mjs.map +0 -1
  170. package/dist/actions/wallet/addressBook/storage.mjs +0 -110
  171. package/dist/actions/wallet/addressBook/storage.mjs.map +0 -1
  172. package/dist/actions/wallet/backup/exportBackup.mjs +0 -93
  173. package/dist/actions/wallet/backup/exportBackup.mjs.map +0 -1
  174. package/dist/actions/wallet/backup/importBackup.mjs +0 -142
  175. package/dist/actions/wallet/backup/importBackup.mjs.map +0 -1
  176. package/dist/actions/wallet/balance/getBalance.mjs +0 -434
  177. package/dist/actions/wallet/balance/getBalance.mjs.map +0 -1
  178. package/dist/actions/wallet/client/walletClient.mjs +0 -64
  179. package/dist/actions/wallet/client/walletClient.mjs.map +0 -1
  180. package/dist/actions/wallet/contact/contactActions.mjs +0 -120
  181. package/dist/actions/wallet/contact/contactActions.mjs.map +0 -1
  182. package/dist/actions/wallet/contact/storage.mjs +0 -69
  183. package/dist/actions/wallet/contact/storage.mjs.map +0 -1
  184. package/dist/actions/wallet/index.mjs +0 -1439
  185. package/dist/actions/wallet/index.mjs.map +0 -1
  186. package/dist/actions/wallet/network/networkActions.mjs +0 -137
  187. package/dist/actions/wallet/network/networkActions.mjs.map +0 -1
  188. package/dist/actions/wallet/network/storage.mjs +0 -93
  189. package/dist/actions/wallet/network/storage.mjs.map +0 -1
  190. package/dist/actions/wallet/password/changePassword.mjs +0 -282
  191. package/dist/actions/wallet/password/changePassword.mjs.map +0 -1
  192. package/dist/actions/wallet/password/getActiveKey.mjs +0 -297
  193. package/dist/actions/wallet/password/getActiveKey.mjs.map +0 -1
  194. package/dist/actions/wallet/password/initOrUnlock.mjs +0 -337
  195. package/dist/actions/wallet/password/initOrUnlock.mjs.map +0 -1
  196. package/dist/actions/wallet/password/passwordStorage.mjs +0 -69
  197. package/dist/actions/wallet/password/passwordStorage.mjs.map +0 -1
  198. package/dist/actions/wallet/password/setPassword.mjs +0 -138
  199. package/dist/actions/wallet/password/setPassword.mjs.map +0 -1
  200. package/dist/actions/wallet/password/validatePassword.mjs +0 -123
  201. package/dist/actions/wallet/password/validatePassword.mjs.map +0 -1
  202. package/dist/actions/wallet/passwordKey.mjs +0 -87
  203. package/dist/actions/wallet/passwordKey.mjs.map +0 -1
  204. package/dist/actions/wallet/paths.mjs +0 -26
  205. package/dist/actions/wallet/paths.mjs.map +0 -1
  206. package/dist/actions/wallet/prompt.mjs +0 -93
  207. package/dist/actions/wallet/prompt.mjs.map +0 -1
  208. package/dist/actions/wallet/seedPhrase/createPhrase.mjs +0 -392
  209. package/dist/actions/wallet/seedPhrase/createPhrase.mjs.map +0 -1
  210. package/dist/actions/wallet/seedPhrase/exportPhrase.mjs +0 -334
  211. package/dist/actions/wallet/seedPhrase/exportPhrase.mjs.map +0 -1
  212. package/dist/actions/wallet/seedPhrase/idGen.mjs +0 -11
  213. package/dist/actions/wallet/seedPhrase/idGen.mjs.map +0 -1
  214. package/dist/actions/wallet/seedPhrase/importPhrase.mjs +0 -393
  215. package/dist/actions/wallet/seedPhrase/importPhrase.mjs.map +0 -1
  216. package/dist/actions/wallet/seedPhrase/listPhrases.mjs +0 -62
  217. package/dist/actions/wallet/seedPhrase/listPhrases.mjs.map +0 -1
  218. package/dist/actions/wallet/seedPhrase/phraseStorage.mjs +0 -89
  219. package/dist/actions/wallet/seedPhrase/phraseStorage.mjs.map +0 -1
  220. package/dist/actions/wallet/seedPhrase/removePhrase.mjs +0 -366
  221. package/dist/actions/wallet/seedPhrase/removePhrase.mjs.map +0 -1
  222. package/dist/actions/wallet/seedPhrase/renamePhrase.mjs +0 -78
  223. package/dist/actions/wallet/seedPhrase/renamePhrase.mjs.map +0 -1
  224. package/dist/actions/wallet/seedPhrase/types.mjs +0 -1
  225. package/dist/actions/wallet/seedPhrase/types.mjs.map +0 -1
  226. package/dist/actions/wallet/seedPhrase/usePhrase.mjs +0 -83
  227. package/dist/actions/wallet/seedPhrase/usePhrase.mjs.map +0 -1
  228. package/dist/actions/wallet/session/machineId.mjs +0 -145
  229. package/dist/actions/wallet/session/machineId.mjs.map +0 -1
  230. package/dist/actions/wallet/session/sessionCache.mjs +0 -221
  231. package/dist/actions/wallet/session/sessionCache.mjs.map +0 -1
  232. package/dist/actions/wallet/session/unlock.mjs +0 -307
  233. package/dist/actions/wallet/session/unlock.mjs.map +0 -1
  234. package/dist/actions/wallet/sign/signPayload.mjs +0 -637
  235. package/dist/actions/wallet/sign/signPayload.mjs.map +0 -1
  236. package/dist/actions/wallet/storage.mjs +0 -51
  237. package/dist/actions/wallet/storage.mjs.map +0 -1
  238. package/dist/actions/wallet/transaction/broadcastTransaction.mjs +0 -453
  239. package/dist/actions/wallet/transaction/broadcastTransaction.mjs.map +0 -1
  240. package/dist/actions/wallet/transaction/sendTransaction.mjs +0 -457
  241. package/dist/actions/wallet/transaction/sendTransaction.mjs.map +0 -1
  242. package/dist/actions/wallet/transaction/signTransactionFile.mjs +0 -378
  243. package/dist/actions/wallet/transaction/signTransactionFile.mjs.map +0 -1
  244. package/dist/actions/xyo/index.mjs +0 -138
  245. package/dist/actions/xyo/index.mjs.map +0 -1
  246. package/dist/actions/xyo/transaction/index.mjs +0 -138
  247. package/dist/actions/xyo/transaction/index.mjs.map +0 -1
  248. package/dist/actions/xyo/transaction/validateTransactions.mjs +0 -138
  249. package/dist/actions/xyo/transaction/validateTransactions.mjs.map +0 -1
  250. package/dist/aries.mjs.map +0 -1
  251. package/dist/bin/aries.mjs +0 -8472
  252. package/dist/bin/aries.mjs.map +0 -1
  253. package/dist/commands/aiCommand.mjs +0 -492
  254. package/dist/commands/aiCommand.mjs.map +0 -1
  255. package/dist/commands/auditAiCommand.mjs +0 -119
  256. package/dist/commands/auditAiCommand.mjs.map +0 -1
  257. package/dist/commands/auditCommand.mjs +0 -857
  258. package/dist/commands/auditCommand.mjs.map +0 -1
  259. package/dist/commands/auditInstallCommand.mjs +0 -324
  260. package/dist/commands/auditInstallCommand.mjs.map +0 -1
  261. package/dist/commands/auditListCommand.mjs +0 -107
  262. package/dist/commands/auditListCommand.mjs.map +0 -1
  263. package/dist/commands/auditOpenCommand.mjs +0 -51
  264. package/dist/commands/auditOpenCommand.mjs.map +0 -1
  265. package/dist/commands/auditSearchCommand.mjs +0 -98
  266. package/dist/commands/auditSearchCommand.mjs.map +0 -1
  267. package/dist/commands/auditShowCommand.mjs +0 -123
  268. package/dist/commands/auditShowCommand.mjs.map +0 -1
  269. package/dist/commands/auditStatusCommand.mjs +0 -105
  270. package/dist/commands/auditStatusCommand.mjs.map +0 -1
  271. package/dist/commands/clampCommand.mjs +0 -2328
  272. package/dist/commands/clampCommand.mjs.map +0 -1
  273. package/dist/commands/clampPolicyCommand.mjs +0 -184
  274. package/dist/commands/clampPolicyCommand.mjs.map +0 -1
  275. package/dist/commands/clampPolicyInitCommand.mjs +0 -63
  276. package/dist/commands/clampPolicyInitCommand.mjs.map +0 -1
  277. package/dist/commands/clampPolicyListCommand.mjs +0 -56
  278. package/dist/commands/clampPolicyListCommand.mjs.map +0 -1
  279. package/dist/commands/clampPolicyShowCommand.mjs +0 -83
  280. package/dist/commands/clampPolicyShowCommand.mjs.map +0 -1
  281. package/dist/commands/clampRunCommand.mjs +0 -2137
  282. package/dist/commands/clampRunCommand.mjs.map +0 -1
  283. package/dist/commands/datalakeAuditCommand.mjs +0 -273
  284. package/dist/commands/datalakeAuditCommand.mjs.map +0 -1
  285. package/dist/commands/datalakeCommand.mjs +0 -1637
  286. package/dist/commands/datalakeCommand.mjs.map +0 -1
  287. package/dist/commands/datalakeCreateCommand.mjs +0 -189
  288. package/dist/commands/datalakeCreateCommand.mjs.map +0 -1
  289. package/dist/commands/datalakeDescribeCommand.mjs +0 -172
  290. package/dist/commands/datalakeDescribeCommand.mjs.map +0 -1
  291. package/dist/commands/datalakeDestroyCommand.mjs +0 -53
  292. package/dist/commands/datalakeDestroyCommand.mjs.map +0 -1
  293. package/dist/commands/datalakeDevCommand.mjs +0 -470
  294. package/dist/commands/datalakeDevCommand.mjs.map +0 -1
  295. package/dist/commands/datalakeDevDownCommand.mjs +0 -111
  296. package/dist/commands/datalakeDevDownCommand.mjs.map +0 -1
  297. package/dist/commands/datalakeDevLogsCommand.mjs +0 -65
  298. package/dist/commands/datalakeDevLogsCommand.mjs.map +0 -1
  299. package/dist/commands/datalakeDevResetCommand.mjs +0 -125
  300. package/dist/commands/datalakeDevResetCommand.mjs.map +0 -1
  301. package/dist/commands/datalakeDevStatusCommand.mjs +0 -110
  302. package/dist/commands/datalakeDevStatusCommand.mjs.map +0 -1
  303. package/dist/commands/datalakeDevUpCommand.mjs +0 -268
  304. package/dist/commands/datalakeDevUpCommand.mjs.map +0 -1
  305. package/dist/commands/datalakeFetchCommand.mjs +0 -106
  306. package/dist/commands/datalakeFetchCommand.mjs.map +0 -1
  307. package/dist/commands/datalakeGrantCommand.mjs +0 -147
  308. package/dist/commands/datalakeGrantCommand.mjs.map +0 -1
  309. package/dist/commands/datalakeListCommand.mjs +0 -61
  310. package/dist/commands/datalakeListCommand.mjs.map +0 -1
  311. package/dist/commands/datalakeLoginCommand.mjs +0 -39
  312. package/dist/commands/datalakeLoginCommand.mjs.map +0 -1
  313. package/dist/commands/datalakeLogoutCommand.mjs +0 -20
  314. package/dist/commands/datalakeLogoutCommand.mjs.map +0 -1
  315. package/dist/commands/datalakePushCommand.mjs +0 -214
  316. package/dist/commands/datalakePushCommand.mjs.map +0 -1
  317. package/dist/commands/datalakeRevokeCommand.mjs +0 -127
  318. package/dist/commands/datalakeRevokeCommand.mjs.map +0 -1
  319. package/dist/commands/datalakeTailCommand.mjs +0 -144
  320. package/dist/commands/datalakeTailCommand.mjs.map +0 -1
  321. package/dist/commands/datalakeTokenCommand.mjs +0 -61
  322. package/dist/commands/datalakeTokenCommand.mjs.map +0 -1
  323. package/dist/commands/datalakeUseCommand.mjs +0 -35
  324. package/dist/commands/datalakeUseCommand.mjs.map +0 -1
  325. package/dist/commands/detectCommand.mjs +0 -419
  326. package/dist/commands/detectCommand.mjs.map +0 -1
  327. package/dist/commands/hashCommand.mjs +0 -976
  328. package/dist/commands/hashCommand.mjs.map +0 -1
  329. package/dist/commands/hashCompareCommand.mjs +0 -865
  330. package/dist/commands/hashCompareCommand.mjs.map +0 -1
  331. package/dist/commands/index.mjs +0 -8461
  332. package/dist/commands/index.mjs.map +0 -1
  333. package/dist/commands/syncCommand.mjs +0 -66
  334. package/dist/commands/syncCommand.mjs.map +0 -1
  335. package/dist/commands/versionCommand.mjs +0 -24
  336. package/dist/commands/versionCommand.mjs.map +0 -1
  337. package/dist/commands/walletAccountCommand.mjs +0 -536
  338. package/dist/commands/walletAccountCommand.mjs.map +0 -1
  339. package/dist/commands/walletAccountDeriveCommand.mjs +0 -415
  340. package/dist/commands/walletAccountDeriveCommand.mjs.map +0 -1
  341. package/dist/commands/walletAccountLabelCommand.mjs +0 -405
  342. package/dist/commands/walletAccountLabelCommand.mjs.map +0 -1
  343. package/dist/commands/walletAccountListCommand.mjs +0 -381
  344. package/dist/commands/walletAccountListCommand.mjs.map +0 -1
  345. package/dist/commands/walletAccountRemoveCommand.mjs +0 -396
  346. package/dist/commands/walletAccountRemoveCommand.mjs.map +0 -1
  347. package/dist/commands/walletAccountShowCommand.mjs +0 -380
  348. package/dist/commands/walletAccountShowCommand.mjs.map +0 -1
  349. package/dist/commands/walletBackupCommand.mjs +0 -222
  350. package/dist/commands/walletBackupCommand.mjs.map +0 -1
  351. package/dist/commands/walletBackupExportCommand.mjs +0 -107
  352. package/dist/commands/walletBackupExportCommand.mjs.map +0 -1
  353. package/dist/commands/walletBackupImportCommand.mjs +0 -154
  354. package/dist/commands/walletBackupImportCommand.mjs.map +0 -1
  355. package/dist/commands/walletBalanceCommand.mjs +0 -448
  356. package/dist/commands/walletBalanceCommand.mjs.map +0 -1
  357. package/dist/commands/walletCommand.mjs +0 -1968
  358. package/dist/commands/walletCommand.mjs.map +0 -1
  359. package/dist/commands/walletContactAddCommand.mjs +0 -111
  360. package/dist/commands/walletContactAddCommand.mjs.map +0 -1
  361. package/dist/commands/walletContactCommand.mjs +0 -184
  362. package/dist/commands/walletContactCommand.mjs.map +0 -1
  363. package/dist/commands/walletContactListCommand.mjs +0 -66
  364. package/dist/commands/walletContactListCommand.mjs.map +0 -1
  365. package/dist/commands/walletContactRemoveCommand.mjs +0 -97
  366. package/dist/commands/walletContactRemoveCommand.mjs.map +0 -1
  367. package/dist/commands/walletContactRenameCommand.mjs +0 -114
  368. package/dist/commands/walletContactRenameCommand.mjs.map +0 -1
  369. package/dist/commands/walletCreateCommand.mjs +0 -407
  370. package/dist/commands/walletCreateCommand.mjs.map +0 -1
  371. package/dist/commands/walletExportCommand.mjs +0 -345
  372. package/dist/commands/walletExportCommand.mjs.map +0 -1
  373. package/dist/commands/walletImportCommand.mjs +0 -413
  374. package/dist/commands/walletImportCommand.mjs.map +0 -1
  375. package/dist/commands/walletListCommand.mjs +0 -69
  376. package/dist/commands/walletListCommand.mjs.map +0 -1
  377. package/dist/commands/walletLockCommand.mjs +0 -56
  378. package/dist/commands/walletLockCommand.mjs.map +0 -1
  379. package/dist/commands/walletNetworkAddCommand.mjs +0 -131
  380. package/dist/commands/walletNetworkAddCommand.mjs.map +0 -1
  381. package/dist/commands/walletNetworkCommand.mjs +0 -206
  382. package/dist/commands/walletNetworkCommand.mjs.map +0 -1
  383. package/dist/commands/walletNetworkListCommand.mjs +0 -104
  384. package/dist/commands/walletNetworkListCommand.mjs.map +0 -1
  385. package/dist/commands/walletNetworkRemoveCommand.mjs +0 -112
  386. package/dist/commands/walletNetworkRemoveCommand.mjs.map +0 -1
  387. package/dist/commands/walletNetworkUseCommand.mjs +0 -110
  388. package/dist/commands/walletNetworkUseCommand.mjs.map +0 -1
  389. package/dist/commands/walletPasswordChangeCommand.mjs +0 -291
  390. package/dist/commands/walletPasswordChangeCommand.mjs.map +0 -1
  391. package/dist/commands/walletPasswordCommand.mjs +0 -301
  392. package/dist/commands/walletPasswordCommand.mjs.map +0 -1
  393. package/dist/commands/walletRemoveCommand.mjs +0 -378
  394. package/dist/commands/walletRemoveCommand.mjs.map +0 -1
  395. package/dist/commands/walletRenameCommand.mjs +0 -94
  396. package/dist/commands/walletRenameCommand.mjs.map +0 -1
  397. package/dist/commands/walletSignCommand.mjs +0 -662
  398. package/dist/commands/walletSignCommand.mjs.map +0 -1
  399. package/dist/commands/walletTxBroadcastCommand.mjs +0 -473
  400. package/dist/commands/walletTxBroadcastCommand.mjs.map +0 -1
  401. package/dist/commands/walletTxCommand.mjs +0 -612
  402. package/dist/commands/walletTxCommand.mjs.map +0 -1
  403. package/dist/commands/walletTxSendCommand.mjs +0 -492
  404. package/dist/commands/walletTxSendCommand.mjs.map +0 -1
  405. package/dist/commands/walletTxSignCommand.mjs +0 -403
  406. package/dist/commands/walletTxSignCommand.mjs.map +0 -1
  407. package/dist/commands/walletUnlockCommand.mjs +0 -308
  408. package/dist/commands/walletUnlockCommand.mjs.map +0 -1
  409. package/dist/commands/walletUseCommand.mjs +0 -95
  410. package/dist/commands/walletUseCommand.mjs.map +0 -1
  411. package/dist/commands/xyoCommand.mjs +0 -188
  412. package/dist/commands/xyoCommand.mjs.map +0 -1
  413. package/dist/commands/xyoTxCommand.mjs +0 -178
  414. package/dist/commands/xyoTxCommand.mjs.map +0 -1
  415. package/dist/commands/xyoTxValidateCommand.mjs +0 -168
  416. package/dist/commands/xyoTxValidateCommand.mjs.map +0 -1
  417. package/dist/index.d.ts +0 -3
  418. package/dist/index.mjs +0 -8466
  419. package/dist/index.mjs.map +0 -1
  420. package/dist/types/modules.d.mjs +0 -1
  421. package/dist/types/modules.d.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/datalake/payloads/fetchPayload.ts","../../../../src/actions/datalake/payloads/mintAndConnect.ts","../../../../src/actions/datalake/resolveTarget.ts","../../../../src/actions/datalake/payloads/parsePayloadsFile.ts","../../../../src/actions/datalake/payloads/pushPayloads.ts","../../../../src/actions/datalake/payloads/tailPayloads.ts"],"sourcesContent":["import { DatalakeApiError } from '@xylabs/aries-datalake-core'\nimport chalk from 'chalk'\n\nimport { mintAndConnect } from './mintAndConnect.ts'\n\nexport interface FetchPayloadOptions {\n idOrName?: string\n hash: string\n /** If true, print raw JSON without chalk-formatted header. */\n raw?: boolean\n /** If true, fetch via the real XL1 SDK's `RestDataLakeViewer`. */\n xl1Sdk?: boolean\n}\n\nexport async function fetchPayload(options: FetchPayloadOptions): Promise<void> {\n const connection = await mintAndConnect({\n idOrName: options.idOrName, role: 'viewer', useXl1Sdk: options.xl1Sdk,\n })\n try {\n const payload = await connection.client.get(options.hash)\n if (options.raw) {\n process.stdout.write(`${JSON.stringify(payload)}\\n`)\n return\n }\n console.log(chalk.cyan(`${connection.datalakeName} / ${options.hash}`))\n console.log(JSON.stringify(payload, undefined, 2))\n } catch (error) {\n if (error instanceof DatalakeApiError && error.code === 'not_found') {\n console.log(chalk.yellow(`payload not found: ${options.hash}`))\n process.exitCode = 3\n return\n }\n throw error\n }\n}\n","import type { PayloadsClient } from '@xylabs/aries-datalake-client'\nimport { createDatalakeClient, RestPayloadsClient } from '@xylabs/aries-datalake-client'\nimport type { DatalakeRole } from '@xylabs/aries-datalake-core'\nimport { XyoPayloadsClient } from '@xylabs/aries-datalake-xl1-adapter'\n\nimport { resolveTarget } from '../resolveTarget.ts'\n\nexport interface Connection {\n client: PayloadsClient\n datalakeName: string\n datalakeId: string\n url: string\n transport: 'native' | 'xl1-sdk'\n}\n\nexport interface MintAndConnectOptions {\n idOrName?: string\n role: DatalakeRole\n ttlSeconds?: number\n /**\n * When `true`, use the real `@xyo-network/xl1-protocol-sdk`\n * `RestDataLakeRunner` / `RestDataLakeViewer` for insert and get,\n * proving byte-level wire compatibility. Other methods fall back to the\n * native `RestPayloadsClient` since the XL1 SDK doesn't implement them.\n */\n useXl1Sdk?: boolean\n}\n\n/**\n * Resolves the target datalake, mints a scoped token via the control plane,\n * and returns a data-plane client wired with that token. Centralizes what\n * every payload command has to do before it can talk to the data plane.\n */\nexport async function mintAndConnect(options: MintAndConnectOptions): Promise<Connection> {\n const controlClient = createDatalakeClient()\n const target = resolveTarget(options.idOrName)\n const descriptor = await controlClient.describe(target)\n if (!descriptor.url) {\n throw new Error(`Datalake ${descriptor.name} has no URL yet (status=${descriptor.status})`)\n }\n const token = await controlClient.mintToken({\n datalakeId: descriptor.id,\n role: options.role,\n ttlSeconds: options.ttlSeconds ?? 3600,\n })\n const clientOptions = {\n baseUrl: token.url,\n datalakeId: descriptor.id,\n authToken: token.token,\n }\n return {\n client: options.useXl1Sdk\n ? new XyoPayloadsClient(clientOptions)\n : new RestPayloadsClient(clientOptions),\n datalakeName: descriptor.name,\n datalakeId: descriptor.id,\n url: token.url,\n transport: options.useXl1Sdk ? 'xl1-sdk' : 'native',\n }\n}\n","import { getDefaultDatalake } from '@xylabs/aries-datalake-client'\n\n/**\n * Resolves the target datalake name/id for commands that take an optional\n * argument. Falls back to the one set via `aries datalake use`.\n */\nexport function resolveTarget(argValue: string | undefined): string {\n const target = argValue ?? getDefaultDatalake()\n if (!target) {\n throw new Error(\n 'No datalake specified and no default set. '\n + 'Pass <name> or run `aries datalake use <name>`.',\n )\n }\n return target\n}\n","import { readFileSync } from 'node:fs'\nimport path from 'node:path'\n\nimport type { Payload } from '@xylabs/aries-datalake-core'\n\n/**\n * Parses a file into an array of payloads. Supports two formats:\n *\n * - `.json`: must be either a top-level array of payloads, or `{ payloads: [...] }`\n * - `.jsonl` / `.ndjson`: one JSON object per line\n *\n * Each payload must have `schema` and `$hash` strings. Invalid rows throw\n * with the line number for JSONL or the array index for JSON.\n */\nexport function parsePayloadsFile(filePath: string): Payload[] {\n const absolute = path.resolve(filePath)\n const raw = readFileSync(absolute, 'utf8')\n const ext = path.extname(absolute).toLowerCase()\n\n if (ext === '.jsonl' || ext === '.ndjson') {\n return parseJsonl(raw)\n }\n if (ext === '.json') {\n return parseJson(raw)\n }\n\n // Fall back on content sniffing — accept JSONL if no `.json` extension.\n const trimmed = raw.trim()\n if (trimmed.startsWith('{') && trimmed.endsWith('}') && trimmed.includes('\\n{')) {\n return parseJsonl(raw)\n }\n return parseJson(raw)\n}\n\nfunction parseJson(raw: string): Payload[] {\n const parsed: unknown = JSON.parse(raw)\n const candidates: unknown[] | undefined = Array.isArray(parsed)\n ? parsed\n : isPayloadsEnvelope(parsed)\n ? parsed.payloads\n : undefined\n if (!candidates) {\n throw new Error('Expected an array of payloads or { \"payloads\": [...] }')\n }\n const result: Payload[] = []\n for (const [index, candidate] of candidates.entries()) {\n validatePayload(candidate, `index ${index}`)\n result.push(candidate)\n }\n return result\n}\n\nfunction parseJsonl(raw: string): Payload[] {\n const lines = raw.split('\\n')\n const payloads: Payload[] = []\n for (const [i, line_] of lines.entries()) {\n const line = line_?.trim()\n if (!line) continue\n let parsed: unknown\n try {\n parsed = JSON.parse(line)\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n throw new Error(`Line ${i + 1}: invalid JSON (${message})`, { cause: error })\n }\n validatePayload(parsed, `line ${i + 1}`)\n payloads.push(parsed)\n }\n return payloads\n}\n\nfunction isPayloadsEnvelope(value: unknown): value is { payloads: Payload[] } {\n if (typeof value !== 'object' || value === null) return false\n const record = value as Record<string, unknown>\n return Array.isArray(record.payloads)\n}\n\nfunction validatePayload(value: unknown, where: string): asserts value is Payload {\n if (typeof value !== 'object' || value === null) {\n throw new Error(`${where}: not an object`)\n }\n const record = value as Record<string, unknown>\n if (typeof record.schema !== 'string' || record.schema.length === 0) {\n throw new Error(`${where}: missing or invalid \\`schema\\``)\n }\n if (typeof record.$hash !== 'string' || record.$hash.length === 0) {\n throw new Error(`${where}: missing or invalid \\`$hash\\``)\n }\n}\n","import type { Payload } from '@xylabs/aries-datalake-core'\nimport { xyoVerifyPayloadHash } from '@xylabs/aries-datalake-core'\nimport chalk from 'chalk'\n\nimport { mintAndConnect } from './mintAndConnect.ts'\nimport { parsePayloadsFile } from './parsePayloadsFile.ts'\n\nexport interface PushPayloadsOptions {\n idOrName?: string\n /** Path to a JSON or JSONL file containing payloads. */\n file: string\n /** Max payloads per HTTP request. Data plane caps at 1 000. */\n batchSize?: number\n /**\n * If true, each payload's `$hash` is checked locally against the\n * XL1-canonical content digest before we send. Catches hash/content\n * drift early with a pointer to the exact offending hash.\n */\n verify?: boolean\n /**\n * If true, use the real `@xyo-network/xl1-protocol-sdk`\n * `RestDataLakeRunner` for the upload — exercises the XL1 SDK's exact\n * wire format against our XL1-compat routes.\n */\n xl1Sdk?: boolean\n}\n\nconst DEFAULT_BATCH_SIZE = 500\n\nfunction printRejectedList(label: string, hashes: string[], cap: number, color: (s: string) => string): void {\n console.log(color(label))\n for (const hash of hashes.slice(0, cap)) {\n console.log(` ${hash}`)\n }\n if (hashes.length > cap) {\n console.log(chalk.gray(` ... and ${hashes.length - cap} more`))\n }\n}\n\n/**\n * Returns `true` when every payload's `$hash` matches the XL1-canonical\n * digest. On failure, prints the offending hashes and sets `process.exitCode = 1`.\n */\nasync function verifyLocally(payloads: Payload[]): Promise<boolean> {\n const mismatches: string[] = []\n for (const payload of payloads) {\n if (!(await xyoVerifyPayloadHash(payload))) mismatches.push(payload.$hash)\n }\n if (mismatches.length === 0) {\n console.log(chalk.gray(`verified ${payloads.length} payload hashes locally (XL1-canonical)`))\n return true\n }\n printRejectedList(\n `refusing to push: ${mismatches.length} payload(s) have mismatched $hash`,\n mismatches,\n 10,\n chalk.red,\n )\n process.exitCode = 1\n return false\n}\n\n/**\n * Reads a payloads file and bulk-inserts into the target datalake. Splits\n * into multiple requests if the file exceeds the batch size, reporting\n * cumulative totals.\n */\nexport async function pushPayloads(options: PushPayloadsOptions): Promise<void> {\n const payloads = parsePayloadsFile(options.file)\n if (payloads.length === 0) {\n console.log(chalk.yellow(`${options.file} contained 0 payloads — nothing to push`))\n return\n }\n\n if (options.verify && !(await verifyLocally(payloads))) return\n\n const connection = await mintAndConnect({\n idOrName: options.idOrName, role: 'runner', useXl1Sdk: options.xl1Sdk,\n })\n console.log(chalk.gray(\n `pushing ${payloads.length} payloads to ${connection.datalakeName} `\n + `(${connection.datalakeId}) via ${connection.transport}...`,\n ))\n\n const batchSize = options.batchSize ?? DEFAULT_BATCH_SIZE\n let inserted = 0\n let duplicates = 0\n const rejected: string[] = []\n\n for (let offset = 0; offset < payloads.length; offset += batchSize) {\n const batch = payloads.slice(offset, offset + batchSize)\n const result = await connection.client.insert(batch)\n inserted += result.inserted\n duplicates += result.duplicates\n rejected.push(...result.rejected)\n }\n\n console.log(chalk.green(\n `push complete: inserted=${inserted} duplicates=${duplicates} rejected=${rejected.length}`,\n ))\n if (rejected.length > 0) {\n printRejectedList('rejected hashes:', rejected, 20, chalk.yellow)\n }\n}\n","import chalk from 'chalk'\n\nimport { mintAndConnect } from './mintAndConnect.ts'\n\nexport interface TailPayloadsOptions {\n idOrName?: string\n /** Start from the current tail and keep polling for new payloads. */\n follow?: boolean\n /** One-shot page size. Defaults to 50. */\n limit?: number\n /** Start cursor. When following from \"now\", this is the last seen hash. */\n cursor?: string\n /** Schema filter. */\n schemas?: string[]\n /** Poll interval when following, in ms. Defaults to 1 000. */\n pollIntervalMs?: number\n /** Max polls when following. Omit for unlimited. Used in tests. */\n maxPolls?: number\n}\n\nconst DEFAULT_LIMIT = 50\nconst DEFAULT_POLL_MS = 1000\n\n/**\n * Streams payloads from a datalake. In one-shot mode prints the first page.\n * In follow mode pages forward to the end then polls `/next` from the last\n * cursor every `pollIntervalMs`, emitting new payloads as they land.\n */\nexport async function tailPayloads(options: TailPayloadsOptions): Promise<void> {\n const connection = await mintAndConnect({ idOrName: options.idOrName, role: 'viewer' })\n const limit = options.limit ?? DEFAULT_LIMIT\n\n let cursor = options.cursor\n let totalSeen = 0\n\n // Initial page(s): drain forward until we reach end-of-stream. In `follow`\n // mode we print these as backlog; in one-shot mode we stop after one page.\n while (true) {\n const page = await connection.client.next({\n limit, cursor, schemas: options.schemas,\n })\n for (const payload of page.payloads) {\n printPayload(payload)\n totalSeen += 1\n }\n if (!options.follow) {\n if (totalSeen === 0) {\n console.log(chalk.yellow(`${connection.datalakeName}: no payloads yet`))\n }\n return\n }\n if (page.payloads.length < limit) {\n cursor = page.nextCursor ?? cursor\n break\n }\n cursor = page.nextCursor ?? cursor\n }\n\n const pollIntervalMs = options.pollIntervalMs ?? DEFAULT_POLL_MS\n console.log(chalk.gray(`following ${connection.datalakeName} (Ctrl+C to stop)`))\n\n let polls = 0\n while (options.maxPolls === undefined || polls < options.maxPolls) {\n await delay(pollIntervalMs)\n polls += 1\n const page = await connection.client.next({\n limit, cursor, schemas: options.schemas,\n })\n for (const payload of page.payloads) {\n printPayload(payload)\n totalSeen += 1\n }\n if (page.nextCursor) cursor = page.nextCursor\n }\n}\n\nfunction printPayload(payload: { $hash: string; schema: string }): void {\n const timestamp = new Date().toISOString()\n console.log(`${chalk.gray(timestamp)} ${chalk.cyan(payload.$hash.slice(0, 12))} ${chalk.magenta(payload.schema)}`)\n console.log(` ${JSON.stringify(payload)}`)\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms))\n}\n"],"mappings":"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","names":["chalk","chalk","chalk","chalk"]}
@@ -1,46 +0,0 @@
1
- // src/actions/datalake/payloads/mintAndConnect.ts
2
- import { createDatalakeClient, RestPayloadsClient } from "@xylabs/aries-datalake-client";
3
- import { XyoPayloadsClient } from "@xylabs/aries-datalake-xl1-adapter";
4
-
5
- // src/actions/datalake/resolveTarget.ts
6
- import { getDefaultDatalake } from "@xylabs/aries-datalake-client";
7
- function resolveTarget(argValue) {
8
- const target = argValue ?? getDefaultDatalake();
9
- if (!target) {
10
- throw new Error(
11
- "No datalake specified and no default set. Pass <name> or run `aries datalake use <name>`."
12
- );
13
- }
14
- return target;
15
- }
16
-
17
- // src/actions/datalake/payloads/mintAndConnect.ts
18
- async function mintAndConnect(options) {
19
- const controlClient = createDatalakeClient();
20
- const target = resolveTarget(options.idOrName);
21
- const descriptor = await controlClient.describe(target);
22
- if (!descriptor.url) {
23
- throw new Error(`Datalake ${descriptor.name} has no URL yet (status=${descriptor.status})`);
24
- }
25
- const token = await controlClient.mintToken({
26
- datalakeId: descriptor.id,
27
- role: options.role,
28
- ttlSeconds: options.ttlSeconds ?? 3600
29
- });
30
- const clientOptions = {
31
- baseUrl: token.url,
32
- datalakeId: descriptor.id,
33
- authToken: token.token
34
- };
35
- return {
36
- client: options.useXl1Sdk ? new XyoPayloadsClient(clientOptions) : new RestPayloadsClient(clientOptions),
37
- datalakeName: descriptor.name,
38
- datalakeId: descriptor.id,
39
- url: token.url,
40
- transport: options.useXl1Sdk ? "xl1-sdk" : "native"
41
- };
42
- }
43
- export {
44
- mintAndConnect
45
- };
46
- //# sourceMappingURL=mintAndConnect.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/datalake/payloads/mintAndConnect.ts","../../../../src/actions/datalake/resolveTarget.ts"],"sourcesContent":["import type { PayloadsClient } from '@xylabs/aries-datalake-client'\nimport { createDatalakeClient, RestPayloadsClient } from '@xylabs/aries-datalake-client'\nimport type { DatalakeRole } from '@xylabs/aries-datalake-core'\nimport { XyoPayloadsClient } from '@xylabs/aries-datalake-xl1-adapter'\n\nimport { resolveTarget } from '../resolveTarget.ts'\n\nexport interface Connection {\n client: PayloadsClient\n datalakeName: string\n datalakeId: string\n url: string\n transport: 'native' | 'xl1-sdk'\n}\n\nexport interface MintAndConnectOptions {\n idOrName?: string\n role: DatalakeRole\n ttlSeconds?: number\n /**\n * When `true`, use the real `@xyo-network/xl1-protocol-sdk`\n * `RestDataLakeRunner` / `RestDataLakeViewer` for insert and get,\n * proving byte-level wire compatibility. Other methods fall back to the\n * native `RestPayloadsClient` since the XL1 SDK doesn't implement them.\n */\n useXl1Sdk?: boolean\n}\n\n/**\n * Resolves the target datalake, mints a scoped token via the control plane,\n * and returns a data-plane client wired with that token. Centralizes what\n * every payload command has to do before it can talk to the data plane.\n */\nexport async function mintAndConnect(options: MintAndConnectOptions): Promise<Connection> {\n const controlClient = createDatalakeClient()\n const target = resolveTarget(options.idOrName)\n const descriptor = await controlClient.describe(target)\n if (!descriptor.url) {\n throw new Error(`Datalake ${descriptor.name} has no URL yet (status=${descriptor.status})`)\n }\n const token = await controlClient.mintToken({\n datalakeId: descriptor.id,\n role: options.role,\n ttlSeconds: options.ttlSeconds ?? 3600,\n })\n const clientOptions = {\n baseUrl: token.url,\n datalakeId: descriptor.id,\n authToken: token.token,\n }\n return {\n client: options.useXl1Sdk\n ? new XyoPayloadsClient(clientOptions)\n : new RestPayloadsClient(clientOptions),\n datalakeName: descriptor.name,\n datalakeId: descriptor.id,\n url: token.url,\n transport: options.useXl1Sdk ? 'xl1-sdk' : 'native',\n }\n}\n","import { getDefaultDatalake } from '@xylabs/aries-datalake-client'\n\n/**\n * Resolves the target datalake name/id for commands that take an optional\n * argument. Falls back to the one set via `aries datalake use`.\n */\nexport function resolveTarget(argValue: string | undefined): string {\n const target = argValue ?? getDefaultDatalake()\n if (!target) {\n throw new Error(\n 'No datalake specified and no default set. '\n + 'Pass <name> or run `aries datalake use <name>`.',\n )\n }\n return target\n}\n"],"mappings":";AACA,SAAS,sBAAsB,0BAA0B;AAEzD,SAAS,yBAAyB;;;ACHlC,SAAS,0BAA0B;AAM5B,SAAS,cAAc,UAAsC;AAClE,QAAM,SAAS,YAAY,mBAAmB;AAC9C,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI;AAAA,MACR;AAAA,IAEF;AAAA,EACF;AACA,SAAO;AACT;;;ADkBA,eAAsB,eAAe,SAAqD;AACxF,QAAM,gBAAgB,qBAAqB;AAC3C,QAAM,SAAS,cAAc,QAAQ,QAAQ;AAC7C,QAAM,aAAa,MAAM,cAAc,SAAS,MAAM;AACtD,MAAI,CAAC,WAAW,KAAK;AACnB,UAAM,IAAI,MAAM,YAAY,WAAW,IAAI,2BAA2B,WAAW,MAAM,GAAG;AAAA,EAC5F;AACA,QAAM,QAAQ,MAAM,cAAc,UAAU;AAAA,IAC1C,YAAY,WAAW;AAAA,IACvB,MAAM,QAAQ;AAAA,IACd,YAAY,QAAQ,cAAc;AAAA,EACpC,CAAC;AACD,QAAM,gBAAgB;AAAA,IACpB,SAAS,MAAM;AAAA,IACf,YAAY,WAAW;AAAA,IACvB,WAAW,MAAM;AAAA,EACnB;AACA,SAAO;AAAA,IACL,QAAQ,QAAQ,YACZ,IAAI,kBAAkB,aAAa,IACnC,IAAI,mBAAmB,aAAa;AAAA,IACxC,cAAc,WAAW;AAAA,IACzB,YAAY,WAAW;AAAA,IACvB,KAAK,MAAM;AAAA,IACX,WAAW,QAAQ,YAAY,YAAY;AAAA,EAC7C;AACF;","names":[]}
@@ -1,71 +0,0 @@
1
- // src/actions/datalake/payloads/parsePayloadsFile.ts
2
- import { readFileSync } from "fs";
3
- import path from "path";
4
- function parsePayloadsFile(filePath) {
5
- const absolute = path.resolve(filePath);
6
- const raw = readFileSync(absolute, "utf8");
7
- const ext = path.extname(absolute).toLowerCase();
8
- if (ext === ".jsonl" || ext === ".ndjson") {
9
- return parseJsonl(raw);
10
- }
11
- if (ext === ".json") {
12
- return parseJson(raw);
13
- }
14
- const trimmed = raw.trim();
15
- if (trimmed.startsWith("{") && trimmed.endsWith("}") && trimmed.includes("\n{")) {
16
- return parseJsonl(raw);
17
- }
18
- return parseJson(raw);
19
- }
20
- function parseJson(raw) {
21
- const parsed = JSON.parse(raw);
22
- const candidates = Array.isArray(parsed) ? parsed : isPayloadsEnvelope(parsed) ? parsed.payloads : void 0;
23
- if (!candidates) {
24
- throw new Error('Expected an array of payloads or { "payloads": [...] }');
25
- }
26
- const result = [];
27
- for (const [index, candidate] of candidates.entries()) {
28
- validatePayload(candidate, `index ${index}`);
29
- result.push(candidate);
30
- }
31
- return result;
32
- }
33
- function parseJsonl(raw) {
34
- const lines = raw.split("\n");
35
- const payloads = [];
36
- for (const [i, line_] of lines.entries()) {
37
- const line = line_?.trim();
38
- if (!line) continue;
39
- let parsed;
40
- try {
41
- parsed = JSON.parse(line);
42
- } catch (error) {
43
- const message = error instanceof Error ? error.message : String(error);
44
- throw new Error(`Line ${i + 1}: invalid JSON (${message})`, { cause: error });
45
- }
46
- validatePayload(parsed, `line ${i + 1}`);
47
- payloads.push(parsed);
48
- }
49
- return payloads;
50
- }
51
- function isPayloadsEnvelope(value) {
52
- if (typeof value !== "object" || value === null) return false;
53
- const record = value;
54
- return Array.isArray(record.payloads);
55
- }
56
- function validatePayload(value, where) {
57
- if (typeof value !== "object" || value === null) {
58
- throw new Error(`${where}: not an object`);
59
- }
60
- const record = value;
61
- if (typeof record.schema !== "string" || record.schema.length === 0) {
62
- throw new Error(`${where}: missing or invalid \`schema\``);
63
- }
64
- if (typeof record.$hash !== "string" || record.$hash.length === 0) {
65
- throw new Error(`${where}: missing or invalid \`$hash\``);
66
- }
67
- }
68
- export {
69
- parsePayloadsFile
70
- };
71
- //# sourceMappingURL=parsePayloadsFile.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/datalake/payloads/parsePayloadsFile.ts"],"sourcesContent":["import { readFileSync } from 'node:fs'\nimport path from 'node:path'\n\nimport type { Payload } from '@xylabs/aries-datalake-core'\n\n/**\n * Parses a file into an array of payloads. Supports two formats:\n *\n * - `.json`: must be either a top-level array of payloads, or `{ payloads: [...] }`\n * - `.jsonl` / `.ndjson`: one JSON object per line\n *\n * Each payload must have `schema` and `$hash` strings. Invalid rows throw\n * with the line number for JSONL or the array index for JSON.\n */\nexport function parsePayloadsFile(filePath: string): Payload[] {\n const absolute = path.resolve(filePath)\n const raw = readFileSync(absolute, 'utf8')\n const ext = path.extname(absolute).toLowerCase()\n\n if (ext === '.jsonl' || ext === '.ndjson') {\n return parseJsonl(raw)\n }\n if (ext === '.json') {\n return parseJson(raw)\n }\n\n // Fall back on content sniffing — accept JSONL if no `.json` extension.\n const trimmed = raw.trim()\n if (trimmed.startsWith('{') && trimmed.endsWith('}') && trimmed.includes('\\n{')) {\n return parseJsonl(raw)\n }\n return parseJson(raw)\n}\n\nfunction parseJson(raw: string): Payload[] {\n const parsed: unknown = JSON.parse(raw)\n const candidates: unknown[] | undefined = Array.isArray(parsed)\n ? parsed\n : isPayloadsEnvelope(parsed)\n ? parsed.payloads\n : undefined\n if (!candidates) {\n throw new Error('Expected an array of payloads or { \"payloads\": [...] }')\n }\n const result: Payload[] = []\n for (const [index, candidate] of candidates.entries()) {\n validatePayload(candidate, `index ${index}`)\n result.push(candidate)\n }\n return result\n}\n\nfunction parseJsonl(raw: string): Payload[] {\n const lines = raw.split('\\n')\n const payloads: Payload[] = []\n for (const [i, line_] of lines.entries()) {\n const line = line_?.trim()\n if (!line) continue\n let parsed: unknown\n try {\n parsed = JSON.parse(line)\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n throw new Error(`Line ${i + 1}: invalid JSON (${message})`, { cause: error })\n }\n validatePayload(parsed, `line ${i + 1}`)\n payloads.push(parsed)\n }\n return payloads\n}\n\nfunction isPayloadsEnvelope(value: unknown): value is { payloads: Payload[] } {\n if (typeof value !== 'object' || value === null) return false\n const record = value as Record<string, unknown>\n return Array.isArray(record.payloads)\n}\n\nfunction validatePayload(value: unknown, where: string): asserts value is Payload {\n if (typeof value !== 'object' || value === null) {\n throw new Error(`${where}: not an object`)\n }\n const record = value as Record<string, unknown>\n if (typeof record.schema !== 'string' || record.schema.length === 0) {\n throw new Error(`${where}: missing or invalid \\`schema\\``)\n }\n if (typeof record.$hash !== 'string' || record.$hash.length === 0) {\n throw new Error(`${where}: missing or invalid \\`$hash\\``)\n }\n}\n"],"mappings":";AAAA,SAAS,oBAAoB;AAC7B,OAAO,UAAU;AAaV,SAAS,kBAAkB,UAA6B;AAC7D,QAAM,WAAW,KAAK,QAAQ,QAAQ;AACtC,QAAM,MAAM,aAAa,UAAU,MAAM;AACzC,QAAM,MAAM,KAAK,QAAQ,QAAQ,EAAE,YAAY;AAE/C,MAAI,QAAQ,YAAY,QAAQ,WAAW;AACzC,WAAO,WAAW,GAAG;AAAA,EACvB;AACA,MAAI,QAAQ,SAAS;AACnB,WAAO,UAAU,GAAG;AAAA,EACtB;AAGA,QAAM,UAAU,IAAI,KAAK;AACzB,MAAI,QAAQ,WAAW,GAAG,KAAK,QAAQ,SAAS,GAAG,KAAK,QAAQ,SAAS,KAAK,GAAG;AAC/E,WAAO,WAAW,GAAG;AAAA,EACvB;AACA,SAAO,UAAU,GAAG;AACtB;AAEA,SAAS,UAAU,KAAwB;AACzC,QAAM,SAAkB,KAAK,MAAM,GAAG;AACtC,QAAM,aAAoC,MAAM,QAAQ,MAAM,IAC1D,SACA,mBAAmB,MAAM,IACvB,OAAO,WACP;AACN,MAAI,CAAC,YAAY;AACf,UAAM,IAAI,MAAM,wDAAwD;AAAA,EAC1E;AACA,QAAM,SAAoB,CAAC;AAC3B,aAAW,CAAC,OAAO,SAAS,KAAK,WAAW,QAAQ,GAAG;AACrD,oBAAgB,WAAW,SAAS,KAAK,EAAE;AAC3C,WAAO,KAAK,SAAS;AAAA,EACvB;AACA,SAAO;AACT;AAEA,SAAS,WAAW,KAAwB;AAC1C,QAAM,QAAQ,IAAI,MAAM,IAAI;AAC5B,QAAM,WAAsB,CAAC;AAC7B,aAAW,CAAC,GAAG,KAAK,KAAK,MAAM,QAAQ,GAAG;AACxC,UAAM,OAAO,OAAO,KAAK;AACzB,QAAI,CAAC,KAAM;AACX,QAAI;AACJ,QAAI;AACF,eAAS,KAAK,MAAM,IAAI;AAAA,IAC1B,SAAS,OAAO;AACd,YAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACrE,YAAM,IAAI,MAAM,QAAQ,IAAI,CAAC,mBAAmB,OAAO,KAAK,EAAE,OAAO,MAAM,CAAC;AAAA,IAC9E;AACA,oBAAgB,QAAQ,QAAQ,IAAI,CAAC,EAAE;AACvC,aAAS,KAAK,MAAM;AAAA,EACtB;AACA,SAAO;AACT;AAEA,SAAS,mBAAmB,OAAkD;AAC5E,MAAI,OAAO,UAAU,YAAY,UAAU,KAAM,QAAO;AACxD,QAAM,SAAS;AACf,SAAO,MAAM,QAAQ,OAAO,QAAQ;AACtC;AAEA,SAAS,gBAAgB,OAAgB,OAAyC;AAChF,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,UAAM,IAAI,MAAM,GAAG,KAAK,iBAAiB;AAAA,EAC3C;AACA,QAAM,SAAS;AACf,MAAI,OAAO,OAAO,WAAW,YAAY,OAAO,OAAO,WAAW,GAAG;AACnE,UAAM,IAAI,MAAM,GAAG,KAAK,iCAAiC;AAAA,EAC3D;AACA,MAAI,OAAO,OAAO,UAAU,YAAY,OAAO,MAAM,WAAW,GAAG;AACjE,UAAM,IAAI,MAAM,GAAG,KAAK,gCAAgC;AAAA,EAC1D;AACF;","names":[]}
@@ -1,181 +0,0 @@
1
- // src/actions/datalake/payloads/pushPayloads.ts
2
- import { xyoVerifyPayloadHash } from "@xylabs/aries-datalake-core";
3
- import chalk from "chalk";
4
-
5
- // src/actions/datalake/payloads/mintAndConnect.ts
6
- import { createDatalakeClient, RestPayloadsClient } from "@xylabs/aries-datalake-client";
7
- import { XyoPayloadsClient } from "@xylabs/aries-datalake-xl1-adapter";
8
-
9
- // src/actions/datalake/resolveTarget.ts
10
- import { getDefaultDatalake } from "@xylabs/aries-datalake-client";
11
- function resolveTarget(argValue) {
12
- const target = argValue ?? getDefaultDatalake();
13
- if (!target) {
14
- throw new Error(
15
- "No datalake specified and no default set. Pass <name> or run `aries datalake use <name>`."
16
- );
17
- }
18
- return target;
19
- }
20
-
21
- // src/actions/datalake/payloads/mintAndConnect.ts
22
- async function mintAndConnect(options) {
23
- const controlClient = createDatalakeClient();
24
- const target = resolveTarget(options.idOrName);
25
- const descriptor = await controlClient.describe(target);
26
- if (!descriptor.url) {
27
- throw new Error(`Datalake ${descriptor.name} has no URL yet (status=${descriptor.status})`);
28
- }
29
- const token = await controlClient.mintToken({
30
- datalakeId: descriptor.id,
31
- role: options.role,
32
- ttlSeconds: options.ttlSeconds ?? 3600
33
- });
34
- const clientOptions = {
35
- baseUrl: token.url,
36
- datalakeId: descriptor.id,
37
- authToken: token.token
38
- };
39
- return {
40
- client: options.useXl1Sdk ? new XyoPayloadsClient(clientOptions) : new RestPayloadsClient(clientOptions),
41
- datalakeName: descriptor.name,
42
- datalakeId: descriptor.id,
43
- url: token.url,
44
- transport: options.useXl1Sdk ? "xl1-sdk" : "native"
45
- };
46
- }
47
-
48
- // src/actions/datalake/payloads/parsePayloadsFile.ts
49
- import { readFileSync } from "fs";
50
- import path from "path";
51
- function parsePayloadsFile(filePath) {
52
- const absolute = path.resolve(filePath);
53
- const raw = readFileSync(absolute, "utf8");
54
- const ext = path.extname(absolute).toLowerCase();
55
- if (ext === ".jsonl" || ext === ".ndjson") {
56
- return parseJsonl(raw);
57
- }
58
- if (ext === ".json") {
59
- return parseJson(raw);
60
- }
61
- const trimmed = raw.trim();
62
- if (trimmed.startsWith("{") && trimmed.endsWith("}") && trimmed.includes("\n{")) {
63
- return parseJsonl(raw);
64
- }
65
- return parseJson(raw);
66
- }
67
- function parseJson(raw) {
68
- const parsed = JSON.parse(raw);
69
- const candidates = Array.isArray(parsed) ? parsed : isPayloadsEnvelope(parsed) ? parsed.payloads : void 0;
70
- if (!candidates) {
71
- throw new Error('Expected an array of payloads or { "payloads": [...] }');
72
- }
73
- const result = [];
74
- for (const [index, candidate] of candidates.entries()) {
75
- validatePayload(candidate, `index ${index}`);
76
- result.push(candidate);
77
- }
78
- return result;
79
- }
80
- function parseJsonl(raw) {
81
- const lines = raw.split("\n");
82
- const payloads = [];
83
- for (const [i, line_] of lines.entries()) {
84
- const line = line_?.trim();
85
- if (!line) continue;
86
- let parsed;
87
- try {
88
- parsed = JSON.parse(line);
89
- } catch (error) {
90
- const message = error instanceof Error ? error.message : String(error);
91
- throw new Error(`Line ${i + 1}: invalid JSON (${message})`, { cause: error });
92
- }
93
- validatePayload(parsed, `line ${i + 1}`);
94
- payloads.push(parsed);
95
- }
96
- return payloads;
97
- }
98
- function isPayloadsEnvelope(value) {
99
- if (typeof value !== "object" || value === null) return false;
100
- const record = value;
101
- return Array.isArray(record.payloads);
102
- }
103
- function validatePayload(value, where) {
104
- if (typeof value !== "object" || value === null) {
105
- throw new Error(`${where}: not an object`);
106
- }
107
- const record = value;
108
- if (typeof record.schema !== "string" || record.schema.length === 0) {
109
- throw new Error(`${where}: missing or invalid \`schema\``);
110
- }
111
- if (typeof record.$hash !== "string" || record.$hash.length === 0) {
112
- throw new Error(`${where}: missing or invalid \`$hash\``);
113
- }
114
- }
115
-
116
- // src/actions/datalake/payloads/pushPayloads.ts
117
- var DEFAULT_BATCH_SIZE = 500;
118
- function printRejectedList(label, hashes, cap, color) {
119
- console.log(color(label));
120
- for (const hash of hashes.slice(0, cap)) {
121
- console.log(` ${hash}`);
122
- }
123
- if (hashes.length > cap) {
124
- console.log(chalk.gray(` ... and ${hashes.length - cap} more`));
125
- }
126
- }
127
- async function verifyLocally(payloads) {
128
- const mismatches = [];
129
- for (const payload of payloads) {
130
- if (!await xyoVerifyPayloadHash(payload)) mismatches.push(payload.$hash);
131
- }
132
- if (mismatches.length === 0) {
133
- console.log(chalk.gray(`verified ${payloads.length} payload hashes locally (XL1-canonical)`));
134
- return true;
135
- }
136
- printRejectedList(
137
- `refusing to push: ${mismatches.length} payload(s) have mismatched $hash`,
138
- mismatches,
139
- 10,
140
- chalk.red
141
- );
142
- process.exitCode = 1;
143
- return false;
144
- }
145
- async function pushPayloads(options) {
146
- const payloads = parsePayloadsFile(options.file);
147
- if (payloads.length === 0) {
148
- console.log(chalk.yellow(`${options.file} contained 0 payloads \u2014 nothing to push`));
149
- return;
150
- }
151
- if (options.verify && !await verifyLocally(payloads)) return;
152
- const connection = await mintAndConnect({
153
- idOrName: options.idOrName,
154
- role: "runner",
155
- useXl1Sdk: options.xl1Sdk
156
- });
157
- console.log(chalk.gray(
158
- `pushing ${payloads.length} payloads to ${connection.datalakeName} (${connection.datalakeId}) via ${connection.transport}...`
159
- ));
160
- const batchSize = options.batchSize ?? DEFAULT_BATCH_SIZE;
161
- let inserted = 0;
162
- let duplicates = 0;
163
- const rejected = [];
164
- for (let offset = 0; offset < payloads.length; offset += batchSize) {
165
- const batch = payloads.slice(offset, offset + batchSize);
166
- const result = await connection.client.insert(batch);
167
- inserted += result.inserted;
168
- duplicates += result.duplicates;
169
- rejected.push(...result.rejected);
170
- }
171
- console.log(chalk.green(
172
- `push complete: inserted=${inserted} duplicates=${duplicates} rejected=${rejected.length}`
173
- ));
174
- if (rejected.length > 0) {
175
- printRejectedList("rejected hashes:", rejected, 20, chalk.yellow);
176
- }
177
- }
178
- export {
179
- pushPayloads
180
- };
181
- //# sourceMappingURL=pushPayloads.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/datalake/payloads/pushPayloads.ts","../../../../src/actions/datalake/payloads/mintAndConnect.ts","../../../../src/actions/datalake/resolveTarget.ts","../../../../src/actions/datalake/payloads/parsePayloadsFile.ts"],"sourcesContent":["import type { Payload } from '@xylabs/aries-datalake-core'\nimport { xyoVerifyPayloadHash } from '@xylabs/aries-datalake-core'\nimport chalk from 'chalk'\n\nimport { mintAndConnect } from './mintAndConnect.ts'\nimport { parsePayloadsFile } from './parsePayloadsFile.ts'\n\nexport interface PushPayloadsOptions {\n idOrName?: string\n /** Path to a JSON or JSONL file containing payloads. */\n file: string\n /** Max payloads per HTTP request. Data plane caps at 1 000. */\n batchSize?: number\n /**\n * If true, each payload's `$hash` is checked locally against the\n * XL1-canonical content digest before we send. Catches hash/content\n * drift early with a pointer to the exact offending hash.\n */\n verify?: boolean\n /**\n * If true, use the real `@xyo-network/xl1-protocol-sdk`\n * `RestDataLakeRunner` for the upload — exercises the XL1 SDK's exact\n * wire format against our XL1-compat routes.\n */\n xl1Sdk?: boolean\n}\n\nconst DEFAULT_BATCH_SIZE = 500\n\nfunction printRejectedList(label: string, hashes: string[], cap: number, color: (s: string) => string): void {\n console.log(color(label))\n for (const hash of hashes.slice(0, cap)) {\n console.log(` ${hash}`)\n }\n if (hashes.length > cap) {\n console.log(chalk.gray(` ... and ${hashes.length - cap} more`))\n }\n}\n\n/**\n * Returns `true` when every payload's `$hash` matches the XL1-canonical\n * digest. On failure, prints the offending hashes and sets `process.exitCode = 1`.\n */\nasync function verifyLocally(payloads: Payload[]): Promise<boolean> {\n const mismatches: string[] = []\n for (const payload of payloads) {\n if (!(await xyoVerifyPayloadHash(payload))) mismatches.push(payload.$hash)\n }\n if (mismatches.length === 0) {\n console.log(chalk.gray(`verified ${payloads.length} payload hashes locally (XL1-canonical)`))\n return true\n }\n printRejectedList(\n `refusing to push: ${mismatches.length} payload(s) have mismatched $hash`,\n mismatches,\n 10,\n chalk.red,\n )\n process.exitCode = 1\n return false\n}\n\n/**\n * Reads a payloads file and bulk-inserts into the target datalake. Splits\n * into multiple requests if the file exceeds the batch size, reporting\n * cumulative totals.\n */\nexport async function pushPayloads(options: PushPayloadsOptions): Promise<void> {\n const payloads = parsePayloadsFile(options.file)\n if (payloads.length === 0) {\n console.log(chalk.yellow(`${options.file} contained 0 payloads — nothing to push`))\n return\n }\n\n if (options.verify && !(await verifyLocally(payloads))) return\n\n const connection = await mintAndConnect({\n idOrName: options.idOrName, role: 'runner', useXl1Sdk: options.xl1Sdk,\n })\n console.log(chalk.gray(\n `pushing ${payloads.length} payloads to ${connection.datalakeName} `\n + `(${connection.datalakeId}) via ${connection.transport}...`,\n ))\n\n const batchSize = options.batchSize ?? DEFAULT_BATCH_SIZE\n let inserted = 0\n let duplicates = 0\n const rejected: string[] = []\n\n for (let offset = 0; offset < payloads.length; offset += batchSize) {\n const batch = payloads.slice(offset, offset + batchSize)\n const result = await connection.client.insert(batch)\n inserted += result.inserted\n duplicates += result.duplicates\n rejected.push(...result.rejected)\n }\n\n console.log(chalk.green(\n `push complete: inserted=${inserted} duplicates=${duplicates} rejected=${rejected.length}`,\n ))\n if (rejected.length > 0) {\n printRejectedList('rejected hashes:', rejected, 20, chalk.yellow)\n }\n}\n","import type { PayloadsClient } from '@xylabs/aries-datalake-client'\nimport { createDatalakeClient, RestPayloadsClient } from '@xylabs/aries-datalake-client'\nimport type { DatalakeRole } from '@xylabs/aries-datalake-core'\nimport { XyoPayloadsClient } from '@xylabs/aries-datalake-xl1-adapter'\n\nimport { resolveTarget } from '../resolveTarget.ts'\n\nexport interface Connection {\n client: PayloadsClient\n datalakeName: string\n datalakeId: string\n url: string\n transport: 'native' | 'xl1-sdk'\n}\n\nexport interface MintAndConnectOptions {\n idOrName?: string\n role: DatalakeRole\n ttlSeconds?: number\n /**\n * When `true`, use the real `@xyo-network/xl1-protocol-sdk`\n * `RestDataLakeRunner` / `RestDataLakeViewer` for insert and get,\n * proving byte-level wire compatibility. Other methods fall back to the\n * native `RestPayloadsClient` since the XL1 SDK doesn't implement them.\n */\n useXl1Sdk?: boolean\n}\n\n/**\n * Resolves the target datalake, mints a scoped token via the control plane,\n * and returns a data-plane client wired with that token. Centralizes what\n * every payload command has to do before it can talk to the data plane.\n */\nexport async function mintAndConnect(options: MintAndConnectOptions): Promise<Connection> {\n const controlClient = createDatalakeClient()\n const target = resolveTarget(options.idOrName)\n const descriptor = await controlClient.describe(target)\n if (!descriptor.url) {\n throw new Error(`Datalake ${descriptor.name} has no URL yet (status=${descriptor.status})`)\n }\n const token = await controlClient.mintToken({\n datalakeId: descriptor.id,\n role: options.role,\n ttlSeconds: options.ttlSeconds ?? 3600,\n })\n const clientOptions = {\n baseUrl: token.url,\n datalakeId: descriptor.id,\n authToken: token.token,\n }\n return {\n client: options.useXl1Sdk\n ? new XyoPayloadsClient(clientOptions)\n : new RestPayloadsClient(clientOptions),\n datalakeName: descriptor.name,\n datalakeId: descriptor.id,\n url: token.url,\n transport: options.useXl1Sdk ? 'xl1-sdk' : 'native',\n }\n}\n","import { getDefaultDatalake } from '@xylabs/aries-datalake-client'\n\n/**\n * Resolves the target datalake name/id for commands that take an optional\n * argument. Falls back to the one set via `aries datalake use`.\n */\nexport function resolveTarget(argValue: string | undefined): string {\n const target = argValue ?? getDefaultDatalake()\n if (!target) {\n throw new Error(\n 'No datalake specified and no default set. '\n + 'Pass <name> or run `aries datalake use <name>`.',\n )\n }\n return target\n}\n","import { readFileSync } from 'node:fs'\nimport path from 'node:path'\n\nimport type { Payload } from '@xylabs/aries-datalake-core'\n\n/**\n * Parses a file into an array of payloads. Supports two formats:\n *\n * - `.json`: must be either a top-level array of payloads, or `{ payloads: [...] }`\n * - `.jsonl` / `.ndjson`: one JSON object per line\n *\n * Each payload must have `schema` and `$hash` strings. Invalid rows throw\n * with the line number for JSONL or the array index for JSON.\n */\nexport function parsePayloadsFile(filePath: string): Payload[] {\n const absolute = path.resolve(filePath)\n const raw = readFileSync(absolute, 'utf8')\n const ext = path.extname(absolute).toLowerCase()\n\n if (ext === '.jsonl' || ext === '.ndjson') {\n return parseJsonl(raw)\n }\n if (ext === '.json') {\n return parseJson(raw)\n }\n\n // Fall back on content sniffing — accept JSONL if no `.json` extension.\n const trimmed = raw.trim()\n if (trimmed.startsWith('{') && trimmed.endsWith('}') && trimmed.includes('\\n{')) {\n return parseJsonl(raw)\n }\n return parseJson(raw)\n}\n\nfunction parseJson(raw: string): Payload[] {\n const parsed: unknown = JSON.parse(raw)\n const candidates: unknown[] | undefined = Array.isArray(parsed)\n ? parsed\n : isPayloadsEnvelope(parsed)\n ? parsed.payloads\n : undefined\n if (!candidates) {\n throw new Error('Expected an array of payloads or { \"payloads\": [...] }')\n }\n const result: Payload[] = []\n for (const [index, candidate] of candidates.entries()) {\n validatePayload(candidate, `index ${index}`)\n result.push(candidate)\n }\n return result\n}\n\nfunction parseJsonl(raw: string): Payload[] {\n const lines = raw.split('\\n')\n const payloads: Payload[] = []\n for (const [i, line_] of lines.entries()) {\n const line = line_?.trim()\n if (!line) continue\n let parsed: unknown\n try {\n parsed = JSON.parse(line)\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n throw new Error(`Line ${i + 1}: invalid JSON (${message})`, { cause: error })\n }\n validatePayload(parsed, `line ${i + 1}`)\n payloads.push(parsed)\n }\n return payloads\n}\n\nfunction isPayloadsEnvelope(value: unknown): value is { payloads: Payload[] } {\n if (typeof value !== 'object' || value === null) return false\n const record = value as Record<string, unknown>\n return Array.isArray(record.payloads)\n}\n\nfunction validatePayload(value: unknown, where: string): asserts value is Payload {\n if (typeof value !== 'object' || value === null) {\n throw new Error(`${where}: not an object`)\n }\n const record = value as Record<string, unknown>\n if (typeof record.schema !== 'string' || record.schema.length === 0) {\n throw new Error(`${where}: missing or invalid \\`schema\\``)\n }\n if (typeof record.$hash !== 'string' || record.$hash.length === 0) {\n throw new Error(`${where}: missing or invalid \\`$hash\\``)\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,106 +0,0 @@
1
- // src/actions/datalake/payloads/tailPayloads.ts
2
- import chalk from "chalk";
3
-
4
- // src/actions/datalake/payloads/mintAndConnect.ts
5
- import { createDatalakeClient, RestPayloadsClient } from "@xylabs/aries-datalake-client";
6
- import { XyoPayloadsClient } from "@xylabs/aries-datalake-xl1-adapter";
7
-
8
- // src/actions/datalake/resolveTarget.ts
9
- import { getDefaultDatalake } from "@xylabs/aries-datalake-client";
10
- function resolveTarget(argValue) {
11
- const target = argValue ?? getDefaultDatalake();
12
- if (!target) {
13
- throw new Error(
14
- "No datalake specified and no default set. Pass <name> or run `aries datalake use <name>`."
15
- );
16
- }
17
- return target;
18
- }
19
-
20
- // src/actions/datalake/payloads/mintAndConnect.ts
21
- async function mintAndConnect(options) {
22
- const controlClient = createDatalakeClient();
23
- const target = resolveTarget(options.idOrName);
24
- const descriptor = await controlClient.describe(target);
25
- if (!descriptor.url) {
26
- throw new Error(`Datalake ${descriptor.name} has no URL yet (status=${descriptor.status})`);
27
- }
28
- const token = await controlClient.mintToken({
29
- datalakeId: descriptor.id,
30
- role: options.role,
31
- ttlSeconds: options.ttlSeconds ?? 3600
32
- });
33
- const clientOptions = {
34
- baseUrl: token.url,
35
- datalakeId: descriptor.id,
36
- authToken: token.token
37
- };
38
- return {
39
- client: options.useXl1Sdk ? new XyoPayloadsClient(clientOptions) : new RestPayloadsClient(clientOptions),
40
- datalakeName: descriptor.name,
41
- datalakeId: descriptor.id,
42
- url: token.url,
43
- transport: options.useXl1Sdk ? "xl1-sdk" : "native"
44
- };
45
- }
46
-
47
- // src/actions/datalake/payloads/tailPayloads.ts
48
- var DEFAULT_LIMIT = 50;
49
- var DEFAULT_POLL_MS = 1e3;
50
- async function tailPayloads(options) {
51
- const connection = await mintAndConnect({ idOrName: options.idOrName, role: "viewer" });
52
- const limit = options.limit ?? DEFAULT_LIMIT;
53
- let cursor = options.cursor;
54
- let totalSeen = 0;
55
- while (true) {
56
- const page = await connection.client.next({
57
- limit,
58
- cursor,
59
- schemas: options.schemas
60
- });
61
- for (const payload of page.payloads) {
62
- printPayload(payload);
63
- totalSeen += 1;
64
- }
65
- if (!options.follow) {
66
- if (totalSeen === 0) {
67
- console.log(chalk.yellow(`${connection.datalakeName}: no payloads yet`));
68
- }
69
- return;
70
- }
71
- if (page.payloads.length < limit) {
72
- cursor = page.nextCursor ?? cursor;
73
- break;
74
- }
75
- cursor = page.nextCursor ?? cursor;
76
- }
77
- const pollIntervalMs = options.pollIntervalMs ?? DEFAULT_POLL_MS;
78
- console.log(chalk.gray(`following ${connection.datalakeName} (Ctrl+C to stop)`));
79
- let polls = 0;
80
- while (options.maxPolls === void 0 || polls < options.maxPolls) {
81
- await delay(pollIntervalMs);
82
- polls += 1;
83
- const page = await connection.client.next({
84
- limit,
85
- cursor,
86
- schemas: options.schemas
87
- });
88
- for (const payload of page.payloads) {
89
- printPayload(payload);
90
- totalSeen += 1;
91
- }
92
- if (page.nextCursor) cursor = page.nextCursor;
93
- }
94
- }
95
- function printPayload(payload) {
96
- const timestamp = (/* @__PURE__ */ new Date()).toISOString();
97
- console.log(`${chalk.gray(timestamp)} ${chalk.cyan(payload.$hash.slice(0, 12))} ${chalk.magenta(payload.schema)}`);
98
- console.log(` ${JSON.stringify(payload)}`);
99
- }
100
- function delay(ms) {
101
- return new Promise((resolve) => setTimeout(resolve, ms));
102
- }
103
- export {
104
- tailPayloads
105
- };
106
- //# sourceMappingURL=tailPayloads.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/datalake/payloads/tailPayloads.ts","../../../../src/actions/datalake/payloads/mintAndConnect.ts","../../../../src/actions/datalake/resolveTarget.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport { mintAndConnect } from './mintAndConnect.ts'\n\nexport interface TailPayloadsOptions {\n idOrName?: string\n /** Start from the current tail and keep polling for new payloads. */\n follow?: boolean\n /** One-shot page size. Defaults to 50. */\n limit?: number\n /** Start cursor. When following from \"now\", this is the last seen hash. */\n cursor?: string\n /** Schema filter. */\n schemas?: string[]\n /** Poll interval when following, in ms. Defaults to 1 000. */\n pollIntervalMs?: number\n /** Max polls when following. Omit for unlimited. Used in tests. */\n maxPolls?: number\n}\n\nconst DEFAULT_LIMIT = 50\nconst DEFAULT_POLL_MS = 1000\n\n/**\n * Streams payloads from a datalake. In one-shot mode prints the first page.\n * In follow mode pages forward to the end then polls `/next` from the last\n * cursor every `pollIntervalMs`, emitting new payloads as they land.\n */\nexport async function tailPayloads(options: TailPayloadsOptions): Promise<void> {\n const connection = await mintAndConnect({ idOrName: options.idOrName, role: 'viewer' })\n const limit = options.limit ?? DEFAULT_LIMIT\n\n let cursor = options.cursor\n let totalSeen = 0\n\n // Initial page(s): drain forward until we reach end-of-stream. In `follow`\n // mode we print these as backlog; in one-shot mode we stop after one page.\n while (true) {\n const page = await connection.client.next({\n limit, cursor, schemas: options.schemas,\n })\n for (const payload of page.payloads) {\n printPayload(payload)\n totalSeen += 1\n }\n if (!options.follow) {\n if (totalSeen === 0) {\n console.log(chalk.yellow(`${connection.datalakeName}: no payloads yet`))\n }\n return\n }\n if (page.payloads.length < limit) {\n cursor = page.nextCursor ?? cursor\n break\n }\n cursor = page.nextCursor ?? cursor\n }\n\n const pollIntervalMs = options.pollIntervalMs ?? DEFAULT_POLL_MS\n console.log(chalk.gray(`following ${connection.datalakeName} (Ctrl+C to stop)`))\n\n let polls = 0\n while (options.maxPolls === undefined || polls < options.maxPolls) {\n await delay(pollIntervalMs)\n polls += 1\n const page = await connection.client.next({\n limit, cursor, schemas: options.schemas,\n })\n for (const payload of page.payloads) {\n printPayload(payload)\n totalSeen += 1\n }\n if (page.nextCursor) cursor = page.nextCursor\n }\n}\n\nfunction printPayload(payload: { $hash: string; schema: string }): void {\n const timestamp = new Date().toISOString()\n console.log(`${chalk.gray(timestamp)} ${chalk.cyan(payload.$hash.slice(0, 12))} ${chalk.magenta(payload.schema)}`)\n console.log(` ${JSON.stringify(payload)}`)\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms))\n}\n","import type { PayloadsClient } from '@xylabs/aries-datalake-client'\nimport { createDatalakeClient, RestPayloadsClient } from '@xylabs/aries-datalake-client'\nimport type { DatalakeRole } from '@xylabs/aries-datalake-core'\nimport { XyoPayloadsClient } from '@xylabs/aries-datalake-xl1-adapter'\n\nimport { resolveTarget } from '../resolveTarget.ts'\n\nexport interface Connection {\n client: PayloadsClient\n datalakeName: string\n datalakeId: string\n url: string\n transport: 'native' | 'xl1-sdk'\n}\n\nexport interface MintAndConnectOptions {\n idOrName?: string\n role: DatalakeRole\n ttlSeconds?: number\n /**\n * When `true`, use the real `@xyo-network/xl1-protocol-sdk`\n * `RestDataLakeRunner` / `RestDataLakeViewer` for insert and get,\n * proving byte-level wire compatibility. Other methods fall back to the\n * native `RestPayloadsClient` since the XL1 SDK doesn't implement them.\n */\n useXl1Sdk?: boolean\n}\n\n/**\n * Resolves the target datalake, mints a scoped token via the control plane,\n * and returns a data-plane client wired with that token. Centralizes what\n * every payload command has to do before it can talk to the data plane.\n */\nexport async function mintAndConnect(options: MintAndConnectOptions): Promise<Connection> {\n const controlClient = createDatalakeClient()\n const target = resolveTarget(options.idOrName)\n const descriptor = await controlClient.describe(target)\n if (!descriptor.url) {\n throw new Error(`Datalake ${descriptor.name} has no URL yet (status=${descriptor.status})`)\n }\n const token = await controlClient.mintToken({\n datalakeId: descriptor.id,\n role: options.role,\n ttlSeconds: options.ttlSeconds ?? 3600,\n })\n const clientOptions = {\n baseUrl: token.url,\n datalakeId: descriptor.id,\n authToken: token.token,\n }\n return {\n client: options.useXl1Sdk\n ? new XyoPayloadsClient(clientOptions)\n : new RestPayloadsClient(clientOptions),\n datalakeName: descriptor.name,\n datalakeId: descriptor.id,\n url: token.url,\n transport: options.useXl1Sdk ? 'xl1-sdk' : 'native',\n }\n}\n","import { getDefaultDatalake } from '@xylabs/aries-datalake-client'\n\n/**\n * Resolves the target datalake name/id for commands that take an optional\n * argument. Falls back to the one set via `aries datalake use`.\n */\nexport function resolveTarget(argValue: string | undefined): string {\n const target = argValue ?? getDefaultDatalake()\n if (!target) {\n throw new Error(\n 'No datalake specified and no default set. '\n + 'Pass <name> or run `aries datalake use <name>`.',\n )\n }\n return target\n}\n"],"mappings":"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","names":[]}
@@ -1,15 +0,0 @@
1
- // src/actions/datalake/resolveTarget.ts
2
- import { getDefaultDatalake } from "@xylabs/aries-datalake-client";
3
- function resolveTarget(argValue) {
4
- const target = argValue ?? getDefaultDatalake();
5
- if (!target) {
6
- throw new Error(
7
- "No datalake specified and no default set. Pass <name> or run `aries datalake use <name>`."
8
- );
9
- }
10
- return target;
11
- }
12
- export {
13
- resolveTarget
14
- };
15
- //# sourceMappingURL=resolveTarget.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/actions/datalake/resolveTarget.ts"],"sourcesContent":["import { getDefaultDatalake } from '@xylabs/aries-datalake-client'\n\n/**\n * Resolves the target datalake name/id for commands that take an optional\n * argument. Falls back to the one set via `aries datalake use`.\n */\nexport function resolveTarget(argValue: string | undefined): string {\n const target = argValue ?? getDefaultDatalake()\n if (!target) {\n throw new Error(\n 'No datalake specified and no default set. '\n + 'Pass <name> or run `aries datalake use <name>`.',\n )\n }\n return target\n}\n"],"mappings":";AAAA,SAAS,0BAA0B;AAM5B,SAAS,cAAc,UAAsC;AAClE,QAAM,SAAS,YAAY,mBAAmB;AAC9C,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI;AAAA,MACR;AAAA,IAEF;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
@@ -1,108 +0,0 @@
1
- // src/actions/datalake/revokeAccess.ts
2
- import { createDatalakeClient } from "@xylabs/aries-datalake-client";
3
- import chalk2 from "chalk";
4
-
5
- // src/actions/datalake/formatters.ts
6
- import chalk from "chalk";
7
- var STATUS_COLORS = {
8
- pending: chalk.gray,
9
- provisioning: chalk.yellow,
10
- ready: chalk.green,
11
- resizing: chalk.yellow,
12
- deprovisioning: chalk.yellow,
13
- deleted: chalk.gray,
14
- error: chalk.red
15
- };
16
- function formatBytes(bytes) {
17
- if (bytes < 1024) return `${bytes} B`;
18
- if (bytes < 1024 ** 2) return `${(bytes / 1024).toFixed(1)} KB`;
19
- if (bytes < 1024 ** 3) return `${(bytes / 1024 ** 2).toFixed(1)} MB`;
20
- if (bytes < 1024 ** 4) return `${(bytes / 1024 ** 3).toFixed(1)} GB`;
21
- return `${(bytes / 1024 ** 4).toFixed(1)} TB`;
22
- }
23
- function formatStatus(status) {
24
- const colorize = STATUS_COLORS[status] ?? chalk.white;
25
- return colorize(status);
26
- }
27
- function printRateLimits(limits) {
28
- const parts = [];
29
- if (limits.authenticatedPerMinute !== void 0) parts.push(`auth=${limits.authenticatedPerMinute}/min`);
30
- if (limits.anonymousPerMinute !== void 0) parts.push(`anon=${limits.anonymousPerMinute}/min`);
31
- if (limits.burstFactor !== void 0) parts.push(`burst=${limits.burstFactor}x`);
32
- if (parts.length > 0) {
33
- console.log(` ${chalk.gray("limits:")} ${parts.join(" ")}`);
34
- }
35
- }
36
- function printUsage(usage) {
37
- console.log();
38
- console.log(chalk.cyan(" usage"));
39
- console.log(` ${chalk.gray("payloads:")} ${usage.payloadCount}`);
40
- console.log(` ${chalk.gray("stored:")} ${formatBytes(usage.bytesStored)} / ${formatBytes(usage.bytesStoredLimit)}`);
41
- console.log(` ${chalk.gray("reads 24h:")} ${usage.readsLast24h}`);
42
- console.log(` ${chalk.gray("writes 24h:")} ${usage.writesLast24h}`);
43
- }
44
- function printAcl(acl) {
45
- if (acl.length === 0) return;
46
- console.log();
47
- console.log(chalk.cyan(" access"));
48
- for (const entry of acl) {
49
- const principal = entry.principal === "public" ? chalk.yellow("public") : entry.principal;
50
- console.log(` ${principal.padEnd(24)} ${chalk.magenta(entry.role)} ${chalk.gray(entry.grantedAt)}`);
51
- }
52
- }
53
- function printDatalakeDetail(datalake) {
54
- console.log(chalk.cyan(`
55
- ${datalake.name}`));
56
- console.log(` ${chalk.gray("id:")} ${datalake.id}`);
57
- console.log(` ${chalk.gray("status:")} ${formatStatus(datalake.status)}`);
58
- if (datalake.url) {
59
- console.log(` ${chalk.gray("url:")} ${datalake.url}`);
60
- }
61
- console.log(` ${chalk.gray("owner:")} ${datalake.ownerId}`);
62
- console.log(` ${chalk.gray("tier:")} ${datalake.config.tier}`);
63
- console.log(` ${chalk.gray("region:")} ${datalake.config.region ?? "\u2014"}`);
64
- console.log(` ${chalk.gray("size:")} ${datalake.config.sizeBytes ? formatBytes(datalake.config.sizeBytes) : "\u2014"}`);
65
- console.log(` ${chalk.gray("iops:")} ${datalake.config.iops ?? "\u2014"}`);
66
- console.log(` ${chalk.gray("retention:")} ${datalake.config.retentionDays ?? "forever"}`);
67
- if (datalake.config.verifyHashes) {
68
- console.log(` ${chalk.gray("verify:")} ${chalk.green("hashes enforced")}`);
69
- }
70
- if (datalake.config.rateLimits) printRateLimits(datalake.config.rateLimits);
71
- console.log(` ${chalk.gray("created:")} ${datalake.createdAt}`);
72
- console.log(` ${chalk.gray("updated:")} ${datalake.updatedAt}`);
73
- if (datalake.usage) printUsage(datalake.usage);
74
- printAcl(datalake.acl);
75
- if (datalake.errorMessage) {
76
- console.log();
77
- console.log(` ${chalk.red("error:")} ${datalake.errorMessage}`);
78
- }
79
- }
80
-
81
- // src/actions/datalake/resolveTarget.ts
82
- import { getDefaultDatalake } from "@xylabs/aries-datalake-client";
83
- function resolveTarget(argValue) {
84
- const target = argValue ?? getDefaultDatalake();
85
- if (!target) {
86
- throw new Error(
87
- "No datalake specified and no default set. Pass <name> or run `aries datalake use <name>`."
88
- );
89
- }
90
- return target;
91
- }
92
-
93
- // src/actions/datalake/revokeAccess.ts
94
- async function revokeAccess(options) {
95
- const client = createDatalakeClient();
96
- const target = resolveTarget(options.idOrName);
97
- const descriptor = await client.describe(target);
98
- const updated = await client.revoke({
99
- datalakeId: descriptor.id,
100
- principal: options.principal
101
- });
102
- console.log(chalk2.green(`revoked access for ${options.principal} on ${updated.name}`));
103
- printDatalakeDetail(updated);
104
- }
105
- export {
106
- revokeAccess
107
- };
108
- //# sourceMappingURL=revokeAccess.mjs.map