@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.
- package/README.md +6 -688
- package/dist/aries.mjs +47 -8466
- package/package.json +15 -169
- package/dist/actions/audit/auditPaths.mjs +0 -22
- package/dist/actions/audit/auditPaths.mjs.map +0 -1
- package/dist/actions/audit/index.mjs +0 -739
- package/dist/actions/audit/index.mjs.map +0 -1
- package/dist/actions/audit/installPlugin.mjs +0 -298
- package/dist/actions/audit/installPlugin.mjs.map +0 -1
- package/dist/actions/audit/listSessions.mjs +0 -93
- package/dist/actions/audit/listSessions.mjs.map +0 -1
- package/dist/actions/audit/openAuditDir.mjs +0 -44
- package/dist/actions/audit/openAuditDir.mjs.map +0 -1
- package/dist/actions/audit/searchAudit.mjs +0 -77
- package/dist/actions/audit/searchAudit.mjs.map +0 -1
- package/dist/actions/audit/showAiMeta.mjs +0 -105
- package/dist/actions/audit/showAiMeta.mjs.map +0 -1
- package/dist/actions/audit/showSession.mjs +0 -105
- package/dist/actions/audit/showSession.mjs.map +0 -1
- package/dist/actions/audit/statusAudit.mjs +0 -98
- package/dist/actions/audit/statusAudit.mjs.map +0 -1
- package/dist/actions/clamp/clampAudit.mjs +0 -53
- package/dist/actions/clamp/clampAudit.mjs.map +0 -1
- package/dist/actions/clamp/index.mjs +0 -2258
- package/dist/actions/clamp/index.mjs.map +0 -1
- package/dist/actions/clamp/ipcServer.mjs +0 -55
- package/dist/actions/clamp/ipcServer.mjs.map +0 -1
- package/dist/actions/clamp/policyManagement.mjs +0 -144
- package/dist/actions/clamp/policyManagement.mjs.map +0 -1
- package/dist/actions/clamp/promptUser.mjs +0 -91
- package/dist/actions/clamp/promptUser.mjs.map +0 -1
- package/dist/actions/clamp/runClamped.mjs +0 -2107
- package/dist/actions/clamp/runClamped.mjs.map +0 -1
- package/dist/actions/clamp/sandboxExec.mjs +0 -1612
- package/dist/actions/clamp/sandboxExec.mjs.map +0 -1
- package/dist/actions/clamp/shellEnvSetup.mjs +0 -59
- package/dist/actions/clamp/shellEnvSetup.mjs.map +0 -1
- package/dist/actions/clamp/shimGenerator.mjs +0 -68
- package/dist/actions/clamp/shimGenerator.mjs.map +0 -1
- package/dist/actions/clamp/terminalRenderer.mjs +0 -145
- package/dist/actions/clamp/terminalRenderer.mjs.map +0 -1
- package/dist/actions/datalake/audit/auditLog.mjs +0 -191
- package/dist/actions/datalake/audit/auditLog.mjs.map +0 -1
- package/dist/actions/datalake/createDatalake.mjs +0 -127
- package/dist/actions/datalake/createDatalake.mjs.map +0 -1
- package/dist/actions/datalake/describeDatalake.mjs +0 -159
- package/dist/actions/datalake/describeDatalake.mjs.map +0 -1
- package/dist/actions/datalake/destroyDatalake.mjs +0 -34
- package/dist/actions/datalake/destroyDatalake.mjs.map +0 -1
- package/dist/actions/datalake/dev/downDevServer.mjs +0 -102
- package/dist/actions/datalake/dev/downDevServer.mjs.map +0 -1
- package/dist/actions/datalake/dev/index.mjs +0 -369
- package/dist/actions/datalake/dev/index.mjs.map +0 -1
- package/dist/actions/datalake/dev/logsDevServer.mjs +0 -44
- package/dist/actions/datalake/dev/logsDevServer.mjs.map +0 -1
- package/dist/actions/datalake/dev/paths.mjs +0 -25
- package/dist/actions/datalake/dev/paths.mjs.map +0 -1
- package/dist/actions/datalake/dev/resetDevServer.mjs +0 -118
- package/dist/actions/datalake/dev/resetDevServer.mjs.map +0 -1
- package/dist/actions/datalake/dev/resolveServerBin.mjs +0 -26
- package/dist/actions/datalake/dev/resolveServerBin.mjs.map +0 -1
- package/dist/actions/datalake/dev/state.mjs +0 -62
- package/dist/actions/datalake/dev/state.mjs.map +0 -1
- package/dist/actions/datalake/dev/statusDevServer.mjs +0 -101
- package/dist/actions/datalake/dev/statusDevServer.mjs.map +0 -1
- package/dist/actions/datalake/dev/upDevServer.mjs +0 -221
- package/dist/actions/datalake/dev/upDevServer.mjs.map +0 -1
- package/dist/actions/datalake/dev/waitForHealth.mjs +0 -22
- package/dist/actions/datalake/dev/waitForHealth.mjs.map +0 -1
- package/dist/actions/datalake/formatters.mjs +0 -90
- package/dist/actions/datalake/formatters.mjs.map +0 -1
- package/dist/actions/datalake/grantAccess.mjs +0 -116
- package/dist/actions/datalake/grantAccess.mjs.map +0 -1
- package/dist/actions/datalake/index.mjs +0 -361
- package/dist/actions/datalake/index.mjs.map +0 -1
- package/dist/actions/datalake/listDatalakes.mjs +0 -54
- package/dist/actions/datalake/listDatalakes.mjs.map +0 -1
- package/dist/actions/datalake/login.mjs +0 -20
- package/dist/actions/datalake/login.mjs.map +0 -1
- package/dist/actions/datalake/logout.mjs +0 -11
- package/dist/actions/datalake/logout.mjs.map +0 -1
- package/dist/actions/datalake/mintToken.mjs +0 -37
- package/dist/actions/datalake/mintToken.mjs.map +0 -1
- package/dist/actions/datalake/parseSize.mjs +0 -21
- package/dist/actions/datalake/parseSize.mjs.map +0 -1
- package/dist/actions/datalake/payloads/fetchPayload.mjs +0 -76
- package/dist/actions/datalake/payloads/fetchPayload.mjs.map +0 -1
- package/dist/actions/datalake/payloads/index.mjs +0 -271
- package/dist/actions/datalake/payloads/index.mjs.map +0 -1
- package/dist/actions/datalake/payloads/mintAndConnect.mjs +0 -46
- package/dist/actions/datalake/payloads/mintAndConnect.mjs.map +0 -1
- package/dist/actions/datalake/payloads/parsePayloadsFile.mjs +0 -71
- package/dist/actions/datalake/payloads/parsePayloadsFile.mjs.map +0 -1
- package/dist/actions/datalake/payloads/pushPayloads.mjs +0 -181
- package/dist/actions/datalake/payloads/pushPayloads.mjs.map +0 -1
- package/dist/actions/datalake/payloads/tailPayloads.mjs +0 -106
- package/dist/actions/datalake/payloads/tailPayloads.mjs.map +0 -1
- package/dist/actions/datalake/resolveTarget.mjs +0 -15
- package/dist/actions/datalake/resolveTarget.mjs.map +0 -1
- package/dist/actions/datalake/revokeAccess.mjs +0 -108
- package/dist/actions/datalake/revokeAccess.mjs.map +0 -1
- package/dist/actions/datalake/useDatalake.mjs +0 -22
- package/dist/actions/datalake/useDatalake.mjs.map +0 -1
- package/dist/actions/detect/detectAiClients.mjs +0 -405
- package/dist/actions/detect/detectAiClients.mjs.map +0 -1
- package/dist/actions/detect/index.mjs +0 -405
- package/dist/actions/detect/index.mjs.map +0 -1
- package/dist/actions/hash/algorithms/blockhash.mjs +0 -61
- package/dist/actions/hash/algorithms/blockhash.mjs.map +0 -1
- package/dist/actions/hash/algorithms/chromaprint.mjs +0 -205
- package/dist/actions/hash/algorithms/chromaprint.mjs.map +0 -1
- package/dist/actions/hash/algorithms/dhash.mjs +0 -75
- package/dist/actions/hash/algorithms/dhash.mjs.map +0 -1
- package/dist/actions/hash/algorithms/index.mjs +0 -818
- package/dist/actions/hash/algorithms/index.mjs.map +0 -1
- package/dist/actions/hash/algorithms/nilsimsa.mjs +0 -27
- package/dist/actions/hash/algorithms/nilsimsa.mjs.map +0 -1
- package/dist/actions/hash/algorithms/pdq.mjs +0 -83
- package/dist/actions/hash/algorithms/pdq.mjs.map +0 -1
- package/dist/actions/hash/algorithms/phash.mjs +0 -71
- package/dist/actions/hash/algorithms/phash.mjs.map +0 -1
- package/dist/actions/hash/algorithms/sha256.mjs +0 -24
- package/dist/actions/hash/algorithms/sha256.mjs.map +0 -1
- package/dist/actions/hash/algorithms/ssdeep.mjs +0 -203
- package/dist/actions/hash/algorithms/ssdeep.mjs.map +0 -1
- package/dist/actions/hash/algorithms/tlsh.mjs +0 -66
- package/dist/actions/hash/algorithms/tlsh.mjs.map +0 -1
- package/dist/actions/hash/algorithms/types.mjs +0 -1
- package/dist/actions/hash/algorithms/types.mjs.map +0 -1
- package/dist/actions/hash/algorithms/videoFrames.mjs +0 -404
- package/dist/actions/hash/algorithms/videoFrames.mjs.map +0 -1
- package/dist/actions/hash/algorithms/xyo.mjs +0 -30
- package/dist/actions/hash/algorithms/xyo.mjs.map +0 -1
- package/dist/actions/hash/compareHashes.mjs +0 -823
- package/dist/actions/hash/compareHashes.mjs.map +0 -1
- package/dist/actions/hash/hashInput.mjs +0 -868
- package/dist/actions/hash/hashInput.mjs.map +0 -1
- package/dist/actions/hash/index.mjs +0 -881
- package/dist/actions/hash/index.mjs.map +0 -1
- package/dist/actions/hash/lib/hamming.mjs +0 -44
- package/dist/actions/hash/lib/hamming.mjs.map +0 -1
- package/dist/actions/hash/lib/levenshtein.mjs +0 -36
- package/dist/actions/hash/lib/levenshtein.mjs.map +0 -1
- package/dist/actions/hash/lib/runBinary.mjs +0 -54
- package/dist/actions/hash/lib/runBinary.mjs.map +0 -1
- package/dist/actions/hash/lib/which.mjs +0 -36
- package/dist/actions/hash/lib/which.mjs.map +0 -1
- package/dist/actions/hash/lib/withTempfile.mjs +0 -19
- package/dist/actions/hash/lib/withTempfile.mjs.map +0 -1
- package/dist/actions/index.mjs +0 -4615
- package/dist/actions/index.mjs.map +0 -1
- package/dist/actions/printVersion.mjs +0 -12
- package/dist/actions/printVersion.mjs.map +0 -1
- package/dist/actions/sync/index.mjs +0 -51
- package/dist/actions/sync/index.mjs.map +0 -1
- package/dist/actions/sync/syncAiConfig.mjs +0 -51
- package/dist/actions/sync/syncAiConfig.mjs.map +0 -1
- package/dist/actions/wallet/account/deriveAndAdd.mjs +0 -394
- package/dist/actions/wallet/account/deriveAndAdd.mjs.map +0 -1
- package/dist/actions/wallet/account/getActiveWallet.mjs +0 -338
- package/dist/actions/wallet/account/getActiveWallet.mjs.map +0 -1
- package/dist/actions/wallet/account/labelAccount.mjs +0 -389
- package/dist/actions/wallet/account/labelAccount.mjs.map +0 -1
- package/dist/actions/wallet/account/listAccounts.mjs +0 -374
- package/dist/actions/wallet/account/listAccounts.mjs.map +0 -1
- package/dist/actions/wallet/account/removeAccount.mjs +0 -384
- package/dist/actions/wallet/account/removeAccount.mjs.map +0 -1
- package/dist/actions/wallet/account/showAccount.mjs +0 -368
- package/dist/actions/wallet/account/showAccount.mjs.map +0 -1
- package/dist/actions/wallet/addressBook/storage.mjs +0 -110
- package/dist/actions/wallet/addressBook/storage.mjs.map +0 -1
- package/dist/actions/wallet/backup/exportBackup.mjs +0 -93
- package/dist/actions/wallet/backup/exportBackup.mjs.map +0 -1
- package/dist/actions/wallet/backup/importBackup.mjs +0 -142
- package/dist/actions/wallet/backup/importBackup.mjs.map +0 -1
- package/dist/actions/wallet/balance/getBalance.mjs +0 -434
- package/dist/actions/wallet/balance/getBalance.mjs.map +0 -1
- package/dist/actions/wallet/client/walletClient.mjs +0 -64
- package/dist/actions/wallet/client/walletClient.mjs.map +0 -1
- package/dist/actions/wallet/contact/contactActions.mjs +0 -120
- package/dist/actions/wallet/contact/contactActions.mjs.map +0 -1
- package/dist/actions/wallet/contact/storage.mjs +0 -69
- package/dist/actions/wallet/contact/storage.mjs.map +0 -1
- package/dist/actions/wallet/index.mjs +0 -1439
- package/dist/actions/wallet/index.mjs.map +0 -1
- package/dist/actions/wallet/network/networkActions.mjs +0 -137
- package/dist/actions/wallet/network/networkActions.mjs.map +0 -1
- package/dist/actions/wallet/network/storage.mjs +0 -93
- package/dist/actions/wallet/network/storage.mjs.map +0 -1
- package/dist/actions/wallet/password/changePassword.mjs +0 -282
- package/dist/actions/wallet/password/changePassword.mjs.map +0 -1
- package/dist/actions/wallet/password/getActiveKey.mjs +0 -297
- package/dist/actions/wallet/password/getActiveKey.mjs.map +0 -1
- package/dist/actions/wallet/password/initOrUnlock.mjs +0 -337
- package/dist/actions/wallet/password/initOrUnlock.mjs.map +0 -1
- package/dist/actions/wallet/password/passwordStorage.mjs +0 -69
- package/dist/actions/wallet/password/passwordStorage.mjs.map +0 -1
- package/dist/actions/wallet/password/setPassword.mjs +0 -138
- package/dist/actions/wallet/password/setPassword.mjs.map +0 -1
- package/dist/actions/wallet/password/validatePassword.mjs +0 -123
- package/dist/actions/wallet/password/validatePassword.mjs.map +0 -1
- package/dist/actions/wallet/passwordKey.mjs +0 -87
- package/dist/actions/wallet/passwordKey.mjs.map +0 -1
- package/dist/actions/wallet/paths.mjs +0 -26
- package/dist/actions/wallet/paths.mjs.map +0 -1
- package/dist/actions/wallet/prompt.mjs +0 -93
- package/dist/actions/wallet/prompt.mjs.map +0 -1
- package/dist/actions/wallet/seedPhrase/createPhrase.mjs +0 -392
- package/dist/actions/wallet/seedPhrase/createPhrase.mjs.map +0 -1
- package/dist/actions/wallet/seedPhrase/exportPhrase.mjs +0 -334
- package/dist/actions/wallet/seedPhrase/exportPhrase.mjs.map +0 -1
- package/dist/actions/wallet/seedPhrase/idGen.mjs +0 -11
- package/dist/actions/wallet/seedPhrase/idGen.mjs.map +0 -1
- package/dist/actions/wallet/seedPhrase/importPhrase.mjs +0 -393
- package/dist/actions/wallet/seedPhrase/importPhrase.mjs.map +0 -1
- package/dist/actions/wallet/seedPhrase/listPhrases.mjs +0 -62
- package/dist/actions/wallet/seedPhrase/listPhrases.mjs.map +0 -1
- package/dist/actions/wallet/seedPhrase/phraseStorage.mjs +0 -89
- package/dist/actions/wallet/seedPhrase/phraseStorage.mjs.map +0 -1
- package/dist/actions/wallet/seedPhrase/removePhrase.mjs +0 -366
- package/dist/actions/wallet/seedPhrase/removePhrase.mjs.map +0 -1
- package/dist/actions/wallet/seedPhrase/renamePhrase.mjs +0 -78
- package/dist/actions/wallet/seedPhrase/renamePhrase.mjs.map +0 -1
- package/dist/actions/wallet/seedPhrase/types.mjs +0 -1
- package/dist/actions/wallet/seedPhrase/types.mjs.map +0 -1
- package/dist/actions/wallet/seedPhrase/usePhrase.mjs +0 -83
- package/dist/actions/wallet/seedPhrase/usePhrase.mjs.map +0 -1
- package/dist/actions/wallet/session/machineId.mjs +0 -145
- package/dist/actions/wallet/session/machineId.mjs.map +0 -1
- package/dist/actions/wallet/session/sessionCache.mjs +0 -221
- package/dist/actions/wallet/session/sessionCache.mjs.map +0 -1
- package/dist/actions/wallet/session/unlock.mjs +0 -307
- package/dist/actions/wallet/session/unlock.mjs.map +0 -1
- package/dist/actions/wallet/sign/signPayload.mjs +0 -637
- package/dist/actions/wallet/sign/signPayload.mjs.map +0 -1
- package/dist/actions/wallet/storage.mjs +0 -51
- package/dist/actions/wallet/storage.mjs.map +0 -1
- package/dist/actions/wallet/transaction/broadcastTransaction.mjs +0 -453
- package/dist/actions/wallet/transaction/broadcastTransaction.mjs.map +0 -1
- package/dist/actions/wallet/transaction/sendTransaction.mjs +0 -457
- package/dist/actions/wallet/transaction/sendTransaction.mjs.map +0 -1
- package/dist/actions/wallet/transaction/signTransactionFile.mjs +0 -378
- package/dist/actions/wallet/transaction/signTransactionFile.mjs.map +0 -1
- package/dist/actions/xyo/index.mjs +0 -138
- package/dist/actions/xyo/index.mjs.map +0 -1
- package/dist/actions/xyo/transaction/index.mjs +0 -138
- package/dist/actions/xyo/transaction/index.mjs.map +0 -1
- package/dist/actions/xyo/transaction/validateTransactions.mjs +0 -138
- package/dist/actions/xyo/transaction/validateTransactions.mjs.map +0 -1
- package/dist/aries.mjs.map +0 -1
- package/dist/bin/aries.mjs +0 -8472
- package/dist/bin/aries.mjs.map +0 -1
- package/dist/commands/aiCommand.mjs +0 -492
- package/dist/commands/aiCommand.mjs.map +0 -1
- package/dist/commands/auditAiCommand.mjs +0 -119
- package/dist/commands/auditAiCommand.mjs.map +0 -1
- package/dist/commands/auditCommand.mjs +0 -857
- package/dist/commands/auditCommand.mjs.map +0 -1
- package/dist/commands/auditInstallCommand.mjs +0 -324
- package/dist/commands/auditInstallCommand.mjs.map +0 -1
- package/dist/commands/auditListCommand.mjs +0 -107
- package/dist/commands/auditListCommand.mjs.map +0 -1
- package/dist/commands/auditOpenCommand.mjs +0 -51
- package/dist/commands/auditOpenCommand.mjs.map +0 -1
- package/dist/commands/auditSearchCommand.mjs +0 -98
- package/dist/commands/auditSearchCommand.mjs.map +0 -1
- package/dist/commands/auditShowCommand.mjs +0 -123
- package/dist/commands/auditShowCommand.mjs.map +0 -1
- package/dist/commands/auditStatusCommand.mjs +0 -105
- package/dist/commands/auditStatusCommand.mjs.map +0 -1
- package/dist/commands/clampCommand.mjs +0 -2328
- package/dist/commands/clampCommand.mjs.map +0 -1
- package/dist/commands/clampPolicyCommand.mjs +0 -184
- package/dist/commands/clampPolicyCommand.mjs.map +0 -1
- package/dist/commands/clampPolicyInitCommand.mjs +0 -63
- package/dist/commands/clampPolicyInitCommand.mjs.map +0 -1
- package/dist/commands/clampPolicyListCommand.mjs +0 -56
- package/dist/commands/clampPolicyListCommand.mjs.map +0 -1
- package/dist/commands/clampPolicyShowCommand.mjs +0 -83
- package/dist/commands/clampPolicyShowCommand.mjs.map +0 -1
- package/dist/commands/clampRunCommand.mjs +0 -2137
- package/dist/commands/clampRunCommand.mjs.map +0 -1
- package/dist/commands/datalakeAuditCommand.mjs +0 -273
- package/dist/commands/datalakeAuditCommand.mjs.map +0 -1
- package/dist/commands/datalakeCommand.mjs +0 -1637
- package/dist/commands/datalakeCommand.mjs.map +0 -1
- package/dist/commands/datalakeCreateCommand.mjs +0 -189
- package/dist/commands/datalakeCreateCommand.mjs.map +0 -1
- package/dist/commands/datalakeDescribeCommand.mjs +0 -172
- package/dist/commands/datalakeDescribeCommand.mjs.map +0 -1
- package/dist/commands/datalakeDestroyCommand.mjs +0 -53
- package/dist/commands/datalakeDestroyCommand.mjs.map +0 -1
- package/dist/commands/datalakeDevCommand.mjs +0 -470
- package/dist/commands/datalakeDevCommand.mjs.map +0 -1
- package/dist/commands/datalakeDevDownCommand.mjs +0 -111
- package/dist/commands/datalakeDevDownCommand.mjs.map +0 -1
- package/dist/commands/datalakeDevLogsCommand.mjs +0 -65
- package/dist/commands/datalakeDevLogsCommand.mjs.map +0 -1
- package/dist/commands/datalakeDevResetCommand.mjs +0 -125
- package/dist/commands/datalakeDevResetCommand.mjs.map +0 -1
- package/dist/commands/datalakeDevStatusCommand.mjs +0 -110
- package/dist/commands/datalakeDevStatusCommand.mjs.map +0 -1
- package/dist/commands/datalakeDevUpCommand.mjs +0 -268
- package/dist/commands/datalakeDevUpCommand.mjs.map +0 -1
- package/dist/commands/datalakeFetchCommand.mjs +0 -106
- package/dist/commands/datalakeFetchCommand.mjs.map +0 -1
- package/dist/commands/datalakeGrantCommand.mjs +0 -147
- package/dist/commands/datalakeGrantCommand.mjs.map +0 -1
- package/dist/commands/datalakeListCommand.mjs +0 -61
- package/dist/commands/datalakeListCommand.mjs.map +0 -1
- package/dist/commands/datalakeLoginCommand.mjs +0 -39
- package/dist/commands/datalakeLoginCommand.mjs.map +0 -1
- package/dist/commands/datalakeLogoutCommand.mjs +0 -20
- package/dist/commands/datalakeLogoutCommand.mjs.map +0 -1
- package/dist/commands/datalakePushCommand.mjs +0 -214
- package/dist/commands/datalakePushCommand.mjs.map +0 -1
- package/dist/commands/datalakeRevokeCommand.mjs +0 -127
- package/dist/commands/datalakeRevokeCommand.mjs.map +0 -1
- package/dist/commands/datalakeTailCommand.mjs +0 -144
- package/dist/commands/datalakeTailCommand.mjs.map +0 -1
- package/dist/commands/datalakeTokenCommand.mjs +0 -61
- package/dist/commands/datalakeTokenCommand.mjs.map +0 -1
- package/dist/commands/datalakeUseCommand.mjs +0 -35
- package/dist/commands/datalakeUseCommand.mjs.map +0 -1
- package/dist/commands/detectCommand.mjs +0 -419
- package/dist/commands/detectCommand.mjs.map +0 -1
- package/dist/commands/hashCommand.mjs +0 -976
- package/dist/commands/hashCommand.mjs.map +0 -1
- package/dist/commands/hashCompareCommand.mjs +0 -865
- package/dist/commands/hashCompareCommand.mjs.map +0 -1
- package/dist/commands/index.mjs +0 -8461
- package/dist/commands/index.mjs.map +0 -1
- package/dist/commands/syncCommand.mjs +0 -66
- package/dist/commands/syncCommand.mjs.map +0 -1
- package/dist/commands/versionCommand.mjs +0 -24
- package/dist/commands/versionCommand.mjs.map +0 -1
- package/dist/commands/walletAccountCommand.mjs +0 -536
- package/dist/commands/walletAccountCommand.mjs.map +0 -1
- package/dist/commands/walletAccountDeriveCommand.mjs +0 -415
- package/dist/commands/walletAccountDeriveCommand.mjs.map +0 -1
- package/dist/commands/walletAccountLabelCommand.mjs +0 -405
- package/dist/commands/walletAccountLabelCommand.mjs.map +0 -1
- package/dist/commands/walletAccountListCommand.mjs +0 -381
- package/dist/commands/walletAccountListCommand.mjs.map +0 -1
- package/dist/commands/walletAccountRemoveCommand.mjs +0 -396
- package/dist/commands/walletAccountRemoveCommand.mjs.map +0 -1
- package/dist/commands/walletAccountShowCommand.mjs +0 -380
- package/dist/commands/walletAccountShowCommand.mjs.map +0 -1
- package/dist/commands/walletBackupCommand.mjs +0 -222
- package/dist/commands/walletBackupCommand.mjs.map +0 -1
- package/dist/commands/walletBackupExportCommand.mjs +0 -107
- package/dist/commands/walletBackupExportCommand.mjs.map +0 -1
- package/dist/commands/walletBackupImportCommand.mjs +0 -154
- package/dist/commands/walletBackupImportCommand.mjs.map +0 -1
- package/dist/commands/walletBalanceCommand.mjs +0 -448
- package/dist/commands/walletBalanceCommand.mjs.map +0 -1
- package/dist/commands/walletCommand.mjs +0 -1968
- package/dist/commands/walletCommand.mjs.map +0 -1
- package/dist/commands/walletContactAddCommand.mjs +0 -111
- package/dist/commands/walletContactAddCommand.mjs.map +0 -1
- package/dist/commands/walletContactCommand.mjs +0 -184
- package/dist/commands/walletContactCommand.mjs.map +0 -1
- package/dist/commands/walletContactListCommand.mjs +0 -66
- package/dist/commands/walletContactListCommand.mjs.map +0 -1
- package/dist/commands/walletContactRemoveCommand.mjs +0 -97
- package/dist/commands/walletContactRemoveCommand.mjs.map +0 -1
- package/dist/commands/walletContactRenameCommand.mjs +0 -114
- package/dist/commands/walletContactRenameCommand.mjs.map +0 -1
- package/dist/commands/walletCreateCommand.mjs +0 -407
- package/dist/commands/walletCreateCommand.mjs.map +0 -1
- package/dist/commands/walletExportCommand.mjs +0 -345
- package/dist/commands/walletExportCommand.mjs.map +0 -1
- package/dist/commands/walletImportCommand.mjs +0 -413
- package/dist/commands/walletImportCommand.mjs.map +0 -1
- package/dist/commands/walletListCommand.mjs +0 -69
- package/dist/commands/walletListCommand.mjs.map +0 -1
- package/dist/commands/walletLockCommand.mjs +0 -56
- package/dist/commands/walletLockCommand.mjs.map +0 -1
- package/dist/commands/walletNetworkAddCommand.mjs +0 -131
- package/dist/commands/walletNetworkAddCommand.mjs.map +0 -1
- package/dist/commands/walletNetworkCommand.mjs +0 -206
- package/dist/commands/walletNetworkCommand.mjs.map +0 -1
- package/dist/commands/walletNetworkListCommand.mjs +0 -104
- package/dist/commands/walletNetworkListCommand.mjs.map +0 -1
- package/dist/commands/walletNetworkRemoveCommand.mjs +0 -112
- package/dist/commands/walletNetworkRemoveCommand.mjs.map +0 -1
- package/dist/commands/walletNetworkUseCommand.mjs +0 -110
- package/dist/commands/walletNetworkUseCommand.mjs.map +0 -1
- package/dist/commands/walletPasswordChangeCommand.mjs +0 -291
- package/dist/commands/walletPasswordChangeCommand.mjs.map +0 -1
- package/dist/commands/walletPasswordCommand.mjs +0 -301
- package/dist/commands/walletPasswordCommand.mjs.map +0 -1
- package/dist/commands/walletRemoveCommand.mjs +0 -378
- package/dist/commands/walletRemoveCommand.mjs.map +0 -1
- package/dist/commands/walletRenameCommand.mjs +0 -94
- package/dist/commands/walletRenameCommand.mjs.map +0 -1
- package/dist/commands/walletSignCommand.mjs +0 -662
- package/dist/commands/walletSignCommand.mjs.map +0 -1
- package/dist/commands/walletTxBroadcastCommand.mjs +0 -473
- package/dist/commands/walletTxBroadcastCommand.mjs.map +0 -1
- package/dist/commands/walletTxCommand.mjs +0 -612
- package/dist/commands/walletTxCommand.mjs.map +0 -1
- package/dist/commands/walletTxSendCommand.mjs +0 -492
- package/dist/commands/walletTxSendCommand.mjs.map +0 -1
- package/dist/commands/walletTxSignCommand.mjs +0 -403
- package/dist/commands/walletTxSignCommand.mjs.map +0 -1
- package/dist/commands/walletUnlockCommand.mjs +0 -308
- package/dist/commands/walletUnlockCommand.mjs.map +0 -1
- package/dist/commands/walletUseCommand.mjs +0 -95
- package/dist/commands/walletUseCommand.mjs.map +0 -1
- package/dist/commands/xyoCommand.mjs +0 -188
- package/dist/commands/xyoCommand.mjs.map +0 -1
- package/dist/commands/xyoTxCommand.mjs +0 -178
- package/dist/commands/xyoTxCommand.mjs.map +0 -1
- package/dist/commands/xyoTxValidateCommand.mjs +0 -168
- package/dist/commands/xyoTxValidateCommand.mjs.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.mjs +0 -8466
- package/dist/index.mjs.map +0 -1
- package/dist/types/modules.d.mjs +0 -1
- package/dist/types/modules.d.mjs.map +0 -1
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
// src/actions/xyo/transaction/validateTransactions.ts
|
|
2
|
-
import FS, { existsSync } from "fs";
|
|
3
|
-
import path from "path";
|
|
4
|
-
import { PayloadBuilder } from "@xyo-network/sdk-js";
|
|
5
|
-
import {
|
|
6
|
-
isHydratedTransaction,
|
|
7
|
-
isTransactionBoundWitness,
|
|
8
|
-
validateTransaction
|
|
9
|
-
} from "@xyo-network/xl1-sdk";
|
|
10
|
-
import chalk from "chalk";
|
|
11
|
-
function isRawTuple(value) {
|
|
12
|
-
return Array.isArray(value) && value.length === 2 && Array.isArray(value[1]);
|
|
13
|
-
}
|
|
14
|
-
function parseSingleOrBatch(raw, source) {
|
|
15
|
-
const parsed = JSON.parse(raw);
|
|
16
|
-
if (isRawTuple(parsed)) {
|
|
17
|
-
return [[parsed, source]];
|
|
18
|
-
}
|
|
19
|
-
if (Array.isArray(parsed) && parsed.length > 0 && parsed.every(isRawTuple)) {
|
|
20
|
-
return parsed.map((tx, i) => [tx, `${source}[${i}]`]);
|
|
21
|
-
}
|
|
22
|
-
throw new Error(`${source}: expected a transaction tuple [bw, payloads[]] or array of tuples`);
|
|
23
|
-
}
|
|
24
|
-
function parseJsonl(raw, source) {
|
|
25
|
-
const results = [];
|
|
26
|
-
for (const [i, rawLine] of raw.split("\n").entries()) {
|
|
27
|
-
const line = rawLine?.trim();
|
|
28
|
-
if (!line) continue;
|
|
29
|
-
let parsed;
|
|
30
|
-
try {
|
|
31
|
-
parsed = JSON.parse(line);
|
|
32
|
-
} catch (error) {
|
|
33
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
34
|
-
throw new Error(`${source} line ${i + 1}: invalid JSON (${msg})`, { cause: error });
|
|
35
|
-
}
|
|
36
|
-
if (!isRawTuple(parsed)) {
|
|
37
|
-
throw new Error(`${source} line ${i + 1}: expected a transaction tuple [bw, payloads[]]`);
|
|
38
|
-
}
|
|
39
|
-
results.push([parsed, `${source}:${i + 1}`]);
|
|
40
|
-
}
|
|
41
|
-
return results;
|
|
42
|
-
}
|
|
43
|
-
function parseInput(data) {
|
|
44
|
-
const absolute = path.resolve(data);
|
|
45
|
-
if (existsSync(absolute)) {
|
|
46
|
-
const raw = FS.readFileSync(absolute, "utf8");
|
|
47
|
-
const ext = path.extname(absolute).toLowerCase();
|
|
48
|
-
if (ext === ".jsonl" || ext === ".ndjson") {
|
|
49
|
-
return parseJsonl(raw, data);
|
|
50
|
-
}
|
|
51
|
-
return parseSingleOrBatch(raw, data);
|
|
52
|
-
}
|
|
53
|
-
return parseSingleOrBatch(data, "<inline>");
|
|
54
|
-
}
|
|
55
|
-
async function readStdin() {
|
|
56
|
-
return new Promise((resolve, reject) => {
|
|
57
|
-
let buf = "";
|
|
58
|
-
process.stdin.setEncoding("utf8");
|
|
59
|
-
process.stdin.on("data", (chunk) => {
|
|
60
|
-
buf += chunk;
|
|
61
|
-
});
|
|
62
|
-
process.stdin.on("end", () => resolve(buf));
|
|
63
|
-
process.stdin.on("error", reject);
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
async function validateOne(raw, source, index) {
|
|
67
|
-
const [bwRaw, payloadsRaw] = raw;
|
|
68
|
-
const errors = [];
|
|
69
|
-
if (!isTransactionBoundWitness(bwRaw)) {
|
|
70
|
-
return {
|
|
71
|
-
errors: ["not a valid transaction BoundWitness"],
|
|
72
|
-
index,
|
|
73
|
-
source,
|
|
74
|
-
valid: false
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
try {
|
|
78
|
-
const bwWithMeta = await PayloadBuilder.addHashMeta(bwRaw);
|
|
79
|
-
const payloadsWithMeta = await Promise.all(
|
|
80
|
-
payloadsRaw.map((p) => PayloadBuilder.addHashMeta(p))
|
|
81
|
-
);
|
|
82
|
-
const tx = [bwWithMeta, payloadsWithMeta];
|
|
83
|
-
if (isHydratedTransaction(tx)) {
|
|
84
|
-
const chainId = bwRaw.chain;
|
|
85
|
-
const txErrors = await validateTransaction({ chainId }, tx);
|
|
86
|
-
for (const err of txErrors) {
|
|
87
|
-
errors.push(String(err));
|
|
88
|
-
}
|
|
89
|
-
} else {
|
|
90
|
-
errors.push("transaction failed structural shape check (isHydratedTransaction)");
|
|
91
|
-
}
|
|
92
|
-
} catch (ex) {
|
|
93
|
-
errors.push(`Validation threw: ${ex instanceof Error ? ex.message : String(ex)}`);
|
|
94
|
-
}
|
|
95
|
-
return {
|
|
96
|
-
errors,
|
|
97
|
-
index,
|
|
98
|
-
source,
|
|
99
|
-
valid: errors.length === 0
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
async function validateTransactions(options) {
|
|
103
|
-
let rawTransactions;
|
|
104
|
-
if (options.data !== void 0) {
|
|
105
|
-
rawTransactions = parseInput(options.data);
|
|
106
|
-
} else if (process.stdin.isTTY) {
|
|
107
|
-
console.error(chalk.red("No input: provide a file path, inline JSON, or pipe data to stdin."));
|
|
108
|
-
process.exitCode = 1;
|
|
109
|
-
return;
|
|
110
|
-
} else {
|
|
111
|
-
const stdin = await readStdin();
|
|
112
|
-
rawTransactions = parseSingleOrBatch(stdin.trim(), "<stdin>");
|
|
113
|
-
}
|
|
114
|
-
const results = await Promise.all(rawTransactions.map(([tx, source], i) => validateOne(tx, source, i)));
|
|
115
|
-
const validCount = results.filter((r) => r.valid).length;
|
|
116
|
-
const invalidCount = results.filter((r) => !r.valid).length;
|
|
117
|
-
console.log(`Total: ${results.length}`);
|
|
118
|
-
console.log(chalk.green(`Valid: ${validCount}`));
|
|
119
|
-
if (invalidCount > 0) {
|
|
120
|
-
console.log(chalk.red(`Invalid: ${invalidCount}`));
|
|
121
|
-
}
|
|
122
|
-
if (options.detail === true || invalidCount > 0) {
|
|
123
|
-
for (const result of results.filter((r) => !r.valid)) {
|
|
124
|
-
console.log(chalk.red(`
|
|
125
|
-
[${result.index}] ${result.source}`));
|
|
126
|
-
for (const err of result.errors) {
|
|
127
|
-
console.log(chalk.red(` - ${err}`));
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
if (invalidCount > 0) {
|
|
132
|
-
process.exitCode = 1;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
export {
|
|
136
|
-
validateTransactions
|
|
137
|
-
};
|
|
138
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/actions/xyo/transaction/validateTransactions.ts"],"sourcesContent":["import FS, { existsSync } from 'node:fs'\nimport path from 'node:path'\n\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type { HydratedTransactionWithHashMeta } from '@xyo-network/xl1-sdk'\nimport {\n isHydratedTransaction,\n isTransactionBoundWitness,\n validateTransaction,\n} from '@xyo-network/xl1-sdk'\nimport chalk from 'chalk'\n\nexport interface ValidateTransactionsOptions {\n data?: string\n detail?: boolean\n}\n\ninterface ValidationResult {\n errors: string[]\n index: number\n source: string\n valid: boolean\n}\n\ntype RawTuple = [unknown, unknown[]]\n\nfunction isRawTuple(value: unknown): value is RawTuple {\n return Array.isArray(value) && value.length === 2 && Array.isArray(value[1])\n}\n\nfunction parseSingleOrBatch(raw: string, source: string): [RawTuple, string][] {\n const parsed: unknown = JSON.parse(raw)\n if (isRawTuple(parsed)) {\n return [[parsed, source]]\n }\n if (Array.isArray(parsed) && parsed.length > 0 && parsed.every(isRawTuple)) {\n return parsed.map((tx, i) => [tx, `${source}[${i}]`])\n }\n throw new Error(`${source}: expected a transaction tuple [bw, payloads[]] or array of tuples`)\n}\n\nfunction parseJsonl(raw: string, source: string): [RawTuple, string][] {\n const results: [RawTuple, string][] = []\n for (const [i, rawLine] of raw.split('\\n').entries()) {\n const line = rawLine?.trim()\n if (!line) continue\n let parsed: unknown\n try {\n parsed = JSON.parse(line)\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error)\n throw new Error(`${source} line ${i + 1}: invalid JSON (${msg})`, { cause: error })\n }\n if (!isRawTuple(parsed)) {\n throw new Error(`${source} line ${i + 1}: expected a transaction tuple [bw, payloads[]]`)\n }\n results.push([parsed, `${source}:${i + 1}`])\n }\n return results\n}\n\nfunction parseInput(data: string): [RawTuple, string][] {\n const absolute = path.resolve(data)\n if (existsSync(absolute)) {\n const raw = FS.readFileSync(absolute, 'utf8')\n const ext = path.extname(absolute).toLowerCase()\n if (ext === '.jsonl' || ext === '.ndjson') {\n return parseJsonl(raw, data)\n }\n return parseSingleOrBatch(raw, data)\n }\n return parseSingleOrBatch(data, '<inline>')\n}\n\nasync function readStdin(): Promise<string> {\n return new Promise((resolve, reject) => {\n let buf = ''\n process.stdin.setEncoding('utf8')\n process.stdin.on('data', (chunk: string) => {\n buf += chunk\n })\n process.stdin.on('end', () => resolve(buf))\n process.stdin.on('error', reject)\n })\n}\n\nasync function validateOne(raw: RawTuple, source: string, index: number): Promise<ValidationResult> {\n const [bwRaw, payloadsRaw] = raw\n const errors: string[] = []\n\n if (!isTransactionBoundWitness(bwRaw)) {\n return {\n errors: ['not a valid transaction BoundWitness'],\n index,\n source,\n valid: false,\n }\n }\n\n try {\n const bwWithMeta = await PayloadBuilder.addHashMeta(bwRaw as Payload)\n const payloadsWithMeta = await Promise.all(\n (payloadsRaw as Payload[]).map(p => PayloadBuilder.addHashMeta(p)),\n )\n const tx = [bwWithMeta, payloadsWithMeta] as unknown as HydratedTransactionWithHashMeta\n\n if (isHydratedTransaction(tx)) {\n const chainId = bwRaw.chain as string\n const txErrors = await validateTransaction({ chainId } as never, tx)\n for (const err of txErrors) {\n errors.push(String(err))\n }\n } else {\n errors.push('transaction failed structural shape check (isHydratedTransaction)')\n }\n } catch (ex) {\n errors.push(`Validation threw: ${ex instanceof Error ? ex.message : String(ex)}`)\n }\n\n return {\n errors,\n index,\n source,\n valid: errors.length === 0,\n }\n}\n\nexport async function validateTransactions(options: ValidateTransactionsOptions): Promise<void> {\n let rawTransactions: [RawTuple, string][]\n\n if (options.data !== undefined) {\n rawTransactions = parseInput(options.data)\n } else if (process.stdin.isTTY) {\n console.error(chalk.red('No input: provide a file path, inline JSON, or pipe data to stdin.'))\n process.exitCode = 1\n return\n } else {\n const stdin = await readStdin()\n rawTransactions = parseSingleOrBatch(stdin.trim(), '<stdin>')\n }\n\n const results = await Promise.all(rawTransactions.map(([tx, source], i) => validateOne(tx, source, i)))\n\n const validCount = results.filter(r => r.valid).length\n const invalidCount = results.filter(r => !r.valid).length\n\n console.log(`Total: ${results.length}`)\n console.log(chalk.green(`Valid: ${validCount}`))\n if (invalidCount > 0) {\n console.log(chalk.red(`Invalid: ${invalidCount}`))\n }\n\n if (options.detail === true || invalidCount > 0) {\n for (const result of results.filter(r => !r.valid)) {\n console.log(chalk.red(`\\n[${result.index}] ${result.source}`))\n for (const err of result.errors) {\n console.log(chalk.red(` - ${err}`))\n }\n }\n }\n\n if (invalidCount > 0) {\n process.exitCode = 1\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
// src/actions/xyo/transaction/validateTransactions.ts
|
|
2
|
-
import FS, { existsSync } from "fs";
|
|
3
|
-
import path from "path";
|
|
4
|
-
import { PayloadBuilder } from "@xyo-network/sdk-js";
|
|
5
|
-
import {
|
|
6
|
-
isHydratedTransaction,
|
|
7
|
-
isTransactionBoundWitness,
|
|
8
|
-
validateTransaction
|
|
9
|
-
} from "@xyo-network/xl1-sdk";
|
|
10
|
-
import chalk from "chalk";
|
|
11
|
-
function isRawTuple(value) {
|
|
12
|
-
return Array.isArray(value) && value.length === 2 && Array.isArray(value[1]);
|
|
13
|
-
}
|
|
14
|
-
function parseSingleOrBatch(raw, source) {
|
|
15
|
-
const parsed = JSON.parse(raw);
|
|
16
|
-
if (isRawTuple(parsed)) {
|
|
17
|
-
return [[parsed, source]];
|
|
18
|
-
}
|
|
19
|
-
if (Array.isArray(parsed) && parsed.length > 0 && parsed.every(isRawTuple)) {
|
|
20
|
-
return parsed.map((tx, i) => [tx, `${source}[${i}]`]);
|
|
21
|
-
}
|
|
22
|
-
throw new Error(`${source}: expected a transaction tuple [bw, payloads[]] or array of tuples`);
|
|
23
|
-
}
|
|
24
|
-
function parseJsonl(raw, source) {
|
|
25
|
-
const results = [];
|
|
26
|
-
for (const [i, rawLine] of raw.split("\n").entries()) {
|
|
27
|
-
const line = rawLine?.trim();
|
|
28
|
-
if (!line) continue;
|
|
29
|
-
let parsed;
|
|
30
|
-
try {
|
|
31
|
-
parsed = JSON.parse(line);
|
|
32
|
-
} catch (error) {
|
|
33
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
34
|
-
throw new Error(`${source} line ${i + 1}: invalid JSON (${msg})`, { cause: error });
|
|
35
|
-
}
|
|
36
|
-
if (!isRawTuple(parsed)) {
|
|
37
|
-
throw new Error(`${source} line ${i + 1}: expected a transaction tuple [bw, payloads[]]`);
|
|
38
|
-
}
|
|
39
|
-
results.push([parsed, `${source}:${i + 1}`]);
|
|
40
|
-
}
|
|
41
|
-
return results;
|
|
42
|
-
}
|
|
43
|
-
function parseInput(data) {
|
|
44
|
-
const absolute = path.resolve(data);
|
|
45
|
-
if (existsSync(absolute)) {
|
|
46
|
-
const raw = FS.readFileSync(absolute, "utf8");
|
|
47
|
-
const ext = path.extname(absolute).toLowerCase();
|
|
48
|
-
if (ext === ".jsonl" || ext === ".ndjson") {
|
|
49
|
-
return parseJsonl(raw, data);
|
|
50
|
-
}
|
|
51
|
-
return parseSingleOrBatch(raw, data);
|
|
52
|
-
}
|
|
53
|
-
return parseSingleOrBatch(data, "<inline>");
|
|
54
|
-
}
|
|
55
|
-
async function readStdin() {
|
|
56
|
-
return new Promise((resolve, reject) => {
|
|
57
|
-
let buf = "";
|
|
58
|
-
process.stdin.setEncoding("utf8");
|
|
59
|
-
process.stdin.on("data", (chunk) => {
|
|
60
|
-
buf += chunk;
|
|
61
|
-
});
|
|
62
|
-
process.stdin.on("end", () => resolve(buf));
|
|
63
|
-
process.stdin.on("error", reject);
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
async function validateOne(raw, source, index) {
|
|
67
|
-
const [bwRaw, payloadsRaw] = raw;
|
|
68
|
-
const errors = [];
|
|
69
|
-
if (!isTransactionBoundWitness(bwRaw)) {
|
|
70
|
-
return {
|
|
71
|
-
errors: ["not a valid transaction BoundWitness"],
|
|
72
|
-
index,
|
|
73
|
-
source,
|
|
74
|
-
valid: false
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
try {
|
|
78
|
-
const bwWithMeta = await PayloadBuilder.addHashMeta(bwRaw);
|
|
79
|
-
const payloadsWithMeta = await Promise.all(
|
|
80
|
-
payloadsRaw.map((p) => PayloadBuilder.addHashMeta(p))
|
|
81
|
-
);
|
|
82
|
-
const tx = [bwWithMeta, payloadsWithMeta];
|
|
83
|
-
if (isHydratedTransaction(tx)) {
|
|
84
|
-
const chainId = bwRaw.chain;
|
|
85
|
-
const txErrors = await validateTransaction({ chainId }, tx);
|
|
86
|
-
for (const err of txErrors) {
|
|
87
|
-
errors.push(String(err));
|
|
88
|
-
}
|
|
89
|
-
} else {
|
|
90
|
-
errors.push("transaction failed structural shape check (isHydratedTransaction)");
|
|
91
|
-
}
|
|
92
|
-
} catch (ex) {
|
|
93
|
-
errors.push(`Validation threw: ${ex instanceof Error ? ex.message : String(ex)}`);
|
|
94
|
-
}
|
|
95
|
-
return {
|
|
96
|
-
errors,
|
|
97
|
-
index,
|
|
98
|
-
source,
|
|
99
|
-
valid: errors.length === 0
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
async function validateTransactions(options) {
|
|
103
|
-
let rawTransactions;
|
|
104
|
-
if (options.data !== void 0) {
|
|
105
|
-
rawTransactions = parseInput(options.data);
|
|
106
|
-
} else if (process.stdin.isTTY) {
|
|
107
|
-
console.error(chalk.red("No input: provide a file path, inline JSON, or pipe data to stdin."));
|
|
108
|
-
process.exitCode = 1;
|
|
109
|
-
return;
|
|
110
|
-
} else {
|
|
111
|
-
const stdin = await readStdin();
|
|
112
|
-
rawTransactions = parseSingleOrBatch(stdin.trim(), "<stdin>");
|
|
113
|
-
}
|
|
114
|
-
const results = await Promise.all(rawTransactions.map(([tx, source], i) => validateOne(tx, source, i)));
|
|
115
|
-
const validCount = results.filter((r) => r.valid).length;
|
|
116
|
-
const invalidCount = results.filter((r) => !r.valid).length;
|
|
117
|
-
console.log(`Total: ${results.length}`);
|
|
118
|
-
console.log(chalk.green(`Valid: ${validCount}`));
|
|
119
|
-
if (invalidCount > 0) {
|
|
120
|
-
console.log(chalk.red(`Invalid: ${invalidCount}`));
|
|
121
|
-
}
|
|
122
|
-
if (options.detail === true || invalidCount > 0) {
|
|
123
|
-
for (const result of results.filter((r) => !r.valid)) {
|
|
124
|
-
console.log(chalk.red(`
|
|
125
|
-
[${result.index}] ${result.source}`));
|
|
126
|
-
for (const err of result.errors) {
|
|
127
|
-
console.log(chalk.red(` - ${err}`));
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
if (invalidCount > 0) {
|
|
132
|
-
process.exitCode = 1;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
export {
|
|
136
|
-
validateTransactions
|
|
137
|
-
};
|
|
138
|
-
//# sourceMappingURL=validateTransactions.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/actions/xyo/transaction/validateTransactions.ts"],"sourcesContent":["import FS, { existsSync } from 'node:fs'\nimport path from 'node:path'\n\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type { HydratedTransactionWithHashMeta } from '@xyo-network/xl1-sdk'\nimport {\n isHydratedTransaction,\n isTransactionBoundWitness,\n validateTransaction,\n} from '@xyo-network/xl1-sdk'\nimport chalk from 'chalk'\n\nexport interface ValidateTransactionsOptions {\n data?: string\n detail?: boolean\n}\n\ninterface ValidationResult {\n errors: string[]\n index: number\n source: string\n valid: boolean\n}\n\ntype RawTuple = [unknown, unknown[]]\n\nfunction isRawTuple(value: unknown): value is RawTuple {\n return Array.isArray(value) && value.length === 2 && Array.isArray(value[1])\n}\n\nfunction parseSingleOrBatch(raw: string, source: string): [RawTuple, string][] {\n const parsed: unknown = JSON.parse(raw)\n if (isRawTuple(parsed)) {\n return [[parsed, source]]\n }\n if (Array.isArray(parsed) && parsed.length > 0 && parsed.every(isRawTuple)) {\n return parsed.map((tx, i) => [tx, `${source}[${i}]`])\n }\n throw new Error(`${source}: expected a transaction tuple [bw, payloads[]] or array of tuples`)\n}\n\nfunction parseJsonl(raw: string, source: string): [RawTuple, string][] {\n const results: [RawTuple, string][] = []\n for (const [i, rawLine] of raw.split('\\n').entries()) {\n const line = rawLine?.trim()\n if (!line) continue\n let parsed: unknown\n try {\n parsed = JSON.parse(line)\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error)\n throw new Error(`${source} line ${i + 1}: invalid JSON (${msg})`, { cause: error })\n }\n if (!isRawTuple(parsed)) {\n throw new Error(`${source} line ${i + 1}: expected a transaction tuple [bw, payloads[]]`)\n }\n results.push([parsed, `${source}:${i + 1}`])\n }\n return results\n}\n\nfunction parseInput(data: string): [RawTuple, string][] {\n const absolute = path.resolve(data)\n if (existsSync(absolute)) {\n const raw = FS.readFileSync(absolute, 'utf8')\n const ext = path.extname(absolute).toLowerCase()\n if (ext === '.jsonl' || ext === '.ndjson') {\n return parseJsonl(raw, data)\n }\n return parseSingleOrBatch(raw, data)\n }\n return parseSingleOrBatch(data, '<inline>')\n}\n\nasync function readStdin(): Promise<string> {\n return new Promise((resolve, reject) => {\n let buf = ''\n process.stdin.setEncoding('utf8')\n process.stdin.on('data', (chunk: string) => {\n buf += chunk\n })\n process.stdin.on('end', () => resolve(buf))\n process.stdin.on('error', reject)\n })\n}\n\nasync function validateOne(raw: RawTuple, source: string, index: number): Promise<ValidationResult> {\n const [bwRaw, payloadsRaw] = raw\n const errors: string[] = []\n\n if (!isTransactionBoundWitness(bwRaw)) {\n return {\n errors: ['not a valid transaction BoundWitness'],\n index,\n source,\n valid: false,\n }\n }\n\n try {\n const bwWithMeta = await PayloadBuilder.addHashMeta(bwRaw as Payload)\n const payloadsWithMeta = await Promise.all(\n (payloadsRaw as Payload[]).map(p => PayloadBuilder.addHashMeta(p)),\n )\n const tx = [bwWithMeta, payloadsWithMeta] as unknown as HydratedTransactionWithHashMeta\n\n if (isHydratedTransaction(tx)) {\n const chainId = bwRaw.chain as string\n const txErrors = await validateTransaction({ chainId } as never, tx)\n for (const err of txErrors) {\n errors.push(String(err))\n }\n } else {\n errors.push('transaction failed structural shape check (isHydratedTransaction)')\n }\n } catch (ex) {\n errors.push(`Validation threw: ${ex instanceof Error ? ex.message : String(ex)}`)\n }\n\n return {\n errors,\n index,\n source,\n valid: errors.length === 0,\n }\n}\n\nexport async function validateTransactions(options: ValidateTransactionsOptions): Promise<void> {\n let rawTransactions: [RawTuple, string][]\n\n if (options.data !== undefined) {\n rawTransactions = parseInput(options.data)\n } else if (process.stdin.isTTY) {\n console.error(chalk.red('No input: provide a file path, inline JSON, or pipe data to stdin.'))\n process.exitCode = 1\n return\n } else {\n const stdin = await readStdin()\n rawTransactions = parseSingleOrBatch(stdin.trim(), '<stdin>')\n }\n\n const results = await Promise.all(rawTransactions.map(([tx, source], i) => validateOne(tx, source, i)))\n\n const validCount = results.filter(r => r.valid).length\n const invalidCount = results.filter(r => !r.valid).length\n\n console.log(`Total: ${results.length}`)\n console.log(chalk.green(`Valid: ${validCount}`))\n if (invalidCount > 0) {\n console.log(chalk.red(`Invalid: ${invalidCount}`))\n }\n\n if (options.detail === true || invalidCount > 0) {\n for (const result of results.filter(r => !r.valid)) {\n console.log(chalk.red(`\\n[${result.index}] ${result.source}`))\n for (const err of result.errors) {\n console.log(chalk.red(` - ${err}`))\n }\n }\n }\n\n if (invalidCount > 0) {\n process.exitCode = 1\n }\n}\n"],"mappings":";AAAA,OAAO,MAAM,kBAAkB;AAC/B,OAAO,UAAU;AAGjB,SAAS,sBAAsB;AAE/B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,OAAO,WAAW;AAgBlB,SAAS,WAAW,OAAmC;AACrD,SAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,KAAK,MAAM,QAAQ,MAAM,CAAC,CAAC;AAC7E;AAEA,SAAS,mBAAmB,KAAa,QAAsC;AAC7E,QAAM,SAAkB,KAAK,MAAM,GAAG;AACtC,MAAI,WAAW,MAAM,GAAG;AACtB,WAAO,CAAC,CAAC,QAAQ,MAAM,CAAC;AAAA,EAC1B;AACA,MAAI,MAAM,QAAQ,MAAM,KAAK,OAAO,SAAS,KAAK,OAAO,MAAM,UAAU,GAAG;AAC1E,WAAO,OAAO,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;AAAA,EACtD;AACA,QAAM,IAAI,MAAM,GAAG,MAAM,oEAAoE;AAC/F;AAEA,SAAS,WAAW,KAAa,QAAsC;AACrE,QAAM,UAAgC,CAAC;AACvC,aAAW,CAAC,GAAG,OAAO,KAAK,IAAI,MAAM,IAAI,EAAE,QAAQ,GAAG;AACpD,UAAM,OAAO,SAAS,KAAK;AAC3B,QAAI,CAAC,KAAM;AACX,QAAI;AACJ,QAAI;AACF,eAAS,KAAK,MAAM,IAAI;AAAA,IAC1B,SAAS,OAAO;AACd,YAAM,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACjE,YAAM,IAAI,MAAM,GAAG,MAAM,SAAS,IAAI,CAAC,mBAAmB,GAAG,KAAK,EAAE,OAAO,MAAM,CAAC;AAAA,IACpF;AACA,QAAI,CAAC,WAAW,MAAM,GAAG;AACvB,YAAM,IAAI,MAAM,GAAG,MAAM,SAAS,IAAI,CAAC,iDAAiD;AAAA,IAC1F;AACA,YAAQ,KAAK,CAAC,QAAQ,GAAG,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;AAAA,EAC7C;AACA,SAAO;AACT;AAEA,SAAS,WAAW,MAAoC;AACtD,QAAM,WAAW,KAAK,QAAQ,IAAI;AAClC,MAAI,WAAW,QAAQ,GAAG;AACxB,UAAM,MAAM,GAAG,aAAa,UAAU,MAAM;AAC5C,UAAM,MAAM,KAAK,QAAQ,QAAQ,EAAE,YAAY;AAC/C,QAAI,QAAQ,YAAY,QAAQ,WAAW;AACzC,aAAO,WAAW,KAAK,IAAI;AAAA,IAC7B;AACA,WAAO,mBAAmB,KAAK,IAAI;AAAA,EACrC;AACA,SAAO,mBAAmB,MAAM,UAAU;AAC5C;AAEA,eAAe,YAA6B;AAC1C,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,QAAI,MAAM;AACV,YAAQ,MAAM,YAAY,MAAM;AAChC,YAAQ,MAAM,GAAG,QAAQ,CAAC,UAAkB;AAC1C,aAAO;AAAA,IACT,CAAC;AACD,YAAQ,MAAM,GAAG,OAAO,MAAM,QAAQ,GAAG,CAAC;AAC1C,YAAQ,MAAM,GAAG,SAAS,MAAM;AAAA,EAClC,CAAC;AACH;AAEA,eAAe,YAAY,KAAe,QAAgB,OAA0C;AAClG,QAAM,CAAC,OAAO,WAAW,IAAI;AAC7B,QAAM,SAAmB,CAAC;AAE1B,MAAI,CAAC,0BAA0B,KAAK,GAAG;AACrC,WAAO;AAAA,MACL,QAAQ,CAAC,sCAAsC;AAAA,MAC/C;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI;AACF,UAAM,aAAa,MAAM,eAAe,YAAY,KAAgB;AACpE,UAAM,mBAAmB,MAAM,QAAQ;AAAA,MACpC,YAA0B,IAAI,OAAK,eAAe,YAAY,CAAC,CAAC;AAAA,IACnE;AACA,UAAM,KAAK,CAAC,YAAY,gBAAgB;AAExC,QAAI,sBAAsB,EAAE,GAAG;AAC7B,YAAM,UAAU,MAAM;AACtB,YAAM,WAAW,MAAM,oBAAoB,EAAE,QAAQ,GAAY,EAAE;AACnE,iBAAW,OAAO,UAAU;AAC1B,eAAO,KAAK,OAAO,GAAG,CAAC;AAAA,MACzB;AAAA,IACF,OAAO;AACL,aAAO,KAAK,mEAAmE;AAAA,IACjF;AAAA,EACF,SAAS,IAAI;AACX,WAAO,KAAK,qBAAqB,cAAc,QAAQ,GAAG,UAAU,OAAO,EAAE,CAAC,EAAE;AAAA,EAClF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,OAAO,WAAW;AAAA,EAC3B;AACF;AAEA,eAAsB,qBAAqB,SAAqD;AAC9F,MAAI;AAEJ,MAAI,QAAQ,SAAS,QAAW;AAC9B,sBAAkB,WAAW,QAAQ,IAAI;AAAA,EAC3C,WAAW,QAAQ,MAAM,OAAO;AAC9B,YAAQ,MAAM,MAAM,IAAI,oEAAoE,CAAC;AAC7F,YAAQ,WAAW;AACnB;AAAA,EACF,OAAO;AACL,UAAM,QAAQ,MAAM,UAAU;AAC9B,sBAAkB,mBAAmB,MAAM,KAAK,GAAG,SAAS;AAAA,EAC9D;AAEA,QAAM,UAAU,MAAM,QAAQ,IAAI,gBAAgB,IAAI,CAAC,CAAC,IAAI,MAAM,GAAG,MAAM,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAC;AAEtG,QAAM,aAAa,QAAQ,OAAO,OAAK,EAAE,KAAK,EAAE;AAChD,QAAM,eAAe,QAAQ,OAAO,OAAK,CAAC,EAAE,KAAK,EAAE;AAEnD,UAAQ,IAAI,YAAY,QAAQ,MAAM,EAAE;AACxC,UAAQ,IAAI,MAAM,MAAM,YAAY,UAAU,EAAE,CAAC;AACjD,MAAI,eAAe,GAAG;AACpB,YAAQ,IAAI,MAAM,IAAI,YAAY,YAAY,EAAE,CAAC;AAAA,EACnD;AAEA,MAAI,QAAQ,WAAW,QAAQ,eAAe,GAAG;AAC/C,eAAW,UAAU,QAAQ,OAAO,OAAK,CAAC,EAAE,KAAK,GAAG;AAClD,cAAQ,IAAI,MAAM,IAAI;AAAA,GAAM,OAAO,KAAK,KAAK,OAAO,MAAM,EAAE,CAAC;AAC7D,iBAAW,OAAO,OAAO,QAAQ;AAC/B,gBAAQ,IAAI,MAAM,IAAI,OAAO,GAAG,EAAE,CAAC;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AAEA,MAAI,eAAe,GAAG;AACpB,YAAQ,WAAW;AAAA,EACrB;AACF;","names":[]}
|