@siafoundation/sia-storage 0.1.6 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siafoundation/sia-storage",
3
- "version": "0.1.6",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -72,10 +72,10 @@
72
72
  "typescript": "5.9.3"
73
73
  },
74
74
  "optionalDependencies": {
75
- "@siafoundation/sia-storage-darwin-arm64": "0.1.6",
76
- "@siafoundation/sia-storage-darwin-x64": "0.1.6",
77
- "@siafoundation/sia-storage-linux-x64-gnu": "0.1.6",
78
- "@siafoundation/sia-storage-linux-arm64-gnu": "0.1.6",
79
- "@siafoundation/sia-storage-win32-x64-msvc": "0.1.6"
75
+ "@siafoundation/sia-storage-darwin-arm64": "0.2.0",
76
+ "@siafoundation/sia-storage-darwin-x64": "0.2.0",
77
+ "@siafoundation/sia-storage-linux-x64-gnu": "0.2.0",
78
+ "@siafoundation/sia-storage-linux-arm64-gnu": "0.2.0",
79
+ "@siafoundation/sia-storage-win32-x64-msvc": "0.2.0"
80
80
  }
81
81
  }
@@ -58,6 +58,40 @@ export interface PackedUploadOptions {
58
58
  }
59
59
 
60
60
 
61
+ /**
62
+ * A signed request to create a pre-authorized key in indexd.
63
+ */
64
+ export type SignedPreAuthorizedKeyRequest = {
65
+ publicKey: string;
66
+ signature: string;
67
+ connectKey: string;
68
+ expiration: string;
69
+ totalUses: number;
70
+ allowedAppID?: string;
71
+ };
72
+
73
+ /**
74
+ * An unsigned request to create a pre-authorized key in indexd.
75
+ */
76
+ export interface PreAuthorizedKeyRequest {
77
+ /**
78
+ * The connect key used to authorize connections.
79
+ */
80
+ connectKey: string;
81
+ /**
82
+ * When the authorization expires.
83
+ */
84
+ expiration: Date;
85
+ /**
86
+ * The maximum number of authorized connections.
87
+ */
88
+ totalUses: number;
89
+ /**
90
+ * The permitted application, or any application when absent.
91
+ */
92
+ allowedAppID?: string | null;
93
+ }
94
+
61
95
  /**
62
96
  * Application info registered with the indexer.
63
97
  */
