hazo_connect 2.2.0 → 2.3.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 (46) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +563 -0
  3. package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
  4. package/dist/adapters/sqlite-adapter.js +37 -2
  5. package/dist/adapters/sqlite-adapter.js.map +1 -1
  6. package/dist/factory.d.ts +1 -0
  7. package/dist/factory.d.ts.map +1 -1
  8. package/dist/factory.js +51 -9
  9. package/dist/factory.js.map +1 -1
  10. package/dist/nextjs/index.d.ts +2 -0
  11. package/dist/nextjs/index.d.ts.map +1 -1
  12. package/dist/nextjs/index.js +10 -1
  13. package/dist/nextjs/index.js.map +1 -1
  14. package/dist/nextjs/route-setup.d.ts +46 -0
  15. package/dist/nextjs/route-setup.d.ts.map +1 -0
  16. package/dist/nextjs/route-setup.js +141 -0
  17. package/dist/nextjs/route-setup.js.map +1 -0
  18. package/dist/nextjs/setup-helpers.d.ts +86 -0
  19. package/dist/nextjs/setup-helpers.d.ts.map +1 -0
  20. package/dist/nextjs/setup-helpers.js +174 -0
  21. package/dist/nextjs/setup-helpers.js.map +1 -0
  22. package/dist/server/index.d.ts +2 -1
  23. package/dist/server/index.d.ts.map +1 -1
  24. package/dist/server/index.js +7 -1
  25. package/dist/server/index.js.map +1 -1
  26. package/dist/sqlite/admin-service.d.ts +8 -0
  27. package/dist/sqlite/admin-service.d.ts.map +1 -1
  28. package/dist/sqlite/admin-service.js +39 -1
  29. package/dist/sqlite/admin-service.js.map +1 -1
  30. package/dist/utils/config-validator.d.ts +39 -0
  31. package/dist/utils/config-validator.d.ts.map +1 -0
  32. package/dist/utils/config-validator.js +78 -0
  33. package/dist/utils/config-validator.js.map +1 -0
  34. package/docs/examples/nextjs-admin-ui-setup.ts +199 -0
  35. package/docs/examples/nextjs-api-route.ts +205 -0
  36. package/docs/examples/nextjs-crud-service.ts +257 -0
  37. package/docs/examples/nextjs-server-component.tsx +123 -0
  38. package/docs/examples/nextjs-singleton-pattern.ts +166 -0
  39. package/docs/migration-guide.md +272 -0
  40. package/docs/nextjs-setup.md +471 -0
  41. package/docs/techdoc.md +824 -0
  42. package/docs/troubleshooting.md +442 -0
  43. package/docs/types.md +490 -0
  44. package/package.json +16 -4
  45. package/scripts/postinstall-setup.js +72 -0
  46. package/scripts/setup-routes.js +123 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 pub12
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,563 @@
1
+ # Hazo Connect
2
+
3
+ A fully independent database abstraction layer with query builder interface for Node.js and Next.js applications. Supports multiple database backends including PostgreSQL (via PostgREST), SQLite, and Supabase.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Features](#features)
8
+ - [Installation](#installation)
9
+ - [Quick Start](#quick-start)
10
+ - [Entry Points](#entry-points)
11
+ - [Usage Examples](#usage-examples)
12
+ - [Basic Query Builder](#basic-query-builder)
13
+ - [CRUD Operations](#crud-operations)
14
+ - [CRUD Service Helper](#crud-service-helper)
15
+ - [Singleton Pattern](#singleton-pattern)
16
+ - [Next.js API Routes](#nextjs-api-routes)
17
+ - [Configuration](#configuration)
18
+ - [SQLite](#sqlite-configuration)
19
+ - [PostgREST](#postgrest-configuration)
20
+ - [Supabase](#supabase-configuration)
21
+ - [Environment Variables](#environment-variables)
22
+ - [Key Interfaces](#key-interfaces)
23
+ - [Services](#services)
24
+ - [SQLite Admin UI](#sqlite-admin-ui)
25
+ - [Supported Operators](#supported-operators)
26
+ - [Server-Side Enforcement](#server-side-enforcement)
27
+ - [Documentation](#documentation)
28
+
29
+ ---
30
+
31
+ ## Features
32
+
33
+ - **Query Builder API**: Fluent interface supporting full PostgREST syntax
34
+ - **Multiple Adapters**: Support for PostgREST, Supabase, SQLite, and file storage
35
+ - **Server-Side Only**: Enforced server-side usage with runtime guards and Next.js `'use server'` directives
36
+ - **Zero Dependencies**: Core component has no external dependencies (only Node.js built-ins)
37
+ - **Dependency Injection**: Logger and configuration injected, not imported
38
+ - **Type Safe**: Full TypeScript support with comprehensive type definitions
39
+ - **SQLite Admin UI**: Built-in admin interface for browsing and managing SQLite databases
40
+ - **Singleton Pattern**: Built-in support for connection pooling across API routes
41
+
42
+ ---
43
+
44
+ ## Installation
45
+
46
+ ```bash
47
+ npm install hazo_connect
48
+ ```
49
+
50
+ ### Peer Dependencies (Optional)
51
+
52
+ If you're using the SQLite admin UI, install these peer dependencies:
53
+
54
+ ```bash
55
+ npm install next@>=14.0.0 react@>=18.0.0 react-dom@>=18.0.0 lucide-react@^0.553.0 sonner@^2.0.7
56
+ ```
57
+
58
+ **Note:** The core library (database adapters and query builder) has no peer dependencies.
59
+
60
+ ---
61
+
62
+ ## Quick Start
63
+
64
+ ### 1. Set Environment Variables
65
+
66
+ ```bash
67
+ # .env.local
68
+ HAZO_CONNECT_TYPE=sqlite
69
+ HAZO_CONNECT_SQLITE_PATH=./database.sqlite
70
+ HAZO_CONNECT_ENABLE_ADMIN_UI=true
71
+ ```
72
+
73
+ ### 2. Use in API Route
74
+
75
+ ```typescript
76
+ import { createHazoConnectFromEnv } from 'hazo_connect/nextjs/setup'
77
+ import { QueryBuilder } from 'hazo_connect/server'
78
+ import { NextResponse } from 'next/server'
79
+
80
+ export async function GET() {
81
+ const hazo = createHazoConnectFromEnv()
82
+ const users = await hazo.query(new QueryBuilder().from('users'))
83
+ return NextResponse.json({ data: users })
84
+ }
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Entry Points
90
+
91
+ `hazo_connect` provides multiple entry points for different use cases:
92
+
93
+ | Entry Point | Purpose | Use Case |
94
+ |-------------|---------|----------|
95
+ | `hazo_connect` | Types only | Client components (type imports) |
96
+ | `hazo_connect/server` | Server-side functionality | API routes, Server Components |
97
+ | `hazo_connect/nextjs` | Next.js helpers | API route handlers |
98
+ | `hazo_connect/nextjs/setup` | Setup utilities | Environment-based config, singleton pattern |
99
+ | `hazo_connect/ui` | UI-safe types | Client component type imports |
100
+
101
+ ### Import Examples
102
+
103
+ ```typescript
104
+ // Server-side code (API routes, Server Components)
105
+ import { createHazoConnect, QueryBuilder, createCrudService } from 'hazo_connect/server'
106
+
107
+ // Next.js setup helpers
108
+ import { createHazoConnectFromEnv, getHazoConnectSingleton } from 'hazo_connect/nextjs/setup'
109
+
110
+ // API route handlers
111
+ import { createApiRouteHandler, getServerHazoConnect } from 'hazo_connect/nextjs'
112
+
113
+ // Client component types only
114
+ import type { HazoConnectConfig, TableSummary } from 'hazo_connect/ui'
115
+ ```
116
+
117
+ ---
118
+
119
+ ## Usage Examples
120
+
121
+ ### Basic Query Builder
122
+
123
+ ```typescript
124
+ import { createHazoConnect, QueryBuilder } from 'hazo_connect/server'
125
+
126
+ const hazo = createHazoConnect({
127
+ type: 'sqlite',
128
+ sqlite: { database_path: './database.sqlite' }
129
+ })
130
+
131
+ // Simple select
132
+ const users = await hazo.query(
133
+ new QueryBuilder()
134
+ .from('users')
135
+ .select(['id', 'name', 'email'])
136
+ )
137
+
138
+ // With filters
139
+ const user = await hazo.query(
140
+ new QueryBuilder()
141
+ .from('users')
142
+ .where('id', 'eq', '123')
143
+ )
144
+
145
+ // With ordering and pagination
146
+ const paginatedUsers = await hazo.query(
147
+ new QueryBuilder()
148
+ .from('users')
149
+ .order('created_at', 'desc')
150
+ .limit(10)
151
+ .offset(20)
152
+ )
153
+
154
+ // Multiple conditions
155
+ const activeAdmins = await hazo.query(
156
+ new QueryBuilder()
157
+ .from('users')
158
+ .where('status', 'eq', 'active')
159
+ .where('role', 'eq', 'admin')
160
+ )
161
+
162
+ // Nested selects (PostgREST)
163
+ const pagesWithImages = await hazo.query(
164
+ new QueryBuilder()
165
+ .from('template_pages')
166
+ .nestedSelect('images', ['id', 'filename'])
167
+ )
168
+ ```
169
+
170
+ ### CRUD Operations
171
+
172
+ ```typescript
173
+ // CREATE - Insert a record
174
+ const newUser = await hazo.query(
175
+ new QueryBuilder().from('users'),
176
+ 'POST',
177
+ { name: 'John Doe', email: 'john@example.com' }
178
+ )
179
+
180
+ // READ - Select records
181
+ const users = await hazo.query(
182
+ new QueryBuilder().from('users').where('status', 'eq', 'active')
183
+ )
184
+
185
+ // UPDATE - Uses 'PATCH' method (not 'update')
186
+ const updated = await hazo.query(
187
+ new QueryBuilder()
188
+ .from('users')
189
+ .where('id', 'eq', '123'),
190
+ 'PATCH',
191
+ { name: 'Jane Doe', email: 'jane@example.com' }
192
+ )
193
+
194
+ // DELETE - Uses 'DELETE' method (not 'delete')
195
+ await hazo.query(
196
+ new QueryBuilder()
197
+ .from('users')
198
+ .where('id', 'eq', '123'),
199
+ 'DELETE'
200
+ )
201
+ ```
202
+
203
+ **Important:**
204
+ - Updates use `PATCH` method, not `update()`
205
+ - Deletes use `DELETE` method, not `delete()`
206
+ - Always use `.where()` to specify which rows to update/delete
207
+
208
+ ### CRUD Service Helper
209
+
210
+ For simpler CRUD operations, use the `createCrudService` helper:
211
+
212
+ ```typescript
213
+ import { createHazoConnect, createCrudService } from 'hazo_connect/server'
214
+
215
+ const hazo = createHazoConnect({ type: 'sqlite', sqlite: { database_path: './db.sqlite' } })
216
+ const userService = createCrudService(hazo, 'users')
217
+
218
+ // List all records
219
+ const allUsers = await userService.list()
220
+
221
+ // Find by ID
222
+ const user = await userService.findById('123')
223
+
224
+ // Find by criteria
225
+ const admins = await userService.findBy({ role: 'admin' })
226
+
227
+ // Insert
228
+ const newUser = await userService.insert({ name: 'John', email: 'john@example.com' })
229
+
230
+ // Update by ID - method is updateById() (not update())
231
+ await userService.updateById('123', { name: 'Jane' })
232
+
233
+ // Delete by ID - method is deleteById() (not delete())
234
+ await userService.deleteById('123')
235
+
236
+ // Custom query
237
+ const customQuery = userService.query()
238
+ .where('status', 'eq', 'active')
239
+ .order('created_at', 'desc')
240
+ .limit(5)
241
+ const result = await customQuery.execute('GET')
242
+ ```
243
+
244
+ ### Singleton Pattern
245
+
246
+ For multiple API routes sharing a database connection:
247
+
248
+ ```typescript
249
+ // lib/hazo_connect.ts
250
+ import { getHazoConnectSingleton } from 'hazo_connect/nextjs/setup'
251
+
252
+ export const hazo = getHazoConnectSingleton({
253
+ enableAdminUi: true
254
+ })
255
+ ```
256
+
257
+ ```typescript
258
+ // app/api/users/route.ts
259
+ import { hazo } from '@/lib/hazo_connect'
260
+ import { QueryBuilder } from 'hazo_connect/server'
261
+ import { NextResponse } from 'next/server'
262
+
263
+ export async function GET() {
264
+ const users = await hazo.query(new QueryBuilder().from('users'))
265
+ return NextResponse.json({ data: users })
266
+ }
267
+ ```
268
+
269
+ ### Next.js API Routes
270
+
271
+ #### Using createApiRouteHandler
272
+
273
+ ```typescript
274
+ import { createApiRouteHandler } from 'hazo_connect/nextjs'
275
+ import { QueryBuilder } from 'hazo_connect/server'
276
+ import { NextResponse } from 'next/server'
277
+
278
+ export const GET = createApiRouteHandler(
279
+ async (hazo, request) => {
280
+ const users = await hazo.query(
281
+ new QueryBuilder().from('users').select('*')
282
+ )
283
+ return NextResponse.json({ data: users })
284
+ },
285
+ {
286
+ config: {
287
+ type: 'sqlite',
288
+ sqlite: { database_path: './database.sqlite' }
289
+ }
290
+ }
291
+ )
292
+ ```
293
+
294
+ #### Using getServerHazoConnect
295
+
296
+ ```typescript
297
+ import { getServerHazoConnect } from 'hazo_connect/nextjs'
298
+ import { QueryBuilder } from 'hazo_connect/server'
299
+ import { NextResponse } from 'next/server'
300
+
301
+ export async function GET() {
302
+ const hazo = getServerHazoConnect({
303
+ type: 'sqlite',
304
+ sqlite: { database_path: './database.sqlite' }
305
+ })
306
+
307
+ const users = await hazo.query(
308
+ new QueryBuilder().from('users').select('*')
309
+ )
310
+
311
+ return NextResponse.json({ data: users })
312
+ }
313
+ ```
314
+
315
+ ---
316
+
317
+ ## Configuration
318
+
319
+ ### SQLite Configuration
320
+
321
+ ```typescript
322
+ import { createHazoConnect } from 'hazo_connect/server'
323
+
324
+ const hazo = createHazoConnect({
325
+ type: 'sqlite',
326
+ enable_admin_ui: true, // Enable admin UI (default: false)
327
+ sqlite: {
328
+ database_path: '/path/to/database.db', // Optional - in-memory when omitted
329
+ read_only: false, // Prevent writes when true
330
+ initial_sql: [ // Optional seed statements
331
+ `CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT);`
332
+ ],
333
+ wasm_directory: '/path/to/sql.js/dist' // Optional WASM override
334
+ }
335
+ })
336
+ ```
337
+
338
+ ### PostgREST Configuration
339
+
340
+ ```typescript
341
+ const hazo = createHazoConnect({
342
+ type: 'postgrest',
343
+ postgrest: {
344
+ base_url: 'http://localhost:3000',
345
+ api_key: 'your-api-key'
346
+ }
347
+ })
348
+ ```
349
+
350
+ ### Supabase Configuration
351
+
352
+ ```typescript
353
+ const hazo = createHazoConnect({
354
+ type: 'supabase',
355
+ supabase: {
356
+ url: 'https://your-project.supabase.co',
357
+ anon_key: 'your-anon-key',
358
+ service_role_key: 'your-service-role-key' // Optional
359
+ }
360
+ })
361
+ ```
362
+
363
+ ### Environment Variables
364
+
365
+ | Variable | Description | Default |
366
+ |----------|-------------|---------|
367
+ | `HAZO_CONNECT_TYPE` | Database type (`sqlite`, `postgrest`, `supabase`) | `sqlite` |
368
+ | `HAZO_CONNECT_SQLITE_PATH` | Path to SQLite database file | `./database.sqlite` |
369
+ | `HAZO_CONNECT_SQLITE_READONLY` | Enable read-only mode | `false` |
370
+ | `HAZO_CONNECT_SQLITE_WASM_DIR` | Path to sql-wasm.wasm directory | Auto-detected |
371
+ | `HAZO_CONNECT_ENABLE_ADMIN_UI` | Enable SQLite admin UI | `false` |
372
+ | `POSTGREST_URL` | PostgREST base URL | - |
373
+ | `POSTGREST_API_KEY` | PostgREST API key | - |
374
+
375
+ ---
376
+
377
+ ## Key Interfaces
378
+
379
+ ### HazoConnectConfig
380
+
381
+ Main configuration interface:
382
+
383
+ ```typescript
384
+ interface HazoConnectConfig {
385
+ type: 'postgrest' | 'supabase' | 'sqlite' | 'file'
386
+ logger?: Logger
387
+ enable_admin_ui?: boolean // SQLite only
388
+ postgrest?: { base_url: string; api_key: string }
389
+ supabase?: { url: string; anon_key: string; service_role_key?: string }
390
+ sqlite?: { database_path?: string; read_only?: boolean; initial_sql?: string[]; wasm_directory?: string }
391
+ file?: { base_path: string; file_format: string }
392
+ }
393
+ ```
394
+
395
+ ### HazoConnectAdapter
396
+
397
+ Database adapter interface:
398
+
399
+ ```typescript
400
+ interface HazoConnectAdapter {
401
+ query(builder: QueryBuilder, method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', body?: any): Promise<any>
402
+ rawQuery(endpoint: string, options?: RequestInit): Promise<any>
403
+ getConfig(): Promise<any>
404
+ }
405
+ ```
406
+
407
+ ### Logger
408
+
409
+ Optional logger interface:
410
+
411
+ ```typescript
412
+ interface Logger {
413
+ debug(message: string, data?: Record<string, unknown>): void
414
+ info(message: string, data?: Record<string, unknown>): void
415
+ warn(message: string, data?: Record<string, unknown>): void
416
+ error(message: string, data?: Record<string, unknown>): void
417
+ }
418
+ ```
419
+
420
+ ### CrudService
421
+
422
+ CRUD service interface:
423
+
424
+ ```typescript
425
+ interface CrudService<T> {
426
+ list(configure?: (qb: QueryBuilder) => QueryBuilder): Promise<T[]>
427
+ findBy(criteria: Record<string, unknown>): Promise<T[]>
428
+ findOneBy(criteria: Record<string, unknown>): Promise<T | null>
429
+ findById(id: unknown): Promise<T | null>
430
+ insert(data: Partial<T> | Partial<T>[]): Promise<T[]>
431
+ updateById(id: unknown, patch: Partial<T>): Promise<T[]>
432
+ deleteById(id: unknown): Promise<void>
433
+ query(): ExecutableQueryBuilder
434
+ }
435
+ ```
436
+
437
+ ---
438
+
439
+ ## Services
440
+
441
+ ### SQLite Admin Service
442
+
443
+ Provides admin functionality for SQLite databases:
444
+
445
+ ```typescript
446
+ import { getSqliteAdminService } from 'hazo_connect/server'
447
+
448
+ const adminService = getSqliteAdminService()
449
+
450
+ // List all tables
451
+ const tables = await adminService.listTables()
452
+
453
+ // Get table schema
454
+ const schema = await adminService.getTableSchema('users')
455
+
456
+ // Get table data with pagination and filtering
457
+ const data = await adminService.getTableData('users', {
458
+ limit: 20,
459
+ offset: 0,
460
+ order_by: 'created_at',
461
+ order_direction: 'desc',
462
+ filters: [{ column: 'status', operator: 'eq', value: 'active' }]
463
+ })
464
+
465
+ // Insert row
466
+ await adminService.insertRow('users', { name: 'John', email: 'john@example.com' })
467
+
468
+ // Update rows
469
+ await adminService.updateRows('users', { id: 1 }, { name: 'Jane' })
470
+
471
+ // Delete rows
472
+ await adminService.deleteRows('users', { id: 1 })
473
+ ```
474
+
475
+ ---
476
+
477
+ ## SQLite Admin UI
478
+
479
+ A built-in web interface for browsing and managing SQLite databases.
480
+
481
+ ### Enable Admin UI
482
+
483
+ ```typescript
484
+ const hazo = createHazoConnect({
485
+ type: 'sqlite',
486
+ enable_admin_ui: true,
487
+ sqlite: { database_path: './database.sqlite' }
488
+ })
489
+ ```
490
+
491
+ Or via environment variable:
492
+
493
+ ```bash
494
+ HAZO_CONNECT_ENABLE_ADMIN_UI=true
495
+ ```
496
+
497
+ ### Access Routes
498
+
499
+ - **UI**: `/hazo_connect/sqlite_admin`
500
+ - **API**: `/hazo_connect/api/sqlite/*`
501
+
502
+ ### API Endpoints
503
+
504
+ | Endpoint | Method | Description |
505
+ |----------|--------|-------------|
506
+ | `/hazo_connect/api/sqlite/tables` | GET | List all tables |
507
+ | `/hazo_connect/api/sqlite/schema?table=users` | GET | Get table schema |
508
+ | `/hazo_connect/api/sqlite/data?table=users&limit=20` | GET | Get table data |
509
+ | `/hazo_connect/api/sqlite/data` | POST | Insert row |
510
+ | `/hazo_connect/api/sqlite/data` | PATCH | Update rows |
511
+ | `/hazo_connect/api/sqlite/data` | DELETE | Delete rows |
512
+
513
+ ---
514
+
515
+ ## Supported Operators
516
+
517
+ | Operator | Description | Example |
518
+ |----------|-------------|---------|
519
+ | `eq` | Equals | `.where('status', 'eq', 'active')` |
520
+ | `neq` | Not equals | `.where('status', 'neq', 'deleted')` |
521
+ | `gt` | Greater than | `.where('age', 'gt', 18)` |
522
+ | `gte` | Greater than or equal | `.where('age', 'gte', 18)` |
523
+ | `lt` | Less than | `.where('age', 'lt', 65)` |
524
+ | `lte` | Less than or equal | `.where('age', 'lte', 65)` |
525
+ | `like` | Like (case-sensitive) | `.where('name', 'like', '%John%')` |
526
+ | `ilike` | Like (case-insensitive) | `.where('name', 'ilike', '%john%')` |
527
+ | `in` | In array | `.whereIn('status', ['active', 'pending'])` |
528
+ | `is` | Is null/not null | `.where('deleted_at', 'is', null)` |
529
+ | `or` | Or condition | `.whereOr([...conditions])` |
530
+
531
+ ---
532
+
533
+ ## Server-Side Enforcement
534
+
535
+ `hazo_connect` is designed for server-side use only. The library uses:
536
+
537
+ - Next.js `'use server'` directives
538
+ - Runtime guards that check for browser environment
539
+ - Separate entry points to prevent accidental client-side usage
540
+
541
+ If you try to use server-side code in a client component, you'll get a clear error message:
542
+
543
+ ```
544
+ Error: hazo_connect/server can only be used on the server.
545
+ For client-side usage, import types from "hazo_connect" or "hazo_connect/ui".
546
+ ```
547
+
548
+ ---
549
+
550
+ ## Documentation
551
+
552
+ - **[Next.js Setup Guide](./docs/nextjs-setup.md)** - Complete Next.js configuration and setup
553
+ - **[Troubleshooting Guide](./docs/troubleshooting.md)** - Common issues and solutions
554
+ - **[Code Examples](./docs/examples/)** - Working examples for common patterns
555
+ - **[Migration Guide](./docs/migration-guide.md)** - Migrating from older code
556
+ - **[Types Reference](./docs/types.md)** - Complete type definitions
557
+
558
+ ---
559
+
560
+ ## License
561
+
562
+ MIT © Pubs Abayasiri
563
+
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-adapter.d.ts","sourceRoot":"","sources":["../../src/lib/adapters/sqlite-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAoB/C,qBAAa,aAAc,SAAQ,WAAY,YAAW,kBAAkB;IAC1E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;IACxD,OAAO,CAAC,UAAU,CAAC,CAAe;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAQ;gBAE1B,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM;IAmBlC,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,MAAM,GAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAgB,EAC3D,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,GAAG,CAAC;IA4BT,QAAQ,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAW,GAAG;QAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAO,GACjD,OAAO,CAAC,GAAG,CAAC;IA4BT,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;YAMjB,aAAa;YAcb,aAAa;YAmBb,aAAa;YAoBb,aAAa;IAiB3B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,SAAS;YAKH,kBAAkB;YAmClB,WAAW;IAWzB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,gBAAgB;YAsBV,eAAe;IAU7B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,iBAAiB;CAY1B"}
1
+ {"version":3,"file":"sqlite-adapter.d.ts","sourceRoot":"","sources":["../../src/lib/adapters/sqlite-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAoB/C,qBAAa,aAAc,SAAQ,WAAY,YAAW,kBAAkB;IAC1E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;IACxD,OAAO,CAAC,UAAU,CAAC,CAAe;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAQ;gBAE1B,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM;IAmBlC,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,MAAM,GAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAgB,EAC3D,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,GAAG,CAAC;IA4BT,QAAQ,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAW,GAAG;QAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAO,GACjD,OAAO,CAAC,GAAG,CAAC;IA4BT,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;YAMjB,aAAa;YAcb,aAAa;YAmBb,aAAa;YAoBb,aAAa;IAiB3B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,SAAS;YAKH,kBAAkB;YAmClB,WAAW;IAWzB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,gBAAgB;YAsBV,eAAe;IA+C7B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,iBAAiB;CAY1B"}
@@ -216,9 +216,44 @@ class SqliteAdapter extends base_adapter_1.BaseAdapter {
216
216
  if (!this.databasePath || this.isReadOnlyMode) {
217
217
  return;
218
218
  }
219
+ // Skip persistence for in-memory databases (indicated by :memory: or empty path)
220
+ if (this.databasePath === ":memory:" || !this.databasePath.trim()) {
221
+ return;
222
+ }
219
223
  const data = database.export();
220
- await fs_1.default.promises.mkdir(path_1.default.dirname(this.databasePath), { recursive: true });
221
- await fs_1.default.promises.writeFile(this.databasePath, Buffer.from(data));
224
+ const dirPath = path_1.default.dirname(this.databasePath);
225
+ // Skip persistence if trying to write to root-level directories (likely a misconfiguration)
226
+ // This prevents errors when environment variables point to invalid paths like /tests
227
+ if (path_1.default.isAbsolute(dirPath) && dirPath.split(path_1.default.sep).filter(Boolean).length === 1) {
228
+ // Path like /tests, /var, etc. - skip persistence to avoid permission errors
229
+ this.logger?.warn(`Skipping database persistence: invalid root-level path ${this.databasePath}`);
230
+ return;
231
+ }
232
+ // Only create directory if it's not the root directory
233
+ if (dirPath && dirPath !== "/" && dirPath !== "." && dirPath !== path_1.default.sep) {
234
+ try {
235
+ await fs_1.default.promises.mkdir(dirPath, { recursive: true });
236
+ }
237
+ catch (error) {
238
+ // If it's a permission error or the path is invalid, skip persistence
239
+ if (error.code === "EACCES" || error.code === "EROFS" || error.code === "ENOENT") {
240
+ this.logger?.warn(`Cannot create directory ${dirPath}: ${error.message}. Skipping persistence.`);
241
+ return;
242
+ }
243
+ throw error;
244
+ }
245
+ }
246
+ try {
247
+ await fs_1.default.promises.writeFile(this.databasePath, Buffer.from(data));
248
+ }
249
+ catch (error) {
250
+ // If write fails due to permissions or invalid path, log and continue
251
+ if (error.code === "EACCES" || error.code === "EROFS" || error.code === "ENOENT") {
252
+ this.logger?.warn(`Cannot write database file ${this.databasePath}: ${error.message}. Skipping persistence.`);
253
+ return;
254
+ }
255
+ throw error;
256
+ }
222
257
  }
223
258
  ensureWritable() {
224
259
  if (this.isReadOnlyMode) {
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-adapter.js","sourceRoot":"","sources":["../../src/lib/adapters/sqlite-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-adapter.js","sourceRoot":"","sources":["../../src/lib/adapters/sqlite-adapter.ts"],"names":[],"mappings":"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"}