@breeztech/breez-sdk-spark 0.13.10-dev → 0.13.12-dev1

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 (49) hide show
  1. package/breez-sdk-spark.tgz +0 -0
  2. package/bundler/breez_sdk_spark_wasm.d.ts +157 -0
  3. package/bundler/breez_sdk_spark_wasm.js +1 -1
  4. package/bundler/breez_sdk_spark_wasm_bg.js +419 -41
  5. package/bundler/breez_sdk_spark_wasm_bg.wasm +0 -0
  6. package/bundler/breez_sdk_spark_wasm_bg.wasm.d.ts +27 -7
  7. package/deno/breez_sdk_spark_wasm.d.ts +157 -0
  8. package/deno/breez_sdk_spark_wasm.js +419 -41
  9. package/deno/breez_sdk_spark_wasm_bg.wasm +0 -0
  10. package/deno/breez_sdk_spark_wasm_bg.wasm.d.ts +27 -7
  11. package/nodejs/breez_sdk_spark_wasm.d.ts +157 -0
  12. package/nodejs/breez_sdk_spark_wasm.js +428 -41
  13. package/nodejs/breez_sdk_spark_wasm_bg.wasm +0 -0
  14. package/nodejs/breez_sdk_spark_wasm_bg.wasm.d.ts +27 -7
  15. package/nodejs/index.js +56 -0
  16. package/nodejs/index.mjs +9 -0
  17. package/nodejs/mysql-session-manager/errors.cjs +13 -0
  18. package/nodejs/mysql-session-manager/index.cjs +144 -0
  19. package/nodejs/mysql-session-manager/migrations.cjs +102 -0
  20. package/nodejs/mysql-session-manager/package.json +9 -0
  21. package/nodejs/mysql-storage/errors.cjs +19 -0
  22. package/nodejs/mysql-storage/index.cjs +1367 -0
  23. package/nodejs/mysql-storage/migrations.cjs +387 -0
  24. package/nodejs/mysql-storage/package.json +9 -0
  25. package/nodejs/mysql-token-store/errors.cjs +9 -0
  26. package/nodejs/mysql-token-store/index.cjs +980 -0
  27. package/nodejs/mysql-token-store/migrations.cjs +255 -0
  28. package/nodejs/mysql-token-store/package.json +9 -0
  29. package/nodejs/mysql-tree-store/errors.cjs +9 -0
  30. package/nodejs/mysql-tree-store/index.cjs +941 -0
  31. package/nodejs/mysql-tree-store/migrations.cjs +221 -0
  32. package/nodejs/mysql-tree-store/package.json +9 -0
  33. package/nodejs/package.json +5 -0
  34. package/nodejs/postgres-session-manager/errors.cjs +13 -0
  35. package/nodejs/postgres-session-manager/index.cjs +165 -0
  36. package/nodejs/postgres-session-manager/migrations.cjs +126 -0
  37. package/nodejs/postgres-session-manager/package.json +9 -0
  38. package/nodejs/postgres-storage/index.cjs +147 -92
  39. package/nodejs/postgres-storage/migrations.cjs +85 -4
  40. package/nodejs/postgres-token-store/index.cjs +178 -102
  41. package/nodejs/postgres-token-store/migrations.cjs +92 -3
  42. package/nodejs/postgres-tree-store/index.cjs +168 -83
  43. package/nodejs/postgres-tree-store/migrations.cjs +80 -3
  44. package/package.json +1 -1
  45. package/ssr/index.js +53 -0
  46. package/web/breez_sdk_spark_wasm.d.ts +184 -7
  47. package/web/breez_sdk_spark_wasm.js +419 -41
  48. package/web/breez_sdk_spark_wasm_bg.wasm +0 -0
  49. package/web/breez_sdk_spark_wasm_bg.wasm.d.ts +27 -7
Binary file
@@ -142,6 +142,28 @@ export interface Wallet {
142
142
  label: string;
143
143
  }
144
144
 
