@semiotic-labs/agentium-sdk 0.8.0 → 0.9.1
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/README.md +16 -5
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -44
- package/dist/index.js.map +1 -1
- package/dist/wasm.d.ts +18 -1
- package/dist/wasm.d.ts.map +1 -1
- package/dist/wasm.js +25 -1
- package/dist/wasm.js.map +1 -1
- package/package.json +6 -1
- package/packages/agentium-native/wasm/pkg/agentium_sdk_wasm.d.ts +33 -1
- package/packages/agentium-native/wasm/pkg/agentium_sdk_wasm.js +62 -0
- package/packages/agentium-native/wasm/pkg/agentium_sdk_wasm_bg.wasm +0 -0
- package/packages/agentium-native/wasm/pkg/agentium_sdk_wasm_bg.wasm.d.ts +3 -1
package/README.md
CHANGED
|
@@ -273,11 +273,14 @@ npm install
|
|
|
273
273
|
### Scripts
|
|
274
274
|
|
|
275
275
|
```bash
|
|
276
|
-
npm test
|
|
277
|
-
npm run build
|
|
278
|
-
npm run docs
|
|
279
|
-
npm run lint
|
|
280
|
-
npm run check
|
|
276
|
+
npm test # Run tests
|
|
277
|
+
npm run build # Build (WASM + TypeScript)
|
|
278
|
+
npm run docs # Generate API docs
|
|
279
|
+
npm run lint # Lint code
|
|
280
|
+
npm run check # Lint + format check
|
|
281
|
+
npm run check:python # Type-check Python code (mypy)
|
|
282
|
+
npm run format:all # Format all code (TS, Python, Rust)
|
|
283
|
+
npm run format:rust # Format Rust code
|
|
281
284
|
```
|
|
282
285
|
|
|
283
286
|
### REUSE Compliance
|
|
@@ -290,6 +293,14 @@ npm run reuse:check # Verify compliance
|
|
|
290
293
|
npm run reuse:write # Apply SPDX headers
|
|
291
294
|
```
|
|
292
295
|
|
|
296
|
+
## Python SDK
|
|
297
|
+
|
|
298
|
+
A Python SDK is also available with equivalent functionality. See the [Python SDK documentation](packages/agentium-native/python/README.md) for installation and usage.
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
pip install agentium
|
|
302
|
+
```
|
|
303
|
+
|
|
293
304
|
## License
|
|
294
305
|
|
|
295
306
|
MIT
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type WasmInitInput } from './wasm.js';
|
|
2
2
|
import type { VcStorage, VerificationResult, DidDocument, JwtHeader } from './vc/index.js';
|
|
3
3
|
export * from './vc/index.js';
|
|
4
|
-
export { ensureWasmReady, verifyJwt, generateKeypair, getPublicKey, type WasmInitInput, } from './wasm.js';
|
|
4
|
+
export { ensureWasmReady, verifyJwt, generateKeypair, getPublicKey, parseJwtHeader, extractPublicKeyJwk, type WasmInitInput, } from './wasm.js';
|
|
5
5
|
export { initTelemetry, consoleSink, nullSink, withLevelFilter, withTargetFilter, composeSinks, type TelemetryEvent, type TelemetryLevel, type TelemetrySink, type InitTelemetryOptions, } from './telemetry.js';
|
|
6
6
|
/**
|
|
7
7
|
* Options for configuring the AgentiumClient.
|
|
@@ -169,21 +169,23 @@ export declare class AgentiumClient {
|
|
|
169
169
|
fetchIssuerDidDocument(): Promise<DidDocument>;
|
|
170
170
|
/**
|
|
171
171
|
* Parses a JWT to extract the header (without verification).
|
|
172
|
+
* Delegates to WASM module for parsing.
|
|
172
173
|
*
|
|
173
174
|
* @param jwt - The JWT string
|
|
174
175
|
* @returns Parsed JWT header
|
|
175
|
-
* @throws {
|
|
176
|
+
* @throws {WasmVcError} If JWT format is invalid
|
|
176
177
|
*/
|
|
177
178
|
parseJwtHeader(jwt: string): JwtHeader;
|
|
178
179
|
/**
|
|
179
180
|
* Extracts the public key JWK from a DID document.
|
|
180
181
|
* If a key ID (kid) is provided, finds the matching verification method.
|
|
181
182
|
* Otherwise, uses the first verification method.
|
|
183
|
+
* Delegates to WASM module for extraction.
|
|
182
184
|
*
|
|
183
185
|
* @param didDocument - The DID document to extract from
|
|
184
186
|
* @param kid - Optional key ID to match (from JWT header)
|
|
185
187
|
* @returns The public key as a JSON string
|
|
186
|
-
* @throws {
|
|
188
|
+
* @throws {WasmVcError} If no matching public key is found
|
|
187
189
|
*/
|
|
188
190
|
extractPublicKeyJwk(didDocument: DidDocument, kid?: string): string;
|
|
189
191
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAA8B,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
// SPDX-License-Identifier: MIT
|
|
4
4
|
import axios, { isAxiosError } from 'axios';
|
|
5
5
|
import { ensureWasmReady, verifyJwt } from './wasm.js';
|
|
6
|
+
import { parse_jwt_header as wasmParseJwtHeader, extract_public_key_jwk as wasmExtractPublicKeyJwk, } from '../packages/agentium-native/wasm/pkg/agentium_sdk_wasm.js';
|
|
6
7
|
// Re-export VC module types and utilities
|
|
7
8
|
export * from './vc/index.js';
|
|
8
|
-
export { ensureWasmReady, verifyJwt, generateKeypair, getPublicKey, } from './wasm.js';
|
|
9
|
+
export { ensureWasmReady, verifyJwt, generateKeypair, getPublicKey, parseJwtHeader, extractPublicKeyJwk, } from './wasm.js';
|
|
9
10
|
// Re-export telemetry module
|
|
10
11
|
export { initTelemetry, consoleSink, nullSink, withLevelFilter, withTargetFilter, composeSinks, } from './telemetry.js';
|
|
11
12
|
/**
|
|
@@ -168,65 +169,28 @@ export class AgentiumClient {
|
|
|
168
169
|
}
|
|
169
170
|
/**
|
|
170
171
|
* Parses a JWT to extract the header (without verification).
|
|
172
|
+
* Delegates to WASM module for parsing.
|
|
171
173
|
*
|
|
172
174
|
* @param jwt - The JWT string
|
|
173
175
|
* @returns Parsed JWT header
|
|
174
|
-
* @throws {
|
|
176
|
+
* @throws {WasmVcError} If JWT format is invalid
|
|
175
177
|
*/
|
|
176
178
|
parseJwtHeader(jwt) {
|
|
177
|
-
|
|
178
|
-
throw new AgentiumApiError('Invalid JWT: expected non-empty string');
|
|
179
|
-
}
|
|
180
|
-
const parts = jwt.split('.');
|
|
181
|
-
if (parts.length !== 3) {
|
|
182
|
-
throw new AgentiumApiError('Invalid JWT format: expected 3 parts');
|
|
183
|
-
}
|
|
184
|
-
const headerPart = parts[0];
|
|
185
|
-
if (!headerPart) {
|
|
186
|
-
throw new AgentiumApiError('Invalid JWT format: missing header');
|
|
187
|
-
}
|
|
188
|
-
try {
|
|
189
|
-
const headerJson = atob(headerPart.replace(/-/g, '+').replace(/_/g, '/'));
|
|
190
|
-
return JSON.parse(headerJson);
|
|
191
|
-
}
|
|
192
|
-
catch {
|
|
193
|
-
throw new AgentiumApiError('Invalid JWT header encoding');
|
|
194
|
-
}
|
|
179
|
+
return wasmParseJwtHeader(jwt);
|
|
195
180
|
}
|
|
196
181
|
/**
|
|
197
182
|
* Extracts the public key JWK from a DID document.
|
|
198
183
|
* If a key ID (kid) is provided, finds the matching verification method.
|
|
199
184
|
* Otherwise, uses the first verification method.
|
|
185
|
+
* Delegates to WASM module for extraction.
|
|
200
186
|
*
|
|
201
187
|
* @param didDocument - The DID document to extract from
|
|
202
188
|
* @param kid - Optional key ID to match (from JWT header)
|
|
203
189
|
* @returns The public key as a JSON string
|
|
204
|
-
* @throws {
|
|
190
|
+
* @throws {WasmVcError} If no matching public key is found
|
|
205
191
|
*/
|
|
206
192
|
extractPublicKeyJwk(didDocument, kid) {
|
|
207
|
-
|
|
208
|
-
if (!methods || methods.length === 0) {
|
|
209
|
-
throw new AgentiumApiError('No verification methods found in DID document');
|
|
210
|
-
}
|
|
211
|
-
let verificationMethod = methods[0];
|
|
212
|
-
// If kid is provided, find the matching verification method
|
|
213
|
-
if (kid) {
|
|
214
|
-
const matched = methods.find((m) => m.id === kid);
|
|
215
|
-
if (matched) {
|
|
216
|
-
verificationMethod = matched;
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
// kid might be just the fragment (e.g., "key-1"), try matching suffix
|
|
220
|
-
const matchedByFragment = methods.find((m) => m.id.endsWith(`#${kid}`) || m.id === kid);
|
|
221
|
-
if (matchedByFragment) {
|
|
222
|
-
verificationMethod = matchedByFragment;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
if (!verificationMethod?.publicKeyJwk) {
|
|
227
|
-
throw new AgentiumApiError(kid ? `No public key found for kid: ${kid}` : 'No public key found in DID document');
|
|
228
|
-
}
|
|
229
|
-
return JSON.stringify(verificationMethod.publicKeyJwk);
|
|
193
|
+
return wasmExtractPublicKeyJwk(JSON.stringify(didDocument), kid);
|
|
230
194
|
}
|
|
231
195
|
/**
|
|
232
196
|
* Fetches a membership credential from the backend.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,+BAA+B;AAE/B,OAAO,KAAK,EAAE,EAAE,YAAY,EAAsB,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAsB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/wasm.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { InitInput } from '../packages/agentium-native/wasm/pkg/agentium_sdk_wasm.js';
|
|
2
|
-
import type { VerificationResult, KeyPair } from './vc/types.js';
|
|
2
|
+
import type { VerificationResult, KeyPair, JwtHeader, DidDocument } from './vc/types.js';
|
|
3
3
|
export type { InitInput as WasmInitInput };
|
|
4
4
|
/**
|
|
5
5
|
* Ensures the WASM module is loaded and ready.
|
|
@@ -41,4 +41,21 @@ export declare function generateKeypair(): Promise<KeyPair>;
|
|
|
41
41
|
* @throws {WasmVcError} If the private key JWK is invalid or serialization fails.
|
|
42
42
|
*/
|
|
43
43
|
export declare function getPublicKey(privateKeyJwk: string): Promise<string>;
|
|
44
|
+
/**
|
|
45
|
+
* Parse a JWT header without verifying the signature.
|
|
46
|
+
*
|
|
47
|
+
* @param jwt - The JWT string (compact format: header.payload.signature)
|
|
48
|
+
* @returns The parsed JWT header containing algorithm, type, and optional key ID
|
|
49
|
+
* @throws {WasmVcError} If the JWT format is invalid
|
|
50
|
+
*/
|
|
51
|
+
export declare function parseJwtHeader(jwt: string): Promise<JwtHeader>;
|
|
52
|
+
/**
|
|
53
|
+
* Extract the public key JWK from a DID document.
|
|
54
|
+
*
|
|
55
|
+
* @param didDocument - The DID document
|
|
56
|
+
* @param kid - Optional key ID to match (from JWT header). Can be full ID or just fragment.
|
|
57
|
+
* @returns The public key as JWK JSON string
|
|
58
|
+
* @throws {WasmVcError} If no matching public key is found
|
|
59
|
+
*/
|
|
60
|
+
export declare function extractPublicKeyJwk(didDocument: DidDocument, kid?: string): Promise<string>;
|
|
44
61
|
//# sourceMappingURL=wasm.d.ts.map
|
package/dist/wasm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2DAA2D,CAAC;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEzF,YAAY,EAAE,SAAS,IAAI,aAAa,EAAE,CAAC;AAI3C;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxE;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAG9F;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAGxD;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGzE;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAGpE;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIjG"}
|
package/dist/wasm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// SPDX-FileCopyrightText: 2025 Semiotic AI, Inc.
|
|
2
2
|
//
|
|
3
3
|
// SPDX-License-Identifier: MIT
|
|
4
|
-
import init, { verify_jwt as wasmVerifyJwt, generate_keypair as wasmGenerateKeypair, get_public_key as wasmGetPublicKey, } from '../packages/agentium-native/wasm/pkg/agentium_sdk_wasm.js';
|
|
4
|
+
import init, { verify_jwt as wasmVerifyJwt, generate_keypair as wasmGenerateKeypair, get_public_key as wasmGetPublicKey, parse_jwt_header as wasmParseJwtHeader, extract_public_key_jwk as wasmExtractPublicKeyJwk, } from '../packages/agentium-native/wasm/pkg/agentium_sdk_wasm.js';
|
|
5
5
|
let wasmInitialized = null;
|
|
6
6
|
/**
|
|
7
7
|
* Ensures the WASM module is loaded and ready.
|
|
@@ -59,4 +59,28 @@ export async function getPublicKey(privateKeyJwk) {
|
|
|
59
59
|
await ensureWasmReady();
|
|
60
60
|
return wasmGetPublicKey(privateKeyJwk);
|
|
61
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Parse a JWT header without verifying the signature.
|
|
64
|
+
*
|
|
65
|
+
* @param jwt - The JWT string (compact format: header.payload.signature)
|
|
66
|
+
* @returns The parsed JWT header containing algorithm, type, and optional key ID
|
|
67
|
+
* @throws {WasmVcError} If the JWT format is invalid
|
|
68
|
+
*/
|
|
69
|
+
export async function parseJwtHeader(jwt) {
|
|
70
|
+
await ensureWasmReady();
|
|
71
|
+
return wasmParseJwtHeader(jwt);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Extract the public key JWK from a DID document.
|
|
75
|
+
*
|
|
76
|
+
* @param didDocument - The DID document
|
|
77
|
+
* @param kid - Optional key ID to match (from JWT header). Can be full ID or just fragment.
|
|
78
|
+
* @returns The public key as JWK JSON string
|
|
79
|
+
* @throws {WasmVcError} If no matching public key is found
|
|
80
|
+
*/
|
|
81
|
+
export async function extractPublicKeyJwk(didDocument, kid) {
|
|
82
|
+
await ensureWasmReady();
|
|
83
|
+
const didDocumentJson = JSON.stringify(didDocument);
|
|
84
|
+
return wasmExtractPublicKeyJwk(didDocumentJson, kid);
|
|
85
|
+
}
|
|
62
86
|
//# sourceMappingURL=wasm.js.map
|
package/dist/wasm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm.js","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,+BAA+B;AAE/B,OAAO,IAAI,EAAE,EACX,UAAU,IAAI,aAAa,EAC3B,gBAAgB,IAAI,mBAAmB,EACvC,cAAc,IAAI,gBAAgB,
|
|
1
|
+
{"version":3,"file":"wasm.js","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,+BAA+B;AAE/B,OAAO,IAAI,EAAE,EACX,UAAU,IAAI,aAAa,EAC3B,gBAAgB,IAAI,mBAAmB,EACvC,cAAc,IAAI,gBAAgB,EAClC,gBAAgB,IAAI,kBAAkB,EACtC,sBAAsB,IAAI,uBAAuB,GAClD,MAAM,2DAA2D,CAAC;AAMnE,IAAI,eAAe,GAAyB,IAAI,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAmB;IACvD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACxC,6BAA6B;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,eAAe,CAAC;AACxB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,YAAoB;IAC/D,MAAM,eAAe,EAAE,CAAC;IACxB,OAAO,aAAa,CAAC,GAAG,EAAE,YAAY,CAAuB,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,eAAe,EAAE,CAAC;IACxB,OAAO,mBAAmB,EAAa,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,aAAqB;IACtD,MAAM,eAAe,EAAE,CAAC;IACxB,OAAO,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW;IAC9C,MAAM,eAAe,EAAE,CAAC;IACxB,OAAO,kBAAkB,CAAC,GAAG,CAAc,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAwB,EAAE,GAAY;IAC9E,MAAM,eAAe,EAAE,CAAC;IACxB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACpD,OAAO,uBAAuB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semiotic-labs/agentium-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -17,6 +17,11 @@
|
|
|
17
17
|
"lint": "eslint src/**/*.ts",
|
|
18
18
|
"format:check": "prettier --check .",
|
|
19
19
|
"format:write": "prettier --write .",
|
|
20
|
+
"format:python": "cd packages/agentium-native/python && ruff check . --fix && ruff format .",
|
|
21
|
+
"check:python": "cd packages/agentium-native/python && mypy agentium_sdk",
|
|
22
|
+
"format:rust": "cd packages/agentium-native && cargo fmt --all",
|
|
23
|
+
"format:rust:check": "cd packages/agentium-native && cargo fmt --all --check",
|
|
24
|
+
"format:all": "npm run format:write && npm run format:python && npm run format:rust",
|
|
20
25
|
"check": "npm run lint && npm run format:check",
|
|
21
26
|
"reuse:check": "reuse lint",
|
|
22
27
|
"reuse:write": "reuse annotate --license MIT --copyright \"Semiotic AI, Inc.\" --year 2025 -r . --fallback-dot-license --skip-existing"
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
/* tslint:disable */
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Extract the public key JWK from a DID document.
|
|
6
|
+
*
|
|
7
|
+
* # Arguments
|
|
8
|
+
* * `did_document_json` - The DID document as JSON string
|
|
9
|
+
* * `kid` - Optional key ID to match (from JWT header). Can be full ID or just fragment.
|
|
10
|
+
*
|
|
11
|
+
* # Returns
|
|
12
|
+
* The public key as JWK JSON string
|
|
13
|
+
*/
|
|
14
|
+
export function extract_public_key_jwk(did_document_json: string, kid?: string | null): string;
|
|
15
|
+
|
|
4
16
|
/**
|
|
5
17
|
* Generate a new Ed25519 key pair
|
|
6
18
|
*
|
|
@@ -20,8 +32,26 @@ export function generate_keypair(): any;
|
|
|
20
32
|
*/
|
|
21
33
|
export function get_public_key(private_key_jwk: string): string;
|
|
22
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Initialize tracing with a JavaScript callback sink.
|
|
37
|
+
*
|
|
38
|
+
* # Arguments
|
|
39
|
+
* * `sink` - JavaScript function that receives telemetry events as objects
|
|
40
|
+
* * `filter` - Optional filter string (e.g., "info", "debug", "agentium=trace")
|
|
41
|
+
*/
|
|
23
42
|
export function init_tracing(sink: Function, filter?: string | null): void;
|
|
24
43
|
|
|
44
|
+
/**
|
|
45
|
+
* Parse a JWT header without verifying the signature.
|
|
46
|
+
*
|
|
47
|
+
* # Arguments
|
|
48
|
+
* * `jwt` - The JWT string (compact format: header.payload.signature)
|
|
49
|
+
*
|
|
50
|
+
* # Returns
|
|
51
|
+
* The parsed JWT header containing algorithm, type, and optional key ID.
|
|
52
|
+
*/
|
|
53
|
+
export function parse_jwt_header(jwt: string): any;
|
|
54
|
+
|
|
25
55
|
/**
|
|
26
56
|
* Verify a JWT against a public key
|
|
27
57
|
*
|
|
@@ -39,10 +69,12 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
|
|
|
39
69
|
|
|
40
70
|
export interface InitOutput {
|
|
41
71
|
readonly memory: WebAssembly.Memory;
|
|
72
|
+
readonly extract_public_key_jwk: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
42
73
|
readonly generate_keypair: () => [number, number, number];
|
|
43
74
|
readonly get_public_key: (a: number, b: number) => [number, number, number, number];
|
|
44
|
-
readonly verify_jwt: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
45
75
|
readonly init_tracing: (a: any, b: number, c: number) => void;
|
|
76
|
+
readonly parse_jwt_header: (a: number, b: number) => [number, number, number];
|
|
77
|
+
readonly verify_jwt: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
46
78
|
readonly __wbindgen_exn_store: (a: number) => void;
|
|
47
79
|
readonly __externref_table_alloc: () => number;
|
|
48
80
|
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
@@ -109,6 +109,42 @@ if (!('encodeInto' in cachedTextEncoder)) {
|
|
|
109
109
|
|
|
110
110
|
let WASM_VECTOR_LEN = 0;
|
|
111
111
|
|
|
112
|
+
/**
|
|
113
|
+
* Extract the public key JWK from a DID document.
|
|
114
|
+
*
|
|
115
|
+
* # Arguments
|
|
116
|
+
* * `did_document_json` - The DID document as JSON string
|
|
117
|
+
* * `kid` - Optional key ID to match (from JWT header). Can be full ID or just fragment.
|
|
118
|
+
*
|
|
119
|
+
* # Returns
|
|
120
|
+
* The public key as JWK JSON string
|
|
121
|
+
* @param {string} did_document_json
|
|
122
|
+
* @param {string | null} [kid]
|
|
123
|
+
* @returns {string}
|
|
124
|
+
*/
|
|
125
|
+
export function extract_public_key_jwk(did_document_json, kid) {
|
|
126
|
+
let deferred4_0;
|
|
127
|
+
let deferred4_1;
|
|
128
|
+
try {
|
|
129
|
+
const ptr0 = passStringToWasm0(did_document_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
130
|
+
const len0 = WASM_VECTOR_LEN;
|
|
131
|
+
var ptr1 = isLikeNone(kid) ? 0 : passStringToWasm0(kid, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
132
|
+
var len1 = WASM_VECTOR_LEN;
|
|
133
|
+
const ret = wasm.extract_public_key_jwk(ptr0, len0, ptr1, len1);
|
|
134
|
+
var ptr3 = ret[0];
|
|
135
|
+
var len3 = ret[1];
|
|
136
|
+
if (ret[3]) {
|
|
137
|
+
ptr3 = 0; len3 = 0;
|
|
138
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
139
|
+
}
|
|
140
|
+
deferred4_0 = ptr3;
|
|
141
|
+
deferred4_1 = len3;
|
|
142
|
+
return getStringFromWasm0(ptr3, len3);
|
|
143
|
+
} finally {
|
|
144
|
+
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
112
148
|
/**
|
|
113
149
|
* Generate a new Ed25519 key pair
|
|
114
150
|
*
|
|
@@ -157,6 +193,11 @@ export function get_public_key(private_key_jwk) {
|
|
|
157
193
|
}
|
|
158
194
|
|
|
159
195
|
/**
|
|
196
|
+
* Initialize tracing with a JavaScript callback sink.
|
|
197
|
+
*
|
|
198
|
+
* # Arguments
|
|
199
|
+
* * `sink` - JavaScript function that receives telemetry events as objects
|
|
200
|
+
* * `filter` - Optional filter string (e.g., "info", "debug", "agentium=trace")
|
|
160
201
|
* @param {Function} sink
|
|
161
202
|
* @param {string | null} [filter]
|
|
162
203
|
*/
|
|
@@ -166,6 +207,27 @@ export function init_tracing(sink, filter) {
|
|
|
166
207
|
wasm.init_tracing(sink, ptr0, len0);
|
|
167
208
|
}
|
|
168
209
|
|
|
210
|
+
/**
|
|
211
|
+
* Parse a JWT header without verifying the signature.
|
|
212
|
+
*
|
|
213
|
+
* # Arguments
|
|
214
|
+
* * `jwt` - The JWT string (compact format: header.payload.signature)
|
|
215
|
+
*
|
|
216
|
+
* # Returns
|
|
217
|
+
* The parsed JWT header containing algorithm, type, and optional key ID.
|
|
218
|
+
* @param {string} jwt
|
|
219
|
+
* @returns {any}
|
|
220
|
+
*/
|
|
221
|
+
export function parse_jwt_header(jwt) {
|
|
222
|
+
const ptr0 = passStringToWasm0(jwt, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
223
|
+
const len0 = WASM_VECTOR_LEN;
|
|
224
|
+
const ret = wasm.parse_jwt_header(ptr0, len0);
|
|
225
|
+
if (ret[2]) {
|
|
226
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
227
|
+
}
|
|
228
|
+
return takeFromExternrefTable0(ret[0]);
|
|
229
|
+
}
|
|
230
|
+
|
|
169
231
|
/**
|
|
170
232
|
* Verify a JWT against a public key
|
|
171
233
|
*
|
|
Binary file
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/* tslint:disable */
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
export const memory: WebAssembly.Memory;
|
|
4
|
+
export const extract_public_key_jwk: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
4
5
|
export const generate_keypair: () => [number, number, number];
|
|
5
6
|
export const get_public_key: (a: number, b: number) => [number, number, number, number];
|
|
6
|
-
export const verify_jwt: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
7
7
|
export const init_tracing: (a: any, b: number, c: number) => void;
|
|
8
|
+
export const parse_jwt_header: (a: number, b: number) => [number, number, number];
|
|
9
|
+
export const verify_jwt: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
8
10
|
export const __wbindgen_exn_store: (a: number) => void;
|
|
9
11
|
export const __externref_table_alloc: () => number;
|
|
10
12
|
export const __wbindgen_externrefs: WebAssembly.Table;
|