wowok 2.1.39 → 2.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1019) hide show
  1. package/dist/cjs/bcs/bcs.d.ts +0 -8
  2. package/dist/cjs/bcs/bcs.js +1 -278
  3. package/dist/cjs/bcs/effects.js +1 -203
  4. package/dist/cjs/bcs/index.js +1 -55
  5. package/dist/cjs/bcs/pure.js +1 -39
  6. package/dist/cjs/bcs/type-tag-serializer.js +1 -107
  7. package/dist/cjs/bcs/types.d.ts +0 -49
  8. package/dist/cjs/bcs/types.js +1 -6
  9. package/dist/cjs/client/index.js +1 -7
  10. package/dist/cjs/client/network.js +1 -24
  11. package/dist/cjs/cryptography/index.js +1 -9
  12. package/dist/cjs/cryptography/intent.d.ts +0 -3
  13. package/dist/cjs/cryptography/intent.js +1 -20
  14. package/dist/cjs/cryptography/keypair.d.ts +4 -38
  15. package/dist/cjs/cryptography/keypair.js +1 -104
  16. package/dist/cjs/cryptography/mnemonics.d.ts +0 -23
  17. package/dist/cjs/cryptography/mnemonics.js +1 -46
  18. package/dist/cjs/cryptography/publickey.d.ts +0 -42
  19. package/dist/cjs/cryptography/publickey.js +1 -114
  20. package/dist/cjs/cryptography/signature-scheme.js +1 -25
  21. package/dist/cjs/cryptography/signature.d.ts +0 -11
  22. package/dist/cjs/cryptography/signature.js +1 -50
  23. package/dist/cjs/experimental/cache.js +1 -61
  24. package/dist/cjs/experimental/client.js +1 -23
  25. package/dist/cjs/experimental/core.d.ts +0 -2
  26. package/dist/cjs/experimental/core.js +1 -85
  27. package/dist/cjs/experimental/errors.js +1 -27
  28. package/dist/cjs/experimental/index.js +1 -8
  29. package/dist/cjs/experimental/persistent-storage.d.ts +0 -98
  30. package/dist/cjs/experimental/persistent-storage.js +1 -337
  31. package/dist/cjs/experimental/persistent-storage.test.d.ts +0 -4
  32. package/dist/cjs/experimental/persistent-storage.test.js +1 -198
  33. package/dist/cjs/experimental/transports/utils.js +1 -100
  34. package/dist/cjs/experimental/types.d.ts +0 -6
  35. package/dist/cjs/experimental/types.js +1 -5
  36. package/dist/cjs/faucet/faucet.d.ts +0 -9
  37. package/dist/cjs/faucet/faucet.js +1 -111
  38. package/dist/cjs/faucet/index.js +1 -4
  39. package/dist/cjs/grpc/client.js +1 -45
  40. package/dist/cjs/grpc/core.js +1 -603
  41. package/dist/cjs/grpc/index.js +1 -5
  42. package/dist/cjs/grpc/proto/google/protobuf/any.d.ts +0 -151
  43. package/dist/cjs/grpc/proto/google/protobuf/any.js +1 -168
  44. package/dist/cjs/grpc/proto/google/protobuf/duration.d.ts +0 -89
  45. package/dist/cjs/grpc/proto/google/protobuf/duration.js +1 -106
  46. package/dist/cjs/grpc/proto/google/protobuf/empty.d.ts +0 -17
  47. package/dist/cjs/grpc/proto/google/protobuf/empty.js +1 -49
  48. package/dist/cjs/grpc/proto/google/protobuf/field_mask.d.ts +0 -217
  49. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +1 -95
  50. package/dist/cjs/grpc/proto/google/protobuf/struct.d.ts +0 -112
  51. package/dist/cjs/grpc/proto/google/protobuf/struct.js +1 -272
  52. package/dist/cjs/grpc/proto/google/protobuf/timestamp.d.ts +0 -127
  53. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +1 -150
  54. package/dist/cjs/grpc/proto/google/rpc/error_details.d.ts +0 -407
  55. package/dist/cjs/grpc/proto/google/rpc/error_details.js +1 -343
  56. package/dist/cjs/grpc/proto/google/rpc/status.d.ts +0 -34
  57. package/dist/cjs/grpc/proto/google/rpc/status.js +1 -49
  58. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.d.ts +0 -48
  59. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +1 -83
  60. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.d.ts +0 -23
  61. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +1 -44
  62. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.d.ts +0 -20
  63. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +1 -37
  64. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.d.ts +0 -48
  65. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +1 -69
  66. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.d.ts +0 -51
  67. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +1 -79
  68. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.d.ts +0 -149
  69. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +1 -184
  70. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.d.ts +0 -257
  71. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +1 -370
  72. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.d.ts +0 -41
  73. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +1 -79
  74. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.d.ts +0 -12
  75. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +1 -29
  76. package/dist/cjs/grpc/proto/sui/rpc/v2/event.d.ts +0 -63
  77. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +1 -81
  78. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.d.ts +0 -56
  79. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +1 -79
  80. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.d.ts +0 -623
  81. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +1 -886
  82. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.d.ts +0 -29
  83. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +1 -55
  84. package/dist/cjs/grpc/proto/sui/rpc/v2/input.d.ts +0 -75
  85. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +1 -102
  86. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.d.ts +0 -50
  87. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js +1 -76
  88. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.d.ts +0 -52
  89. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +1 -68
  90. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.d.ts +0 -260
  91. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +1 -407
  92. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.d.ts +0 -429
  93. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +1 -608
  94. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.d.ts +0 -30
  95. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +1 -45
  96. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.d.ts +0 -151
  97. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +1 -256
  98. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.d.ts +0 -18
  99. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js +1 -31
  100. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.d.ts +0 -97
  101. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js +1 -143
  102. package/dist/cjs/grpc/proto/sui/rpc/v2/object.d.ts +0 -95
  103. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +1 -109
  104. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.d.ts +0 -23
  105. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +1 -45
  106. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.d.ts +0 -42
  107. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +1 -75
  108. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.d.ts +0 -15
  109. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +1 -45
  110. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.d.ts +0 -447
  111. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +1 -584
  112. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.d.ts +0 -31
  113. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +1 -52
  114. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.ts +0 -16
  115. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +1 -26
  116. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.d.ts +0 -54
  117. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +1 -84
  118. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.d.ts +0 -36
  119. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +1 -52
  120. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.d.ts +0 -518
  121. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +1 -659
  122. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.d.ts +0 -36
  123. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +1 -36
  124. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.d.ts +0 -36
  125. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +1 -59
  126. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.d.ts +0 -538
  127. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +1 -756
  128. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.d.ts +0 -945
  129. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +1 -1245
  130. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.ts +0 -18
  131. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +1 -31
  132. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.d.ts +0 -118
  133. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +1 -193
  134. package/dist/cjs/index.js +1 -33
  135. package/dist/cjs/jsonRpc/client.d.ts +0 -140
  136. package/dist/cjs/jsonRpc/client.js +1 -653
  137. package/dist/cjs/jsonRpc/core.js +1 -590
  138. package/dist/cjs/jsonRpc/errors.js +1 -41
  139. package/dist/cjs/jsonRpc/http-transport.d.ts +0 -3
  140. package/dist/cjs/jsonRpc/http-transport.js +1 -73
  141. package/dist/cjs/jsonRpc/index.js +1 -6
  142. package/dist/cjs/jsonRpc/json-rpc-resolver.js +1 -314
  143. package/dist/cjs/jsonRpc/rpc-websocket-client.d.ts +0 -15
  144. package/dist/cjs/jsonRpc/rpc-websocket-client.js +1 -159
  145. package/dist/cjs/jsonRpc/types/chain.js +1 -4
  146. package/dist/cjs/jsonRpc/types/changes.js +1 -4
  147. package/dist/cjs/jsonRpc/types/coins.js +1 -4
  148. package/dist/cjs/jsonRpc/types/common.js +1 -4
  149. package/dist/cjs/jsonRpc/types/generated.d.ts +56 -542
  150. package/dist/cjs/jsonRpc/types/generated.js +1 -4
  151. package/dist/cjs/jsonRpc/types/index.js +1 -4
  152. package/dist/cjs/jsonRpc/types/params.d.ts +0 -336
  153. package/dist/cjs/jsonRpc/types/params.js +1 -4
  154. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +1 -63
  155. package/dist/cjs/keypairs/ed25519/index.js +1 -5
  156. package/dist/cjs/keypairs/ed25519/keypair.d.ts +0 -52
  157. package/dist/cjs/keypairs/ed25519/keypair.js +1 -140
  158. package/dist/cjs/keypairs/ed25519/publickey.d.ts +0 -19
  159. package/dist/cjs/keypairs/ed25519/publickey.js +1 -72
  160. package/dist/cjs/keypairs/index.js +1 -7
  161. package/dist/cjs/keypairs/passkey/index.js +1 -5
  162. package/dist/cjs/keypairs/passkey/keypair.d.ts +0 -80
  163. package/dist/cjs/keypairs/passkey/keypair.js +1 -251
  164. package/dist/cjs/keypairs/passkey/publickey.d.ts +0 -47
  165. package/dist/cjs/keypairs/passkey/publickey.js +1 -170
  166. package/dist/cjs/keypairs/passkey/types.d.ts +0 -6
  167. package/dist/cjs/keypairs/passkey/types.js +1 -4
  168. package/dist/cjs/keypairs/secp256k1/index.js +1 -5
  169. package/dist/cjs/keypairs/secp256k1/keypair.d.ts +0 -51
  170. package/dist/cjs/keypairs/secp256k1/keypair.js +1 -133
  171. package/dist/cjs/keypairs/secp256k1/publickey.d.ts +0 -19
  172. package/dist/cjs/keypairs/secp256k1/publickey.js +1 -73
  173. package/dist/cjs/keypairs/secp256r1/index.js +1 -5
  174. package/dist/cjs/keypairs/secp256r1/keypair.d.ts +0 -51
  175. package/dist/cjs/keypairs/secp256r1/keypair.js +1 -130
  176. package/dist/cjs/keypairs/secp256r1/publickey.d.ts +0 -19
  177. package/dist/cjs/keypairs/secp256r1/publickey.js +1 -74
  178. package/dist/cjs/multisig/index.js +1 -5
  179. package/dist/cjs/multisig/publickey.d.ts +1 -36
  180. package/dist/cjs/multisig/publickey.js +1 -243
  181. package/dist/cjs/multisig/signer.d.ts +0 -1
  182. package/dist/cjs/multisig/signer.js +1 -62
  183. package/dist/cjs/transactions/Arguments.js +1 -12
  184. package/dist/cjs/transactions/Commands.d.ts +0 -3
  185. package/dist/cjs/transactions/Commands.js +1 -110
  186. package/dist/cjs/transactions/Inputs.js +1 -55
  187. package/dist/cjs/transactions/ObjectCache.js +1 -208
  188. package/dist/cjs/transactions/Transaction.d.ts +0 -56
  189. package/dist/cjs/transactions/Transaction.js +1 -646
  190. package/dist/cjs/transactions/TransactionData.d.ts +0 -6
  191. package/dist/cjs/transactions/TransactionData.js +1 -424
  192. package/dist/cjs/transactions/__tests__/Transaction.test.js +1 -167
  193. package/dist/cjs/transactions/__tests__/bcs.test.js +1 -200
  194. package/dist/cjs/transactions/data/internal.js +1 -185
  195. package/dist/cjs/transactions/data/v1.js +1 -474
  196. package/dist/cjs/transactions/data/v2.js +1 -108
  197. package/dist/cjs/transactions/executor/caching.d.ts +0 -4
  198. package/dist/cjs/transactions/executor/caching.js +1 -72
  199. package/dist/cjs/transactions/executor/parallel.d.ts +0 -11
  200. package/dist/cjs/transactions/executor/parallel.js +1 -352
  201. package/dist/cjs/transactions/executor/queue.js +1 -62
  202. package/dist/cjs/transactions/executor/serial.d.ts +0 -1
  203. package/dist/cjs/transactions/executor/serial.js +1 -102
  204. package/dist/cjs/transactions/hash.d.ts +0 -6
  205. package/dist/cjs/transactions/hash.js +1 -17
  206. package/dist/cjs/transactions/index.d.ts +0 -1
  207. package/dist/cjs/transactions/index.js +1 -15
  208. package/dist/cjs/transactions/intents/CoinWithBalance.js +1 -148
  209. package/dist/cjs/transactions/object.js +1 -90
  210. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.d.ts +0 -18
  211. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +1 -20
  212. package/dist/cjs/transactions/pure.js +1 -39
  213. package/dist/cjs/transactions/resolve.js +1 -72
  214. package/dist/cjs/transactions/serializer.js +1 -170
  215. package/dist/cjs/transactions/utils.js +1 -124
  216. package/dist/cjs/utils/constants.js +1 -27
  217. package/dist/cjs/utils/derived-objects.d.ts +0 -3
  218. package/dist/cjs/utils/derived-objects.js +1 -14
  219. package/dist/cjs/utils/dynamic-fields.js +1 -20
  220. package/dist/cjs/utils/format.js +1 -15
  221. package/dist/cjs/utils/index.js +1 -15
  222. package/dist/cjs/utils/move-registry.d.ts +0 -4
  223. package/dist/cjs/utils/move-registry.js +1 -41
  224. package/dist/cjs/utils/sui-types.d.ts +0 -12
  225. package/dist/cjs/utils/sui-types.js +1 -86
  226. package/dist/cjs/utils/suins.js +1 -36
  227. package/dist/cjs/verify/index.js +1 -5
  228. package/dist/cjs/verify/verify.js +1 -91
  229. package/dist/cjs/version.js +1 -6
  230. package/dist/cjs/w/call/allocation.js +1 -369
  231. package/dist/cjs/w/call/arb.js +1 -109
  232. package/dist/cjs/w/call/arbitration.js +1 -1223
  233. package/dist/cjs/w/call/base.js +1 -324
  234. package/dist/cjs/w/call/contact.js +1 -350
  235. package/dist/cjs/w/call/demand.js +1 -702
  236. package/dist/cjs/w/call/entity.js +1 -180
  237. package/dist/cjs/w/call/guard-ins.d.ts +0 -3
  238. package/dist/cjs/w/call/guard-ins.js +1 -4387
  239. package/dist/cjs/w/call/guard.d.ts +111 -27
  240. package/dist/cjs/w/call/guard.js +1 -1154
  241. package/dist/cjs/w/call/index.js +1 -27
  242. package/dist/cjs/w/call/machine.js +1 -1146
  243. package/dist/cjs/w/call/order.js +1 -348
  244. package/dist/cjs/w/call/passport.js +1 -234
  245. package/dist/cjs/w/call/payment.js +1 -192
  246. package/dist/cjs/w/call/permission.d.ts +0 -20
  247. package/dist/cjs/w/call/permission.js +1 -1227
  248. package/dist/cjs/w/call/personal.js +1 -142
  249. package/dist/cjs/w/call/progress.js +1 -691
  250. package/dist/cjs/w/call/proof.js +1 -69
  251. package/dist/cjs/w/call/repository.js +1 -1097
  252. package/dist/cjs/w/call/resource.js +1 -119
  253. package/dist/cjs/w/call/reward.js +1 -688
  254. package/dist/cjs/w/call/service.js +1 -1991
  255. package/dist/cjs/w/call/treasury.js +1 -877
  256. package/dist/cjs/w/call/util.d.ts +1 -0
  257. package/dist/cjs/w/call/util.js +1 -624
  258. package/dist/cjs/w/common.d.ts +48 -68
  259. package/dist/cjs/w/common.js +1 -604
  260. package/dist/cjs/w/exception.d.ts +1 -0
  261. package/dist/cjs/w/exception.js +1 -582
  262. package/dist/cjs/w/index.js +1 -12
  263. package/dist/cjs/w/local/account.d.ts +0 -45
  264. package/dist/cjs/w/local/account.js +1 -746
  265. package/dist/cjs/w/local/cache.js +1 -191
  266. package/dist/cjs/w/local/config.d.ts +0 -3
  267. package/dist/cjs/w/local/config.js +1 -50
  268. package/dist/cjs/w/local/index.js +1 -233
  269. package/dist/cjs/w/local/local.js +1 -664
  270. package/dist/cjs/w/local/storage.d.ts +0 -20
  271. package/dist/cjs/w/local/storage.js +1 -222
  272. package/dist/cjs/w/local/token.d.ts +1 -4
  273. package/dist/cjs/w/local/token.js +1 -161
  274. package/dist/cjs/w/local/util.d.ts +0 -4
  275. package/dist/cjs/w/local/util.js +1 -50
  276. package/dist/cjs/w/local/wip.d.ts +0 -92
  277. package/dist/cjs/w/local/wip.js +1 -1202
  278. package/dist/cjs/w/messenger/crypto.d.ts +0 -186
  279. package/dist/cjs/w/messenger/crypto.js +1 -574
  280. package/dist/cjs/w/messenger/index.d.ts +0 -18
  281. package/dist/cjs/w/messenger/index.js +1 -28
  282. package/dist/cjs/w/messenger/messenger-api.d.ts +0 -177
  283. package/dist/cjs/w/messenger/messenger-api.js +1 -1503
  284. package/dist/cjs/w/messenger/messenger-manager.d.ts +0 -24
  285. package/dist/cjs/w/messenger/messenger-manager.js +1 -1065
  286. package/dist/cjs/w/messenger/messenger.d.ts +0 -206
  287. package/dist/cjs/w/messenger/messenger.js +1 -1439
  288. package/dist/cjs/w/messenger/server.d.ts +0 -94
  289. package/dist/cjs/w/messenger/server.js +1 -460
  290. package/dist/cjs/w/messenger/session.d.ts +0 -76
  291. package/dist/cjs/w/messenger/session.js +1 -768
  292. package/dist/cjs/w/messenger/storage.d.ts +0 -143
  293. package/dist/cjs/w/messenger/storage.js +1 -1256
  294. package/dist/cjs/w/messenger/templates/wts-html-template.d.ts +0 -31
  295. package/dist/cjs/w/messenger/templates/wts-html-template.js +1 -414
  296. package/dist/cjs/w/messenger/types.d.ts +7 -218
  297. package/dist/cjs/w/messenger/types.js +1 -98
  298. package/dist/cjs/w/messenger/utils.d.ts +0 -14
  299. package/dist/cjs/w/messenger/utils.js +1 -29
  300. package/dist/cjs/w/query/bult-in.d.ts +0 -11
  301. package/dist/cjs/w/query/bult-in.js +1 -107
  302. package/dist/cjs/w/query/event.d.ts +0 -7
  303. package/dist/cjs/w/query/event.js +1 -140
  304. package/dist/cjs/w/query/index.js +1 -8
  305. package/dist/cjs/w/query/object.d.ts +7 -51
  306. package/dist/cjs/w/query/object.js +1 -1636
  307. package/dist/cjs/w/query/received.d.ts +0 -6
  308. package/dist/cjs/w/query/received.js +1 -67
  309. package/dist/cjs/w/query/util.d.ts +1 -2
  310. package/dist/cjs/w/query/util.js +1 -54
  311. package/dist/cjs/w/util.d.ts +2 -5
  312. package/dist/cjs/w/util.js +1 -616
  313. package/dist/esm/bcs/bcs.d.ts +0 -8
  314. package/dist/esm/bcs/bcs.js +1 -278
  315. package/dist/esm/bcs/effects.js +1 -203
  316. package/dist/esm/bcs/index.js +1 -55
  317. package/dist/esm/bcs/pure.js +1 -39
  318. package/dist/esm/bcs/type-tag-serializer.js +1 -107
  319. package/dist/esm/bcs/types.d.ts +0 -49
  320. package/dist/esm/bcs/types.js +1 -6
  321. package/dist/esm/client/index.js +1 -7
  322. package/dist/esm/client/network.js +1 -24
  323. package/dist/esm/cryptography/index.js +1 -9
  324. package/dist/esm/cryptography/intent.d.ts +0 -3
  325. package/dist/esm/cryptography/intent.js +1 -20
  326. package/dist/esm/cryptography/keypair.d.ts +4 -38
  327. package/dist/esm/cryptography/keypair.js +1 -104
  328. package/dist/esm/cryptography/mnemonics.d.ts +0 -23
  329. package/dist/esm/cryptography/mnemonics.js +1 -46
  330. package/dist/esm/cryptography/publickey.d.ts +0 -42
  331. package/dist/esm/cryptography/publickey.js +1 -114
  332. package/dist/esm/cryptography/signature-scheme.js +1 -25
  333. package/dist/esm/cryptography/signature.d.ts +0 -11
  334. package/dist/esm/cryptography/signature.js +1 -50
  335. package/dist/esm/experimental/cache.js +1 -61
  336. package/dist/esm/experimental/client.js +1 -23
  337. package/dist/esm/experimental/core.d.ts +0 -2
  338. package/dist/esm/experimental/core.js +1 -85
  339. package/dist/esm/experimental/errors.js +1 -27
  340. package/dist/esm/experimental/index.js +1 -8
  341. package/dist/esm/experimental/persistent-storage.d.ts +0 -98
  342. package/dist/esm/experimental/persistent-storage.js +1 -337
  343. package/dist/esm/experimental/persistent-storage.test.d.ts +0 -4
  344. package/dist/esm/experimental/persistent-storage.test.js +1 -198
  345. package/dist/esm/experimental/transports/utils.js +1 -100
  346. package/dist/esm/experimental/types.d.ts +0 -6
  347. package/dist/esm/experimental/types.js +1 -5
  348. package/dist/esm/faucet/faucet.d.ts +0 -9
  349. package/dist/esm/faucet/faucet.js +1 -111
  350. package/dist/esm/faucet/index.js +1 -4
  351. package/dist/esm/grpc/client.js +1 -45
  352. package/dist/esm/grpc/core.js +1 -603
  353. package/dist/esm/grpc/index.js +1 -5
  354. package/dist/esm/grpc/proto/google/protobuf/any.d.ts +0 -151
  355. package/dist/esm/grpc/proto/google/protobuf/any.js +1 -168
  356. package/dist/esm/grpc/proto/google/protobuf/duration.d.ts +0 -89
  357. package/dist/esm/grpc/proto/google/protobuf/duration.js +1 -106
  358. package/dist/esm/grpc/proto/google/protobuf/empty.d.ts +0 -17
  359. package/dist/esm/grpc/proto/google/protobuf/empty.js +1 -49
  360. package/dist/esm/grpc/proto/google/protobuf/field_mask.d.ts +0 -217
  361. package/dist/esm/grpc/proto/google/protobuf/field_mask.js +1 -95
  362. package/dist/esm/grpc/proto/google/protobuf/struct.d.ts +0 -112
  363. package/dist/esm/grpc/proto/google/protobuf/struct.js +1 -272
  364. package/dist/esm/grpc/proto/google/protobuf/timestamp.d.ts +0 -127
  365. package/dist/esm/grpc/proto/google/protobuf/timestamp.js +1 -150
  366. package/dist/esm/grpc/proto/google/rpc/error_details.d.ts +0 -407
  367. package/dist/esm/grpc/proto/google/rpc/error_details.js +1 -343
  368. package/dist/esm/grpc/proto/google/rpc/status.d.ts +0 -34
  369. package/dist/esm/grpc/proto/google/rpc/status.js +1 -49
  370. package/dist/esm/grpc/proto/sui/rpc/v2/argument.d.ts +0 -48
  371. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js +1 -83
  372. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.d.ts +0 -23
  373. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js +1 -44
  374. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.d.ts +0 -20
  375. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js +1 -37
  376. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.d.ts +0 -48
  377. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js +1 -69
  378. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.d.ts +0 -51
  379. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js +1 -79
  380. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.d.ts +0 -149
  381. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js +1 -184
  382. package/dist/esm/grpc/proto/sui/rpc/v2/effects.d.ts +0 -257
  383. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js +1 -370
  384. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.d.ts +0 -41
  385. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js +1 -79
  386. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.d.ts +0 -12
  387. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js +1 -29
  388. package/dist/esm/grpc/proto/sui/rpc/v2/event.d.ts +0 -63
  389. package/dist/esm/grpc/proto/sui/rpc/v2/event.js +1 -81
  390. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.d.ts +0 -56
  391. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js +1 -79
  392. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.d.ts +0 -623
  393. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js +1 -886
  394. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.d.ts +0 -29
  395. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js +1 -55
  396. package/dist/esm/grpc/proto/sui/rpc/v2/input.d.ts +0 -75
  397. package/dist/esm/grpc/proto/sui/rpc/v2/input.js +1 -102
  398. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.d.ts +0 -50
  399. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js +1 -76
  400. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.d.ts +0 -52
  401. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js +1 -68
  402. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.d.ts +0 -260
  403. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js +1 -407
  404. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.d.ts +0 -429
  405. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js +1 -608
  406. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.d.ts +0 -30
  407. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js +1 -45
  408. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.d.ts +0 -151
  409. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js +1 -256
  410. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.d.ts +0 -18
  411. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js +1 -31
  412. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.d.ts +0 -97
  413. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js +1 -143
  414. package/dist/esm/grpc/proto/sui/rpc/v2/object.d.ts +0 -95
  415. package/dist/esm/grpc/proto/sui/rpc/v2/object.js +1 -109
  416. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.d.ts +0 -23
  417. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js +1 -45
  418. package/dist/esm/grpc/proto/sui/rpc/v2/owner.d.ts +0 -42
  419. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js +1 -75
  420. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.d.ts +0 -15
  421. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js +1 -45
  422. package/dist/esm/grpc/proto/sui/rpc/v2/signature.d.ts +0 -447
  423. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js +1 -584
  424. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.d.ts +0 -31
  425. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js +1 -52
  426. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.ts +0 -16
  427. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +1 -26
  428. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.d.ts +0 -54
  429. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js +1 -84
  430. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.d.ts +0 -36
  431. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js +1 -52
  432. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.d.ts +0 -518
  433. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js +1 -659
  434. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.d.ts +0 -36
  435. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js +1 -36
  436. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.d.ts +0 -36
  437. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js +1 -59
  438. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.d.ts +0 -538
  439. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js +1 -756
  440. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.d.ts +0 -945
  441. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js +1 -1245
  442. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.ts +0 -18
  443. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +1 -31
  444. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.d.ts +0 -118
  445. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js +1 -193
  446. package/dist/esm/index.js +1 -33
  447. package/dist/esm/jsonRpc/client.d.ts +0 -140
  448. package/dist/esm/jsonRpc/client.js +1 -653
  449. package/dist/esm/jsonRpc/core.js +1 -590
  450. package/dist/esm/jsonRpc/errors.js +1 -41
  451. package/dist/esm/jsonRpc/http-transport.d.ts +0 -3
  452. package/dist/esm/jsonRpc/http-transport.js +1 -73
  453. package/dist/esm/jsonRpc/index.js +1 -6
  454. package/dist/esm/jsonRpc/json-rpc-resolver.js +1 -314
  455. package/dist/esm/jsonRpc/rpc-websocket-client.d.ts +0 -15
  456. package/dist/esm/jsonRpc/rpc-websocket-client.js +1 -159
  457. package/dist/esm/jsonRpc/types/chain.js +1 -4
  458. package/dist/esm/jsonRpc/types/changes.js +1 -4
  459. package/dist/esm/jsonRpc/types/coins.js +1 -4
  460. package/dist/esm/jsonRpc/types/common.js +1 -4
  461. package/dist/esm/jsonRpc/types/generated.d.ts +56 -542
  462. package/dist/esm/jsonRpc/types/generated.js +1 -4
  463. package/dist/esm/jsonRpc/types/index.js +1 -4
  464. package/dist/esm/jsonRpc/types/params.d.ts +0 -336
  465. package/dist/esm/jsonRpc/types/params.js +1 -4
  466. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +1 -63
  467. package/dist/esm/keypairs/ed25519/index.js +1 -5
  468. package/dist/esm/keypairs/ed25519/keypair.d.ts +0 -52
  469. package/dist/esm/keypairs/ed25519/keypair.js +1 -140
  470. package/dist/esm/keypairs/ed25519/publickey.d.ts +0 -19
  471. package/dist/esm/keypairs/ed25519/publickey.js +1 -72
  472. package/dist/esm/keypairs/index.js +1 -7
  473. package/dist/esm/keypairs/passkey/index.js +1 -5
  474. package/dist/esm/keypairs/passkey/keypair.d.ts +0 -80
  475. package/dist/esm/keypairs/passkey/keypair.js +1 -251
  476. package/dist/esm/keypairs/passkey/publickey.d.ts +0 -47
  477. package/dist/esm/keypairs/passkey/publickey.js +1 -170
  478. package/dist/esm/keypairs/passkey/types.d.ts +0 -6
  479. package/dist/esm/keypairs/passkey/types.js +1 -4
  480. package/dist/esm/keypairs/secp256k1/index.js +1 -5
  481. package/dist/esm/keypairs/secp256k1/keypair.d.ts +0 -51
  482. package/dist/esm/keypairs/secp256k1/keypair.js +1 -133
  483. package/dist/esm/keypairs/secp256k1/publickey.d.ts +0 -19
  484. package/dist/esm/keypairs/secp256k1/publickey.js +1 -73
  485. package/dist/esm/keypairs/secp256r1/index.js +1 -5
  486. package/dist/esm/keypairs/secp256r1/keypair.d.ts +0 -51
  487. package/dist/esm/keypairs/secp256r1/keypair.js +1 -130
  488. package/dist/esm/keypairs/secp256r1/publickey.d.ts +0 -19
  489. package/dist/esm/keypairs/secp256r1/publickey.js +1 -74
  490. package/dist/esm/multisig/index.js +1 -5
  491. package/dist/esm/multisig/publickey.d.ts +1 -36
  492. package/dist/esm/multisig/publickey.js +1 -243
  493. package/dist/esm/multisig/signer.d.ts +0 -1
  494. package/dist/esm/multisig/signer.js +1 -62
  495. package/dist/esm/transactions/Arguments.js +1 -12
  496. package/dist/esm/transactions/Commands.d.ts +0 -3
  497. package/dist/esm/transactions/Commands.js +1 -110
  498. package/dist/esm/transactions/Inputs.js +1 -55
  499. package/dist/esm/transactions/ObjectCache.js +1 -208
  500. package/dist/esm/transactions/Transaction.d.ts +0 -56
  501. package/dist/esm/transactions/Transaction.js +1 -646
  502. package/dist/esm/transactions/TransactionData.d.ts +0 -6
  503. package/dist/esm/transactions/TransactionData.js +1 -424
  504. package/dist/esm/transactions/__tests__/Transaction.test.js +1 -167
  505. package/dist/esm/transactions/__tests__/bcs.test.js +1 -200
  506. package/dist/esm/transactions/data/internal.js +1 -185
  507. package/dist/esm/transactions/data/v1.js +1 -474
  508. package/dist/esm/transactions/data/v2.js +1 -108
  509. package/dist/esm/transactions/executor/caching.d.ts +0 -4
  510. package/dist/esm/transactions/executor/caching.js +1 -72
  511. package/dist/esm/transactions/executor/parallel.d.ts +0 -11
  512. package/dist/esm/transactions/executor/parallel.js +1 -352
  513. package/dist/esm/transactions/executor/queue.js +1 -62
  514. package/dist/esm/transactions/executor/serial.d.ts +0 -1
  515. package/dist/esm/transactions/executor/serial.js +1 -102
  516. package/dist/esm/transactions/hash.d.ts +0 -6
  517. package/dist/esm/transactions/hash.js +1 -17
  518. package/dist/esm/transactions/index.d.ts +0 -1
  519. package/dist/esm/transactions/index.js +1 -15
  520. package/dist/esm/transactions/intents/CoinWithBalance.js +1 -148
  521. package/dist/esm/transactions/object.js +1 -90
  522. package/dist/esm/transactions/plugins/NamedPackagesPlugin.d.ts +0 -18
  523. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +1 -20
  524. package/dist/esm/transactions/pure.js +1 -39
  525. package/dist/esm/transactions/resolve.js +1 -72
  526. package/dist/esm/transactions/serializer.js +1 -170
  527. package/dist/esm/transactions/utils.js +1 -124
  528. package/dist/esm/utils/constants.js +1 -27
  529. package/dist/esm/utils/derived-objects.d.ts +0 -3
  530. package/dist/esm/utils/derived-objects.js +1 -14
  531. package/dist/esm/utils/dynamic-fields.js +1 -20
  532. package/dist/esm/utils/format.js +1 -15
  533. package/dist/esm/utils/index.js +1 -15
  534. package/dist/esm/utils/move-registry.d.ts +0 -4
  535. package/dist/esm/utils/move-registry.js +1 -41
  536. package/dist/esm/utils/sui-types.d.ts +0 -12
  537. package/dist/esm/utils/sui-types.js +1 -86
  538. package/dist/esm/utils/suins.js +1 -36
  539. package/dist/esm/verify/index.js +1 -5
  540. package/dist/esm/verify/verify.js +1 -91
  541. package/dist/esm/version.js +1 -6
  542. package/dist/esm/w/call/allocation.js +1 -369
  543. package/dist/esm/w/call/arb.js +1 -109
  544. package/dist/esm/w/call/arbitration.js +1 -1223
  545. package/dist/esm/w/call/base.js +1 -324
  546. package/dist/esm/w/call/contact.js +1 -350
  547. package/dist/esm/w/call/demand.js +1 -702
  548. package/dist/esm/w/call/entity.js +1 -180
  549. package/dist/esm/w/call/guard-ins.d.ts +0 -3
  550. package/dist/esm/w/call/guard-ins.js +1 -4387
  551. package/dist/esm/w/call/guard.d.ts +111 -27
  552. package/dist/esm/w/call/guard.js +1 -1154
  553. package/dist/esm/w/call/index.js +1 -27
  554. package/dist/esm/w/call/machine.js +1 -1146
  555. package/dist/esm/w/call/order.js +1 -348
  556. package/dist/esm/w/call/passport.js +1 -234
  557. package/dist/esm/w/call/payment.js +1 -192
  558. package/dist/esm/w/call/permission.d.ts +0 -20
  559. package/dist/esm/w/call/permission.js +1 -1227
  560. package/dist/esm/w/call/personal.js +1 -142
  561. package/dist/esm/w/call/progress.js +1 -691
  562. package/dist/esm/w/call/proof.js +1 -69
  563. package/dist/esm/w/call/repository.js +1 -1097
  564. package/dist/esm/w/call/resource.js +1 -119
  565. package/dist/esm/w/call/reward.js +1 -688
  566. package/dist/esm/w/call/service.js +1 -1991
  567. package/dist/esm/w/call/treasury.js +1 -877
  568. package/dist/esm/w/call/util.d.ts +1 -0
  569. package/dist/esm/w/call/util.js +1 -624
  570. package/dist/esm/w/common.d.ts +48 -68
  571. package/dist/esm/w/common.js +1 -604
  572. package/dist/esm/w/exception.d.ts +1 -0
  573. package/dist/esm/w/exception.js +1 -582
  574. package/dist/esm/w/index.js +1 -12
  575. package/dist/esm/w/local/account.d.ts +0 -45
  576. package/dist/esm/w/local/account.js +1 -746
  577. package/dist/esm/w/local/cache.js +1 -191
  578. package/dist/esm/w/local/config.d.ts +0 -3
  579. package/dist/esm/w/local/config.js +1 -50
  580. package/dist/esm/w/local/index.js +1 -233
  581. package/dist/esm/w/local/local.js +1 -664
  582. package/dist/esm/w/local/storage.d.ts +0 -20
  583. package/dist/esm/w/local/storage.js +1 -222
  584. package/dist/esm/w/local/token.d.ts +1 -4
  585. package/dist/esm/w/local/token.js +1 -161
  586. package/dist/esm/w/local/util.d.ts +0 -4
  587. package/dist/esm/w/local/util.js +1 -50
  588. package/dist/esm/w/local/wip.d.ts +0 -92
  589. package/dist/esm/w/local/wip.js +1 -1202
  590. package/dist/esm/w/messenger/crypto.d.ts +0 -186
  591. package/dist/esm/w/messenger/crypto.js +1 -574
  592. package/dist/esm/w/messenger/index.d.ts +0 -18
  593. package/dist/esm/w/messenger/index.js +1 -28
  594. package/dist/esm/w/messenger/messenger-api.d.ts +0 -177
  595. package/dist/esm/w/messenger/messenger-api.js +1 -1503
  596. package/dist/esm/w/messenger/messenger-manager.d.ts +0 -24
  597. package/dist/esm/w/messenger/messenger-manager.js +1 -1065
  598. package/dist/esm/w/messenger/messenger.d.ts +0 -206
  599. package/dist/esm/w/messenger/messenger.js +1 -1439
  600. package/dist/esm/w/messenger/server.d.ts +0 -94
  601. package/dist/esm/w/messenger/server.js +1 -460
  602. package/dist/esm/w/messenger/session.d.ts +0 -76
  603. package/dist/esm/w/messenger/session.js +1 -768
  604. package/dist/esm/w/messenger/storage.d.ts +0 -143
  605. package/dist/esm/w/messenger/storage.js +1 -1256
  606. package/dist/esm/w/messenger/templates/wts-html-template.d.ts +0 -31
  607. package/dist/esm/w/messenger/templates/wts-html-template.js +1 -414
  608. package/dist/esm/w/messenger/types.d.ts +7 -218
  609. package/dist/esm/w/messenger/types.js +1 -98
  610. package/dist/esm/w/messenger/utils.d.ts +0 -14
  611. package/dist/esm/w/messenger/utils.js +1 -29
  612. package/dist/esm/w/query/bult-in.d.ts +0 -11
  613. package/dist/esm/w/query/bult-in.js +1 -107
  614. package/dist/esm/w/query/event.d.ts +0 -7
  615. package/dist/esm/w/query/event.js +1 -140
  616. package/dist/esm/w/query/index.js +1 -8
  617. package/dist/esm/w/query/object.d.ts +7 -51
  618. package/dist/esm/w/query/object.js +1 -1636
  619. package/dist/esm/w/query/received.d.ts +0 -6
  620. package/dist/esm/w/query/received.js +1 -67
  621. package/dist/esm/w/query/util.d.ts +1 -2
  622. package/dist/esm/w/query/util.js +1 -54
  623. package/dist/esm/w/util.d.ts +2 -5
  624. package/dist/esm/w/util.js +1 -616
  625. package/package.json +5 -2
  626. package/dist/cjs/bcs/bcs.js.map +0 -1
  627. package/dist/cjs/bcs/effects.js.map +0 -1
  628. package/dist/cjs/bcs/index.js.map +0 -1
  629. package/dist/cjs/bcs/pure.js.map +0 -1
  630. package/dist/cjs/bcs/type-tag-serializer.js.map +0 -1
  631. package/dist/cjs/bcs/types.js.map +0 -1
  632. package/dist/cjs/client/index.js.map +0 -1
  633. package/dist/cjs/client/network.js.map +0 -1
  634. package/dist/cjs/cryptography/index.js.map +0 -1
  635. package/dist/cjs/cryptography/intent.js.map +0 -1
  636. package/dist/cjs/cryptography/keypair.js.map +0 -1
  637. package/dist/cjs/cryptography/mnemonics.js.map +0 -1
  638. package/dist/cjs/cryptography/publickey.js.map +0 -1
  639. package/dist/cjs/cryptography/signature-scheme.js.map +0 -1
  640. package/dist/cjs/cryptography/signature.js.map +0 -1
  641. package/dist/cjs/experimental/cache.js.map +0 -1
  642. package/dist/cjs/experimental/client.js.map +0 -1
  643. package/dist/cjs/experimental/core.js.map +0 -1
  644. package/dist/cjs/experimental/errors.js.map +0 -1
  645. package/dist/cjs/experimental/index.js.map +0 -1
  646. package/dist/cjs/experimental/persistent-storage.js.map +0 -1
  647. package/dist/cjs/experimental/persistent-storage.test.js.map +0 -1
  648. package/dist/cjs/experimental/transports/utils.js.map +0 -1
  649. package/dist/cjs/experimental/types.js.map +0 -1
  650. package/dist/cjs/faucet/faucet.js.map +0 -1
  651. package/dist/cjs/faucet/index.js.map +0 -1
  652. package/dist/cjs/grpc/client.js.map +0 -1
  653. package/dist/cjs/grpc/core.js.map +0 -1
  654. package/dist/cjs/grpc/index.js.map +0 -1
  655. package/dist/cjs/grpc/proto/google/protobuf/any.js.map +0 -1
  656. package/dist/cjs/grpc/proto/google/protobuf/duration.js.map +0 -1
  657. package/dist/cjs/grpc/proto/google/protobuf/empty.js.map +0 -1
  658. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js.map +0 -1
  659. package/dist/cjs/grpc/proto/google/protobuf/struct.js.map +0 -1
  660. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js.map +0 -1
  661. package/dist/cjs/grpc/proto/google/rpc/error_details.js.map +0 -1
  662. package/dist/cjs/grpc/proto/google/rpc/status.js.map +0 -1
  663. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js.map +0 -1
  664. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js.map +0 -1
  665. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js.map +0 -1
  666. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js.map +0 -1
  667. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +0 -1
  668. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +0 -1
  669. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js.map +0 -1
  670. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js.map +0 -1
  671. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js.map +0 -1
  672. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js.map +0 -1
  673. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js.map +0 -1
  674. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js.map +0 -1
  675. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +0 -1
  676. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js.map +0 -1
  677. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js.map +0 -1
  678. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +0 -1
  679. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js.map +0 -1
  680. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js.map +0 -1
  681. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +0 -1
  682. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js.map +0 -1
  683. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js.map +0 -1
  684. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js.map +0 -1
  685. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js.map +0 -1
  686. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js.map +0 -1
  687. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js.map +0 -1
  688. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js.map +0 -1
  689. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js.map +0 -1
  690. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js.map +0 -1
  691. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +0 -1
  692. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +0 -1
  693. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js.map +0 -1
  694. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js.map +0 -1
  695. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +0 -1
  696. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js.map +0 -1
  697. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js.map +0 -1
  698. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js.map +0 -1
  699. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +0 -1
  700. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +0 -1
  701. package/dist/cjs/index.js.map +0 -1
  702. package/dist/cjs/jsonRpc/client.js.map +0 -1
  703. package/dist/cjs/jsonRpc/core.js.map +0 -1
  704. package/dist/cjs/jsonRpc/errors.js.map +0 -1
  705. package/dist/cjs/jsonRpc/http-transport.js.map +0 -1
  706. package/dist/cjs/jsonRpc/index.js.map +0 -1
  707. package/dist/cjs/jsonRpc/json-rpc-resolver.js.map +0 -1
  708. package/dist/cjs/jsonRpc/rpc-websocket-client.js.map +0 -1
  709. package/dist/cjs/jsonRpc/types/chain.js.map +0 -1
  710. package/dist/cjs/jsonRpc/types/changes.js.map +0 -1
  711. package/dist/cjs/jsonRpc/types/coins.js.map +0 -1
  712. package/dist/cjs/jsonRpc/types/common.js.map +0 -1
  713. package/dist/cjs/jsonRpc/types/generated.js.map +0 -1
  714. package/dist/cjs/jsonRpc/types/index.js.map +0 -1
  715. package/dist/cjs/jsonRpc/types/params.js.map +0 -1
  716. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js.map +0 -1
  717. package/dist/cjs/keypairs/ed25519/index.js.map +0 -1
  718. package/dist/cjs/keypairs/ed25519/keypair.js.map +0 -1
  719. package/dist/cjs/keypairs/ed25519/publickey.js.map +0 -1
  720. package/dist/cjs/keypairs/index.js.map +0 -1
  721. package/dist/cjs/keypairs/passkey/index.js.map +0 -1
  722. package/dist/cjs/keypairs/passkey/keypair.js.map +0 -1
  723. package/dist/cjs/keypairs/passkey/publickey.js.map +0 -1
  724. package/dist/cjs/keypairs/passkey/types.js.map +0 -1
  725. package/dist/cjs/keypairs/secp256k1/index.js.map +0 -1
  726. package/dist/cjs/keypairs/secp256k1/keypair.js.map +0 -1
  727. package/dist/cjs/keypairs/secp256k1/publickey.js.map +0 -1
  728. package/dist/cjs/keypairs/secp256r1/index.js.map +0 -1
  729. package/dist/cjs/keypairs/secp256r1/keypair.js.map +0 -1
  730. package/dist/cjs/keypairs/secp256r1/publickey.js.map +0 -1
  731. package/dist/cjs/multisig/index.js.map +0 -1
  732. package/dist/cjs/multisig/publickey.js.map +0 -1
  733. package/dist/cjs/multisig/signer.js.map +0 -1
  734. package/dist/cjs/transactions/Arguments.js.map +0 -1
  735. package/dist/cjs/transactions/Commands.js.map +0 -1
  736. package/dist/cjs/transactions/Inputs.js.map +0 -1
  737. package/dist/cjs/transactions/ObjectCache.js.map +0 -1
  738. package/dist/cjs/transactions/Transaction.js.map +0 -1
  739. package/dist/cjs/transactions/TransactionData.js.map +0 -1
  740. package/dist/cjs/transactions/__tests__/Transaction.test.js.map +0 -1
  741. package/dist/cjs/transactions/__tests__/bcs.test.js.map +0 -1
  742. package/dist/cjs/transactions/data/internal.js.map +0 -1
  743. package/dist/cjs/transactions/data/v1.js.map +0 -1
  744. package/dist/cjs/transactions/data/v2.js.map +0 -1
  745. package/dist/cjs/transactions/executor/caching.js.map +0 -1
  746. package/dist/cjs/transactions/executor/parallel.js.map +0 -1
  747. package/dist/cjs/transactions/executor/queue.js.map +0 -1
  748. package/dist/cjs/transactions/executor/serial.js.map +0 -1
  749. package/dist/cjs/transactions/hash.js.map +0 -1
  750. package/dist/cjs/transactions/index.js.map +0 -1
  751. package/dist/cjs/transactions/intents/CoinWithBalance.js.map +0 -1
  752. package/dist/cjs/transactions/object.js.map +0 -1
  753. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js.map +0 -1
  754. package/dist/cjs/transactions/pure.js.map +0 -1
  755. package/dist/cjs/transactions/resolve.js.map +0 -1
  756. package/dist/cjs/transactions/serializer.js.map +0 -1
  757. package/dist/cjs/transactions/utils.js.map +0 -1
  758. package/dist/cjs/utils/constants.js.map +0 -1
  759. package/dist/cjs/utils/derived-objects.js.map +0 -1
  760. package/dist/cjs/utils/dynamic-fields.js.map +0 -1
  761. package/dist/cjs/utils/format.js.map +0 -1
  762. package/dist/cjs/utils/index.js.map +0 -1
  763. package/dist/cjs/utils/move-registry.js.map +0 -1
  764. package/dist/cjs/utils/sui-types.js.map +0 -1
  765. package/dist/cjs/utils/suins.js.map +0 -1
  766. package/dist/cjs/verify/index.js.map +0 -1
  767. package/dist/cjs/verify/verify.js.map +0 -1
  768. package/dist/cjs/version.js.map +0 -1
  769. package/dist/cjs/w/call/allocation.js.map +0 -1
  770. package/dist/cjs/w/call/arb.js.map +0 -1
  771. package/dist/cjs/w/call/arbitration.js.map +0 -1
  772. package/dist/cjs/w/call/base.js.map +0 -1
  773. package/dist/cjs/w/call/contact.js.map +0 -1
  774. package/dist/cjs/w/call/demand.js.map +0 -1
  775. package/dist/cjs/w/call/entity.js.map +0 -1
  776. package/dist/cjs/w/call/guard-ins.js.map +0 -1
  777. package/dist/cjs/w/call/guard.js.map +0 -1
  778. package/dist/cjs/w/call/index.js.map +0 -1
  779. package/dist/cjs/w/call/machine.js.map +0 -1
  780. package/dist/cjs/w/call/order.js.map +0 -1
  781. package/dist/cjs/w/call/passport.js.map +0 -1
  782. package/dist/cjs/w/call/payment.js.map +0 -1
  783. package/dist/cjs/w/call/permission.js.map +0 -1
  784. package/dist/cjs/w/call/personal.js.map +0 -1
  785. package/dist/cjs/w/call/progress.js.map +0 -1
  786. package/dist/cjs/w/call/proof.js.map +0 -1
  787. package/dist/cjs/w/call/repository.js.map +0 -1
  788. package/dist/cjs/w/call/resource.js.map +0 -1
  789. package/dist/cjs/w/call/reward.js.map +0 -1
  790. package/dist/cjs/w/call/service.js.map +0 -1
  791. package/dist/cjs/w/call/treasury.js.map +0 -1
  792. package/dist/cjs/w/call/util.js.map +0 -1
  793. package/dist/cjs/w/common.js.map +0 -1
  794. package/dist/cjs/w/exception.js.map +0 -1
  795. package/dist/cjs/w/index.js.map +0 -1
  796. package/dist/cjs/w/local/account.js.map +0 -1
  797. package/dist/cjs/w/local/cache.js.map +0 -1
  798. package/dist/cjs/w/local/config.js.map +0 -1
  799. package/dist/cjs/w/local/index.js.map +0 -1
  800. package/dist/cjs/w/local/local.js.map +0 -1
  801. package/dist/cjs/w/local/storage.js.map +0 -1
  802. package/dist/cjs/w/local/token.js.map +0 -1
  803. package/dist/cjs/w/local/util.js.map +0 -1
  804. package/dist/cjs/w/local/wip.js.map +0 -1
  805. package/dist/cjs/w/messenger/crypto.js.map +0 -1
  806. package/dist/cjs/w/messenger/index.js.map +0 -1
  807. package/dist/cjs/w/messenger/messenger-api.js.map +0 -1
  808. package/dist/cjs/w/messenger/messenger-manager.js.map +0 -1
  809. package/dist/cjs/w/messenger/messenger.js.map +0 -1
  810. package/dist/cjs/w/messenger/server.js.map +0 -1
  811. package/dist/cjs/w/messenger/session.js.map +0 -1
  812. package/dist/cjs/w/messenger/storage.js.map +0 -1
  813. package/dist/cjs/w/messenger/templates/wts-html-template.js.map +0 -1
  814. package/dist/cjs/w/messenger/types.js.map +0 -1
  815. package/dist/cjs/w/messenger/utils.js.map +0 -1
  816. package/dist/cjs/w/query/bult-in.js.map +0 -1
  817. package/dist/cjs/w/query/event.js.map +0 -1
  818. package/dist/cjs/w/query/index.js.map +0 -1
  819. package/dist/cjs/w/query/object.js.map +0 -1
  820. package/dist/cjs/w/query/received.js.map +0 -1
  821. package/dist/cjs/w/query/util.js.map +0 -1
  822. package/dist/cjs/w/util.js.map +0 -1
  823. package/dist/esm/bcs/bcs.js.map +0 -1
  824. package/dist/esm/bcs/effects.js.map +0 -1
  825. package/dist/esm/bcs/index.js.map +0 -1
  826. package/dist/esm/bcs/pure.js.map +0 -1
  827. package/dist/esm/bcs/type-tag-serializer.js.map +0 -1
  828. package/dist/esm/bcs/types.js.map +0 -1
  829. package/dist/esm/client/index.js.map +0 -1
  830. package/dist/esm/client/network.js.map +0 -1
  831. package/dist/esm/cryptography/index.js.map +0 -1
  832. package/dist/esm/cryptography/intent.js.map +0 -1
  833. package/dist/esm/cryptography/keypair.js.map +0 -1
  834. package/dist/esm/cryptography/mnemonics.js.map +0 -1
  835. package/dist/esm/cryptography/publickey.js.map +0 -1
  836. package/dist/esm/cryptography/signature-scheme.js.map +0 -1
  837. package/dist/esm/cryptography/signature.js.map +0 -1
  838. package/dist/esm/experimental/cache.js.map +0 -1
  839. package/dist/esm/experimental/client.js.map +0 -1
  840. package/dist/esm/experimental/core.js.map +0 -1
  841. package/dist/esm/experimental/errors.js.map +0 -1
  842. package/dist/esm/experimental/index.js.map +0 -1
  843. package/dist/esm/experimental/persistent-storage.js.map +0 -1
  844. package/dist/esm/experimental/persistent-storage.test.js.map +0 -1
  845. package/dist/esm/experimental/transports/utils.js.map +0 -1
  846. package/dist/esm/experimental/types.js.map +0 -1
  847. package/dist/esm/faucet/faucet.js.map +0 -1
  848. package/dist/esm/faucet/index.js.map +0 -1
  849. package/dist/esm/grpc/client.js.map +0 -1
  850. package/dist/esm/grpc/core.js.map +0 -1
  851. package/dist/esm/grpc/index.js.map +0 -1
  852. package/dist/esm/grpc/proto/google/protobuf/any.js.map +0 -1
  853. package/dist/esm/grpc/proto/google/protobuf/duration.js.map +0 -1
  854. package/dist/esm/grpc/proto/google/protobuf/empty.js.map +0 -1
  855. package/dist/esm/grpc/proto/google/protobuf/field_mask.js.map +0 -1
  856. package/dist/esm/grpc/proto/google/protobuf/struct.js.map +0 -1
  857. package/dist/esm/grpc/proto/google/protobuf/timestamp.js.map +0 -1
  858. package/dist/esm/grpc/proto/google/rpc/error_details.js.map +0 -1
  859. package/dist/esm/grpc/proto/google/rpc/status.js.map +0 -1
  860. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js.map +0 -1
  861. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js.map +0 -1
  862. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js.map +0 -1
  863. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js.map +0 -1
  864. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +0 -1
  865. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +0 -1
  866. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js.map +0 -1
  867. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js.map +0 -1
  868. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js.map +0 -1
  869. package/dist/esm/grpc/proto/sui/rpc/v2/event.js.map +0 -1
  870. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js.map +0 -1
  871. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js.map +0 -1
  872. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +0 -1
  873. package/dist/esm/grpc/proto/sui/rpc/v2/input.js.map +0 -1
  874. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js.map +0 -1
  875. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +0 -1
  876. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js.map +0 -1
  877. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js.map +0 -1
  878. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +0 -1
  879. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js.map +0 -1
  880. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js.map +0 -1
  881. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js.map +0 -1
  882. package/dist/esm/grpc/proto/sui/rpc/v2/object.js.map +0 -1
  883. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js.map +0 -1
  884. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js.map +0 -1
  885. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js.map +0 -1
  886. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js.map +0 -1
  887. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js.map +0 -1
  888. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +0 -1
  889. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +0 -1
  890. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js.map +0 -1
  891. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js.map +0 -1
  892. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +0 -1
  893. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js.map +0 -1
  894. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js.map +0 -1
  895. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js.map +0 -1
  896. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +0 -1
  897. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +0 -1
  898. package/dist/esm/index.js.map +0 -1
  899. package/dist/esm/jsonRpc/client.js.map +0 -1
  900. package/dist/esm/jsonRpc/core.js.map +0 -1
  901. package/dist/esm/jsonRpc/errors.js.map +0 -1
  902. package/dist/esm/jsonRpc/http-transport.js.map +0 -1
  903. package/dist/esm/jsonRpc/index.js.map +0 -1
  904. package/dist/esm/jsonRpc/json-rpc-resolver.js.map +0 -1
  905. package/dist/esm/jsonRpc/rpc-websocket-client.js.map +0 -1
  906. package/dist/esm/jsonRpc/types/chain.js.map +0 -1
  907. package/dist/esm/jsonRpc/types/changes.js.map +0 -1
  908. package/dist/esm/jsonRpc/types/coins.js.map +0 -1
  909. package/dist/esm/jsonRpc/types/common.js.map +0 -1
  910. package/dist/esm/jsonRpc/types/generated.js.map +0 -1
  911. package/dist/esm/jsonRpc/types/index.js.map +0 -1
  912. package/dist/esm/jsonRpc/types/params.js.map +0 -1
  913. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js.map +0 -1
  914. package/dist/esm/keypairs/ed25519/index.js.map +0 -1
  915. package/dist/esm/keypairs/ed25519/keypair.js.map +0 -1
  916. package/dist/esm/keypairs/ed25519/publickey.js.map +0 -1
  917. package/dist/esm/keypairs/index.js.map +0 -1
  918. package/dist/esm/keypairs/passkey/index.js.map +0 -1
  919. package/dist/esm/keypairs/passkey/keypair.js.map +0 -1
  920. package/dist/esm/keypairs/passkey/publickey.js.map +0 -1
  921. package/dist/esm/keypairs/passkey/types.js.map +0 -1
  922. package/dist/esm/keypairs/secp256k1/index.js.map +0 -1
  923. package/dist/esm/keypairs/secp256k1/keypair.js.map +0 -1
  924. package/dist/esm/keypairs/secp256k1/publickey.js.map +0 -1
  925. package/dist/esm/keypairs/secp256r1/index.js.map +0 -1
  926. package/dist/esm/keypairs/secp256r1/keypair.js.map +0 -1
  927. package/dist/esm/keypairs/secp256r1/publickey.js.map +0 -1
  928. package/dist/esm/multisig/index.js.map +0 -1
  929. package/dist/esm/multisig/publickey.js.map +0 -1
  930. package/dist/esm/multisig/signer.js.map +0 -1
  931. package/dist/esm/transactions/Arguments.js.map +0 -1
  932. package/dist/esm/transactions/Commands.js.map +0 -1
  933. package/dist/esm/transactions/Inputs.js.map +0 -1
  934. package/dist/esm/transactions/ObjectCache.js.map +0 -1
  935. package/dist/esm/transactions/Transaction.js.map +0 -1
  936. package/dist/esm/transactions/TransactionData.js.map +0 -1
  937. package/dist/esm/transactions/__tests__/Transaction.test.js.map +0 -1
  938. package/dist/esm/transactions/__tests__/bcs.test.js.map +0 -1
  939. package/dist/esm/transactions/data/internal.js.map +0 -1
  940. package/dist/esm/transactions/data/v1.js.map +0 -1
  941. package/dist/esm/transactions/data/v2.js.map +0 -1
  942. package/dist/esm/transactions/executor/caching.js.map +0 -1
  943. package/dist/esm/transactions/executor/parallel.js.map +0 -1
  944. package/dist/esm/transactions/executor/queue.js.map +0 -1
  945. package/dist/esm/transactions/executor/serial.js.map +0 -1
  946. package/dist/esm/transactions/hash.js.map +0 -1
  947. package/dist/esm/transactions/index.js.map +0 -1
  948. package/dist/esm/transactions/intents/CoinWithBalance.js.map +0 -1
  949. package/dist/esm/transactions/object.js.map +0 -1
  950. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js.map +0 -1
  951. package/dist/esm/transactions/pure.js.map +0 -1
  952. package/dist/esm/transactions/resolve.js.map +0 -1
  953. package/dist/esm/transactions/serializer.js.map +0 -1
  954. package/dist/esm/transactions/utils.js.map +0 -1
  955. package/dist/esm/utils/constants.js.map +0 -1
  956. package/dist/esm/utils/derived-objects.js.map +0 -1
  957. package/dist/esm/utils/dynamic-fields.js.map +0 -1
  958. package/dist/esm/utils/format.js.map +0 -1
  959. package/dist/esm/utils/index.js.map +0 -1
  960. package/dist/esm/utils/move-registry.js.map +0 -1
  961. package/dist/esm/utils/sui-types.js.map +0 -1
  962. package/dist/esm/utils/suins.js.map +0 -1
  963. package/dist/esm/verify/index.js.map +0 -1
  964. package/dist/esm/verify/verify.js.map +0 -1
  965. package/dist/esm/version.js.map +0 -1
  966. package/dist/esm/w/call/allocation.js.map +0 -1
  967. package/dist/esm/w/call/arb.js.map +0 -1
  968. package/dist/esm/w/call/arbitration.js.map +0 -1
  969. package/dist/esm/w/call/base.js.map +0 -1
  970. package/dist/esm/w/call/contact.js.map +0 -1
  971. package/dist/esm/w/call/demand.js.map +0 -1
  972. package/dist/esm/w/call/entity.js.map +0 -1
  973. package/dist/esm/w/call/guard-ins.js.map +0 -1
  974. package/dist/esm/w/call/guard.js.map +0 -1
  975. package/dist/esm/w/call/index.js.map +0 -1
  976. package/dist/esm/w/call/machine.js.map +0 -1
  977. package/dist/esm/w/call/order.js.map +0 -1
  978. package/dist/esm/w/call/passport.js.map +0 -1
  979. package/dist/esm/w/call/payment.js.map +0 -1
  980. package/dist/esm/w/call/permission.js.map +0 -1
  981. package/dist/esm/w/call/personal.js.map +0 -1
  982. package/dist/esm/w/call/progress.js.map +0 -1
  983. package/dist/esm/w/call/proof.js.map +0 -1
  984. package/dist/esm/w/call/repository.js.map +0 -1
  985. package/dist/esm/w/call/resource.js.map +0 -1
  986. package/dist/esm/w/call/reward.js.map +0 -1
  987. package/dist/esm/w/call/service.js.map +0 -1
  988. package/dist/esm/w/call/treasury.js.map +0 -1
  989. package/dist/esm/w/call/util.js.map +0 -1
  990. package/dist/esm/w/common.js.map +0 -1
  991. package/dist/esm/w/exception.js.map +0 -1
  992. package/dist/esm/w/index.js.map +0 -1
  993. package/dist/esm/w/local/account.js.map +0 -1
  994. package/dist/esm/w/local/cache.js.map +0 -1
  995. package/dist/esm/w/local/config.js.map +0 -1
  996. package/dist/esm/w/local/index.js.map +0 -1
  997. package/dist/esm/w/local/local.js.map +0 -1
  998. package/dist/esm/w/local/storage.js.map +0 -1
  999. package/dist/esm/w/local/token.js.map +0 -1
  1000. package/dist/esm/w/local/util.js.map +0 -1
  1001. package/dist/esm/w/local/wip.js.map +0 -1
  1002. package/dist/esm/w/messenger/crypto.js.map +0 -1
  1003. package/dist/esm/w/messenger/index.js.map +0 -1
  1004. package/dist/esm/w/messenger/messenger-api.js.map +0 -1
  1005. package/dist/esm/w/messenger/messenger-manager.js.map +0 -1
  1006. package/dist/esm/w/messenger/messenger.js.map +0 -1
  1007. package/dist/esm/w/messenger/server.js.map +0 -1
  1008. package/dist/esm/w/messenger/session.js.map +0 -1
  1009. package/dist/esm/w/messenger/storage.js.map +0 -1
  1010. package/dist/esm/w/messenger/templates/wts-html-template.js.map +0 -1
  1011. package/dist/esm/w/messenger/types.js.map +0 -1
  1012. package/dist/esm/w/messenger/utils.js.map +0 -1
  1013. package/dist/esm/w/query/bult-in.js.map +0 -1
  1014. package/dist/esm/w/query/event.js.map +0 -1
  1015. package/dist/esm/w/query/index.js.map +0 -1
  1016. package/dist/esm/w/query/object.js.map +0 -1
  1017. package/dist/esm/w/query/received.js.map +0 -1
  1018. package/dist/esm/w/query/util.js.map +0 -1
  1019. package/dist/esm/w/util.js.map +0 -1
