@breeztech/breez-sdk-spark 0.12.2-dev3 → 0.12.2

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 (32) hide show
  1. package/README.md +4 -4
  2. package/breez-sdk-spark.tgz +0 -0
  3. package/bundler/breez_sdk_spark_wasm.d.ts +601 -731
  4. package/bundler/breez_sdk_spark_wasm_bg.js +54 -151
  5. package/bundler/breez_sdk_spark_wasm_bg.wasm +0 -0
  6. package/bundler/breez_sdk_spark_wasm_bg.wasm.d.ts +5 -7
  7. package/bundler/storage/index.js +43 -65
  8. package/deno/breez_sdk_spark_wasm.d.ts +601 -731
  9. package/deno/breez_sdk_spark_wasm.js +54 -141
  10. package/deno/breez_sdk_spark_wasm_bg.wasm +0 -0
  11. package/deno/breez_sdk_spark_wasm_bg.wasm.d.ts +5 -7
  12. package/nodejs/breez_sdk_spark_wasm.d.ts +601 -731
  13. package/nodejs/breez_sdk_spark_wasm.js +54 -151
  14. package/nodejs/breez_sdk_spark_wasm_bg.wasm +0 -0
  15. package/nodejs/breez_sdk_spark_wasm_bg.wasm.d.ts +5 -7
  16. package/nodejs/index.js +2 -16
  17. package/nodejs/package.json +0 -1
  18. package/nodejs/postgres-storage/index.cjs +31 -42
  19. package/nodejs/postgres-storage/migrations.cjs +0 -24
  20. package/nodejs/postgres-tree-store/index.cjs +2 -12
  21. package/nodejs/storage/index.cjs +28 -19
  22. package/nodejs/storage/migrations.cjs +0 -18
  23. package/package.json +1 -1
  24. package/web/breez_sdk_spark_wasm.d.ts +606 -738
  25. package/web/breez_sdk_spark_wasm.js +54 -141
  26. package/web/breez_sdk_spark_wasm_bg.wasm +0 -0
  27. package/web/breez_sdk_spark_wasm_bg.wasm.d.ts +5 -7
  28. package/web/storage/index.js +43 -65
  29. package/nodejs/postgres-token-store/errors.cjs +0 -13
  30. package/nodejs/postgres-token-store/index.cjs +0 -857
  31. package/nodejs/postgres-token-store/migrations.cjs +0 -163
  32. package/nodejs/postgres-token-store/package.json +0 -9
