@invisible-labs/sdk 0.8.0-devnet → 0.10.0-devnet

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 (47) hide show
  1. package/README.md +17 -3
  2. package/dist/.invisible-sdk-build-target.json +2 -2
  3. package/dist/{chunk-MZKJU3UA.js → chunk-6AGC3IOB.js} +16 -6
  4. package/dist/chunk-6AGC3IOB.js.map +1 -0
  5. package/dist/{chunk-HJFMDMPY.js → chunk-6AKBRYKO.js} +3 -3
  6. package/dist/{chunk-HJFMDMPY.js.map → chunk-6AKBRYKO.js.map} +1 -1
  7. package/dist/{chunk-DCTYBUY3.js → chunk-AIKC2XQS.js} +3 -3
  8. package/dist/{chunk-DCTYBUY3.js.map → chunk-AIKC2XQS.js.map} +1 -1
  9. package/dist/{chunk-Y7AK6RBV.js → chunk-ANQMIQYS.js} +587 -19
  10. package/dist/chunk-ANQMIQYS.js.map +1 -0
  11. package/dist/{chunk-MPNVF727.js → chunk-DFBH5XLM.js} +569 -78
  12. package/dist/chunk-DFBH5XLM.js.map +1 -0
  13. package/dist/{chunk-EBWTAXNT.js → chunk-EPWTRF5U.js} +3 -3
  14. package/dist/{chunk-EBWTAXNT.js.map → chunk-EPWTRF5U.js.map} +1 -1
  15. package/dist/{chunk-IG6JJFR2.js → chunk-HWRMSK7E.js} +8 -6
  16. package/dist/chunk-HWRMSK7E.js.map +1 -0
  17. package/dist/{chunk-K67FTCQU.js → chunk-JNNVPZEU.js} +3 -3
  18. package/dist/chunk-JNNVPZEU.js.map +1 -0
  19. package/dist/{chunk-QRN46R3F.js → chunk-RWKG7N7I.js} +10 -3
  20. package/dist/chunk-RWKG7N7I.js.map +1 -0
  21. package/dist/coordinator-T2B7253V.js +4 -0
  22. package/dist/{coordinator-E2TS6NR2.js.map → coordinator-T2B7253V.js.map} +1 -1
  23. package/dist/dkgWorker.js +1 -1
  24. package/dist/events.js +3 -3
  25. package/dist/frostRuntime-JESDHN6O.js +4 -0
  26. package/dist/{frostRuntime-6FTPKUCP.js.map → frostRuntime-JESDHN6O.js.map} +1 -1
  27. package/dist/index.d.ts +4 -4
  28. package/dist/index.js +9 -9
  29. package/dist/index.js.map +1 -1
  30. package/dist/lp.d.ts +48 -1
  31. package/dist/lp.js +360 -82
  32. package/dist/lp.js.map +1 -1
  33. package/dist/stats.js +1 -1
  34. package/dist/storage.js +2 -2
  35. package/dist/{types.generated-YhFu9ZBR.d.ts → types.generated-CtMxCo9F.d.ts} +80 -2
  36. package/dist/user.d.ts +25 -11
  37. package/dist/user.js +124 -37
  38. package/dist/user.js.map +1 -1
  39. package/package.json +2 -2
  40. package/dist/chunk-IG6JJFR2.js.map +0 -1
  41. package/dist/chunk-K67FTCQU.js.map +0 -1
  42. package/dist/chunk-MPNVF727.js.map +0 -1
  43. package/dist/chunk-MZKJU3UA.js.map +0 -1
  44. package/dist/chunk-QRN46R3F.js.map +0 -1
  45. package/dist/chunk-Y7AK6RBV.js.map +0 -1
  46. package/dist/coordinator-E2TS6NR2.js +0 -4
  47. package/dist/frostRuntime-6FTPKUCP.js +0 -4
@@ -1,4 +1,4 @@
1
- import { PolicyValidationError, AttestationError } from './chunk-QRN46R3F.js';
1
+ import { PolicyValidationError, AttestationError } from './chunk-RWKG7N7I.js';
2
2
 
3
3
  // src/core/solanaAddress.ts
4
4
  var SOLANA_PUBLIC_KEY_BYTE_LENGTH = 32;
@@ -119,5 +119,5 @@ function assertAttested(session) {
119
119
  }
120
120
 
121
121
  export { assertAttested, hex, lamports, publicKey, requestId, solanaAddressFromPublicKeyBytes };
122
- //# sourceMappingURL=chunk-EBWTAXNT.js.map
123
- //# sourceMappingURL=chunk-EBWTAXNT.js.map
122
+ //# sourceMappingURL=chunk-EPWTRF5U.js.map
123
+ //# sourceMappingURL=chunk-EPWTRF5U.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/solanaAddress.ts","../src/core/brands.ts","../src/session/guards.ts"],"names":[],"mappings":"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","file":"chunk-EBWTAXNT.js","sourcesContent":["import { PolicyValidationError } from \"./errors.js\";\n\nconst SOLANA_PUBLIC_KEY_BYTE_LENGTH = 32;\nconst SOLANA_ADDRESS_MIN_LENGTH = 32;\nconst SOLANA_ADDRESS_MAX_LENGTH = 44;\nconst BASE58_ALPHABET = \"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";\nconst BASE58_RADIX = BigInt(BASE58_ALPHABET.length);\nconst BASE58_LEADING_ZERO_CHAR = \"1\";\nconst BYTE_MASK = 0xffn;\nconst BYTE_RADIX_BITS = 8n;\nconst MAX_SOLANA_PUBLIC_KEY_VALUE = (1n << (BigInt(SOLANA_PUBLIC_KEY_BYTE_LENGTH) * 8n)) - 1n;\n\nconst BASE58_DIGITS = new Map<string, number>(\n Array.from(BASE58_ALPHABET, (character, index) => [character, index]),\n);\n\nexport function assertCanonicalSolanaAddress(value: unknown): asserts value is string {\n if (typeof value !== \"string\") {\n throw new PolicyValidationError(\n \"INVALID_DESTINATION_ADDRESS\",\n `destination address must be a string, received ${typeof value}`,\n );\n }\n if (\n value.trim() !== value ||\n value.length < SOLANA_ADDRESS_MIN_LENGTH ||\n value.length > SOLANA_ADDRESS_MAX_LENGTH\n ) {\n throwInvalidDestinationAddress(value);\n }\n\n const decoded = decodeBase58SolanaAddress(value);\n if (encodeBase58(decoded) !== value) {\n throwInvalidDestinationAddress(value);\n }\n}\n\n/** Encode a 32-byte Ed25519 public key as its canonical Solana address. */\nexport function solanaAddressFromPublicKeyBytes(bytes: Uint8Array): string {\n if (bytes.byteLength !== SOLANA_PUBLIC_KEY_BYTE_LENGTH) {\n throw new PolicyValidationError(\n \"INVALID_DESTINATION_ADDRESS\",\n `Solana public key must be ${SOLANA_PUBLIC_KEY_BYTE_LENGTH} bytes, received ${bytes.byteLength}`,\n );\n }\n return encodeBase58(bytes);\n}\n\nfunction decodeBase58SolanaAddress(value: string): Uint8Array {\n let decoded = 0n;\n for (const character of value) {\n const digit = BASE58_DIGITS.get(character);\n if (digit === undefined) {\n throwInvalidDestinationAddress(value);\n }\n decoded = decoded * BASE58_RADIX + BigInt(digit);\n if (decoded > MAX_SOLANA_PUBLIC_KEY_VALUE) {\n throwInvalidDestinationAddress(value);\n }\n }\n\n const bytes = new Uint8Array(SOLANA_PUBLIC_KEY_BYTE_LENGTH);\n for (let index = SOLANA_PUBLIC_KEY_BYTE_LENGTH - 1; index >= 0; index -= 1) {\n bytes[index] = Number(decoded & BYTE_MASK);\n decoded >>= BYTE_RADIX_BITS;\n }\n return bytes;\n}\n\nfunction encodeBase58(bytes: Uint8Array): string {\n let leadingZeros = 0;\n for (const byte of bytes) {\n if (byte !== 0) break;\n leadingZeros += 1;\n }\n\n let value = 0n;\n for (const byte of bytes) {\n value = (value << BYTE_RADIX_BITS) + BigInt(byte);\n }\n\n let encoded = \"\";\n while (value > 0n) {\n const digit = Number(value % BASE58_RADIX);\n encoded = BASE58_ALPHABET[digit]! + encoded;\n value /= BASE58_RADIX;\n }\n\n return BASE58_LEADING_ZERO_CHAR.repeat(leadingZeros) + encoded;\n}\n\nfunction throwInvalidDestinationAddress(value: string): never {\n throw new PolicyValidationError(\n \"INVALID_DESTINATION_ADDRESS\",\n `destination address must be a canonical 32-byte Solana address: ${value}`,\n );\n}\n","/**\n * Branded scalar types.\n *\n * Branding makes structurally-identical primitives (a lamport amount, a base58\n * address, a correlation id) non-interchangeable at the type level, so the\n * compiler catches \"passed a request id where an address was expected\" before\n * it reaches the wire. The brand exists only at compile time; at runtime these\n * are plain `number` / `string`.\n *\n * Construct branded values through the smart constructors here. These\n * constructors enforce scalar-level invariants; payout-policy semantics stay in\n * the validation module.\n */\n\nimport { PolicyValidationError } from \"./errors.js\";\nimport { assertCanonicalSolanaAddress } from \"./solanaAddress.js\";\n\n/** Attach a compile-time-only brand `B` to base type `T`. */\nexport type Brand<T, B extends string> = T & { readonly __brand: B };\n\n/** A non-negative integer amount of lamports (1 SOL = 1_000_000_000 lamports). */\nexport type Lamports = Brand<number, \"Lamports\">;\n\n/** A Solana account address as base58 text. */\nexport type PublicKey = Brand<string, \"PublicKey\">;\n\n/** A client-generated correlation id for one logical command. */\nexport type RequestId = Brand<string, \"RequestId\">;\n\n/** Lowercase hexadecimal text (no `0x` prefix). */\nexport type Hex = Brand<string, \"Hex\">;\n\n/**\n * Brand a number as {@link Lamports}.\n *\n * @throws PolicyValidationError `INVALID_AMOUNT` if not a non-negative safe integer.\n */\nexport function lamports(value: number): Lamports {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new PolicyValidationError(\n \"INVALID_AMOUNT\",\n `lamports must be a non-negative safe integer, received ${String(value)}`,\n );\n }\n return value as Lamports;\n}\n\n/**\n * Brand a string as a {@link PublicKey}.\n *\n * Enforces canonical base58 encoding of a 32-byte Solana public key.\n *\n * @throws PolicyValidationError `INVALID_DESTINATION_ADDRESS` if obviously malformed.\n */\nexport function publicKey(value: string): PublicKey {\n assertCanonicalSolanaAddress(value);\n return value as PublicKey;\n}\n\n/**\n * Brand a non-empty string as a {@link RequestId}.\n *\n * @throws PolicyValidationError `INVALID_AMOUNT` is not appropriate here; an empty\n * id is a programming error, so this throws a plain `Error`.\n */\nexport function requestId(value: string): RequestId {\n if (value.length === 0) {\n throw new Error(\"requestId must be a non-empty string\");\n }\n return value as RequestId;\n}\n\n/**\n * Brand a string as lowercase {@link Hex}.\n *\n * @throws Error if the string contains non-hex characters.\n */\nexport function hex(value: string): Hex {\n if (!/^[0-9a-f]*$/.test(value)) {\n throw new Error(`not lowercase hex: ${value}`);\n }\n return value as Hex;\n}\n","/**\n * Session guards used by mutating commands.\n */\n\nimport { AttestationError } from \"../core/errors.js\";\nimport type { Session } from \"../core/session.js\";\n\n/**\n * Assert the session has passed attestation. Every mutating actor command calls\n * this before touching the wire, so an unattested session can never sign or\n * send sensitive material.\n *\n * @throws AttestationError `NOT_ATTESTED` when the session is not attested.\n */\nexport function assertAttested(session: Session): void {\n if (!session.attested) {\n throw new AttestationError(\n \"NOT_ATTESTED\",\n \"session is not attested; sensitive commands are blocked until attestation completes\",\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/solanaAddress.ts","../src/core/brands.ts","../src/session/guards.ts"],"names":[],"mappings":"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","file":"chunk-EPWTRF5U.js","sourcesContent":["import { PolicyValidationError } from \"./errors.js\";\n\nconst SOLANA_PUBLIC_KEY_BYTE_LENGTH = 32;\nconst SOLANA_ADDRESS_MIN_LENGTH = 32;\nconst SOLANA_ADDRESS_MAX_LENGTH = 44;\nconst BASE58_ALPHABET = \"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";\nconst BASE58_RADIX = BigInt(BASE58_ALPHABET.length);\nconst BASE58_LEADING_ZERO_CHAR = \"1\";\nconst BYTE_MASK = 0xffn;\nconst BYTE_RADIX_BITS = 8n;\nconst MAX_SOLANA_PUBLIC_KEY_VALUE = (1n << (BigInt(SOLANA_PUBLIC_KEY_BYTE_LENGTH) * 8n)) - 1n;\n\nconst BASE58_DIGITS = new Map<string, number>(\n Array.from(BASE58_ALPHABET, (character, index) => [character, index]),\n);\n\nexport function assertCanonicalSolanaAddress(value: unknown): asserts value is string {\n if (typeof value !== \"string\") {\n throw new PolicyValidationError(\n \"INVALID_DESTINATION_ADDRESS\",\n `destination address must be a string, received ${typeof value}`,\n );\n }\n if (\n value.trim() !== value ||\n value.length < SOLANA_ADDRESS_MIN_LENGTH ||\n value.length > SOLANA_ADDRESS_MAX_LENGTH\n ) {\n throwInvalidDestinationAddress(value);\n }\n\n const decoded = decodeBase58SolanaAddress(value);\n if (encodeBase58(decoded) !== value) {\n throwInvalidDestinationAddress(value);\n }\n}\n\n/** Encode a 32-byte Ed25519 public key as its canonical Solana address. */\nexport function solanaAddressFromPublicKeyBytes(bytes: Uint8Array): string {\n if (bytes.byteLength !== SOLANA_PUBLIC_KEY_BYTE_LENGTH) {\n throw new PolicyValidationError(\n \"INVALID_DESTINATION_ADDRESS\",\n `Solana public key must be ${SOLANA_PUBLIC_KEY_BYTE_LENGTH} bytes, received ${bytes.byteLength}`,\n );\n }\n return encodeBase58(bytes);\n}\n\nfunction decodeBase58SolanaAddress(value: string): Uint8Array {\n let decoded = 0n;\n for (const character of value) {\n const digit = BASE58_DIGITS.get(character);\n if (digit === undefined) {\n throwInvalidDestinationAddress(value);\n }\n decoded = decoded * BASE58_RADIX + BigInt(digit);\n if (decoded > MAX_SOLANA_PUBLIC_KEY_VALUE) {\n throwInvalidDestinationAddress(value);\n }\n }\n\n const bytes = new Uint8Array(SOLANA_PUBLIC_KEY_BYTE_LENGTH);\n for (let index = SOLANA_PUBLIC_KEY_BYTE_LENGTH - 1; index >= 0; index -= 1) {\n bytes[index] = Number(decoded & BYTE_MASK);\n decoded >>= BYTE_RADIX_BITS;\n }\n return bytes;\n}\n\nfunction encodeBase58(bytes: Uint8Array): string {\n let leadingZeros = 0;\n for (const byte of bytes) {\n if (byte !== 0) break;\n leadingZeros += 1;\n }\n\n let value = 0n;\n for (const byte of bytes) {\n value = (value << BYTE_RADIX_BITS) + BigInt(byte);\n }\n\n let encoded = \"\";\n while (value > 0n) {\n const digit = Number(value % BASE58_RADIX);\n encoded = BASE58_ALPHABET[digit]! + encoded;\n value /= BASE58_RADIX;\n }\n\n return BASE58_LEADING_ZERO_CHAR.repeat(leadingZeros) + encoded;\n}\n\nfunction throwInvalidDestinationAddress(value: string): never {\n throw new PolicyValidationError(\n \"INVALID_DESTINATION_ADDRESS\",\n `destination address must be a canonical 32-byte Solana address: ${value}`,\n );\n}\n","/**\n * Branded scalar types.\n *\n * Branding makes structurally-identical primitives (a lamport amount, a base58\n * address, a correlation id) non-interchangeable at the type level, so the\n * compiler catches \"passed a request id where an address was expected\" before\n * it reaches the wire. The brand exists only at compile time; at runtime these\n * are plain `number` / `string`.\n *\n * Construct branded values through the smart constructors here. These\n * constructors enforce scalar-level invariants; payout-policy semantics stay in\n * the validation module.\n */\n\nimport { PolicyValidationError } from \"./errors.js\";\nimport { assertCanonicalSolanaAddress } from \"./solanaAddress.js\";\n\n/** Attach a compile-time-only brand `B` to base type `T`. */\nexport type Brand<T, B extends string> = T & { readonly __brand: B };\n\n/** A non-negative integer amount of lamports (1 SOL = 1_000_000_000 lamports). */\nexport type Lamports = Brand<number, \"Lamports\">;\n\n/** A Solana account address as base58 text. */\nexport type PublicKey = Brand<string, \"PublicKey\">;\n\n/** A client-generated correlation id for one logical command. */\nexport type RequestId = Brand<string, \"RequestId\">;\n\n/** Lowercase hexadecimal text (no `0x` prefix). */\nexport type Hex = Brand<string, \"Hex\">;\n\n/**\n * Brand a number as {@link Lamports}.\n *\n * @throws PolicyValidationError `INVALID_AMOUNT` if not a non-negative safe integer.\n */\nexport function lamports(value: number): Lamports {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new PolicyValidationError(\n \"INVALID_AMOUNT\",\n `lamports must be a non-negative safe integer, received ${String(value)}`,\n );\n }\n return value as Lamports;\n}\n\n/**\n * Brand a string as a {@link PublicKey}.\n *\n * Enforces canonical base58 encoding of a 32-byte Solana public key.\n *\n * @throws PolicyValidationError `INVALID_DESTINATION_ADDRESS` if obviously malformed.\n */\nexport function publicKey(value: string): PublicKey {\n assertCanonicalSolanaAddress(value);\n return value as PublicKey;\n}\n\n/**\n * Brand a non-empty string as a {@link RequestId}.\n *\n * @throws PolicyValidationError `INVALID_AMOUNT` is not appropriate here; an empty\n * id is a programming error, so this throws a plain `Error`.\n */\nexport function requestId(value: string): RequestId {\n if (value.length === 0) {\n throw new Error(\"requestId must be a non-empty string\");\n }\n return value as RequestId;\n}\n\n/**\n * Brand a string as lowercase {@link Hex}.\n *\n * @throws Error if the string contains non-hex characters.\n */\nexport function hex(value: string): Hex {\n if (!/^[0-9a-f]*$/.test(value)) {\n throw new Error(`not lowercase hex: ${value}`);\n }\n return value as Hex;\n}\n","/**\n * Session guards used by mutating commands.\n */\n\nimport { AttestationError } from \"../core/errors.js\";\nimport type { Session } from \"../core/session.js\";\n\n/**\n * Assert the session has passed attestation. Every mutating actor command calls\n * this before touching the wire, so an unattested session can never sign or\n * send sensitive material.\n *\n * @throws AttestationError `NOT_ATTESTED` when the session is not attested.\n */\nexport function assertAttested(session: Session): void {\n if (!session.attested) {\n throw new AttestationError(\n \"NOT_ATTESTED\",\n \"session is not attested; sensitive commands are blocked until attestation completes\",\n );\n }\n}\n"]}
@@ -1,9 +1,11 @@
1
- // ../../../../../Users/rami/Dev/Invisible/packages/shared/src/index.ts
1
+ // ../shared/src/index.ts
2
2
  var LP_POSITION_ID_MIN_LENGTH = 3;
