@terminal3/t3n-sdk 0.10.0 → 0.12.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.
Files changed (45) hide show
  1. package/README.md +1 -1
  2. package/dist/demo.d.ts +25 -0
  3. package/dist/index.d.ts +347 -172
  4. package/dist/index.esm.js +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/src/client/actions.d.ts +22 -0
  7. package/dist/src/client/config.d.ts +10 -30
  8. package/dist/src/client/encryption.d.ts +30 -0
  9. package/dist/src/client/handlers.d.ts +73 -0
  10. package/dist/src/client/index.d.ts +4 -0
  11. package/dist/src/client/request-parser.d.ts +48 -0
  12. package/dist/src/client/t3n-client.d.ts +113 -26
  13. package/dist/src/index.d.ts +6 -7
  14. package/dist/src/types/auth.d.ts +5 -6
  15. package/dist/src/types/index.d.ts +37 -13
  16. package/dist/src/utils/index.d.ts +0 -1
  17. package/dist/src/wasm/interface.d.ts +95 -54
  18. package/dist/src/wasm/loader.d.ts +25 -55
  19. package/dist/wasm/generated/interfaces/component-session-client-auth.d.ts +12 -0
  20. package/dist/wasm/generated/interfaces/component-session-client-handshake.d.ts +12 -0
  21. package/dist/wasm/generated/interfaces/component-session-cookie.d.ts +8 -0
  22. package/dist/wasm/generated/interfaces/component-session-session.d.ts +7 -0
  23. package/dist/wasm/generated/session.core.wasm +0 -0
  24. package/dist/wasm/generated/session.d.ts +10 -87
  25. package/dist/wasm/generated/session.js +3254 -6713
  26. package/package.json +1 -1
  27. package/dist/src/utils/hkdf.d.ts +0 -36
  28. package/dist/wasm/generated/interfaces/host-session-interfaces-contract-dispatch.d.ts +0 -2
  29. package/dist/wasm/generated/interfaces/host-session-interfaces-entropy.d.ts +0 -2
  30. package/dist/wasm/generated/interfaces/host-session-interfaces-eth-signer.d.ts +0 -2
  31. package/dist/wasm/generated/interfaces/host-session-interfaces-kem.d.ts +0 -3
  32. package/dist/wasm/generated/interfaces/host-session-interfaces-oidc-client.d.ts +0 -2
  33. package/dist/wasm/generated/interfaces/host-session-interfaces-oidc.d.ts +0 -3
  34. package/dist/wasm/generated/interfaces/host-session-interfaces-session-ops.d.ts +0 -9
  35. package/dist/wasm/generated/interfaces/host-session-interfaces-transport.d.ts +0 -2
  36. package/dist/wasm/generated/interfaces/tee-session-client-auth.d.ts +0 -7
  37. package/dist/wasm/generated/interfaces/tee-session-client-handshake.d.ts +0 -12
  38. package/dist/wasm/generated/interfaces/tee-session-cookie.d.ts +0 -7
  39. package/dist/wasm/generated/interfaces/tee-session-server-admin.d.ts +0 -2
  40. package/dist/wasm/generated/interfaces/tee-session-server-auth.d.ts +0 -10
  41. package/dist/wasm/generated/interfaces/tee-session-server-handshake.d.ts +0 -15
  42. package/dist/wasm/generated/interfaces/tee-session-server-webhook.d.ts +0 -6
  43. package/dist/wasm/generated/interfaces/tee-session-session-crypto.d.ts +0 -3
  44. package/dist/wasm/generated/session.core2.wasm +0 -0
  45. package/dist/wasm/generated/session.core3.wasm +0 -0
@@ -1,69 +1,110 @@
1
1
  /**
2
- * WASM Component Interface async direct-call.
2
+ * WASM Component Interface - Mirrors the WIT specification exactly
3
3
  *
4
- * Mirrors `tee:session@1.0.0` WIT world. The SDK talks to the WASM
5
- * only through these exports (plus host imports supplied at
6
- * instantiation); all protocol glue lives inside the contract.
4
+ * This interface works with completely opaque byte arrays, just like the WIT interface.
5
+ * The TypeScript SDK doesn't know about internal state machine phases or details.
7
6
  */