@@ -1,163 +0,0 @@
1
- /**
2
- * Database Migration Manager for Breez SDK PostgreSQL Token Store
3
- *
4
- * Uses a token_schema_migrations table + pg_advisory_xact_lock to safely run
5
- * migrations from concurrent processes.
6
- */
7
-
8
- const { TokenStoreError } = require("./errors.cjs");
9
-
10
- /**
11
- * Advisory lock ID for token store migrations.
12
- * Uses a different lock ID from the storage/tree store migrations to avoid contention.
13
- * Derived from ASCII bytes of "TOKN" (0x544F4B4E).
14
- */
15
- const MIGRATION_LOCK_ID = "1414022990"; // 0x544F4B4E as decimal string
16
-
17
- class TokenStoreMigrationManager {
18
- constructor(logger = null) {
19
- this.logger = logger;
20
- }
21
-
22
- /**
23
- * Run all pending migrations inside a single transaction with an advisory lock.
24
- * @param {import('pg').Pool} pool
25
- */
26
- async migrate(pool) {
27
- const client = await pool.connect();
28
- try {
29
- await client.query("BEGIN");
30
-
31
- // Transaction-level advisory lock — automatically released on COMMIT/ROLLBACK
32
- await client.query(`SELECT pg_advisory_xact_lock(${MIGRATION_LOCK_ID})`);
33
-
34
- // Create the migrations tracking table if needed
35
- await client.query(`
36
- CREATE TABLE IF NOT EXISTS token_schema_migrations (
37
- version INTEGER PRIMARY KEY,
38
- applied_at TIMESTAMPTZ DEFAULT NOW()
39
- )
40
- `);
41
-
42
- // Get current version
43
- const versionResult = await client.query(
44
- "SELECT COALESCE(MAX(version), 0) AS version FROM token_schema_migrations"
45
- );
46
- const currentVersion = versionResult.rows[0].version;
47
-
48
- const migrations = this._getMigrations();
49
-
50
- if (currentVersion >= migrations.length) {
51
- this._log("info", `Token store database is up to date (version ${currentVersion})`);
52
- await client.query("COMMIT");
53
- return;
54
- }
55
-
56
- this._log(
57
- "info",
58
- `Migrating token store database from version ${currentVersion} to ${migrations.length}`
59
- );
60
-
61
- for (let i = currentVersion; i < migrations.length; i++) {
62
- const migration = migrations[i];
63
- const version = i + 1;
64
- this._log("debug", `Running token store migration ${version}: ${migration.name}`);
65
-
66
- for (const sql of migration.sql) {
67
- await client.query(sql);
68
- }
69
-
70
- await client.query(
71
- "INSERT INTO token_schema_migrations (version) VALUES ($1)",
72
- [version]
73
- );
74
- }
75
-
76
- await client.query("COMMIT");
77
- this._log("info", "Token store database migration completed successfully");
78
- } catch (error) {
79
- await client.query("ROLLBACK").catch(() => {});
80
- throw new TokenStoreError(
81
- `Token store migration failed: ${error.message}`,
82
- error
83
- );
84
- } finally {
85
- client.release();
86
- }
87
- }
88
-
89
- _log(level, message) {
90
- if (this.logger && typeof this.logger.log === "function") {
91
- this.logger.log({ line: message, level });
92
- } else if (level === "error") {
93
- console.error(`[TokenStoreMigrationManager] ${message}`);
94
- }
95
- }
96
-
97
- /**
98
- * Migrations matching the Rust PostgresTokenStore schema exactly.
99
- */
100
- _getMigrations() {
101
- return [
102
- {
103
- name: "Create token store tables with race condition protection",
104
- sql: [
105
- `CREATE TABLE IF NOT EXISTS token_metadata (
106
- identifier TEXT PRIMARY KEY,
107
- issuer_public_key TEXT NOT NULL,
108
- name TEXT NOT NULL,
109
- ticker TEXT NOT NULL,
110
- decimals INTEGER NOT NULL,
111
- max_supply TEXT NOT NULL,
112
- is_freezable BOOLEAN NOT NULL,
113
- creation_entity_public_key TEXT
114
- )`,
115
-
116
- `CREATE INDEX IF NOT EXISTS idx_token_metadata_issuer_pk
117
- ON token_metadata (issuer_public_key)`,
118
-
119
- `CREATE TABLE IF NOT EXISTS token_reservations (
120
- id TEXT PRIMARY KEY,
121
- purpose TEXT NOT NULL,
122
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
123
- )`,
124
-
125
- `CREATE TABLE IF NOT EXISTS token_outputs (
126
- id TEXT PRIMARY KEY,
127
- token_identifier TEXT NOT NULL REFERENCES token_metadata(identifier),
128
- owner_public_key TEXT NOT NULL,
129
- revocation_commitment TEXT NOT NULL,
130
- withdraw_bond_sats BIGINT NOT NULL,
131
- withdraw_relative_block_locktime BIGINT NOT NULL,
132
- token_public_key TEXT,
133
- token_amount TEXT NOT NULL,
134
- prev_tx_hash TEXT NOT NULL,
135
- prev_tx_vout INTEGER NOT NULL,
136
- reservation_id TEXT REFERENCES token_reservations(id) ON DELETE SET NULL,
137
- added_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
138
- )`,
139
-
140
- `CREATE INDEX IF NOT EXISTS idx_token_outputs_identifier
141
- ON token_outputs (token_identifier)`,
142
-
143
- `CREATE INDEX IF NOT EXISTS idx_token_outputs_reservation
144
- ON token_outputs (reservation_id) WHERE reservation_id IS NOT NULL`,
145
-
146
- `CREATE TABLE IF NOT EXISTS token_spent_outputs (
147
- output_id TEXT PRIMARY KEY,
148
- spent_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
149
- )`,
150
-
151
- `CREATE TABLE IF NOT EXISTS token_swap_status (
152
- id INTEGER PRIMARY KEY DEFAULT 1 CHECK (id = 1),
153
- last_completed_at TIMESTAMPTZ
154
- )`,
155
-
156
- `INSERT INTO token_swap_status (id) VALUES (1) ON CONFLICT DO NOTHING`,
157
- ],
158
- },
159
- ];
160
- }
161
- }
162
-
163
- module.exports = { TokenStoreMigrationManager };
@@ -1,9 +0,0 @@
1
- {
2
- "dependencies": {
3
- "pg": "^8.18.0"
4
- },
5
- "description": "Node.js PostgreSQL token store implementation for Breez SDK WASM (CommonJS)",
6
- "main": "index.cjs",
7
- "name": "@breez-sdk/postgres-token-store",
8
- "version": "1.0.0"
9
- }