cojson-core-wasm 0.18.21 → 0.18.22

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,7 +1,7 @@
1
1
  {
2
2
  "name": "cojson-core-wasm",
3
3
  "type": "module",
4
- "version": "0.18.21",
4
+ "version": "0.18.22",
5
5
  "files": [
6
6
  "public/cojson_core_wasm.js",
7
7
  "public/cojson_core_wasm.d.ts",
@@ -16,19 +16,21 @@
16
16
  "types": "index.d.ts",
17
17
  "exports": {
18
18
  ".": {
19
- "default": "./index.js",
20
- "types": "./index.d.ts"
19
+ "types": "./index.d.ts",
20
+ "default": "./index.js"
21
21
  },
22
22
  "./edge-lite": {
23
- "default": "./edge-lite.js",
24
- "types": "./index.d.ts"
23
+ "types": "./index.d.ts",
24
+ "default": "./edge-lite.js"
25
25
  }
26
26
  },
27
27
  "devDependencies": {
28
- "wasm-pack": "^0.13.1"
28
+ "wasm-pack": "^0.13.1",
29
+ "vitest": "3.2.4"
29
30
  },
30
31
  "scripts": {
31
32
  "build:wasm": "wasm-pack build --release --target web && node build.js",
32
- "build:dev": "wasm-pack build --dev --target web && node build.js"
33
+ "build:dev": "wasm-pack build --dev --target web && node build.js",
34
+ "test": "vitest --watch --project cojson-core-wasm"
33
35
  }
34
36
  }
@@ -8,7 +8,7 @@
8
8
  * Returns the encrypted bytes or throws a JsError if encryption fails.
9
9
  * Note: This function does not provide authentication. Use encrypt_xsalsa20_poly1305 for authenticated encryption.
10
10
  */
11
- export function encrypt_xsalsa20(key: Uint8Array, nonce_material: Uint8Array, plaintext: Uint8Array): Uint8Array;
11
+ export function encryptXsalsa20(key: Uint8Array, nonce_material: Uint8Array, plaintext: Uint8Array): Uint8Array;
12
12
  /**
13
13
  * WASM-exposed function for XSalsa20 decryption without authentication.
14
14
  * - `key`: 32-byte key for decryption (must match encryption key)
@@ -17,110 +17,48 @@ export function encrypt_xsalsa20(key: Uint8Array, nonce_material: Uint8Array, pl
17
17
  * Returns the decrypted bytes or throws a JsError if decryption fails.
18
18
  * Note: This function does not provide authentication. Use decrypt_xsalsa20_poly1305 for authenticated decryption.
19
19
  */
20
- export function decrypt_xsalsa20(key: Uint8Array, nonce_material: Uint8Array, ciphertext: Uint8Array): Uint8Array;
21
- /**
22
- * Generate a new Ed25519 signing key using secure random number generation.
23
- * Returns 32 bytes of raw key material suitable for use with other Ed25519 functions.
24
- */
25
- export function new_ed25519_signing_key(): Uint8Array;
26
- /**
27
- * WASM-exposed function to derive an Ed25519 verifying key from a signing key.
28
- * - `signing_key`: 32 bytes of signing key material
29
- * Returns 32 bytes of verifying key material or throws JsError if key is invalid.
30
- */
31
- export function ed25519_verifying_key(signing_key: Uint8Array): Uint8Array;
32
- /**
33
- * WASM-exposed function to sign a message using Ed25519.
34
- * - `signing_key`: 32 bytes of signing key material
35
- * - `message`: Raw bytes to sign
36
- * Returns 64 bytes of signature material or throws JsError if signing fails.
37
- */
38
- export function ed25519_sign(signing_key: Uint8Array, message: Uint8Array): Uint8Array;
39
- /**
40
- * WASM-exposed function to verify an Ed25519 signature.
41
- * - `verifying_key`: 32 bytes of verifying key material
42
- * - `message`: Raw bytes that were signed
43
- * - `signature`: 64 bytes of signature material
44
- * Returns true if signature is valid, false otherwise, or throws JsError if verification fails.
45
- */
46
- export function ed25519_verify(verifying_key: Uint8Array, message: Uint8Array, signature: Uint8Array): boolean;
47
- /**
48
- * WASM-exposed function to validate and copy Ed25519 signing key bytes.
49
- * - `bytes`: 32 bytes of signing key material to validate
50
- * Returns the same 32 bytes if valid or throws JsError if invalid.
51
- */
52
- export function ed25519_signing_key_from_bytes(bytes: Uint8Array): Uint8Array;
53
- /**
54
- * WASM-exposed function to derive the public key from an Ed25519 signing key.
55
- * - `signing_key`: 32 bytes of signing key material
56
- * Returns 32 bytes of public key material or throws JsError if key is invalid.
57
- */
58
- export function ed25519_signing_key_to_public(signing_key: Uint8Array): Uint8Array;
59
- /**
60
- * WASM-exposed function to sign a message with an Ed25519 signing key.
61
- * - `signing_key`: 32 bytes of signing key material
62
- * - `message`: Raw bytes to sign
63
- * Returns 64 bytes of signature material or throws JsError if signing fails.
64
- */
65
- export function ed25519_signing_key_sign(signing_key: Uint8Array, message: Uint8Array): Uint8Array;
66
- /**
67
- * WASM-exposed function to validate and copy Ed25519 verifying key bytes.
68
- * - `bytes`: 32 bytes of verifying key material to validate
69
- * Returns the same 32 bytes if valid or throws JsError if invalid.
70
- */
71
- export function ed25519_verifying_key_from_bytes(bytes: Uint8Array): Uint8Array;
72
- /**
73
- * WASM-exposed function to validate and copy Ed25519 signature bytes.
74
- * - `bytes`: 64 bytes of signature material to validate
75
- * Returns the same 64 bytes if valid or throws JsError if invalid.
76
- */
77
- export function ed25519_signature_from_bytes(bytes: Uint8Array): Uint8Array;
78
- /**
79
- * WASM-exposed function to sign a message using Ed25519.
80
- * - `message`: Raw bytes to sign
81
- * - `secret`: Raw Ed25519 signing key bytes
82
- * Returns base58-encoded signature with "signature_z" prefix or throws JsError if signing fails.
83
- */
84
- export function sign(message: Uint8Array, secret: Uint8Array): string;
85
- /**
86
- * WASM-exposed function to verify an Ed25519 signature.
87
- * - `signature`: Raw signature bytes
88
- * - `message`: Raw bytes that were signed
89
- * - `id`: Raw Ed25519 verifying key bytes
90
- * Returns true if signature is valid, false otherwise, or throws JsError if verification fails.
91
- */
92
- export function verify(signature: Uint8Array, message: Uint8Array, id: Uint8Array): boolean;
93
- /**
94
- * WASM-exposed function to derive a signer ID from a signing key.
95
- * - `secret`: Raw Ed25519 signing key bytes
96
- * Returns base58-encoded verifying key with "signer_z" prefix or throws JsError if derivation fails.
97
- */
98
- export function get_signer_id(secret: Uint8Array): string;
20
+ export function decryptXsalsa20(key: Uint8Array, nonce_material: Uint8Array, ciphertext: Uint8Array): Uint8Array;
99
21
  /**
100
22
  * Generate a new X25519 private key using secure random number generation.
101
23
  * Returns 32 bytes of raw key material suitable for use with other X25519 functions.
102
24
  * This key can be reused for multiple Diffie-Hellman exchanges.
103
25
  */
104
- export function new_x25519_private_key(): Uint8Array;
26
+ export function newX25519PrivateKey(): Uint8Array;
105
27
  /**
106
28
  * WASM-exposed function to derive an X25519 public key from a private key.
107
29
  * - `private_key`: 32 bytes of private key material
108
30
  * Returns 32 bytes of public key material or throws JsError if key is invalid.
109
31
  */
110
- export function x25519_public_key(private_key: Uint8Array): Uint8Array;
32
+ export function x25519PublicKey(private_key: Uint8Array): Uint8Array;
111
33
  /**
112
34
  * WASM-exposed function to perform X25519 Diffie-Hellman key exchange.
113
35
  * - `private_key`: 32 bytes of private key material
114
36
  * - `public_key`: 32 bytes of public key material
115
37
  * Returns 32 bytes of shared secret material or throws JsError if key exchange fails.
116
38
  */
117
- export function x25519_diffie_hellman(private_key: Uint8Array, public_key: Uint8Array): Uint8Array;
39
+ export function x25519DiffieHellman(private_key: Uint8Array, public_key: Uint8Array): Uint8Array;
118
40
  /**
119
41
  * WASM-exposed function to derive a sealer ID from a sealer secret.
120
42
  * - `secret`: Raw bytes of the sealer secret
121
43
  * Returns a base58-encoded sealer ID with "sealer_z" prefix or throws JsError if derivation fails.
122
44
  */
123
- export function get_sealer_id(secret: Uint8Array): string;
45
+ export function getSealerId(secret: Uint8Array): string;
46
+ /**
47
+ * WASM-exposed function to encrypt bytes with a key secret and nonce material.
48
+ * - `value`: The raw bytes to encrypt
49
+ * - `key_secret`: A base58-encoded key secret with "keySecret_z" prefix
50
+ * - `nonce_material`: Raw bytes used to generate the nonce
51
+ * Returns the encrypted bytes or throws a JsError if encryption fails.
52
+ */
53
+ export function encrypt(value: Uint8Array, key_secret: string, nonce_material: Uint8Array): Uint8Array;
54
+ /**
55
+ * WASM-exposed function to decrypt bytes with a key secret and nonce material.
56
+ * - `ciphertext`: The encrypted bytes to decrypt
57
+ * - `key_secret`: A base58-encoded key secret with "keySecret_z" prefix
58
+ * - `nonce_material`: Raw bytes used to generate the nonce (must match encryption)
59
+ * Returns the decrypted bytes or throws a JsError if decryption fails.
60
+ */
61
+ export function decrypt(ciphertext: Uint8Array, key_secret: string, nonce_material: Uint8Array): Uint8Array;
124
62
  /**
125
63
  * WASM-exposed function for sealing a message using X25519 + XSalsa20-Poly1305.
126
64
  * Provides authenticated encryption with perfect forward secrecy.
@@ -147,14 +85,14 @@ export function unseal(sealed_message: Uint8Array, recipient_secret: string, sen
147
85
  * Returns 24 bytes suitable for use as a nonce in cryptographic operations.
148
86
  * This function is deterministic - the same input will produce the same nonce.
149
87
  */
150
- export function generate_nonce(nonce_material: Uint8Array): Uint8Array;
88
+ export function generateNonce(nonce_material: Uint8Array): Uint8Array;
151
89
  /**
152
90
  * Hash data once using BLAKE3.
153
91
  * - `data`: Raw bytes to hash
154
92
  * Returns 32 bytes of hash output.
155
93
  * This is the simplest way to compute a BLAKE3 hash of a single piece of data.
156
94
  */
157
- export function blake3_hash_once(data: Uint8Array): Uint8Array;
95
+ export function blake3HashOnce(data: Uint8Array): Uint8Array;
158
96
  /**
159
97
  * Hash data once using BLAKE3 with a context prefix.
160
98
  * - `data`: Raw bytes to hash
@@ -162,42 +100,85 @@ export function blake3_hash_once(data: Uint8Array): Uint8Array;
162
100
  * Returns 32 bytes of hash output.
163
101
  * This is useful for domain separation - the same data hashed with different contexts will produce different outputs.
164
102
  */
165
- export function blake3_hash_once_with_context(data: Uint8Array, context: Uint8Array): Uint8Array;
103
+ export function blake3HashOnceWithContext(data: Uint8Array, context: Uint8Array): Uint8Array;
166
104
  /**
167
- * Get an empty BLAKE3 state for incremental hashing.
168
- * Returns a new Blake3Hasher instance for incremental hashing.
105
+ * WASM-exposed function to sign a message using Ed25519.
106
+ * - `message`: Raw bytes to sign
107
+ * - `secret`: Raw Ed25519 signing key bytes
108
+ * Returns base58-encoded signature with "signature_z" prefix or throws JsError if signing fails.
169
109
  */
170
- export function blake3_empty_state(): Blake3Hasher;
110
+ export function sign(message: Uint8Array, secret: Uint8Array): string;
171
111
  /**
172
- * Update a BLAKE3 state with new data for incremental hashing.
173
- * - `state`: Current Blake3Hasher instance
174
- * - `data`: New data to incorporate into the hash
175
- * Returns the updated Blake3Hasher.
112
+ * WASM-exposed function to verify an Ed25519 signature.
113
+ * - `signature`: Raw signature bytes
114
+ * - `message`: Raw bytes that were signed
115
+ * - `id`: Raw Ed25519 verifying key bytes
116
+ * Returns true if signature is valid, false otherwise, or throws JsError if verification fails.
176
117
  */
177
- export function blake3_update_state(state: Blake3Hasher, data: Uint8Array): void;
118
+ export function verify(signature: Uint8Array, message: Uint8Array, id: Uint8Array): boolean;
178
119
  /**
179
- * Get the final hash from a BLAKE3 state.
180
- * - `state`: The Blake3Hasher to finalize
181
- * Returns 32 bytes of hash output.
182
- * This finalizes an incremental hashing operation.
120
+ * WASM-exposed function to derive a signer ID from a signing key.
121
+ * - `secret`: Raw Ed25519 signing key bytes
122
+ * Returns base58-encoded verifying key with "signer_z" prefix or throws JsError if derivation fails.
183
123
  */
184
- export function blake3_digest_for_state(state: Blake3Hasher): Uint8Array;
124
+ export function getSignerId(secret: Uint8Array): string;
185
125
  /**
186
- * WASM-exposed function to encrypt bytes with a key secret and nonce material.
187
- * - `value`: The raw bytes to encrypt
188
- * - `key_secret`: A base58-encoded key secret with "keySecret_z" prefix
189
- * - `nonce_material`: Raw bytes used to generate the nonce
190
- * Returns the encrypted bytes or throws a JsError if encryption fails.
126
+ * Generate a new Ed25519 signing key using secure random number generation.
127
+ * Returns 32 bytes of raw key material suitable for use with other Ed25519 functions.
191
128
  */
192
- export function encrypt(value: Uint8Array, key_secret: string, nonce_material: Uint8Array): Uint8Array;
129
+ export function newEd25519SigningKey(): Uint8Array;
193
130
  /**
194
- * WASM-exposed function to decrypt bytes with a key secret and nonce material.
195
- * - `ciphertext`: The encrypted bytes to decrypt
196
- * - `key_secret`: A base58-encoded key secret with "keySecret_z" prefix
197
- * - `nonce_material`: Raw bytes used to generate the nonce (must match encryption)
198
- * Returns the decrypted bytes or throws a JsError if decryption fails.
131
+ * WASM-exposed function to derive an Ed25519 verifying key from a signing key.
132
+ * - `signing_key`: 32 bytes of signing key material
133
+ * Returns 32 bytes of verifying key material or throws JsError if key is invalid.
199
134
  */
200
- export function decrypt(ciphertext: Uint8Array, key_secret: string, nonce_material: Uint8Array): Uint8Array;
135
+ export function ed25519VerifyingKey(signing_key: Uint8Array): Uint8Array;
136
+ /**
137
+ * WASM-exposed function to sign a message using Ed25519.
138
+ * - `signing_key`: 32 bytes of signing key material
139
+ * - `message`: Raw bytes to sign
140
+ * Returns 64 bytes of signature material or throws JsError if signing fails.
141
+ */
142
+ export function ed25519Sign(signing_key: Uint8Array, message: Uint8Array): Uint8Array;
143
+ /**
144
+ * WASM-exposed function to verify an Ed25519 signature.
145
+ * - `verifying_key`: 32 bytes of verifying key material
146
+ * - `message`: Raw bytes that were signed
147
+ * - `signature`: 64 bytes of signature material
148
+ * Returns true if signature is valid, false otherwise, or throws JsError if verification fails.
149
+ */
150
+ export function ed25519Verify(verifying_key: Uint8Array, message: Uint8Array, signature: Uint8Array): boolean;
151
+ /**
152
+ * WASM-exposed function to validate and copy Ed25519 signing key bytes.
153
+ * - `bytes`: 32 bytes of signing key material to validate
154
+ * Returns the same 32 bytes if valid or throws JsError if invalid.
155
+ */
156
+ export function ed25519SigningKeyFromBytes(bytes: Uint8Array): Uint8Array;
157
+ /**
158
+ * WASM-exposed function to derive the public key from an Ed25519 signing key.
159
+ * - `signing_key`: 32 bytes of signing key material
160
+ * Returns 32 bytes of public key material or throws JsError if key is invalid.
161
+ */
162
+ export function ed25519SigningKeyToPublic(signing_key: Uint8Array): Uint8Array;
163
+ /**
164
+ * WASM-exposed function to sign a message with an Ed25519 signing key.
165
+ * - `signing_key`: 32 bytes of signing key material
166
+ * - `message`: Raw bytes to sign
167
+ * Returns 64 bytes of signature material or throws JsError if signing fails.
168
+ */
169
+ export function ed25519SigningKeySign(signing_key: Uint8Array, message: Uint8Array): Uint8Array;
170
+ /**
171
+ * WASM-exposed function to validate and copy Ed25519 verifying key bytes.
172
+ * - `bytes`: 32 bytes of verifying key material to validate
173
+ * Returns the same 32 bytes if valid or throws JsError if invalid.
174
+ */
175
+ export function ed25519VerifyingKeyFromBytes(bytes: Uint8Array): Uint8Array;
176
+ /**
177
+ * WASM-exposed function to validate and copy Ed25519 signature bytes.
178
+ * - `bytes`: 64 bytes of signature material to validate
179
+ * Returns the same 64 bytes if valid or throws JsError if invalid.
180
+ */
181
+ export function ed25519SignatureFromBytes(bytes: Uint8Array): Uint8Array;
201
182
  export class Blake3Hasher {
202
183
  free(): void;
203
184
  constructor();
@@ -228,39 +209,36 @@ export interface InitOutput {
228
209
  readonly sessionlog_addNewTrustingTransaction: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
229
210
  readonly sessionlog_decryptNextTransactionChangesJson: (a: number, b: number, c: number, d: number) => [number, number, number, number];
230
211
  readonly sessionlog_decryptNextTransactionMetaJson: (a: number, b: number, c: number, d: number) => [number, number, number, number];
231
- readonly decrypt_xsalsa20: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
232
- readonly encrypt_xsalsa20: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
233
- readonly new_ed25519_signing_key: () => [number, number];
234
- readonly ed25519_sign: (a: number, b: number, c: number, d: number) => [number, number, number, number];
235
- readonly ed25519_verify: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
236
- readonly ed25519_signing_key_from_bytes: (a: number, b: number) => [number, number, number, number];
237
- readonly ed25519_signing_key_to_public: (a: number, b: number) => [number, number, number, number];
238
- readonly ed25519_verifying_key_from_bytes: (a: number, b: number) => [number, number, number, number];
239
- readonly ed25519_signature_from_bytes: (a: number, b: number) => [number, number, number, number];
240
- readonly ed25519_verifying_key: (a: number, b: number) => [number, number, number, number];
241
- readonly ed25519_signing_key_sign: (a: number, b: number, c: number, d: number) => [number, number, number, number];
242
- readonly sign: (a: number, b: number, c: number, d: number) => [number, number, number, number];
243
- readonly verify: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
244
- readonly get_signer_id: (a: number, b: number) => [number, number, number, number];
245
- readonly new_x25519_private_key: () => [number, number];
246
- readonly x25519_public_key: (a: number, b: number) => [number, number, number, number];
247
- readonly x25519_diffie_hellman: (a: number, b: number, c: number, d: number) => [number, number, number, number];
248
- readonly get_sealer_id: (a: number, b: number) => [number, number, number, number];
212
+ readonly encryptXsalsa20: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
213
+ readonly decryptXsalsa20: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
214
+ readonly newX25519PrivateKey: () => [number, number];
215
+ readonly x25519PublicKey: (a: number, b: number) => [number, number, number, number];
216
+ readonly x25519DiffieHellman: (a: number, b: number, c: number, d: number) => [number, number, number, number];
217
+ readonly getSealerId: (a: number, b: number) => [number, number, number, number];
218
+ readonly encrypt: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
219
+ readonly decrypt: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
249
220
  readonly seal: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
250
221
  readonly unseal: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
251
- readonly generate_nonce: (a: number, b: number) => [number, number];
252
- readonly blake3_hash_once: (a: number, b: number) => [number, number];
253
- readonly blake3_hash_once_with_context: (a: number, b: number, c: number, d: number) => [number, number];
222
+ readonly generateNonce: (a: number, b: number) => [number, number];
223
+ readonly blake3HashOnce: (a: number, b: number) => [number, number];
224
+ readonly blake3HashOnceWithContext: (a: number, b: number, c: number, d: number) => [number, number];
254
225
  readonly __wbg_blake3hasher_free: (a: number, b: number) => void;
226
+ readonly blake3hasher_new: () => number;
227
+ readonly blake3hasher_update: (a: number, b: number, c: number) => void;
255
228
  readonly blake3hasher_finalize: (a: number) => [number, number];
256
229
  readonly blake3hasher_clone: (a: number) => number;
257
- readonly blake3_empty_state: () => number;
258
- readonly blake3_update_state: (a: number, b: number, c: number) => void;
259
- readonly blake3_digest_for_state: (a: number) => [number, number];
260
- readonly blake3hasher_update: (a: number, b: number, c: number) => void;
261
- readonly blake3hasher_new: () => number;
262
- readonly encrypt: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
263
- readonly decrypt: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
230
+ readonly sign: (a: number, b: number, c: number, d: number) => [number, number, number, number];
231
+ readonly verify: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
232
+ readonly getSignerId: (a: number, b: number) => [number, number, number, number];
233
+ readonly newEd25519SigningKey: () => [number, number];
234
+ readonly ed25519VerifyingKey: (a: number, b: number) => [number, number, number, number];
235
+ readonly ed25519Sign: (a: number, b: number, c: number, d: number) => [number, number, number, number];
236
+ readonly ed25519Verify: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
237
+ readonly ed25519SigningKeyFromBytes: (a: number, b: number) => [number, number, number, number];
238
+ readonly ed25519SigningKeyToPublic: (a: number, b: number) => [number, number, number, number];
239
+ readonly ed25519VerifyingKeyFromBytes: (a: number, b: number) => [number, number, number, number];
240
+ readonly ed25519SignatureFromBytes: (a: number, b: number) => [number, number, number, number];
241
+ readonly ed25519SigningKeySign: (a: number, b: number, c: number, d: number) => [number, number, number, number];
264
242
  readonly __wbindgen_malloc: (a: number, b: number) => number;
265
243
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
266
244
  readonly __wbindgen_exn_store: (a: number) => void;