@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.
- package/README.md +693 -0
- package/dist/actions/audit/auditPaths.mjs +22 -0
- package/dist/actions/audit/auditPaths.mjs.map +1 -0
- package/dist/actions/audit/index.mjs +739 -0
- package/dist/actions/audit/index.mjs.map +1 -0
- package/dist/actions/audit/installPlugin.mjs +298 -0
- package/dist/actions/audit/installPlugin.mjs.map +1 -0
- package/dist/actions/audit/listSessions.mjs +93 -0
- package/dist/actions/audit/listSessions.mjs.map +1 -0
- package/dist/actions/audit/openAuditDir.mjs +44 -0
- package/dist/actions/audit/openAuditDir.mjs.map +1 -0
- package/dist/actions/audit/searchAudit.mjs +77 -0
- package/dist/actions/audit/searchAudit.mjs.map +1 -0
- package/dist/actions/audit/showAiMeta.mjs +105 -0
- package/dist/actions/audit/showAiMeta.mjs.map +1 -0
- package/dist/actions/audit/showSession.mjs +105 -0
- package/dist/actions/audit/showSession.mjs.map +1 -0
- package/dist/actions/audit/statusAudit.mjs +98 -0
- package/dist/actions/audit/statusAudit.mjs.map +1 -0
- package/dist/actions/clamp/clampAudit.mjs +53 -0
- package/dist/actions/clamp/clampAudit.mjs.map +1 -0
- package/dist/actions/clamp/index.mjs +2258 -0
- package/dist/actions/clamp/index.mjs.map +1 -0
- package/dist/actions/clamp/ipcServer.mjs +55 -0
- package/dist/actions/clamp/ipcServer.mjs.map +1 -0
- package/dist/actions/clamp/policyManagement.mjs +144 -0
- package/dist/actions/clamp/policyManagement.mjs.map +1 -0
- package/dist/actions/clamp/promptUser.mjs +91 -0
- package/dist/actions/clamp/promptUser.mjs.map +1 -0
- package/dist/actions/clamp/runClamped.mjs +2107 -0
- package/dist/actions/clamp/runClamped.mjs.map +1 -0
- package/dist/actions/clamp/sandboxExec.mjs +1612 -0
- package/dist/actions/clamp/sandboxExec.mjs.map +1 -0
- package/dist/actions/clamp/shellEnvSetup.mjs +59 -0
- package/dist/actions/clamp/shellEnvSetup.mjs.map +1 -0
- package/dist/actions/clamp/shimGenerator.mjs +68 -0
- package/dist/actions/clamp/shimGenerator.mjs.map +1 -0
- package/dist/actions/clamp/terminalRenderer.mjs +145 -0
- package/dist/actions/clamp/terminalRenderer.mjs.map +1 -0
- package/dist/actions/datalake/audit/auditLog.mjs +191 -0
- package/dist/actions/datalake/audit/auditLog.mjs.map +1 -0
- package/dist/actions/datalake/createDatalake.mjs +127 -0
- package/dist/actions/datalake/createDatalake.mjs.map +1 -0
- package/dist/actions/datalake/describeDatalake.mjs +159 -0
- package/dist/actions/datalake/describeDatalake.mjs.map +1 -0
- package/dist/actions/datalake/destroyDatalake.mjs +34 -0
- package/dist/actions/datalake/destroyDatalake.mjs.map +1 -0
- package/dist/actions/datalake/dev/downDevServer.mjs +102 -0
- package/dist/actions/datalake/dev/downDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/index.mjs +369 -0
- package/dist/actions/datalake/dev/index.mjs.map +1 -0
- package/dist/actions/datalake/dev/logsDevServer.mjs +44 -0
- package/dist/actions/datalake/dev/logsDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/paths.mjs +25 -0
- package/dist/actions/datalake/dev/paths.mjs.map +1 -0
- package/dist/actions/datalake/dev/resetDevServer.mjs +118 -0
- package/dist/actions/datalake/dev/resetDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/resolveServerBin.mjs +26 -0
- package/dist/actions/datalake/dev/resolveServerBin.mjs.map +1 -0
- package/dist/actions/datalake/dev/state.mjs +62 -0
- package/dist/actions/datalake/dev/state.mjs.map +1 -0
- package/dist/actions/datalake/dev/statusDevServer.mjs +101 -0
- package/dist/actions/datalake/dev/statusDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/upDevServer.mjs +221 -0
- package/dist/actions/datalake/dev/upDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/waitForHealth.mjs +22 -0
- package/dist/actions/datalake/dev/waitForHealth.mjs.map +1 -0
- package/dist/actions/datalake/formatters.mjs +90 -0
- package/dist/actions/datalake/formatters.mjs.map +1 -0
- package/dist/actions/datalake/grantAccess.mjs +116 -0
- package/dist/actions/datalake/grantAccess.mjs.map +1 -0
- package/dist/actions/datalake/index.mjs +361 -0
- package/dist/actions/datalake/index.mjs.map +1 -0
- package/dist/actions/datalake/listDatalakes.mjs +54 -0
- package/dist/actions/datalake/listDatalakes.mjs.map +1 -0
- package/dist/actions/datalake/login.mjs +20 -0
- package/dist/actions/datalake/login.mjs.map +1 -0
- package/dist/actions/datalake/logout.mjs +11 -0
- package/dist/actions/datalake/logout.mjs.map +1 -0
- package/dist/actions/datalake/mintToken.mjs +37 -0
- package/dist/actions/datalake/mintToken.mjs.map +1 -0
- package/dist/actions/datalake/parseSize.mjs +21 -0
- package/dist/actions/datalake/parseSize.mjs.map +1 -0
- package/dist/actions/datalake/payloads/fetchPayload.mjs +76 -0
- package/dist/actions/datalake/payloads/fetchPayload.mjs.map +1 -0
- package/dist/actions/datalake/payloads/index.mjs +271 -0
- package/dist/actions/datalake/payloads/index.mjs.map +1 -0
- package/dist/actions/datalake/payloads/mintAndConnect.mjs +46 -0
- package/dist/actions/datalake/payloads/mintAndConnect.mjs.map +1 -0
- package/dist/actions/datalake/payloads/parsePayloadsFile.mjs +71 -0
- package/dist/actions/datalake/payloads/parsePayloadsFile.mjs.map +1 -0
- package/dist/actions/datalake/payloads/pushPayloads.mjs +181 -0
- package/dist/actions/datalake/payloads/pushPayloads.mjs.map +1 -0
- package/dist/actions/datalake/payloads/tailPayloads.mjs +106 -0
- package/dist/actions/datalake/payloads/tailPayloads.mjs.map +1 -0
- package/dist/actions/datalake/resolveTarget.mjs +15 -0
- package/dist/actions/datalake/resolveTarget.mjs.map +1 -0
- package/dist/actions/datalake/revokeAccess.mjs +108 -0
- package/dist/actions/datalake/revokeAccess.mjs.map +1 -0
- package/dist/actions/datalake/useDatalake.mjs +22 -0
- package/dist/actions/datalake/useDatalake.mjs.map +1 -0
- package/dist/actions/detect/detectAiClients.mjs +405 -0
- package/dist/actions/detect/detectAiClients.mjs.map +1 -0
- package/dist/actions/detect/index.mjs +405 -0
- package/dist/actions/detect/index.mjs.map +1 -0
- package/dist/actions/hash/algorithms/blockhash.mjs +61 -0
- package/dist/actions/hash/algorithms/blockhash.mjs.map +1 -0
- package/dist/actions/hash/algorithms/chromaprint.mjs +205 -0
- package/dist/actions/hash/algorithms/chromaprint.mjs.map +1 -0
- package/dist/actions/hash/algorithms/dhash.mjs +75 -0
- package/dist/actions/hash/algorithms/dhash.mjs.map +1 -0
- package/dist/actions/hash/algorithms/index.mjs +818 -0
- package/dist/actions/hash/algorithms/index.mjs.map +1 -0
- package/dist/actions/hash/algorithms/nilsimsa.mjs +27 -0
- package/dist/actions/hash/algorithms/nilsimsa.mjs.map +1 -0
- package/dist/actions/hash/algorithms/pdq.mjs +83 -0
- package/dist/actions/hash/algorithms/pdq.mjs.map +1 -0
- package/dist/actions/hash/algorithms/phash.mjs +71 -0
- package/dist/actions/hash/algorithms/phash.mjs.map +1 -0
- package/dist/actions/hash/algorithms/sha256.mjs +24 -0
- package/dist/actions/hash/algorithms/sha256.mjs.map +1 -0
- package/dist/actions/hash/algorithms/ssdeep.mjs +203 -0
- package/dist/actions/hash/algorithms/ssdeep.mjs.map +1 -0
- package/dist/actions/hash/algorithms/tlsh.mjs +66 -0
- package/dist/actions/hash/algorithms/tlsh.mjs.map +1 -0
- package/dist/actions/hash/algorithms/types.mjs +1 -0
- package/dist/actions/hash/algorithms/types.mjs.map +1 -0
- package/dist/actions/hash/algorithms/videoFrames.mjs +404 -0
- package/dist/actions/hash/algorithms/videoFrames.mjs.map +1 -0
- package/dist/actions/hash/algorithms/xyo.mjs +30 -0
- package/dist/actions/hash/algorithms/xyo.mjs.map +1 -0
- package/dist/actions/hash/compareHashes.mjs +823 -0
- package/dist/actions/hash/compareHashes.mjs.map +1 -0
- package/dist/actions/hash/hashInput.mjs +868 -0
- package/dist/actions/hash/hashInput.mjs.map +1 -0
- package/dist/actions/hash/index.mjs +881 -0
- package/dist/actions/hash/index.mjs.map +1 -0
- package/dist/actions/hash/lib/hamming.mjs +44 -0
- package/dist/actions/hash/lib/hamming.mjs.map +1 -0
- package/dist/actions/hash/lib/levenshtein.mjs +36 -0
- package/dist/actions/hash/lib/levenshtein.mjs.map +1 -0
- package/dist/actions/hash/lib/runBinary.mjs +54 -0
- package/dist/actions/hash/lib/runBinary.mjs.map +1 -0
- package/dist/actions/hash/lib/which.mjs +36 -0
- package/dist/actions/hash/lib/which.mjs.map +1 -0
- package/dist/actions/hash/lib/withTempfile.mjs +19 -0
- package/dist/actions/hash/lib/withTempfile.mjs.map +1 -0
- package/dist/actions/index.mjs +4615 -0
- package/dist/actions/index.mjs.map +1 -0
- package/dist/actions/printVersion.mjs +12 -0
- package/dist/actions/printVersion.mjs.map +1 -0
- package/dist/actions/sync/index.mjs +51 -0
- package/dist/actions/sync/index.mjs.map +1 -0
- package/dist/actions/sync/syncAiConfig.mjs +51 -0
- package/dist/actions/sync/syncAiConfig.mjs.map +1 -0
- package/dist/actions/wallet/account/deriveAndAdd.mjs +394 -0
- package/dist/actions/wallet/account/deriveAndAdd.mjs.map +1 -0
- package/dist/actions/wallet/account/getActiveWallet.mjs +338 -0
- package/dist/actions/wallet/account/getActiveWallet.mjs.map +1 -0
- package/dist/actions/wallet/account/labelAccount.mjs +389 -0
- package/dist/actions/wallet/account/labelAccount.mjs.map +1 -0
- package/dist/actions/wallet/account/listAccounts.mjs +374 -0
- package/dist/actions/wallet/account/listAccounts.mjs.map +1 -0
- package/dist/actions/wallet/account/removeAccount.mjs +384 -0
- package/dist/actions/wallet/account/removeAccount.mjs.map +1 -0
- package/dist/actions/wallet/account/showAccount.mjs +368 -0
- package/dist/actions/wallet/account/showAccount.mjs.map +1 -0
- package/dist/actions/wallet/addressBook/storage.mjs +110 -0
- package/dist/actions/wallet/addressBook/storage.mjs.map +1 -0
- package/dist/actions/wallet/backup/exportBackup.mjs +93 -0
- package/dist/actions/wallet/backup/exportBackup.mjs.map +1 -0
- package/dist/actions/wallet/backup/importBackup.mjs +142 -0
- package/dist/actions/wallet/backup/importBackup.mjs.map +1 -0
- package/dist/actions/wallet/balance/getBalance.mjs +434 -0
- package/dist/actions/wallet/balance/getBalance.mjs.map +1 -0
- package/dist/actions/wallet/client/walletClient.mjs +64 -0
- package/dist/actions/wallet/client/walletClient.mjs.map +1 -0
- package/dist/actions/wallet/contact/contactActions.mjs +120 -0
- package/dist/actions/wallet/contact/contactActions.mjs.map +1 -0
- package/dist/actions/wallet/contact/storage.mjs +69 -0
- package/dist/actions/wallet/contact/storage.mjs.map +1 -0
- package/dist/actions/wallet/index.mjs +1439 -0
- package/dist/actions/wallet/index.mjs.map +1 -0
- package/dist/actions/wallet/network/networkActions.mjs +137 -0
- package/dist/actions/wallet/network/networkActions.mjs.map +1 -0
- package/dist/actions/wallet/network/storage.mjs +93 -0
- package/dist/actions/wallet/network/storage.mjs.map +1 -0
- package/dist/actions/wallet/password/changePassword.mjs +282 -0
- package/dist/actions/wallet/password/changePassword.mjs.map +1 -0
- package/dist/actions/wallet/password/getActiveKey.mjs +297 -0
- package/dist/actions/wallet/password/getActiveKey.mjs.map +1 -0
- package/dist/actions/wallet/password/initOrUnlock.mjs +337 -0
- package/dist/actions/wallet/password/initOrUnlock.mjs.map +1 -0
- package/dist/actions/wallet/password/passwordStorage.mjs +69 -0
- package/dist/actions/wallet/password/passwordStorage.mjs.map +1 -0
- package/dist/actions/wallet/password/setPassword.mjs +138 -0
- package/dist/actions/wallet/password/setPassword.mjs.map +1 -0
- package/dist/actions/wallet/password/validatePassword.mjs +123 -0
- package/dist/actions/wallet/password/validatePassword.mjs.map +1 -0
- package/dist/actions/wallet/passwordKey.mjs +87 -0
- package/dist/actions/wallet/passwordKey.mjs.map +1 -0
- package/dist/actions/wallet/paths.mjs +26 -0
- package/dist/actions/wallet/paths.mjs.map +1 -0
- package/dist/actions/wallet/prompt.mjs +93 -0
- package/dist/actions/wallet/prompt.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/createPhrase.mjs +392 -0
- package/dist/actions/wallet/seedPhrase/createPhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/exportPhrase.mjs +334 -0
- package/dist/actions/wallet/seedPhrase/exportPhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/idGen.mjs +11 -0
- package/dist/actions/wallet/seedPhrase/idGen.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/importPhrase.mjs +393 -0
- package/dist/actions/wallet/seedPhrase/importPhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/listPhrases.mjs +62 -0
- package/dist/actions/wallet/seedPhrase/listPhrases.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/phraseStorage.mjs +89 -0
- package/dist/actions/wallet/seedPhrase/phraseStorage.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/removePhrase.mjs +366 -0
- package/dist/actions/wallet/seedPhrase/removePhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/renamePhrase.mjs +78 -0
- package/dist/actions/wallet/seedPhrase/renamePhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/types.mjs +1 -0
- package/dist/actions/wallet/seedPhrase/types.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/usePhrase.mjs +83 -0
- package/dist/actions/wallet/seedPhrase/usePhrase.mjs.map +1 -0
- package/dist/actions/wallet/session/machineId.mjs +145 -0
- package/dist/actions/wallet/session/machineId.mjs.map +1 -0
- package/dist/actions/wallet/session/sessionCache.mjs +221 -0
- package/dist/actions/wallet/session/sessionCache.mjs.map +1 -0
- package/dist/actions/wallet/session/unlock.mjs +307 -0
- package/dist/actions/wallet/session/unlock.mjs.map +1 -0
- package/dist/actions/wallet/sign/signPayload.mjs +637 -0
- package/dist/actions/wallet/sign/signPayload.mjs.map +1 -0
- package/dist/actions/wallet/storage.mjs +51 -0
- package/dist/actions/wallet/storage.mjs.map +1 -0
- package/dist/actions/wallet/transaction/broadcastTransaction.mjs +453 -0
- package/dist/actions/wallet/transaction/broadcastTransaction.mjs.map +1 -0
- package/dist/actions/wallet/transaction/sendTransaction.mjs +457 -0
- package/dist/actions/wallet/transaction/sendTransaction.mjs.map +1 -0
- package/dist/actions/wallet/transaction/signTransactionFile.mjs +378 -0
- package/dist/actions/wallet/transaction/signTransactionFile.mjs.map +1 -0
- package/dist/actions/xyo/index.mjs +138 -0
- package/dist/actions/xyo/index.mjs.map +1 -0
- package/dist/actions/xyo/transaction/index.mjs +138 -0
- package/dist/actions/xyo/transaction/index.mjs.map +1 -0
- package/dist/actions/xyo/transaction/validateTransactions.mjs +138 -0
- package/dist/actions/xyo/transaction/validateTransactions.mjs.map +1 -0
- package/dist/aries.mjs +8466 -0
- package/dist/aries.mjs.map +1 -0
- package/dist/bin/aries.mjs +8472 -0
- package/dist/bin/aries.mjs.map +1 -0
- package/dist/commands/aiCommand.mjs +492 -0
- package/dist/commands/aiCommand.mjs.map +1 -0
- package/dist/commands/auditAiCommand.mjs +119 -0
- package/dist/commands/auditAiCommand.mjs.map +1 -0
- package/dist/commands/auditCommand.mjs +857 -0
- package/dist/commands/auditCommand.mjs.map +1 -0
- package/dist/commands/auditInstallCommand.mjs +324 -0
- package/dist/commands/auditInstallCommand.mjs.map +1 -0
- package/dist/commands/auditListCommand.mjs +107 -0
- package/dist/commands/auditListCommand.mjs.map +1 -0
- package/dist/commands/auditOpenCommand.mjs +51 -0
- package/dist/commands/auditOpenCommand.mjs.map +1 -0
- package/dist/commands/auditSearchCommand.mjs +98 -0
- package/dist/commands/auditSearchCommand.mjs.map +1 -0
- package/dist/commands/auditShowCommand.mjs +123 -0
- package/dist/commands/auditShowCommand.mjs.map +1 -0
- package/dist/commands/auditStatusCommand.mjs +105 -0
- package/dist/commands/auditStatusCommand.mjs.map +1 -0
- package/dist/commands/clampCommand.mjs +2328 -0
- package/dist/commands/clampCommand.mjs.map +1 -0
- package/dist/commands/clampPolicyCommand.mjs +184 -0
- package/dist/commands/clampPolicyCommand.mjs.map +1 -0
- package/dist/commands/clampPolicyInitCommand.mjs +63 -0
- package/dist/commands/clampPolicyInitCommand.mjs.map +1 -0
- package/dist/commands/clampPolicyListCommand.mjs +56 -0
- package/dist/commands/clampPolicyListCommand.mjs.map +1 -0
- package/dist/commands/clampPolicyShowCommand.mjs +83 -0
- package/dist/commands/clampPolicyShowCommand.mjs.map +1 -0
- package/dist/commands/clampRunCommand.mjs +2137 -0
- package/dist/commands/clampRunCommand.mjs.map +1 -0
- package/dist/commands/datalakeAuditCommand.mjs +273 -0
- package/dist/commands/datalakeAuditCommand.mjs.map +1 -0
- package/dist/commands/datalakeCommand.mjs +1637 -0
- package/dist/commands/datalakeCommand.mjs.map +1 -0
- package/dist/commands/datalakeCreateCommand.mjs +189 -0
- package/dist/commands/datalakeCreateCommand.mjs.map +1 -0
- package/dist/commands/datalakeDescribeCommand.mjs +172 -0
- package/dist/commands/datalakeDescribeCommand.mjs.map +1 -0
- package/dist/commands/datalakeDestroyCommand.mjs +53 -0
- package/dist/commands/datalakeDestroyCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevCommand.mjs +470 -0
- package/dist/commands/datalakeDevCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevDownCommand.mjs +111 -0
- package/dist/commands/datalakeDevDownCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevLogsCommand.mjs +65 -0
- package/dist/commands/datalakeDevLogsCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevResetCommand.mjs +125 -0
- package/dist/commands/datalakeDevResetCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevStatusCommand.mjs +110 -0
- package/dist/commands/datalakeDevStatusCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevUpCommand.mjs +268 -0
- package/dist/commands/datalakeDevUpCommand.mjs.map +1 -0
- package/dist/commands/datalakeFetchCommand.mjs +106 -0
- package/dist/commands/datalakeFetchCommand.mjs.map +1 -0
- package/dist/commands/datalakeGrantCommand.mjs +147 -0
- package/dist/commands/datalakeGrantCommand.mjs.map +1 -0
- package/dist/commands/datalakeListCommand.mjs +61 -0
- package/dist/commands/datalakeListCommand.mjs.map +1 -0
- package/dist/commands/datalakeLoginCommand.mjs +39 -0
- package/dist/commands/datalakeLoginCommand.mjs.map +1 -0
- package/dist/commands/datalakeLogoutCommand.mjs +20 -0
- package/dist/commands/datalakeLogoutCommand.mjs.map +1 -0
- package/dist/commands/datalakePushCommand.mjs +214 -0
- package/dist/commands/datalakePushCommand.mjs.map +1 -0
- package/dist/commands/datalakeRevokeCommand.mjs +127 -0
- package/dist/commands/datalakeRevokeCommand.mjs.map +1 -0
- package/dist/commands/datalakeTailCommand.mjs +144 -0
- package/dist/commands/datalakeTailCommand.mjs.map +1 -0
- package/dist/commands/datalakeTokenCommand.mjs +61 -0
- package/dist/commands/datalakeTokenCommand.mjs.map +1 -0
- package/dist/commands/datalakeUseCommand.mjs +35 -0
- package/dist/commands/datalakeUseCommand.mjs.map +1 -0
- package/dist/commands/detectCommand.mjs +419 -0
- package/dist/commands/detectCommand.mjs.map +1 -0
- package/dist/commands/hashCommand.mjs +976 -0
- package/dist/commands/hashCommand.mjs.map +1 -0
- package/dist/commands/hashCompareCommand.mjs +865 -0
- package/dist/commands/hashCompareCommand.mjs.map +1 -0
- package/dist/commands/index.mjs +8461 -0
- package/dist/commands/index.mjs.map +1 -0
- package/dist/commands/syncCommand.mjs +66 -0
- package/dist/commands/syncCommand.mjs.map +1 -0
- package/dist/commands/versionCommand.mjs +24 -0
- package/dist/commands/versionCommand.mjs.map +1 -0
- package/dist/commands/walletAccountCommand.mjs +536 -0
- package/dist/commands/walletAccountCommand.mjs.map +1 -0
- package/dist/commands/walletAccountDeriveCommand.mjs +415 -0
- package/dist/commands/walletAccountDeriveCommand.mjs.map +1 -0
- package/dist/commands/walletAccountLabelCommand.mjs +405 -0
- package/dist/commands/walletAccountLabelCommand.mjs.map +1 -0
- package/dist/commands/walletAccountListCommand.mjs +381 -0
- package/dist/commands/walletAccountListCommand.mjs.map +1 -0
- package/dist/commands/walletAccountRemoveCommand.mjs +396 -0
- package/dist/commands/walletAccountRemoveCommand.mjs.map +1 -0
- package/dist/commands/walletAccountShowCommand.mjs +380 -0
- package/dist/commands/walletAccountShowCommand.mjs.map +1 -0
- package/dist/commands/walletBackupCommand.mjs +222 -0
- package/dist/commands/walletBackupCommand.mjs.map +1 -0
- package/dist/commands/walletBackupExportCommand.mjs +107 -0
- package/dist/commands/walletBackupExportCommand.mjs.map +1 -0
- package/dist/commands/walletBackupImportCommand.mjs +154 -0
- package/dist/commands/walletBackupImportCommand.mjs.map +1 -0
- package/dist/commands/walletBalanceCommand.mjs +448 -0
- package/dist/commands/walletBalanceCommand.mjs.map +1 -0
- package/dist/commands/walletCommand.mjs +1968 -0
- package/dist/commands/walletCommand.mjs.map +1 -0
- package/dist/commands/walletContactAddCommand.mjs +111 -0
- package/dist/commands/walletContactAddCommand.mjs.map +1 -0
- package/dist/commands/walletContactCommand.mjs +184 -0
- package/dist/commands/walletContactCommand.mjs.map +1 -0
- package/dist/commands/walletContactListCommand.mjs +66 -0
- package/dist/commands/walletContactListCommand.mjs.map +1 -0
- package/dist/commands/walletContactRemoveCommand.mjs +97 -0
- package/dist/commands/walletContactRemoveCommand.mjs.map +1 -0
- package/dist/commands/walletContactRenameCommand.mjs +114 -0
- package/dist/commands/walletContactRenameCommand.mjs.map +1 -0
- package/dist/commands/walletCreateCommand.mjs +407 -0
- package/dist/commands/walletCreateCommand.mjs.map +1 -0
- package/dist/commands/walletExportCommand.mjs +345 -0
- package/dist/commands/walletExportCommand.mjs.map +1 -0
- package/dist/commands/walletImportCommand.mjs +413 -0
- package/dist/commands/walletImportCommand.mjs.map +1 -0
- package/dist/commands/walletListCommand.mjs +69 -0
- package/dist/commands/walletListCommand.mjs.map +1 -0
- package/dist/commands/walletLockCommand.mjs +56 -0
- package/dist/commands/walletLockCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkAddCommand.mjs +131 -0
- package/dist/commands/walletNetworkAddCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkCommand.mjs +206 -0
- package/dist/commands/walletNetworkCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkListCommand.mjs +104 -0
- package/dist/commands/walletNetworkListCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkRemoveCommand.mjs +112 -0
- package/dist/commands/walletNetworkRemoveCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkUseCommand.mjs +110 -0
- package/dist/commands/walletNetworkUseCommand.mjs.map +1 -0
- package/dist/commands/walletPasswordChangeCommand.mjs +291 -0
- package/dist/commands/walletPasswordChangeCommand.mjs.map +1 -0
- package/dist/commands/walletPasswordCommand.mjs +301 -0
- package/dist/commands/walletPasswordCommand.mjs.map +1 -0
- package/dist/commands/walletRemoveCommand.mjs +378 -0
- package/dist/commands/walletRemoveCommand.mjs.map +1 -0
- package/dist/commands/walletRenameCommand.mjs +94 -0
- package/dist/commands/walletRenameCommand.mjs.map +1 -0
- package/dist/commands/walletSignCommand.mjs +662 -0
- package/dist/commands/walletSignCommand.mjs.map +1 -0
- package/dist/commands/walletTxBroadcastCommand.mjs +473 -0
- package/dist/commands/walletTxBroadcastCommand.mjs.map +1 -0
- package/dist/commands/walletTxCommand.mjs +612 -0
- package/dist/commands/walletTxCommand.mjs.map +1 -0
- package/dist/commands/walletTxSendCommand.mjs +492 -0
- package/dist/commands/walletTxSendCommand.mjs.map +1 -0
- package/dist/commands/walletTxSignCommand.mjs +403 -0
- package/dist/commands/walletTxSignCommand.mjs.map +1 -0
- package/dist/commands/walletUnlockCommand.mjs +308 -0
- package/dist/commands/walletUnlockCommand.mjs.map +1 -0
- package/dist/commands/walletUseCommand.mjs +95 -0
- package/dist/commands/walletUseCommand.mjs.map +1 -0
- package/dist/commands/xyoCommand.mjs +188 -0
- package/dist/commands/xyoCommand.mjs.map +1 -0
- package/dist/commands/xyoTxCommand.mjs +178 -0
- package/dist/commands/xyoTxCommand.mjs.map +1 -0
- package/dist/commands/xyoTxValidateCommand.mjs +168 -0
- package/dist/commands/xyoTxValidateCommand.mjs.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.mjs +8466 -0
- package/dist/index.mjs.map +1 -0
- package/dist/types/modules.d.mjs +1 -0
- package/dist/types/modules.d.mjs.map +1 -0
- package/package.json +197 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/datalake/createDatalake.ts","../../../src/actions/datalake/formatters.ts","../../../src/actions/datalake/parseSize.ts","../../../src/actions/datalake/describeDatalake.ts","../../../src/actions/datalake/payloads/mintAndConnect.ts","../../../src/actions/datalake/resolveTarget.ts","../../../src/actions/datalake/destroyDatalake.ts","../../../src/actions/datalake/grantAccess.ts","../../../src/actions/datalake/listDatalakes.ts","../../../src/actions/datalake/login.ts","../../../src/actions/datalake/logout.ts","../../../src/actions/datalake/mintToken.ts","../../../src/actions/datalake/revokeAccess.ts","../../../src/actions/datalake/useDatalake.ts"],"sourcesContent":["import { createDatalakeClient } from '@xylabs/aries-datalake-client'\nimport type {\n DatalakeConfig, DatalakeRegion, DatalakeTier, RateLimitOverrides,\n} from '@xylabs/aries-datalake-core'\nimport chalk from 'chalk'\n\nimport { printDatalakeDetail } from './formatters.ts'\nimport { parseSize } from './parseSize.ts'\n\nexport interface CreateDatalakeOptions {\n name: string\n tier: DatalakeTier\n size?: string\n iops?: number\n region?: DatalakeRegion\n retentionDays?: number\n verifyHashes?: boolean\n rateAuthPerMinute?: number\n rateAnonPerMinute?: number\n rateBurstFactor?: number\n}\n\nfunction buildRateLimits(options: CreateDatalakeOptions): RateLimitOverrides | undefined {\n if (\n options.rateAuthPerMinute === undefined\n && options.rateAnonPerMinute === undefined\n && options.rateBurstFactor === undefined\n ) return undefined\n return {\n authenticatedPerMinute: options.rateAuthPerMinute,\n anonymousPerMinute: options.rateAnonPerMinute,\n burstFactor: options.rateBurstFactor,\n }\n}\n\nexport async function createDatalake(options: CreateDatalakeOptions): Promise<void> {\n const client = createDatalakeClient()\n const config: DatalakeConfig = {\n tier: options.tier,\n sizeBytes: options.size === undefined ? undefined : parseSize(options.size),\n iops: options.iops,\n region: options.region,\n retentionDays: options.retentionDays,\n verifyHashes: options.verifyHashes,\n rateLimits: buildRateLimits(options),\n }\n\n console.log(chalk.gray(`provisioning ${options.name} (tier=${options.tier})...`))\n const descriptor = await client.create({ name: options.name, config })\n console.log(chalk.green(`created ${descriptor.name} (${descriptor.id})`))\n printDatalakeDetail(descriptor)\n}\n","import type {\n DatalakeDescriptor, DatalakeStatus, DatalakeUsage, RateLimitOverrides,\n} from '@xylabs/aries-datalake-core'\nimport chalk from 'chalk'\n\nconst STATUS_COLORS: Record<DatalakeStatus, (s: string) => string> = {\n pending: chalk.gray,\n provisioning: chalk.yellow,\n ready: chalk.green,\n resizing: chalk.yellow,\n deprovisioning: chalk.yellow,\n deleted: chalk.gray,\n error: chalk.red,\n}\n\nexport function formatBytes(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`\n if (bytes < 1024 ** 2) return `${(bytes / 1024).toFixed(1)} KB`\n if (bytes < 1024 ** 3) return `${(bytes / 1024 ** 2).toFixed(1)} MB`\n if (bytes < 1024 ** 4) return `${(bytes / 1024 ** 3).toFixed(1)} GB`\n return `${(bytes / 1024 ** 4).toFixed(1)} TB`\n}\n\nexport function formatStatus(status: DatalakeStatus): string {\n const colorize = STATUS_COLORS[status] ?? chalk.white\n return colorize(status)\n}\n\nexport function printDatalakeRow(datalake: DatalakeDescriptor): void {\n const size = datalake.config.sizeBytes ? formatBytes(datalake.config.sizeBytes) : '—'\n const name = chalk.white(datalake.name.padEnd(20))\n const tier = chalk.cyan(datalake.config.tier.padEnd(8))\n const region = chalk.gray((datalake.config.region ?? '—').padEnd(12))\n const status = formatStatus(datalake.status).padEnd(14)\n console.log(` ${name} ${tier} ${region} ${size.padStart(8)} ${status}`)\n}\n\nfunction printRateLimits(limits: RateLimitOverrides): void {\n const parts: string[] = []\n if (limits.authenticatedPerMinute !== undefined) parts.push(`auth=${limits.authenticatedPerMinute}/min`)\n if (limits.anonymousPerMinute !== undefined) parts.push(`anon=${limits.anonymousPerMinute}/min`)\n if (limits.burstFactor !== undefined) parts.push(`burst=${limits.burstFactor}x`)\n if (parts.length > 0) {\n console.log(` ${chalk.gray('limits:')} ${parts.join(' ')}`)\n }\n}\n\nfunction printUsage(usage: DatalakeUsage): void {\n console.log()\n console.log(chalk.cyan(' usage'))\n console.log(` ${chalk.gray('payloads:')} ${usage.payloadCount}`)\n console.log(` ${chalk.gray('stored:')} ${formatBytes(usage.bytesStored)} / ${formatBytes(usage.bytesStoredLimit)}`)\n console.log(` ${chalk.gray('reads 24h:')} ${usage.readsLast24h}`)\n console.log(` ${chalk.gray('writes 24h:')} ${usage.writesLast24h}`)\n}\n\nfunction printAcl(acl: DatalakeDescriptor['acl']): void {\n if (acl.length === 0) return\n console.log()\n console.log(chalk.cyan(' access'))\n for (const entry of acl) {\n const principal = entry.principal === 'public' ? chalk.yellow('public') : entry.principal\n console.log(` ${principal.padEnd(24)} ${chalk.magenta(entry.role)} ${chalk.gray(entry.grantedAt)}`)\n }\n}\n\nexport function printDatalakeDetail(datalake: DatalakeDescriptor): void {\n console.log(chalk.cyan(`\\n${datalake.name}`))\n console.log(` ${chalk.gray('id:')} ${datalake.id}`)\n console.log(` ${chalk.gray('status:')} ${formatStatus(datalake.status)}`)\n if (datalake.url) {\n console.log(` ${chalk.gray('url:')} ${datalake.url}`)\n }\n console.log(` ${chalk.gray('owner:')} ${datalake.ownerId}`)\n console.log(` ${chalk.gray('tier:')} ${datalake.config.tier}`)\n console.log(` ${chalk.gray('region:')} ${datalake.config.region ?? '—'}`)\n console.log(` ${chalk.gray('size:')} ${datalake.config.sizeBytes ? formatBytes(datalake.config.sizeBytes) : '—'}`)\n console.log(` ${chalk.gray('iops:')} ${datalake.config.iops ?? '—'}`)\n console.log(` ${chalk.gray('retention:')} ${datalake.config.retentionDays ?? 'forever'}`)\n if (datalake.config.verifyHashes) {\n console.log(` ${chalk.gray('verify:')} ${chalk.green('hashes enforced')}`)\n }\n if (datalake.config.rateLimits) printRateLimits(datalake.config.rateLimits)\n console.log(` ${chalk.gray('created:')} ${datalake.createdAt}`)\n console.log(` ${chalk.gray('updated:')} ${datalake.updatedAt}`)\n if (datalake.usage) printUsage(datalake.usage)\n printAcl(datalake.acl)\n if (datalake.errorMessage) {\n console.log()\n console.log(` ${chalk.red('error:')} ${datalake.errorMessage}`)\n }\n}\n","const SIZE_UNITS: Record<string, number> = {\n b: 1,\n kb: 1024,\n mb: 1024 ** 2,\n gb: 1024 ** 3,\n tb: 1024 ** 4,\n}\n\n/**\n * Parse human-readable sizes like \"10GB\", \"500MB\", \"1tb\" into bytes.\n * Throws on unrecognized input so the CLI surfaces a clear error.\n */\nexport function parseSize(input: string): number {\n const match = /^(\\d+(?:\\.\\d+)?)\\s*([a-zA-Z]+)?$/.exec(input.trim())\n if (!match) throw new Error(`Invalid size: ${input}`)\n const value = Number(match[1])\n const unitRaw = (match[2] ?? 'b').toLowerCase()\n const unit = SIZE_UNITS[unitRaw]\n if (unit === undefined) throw new Error(`Unknown size unit: ${match[2]}`)\n return Math.round(value * unit)\n}\n","import type { DatalakeUsageReport } from '@xylabs/aries-datalake-client'\nimport { createDatalakeClient } from '@xylabs/aries-datalake-client'\nimport chalk from 'chalk'\n\nimport { printDatalakeDetail } from './formatters.ts'\nimport { mintAndConnect } from './payloads/mintAndConnect.ts'\nimport { resolveTarget } from './resolveTarget.ts'\n\nexport async function describeDatalake(idOrName: string | undefined): Promise<void> {\n const client = createDatalakeClient()\n const target = resolveTarget(idOrName)\n const descriptor = await client.describe(target)\n printDatalakeDetail(descriptor)\n\n if (descriptor.status !== 'ready') return\n\n // Best-effort live-quota probe against the data plane. Requires a viewer\n // token from the control plane; any failure is surfaced as a note, not\n // an error — `describe` still works without the data plane reachable.\n try {\n const connection = await mintAndConnect({ idOrName: target, role: 'viewer' })\n const usage = await connection.client.usage()\n printLiveUsage(usage)\n } catch (error) {\n console.log()\n console.log(chalk.gray(\n ` (live quota unavailable: ${error instanceof Error ? error.message : String(error)})`,\n ))\n }\n}\n\nfunction printLiveUsage(usage: DatalakeUsageReport): void {\n console.log()\n console.log(chalk.cyan(' live'))\n console.log(` ${chalk.gray('payloads:')} ${usage.payloadCount}`)\n const limits = usage.rateLimits\n if (limits?.authenticated) {\n const { remaining, limit } = limits.authenticated\n console.log(` ${chalk.gray('auth quota:')} ${remaining}/${limit}`)\n }\n if (limits?.anonymous) {\n const { remaining, limit } = limits.anonymous\n console.log(` ${chalk.gray('anon quota:')} ${remaining}/${limit}`)\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 { createDatalakeClient } from '@xylabs/aries-datalake-client'\nimport chalk from 'chalk'\n\nimport { resolveTarget } from './resolveTarget.ts'\n\nexport interface DestroyDatalakeOptions {\n idOrName?: string\n force?: boolean\n}\n\nexport async function destroyDatalake(options: DestroyDatalakeOptions): Promise<void> {\n const client = createDatalakeClient()\n const target = resolveTarget(options.idOrName)\n\n if (!options.force) {\n console.log(chalk.yellow(\n `Refusing to destroy ${target} without --force. `\n + 'This operation permanently deletes the datalake and all its payloads.',\n ))\n process.exitCode = 1\n return\n }\n\n await client.destroy(target)\n console.log(chalk.green(`destroyed ${target}`))\n}\n","import { createDatalakeClient } from '@xylabs/aries-datalake-client'\nimport type { DatalakePrincipal, DatalakeRole } from '@xylabs/aries-datalake-core'\nimport chalk from 'chalk'\n\nimport { printDatalakeDetail } from './formatters.ts'\nimport { resolveTarget } from './resolveTarget.ts'\n\nexport interface GrantAccessOptions {\n idOrName?: string\n principal: DatalakePrincipal\n role: DatalakeRole\n confirmPublic?: boolean\n}\n\nexport async function grantAccess(options: GrantAccessOptions): Promise<void> {\n const client = createDatalakeClient()\n const target = resolveTarget(options.idOrName)\n\n if (options.principal === 'public' && options.role === 'runner' && !options.confirmPublic) {\n console.log(chalk.yellow(\n 'Granting `public runner` makes anonymous writes possible. '\n + 'Re-run with --confirm-public to proceed.',\n ))\n process.exitCode = 1\n return\n }\n\n const descriptor = await client.describe(target)\n const updated = await client.grant({\n datalakeId: descriptor.id,\n principal: options.principal,\n role: options.role,\n })\n console.log(chalk.green(`granted ${options.role} to ${options.principal} on ${updated.name}`))\n printDatalakeDetail(updated)\n}\n","import { createDatalakeClient } from '@xylabs/aries-datalake-client'\nimport chalk from 'chalk'\n\nimport { printDatalakeRow } from './formatters.ts'\n\nexport async function listDatalakes(): Promise<void> {\n const client = createDatalakeClient()\n const datalakes = await client.list()\n\n if (datalakes.length === 0) {\n console.log(chalk.yellow('No datalakes yet. Create one with `aries datalake create <name>`.'))\n return\n }\n\n console.log(\n chalk.gray(' ')\n + chalk.gray('name'.padEnd(20))\n + ' '\n + chalk.gray('tier'.padEnd(8))\n + ' '\n + chalk.gray('region'.padEnd(12))\n + ' '\n + chalk.gray(' size')\n + ' '\n + chalk.gray('status'),\n )\n for (const datalake of datalakes) {\n printDatalakeRow(datalake)\n }\n}\n","import { saveCredentials } from '@xylabs/aries-datalake-client'\nimport chalk from 'chalk'\n\nexport interface LoginOptions {\n baseUrl?: string\n token?: string\n}\n\n/**\n * P0 stub: accepts a pre-issued token + base URL and writes credentials to\n * disk. The real OAuth device-flow ships in P1 alongside the control plane.\n */\nexport async function login(options: LoginOptions): Promise<void> {\n const baseUrl = options.baseUrl ?? process.env.ARIES_DATALAKE_API\n const token = options.token ?? process.env.ARIES_DATALAKE_TOKEN\n\n if (!baseUrl || !token) {\n console.log(chalk.yellow(\n 'P0 login requires --base-url and --token (or ARIES_DATALAKE_API + ARIES_DATALAKE_TOKEN). '\n + 'OAuth device-flow lands in P1.',\n ))\n process.exitCode = 1\n return\n }\n\n saveCredentials({ baseUrl, authToken: token })\n console.log(chalk.green(`credentials saved for ${baseUrl}`))\n}\n","import { clearCredentials } from '@xylabs/aries-datalake-client'\nimport chalk from 'chalk'\n\nexport async function logout(): Promise<void> {\n clearCredentials()\n console.log(chalk.green('signed out'))\n}\n","import { createDatalakeClient } from '@xylabs/aries-datalake-client'\nimport type { DatalakeRole } from '@xylabs/aries-datalake-core'\nimport chalk from 'chalk'\n\nimport { resolveTarget } from './resolveTarget.ts'\n\nexport interface MintTokenOptions {\n idOrName?: string\n role: DatalakeRole\n ttlSeconds?: number\n}\n\nexport async function mintToken(options: MintTokenOptions): Promise<void> {\n const client = createDatalakeClient()\n const target = resolveTarget(options.idOrName)\n const descriptor = await client.describe(target)\n const token = await client.mintToken({\n datalakeId: descriptor.id,\n role: options.role,\n ttlSeconds: options.ttlSeconds,\n })\n\n console.log(chalk.cyan('datalake token'))\n console.log(` ${chalk.gray('url:')} ${token.url}`)\n console.log(` ${chalk.gray('role:')} ${token.role}`)\n console.log(` ${chalk.gray('exp:')} ${token.expiresAt}`)\n console.log()\n console.log(token.token)\n}\n","import { createDatalakeClient } from '@xylabs/aries-datalake-client'\nimport type { DatalakePrincipal } from '@xylabs/aries-datalake-core'\nimport chalk from 'chalk'\n\nimport { printDatalakeDetail } from './formatters.ts'\nimport { resolveTarget } from './resolveTarget.ts'\n\nexport interface RevokeAccessOptions {\n idOrName?: string\n principal: DatalakePrincipal\n}\n\nexport async function revokeAccess(options: RevokeAccessOptions): Promise<void> {\n const client = createDatalakeClient()\n const target = resolveTarget(options.idOrName)\n const descriptor = await client.describe(target)\n const updated = await client.revoke({\n datalakeId: descriptor.id,\n principal: options.principal,\n })\n console.log(chalk.green(`revoked access for ${options.principal} on ${updated.name}`))\n printDatalakeDetail(updated)\n}\n","import {\n clearDefaultDatalake, createDatalakeClient, setDefaultDatalake,\n} from '@xylabs/aries-datalake-client'\nimport chalk from 'chalk'\n\nexport async function useDatalake(name: string | undefined): Promise<void> {\n if (!name) {\n clearDefaultDatalake()\n console.log(chalk.green('cleared default datalake'))\n return\n }\n\n const client = createDatalakeClient()\n const descriptor = await client.describe(name)\n setDefaultDatalake(descriptor.name, descriptor.id)\n console.log(chalk.green(`default datalake set to ${descriptor.name} (${descriptor.id})`))\n}\n"],"mappings":"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","names":["chalk","chalk","createDatalakeClient","chalk","createDatalakeClient","createDatalakeClient","createDatalakeClient","chalk","createDatalakeClient","chalk","createDatalakeClient","chalk","createDatalakeClient","chalk","createDatalakeClient","chalk","createDatalakeClient","chalk","createDatalakeClient","chalk","chalk","chalk","createDatalakeClient","chalk","createDatalakeClient","chalk","createDatalakeClient","chalk","createDatalakeClient","chalk","createDatalakeClient","chalk"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// src/actions/datalake/listDatalakes.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 printDatalakeRow(datalake) {
|
|
28
|
+
const size = datalake.config.sizeBytes ? formatBytes(datalake.config.sizeBytes) : "\u2014";
|
|
29
|
+
const name = chalk.white(datalake.name.padEnd(20));
|
|
30
|
+
const tier = chalk.cyan(datalake.config.tier.padEnd(8));
|
|
31
|
+
const region = chalk.gray((datalake.config.region ?? "\u2014").padEnd(12));
|
|
32
|
+
const status = formatStatus(datalake.status).padEnd(14);
|
|
33
|
+
console.log(` ${name} ${tier} ${region} ${size.padStart(8)} ${status}`);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// src/actions/datalake/listDatalakes.ts
|
|
37
|
+
async function listDatalakes() {
|
|
38
|
+
const client = createDatalakeClient();
|
|
39
|
+
const datalakes = await client.list();
|
|
40
|
+
if (datalakes.length === 0) {
|
|
41
|
+
console.log(chalk2.yellow("No datalakes yet. Create one with `aries datalake create <name>`."));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
console.log(
|
|
45
|
+
chalk2.gray(" ") + chalk2.gray("name".padEnd(20)) + " " + chalk2.gray("tier".padEnd(8)) + " " + chalk2.gray("region".padEnd(12)) + " " + chalk2.gray(" size") + " " + chalk2.gray("status")
|
|
46
|
+
);
|
|
47
|
+
for (const datalake of datalakes) {
|
|
48
|
+
printDatalakeRow(datalake);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export {
|
|
52
|
+
listDatalakes
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=listDatalakes.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/datalake/listDatalakes.ts","../../../src/actions/datalake/formatters.ts"],"sourcesContent":["import { createDatalakeClient } from '@xylabs/aries-datalake-client'\nimport chalk from 'chalk'\n\nimport { printDatalakeRow } from './formatters.ts'\n\nexport async function listDatalakes(): Promise<void> {\n const client = createDatalakeClient()\n const datalakes = await client.list()\n\n if (datalakes.length === 0) {\n console.log(chalk.yellow('No datalakes yet. Create one with `aries datalake create <name>`.'))\n return\n }\n\n console.log(\n chalk.gray(' ')\n + chalk.gray('name'.padEnd(20))\n + ' '\n + chalk.gray('tier'.padEnd(8))\n + ' '\n + chalk.gray('region'.padEnd(12))\n + ' '\n + chalk.gray(' size')\n + ' '\n + chalk.gray('status'),\n )\n for (const datalake of datalakes) {\n printDatalakeRow(datalake)\n }\n}\n","import type {\n DatalakeDescriptor, DatalakeStatus, DatalakeUsage, RateLimitOverrides,\n} from '@xylabs/aries-datalake-core'\nimport chalk from 'chalk'\n\nconst STATUS_COLORS: Record<DatalakeStatus, (s: string) => string> = {\n pending: chalk.gray,\n provisioning: chalk.yellow,\n ready: chalk.green,\n resizing: chalk.yellow,\n deprovisioning: chalk.yellow,\n deleted: chalk.gray,\n error: chalk.red,\n}\n\nexport function formatBytes(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`\n if (bytes < 1024 ** 2) return `${(bytes / 1024).toFixed(1)} KB`\n if (bytes < 1024 ** 3) return `${(bytes / 1024 ** 2).toFixed(1)} MB`\n if (bytes < 1024 ** 4) return `${(bytes / 1024 ** 3).toFixed(1)} GB`\n return `${(bytes / 1024 ** 4).toFixed(1)} TB`\n}\n\nexport function formatStatus(status: DatalakeStatus): string {\n const colorize = STATUS_COLORS[status] ?? chalk.white\n return colorize(status)\n}\n\nexport function printDatalakeRow(datalake: DatalakeDescriptor): void {\n const size = datalake.config.sizeBytes ? formatBytes(datalake.config.sizeBytes) : '—'\n const name = chalk.white(datalake.name.padEnd(20))\n const tier = chalk.cyan(datalake.config.tier.padEnd(8))\n const region = chalk.gray((datalake.config.region ?? '—').padEnd(12))\n const status = formatStatus(datalake.status).padEnd(14)\n console.log(` ${name} ${tier} ${region} ${size.padStart(8)} ${status}`)\n}\n\nfunction printRateLimits(limits: RateLimitOverrides): void {\n const parts: string[] = []\n if (limits.authenticatedPerMinute !== undefined) parts.push(`auth=${limits.authenticatedPerMinute}/min`)\n if (limits.anonymousPerMinute !== undefined) parts.push(`anon=${limits.anonymousPerMinute}/min`)\n if (limits.burstFactor !== undefined) parts.push(`burst=${limits.burstFactor}x`)\n if (parts.length > 0) {\n console.log(` ${chalk.gray('limits:')} ${parts.join(' ')}`)\n }\n}\n\nfunction printUsage(usage: DatalakeUsage): void {\n console.log()\n console.log(chalk.cyan(' usage'))\n console.log(` ${chalk.gray('payloads:')} ${usage.payloadCount}`)\n console.log(` ${chalk.gray('stored:')} ${formatBytes(usage.bytesStored)} / ${formatBytes(usage.bytesStoredLimit)}`)\n console.log(` ${chalk.gray('reads 24h:')} ${usage.readsLast24h}`)\n console.log(` ${chalk.gray('writes 24h:')} ${usage.writesLast24h}`)\n}\n\nfunction printAcl(acl: DatalakeDescriptor['acl']): void {\n if (acl.length === 0) return\n console.log()\n console.log(chalk.cyan(' access'))\n for (const entry of acl) {\n const principal = entry.principal === 'public' ? chalk.yellow('public') : entry.principal\n console.log(` ${principal.padEnd(24)} ${chalk.magenta(entry.role)} ${chalk.gray(entry.grantedAt)}`)\n }\n}\n\nexport function printDatalakeDetail(datalake: DatalakeDescriptor): void {\n console.log(chalk.cyan(`\\n${datalake.name}`))\n console.log(` ${chalk.gray('id:')} ${datalake.id}`)\n console.log(` ${chalk.gray('status:')} ${formatStatus(datalake.status)}`)\n if (datalake.url) {\n console.log(` ${chalk.gray('url:')} ${datalake.url}`)\n }\n console.log(` ${chalk.gray('owner:')} ${datalake.ownerId}`)\n console.log(` ${chalk.gray('tier:')} ${datalake.config.tier}`)\n console.log(` ${chalk.gray('region:')} ${datalake.config.region ?? '—'}`)\n console.log(` ${chalk.gray('size:')} ${datalake.config.sizeBytes ? formatBytes(datalake.config.sizeBytes) : '—'}`)\n console.log(` ${chalk.gray('iops:')} ${datalake.config.iops ?? '—'}`)\n console.log(` ${chalk.gray('retention:')} ${datalake.config.retentionDays ?? 'forever'}`)\n if (datalake.config.verifyHashes) {\n console.log(` ${chalk.gray('verify:')} ${chalk.green('hashes enforced')}`)\n }\n if (datalake.config.rateLimits) printRateLimits(datalake.config.rateLimits)\n console.log(` ${chalk.gray('created:')} ${datalake.createdAt}`)\n console.log(` ${chalk.gray('updated:')} ${datalake.updatedAt}`)\n if (datalake.usage) printUsage(datalake.usage)\n printAcl(datalake.acl)\n if (datalake.errorMessage) {\n console.log()\n console.log(` ${chalk.red('error:')} ${datalake.errorMessage}`)\n }\n}\n"],"mappings":";AAAA,SAAS,4BAA4B;AACrC,OAAOA,YAAW;;;ACElB,OAAO,WAAW;AAElB,IAAM,gBAA+D;AAAA,EACnE,SAAS,MAAM;AAAA,EACf,cAAc,MAAM;AAAA,EACpB,OAAO,MAAM;AAAA,EACb,UAAU,MAAM;AAAA,EAChB,gBAAgB,MAAM;AAAA,EACtB,SAAS,MAAM;AAAA,EACf,OAAO,MAAM;AACf;AAEO,SAAS,YAAY,OAAuB;AACjD,MAAI,QAAQ,KAAM,QAAO,GAAG,KAAK;AACjC,MAAI,QAAQ,QAAQ,EAAG,QAAO,IAAI,QAAQ,MAAM,QAAQ,CAAC,CAAC;AAC1D,MAAI,QAAQ,QAAQ,EAAG,QAAO,IAAI,QAAQ,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAC/D,MAAI,QAAQ,QAAQ,EAAG,QAAO,IAAI,QAAQ,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAC/D,SAAO,IAAI,QAAQ,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAC1C;AAEO,SAAS,aAAa,QAAgC;AAC3D,QAAM,WAAW,cAAc,MAAM,KAAK,MAAM;AAChD,SAAO,SAAS,MAAM;AACxB;AAEO,SAAS,iBAAiB,UAAoC;AACnE,QAAM,OAAO,SAAS,OAAO,YAAY,YAAY,SAAS,OAAO,SAAS,IAAI;AAClF,QAAM,OAAO,MAAM,MAAM,SAAS,KAAK,OAAO,EAAE,CAAC;AACjD,QAAM,OAAO,MAAM,KAAK,SAAS,OAAO,KAAK,OAAO,CAAC,CAAC;AACtD,QAAM,SAAS,MAAM,MAAM,SAAS,OAAO,UAAU,UAAK,OAAO,EAAE,CAAC;AACpE,QAAM,SAAS,aAAa,SAAS,MAAM,EAAE,OAAO,EAAE;AACtD,UAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,KAAK,SAAS,CAAC,CAAC,KAAK,MAAM,EAAE;AAC1E;;;AD9BA,eAAsB,gBAA+B;AACnD,QAAM,SAAS,qBAAqB;AACpC,QAAM,YAAY,MAAM,OAAO,KAAK;AAEpC,MAAI,UAAU,WAAW,GAAG;AAC1B,YAAQ,IAAIC,OAAM,OAAO,mEAAmE,CAAC;AAC7F;AAAA,EACF;AAEA,UAAQ;AAAA,IACNA,OAAM,KAAK,IAAI,IACbA,OAAM,KAAK,OAAO,OAAO,EAAE,CAAC,IAC5B,MACAA,OAAM,KAAK,OAAO,OAAO,CAAC,CAAC,IAC3B,MACAA,OAAM,KAAK,SAAS,OAAO,EAAE,CAAC,IAC9B,MACAA,OAAM,KAAK,UAAU,IACrB,OACAA,OAAM,KAAK,QAAQ;AAAA,EACvB;AACA,aAAW,YAAY,WAAW;AAChC,qBAAiB,QAAQ;AAAA,EAC3B;AACF;","names":["chalk","chalk"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// src/actions/datalake/login.ts
|
|
2
|
+
import { saveCredentials } from "@xylabs/aries-datalake-client";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
async function login(options) {
|
|
5
|
+
const baseUrl = options.baseUrl ?? process.env.ARIES_DATALAKE_API;
|
|
6
|
+
const token = options.token ?? process.env.ARIES_DATALAKE_TOKEN;
|
|
7
|
+
if (!baseUrl || !token) {
|
|
8
|
+
console.log(chalk.yellow(
|
|
9
|
+
"P0 login requires --base-url and --token (or ARIES_DATALAKE_API + ARIES_DATALAKE_TOKEN). OAuth device-flow lands in P1."
|
|
10
|
+
));
|
|
11
|
+
process.exitCode = 1;
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
saveCredentials({ baseUrl, authToken: token });
|
|
15
|
+
console.log(chalk.green(`credentials saved for ${baseUrl}`));
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
login
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=login.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/datalake/login.ts"],"sourcesContent":["import { saveCredentials } from '@xylabs/aries-datalake-client'\nimport chalk from 'chalk'\n\nexport interface LoginOptions {\n baseUrl?: string\n token?: string\n}\n\n/**\n * P0 stub: accepts a pre-issued token + base URL and writes credentials to\n * disk. The real OAuth device-flow ships in P1 alongside the control plane.\n */\nexport async function login(options: LoginOptions): Promise<void> {\n const baseUrl = options.baseUrl ?? process.env.ARIES_DATALAKE_API\n const token = options.token ?? process.env.ARIES_DATALAKE_TOKEN\n\n if (!baseUrl || !token) {\n console.log(chalk.yellow(\n 'P0 login requires --base-url and --token (or ARIES_DATALAKE_API + ARIES_DATALAKE_TOKEN). '\n + 'OAuth device-flow lands in P1.',\n ))\n process.exitCode = 1\n return\n }\n\n saveCredentials({ baseUrl, authToken: token })\n console.log(chalk.green(`credentials saved for ${baseUrl}`))\n}\n"],"mappings":";AAAA,SAAS,uBAAuB;AAChC,OAAO,WAAW;AAWlB,eAAsB,MAAM,SAAsC;AAChE,QAAM,UAAU,QAAQ,WAAW,QAAQ,IAAI;AAC/C,QAAM,QAAQ,QAAQ,SAAS,QAAQ,IAAI;AAE3C,MAAI,CAAC,WAAW,CAAC,OAAO;AACtB,YAAQ,IAAI,MAAM;AAAA,MAChB;AAAA,IAEF,CAAC;AACD,YAAQ,WAAW;AACnB;AAAA,EACF;AAEA,kBAAgB,EAAE,SAAS,WAAW,MAAM,CAAC;AAC7C,UAAQ,IAAI,MAAM,MAAM,yBAAyB,OAAO,EAAE,CAAC;AAC7D;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// src/actions/datalake/logout.ts
|
|
2
|
+
import { clearCredentials } from "@xylabs/aries-datalake-client";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
async function logout() {
|
|
5
|
+
clearCredentials();
|
|
6
|
+
console.log(chalk.green("signed out"));
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
logout
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=logout.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/datalake/logout.ts"],"sourcesContent":["import { clearCredentials } from '@xylabs/aries-datalake-client'\nimport chalk from 'chalk'\n\nexport async function logout(): Promise<void> {\n clearCredentials()\n console.log(chalk.green('signed out'))\n}\n"],"mappings":";AAAA,SAAS,wBAAwB;AACjC,OAAO,WAAW;AAElB,eAAsB,SAAwB;AAC5C,mBAAiB;AACjB,UAAQ,IAAI,MAAM,MAAM,YAAY,CAAC;AACvC;","names":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// src/actions/datalake/mintToken.ts
|
|
2
|
+
import { createDatalakeClient } from "@xylabs/aries-datalake-client";
|
|
3
|
+
import chalk from "chalk";
|
|
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/mintToken.ts
|
|
18
|
+
async function mintToken(options) {
|
|
19
|
+
const client = createDatalakeClient();
|
|
20
|
+
const target = resolveTarget(options.idOrName);
|
|
21
|
+
const descriptor = await client.describe(target);
|
|
22
|
+
const token = await client.mintToken({
|
|
23
|
+
datalakeId: descriptor.id,
|
|
24
|
+
role: options.role,
|
|
25
|
+
ttlSeconds: options.ttlSeconds
|
|
26
|
+
});
|
|
27
|
+
console.log(chalk.cyan("datalake token"));
|
|
28
|
+
console.log(` ${chalk.gray("url:")} ${token.url}`);
|
|
29
|
+
console.log(` ${chalk.gray("role:")} ${token.role}`);
|
|
30
|
+
console.log(` ${chalk.gray("exp:")} ${token.expiresAt}`);
|
|
31
|
+
console.log();
|
|
32
|
+
console.log(token.token);
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
mintToken
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=mintToken.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/datalake/mintToken.ts","../../../src/actions/datalake/resolveTarget.ts"],"sourcesContent":["import { createDatalakeClient } from '@xylabs/aries-datalake-client'\nimport type { DatalakeRole } from '@xylabs/aries-datalake-core'\nimport chalk from 'chalk'\n\nimport { resolveTarget } from './resolveTarget.ts'\n\nexport interface MintTokenOptions {\n idOrName?: string\n role: DatalakeRole\n ttlSeconds?: number\n}\n\nexport async function mintToken(options: MintTokenOptions): Promise<void> {\n const client = createDatalakeClient()\n const target = resolveTarget(options.idOrName)\n const descriptor = await client.describe(target)\n const token = await client.mintToken({\n datalakeId: descriptor.id,\n role: options.role,\n ttlSeconds: options.ttlSeconds,\n })\n\n console.log(chalk.cyan('datalake token'))\n console.log(` ${chalk.gray('url:')} ${token.url}`)\n console.log(` ${chalk.gray('role:')} ${token.role}`)\n console.log(` ${chalk.gray('exp:')} ${token.expiresAt}`)\n console.log()\n console.log(token.token)\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":";AAAA,SAAS,4BAA4B;AAErC,OAAO,WAAW;;;ACFlB,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;;;ADHA,eAAsB,UAAU,SAA0C;AACxE,QAAM,SAAS,qBAAqB;AACpC,QAAM,SAAS,cAAc,QAAQ,QAAQ;AAC7C,QAAM,aAAa,MAAM,OAAO,SAAS,MAAM;AAC/C,QAAM,QAAQ,MAAM,OAAO,UAAU;AAAA,IACnC,YAAY,WAAW;AAAA,IACvB,MAAM,QAAQ;AAAA,IACd,YAAY,QAAQ;AAAA,EACtB,CAAC;AAED,UAAQ,IAAI,MAAM,KAAK,gBAAgB,CAAC;AACxC,UAAQ,IAAI,KAAK,MAAM,KAAK,MAAM,CAAC,OAAO,MAAM,GAAG,EAAE;AACrD,UAAQ,IAAI,KAAK,MAAM,KAAK,OAAO,CAAC,MAAM,MAAM,IAAI,EAAE;AACtD,UAAQ,IAAI,KAAK,MAAM,KAAK,MAAM,CAAC,OAAO,MAAM,SAAS,EAAE;AAC3D,UAAQ,IAAI;AACZ,UAAQ,IAAI,MAAM,KAAK;AACzB;","names":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// src/actions/datalake/parseSize.ts
|
|
2
|
+
var SIZE_UNITS = {
|
|
3
|
+
b: 1,
|
|
4
|
+
kb: 1024,
|
|
5
|
+
mb: 1024 ** 2,
|
|
6
|
+
gb: 1024 ** 3,
|
|
7
|
+
tb: 1024 ** 4
|
|
8
|
+
};
|
|
9
|
+
function parseSize(input) {
|
|
10
|
+
const match = /^(\d+(?:\.\d+)?)\s*([a-zA-Z]+)?$/.exec(input.trim());
|
|
11
|
+
if (!match) throw new Error(`Invalid size: ${input}`);
|
|
12
|
+
const value = Number(match[1]);
|
|
13
|
+
const unitRaw = (match[2] ?? "b").toLowerCase();
|
|
14
|
+
const unit = SIZE_UNITS[unitRaw];
|
|
15
|
+
if (unit === void 0) throw new Error(`Unknown size unit: ${match[2]}`);
|
|
16
|
+
return Math.round(value * unit);
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
parseSize
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=parseSize.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/datalake/parseSize.ts"],"sourcesContent":["const SIZE_UNITS: Record<string, number> = {\n b: 1,\n kb: 1024,\n mb: 1024 ** 2,\n gb: 1024 ** 3,\n tb: 1024 ** 4,\n}\n\n/**\n * Parse human-readable sizes like \"10GB\", \"500MB\", \"1tb\" into bytes.\n * Throws on unrecognized input so the CLI surfaces a clear error.\n */\nexport function parseSize(input: string): number {\n const match = /^(\\d+(?:\\.\\d+)?)\\s*([a-zA-Z]+)?$/.exec(input.trim())\n if (!match) throw new Error(`Invalid size: ${input}`)\n const value = Number(match[1])\n const unitRaw = (match[2] ?? 'b').toLowerCase()\n const unit = SIZE_UNITS[unitRaw]\n if (unit === undefined) throw new Error(`Unknown size unit: ${match[2]}`)\n return Math.round(value * unit)\n}\n"],"mappings":";AAAA,IAAM,aAAqC;AAAA,EACzC,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,IAAI,QAAQ;AAAA,EACZ,IAAI,QAAQ;AAAA,EACZ,IAAI,QAAQ;AACd;AAMO,SAAS,UAAU,OAAuB;AAC/C,QAAM,QAAQ,mCAAmC,KAAK,MAAM,KAAK,CAAC;AAClE,MAAI,CAAC,MAAO,OAAM,IAAI,MAAM,iBAAiB,KAAK,EAAE;AACpD,QAAM,QAAQ,OAAO,MAAM,CAAC,CAAC;AAC7B,QAAM,WAAW,MAAM,CAAC,KAAK,KAAK,YAAY;AAC9C,QAAM,OAAO,WAAW,OAAO;AAC/B,MAAI,SAAS,OAAW,OAAM,IAAI,MAAM,sBAAsB,MAAM,CAAC,CAAC,EAAE;AACxE,SAAO,KAAK,MAAM,QAAQ,IAAI;AAChC;","names":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// src/actions/datalake/payloads/fetchPayload.ts
|
|
2
|
+
import { DatalakeApiError } 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/fetchPayload.ts
|
|
49
|
+
async function fetchPayload(options) {
|
|
50
|
+
const connection = await mintAndConnect({
|
|
51
|
+
idOrName: options.idOrName,
|
|
52
|
+
role: "viewer",
|
|
53
|
+
useXl1Sdk: options.xl1Sdk
|
|
54
|
+
});
|
|
55
|
+
try {
|
|
56
|
+
const payload = await connection.client.get(options.hash);
|
|
57
|
+
if (options.raw) {
|
|
58
|
+
process.stdout.write(`${JSON.stringify(payload)}
|
|
59
|
+
`);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
console.log(chalk.cyan(`${connection.datalakeName} / ${options.hash}`));
|
|
63
|
+
console.log(JSON.stringify(payload, void 0, 2));
|
|
64
|
+
} catch (error) {
|
|
65
|
+
if (error instanceof DatalakeApiError && error.code === "not_found") {
|
|
66
|
+
console.log(chalk.yellow(`payload not found: ${options.hash}`));
|
|
67
|
+
process.exitCode = 3;
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export {
|
|
74
|
+
fetchPayload
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=fetchPayload.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/datalake/payloads/fetchPayload.ts","../../../../src/actions/datalake/payloads/mintAndConnect.ts","../../../../src/actions/datalake/resolveTarget.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"],"mappings":";AAAA,SAAS,wBAAwB;AACjC,OAAO,WAAW;;;ACAlB,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;;;AD7CA,eAAsB,aAAa,SAA6C;AAC9E,QAAM,aAAa,MAAM,eAAe;AAAA,IACtC,UAAU,QAAQ;AAAA,IAAU,MAAM;AAAA,IAAU,WAAW,QAAQ;AAAA,EACjE,CAAC;AACD,MAAI;AACF,UAAM,UAAU,MAAM,WAAW,OAAO,IAAI,QAAQ,IAAI;AACxD,QAAI,QAAQ,KAAK;AACf,cAAQ,OAAO,MAAM,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,CAAI;AACnD;AAAA,IACF;AACA,YAAQ,IAAI,MAAM,KAAK,GAAG,WAAW,YAAY,MAAM,QAAQ,IAAI,EAAE,CAAC;AACtE,YAAQ,IAAI,KAAK,UAAU,SAAS,QAAW,CAAC,CAAC;AAAA,EACnD,SAAS,OAAO;AACd,QAAI,iBAAiB,oBAAoB,MAAM,SAAS,aAAa;AACnE,cAAQ,IAAI,MAAM,OAAO,sBAAsB,QAAQ,IAAI,EAAE,CAAC;AAC9D,cAAQ,WAAW;AACnB;AAAA,IACF;AACA,UAAM;AAAA,EACR;AACF;","names":[]}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
// src/actions/datalake/payloads/fetchPayload.ts
|
|
2
|
+
import { DatalakeApiError } 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/fetchPayload.ts
|
|
49
|
+
async function fetchPayload(options) {
|
|
50
|
+
const connection = await mintAndConnect({
|
|
51
|
+
idOrName: options.idOrName,
|
|
52
|
+
role: "viewer",
|
|
53
|
+
useXl1Sdk: options.xl1Sdk
|
|
54
|
+
});
|
|
55
|
+
try {
|
|
56
|
+
const payload = await connection.client.get(options.hash);
|
|
57
|
+
if (options.raw) {
|
|
58
|
+
process.stdout.write(`${JSON.stringify(payload)}
|
|
59
|
+
`);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
console.log(chalk.cyan(`${connection.datalakeName} / ${options.hash}`));
|
|
63
|
+
console.log(JSON.stringify(payload, void 0, 2));
|
|
64
|
+
} catch (error) {
|
|
65
|
+
if (error instanceof DatalakeApiError && error.code === "not_found") {
|
|
66
|
+
console.log(chalk.yellow(`payload not found: ${options.hash}`));
|
|
67
|
+
process.exitCode = 3;
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// src/actions/datalake/payloads/parsePayloadsFile.ts
|
|
75
|
+
import { readFileSync } from "fs";
|
|
76
|
+
import path from "path";
|
|
77
|
+
function parsePayloadsFile(filePath) {
|
|
78
|
+
const absolute = path.resolve(filePath);
|
|
79
|
+
const raw = readFileSync(absolute, "utf8");
|
|
80
|
+
const ext = path.extname(absolute).toLowerCase();
|
|
81
|
+
if (ext === ".jsonl" || ext === ".ndjson") {
|
|
82
|
+
return parseJsonl(raw);
|
|
83
|
+
}
|
|
84
|
+
if (ext === ".json") {
|
|
85
|
+
return parseJson(raw);
|
|
86
|
+
}
|
|
87
|
+
const trimmed = raw.trim();
|
|
88
|
+
if (trimmed.startsWith("{") && trimmed.endsWith("}") && trimmed.includes("\n{")) {
|
|
89
|
+
return parseJsonl(raw);
|
|
90
|
+
}
|
|
91
|
+
return parseJson(raw);
|
|
92
|
+
}
|
|
93
|
+
function parseJson(raw) {
|
|
94
|
+
const parsed = JSON.parse(raw);
|
|
95
|
+
const candidates = Array.isArray(parsed) ? parsed : isPayloadsEnvelope(parsed) ? parsed.payloads : void 0;
|
|
96
|
+
if (!candidates) {
|
|
97
|
+
throw new Error('Expected an array of payloads or { "payloads": [...] }');
|
|
98
|
+
}
|
|
99
|
+
const result = [];
|
|
100
|
+
for (const [index, candidate] of candidates.entries()) {
|
|
101
|
+
validatePayload(candidate, `index ${index}`);
|
|
102
|
+
result.push(candidate);
|
|
103
|
+
}
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
function parseJsonl(raw) {
|
|
107
|
+
const lines = raw.split("\n");
|
|
108
|
+
const payloads = [];
|
|
109
|
+
for (const [i, line_] of lines.entries()) {
|
|
110
|
+
const line = line_?.trim();
|
|
111
|
+
if (!line) continue;
|
|
112
|
+
let parsed;
|
|
113
|
+
try {
|
|
114
|
+
parsed = JSON.parse(line);
|
|
115
|
+
} catch (error) {
|
|
116
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
117
|
+
throw new Error(`Line ${i + 1}: invalid JSON (${message})`, { cause: error });
|
|
118
|
+
}
|
|
119
|
+
validatePayload(parsed, `line ${i + 1}`);
|
|
120
|
+
payloads.push(parsed);
|
|
121
|
+
}
|
|
122
|
+
return payloads;
|
|
123
|
+
}
|
|
124
|
+
function isPayloadsEnvelope(value) {
|
|
125
|
+
if (typeof value !== "object" || value === null) return false;
|
|
126
|
+
const record = value;
|
|
127
|
+
return Array.isArray(record.payloads);
|
|
128
|
+
}
|
|
129
|
+
function validatePayload(value, where) {
|
|
130
|
+
if (typeof value !== "object" || value === null) {
|
|
131
|
+
throw new Error(`${where}: not an object`);
|
|
132
|
+
}
|
|
133
|
+
const record = value;
|
|
134
|
+
if (typeof record.schema !== "string" || record.schema.length === 0) {
|
|
135
|
+
throw new Error(`${where}: missing or invalid \`schema\``);
|
|
136
|
+
}
|
|
137
|
+
if (typeof record.$hash !== "string" || record.$hash.length === 0) {
|
|
138
|
+
throw new Error(`${where}: missing or invalid \`$hash\``);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// src/actions/datalake/payloads/pushPayloads.ts
|
|
143
|
+
import { xyoVerifyPayloadHash } from "@xylabs/aries-datalake-core";
|
|
144
|
+
import chalk2 from "chalk";
|
|
145
|
+
var DEFAULT_BATCH_SIZE = 500;
|
|
146
|
+
function printRejectedList(label, hashes, cap, color) {
|
|
147
|
+
console.log(color(label));
|
|
148
|
+
for (const hash of hashes.slice(0, cap)) {
|
|
149
|
+
console.log(` ${hash}`);
|
|
150
|
+
}
|
|
151
|
+
if (hashes.length > cap) {
|
|
152
|
+
console.log(chalk2.gray(` ... and ${hashes.length - cap} more`));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async function verifyLocally(payloads) {
|
|
156
|
+
const mismatches = [];
|
|
157
|
+
for (const payload of payloads) {
|
|
158
|
+
if (!await xyoVerifyPayloadHash(payload)) mismatches.push(payload.$hash);
|
|
159
|
+
}
|
|
160
|
+
if (mismatches.length === 0) {
|
|
161
|
+
console.log(chalk2.gray(`verified ${payloads.length} payload hashes locally (XL1-canonical)`));
|
|
162
|
+
return true;
|
|
163
|
+
}
|
|
164
|
+
printRejectedList(
|
|
165
|
+
`refusing to push: ${mismatches.length} payload(s) have mismatched $hash`,
|
|
166
|
+
mismatches,
|
|
167
|
+
10,
|
|
168
|
+
chalk2.red
|
|
169
|
+
);
|
|
170
|
+
process.exitCode = 1;
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
async function pushPayloads(options) {
|
|
174
|
+
const payloads = parsePayloadsFile(options.file);
|
|
175
|
+
if (payloads.length === 0) {
|
|
176
|
+
console.log(chalk2.yellow(`${options.file} contained 0 payloads \u2014 nothing to push`));
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
if (options.verify && !await verifyLocally(payloads)) return;
|
|
180
|
+
const connection = await mintAndConnect({
|
|
181
|
+
idOrName: options.idOrName,
|
|
182
|
+
role: "runner",
|
|
183
|
+
useXl1Sdk: options.xl1Sdk
|
|
184
|
+
});
|
|
185
|
+
console.log(chalk2.gray(
|
|
186
|
+
`pushing ${payloads.length} payloads to ${connection.datalakeName} (${connection.datalakeId}) via ${connection.transport}...`
|
|
187
|
+
));
|
|
188
|
+
const batchSize = options.batchSize ?? DEFAULT_BATCH_SIZE;
|
|
189
|
+
let inserted = 0;
|
|
190
|
+
let duplicates = 0;
|
|
191
|
+
const rejected = [];
|
|
192
|
+
for (let offset = 0; offset < payloads.length; offset += batchSize) {
|
|
193
|
+
const batch = payloads.slice(offset, offset + batchSize);
|
|
194
|
+
const result = await connection.client.insert(batch);
|
|
195
|
+
inserted += result.inserted;
|
|
196
|
+
duplicates += result.duplicates;
|
|
197
|
+
rejected.push(...result.rejected);
|
|
198
|
+
}
|
|
199
|
+
console.log(chalk2.green(
|
|
200
|
+
`push complete: inserted=${inserted} duplicates=${duplicates} rejected=${rejected.length}`
|
|
201
|
+
));
|
|
202
|
+
if (rejected.length > 0) {
|
|
203
|
+
printRejectedList("rejected hashes:", rejected, 20, chalk2.yellow);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// src/actions/datalake/payloads/tailPayloads.ts
|
|
208
|
+
import chalk3 from "chalk";
|
|
209
|
+
var DEFAULT_LIMIT = 50;
|
|
210
|
+
var DEFAULT_POLL_MS = 1e3;
|
|
211
|
+
async function tailPayloads(options) {
|
|
212
|
+
const connection = await mintAndConnect({ idOrName: options.idOrName, role: "viewer" });
|
|
213
|
+
const limit = options.limit ?? DEFAULT_LIMIT;
|
|
214
|
+
let cursor = options.cursor;
|
|
215
|
+
let totalSeen = 0;
|
|
216
|
+
while (true) {
|
|
217
|
+
const page = await connection.client.next({
|
|
218
|
+
limit,
|
|
219
|
+
cursor,
|
|
220
|
+
schemas: options.schemas
|
|
221
|
+
});
|
|
222
|
+
for (const payload of page.payloads) {
|
|
223
|
+
printPayload(payload);
|
|
224
|
+
totalSeen += 1;
|
|
225
|
+
}
|
|
226
|
+
if (!options.follow) {
|
|
227
|
+
if (totalSeen === 0) {
|
|
228
|
+
console.log(chalk3.yellow(`${connection.datalakeName}: no payloads yet`));
|
|
229
|
+
}
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
if (page.payloads.length < limit) {
|
|
233
|
+
cursor = page.nextCursor ?? cursor;
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
236
|
+
cursor = page.nextCursor ?? cursor;
|
|
237
|
+
}
|
|
238
|
+
const pollIntervalMs = options.pollIntervalMs ?? DEFAULT_POLL_MS;
|
|
239
|
+
console.log(chalk3.gray(`following ${connection.datalakeName} (Ctrl+C to stop)`));
|
|
240
|
+
let polls = 0;
|
|
241
|
+
while (options.maxPolls === void 0 || polls < options.maxPolls) {
|
|
242
|
+
await delay(pollIntervalMs);
|
|
243
|
+
polls += 1;
|
|
244
|
+
const page = await connection.client.next({
|
|
245
|
+
limit,
|
|
246
|
+
cursor,
|
|
247
|
+
schemas: options.schemas
|
|
248
|
+
});
|
|
249
|
+
for (const payload of page.payloads) {
|
|
250
|
+
printPayload(payload);
|
|
251
|
+
totalSeen += 1;
|
|
252
|
+
}
|
|
253
|
+
if (page.nextCursor) cursor = page.nextCursor;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
function printPayload(payload) {
|
|
257
|
+
const timestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
258
|
+
console.log(`${chalk3.gray(timestamp)} ${chalk3.cyan(payload.$hash.slice(0, 12))} ${chalk3.magenta(payload.schema)}`);
|
|
259
|
+
console.log(` ${JSON.stringify(payload)}`);
|
|
260
|
+
}
|
|
261
|
+
function delay(ms) {
|
|
262
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
263
|
+
}
|
|
264
|
+
export {
|
|
265
|
+
fetchPayload,
|
|
266
|
+
mintAndConnect,
|
|
267
|
+
parsePayloadsFile,
|
|
268
|
+
pushPayloads,
|
|
269
|
+
tailPayloads
|
|
270
|
+
};
|
|
271
|
+
//# sourceMappingURL=index.mjs.map
|