3
3
  var LP_POSITION_ID_MAX_LENGTH = 96;
4
4
  var LP_POSITION_ID_PATTERN = /^[A-Za-z0-9_-]+$/;
5
- var LP_DEFAULT_TARGET_SHARDS = 200;
6
- var LP_MAX_TARGET_SHARDS = 300;
5
+ var LP_DEFAULT_TARGET_SHARDS = 500;
6
+ var LP_MAX_INITIAL_SHARDS = 500;
7
+ var LP_MAX_TOTAL_SHARDS = 4294967295;
8
+ var LP_SHARD_PAGE_SIZE = 50;
7
9
  var LP_DEFAULT_REFILL_BATCH_SIZE = 50;
8
10
  var LP_MAX_REFILL_BATCH_SIZE = 50;
9
11
  var PRODUCT_MIN_ENTRY_LAMPORTS = 15e8;
@@ -12,6 +14,6 @@ function isValidLpPositionId(lpPositionId) {
12
14
  return lpPositionId.length >= LP_POSITION_ID_MIN_LENGTH && lpPositionId.length <= LP_POSITION_ID_MAX_LENGTH && LP_POSITION_ID_PATTERN.test(lpPositionId);
13
15
  }
14
16
 
15
- export { LP_DEFAULT_REFILL_BATCH_SIZE, LP_DEFAULT_TARGET_SHARDS, LP_MAX_REFILL_BATCH_SIZE, LP_MAX_TARGET_SHARDS, PRODUCT_MAX_ENTRY_LAMPORTS, PRODUCT_MIN_ENTRY_LAMPORTS, isValidLpPositionId };
16
- //# sourceMappingURL=chunk-IG6JJFR2.js.map
17
- //# sourceMappingURL=chunk-IG6JJFR2.js.map
17
+ export { LP_DEFAULT_REFILL_BATCH_SIZE, LP_DEFAULT_TARGET_SHARDS, LP_MAX_INITIAL_SHARDS, LP_MAX_REFILL_BATCH_SIZE, LP_MAX_TOTAL_SHARDS, LP_SHARD_PAGE_SIZE, PRODUCT_MAX_ENTRY_LAMPORTS, PRODUCT_MIN_ENTRY_LAMPORTS, isValidLpPositionId };
18
+ //# sourceMappingURL=chunk-HWRMSK7E.js.map
19
+ //# sourceMappingURL=chunk-HWRMSK7E.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../shared/src/index.ts"],"names":[],"mappings":";AAgBO,IAAM,yBAAA,GAA4B,CAAA;AAClC,IAAM,yBAAA,GAA4B,EAAA;AAClC,IAAM,sBAAA,GAAyB,kBAAA;AAC/B,IAAM,wBAAA,GAA2B;AACjC,IAAM,qBAAA,GAAwB;AAC9B,IAAM,mBAAA,GAAsB;AAC5B,IAAM,kBAAA,GAAqB;AAC3B,IAAM,4BAAA,GAA+B;AACrC,IAAM,wBAAA,GAA2B;AAKjC,IAAM,0BAAA,GAA6B;AACnC,IAAM,0BAAA,GAA6B;AAGnC,SAAS,oBAAoB,YAAA,EAA+B;AACjE,EAAA,OACE,YAAA,CAAa,UAAU,yBAAA,IACvB,YAAA,CAAa,UAAU,yBAAA,IACvB,sBAAA,CAAuB,KAAK,YAAY,CAAA;AAE5C","file":"chunk-HWRMSK7E.js","sourcesContent":["/**\n * Shared workspace entrypoint.\n *\n * Keep exports here pure and reusable across workspaces. Do not put React,\n * DOM-only, libp2p runtime state, or feature-specific glue in this package.\n */\nexport function sleep(ms: number): Promise<void> {\n if (ms <= 0) {\n return Promise.resolve();\n }\n\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n}\n\nexport const LP_POSITION_ID_MIN_LENGTH = 3;\nexport const LP_POSITION_ID_MAX_LENGTH = 96;\nexport const LP_POSITION_ID_PATTERN = /^[A-Za-z0-9_-]+$/;\nexport const LP_DEFAULT_TARGET_SHARDS = 500;\nexport const LP_MAX_INITIAL_SHARDS = 500;\nexport const LP_MAX_TOTAL_SHARDS = 0xffff_ffff;\nexport const LP_SHARD_PAGE_SIZE = 50;\nexport const LP_DEFAULT_REFILL_BATCH_SIZE = 50;\nexport const LP_MAX_REFILL_BATCH_SIZE = 50;\n\n// Temporary TypeScript mirrors of the Rust TEE entry limits, plus the distinct\n// mainnet UI default. Keep them guarded by `npm run product-limits:check` until\n// cross-language generated product constants exist.\nexport const PRODUCT_MIN_ENTRY_LAMPORTS = 1_500_000_000;\nexport const PRODUCT_MAX_ENTRY_LAMPORTS = 100_000_000_000;\nexport const PRODUCT_DEFAULT_MAINNET_ENTRY_LAMPORTS = 1_500_000_000;\n\nexport function isValidLpPositionId(lpPositionId: string): boolean {\n return (\n lpPositionId.length >= LP_POSITION_ID_MIN_LENGTH &&\n lpPositionId.length <= LP_POSITION_ID_MAX_LENGTH &&\n LP_POSITION_ID_PATTERN.test(lpPositionId)\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { __export, __toBinary } from './chunk-VR6T6OJS.js';
2
2
 
3
- // ../../../../../Users/rami/Dev/Invisible/frost/pkg/frost.js
3
+ // ../../frost/pkg/frost.js
4
4
  var frost_exports = {};