@@ -206,10 +240,9 @@ export class Builder {
206
240
  [Symbol.dispose](): void;
207
241
  /**
208
242
  * Connects using a pre-authorized key, bypassing the interactive approval
209
- * flow, and returns a Sdk. `preAuthorizedKeySeed` is the 32-byte
210
- * pre-authorized private key (Uint8Array); `mnemonic` derives the app key.
243
+ * flow, and returns a Sdk. `mnemonic` derives the app key.
211
244
  */
212
- connectPreAuthorized(pre_authorized_key_seed: Uint8Array, mnemonic: string): Promise<Sdk>;
245
+ connectPreAuthorized(pre_authorized_key: PreAuthorizedKey, mnemonic: string): Promise<Sdk>;
213
246
  /**
214
247
  * Attempts to connect using an existing AppKey.
215
248
  * Returns a Sdk if the key is valid, or undefined if not registered.
@@ -498,6 +531,42 @@ export class PinnedObject {
498
531
  updatedAt(): Date;
499
532
  }
500
533
 
534
+ /**
535
+ * A key used to authorize application connections with indexd.
536
+ */
537
+ export class PreAuthorizedKey {
538
+ free(): void;
539
+ [Symbol.dispose](): void;
540
+ /**
541
+ * Exports the key as a 32-byte seed.
542
+ */
543
+ export(): Uint8Array;
544
+ /**
545
+ * Imports a pre-authorized key from a 32-byte seed.
546
+ */
547
+ static import(seed: Uint8Array): PreAuthorizedKey;
548
+ /**
549
+ * Generates a new pre-authorized key.
550
+ */
551
+ constructor();
552
+ /**
553
+ * Returns the Ed25519 public key as a string.
554
+ */
555
+ publicKey(): string;
556
+ /**
557
+ * Signs a message and returns its 64-byte signature.
558
+ */
559
+ sign(message: Uint8Array): Uint8Array;
560
+ /**
561
+ * Returns a signed request for creating a pre-authorized key in indexd.
562
+ */
563
+ signRequest(request: PreAuthorizedKeyRequest): SignedPreAuthorizedKeyRequest;
564
+ /**
565
+ * Verifies a message signature using this key.
566
+ */
567
+ verifySignature(message: Uint8Array, signature: Uint8Array): boolean;
568
+ }
569
+
501
570
  /**
502
571
  * The main Sia storage SDK. Provides methods for uploading, downloading,
503
572
  * and managing objects on the Sia storage network via an indexer.
@@ -753,7 +822,7 @@ export interface InitOutput {
753
822
  readonly appkey_publicKey: (a: number) => [number, number];
754
823
  readonly appkey_sign: (a: number, b: number, c: number) => [number, number];
755
824
  readonly appkey_verifySignature: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
756
- readonly builder_connectPreAuthorized: (a: number, b: number, c: number, d: number, e: number) => any;
825
+ readonly builder_connectPreAuthorized: (a: number, b: number, c: number, d: number) => any;
757
826
  readonly builder_connected: (a: number, b: number) => any;
758
827
  readonly builder_matchesExistingAppKey: (a: number, b: number, c: number) => any;
759
828
  readonly builder_new: (a: number, b: number, c: any) => [number, number, number];
@@ -800,6 +869,13 @@ export interface InitOutput {
800
869
  readonly pinnedobject_truncate: (a: number, b: bigint) => number;
801
870
  readonly pinnedobject_updateMetadata: (a: number, b: number, c: number) => void;
802
871
  readonly pinnedobject_updatedAt: (a: number) => any;
872
+ readonly preauthorizedkey_export: (a: number) => [number, number];
873
+ readonly preauthorizedkey_import: (a: number, b: number) => [number, number, number];
874
+ readonly preauthorizedkey_new: () => number;
875
+ readonly preauthorizedkey_publicKey: (a: number) => [number, number];
876
+ readonly preauthorizedkey_sign: (a: number, b: number, c: number) => [number, number];
877
+ readonly preauthorizedkey_signRequest: (a: number, b: any) => [number, number, number];
878
+ readonly preauthorizedkey_verifySignature: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
803
879
  readonly sdk_account: (a: number) => any;
804
880
  readonly sdk_appKey: (a: number) => number;
805
881
  readonly sdk_createSharingKey: (a: number, b: number, c: number, d: number) => any;
@@ -834,6 +910,7 @@ export interface InitOutput {
834
910
  readonly sharingkey_publicKey: (a: number) => [number, number];
835
911
  readonly sharingkey_seed: (a: number) => [number, number];
836
912
  readonly validateRecoveryPhrase: (a: number, b: number) => [number, number];
913
+ readonly __wbg_preauthorizedkey_free: (a: number, b: number) => void;
837
914
  readonly __wbg_sharingkey_free: (a: number, b: number) => void;
838
915
  readonly __wbg_intounderlyingbytesource_free: (a: number, b: number) => void;
839
916
  readonly __wbg_intounderlyingsink_free: (a: number, b: number) => void;
@@ -116,18 +116,16 @@ export class Builder {
116
116
  }
117
117
  /**
118
118
  * Connects using a pre-authorized key, bypassing the interactive approval
119
- * flow, and returns a Sdk. `preAuthorizedKeySeed` is the 32-byte
120
- * pre-authorized private key (Uint8Array); `mnemonic` derives the app key.
121
- * @param {Uint8Array} pre_authorized_key_seed
119
+ * flow, and returns a Sdk. `mnemonic` derives the app key.
120
+ * @param {PreAuthorizedKey} pre_authorized_key
122
121
  * @param {string} mnemonic
123
122
  * @returns {Promise<Sdk>}
124
123
  */
125
- connectPreAuthorized(pre_authorized_key_seed, mnemonic) {
126
- const ptr0 = passArray8ToWasm0(pre_authorized_key_seed, wasm.__wbindgen_malloc);
124
+ connectPreAuthorized(pre_authorized_key, mnemonic) {
125
+ _assertClass(pre_authorized_key, PreAuthorizedKey);
126
+ const ptr0 = passStringToWasm0(mnemonic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
127
127
  const len0 = WASM_VECTOR_LEN;
128
- const ptr1 = passStringToWasm0(mnemonic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
129
- const len1 = WASM_VECTOR_LEN;
130
- const ret = wasm.builder_connectPreAuthorized(this.__wbg_ptr, ptr0, len0, ptr1, len1);
128
+ const ret = wasm.builder_connectPreAuthorized(this.__wbg_ptr, pre_authorized_key.__wbg_ptr, ptr0, len0);
131
129
  return ret;
132
130
  }
133
131
  /**
@@ -871,6 +869,120 @@ export class PinnedObject {
871
869
  }
872
870
  if (Symbol.dispose) PinnedObject.prototype[Symbol.dispose] = PinnedObject.prototype.free;
873
871
 
872
+ /**
873
+ * A key used to authorize application connections with indexd.
874
+ */
875
+ export class PreAuthorizedKey {
876
+ static __wrap(ptr) {
877
+ const obj = Object.create(PreAuthorizedKey.prototype);
878
+ obj.__wbg_ptr = ptr;
879
+ PreAuthorizedKeyFinalization.register(obj, obj.__wbg_ptr, obj);
880
+ return obj;
881
+ }
882
+ __destroy_into_raw() {
883
+ const ptr = this.__wbg_ptr;
884
+ this.__wbg_ptr = 0;
885
+ PreAuthorizedKeyFinalization.unregister(this);
886
+ return ptr;
887
+ }
888
+ free() {
889
+ const ptr = this.__destroy_into_raw();
890
+ wasm.__wbg_preauthorizedkey_free(ptr, 0);
891
+ }
892
+ /**
893
+ * Exports the key as a 32-byte seed.
894
+ * @returns {Uint8Array}
895
+ */
896
+ export() {
897
+ const ret = wasm.preauthorizedkey_export(this.__wbg_ptr);
898
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
899
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
900
+ return v1;
901
+ }
902
+ /**
903
+ * Imports a pre-authorized key from a 32-byte seed.
904
+ * @param {Uint8Array} seed
905
+ * @returns {PreAuthorizedKey}
906
+ */
907
+ static import(seed) {
908
+ const ptr0 = passArray8ToWasm0(seed, wasm.__wbindgen_malloc);
909
+ const len0 = WASM_VECTOR_LEN;
910
+ const ret = wasm.preauthorizedkey_import(ptr0, len0);
911
+ if (ret[2]) {
912
+ throw takeFromExternrefTable0(ret[1]);
913
+ }
914
+ return PreAuthorizedKey.__wrap(ret[0]);
915
+ }
916
+ /**
917
+ * Generates a new pre-authorized key.
918
+ */
919
+ constructor() {
920
+ const ret = wasm.preauthorizedkey_new();
921
+ this.__wbg_ptr = ret;
922
+ PreAuthorizedKeyFinalization.register(this, this.__wbg_ptr, this);
923
+ return this;
924
+ }
925
+ /**
926
+ * Returns the Ed25519 public key as a string.
927
+ * @returns {string}
928
+ */
929
+ publicKey() {
930
+ let deferred1_0;
931
+ let deferred1_1;
932
+ try {
933
+ const ret = wasm.preauthorizedkey_publicKey(this.__wbg_ptr);
934
+ deferred1_0 = ret[0];
935
+ deferred1_1 = ret[1];
936
+ return getStringFromWasm0(ret[0], ret[1]);
937
+ } finally {
938
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
939
+ }
940
+ }
941
+ /**
942
+ * Signs a message and returns its 64-byte signature.
943
+ * @param {Uint8Array} message
944
+ * @returns {Uint8Array}
945
+ */
946
+ sign(message) {
947
+ const ptr0 = passArray8ToWasm0(message, wasm.__wbindgen_malloc);
948
+ const len0 = WASM_VECTOR_LEN;
949
+ const ret = wasm.preauthorizedkey_sign(this.__wbg_ptr, ptr0, len0);
950
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
951
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
952
+ return v2;
953
+ }
954
+ /**
955
+ * Returns a signed request for creating a pre-authorized key in indexd.
956
+ * @param {PreAuthorizedKeyRequest} request
957
+ * @returns {SignedPreAuthorizedKeyRequest}
958
+ */
959
+ signRequest(request) {
960
+ const ret = wasm.preauthorizedkey_signRequest(this.__wbg_ptr, request);
961
+ if (ret[2]) {
962
+ throw takeFromExternrefTable0(ret[1]);
963
+ }
964
+ return takeFromExternrefTable0(ret[0]);
965
+ }
966
+ /**
967
+ * Verifies a message signature using this key.
968
+ * @param {Uint8Array} message
969
+ * @param {Uint8Array} signature
970
+ * @returns {boolean}
971
+ */
972
+ verifySignature(message, signature) {
973
+ const ptr0 = passArray8ToWasm0(message, wasm.__wbindgen_malloc);
974
+ const len0 = WASM_VECTOR_LEN;
975
+ const ptr1 = passArray8ToWasm0(signature, wasm.__wbindgen_malloc);
976
+ const len1 = WASM_VECTOR_LEN;
977
+ const ret = wasm.preauthorizedkey_verifySignature(this.__wbg_ptr, ptr0, len0, ptr1, len1);
978
+ if (ret[2]) {
979
+ throw takeFromExternrefTable0(ret[1]);
980
+ }
981
+ return ret[0] !== 0;
982
+ }
983
+ }
984
+ if (Symbol.dispose) PreAuthorizedKey.prototype[Symbol.dispose] = PreAuthorizedKey.prototype.free;
985
+
874
986
  /**
875
987
  * The main Sia storage SDK. Provides methods for uploading, downloading,
876
988
  * and managing objects on the Sia storage network via an indexer.
@@ -1607,11 +1719,11 @@ function __wbg_get_imports() {
1607
1719
  const ret = arg0.createBidirectionalStream();
1608
1720
  return ret;
1609
1721
  },
1610
- __wbg_done_71c9042440891178: function(arg0) {
1722
+ __wbg_done_89b2b13e91a60321: function(arg0) {
1611
1723
  const ret = arg0.done;
1612
1724
  return ret;
1613
1725
  },
1614
- __wbg_done_89b2b13e91a60321: function(arg0) {
1726
+ __wbg_done_ccbb9708a558f0a5: function(arg0) {
1615
1727
  const ret = arg0.done;
1616
1728
  return ret;
1617
1729
  },
@@ -2072,11 +2184,11 @@ function __wbg_get_imports() {
2072
2184
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
2073
2185
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
2074
2186
  },
2075
- __wbg_value_41539d323b7919ad: function(arg0) {
2187
+ __wbg_value_a5d5488a9589444a: function(arg0) {
2076
2188
  const ret = arg0.value;
2077
2189
  return ret;
2078
2190
  },
2079
- __wbg_value_a5d5488a9589444a: function(arg0) {
2191
+ __wbg_value_b3f5a8463f26cd7e: function(arg0) {
2080
2192
  const ret = arg0.value;
2081
2193
  return ret;
2082
2194
  },
@@ -2283,6 +2395,9 @@ const PackedUploadFinalization = (typeof FinalizationRegistry === 'undefined')
2283
2395
  const PinnedObjectFinalization = (typeof FinalizationRegistry === 'undefined')
2284
2396
  ? { register: () => {}, unregister: () => {} }
2285
2397
  : new FinalizationRegistry(ptr => wasm.__wbg_pinnedobject_free(ptr, 1));
2398
+ const PreAuthorizedKeyFinalization = (typeof FinalizationRegistry === 'undefined')
2399
+ ? { register: () => {}, unregister: () => {} }
2400
+ : new FinalizationRegistry(ptr => wasm.__wbg_preauthorizedkey_free(ptr, 1));
2286
2401
  const SdkFinalization = (typeof FinalizationRegistry === 'undefined')
2287
2402
  ? { register: () => {}, unregister: () => {} }
2288
2403
  : new FinalizationRegistry(ptr => wasm.__wbg_sdk_free(ptr, 1));
Binary file
@@ -16,7 +16,7 @@ export const appkey_new: (a: number, b: number) => [number, number, number];
16
16
  export const appkey_publicKey: (a: number) => [number, number];
17
17
  export const appkey_sign: (a: number, b: number, c: number) => [number, number];
18
18
  export const appkey_verifySignature: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
19
- export const builder_connectPreAuthorized: (a: number, b: number, c: number, d: number, e: number) => any;
19
+ export const builder_connectPreAuthorized: (a: number, b: number, c: number, d: number) => any;
20
20
  export const builder_connected: (a: number, b: number) => any;
21
21
  export const builder_matchesExistingAppKey: (a: number, b: number, c: number) => any;
22
22
  export const builder_new: (a: number, b: number, c: any) => [number, number, number];
@@ -63,6 +63,13 @@ export const pinnedobject_slabs: (a: number) => [number, number, number];
63
63
  export const pinnedobject_truncate: (a: number, b: bigint) => number;
64
64
  export const pinnedobject_updateMetadata: (a: number, b: number, c: number) => void;
65
65
  export const pinnedobject_updatedAt: (a: number) => any;
66
+ export const preauthorizedkey_export: (a: number) => [number, number];
67
+ export const preauthorizedkey_import: (a: number, b: number) => [number, number, number];
68
+ export const preauthorizedkey_new: () => number;
69
+ export const preauthorizedkey_publicKey: (a: number) => [number, number];
70
+ export const preauthorizedkey_sign: (a: number, b: number, c: number) => [number, number];
71
+ export const preauthorizedkey_signRequest: (a: number, b: any) => [number, number, number];
72
+ export const preauthorizedkey_verifySignature: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
66
73
  export const sdk_account: (a: number) => any;
67
74
  export const sdk_appKey: (a: number) => number;
68
75
  export const sdk_createSharingKey: (a: number, b: number, c: number, d: number) => any;
@@ -97,6 +104,7 @@ export const sharingkey_fromSeed: (a: number, b: number) => [number, number, num
97
104
  export const sharingkey_publicKey: (a: number) => [number, number];
98
105
  export const sharingkey_seed: (a: number) => [number, number];
99
106
  export const validateRecoveryPhrase: (a: number, b: number) => [number, number];
107
+ export const __wbg_preauthorizedkey_free: (a: number, b: number) => void;
100
108
  export const __wbg_sharingkey_free: (a: number, b: number) => void;
101
109
  export const __wbg_intounderlyingbytesource_free: (a: number, b: number) => void;
102
110
  export const __wbg_intounderlyingsink_free: (a: number, b: number) => void;