@hashgraphonline/standards-sdk 0.1.184 → 0.1.185

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 (262) hide show
  1. package/dist/browser/hcs-25/identifiers.d.ts +24 -0
  2. package/dist/browser/hcs-25/identifiers.d.ts.map +1 -0
  3. package/dist/browser/hcs-25/index.d.ts +4 -0
  4. package/dist/browser/hcs-25/index.d.ts.map +1 -0
  5. package/dist/browser/hcs-25/scoring.d.ts +32 -0
  6. package/dist/browser/hcs-25/scoring.d.ts.map +1 -0
  7. package/dist/browser/hcs-25/types.d.ts +363 -0
  8. package/dist/browser/hcs-25/types.d.ts.map +1 -0
  9. package/dist/browser/index.d.ts +1 -0
  10. package/dist/browser/index.d.ts.map +1 -1
  11. package/dist/browser-root/hcs-25/identifiers.d.ts +24 -0
  12. package/dist/browser-root/hcs-25/identifiers.d.ts.map +1 -0
  13. package/dist/browser-root/hcs-25/index.d.ts +4 -0
  14. package/dist/browser-root/hcs-25/index.d.ts.map +1 -0
  15. package/dist/browser-root/hcs-25/scoring.d.ts +32 -0
  16. package/dist/browser-root/hcs-25/scoring.d.ts.map +1 -0
  17. package/dist/browser-root/hcs-25/types.d.ts +363 -0
  18. package/dist/browser-root/hcs-25/types.d.ts.map +1 -0
  19. package/dist/browser-root/index.d.ts +1 -0
  20. package/dist/browser-root/index.d.ts.map +1 -1
  21. package/dist/cjs/hcs-25/identifiers.d.ts +24 -0
  22. package/dist/cjs/hcs-25/identifiers.d.ts.map +1 -0
  23. package/dist/cjs/hcs-25/index.d.ts +4 -0
  24. package/dist/cjs/hcs-25/index.d.ts.map +1 -0
  25. package/dist/cjs/hcs-25/scoring.d.ts +32 -0
  26. package/dist/cjs/hcs-25/scoring.d.ts.map +1 -0
  27. package/dist/cjs/hcs-25/types.d.ts +363 -0
  28. package/dist/cjs/hcs-25/types.d.ts.map +1 -0
  29. package/dist/cjs/index.d.ts +1 -0
  30. package/dist/cjs/index.d.ts.map +1 -1
  31. package/dist/cjs/standards-sdk.cjs +1 -1
  32. package/dist/cjs/standards-sdk.cjs.map +1 -1
  33. package/dist/es/hcs-25/identifiers.d.ts +24 -0
  34. package/dist/es/hcs-25/identifiers.d.ts.map +1 -0
  35. package/dist/es/hcs-25/index.d.ts +4 -0
  36. package/dist/es/hcs-25/index.d.ts.map +1 -0
  37. package/dist/es/hcs-25/scoring.d.ts +32 -0
  38. package/dist/es/hcs-25/scoring.d.ts.map +1 -0
  39. package/dist/es/hcs-25/types.d.ts +363 -0
  40. package/dist/es/hcs-25/types.d.ts.map +1 -0
  41. package/dist/es/index.d.ts +1 -0
  42. package/dist/es/index.d.ts.map +1 -1
  43. package/dist/es/standards-sdk.es.js +62 -40
  44. package/dist/es/standards-sdk.es.js.map +1 -1
  45. package/dist/es/standards-sdk.es101.js +2 -2
  46. package/dist/es/standards-sdk.es103.js +2 -2
  47. package/dist/es/standards-sdk.es104.js +1 -1
  48. package/dist/es/standards-sdk.es106.js +1 -1
  49. package/dist/es/standards-sdk.es108.js +2 -2
  50. package/dist/es/standards-sdk.es11.js +1 -1
  51. package/dist/es/standards-sdk.es110.js +1 -1
  52. package/dist/es/standards-sdk.es111.js +2 -2
  53. package/dist/es/standards-sdk.es115.js +3 -3
  54. package/dist/es/standards-sdk.es116.js +4 -4
  55. package/dist/es/standards-sdk.es117.js +19 -251
  56. package/dist/es/standards-sdk.es117.js.map +1 -1
  57. package/dist/es/standards-sdk.es118.js +60 -475
  58. package/dist/es/standards-sdk.es118.js.map +1 -1
  59. package/dist/es/standards-sdk.es119.js +217 -86
  60. package/dist/es/standards-sdk.es119.js.map +1 -1
  61. package/dist/es/standards-sdk.es12.js +1 -1
  62. package/dist/es/standards-sdk.es120.js +242 -150
  63. package/dist/es/standards-sdk.es120.js.map +1 -1
  64. package/dist/es/standards-sdk.es121.js +470 -26
  65. package/dist/es/standards-sdk.es121.js.map +1 -1
  66. package/dist/es/standards-sdk.es122.js +103 -10
  67. package/dist/es/standards-sdk.es122.js.map +1 -1
  68. package/dist/es/standards-sdk.es123.js +145 -167
  69. package/dist/es/standards-sdk.es123.js.map +1 -1
  70. package/dist/es/standards-sdk.es124.js +30 -25
  71. package/dist/es/standards-sdk.es124.js.map +1 -1
  72. package/dist/es/standards-sdk.es125.js +10 -20
  73. package/dist/es/standards-sdk.es125.js.map +1 -1
  74. package/dist/es/standards-sdk.es126.js +159 -137
  75. package/dist/es/standards-sdk.es126.js.map +1 -1
  76. package/dist/es/standards-sdk.es127.js +27 -199
  77. package/dist/es/standards-sdk.es127.js.map +1 -1
  78. package/dist/es/standards-sdk.es128.js +15 -783
  79. package/dist/es/standards-sdk.es128.js.map +1 -1
  80. package/dist/es/standards-sdk.es129.js +157 -10
  81. package/dist/es/standards-sdk.es129.js.map +1 -1
  82. package/dist/es/standards-sdk.es13.js +1 -1
  83. package/dist/es/standards-sdk.es130.js +198 -564
  84. package/dist/es/standards-sdk.es130.js.map +1 -1
  85. package/dist/es/standards-sdk.es131.js +703 -539
  86. package/dist/es/standards-sdk.es131.js.map +1 -1
  87. package/dist/es/standards-sdk.es132.js +12 -12
  88. package/dist/es/standards-sdk.es132.js.map +1 -1
  89. package/dist/es/standards-sdk.es133.js +567 -2
  90. package/dist/es/standards-sdk.es133.js.map +1 -1
  91. package/dist/es/standards-sdk.es134.js +610 -71
  92. package/dist/es/standards-sdk.es134.js.map +1 -1
  93. package/dist/es/standards-sdk.es135.js +12 -39
  94. package/dist/es/standards-sdk.es135.js.map +1 -1
  95. package/dist/es/standards-sdk.es136.js +2 -2
  96. package/dist/es/standards-sdk.es136.js.map +1 -1
  97. package/dist/es/standards-sdk.es137.js +42 -190
  98. package/dist/es/standards-sdk.es137.js.map +1 -1
  99. package/dist/es/standards-sdk.es138.js +39 -1139
  100. package/dist/es/standards-sdk.es138.js.map +1 -1
  101. package/dist/es/standards-sdk.es139.js +2 -306
  102. package/dist/es/standards-sdk.es139.js.map +1 -1
  103. package/dist/es/standards-sdk.es14.js +1 -1
  104. package/dist/es/standards-sdk.es140.js +231 -418
  105. package/dist/es/standards-sdk.es140.js.map +1 -1
  106. package/dist/es/standards-sdk.es141.js +1135 -350
  107. package/dist/es/standards-sdk.es141.js.map +1 -1
  108. package/dist/es/standards-sdk.es142.js +268 -1084
  109. package/dist/es/standards-sdk.es142.js.map +1 -1
  110. package/dist/es/standards-sdk.es143.js +418 -204
  111. package/dist/es/standards-sdk.es143.js.map +1 -1
  112. package/dist/es/standards-sdk.es144.js +350 -1562
  113. package/dist/es/standards-sdk.es144.js.map +1 -1
  114. package/dist/es/standards-sdk.es145.js +1061 -1096
  115. package/dist/es/standards-sdk.es145.js.map +1 -1
  116. package/dist/es/standards-sdk.es146.js +204 -13
  117. package/dist/es/standards-sdk.es146.js.map +1 -1
  118. package/dist/es/standards-sdk.es147.js +1541 -233
  119. package/dist/es/standards-sdk.es147.js.map +1 -1
  120. package/dist/es/standards-sdk.es148.js +1157 -4
  121. package/dist/es/standards-sdk.es148.js.map +1 -1
  122. package/dist/es/standards-sdk.es149.js +15 -79
  123. package/dist/es/standards-sdk.es149.js.map +1 -1
  124. package/dist/es/standards-sdk.es15.js +1 -1
  125. package/dist/es/standards-sdk.es150.js +250 -78
  126. package/dist/es/standards-sdk.es150.js.map +1 -1
  127. package/dist/es/standards-sdk.es151.js +4 -60
  128. package/dist/es/standards-sdk.es151.js.map +1 -1
  129. package/dist/es/standards-sdk.es152.js +80 -2546
  130. package/dist/es/standards-sdk.es152.js.map +1 -1
  131. package/dist/es/standards-sdk.es153.js +80 -152
  132. package/dist/es/standards-sdk.es153.js.map +1 -1
  133. package/dist/es/standards-sdk.es154.js +60 -7
  134. package/dist/es/standards-sdk.es154.js.map +1 -1
  135. package/dist/es/standards-sdk.es155.js +2547 -86
  136. package/dist/es/standards-sdk.es155.js.map +1 -1
  137. package/dist/es/standards-sdk.es156.js +144 -50
  138. package/dist/es/standards-sdk.es156.js.map +1 -1
  139. package/dist/es/standards-sdk.es157.js +7 -30
  140. package/dist/es/standards-sdk.es157.js.map +1 -1
  141. package/dist/es/standards-sdk.es158.js +86 -34
  142. package/dist/es/standards-sdk.es158.js.map +1 -1
  143. package/dist/es/standards-sdk.es159.js +65 -48
  144. package/dist/es/standards-sdk.es159.js.map +1 -1
  145. package/dist/es/standards-sdk.es16.js +5 -5
  146. package/dist/es/standards-sdk.es160.js +30 -138
  147. package/dist/es/standards-sdk.es160.js.map +1 -1
  148. package/dist/es/standards-sdk.es161.js +34 -42
  149. package/dist/es/standards-sdk.es161.js.map +1 -1
  150. package/dist/es/standards-sdk.es162.js +48 -12482
  151. package/dist/es/standards-sdk.es162.js.map +1 -1
  152. package/dist/es/standards-sdk.es163.js +12479 -53
  153. package/dist/es/standards-sdk.es163.js.map +1 -1
  154. package/dist/es/standards-sdk.es164.js +124 -97
  155. package/dist/es/standards-sdk.es164.js.map +1 -1
  156. package/dist/es/standards-sdk.es165.js +35 -74
  157. package/dist/es/standards-sdk.es165.js.map +1 -1
  158. package/dist/es/standards-sdk.es166.js +14 -197
  159. package/dist/es/standards-sdk.es166.js.map +1 -1
  160. package/dist/es/standards-sdk.es167.js +54 -15
  161. package/dist/es/standards-sdk.es167.js.map +1 -1
  162. package/dist/es/standards-sdk.es168.js +90 -651
  163. package/dist/es/standards-sdk.es168.js.map +1 -1
  164. package/dist/es/standards-sdk.es169.js +70 -161
  165. package/dist/es/standards-sdk.es169.js.map +1 -1
  166. package/dist/es/standards-sdk.es170.js +187 -309
  167. package/dist/es/standards-sdk.es170.js.map +1 -1
  168. package/dist/es/standards-sdk.es171.js +661 -335
  169. package/dist/es/standards-sdk.es171.js.map +1 -1
  170. package/dist/es/standards-sdk.es172.js +64 -444
  171. package/dist/es/standards-sdk.es172.js.map +1 -1
  172. package/dist/es/standards-sdk.es173.js +142 -301
  173. package/dist/es/standards-sdk.es173.js.map +1 -1
  174. package/dist/es/standards-sdk.es174.js +310 -64
  175. package/dist/es/standards-sdk.es174.js.map +1 -1
  176. package/dist/es/standards-sdk.es175.js +337 -64
  177. package/dist/es/standards-sdk.es175.js.map +1 -1
  178. package/dist/es/standards-sdk.es176.js +438 -124
  179. package/dist/es/standards-sdk.es176.js.map +1 -1
  180. package/dist/es/standards-sdk.es177.js +310 -496
  181. package/dist/es/standards-sdk.es177.js.map +1 -1
  182. package/dist/es/standards-sdk.es178.js +60 -243
  183. package/dist/es/standards-sdk.es178.js.map +1 -1
  184. package/dist/es/standards-sdk.es179.js +118 -175
  185. package/dist/es/standards-sdk.es179.js.map +1 -1
  186. package/dist/es/standards-sdk.es18.js +12 -12
  187. package/dist/es/standards-sdk.es180.js +465 -67
  188. package/dist/es/standards-sdk.es180.js.map +1 -1
  189. package/dist/es/standards-sdk.es181.js +250 -143
  190. package/dist/es/standards-sdk.es181.js.map +1 -1
  191. package/dist/es/standards-sdk.es182.js +172 -160
  192. package/dist/es/standards-sdk.es182.js.map +1 -1
  193. package/dist/es/standards-sdk.es183.js +65 -630
  194. package/dist/es/standards-sdk.es183.js.map +1 -1
  195. package/dist/es/standards-sdk.es184.js +128 -161
  196. package/dist/es/standards-sdk.es184.js.map +1 -1
  197. package/dist/es/standards-sdk.es185.js +144 -195
  198. package/dist/es/standards-sdk.es185.js.map +1 -1
  199. package/dist/es/standards-sdk.es186.js +668 -223
  200. package/dist/es/standards-sdk.es186.js.map +1 -1
  201. package/dist/es/standards-sdk.es187.js +188 -0
  202. package/dist/es/standards-sdk.es187.js.map +1 -0
  203. package/dist/es/standards-sdk.es188.js +238 -0
  204. package/dist/es/standards-sdk.es188.js.map +1 -0
  205. package/dist/es/standards-sdk.es189.js +242 -0
  206. package/dist/es/standards-sdk.es189.js.map +1 -0
  207. package/dist/es/standards-sdk.es19.js +9 -9
  208. package/dist/es/standards-sdk.es2.js +2 -2
  209. package/dist/es/standards-sdk.es20.js +1 -1
  210. package/dist/es/standards-sdk.es21.js +1 -1
  211. package/dist/es/standards-sdk.es22.js +1 -1
  212. package/dist/es/standards-sdk.es23.js +1 -1
  213. package/dist/es/standards-sdk.es24.js +1 -1
  214. package/dist/es/standards-sdk.es25.js +1 -1
  215. package/dist/es/standards-sdk.es26.js +1 -1
  216. package/dist/es/standards-sdk.es27.js +12 -12
  217. package/dist/es/standards-sdk.es30.js +2 -2
  218. package/dist/es/standards-sdk.es31.js +4 -4
  219. package/dist/es/standards-sdk.es32.js +1 -1
  220. package/dist/es/standards-sdk.es35.js +6 -6
  221. package/dist/es/standards-sdk.es36.js +4 -4
  222. package/dist/es/standards-sdk.es37.js +2 -2
  223. package/dist/es/standards-sdk.es38.js +2 -2
  224. package/dist/es/standards-sdk.es39.js +1 -1
  225. package/dist/es/standards-sdk.es4.js +2 -2
  226. package/dist/es/standards-sdk.es40.js +1 -1
  227. package/dist/es/standards-sdk.es41.js +2 -2
  228. package/dist/es/standards-sdk.es46.js +1 -1
  229. package/dist/es/standards-sdk.es5.js +2 -2
  230. package/dist/es/standards-sdk.es51.js +1 -1
  231. package/dist/es/standards-sdk.es53.js +1 -1
  232. package/dist/es/standards-sdk.es56.js +2 -2
  233. package/dist/es/standards-sdk.es59.js +1 -1
  234. package/dist/es/standards-sdk.es6.js +2 -2
  235. package/dist/es/standards-sdk.es60.js +1 -1
  236. package/dist/es/standards-sdk.es62.js +1 -1
  237. package/dist/es/standards-sdk.es63.js +2 -2
  238. package/dist/es/standards-sdk.es64.js +1 -1
  239. package/dist/es/standards-sdk.es65.js +1 -1
  240. package/dist/es/standards-sdk.es66.js +1 -1
  241. package/dist/es/standards-sdk.es67.js +7 -7
  242. package/dist/es/standards-sdk.es69.js +1 -1
  243. package/dist/es/standards-sdk.es7.js +1 -1
  244. package/dist/es/standards-sdk.es71.js +2 -2
  245. package/dist/es/standards-sdk.es72.js +3 -3
  246. package/dist/es/standards-sdk.es75.js +5 -5
  247. package/dist/es/standards-sdk.es76.js +3 -3
  248. package/dist/es/standards-sdk.es77.js +2 -2
  249. package/dist/es/standards-sdk.es78.js +1 -1
  250. package/dist/es/standards-sdk.es81.js +2 -2
  251. package/dist/es/standards-sdk.es83.js +2 -2
  252. package/dist/es/standards-sdk.es84.js +4 -4
  253. package/dist/es/standards-sdk.es85.js +1 -1
  254. package/dist/es/standards-sdk.es88.js +1 -1
  255. package/dist/es/standards-sdk.es89.js +2 -2
  256. package/dist/es/standards-sdk.es9.js +2 -2
  257. package/dist/es/standards-sdk.es90.js +4 -4
  258. package/dist/es/standards-sdk.es94.js +3 -3
  259. package/dist/es/standards-sdk.es96.js +2 -2
  260. package/dist/es/standards-sdk.es98.js +1 -1
  261. package/dist/es/standards-sdk.es99.js +3 -3
  262. package/package.json +1 -1
