@wgtechlabs/nuvex 0.1.1

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 (70) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +427 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/cjs/core/client.js +981 -0
  5. package/dist/cjs/core/client.js.map +1 -0
  6. package/dist/cjs/core/database.js +297 -0
  7. package/dist/cjs/core/database.js.map +1 -0
  8. package/dist/cjs/core/engine.js +1202 -0
  9. package/dist/cjs/core/engine.js.map +1 -0
  10. package/dist/cjs/core/index.js +35 -0
  11. package/dist/cjs/core/index.js.map +1 -0
  12. package/dist/cjs/index.js +109 -0
  13. package/dist/cjs/index.js.map +1 -0
  14. package/dist/cjs/interfaces/index.js +12 -0
  15. package/dist/cjs/interfaces/index.js.map +1 -0
  16. package/dist/cjs/layers/index.js +22 -0
  17. package/dist/cjs/layers/index.js.map +1 -0
  18. package/dist/cjs/layers/memory.js +388 -0
  19. package/dist/cjs/layers/memory.js.map +1 -0
  20. package/dist/cjs/layers/postgres.js +492 -0
  21. package/dist/cjs/layers/postgres.js.map +1 -0
  22. package/dist/cjs/layers/redis.js +388 -0
  23. package/dist/cjs/layers/redis.js.map +1 -0
  24. package/dist/cjs/types/index.js +52 -0
  25. package/dist/cjs/types/index.js.map +1 -0
  26. package/dist/esm/core/client.js +944 -0
  27. package/dist/esm/core/client.js.map +1 -0
  28. package/dist/esm/core/database.js +289 -0
  29. package/dist/esm/core/database.js.map +1 -0
  30. package/dist/esm/core/engine.js +1198 -0
  31. package/dist/esm/core/engine.js.map +1 -0
  32. package/dist/esm/core/index.js +16 -0
  33. package/dist/esm/core/index.js.map +1 -0
  34. package/dist/esm/index.js +87 -0
  35. package/dist/esm/index.js.map +1 -0
  36. package/dist/esm/interfaces/index.js +11 -0
  37. package/dist/esm/interfaces/index.js.map +1 -0
  38. package/dist/esm/layers/index.js +16 -0
  39. package/dist/esm/layers/index.js.map +1 -0
  40. package/dist/esm/layers/memory.js +384 -0
  41. package/dist/esm/layers/memory.js.map +1 -0
  42. package/dist/esm/layers/postgres.js +485 -0
  43. package/dist/esm/layers/postgres.js.map +1 -0
  44. package/dist/esm/layers/redis.js +384 -0
  45. package/dist/esm/layers/redis.js.map +1 -0
  46. package/dist/esm/types/index.js +49 -0
  47. package/dist/esm/types/index.js.map +1 -0
  48. package/dist/types/core/client.d.ts +561 -0
  49. package/dist/types/core/client.d.ts.map +1 -0
  50. package/dist/types/core/database.d.ts +130 -0
  51. package/dist/types/core/database.d.ts.map +1 -0
  52. package/dist/types/core/engine.d.ts +450 -0
  53. package/dist/types/core/engine.d.ts.map +1 -0
  54. package/dist/types/core/index.d.ts +13 -0
  55. package/dist/types/core/index.d.ts.map +1 -0
  56. package/dist/types/index.d.ts +85 -0
  57. package/dist/types/index.d.ts.map +1 -0
  58. package/dist/types/interfaces/index.d.ts +209 -0
  59. package/dist/types/interfaces/index.d.ts.map +1 -0
  60. package/dist/types/layers/index.d.ts +16 -0
  61. package/dist/types/layers/index.d.ts.map +1 -0
  62. package/dist/types/layers/memory.d.ts +261 -0
  63. package/dist/types/layers/memory.d.ts.map +1 -0
  64. package/dist/types/layers/postgres.d.ts +313 -0
  65. package/dist/types/layers/postgres.d.ts.map +1 -0
  66. package/dist/types/layers/redis.d.ts +248 -0
  67. package/dist/types/layers/redis.d.ts.map +1 -0
  68. package/dist/types/types/index.d.ts +410 -0
  69. package/dist/types/types/index.d.ts.map +1 -0
  70. package/package.json +90 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,297 @@
