@toonstore/torm 0.1.0 → 0.3.0

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.
package/dist/index.js CHANGED
@@ -2,26 +2,37 @@
2
2
  /**
3
3
  * @toonstore/torm - ToonStore ORM Client for Node.js
4
4
  *
5
- * A Mongoose-style ORM client for ToonStore
5
+ * A Mongoose-style ORM client for ToonStore connecting directly to Redis
6
6
  */
7
7
  var __importDefault = (this && this.__importDefault) || function (mod) {
8
8
  return (mod && mod.__esModule) ? mod : { "default": mod };
9
9
  };
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.QueryBuilder = exports.Model = exports.TormClient = void 0;
12
- const axios_1 = __importDefault(require("axios"));
12
+ const ioredis_1 = __importDefault(require("ioredis"));
13
13
  // ============================================================================
14
14
  // TormClient
15
15
  // ============================================================================
16
16
  class TormClient {
17
17
  constructor(options = {}) {
18
- this.baseURL = options.baseURL || 'http://localhost:3001';
19
- this.client = axios_1.default.create({
20
- baseURL: this.baseURL,
21
- timeout: options.timeout || 5000,
22
- headers: {
23
- 'Content-Type': 'application/json',
24
- },
18
+ this.connected = false;
19
+ const redisOptions = {
20
+ host: options.host || 'localhost',
21
+ port: options.port || 6379,
22
+ ...options,
23
+ };
24
+ if (options.url) {
25
+ this.redis = new ioredis_1.default(options.url, redisOptions);
26
+ }
27
+ else {
28
+ this.redis = new ioredis_1.default(redisOptions);
29
+ }
30
+ this.redis.on('connect', () => {
31
+ this.connected = true;
32
+ });
33
+ this.redis.on('error', (err) => {
34
+ console.error('Redis connection error:', err);
35
+ this.connected = false;
25
36
  });
26
37
  }
27
38
  /**
@@ -31,24 +42,35 @@ class TormClient {
31
42
  return new Model(this, name, schema, options);
32
43
  }
33
44
  /**
34
- * Get HTTP client instance
45
+ * Get Redis client instance
35
46
  */
36
- getClient() {
37
- return this.client;
47
+ getRedis() {
48
+ return this.redis;
38
49
  }
39
50
  /**
40
- * Check server health
51
+ * Check connection health
41
52
  */
42
53
  async health() {
43
- const response = await this.client.get('/health');
44
- return response.data;
54
+ try {
55
+ await this.redis.ping();
56
+ return { status: 'ok', connected: true };
57
+ }
58
+ catch (error) {
59
+ return { status: 'error', connected: false };
60
+ }
61
+ }
62
+ /**
63
+ * Close Redis connection
64
+ */
65
+ async disconnect() {
66
+ await this.redis.quit();
67
+ this.connected = false;
45
68
  }
46
69
  /**
47
- * Get server info
70
+ * Check if connected
48
71
  */
49
- async info() {
50
- const response = await this.client.get('/');
51
- return response.data;
72
+ isConnected() {
73
+ return this.connected;
52
74
  }
53
75
  }
54
76
  exports.TormClient = TormClient;
@@ -62,72 +84,156 @@ class Model {
62
84
  this.schema = schema;
63
85
  this.options = { validate: true, ...options };
64
86
  }
87
+ /**
88
+ * Get the Redis key pattern for this collection
89
+ */
90
+ getKeyPattern(id) {
91
+ return id ? `toonstore:${this.collectionName}:${id}` : `toonstore:${this.collectionName}:*`;
92
+ }
93
+ /**
94
+ * Generate a unique ID
95
+ */
96
+ generateId() {
97
+ return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
98
+ }
65
99
  /**
66
100
  * Create a new document
67
101
  */
68
102
  async create(data) {
69
103
  if (this.options.validate && this.schema) {
70
- this.validate(data);
104
+ await this.validate(data);
71
105
  }
72
- const response = await this.client.getClient().post(`/api/${this.collectionName}`, { data });
73
- return response.data.data;
106
+ const id = this.generateId();
107
+ const document = {
108
+ ...data,
109
+ _id: id,
110
+ _createdAt: new Date().toISOString(),
111
+ _updatedAt: new Date().toISOString(),
112
+ };
113
+ const key = this.getKeyPattern(id);
114
+ await this.client.getRedis().set(key, JSON.stringify(document));
115
+ return document;
74
116
  }
75
117
  /**
76
118
  * Find all documents
77
119
  */
78
120
  async find() {
79
- const response = await this.client.getClient().get(`/api/${this.collectionName}`);
80
- return response.data.documents;
121
+ const redis = this.client.getRedis();
122
+ const pattern = this.getKeyPattern();
123
+ const keys = await redis.keys(pattern);
124
+ if (keys.length === 0) {
125
+ return [];
126
+ }
127
+ const values = await redis.mget(...keys);
128
+ return values
129
+ .filter((v) => v !== null)
130
+ .map(v => JSON.parse(v));
81
131
  }
82
132
  /**
83
133
  * Find document by ID
84
134
  */
85
135
  async findById(id) {
86
- try {
87
- const response = await this.client.getClient().get(`/api/${this.collectionName}/${id}`);
88
- return response.data;
136
+ const key = this.getKeyPattern(id);
137
+ const value = await this.client.getRedis().get(key);
138
+ if (!value) {
139
+ return null;
89
140
  }
90
- catch (error) {
91
- if (error.response?.status === 404) {
92
- return null;
141
+ return JSON.parse(value);
142
+ }
143
+ /**
144
+ * Find one document matching criteria
145
+ */
146
+ async findOne(filter) {
147
+ const documents = await this.find();
148
+ for (const doc of documents) {
149
+ let matches = true;
150
+ for (const [key, value] of Object.entries(filter)) {
151
+ if (doc[key] !== value) {
152
+ matches = false;
153
+ break;
154
+ }
155
+ }
156
+ if (matches) {
157
+ return doc;
93
158
  }
94
- throw error;
95
159
  }
160
+ return null;
96
161
  }
97
162
  /**
98
163
  * Update document by ID
99
164
  */
100
165
  async update(id, data) {
166
+ const existing = await this.findById(id);
167
+ if (!existing) {
168
+ return null;
169
+ }
101
170
  if (this.options.validate && this.schema) {
102
- this.validate(data);
171
+ await this.validate(data);
103
172
  }
104
- const response = await this.client.getClient().put(`/api/${this.collectionName}/${id}`, { data });
105
- return response.data.data;
173
+ const updated = {
174
+ ...existing,
175
+ ...data,
176
+ _updatedAt: new Date().toISOString(),
177
+ };
178
+ const key = this.getKeyPattern(id);
179
+ await this.client.getRedis().set(key, JSON.stringify(updated));
180
+ return updated;
106
181
  }
107
182
  /**
108
183
  * Delete document by ID
109
184
  */
110
185
  async delete(id) {
111
- const response = await this.client.getClient().delete(`/api/${this.collectionName}/${id}`);
112
- return response.data.success === true;
186
+ const key = this.getKeyPattern(id);
187
+ const result = await this.client.getRedis().del(key);
188
+ return result > 0;
113
189
  }
114
190
  /**
115
191
  * Count documents
116
192
  */
117
193
  async count() {
118
- const response = await this.client.getClient().get(`/api/${this.collectionName}/count`);
119
- return response.data.count;
194
+ const keys = await this.client.getRedis().keys(this.getKeyPattern());
195
+ return keys.length;
120
196
  }
121
197
  /**
122
198
  * Query documents with filters
123
199
  */
124
200
  query() {
125
- return new QueryBuilder(this.client, this.collectionName);
201
+ return new QueryBuilder(this);
202
+ }
203
+ /**
204
+ * Delete all documents in collection
205
+ */
206
+ async deleteMany(filter) {
207
+ if (!filter || Object.keys(filter).length === 0) {
208
+ // Delete all documents in collection
209
+ const keys = await this.client.getRedis().keys(this.getKeyPattern());
210
+ if (keys.length === 0)
211
+ return 0;
212
+ await this.client.getRedis().del(...keys);
213
+ return keys.length;
214
+ }
215
+ // Delete documents matching filter
216
+ const documents = await this.find();
217
+ let deleted = 0;
218
+ for (const doc of documents) {
219
+ let matches = true;
220
+ for (const [key, value] of Object.entries(filter)) {
221
+ if (doc[key] !== value) {
222
+ matches = false;
223
+ break;
224
+ }
225
+ }
226
+ if (matches) {
227
+ await this.delete(doc._id);
228
+ deleted++;
229
+ }
230
+ }
231
+ return deleted;
126
232
  }
127
233
  /**
128
234
  * Validate data against schema
129
235
  */
130
- validate(data) {
236
+ async validate(data) {
131
237
  if (!this.schema)
132
238
  return;
133
239
  for (const [field, rules] of Object.entries(this.schema)) {
@@ -155,12 +261,12 @@ class Model {
155
261
  throw new Error(`Validation error: Field '${field}' must be at most ${rules.maxLength} characters`);
156
262
  }
157
263
  if (rules.pattern && !rules.pattern.test(value)) {
158
- throw new Error(`Validation error: Field '${field}' does not match pattern`);
264
+ throw new Error(`Validation error: Field '${field}' does not match required pattern`);
159
265
  }
160
- if (rules.email && !this.isEmail(value)) {
266
+ if (rules.email && !this.isValidEmail(value)) {
161
267
  throw new Error(`Validation error: Field '${field}' must be a valid email`);
162
268
  }
163
- if (rules.url && !this.isURL(value)) {
269
+ if (rules.url && !this.isValidUrl(value)) {
164
270
  throw new Error(`Validation error: Field '${field}' must be a valid URL`);
165
271
  }
166
272
  }
@@ -174,16 +280,26 @@ class Model {
174
280
  }
175
281
  }
176
282
  // Custom validation
177
- if (rules.validate && !rules.validate(value)) {
178
- throw new Error(`Validation error: Field '${field}' failed custom validation`);
283
+ if (rules.validate) {
284
+ const isValid = await rules.validate(value);
285
+ if (!isValid) {
286
+ throw new Error(`Validation error: Field '${field}' failed custom validation`);
287
+ }
179
288
  }
180
289
  }
181
290
  }
182
- isEmail(value) {
183
- return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
291
+ isValidEmail(email) {
292
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
293
+ return emailRegex.test(email);
184
294
  }
185
- isURL(value) {
186
- return /^https?:\/\/.+/.test(value);
295
+ isValidUrl(url) {
296
+ try {
297
+ new URL(url);
298
+ return true;
299
+ }
300
+ catch {
301
+ return false;
302
+ }
187
303
  }
188
304
  }
189
305
  exports.Model = Model;
@@ -191,115 +307,108 @@ exports.Model = Model;
191
307
  // QueryBuilder
192
308
  // ============================================================================
193
309
  class QueryBuilder {
194
- constructor(client, collectionName) {
195
- this.filters = [];
196
- this.client = client;
197
- this.collectionName = collectionName;
310
+ constructor(model) {
311
+ this.filterConditions = [];
312
+ this.model = model;
198
313
  }
199
314
  /**
200
- * Add a filter
315
+ * Add filter condition
201
316
  */
202
- filter(field, operator, value) {
203
- this.filters.push({ field, operator, value });
317
+ where(field, operator, value) {
318
+ this.filterConditions.push({ field, operator, value });
204
319
  return this;
205
320
  }
206
321
  /**
207
- * Filter where field equals value
322
+ * Shorthand for equals filter
208
323
  */
209
- where(field, value) {
210
- return this.filter(field, 'eq', value);
324
+ equals(field, value) {
325
+ return this.where(field, 'eq', value);
211
326
  }
212
327
  /**
213
328
  * Sort results
214
329
  */
215
330
  sort(field, order = 'asc') {
216
- this.sortField = field;
217
- this.sortOrder = order;
331
+ this.sortOptions = { field, order };
218
332
  return this;
219
333
  }
220
334
  /**
221
- * Limit results
335
+ * Limit number of results
222
336
  */
223
- limit(n) {
224
- this.limitValue = n;
337
+ limit(value) {
338
+ this.limitValue = value;
225
339
  return this;
226
340
  }
227
341
  /**
228
- * Skip results
342
+ * Skip number of results
229
343
  */
230
- skip(n) {
231
- this.skipValue = n;
344
+ skip(value) {
345
+ this.skipValue = value;
232
346
  return this;
233
347
  }
234
348
  /**
235
- * Execute query
349
+ * Execute the query
236
350
  */
237
351
  async exec() {
238
- const queryOptions = {};
239
- if (this.filters.length > 0) {
240
- queryOptions.filters = this.filters;
241
- }
242
- if (this.sortField) {
243
- queryOptions.sort = { field: this.sortField, order: this.sortOrder };
244
- }
245
- if (this.limitValue !== undefined) {
246
- queryOptions.limit = this.limitValue;
247
- }
248
- if (this.skipValue !== undefined) {
249
- queryOptions.skip = this.skipValue;
250
- }
251
- const response = await this.client.getClient().post(`/api/${this.collectionName}/query`, queryOptions);
252
- let documents = response.data.documents;
253
- // Apply client-side filtering (since server returns all for now)
254
- if (this.filters.length > 0) {
255
- documents = documents.filter((doc) => {
256
- return this.filters.every((filter) => {
257
- const value = doc[filter.field];
258
- return this.matchesFilter(value, filter.operator, filter.value);
352
+ let results = await this.model.find();
353
+ // Apply filters
354
+ if (this.filterConditions.length > 0) {
355
+ results = results.filter(doc => {
356
+ return this.filterConditions.every(filter => {
357
+ const fieldValue = doc[filter.field];
358
+ switch (filter.operator) {
359
+ case 'eq':
360
+ return fieldValue === filter.value;
361
+ case 'ne':
362
+ return fieldValue !== filter.value;
363
+ case 'gt':
364
+ return fieldValue > filter.value;
365
+ case 'gte':
366
+ return fieldValue >= filter.value;
367
+ case 'lt':
368
+ return fieldValue < filter.value;
369
+ case 'lte':
370
+ return fieldValue <= filter.value;
371
+ case 'contains':
372
+ return String(fieldValue).includes(String(filter.value));
373
+ case 'in':
374
+ return Array.isArray(filter.value) && filter.value.includes(fieldValue);
375
+ case 'not_in':
376
+ return Array.isArray(filter.value) && !filter.value.includes(fieldValue);
377
+ default:
378
+ return false;
379
+ }
259
380
  });
260
381
  });
261
382
  }
262
- // Apply client-side sorting
263
- if (this.sortField) {
264
- documents.sort((a, b) => {
265
- const aVal = a[this.sortField];
266
- const bVal = b[this.sortField];
267
- const comparison = aVal > bVal ? 1 : aVal < bVal ? -1 : 0;
268
- return this.sortOrder === 'desc' ? -comparison : comparison;
383
+ // Apply sorting
384
+ if (this.sortOptions) {
385
+ const { field, order } = this.sortOptions;
386
+ results.sort((a, b) => {
387
+ const aVal = a[field];
388
+ const bVal = b[field];
389
+ if (aVal < bVal)
390
+ return order === 'asc' ? -1 : 1;
391
+ if (aVal > bVal)
392
+ return order === 'asc' ? 1 : -1;
393
+ return 0;
269
394
  });
270
395
  }
271
- return documents;
396
+ // Apply skip
397
+ if (this.skipValue) {
398
+ results = results.slice(this.skipValue);
399
+ }
400
+ // Apply limit
401
+ if (this.limitValue) {
402
+ results = results.slice(0, this.limitValue);
403
+ }
404
+ return results;
272
405
  }
273
406
  /**
274
- * Count matching documents
407
+ * Get count of matching documents
275
408
  */
276
409
  async count() {
277
- const documents = await this.exec();
278
- return documents.length;
279
- }
280
- matchesFilter(value, operator, filterValue) {
281
- switch (operator) {
282
- case 'eq':
283
- return value === filterValue;
284
- case 'ne':
285
- return value !== filterValue;
286
- case 'gt':
287
- return value > filterValue;
288
- case 'gte':
289
- return value >= filterValue;
290
- case 'lt':
291
- return value < filterValue;
292
- case 'lte':
293
- return value <= filterValue;
294
- case 'contains':
295
- return String(value).includes(String(filterValue));
296
- case 'in':
297
- return Array.isArray(filterValue) && filterValue.includes(value);
298
- case 'not_in':
299
- return Array.isArray(filterValue) && !filterValue.includes(value);
300
- default:
301
- return false;
302
- }
410
+ const results = await this.exec();
411
+ return results.length;
303
412
  }
304
413
  }
305
414
  exports.QueryBuilder = QueryBuilder;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,sDAA8C;AA+C9C,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,MAAa,UAAU;IAIrB,YAAY,UAA6B,EAAE;QAFnC,cAAS,GAAY,KAAK,CAAC;QAGjC,MAAM,YAAY,GAAiB;YACjC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,WAAW;YACjC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;YAC1B,GAAG,OAAO;SACX,CAAC;QAEF,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAK,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAK,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CACH,IAAY,EACZ,MAAoB,EACpB,OAAsB;QAEtB,OAAO,IAAI,KAAK,CAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAvED,gCAuEC;AAED,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,MAAa,KAAK;IAMhB,YACE,MAAkB,EAClB,IAAY,EACZ,MAAoB,EACpB,OAAsB;QAEtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,EAAW;QAC/B,OAAO,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,cAAc,IAAI,CAAC;IAC9F,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAgB;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAwB;YACpC,GAAI,IAAU;YACd,GAAG,EAAE,EAAE;YACP,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAC9B,CAAC;QAET,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEhE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACzC,OAAO,MAAM;aACV,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAkB;QAC9B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAEpC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,GAAG,CAAC,GAAc,CAAC,KAAK,KAAK,EAAE,CAAC;oBAClC,OAAO,GAAG,KAAK,CAAC;oBAChB,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAgB;QACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,OAAO,GAAG;YACd,GAAG,QAAQ;YACX,GAAG,IAAI;YACP,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAE/D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO,MAAM,GAAG,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,YAAY,CAAI,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAmB;QAClC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,qCAAqC;YACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;YAChC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,mCAAmC;QACnC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,GAAG,CAAC,GAAc,CAAC,KAAK,KAAK,EAAE,CAAC;oBAClC,OAAO,GAAG,KAAK,CAAC;oBAChB,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3B,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,QAAQ,CAAC,IAAgB;QACrC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgB,CAAC,CAAC;YAErC,iBAAiB;YACjB,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,eAAe,CAAC,CAAC;YACpE,CAAC;YAED,8DAA8D;YAC9D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS;YAEpD,aAAa;YACb,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC;gBACjE,IAAI,UAAU,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,qBAAqB,KAAK,CAAC,IAAI,EAAE,CACnE,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,qBAAqB;YACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpE,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,sBAAsB,KAAK,CAAC,SAAS,aAAa,CACpF,CAAC;gBACJ,CAAC;gBAED,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpE,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,qBAAqB,KAAK,CAAC,SAAS,aAAa,CACnF,CAAC;gBACJ,CAAC;gBAED,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChD,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,mCAAmC,CACrE,CAAC;gBACJ,CAAC;gBAED,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,yBAAyB,CAC3D,CAAC;gBACJ,CAAC;gBAED,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,uBAAuB,CACzD,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,qBAAqB;YACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;oBACjD,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,sBAAsB,KAAK,CAAC,GAAG,EAAE,CACnE,CAAC;gBACJ,CAAC;gBAED,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;oBACjD,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,qBAAqB,KAAK,CAAC,GAAG,EAAE,CAClE,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,oBAAoB;YACpB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,4BAA4B,CAC9D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,KAAa;QAChC,MAAM,UAAU,GAAG,4BAA4B,CAAC;QAChD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEO,UAAU,CAAC,GAAW;QAC5B,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AAlSD,sBAkSC;AAED,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAa,YAAY;IAOvB,YAAY,KAAe;QALnB,qBAAgB,GAAkB,EAAE,CAAC;QAM3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAa,EAAE,QAAiC,EAAE,KAAU;QAChE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAa,EAAE,KAAU;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,KAAa,EAAE,QAAwB,KAAK;QAC/C,IAAI,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAa;QACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEtC,gBAAgB;QAChB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBAC7B,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC1C,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,KAAgB,CAAC,CAAC;oBAEhD,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACxB,KAAK,IAAI;4BACP,OAAO,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC;wBACrC,KAAK,IAAI;4BACP,OAAO,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC;wBACrC,KAAK,IAAI;4BACP,OAAO,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;wBACnC,KAAK,KAAK;4BACR,OAAO,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC;wBACpC,KAAK,IAAI;4BACP,OAAO,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;wBACnC,KAAK,KAAK;4BACR,OAAO,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC;wBACpC,KAAK,UAAU;4BACb,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC3D,KAAK,IAAI;4BACP,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAC1E,KAAK,QAAQ;4BACX,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAC3E;4BACE,OAAO,KAAK,CAAC;oBACjB,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAgB,CAAC,CAAC;gBACjC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAgB,CAAC,CAAC;gBAEjC,IAAI,IAAI,GAAG,IAAI;oBAAE,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,IAAI,GAAG,IAAI;oBAAE,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;QACL,CAAC;QAED,aAAa;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;QAED,cAAc;QACd,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;CACF;AAzHD,oCAyHC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * TORM Studio Server (Node.js)
3
+ * Web-based visual database manager for ToonStoreDB
4
+ */
5
+ export interface StudioServerOptions {
6
+ port?: number;
7
+ host?: string;
8
+ redisUrl?: string;
9
+ redisHost?: string;
10
+ redisPort?: number;
11
+ }
12
+ export declare class StudioServer {
13
+ private app;
14
+ private redis;
15
+ private port;
16
+ private host;
17
+ constructor(options?: StudioServerOptions);
18
+ private setupMiddleware;
19
+ private setupRoutes;
20
+ start(): Promise<void>;
21
+ stop(): Promise<void>;
22
+ }
23
+ //# sourceMappingURL=studio-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-server.d.ts","sourceRoot":"","sources":["../src/studio-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAS;gBAET,OAAO,GAAE,mBAAwB;IAyB7C,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,WAAW;IAgMb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}