@bsv/wallet-toolbox 2.4.1 → 2.4.2

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 (139) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +41 -0
  3. package/docs/client.md +417 -173
  4. package/docs/services.md +51 -26
  5. package/docs/storage.md +367 -76
  6. package/docs/wallet.md +384 -140
  7. package/out/src/Wallet.d.ts +1 -1
  8. package/out/src/Wallet.d.ts.map +1 -1
  9. package/out/src/Wallet.js +8 -7
  10. package/out/src/Wallet.js.map +1 -1
  11. package/out/src/WalletPermissionsManager.d.ts +18 -0
  12. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  13. package/out/src/WalletPermissionsManager.js +56 -9
  14. package/out/src/WalletPermissionsManager.js.map +1 -1
  15. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  16. package/out/src/monitor/tasks/TaskArcSSE.js +11 -7
  17. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  18. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  19. package/out/src/monitor/tasks/TaskCheckForProofs.js +10 -10
  20. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  21. package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -1
  22. package/out/src/monitor/tasks/TaskReviewStatus.js +7 -2
  23. package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
  24. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  25. package/out/src/monitor/tasks/TaskUnFail.js +2 -57
  26. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  27. package/out/src/sdk/WalletServices.interfaces.d.ts +1 -0
  28. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  29. package/out/src/sdk/WalletStorage.interfaces.d.ts +10 -4
  30. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  31. package/out/src/sdk/types.d.ts +1 -1
  32. package/out/src/sdk/types.d.ts.map +1 -1
  33. package/out/src/services/Services.d.ts.map +1 -1
  34. package/out/src/services/Services.js +39 -19
  35. package/out/src/services/Services.js.map +1 -1
  36. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
  37. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +4 -0
  38. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
  39. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  40. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +2 -0
  41. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  42. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  43. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +2 -1
  44. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  45. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  46. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +1 -0
  47. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  48. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  49. package/out/src/services/createDefaultWalletServicesOptions.js +17 -3
  50. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  51. package/out/src/services/networkConfig.d.ts +29 -0
  52. package/out/src/services/networkConfig.d.ts.map +1 -0
  53. package/out/src/services/networkConfig.js +54 -0
  54. package/out/src/services/networkConfig.js.map +1 -0
  55. package/out/src/services/providers/Arcade.d.ts.map +1 -1
  56. package/out/src/services/providers/Arcade.js +6 -2
  57. package/out/src/services/providers/Arcade.js.map +1 -1
  58. package/out/src/services/providers/SdkWhatsOnChain.d.ts +1 -1
  59. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  60. package/out/src/services/providers/SdkWhatsOnChain.js +12 -4
  61. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  62. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  63. package/out/src/signer/methods/buildSignableTransaction.js +3 -1
  64. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  65. package/out/src/signer/methods/completeSignedTransaction.d.ts.map +1 -1
  66. package/out/src/signer/methods/completeSignedTransaction.js +5 -3
  67. package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
  68. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  69. package/out/src/signer/methods/createAction.js +12 -5
  70. package/out/src/signer/methods/createAction.js.map +1 -1
  71. package/out/src/signer/methods/resultBeef.d.ts +4 -0
  72. package/out/src/signer/methods/resultBeef.d.ts.map +1 -0
  73. package/out/src/signer/methods/resultBeef.js +12 -0
  74. package/out/src/signer/methods/resultBeef.js.map +1 -0
  75. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  76. package/out/src/signer/methods/signAction.js +6 -1
  77. package/out/src/signer/methods/signAction.js.map +1 -1
  78. package/out/src/storage/StorageProvider.d.ts +17 -0
  79. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  80. package/out/src/storage/StorageProvider.js +206 -13
  81. package/out/src/storage/StorageProvider.js.map +1 -1
  82. package/out/src/storage/index.all.d.ts +1 -0
  83. package/out/src/storage/index.all.d.ts.map +1 -1
  84. package/out/src/storage/index.all.js +1 -0
  85. package/out/src/storage/index.all.js.map +1 -1
  86. package/out/src/storage/methods/createAction.js +17 -4
  87. package/out/src/storage/methods/createAction.js.map +1 -1
  88. package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
  89. package/out/src/storage/methods/getBeefForTransaction.js +47 -24
  90. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  91. package/out/src/storage/methods/internalizeAction.js +3 -3
  92. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  93. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  94. package/out/src/storage/methods/processAction.js +5 -4
  95. package/out/src/storage/methods/processAction.js.map +1 -1
  96. package/out/src/storage/remoting/BinaryJson.d.ts +10 -0
  97. package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -0
  98. package/out/src/storage/remoting/BinaryJson.js +172 -0
  99. package/out/src/storage/remoting/BinaryJson.js.map +1 -0
  100. package/out/src/storage/remoting/KnexSessionManager.d.ts +37 -0
  101. package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -0
  102. package/out/src/storage/remoting/KnexSessionManager.js +198 -0
  103. package/out/src/storage/remoting/KnexSessionManager.js.map +1 -0
  104. package/out/src/storage/remoting/StorageClient.d.ts +2 -2
  105. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  106. package/out/src/storage/remoting/StorageClient.js +14 -5
  107. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  108. package/out/src/storage/remoting/StorageClientBase.d.ts +11 -1
  109. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
  110. package/out/src/storage/remoting/StorageClientBase.js +4 -1
  111. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  112. package/out/src/storage/remoting/StorageMobile.d.ts +2 -2
  113. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  114. package/out/src/storage/remoting/StorageMobile.js +14 -5
  115. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  116. package/out/src/storage/remoting/StorageServer.d.ts +10 -0
  117. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  118. package/out/src/storage/remoting/StorageServer.js +48 -21
  119. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  120. package/out/src/storage/schema/KnexMigrations.d.ts +2 -0
  121. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  122. package/out/src/storage/schema/KnexMigrations.js +34 -1
  123. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  124. package/out/src/storage/schema/tables/TableAuthSession.d.ts +20 -0
  125. package/out/src/storage/schema/tables/TableAuthSession.d.ts.map +1 -0
  126. package/out/src/storage/schema/tables/TableAuthSession.js +15 -0
  127. package/out/src/storage/schema/tables/TableAuthSession.js.map +1 -0
  128. package/out/src/storage/schema/tables/index.d.ts +1 -0
  129. package/out/src/storage/schema/tables/index.d.ts.map +1 -1
  130. package/out/src/storage/schema/tables/index.js +1 -0
  131. package/out/src/storage/schema/tables/index.js.map +1 -1
  132. package/out/src/storage/storageProviderHelpers.d.ts +5 -4
  133. package/out/src/storage/storageProviderHelpers.d.ts.map +1 -1
  134. package/out/src/storage/storageProviderHelpers.js +7 -6
  135. package/out/src/storage/storageProviderHelpers.js.map +1 -1
  136. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  137. package/out/src/utility/utilityHelpers.js +2 -0
  138. package/out/src/utility/utilityHelpers.js.map +1 -1
  139. package/package.json +5 -4
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BINARY_ENCODING = exports.BINARY_REQUEST_ENCODING_HEADER = exports.BINARY_ENCODING_HEADER = void 0;
4
+ exports.binaryJsonReplacer = binaryJsonReplacer;
5
+ exports.legacyBinaryJsonReplacer = legacyBinaryJsonReplacer;
6
+ exports.binaryJsonReviver = binaryJsonReviver;
7
+ exports.decodeBinaryJsonValue = decodeBinaryJsonValue;
8
+ exports.stringifyJsonRpc = stringifyJsonRpc;
9
+ exports.parseJsonRpc = parseJsonRpc;
10
+ exports.BINARY_ENCODING_HEADER = 'X-BSV-Binary-Encoding';
11
+ exports.BINARY_REQUEST_ENCODING_HEADER = 'X-BSV-Binary-Request-Encoding';
12
+ exports.BINARY_ENCODING = 'base64';
13
+ const TAG = '$bsvBinary';
14
+ const ESCAPED = 'escaped';
15
+ const BASE64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
16
+ function getBufferCtor() {
17
+ return typeof globalThis === 'undefined' ? undefined : globalThis.Buffer;
18
+ }
19
+ function toBase64(bytes) {
20
+ const BufferCtor = getBufferCtor();
21
+ if (BufferCtor != null)
22
+ return BufferCtor.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString('base64');
23
+ if (typeof globalThis.btoa === 'function') {
24
+ let binary = '';
25
+ const chunkSize = 0x8000;
26
+ for (let offset = 0; offset < bytes.length; offset += chunkSize) {
27
+ binary += String.fromCharCode(...bytes.subarray(offset, Math.min(offset + chunkSize, bytes.length)));
28
+ }
29
+ return globalThis.btoa(binary);
30
+ }
31
+ let encoded = '';
32
+ for (let i = 0; i < bytes.length; i += 3) {
33
+ const first = bytes[i];
34
+ const second = bytes[i + 1] ?? 0;
35
+ const third = bytes[i + 2] ?? 0;
36
+ encoded += BASE64[first >>> 2];
37
+ encoded += BASE64[((first & 3) << 4) | (second >>> 4)];
38
+ encoded += i + 1 < bytes.length ? BASE64[((second & 15) << 2) | (third >>> 6)] : '=';
39
+ encoded += i + 2 < bytes.length ? BASE64[third & 63] : '=';
40
+ }
41
+ return encoded;
42
+ }
43
+ function fromBase64(base64) {
44
+ if (base64.length % 4 !== 0)
45
+ throw new TypeError('Invalid base64 binary JSON value');
46
+ const padding = base64.endsWith('==') ? 2 : base64.endsWith('=') ? 1 : 0;
47
+ const contentLength = base64.length - padding;
48
+ for (let i = 0; i < contentLength; i++) {
49
+ if (!BASE64.includes(base64[i]))
50
+ throw new TypeError('Invalid base64 binary JSON value');
51
+ }
52
+ for (let i = contentLength; i < base64.length; i++) {
53
+ if (base64[i] !== '=')
54
+ throw new TypeError('Invalid base64 binary JSON value');
55
+ }
56
+ if ((padding === 1 && (BASE64.indexOf(base64[contentLength - 1]) & 3) !== 0) ||
57
+ (padding === 2 && (BASE64.indexOf(base64[contentLength - 1]) & 15) !== 0))
58
+ throw new TypeError('Invalid base64 binary JSON value');
59
+ const BufferCtor = getBufferCtor();
60
+ if (BufferCtor != null) {
61
+ const buffer = BufferCtor.from(base64, 'base64');
62
+ return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
63
+ }
64
+ if (typeof globalThis.atob === 'function') {
65
+ const binary = globalThis.atob(base64);
66
+ // Uint8Array.from performs the conversion in the native collection
67
+ // primitive and avoids an attacker-controlled JavaScript loop bound.
68
+ return Uint8Array.from(binary, character => character.charCodeAt(0));
69
+ }
70
+ const bytes = new Uint8Array(Math.floor(base64.length * 3 / 4) - padding);
71
+ let offset = 0;
72
+ for (let i = 0; i < base64.length; i += 4) {
73
+ const first = BASE64.indexOf(base64[i]);
74
+ const second = BASE64.indexOf(base64[i + 1]);
75
+ const third = base64[i + 2] === '=' ? 0 : BASE64.indexOf(base64[i + 2]);
76
+ const fourth = base64[i + 3] === '=' ? 0 : BASE64.indexOf(base64[i + 3]);
77
+ const value = (first << 18) | (second << 12) | (third << 6) | fourth;
78
+ if (offset < bytes.length)
79
+ bytes[offset++] = value >>> 16;
80
+ if (offset < bytes.length)
81
+ bytes[offset++] = value >>> 8;
82
+ if (offset < bytes.length)
83
+ bytes[offset++] = value;
84
+ }
85
+ return bytes;
86
+ }
87
+ function isTaggedBinary(value) {
88
+ return value != null && typeof value === 'object' &&
89
+ value[TAG] === exports.BINARY_ENCODING && typeof value.data === 'string' &&
90
+ Object.keys(value).length === 2;
91
+ }
92
+ function isBufferJson(value) {
93
+ return value != null && typeof value === 'object' &&
94
+ value.type === 'Buffer' && Array.isArray(value.data) &&
95
+ Object.keys(value).length === 2;
96
+ }
97
+ function isEscapedJson(value) {
98
+ return value != null && typeof value === 'object' &&
99
+ value[TAG] === ESCAPED && Array.isArray(value.entries) &&
100
+ Object.keys(value).length === 2 &&
101
+ value.entries.every((entry) => Array.isArray(entry) && entry.length === 2 && typeof entry[0] === 'string');
102
+ }
103
+ function escapeJsonObject(value) {
104
+ return { [TAG]: ESCAPED, entries: Object.entries(value) };
105
+ }
106
+ function binaryJsonReplacer(key, value) {
107
+ if (value instanceof Uint8Array)
108
+ return { [TAG]: exports.BINARY_ENCODING, data: toBase64(value) };
109
+ if (value == null || typeof value !== 'object')
110
+ return value;
111
+ // Buffer.toJSON runs before a JSON replacer, but the holder still contains
112
+ // the original Buffer. Literal Buffer-JSON objects must remain ordinary data.
113
+ if (isBufferJson(value)) {
114
+ const original = this[key];
115
+ if (original instanceof Uint8Array)
116
+ return { [TAG]: exports.BINARY_ENCODING, data: toBase64(original) };
117
+ return escapeJsonObject(value);
118
+ }
119
+ if (isTaggedBinary(value) || isEscapedJson(value))
120
+ return escapeJsonObject(value);
121
+ return value;
122
+ }
123
+ function legacyBinaryJsonReplacer(_key, value) {
124
+ if (value instanceof Uint8Array)
125
+ return Array.from(value);
126
+ return value;
127
+ }
128
+ function binaryJsonReviver(_key, value) {
129
+ if (isTaggedBinary(value))
130
+ return fromBase64(value.data);
131
+ if (isEscapedJson(value))
132
+ return Object.fromEntries(value.entries);
133
+ return value;
134
+ }
135
+ function decodeBinaryJsonValue(value) {
136
+ if (isTaggedBinary(value))
137
+ return fromBase64(value.data);
138
+ if (value == null || typeof value !== 'object')
139
+ return value;
140
+ // JSON can be nested far more deeply than the JavaScript call stack. Walk it
141
+ // iteratively so an authenticated peer cannot turn binary decoding into a
142
+ // recursion overflow.
143
+ const decoded = isEscapedJson(value) ? Object.fromEntries(value.entries) : value;
144
+ const stack = [decoded];
145
+ while (stack.length > 0) {
146
+ const current = stack.pop();
147
+ if (current == null)
148
+ continue;
149
+ for (const [key, child] of Object.entries(current)) {
150
+ if (isTaggedBinary(child)) {
151
+ ;
152
+ current[key] = fromBase64(child.data);
153
+ }
154
+ else if (isEscapedJson(child)) {
155
+ const restored = Object.fromEntries(child.entries);
156
+ current[key] = restored;
157
+ stack.push(restored);
158
+ }
159
+ else if (child != null && typeof child === 'object') {
160
+ stack.push(child);
161
+ }
162
+ }
163
+ }
164
+ return decoded;
165
+ }
166
+ function stringifyJsonRpc(value, binary) {
167
+ return JSON.stringify(value, binary ? binaryJsonReplacer : legacyBinaryJsonReplacer);
168
+ }
169
+ function parseJsonRpc(text, binary = false) {
170
+ return binary ? JSON.parse(text, binaryJsonReviver) : JSON.parse(text);
171
+ }
172
+ //# sourceMappingURL=BinaryJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BinaryJson.js","sourceRoot":"","sources":["../../../../src/storage/remoting/BinaryJson.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { AsyncSessionManager, PeerSession } from '@bsv/sdk';
2
+ import { Knex } from 'knex';
3
+ export declare const AUTH_SESSION_TABLE = "auth_sessions";
4
+ export declare const DEFAULT_AUTH_SESSION_TTL_MS: number;
5
+ export interface KnexSessionManagerOptions {
6
+ /** Session lifetime since its most recent authenticated use. Default: 24 hours. */
7
+ ttlMs?: number;
8
+ /** Testable clock source. Defaults to `Date.now`. */
9
+ now?: () => number;
10
+ }
11
+ /**
12
+ * Shared BRC-103 session storage for horizontally scaled StorageServer nodes.
13
+ *
14
+ * Every instance must use the same Knex database. The wallet-toolbox migration
15
+ * creates the required `auth_sessions` table. Writes are monotonic by
16
+ * `PeerSession.lastUpdate`, preventing a delayed request on one replica from
17
+ * replacing newer session state written by another replica.
18
+ */
19
+ export declare class KnexSessionManager implements AsyncSessionManager {
20
+ private readonly knex;
21
+ private readonly ttlMs;
22
+ private readonly now;
23
+ constructor(knex: Knex, options?: KnexSessionManagerOptions);
24
+ addSession(session: PeerSession): Promise<void>;
25
+ updateSession(session: PeerSession): Promise<void>;
26
+ getSession(identifier: string): Promise<PeerSession | undefined>;
27
+ removeSession(session: PeerSession): Promise<void>;
28
+ hasSession(identifier: string): Promise<boolean>;
29
+ /** Delete expired rows. Call from an operator-controlled maintenance task. */
30
+ pruneExpiredSessions(): Promise<number>;
31
+ private activeSessions;
32
+ private persistSession;
33
+ private updateIfCurrentOrNewer;
34
+ private mergeNullableBoolean;
35
+ private toTableAuthSession;
36
+ }
37
+ //# sourceMappingURL=KnexSessionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnexSessionManager.d.ts","sourceRoot":"","sources":["../../../../src/storage/remoting/KnexSessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,eAAO,MAAM,kBAAkB,kBAAkB,CAAA;AACjD,eAAO,MAAM,2BAA2B,QAAsB,CAAA;AAE9D,MAAM,WAAW,yBAAyB;IACxC,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAmB,YAAW,mBAAmB;IAI/C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHlC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;gBAEJ,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,yBAA8B;IAS3E,UAAU,CAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,aAAa,CAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,UAAU,CAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAcjE,aAAa,CAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnD,UAAU,CAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYvD,8EAA8E;IACxE,oBAAoB,IAAK,OAAO,CAAC,MAAM,CAAC;IAM9C,OAAO,CAAC,cAAc;YAKR,cAAc;YAqCd,sBAAsB;IAwBpC,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,kBAAkB;CAiB3B"}
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KnexSessionManager = exports.DEFAULT_AUTH_SESSION_TTL_MS = exports.AUTH_SESSION_TABLE = void 0;
4
+ const TableAuthSession_1 = require("../schema/tables/TableAuthSession");
5
+ exports.AUTH_SESSION_TABLE = 'auth_sessions';
6
+ exports.DEFAULT_AUTH_SESSION_TTL_MS = 24 * 60 * 60 * 1000;
7
+ /**
8
+ * Shared BRC-103 session storage for horizontally scaled StorageServer nodes.
9
+ *
10
+ * Every instance must use the same Knex database. The wallet-toolbox migration
11
+ * creates the required `auth_sessions` table. Writes are monotonic by
12
+ * `PeerSession.lastUpdate`, preventing a delayed request on one replica from
13
+ * replacing newer session state written by another replica.
14
+ */
15
+ class KnexSessionManager {
16
+ knex;
17
+ ttlMs;
18
+ now;
19
+ constructor(knex, options = {}) {
20
+ this.knex = knex;
21
+ this.ttlMs = options.ttlMs ?? exports.DEFAULT_AUTH_SESSION_TTL_MS;
22
+ this.now = options.now ?? Date.now;
23
+ if (!Number.isSafeInteger(this.ttlMs) || this.ttlMs <= 0) {
24
+ throw new TypeError('KnexSessionManager ttlMs must be a positive safe integer.');
25
+ }
26
+ }
27
+ async addSession(session) {
28
+ await this.persistSession(session);
29
+ }
30
+ async updateSession(session) {
31
+ await this.persistSession(session);
32
+ }
33
+ async getSession(identifier) {
34
+ const byNonce = await this.activeSessions()
35
+ .where({ sessionNonce: identifier })
36
+ .first();
37
+ if (byNonce != null)
38
+ return (0, TableAuthSession_1.tableAuthSessionToPeerSession)(byNonce);
39
+ const byIdentity = await this.activeSessions()
40
+ .where({ peerIdentityKey: identifier })
41
+ .orderBy('lastUpdate', 'desc')
42
+ .orderBy('sessionNonce', 'desc')
43
+ .first();
44
+ return byIdentity == null ? undefined : (0, TableAuthSession_1.tableAuthSessionToPeerSession)(byIdentity);
45
+ }
46
+ async removeSession(session) {
47
+ if (typeof session.sessionNonce !== 'string')
48
+ return;
49
+ if (!Number.isSafeInteger(session.lastUpdate) || session.lastUpdate < 0)
50
+ return;
51
+ await this.knex(exports.AUTH_SESSION_TABLE)
52
+ .where({ sessionNonce: session.sessionNonce })
53
+ .where(function () {
54
+ // Knex query builders are thenable, but these calls only build the
55
+ // surrounding delete predicate; they do not start standalone queries.
56
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
57
+ this.where('lastUpdate', '<', session.lastUpdate)
58
+ .orWhere(function () {
59
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
60
+ this.where('lastUpdate', '=', session.lastUpdate)
61
+ .where('isAuthenticated', session.isAuthenticated);
62
+ applyNullableMatch(this, 'peerNonce', session.peerNonce);
63
+ applyNullableMatch(this, 'peerIdentityKey', session.peerIdentityKey);
64
+ applyNullableMatch(this, 'certificatesRequired', session.certificatesRequired);
65
+ applyNullableMatch(this, 'certificatesValidated', session.certificatesValidated);
66
+ });
67
+ })
68
+ .delete();
69
+ }
70
+ async hasSession(identifier) {
71
+ const byNonce = await this.activeSessions()
72
+ .where({ sessionNonce: identifier })
73
+ .first('sessionNonce');
74
+ if (byNonce != null)
75
+ return true;
76
+ const byIdentity = await this.activeSessions()
77
+ .where({ peerIdentityKey: identifier })
78
+ .first('sessionNonce');
79
+ return byIdentity != null;
80
+ }
81
+ /** Delete expired rows. Call from an operator-controlled maintenance task. */
82
+ async pruneExpiredSessions() {
83
+ return await this.knex(exports.AUTH_SESSION_TABLE)
84
+ .where('expiresAt', '<=', this.now())
85
+ .delete();
86
+ }
87
+ activeSessions() {
88
+ return this.knex(exports.AUTH_SESSION_TABLE)
89
+ .where('expiresAt', '>', this.now());
90
+ }
91
+ async persistSession(session) {
92
+ if (typeof session.sessionNonce !== 'string' || session.sessionNonce.length === 0) {
93
+ throw new TypeError('Invalid session: sessionNonce is required to persist a session.');
94
+ }
95
+ if (!Number.isSafeInteger(session.lastUpdate) || session.lastUpdate < 0) {
96
+ throw new TypeError('Invalid session: lastUpdate must be a non-negative safe integer.');
97
+ }
98
+ const row = this.toTableAuthSession(session);
99
+ const updated = await this.updateIfCurrentOrNewer(row);
100
+ if (updated > 0)
101
+ return;
102
+ // A zero-row update can mean either that this write is stale or that the
103
+ // database reports no changed rows for an idempotent update. Avoid an
104
+ // expected duplicate-key failure in both cases; insert only when the nonce
105
+ // is genuinely absent.
106
+ const existing = await this.knex(exports.AUTH_SESSION_TABLE)
107
+ .where({ sessionNonce: row.sessionNonce })
108
+ .first('lastUpdate');
109
+ if (existing != null) {
110
+ // A concurrent insert may have appeared after the first update. Retry if
111
+ // our state is still current enough to advance or merge that new row.
112
+ if (existing.lastUpdate <= row.lastUpdate)
113
+ await this.updateIfCurrentOrNewer(row);
114
+ return;
115
+ }
116
+ try {
117
+ await this.knex(exports.AUTH_SESSION_TABLE).insert(row);
118
+ }
119
+ catch (error) {
120
+ // Another replica may have inserted this nonce between our update and
121
+ // insert. Retry only known duplicate-key races; preserve every other
122
+ // database failure for the caller.
123
+ if (!isDuplicateKeyError(error))
124
+ throw error;
125
+ await this.updateIfCurrentOrNewer(row);
126
+ }
127
+ }
128
+ async updateIfCurrentOrNewer(row) {
129
+ return await this.knex(exports.AUTH_SESSION_TABLE)
130
+ .where({ sessionNonce: row.sessionNonce })
131
+ .where('lastUpdate', '<=', row.lastUpdate)
132
+ .update({
133
+ // Identity and peer nonces become immutable once established. This
134
+ // prevents an equal-timestamp write from another replica replacing
135
+ // the identifiers attached to an authenticated session.
136
+ peerNonce: this.knex.raw('coalesce(??, ?)', ['peerNonce', row.peerNonce ?? null]),
137
+ peerIdentityKey: this.knex.raw('coalesce(??, ?)', ['peerIdentityKey', row.peerIdentityKey ?? null]),
138
+ // Authentication and certificate validation only advance during a
139
+ // session. Merge those flags so two writes in the same millisecond
140
+ // cannot downgrade stronger state merely because Date.now collided.
141
+ isAuthenticated: this.knex.raw('case when ?? = 1 or ? = 1 then 1 else 0 end', ['isAuthenticated', row.isAuthenticated === true || row.isAuthenticated === 1 ? 1 : 0]),
142
+ certificatesRequired: this.mergeNullableBoolean('certificatesRequired', row.certificatesRequired),
143
+ certificatesValidated: this.mergeNullableBoolean('certificatesValidated', row.certificatesValidated),
144
+ lastUpdate: row.lastUpdate,
145
+ expiresAt: row.expiresAt
146
+ });
147
+ }
148
+ mergeNullableBoolean(column, value) {
149
+ let incoming;
150
+ if (value == null) {
151
+ incoming = null;
152
+ }
153
+ else if (value === true || value === 1) {
154
+ incoming = 1;
155
+ }
156
+ else {
157
+ incoming = 0;
158
+ }
159
+ return this.knex.raw('case when ?? = 1 or ? = 1 then 1 when ?? is null and ? is null then null else 0 end', [column, incoming, column, incoming]);
160
+ }
161
+ toTableAuthSession(session) {
162
+ const expiresAt = session.lastUpdate + this.ttlMs;
163
+ if (!Number.isSafeInteger(expiresAt)) {
164
+ throw new TypeError('Invalid session: lastUpdate plus ttlMs must be a safe integer.');
165
+ }
166
+ return {
167
+ sessionNonce: session.sessionNonce,
168
+ peerNonce: session.peerNonce ?? null,
169
+ peerIdentityKey: session.peerIdentityKey ?? null,
170
+ isAuthenticated: session.isAuthenticated,
171
+ lastUpdate: session.lastUpdate,
172
+ certificatesRequired: session.certificatesRequired ?? null,
173
+ certificatesValidated: session.certificatesValidated ?? null,
174
+ expiresAt
175
+ };
176
+ }
177
+ }
178
+ exports.KnexSessionManager = KnexSessionManager;
179
+ function applyNullableMatch(query, column, value) {
180
+ if (value == null) {
181
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
182
+ query.whereNull(column);
183
+ }
184
+ else {
185
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
186
+ query.where(column, value);
187
+ }
188
+ }
189
+ function isDuplicateKeyError(error) {
190
+ if (typeof error !== 'object' || error == null)
191
+ return false;
192
+ const databaseError = error;
193
+ return databaseError.code === 'SQLITE_CONSTRAINT_PRIMARYKEY' ||
194
+ databaseError.code === 'SQLITE_CONSTRAINT_UNIQUE' ||
195
+ databaseError.code === 'ER_DUP_ENTRY' ||
196
+ databaseError.errno === 1062;
197
+ }
198
+ //# sourceMappingURL=KnexSessionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnexSessionManager.js","sourceRoot":"","sources":["../../../../src/storage/remoting/KnexSessionManager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { WalletInterface } from '@bsv/sdk';
2
- import { StorageClientBase } from './StorageClientBase';
2
+ import { StorageClientBase, type StorageClientOptions } from './StorageClientBase';
3
3
  /**
4
4
  * `StorageClient` implements the `WalletStorageProvider` interface which allows it to
5
5
  * serve as a BRC-100 wallet's active storage.
@@ -15,7 +15,7 @@ import { StorageClientBase } from './StorageClientBase';
15
15
  * For details of the API implemented, follow the "See also" link for the `WalletStorageProvider` interface.
16
16
  */