1
+ "use strict";
2
+ /**
3
+ * Nuvex - Database Utilities
4
+ * Next-gen Unified Vault Experience
5
+ *
6
+ * Database schema setup and migration utilities for PostgreSQL storage layer.
7
+ *
8
+ * @author Waren Gonzaga, WG Technology Labs
9
+ * @since 2025
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.NUVEX_SCHEMA_SQL = void 0;
13
+ exports.validateSQLIdentifier = validateSQLIdentifier;
14
+ exports.generateNuvexSchemaSQL = generateNuvexSchemaSQL;
15
+ exports.setupNuvexSchema = setupNuvexSchema;
16
+ exports.cleanupExpiredEntries = cleanupExpiredEntries;
17
+ exports.dropNuvexSchema = dropNuvexSchema;
18
+ /** Create a default console-based logger */
19
+ function createDefaultLogger() {
20
+ return {
21
+ debug: () => { },
22
+ info: (message, meta) => console.log(message, ...(meta !== undefined ? [meta] : [])),
23
+ warn: (message, meta) => console.warn(message, ...(meta !== undefined ? [meta] : [])),
24
+ error: (message, meta) => console.error(message, ...(meta !== undefined ? [meta] : [])),
25
+ };
26
+ }
27
+ /**
28
+ * Validate SQL identifier to prevent SQL injection
29
+ * Ensures the identifier contains only alphanumeric characters and underscores
30
+ *
31
+ * @param identifier - SQL identifier to validate
32
+ * @param name - Name of the identifier for error messages
33
+ * @throws {Error} If identifier contains invalid characters
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * validateSQLIdentifier('my_table_123', 'table name'); // OK
38
+ * validateSQLIdentifier('users; DROP TABLE', 'table name'); // throws Error
39
+ * ```
40
+ *
41
+ * @since 1.0.0
42
+ */
43
+ function validateSQLIdentifier(identifier, name) {
44
+ if (!identifier || !/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(identifier)) {
45
+ throw new Error(`Invalid ${name}: "${identifier}". SQL identifiers must start with a letter or underscore and contain only alphanumeric characters and underscores.`);
46
+ }
47
+ }
48
+ /**
49
+ * Generate SQL schema for Nuvex storage with configurable table and column names
50
+ *
51
+ * @param schema - Optional schema configuration for custom table/column names
52
+ * @returns SQL string for creating the schema
53
+ * @throws {Error} If table or column names contain invalid characters
54
+ */
55
+ function generateNuvexSchemaSQL(schema) {
56
+ const tableName = schema?.tableName ?? 'nuvex_storage';
57
+ const keyColumn = schema?.columns?.key ?? 'nuvex_key';
58
+ const valueColumn = schema?.columns?.value ?? 'nuvex_data';
59
+ // Validate all identifiers to prevent SQL injection
60
+ validateSQLIdentifier(tableName, 'table name');
61
+ validateSQLIdentifier(keyColumn, 'key column name');
62
+ validateSQLIdentifier(valueColumn, 'value column name');
63
+ return `
64
+ -- Nuvex storage table for PostgreSQL layer
65
+ CREATE TABLE IF NOT EXISTS ${tableName} (
66
+ id SERIAL PRIMARY KEY,
67
+ ${keyColumn} VARCHAR(512) NOT NULL UNIQUE,
68
+ ${valueColumn} JSONB NOT NULL,
69
+ expires_at TIMESTAMP WITH TIME ZONE,
70
+ created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
71
+ updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
72
+ );
73
+
74
+ -- Index for expiration cleanup
75
+ CREATE INDEX IF NOT EXISTS idx_${tableName}_expires_at
76
+ ON ${tableName}(expires_at)
77
+ WHERE expires_at IS NOT NULL;
78
+
79
+ -- Ensure pg_trgm extension is available for GIN index
80
+ CREATE EXTENSION IF NOT EXISTS pg_trgm;
81
+
82
+ -- Index for key pattern searches
83
+ CREATE INDEX IF NOT EXISTS idx_${tableName}_key_pattern
84
+ ON ${tableName} USING gin(${keyColumn} gin_trgm_ops);
85
+
86
+ -- Function to auto-update updated_at
87
+ CREATE OR REPLACE FUNCTION update_${tableName}_updated_at()
88
+ RETURNS TRIGGER AS $$
89
+ BEGIN
90
+ NEW.updated_at = NOW();
91
+ RETURN NEW;
92
+ END;
93
+ $$ LANGUAGE plpgsql;
94
+
95
+ -- Trigger for auto-updating updated_at
96
+ DROP TRIGGER IF EXISTS trigger_update_${tableName}_updated_at ON ${tableName};
97
+ CREATE TRIGGER trigger_update_${tableName}_updated_at
98
+ BEFORE UPDATE ON ${tableName}
99
+ FOR EACH ROW
100
+ EXECUTE FUNCTION update_${tableName}_updated_at();
101
+
102
+ -- Function to clean up expired entries
103
+ CREATE OR REPLACE FUNCTION cleanup_expired_${tableName}()
104
+ RETURNS INTEGER AS $$
105
+ DECLARE
106
+ deleted_count INTEGER;
107
+ BEGIN
108
+ DELETE FROM ${tableName}
109
+ WHERE expires_at IS NOT NULL AND expires_at < NOW();
110
+
111
+ GET DIAGNOSTICS deleted_count = ROW_COUNT;
112
+ RETURN deleted_count;
113
+ END;
114
+ $$ LANGUAGE plpgsql;
115
+ `;
116
+ }
117
+ exports.NUVEX_SCHEMA_SQL = generateNuvexSchemaSQL();
118
+ /**
119
+ * Setup Nuvex database schema
120
+ *
121
+ * Creates the necessary PostgreSQL tables, indexes, functions, and triggers
122
+ * required for the Nuvex storage system. This function is idempotent and
123
+ * can be safely called multiple times.
124
+ *
125
+ * Features created:
126
+ * - `nuvex_storage` table with JSON support and TTL
127
+ * - Indexes for performance optimization
128
+ * - Automatic `updated_at` trigger
129
+ * - Cleanup function for expired entries
130
+ * - Optional trigram support for pattern matching
131
+ * - Optional automated cleanup job scheduling
132
+ *
133
+ * @param db - PostgreSQL connection pool
134
+ * @param options - Optional configuration for schema setup
135
+ * @returns Promise that resolves when schema is created
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * import { Pool } from 'pg';
140
+ * import { setupNuvexSchema } from './database';
141
+ *
142
+ * const db = new Pool({ connectionString: 'postgresql://...' });
143
+ *
144
+ * // Basic setup
145
+ * await setupNuvexSchema(db);
146
+ *
147
+ * // Advanced setup with all features
148
+ * await setupNuvexSchema(db, {
149
+ * enableTrigram: true, // Enable pattern matching
150
+ * enableCleanupJob: true // Auto-cleanup expired entries
151
+ * });
152
+ * ```
153
+ *
154
+ * @throws {Error} If database connection fails or schema creation fails
155
+ *
156
+ * @since 1.0.0
157
+ */
158
+ async function setupNuvexSchema(db, options = {}, logger) {
159
+ const log = logger ?? createDefaultLogger();
160
+ try {
161
+ // Enable pg_trgm extension if requested (for pattern matching)
162
+ if (options.enableTrigram) {
163
+ await db.query('CREATE EXTENSION IF NOT EXISTS pg_trgm;');
164
+ }
165
+ // Generate schema SQL with custom table/column names if provided
166
+ const schemaSQL = options.schema ? generateNuvexSchemaSQL(options.schema) : exports.NUVEX_SCHEMA_SQL;
167
+ // Execute main schema
168
+ await db.query(schemaSQL);
169
+ // Setup periodic cleanup job if requested
170
+ if (options.enableCleanupJob) {
171
+ await setupCleanupJob(db, undefined, options.schema, logger);
172
+ }
173
+ log.info('Nuvex database schema setup completed successfully');
174
+ }
175
+ catch (error) {
176
+ log.error('Failed to setup Nuvex database schema:', error);
177
+ throw error;
178
+ }
179
+ }
180
+ /**
181
+ * Setup periodic cleanup job (requires pg_cron extension)
182
+ *
183
+ * Creates a scheduled job using PostgreSQL's pg_cron extension to automatically
184
+ * clean up expired entries from the nuvex_storage table. The job runs daily at 2 AM.
185
+ *
186
+ * @param db - PostgreSQL connection pool
187
+ * @param tenantId - Optional tenant identifier for multi-tenant setups
188
+ * @returns Promise that resolves when the cleanup job is scheduled
189
+ *
190
+ * @example
191
+ * ```typescript
192
+ * // Setup cleanup job for main application
193
+ * await setupCleanupJob(db);
194
+ *
195
+ * // Setup cleanup job for specific tenant
196
+ * await setupCleanupJob(db, 'tenant-123');
197
+ * ```
198
+ *
199
+ * @throws {Error} If pg_cron extension is not available or insufficient privileges
200
+ *
201
+ * @requires pg_cron extension and superuser privileges
202
+ * @since 1.0.0
203
+ */
204
+ async function setupCleanupJob(db, tenantId, schema, logger) {
205
+ const log = logger ?? createDefaultLogger();
206
+ try {
207
+ const tableName = schema?.tableName || 'nuvex_storage';
208
+ validateSQLIdentifier(tableName, 'table name');
209
+ // Generate a unique job name per tenant/context
210
+ const jobName = tenantId ? `nuvex-cleanup-${tenantId}` : `nuvex-cleanup-${Date.now()}`;
211
+ // This requires pg_cron extension and superuser privileges
212
+ await db.query(`
213
+ SELECT cron.schedule(
214
+ $1,
215
+ '0 2 * * *', -- Daily at 2 AM
216
+ 'SELECT cleanup_expired_${tableName}();'
217
+ );
218
+ `, [jobName]);
219
+ log.info(`Nuvex cleanup cron job scheduled as '${jobName}'`);
220
+ }
221
+ catch (error) {
222
+ log.error('Failed to schedule Nuvex cleanup cron job:', error);
223
+ throw error;
224
+ }
225
+ }
226
+ /**
227
+ * Manually clean up expired entries
228
+ *
229
+ * Executes the cleanup function to remove all expired entries from the
230
+ * nuvex_storage table. This can be called manually or as part of a maintenance routine.
231
+ *
232
+ * @param db - PostgreSQL connection pool
233
+ * @returns Promise that resolves to the number of deleted entries
234
+ *
235
+ * @example
236
+ * ```typescript
237
+ * const deletedCount = await cleanupExpiredEntries(db);
238
+ * console.log(`Cleaned up ${deletedCount} expired entries`);
239
+ * ```
240
+ *
241
+ * @throws {Error} If the cleanup operation fails
242
+ *
243
+ * @since 1.0.0
244
+ */
245
+ async function cleanupExpiredEntries(db, schema, logger) {
246
+ const log = logger ?? createDefaultLogger();
247
+ try {
248
+ const tableName = schema?.tableName || 'nuvex_storage';
249
+ validateSQLIdentifier(tableName, 'table name');
250
+ const result = await db.query(`SELECT cleanup_expired_${tableName}() as deleted_count;`);
251
+ return result.rows[0]?.deleted_count || 0;
252
+ }
253
+ catch (error) {
254
+ log.error('Failed to cleanup expired entries:', error);
255
+ throw error;
256
+ }
257
+ }
258
+ /**
259
+ * Drop Nuvex schema (for cleanup/testing)
260
+ *
261
+ * Completely removes all Nuvex-related database objects including tables,
262
+ * functions, triggers, and indexes. This operation is irreversible and will
263
+ * result in permanent data loss.
264
+ *
265
+ * @param db - PostgreSQL connection pool
266
+ * @returns Promise that resolves when schema is dropped
267
+ *
268
+ * @example
269
+ * ```typescript
270
+ * // Use with extreme caution - this will delete all data!
271
+ * await dropNuvexSchema(testDb); // Only use in tests
272
+ * ```
273
+ *
274
+ * @throws {Error} If the drop operation fails
275
+ *
276
+ * @warning This operation is irreversible and will cause permanent data loss
277
+ * @since 1.0.0
278
+ */
279
+ async function dropNuvexSchema(db, schema, logger) {
280
+ const log = logger ?? createDefaultLogger();
281
+ try {
282
+ const tableName = schema?.tableName || 'nuvex_storage';
283
+ validateSQLIdentifier(tableName, 'table name');
284
+ await db.query(`
285
+ DROP TRIGGER IF EXISTS trigger_update_${tableName}_updated_at ON ${tableName};
286
+ DROP FUNCTION IF EXISTS update_${tableName}_updated_at();
287
+ DROP FUNCTION IF EXISTS cleanup_expired_${tableName}();
288
+ DROP TABLE IF EXISTS ${tableName} CASCADE;
289
+ `);
290
+ log.info('Nuvex database schema dropped successfully');
291
+ }
292
+ catch (error) {
293
+ log.error('Failed to drop Nuvex database schema:', error);
294
+ throw error;
295
+ }
296
+ }
297
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/core/database.ts"],"names":[],"mappings":"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"}