8
- export interface ClientSessionKeys {
9
- /** `encrypt_key || decrypt_key`, 64 bytes. */
10
- blob: Uint8Array;
11
- sid: Uint8Array;
12
- }
13
- export interface HandshakeOutcome {
14
- keys: ClientSessionKeys;
15
- authenticated: boolean;
16
- did?: string;
17
- expirySec: bigint;
7
+ /**
8
+ * Result type for WASM next() operations
9
+ */
10
+ export interface WasmNextResult {
11
+ state: Uint8Array;
12
+ request: Uint8Array;
18
13
  }
14
+ /**
15
+ * Client handshake operations - completely opaque byte arrays only
16
+ */
19
17
  export interface ClientHandshake {
20
- run(sid: Uint8Array, cookie: string | undefined): HandshakeOutcome;
21
- }
22
- export interface AuthOutcome {
23
- did: string;
24
- cookie?: string;
18
+ /**
19
+ * Process next step in handshake
20
+ * @param state - Current handshake state (null for initial call)
21
+ * @param action - Action to process (opaque bytes)
22
+ * @returns Promise with new state and request to send
23
+ */
24
+ next(state: Uint8Array | null, action: Uint8Array): Promise<WasmNextResult>;
25
+ /**
26
+ * Attempt to finalize handshake
27
+ * @param state - Current handshake state
28
+ * @returns Promise with session bytes if successful
29
+ * @throws Error containing "not yet finalized" if the state machine
30
+ * has not reached its terminal phase. The SDK runtime treats
31
+ * this as the loop's "keep going" signal, not a real error.
32
+ */
33
+ finish(state: Uint8Array): Promise<Uint8Array>;
25
34
  }
35
+ /**
36
+ * Client authentication operations - completely opaque byte arrays only
37
+ */
26
38
  export interface ClientAuth {
27
- runEth(sessionKeys: Uint8Array, ethAddress: string, siweDomain: string | undefined, siweUrl: string | undefined, siweChainId: bigint | undefined): AuthOutcome;
28
39
  /**
29
- * Run the full OIDC flow in one call. The contract drives both
30
- * server round-trips and invokes the SDK's `getIdToken(provider,
31
- * nonce)` host import in between to obtain the IdP-signed token.
40
+ * Process next step in authentication
41
+ * @param state - Current auth state (null for initial call)
42
+ * @param action - Action to process (opaque bytes)
43
+ * @returns Promise with new state and request to send
32
44
  */
33
- runOidc(sessionKeys: Uint8Array, provider: string): AuthOutcome;
34
- }
35
- export interface ServerSessionKeys {
36
- c2s: Uint8Array;
37
- s2c: Uint8Array;
38
- sid: Uint8Array;
39
- }
40
- export interface ServerOutcome {
41
- keys: ServerSessionKeys;
42
- authenticated: boolean;
43
- did?: string;
44
- expirySec: bigint;
45
- refreshedCookie?: string;
45
+ next(state: Uint8Array | null, action: Uint8Array): Promise<WasmNextResult>;
46
+ /**
47
+ * Attempt to finalize authentication
48
+ * @param state - Current auth state
49
+ * @returns Promise with DID bytes if successful
50
+ * @throws Error containing "not yet finalized" if the state machine
51
+ * has not reached its terminal phase. The SDK runtime treats
52
+ * this as the loop's "keep going" signal, not a real error.
53
+ */
54
+ finish(state: Uint8Array): Promise<Uint8Array>;
46
55
  }
47
- export interface ServerHandshake {
48
- run(sid: Uint8Array, ciphertext: Uint8Array, cookieValue: string | undefined): ServerOutcome;
56
+ /**
57
+ * Client authentication operations - completely opaque byte arrays only
58
+ */
59
+ export interface ClientExecute {
60
+ /**
61
+ * Process next step in authentication
62
+ * @param state - Current auth state (null for initial call)
63
+ * @param action - Action to process (opaque bytes)
64
+ * @returns Promise with new state and request to send
65
+ */
66
+ next(state: Uint8Array | null, action: Uint8Array): Promise<WasmNextResult>;
67
+ /**
68
+ * Attempt to finalize authentication
69
+ * @param state - Current auth state
70
+ * @returns Promise with DID bytes if successful
71
+ * @throws Error containing "not yet finalized" if the state machine
72
+ * has not reached its terminal phase. The SDK runtime treats
73
+ * this as the loop's "keep going" signal, not a real error.
74
+ */
75
+ finish(state: Uint8Array): Promise<Uint8Array>;
49
76
  }
77
+ /**
78
+ * Session encryption/decryption operations - completely opaque byte arrays only
79
+ */
50
80
  export interface SessionCrypto {
51
- encrypt(keys: Uint8Array, plaintext: Uint8Array): Uint8Array;
52
- decrypt(keys: Uint8Array, ciphertext: Uint8Array): Uint8Array;
53
- }
54
- export interface Validation {
55
- authenticated: boolean;
56
- did?: string;
57
- exp: bigint;
58
- }
59
- export interface CookieIface {
60
- validate(cookieValue: string, teeAddress: Uint8Array, nowSec: bigint): Validation;
81
+ /**
82
+ * Encrypt plaintext using session
83
+ * @param session - Session state (opaque bytes)
84
+ * @param plaintext - Data to encrypt
85
+ * @returns Promise with encrypted bytes
86
+ */
87
+ encrypt(session: Uint8Array, plaintext: Uint8Array): Promise<Uint8Array>;
88
+ /**
89
+ * Decrypt ciphertext using session
90
+ * @param session - Session state (opaque bytes)
91
+ * @param ciphertext - Data to decrypt
92
+ * @returns Promise with decrypted bytes
93
+ */
94
+ decrypt(session: Uint8Array, ciphertext: Uint8Array): Promise<Uint8Array>;
61
95
  }
62
- /** Fully instantiated session component. */
96
+ /**
97
+ * Main WASM Component interface - mirrors the WIT interface exactly
98
+ *
99
+ * This is completely opaque to the TypeScript layer. All state machine logic,
100
+ * authentication flows, and cryptographic operations are handled in WASM.
101
+ */
63
102
  export interface WasmComponent {
64
- clientHandshake: ClientHandshake;
65
- clientAuth: ClientAuth;
66
- serverHandshake: ServerHandshake;
67
- sessionCrypto: SessionCrypto;
68
- cookie: CookieIface;
103
+ /** Client-side state machines exported by the WASM component. */
104
+ flow: {
105
+ handshake: ClientHandshake;
106
+ auth: ClientAuth;
107
+ execute: ClientExecute;
108
+ };
109
+ session: SessionCrypto;
69
110
  }
@@ -1,73 +1,43 @@
1
1
  /**
2
- * WASM Component Loader — async direct-call shape.
2
+ * WASM Component Loader
3
3
  *
4
- * Loads the `tee:session@1.0.0` jco-transpiled component. Host
5
- * imports (`host:session-interfaces/*`) are supplied at
6
- * instantiation; the caller can override any of them via
7
- * `WasmLoadConfig.hostImports` to plug a custom KEM public-key
8
- * source, ETH signer, etc. Defaults cover the common case for the
9
- * browser SDK:
10
- *
11
- * - `entropy.random`: WebCrypto `getRandomValues`
12
- * - `kem.mlKemPublicKey`: HTTP fetch of /pubkey (caller sets URL)
13
- * - `kem.decapsulate`: server-only; client-side stub returns error
14
- * - `eth-signer.eth-sign`: injected wallet (window.ethereum) if present
15
- * - `session-ops.now-ms`: Date.now()
16
- * - `session-ops.tee-address`, `set-cookie`: caller-supplied or stubs
4
+ * This module provides utilities for loading and initializing the WASM component.
5
+ * The actual WASM loading implementation will depend on the build system and
6
+ * deployment environment.
17
7
  */
18
8
  import { WasmComponent } from "./interface";
19
9
  import { Logger } from "../utils/logger";
20
- /**
21
- * Host imports supplied at WASM instantiation. Any subset may be
22
- * overridden by the caller; unset ones fall back to a safe default
23
- * (or an error stub for server-only methods like `decapsulate`).
24
- */
25
- export interface SessionHostImports {
26
- /** Fetch the server's ML-KEM public key (client-side). */
27
- mlKemPublicKey?: () => Uint8Array | Promise<Uint8Array>;
28
- /** CSPRNG. Defaults to WebCrypto `getRandomValues`. */
29
- random?: (len: number) => Uint8Array;
30
- /** EIP-191 / SIWE signer. Defaults to error (caller must supply). */
31
- ethSign?: (message: Uint8Array) => Uint8Array | Promise<Uint8Array>;
32
- /**
33
- * OIDC user-interaction callback. The contract supplies the
34
- * server-bound `nonce`; the SDK consumer runs whatever popup /
35
- * redirect flow is appropriate for `provider` and returns the
36
- * IdP-signed `id_token`. Defaults to error (caller must supply
37
- * when using OIDC auth).
38
- */
39
- getIdToken?: (provider: string, nonce: string) => string | Promise<string>;
40
- /** Current time in ms. Defaults to Date.now() (as bigint). */
41
- nowMs?: () => bigint;
42
- /** TEE address — server-only; client stub returns 20 zero bytes. */
43
- teeAddress?: () => Uint8Array;
44
- /** Called when the guest emits a refreshed cookie. */
45
- setCookie?: (value: string) => void;
46
- /**
47
- * HTTP transport the contract uses to POST JSON-RPC requests. The
48
- * SDK wires this to its `Transport` under the hood — the contract
49
- * supplies the method name and params bytes; the SDK layers on the
50
- * Session-Id header, JSON-RPC envelope, and returns the raw result
51
- * bytes.
52
- */
53
- postRpc?: (method: string, sessionId: string, params: string) => string | Promise<string>;
54
- }
55
10
  /**
56
11
  * Configuration for WASM component loading
57
12
  */
58
13
  export interface WasmLoadConfig {
59
14
  /** Path or URL to the WASM module */
60
15
  wasmPath?: string;
16
+ /** Custom fetch function for loading WASM */
17
+ fetchFn?: typeof fetch;
18
+ /** Additional initialization options */
19
+ initOptions?: Record<string, unknown>;
61
20
  /** Optional logger instance - if not provided, uses global default */
62
21
  logger?: Logger;
63
- /** Overrides for the host-import functions. */
64
- hostImports?: SessionHostImports;
65
22
  }
66
23
  /**
67
- * Load and initialize the T3n WASM component (async direct-call).
24
+ * Load and initialize the T3n WASM component
68
25
  *
69
- * The caller normally only needs to override `mlKemPublicKey` (to
70
- * point at the node URL) and `ethSign` (to bridge to the browser
71
- * wallet). All other imports have sensible defaults.
26
+ * @param config - Optional configuration for loading the WASM component
27
+ * @returns Promise that resolves to the initialized WASM component
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const wasmComponent = await loadWasmComponent({
32
+ * wasmPath: '/path/to/t3n.wasm'
33
+ * });
34
+ * ```
72
35
  */
73
36
  export declare function loadWasmComponent(config?: WasmLoadConfig): Promise<WasmComponent>;
37
+ /**
38
+ * Load the real T3n WASM component
39
+ *
40
+ * @param logger - Logger instance for WASM operations
41
+ * @returns Promise that resolves to the initialized WASM component
42
+ */
43
+ export declare function loadRealWasmComponent(logger: Logger): Promise<WasmComponent>;
@@ -0,0 +1,12 @@
1
+ /** @module Interface component:session/client-auth@0.1.0 **/
2
+ export function next(state: State | undefined, action: HostToGuest): NewState;
3
+ export function finish(state: State): Did;
4
+ export type GuestToHost = Uint8Array;
5
+ export type State = Uint8Array;
6
+ export type HostToGuest = Uint8Array;
7
+ export type Did = Uint8Array;
8
+ export type Error = Uint8Array;
9
+ export interface NewState {
10
+ state: State,
11
+ request: GuestToHost,
12
+ }
@@ -0,0 +1,12 @@
1
+ /** @module Interface component:session/client-handshake@0.1.0 **/
2
+ export function next(state: State | undefined, action: HostToGuest): NewState;
3
+ export function finish(state: State): SessionState;
4
+ export type GuestToHost = Uint8Array;
5
+ export type State = Uint8Array;
6
+ export type HostToGuest = Uint8Array;
7
+ export type SessionState = Uint8Array;
8
+ export type Error = Uint8Array;
9
+ export interface NewState {
10
+ state: State,
11
+ request: GuestToHost,
12
+ }
@@ -0,0 +1,8 @@
1
+ /** @module Interface component:session/cookie@0.1.0 **/
2
+ export function validate(cookieValue: string, teeAddress: Uint8Array, nowSec: bigint): Validation;
3
+ export interface Validation {
4
+ authenticated: boolean,
5
+ did?: string,
6
+ exp: bigint,
7
+ }
8
+ export type Error = Uint8Array;
@@ -0,0 +1,7 @@
1
+ /** @module Interface component:session/session@0.1.0 **/
2
+ export function encrypt(session: Session, plaintext: Plaintext): Ciphertext;
3
+ export function decrypt(session: Session, ciphertext: Ciphertext): Plaintext;
4
+ export type Error = Uint8Array;
5
+ export type Session = Uint8Array;
6
+ export type Plaintext = Uint8Array;
7
+ export type Ciphertext = Uint8Array;
@@ -1,88 +1,11 @@
1
1
  // world root:component/root
2
- import type * as HostSessionInterfacesContractDispatch from './interfaces/host-session-interfaces-contract-dispatch.js'; // host:session-interfaces/contract-dispatch@1.0.0
3
- import type * as HostSessionInterfacesEntropy from './interfaces/host-session-interfaces-entropy.js'; // host:session-interfaces/entropy@1.0.0
4
- import type * as HostSessionInterfacesEthSigner from './interfaces/host-session-interfaces-eth-signer.js'; // host:session-interfaces/eth-signer@1.0.0
5
- import type * as HostSessionInterfacesKem from './interfaces/host-session-interfaces-kem.js'; // host:session-interfaces/kem@1.0.0
6
- import type * as HostSessionInterfacesOidcClient from './interfaces/host-session-interfaces-oidc-client.js'; // host:session-interfaces/oidc-client@1.0.0
7
- import type * as HostSessionInterfacesOidc from './interfaces/host-session-interfaces-oidc.js'; // host:session-interfaces/oidc@1.0.0
8
- import type * as HostSessionInterfacesSessionOps from './interfaces/host-session-interfaces-session-ops.js'; // host:session-interfaces/session-ops@1.0.0
9
- import type * as HostSessionInterfacesTransport from './interfaces/host-session-interfaces-transport.js'; // host:session-interfaces/transport@1.0.0
10
- import type * as WasiCliEnvironment from './interfaces/wasi-cli-environment.js'; // wasi:cli/environment@0.2.9
11
- import type * as WasiCliExit from './interfaces/wasi-cli-exit.js'; // wasi:cli/exit@0.2.9
12
- import type * as WasiCliStderr from './interfaces/wasi-cli-stderr.js'; // wasi:cli/stderr@0.2.9
13
- import type * as WasiIoError from './interfaces/wasi-io-error.js'; // wasi:io/error@0.2.9
14
- import type * as WasiIoStreams from './interfaces/wasi-io-streams.js'; // wasi:io/streams@0.2.9
15
- import type * as WasiRandomRandom from './interfaces/wasi-random-random.js'; // wasi:random/random@0.2.9
16
- import type * as TeeSessionClientHandshake from './interfaces/tee-session-client-handshake.js'; // tee:session/client-handshake@1.0.0
17
- import type * as TeeSessionClientAuth from './interfaces/tee-session-client-auth.js'; // tee:session/client-auth@1.0.0
18
- import type * as TeeSessionServerHandshake from './interfaces/tee-session-server-handshake.js'; // tee:session/server-handshake@1.0.0
19
- import type * as TeeSessionServerAuth from './interfaces/tee-session-server-auth.js'; // tee:session/server-auth@1.0.0
20
- import type * as TeeSessionServerAdmin from './interfaces/tee-session-server-admin.js'; // tee:session/server-admin@1.0.0
21
- import type * as TeeSessionServerWebhook from './interfaces/tee-session-server-webhook.js'; // tee:session/server-webhook@1.0.0
22
- import type * as TeeSessionSessionCrypto from './interfaces/tee-session-session-crypto.js'; // tee:session/session-crypto@1.0.0
23
- import type * as TeeSessionCookie from './interfaces/tee-session-cookie.js'; // tee:session/cookie@1.0.0
24
- export interface ImportObject {
25
- 'host:session-interfaces/contract-dispatch@1.0.0': typeof HostSessionInterfacesContractDispatch,
26
- 'host:session-interfaces/entropy@1.0.0': typeof HostSessionInterfacesEntropy,
27
- 'host:session-interfaces/eth-signer@1.0.0': typeof HostSessionInterfacesEthSigner,
28
- 'host:session-interfaces/kem@1.0.0': typeof HostSessionInterfacesKem,
29
- 'host:session-interfaces/oidc-client@1.0.0': typeof HostSessionInterfacesOidcClient,
30
- 'host:session-interfaces/oidc@1.0.0': typeof HostSessionInterfacesOidc,
31
- 'host:session-interfaces/session-ops@1.0.0': typeof HostSessionInterfacesSessionOps,
32
- 'host:session-interfaces/transport@1.0.0': typeof HostSessionInterfacesTransport,
33
- 'wasi:cli/environment@0.2.9': typeof WasiCliEnvironment,
34
- 'wasi:cli/exit@0.2.9': typeof WasiCliExit,
35
- 'wasi:cli/stderr@0.2.9': typeof WasiCliStderr,
36
- 'wasi:io/error@0.2.9': typeof WasiIoError,
37
- 'wasi:io/streams@0.2.9': typeof WasiIoStreams,
38
- 'wasi:random/random@0.2.9': typeof WasiRandomRandom,
39
- }
40
- export interface Root {
41
- 'tee:session/client-handshake@1.0.0': typeof TeeSessionClientHandshake,
42
- clientHandshake: typeof TeeSessionClientHandshake,
43
- 'tee:session/client-auth@1.0.0': typeof TeeSessionClientAuth,
44
- clientAuth: typeof TeeSessionClientAuth,
45
- 'tee:session/server-handshake@1.0.0': typeof TeeSessionServerHandshake,
46
- serverHandshake: typeof TeeSessionServerHandshake,
47
- 'tee:session/server-auth@1.0.0': typeof TeeSessionServerAuth,
48
- serverAuth: typeof TeeSessionServerAuth,
49
- 'tee:session/server-admin@1.0.0': typeof TeeSessionServerAdmin,
50
- serverAdmin: typeof TeeSessionServerAdmin,
51
- 'tee:session/server-webhook@1.0.0': typeof TeeSessionServerWebhook,
52
- serverWebhook: typeof TeeSessionServerWebhook,
53
- 'tee:session/session-crypto@1.0.0': typeof TeeSessionSessionCrypto,
54
- sessionCrypto: typeof TeeSessionSessionCrypto,
55
- 'tee:session/cookie@1.0.0': typeof TeeSessionCookie,
56
- cookie: typeof TeeSessionCookie,
57
- }
58
-
59
- /**
60
- * Instantiates this component with the provided imports and
61
- * returns a map of all the exports of the component.
62
- *
63
- * This function is intended to be similar to the
64
- * `WebAssembly.instantiate` function. The second `imports`
65
- * argument is the "import object" for wasm, except here it
66
- * uses component-model-layer types instead of core wasm
67
- * integers/numbers/etc.
68
- *
69
- * The first argument to this function, `getCoreModule`, is
70
- * used to compile core wasm modules within the component.
71
- * Components are composed of core wasm modules and this callback
72
- * will be invoked per core wasm module. The caller of this
73
- * function is responsible for reading the core wasm module
74
- * identified by `path` and returning its compiled
75
- * `WebAssembly.Module` object. This would use `compileStreaming`
76
- * on the web, for example.
77
- */
78
- export function instantiate(
79
- getCoreModule: (path: string) => WebAssembly.Module,
80
- imports: ImportObject,
81
- instantiateCore?: (module: WebAssembly.Module, imports: Record<string, any>) => WebAssembly.Instance
82
- ): Root;
83
- export function instantiate(
84
- getCoreModule: (path: string) => WebAssembly.Module | Promise<WebAssembly.Module>,
85
- imports: ImportObject,
86
- instantiateCore?: (module: WebAssembly.Module, imports: Record<string, any>) => WebAssembly.Instance | Promise<WebAssembly.Instance>
87
- ): Root | Promise<Root>;
88
-
2
+ export type * as WasiCliEnvironment029 from './interfaces/wasi-cli-environment.js'; // import wasi:cli/environment@0.2.9
3
+ export type * as WasiCliExit029 from './interfaces/wasi-cli-exit.js'; // import wasi:cli/exit@0.2.9
4
+ export type * as WasiCliStderr029 from './interfaces/wasi-cli-stderr.js'; // import wasi:cli/stderr@0.2.9
5
+ export type * as WasiIoError029 from './interfaces/wasi-io-error.js'; // import wasi:io/error@0.2.9
6
+ export type * as WasiIoStreams029 from './interfaces/wasi-io-streams.js'; // import wasi:io/streams@0.2.9
7
+ export type * as WasiRandomRandom029 from './interfaces/wasi-random-random.js'; // import wasi:random/random@0.2.9
8
+ export * as clientAuth from './interfaces/component-session-client-auth.js'; // export component:session/client-auth@0.1.0
9
+ export * as clientHandshake from './interfaces/component-session-client-handshake.js'; // export component:session/client-handshake@0.1.0
10
+ export * as session from './interfaces/component-session-session.js'; // export component:session/session@0.1.0
11
+ export * as cookie from './interfaces/component-session-cookie.js'; // export component:session/cookie@0.1.0