@framers/sql-storage-adapter 0.7.2 → 0.7.4

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 (194) hide show
  1. package/README.md +41 -0
  2. package/dist/adapters/electron/preload.cjs +289 -0
  3. package/dist/adapters/electron/renderer.d.ts +9 -0
  4. package/dist/adapters/electron/renderer.d.ts.map +1 -0
  5. package/dist/adapters/electron/renderer.js +8 -0
  6. package/dist/adapters/electron/renderer.js.map +1 -0
  7. package/dist/cjs/adapters/__tests__/indexedDbAdapter.spec.d.ts +2 -0
  8. package/dist/cjs/adapters/__tests__/indexedDbAdapter.spec.js +133 -0
  9. package/dist/cjs/adapters/baseStorageAdapter.d.ts +368 -0
  10. package/dist/cjs/adapters/baseStorageAdapter.js +744 -0
  11. package/dist/cjs/adapters/betterSqliteAdapter.d.ts +124 -0
  12. package/dist/cjs/adapters/betterSqliteAdapter.js +334 -0
  13. package/dist/cjs/adapters/capacitorSqliteAdapter.d.ts +83 -0
  14. package/dist/cjs/adapters/capacitorSqliteAdapter.js +250 -0
  15. package/dist/cjs/adapters/electron/electronMainAdapter.d.ts +251 -0
  16. package/dist/cjs/adapters/electron/electronMainAdapter.js +392 -0
  17. package/dist/cjs/adapters/electron/electronRendererAdapter.d.ts +177 -0
  18. package/dist/cjs/adapters/electron/electronRendererAdapter.js +283 -0
  19. package/dist/cjs/adapters/electron/index.d.ts +74 -0
  20. package/dist/cjs/adapters/electron/index.js +86 -0
  21. package/dist/cjs/adapters/electron/ipc/channels.d.ts +196 -0
  22. package/dist/cjs/adapters/electron/ipc/channels.js +127 -0
  23. package/dist/cjs/adapters/electron/ipc/index.d.ts +11 -0
  24. package/dist/cjs/adapters/electron/ipc/index.js +38 -0
  25. package/dist/cjs/adapters/electron/ipc/protocol.d.ts +78 -0
  26. package/dist/cjs/adapters/electron/ipc/protocol.js +341 -0
  27. package/dist/cjs/adapters/electron/ipc/types.d.ts +248 -0
  28. package/dist/cjs/adapters/electron/ipc/types.js +15 -0
  29. package/dist/cjs/adapters/electron/migration/autoMigrator.d.ts +184 -0
  30. package/dist/cjs/adapters/electron/migration/autoMigrator.js +441 -0
  31. package/dist/cjs/adapters/electron/migration/index.d.ts +9 -0
  32. package/dist/cjs/adapters/electron/migration/index.js +29 -0
  33. package/dist/cjs/adapters/electron/preload.d.ts +126 -0
  34. package/dist/cjs/adapters/electron/preload.js +233 -0
  35. package/dist/cjs/adapters/electron/recovery/corruptionDetector.d.ts +214 -0
  36. package/dist/cjs/adapters/electron/recovery/corruptionDetector.js +359 -0
  37. package/dist/cjs/adapters/electron/recovery/index.d.ts +11 -0
  38. package/dist/cjs/adapters/electron/recovery/index.js +34 -0
  39. package/dist/cjs/adapters/electron/recovery/walCheckpoint.d.ts +186 -0
  40. package/dist/cjs/adapters/electron/recovery/walCheckpoint.js +263 -0
  41. package/dist/cjs/adapters/electron/renderer.d.ts +9 -0
  42. package/dist/cjs/adapters/electron/renderer.js +33 -0
  43. package/dist/cjs/adapters/electron/window/index.d.ts +9 -0
  44. package/dist/cjs/adapters/electron/window/index.js +29 -0
  45. package/dist/cjs/adapters/electron/window/windowManager.d.ts +190 -0
  46. package/dist/cjs/adapters/electron/window/windowManager.js +321 -0
  47. package/dist/cjs/adapters/indexedDbAdapter.d.ts +490 -0
  48. package/dist/cjs/adapters/indexedDbAdapter.js +993 -0
  49. package/dist/cjs/adapters/postgresAdapter.d.ts +424 -0
  50. package/dist/cjs/adapters/postgresAdapter.js +889 -0
  51. package/dist/cjs/adapters/sqlJsAdapter.d.ts +64 -0
  52. package/dist/cjs/adapters/sqlJsAdapter.js +268 -0
  53. package/dist/cjs/adapters/supabase.d.ts +58 -0
  54. package/dist/cjs/adapters/supabase.js +401 -0
  55. package/dist/cjs/codecs/BrowserBlobCodec.d.ts +14 -0
  56. package/dist/cjs/codecs/BrowserBlobCodec.js +57 -0
  57. package/dist/cjs/codecs/NodeBlobCodec.d.ts +14 -0
  58. package/dist/cjs/codecs/NodeBlobCodec.js +59 -0
  59. package/dist/cjs/core/contracts/blobCodec.d.ts +15 -0
  60. package/dist/cjs/core/contracts/blobCodec.js +15 -0
  61. package/dist/cjs/core/contracts/context.d.ts +221 -0
  62. package/dist/cjs/core/contracts/context.js +15 -0
  63. package/dist/cjs/core/contracts/dialect.d.ts +154 -0
  64. package/dist/cjs/core/contracts/dialect.js +15 -0
  65. package/dist/cjs/core/contracts/events.d.ts +225 -0
  66. package/dist/cjs/core/contracts/events.js +15 -0
  67. package/dist/cjs/core/contracts/exporter.d.ts +13 -0
  68. package/dist/cjs/core/contracts/exporter.js +15 -0
  69. package/dist/cjs/core/contracts/extensions.d.ts +73 -0
  70. package/dist/cjs/core/contracts/extensions.js +15 -0
  71. package/dist/cjs/core/contracts/features.d.ts +25 -0
  72. package/dist/cjs/core/contracts/features.js +61 -0
  73. package/dist/cjs/core/contracts/fts.d.ts +66 -0
  74. package/dist/cjs/core/contracts/fts.js +15 -0
  75. package/dist/cjs/core/contracts/hooks.d.ts +481 -0
  76. package/dist/cjs/core/contracts/hooks.js +140 -0
  77. package/dist/cjs/core/contracts/index.d.ts +260 -0
  78. package/dist/cjs/core/contracts/index.js +41 -0
  79. package/dist/cjs/core/contracts/limitations.d.ts +46 -0
  80. package/dist/cjs/core/contracts/limitations.js +218 -0
  81. package/dist/cjs/core/contracts/performance.d.ts +308 -0
  82. package/dist/cjs/core/contracts/performance.js +144 -0
  83. package/dist/cjs/core/database.d.ts +220 -0
  84. package/dist/cjs/core/database.js +136 -0
  85. package/dist/cjs/core/portable.d.ts +24 -0
  86. package/dist/cjs/core/portable.js +68 -0
  87. package/dist/cjs/core/resolver.d.ts +77 -0
  88. package/dist/cjs/core/resolver.js +235 -0
  89. package/dist/cjs/dialects/PostgresDialect.d.ts +35 -0
  90. package/dist/cjs/dialects/PostgresDialect.js +143 -0
  91. package/dist/cjs/dialects/SqliteDialect.d.ts +35 -0
  92. package/dist/cjs/dialects/SqliteDialect.js +142 -0
  93. package/dist/cjs/dialects/shared.d.ts +17 -0
  94. package/dist/cjs/dialects/shared.js +90 -0
  95. package/dist/cjs/exporters/PostgresExporter.d.ts +14 -0
  96. package/dist/cjs/exporters/PostgresExporter.js +61 -0
  97. package/dist/cjs/exporters/SqliteFileExporter.d.ts +16 -0
  98. package/dist/cjs/exporters/SqliteFileExporter.js +43 -0
  99. package/dist/cjs/features/auth/authJsAdapter.d.ts +110 -0
  100. package/dist/cjs/features/auth/authJsAdapter.js +251 -0
  101. package/dist/cjs/features/backup/cloudBackup.d.ts +219 -0
  102. package/dist/cjs/features/backup/cloudBackup.js +209 -0
  103. package/dist/cjs/features/kv/idb.d.ts +79 -0
  104. package/dist/cjs/features/kv/idb.js +32 -0
  105. package/dist/cjs/features/kv/index.d.ts +14 -0
  106. package/dist/cjs/features/kv/index.js +40 -0
  107. package/dist/cjs/features/kv/indexedDbKeyValueStore.d.ts +77 -0
  108. package/dist/cjs/features/kv/indexedDbKeyValueStore.js +116 -0
  109. package/dist/cjs/features/kv/keyValueStore.d.ts +48 -0
  110. package/dist/cjs/features/kv/keyValueStore.js +67 -0
  111. package/dist/cjs/features/kv/sqlKeyValueStore.d.ts +34 -0
  112. package/dist/cjs/features/kv/sqlKeyValueStore.js +81 -0
  113. package/dist/cjs/features/kv/valueCodec.d.ts +35 -0
  114. package/dist/cjs/features/kv/valueCodec.js +426 -0
  115. package/dist/cjs/features/migrations/dataExport.d.ts +77 -0
  116. package/dist/cjs/features/migrations/dataExport.js +194 -0
  117. package/dist/cjs/features/migrations/dataImport.d.ts +54 -0
  118. package/dist/cjs/features/migrations/dataImport.js +300 -0
  119. package/dist/cjs/features/migrations/migration.d.ts +89 -0
  120. package/dist/cjs/features/migrations/migration.js +187 -0
  121. package/dist/cjs/features/migrations/schemaMigrations.d.ts +93 -0
  122. package/dist/cjs/features/migrations/schemaMigrations.js +220 -0
  123. package/dist/cjs/features/sync/conflicts/conflictResolver.d.ts +222 -0
  124. package/dist/cjs/features/sync/conflicts/conflictResolver.js +366 -0
  125. package/dist/cjs/features/sync/conflicts/index.d.ts +9 -0
  126. package/dist/cjs/features/sync/conflicts/index.js +21 -0
  127. package/dist/cjs/features/sync/crossPlatformSync.d.ts +281 -0
  128. package/dist/cjs/features/sync/crossPlatformSync.js +551 -0
  129. package/dist/cjs/features/sync/devices/deviceManager.d.ts +243 -0
  130. package/dist/cjs/features/sync/devices/deviceManager.js +450 -0
  131. package/dist/cjs/features/sync/devices/index.d.ts +10 -0
  132. package/dist/cjs/features/sync/devices/index.js +21 -0
  133. package/dist/cjs/features/sync/index.d.ts +37 -0
  134. package/dist/cjs/features/sync/index.js +111 -0
  135. package/dist/cjs/features/sync/protocol/index.d.ts +11 -0
  136. package/dist/cjs/features/sync/protocol/index.js +23 -0
  137. package/dist/cjs/features/sync/protocol/messages.d.ts +348 -0
  138. package/dist/cjs/features/sync/protocol/messages.js +215 -0
  139. package/dist/cjs/features/sync/protocol/vectorClock.d.ts +164 -0
  140. package/dist/cjs/features/sync/protocol/vectorClock.js +256 -0
  141. package/dist/cjs/features/sync/syncManager.d.ts +348 -0
  142. package/dist/cjs/features/sync/syncManager.js +455 -0
  143. package/dist/cjs/features/sync/tables/index.d.ts +10 -0
  144. package/dist/cjs/features/sync/tables/index.js +21 -0
  145. package/dist/cjs/features/sync/tables/syncLogManager.d.ts +216 -0
  146. package/dist/cjs/features/sync/tables/syncLogManager.js +423 -0
  147. package/dist/cjs/features/sync/transport/httpTransport.d.ts +123 -0
  148. package/dist/cjs/features/sync/transport/httpTransport.js +346 -0
  149. package/dist/cjs/features/sync/transport/index.d.ts +12 -0
  150. package/dist/cjs/features/sync/transport/index.js +25 -0
  151. package/dist/cjs/features/sync/transport/transport.d.ts +259 -0
  152. package/dist/cjs/features/sync/transport/transport.js +163 -0
  153. package/dist/cjs/features/sync/transport/websocketTransport.d.ts +126 -0
  154. package/dist/cjs/features/sync/transport/websocketTransport.js +342 -0
  155. package/dist/cjs/fts/PostgresFts.d.ts +29 -0
  156. package/dist/cjs/fts/PostgresFts.js +77 -0
  157. package/dist/cjs/fts/SqliteFts5.d.ts +22 -0
  158. package/dist/cjs/fts/SqliteFts5.js +58 -0
  159. package/dist/cjs/index.d.ts +31 -0
  160. package/dist/cjs/index.js +103 -0
  161. package/dist/cjs/package.json +3 -0
  162. package/dist/cjs/shared/connectionGate.d.ts +94 -0
  163. package/dist/cjs/shared/connectionGate.js +77 -0
  164. package/dist/cjs/shared/errors.d.ts +23 -0
  165. package/dist/cjs/shared/errors.js +45 -0
  166. package/dist/cjs/shared/logger.d.ts +26 -0
  167. package/dist/cjs/shared/logger.js +40 -0
  168. package/dist/cjs/shared/parameterUtils.d.ts +16 -0
  169. package/dist/cjs/shared/parameterUtils.js +59 -0
  170. package/dist/cjs/shared/postgresTarget.d.ts +11 -0
  171. package/dist/cjs/shared/postgresTarget.js +30 -0
  172. package/dist/cjs/shared/segment.d.ts +43 -0
  173. package/dist/cjs/shared/segment.js +63 -0
  174. package/dist/cjs/shared/serializedTransaction.d.ts +14 -0
  175. package/dist/cjs/shared/serializedTransaction.js +74 -0
  176. package/dist/cjs/shared/splitSqlStatements.d.ts +27 -0
  177. package/dist/cjs/shared/splitSqlStatements.js +163 -0
  178. package/dist/cjs/shared/sqlPlaceholders.d.ts +48 -0
  179. package/dist/cjs/shared/sqlPlaceholders.js +263 -0
  180. package/dist/cjs/types/index.d.ts +29 -0
  181. package/dist/cjs/types/index.js +33 -0
  182. package/dist/core/portable.d.ts +24 -0
  183. package/dist/core/portable.d.ts.map +1 -0
  184. package/dist/core/portable.js +24 -0
  185. package/dist/core/portable.js.map +1 -0
  186. package/dist/features/auth/authJsAdapter.d.ts +110 -0
  187. package/dist/features/auth/authJsAdapter.d.ts.map +1 -0
  188. package/dist/features/auth/authJsAdapter.js +248 -0
  189. package/dist/features/auth/authJsAdapter.js.map +1 -0
  190. package/dist/index.d.ts +1 -0
  191. package/dist/index.d.ts.map +1 -1
  192. package/dist/index.js +1 -0
  193. package/dist/index.js.map +1 -1
  194. package/package.json +149 -24