17
17
  export declare class StorageClient extends StorageClientBase {
18
- constructor(wallet: WalletInterface, endpointUrl: string);
18
+ constructor(wallet: WalletInterface, endpointUrl: string, options?: StorageClientOptions);
19
19
  /**
20
20
  * Make a JSON-RPC call to the remote server.
21
21
  * @param method The WalletStorage method name to call.
@@ -1 +1 @@
1
- {"version":3,"file":"StorageClient.d.ts","sourceRoot":"","sources":["../../../../src/storage/remoting/StorageClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;gBACrC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM;IAQzD;;;;OAIG;cACa,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;CA2D1E"}
1
+ {"version":3,"file":"StorageClient.d.ts","sourceRoot":"","sources":["../../../../src/storage/remoting/StorageClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAGlF;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;gBACrC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;IAQ7F;;;;OAIG;cACa,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;CAkE1E"}
@@ -4,6 +4,7 @@ exports.StorageClient = void 0;
4
4
  const WalletErrorFromJson_1 = require("../../sdk/WalletErrorFromJson");
5
5
  const WalletLogger_1 = require("../../WalletLogger");
6
6
  const StorageClientBase_1 = require("./StorageClientBase");
7
+ const BinaryJson_1 = require("./BinaryJson");
7
8
  /**
8
9
  * `StorageClient` implements the `WalletStorageProvider` interface which allows it to
9
10
  * serve as a BRC-100 wallet's active storage.
@@ -19,8 +20,8 @@ const StorageClientBase_1 = require("./StorageClientBase");
19
20
  * For details of the API implemented, follow the "See also" link for the `WalletStorageProvider` interface.
20
21
  */
21
22
  class StorageClient extends StorageClientBase_1.StorageClientBase {
22
- constructor(wallet, endpointUrl) {
23
- super(wallet, endpointUrl);
23
+ constructor(wallet, endpointUrl, options = {}) {
24
+ super(wallet, endpointUrl, options);
24
25
  }
25
26
  /// ///////////////////////////////////////////////////////////////////////////
26
27
  // JSON-RPC helper
@@ -47,10 +48,15 @@ class StorageClient extends StorageClientBase_1.StorageClientBase {
47
48
  };
48
49
  let response;
49
50
  try {
51
+ const requestUsesBinary = this.binaryRequests && this.serverSupportsBinary;
50
52
  response = await this.authClient.fetch(this.endpointUrl, {
51
53
  method: 'POST',
52
- headers: { 'Content-Type': 'application/json' },
53
- body: JSON.stringify(body)
54
+ headers: {
55
+ 'Content-Type': 'application/json',
56
+ [BinaryJson_1.BINARY_ENCODING_HEADER]: BinaryJson_1.BINARY_ENCODING,
57
+ ...(requestUsesBinary ? { [BinaryJson_1.BINARY_REQUEST_ENCODING_HEADER]: BinaryJson_1.BINARY_ENCODING } : {})
58
+ },
59
+ body: (0, BinaryJson_1.stringifyJsonRpc)(body, requestUsesBinary)
54
60
  });
55
61
  }
56
62
  catch (error_) {
@@ -60,7 +66,10 @@ class StorageClient extends StorageClientBase_1.StorageClientBase {
60
66
  if (!response.ok) {
61
67
  throw new Error(`WalletStorageClient rpcCall: network error ${response.status} ${response.statusText}`);
62
68
  }
63
- const json = await response.json();
69
+ const responseUsesBinary = response.headers.get(BinaryJson_1.BINARY_ENCODING_HEADER) === BinaryJson_1.BINARY_ENCODING;
70
+ if (responseUsesBinary)
71
+ this.serverSupportsBinary = true;
72
+ const json = (0, BinaryJson_1.parseJsonRpc)(await response.text(), responseUsesBinary);
64
73
  if (json.error) {
65
74
  (0, WalletLogger_1.logWalletError)(json.error, logger, 'error from remote service');
66
75
  const werr = (0, WalletErrorFromJson_1.WalletErrorFromJson)(json.error);
@@ -1 +1 @@
1
- {"version":3,"file":"StorageClient.js","sourceRoot":"","sources":["../../../../src/storage/remoting/StorageClient.ts"],"names":[],"mappings":";;;AAIA,uEAAmE;AACnE,qDAAmD;AACnD,2DAAuD;AAEvD;;;;;;;;;;;;;GAaG;AACH,MAAa,aAAc,SAAQ,qCAAiB;IAClD,YAAa,MAAuB,EAAE,WAAmB;QACvD,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC5B,CAAC;IAED,+EAA+E;IAC/E,kBAAkB;IAClB,+EAA+E;IAE/E;;;;OAIG;IACO,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,MAAiB;QAC1D,MAAM,MAAM,GAAsC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;QAEvE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YAExB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,qFAAqF;gBACrF,MAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAA;gBACvC,MAAM,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;YACvD,CAAC;YAED,MAAM,IAAI,GAAG;gBACX,OAAO,EAAE,KAAK;gBACd,MAAM;gBACN,MAAM;gBACN,EAAE;aACH,CAAA;YAED,IAAI,QAAkB,CAAA;YACtB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;oBACvD,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC3B,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,MAAe,EAAE,CAAC;gBACzB,IAAA,6BAAc,EAAC,MAAM,EAAE,MAAM,EAAE,iCAAiC,CAAC,CAAA;gBACjE,MAAM,MAAM,CAAA;YACd,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;YACzG,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YAClC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAA,6BAAc,EAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,2BAA2B,CAAC,CAAA;gBAC/D,MAAM,IAAI,GAAG,IAAA,yCAAmB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC5C,MAAM,IAAI,CAAA;YACZ,CAAC;YAED,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,yCAAyC;gBACzC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;gBAChC,MAAM,CAAC,QAAQ,EAAE,CAAA;YACnB,CAAC;YAED,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QAAC,OAAO,MAAe,EAAE,CAAC;YACzB,IAAA,6BAAc,EAAC,MAAM,EAAE,MAAM,EAAE,4CAA4C,CAAC,CAAA;YAC5E,MAAM,MAAM,CAAA;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,oCAAoC;gBACpC,MAAM,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAzED,sCAyEC"}
1
+ {"version":3,"file":"StorageClient.js","sourceRoot":"","sources":["../../../../src/storage/remoting/StorageClient.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,14 @@ import { TableOutputBasket } from '../schema/tables/TableOutputBasket';
9
9
  import { TableOutput } from '../schema/tables/TableOutput';
10
10
  import { TableProvenTxReq } from '../schema/tables/TableProvenTxReq';
11
11
  import { EntityTimeStamp } from '../../sdk/types';
12
+ export interface StorageClientOptions {
13
+ /**
14
+ * Send compact tagged binary request values after the server advertises
15
+ * support. Leave disabled during rolling deployments where an endpoint may
16
+ * still route requests to legacy server instances.
17
+ */
18
+ binaryRequests?: boolean;
19
+ }
12
20
  /**
13
21
  * Abstract base class shared by `StorageClient` and `StorageMobile`.
14
22
  *
@@ -20,8 +28,10 @@ export declare abstract class StorageClientBase implements WalletStorageProvider
20
28
  readonly endpointUrl: string;
21
29
  protected readonly authClient: AuthFetch;
22
30
  protected nextId: number;
31
+ protected serverSupportsBinary: boolean;
32
+ protected readonly binaryRequests: boolean;
23
33
  settings?: TableSettings;
24
- constructor(wallet: WalletInterface, endpointUrl: string);
34
+ constructor(wallet: WalletInterface, endpointUrl: string, options?: StorageClientOptions);
25
35
  /**
26
36
  * The `StorageClient` implements the `WalletStorageProvider` interface.
27
37
  * It does not implement the lower level `StorageProvider` interface.
@@ -1 +1 @@
1
- {"version":3,"file":"StorageClientBase.d.ts","sourceRoot":"","sources":["../../../../src/storage/remoting/StorageClientBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StorageClientBase.d.ts","sourceRoot":"","sources":["../../../../src/storage/remoting/StorageClientBase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,UAAU,EACX,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,EAC3B,SAAS,EACT,oCAAoC,EACpC,sCAAsC,EACtC,qBAAqB,EACtB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGjD,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED;;;;;;GAMG;AACH,8BAAsB,iBAAkB,YAAW,qBAAqB;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAA;IACxC,SAAS,CAAC,MAAM,SAAI;IACpB,SAAS,CAAC,oBAAoB,UAAQ;IACtC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAGnC,QAAQ,CAAC,EAAE,aAAa,CAAA;gBAElB,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;IAM7F;;;;;OAKG;IACH,iBAAiB,IAAK,OAAO;IAI7B;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAE5E;;OAEG;IACH,WAAW,IAAK,OAAO;IAKvB;;;OAGG;IACH,WAAW,IAAK,aAAa;IAO7B;;;;OAIG;IACG,aAAa,IAAK,OAAO,CAAC,aAAa,CAAC;IAa9C;;OAEG;IACG,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC;IAI/B;;;;;;OAMG;IACG,OAAO,CAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhF;;;OAGG;IACH,WAAW,IAAK,cAAc;IAQ9B;;OAEG;IACH,WAAW,CAAE,CAAC,EAAE,cAAc,GAAG,IAAI;IAKrC;;;;;;;;OAQG;IACG,iBAAiB,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAI5G;;;;;;OAMG;IACG,YAAY,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,qBAAqB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAI7G;;;;;;;;;OASG;IACG,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAIxG;;;;;;OAMG;IACG,WAAW,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAInF;;;;;OAKG;IACG,gBAAgB,CAAE,WAAW,KAAA,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAIlF;;;;;;;OAOG;IACG,yBAAyB,CAC7B,IAAI,EAAE,MAAM,EACZ,kBAAkB,EAAE,MAAM,EAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,SAAS,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAUzD;;;;;;OAMG;IACG,qBAAqB,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3F;;;;;;OAMG;IACG,WAAW,CAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKpG;;;;;;OAMG;IACG,WAAW,CAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKpG;;;;;;OAMG;IACG,gBAAgB,CAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,yBAAyB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKnH;;;;;;;;;;OAUG;IACG,oBAAoB,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAWnG;;;;;;;;;OASG;IACG,qBAAqB,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAMrG;;;;;;;;;OASG;IACG,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAMnF;;;;;;;;;OASG;IACG,gBAAgB,CAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAMhF;;;;;;;;;OASG;IACG,qBAAqB,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5F;;;;;;;;OAQG;IACG,gBAAgB,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlF;;;;;;;;OAQG;IACG,gBAAgB,CAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKtG;;;;;;;;OAQG;IACG,YAAY,CAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;IAKnE;;;;;;;;;OASG;IACG,gCAAgC,CACpC,IAAI,EAAE,oCAAoC,GACzC,OAAO,CAAC,sCAAsC,CAAC;IAKlD;;;;;;;;OAQG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,2BAA2B,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpF,gCAAgC;IAChC,YAAY,CAAE,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAEjD;;;;OAIG;IACH,cAAc,CAAC,CAAC,SAAS,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC;IAI9E;;;;;OAKG;IACH,gBAAgB,CAAC,CAAC,SAAS,eAAe,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;CAGvF"}
@@ -15,11 +15,14 @@ class StorageClientBase {
15
15
  endpointUrl;
16
16
  authClient;
17
17
  nextId = 1;
18
+ serverSupportsBinary = false;
19
+ binaryRequests;
18
20
  // Track ephemeral (in-memory) "settings" if you wish to align with isAvailable() checks
19
21
  settings;
20
- constructor(wallet, endpointUrl) {
22
+ constructor(wallet, endpointUrl, options = {}) {
21
23
  this.authClient = new sdk_1.AuthFetch(wallet);
22
24
  this.endpointUrl = endpointUrl;
25
+ this.binaryRequests = options.binaryRequests === true;
23
26
  }
24
27
  /**
25
28
  * The `StorageClient` implements the `WalletStorageProvider` interface.
@@ -1 +1 @@
1
- {"version":3,"file":"StorageClientBase.js","sourceRoot":"","sources":["../../../../src/storage/remoting/StorageClientBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StorageClientBase.js","sourceRoot":"","sources":["../../../../src/storage/remoting/StorageClientBase.ts"],"names":[],"mappings":"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"}