@@ -1,1202 +1 @@
1
- // Copyright (c) Wowok.
2
- // SPDX-License-Identifier: Apache-2.0
3
- /**
4
- * WIP (Witness Immutable Promise) - 见证不可篡改承诺
5
- *
6
- * WIP 是一种用于通过网络向 AI 传递不可篡改承诺信息的 JSON 文件格式。
7
- * 该格式设计用于确保内容完整性,支持文字和多图片的组合,并通过哈希值防止篡改。
8
- *
9
- * === 完整示例 ===
10
- *
11
- * 基础示例(无签名):
12
- * ```json
13
- * {
14
- * "wip": "https://schema.wip/v1",
15
- * "payload": {
16
- * "content": {
17
- * "text": "我承诺在2024年12月31日前完成项目交付。",
18
- * "format": "plain"
19
- * },
20
- * "media": [
21
- * {
22
- * "id": "img-001",
23
- * "type": "image/png",
24
- * "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==",
25
- * "filename": "contract-signature.png"
26
- * }
27
- * ]
28
- * },
29
- * "meta": {
30
- * "type": "wip",
31
- * "version": "1.0.0",
32
- * "created": "2024-03-15T08:30:00Z",
33
- * "hash": "3a6eb0790f39ac87c94f3856b2dd2c5d110e6811602261a9a923d3bb23adc8b7",
34
- * "algorithm": "sha256"
35
- * }
36
- * }
37
- * ```
38
- *
39
- * 带数字签名的示例:
40
- * ```json
41
- * {
42
- * "wip": "https://schema.wip/v1",
43
- * "payload": {
44
- * "content": {
45
- * "text": "我承诺在2024年12月31日前完成项目交付。",
46
- * "format": "plain"
47
- * },
48
- * "media": [
49
- * {
50
- * "id": "img-001",
51
- * "type": "image/png",
52
- * "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg=="
53
- * }
54
- * ]
55
- * },
56
- * "meta": {
57
- * "type": "wip",
58
- * "version": "1.0.0",
59
- * "created": "2024-03-15T08:30:00Z",
60
- * "hash": "3a6eb0790f39ac87c94f3856b2dd2c5d110e6811602261a9a923d3bb23adc8b7",
61
- * "algorithm": "sha256",
62
- * "signature": {
63
- * "value": "base64EncodedSignatureValue",
64
- * "publicKey": "did:web:example.com#keys-1",
65
- * "algorithm": "Ed25519"
66
- * }
67
- * }
68
- * }
69
- * ```
70
- *
71
- * === 字段说明 ===
72
- *
73
- * - wip: 根级标识,值为 schema URL
74
- * - payload: 内容载荷
75
- * - content: 文字内容
76
- * - text: 文字内容
77
- * - format: 格式 (plain | markdown | html)
78
- * - media: 媒体文件数组
79
- * - id: 唯一标识
80
- * - type: MIME 类型 (image/png, image/jpeg, image/gif, image/webp)
81
- * - data: Base64 编码的文件数据
82
- * - filename: 可选文件名
83
- * - meta: 元数据
84
- * - type: 文件类型标识,固定为 "wip"
85
- * - 全称: Witness Immutable Promise (见证不可篡改承诺)
86
- * - 用途: 用于通过网络向 AI 传递不可篡改的承诺信息,确保内容完整性
87
- * - version: 格式版本号
88
- * - created: 创建时间 (ISO 8601)
89
- * - hash: payload 的 SHA-256 哈希值,格式为纯 hexString(不含 sha256: 前缀)
90
- * - algorithm: 哈希算法标识
91
- * - signature: 可选的数字签名
92
- * - value: Base64 编码的签名值
93
- * - publicKey: 验证公钥或 DID
94
- * - algorithm: 签名算法
95
- *
96
- * === 缓存目录建议 ===
97
- *
98
- * 对于频繁使用的 WIP 文件,建议配置本地缓存目录:
99
- *
100
- * 1. 缓存目录位置:
101
- * - Windows: %LOCALAPPDATA%\wip\cache\ (如 C:\Users\<user>\AppData\Local\wip\cache\)
102
- * - macOS: ~/Library/Caches/wip/
103
- * - Linux: ~/.cache/wip/
104
- *
105
- * 2. 缓存结构:
106
- * ```
107
- * wip-cache/
108
- * ├── files/ # 缓存的 WIP JSON 文件
109
- * │ ├── <hash1>.json
110
- * │ └── <hash2>.json
111
- * ├── images/ # 缓存的图片文件
112
- * │ └── <hash>.png
113
- * └── index.json # 缓存索引,记录元数据
114
- * ```
115
- *
116
- * 3. 缓存策略:
117
- * - 使用 content hash 作为文件名,天然去重
118
- * - 设置最大缓存大小 (如 100MB),LRU 淘汰
119
- * - 缓存过期时间 (如 30 天)
120
- *
121
- * 4. 使用示例:
122
- * ```typescript
123
- * const wip = new WIP();
124
- * const cache = new WipCache("~/.cache/wip");
125
- *
126
- * // 检查缓存
127
- * const cached = cache.get(hash);
128
- * if (cached) return cached;
129
- *
130
- * // 从网络加载并缓存
131
- * const wipFile = await wip.loadFromUrl(url);
132
- * cache.set(hash, wipFile);
133
- * ```
134
- */
135
- import { sha256 } from "@noble/hashes/sha256";
136
- import { bytesToHex } from "@noble/hashes/utils";
137
- import * as fs from "fs";
138
- import * as path from "path";
139
- import * as https from "https";
140
- import * as http from "http";
141
- // ========== 常量定义 ==========
142
- const WIP_SCHEMA_URL = "https://schema.wowok.net/wip/v1";
143
- const WIP_VERSION = "1.0.0";
144
- /**
145
- * 默认限制配置
146
- *
147
- * 设计考虑:
148
- * - maxImageSize: 2MB - 单张图片限制,确保 Base64 编码后不会过大
149
- * - maxTotalSize: 10MB - 整个 WIP 文件大小限制,适合网络传输
150
- * - maxImageCount: 10 - 最多10张图片,满足大多数承诺场景
151
- * - maxTextLength: 10000 - 文字内容长度限制,约5000个汉字
152
- */
153
- export const DEFAULT_LIMITS = {
154
- maxImageSize: 2 * 1024 * 1024, // 2MB
155
- maxTotalSize: 10 * 1024 * 1024, // 10MB
156
- maxImageCount: 10,
157
- maxTextLength: 10000,
158
- };
159
- // ========== 错误类 ==========
160
- export class WipError extends Error {
161
- constructor(message) {
162
- super(message);
163
- this.name = "WipError";
164
- }
165
- }
166
- export class WipValidationError extends WipError {
167
- constructor(message) {
168
- super(message);
169
- this.name = "WipValidationError";
170
- }
171
- }
172
- export class WipSizeError extends WipError {
173
- constructor(message) {
174
- super(message);
175
- this.name = "WipSizeError";
176
- }
177
- }
178
- // ========== 工具函数 ==========
179
- /**
180
- * 检测 MIME 类型从文件数据
181
- */
182
- function detectMimeType(buffer) {
183
- // PNG: 89 50 4E 47
184
- if (buffer.length >= 4 &&
185
- buffer[0] === 0x89 &&
186
- buffer[1] === 0x50 &&
187
- buffer[2] === 0x4e &&
188
- buffer[3] === 0x47) {
189
- return "image/png";
190
- }
191
- // JPEG: FF D8 FF
192
- if (buffer.length >= 3 &&
193
- buffer[0] === 0xff &&
194
- buffer[1] === 0xd8 &&
195
- buffer[2] === 0xff) {
196
- return "image/jpeg";
197
- }
198
- // GIF: GIF87a 或 GIF89a
199
- if (buffer.length >= 6 &&
200
- buffer[0] === 0x47 &&
201
- buffer[1] === 0x49 &&
202
- buffer[2] === 0x46) {
203
- return "image/gif";
204
- }
205
- // WebP: RIFF....WEBP
206
- if (buffer.length >= 12 &&
207
- buffer[0] === 0x52 &&
208
- buffer[1] === 0x49 &&
209
- buffer[2] === 0x46 &&
210
- buffer[3] === 0x46 &&
211
- buffer[8] === 0x57 &&
212
- buffer[9] === 0x45 &&
213
- buffer[10] === 0x42 &&
214
- buffer[11] === 0x50) {
215
- return "image/webp";
216
- }
217
- return null;
218
- }
219
- /**
220
- * 将 Uint8Array 转换为 Base64 字符串
221
- */
222
- function uint8ArrayToBase64(array) {
223
- let binary = "";
224
- const len = array.length;
225
- for (let i = 0; i < len; i++) {
226
- binary += String.fromCharCode(array[i]);
227
- }
228
- return btoa(binary);
229
- }
230
- /**
231
- * 将 Base64 字符串转换为 Uint8Array
232
- */
233
- function base64ToUint8Array(base64) {
234
- const binary = atob(base64);
235
- const len = binary.length;
236
- const array = new Uint8Array(len);
237
- for (let i = 0; i < len; i++) {
238
- array[i] = binary.charCodeAt(i);
239
- }
240
- return array;
241
- }
242
- /**
243
- * 规范化 JSON 对象(按键名排序)
244
- */
245
- function canonicalizeJson(obj) {
246
- if (obj === null || typeof obj !== "object") {
247
- return JSON.stringify(obj);
248
- }
249
- if (Array.isArray(obj)) {
250
- return "[" + obj.map(canonicalizeJson).join(",") + "]";
251
- }
252
- const sortedObj = obj;
253
- const keys = Object.keys(sortedObj).sort();
254
- const pairs = keys.map((key) => `"${key}":${canonicalizeJson(sortedObj[key])}`);
255
- return "{" + pairs.join(",") + "}";
256
- }
257
- /**
258
- * 计算 SHA-256 哈希
259
- */
260
- function computeHash(data) {
261
- const hash = sha256(new TextEncoder().encode(data));
262
- return bytesToHex(hash);
263
- }
264
- /**
265
- * 生成唯一 ID
266
- */
267
- function generateId(prefix) {
268
- const timestamp = Date.now().toString(36);
269
- const random = Math.random().toString(36).substring(2, 8);
270
- return `${prefix}-${timestamp}-${random}`;
271
- }
272
- /**
273
- * 获取 MIME 类型对应的文件扩展名
274
- */
275
- function getExtensionFromMimeType(mimeType) {
276
- const map = {
277
- "image/png": "png",
278
- "image/jpeg": "jpg",
279
- "image/gif": "gif",
280
- "image/webp": "webp",
281
- };
282
- return map[mimeType] || "bin";
283
- }
284
- // ========== 文件加载器类(复用代码) ==========
285
- /**
286
- * 统一的资源加载器
287
- * 支持本地文件、网络 URL、Data URL
288
- */
289
- class ResourceLoader {
290
- maxSize;
291
- constructor(maxSize) {
292
- this.maxSize = maxSize;
293
- }
294
- /**
295
- * 加载资源
296
- */
297
- async load(source) {
298
- // 空字符串检查
299
- if (!source || source.trim() === "") {
300
- throw new WipError("WIP file path cannot be empty");
301
- }
302
- // 处理 Data URL
303
- if (source.startsWith("data:")) {
304
- return this.loadFromDataUrl(source);
305
- }
306
- // 处理 HTTP/HTTPS 网络 URL
307
- if (source.startsWith("http://") || source.startsWith("https://")) {
308
- return this.loadFromNetwork(source);
309
- }
310
- // 处理本地文件
311
- return this.loadFromFile(source);
312
- }
313
- /**
314
- * 从 Data URL 加载
315
- */
316
- loadFromDataUrl(dataUrl) {
317
- const match = dataUrl.match(/^data:image\/(\w+);base64,(.+)$/);
318
- if (!match) {
319
- throw new WipValidationError(`Invalid data URL format: ${dataUrl.substring(0, 50)}...`);
320
- }
321
- const base64Data = match[2];
322
- try {
323
- return base64ToUint8Array(base64Data);
324
- }
325
- catch (error) {
326
- throw new WipError(`Failed to decode data URL: ${error}`);
327
- }
328
- }
329
- /**
330
- * 从网络加载
331
- */
332
- async loadFromNetwork(url) {
333
- return new Promise((resolve, reject) => {
334
- const timeoutId = setTimeout(() => {
335
- reject(new WipError(`Network timeout while fetching: ${url}`));
336
- }, 30000);
337
- const isHttps = url.startsWith("https:");
338
- const client = isHttps ? https : http;
339
- const options = {
340
- headers: {
341
- Accept: "application/json,*/*",
342
- },
343
- };
344
- // 允许不安全的 SSL 连接(用于测试环境)
345
- // 注意:生产环境应该使用有效的 SSL 证书
346
- if (isHttps) {
347
- options.rejectUnauthorized = false;
348
- }
349
- const request = client.get(url, options, (response) => {
350
- clearTimeout(timeoutId);
351
- if (response.statusCode !== 200) {
352
- reject(new WipError(`Failed to fetch: ${response.statusCode} ${response.statusMessage}`));
353
- return;
354
- }
355
- // 检查 Content-Length
356
- const contentLength = response.headers["content-length"];
357
- if (contentLength && parseInt(contentLength) > this.maxSize) {
358
- reject(new WipSizeError(`Resource from ${url} size (${contentLength} bytes) exceeds limit (${this.maxSize} bytes)`));
359
- return;
360
- }
361
- const chunks = [];
362
- response.on("data", (chunk) => {
363
- chunks.push(chunk);
364
- });
365
- response.on("end", () => {
366
- const buffer = Buffer.concat(chunks);
367
- if (buffer.length > this.maxSize) {
368
- reject(new WipSizeError(`Resource from ${url} size (${buffer.length} bytes) exceeds limit (${this.maxSize} bytes)`));
369
- return;
370
- }
371
- resolve(new Uint8Array(buffer));
372
- });
373
- response.on("error", (error) => {
374
- reject(new WipError(`Network error: ${error.message}`));
375
- });
376
- });
377
- request.on("error", (error) => {
378
- clearTimeout(timeoutId);
379
- reject(new WipError(`Network error: ${error.message}`));
380
- });
381
- });
382
- }
383
- /**
384
- * 从本地文件加载
385
- */
386
- loadFromFile(filePath) {
387
- const resolvedPath = path.resolve(filePath);
388
- if (!fs.existsSync(resolvedPath)) {
389
- throw new WipError(`File not found: ${resolvedPath}`);
390
- }
391
- const stats = fs.statSync(resolvedPath);
392
- if (!stats.isFile()) {
393
- throw new WipError(`Path is not a file: ${resolvedPath}`);
394
- }
395
- if (stats.size > this.maxSize) {
396
- throw new WipSizeError(`File ${resolvedPath} size (${stats.size} bytes) exceeds limit (${this.maxSize} bytes)`);
397
- }
398
- const buffer = fs.readFileSync(resolvedPath);
399
- return new Uint8Array(buffer);
400
- }
401
- }
402
- // ========== WIP 类 ==========
403
- export class WIP {
404
- limits;
405
- resourceLoader;
406
- constructor(limits = {}) {
407
- this.limits = { ...DEFAULT_LIMITS, ...limits };
408
- this.resourceLoader = new ResourceLoader(this.limits.maxImageSize);
409
- }
410
- /**
411
- * 创建 WIP 文件
412
- */
413
- async create(options) {
414
- // 验证文字长度
415
- if (options.text.length > this.limits.maxTextLength) {
416
- throw new WipSizeError(`Text length (${options.text.length}) exceeds limit (${this.limits.maxTextLength})`);
417
- }
418
- // 处理图片
419
- const media = [];
420
- if (options.images && options.images.length > 0) {
421
- if (options.images.length > this.limits.maxImageCount) {
422
- throw new WipSizeError(`Image count (${options.images.length}) exceeds limit (${this.limits.maxImageCount})`);
423
- }
424
- for (let i = 0; i < options.images.length; i++) {
425
- const wipMedia = await this.processImage(options.images[i], i);
426
- media.push(wipMedia);
427
- }
428
- }
429
- // 构建 payload
430
- const payload = {
431
- content: {
432
- text: options.text,
433
- format: options.textFormat || "plain",
434
- },
435
- media,
436
- };
437
- // 计算哈希
438
- const canonicalPayload = canonicalizeJson(payload);
439
- const hash = computeHash(canonicalPayload);
440
- // 构建 meta
441
- const meta = {
442
- type: "wip",
443
- version: WIP_VERSION,
444
- created: new Date().toISOString(),
445
- hash,
446
- algorithm: "sha256",
447
- };
448
- // 添加签名
449
- if (options.signKeyPair) {
450
- const signatureValue = await this.sign(hash, options.signKeyPair.privateKey, options.signAlgorithm || "Ed25519");
451
- meta.signature = {
452
- value: signatureValue,
453
- publicKey: options.signKeyPair.publicKey,
454
- algorithm: options.signAlgorithm || "Ed25519",
455
- };
456
- }
457
- const wipFile = {
458
- wip: WIP_SCHEMA_URL,
459
- payload,
460
- meta,
461
- };
462
- // 验证总大小
463
- const jsonString = JSON.stringify(wipFile);
464
- if (jsonString.length > this.limits.maxTotalSize) {
465
- throw new WipSizeError(`Total WIP file size (${jsonString.length} bytes) exceeds limit (${this.limits.maxTotalSize} bytes)`);
466
- }
467
- return wipFile;
468
- }
469
- /**
470
- * 处理图片源
471
- */
472
- async processImage(source, index) {
473
- const data = await this.resourceLoader.load(source.source);
474
- const mimeType = detectMimeType(data);
475
- if (!mimeType) {
476
- throw new WipValidationError(`Unsupported image format: ${source.source}`);
477
- }
478
- let filename = source.filename;
479
- if (!filename) {
480
- if (source.source.startsWith("http")) {
481
- const url = new URL(source.source);
482
- const pathname = url.pathname;
483
- filename =
484
- pathname.substring(pathname.lastIndexOf("/") + 1) ||
485
- `image-${index}`;
486
- }
487
- else {
488
- filename =
489
- source.source.substring(source.source.lastIndexOf("/") + 1) || `image-${index}`;
490
- }
491
- }
492
- return {
493
- id: source.id || generateId("img"),
494
- type: mimeType,
495
- data: uint8ArrayToBase64(data),
496
- filename,
497
- };
498
- }
499
- /**
500
- * 签名(真实实现)
501
- */
502
- async sign(data, privateKey, algorithm) {
503
- if (algorithm !== "Ed25519") {
504
- throw new WipError(`Unsupported signature algorithm: ${algorithm}`);
505
- }
506
- const { Ed25519Keypair } = await import("../../keypairs/ed25519/index.js");
507
- const keypair = Ed25519Keypair.fromSecretKey(privateKey);
508
- const signature = await keypair.sign(new TextEncoder().encode(data));
509
- return uint8ArrayToBase64(signature);
510
- }
511
- /**
512
- * 验证 WIP 文件(私有方法,内部使用)
513
- */
514
- async verify(wipFile) {
515
- try {
516
- if (!wipFile.wip || !wipFile.payload || !wipFile.meta) {
517
- return { valid: false, error: "Invalid WIP file structure" };
518
- }
519
- if (wipFile.meta.type !== "wip") {
520
- return {
521
- valid: false,
522
- error: `Invalid meta.type: ${wipFile.meta.type}`,
523
- };
524
- }
525
- const canonicalPayload = canonicalizeJson(wipFile.payload);
526
- const computedHash = computeHash(canonicalPayload);
527
- if (computedHash !== wipFile.meta.hash) {
528
- return {
529
- valid: false,
530
- error: "Hash mismatch - content has been tampered",
531
- };
532
- }
533
- const signatures = [];
534
- if (wipFile.meta.signature) {
535
- // 支持多签名验证
536
- const sigArray = Array.isArray(wipFile.meta.signature)
537
- ? wipFile.meta.signature
538
- : [wipFile.meta.signature];
539
- for (const sig of sigArray) {
540
- const signValid = await this.verifySignature(wipFile.meta.hash, sig.value, sig.publicKey, sig.algorithm);
541
- signatures.push({
542
- address: sig.address,
543
- valid: signValid,
544
- });
545
- if (!signValid) {
546
- return {
547
- valid: false,
548
- error: "Invalid signature",
549
- signatures,
550
- };
551
- }
552
- }
553
- }
554
- return { valid: true, signatures };
555
- }
556
- catch (error) {
557
- return { valid: false, error: `Verification error: ${error}` };
558
- }
559
- }
560
- /**
561
- * 验证签名
562
- */
563
- async verifySignature(data, signature, publicKey, algorithm) {
564
- if (algorithm !== "Ed25519") {
565
- throw new WipError(`Unsupported signature algorithm: ${algorithm}`);
566
- }
567
- try {
568
- const { Ed25519PublicKey } = await import("../../keypairs/ed25519/publickey.js");
569
- let pkToUse = publicKey;
570
- if (publicKey.startsWith("0x")) {
571
- const buffer = Buffer.from(publicKey.slice(2), "hex");
572
- if (buffer.length === 33) {
573
- pkToUse = buffer.slice(1).toString("base64");
574
- }
575
- else if (buffer.length === 32) {
576
- pkToUse = buffer.toString("base64");
577
- }
578
- }
579
- else {
580
- // 处理 base64 公钥(可能是 33 字节带 flag 或 32 字节原始公钥)
581
- try {
582
- const buffer = Buffer.from(publicKey, "base64");
583
- if (buffer.length === 33) {
584
- // 33 字节:包含 flag,取后 32 字节
585
- pkToUse = buffer.slice(1).toString("base64");
586
- }
587
- // 32 字节:直接使用
588
- }
589
- catch {
590
- // 解码失败,使用原始值
591
- }
592
- }
593
- const pubKey = new Ed25519PublicKey(pkToUse);
594
- const signatureBytes = Uint8Array.from(Buffer.from(signature, "base64"));
595
- return await pubKey.verify(new TextEncoder().encode(data), signatureBytes);
596
- }
597
- catch (error) {
598
- console.error("Signature verification error:", error);
599
- return false;
600
- }
601
- }
602
- /**
603
- * 转换为 HTML
604
- */
605
- async toHtml(wipFile, options = {}) {
606
- const { title = "WIP Document", theme = "light" } = options;
607
- const { payload, meta } = wipFile;
608
- const escapeHtml = (text) => {
609
- return text
610
- .replace(/&/g, "&amp;")
611
- .replace(/</g, "&lt;")
612
- .replace(/>/g, "&gt;")
613
- .replace(/"/g, "&quot;")
614
- .replace(/'/g, "&#039;");
615
- };
616
- const formatText = (text, format) => {
617
- switch (format) {
618
- case "html":
619
- return text;
620
- case "markdown":
621
- return text
622
- .replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>")
623
- .replace(/\*(.+?)\*/g, "<em>$1</em>")
624
- .replace(/\n/g, "<br>");
625
- case "plain":
626
- default:
627
- return escapeHtml(text).replace(/\n/g, "<br>");
628
- }
629
- };
630
- const bgColor = theme === "dark" ? "#1a1a1a" : "#ffffff";
631
- const textColor = theme === "dark" ? "#e0e0e0" : "#333333";
632
- const borderColor = theme === "dark" ? "#444444" : "#e0e0e0";
633
- const verifiedColor = "#4caf50";
634
- const warningColor = "#ff9800";
635
- const verifyResult = await this.verify(wipFile);
636
- const statusBadge = verifyResult.valid
637
- ? `<span style="background: ${verifiedColor}; color: white; padding: 4px 8px; border-radius: 4px; font-size: 12px;">✓ Verified</span>`
638
- : `<span style="background: ${warningColor}; color: white; padding: 4px 8px; border-radius: 4px; font-size: 12px;">⚠ Tampered</span>`;
639
- const imagesHtml = payload.media
640
- .map((media) => `
641
- <div style="margin: 16px 0; border: 1px solid ${borderColor}; border-radius: 8px; overflow: hidden;">
642
- <img src="data:${media.type};base64,${media.data}"
643
- style="max-width: 100%; height: auto; display: block;"
644
- alt="${escapeHtml(media.filename || media.id)}" />
645
- ${media.filename ? `<div style="padding: 8px; font-size: 12px; color: #666; background: ${theme === "dark" ? "#2a2a2a" : "#f5f5f5"}; border-top: 1px solid ${borderColor};">${escapeHtml(media.filename)}</div>` : ""}
646
- </div>
647
- `)
648
- .join("");
649
- // 签名详情不在 HTML 中显示,只显示验证结果
650
- return `<!DOCTYPE html>
651
- <html lang="en">
652
- <head>
653
- <meta charset="UTF-8">
654
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
655
- <title>${escapeHtml(title)}</title>
656
- </head>
657
- <body style="margin: 0; padding: 20px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: ${bgColor}; color: ${textColor}; line-height: 1.6;">
658
- <div style="max-width: 800px; margin: 0 auto; background: ${theme === "dark" ? "#252525" : "#ffffff"}; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); overflow: hidden;">
659
- <div style="padding: 20px 24px; border-bottom: 1px solid ${borderColor};">
660
- <div style="display: flex; justify-content: space-between; align-items: center;">
661
- <div>
662
- <h1 style="margin: 0; font-size: 20px; font-weight: 600;">${escapeHtml(title)}</h1>
663
- <div style="font-size: 12px; color: #666; margin-top: 4px;">
664
- WIP v${meta.version} • ${new Date(meta.created).toLocaleString()}
665
- </div>
666
- </div>
667
- ${statusBadge}
668
- </div>
669
- <div style="font-size: 11px; color: #999; margin-top: 12px; padding: 8px; background: ${theme === "dark" ? "#2a2a2a" : "#f5f5f5"}; border-radius: 4px; font-style: italic;">
670
- Important Note: This page is for document browsing and verification reference only. Please verify the document integrity through the API using the WIP file.
671
- </div>
672
- ${verifyResult.signatures && verifyResult.signatures.length > 0
673
- ? `
674
- <div style="margin-top: 12px; padding: 8px; background: ${theme === "dark" ? "#2a3f2a" : "#e8f5e9"}; border-radius: 4px;">
675
- <div style="font-size: 11px; color: ${theme === "dark" ? "#81c784" : "#2e7d32"}; margin-bottom: 4px;">✓ Signature Verification (${verifyResult.signatures.length} signature${verifyResult.signatures.length > 1 ? "s" : ""})</div>
676
- ${verifyResult.signatures
677
- .map((s, idx) => `
678
- <div style="font-size: 10px; color: ${textColor}; margin-left: 8px;">
679
- ${idx + 1}. ${s.address ? escapeHtml(s.address.slice(0, 20)) + "..." : "Unknown"}: ${s.valid ? '<span style="color: #4caf50;">✓ Valid</span>' : '<span style="color: #f44336;">✗ Invalid</span>'}
680
- </div>
681
- `)
682
- .join("")}
683
- </div>
684
- `
685
- : ""}
686
- </div>
687
- <div style="padding: 24px;">
688
- <div style="font-size: 16px; line-height: 1.8; margin-bottom: 24px;">
689
- ${formatText(payload.content.text, payload.content.format)}
690
- </div>
691
- ${imagesHtml}
692
- </div>
693
- <div style="padding: 16px 24px; background: ${theme === "dark" ? "#2a2a2a" : "#f8f9fa"}; border-top: 1px solid ${borderColor}; font-size: 11px; color: #666;">
694
- <div style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px;">
695
- <div>
696
- <strong>Hash:</strong> <code style="background: ${theme === "dark" ? "#333" : "#e9ecef"}; padding: 2px 6px; border-radius: 3px;">${escapeHtml(meta.hash)}</code>
697
- </div>
698
- <div>
699
- ${verifyResult.valid ? "Content integrity verified" : `Verification failed: ${escapeHtml(verifyResult.error || "Unknown error")}`}
700
- </div>
701
- </div>
702
- </div>
703
- </div>
704
- </body>
705
- </html>`;
706
- }
707
- /**
708
- * 序列化为 JSON
709
- */
710
- stringify(wipFile, pretty = true) {
711
- return pretty
712
- ? JSON.stringify(wipFile, null, 2)
713
- : JSON.stringify(wipFile);
714
- }
715
- /**
716
- * 从 JSON 解析
717
- */
718
- parse(jsonString) {
719
- try {
720
- const obj = JSON.parse(jsonString);
721
- if (!obj.wip || !obj.payload || !obj.meta) {
722
- throw new WipValidationError("Invalid WIP file structure");
723
- }
724
- return obj;
725
- }
726
- catch (error) {
727
- if (error instanceof WipError) {
728
- throw error;
729
- }
730
- throw new WipValidationError(`Failed to parse WIP file: ${error}`);
731
- }
732
- }
733
- /**
734
- * 从 URL 或本地路径加载 WIP 文件
735
- */
736
- async load(source) {
737
- const data = await this.resourceLoader.load(source);
738
- const content = new TextDecoder().decode(data);
739
- return this.parse(content);
740
- }
741
- /**
742
- * 获取 WIP 文件的哈希值(用于 Service 销售)
743
- * @param wipFile WIP 文件
744
- * @returns 纯哈希值(不含 sha256: 前缀)
745
- */
746
- getHash(wipFile) {
747
- const hash = wipFile.meta.hash;
748
- // 移除 sha256: 前缀如果存在
749
- if (hash.includes(":")) {
750
- return hash.split(":")[1];
751
- }
752
- return hash;
753
- }
754
- /**
755
- * 提取图片
756
- */
757
- extractImages(wipFile, outputDir) {
758
- if (!fs.existsSync(outputDir)) {
759
- fs.mkdirSync(outputDir, { recursive: true });
760
- }
761
- const savedPaths = [];
762
- for (const media of wipFile.payload.media) {
763
- const ext = getExtensionFromMimeType(media.type);
764
- const filename = media.filename || `${media.id}.${ext}`;
765
- const outputPath = path.join(outputDir, filename);
766
- const buffer = Buffer.from(base64ToUint8Array(media.data));
767
- fs.writeFileSync(outputPath, buffer);
768
- savedPaths.push(outputPath);
769
- }
770
- return savedPaths;
771
- }
772
- /**
773
- * 保存到文件
774
- */
775
- save(wipFile, filePath, pretty = true) {
776
- const dir = path.dirname(filePath);
777
- if (!fs.existsSync(dir)) {
778
- fs.mkdirSync(dir, { recursive: true });
779
- }
780
- fs.writeFileSync(filePath, this.stringify(wipFile, pretty), "utf-8");
781
- }
782
- /**
783
- * 获取限制配置
784
- */
785
- getLimits() {
786
- return { ...this.limits };
787
- }
788
- /**
789
- * 更新限制配置
790
- */
791
- setLimits(limits) {
792
- this.limits = { ...this.limits, ...limits };
793
- this.resourceLoader = new ResourceLoader(this.limits.maxImageSize);
794
- }
795
- }
796
- // ========== 便捷函数 ==========
797
- export async function createWip(options, limits) {
798
- const wip = new WIP(limits);
799
- return wip.create(options);
800
- }
801
- export async function verifyWip(wipFile, hash_equal) {
802
- // 统一处理哈希值,去掉 sha256: 前缀后再比较
803
- if (hash_equal !== undefined) {
804
- const fileHash = wipFile.meta.hash
805
- .toLowerCase()
806
- .replace(/^sha256:/, "");
807
- const expectedHash = hash_equal.toLowerCase().replace(/^sha256:/, "");
808
- if (fileHash !== expectedHash) {
809
- return { valid: false, error: "Hash mismatch" };
810
- }
811
- }
812
- const wip = new WIP();
813
- const result = await wip.verify(wipFile);
814
- return { valid: result.valid, error: result.error };
815
- }
816
- export async function wipToHtml(wipFile, options) {
817
- const wip = new WIP();
818
- return wip.toHtml(wipFile, options);
819
- }
820
- export async function loadWip(source, limits) {
821
- const wip = new WIP(limits);
822
- return wip.load(source);
823
- }
824
- /**
825
- * 生成 WIP 文件并保存到指定路径
826
- *
827
- * @param options 生成选项
828
- * @param outputPath 输出文件路径
829
- * @param limits 可选的限制配置
830
- * @returns 生成的 WIP 文件路径
831
- */
832
- export async function generate_wip(options, outputPath) {
833
- const wip = new WIP(DEFAULT_LIMITS);
834
- // 1. 创建 WIP 文件(无签名)
835
- let wipFile = await wip.create({
836
- text: options.markdown_text,
837
- textFormat: "markdown",
838
- images: options.images,
839
- });
840
- // 2. 如果指定了 account,使用 Account 模块进行签名
841
- if (options.account) {
842
- // eslint-disable-next-line import/no-cycle
843
- const { Account } = await import("./account.js");
844
- const address = await Account.Instance().get_address(options.account);
845
- if (!address) {
846
- throw new WipValidationError(`Account not found: ${options.account}`);
847
- }
848
- // 使用 Account 签名
849
- const signature = await Account.Instance().sign(address, wipFile.meta.hash);
850
- // 获取公钥
851
- const accountData = await Account.Instance().get(address);
852
- if (!accountData || !accountData.pubkey) {
853
- throw new WipValidationError(`Cannot get public key for account: ${address}`);
854
- }
855
- // 转换公钥格式为 base64 (32字节)
856
- let publicKeyBase64;
857
- if (accountData.pubkey.startsWith("0x")) {
858
- const buffer = Buffer.from(accountData.pubkey.slice(2), "hex");
859
- if (buffer.length === 33) {
860
- publicKeyBase64 = buffer.slice(1).toString("base64");
861
- }
862
- else if (buffer.length === 32) {
863
- publicKeyBase64 = buffer.toString("base64");
864
- }
865
- else {
866
- throw new WipValidationError(`Invalid public key length: ${buffer.length}, expected 32 or 33 bytes`);
867
- }
868
- }
869
- else {
870
- publicKeyBase64 = accountData.pubkey;
871
- }
872
- // 转换签名为 base64
873
- const signatureBase64 = Buffer.from(signature.slice(2), "hex").toString("base64");
874
- // 构建新签名
875
- const newSignature = {
876
- value: signatureBase64,
877
- publicKey: publicKeyBase64,
878
- algorithm: "Ed25519",
879
- address,
880
- };
881
- // 处理多签名:如果已有签名,追加到数组中
882
- let signatures;
883
- if (wipFile.meta.signature) {
884
- // 如果已有签名是数组,追加;如果是单个,转换为数组
885
- signatures = Array.isArray(wipFile.meta.signature)
886
- ? [...wipFile.meta.signature, newSignature]
887
- : [wipFile.meta.signature, newSignature];
888
- }
889
- else {
890
- signatures = [newSignature];
891
- }
892
- // 添加签名到 meta
893
- wipFile = {
894
- ...wipFile,
895
- meta: {
896
- ...wipFile.meta,
897
- signature: signatures,
898
- },
899
- };
900
- }
901
- wip.save(wipFile, outputPath, true);
902
- return outputPath;
903
- }
904
- /**
905
- * 验证 WIP 文件
906
- * 验证内容包括:
907
- * 1. 基本结构验证
908
- * 2. 哈希值验证(内容完整性)
909
- * 3. 数字签名验证(如果存在)
910
- * 4. 可选:要求必须有签名
911
- *
912
- * @param wipFilePath WIP 文件路径(支持本地文件和网络 URL)
913
- * @param hash_equal 可选的预期哈希值,用于验证文件哈希是否匹配
914
- * @param requireSignature 可选的标志,如果为 true,则文件必须有签名
915
- * @returns 验证结果,包含哈希验证和签名验证状态
916
- */
917
- export async function verify_wip(wipFilePath, hash_equal, requireSignature) {
918
- const wip = new WIP();
919
- // 加载 WIP 文件
920
- let wipFile;
921
- try {
922
- wipFile = await wip.load(wipFilePath);
923
- }
924
- catch (error) {
925
- return {
926
- valid: false,
927
- error: `Failed to load WIP file: ${error}`,
928
- hashValid: false,
929
- hasSignature: false,
930
- };
931
- }
932
- // 验证基本结构
933
- if (!wipFile.wip || !wipFile.payload || !wipFile.meta) {
934
- return {
935
- valid: false,
936
- error: "Invalid WIP file structure",
937
- hashValid: false,
938
- hasSignature: false,
939
- };
940
- }
941
- if (wipFile.meta.type !== "wip") {
942
- return {
943
- valid: false,
944
- error: `Invalid meta.type: ${wipFile.meta.type}`,
945
- hashValid: false,
946
- hasSignature: !!wipFile.meta.signature,
947
- };
948
- }
949
- // 如果提供了 hash_equal,先验证文件 meta.hash 是否匹配
950
- // 统一处理哈希值,去掉 sha256: 前缀后再比较
951
- if (hash_equal !== undefined) {
952
- const fileHash = wipFile.meta.hash
953
- .toLowerCase()
954
- .replace(/^sha256:/, "");
955
- const expectedHash = hash_equal.toLowerCase().replace(/^sha256:/, "");
956
- if (fileHash !== expectedHash) {
957
- return {
958
- valid: false,
959
- error: "Hash mismatch",
960
- hashValid: false,
961
- hasSignature: !!wipFile.meta.signature,
962
- };
963
- }
964
- }
965
- // 检查是否要求签名但文件没有签名
966
- if (requireSignature && !wipFile.meta.signature) {
967
- return {
968
- valid: false,
969
- error: "Signature required but WIP file has no signature",
970
- hashValid: true, // 哈希可能有效,但缺少签名
971
- hasSignature: false,
972
- };
973
- }
974
- // 验证哈希
975
- const canonicalPayload = canonicalizeJson(wipFile.payload);
976
- const computedHash = computeHash(canonicalPayload);
977
- const hashValid = computedHash === wipFile.meta.hash;
978
- if (!hashValid) {
979
- return {
980
- valid: false,
981
- error: "Hash mismatch - content has been tampered",
982
- hashValid: false,
983
- hasSignature: !!wipFile.meta.signature,
984
- };
985
- }
986
- // 验证签名(如果存在)
987
- let signatureValid;
988
- const signatures = [];
989
- if (wipFile.meta.signature) {
990
- // 支持多签名验证
991
- const sigArray = Array.isArray(wipFile.meta.signature)
992
- ? wipFile.meta.signature
993
- : [wipFile.meta.signature];
994
- let allValid = true;
995
- for (const sig of sigArray) {
996
- const isValid = await wip["verifySignature"](wipFile.meta.hash, sig.value, sig.publicKey, sig.algorithm);
997
- // 通过公钥推导地址
998
- let address;
999
- try {
1000
- const { Ed25519PublicKey } = await import("../../keypairs/ed25519/publickey.js");
1001
- const pubKey = new Ed25519PublicKey(sig.publicKey);
1002
- address = pubKey.toWAddress();
1003
- }
1004
- catch {
1005
- // 推导失败不影响验证结果
1006
- }
1007
- signatures.push({
1008
- publicKey: sig.publicKey,
1009
- address,
1010
- valid: isValid,
1011
- });
1012
- if (!isValid) {
1013
- allValid = false;
1014
- }
1015
- }
1016
- signatureValid = allValid;
1017
- if (!signatureValid) {
1018
- // 收集失败的地址
1019
- const failedAddresses = signatures
1020
- .filter((s) => !s.valid && s.address)
1021
- .map((s) => s.address);
1022
- return {
1023
- valid: false,
1024
- error: `Signatures from the following addresses are invalid: ${failedAddresses.join(", ")}`,
1025
- hashValid: true,
1026
- signatureValid: false,
1027
- hasSignature: true,
1028
- signatures,
1029
- };
1030
- }
1031
- }
1032
- return {
1033
- valid: true,
1034
- hashValid: true,
1035
- signatureValid,
1036
- hasSignature: !!wipFile.meta.signature,
1037
- signatures: signatures.length > 0 ? signatures : undefined,
1038
- };
1039
- }
1040
- /**
1041
- * 对 WIP 文件进行签名
1042
- *
1043
- * 该函数会加载 WIP 文件、验证格式、使用 Account 添加数字签名并保存。
1044
- * 支持多签名,如果文件已有签名,新签名会追加到签名列表中。
1045
- *
1046
- * @param wipFilePath WIP 文件路径
1047
- * @param account 签名账号(账户名或地址)
1048
- * @param outputPath 输出文件路径(可选,默认覆盖原文件)
1049
- * @returns 签名后的 WIP 文件路径
1050
- */
1051
- export async function sign_wip(wipFilePath, account, outputPath) {
1052
- const wip = new WIP();
1053
- // 1. 加载 WIP 文件
1054
- const wipFile = await wip.load(wipFilePath);
1055
- // 2. 验证基本结构
1056
- if (!wipFile.wip || !wipFile.payload || !wipFile.meta) {
1057
- throw new WipValidationError("Invalid WIP file structure");
1058
- }
1059
- if (wipFile.meta.type !== "wip") {
1060
- throw new WipValidationError(`Invalid meta.type: ${wipFile.meta.type}`);
1061
- }
1062
- // 3. 获取签名者地址
1063
- const { Account } = await import("./account.js");
1064
- const address = await Account.Instance().get_address(account);
1065
- if (!address) {
1066
- throw new WipValidationError(`Account not found: ${account}`);
1067
- }
1068
- // 4. 使用 Account 签名(同时获取公钥)
1069
- const signResult = await Account.Instance().signData(address, wipFile.meta.hash);
1070
- // 5. 转换公钥格式为 base64 (32字节)
1071
- let publicKeyBase64;
1072
- const pk = signResult.publicKey;
1073
- if (pk.startsWith("0x")) {
1074
- const buffer = Buffer.from(pk.slice(2), "hex");
1075
- if (buffer.length === 33) {
1076
- publicKeyBase64 = buffer.slice(1).toString("base64");
1077
- }
1078
- else if (buffer.length === 32) {
1079
- publicKeyBase64 = buffer.toString("base64");
1080
- }
1081
- else {
1082
- throw new WipValidationError(`Invalid public key length: ${buffer.length}, expected 32 or 33 bytes`);
1083
- }
1084
- }
1085
- else {
1086
- publicKeyBase64 = pk;
1087
- }
1088
- // 6. 构建新签名
1089
- const newSignature = {
1090
- value: Buffer.from(signResult.signature.slice(2), "hex").toString("base64"),
1091
- publicKey: publicKeyBase64,
1092
- algorithm: "Ed25519",
1093
- address: signResult.address,
1094
- };
1095
- // 7. 处理多签名:相同公钥只能有一个签名(替换已有签名)
1096
- let signatures;
1097
- if (wipFile.meta.signature) {
1098
- // 将已有签名转换为数组
1099
- const existingSigs = Array.isArray(wipFile.meta.signature)
1100
- ? [...wipFile.meta.signature]
1101
- : [wipFile.meta.signature];
1102
- // 检查是否已存在相同公钥的签名
1103
- const existingIndex = existingSigs.findIndex((sig) => sig.publicKey === publicKeyBase64);
1104
- if (existingIndex >= 0) {
1105
- // 替换已有签名
1106
- existingSigs[existingIndex] = newSignature;
1107
- signatures = existingSigs;
1108
- }
1109
- else {
1110
- // 追加新签名
1111
- signatures = [...existingSigs, newSignature];
1112
- }
1113
- }
1114
- else {
1115
- signatures = [newSignature];
1116
- }
1117
- // 8. 添加签名到 meta
1118
- const signedWipFile = {
1119
- ...wipFile,
1120
- meta: {
1121
- ...wipFile.meta,
1122
- signature: signatures,
1123
- },
1124
- };
1125
- // 10. 确定保存路径
1126
- let savePath;
1127
- if (outputPath) {
1128
- savePath = outputPath;
1129
- }
1130
- else {
1131
- // 在原文件名前添加 signed_ 前缀
1132
- const dir = path.dirname(wipFilePath);
1133
- const ext = path.extname(wipFilePath);
1134
- const baseName = path.basename(wipFilePath, ext);
1135
- savePath = path.join(dir, `signed_${baseName}${ext}`);
1136
- }
1137
- wip.save(signedWipFile, savePath, true);
1138
- return savePath;
1139
- }
1140
- /**
1141
- * 将 WIP 文件或文件夹转换为 HTML
1142
- *
1143
- * @param wipPath WIP 文件路径或文件夹路径
1144
- * @param options 转换选项(支持 outputPath 直接保存到文件)
1145
- * @returns HTML 字符串、保存的文件路径,或转换的文件路径数组
1146
- */
1147
- export async function wip2html(wipPath, options = {}) {
1148
- const fs = await import("fs");
1149
- const path = await import("path");
1150
- // 检查是文件还是文件夹
1151
- const stats = fs.statSync(wipPath);
1152
- if (stats.isFile()) {
1153
- // 处理单个文件
1154
- const wip = new WIP();
1155
- const wipFile = await wip.load(wipPath);
1156
- const html = await wip.toHtml(wipFile, options);
1157
- if (options.outputPath) {
1158
- fs.writeFileSync(options.outputPath, html);
1159
- return options.outputPath;
1160
- }
1161
- // 使用与 WIP 文件同名的 HTML 文件名
1162
- const dir = path.dirname(wipPath);
1163
- const ext = path.extname(wipPath);
1164
- const baseName = path.basename(wipPath, ext);
1165
- const outputFilePath = path.join(dir, `${baseName}.html`);
1166
- fs.writeFileSync(outputFilePath, html);
1167
- return outputFilePath;
1168
- }
1169
- else if (stats.isDirectory()) {
1170
- // 处理文件夹中的所有 .wip 文件
1171
- const files = fs.readdirSync(wipPath);
1172
- const wipFiles = files.filter((f) => f.endsWith(".wip"));
1173
- if (wipFiles.length === 0) {
1174
- throw new WipValidationError(`No .wip files found in directory: ${wipPath}`);
1175
- }
1176
- const results = [];
1177
- const wip = new WIP();
1178
- for (const file of wipFiles) {
1179
- const filePath = path.join(wipPath, file);
1180
- const wipFile = await wip.load(filePath);
1181
- const html = await wip.toHtml(wipFile, options);
1182
- // 生成输出文件名
1183
- const outputFileName = file.replace(".wip", ".html");
1184
- const outputFilePath = options.outputPath
1185
- ? path.join(options.outputPath, outputFileName)
1186
- : path.join(wipPath, outputFileName);
1187
- // 确保输出目录存在
1188
- const outputDir = path.dirname(outputFilePath);
1189
- if (!fs.existsSync(outputDir)) {
1190
- fs.mkdirSync(outputDir, { recursive: true });
1191
- }
1192
- fs.writeFileSync(outputFilePath, html);
1193
- results.push(outputFilePath);
1194
- }
1195
- return results;
1196
- }
1197
- else {
1198
- throw new WipValidationError(`Invalid path: ${wipPath}`);
1199
- }
1200
- }
1201
- export default WIP;
1202
- //# sourceMappingURL=wip.js.map
1
+ import{sha256}from'@noble/hashes/sha256';import{bytesToHex}from'@noble/hashes/utils';import*as a178a from'fs';import*as a178b from'path';import*as a178c from'https';import*as a178d from'http';const WIP_SCHEMA_URL='https://schema.wowok.net/wip/v1',WIP_VERSION='1.0.0';export const DEFAULT_LIMITS={'maxImageSize':0x2*0x400*0x400,'maxTotalSize':0xa*0x400*0x400,'maxImageCount':0xa,'maxTextLength':0x2710};export class WipError extends Error{constructor(a){super(a),this['name']='WipError';}}export class WipValidationError extends WipError{constructor(a){super(a),this['name']='WipValidationError';}}export class WipSizeError extends WipError{constructor(a){super(a),this['name']='WipSizeError';}}function detectMimeType(a){if(a['length']>=0x4&&a[0x0]===0x89&&a[0x1]===0x50&&a[0x2]===0x4e&&a[0x3]===0x47)return'image/png';if(a['length']>=0x3&&a[0x0]===0xff&&a[0x1]===0xd8&&a[0x2]===0xff)return'image/jpeg';if(a['length']>=0x6&&a[0x0]===0x47&&a[0x1]===0x49&&a[0x2]===0x46)return'image/gif';if(a['length']>=0xc&&a[0x0]===0x52&&a[0x1]===0x49&&a[0x2]===0x46&&a[0x3]===0x46&&a[0x8]===0x57&&a[0x9]===0x45&&a[0xa]===0x42&&a[0xb]===0x50)return'image/webp';return null;}function uint8ArrayToBase64(a){let b='';const c=a['length'];for(let d=0x0;d<c;d++){b+=String['fromCharCode'](a[d]);}return btoa(b);}function base64ToUint8Array(a){const b=atob(a),c=b['length'],d=new Uint8Array(c);for(let e=0x0;e<c;e++){d[e]=b['charCodeAt'](e);}return d;}function canonicalizeJson(a){if(a===null||typeof a!=='object')return JSON['stringify'](a);if(Array['isArray'](a))return'['+a['map'](canonicalizeJson)['join'](',')+']';const b=a,c=Object['keys'](b)['sort'](),d=c['map'](e=>'\x22'+e+'\x22:'+canonicalizeJson(b[e]));return'{'+d['join'](',')+'}';}function computeHash(a){const b=sha256(new TextEncoder()['encode'](a));return bytesToHex(b);}function generateId(a){const b=Date['now']()['toString'](0x24),c=Math['random']()['toString'](0x24)['substring'](0x2,0x8);return a+'-'+b+'-'+c;}function getExtensionFromMimeType(a){const b={'image/png':'png','image/jpeg':'jpg','image/gif':'gif','image/webp':'webp'};return b[a]||'bin';}class ResourceLoader{['maxSize'];constructor(a){this['maxSize']=a;}async['load'](a){if(!a||a['trim']()==='')throw new WipError('WIP\x20file\x20path\x20cannot\x20be\x20empty');if(a['startsWith']('data:'))return this['loadFromDataUrl'](a);if(a['startsWith']('http://')||a['startsWith']('https://'))return this['loadFromNetwork'](a);return this['loadFromFile'](a);}['loadFromDataUrl'](a){const b=a['match'](/^data:image\/(\w+);base64,(.+)$/);if(!b)throw new WipValidationError('Invalid\x20data\x20URL\x20format:\x20'+a['substring'](0x0,0x32)+'...');const c=b[0x2];try{return base64ToUint8Array(c);}catch(d){throw new WipError('Failed\x20to\x20decode\x20data\x20URL:\x20'+d);}}async['loadFromNetwork'](a){return new Promise((b,c)=>{const d=setTimeout(()=>{c(new WipError('Network\x20timeout\x20while\x20fetching:\x20'+a));},0x7530),e=a['startsWith']('https:'),f=e?a178c:a178d,g={'headers':{'Accept':'application/json,*/*'}};e&&(g['rejectUnauthorized']=![]);const h=f['get'](a,g,i=>{clearTimeout(d);if(i['statusCode']!==0xc8){c(new WipError('Failed\x20to\x20fetch:\x20'+i['statusCode']+'\x20'+i['statusMessage']));return;}const j=i['headers']['content-length'];if(j&&parseInt(j)>this['maxSize']){c(new WipSizeError('Resource\x20from\x20'+a+'\x20size\x20('+j+'\x20bytes)\x20exceeds\x20limit\x20('+this['maxSize']+'\x20bytes)'));return;}const k=[];i['on']('data',l=>{k['push'](l);}),i['on']('end',()=>{const l=Buffer['concat'](k);if(l['length']>this['maxSize']){c(new WipSizeError('Resource\x20from\x20'+a+'\x20size\x20('+l['length']+'\x20bytes)\x20exceeds\x20limit\x20('+this['maxSize']+'\x20bytes)'));return;}b(new Uint8Array(l));}),i['on']('error',l=>{c(new WipError('Network\x20error:\x20'+l['message']));});});h['on']('error',i=>{clearTimeout(d),c(new WipError('Network\x20error:\x20'+i['message']));});});}['loadFromFile'](a){const b=a178b['resolve'](a);if(!a178a['existsSync'](b))throw new WipError('File\x20not\x20found:\x20'+b);const c=a178a['statSync'](b);if(!c['isFile']())throw new WipError('Path\x20is\x20not\x20a\x20file:\x20'+b);if(c['size']>this['maxSize'])throw new WipSizeError('File\x20'+b+'\x20size\x20('+c['size']+'\x20bytes)\x20exceeds\x20limit\x20('+this['maxSize']+'\x20bytes)');const d=a178a['readFileSync'](b);return new Uint8Array(d);}}export class WIP{['limits'];['resourceLoader'];constructor(a={}){this['limits']={...DEFAULT_LIMITS,...a},this['resourceLoader']=new ResourceLoader(this['limits']['maxImageSize']);}async['create'](a){if(a['text']['length']>this['limits']['maxTextLength'])throw new WipSizeError('Text\x20length\x20('+a['text']['length']+')\x20exceeds\x20limit\x20('+this['limits']['maxTextLength']+')');const b=[];if(a['images']&&a['images']['length']>0x0){if(a['images']['length']>this['limits']['maxImageCount'])throw new WipSizeError('Image\x20count\x20('+a['images']['length']+')\x20exceeds\x20limit\x20('+this['limits']['maxImageCount']+')');for(let j=0x0;j<a['images']['length'];j++){const k=await this['processImage'](a['images'][j],j);b['push'](k);}}const c={'content':{'text':a['text'],'format':a['textFormat']||'plain'},'media':b},d=canonicalizeJson(c),e=computeHash(d),f={'type':'wip','version':WIP_VERSION,'created':new Date()['toISOString'](),'hash':e,'algorithm':'sha256'};if(a['signKeyPair']){const l=await this['sign'](e,a['signKeyPair']['privateKey'],a['signAlgorithm']||'Ed25519');f['signature']={'value':l,'publicKey':a['signKeyPair']['publicKey'],'algorithm':a['signAlgorithm']||'Ed25519'};}const g={'wip':WIP_SCHEMA_URL,'payload':c,'meta':f},h=JSON['stringify'](g);if(h['length']>this['limits']['maxTotalSize'])throw new WipSizeError('Total\x20WIP\x20file\x20size\x20('+h['length']+'\x20bytes)\x20exceeds\x20limit\x20('+this['limits']['maxTotalSize']+'\x20bytes)');return g;}async['processImage'](a,b){const c=await this['resourceLoader']['load'](a['source']),d=detectMimeType(c);if(!d)throw new WipValidationError('Unsupported\x20image\x20format:\x20'+a['source']);let e=a['filename'];if(!e){if(a['source']['startsWith']('http')){const f=new URL(a['source']),g=f['pathname'];e=g['substring'](g['lastIndexOf']('/')+0x1)||'image-'+b;}else e=a['source']['substring'](a['source']['lastIndexOf']('/')+0x1)||'image-'+b;}return{'id':a['id']||generateId('img'),'type':d,'data':uint8ArrayToBase64(c),'filename':e};}async['sign'](a,b,c){if(c!=='Ed25519')throw new WipError('Unsupported\x20signature\x20algorithm:\x20'+c);const {Ed25519Keypair:d}=await import('../../keypairs/ed25519/index.js'),e=d['fromSecretKey'](b),f=await e['sign'](new TextEncoder()['encode'](a));return uint8ArrayToBase64(f);}async['verify'](a){try{if(!a['wip']||!a['payload']||!a['meta'])return{'valid':![],'error':'Invalid\x20WIP\x20file\x20structure'};if(a['meta']['type']!=='wip')return{'valid':![],'error':'Invalid\x20meta.type:\x20'+a['meta']['type']};const b=canonicalizeJson(a['payload']),c=computeHash(b);if(c!==a['meta']['hash'])return{'valid':![],'error':'Hash\x20mismatch\x20-\x20content\x20has\x20been\x20tampered'};const d=[];if(a['meta']['signature']){const e=Array['isArray'](a['meta']['signature'])?a['meta']['signature']:[a['meta']['signature']];for(const f of e){const g=await this['verifySignature'](a['meta']['hash'],f['value'],f['publicKey'],f['algorithm']);d['push']({'address':f['address'],'valid':g});if(!g)return{'valid':![],'error':'Invalid\x20signature','signatures':d};}}return{'valid':!![],'signatures':d};}catch(h){return{'valid':![],'error':'Verification\x20error:\x20'+h};}}async['verifySignature'](a,b,c,d){if(d!=='Ed25519')throw new WipError('Unsupported\x20signature\x20algorithm:\x20'+d);try{const {Ed25519PublicKey:e}=await import('../../keypairs/ed25519/publickey.js');let f=c;if(c['startsWith']('0x')){const i=Buffer['from'](c['slice'](0x2),'hex');if(i['length']===0x21)f=i['slice'](0x1)['toString']('base64');else i['length']===0x20&&(f=i['toString']('base64'));}else try{const j=Buffer['from'](c,'base64');j['length']===0x21&&(f=j['slice'](0x1)['toString']('base64'));}catch{}const g=new e(f),h=Uint8Array['from'](Buffer['from'](b,'base64'));return await g['verify'](new TextEncoder()['encode'](a),h);}catch(k){return console['error']('Signature\x20verification\x20error:',k),![];}}async['toHtml'](a,b={}){const {title:title='WIP\x20Document',theme:theme='light'}=b,{payload:c,meta:d}=a,e=o=>{return o['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#039;');},f=(o,p)=>{switch(p){case'html':return o;case'markdown':return o['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>')['replace'](/\*(.+?)\*/g,'<em>$1</em>')['replace'](/\n/g,'<br>');case'plain':default:return e(o)['replace'](/\n/g,'<br>');}},g=theme==='dark'?'#1a1a1a':'#ffffff',h=theme==='dark'?'#e0e0e0':'#333333',i=theme==='dark'?'#444444':'#e0e0e0',j='#4caf50',k='#ff9800',l=await this['verify'](a),m=l['valid']?'<span\x20style=\x22background:\x20'+j+';\x20color:\x20white;\x20padding:\x204px\x208px;\x20border-radius:\x204px;\x20font-size:\x2012px;\x22>✓\x20Verified</span>':'<span\x20style=\x22background:\x20'+k+';\x20color:\x20white;\x20padding:\x204px\x208px;\x20border-radius:\x204px;\x20font-size:\x2012px;\x22>⚠\x20Tampered</span>',n=c['media']['map'](o=>'\x0a\x09\x09\x09\x09<div\x20style=\x22margin:\x2016px\x200;\x20border:\x201px\x20solid\x20'+i+';\x20border-radius:\x208px;\x20overflow:\x20hidden;\x22>\x0a\x09\x09\x09\x09\x09<img\x20src=\x22data:'+o['type']+';base64,'+o['data']+'\x22\x20\x0a\x09\x09\x09\x09\x09\x20\x20\x20\x20\x20style=\x22max-width:\x20100%;\x20height:\x20auto;\x20display:\x20block;\x22\x20\x0a\x09\x09\x09\x09\x09\x20\x20\x20\x20\x20alt=\x22'+e(o['filename']||o['id'])+'\x22\x20/>\x0a\x09\x09\x09\x09\x09'+(o['filename']?'<div\x20style=\x22padding:\x208px;\x20font-size:\x2012px;\x20color:\x20#666;\x20background:\x20'+(theme==='dark'?'#2a2a2a':'#f5f5f5')+';\x20border-top:\x201px\x20solid\x20'+i+';\x22>'+e(o['filename'])+'</div>':'')+'\x0a\x09\x09\x09\x09</div>\x0a\x09\x09\x09')['join']('');return'<!DOCTYPE\x20html>\x0a<html\x20lang=\x22en\x22>\x0a<head>\x0a\x20\x20\x20\x20<meta\x20charset=\x22UTF-8\x22>\x0a\x20\x20\x20\x20<meta\x20name=\x22viewport\x22\x20content=\x22width=device-width,\x20initial-scale=1.0\x22>\x0a\x20\x20\x20\x20<title>'+e(title)+'</title>\x0a</head>\x0a<body\x20style=\x22margin:\x200;\x20padding:\x2020px;\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x27Segoe\x20UI\x27,\x20Roboto,\x20sans-serif;\x20background:\x20'+g+';\x20color:\x20'+h+';\x20line-height:\x201.6;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22max-width:\x20800px;\x20margin:\x200\x20auto;\x20background:\x20'+(theme==='dark'?'#252525':'#ffffff')+';\x20border-radius:\x2012px;\x20box-shadow:\x200\x202px\x208px\x20rgba(0,0,0,0.1);\x20overflow:\x20hidden;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:\x2020px\x2024px;\x20border-bottom:\x201px\x20solid\x20'+i+';\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20justify-content:\x20space-between;\x20align-items:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h1\x20style=\x22margin:\x200;\x20font-size:\x2020px;\x20font-weight:\x20600;\x22>'+e(title)+'</h1>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2012px;\x20color:\x20#666;\x20margin-top:\x204px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WIP\x20v'+d['version']+'\x20•\x20'+new Date(d['created'])['toLocaleString']()+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+m+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2011px;\x20color:\x20#999;\x20margin-top:\x2012px;\x20padding:\x208px;\x20background:\x20'+(theme==='dark'?'#2a2a2a':'#f5f5f5')+';\x20border-radius:\x204px;\x20font-style:\x20italic;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Important\x20Note:\x20This\x20page\x20is\x20for\x20document\x20browsing\x20and\x20verification\x20reference\x20only.\x20Please\x20verify\x20the\x20document\x20integrity\x20through\x20the\x20API\x20using\x20the\x20WIP\x20file.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(l['signatures']&&l['signatures']['length']>0x0?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22margin-top:\x2012px;\x20padding:\x208px;\x20background:\x20'+(theme==='dark'?'#2a3f2a':'#e8f5e9')+';\x20border-radius:\x204px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2011px;\x20color:\x20'+(theme==='dark'?'#81c784':'#2e7d32')+';\x20margin-bottom:\x204px;\x22>✓\x20Signature\x20Verification\x20('+l['signatures']['length']+'\x20signature'+(l['signatures']['length']>0x1?'s':'')+')</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+l['signatures']['map']((o,p)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2010px;\x20color:\x20'+h+';\x20margin-left:\x208px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(p+0x1)+'.\x20'+(o['address']?e(o['address']['slice'](0x0,0x14))+'...':'Unknown')+':\x20'+(o['valid']?'<span\x20style=\x22color:\x20#4caf50;\x22>✓\x20Valid</span>':'<span\x20style=\x22color:\x20#f44336;\x22>✗\x20Invalid</span>')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:\x2024px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2016px;\x20line-height:\x201.8;\x20margin-bottom:\x2024px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+f(c['content']['text'],c['content']['format'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+n+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:\x2016px\x2024px;\x20background:\x20'+(theme==='dark'?'#2a2a2a':'#f8f9fa')+';\x20border-top:\x201px\x20solid\x20'+i+';\x20font-size:\x2011px;\x20color:\x20#666;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20justify-content:\x20space-between;\x20align-items:\x20center;\x20flex-wrap:\x20wrap;\x20gap:\x208px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong>Hash:</strong>\x20<code\x20style=\x22background:\x20'+(theme==='dark'?'#333':'#e9ecef')+';\x20padding:\x202px\x206px;\x20border-radius:\x203px;\x22>'+e(d['hash'])+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(l['valid']?'Content\x20integrity\x20verified':'Verification\x20failed:\x20'+e(l['error']||'Unknown\x20error'))+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a</body>\x0a</html>';}['stringify'](a,b=!![]){return b?JSON['stringify'](a,null,0x2):JSON['stringify'](a);}['parse'](a){try{const b=JSON['parse'](a);if(!b['wip']||!b['payload']||!b['meta'])throw new WipValidationError('Invalid\x20WIP\x20file\x20structure');return b;}catch(c){if(c instanceof WipError)throw c;throw new WipValidationError('Failed\x20to\x20parse\x20WIP\x20file:\x20'+c);}}async['load'](a){const b=await this['resourceLoader']['load'](a),c=new TextDecoder()['decode'](b);return this['parse'](c);}['getHash'](a){const b=a['meta']['hash'];if(b['includes'](':'))return b['split'](':')[0x1];return b;}['extractImages'](a,b){!a178a['existsSync'](b)&&a178a['mkdirSync'](b,{'recursive':!![]});const c=[];for(const d of a['payload']['media']){const e=getExtensionFromMimeType(d['type']),f=d['filename']||d['id']+'.'+e,g=a178b['join'](b,f),h=Buffer['from'](base64ToUint8Array(d['data']));a178a['writeFileSync'](g,h),c['push'](g);}return c;}['save'](a,b,c=!![]){const d=a178b['dirname'](b);!a178a['existsSync'](d)&&a178a['mkdirSync'](d,{'recursive':!![]}),a178a['writeFileSync'](b,this['stringify'](a,c),'utf-8');}['getLimits'](){return{...this['limits']};}['setLimits'](a){this['limits']={...this['limits'],...a},this['resourceLoader']=new ResourceLoader(this['limits']['maxImageSize']);}}export async function createWip(a,b){const c=new WIP(b);return c['create'](a);}export async function verifyWip(a,b){if(b!==undefined){const e=a['meta']['hash']['toLowerCase']()['replace'](/^sha256:/,''),f=b['toLowerCase']()['replace'](/^sha256:/,'');if(e!==f)return{'valid':![],'error':'Hash\x20mismatch'};}const c=new WIP(),d=await c['verify'](a);return{'valid':d['valid'],'error':d['error']};}export async function wipToHtml(a,b){const c=new WIP();return c['toHtml'](a,b);}export async function loadWip(a,b){const c=new WIP(b);return c['load'](a);}export async function generate_wip(a,b){const c=new WIP(DEFAULT_LIMITS);let d=await c['create']({'text':a['markdown_text'],'textFormat':'markdown','images':a['images']});if(a['account']){const {Account:e}=await import('./account.js'),f=await e['Instance']()['get_address'](a['account']);if(!f)throw new WipValidationError('Account\x20not\x20found:\x20'+a['account']);const g=await e['Instance']()['sign'](f,d['meta']['hash']),h=await e['Instance']()['get'](f);if(!h||!h['pubkey'])throw new WipValidationError('Cannot\x20get\x20public\x20key\x20for\x20account:\x20'+f);let i;if(h['pubkey']['startsWith']('0x')){const m=Buffer['from'](h['pubkey']['slice'](0x2),'hex');if(m['length']===0x21)i=m['slice'](0x1)['toString']('base64');else{if(m['length']===0x20)i=m['toString']('base64');else throw new WipValidationError('Invalid\x20public\x20key\x20length:\x20'+m['length']+',\x20expected\x2032\x20or\x2033\x20bytes');}}else i=h['pubkey'];const j=Buffer['from'](g['slice'](0x2),'hex')['toString']('base64'),k={'value':j,'publicKey':i,'algorithm':'Ed25519','address':f};let l;d['meta']['signature']?l=Array['isArray'](d['meta']['signature'])?[...d['meta']['signature'],k]:[d['meta']['signature'],k]:l=[k],d={...d,'meta':{...d['meta'],'signature':l}};}return c['save'](d,b,!![]),b;}export async function verify_wip(a,b,c){const d=new WIP();let e;try{e=await d['load'](a);}catch(k){return{'valid':![],'error':'Failed\x20to\x20load\x20WIP\x20file:\x20'+k,'hashValid':![],'hasSignature':![]};}if(!e['wip']||!e['payload']||!e['meta'])return{'valid':![],'error':'Invalid\x20WIP\x20file\x20structure','hashValid':![],'hasSignature':![]};if(e['meta']['type']!=='wip')return{'valid':![],'error':'Invalid\x20meta.type:\x20'+e['meta']['type'],'hashValid':![],'hasSignature':!!e['meta']['signature']};if(b!==undefined){const l=e['meta']['hash']['toLowerCase']()['replace'](/^sha256:/,''),m=b['toLowerCase']()['replace'](/^sha256:/,'');if(l!==m)return{'valid':![],'error':'Hash\x20mismatch','hashValid':![],'hasSignature':!!e['meta']['signature']};}if(c&&!e['meta']['signature'])return{'valid':![],'error':'Signature\x20required\x20but\x20WIP\x20file\x20has\x20no\x20signature','hashValid':!![],'hasSignature':![]};const f=canonicalizeJson(e['payload']),g=computeHash(f),h=g===e['meta']['hash'];if(!h)return{'valid':![],'error':'Hash\x20mismatch\x20-\x20content\x20has\x20been\x20tampered','hashValid':![],'hasSignature':!!e['meta']['signature']};let i;const j=[];if(e['meta']['signature']){const n=Array['isArray'](e['meta']['signature'])?e['meta']['signature']:[e['meta']['signature']];let o=!![];for(const p of n){const q=await d['verifySignature'](e['meta']['hash'],p['value'],p['publicKey'],p['algorithm']);let r;try{const {Ed25519PublicKey:s}=await import('../../keypairs/ed25519/publickey.js'),t=new s(p['publicKey']);r=t['toWAddress']();}catch{}j['push']({'publicKey':p['publicKey'],'address':r,'valid':q}),!q&&(o=![]);}i=o;if(!i){const u=j['filter'](v=>!v['valid']&&v['address'])['map'](v=>v['address']);return{'valid':![],'error':'Signatures\x20from\x20the\x20following\x20addresses\x20are\x20invalid:\x20'+u['join'](',\x20'),'hashValid':!![],'signatureValid':![],'hasSignature':!![],'signatures':j};}}return{'valid':!![],'hashValid':!![],'signatureValid':i,'hasSignature':!!e['meta']['signature'],'signatures':j['length']>0x0?j:undefined};}export async function sign_wip(a,b,c){const d=new WIP(),e=await d['load'](a);if(!e['wip']||!e['payload']||!e['meta'])throw new WipValidationError('Invalid\x20WIP\x20file\x20structure');if(e['meta']['type']!=='wip')throw new WipValidationError('Invalid\x20meta.type:\x20'+e['meta']['type']);const {Account:f}=await import('./account.js'),g=await f['Instance']()['get_address'](b);if(!g)throw new WipValidationError('Account\x20not\x20found:\x20'+b);const h=await f['Instance']()['signData'](g,e['meta']['hash']);let i;const j=h['publicKey'];if(j['startsWith']('0x')){const o=Buffer['from'](j['slice'](0x2),'hex');if(o['length']===0x21)i=o['slice'](0x1)['toString']('base64');else{if(o['length']===0x20)i=o['toString']('base64');else throw new WipValidationError('Invalid\x20public\x20key\x20length:\x20'+o['length']+',\x20expected\x2032\x20or\x2033\x20bytes');}}else i=j;const k={'value':Buffer['from'](h['signature']['slice'](0x2),'hex')['toString']('base64'),'publicKey':i,'algorithm':'Ed25519','address':h['address']};let l;if(e['meta']['signature']){const p=Array['isArray'](e['meta']['signature'])?[...e['meta']['signature']]:[e['meta']['signature']],q=p['findIndex'](r=>r['publicKey']===i);q>=0x0?(p[q]=k,l=p):l=[...p,k];}else l=[k];const m={...e,'meta':{...e['meta'],'signature':l}};let n;if(c)n=c;else{const r=a178b['dirname'](a),s=a178b['extname'](a),t=a178b['basename'](a,s);n=a178b['join'](r,'signed_'+t+s);}return d['save'](m,n,!![]),n;}export async function wip2html(a,b={}){const c=await import('fs'),d=await import('path'),e=c['statSync'](a);if(e['isFile']()){const f=new WIP(),g=await f['load'](a),h=await f['toHtml'](g,b);if(b['outputPath'])return c['writeFileSync'](b['outputPath'],h),b['outputPath'];const i=d['dirname'](a),j=d['extname'](a),k=d['basename'](a,j),l=d['join'](i,k+'.html');return c['writeFileSync'](l,h),l;}else{if(e['isDirectory']()){const m=c['readdirSync'](a),n=m['filter'](q=>q['endsWith']('.wip'));if(n['length']===0x0)throw new WipValidationError('No\x20.wip\x20files\x20found\x20in\x20directory:\x20'+a);const o=[],p=new WIP();for(const q of n){const r=d['join'](a,q),s=await p['load'](r),t=await p['toHtml'](s,b),u=q['replace']('.wip','.html'),v=b['outputPath']?d['join'](b['outputPath'],u):d['join'](a,u),w=d['dirname'](v);!c['existsSync'](w)&&c['mkdirSync'](w,{'recursive':!![]}),c['writeFileSync'](v,t),o['push'](v);}return o;}else throw new WipValidationError('Invalid\x20path:\x20'+a);}}export default WIP;