145
+ /**
146
+ * Configuration for MySQL storage connection pool. Targets MySQL 8.0+.
147
+ */
148
+ export interface MysqlStorageConfig {
149
+ /**
150
+ * MySQL connection URL (e.g. `mysql://user:pass@host:3306/dbname`).
151
+ */
152
+ connectionString: string;
153
+ /**
154
+ * Maximum number of connections in the pool.
155
+ */
156
+ maxPoolSize: number;
157
+ /**
158
+ * Timeout in seconds for establishing a new connection (0 = no timeout).
159
+ */
160
+ createTimeoutSecs: number;
161
+ /**
162
+ * Timeout in seconds before recycling an idle connection.
163
+ */
164
+ recycleTimeoutSecs: number;
165
+ }
166
+
145
167
  /**
146
168
  * Configuration for PostgreSQL storage connection pool.
147
169
  */
@@ -1046,6 +1068,16 @@ export interface SendPaymentResponse {
1046
1068
  payment: Payment;
1047
1069
  }
1048
1070
 
1071
+ export interface Session {
1072
+ token: string;
1073
+ expiration: number;
1074
+ }
1075
+
1076
+ export interface SessionManager {
1077
+ getSession: (serviceIdentityKey: string) => Promise<Session>;
1078
+ setSession: (serviceIdentityKey: string, session: Session) => Promise<void>;
1079
+ }
1080
+
1049
1081
  export interface SetLnurlMetadataItem {
1050
1082
  paymentHash: string;
1051
1083
  senderComment?: string;
@@ -1339,6 +1371,8 @@ export type SendPaymentOptions = { type: "bitcoinAddress"; confirmationSpeed: On
1339
1371
 
1340
1372
  export type ServiceStatus = "operational" | "degraded" | "partial" | "unknown" | "major";
1341
1373
 
1374
+ export type SessionManagerError = { type: "notFound" } | ({ type: "generic" } & string);
1375
+
1342
1376
  export type SparkHtlcStatus = "waitingForPreimage" | "preimageShared" | "returned";
1343
1377
 
1344
1378
  export type StableBalanceActiveLabel = { type: "set"; label: string } | { type: "unset" };
@@ -1356,6 +1390,25 @@ export type UpdateDepositPayload = { type: "claimError"; error: DepositClaimErro
1356
1390
  export type WebhookEventType = { type: "lightningReceiveFinished" } | { type: "lightningSendFinished" } | { type: "coopExitFinished" } | { type: "staticDepositFinished" } | ({ type: "unknown" } & string);
1357
1391
 
1358
1392
 
1393
+ /**
1394
+ * Rust-built implementation of the JS `BitcoinChainService` interface.
1395
+ *
1396
+ * Returned by factories like [`new_rest_chain_service`]; users see it as a
1397
+ * `BitcoinChainService` and pass it to `withChainService`. Pass the same
1398
+ * instance to multiple `SdkBuilder`s to share a single underlying HTTP
1399
+ * client (and its connection pool) across SDK instances.
1400
+ */
1401
+ export class BitcoinChainServiceHandle {
1402
+ private constructor();
1403
+ free(): void;
1404
+ [Symbol.dispose](): void;
1405
+ broadcastTransaction(tx: string): Promise<void>;
1406
+ getAddressUtxos(address: string): Promise<any>;
1407
+ getTransactionHex(txid: string): Promise<any>;
1408
+ getTransactionStatus(txid: string): Promise<any>;
1409
+ recommendedFees(): Promise<any>;
1410
+ }
1411
+
1359
1412
  export class BreezSdk {
1360
1413
  private constructor();
1361
1414
  free(): void;
@@ -1464,6 +1517,16 @@ export class IntoUnderlyingSource {
1464
1517
  pull(controller: ReadableStreamDefaultController): Promise<any>;
1465
1518
  }
1466
1519
 
1520
+ /**
1521
+ * A shareable MySQL connection pool. See [`PostgresConnectionPool`](super::postgres_pool::PostgresConnectionPool)
1522
+ * for sharing semantics and lifecycle.
1523
+ */
1524
+ export class MysqlConnectionPool {
1525
+ private constructor();
1526
+ free(): void;
1527
+ [Symbol.dispose](): void;
1528
+ }
1529
+
1467
1530
  /**
1468
1531
  * Passkey-based wallet operations using WebAuthn PRF extension.
1469
1532
  *
@@ -1507,6 +1570,22 @@ export class Passkey {
1507
1570
  storeLabel(label: string): Promise<void>;
1508
1571
  }
1509
1572
 
1573
+ /**
1574
+ * A shareable Postgres connection pool.
1575
+ *
1576
+ * Construct via [`create_postgres_connection_pool`] and pass the same handle to multiple
1577
+ * `SdkBuilder`s via `withPostgresConnectionPool` to share connections across SDKs.
1578
+ * Per-tenant scoping is derived from each SDK's seed.
1579
+ *
1580
+ * The pool's lifecycle is controlled by the integrator: it stays alive as
1581
+ * long as any reference is held. `disconnect()` does **not** close the pool.
1582
+ */
1583
+ export class PostgresConnectionPool {
1584
+ private constructor();
1585
+ free(): void;
1586
+ [Symbol.dispose](): void;
1587
+ }
1588
+
1510
1589
  export class SdkBuilder {
1511
1590
  private constructor();
1512
1591
  free(): void;
@@ -1519,12 +1598,57 @@ export class SdkBuilder {
1519
1598
  withFiatService(fiat_service: FiatService): SdkBuilder;
1520
1599
  withKeySet(config: KeySetConfig): SdkBuilder;
1521
1600
  withLnurlClient(lnurl_client: RestClient): SdkBuilder;
1601
+ /**
1602
+ * **Deprecated.** Call `withMysqlConnectionPool(config)` and `withMysqlConnectionPool(pool)` instead.
1603
+ */
1604
+ withMysqlBackend(config: MysqlStorageConfig): SdkBuilder;
1605
+ /**
1606
+ * Sets a shared `MySQL` connection pool as the backend for all stores.
1607
+ * Construct via `createMysqlConnectionPool` and pass the same handle to multiple
1608
+ * `SdkBuilder`s to share connections across SDKs.
1609
+ */
1610
+ withMysqlConnectionPool(pool: MysqlConnectionPool): SdkBuilder;
1522
1611
  withPaymentObserver(payment_observer: PaymentObserver): SdkBuilder;
1612
+ /**
1613
+ * **Deprecated.** Call `withPostgresConnectionPool(config)` and `withPostgresConnectionPool(pool)` instead.
1614
+ */
1523
1615
  withPostgresBackend(config: PostgresStorageConfig): SdkBuilder;
1616
+ /**
1617
+ * Sets a shared `PostgreSQL` connection pool as the backend for all
1618
+ * stores. Construct via `createPostgresConnectionPool` and pass the same handle
1619
+ * to multiple `SdkBuilder`s to share connections across SDKs.
1620
+ */
1621
+ withPostgresConnectionPool(pool: PostgresConnectionPool): SdkBuilder;
1524
1622
  withRestChainService(url: string, api_type: ChainApiType, credentials?: Credentials | null): SdkBuilder;
1623
+ /**
1624
+ * Sets a custom session manager used to persist authentication sessions.
1625
+ *
1626
+ * Provide a shared, persistent implementation (e.g. backed by `PostgreSQL`
1627
+ * or Redis) to let multiple SDK instances share authentication state and
1628
+ * bootstrap quickly. If not set, an in-memory session manager is used.
1629
+ */
1630
+ withSessionManager(session_manager: SessionManager): SdkBuilder;
1631
+ /**
1632
+ * Reuses a shared SSP connection across SDK instances. Pass the same
1633
+ * manager to every `SdkBuilder` whose SSP traffic should share an
1634
+ * underlying HTTP client.
1635
+ */
1636
+ withSspConnectionManager(manager: SspConnectionManager): SdkBuilder;
1525
1637
  withStorage(storage: Storage): SdkBuilder;
1526
1638
  }
1527
1639
 
1640
+ /**
1641
+ * Shared transport for SSP GraphQL traffic across SDK instances.
1642
+ *
1643
+ * All SDK instances built with the same `SspConnectionManager` share a single
1644
+ * underlying HTTP client (and its h2 connection pool) for SSP requests.
1645
+ */
1646
+ export class SspConnectionManager {
1647
+ private constructor();
1648
+ free(): void;
1649
+ [Symbol.dispose](): void;
1650
+ }
1651
+
1528
1652
  export class TokenIssuer {
1529
1653
  private constructor();
1530
1654
  free(): void;
@@ -1542,10 +1666,30 @@ export function connect(request: ConnectRequest): Promise<BreezSdk>;
1542
1666
 
1543
1667
  export function connectWithSigner(config: Config, signer: ExternalSigner, storage_dir: string): Promise<BreezSdk>;
1544
1668
 
1669
+ /**
1670
+ * Creates a shareable MySQL connection pool from the given config.
1671
+ */
1672
+ export function createMysqlConnectionPool(config: MysqlStorageConfig): MysqlConnectionPool;
1673
+
1674
+ /**
1675
+ * Creates a shareable Postgres connection pool from the given config.
1676
+ */
1677
+ export function createPostgresConnectionPool(config: PostgresStorageConfig): PostgresConnectionPool;
1678
+
1545
1679
  export function defaultConfig(network: Network): Config;
1546
1680
 
1547
1681
  export function defaultExternalSigner(mnemonic: string, passphrase: string | null | undefined, network: Network, key_set_config?: KeySetConfig | null): DefaultSigner;
1548
1682
 
1683
+ /**
1684
+ * Creates a default MySQL storage configuration with sensible defaults.
1685
+ *
1686
+ * Default values:
1687
+ * - `maxPoolSize`: 10
1688
+ * - `createTimeoutSecs`: 0 (no timeout)
1689
+ * - `recycleTimeoutSecs`: 10
1690
+ */
1691
+ export function defaultMysqlStorageConfig(connection_string: string): MysqlStorageConfig;
1692
+
1549
1693
  /**
1550
1694
  * Creates a default PostgreSQL storage configuration with sensible defaults.
1551
1695
  *
@@ -1565,6 +1709,19 @@ export function getSparkStatus(): Promise<SparkStatus>;
1565
1709
 
1566
1710
  export function initLogging(logger: Logger, filter?: string | null): Promise<void>;
1567
1711
 
1712
+ /**
1713
+ * Constructs a shareable REST-based Bitcoin chain service.
1714
+ *
1715
+ * Pass the returned chain service to multiple `SdkBuilder`s via
1716
+ * `withChainService` to reuse one HTTP client across SDK instances. All
1717
+ * SDKs sharing the chain service must use the same `network`.
1718
+ *
1719
+ * For one-off, non-shared use, prefer `withRestChainService`.
1720
+ */
1721
+ export function newRestChainService(url: string, network: Network, api_type: ChainApiType, credentials?: Credentials | null): BitcoinChainService;
1722
+
1723
+ export function newSspConnectionManager(user_agent?: string | null): SspConnectionManager;
1724
+
1568
1725
  /**
1569
1726
  * Entry point invoked by JavaScript in a worker.
1570
1727
  */
@@ -5,5 +5,5 @@ import { __wbg_set_wasm } from "./breez_sdk_spark_wasm_bg.js";
5
5
  __wbg_set_wasm(wasm);
6
6
  wasm.__wbindgen_start();
7
7
  export {
8
- BreezSdk, DefaultSigner, IntoUnderlyingByteSource, IntoUnderlyingSink, IntoUnderlyingSource, Passkey, SdkBuilder, TokenIssuer, connect, connectWithSigner, defaultConfig, defaultExternalSigner, defaultPostgresStorageConfig, getSparkStatus, initLogging, task_worker_entry_point
8
+ BitcoinChainServiceHandle, BreezSdk, DefaultSigner, IntoUnderlyingByteSource, IntoUnderlyingSink, IntoUnderlyingSource, MysqlConnectionPool, Passkey, PostgresConnectionPool, SdkBuilder, SspConnectionManager, TokenIssuer, connect, connectWithSigner, createMysqlConnectionPool, createPostgresConnectionPool, defaultConfig, defaultExternalSigner, defaultMysqlStorageConfig, defaultPostgresStorageConfig, getSparkStatus, initLogging, newRestChainService, newSspConnectionManager, task_worker_entry_point
9
9
  } from "./breez_sdk_spark_wasm_bg.js";