@@ -0,0 +1,248 @@
1
+ import { createStorageFeatures } from '../../core/contracts/features.js';
2
+ const PREFIX = /^[A-Za-z_][A-Za-z0-9_]*$/;
3
+ const tablesFor = (options) => {
4
+ const prefix = options.tablePrefix ?? 'auth_';
5
+ if (!PREFIX.test(prefix)) {
6
+ throw new Error(`tablePrefix must be letters, digits and underscores, starting with a letter or an underscore; got ${JSON.stringify(prefix)}.`);
7
+ }
8
+ return {
9
+ users: `${prefix}users`,
10
+ accounts: `${prefix}accounts`,
11
+ sessions: `${prefix}sessions`,
12
+ verificationTokens: `${prefix}verification_tokens`,
13
+ };
14
+ };
15
+ /**
16
+ * The statements that create the adapter's tables and indexes on `db`'s
17
+ * engine, each `IF NOT EXISTS`, for a migration file or for
18
+ * ensureAuthJsTables.
19
+ */
20
+ export function authJsTablesSql(db, options = {}) {
21
+ const t = tablesFor(options);
22
+ const d = createStorageFeatures(db).dialect;
23
+ const timestamp = d.columnType('timestamp');
24
+ return [
25
+ `CREATE TABLE IF NOT EXISTS ${t.users} (id TEXT PRIMARY KEY, name TEXT, email TEXT UNIQUE, email_verified ${timestamp}, image TEXT)`,
26
+ `CREATE TABLE IF NOT EXISTS ${t.accounts} (
27
+ id TEXT PRIMARY KEY,
28
+ user_id TEXT NOT NULL REFERENCES ${t.users} (id) ON DELETE CASCADE,
29
+ type TEXT NOT NULL,
30
+ provider TEXT NOT NULL,
31
+ provider_account_id TEXT NOT NULL,
32
+ refresh_token TEXT,
33
+ access_token TEXT,
34
+ expires_at ${d.columnType('bigint')},
35
+ token_type TEXT,
36
+ scope TEXT,
37
+ id_token TEXT,
38
+ session_state TEXT,
39
+ UNIQUE (provider, provider_account_id)
40
+ )`,
41
+ `CREATE TABLE IF NOT EXISTS ${t.sessions} (session_token TEXT PRIMARY KEY, user_id TEXT NOT NULL REFERENCES ${t.users} (id) ON DELETE CASCADE, expires ${timestamp} NOT NULL)`,
42
+ `CREATE TABLE IF NOT EXISTS ${t.verificationTokens} (identifier TEXT NOT NULL, token TEXT NOT NULL, expires ${timestamp} NOT NULL, PRIMARY KEY (identifier, token))`,
43
+ `CREATE INDEX IF NOT EXISTS ${t.accounts}_user_id ON ${t.accounts} (user_id)`,
44
+ `CREATE INDEX IF NOT EXISTS ${t.sessions}_user_id ON ${t.sessions} (user_id)`,
45
+ ];
46
+ }
47
+ /** Creates the adapter's tables and indexes on `db` when they are missing. */
48
+ export async function ensureAuthJsTables(db, options = {}) {
49
+ for (const statement of authJsTablesSql(db, options)) {
50
+ await db.exec(statement);
51
+ }
52
+ }
53
+ /** A stored time as a Date: PostgreSQL returns one, SQLite ISO 8601 text. */
54
+ const toDate = (value) => value == null ? null : value instanceof Date ? value : new Date(String(value));
55
+ const toUser = (row) => ({
56
+ id: String(row.id),
57
+ name: row.name ?? null,
58
+ email: row.email,
59
+ emailVerified: toDate(row.email_verified),
60
+ image: row.image ?? null,
61
+ });
62
+ const toAccount = (row) => {
63
+ const account = {
64
+ userId: String(row.user_id),
65
+ type: row.type,
66
+ provider: row.provider,
67
+ providerAccountId: row.provider_account_id,
68
+ };
69
+ for (const field of ['refresh_token', 'access_token', 'token_type', 'scope', 'id_token', 'session_state']) {
70
+ if (row[field] != null)
71
+ account[field] = String(row[field]);
72
+ }
73
+ // PostgreSQL returns a BIGINT as text.
74
+ if (row.expires_at != null)
75
+ account.expires_at = Number(row.expires_at);
76
+ return account;
77
+ };
78
+ const toSession = (row) => ({
79
+ sessionToken: row.session_token,
80
+ userId: String(row.user_id),
81
+ expires: toDate(row.expires),
82
+ });
83
+ const toVerificationToken = (row) => ({
84
+ identifier: row.identifier,
85
+ token: row.token,
86
+ expires: toDate(row.expires),
87
+ });
88
+ const defaultId = () => {
89
+ const random = globalThis.crypto?.randomUUID;
90
+ if (!random)
91
+ throw new Error('crypto.randomUUID() is not available; pass generateId.');
92
+ return random.call(globalThis.crypto);
93
+ };
94
+ /**
95
+ * An Auth.js database adapter that keeps users, accounts, sessions and
96
+ * verification tokens in `db`, on PostgreSQL or SQLite. Create the tables
97
+ * first with ensureAuthJsTables (or authJsTablesSql in a migration).
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * import NextAuth from 'next-auth';
102
+ * import { createDatabase } from '@framers/sql-storage-adapter';
103
+ * import { createAuthJsAdapter, ensureAuthJsTables } from '@framers/sql-storage-adapter/authjs';
104
+ *
105
+ * const db = await createDatabase({ url: process.env.DATABASE_URL, strict: true });
106
+ * await ensureAuthJsTables(db);
107
+ * export const { handlers, auth } = NextAuth({ adapter: createAuthJsAdapter(db), providers: [] });
108
+ * ```
109
+ */
110
+ export function createAuthJsAdapter(db, options = {}) {
111
+ const t = tablesFor(options);
112
+ const generateId = options.generateId ?? defaultId;
113
+ const getUser = async (id) => {
114
+ const row = await db.get(`SELECT * FROM ${t.users} WHERE id = ?`, [id]);
115
+ return row ? toUser(row) : null;
116
+ };
117
+ const getSession = async (sessionToken) => {
118
+ const row = await db.get(`SELECT * FROM ${t.sessions} WHERE session_token = ?`, [sessionToken]);
119
+ return row ? toSession(row) : null;
120
+ };
121
+ return {
122
+ async createUser(user) {
123
+ const id = user.id ?? generateId();
124
+ await db.run(`INSERT INTO ${t.users} (id, name, email, email_verified, image) VALUES (?, ?, ?, ?, ?)`, [
125
+ id,
126
+ user.name ?? null,
127
+ user.email,
128
+ user.emailVerified ?? null,
129
+ user.image ?? null,
130
+ ]);
131
+ return (await getUser(id));
132
+ },
133
+ getUser,
134
+ async getUserByEmail(email) {
135
+ const row = await db.get(`SELECT * FROM ${t.users} WHERE email = ?`, [email]);
136
+ return row ? toUser(row) : null;
137
+ },
138
+ async getUserByAccount({ provider, providerAccountId }) {
139
+ const row = await db.get(`SELECT u.* FROM ${t.users} u JOIN ${t.accounts} a ON a.user_id = u.id WHERE a.provider = ? AND a.provider_account_id = ?`, [provider, providerAccountId]);
140
+ return row ? toUser(row) : null;
141
+ },
142
+ async updateUser(user) {
143
+ const fields = [];
144
+ if ('name' in user)
145
+ fields.push(['name', user.name ?? null]);
146
+ if ('email' in user)
147
+ fields.push(['email', user.email]);
148
+ if ('emailVerified' in user)
149
+ fields.push(['email_verified', user.emailVerified ?? null]);
150
+ if ('image' in user)
151
+ fields.push(['image', user.image ?? null]);
152
+ if (fields.length) {
153
+ await db.run(`UPDATE ${t.users} SET ${fields.map(([column]) => `${column} = ?`).join(', ')} WHERE id = ?`, [
154
+ ...fields.map(([, value]) => value),
155
+ user.id,
156
+ ]);
157
+ }
158
+ const updated = await getUser(user.id);
159
+ if (!updated)
160
+ throw new Error(`No user with id ${JSON.stringify(user.id)} to update.`);
161
+ return updated;
162
+ },
163
+ async deleteUser(userId) {
164
+ // Explicit deletes: sql.js and IndexedDB leave foreign keys off, so ON DELETE CASCADE would not run there.
165
+ return db.transaction(async (trx) => {
166
+ const row = await trx.get(`SELECT * FROM ${t.users} WHERE id = ?`, [userId]);
167
+ await trx.run(`DELETE FROM ${t.sessions} WHERE user_id = ?`, [userId]);
168
+ await trx.run(`DELETE FROM ${t.accounts} WHERE user_id = ?`, [userId]);
169
+ await trx.run(`DELETE FROM ${t.users} WHERE id = ?`, [userId]);
170
+ return row ? toUser(row) : null;
171
+ });
172
+ },
173
+ async linkAccount(account) {
174
+ await db.run(`INSERT INTO ${t.accounts} (id, user_id, type, provider, provider_account_id, refresh_token, access_token, expires_at, token_type, scope, id_token, session_state)
175
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
176
+ generateId(),
177
+ account.userId,
178
+ account.type,
179
+ account.provider,
180
+ account.providerAccountId,
181
+ account.refresh_token ?? null,
182
+ account.access_token ?? null,
183
+ account.expires_at ?? null,
184
+ account.token_type ?? null,
185
+ account.scope ?? null,
186
+ account.id_token ?? null,
187
+ account.session_state ?? null,
188
+ ]);
189
+ return account;
190
+ },
191
+ async unlinkAccount({ provider, providerAccountId }) {
192
+ await db.run(`DELETE FROM ${t.accounts} WHERE provider = ? AND provider_account_id = ?`, [provider, providerAccountId]);
193
+ },
194
+ async getAccount(providerAccountId, provider) {
195
+ const row = await db.get(`SELECT * FROM ${t.accounts} WHERE provider = ? AND provider_account_id = ?`, [
196
+ provider,
197
+ providerAccountId,
198
+ ]);
199
+ return row ? toAccount(row) : null;
200
+ },
201
+ async createSession(session) {
202
+ await db.run(`INSERT INTO ${t.sessions} (session_token, user_id, expires) VALUES (?, ?, ?)`, [
203
+ session.sessionToken,
204
+ session.userId,
205
+ session.expires,
206
+ ]);
207
+ return { sessionToken: session.sessionToken, userId: session.userId, expires: session.expires };
208
+ },
209
+ async getSessionAndUser(sessionToken) {
210
+ const session = await getSession(sessionToken);
211
+ if (!session)
212
+ return null;
213
+ const user = await getUser(session.userId);
214
+ return user ? { session, user } : null;
215
+ },
216
+ async updateSession(session) {
217
+ const fields = [];
218
+ if (session.expires !== undefined)
219
+ fields.push(['expires', session.expires]);
220
+ if (session.userId !== undefined)
221
+ fields.push(['user_id', session.userId]);
222
+ if (fields.length) {
223
+ await db.run(`UPDATE ${t.sessions} SET ${fields.map(([column]) => `${column} = ?`).join(', ')} WHERE session_token = ?`, [
224
+ ...fields.map(([, value]) => value),
225
+ session.sessionToken,
226
+ ]);
227
+ }
228
+ return getSession(session.sessionToken);
229
+ },
230
+ async deleteSession(sessionToken) {
231
+ await db.run(`DELETE FROM ${t.sessions} WHERE session_token = ?`, [sessionToken]);
232
+ },
233
+ async createVerificationToken(token) {
234
+ await db.run(`INSERT INTO ${t.verificationTokens} (identifier, token, expires) VALUES (?, ?, ?)`, [
235
+ token.identifier,
236
+ token.token,
237
+ token.expires,
238
+ ]);
239
+ return { identifier: token.identifier, token: token.token, expires: token.expires };
240
+ },
241
+ async useVerificationToken({ identifier, token }) {
242
+ // One statement: a token is used once, however many requests race for it.
243
+ const row = await db.get(`DELETE FROM ${t.verificationTokens} WHERE identifier = ? AND token = ? RETURNING identifier, token, expires`, [identifier, token]);
244
+ return row ? toVerificationToken(row) : null;
245
+ },
246
+ };
247
+ }
248
+ //# sourceMappingURL=authJsAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authJsAdapter.js","sourceRoot":"","sources":["../../../src/features/auth/authJsAdapter.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export * from './features/migrations/dataExport.js';
13
13
  export * from './features/migrations/dataImport.js';
14
14
  export * from './features/migrations/migration.js';
15
15
  export * from './features/migrations/schemaMigrations.js';
16
+ export * from './features/auth/authJsAdapter.js';
16
17
  export * from './features/sync/syncManager.js';
17
18
  export * from './shared/parameterUtils.js';
18
19
  export { segmentFilePath, segmentName, validateSegment } from './shared/segment.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAQ9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,6BAA6B,CAAC;AAM5C,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMjF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAQ9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAM5C,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMjF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ export * from './features/migrations/dataExport.js';
21
21
  export * from './features/migrations/dataImport.js';
22
22
  export * from './features/migrations/migration.js';
23
23
  export * from './features/migrations/schemaMigrations.js';
24
+ export * from './features/auth/authJsAdapter.js';
24
25
  export * from './features/sync/syncManager.js';
25
26
  // Note: Cross-platform sync is available via separate entry point for cleaner imports.
26
27
  // Usage: import { createCrossPlatformSync } from '@framers/sql-storage-adapter/sync';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,cAAc,SAAS,CAAC;AAExB,8EAA8E;AAC9E,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,+EAA+E;AAC/E,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAE9C,wEAAwE;AACxE,yDAAyD;AACzD,2HAA2H;AAC3H,mEAAmE;AAEnE,+EAA+E;AAC/E,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,6BAA6B,CAAC;AAE5C,uFAAuF;AACvF,sFAAsF;AAEtF,+EAA+E;AAC/E,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEjF,6FAA6F;AAC7F,uGAAuG;AAEvG,iFAAiF;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAsB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,cAAc,SAAS,CAAC;AAExB,8EAA8E;AAC9E,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,+EAA+E;AAC/E,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAE9C,wEAAwE;AACxE,yDAAyD;AACzD,2HAA2H;AAC3H,mEAAmE;AAEnE,+EAA+E;AAC/E,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAE5C,uFAAuF;AACvF,sFAAsF;AAEtF,+EAA+E;AAC/E,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEjF,6FAA6F;AAC7F,uGAAuG;AAEvG,iFAAiF;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAsB,MAAM,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,41 +1,161 @@
1
1
  {
2
2
  "name": "@framers/sql-storage-adapter",
3
- "version": "0.7.2",
3
+ "version": "0.7.4",
4
4
  "description": "Robust cross-platform SQL storage abstraction with automatic fallbacks and runtime detection",
5
5
  "type": "module",
6
- "main": "dist/index.js",
6
+ "main": "dist/cjs/index.js",
7
7
  "module": "dist/index.js",
8
8
  "types": "dist/index.d.ts",
9
9
  "exports": {
10
10
  ".": {
11
- "types": "./dist/index.d.ts",
12
- "import": "./dist/index.js",
13
- "default": "./dist/index.js"
11
+ "import": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "require": {
16
+ "types": "./dist/cjs/index.d.ts",
17
+ "default": "./dist/cjs/index.js"
18
+ }
19
+ },
20
+ "./core": {
21
+ "import": {
22
+ "types": "./dist/core/portable.d.ts",
23
+ "default": "./dist/core/portable.js"
24
+ },
25
+ "require": {
26
+ "types": "./dist/cjs/core/portable.d.ts",
27
+ "default": "./dist/cjs/core/portable.js"
28
+ }
29
+ },
30
+ "./postgres": {
31
+ "import": {
32
+ "types": "./dist/adapters/postgresAdapter.d.ts",
33
+ "default": "./dist/adapters/postgresAdapter.js"
34
+ },
35
+ "require": {
36
+ "types": "./dist/cjs/adapters/postgresAdapter.d.ts",
37
+ "default": "./dist/cjs/adapters/postgresAdapter.js"
38
+ }
39
+ },
40
+ "./better-sqlite3": {
41
+ "import": {
42
+ "types": "./dist/adapters/betterSqliteAdapter.d.ts",
43
+ "default": "./dist/adapters/betterSqliteAdapter.js"
44
+ },
45
+ "require": {
46
+ "types": "./dist/cjs/adapters/betterSqliteAdapter.d.ts",
47
+ "default": "./dist/cjs/adapters/betterSqliteAdapter.js"
48
+ }
49
+ },
50
+ "./sqljs": {
51
+ "import": {
52
+ "types": "./dist/adapters/sqlJsAdapter.d.ts",
53
+ "default": "./dist/adapters/sqlJsAdapter.js"
54
+ },
55
+ "require": {
56
+ "types": "./dist/cjs/adapters/sqlJsAdapter.d.ts",
57
+ "default": "./dist/cjs/adapters/sqlJsAdapter.js"
58
+ }
59
+ },
60
+ "./indexeddb": {
61
+ "import": {
62
+ "types": "./dist/adapters/indexedDbAdapter.d.ts",
63
+ "default": "./dist/adapters/indexedDbAdapter.js"
64
+ },
65
+ "require": {
66
+ "types": "./dist/cjs/adapters/indexedDbAdapter.d.ts",
67
+ "default": "./dist/cjs/adapters/indexedDbAdapter.js"
68
+ }
69
+ },
70
+ "./capacitor": {
71
+ "import": {
72
+ "types": "./dist/adapters/capacitorSqliteAdapter.d.ts",
73
+ "default": "./dist/adapters/capacitorSqliteAdapter.js"
74
+ },
75
+ "require": {
76
+ "types": "./dist/cjs/adapters/capacitorSqliteAdapter.d.ts",
77
+ "default": "./dist/cjs/adapters/capacitorSqliteAdapter.js"
78
+ }
79
+ },
80
+ "./backup": {
81
+ "import": {
82
+ "types": "./dist/features/backup/cloudBackup.d.ts",
83
+ "default": "./dist/features/backup/cloudBackup.js"
84
+ },
85
+ "require": {
86
+ "types": "./dist/cjs/features/backup/cloudBackup.d.ts",
87
+ "default": "./dist/cjs/features/backup/cloudBackup.js"
88
+ }
89
+ },
90
+ "./authjs": {
91
+ "import": {
92
+ "types": "./dist/features/auth/authJsAdapter.d.ts",
93
+ "default": "./dist/features/auth/authJsAdapter.js"
94
+ },
95
+ "require": {
96
+ "types": "./dist/cjs/features/auth/authJsAdapter.d.ts",
97
+ "default": "./dist/cjs/features/auth/authJsAdapter.js"
98
+ }
14
99
  },
15
100
  "./types": {
16
- "types": "./dist/types/index.d.ts",
17
- "import": "./dist/types/index.js",
18
- "default": "./dist/types/index.js"
101
+ "import": {
102
+ "types": "./dist/types/index.d.ts",
103
+ "default": "./dist/types/index.js"
104
+ },
105
+ "require": {
106
+ "types": "./dist/cjs/types/index.d.ts",
107
+ "default": "./dist/cjs/types/index.js"
108
+ }
19
109
  },
20
110
  "./electron": {
21
- "types": "./dist/adapters/electron/index.d.ts",
22
- "import": "./dist/adapters/electron/index.js",
23
- "default": "./dist/adapters/electron/index.js"
111
+ "import": {
112
+ "types": "./dist/adapters/electron/index.d.ts",
113
+ "default": "./dist/adapters/electron/index.js"
114
+ },
115
+ "require": {
116
+ "types": "./dist/cjs/adapters/electron/index.d.ts",
117
+ "default": "./dist/cjs/adapters/electron/index.js"
118
+ }
119
+ },
120
+ "./electron/renderer": {
121
+ "import": {
122
+ "types": "./dist/adapters/electron/renderer.d.ts",
123
+ "default": "./dist/adapters/electron/renderer.js"
124
+ },
125
+ "require": {
126
+ "types": "./dist/cjs/adapters/electron/renderer.d.ts",
127
+ "default": "./dist/cjs/adapters/electron/renderer.js"
128
+ }
24
129
  },
25
130
  "./electron/preload": {
26
- "types": "./dist/adapters/electron/preload.d.ts",
27
- "import": "./dist/adapters/electron/preload.js",
28
- "default": "./dist/adapters/electron/preload.js"
131
+ "import": {
132
+ "types": "./dist/adapters/electron/preload.d.ts",
133
+ "default": "./dist/adapters/electron/preload.js"
134
+ },
135
+ "require": {
136
+ "types": "./dist/cjs/adapters/electron/preload.d.ts",
137
+ "default": "./dist/adapters/electron/preload.cjs"
138
+ }
29
139
  },
30
140
  "./sync": {
31
- "types": "./dist/features/sync/index.d.ts",
32
- "import": "./dist/features/sync/index.js",
33
- "default": "./dist/features/sync/index.js"
141
+ "import": {
142
+ "types": "./dist/features/sync/index.d.ts",
143
+ "default": "./dist/features/sync/index.js"
144
+ },
145
+ "require": {
146
+ "types": "./dist/cjs/features/sync/index.d.ts",
147
+ "default": "./dist/cjs/features/sync/index.js"
148
+ }
34
149
  },
35
150
  "./kv": {
36
- "types": "./dist/features/kv/index.d.ts",
37
- "import": "./dist/features/kv/index.js",
38
- "default": "./dist/features/kv/index.js"
151
+ "import": {
152
+ "types": "./dist/features/kv/index.d.ts",
153
+ "default": "./dist/features/kv/index.js"
154
+ },
155
+ "require": {
156
+ "types": "./dist/cjs/features/kv/index.d.ts",
157
+ "default": "./dist/cjs/features/kv/index.js"
158
+ }
39
159
  },
40
160
  "./package.json": "./package.json"
41
161
  },
@@ -44,7 +164,7 @@
44
164
  ],
45
165
  "scripts": {
46
166
  "clean": "rimraf dist tsconfig.build.tsbuildinfo",
47
- "build": "npm run clean && npx tsc -p tsconfig.build.json && node scripts/fix-esm-imports.mjs",
167
+ "build": "npm run clean && npx tsc -p tsconfig.build.json && node scripts/fix-esm-imports.mjs && node scripts/build-cjs.mjs",
48
168
  "prepare": "test -d dist || npm run build",
49
169
  "prepublishOnly": "npm run build && npm run test",
50
170
  "lint": "eslint \"src/**/*.{ts,tsx}\"",
@@ -99,7 +219,11 @@
99
219
  "email": "team@frame.dev"
100
220
  },
101
221
  "homepage": "https://framerslab.github.io/sql-storage-adapter/",
102
- "sideEffects": false,
222
+ "sideEffects": [
223
+ "./dist/adapters/electron/preload.js",
224
+ "./dist/adapters/electron/preload.cjs",
225
+ "./dist/cjs/adapters/electron/preload.js"
226
+ ],
103
227
  "devDependencies": {
104
228
  "@aws-sdk/client-s3": "^3.709.0",
105
229
  "better-sqlite3": "^13.0.3",
@@ -129,7 +253,8 @@
129
253
  "typescript-eslint": "^8.46.2",
130
254
  "vitest": "^3.2.7",
131
255
  "@vitest/browser": "^3.2.7",
132
- "playwright": "~1.63.0"
256
+ "playwright": "~1.63.0",
257
+ "esbuild": "^0.28.2"
133
258
  },
134
259
  "dependencies": {
135
260
  "pg": "^8.13.1",
@@ -137,7 +262,7 @@
137
262
  },
138
263
  "peerDependencies": {
139
264
  "@aws-sdk/client-s3": "^3.0.0",
140
- "@capacitor-community/sqlite": "^6.0.0",
265
+ "@capacitor-community/sqlite": "^6.0.0 || ^7.0.0 || ^8.0.0",
141
266
  "better-sqlite3": "^12.0.0 || ^13.0.0",
142
267
  "electron": ">=20.0.0",
143
268
  "pg": "^8.13.1"