@wgtechlabs/nuvex 0.2.0 → 0.2.1-dev.e91ecac

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 (45) hide show
  1. package/README.md +19 -5
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cjs/core/client.js +57 -32
  4. package/dist/cjs/core/client.js.map +1 -1
  5. package/dist/cjs/core/database.js +11 -8
  6. package/dist/cjs/core/database.js.map +1 -1
  7. package/dist/cjs/core/engine.js +112 -63
  8. package/dist/cjs/core/engine.js.map +1 -1
  9. package/dist/cjs/layers/memory.js +13 -1
  10. package/dist/cjs/layers/memory.js.map +1 -1
  11. package/dist/cjs/layers/postgres.js +222 -19
  12. package/dist/cjs/layers/postgres.js.map +1 -1
  13. package/dist/cjs/layers/redis.js +78 -12
  14. package/dist/cjs/layers/redis.js.map +1 -1
  15. package/dist/cjs/types/index.js.map +1 -1
  16. package/dist/esm/core/client.js +57 -32
  17. package/dist/esm/core/client.js.map +1 -1
  18. package/dist/esm/core/database.js +11 -8
  19. package/dist/esm/core/database.js.map +1 -1
  20. package/dist/esm/core/engine.js +113 -64
  21. package/dist/esm/core/engine.js.map +1 -1
  22. package/dist/esm/layers/memory.js +13 -1
  23. package/dist/esm/layers/memory.js.map +1 -1
  24. package/dist/esm/layers/postgres.js +223 -20
  25. package/dist/esm/layers/postgres.js.map +1 -1
  26. package/dist/esm/layers/redis.js +78 -12
  27. package/dist/esm/layers/redis.js.map +1 -1
  28. package/dist/esm/types/index.js.map +1 -1
  29. package/dist/types/core/client.d.ts +3 -2
  30. package/dist/types/core/client.d.ts.map +1 -1
  31. package/dist/types/core/database.d.ts +5 -1
  32. package/dist/types/core/database.d.ts.map +1 -1
  33. package/dist/types/core/engine.d.ts +7 -1
  34. package/dist/types/core/engine.d.ts.map +1 -1
  35. package/dist/types/interfaces/index.d.ts +5 -0
  36. package/dist/types/interfaces/index.d.ts.map +1 -1
  37. package/dist/types/layers/memory.d.ts +1 -0
  38. package/dist/types/layers/memory.d.ts.map +1 -1
  39. package/dist/types/layers/postgres.d.ts +37 -3
  40. package/dist/types/layers/postgres.d.ts.map +1 -1
  41. package/dist/types/layers/redis.d.ts +5 -1
  42. package/dist/types/layers/redis.d.ts.map +1 -1
  43. package/dist/types/types/index.d.ts +22 -3
  44. package/dist/types/types/index.d.ts.map +1 -1
  45. package/package.json +11 -14
package/README.md CHANGED
@@ -57,7 +57,8 @@ const storage = await NuvexClient.initialize({
57
57
  port: 5432,
58
58
  database: 'myapp',
59
59
  user: 'postgres',
60
- password: 'password'
60
+ password: 'password',
61
+ autoSetupSchema: true
61
62
  },
62
63
  redis: { url: 'redis://localhost:6379' } // Optional but recommended
63
64
  });
@@ -79,7 +80,8 @@ const results = await storage.setBatch([
79
80
 
80
81
  // Health monitoring
81
82
  const health = await storage.healthCheck();
82
- console.log('Storage healthy:', health.overall);
83
+ console.log('All layers healthy:', Object.values(health).every(Boolean));
84
+ console.log('PostgreSQL ready:', health.postgres);
83
85
  ```
84
86
 
85
87
  ## 📦 Installation
@@ -113,7 +115,8 @@ const config = {
113
115
  port: 5432,
114
116
  database: 'myapp',
115
117
  user: 'postgres',
116
- password: 'password'
118
+ password: 'password',
119
+ autoSetupSchema: true
117
120
  },
118
121
  redis: { url: 'redis://localhost:6379' }, // Optional but recommended
119
122
  memory: { ttl: 86400000, maxSize: 10000 }, // Optional
@@ -125,6 +128,10 @@ const config = {
125
128
 
126
129
  Nuvex uses strongly branded table and column names by default (`nuvex_storage`, `nuvex_key`, `nuvex_data`). For backwards compatibility with existing applications, you can customize these names:
127
130
 
131
+ - `autoSetupSchema: true` creates the configured Nuvex schema during startup.
132
+ - When `autoSetupSchema` is omitted or `false`, Nuvex only connects to PostgreSQL and `healthCheck().postgres` reports whether the configured Nuvex storage schema is actually usable.
133
+ - `enableTrigram: true` opts into `pg_trgm` extension setup and the trigram index during schema creation.
134
+
128
135
  ```typescript
129
136
  // Default configuration (recommended for new apps)
130
137
  const storage = await NuvexClient.initialize({
@@ -133,7 +140,8 @@ const storage = await NuvexClient.initialize({
133
140
  port: 5432,
134
141
  database: 'myapp',
135
142
  user: 'postgres',
136
- password: 'password'
143
+ password: 'password',
144
+ autoSetupSchema: true
137
145
  // Uses: table 'nuvex_storage', columns 'nuvex_key' and 'nuvex_data'
138
146
  }
139
147
  });
@@ -146,6 +154,7 @@ const storage = await NuvexClient.initialize({
146
154
  database: 'telegram_bot',
147
155
  user: 'postgres',
148
156
  password: 'password',
157
+ autoSetupSchema: true,
149
158
  schema: {
150
159
  tableName: 'storage_cache',
151
160
  columns: {
@@ -164,6 +173,7 @@ const storage = await NuvexClient.initialize({
164
173
  database: 'discord_bot',
165
174
  user: 'postgres',
166
175
  password: 'password',
176
+ autoSetupSchema: true,
167
177
  schema: {
168
178
  tableName: 'storage_cache',
169
179
  columns: {
@@ -183,6 +193,8 @@ const storage = await NuvexClient.initialize({
183
193
  | Telegram Bot | storage_cache | key | value |
184
194
  | Discord Bot | storage_cache | cache_key | data |
185
195
 
196
+ If you manage schema creation yourself, call `setupNuvexSchema()` before serving traffic or ensure your deployment creates the table ahead of time. Otherwise, PostgreSQL connectivity may succeed while `healthCheck().postgres` correctly reports that Nuvex storage is not ready.
197
+
186
198
  ### API Reference
187
199
 
188
200
  ```typescript
@@ -212,7 +224,9 @@ await storage.decrement('counter', 2);
212
224
  ```typescript
213
225
  // Health monitoring
214
226
  const health = await storage.healthCheck();
215
- console.log('All systems:', health.overall ? '✅' : '❌');
227
+ console.log('Memory:', health.memory ? '✅' : '❌');
228
+ console.log('Redis:', health.redis ? '✅' : '❌');
229
+ console.log('PostgreSQL ready:', health.postgres ? '✅' : '❌');
216
230
 
217
231
  // Performance metrics
218
232
  const metrics = storage.getMetrics();