@@ -1,520 +1,334 @@
1
- import { createSessionResponseSchema, chatSessionResumeResponseSchema, chatReadinessResponseSchema, chatHistoryCompactionResponseSchema, sessionEncryptionStatusResponseSchema, encryptionHandshakeResponseSchema, sendMessageResponseSchema, chatSessionEndResponseSchema } from "./standards-sdk.es152.js";
2
- import { serialiseAuthConfig, toJsonObject } from "./standards-sdk.es186.js";
3
- import { EncryptionUnavailableError } from "./standards-sdk.es178.js";
4
- function createChatApi(client, encryptedManager) {
5
- return {
6
- start: (options) => client.startChat(options),
7
- readiness: (payload) => client.checkChatReadiness(payload),
8
- createSession: (payload) => client.createSession(payload),
9
- resumeSession: (sessionId) => client.resumeSession(sessionId),
10
- sendMessage: (payload) => client.sendMessage(payload),
11
- retryMessage: (messageId, payload) => client.retryMessage(messageId, payload),
12
- cancelSession: (sessionId) => client.cancelSession(sessionId),
13
- endSession: (sessionId) => client.endSession(sessionId),
14
- getHistory: (sessionId, options) => client.fetchHistorySnapshot(sessionId, options),
15
- compactHistory: (payload) => client.compactHistory(payload),
16
- getEncryptionStatus: (sessionId) => client.fetchEncryptionStatus(sessionId),
17
- submitEncryptionHandshake: (sessionId, payload) => client.postEncryptionHandshake(sessionId, payload),
18
- startConversation: (options) => client.startConversation(options),
19
- acceptConversation: (options) => client.acceptConversation(options),
20
- createEncryptedSession: (options) => encryptedManager.startSession(options),
21
- acceptEncryptedSession: (options) => encryptedManager.acceptSession(options)
22
- };
23
- }
24
- async function checkChatReadiness(client, payload) {
25
- const body = {};
26
- const uaid = "uaid" in payload ? payload.uaid?.trim() : void 0;
27
- const agentUrl = "agentUrl" in payload ? payload.agentUrl?.trim() : void 0;
28
- if (!uaid && !agentUrl) {
29
- throw new Error("uaid or agentUrl is required to check chat readiness");
30
- }
31
- if (uaid) {
32
- body.uaid = uaid;
33
- }
34
- if (agentUrl) {
35
- body.agentUrl = agentUrl;
36
- }
37
- if (payload.forceRefresh !== void 0) {
38
- body.forceRefresh = payload.forceRefresh;
39
- }
40
- const raw = await client.requestJson("/chat/readiness", {
41
- method: "POST",
42
- body,
43
- headers: { "content-type": "application/json" }
44
- });
45
- return client.parseWithSchema(
46
- raw,
47
- chatReadinessResponseSchema,
48
- "chat readiness response"
49
- );
50
- }
51
- async function createSession(client, payload, allowHistoryAutoTopUp = true) {
52
- const body = {};
53
- if ("uaid" in payload && payload.uaid) {
54
- body.uaid = payload.uaid;
55
- }
56
- if ("agentUrl" in payload && payload.agentUrl) {
57
- body.agentUrl = payload.agentUrl;
58
- }
59
- if (payload.auth) {
60
- body.auth = serialiseAuthConfig(payload.auth);
61
- }
62
- if (payload.historyTtlSeconds !== void 0) {
63
- body.historyTtlSeconds = payload.historyTtlSeconds;
64
- }
65
- if (payload.encryptionRequested !== void 0) {
66
- body.encryptionRequested = payload.encryptionRequested;
67
- }
68
- if (payload.senderUaid) {
69
- body.senderUaid = payload.senderUaid;
70
- }
71
- if (payload.visibility) {
72
- body.visibility = payload.visibility;
73
- }
74
- if (payload.idempotencyKey) {
75
- body.idempotencyKey = payload.idempotencyKey;
76
- }
77
- try {
78
- const raw = await client.requestJson("/chat/session", {
79
- method: "POST",
80
- body,
81
- headers: { "content-type": "application/json" }
82
- });
83
- return client.parseWithSchema(
84
- raw,
85
- createSessionResponseSchema,
86
- "chat session response"
87
- );
88
- } catch (error) {
89
- const maybeError = error instanceof Error ? error : null;
90
- if (allowHistoryAutoTopUp && client.shouldAutoTopUpHistory(payload, maybeError)) {
91
- await client.executeHistoryAutoTopUp("chat.session");
92
- return createSession(client, payload, false);
1
+ import { proto } from "@hashgraph/proto";
2
+ import { Long, FileId, ContractId } from "@hashgraph/sdk";
3
+ import { hasTransactionType } from "./standards-sdk.es178.js";
4
+ class UtilParser {
5
+ /**
6
+ * Parse Utility/System Service transaction using unified dual-branch approach
7
+ * This handles both regular transactions and signed transaction variants
8
+ */
9
+ static parseUtilTransaction(transaction, originalBytes) {
10
+ try {
11
+ if (originalBytes || transaction.toBytes) {
12
+ try {
13
+ const bytesToParse = originalBytes || transaction.toBytes();
14
+ const decoded = proto.TransactionList.decode(bytesToParse);
15
+ if (decoded.transactionList && decoded.transactionList.length > 0) {
16
+ const tx = decoded.transactionList[0];
17
+ let txBody = null;
18
+ if (tx.bodyBytes && tx.bodyBytes.length > 0) {
19
+ txBody = proto.TransactionBody.decode(tx.bodyBytes);
20
+ } else if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {
21
+ const signedTx = proto.SignedTransaction.decode(
22
+ tx.signedTransactionBytes
23
+ );
24
+ if (signedTx.bodyBytes) {
25
+ txBody = proto.TransactionBody.decode(signedTx.bodyBytes);
26
+ }
27
+ }
28
+ if (txBody) {
29
+ const protoResult = this.parseFromProtobufTxBody(txBody);
30
+ if (protoResult.type && protoResult.type !== "UNKNOWN") {
31
+ return protoResult;
32
+ }
33
+ }
34
+ }
35
+ } catch (protoError) {
36
+ }
37
+ }
38
+ return this.parseFromTransactionInternals(transaction);
39
+ } catch (error) {
40
+ return {
41
+ type: "UNKNOWN",
42
+ humanReadableType: "Unknown Utility Transaction"
43
+ };
93
44
  }
94
- throw error;
95
- }
96
- }
97
- async function resumeSession(client, sessionId) {
98
- const normalized = sessionId.trim();
99
- if (!normalized) {
100
- throw new Error("sessionId is required to resume a chat session");
101
- }
102
- const raw = await client.requestJson(
103
- `/chat/session/${encodeURIComponent(normalized)}/resume`,
104
- { method: "GET" }
105
- );
106
- return client.parseWithSchema(
107
- raw,
108
- chatSessionResumeResponseSchema,
109
- "chat session resume response"
110
- );
111
- }
112
- async function startChat(client, encryptedManager, options) {
113
- if ("uaid" in options && options.uaid) {
114
- return startConversation(client, encryptedManager, {
115
- uaid: options.uaid,
116
- senderUaid: options.senderUaid,
117
- historyTtlSeconds: options.historyTtlSeconds,
118
- auth: options.auth,
119
- encryption: options.encryption,
120
- onSessionCreated: options.onSessionCreated
121
- });
122
45
  }
123
- if ("agentUrl" in options && options.agentUrl) {
124
- const session = await createSession(client, {
125
- agentUrl: options.agentUrl,
126
- auth: options.auth,
127
- historyTtlSeconds: options.historyTtlSeconds,
128
- senderUaid: options.senderUaid
129
- });
130
- options.onSessionCreated?.(session.sessionId);
131
- return createPlaintextConversationHandle(
132
- client,
133
- session.sessionId,
134
- session.encryption ?? null,
135
- options.auth,
136
- { agentUrl: options.agentUrl, uaid: options.uaid }
137
- );
138
- }
139
- throw new Error("startChat requires either uaid or agentUrl");
140
- }
141
- async function startConversation(client, encryptedManager, options) {
142
- const preference = options.encryption?.preference ?? "preferred";
143
- const requestEncryption = preference !== "disabled";
144
- if (!requestEncryption) {
145
- const session = await createSession(client, {
146
- uaid: options.uaid,
147
- auth: options.auth,
148
- historyTtlSeconds: options.historyTtlSeconds,
149
- senderUaid: options.senderUaid,
150
- encryptionRequested: false
151
- });
152
- options.onSessionCreated?.(session.sessionId);
153
- return createPlaintextConversationHandle(
154
- client,
155
- session.sessionId,
156
- session.encryption ?? null,
157
- options.auth,
158
- { uaid: options.uaid }
159
- );
160
- }
161
- try {
162
- const handle = await encryptedManager.startSession({
163
- uaid: options.uaid,
164
- senderUaid: options.senderUaid,
165
- historyTtlSeconds: options.historyTtlSeconds,
166
- handshakeTimeoutMs: options.encryption?.handshakeTimeoutMs,
167
- pollIntervalMs: options.encryption?.pollIntervalMs,
168
- onSessionCreated: (sessionId) => {
169
- options.onSessionCreated?.(sessionId);
170
- },
171
- auth: options.auth
172
- });
173
- return handle;
174
- } catch (error) {
175
- if (error instanceof EncryptionUnavailableError) {
176
- if (preference === "required") {
177
- throw error;
46
+ /**
47
+ * Parse utility transaction from protobuf TransactionBody
48
+ * Handles all utility operations from decoded protobuf data
49
+ */
50
+ static parseFromProtobufTxBody(txBody) {
51
+ if (txBody.utilPrng) {
52
+ const utilPrng = this.parseUtilPrng(txBody.utilPrng);
53
+ if (utilPrng) {
54
+ return {
55
+ type: "PRNG",
56
+ humanReadableType: "Pseudo Random Number",
57
+ utilPrng
58
+ };
178
59
  }
179
- return createPlaintextConversationHandle(
180
- client,
181
- error.sessionId,
182
- error.summary ?? null,
183
- options.auth,
184
- { uaid: options.uaid }
185
- );
186
60
  }
187
- throw error;
188
- }
189
- }
190
- async function acceptConversation(client, encryptedManager, options) {
191
- const preference = options.encryption?.preference ?? "preferred";
192
- if (preference === "disabled") {
193
- return createPlaintextConversationHandle(client, options.sessionId, null);
194
- }
195
- try {
196
- const handle = await encryptedManager.acceptSession({
197
- sessionId: options.sessionId,
198
- responderUaid: options.responderUaid,
199
- handshakeTimeoutMs: options.encryption?.handshakeTimeoutMs,
200
- pollIntervalMs: options.encryption?.pollIntervalMs
201
- });
202
- return handle;
203
- } catch (error) {
204
- if (error instanceof EncryptionUnavailableError && preference !== "required") {
205
- return createPlaintextConversationHandle(
206
- client,
207
- options.sessionId,
208
- null,
209
- void 0,
210
- { uaid: options.responderUaid }
61
+ if (txBody.freeze) {
62
+ const networkFreeze = this.parseNetworkFreezeFromProto(txBody.freeze);
63
+ if (networkFreeze) {
64
+ return {
65
+ type: "FREEZE",
66
+ humanReadableType: "Network Freeze",
67
+ freeze: networkFreeze
68
+ };
69
+ }
70
+ }
71
+ if (txBody.systemDelete) {
72
+ const systemDelete = this.parseSystemDeleteFromProto(txBody.systemDelete);
73
+ if (systemDelete) {
74
+ return {
75
+ type: "SYSTEMDELETE",
76
+ humanReadableType: "System Delete",
77
+ systemDelete
78
+ };
79
+ }
80
+ }
81
+ if (txBody.systemUndelete) {
82
+ const systemUndelete = this.parseSystemUndeleteFromProto(
83
+ txBody.systemUndelete
211
84
  );
85
+ if (systemUndelete) {
86
+ return {
87
+ type: "SYSTEMUNDELETE",
88
+ humanReadableType: "System Undelete",
89
+ systemUndelete
90
+ };
91
+ }
212
92
  }
213
- throw error;
214
- }
215
- }
216
- function createPlaintextConversationHandle(client, sessionId, summary, defaultAuth, context) {
217
- const uaid = context?.uaid?.trim();
218
- const agentUrl = context?.agentUrl?.trim();
219
- const fetchHistory = async (options) => {
220
- const snapshot = await client.fetchHistorySnapshot(sessionId, options);
221
- if (snapshot.decryptedHistory) {
222
- return snapshot.decryptedHistory;
93
+ if (txBody.nodeCreate) {
94
+ const nodeCreate = this.parseNodeCreateFromProto(txBody.nodeCreate);
95
+ if (nodeCreate) {
96
+ return {
97
+ type: "NODECREATE",
98
+ humanReadableType: "Node Create",
99
+ nodeCreate
100
+ };
101
+ }
223
102
  }
224
- return snapshot.history.map((entry) => ({
225
- entry,
226
- plaintext: entry.content
227
- }));
228
- };
229
- return {
230
- sessionId,
231
- mode: "plaintext",
232
- summary: summary ?? null,
233
- send: async (options) => {
234
- const plaintext = options.plaintext;
235
- if (!plaintext || plaintext.trim().length === 0) {
236
- throw new Error("plaintext is required for chat messages");
103
+ if (txBody.nodeUpdate) {
104
+ const nodeUpdate = this.parseNodeUpdateFromProto(txBody.nodeUpdate);
105
+ if (nodeUpdate) {
106
+ return {
107
+ type: "NODEUPDATE",
108
+ humanReadableType: "Node Update",
109
+ nodeUpdate
110
+ };
237
111
  }
238
- const message = options.message ?? plaintext;
239
- return sendMessage(client, {
240
- sessionId,
241
- message,
242
- streaming: options.streaming,
243
- auth: options.auth ?? defaultAuth,
244
- uaid,
245
- agentUrl
246
- });
247
- },
248
- decryptHistoryEntry: (entry) => entry.content,
249
- fetchHistory
250
- };
251
- }
252
- async function compactHistory(client, payload) {
253
- if (!payload.sessionId || payload.sessionId.trim().length === 0) {
254
- throw new Error("sessionId is required to compact chat history");
255
- }
256
- const body = {};
257
- if (typeof payload.preserveEntries === "number" && Number.isFinite(payload.preserveEntries) && payload.preserveEntries >= 0) {
258
- body.preserveEntries = Math.floor(payload.preserveEntries);
259
- }
260
- const raw = await client.requestJson(
261
- `/chat/session/${encodeURIComponent(payload.sessionId)}/compact`,
262
- {
263
- method: "POST",
264
- headers: { "content-type": "application/json" },
265
- body
266
112
  }
267
- );
268
- return client.parseWithSchema(
269
- raw,
270
- chatHistoryCompactionResponseSchema,
271
- "chat history compaction response"
272
- );
273
- }
274
- async function fetchEncryptionStatus(client, sessionId) {
275
- if (!sessionId || sessionId.trim().length === 0) {
276
- throw new Error("sessionId is required for encryption status");
277
- }
278
- const raw = await client.requestJson(
279
- `/chat/session/${encodeURIComponent(sessionId)}/encryption`,
280
- {
281
- method: "GET"
113
+ if (txBody.nodeDelete) {
114
+ const nodeDelete = this.parseNodeDeleteFromProto(txBody.nodeDelete);
115
+ if (nodeDelete) {
116
+ return {
117
+ type: "NODEDELETE",
118
+ humanReadableType: "Node Delete",
119
+ nodeDelete
120
+ };
121
+ }
282
122
  }
283
- );
284
- return client.parseWithSchema(
285
- raw,
286
- sessionEncryptionStatusResponseSchema,
287
- "session encryption status response"
288
- );
289
- }
290
- async function postEncryptionHandshake(client, sessionId, payload) {
291
- if (!sessionId || sessionId.trim().length === 0) {
292
- throw new Error("sessionId is required for encryption handshake");
293
- }
294
- const raw = await client.requestJson(
295
- `/chat/session/${encodeURIComponent(sessionId)}/encryption-handshake`,
296
- {
297
- method: "POST",
298
- headers: { "content-type": "application/json" },
299
- body: {
300
- role: payload.role,
301
- keyType: payload.keyType,
302
- ephemeralPublicKey: payload.ephemeralPublicKey,
303
- longTermPublicKey: payload.longTermPublicKey,
304
- signature: payload.signature,
305
- uaid: payload.uaid,
306
- userId: payload.userId,
307
- ledgerAccountId: payload.ledgerAccountId,
308
- metadata: payload.metadata
123
+ return {};
124
+ }
125
+ /**
126
+ * Extract utility data from Transaction internal fields
127
+ * This handles cases where data is stored in Transaction object internals
128
+ */
129
+ static parseFromTransactionInternals(transaction) {
130
+ try {
131
+ const tx = transaction;
132
+ if (hasTransactionType(transaction, "utilPrng")) {
133
+ const utilPrng = {};
134
+ if (tx._range && tx._range !== 0) {
135
+ utilPrng.range = tx._range;
136
+ }
137
+ return {
138
+ type: "PRNG",
139
+ humanReadableType: "Pseudo Random Number",
140
+ utilPrng
141
+ };
142
+ }
143
+ if (hasTransactionType(transaction, "freeze")) {
144
+ const networkFreeze = {};
145
+ if (tx._startTime) {
146
+ networkFreeze.startTime = tx._startTime.toString();
147
+ }
148
+ if (tx._endTime) {
149
+ networkFreeze.endTime = tx._endTime.toString();
150
+ }
151
+ if (tx._updateFile) {
152
+ networkFreeze.updateFile = tx._updateFile.toString();
153
+ }
154
+ if (tx._fileHash) {
155
+ networkFreeze.fileHash = Buffer.from(tx._fileHash).toString("hex");
156
+ }
157
+ if (tx._freezeType) {
158
+ networkFreeze.freezeType = tx._freezeType;
159
+ }
160
+ return {
161
+ type: "FREEZE",
162
+ humanReadableType: "Network Freeze",
163
+ freeze: networkFreeze
164
+ };
165
+ }
166
+ if (hasTransactionType(transaction, "systemDelete")) {
167
+ const systemDelete = {};
168
+ if (tx._fileId) {
169
+ systemDelete.fileId = tx._fileId.toString();
170
+ } else if (tx._contractId) {
171
+ systemDelete.contractId = tx._contractId.toString();
172
+ }
173
+ if (tx._expirationTime) {
174
+ systemDelete.expirationTime = tx._expirationTime.toString();
175
+ }
176
+ return {
177
+ type: "SYSTEMDELETE",
178
+ humanReadableType: "System Delete",
179
+ systemDelete
180
+ };
309
181
  }
182
+ if (hasTransactionType(transaction, "systemUndelete")) {
183
+ const systemUndelete = {};
184
+ if (tx._fileId) {
185
+ systemUndelete.fileId = tx._fileId.toString();
186
+ } else if (tx._contractId) {
187
+ systemUndelete.contractId = tx._contractId.toString();
188
+ }
189
+ return {
190
+ type: "SYSTEMUNDELETE",
191
+ humanReadableType: "System Undelete",
192
+ systemUndelete
193
+ };
194
+ }
195
+ return {};
196
+ } catch (error) {
197
+ return {};
310
198
  }
311
- );
312
- const response = client.parseWithSchema(
313
- raw,
314
- encryptionHandshakeResponseSchema,
315
- "encryption handshake response"
316
- );
317
- return response.handshake;
318
- }
319
- async function sendMessage(client, payload) {
320
- const body = {
321
- message: payload.message
322
- };
323
- if (payload.streaming !== void 0) {
324
- body.streaming = payload.streaming;
325
- }
326
- if (payload.idempotencyKey) {
327
- body.idempotencyKey = payload.idempotencyKey;
328
- }
329
- if (payload.senderUaid) {
330
- body.senderUaid = payload.senderUaid;
331
- }
332
- if (payload.transport) {
333
- body.transport = payload.transport;
334
- }
335
- if (payload.auth) {
336
- body.auth = serialiseAuthConfig(payload.auth);
337
- }
338
- if ("uaid" in payload) {
339
- body.uaid = payload.uaid;
340
- }
341
- if ("sessionId" in payload && payload.sessionId) {
342
- body.sessionId = payload.sessionId;
343
199
  }
344
- if ("agentUrl" in payload && payload.agentUrl) {
345
- body.agentUrl = payload.agentUrl;
346
- }
347
- let cipherEnvelope = payload.cipherEnvelope ?? null;
348
- if (payload.encryption) {
349
- const sessionIdForEncryption = payload.encryption.sessionId ?? (typeof body.sessionId === "string" ? body.sessionId : void 0);
350
- if (!sessionIdForEncryption) {
351
- throw new Error(
352
- "sessionId is required when using encrypted chat payloads"
353
- );
200
+ /**
201
+ * Parse Network Freeze from protobuf data
202
+ */
203
+ static parseNetworkFreezeFromProto(body) {
204
+ if (!body) return void 0;
205
+ const data = {};
206
+ if (body.startTime?.seconds) {
207
+ data.startTime = `${Long.fromValue(
208
+ body.startTime.seconds
209
+ ).toString()}.${body.startTime.nanos ?? 0}`;
354
210
  }
355
- if (!payload.encryption.recipients?.length) {
356
- throw new Error("recipients are required for encrypted chat payloads");
211
+ if (body.updateFile) {
212
+ data.updateFile = new FileId(
213
+ body.updateFile.shardNum ?? 0,
214
+ body.updateFile.realmNum ?? 0,
215
+ body.updateFile.fileNum ?? 0
216
+ ).toString();
357
217
  }
358
- cipherEnvelope = client.encryption.encryptCipherEnvelope({
359
- ...payload.encryption,
360
- sessionId: sessionIdForEncryption
361
- });
362
- }
363
- if (cipherEnvelope) {
364
- body.cipherEnvelope = toJsonObject(cipherEnvelope);
365
- }
366
- const raw = await client.requestJson("/chat/message", {
367
- method: "POST",
368
- body,
369
- headers: { "content-type": "application/json" }
370
- });
371
- return client.parseWithSchema(
372
- raw,
373
- sendMessageResponseSchema,
374
- "chat message response"
375
- );
376
- }
377
- async function endSession(client, sessionId) {
378
- const normalizedSessionId = sessionId?.trim();
379
- if (!normalizedSessionId) {
380
- throw new Error("sessionId is required to end a chat session");
381
- }
382
- const response = await client.request(
383
- `/chat/session/${encodeURIComponent(normalizedSessionId)}`,
384
- { method: "DELETE" }
385
- );
386
- if (response.status === 204) {
387
- return {
388
- message: "Session ended",
389
- sessionId: normalizedSessionId,
390
- state: "ended"
391
- };
392
- }
393
- const contentType = response.headers?.get("content-type") ?? "";
394
- if (!contentType.toLowerCase().includes("json")) {
395
- await response.text();
396
- return {
397
- message: "Session ended",
398
- sessionId: normalizedSessionId,
399
- state: "ended"
400
- };
401
- }
402
- const responseBody = await response.text();
403
- if (responseBody.trim().length === 0) {
404
- return {
405
- message: "Session ended",
406
- sessionId: normalizedSessionId,
407
- state: "ended"
408
- };
409
- }
410
- const raw = JSON.parse(responseBody);
411
- return client.parseWithSchema(
412
- raw,
413
- chatSessionEndResponseSchema,
414
- "chat session end response"
415
- );
416
- }
417
- async function cancelSession(client, sessionId) {
418
- const normalizedSessionId = sessionId?.trim();
419
- if (!normalizedSessionId) {
420
- throw new Error("sessionId is required to cancel a chat session");
421
- }
422
- const raw = await client.requestJson(
423
- `/chat/session/${encodeURIComponent(normalizedSessionId)}/cancel`,
424
- {
425
- method: "POST"
218
+ if (body.fileHash && body.fileHash.length > 0) {
219
+ data.fileHash = Buffer.from(body.fileHash).toString("hex");
426
220
  }
427
- );
428
- return client.parseWithSchema(
429
- raw,
430
- chatSessionEndResponseSchema,
431
- "chat session cancel response"
432
- );
433
- }
434
- async function retryMessage(client, messageId, payload) {
435
- const normalizedMessageId = messageId?.trim();
436
- const normalizedSessionId = payload.sessionId?.trim();
437
- const normalizedMessage = payload.message?.trim();
438
- if (!normalizedMessageId) {
439
- throw new Error("messageId is required to retry a message");
440
- }
441
- if (!normalizedSessionId) {
442
- throw new Error("sessionId is required to retry a message");
443
- }
444
- if (!normalizedMessage) {
445
- throw new Error("message is required to retry a message");
446
- }
447
- const body = {
448
- sessionId: normalizedSessionId,
449
- message: payload.message
450
- };
451
- if (payload.streaming !== void 0) {
452
- body.streaming = payload.streaming;
453
- }
454
- if (payload.transport) {
455
- body.transport = payload.transport;
456
- }
457
- const uaid = payload.uaid?.trim();
458
- const agentUrl = payload.agentUrl?.trim();
459
- const idempotencyKey = payload.idempotencyKey?.trim();
460
- const senderUaid = payload.senderUaid?.trim();
461
- if (uaid) {
462
- body.uaid = uaid;
463
- }
464
- if (agentUrl) {
465
- body.agentUrl = agentUrl;
466
- }
467
- if (idempotencyKey) {
468
- body.idempotencyKey = idempotencyKey;
469
- }
470
- if (senderUaid) {
471
- body.senderUaid = senderUaid;
472
- }
473
- if (payload.auth) {
474
- body.auth = serialiseAuthConfig(payload.auth);
221
+ if (body.freezeType !== void 0) {
222
+ const freezeTypes = [
223
+ "FREEZE_ONLY",
224
+ "PREPARE_UPGRADE",
225
+ "FREEZE_UPGRADE",
226
+ "FREEZE_ABORT"
227
+ ];
228
+ data.freezeType = freezeTypes[body.freezeType] || "FREEZE_ONLY";
229
+ }
230
+ return data;
231
+ }
232
+ /**
233
+ * Parse System Delete from protobuf data
234
+ */
235
+ static parseSystemDeleteFromProto(body) {
236
+ if (!body) return void 0;
237
+ const data = {};
238
+ if (body.fileID) {
239
+ data.fileId = new FileId(
240
+ body.fileID.shardNum ?? 0,
241
+ body.fileID.realmNum ?? 0,
242
+ body.fileID.fileNum ?? 0
243
+ ).toString();
244
+ } else if (body.contractID) {
245
+ data.contractId = new ContractId(
246
+ body.contractID.shardNum ?? 0,
247
+ body.contractID.realmNum ?? 0,
248
+ body.contractID.contractNum ?? 0
249
+ ).toString();
250
+ }
251
+ if (body.expirationTime?.seconds) {
252
+ data.expirationTime = Long.fromValue(
253
+ body.expirationTime.seconds
254
+ ).toString();
255
+ }
256
+ return data;
257
+ }
258
+ /**
259
+ * Parse System Undelete from protobuf data
260
+ */
261
+ static parseSystemUndeleteFromProto(body) {
262
+ if (!body) return void 0;
263
+ const data = {};
264
+ if (body.fileID) {
265
+ data.fileId = new FileId(
266
+ body.fileID.shardNum ?? 0,
267
+ body.fileID.realmNum ?? 0,
268
+ body.fileID.fileNum ?? 0
269
+ ).toString();
270
+ } else if (body.contractID) {
271
+ data.contractId = new ContractId(
272
+ body.contractID.shardNum ?? 0,
273
+ body.contractID.realmNum ?? 0,
274
+ body.contractID.contractNum ?? 0
275
+ ).toString();
276
+ }
277
+ return data;
278
+ }
279
+ /**
280
+ * Parse Node Create from protobuf data
281
+ */
282
+ static parseNodeCreateFromProto(body) {
283
+ if (!body) return void 0;
284
+ const data = {};
285
+ if (body.nodeId !== void 0) {
286
+ data.nodeId = Long.fromValue(body.nodeId).toNumber();
287
+ }
288
+ return data;
289
+ }
290
+ /**
291
+ * Parse Node Update from protobuf data
292
+ */
293
+ static parseNodeUpdateFromProto(body) {
294
+ if (!body) return void 0;
295
+ const data = {};
296
+ if (body.nodeId !== void 0) {
297
+ data.nodeId = Long.fromValue(body.nodeId).toNumber();
298
+ }
299
+ return data;
300
+ }
301
+ /**
302
+ * Parse Node Delete from protobuf data
303
+ */
304
+ static parseNodeDeleteFromProto(body) {
305
+ if (!body) return void 0;
306
+ const data = {};
307
+ if (body.nodeId !== void 0) {
308
+ data.nodeId = Long.fromValue(body.nodeId).toNumber();
309
+ }
310
+ return data;
475
311
  }
476
- let cipherEnvelope = payload.cipherEnvelope ?? null;
477
- if (payload.encryption) {
478
- if (!payload.encryption.recipients?.length) {
479
- throw new Error("recipients are required for encrypted chat payloads");
312
+ static parseUtilPrng(body) {
313
+ if (!body) return void 0;
314
+ const data = {};
315
+ if (body.range && body.range !== 0) {
316
+ data.range = body.range;
480
317
  }
481
- cipherEnvelope = client.encryption.encryptCipherEnvelope({
482
- ...payload.encryption,
483
- sessionId: payload.encryption.sessionId ?? normalizedSessionId
484
- });
318
+ return data;
485
319
  }
486
- if (cipherEnvelope) {
487
- body.cipherEnvelope = toJsonObject(cipherEnvelope);
320
+ static parseFreeze(body) {
321
+ return this.parseNetworkFreezeFromProto(body);
322
+ }
323
+ /**
324
+ * Parse Utility/System Service transaction from Transaction object
325
+ * This is the unified entry point that delegates to the comprehensive parsing logic
326
+ */
327
+ static parseFromTransactionObject(transaction) {
328
+ return this.parseUtilTransaction(transaction);
488
329
  }
489
- const raw = await client.requestJson(
490
- `/chat/message/${encodeURIComponent(normalizedMessageId)}/retry`,
491
- {
492
- method: "POST",
493
- body,
494
- headers: { "content-type": "application/json" }
495
- }
496
- );
497
- return client.parseWithSchema(
498
- raw,
499
- sendMessageResponseSchema,
500
- "chat retry response"
501
- );
502
330
  }
503
331
  export {
504
- acceptConversation,
505
- cancelSession,
506
- checkChatReadiness,
507
- compactHistory,
508
- createChatApi,
509
- createPlaintextConversationHandle,
510
- createSession,
511
- endSession,
512
- fetchEncryptionStatus,
513
- postEncryptionHandshake,
514
- resumeSession,
515
- retryMessage,
516
- sendMessage,
517
- startChat,
518
- startConversation
332
+ UtilParser
519
333
  };
520
334
  //# sourceMappingURL=standards-sdk.es177.js.map