5
5
  __export(frost_exports, {
6
6
  DkgKeyPackageHandle: () => DkgKeyPackageHandle,
@@ -595,5 +595,5 @@ async function loadFrost() {
595
595
  }
596
596
 
597
597
  export { ensureFrostWasm, loadFrost };
598
- //# sourceMappingURL=chunk-K67FTCQU.js.map
599
- //# sourceMappingURL=chunk-K67FTCQU.js.map
598
+ //# sourceMappingURL=chunk-JNNVPZEU.js.map
599
+ //# sourceMappingURL=chunk-JNNVPZEU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../frost/pkg/frost.js","../src/frost/frostWasm.bundled.ts","../src/frost/frostRuntime.ts"],"names":["module"],"mappings":"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","file":"chunk-JNNVPZEU.js","sourcesContent":["/* @ts-self-types=\"./frost.d.ts\" */\n\nexport class DkgKeyPackageHandle {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DkgKeyPackageHandle.prototype);\n obj.__wbg_ptr = ptr;\n DkgKeyPackageHandleFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DkgKeyPackageHandleFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_dkgkeypackagehandle_free(ptr, 0);\n }\n abort() {\n wasm.dkgkeypackagehandle_abort(this.__wbg_ptr);\n }\n /**\n * @returns {Uint8Array}\n */\n groupPublicKeyBytes() {\n const ret = wasm.dkgkeypackagehandle_groupPublicKeyBytes(this.__wbg_ptr);\n if (ret[3]) {\n throw takeFromExternrefTable0(ret[2]);\n }\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * Alice's signing share as raw bytes — sent to the coordinator in DelegateShare.\n * Treat as secret: never log, never store in plaintext outside the encrypted channel.\n * @returns {Uint8Array}\n */\n secretShareBytes() {\n const ret = wasm.dkgkeypackagehandle_secretShareBytes(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\nif (Symbol.dispose) DkgKeyPackageHandle.prototype[Symbol.dispose] = DkgKeyPackageHandle.prototype.free;\n\nexport class DkgRound1State {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DkgRound1State.prototype);\n obj.__wbg_ptr = ptr;\n DkgRound1StateFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DkgRound1StateFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_dkground1state_free(ptr, 0);\n }\n abort() {\n wasm.dkground1state_abort(this.__wbg_ptr);\n }\n /**\n * @param {number} peer_id\n * @param {Uint8Array} peer_round1_package_bytes\n * @returns {DkgRound2State}\n */\n intoRound2(peer_id, peer_round1_package_bytes) {\n const ptr = this.__destroy_into_raw();\n const ptr0 = passArray8ToWasm0(peer_round1_package_bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.dkground1state_intoRound2(ptr, peer_id, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return DkgRound2State.__wrap(ret[0]);\n }\n /**\n * @returns {Uint8Array}\n */\n round1PackageBytes() {\n const ret = wasm.dkground1state_round1PackageBytes(this.__wbg_ptr);\n if (ret[3]) {\n throw takeFromExternrefTable0(ret[2]);\n }\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\nif (Symbol.dispose) DkgRound1State.prototype[Symbol.dispose] = DkgRound1State.prototype.free;\n\nexport class DkgRound2State {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DkgRound2State.prototype);\n obj.__wbg_ptr = ptr;\n DkgRound2StateFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DkgRound2StateFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_dkground2state_free(ptr, 0);\n }\n abort() {\n wasm.dkground2state_abort(this.__wbg_ptr);\n }\n /**\n * @param {number} peer_id\n * @param {Uint8Array} peer_round1_package_bytes\n * @param {Uint8Array} peer_round2_package_bytes\n * @returns {DkgKeyPackageHandle}\n */\n intoRound3(peer_id, peer_round1_package_bytes, peer_round2_package_bytes) {\n const ptr = this.__destroy_into_raw();\n const ptr0 = passArray8ToWasm0(peer_round1_package_bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(peer_round2_package_bytes, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.dkground2state_intoRound3(ptr, peer_id, ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return DkgKeyPackageHandle.__wrap(ret[0]);\n }\n /**\n * @param {number} peer_id\n * @returns {Uint8Array}\n */\n round2PackageBytesFor(peer_id) {\n const ret = wasm.dkground2state_round2PackageBytesFor(this.__wbg_ptr, peer_id);\n if (ret[3]) {\n throw takeFromExternrefTable0(ret[2]);\n }\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\nif (Symbol.dispose) DkgRound2State.prototype[Symbol.dispose] = DkgRound2State.prototype.free;\n\nexport class SignRound1State {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(SignRound1State.prototype);\n obj.__wbg_ptr = ptr;\n SignRound1StateFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SignRound1StateFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_signround1state_free(ptr, 0);\n }\n abort() {\n wasm.signround1state_abort(this.__wbg_ptr);\n }\n /**\n * @returns {Uint8Array}\n */\n commitmentBytes() {\n const ret = wasm.signround1state_commitmentBytes(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} message\n * @param {number} peer_id\n * @param {Uint8Array} peer_commitment_bytes\n * @returns {SignRound2State}\n */\n intoRound2(message, peer_id, peer_commitment_bytes) {\n const ptr = this.__destroy_into_raw();\n const ptr0 = passArray8ToWasm0(message, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(peer_commitment_bytes, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.signround1state_intoRound2(ptr, ptr0, len0, peer_id, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return SignRound2State.__wrap(ret[0]);\n }\n}\nif (Symbol.dispose) SignRound1State.prototype[Symbol.dispose] = SignRound1State.prototype.free;\n\nexport class SignRound2State {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(SignRound2State.prototype);\n obj.__wbg_ptr = ptr;\n SignRound2StateFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SignRound2StateFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_signround2state_free(ptr, 0);\n }\n abort() {\n const ptr = this.__destroy_into_raw();\n wasm.signround2state_abort(ptr);\n }\n /**\n * @param {number} peer_id\n * @param {Uint8Array} peer_share_bytes\n * @returns {Uint8Array}\n */\n aggregate(peer_id, peer_share_bytes) {\n const ptr = this.__destroy_into_raw();\n const ptr0 = passArray8ToWasm0(peer_share_bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.signround2state_aggregate(ptr, peer_id, ptr0, len0);\n if (ret[3]) {\n throw takeFromExternrefTable0(ret[2]);\n }\n var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v2;\n }\n /**\n * @returns {Uint8Array}\n */\n signatureShareBytes() {\n const ret = wasm.signround2state_signatureShareBytes(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\nif (Symbol.dispose) SignRound2State.prototype[Symbol.dispose] = SignRound2State.prototype.free;\n\n/**\n * @param {number} participant_id\n * @returns {DkgRound1State}\n */\nexport function dkgRound1(participant_id) {\n const ret = wasm.dkgRound1(participant_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return DkgRound1State.__wrap(ret[0]);\n}\n\n/**\n * @returns {string}\n */\nexport function frostDkgDemoRun() {\n let deferred2_0;\n let deferred2_1;\n try {\n const ret = wasm.frostDkgDemoRun();\n var ptr1 = ret[0];\n var len1 = ret[1];\n if (ret[3]) {\n ptr1 = 0; len1 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred2_0 = ptr1;\n deferred2_1 = len1;\n return getStringFromWasm0(ptr1, len1);\n } finally {\n wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * @param {DkgKeyPackageHandle} handle\n * @returns {SignRound1State}\n */\nexport function signRound1(handle) {\n _assertClass(handle, DkgKeyPackageHandle);\n const ret = wasm.signRound1(handle.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return SignRound1State.__wrap(ret[0]);\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg___wbindgen_is_function_d633e708baf0d146: function(arg0) {\n const ret = typeof(arg0) === 'function';\n return ret;\n },\n __wbg___wbindgen_is_object_4b3de556756ee8a8: function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_string_7debe47dc1e045c2: function(arg0) {\n const ret = typeof(arg0) === 'string';\n return ret;\n },\n __wbg___wbindgen_is_undefined_c18285b9fc34cb7d: function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n },\n __wbg___wbindgen_throw_39bc967c0e5a9b58: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_call_08ad0d89caa7cb79: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.call(arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_crypto_38df2bab126b63dc: function(arg0) {\n const ret = arg0.crypto;\n return ret;\n },\n __wbg_getRandomValues_c44a50d8cfdaebeb: function() { return handleError(function (arg0, arg1) {\n arg0.getRandomValues(arg1);\n }, arguments); },\n __wbg_length_5855c1f289dfffc1: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_msCrypto_bd5a034af96bcba6: function(arg0) {\n const ret = arg0.msCrypto;\n return ret;\n },\n __wbg_new_with_length_c8449d782396d344: function(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return ret;\n },\n __wbg_node_84ea875411254db1: function(arg0) {\n const ret = arg0.node;\n return ret;\n },\n __wbg_process_44c7a14e11e9f69e: function(arg0) {\n const ret = arg0.process;\n return ret;\n },\n __wbg_prototypesetcall_f034d444741426c3: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_randomFillSync_6c25eac9869eb53c: function() { return handleError(function (arg0, arg1) {\n arg0.randomFillSync(arg1);\n }, arguments); },\n __wbg_require_b4edbdcf3e2a1ef0: function() { return handleError(function () {\n const ret = module.require;\n return ret;\n }, arguments); },\n __wbg_static_accessor_GLOBAL_THIS_14325d8cca34bb77: function() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n },\n __wbg_static_accessor_GLOBAL_f3a1e69f9c5a7e8e: function() {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n },\n __wbg_static_accessor_SELF_50cdb5b517789aca: function() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n },\n __wbg_static_accessor_WINDOW_d6c4126e4c244380: function() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n },\n __wbg_subarray_7ad5f01d4a9c1c4d: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_versions_276b2795b1c6a219: function(arg0) {\n const ret = arg0.versions;\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref(\"Uint8Array\")`.\n const ret = getArrayU8FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./frost_bg.js\": import0,\n };\n}\n\nconst DkgKeyPackageHandleFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_dkgkeypackagehandle_free(ptr >>> 0, 1));\nconst DkgRound1StateFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_dkground1state_free(ptr >>> 0, 1));\nconst DkgRound2StateFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_dkground2state_free(ptr >>> 0, 1));\nconst SignRound1StateFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_signround1state_free(ptr >>> 0, 1));\nconst SignRound2StateFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_signround2state_free(ptr >>> 0, 1));\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1, 1) >>> 0;\n getUint8ArrayMemory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (module_or_path === undefined) {\n module_or_path = new URL('frost_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","/**\n * Published-bundle FROST wasm loader.\n *\n * The wasm binary is inlined at build time (esbuild \"binary\" loader -> a\n * `Uint8Array`), so the published package is fully self-contained: no asset\n * path, no `import.meta.url` resolution, and no `frost/pkg` `file:` dependency\n * for a consumer's bundler to handle. tsup swaps `frostWasm.dev.ts` for this\n * module when producing `dist` (see tsup.config.ts); it is never bundled by the\n * web app or vitest.\n */\nimport type { FrostInit } from \"./frostRuntime.js\";\n// Bundler-inlined: resolved by the esbuild \"binary\" loader to the raw wasm\n// bytes. The relative path is resolved at build time, never at runtime.\nimport frostWasmBytes from \"../../../../frost/pkg/frost_bg.wasm\";\n\nexport async function instantiateFrost(init: FrostInit): Promise<void> {\n await init({ module_or_path: frostWasmBytes as unknown as Uint8Array });\n}\n","/**\n * Centralized FROST wasm runtime.\n *\n * Both the coordinator session (main thread) and the LP DKG worker initialize\n * FROST through this one module, so the wasm is instantiated exactly once per\n * realm. The actual wasm-loading strategy is delegated to a swappable loader:\n *\n * - From source (web app, vitest, Node) the dev loader resolves the asset next\n * to `frost/pkg` (Vite-friendly URL / Node `file:` read).\n * - In the published bundle, tsup swaps in the bundled loader, which inlines the\n * wasm bytes so the tarball is self-contained (see tsup.config.ts).\n *\n * @INFO Keep this module behind a dynamic `import()` at every call site so the\n * (large) wasm payload lands in its own lazy chunk.\n */\nimport init, * as frost from \"frost\";\nimport { instantiateFrost } from \"./frostWasm.dev.js\";\n\nexport type FrostModule = typeof frost;\n/** The default `init` exported by the FROST wasm-bindgen module. */\nexport type FrostInit = typeof init;\n\nlet initPromise: Promise<void> | null = null;\n\n/**\n * Instantiate the FROST wasm module exactly once. Safe to call repeatedly; a\n * failed instantiation is not memoized so the next caller retries.\n */\nexport async function ensureFrostWasm(): Promise<void> {\n initPromise ??= instantiateFrost(init);\n try {\n await initPromise;\n } catch (err) {\n initPromise = null;\n throw err;\n }\n}\n\n/** The FROST module namespace, guaranteed initialized. */\nexport async function loadFrost(): Promise<FrostModule> {\n await ensureFrostWasm();\n return frost;\n}\n"]}
@@ -1,4 +1,6 @@
1
1
  // src/core/errors.ts
2
+ var COORDINATOR_CAPACITY_FULL_ERROR_CODE = "ERR_ADMISSION_CAPACITY_FULL";
3
+ var COORDINATOR_CAPACITY_FULL_USER_MESSAGE = "The transfer service is temporarily at capacity. This transfer was not started. Please try again later.";
2
4
  var InvisibleError = class extends Error {
3
5
  constructor(message, options) {
4
6
  super(message);
@@ -32,6 +34,8 @@ var CommandError = class extends InvisibleError {
32
34
  super(message, options);
33
35
  this.code = code;
34
36
  if (options?.coordinatorCode !== void 0) this.coordinatorCode = options.coordinatorCode;
37
+ if (options?.coordinatorMessage !== void 0)
38
+ this.coordinatorMessage = options.coordinatorMessage;
35
39
  if (options?.failedReqId !== void 0) this.failedReqId = options.failedReqId;
36
40
  }
37
41
  };
@@ -91,6 +95,9 @@ function normalizeError(error, fallback = DEFAULT_ERROR_MESSAGE) {
91
95
  return DEFAULT_ERROR_MESSAGE;
92
96
  }
93
97
  function extractMessage(error) {
98
+ if (error instanceof CommandError && error.coordinatorCode === COORDINATOR_CAPACITY_FULL_ERROR_CODE) {
99
+ return error.message;
100
+ }
94
101
  if (error instanceof CommandError && error.coordinatorCode !== void 0) {
95
102
  return formatCode(error.coordinatorCode, error.message);
96
103
  }
@@ -124,6 +131,6 @@ function isReadable(value) {
124
131
  return !/^\[object (?:Object|Event|ErrorEvent|PromiseRejectionEvent)\]$/.test(trimmed);
125
132
  }
126
133
 
127
- export { AttestationError, CommandError, InvalidDepositAmountError, InvisibleError, LpLifecycleError, NotImplementedError, PolicyValidationError, RoutingError, StorageError, TransportError, WalletError, isInvisibleError, normalizeError };
128
- //# sourceMappingURL=chunk-QRN46R3F.js.map
129
- //# sourceMappingURL=chunk-QRN46R3F.js.map
134
+ export { AttestationError, COORDINATOR_CAPACITY_FULL_ERROR_CODE, COORDINATOR_CAPACITY_FULL_USER_MESSAGE, CommandError, InvalidDepositAmountError, InvisibleError, LpLifecycleError, NotImplementedError, PolicyValidationError, RoutingError, StorageError, TransportError, WalletError, isInvisibleError, normalizeError };
135
+ //# sourceMappingURL=chunk-RWKG7N7I.js.map
136
+ //# sourceMappingURL=chunk-RWKG7N7I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/errors.ts"],"names":[],"mappings":"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","file":"chunk-RWKG7N7I.js","sourcesContent":["/**\n * The closed error taxonomy from docs/sdk-specification.md section 8.3.\n *\n * Every error the SDK throws extends {@link InvisibleError} and carries a\n * `code` drawn from a closed, per-class string-literal union. Consumers can\n * branch on `error instanceof CommandError` and then exhaustively `switch` on\n * `error.code` with compile-time completeness.\n *\n * Error classes are the one deliberate exception to the SDK's \"no classes\"\n * rule: JavaScript errors must extend `Error` to carry a stack and support\n * `instanceof`. This mirrors @solana/kit, whose only class is `SolanaError`.\n * The conformance lint allowlists this file for that reason.\n */\n\n// ---------------------------------------------------------------------------\n// Code unions (closed sets, section 8.3)\n// ---------------------------------------------------------------------------\n\n/** Attestation verification failures. Stop; do not retry without a new pin. */\nexport type AttestationErrorCode =\n | \"CERT_CHAIN_INVALID\"\n | \"TCB_REJECTED\"\n | \"FRESHNESS_NONCE_MISMATCH\"\n | \"NOISE_BINDING_MISMATCH\"\n | \"DEBUG_BIT_SET\"\n | \"MRTD_MISMATCH\"\n | \"RUNTIME_MEASUREMENTS_MISMATCH\"\n | \"RUNTIME_PROFILE_MISMATCH\"\n | \"AZURE_MAA_ISSUER_MISMATCH\"\n | \"AZURE_MAA_JWKS_INVALID\"\n | \"AZURE_MAA_POLICY_HASH_MISMATCH\"\n | \"AZURE_MAA_NOT_COMPLIANT\"\n | \"AZURE_MAA_DCAP_MISMATCH\"\n | \"AZURE_HCL_KEYS_MISMATCH\"\n | \"AZURE_AK_PUB_INVALID\"\n | \"AZURE_TPM_AK_QUOTE_INVALID\"\n | \"AZURE_TPM_QUALIFYING_DATA_MISMATCH\"\n | \"NOT_ATTESTED\";\n\n/** Transport-level failures. Reconnect through the pool and re-attest. */\nexport type TransportErrorCode =\n | \"WS_HANDSHAKE_FAILED\"\n | \"NOISE_HANDSHAKE_FAILED\"\n | \"NOISE_FRAME_TOO_LARGE\"\n | \"CONNECTION_LOST\";\n\n/** Leader/role routing failures. Failover and re-attest. */\nexport type RoutingErrorCode =\n | \"WRONG_ROLE\"\n | \"STALE_LEADER_EPOCH\"\n | \"POOL_DEGRADED\"\n | \"VERSION_NOT_SUPPORTED\";\n\n/** Coordinator-side command rejections. Product decides whether to retry. */\nexport type CommandErrorCode =\n | \"REJECTED_GUARD\"\n | \"REJECTED_STATE\"\n | \"REJECTED_EXPIRED\"\n | \"REJECTED_STALE_JOB\"\n | \"REJECTED_RESOURCE_CAP\"\n | \"RETRYABLE_BUSY\";\n\nexport const COORDINATOR_CAPACITY_FULL_ERROR_CODE = \"ERR_ADMISSION_CAPACITY_FULL\" as const;\nexport const COORDINATOR_CAPACITY_FULL_USER_MESSAGE =\n \"The transfer service is temporarily at capacity. This transfer was not started. Please try again later.\";\n\n/** Coordinator wire error code preserved on command rejections. */\nexport type CoordinatorWireErrorCode =\n | \"ERR_INVALID_PAYLOAD\"\n | \"ERR_UNEXPECTED_TYPE\"\n | \"ERR_UNKNOWN_SWAP\"\n | \"ERR_POLICY_VIOLATION\"\n | \"ERR_INVALID_RECOVERY_CODE\"\n | \"ERR_SWAP_NOT_REFUNDABLE\"\n | \"ERR_DKG_FAILURE\"\n | \"ERR_INTERNAL\"\n | \"ERR_PRESEAL_ADMISSION_BUSY\"\n | \"ERR_INITIALIZATION_BUSY\"\n | typeof COORDINATOR_CAPACITY_FULL_ERROR_CODE\n | \"ERR_INVALID_DEPOSIT\"\n | \"ERR_SETTLEMENT_FAILED\";\n\n/** Local input-validation failures. Never sent on the wire; fix the input. */\nexport type PolicyValidationErrorCode =\n | \"INVALID_PAYOUT_PLAN\"\n | \"INVALID_WITHDRAWAL_PLAN\"\n | \"INVALID_POSITION_AUTH\"\n | \"INVALID_REDEMPTION_PLAN\"\n | \"INVALID_DESTINATION_ADDRESS\"\n | \"INVALID_AMOUNT\";\n\n/** Storage-adapter failures. */\nexport type StorageErrorCode =\n | \"STORAGE_NOT_AVAILABLE\"\n | \"STORAGE_INVALID_ADAPTER\"\n | \"STORAGE_QUOTA_EXCEEDED\"\n | \"STORAGE_KEY_MISSING\"\n | \"STORAGE_DECRYPT_FAILED\";\n\n/** Wallet-adapter failures. Bubble to the integrator UX. */\nexport type WalletErrorCode =\n | \"WALLET_NOT_CONNECTED\"\n | \"WALLET_USER_REJECTED\"\n | \"WALLET_INVALID_SIGNATURE\";\n\n/** LP lifecycle local state that callers can branch on. */\nexport type LpLifecycleErrorCode = \"LP_POSITION_AUTH_MISSING\" | \"LP_REDEMPTION_RECONCILING\";\n\n/** Skeleton-only: a surface that exists but has no implementation yet. */\nexport type NotImplementedErrorCode = \"NOT_IMPLEMENTED\";\n\n/** Every code the SDK can surface, across all classes. */\nexport type InvisibleErrorCode =\n | AttestationErrorCode\n | TransportErrorCode\n | RoutingErrorCode\n | CommandErrorCode\n | PolicyValidationErrorCode\n | StorageErrorCode\n | WalletErrorCode\n | LpLifecycleErrorCode\n | NotImplementedErrorCode;\n\n// ---------------------------------------------------------------------------\n// Error classes\n// ---------------------------------------------------------------------------\n\n/** Options accepted by every {@link InvisibleError}. */\nexport interface InvisibleErrorOptions {\n /** The underlying error, preserved for debugging. */\n readonly cause?: unknown;\n}\n\n/** Context attached to a client-persistence storage failure. */\nexport type StorageErrorPhase =\n | \"session-init\"\n | \"write\"\n | \"allocation\"\n | \"recovery-code\"\n | \"ready\"\n | \"sync\"\n | \"refund\"\n | \"read\"\n | \"remove\"\n | \"purge\";\n\n/** Options accepted by {@link StorageError}. */\nexport interface StorageErrorOptions extends InvisibleErrorOptions {\n /** The affected normal-user swap, when known. */\n readonly swapId?: string;\n /** The client-persistence lifecycle phase that failed. */\n readonly phase?: StorageErrorPhase;\n /** True when the coordinator accepted the command before local failure. */\n readonly remoteAccepted?: boolean;\n}\n\n/** Options accepted by {@link CommandError}. */\nexport interface CommandErrorOptions extends InvisibleErrorOptions {\n /** Exact coordinator `Error` envelope code, when the rejection came from the wire. */\n readonly coordinatorCode?: CoordinatorWireErrorCode;\n /** Exact coordinator `Error` envelope message, when `message` is user-facing copy. */\n readonly coordinatorMessage?: string;\n /** Request id rejected by the coordinator, when present in the `Error` envelope. */\n readonly failedReqId?: number;\n}\n\n/**\n * Base class for every error the SDK throws. Carries a closed `code` and sets\n * `name` to the concrete subclass name so logs and `instanceof` agree.\n */\nexport abstract class InvisibleError extends Error {\n /** The closed error code for this error's class. */\n abstract readonly code: InvisibleErrorCode;\n\n constructor(message: string, options?: InvisibleErrorOptions) {\n super(message);\n // Set `cause` directly rather than through the Error constructor option so\n // the package stays on the ES2020 lib (the option is ES2022).\n if (options?.cause !== undefined) {\n (this as { cause?: unknown }).cause = options.cause;\n }\n this.name = new.target.name;\n // Restore the prototype chain across the transpiled `Error` boundary so\n // `instanceof` works for subclasses.\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\n/** Attestation verification failure. */\nexport class AttestationError extends InvisibleError {\n readonly code: AttestationErrorCode;\n constructor(code: AttestationErrorCode, message: string, options?: InvisibleErrorOptions) {\n super(message, options);\n this.code = code;\n }\n}\n\n/** Transport-level failure. */\nexport class TransportError extends InvisibleError {\n readonly code: TransportErrorCode;\n constructor(code: TransportErrorCode, message: string, options?: InvisibleErrorOptions) {\n super(message, options);\n this.code = code;\n }\n}\n\n/** Leader/role routing failure. */\nexport class RoutingError extends InvisibleError {\n readonly code: RoutingErrorCode;\n constructor(code: RoutingErrorCode, message: string, options?: InvisibleErrorOptions) {\n super(message, options);\n this.code = code;\n }\n}\n\n/** Coordinator-side command rejection. */\nexport class CommandError extends InvisibleError {\n readonly code: CommandErrorCode;\n readonly coordinatorCode?: CoordinatorWireErrorCode;\n readonly coordinatorMessage?: string;\n readonly failedReqId?: number;\n\n constructor(code: CommandErrorCode, message: string, options?: CommandErrorOptions) {\n super(message, options);\n this.code = code;\n if (options?.coordinatorCode !== undefined) this.coordinatorCode = options.coordinatorCode;\n if (options?.coordinatorMessage !== undefined)\n this.coordinatorMessage = options.coordinatorMessage;\n if (options?.failedReqId !== undefined) this.failedReqId = options.failedReqId;\n }\n}\n\n/** User deposit did not match the coordinator policy amount. */\nexport class InvalidDepositAmountError extends CommandError {\n readonly receivedLamports: bigint;\n readonly expectedLamports: bigint;\n\n constructor(receivedLamports: bigint, expectedLamports: bigint) {\n super(\n \"REJECTED_GUARD\",\n `on-chain deposit balance ${receivedLamports.toString()} does not match expected ${expectedLamports.toString()} lamports`,\n );\n this.name = \"InvalidDepositAmountError\";\n this.receivedLamports = receivedLamports;\n this.expectedLamports = expectedLamports;\n }\n}\n\n/** Local input-validation failure; never reaches the wire. */\nexport class PolicyValidationError extends InvisibleError {\n readonly code: PolicyValidationErrorCode;\n constructor(code: PolicyValidationErrorCode, message: string, options?: InvisibleErrorOptions) {\n super(message, options);\n this.code = code;\n }\n}\n\n/** Storage-adapter failure. */\nexport class StorageError extends InvisibleError {\n readonly code: StorageErrorCode;\n readonly swapId?: string;\n readonly phase?: StorageErrorPhase;\n readonly remoteAccepted?: boolean;\n\n constructor(code: StorageErrorCode, message: string, options?: StorageErrorOptions) {\n super(message, options);\n this.code = code;\n if (options?.swapId !== undefined) this.swapId = options.swapId;\n if (options?.phase !== undefined) this.phase = options.phase;\n if (options?.remoteAccepted !== undefined) this.remoteAccepted = options.remoteAccepted;\n }\n}\n\n/** Wallet-adapter failure. */\nexport class WalletError extends InvisibleError {\n readonly code: WalletErrorCode;\n constructor(code: WalletErrorCode, message: string, options?: InvisibleErrorOptions) {\n super(message, options);\n this.code = code;\n }\n}\n\n/** LP lifecycle state that is local to the SDK client. */\nexport class LpLifecycleError extends InvisibleError {\n readonly code: LpLifecycleErrorCode;\n constructor(code: LpLifecycleErrorCode, message: string, options?: InvisibleErrorOptions) {\n super(message, options);\n this.code = code;\n }\n}\n\n/**\n * A surface that exists in the typed contract but has no runtime behavior yet.\n * The skeleton throws this from every command that is not the connection layer.\n * The message carries the fully-qualified command name (e.g. `user.contractRequest`).\n */\nexport class NotImplementedError extends InvisibleError {\n readonly code = \"NOT_IMPLEMENTED\" as const;\n /** The command that is not yet implemented, e.g. `lp.redeem`. */\n readonly command: string;\n constructor(command: string, options?: InvisibleErrorOptions) {\n super(`${command} is not implemented in this SDK build`, options);\n this.command = command;\n }\n}\n\n/** Type guard: is `value` any SDK error. */\nexport function isInvisibleError(value: unknown): value is InvisibleError {\n return value instanceof InvisibleError;\n}\n\n// ---------------------------------------------------------------------------\n// Normalization (analog of web/src/lib/user-facing-error.ts)\n// ---------------------------------------------------------------------------\n\nconst DEFAULT_ERROR_MESSAGE = \"Something went wrong. Please try again.\";\n\ninterface MessageLike {\n readonly message?: unknown;\n readonly reason?: unknown;\n readonly error?: unknown;\n readonly code?: unknown;\n}\n\n/**\n * Reduce any thrown value to a readable, single-line message. Guarantees the\n * SDK never surfaces `[object Object]` / `[object ErrorEvent]` (spec section\n * 8.3). For an {@link InvisibleError} the code is prefixed as `[CODE] message`.\n */\nexport function normalizeError(error: unknown, fallback: string = DEFAULT_ERROR_MESSAGE): string {\n const direct = extractMessage(error);\n if (isReadable(direct)) return direct;\n if (isReadable(fallback)) return fallback.trim();\n return DEFAULT_ERROR_MESSAGE;\n}\n\nfunction extractMessage(error: unknown): string | null {\n if (\n error instanceof CommandError &&\n error.coordinatorCode === COORDINATOR_CAPACITY_FULL_ERROR_CODE\n ) {\n return error.message;\n }\n if (error instanceof CommandError && error.coordinatorCode !== undefined) {\n return formatCode(error.coordinatorCode, error.message);\n }\n if (error instanceof InvisibleError) return formatCode(error.code, error.message);\n if (error instanceof Error) return error.message;\n if (typeof error === \"string\") return error;\n if (error === null || error === undefined) return null;\n\n if (isMessageLike(error)) {\n if (typeof error.message === \"string\" && isReadable(error.message)) {\n return formatCode(error.code, error.message);\n }\n const nested = extractMessage(error.error);\n if (isReadable(nested)) return formatCode(error.code, nested);\n const reason = extractMessage(error.reason);\n if (isReadable(reason)) return formatCode(error.code, reason);\n }\n\n return null;\n}\n\nfunction isMessageLike(value: unknown): value is MessageLike {\n return typeof value === \"object\" && value !== null;\n}\n\nfunction formatCode(code: unknown, message: string): string {\n if (typeof code !== \"string\" || code.trim().length === 0) return message.trim();\n const trimmed = code.trim();\n return message.includes(`[${trimmed}]`) ? message.trim() : `[${trimmed}] ${message.trim()}`;\n}\n\nfunction isReadable(value: string | null): value is string {\n if (value === null) return false;\n const trimmed = value.trim();\n if (trimmed.length === 0) return false;\n return !/^\\[object (?:Object|Event|ErrorEvent|PromiseRejectionEvent)\\]$/.test(trimmed);\n}\n"]}
@@ -0,0 +1,4 @@
1
+ export { COORDINATOR_BINARY_FIELD_NAMES, COORDINATOR_ENVELOPE_SCHEMA, COORDINATOR_SCHEMA_PAYLOAD_CATEGORIES, CoordinatorError, CoordinatorMessageType, DEFAULT_PAYOUT_WINDOW_ID, DIRECTION_BY_TYPE, ENVELOPE_VERSION, EnvelopeKind, ErrorCode, INITIAL_STATE, LP_FEE_POLICY_HASHES, LP_FEE_POLICY_VERSION, LP_PARTNER_COMMISSION_BPS, MAX_ENCODED_JSON_BYTES_KEYWORD, MAX_FRAME_SIZE, MessageDirection, PAYOUT_WINDOW_OPTIONS, TERMINAL_STATES, TRANSITIONS, VALID_SWAP_STATES, asDelegateAckPayload, asDelegateSharePayload, asDelegateShareResponsePayload, asDepositConfirmedPayload, asDkgCompletePayload, asDkgInitPayload, asDkgInitResponsePayload, asDkgRound1Payload, asDkgRound1ResponsePayload, asDkgRound2Payload, asDkgRound2ResponsePayload, asErrorPayload, asLpCommandResponsePayload, asPayoutExecutedPayload, asSwapRequestPayload, asSwapRequestResponsePayload, asSyncRequiredPayload, asSyncUserRequestPayload, asSyncUserResponsePayload, asWithdrawAcceptedPayload, asWithdrawExecutedPayload, asWithdrawRequestPayload, createCoordinatorSchemaValidator, decode, encode, encodeLpCommandForSigning, encodeValidated, isAllowedInState, isAllowedKindForType, isPayoutWindowId, isValidEnvelopeKind, isValidErrorCode, isValidMessageType, isValidSwapState, lpSignedCommandEnvelope, nextState, payloadCategory, payoutWindowLabelForId, payoutWindowOptionById, safeEncode, scheduledPayoutWindowOptions, scheduledPayoutWindowSeconds, validateLpFeePolicySemantics } from './chunk-DFBH5XLM.js';
2
+ import './chunk-VR6T6OJS.js';
3
+ //# sourceMappingURL=coordinator-T2B7253V.js.map
4
+ //# sourceMappingURL=coordinator-T2B7253V.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"coordinator-E2TS6NR2.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"coordinator-T2B7253V.js"}
package/dist/dkgWorker.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ensureFrostWasm, loadFrost } from './chunk-K67FTCQU.js';
1
+ import { ensureFrostWasm, loadFrost } from './chunk-JNNVPZEU.js';
2
2
  import './chunk-VR6T6OJS.js';
3
3
 
4
4
  // src/lp/dkgWorker.ts
package/dist/events.js CHANGED
@@ -1,6 +1,6 @@
1
- import { onEnvelope, EnvelopeKind, CoordinatorMessageType } from './chunk-MZKJU3UA.js';
2
- import './chunk-HJFMDMPY.js';
3
- import { NotImplementedError } from './chunk-QRN46R3F.js';
1
+ import { onEnvelope, EnvelopeKind, CoordinatorMessageType } from './chunk-6AGC3IOB.js';
2
+ import './chunk-6AKBRYKO.js';
3
+ import { NotImplementedError } from './chunk-RWKG7N7I.js';
4
4
  import './chunk-VR6T6OJS.js';
5
5
 
6
6
  // src/events/index.ts
@@ -0,0 +1,4 @@
1
+ export { ensureFrostWasm, loadFrost } from './chunk-JNNVPZEU.js';
2
+ import './chunk-VR6T6OJS.js';
3
+ //# sourceMappingURL=frostRuntime-JESDHN6O.js.map
4
+ //# sourceMappingURL=frostRuntime-JESDHN6O.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"frostRuntime-6FTPKUCP.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"frostRuntime-JESDHN6O.js"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { S as Session } from './session-DFuy54C-.js';
2
2
  export { i as isAttested } from './session-DFuy54C-.js';
3
- export { A as AttestationError, a as AttestationErrorCode, C as CommandError, b as CommandErrorCode, c as CommandErrorOptions, d as CoordinatorWireErrorCode, I as InvalidDepositAmountError, e as InvisibleError, f as InvisibleErrorCode, g as InvisibleErrorOptions, L as LpLifecycleError, h as LpLifecycleErrorCode, i as LpPositionView, N as NotImplementedError, j as NotImplementedErrorCode, k as PayoutDestination, P as PayoutPolicy, l as PolicyValidationError, m as PolicyValidationErrorCode, R as RoutingError, n as RoutingErrorCode, o as RuntimeMeasurements, S as StorageEnvelope, p as StorageError, q as StorageErrorCode, r as StorageErrorOptions, s as StorageErrorPhase, T as TransportError, t as TransportErrorCode, W as WalletError, u as WalletErrorCode, v as isInvisibleError, w as normalizeError } from './types.generated-YhFu9ZBR.js';
3
+ export { A as AttestationError, a as AttestationErrorCode, C as CommandError, b as CommandErrorCode, c as CommandErrorOptions, d as CoordinatorWireErrorCode, I as InvalidDepositAmountError, e as InvisibleError, f as InvisibleErrorCode, g as InvisibleErrorOptions, L as LpLifecycleError, h as LpLifecycleErrorCode, i as LpPositionView, N as NotImplementedError, j as NotImplementedErrorCode, k as PayoutDestination, P as PayoutPolicy, l as PolicyValidationError, m as PolicyValidationErrorCode, R as RoutingError, n as RoutingErrorCode, o as RuntimeMeasurements, S as StorageEnvelope, p as StorageError, q as StorageErrorCode, r as StorageErrorOptions, s as StorageErrorPhase, T as TransportError, t as TransportErrorCode, W as WalletError, u as WalletErrorCode, v as isInvisibleError, w as normalizeError } from './types.generated-CtMxCo9F.js';
4
4
  import { T as Transport, N as NoiseWebSocketTransportOptions, U as Unsubscribe } from './types-ZhV7TIQY.js';
5
5
  export { C as ConnectionState, W as WebSocketFactory, a as WebSocketLike } from './types-ZhV7TIQY.js';
6
6
 
@@ -177,7 +177,7 @@ declare function createSession(options: PublicCreateSessionOptions): Promise<Ses
177
177
  */
178
178
  declare function assertAttested(session: Session): void;
179
179
 
180
- type CoordinatorRuntimeProfile = "prod-hardened" | "prod-devnet-simplified" | "prod-devnet-simplified-locked" | "azure-tdx-v0-agentless";
180
+ type CoordinatorRuntimeProfile = "prod-hardened" | "prod-devnet-simplified" | "prod-devnet-simplified-locked" | "prod-devnet-premium-locked" | "azure-tdx-v0-agentless";
181
181
 
182
182
  /**
183
183
  * Session-establishment seams layered on top of an open {@link Transport}.
@@ -204,7 +204,7 @@ interface AttestationResult {
204
204
  /** Coordinator binary hash reported by the verified attestation response. */
205
205
  readonly binaryHash: string;
206
206
  /** Compile-time runtime profile carried by the attested coordinator artifact. */
207
- readonly runtimeProfile?: "prod-hardened" | "prod-devnet-simplified" | "prod-devnet-simplified-locked" | "azure-tdx-v0-agentless";
207
+ readonly runtimeProfile?: "prod-hardened" | "prod-devnet-simplified" | "prod-devnet-simplified-locked" | "prod-devnet-premium-locked" | "azure-tdx-v0-agentless";
208
208
  /** Noise static public key bound into the attestation quote. */
209
209
  readonly pubkeyHex: string;
210
210
  /** True only for explicit loopback local development attestation. */
@@ -226,7 +226,7 @@ interface PublicProductionReleasePolicy {
226
226
  interface PublicAttestationPolicy {
227
227
  readonly expectedMrtd: string;
228
228
  readonly expectedBinaryHash?: string;
229
- readonly expectedRuntimeProfile?: "prod-hardened" | "prod-devnet-simplified" | "prod-devnet-simplified-locked" | "azure-tdx-v0-agentless";
229
+ readonly expectedRuntimeProfile?: "prod-hardened" | "prod-devnet-simplified" | "prod-devnet-simplified-locked" | "prod-devnet-premium-locked" | "azure-tdx-v0-agentless";
230
230
  readonly expectedRuntimeMeasurements?: {
231
231
  readonly rtmr0: string;
232
232
  readonly rtmr1: string;
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import { createStateController, createSessionInternal, isLoopbackUrl, reattestSerialized, INTEL_SGX_ROOT_CA_FINGERPRINT_SHA256 } from './chunk-Y7AK6RBV.js';
2
- export { closeSession, createExponentialBackoff, noiseWebSocketTransport } from './chunk-Y7AK6RBV.js';
3
- export { assertAttested, hex, lamports, publicKey, requestId } from './chunk-EBWTAXNT.js';
4
- import { getSessionState, failSessionClosed } from './chunk-HJFMDMPY.js';
5
- import './chunk-DCTYBUY3.js';
6
- import { TransportError, NotImplementedError } from './chunk-QRN46R3F.js';
7
- export { AttestationError, CommandError, InvalidDepositAmountError, InvisibleError, LpLifecycleError, NotImplementedError, PolicyValidationError, RoutingError, StorageError, TransportError, WalletError, isInvisibleError, normalizeError } from './chunk-QRN46R3F.js';
1
+ import { createStateController, createSessionInternal, isLoopbackUrl, reattestSerialized, INTEL_SGX_ROOT_CA_FINGERPRINT_SHA256 } from './chunk-ANQMIQYS.js';
2
+ export { closeSession, createExponentialBackoff, noiseWebSocketTransport } from './chunk-ANQMIQYS.js';
3
+ export { assertAttested, hex, lamports, publicKey, requestId } from './chunk-EPWTRF5U.js';
4
+ import { getSessionState, failSessionClosed } from './chunk-6AKBRYKO.js';
5
+ import './chunk-AIKC2XQS.js';
6
+ import { TransportError, NotImplementedError } from './chunk-RWKG7N7I.js';
7
+ export { AttestationError, CommandError, InvalidDepositAmountError, InvisibleError, LpLifecycleError, NotImplementedError, PolicyValidationError, RoutingError, StorageError, TransportError, WalletError, isInvisibleError, normalizeError } from './chunk-RWKG7N7I.js';
8
8
  import './chunk-VR6T6OJS.js';
9
9
 
10
10
  // src/core/version.ts
@@ -56,7 +56,7 @@ var AZURE_PROD_MAA_TRUST = {
56
56
  issuer: "https://sharedweu.weu.attest.azure.net",
57
57
  jwksUrl: "https://sharedweu.weu.attest.azure.net/certs",
58
58
  policyHash: "9NY0VnTQ-IiBriBplVUpFbczcDaEBUwsiFYAzHu_gco"};
59
- var configuredRuntimeProfile = "prod-hardened" ;
59
+ var configuredRuntimeProfile = "prod-devnet-premium-locked" ;
60
60
  var APPROVED_PRODUCTION_RUNTIME_PROFILE = configuredRuntimeProfile ;
61
61
 
62
62
  // src/presets/production.ts
@@ -105,7 +105,7 @@ function createAzureProductionEndpoint({
105
105
  }
106
106
 
107
107
  // src/presets/productionBinaryHash.ts
108
- var APPROVED_PRODUCTION_COORDINATOR_BINARY_HASH = "2eb6efac5b38562b0759043155556034ea105db40094f0e424762f05ae441da8".toLowerCase() ;
108
+ var APPROVED_PRODUCTION_COORDINATOR_BINARY_HASH = "3144c8837fbbaad837013512f4920e76699a4d61b167f7041eb33b1ac5aba8df".toLowerCase() ;
109
109
 
110
110
  // src/presets/productionMrtd.ts
111
111
  var APPROVED_PRODUCTION_COORDINATOR_MRTD = "6f3e84c54ac6377614d4c139473db575a83b5db41bd845eecb4eedaf2788ea881309a410c4ceae9641406411f3f639b8".toLowerCase() ;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/version.ts","../src/core/session.ts","../src/transport/inMemoryTransport.ts","../src/presets/azure-prod-maa.generated.ts","../src/presets/productionRuntimeProfile.ts","../src/presets/production.ts","../src/presets/productionBinaryHash.ts","../src/presets/productionMrtd.ts","../src/session/publicReleasePolicy.ts","../src/session/publicSession.ts","../src/attestation/public.ts","../src/coordinator/public.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * The API surface version this build implements. Bumped only on a breaking\n * surface change. See docs/sdk-specification.md section 12.\n */\nexport const apiVersion = \"v0\" as const;\n\n/** Literal type of {@link apiVersion}. */\nexport type ApiVersion = typeof apiVersion;\n","/**\n * The opaque session handle.\n *\n * A `Session` is the single stateful object the functional surface threads\n * through every call: `fn(session, args)`. It owns the transport, the\n * attestation state, and (later) the leader-epoch bookkeeping. Consumers treat\n * it as opaque - they read `session.attested` and pass it back to SDK\n * functions, but never reach inside. The internal state map and constructor\n * live alongside `createSession` (added in a later ticket); this module only\n * fixes the public shape so the rest of the surface can type against it.\n */\n\ndeclare const sessionBrand: unique symbol;\n\n/**\n * Opaque, attested session handle. Obtain one from `createSession`; pass it as\n * the first argument to every actor command. The only field consumers read is\n * {@link Session.attested}.\n */\nexport interface Session {\n /**\n * Whether the current Noise session has passed full TDX attestation. Sensitive\n * commands refuse to run until this is `true`. Re-handshake or failover resets\n * it to `false` until a fresh attestation completes.\n */\n readonly attested: boolean;\n /** @internal Opacity brand; not constructable by consumers. */\n readonly [sessionBrand]: true;\n}\n\n/** Convenience predicate mirroring {@link Session.attested}. */\nexport function isAttested(session: Session): boolean {\n return session.attested;\n}\n","/**\n * In-memory transport.\n *\n * A zero-network channel used by unit tests. It transitions straight to `open`\n * on connect. `send` delivers the raw frame bytes to an optional peer sink: the\n * WebSocket message boundary is the frame boundary, so there is no extra length\n * prefix (matching the production transport). Noise lives above this pure byte\n * channel, never inside it.\n *\n * With no peer wired in, `send` is a silent no-op (legacy stub behaviour for\n * tests that never exchange frames). A paired loopback coordinator supplies a\n * `peer` sink so a real Noise XX handshake can run in-process (see the\n * `testLoopback` fixture).\n */\n\nimport { TransportError } from \"../core/errors.js\";\nimport { createStateController } from \"./stateController.js\";\nimport type { Transport, Unsubscribe } from \"./types.js\";\n\n/** Options for {@link inMemoryTransport}. Test-only paired-loopback wiring. */\nexport interface InMemoryTransportOptions {\n /**\n * Sink for frames written via `send()`. A paired in-process coordinator sets\n * this so the client's raw bytes reach the responder. When omitted, `send`\n * is a no-op so legacy stub-only tests keep working.\n */\n readonly peer?: (frame: Uint8Array) => void;\n}\n\n/** In-memory transport with a hook to feed inbound frames into `onMessage`. */\nexport interface InMemoryTransportHandle extends Transport {\n /** Deliver a frame to this transport's `onMessage` listeners (peer -> client). */\n readonly deliver: (frame: Uint8Array) => void;\n}\n\nexport function inMemoryTransport(options: InMemoryTransportOptions = {}): InMemoryTransportHandle {\n const sc = createStateController(\"idle\");\n const messageListeners = new Set<(frame: Uint8Array) => void>();\n\n return {\n state: () => sc.get(),\n onStateChange: (listener) => sc.onChange(listener),\n onMessage(listener): Unsubscribe {\n messageListeners.add(listener);\n return () => messageListeners.delete(listener);\n },\n deliver(frame: Uint8Array): void {\n for (const listener of messageListeners) listener(frame);\n },\n async connect(signal) {\n if (signal?.aborted) {\n throw new TransportError(\"CONNECTION_LOST\", \"connect aborted before it started\");\n }\n if (sc.get() === \"open\") return;\n sc.set(\"connecting\");\n sc.set(\"open\");\n },\n send(frame: Uint8Array): void {\n if (sc.get() !== \"open\") {\n throw new TransportError(\"CONNECTION_LOST\", \"cannot send on a non-open transport\");\n }\n options.peer?.(frame);\n },\n close() {\n if (sc.get() === \"closed\") return;\n sc.set(\"closing\");\n sc.set(\"closed\");\n },\n };\n}\n","// Generated by npm run release:trust-policy:generate-sdk. Do not edit.\nexport const AZURE_PROD_MAA_TRUST = {\n issuer: \"https://sharedweu.weu.attest.azure.net\",\n jwksUrl: \"https://sharedweu.weu.attest.azure.net/certs\",\n policyHash: \"9NY0VnTQ-IiBriBplVUpFbczcDaEBUwsiFYAzHu_gco\",\n trustSetVersion: \"azure-prod-maa-v1\",\n} as const;\n","/** Build-time projection of the approved production runtime profile. */\n\nexport const DEFAULT_AZURE_PROD_RUNTIME_PROFILE = \"prod-devnet-simplified\" as const;\nexport const PROD_HARDENED_RUNTIME_PROFILE = \"prod-hardened\" as const;\nexport const PROD_DEVNET_SIMPLIFIED_RUNTIME_PROFILE = \"prod-devnet-simplified\" as const;\nexport const PROD_DEVNET_SIMPLIFIED_LOCKED_RUNTIME_PROFILE =\n \"prod-devnet-simplified-locked\" as const;\n\ndeclare const __INVISIBLE_SDK_PRODUCTION_RUNTIME_PROFILE__: string | undefined;\n\nconst configuredRuntimeProfile =\n typeof __INVISIBLE_SDK_PRODUCTION_RUNTIME_PROFILE__ === \"string\"\n ? __INVISIBLE_SDK_PRODUCTION_RUNTIME_PROFILE__\n : \"\";\n\nexport const APPROVED_PRODUCTION_RUNTIME_PROFILE =\n configuredRuntimeProfile === PROD_HARDENED_RUNTIME_PROFILE ||\n configuredRuntimeProfile === PROD_DEVNET_SIMPLIFIED_RUNTIME_PROFILE ||\n configuredRuntimeProfile === PROD_DEVNET_SIMPLIFIED_LOCKED_RUNTIME_PROFILE\n ? configuredRuntimeProfile\n : DEFAULT_AZURE_PROD_RUNTIME_PROFILE;\n","import { INTEL_SGX_ROOT_CA_FINGERPRINT_SHA256 } from \"../attestation/verifier.js\";\nimport type {\n AzureMaaPin,\n CoordinatorEndpoint,\n CoordinatorReleasePin,\n} from \"../schemas/types.generated.js\";\nimport { AZURE_PROD_MAA_TRUST } from \"./azure-prod-maa.generated.js\";\nimport { APPROVED_PRODUCTION_RUNTIME_PROFILE } from \"./productionRuntimeProfile.js\";\n\nexport const LOCAL_DEV_RELEASE_PIN_MRTD = \"local-dev-no-mrtd\";\n\nexport const PLACEHOLDER_RELEASE_PIN = {\n mrtd: \"\",\n intelRootFingerprint: \"\",\n} as const satisfies CoordinatorReleasePin;\n\nexport const AZURE_PROD_COORDINATOR_MRTD =\n \"a2e61f1316e9e367e9c1f7a0adc98c48eb13875c399c85d286cee5ea2b05e57f2df9f61d903b0ae7ac5607d843dfffc1\";\nexport const AZURE_PROD_RUNTIME_PROFILE = APPROVED_PRODUCTION_RUNTIME_PROFILE;\n\nconst BINARY_HASH_HEX = /^[0-9a-f]{64}$/i;\nconst MRTD_HEX = /^[0-9a-f]{96}$/i;\n\nconst AZURE_PROD_RELEASE_PIN = {\n mrtd: AZURE_PROD_COORDINATOR_MRTD,\n runtimeProfile: AZURE_PROD_RUNTIME_PROFILE,\n intelRootFingerprint: INTEL_SGX_ROOT_CA_FINGERPRINT_SHA256,\n azureMaa: {\n issuer: AZURE_PROD_MAA_TRUST.issuer,\n jwksUrl: AZURE_PROD_MAA_TRUST.jwksUrl,\n policyHash: AZURE_PROD_MAA_TRUST.policyHash,\n },\n} as const;\n\nexport function assertApprovedBinaryHash(value: string): string {\n const binaryHash = typeof value === \"string\" ? value.toLowerCase() : \"\";\n if (!BINARY_HASH_HEX.test(binaryHash)) {\n throw new Error(\"an approved 64-character binary SHA-256 hash is required\");\n }\n return binaryHash;\n}\n\nexport function assertApprovedMrtd(value: string): string {\n const mrtd = typeof value === \"string\" ? value.toLowerCase() : \"\";\n if (!MRTD_HEX.test(mrtd)) {\n throw new Error(\"an approved 96-character production MRTD is required\");\n }\n return mrtd;\n}\n\n/** Build the active Azure production policy for a concrete coordinator URL. */\nexport function createAzureProductionEndpoint({\n wsUrl,\n expectedHostname,\n approvedBinaryHash,\n approvedMrtd = AZURE_PROD_COORDINATOR_MRTD,\n}: {\n readonly wsUrl: string;\n readonly expectedHostname: string;\n readonly approvedBinaryHash: string;\n readonly approvedMrtd?: string;\n}): CoordinatorEndpoint {\n const binaryHash = assertApprovedBinaryHash(approvedBinaryHash);\n const mrtd = assertApprovedMrtd(approvedMrtd);\n return {\n wsUrl,\n expectedHostname,\n releasePin: { ...AZURE_PROD_RELEASE_PIN, mrtd, binaryHash },\n requiredMode: \"prod\",\n };\n}\n\n/** Build the explicit private dev/test policy. */\nexport function createDevelopmentEndpoint({\n wsUrl,\n expectedHostname,\n allowMissingDcapCollateral,\n includeAzureMaaTrust,\n}: {\n readonly wsUrl: string;\n readonly expectedHostname: string;\n readonly allowMissingDcapCollateral?: boolean;\n readonly includeAzureMaaTrust?: boolean;\n}): CoordinatorEndpoint {\n return {\n wsUrl,\n expectedHostname,\n releasePin: {\n ...PLACEHOLDER_RELEASE_PIN,\n ...(includeAzureMaaTrust === true\n ? {\n azureMaa: {\n issuer: AZURE_PROD_MAA_TRUST.issuer,\n jwksUrl: AZURE_PROD_MAA_TRUST.jwksUrl,\n policyHash: AZURE_PROD_MAA_TRUST.policyHash,\n } satisfies AzureMaaPin,\n }\n : {}),\n ...(allowMissingDcapCollateral === true ? { allowMissingDcapCollateral: true } : {}),\n },\n requiredMode: \"dev\",\n };\n}\n","/** Build-time projection of the approved coordinator binary hash. */\n\ndeclare const __INVISIBLE_SDK_PRODUCTION_BINARY_HASH__: string | undefined;\n\nexport const APPROVED_PRODUCTION_COORDINATOR_BINARY_HASH =\n typeof __INVISIBLE_SDK_PRODUCTION_BINARY_HASH__ === \"string\"\n ? __INVISIBLE_SDK_PRODUCTION_BINARY_HASH__.toLowerCase()\n : \"\";\n","/** Build-time projection of the approved production coordinator MRTD. */\n\ndeclare const __INVISIBLE_SDK_PRODUCTION_MRTD__: string | undefined;\n\nexport const APPROVED_PRODUCTION_COORDINATOR_MRTD =\n typeof __INVISIBLE_SDK_PRODUCTION_MRTD__ === \"string\"\n ? __INVISIBLE_SDK_PRODUCTION_MRTD__.toLowerCase()\n : \"\";\n","import { APPROVED_PRODUCTION_COORDINATOR_BINARY_HASH } from \"../presets/productionBinaryHash.js\";\nimport { APPROVED_PRODUCTION_COORDINATOR_MRTD } from \"../presets/productionMrtd.js\";\nimport { APPROVED_PRODUCTION_RUNTIME_PROFILE } from \"../presets/productionRuntimeProfile.js\";\nimport type { CoordinatorRuntimeProfile } from \"../attestation/verifier.js\";\n\nexport interface PublicProductionReleasePolicy {\n readonly expectedMrtd: string;\n readonly expectedBinaryHash: string;\n readonly expectedRuntimeProfile: CoordinatorRuntimeProfile;\n}\n\n/** The build-bound production tuple used by the public session constructor. */\nexport function publicProductionReleasePolicy(): PublicProductionReleasePolicy {\n return {\n expectedMrtd: APPROVED_PRODUCTION_COORDINATOR_MRTD,\n expectedBinaryHash: APPROVED_PRODUCTION_COORDINATOR_BINARY_HASH,\n expectedRuntimeProfile: APPROVED_PRODUCTION_RUNTIME_PROFILE,\n };\n}\n","import type { Session } from \"../core/session.js\";\nimport { createAzureProductionEndpoint } from \"../presets/production.js\";\nimport { isLoopbackUrl } from \"./secureChannel.js\";\nimport { publicProductionReleasePolicy } from \"./publicReleasePolicy.js\";\nimport {\n closeSession,\n createSessionInternal,\n type CreateSessionOptions as InternalCreateSessionOptions,\n} from \"./createSession.js\";\n\nconst PUBLIC_SESSION_OPTION_KEYS = new Set([\n \"coordinatorUrl\",\n \"storage\",\n \"wallet\",\n \"clientPersistence\",\n]);\nconst PUBLIC_COORDINATOR_URL_PROTOCOL = \"wss:\";\nconst PUBLIC_COORDINATOR_URL_ERROR =\n \"public SDK createSession requires a non-loopback wss:// coordinatorUrl\";\n\nexport interface PublicCreateSessionOptions {\n readonly coordinatorUrl: string;\n readonly storage?: unknown;\n readonly wallet?: unknown;\n /** Opt into SDK-owned normal-user transfer persistence. */\n readonly clientPersistence?: boolean;\n}\n\n/**\n * Open a production-only public SDK session.\n *\n * The caller supplies only the route and public adapters. The Azure\n * production release policy is embedded by the selected SDK build.\n */\nexport async function createSession(options: PublicCreateSessionOptions): Promise<Session> {\n assertPublicOptions(options);\n const parsedUrl = parsePublicCoordinatorUrl(options.coordinatorUrl);\n const releasePolicy = publicProductionReleasePolicy();\n const endpoint = createAzureProductionEndpoint({\n wsUrl: options.coordinatorUrl,\n expectedHostname: parsedUrl.hostname,\n approvedBinaryHash: releasePolicy.expectedBinaryHash,\n approvedMrtd: releasePolicy.expectedMrtd,\n });\n\n const internalOptions: InternalCreateSessionOptions = {\n coordinator: { endpoints: [endpoint] },\n ...(options.storage === undefined ? {} : { storage: options.storage }),\n ...(options.wallet === undefined ? {} : { wallet: options.wallet }),\n ...(options.clientPersistence === undefined\n ? {}\n : { clientPersistence: options.clientPersistence }),\n };\n return createSessionInternal(internalOptions);\n}\n\nexport { closeSession };\n\nfunction assertPublicOptions(options: unknown): asserts options is PublicCreateSessionOptions {\n if (typeof options !== \"object\" || options === null || Array.isArray(options)) {\n throw new TypeError(\"public SDK createSession options must be an object\");\n }\n for (const key of Object.keys(options)) {\n if (!PUBLIC_SESSION_OPTION_KEYS.has(key)) {\n throw new Error(`public SDK createSession does not accept option ${key}`);\n }\n }\n const coordinatorUrl = (options as { coordinatorUrl?: unknown }).coordinatorUrl;\n if (typeof coordinatorUrl !== \"string\") {\n throw new TypeError(\"public SDK createSession requires coordinatorUrl\");\n }\n const clientPersistence = (options as { clientPersistence?: unknown }).clientPersistence;\n if (clientPersistence !== undefined && typeof clientPersistence !== \"boolean\") {\n throw new TypeError(\"public SDK createSession clientPersistence must be a boolean\");\n }\n}\n\nfunction parsePublicCoordinatorUrl(value: string): URL {\n let parsed: URL;\n try {\n parsed = new URL(value);\n } catch (cause) {\n const error = new Error(PUBLIC_COORDINATOR_URL_ERROR);\n (error as { cause?: unknown }).cause = cause;\n throw error;\n }\n if (parsed.protocol !== PUBLIC_COORDINATOR_URL_PROTOCOL || isLoopbackUrl(value)) {\n throw new Error(PUBLIC_COORDINATOR_URL_ERROR);\n }\n return parsed;\n}\n","import type { Session } from \"../core/session.js\";\nimport type { AttestationResult } from \"../transport/handshake.js\";\nimport type { Unsubscribe } from \"../transport/types.js\";\nimport { reattestSerialized } from \"./reattest.js\";\nimport { failSessionClosed, getSessionState } from \"../session/state.js\";\nimport {\n publicProductionReleasePolicy,\n type PublicProductionReleasePolicy,\n} from \"../session/publicReleasePolicy.js\";\n\nexport type { AttestationResult } from \"../transport/handshake.js\";\n\nexport interface PublicAttestationPolicy {\n readonly expectedMrtd: string;\n readonly expectedBinaryHash?: string;\n readonly expectedRuntimeProfile?:\n | \"prod-hardened\"\n | \"prod-devnet-simplified\"\n | \"prod-devnet-simplified-locked\"\n | \"azure-tdx-v0-agentless\";\n readonly expectedRuntimeMeasurements?: {\n readonly rtmr0: string;\n readonly rtmr1: string;\n readonly rtmr2: string;\n readonly rtmr3: string;\n };\n readonly intelRootFingerprint?: string;\n readonly azureMaa?: {\n readonly expectedIssuer: string;\n readonly expectedJwksUrl: string;\n readonly expectedPolicyHash: string;\n };\n}\n\n/** Public attestation read controls. Policy construction remains internal. */\nexport const attestation = {\n productionPolicy(): PublicProductionReleasePolicy {\n return publicProductionReleasePolicy();\n },\n\n async assertValid(session: Session): Promise<AttestationResult> {\n const state = getSessionState(session);\n const endpoint = state.pool.endpoints[0]!;\n try {\n const result = await reattestSerialized(state, endpoint, state.pool.noiseTransportTimeoutMs);\n state.attestation = result;\n state.attested = true;\n return result;\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n failSessionClosed(state, error);\n throw error;\n }\n },\n\n current(session: Session): AttestationResult | null {\n return getSessionState(session).attestation;\n },\n\n policy(session: Session): PublicAttestationPolicy {\n const pin = getSessionState(session).pool.endpoints[0]!.releasePin;\n return {\n expectedMrtd: pin.mrtd,\n ...(pin.binaryHash === undefined ? {} : { expectedBinaryHash: pin.binaryHash }),\n ...(pin.runtimeProfile === undefined ? {} : { expectedRuntimeProfile: pin.runtimeProfile }),\n ...(pin.runtimeMeasurements === undefined\n ? {}\n : { expectedRuntimeMeasurements: pin.runtimeMeasurements }),\n ...(pin.intelRootFingerprint === undefined\n ? {}\n : { intelRootFingerprint: pin.intelRootFingerprint }),\n ...(pin.azureMaa === undefined\n ? {}\n : {\n azureMaa: {\n expectedIssuer: pin.azureMaa.issuer,\n expectedJwksUrl: pin.azureMaa.jwksUrl,\n expectedPolicyHash: pin.azureMaa.policyHash,\n },\n }),\n };\n },\n\n onPolicyViolation(session: Session, handler: (error: Error) => void): Unsubscribe {\n const handlers = getSessionState(session).policyViolationHandlers;\n handlers.add(handler);\n return () => handlers.delete(handler);\n },\n};\n","import { NotImplementedError } from \"../core/errors.js\";\nimport type { Session } from \"../core/session.js\";\nimport { getSessionState } from \"../session/state.js\";\n\nexport interface PublicCoordinatorEndpoint {\n readonly coordinatorUrl: string;\n readonly roleHint?: \"leader\" | \"watcher\";\n readonly weight?: number;\n}\n\nexport interface CoordinatorVersion {\n readonly mode: \"prod\" | \"dev\";\n readonly protocolVersion: string;\n readonly schemaVersion: string;\n readonly hostname: string;\n readonly leaderEpoch: number;\n}\n\nexport const coordinator = {\n endpoints(session: Session): readonly PublicCoordinatorEndpoint[] {\n return getSessionState(session).pool.endpoints.map((endpoint) => ({\n coordinatorUrl: endpoint.wsUrl,\n ...(endpoint.roleHint === undefined ? {} : { roleHint: endpoint.roleHint }),\n ...(endpoint.weight === undefined ? {} : { weight: endpoint.weight }),\n }));\n },\n\n currentLeader(_session: Session): Promise<PublicCoordinatorEndpoint | null> {\n return Promise.reject(new NotImplementedError(\"coordinator.currentLeader\"));\n },\n\n version(_session: Session): Promise<CoordinatorVersion> {\n return Promise.reject(new NotImplementedError(\"coordinator.version\"));\n },\n\n forceFailover(_session: Session): Promise<void> {\n return Promise.reject(new NotImplementedError(\"coordinator.forceFailover\"));\n },\n};\n"]}
1
+ {"version":3,"sources":["../src/core/version.ts","../src/core/session.ts","../src/transport/inMemoryTransport.ts","../src/presets/azure-prod-maa.generated.ts","../src/presets/productionRuntimeProfile.ts","../src/presets/production.ts","../src/presets/productionBinaryHash.ts","../src/presets/productionMrtd.ts","../src/session/publicReleasePolicy.ts","../src/session/publicSession.ts","../src/attestation/public.ts","../src/coordinator/public.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * The API surface version this build implements. Bumped only on a breaking\n * surface change. See docs/sdk-specification.md section 12.\n */\nexport const apiVersion = \"v0\" as const;\n\n/** Literal type of {@link apiVersion}. */\nexport type ApiVersion = typeof apiVersion;\n","/**\n * The opaque session handle.\n *\n * A `Session` is the single stateful object the functional surface threads\n * through every call: `fn(session, args)`. It owns the transport, the\n * attestation state, and (later) the leader-epoch bookkeeping. Consumers treat\n * it as opaque - they read `session.attested` and pass it back to SDK\n * functions, but never reach inside. The internal state map and constructor\n * live alongside `createSession` (added in a later ticket); this module only\n * fixes the public shape so the rest of the surface can type against it.\n */\n\ndeclare const sessionBrand: unique symbol;\n\n/**\n * Opaque, attested session handle. Obtain one from `createSession`; pass it as\n * the first argument to every actor command. The only field consumers read is\n * {@link Session.attested}.\n */\nexport interface Session {\n /**\n * Whether the current Noise session has passed full TDX attestation. Sensitive\n * commands refuse to run until this is `true`. Re-handshake or failover resets\n * it to `false` until a fresh attestation completes.\n */\n readonly attested: boolean;\n /** @internal Opacity brand; not constructable by consumers. */\n readonly [sessionBrand]: true;\n}\n\n/** Convenience predicate mirroring {@link Session.attested}. */\nexport function isAttested(session: Session): boolean {\n return session.attested;\n}\n","/**\n * In-memory transport.\n *\n * A zero-network channel used by unit tests. It transitions straight to `open`\n * on connect. `send` delivers the raw frame bytes to an optional peer sink: the\n * WebSocket message boundary is the frame boundary, so there is no extra length\n * prefix (matching the production transport). Noise lives above this pure byte\n * channel, never inside it.\n *\n * With no peer wired in, `send` is a silent no-op (legacy stub behaviour for\n * tests that never exchange frames). A paired loopback coordinator supplies a\n * `peer` sink so a real Noise XX handshake can run in-process (see the\n * `testLoopback` fixture).\n */\n\nimport { TransportError } from \"../core/errors.js\";\nimport { createStateController } from \"./stateController.js\";\nimport type { Transport, Unsubscribe } from \"./types.js\";\n\n/** Options for {@link inMemoryTransport}. Test-only paired-loopback wiring. */\nexport interface InMemoryTransportOptions {\n /**\n * Sink for frames written via `send()`. A paired in-process coordinator sets\n * this so the client's raw bytes reach the responder. When omitted, `send`\n * is a no-op so legacy stub-only tests keep working.\n */\n readonly peer?: (frame: Uint8Array) => void;\n}\n\n/** In-memory transport with a hook to feed inbound frames into `onMessage`. */\nexport interface InMemoryTransportHandle extends Transport {\n /** Deliver a frame to this transport's `onMessage` listeners (peer -> client). */\n readonly deliver: (frame: Uint8Array) => void;\n}\n\nexport function inMemoryTransport(options: InMemoryTransportOptions = {}): InMemoryTransportHandle {\n const sc = createStateController(\"idle\");\n const messageListeners = new Set<(frame: Uint8Array) => void>();\n\n return {\n state: () => sc.get(),\n onStateChange: (listener) => sc.onChange(listener),\n onMessage(listener): Unsubscribe {\n messageListeners.add(listener);\n return () => messageListeners.delete(listener);\n },\n deliver(frame: Uint8Array): void {\n for (const listener of messageListeners) listener(frame);\n },\n async connect(signal) {\n if (signal?.aborted) {\n throw new TransportError(\"CONNECTION_LOST\", \"connect aborted before it started\");\n }\n if (sc.get() === \"open\") return;\n sc.set(\"connecting\");\n sc.set(\"open\");\n },\n send(frame: Uint8Array): void {\n if (sc.get() !== \"open\") {\n throw new TransportError(\"CONNECTION_LOST\", \"cannot send on a non-open transport\");\n }\n options.peer?.(frame);\n },\n close() {\n if (sc.get() === \"closed\") return;\n sc.set(\"closing\");\n sc.set(\"closed\");\n },\n };\n}\n","// Generated by npm run release:trust-policy:generate-sdk. Do not edit.\nexport const AZURE_PROD_MAA_TRUST = {\n issuer: \"https://sharedweu.weu.attest.azure.net\",\n jwksUrl: \"https://sharedweu.weu.attest.azure.net/certs\",\n policyHash: \"9NY0VnTQ-IiBriBplVUpFbczcDaEBUwsiFYAzHu_gco\",\n trustSetVersion: \"azure-prod-maa-v1\",\n} as const;\n","/** Build-time projection of the approved production runtime profile. */\n\nexport const DEFAULT_AZURE_PROD_RUNTIME_PROFILE = \"prod-devnet-simplified\" as const;\nexport const PROD_HARDENED_RUNTIME_PROFILE = \"prod-hardened\" as const;\nexport const PROD_DEVNET_SIMPLIFIED_RUNTIME_PROFILE = \"prod-devnet-simplified\" as const;\nexport const PROD_DEVNET_SIMPLIFIED_LOCKED_RUNTIME_PROFILE =\n \"prod-devnet-simplified-locked\" as const;\n\nexport const PROD_DEVNET_PREMIUM_LOCKED_RUNTIME_PROFILE = \"prod-devnet-premium-locked\" as const;\n\ndeclare const __INVISIBLE_SDK_PRODUCTION_RUNTIME_PROFILE__: string | undefined;\n\nconst configuredRuntimeProfile =\n typeof __INVISIBLE_SDK_PRODUCTION_RUNTIME_PROFILE__ === \"string\"\n ? __INVISIBLE_SDK_PRODUCTION_RUNTIME_PROFILE__\n : \"\";\n\nexport const APPROVED_PRODUCTION_RUNTIME_PROFILE =\n configuredRuntimeProfile === PROD_HARDENED_RUNTIME_PROFILE ||\n configuredRuntimeProfile === PROD_DEVNET_SIMPLIFIED_RUNTIME_PROFILE ||\n configuredRuntimeProfile === PROD_DEVNET_SIMPLIFIED_LOCKED_RUNTIME_PROFILE ||\n configuredRuntimeProfile === PROD_DEVNET_PREMIUM_LOCKED_RUNTIME_PROFILE\n ? configuredRuntimeProfile\n : DEFAULT_AZURE_PROD_RUNTIME_PROFILE;\n","import { INTEL_SGX_ROOT_CA_FINGERPRINT_SHA256 } from \"../attestation/verifier.js\";\nimport type {\n AzureMaaPin,\n CoordinatorEndpoint,\n CoordinatorReleasePin,\n} from \"../schemas/types.generated.js\";\nimport { AZURE_PROD_MAA_TRUST } from \"./azure-prod-maa.generated.js\";\nimport { APPROVED_PRODUCTION_RUNTIME_PROFILE } from \"./productionRuntimeProfile.js\";\n\nexport const LOCAL_DEV_RELEASE_PIN_MRTD = \"local-dev-no-mrtd\";\n\nexport const PLACEHOLDER_RELEASE_PIN = {\n mrtd: \"\",\n intelRootFingerprint: \"\",\n} as const satisfies CoordinatorReleasePin;\n\nexport const AZURE_PROD_COORDINATOR_MRTD =\n \"a2e61f1316e9e367e9c1f7a0adc98c48eb13875c399c85d286cee5ea2b05e57f2df9f61d903b0ae7ac5607d843dfffc1\";\nexport const AZURE_PROD_RUNTIME_PROFILE = APPROVED_PRODUCTION_RUNTIME_PROFILE;\n\nconst BINARY_HASH_HEX = /^[0-9a-f]{64}$/i;\nconst MRTD_HEX = /^[0-9a-f]{96}$/i;\n\nconst AZURE_PROD_RELEASE_PIN = {\n mrtd: AZURE_PROD_COORDINATOR_MRTD,\n runtimeProfile: AZURE_PROD_RUNTIME_PROFILE,\n intelRootFingerprint: INTEL_SGX_ROOT_CA_FINGERPRINT_SHA256,\n azureMaa: {\n issuer: AZURE_PROD_MAA_TRUST.issuer,\n jwksUrl: AZURE_PROD_MAA_TRUST.jwksUrl,\n policyHash: AZURE_PROD_MAA_TRUST.policyHash,\n },\n} as const;\n\nexport function assertApprovedBinaryHash(value: string): string {\n const binaryHash = typeof value === \"string\" ? value.toLowerCase() : \"\";\n if (!BINARY_HASH_HEX.test(binaryHash)) {\n throw new Error(\"an approved 64-character binary SHA-256 hash is required\");\n }\n return binaryHash;\n}\n\nexport function assertApprovedMrtd(value: string): string {\n const mrtd = typeof value === \"string\" ? value.toLowerCase() : \"\";\n if (!MRTD_HEX.test(mrtd)) {\n throw new Error(\"an approved 96-character production MRTD is required\");\n }\n return mrtd;\n}\n\n/** Build the active Azure production policy for a concrete coordinator URL. */\nexport function createAzureProductionEndpoint({\n wsUrl,\n expectedHostname,\n approvedBinaryHash,\n approvedMrtd = AZURE_PROD_COORDINATOR_MRTD,\n}: {\n readonly wsUrl: string;\n readonly expectedHostname: string;\n readonly approvedBinaryHash: string;\n readonly approvedMrtd?: string;\n}): CoordinatorEndpoint {\n const binaryHash = assertApprovedBinaryHash(approvedBinaryHash);\n const mrtd = assertApprovedMrtd(approvedMrtd);\n return {\n wsUrl,\n expectedHostname,\n releasePin: { ...AZURE_PROD_RELEASE_PIN, mrtd, binaryHash },\n requiredMode: \"prod\",\n };\n}\n\n/** Build the explicit private dev/test policy. */\nexport function createDevelopmentEndpoint({\n wsUrl,\n expectedHostname,\n allowMissingDcapCollateral,\n includeAzureMaaTrust,\n}: {\n readonly wsUrl: string;\n readonly expectedHostname: string;\n readonly allowMissingDcapCollateral?: boolean;\n readonly includeAzureMaaTrust?: boolean;\n}): CoordinatorEndpoint {\n return {\n wsUrl,\n expectedHostname,\n releasePin: {\n ...PLACEHOLDER_RELEASE_PIN,\n ...(includeAzureMaaTrust === true\n ? {\n azureMaa: {\n issuer: AZURE_PROD_MAA_TRUST.issuer,\n jwksUrl: AZURE_PROD_MAA_TRUST.jwksUrl,\n policyHash: AZURE_PROD_MAA_TRUST.policyHash,\n } satisfies AzureMaaPin,\n }\n : {}),\n ...(allowMissingDcapCollateral === true ? { allowMissingDcapCollateral: true } : {}),\n },\n requiredMode: \"dev\",\n };\n}\n","/** Build-time projection of the approved coordinator binary hash. */\n\ndeclare const __INVISIBLE_SDK_PRODUCTION_BINARY_HASH__: string | undefined;\n\nexport const APPROVED_PRODUCTION_COORDINATOR_BINARY_HASH =\n typeof __INVISIBLE_SDK_PRODUCTION_BINARY_HASH__ === \"string\"\n ? __INVISIBLE_SDK_PRODUCTION_BINARY_HASH__.toLowerCase()\n : \"\";\n","/** Build-time projection of the approved production coordinator MRTD. */\n\ndeclare const __INVISIBLE_SDK_PRODUCTION_MRTD__: string | undefined;\n\nexport const APPROVED_PRODUCTION_COORDINATOR_MRTD =\n typeof __INVISIBLE_SDK_PRODUCTION_MRTD__ === \"string\"\n ? __INVISIBLE_SDK_PRODUCTION_MRTD__.toLowerCase()\n : \"\";\n","import { APPROVED_PRODUCTION_COORDINATOR_BINARY_HASH } from \"../presets/productionBinaryHash.js\";\nimport { APPROVED_PRODUCTION_COORDINATOR_MRTD } from \"../presets/productionMrtd.js\";\nimport { APPROVED_PRODUCTION_RUNTIME_PROFILE } from \"../presets/productionRuntimeProfile.js\";\nimport type { CoordinatorRuntimeProfile } from \"../attestation/verifier.js\";\n\nexport interface PublicProductionReleasePolicy {\n readonly expectedMrtd: string;\n readonly expectedBinaryHash: string;\n readonly expectedRuntimeProfile: CoordinatorRuntimeProfile;\n}\n\n/** The build-bound production tuple used by the public session constructor. */\nexport function publicProductionReleasePolicy(): PublicProductionReleasePolicy {\n return {\n expectedMrtd: APPROVED_PRODUCTION_COORDINATOR_MRTD,\n expectedBinaryHash: APPROVED_PRODUCTION_COORDINATOR_BINARY_HASH,\n expectedRuntimeProfile: APPROVED_PRODUCTION_RUNTIME_PROFILE,\n };\n}\n","import type { Session } from \"../core/session.js\";\nimport { createAzureProductionEndpoint } from \"../presets/production.js\";\nimport { isLoopbackUrl } from \"./secureChannel.js\";\nimport { publicProductionReleasePolicy } from \"./publicReleasePolicy.js\";\nimport {\n closeSession,\n createSessionInternal,\n type CreateSessionOptions as InternalCreateSessionOptions,\n} from \"./createSession.js\";\n\nconst PUBLIC_SESSION_OPTION_KEYS = new Set([\n \"coordinatorUrl\",\n \"storage\",\n \"wallet\",\n \"clientPersistence\",\n]);\nconst PUBLIC_COORDINATOR_URL_PROTOCOL = \"wss:\";\nconst PUBLIC_COORDINATOR_URL_ERROR =\n \"public SDK createSession requires a non-loopback wss:// coordinatorUrl\";\n\nexport interface PublicCreateSessionOptions {\n readonly coordinatorUrl: string;\n readonly storage?: unknown;\n readonly wallet?: unknown;\n /** Opt into SDK-owned normal-user transfer persistence. */\n readonly clientPersistence?: boolean;\n}\n\n/**\n * Open a production-only public SDK session.\n *\n * The caller supplies only the route and public adapters. The Azure\n * production release policy is embedded by the selected SDK build.\n */\nexport async function createSession(options: PublicCreateSessionOptions): Promise<Session> {\n assertPublicOptions(options);\n const parsedUrl = parsePublicCoordinatorUrl(options.coordinatorUrl);\n const releasePolicy = publicProductionReleasePolicy();\n const endpoint = createAzureProductionEndpoint({\n wsUrl: options.coordinatorUrl,\n expectedHostname: parsedUrl.hostname,\n approvedBinaryHash: releasePolicy.expectedBinaryHash,\n approvedMrtd: releasePolicy.expectedMrtd,\n });\n\n const internalOptions: InternalCreateSessionOptions = {\n coordinator: { endpoints: [endpoint] },\n ...(options.storage === undefined ? {} : { storage: options.storage }),\n ...(options.wallet === undefined ? {} : { wallet: options.wallet }),\n ...(options.clientPersistence === undefined\n ? {}\n : { clientPersistence: options.clientPersistence }),\n };\n return createSessionInternal(internalOptions);\n}\n\nexport { closeSession };\n\nfunction assertPublicOptions(options: unknown): asserts options is PublicCreateSessionOptions {\n if (typeof options !== \"object\" || options === null || Array.isArray(options)) {\n throw new TypeError(\"public SDK createSession options must be an object\");\n }\n for (const key of Object.keys(options)) {\n if (!PUBLIC_SESSION_OPTION_KEYS.has(key)) {\n throw new Error(`public SDK createSession does not accept option ${key}`);\n }\n }\n const coordinatorUrl = (options as { coordinatorUrl?: unknown }).coordinatorUrl;\n if (typeof coordinatorUrl !== \"string\") {\n throw new TypeError(\"public SDK createSession requires coordinatorUrl\");\n }\n const clientPersistence = (options as { clientPersistence?: unknown }).clientPersistence;\n if (clientPersistence !== undefined && typeof clientPersistence !== \"boolean\") {\n throw new TypeError(\"public SDK createSession clientPersistence must be a boolean\");\n }\n}\n\nfunction parsePublicCoordinatorUrl(value: string): URL {\n let parsed: URL;\n try {\n parsed = new URL(value);\n } catch (cause) {\n const error = new Error(PUBLIC_COORDINATOR_URL_ERROR);\n (error as { cause?: unknown }).cause = cause;\n throw error;\n }\n if (parsed.protocol !== PUBLIC_COORDINATOR_URL_PROTOCOL || isLoopbackUrl(value)) {\n throw new Error(PUBLIC_COORDINATOR_URL_ERROR);\n }\n return parsed;\n}\n","import type { Session } from \"../core/session.js\";\nimport type { AttestationResult } from \"../transport/handshake.js\";\nimport type { Unsubscribe } from \"../transport/types.js\";\nimport { reattestSerialized } from \"./reattest.js\";\nimport { failSessionClosed, getSessionState } from \"../session/state.js\";\nimport {\n publicProductionReleasePolicy,\n type PublicProductionReleasePolicy,\n} from \"../session/publicReleasePolicy.js\";\n\nexport type { AttestationResult } from \"../transport/handshake.js\";\n\nexport interface PublicAttestationPolicy {\n readonly expectedMrtd: string;\n readonly expectedBinaryHash?: string;\n readonly expectedRuntimeProfile?:\n | \"prod-hardened\"\n | \"prod-devnet-simplified\"\n | \"prod-devnet-simplified-locked\"\n | \"prod-devnet-premium-locked\"\n | \"azure-tdx-v0-agentless\";\n readonly expectedRuntimeMeasurements?: {\n readonly rtmr0: string;\n readonly rtmr1: string;\n readonly rtmr2: string;\n readonly rtmr3: string;\n };\n readonly intelRootFingerprint?: string;\n readonly azureMaa?: {\n readonly expectedIssuer: string;\n readonly expectedJwksUrl: string;\n readonly expectedPolicyHash: string;\n };\n}\n\n/** Public attestation read controls. Policy construction remains internal. */\nexport const attestation = {\n productionPolicy(): PublicProductionReleasePolicy {\n return publicProductionReleasePolicy();\n },\n\n async assertValid(session: Session): Promise<AttestationResult> {\n const state = getSessionState(session);\n const endpoint = state.pool.endpoints[0]!;\n try {\n const result = await reattestSerialized(state, endpoint, state.pool.noiseTransportTimeoutMs);\n state.attestation = result;\n state.attested = true;\n return result;\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n failSessionClosed(state, error);\n throw error;\n }\n },\n\n current(session: Session): AttestationResult | null {\n return getSessionState(session).attestation;\n },\n\n policy(session: Session): PublicAttestationPolicy {\n const pin = getSessionState(session).pool.endpoints[0]!.releasePin;\n return {\n expectedMrtd: pin.mrtd,\n ...(pin.binaryHash === undefined ? {} : { expectedBinaryHash: pin.binaryHash }),\n ...(pin.runtimeProfile === undefined ? {} : { expectedRuntimeProfile: pin.runtimeProfile }),\n ...(pin.runtimeMeasurements === undefined\n ? {}\n : { expectedRuntimeMeasurements: pin.runtimeMeasurements }),\n ...(pin.intelRootFingerprint === undefined\n ? {}\n : { intelRootFingerprint: pin.intelRootFingerprint }),\n ...(pin.azureMaa === undefined\n ? {}\n : {\n azureMaa: {\n expectedIssuer: pin.azureMaa.issuer,\n expectedJwksUrl: pin.azureMaa.jwksUrl,\n expectedPolicyHash: pin.azureMaa.policyHash,\n },\n }),\n };\n },\n\n onPolicyViolation(session: Session, handler: (error: Error) => void): Unsubscribe {\n const handlers = getSessionState(session).policyViolationHandlers;\n handlers.add(handler);\n return () => handlers.delete(handler);\n },\n};\n","import { NotImplementedError } from \"../core/errors.js\";\nimport type { Session } from \"../core/session.js\";\nimport { getSessionState } from \"../session/state.js\";\n\nexport interface PublicCoordinatorEndpoint {\n readonly coordinatorUrl: string;\n readonly roleHint?: \"leader\" | \"watcher\";\n readonly weight?: number;\n}\n\nexport interface CoordinatorVersion {\n readonly mode: \"prod\" | \"dev\";\n readonly protocolVersion: string;\n readonly schemaVersion: string;\n readonly hostname: string;\n readonly leaderEpoch: number;\n}\n\nexport const coordinator = {\n endpoints(session: Session): readonly PublicCoordinatorEndpoint[] {\n return getSessionState(session).pool.endpoints.map((endpoint) => ({\n coordinatorUrl: endpoint.wsUrl,\n ...(endpoint.roleHint === undefined ? {} : { roleHint: endpoint.roleHint }),\n ...(endpoint.weight === undefined ? {} : { weight: endpoint.weight }),\n }));\n },\n\n currentLeader(_session: Session): Promise<PublicCoordinatorEndpoint | null> {\n return Promise.reject(new NotImplementedError(\"coordinator.currentLeader\"));\n },\n\n version(_session: Session): Promise<CoordinatorVersion> {\n return Promise.reject(new NotImplementedError(\"coordinator.version\"));\n },\n\n forceFailover(_session: Session): Promise<void> {\n return Promise.reject(new NotImplementedError(\"coordinator.forceFailover\"));\n },\n};\n"]}