digitaltwin-core 0.8.3 → 0.9.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 (54) hide show
  1. package/dist/auth/apisix_parser.d.ts +24 -0
  2. package/dist/auth/apisix_parser.d.ts.map +1 -1
  3. package/dist/auth/apisix_parser.js +28 -0
  4. package/dist/auth/apisix_parser.js.map +1 -1
  5. package/dist/auth/auth_config.d.ts +31 -0
  6. package/dist/auth/auth_config.d.ts.map +1 -1
  7. package/dist/auth/auth_config.js +48 -4
  8. package/dist/auth/auth_config.js.map +1 -1
  9. package/dist/auth/user_service.d.ts.map +1 -1
  10. package/dist/auth/user_service.js +4 -1
  11. package/dist/auth/user_service.js.map +1 -1
  12. package/dist/components/assets_manager.d.ts +79 -8
  13. package/dist/components/assets_manager.d.ts.map +1 -1
  14. package/dist/components/assets_manager.js +353 -21
  15. package/dist/components/assets_manager.js.map +1 -1
  16. package/dist/components/custom_table_manager.d.ts +142 -1
  17. package/dist/components/custom_table_manager.d.ts.map +1 -1
  18. package/dist/components/custom_table_manager.js +313 -3
  19. package/dist/components/custom_table_manager.js.map +1 -1
  20. package/dist/components/map_manager.d.ts.map +1 -1
  21. package/dist/components/map_manager.js +9 -0
  22. package/dist/components/map_manager.js.map +1 -1
  23. package/dist/components/tileset_manager.d.ts.map +1 -1
  24. package/dist/components/tileset_manager.js +9 -0
  25. package/dist/components/tileset_manager.js.map +1 -1
  26. package/dist/components/types.d.ts +169 -19
  27. package/dist/components/types.d.ts.map +1 -1
  28. package/dist/components/types.js +6 -0
  29. package/dist/components/types.js.map +1 -1
  30. package/dist/database/adapters/knex_database_adapter.d.ts +10 -0
  31. package/dist/database/adapters/knex_database_adapter.d.ts.map +1 -1
  32. package/dist/database/adapters/knex_database_adapter.js +104 -9
  33. package/dist/database/adapters/knex_database_adapter.js.map +1 -1
  34. package/dist/database/database_adapter.d.ts +116 -7
  35. package/dist/database/database_adapter.d.ts.map +1 -1
  36. package/dist/database/database_adapter.js +41 -1
  37. package/dist/database/database_adapter.js.map +1 -1
  38. package/dist/engine/digital_twin_engine.d.ts +12 -0
  39. package/dist/engine/digital_twin_engine.d.ts.map +1 -1
  40. package/dist/engine/digital_twin_engine.js +15 -9
  41. package/dist/engine/digital_twin_engine.js.map +1 -1
  42. package/dist/engine/initializer.d.ts +8 -5
  43. package/dist/engine/initializer.d.ts.map +1 -1
  44. package/dist/engine/initializer.js +32 -13
  45. package/dist/engine/initializer.js.map +1 -1
  46. package/dist/index.d.ts +1 -1
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/types/data_record.d.ts +8 -0
  50. package/dist/types/data_record.d.ts.map +1 -1
  51. package/dist/utils/map_to_data_record.d.ts.map +1 -1
  52. package/dist/utils/map_to_data_record.js +4 -1
  53. package/dist/utils/map_to_data_record.js.map +1 -1
  54. package/package.json +1 -1
@@ -1,72 +1,222 @@
1
+ /**
2
+ * @fileoverview Type definitions for digital twin component configurations
3
+ *
4
+ * This module defines the configuration interfaces used by all digital twin
5
+ * components including collectors, harvesters, handlers, and asset managers.
6
+ */
7
+ /**
8
+ * Base configuration interface for all digital twin components.
9
+ *
10
+ * Every component must provide this minimal configuration to identify
11
+ * itself within the system and define its data handling characteristics.
12
+ *
13
+ * @interface ComponentConfiguration
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const config: ComponentConfiguration = {
18
+ * name: 'weather-collector',
19
+ * description: 'Collects weather data from external API',
20
+ * contentType: 'application/json',
21
+ * tags: ['weather', 'external-api'],
22
+ * extension: '.json'
23
+ * }
24
+ * ```
25
+ */
1
26
  export interface ComponentConfiguration {
27
+ /** Unique identifier for the component (used as table name and endpoint prefix) */
2
28
  name: string;
29
+ /** Human-readable description of what this component does */
3
30
  description: string;
31
+ /** MIME type of the data this component produces or handles */
4
32
  contentType: string;
33
+ /** Optional tags for categorization and filtering */
5
34
  tags?: string[];
6
35
  /** Allowed file extension for uploads (e.g., '.glb', '.json'). If set, POST/PUT operations will validate file extensions. */
7
36
  extension?: string;
8
37
  }
38
+ /**
39
+ * Configuration for AssetsManager components.
40
+ *
41
+ * Extends base configuration with endpoint definition for file management operations.
42
+ *
43
+ * @interface AssetsManagerConfiguration
44
+ * @extends {ComponentConfiguration}
45
+ */
9
46
  export interface AssetsManagerConfiguration extends ComponentConfiguration {
47
+ /** HTTP endpoint path for asset CRUD operations (e.g., 'api/assets') */
10
48
  endpoint: string;
11
49
  }
50
+ /**
51
+ * Configuration for Collector components.
52
+ *
53
+ * Collectors fetch data from external sources on a scheduled basis
54
+ * and expose endpoints for retrieving the collected data.
55
+ *
56
+ * @interface CollectorConfiguration
57
+ * @extends {ComponentConfiguration}
58
+ */
12
59
  export interface CollectorConfiguration extends ComponentConfiguration {
60
+ /** HTTP endpoint path for retrieving collected data (e.g., 'api/weather') */
13
61
  endpoint: string;
14
62
  }
63
+ /**
64
+ * Configuration for Harvester components.
65
+ *
66
+ * Harvesters process data collected by Collectors, applying transformations,
67
+ * aggregations, or analysis. They can be triggered by new source data
68
+ * or run on a schedule.
69
+ *
70
+ * @interface HarvesterConfiguration
71
+ * @extends {ComponentConfiguration}
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * const config: HarvesterConfiguration = {
76
+ * name: 'traffic-analysis',
77
+ * description: 'Analyzes traffic patterns',
78
+ * contentType: 'application/json',
79
+ * endpoint: 'api/traffic-analysis',
80
+ * source: 'traffic-collector',
81
+ * source_range: '1h',
82
+ * triggerMode: 'on-source',
83
+ * dependencies: ['weather-collector'],
84
+ * dependenciesLimit: [1]
85
+ * }
86
+ * ```
87
+ */
15
88
  export interface HarvesterConfiguration extends ComponentConfiguration {
16
- /** Source range definition (e.g., "3d", "6h", "30m", "120s", or number for limit) */
89
+ /**
90
+ * Source range definition for data retrieval.
91
+ *
92
+ * Time-based formats: "3d" (days), "6h" (hours), "30m" (minutes), "120s" (seconds)
93
+ * Count-based: number (e.g., 10 for last 10 records)
94
+ */
17
95
  source_range?: string | number;
18
- /** If true, requires exact limit to be met before processing */
96
+ /** If true, requires exact limit to be met before processing (strict mode) */
19
97
  source_range_min?: boolean;
20
98
  /** If true, stores multiple results instead of single result */
21
99
  multiple_results?: boolean;
22
- /** HTTP endpoint path */
100
+ /** HTTP endpoint path for retrieving harvested data */
23
101
  endpoint: string;
24
- /** Source component name to harvest from */
102
+ /** Source component name to harvest data from */
25
103
  source?: string;
26
- /** List of dependent component names */
104
+ /** List of dependent component names for additional data */
27
105
  dependencies?: string[];
28
- /** Limits for each dependency (corresponds to dependencies array) */
106
+ /** Record limits for each dependency (corresponds to dependencies array index) */
29
107
  dependenciesLimit?: number[];
30
108
  /**
31
- * Trigger mode for the harvester
32
- * - 'schedule': Uses cron schedule from getSchedule()
33
- * - 'on-source': Triggered after source collector runs
34
- * - 'both': Both scheduled and on-source triggers
109
+ * Trigger mode for the harvester execution.
110
+ *
111
+ * - 'schedule': Runs on cron schedule from getSchedule()
112
+ * - 'on-source': Triggered when source collector completes
113
+ * - 'both': Both scheduled and event-driven execution
35
114
  */
36
115
  triggerMode?: 'schedule' | 'on-source' | 'both';
37
116
  /**
38
- * Optional debounce in ms for on-source triggers
39
- * Prevents multiple rapid executions
117
+ * Debounce delay in milliseconds for on-source triggers.
118
+ * Prevents rapid re-execution when source updates frequently.
119
+ * Default: 1000ms
40
120
  */
41
121
  debounceMs?: number;
42
122
  }
123
+ /**
124
+ * Configuration for assets (deprecated, use AssetsManagerConfiguration).
125
+ *
126
+ * @interface AssetsConfiguration
127
+ * @extends {ComponentConfiguration}
128
+ * @deprecated Use AssetsManagerConfiguration instead
129
+ */
43
130
  export interface AssetsConfiguration extends ComponentConfiguration {
44
131
  /** HTTP endpoint path */
45
132
  endpoint: string;
46
133
  }
134
+ /**
135
+ * Standard HTTP response structure for component endpoints.
136
+ *
137
+ * All component handlers return this structure to provide consistent
138
+ * API responses across the digital twin system.
139
+ *
140
+ * @interface DataResponse
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * // Success response with JSON data
145
+ * const response: DataResponse = {
146
+ * status: 200,
147
+ * content: JSON.stringify({ data: 'value' }),
148
+ * headers: { 'Content-Type': 'application/json' }
149
+ * }
150
+ *
151
+ * // Binary response for file download
152
+ * const fileResponse: DataResponse = {
153
+ * status: 200,
154
+ * content: fileBuffer,
155
+ * headers: {
156
+ * 'Content-Type': 'application/octet-stream',
157
+ * 'Content-Disposition': 'attachment; filename="data.bin"'
158
+ * }
159
+ * }
160
+ * ```
161
+ */
47
162
  export interface DataResponse {
163
+ /** HTTP status code (200, 400, 401, 404, 500, etc.) */
48
164
  status: number;
165
+ /** Response body (Buffer for binary, string for text/JSON) */
49
166
  content: Buffer | string;
167
+ /** Optional HTTP headers to include in response */
50
168
  headers?: Record<string, string>;
51
169
  }
170
+ /**
171
+ * Configuration for CustomTableManager components.
172
+ *
173
+ * Allows defining custom database tables with arbitrary columns
174
+ * and optional custom endpoints for specialized data management.
175
+ *
176
+ * @interface StoreConfiguration
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * const config: StoreConfiguration = {
181
+ * name: 'wms_layers',
182
+ * description: 'Manage WMS map layers',
183
+ * columns: {
184
+ * wms_url: 'text not null',
185
+ * layer_name: 'text not null',
186
+ * active: 'boolean default true'
187
+ * },
188
+ * endpoints: [
189
+ * { path: '/toggle/:id', method: 'put', handler: 'toggleLayer' }
190
+ * ]
191
+ * }
192
+ * ```
193
+ */
52
194
  export interface StoreConfiguration {
53
- /** Name of the store (will be used as table name) */
195
+ /** Name of the store (used as database table name) */
54
196
  name: string;
55
- /** Description of what this store manages */
197
+ /** Human-readable description of what this store manages */
56
198
  description: string;
57
- /** Database columns definition with SQL types */
199
+ /**
200
+ * Database columns definition.
201
+ * Key: column name, Value: SQL type definition (e.g., 'text not null', 'integer', 'boolean default true')
202
+ */
58
203
  columns: {
59
204
  [columnName: string]: string;
60
205
  };
61
- /** Custom endpoints for this store manager (optional) */
206
+ /** Custom endpoints beyond the standard CRUD operations */
62
207
  endpoints?: EndpointDefinition[];
63
208
  }
209
+ /**
210
+ * Definition for a custom HTTP endpoint on a CustomTableManager.
211
+ *
212
+ * @interface EndpointDefinition
213
+ */
64
214
  export interface EndpointDefinition {
65
- /** HTTP path relative to store name (e.g., "/add-layers") */
215
+ /** HTTP path relative to store name (e.g., "/toggle/:id", "/batch") */
66
216
  path: string;
67
- /** HTTP method */
217
+ /** HTTP method for this endpoint */
68
218
  method: 'get' | 'post' | 'put' | 'delete';
69
- /** Method name in the class to handle this endpoint */
219
+ /** Name of the method in the manager class to handle this endpoint */
70
220
  handler: string;
71
221
  }
72
222
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,6HAA6H;IAC7H,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACtE,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IAClE,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IAClE,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAE9B,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAA;IAEhB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IAEvB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE5B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,CAAA;IAE/C;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IAC/D,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,kBAAkB;IAC/B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAA;IACnB,iDAAiD;IACjD,OAAO,EAAE;QACL,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;KAC/B,CAAA;IACD,yDAAyD;IACzD,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAA;CACnC;AAED,MAAM,WAAW,kBAAkB;IAC/B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ,kBAAkB;IAClB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;IACzC,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAA;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,sBAAsB;IACnC,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAA;IACZ,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAA;IACnB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,6HAA6H;IAC7H,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACtE,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IAClE,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IAClE;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAE9B,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAA;IAEhB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IAEvB,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE5B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,CAAA;IAE/C;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IAC/D,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,YAAY;IACzB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAA;IACd,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,kBAAkB;IAC/B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAA;IACZ,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,OAAO,EAAE;QACL,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;KAC/B,CAAA;IACD,2DAA2D;IAC3D,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAA;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAC/B,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;IACzC,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAA;CAClB"}
@@ -1,2 +1,8 @@
1
+ /**
2
+ * @fileoverview Type definitions for digital twin component configurations
3
+ *
4
+ * This module defines the configuration interfaces used by all digital twin
5
+ * components including collectors, harvesters, handlers, and asset managers.
6
+ */
1
7
  export {};
2
8
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -38,6 +38,16 @@ export declare class KnexDatabaseAdapter extends DatabaseAdapter {
38
38
  doesTableExists(name: string): Promise<boolean>;
39
39
  createTable(name: string): Promise<void>;
40
40
  createTableWithColumns(name: string, columns: Record<string, string>): Promise<void>;
41
+ /**
42
+ * Migrate existing table schema to match expected schema.
43
+ *
44
+ * Automatically adds missing columns and indexes for asset tables.
45
+ * Only performs safe operations (adding columns with defaults or nullable).
46
+ *
47
+ * @param {string} name - Table name to migrate
48
+ * @returns {Promise<string[]>} Array of migration messages describing what was done
49
+ */
50
+ migrateTableSchema(name: string): Promise<string[]>;
41
51
  getFirstByName(name: string): Promise<DataRecord | undefined>;
42
52
  getByDateRange(name: string, startDate: Date, endDate?: Date, limit?: number): Promise<DataRecord[]>;
43
53
  getAfterDate(name: string, afterDate: Date, limit?: number): Promise<DataRecord[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"knex_database_adapter.d.ts","sourceRoot":"","sources":["../../../src/database/adapters/knex_database_adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knex_database_adapter.d.ts","sourceRoot":"","sources":["../../../src/database/adapters/knex_database_adapter.ts"],"names":[],"mappings":"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"}
@@ -99,6 +99,8 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
99
99
  insertData.owner_id = meta.owner_id;
100
100
  if ('filename' in meta)
101
101
  insertData.filename = meta.filename;
102
+ if ('is_public' in meta)
103
+ insertData.is_public = meta.is_public;
102
104
  await this.#knex(meta.name).insert(insertData);
103
105
  return mapToDataRecord(meta, this.#storage);
104
106
  }
@@ -130,6 +132,7 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
130
132
  table.string('source').nullable();
131
133
  table.integer('owner_id').unsigned().nullable();
132
134
  table.string('filename').nullable();
135
+ table.boolean('is_public').defaultTo(true).notNullable();
133
136
  // Foreign key constraint to users table (if it exists)
134
137
  // Note: This will only work if users table exists first
135
138
  try {
@@ -145,6 +148,7 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
145
148
  table.index(['name', 'date'], `${name}_idx_name_date`);
146
149
  table.index(['date', 'name'], `${name}_idx_date_name`); // For date range queries
147
150
  table.index('owner_id', `${name}_idx_owner_id`); // For asset filtering and foreign key
151
+ table.index('is_public', `${name}_idx_is_public`); // For visibility filtering
148
152
  });
149
153
  }
150
154
  }
@@ -233,6 +237,88 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
233
237
  col.nullable();
234
238
  }
235
239
  }
240
+ /**
241
+ * Migrate existing table schema to match expected schema.
242
+ *
243
+ * Automatically adds missing columns and indexes for asset tables.
244
+ * Only performs safe operations (adding columns with defaults or nullable).
245
+ *
246
+ * @param {string} name - Table name to migrate
247
+ * @returns {Promise<string[]>} Array of migration messages describing what was done
248
+ */
249
+ async migrateTableSchema(name) {
250
+ const tableExists = await this.#knex.schema.hasTable(name);
251
+ if (!tableExists) {
252
+ return []; // Table doesn't exist, nothing to migrate
253
+ }
254
+ const migrations = [];
255
+ // Define expected columns for asset tables (those created by createTable)
256
+ const expectedColumns = {
257
+ is_public: {
258
+ exists: await this.#knex.schema.hasColumn(name, 'is_public'),
259
+ add: async () => {
260
+ await this.#knex.schema.alterTable(name, table => {
261
+ table.boolean('is_public').defaultTo(true).notNullable();
262
+ });
263
+ migrations.push(`Added column 'is_public' (BOOLEAN DEFAULT true NOT NULL)`);
264
+ }
265
+ }
266
+ };
267
+ // Expected indexes
268
+ const expectedIndexes = {
269
+ [`${name}_idx_is_public`]: {
270
+ exists: await this.#hasIndex(name, `${name}_idx_is_public`),
271
+ add: async () => {
272
+ await this.#knex.schema.alterTable(name, table => {
273
+ table.index('is_public', `${name}_idx_is_public`);
274
+ });
275
+ migrations.push(`Added index '${name}_idx_is_public'`);
276
+ }
277
+ }
278
+ };
279
+ // Add missing columns
280
+ for (const [_columnName, config] of Object.entries(expectedColumns)) {
281
+ if (!config.exists) {
282
+ await config.add();
283
+ }
284
+ }
285
+ // Add missing indexes
286
+ for (const [_indexName, config] of Object.entries(expectedIndexes)) {
287
+ if (!config.exists) {
288
+ await config.add();
289
+ }
290
+ }
291
+ return migrations;
292
+ }
293
+ /**
294
+ * Check if an index exists on a table
295
+ * @private
296
+ */
297
+ async #hasIndex(tableName, indexName) {
298
+ try {
299
+ // PostgreSQL
300
+ if (this.#knex.client.config.client === 'pg') {
301
+ const result = await this.#knex.raw(`SELECT 1 FROM pg_indexes WHERE tablename = ? AND indexname = ?`, [
302
+ tableName,
303
+ indexName
304
+ ]);
305
+ return result.rows.length > 0;
306
+ }
307
+ // SQLite - query sqlite_master
308
+ if (this.#knex.client.config.client === 'sqlite3' || this.#knex.client.config.client === 'better-sqlite3') {
309
+ const result = await this.#knex.raw(`SELECT name FROM sqlite_master WHERE type='index' AND name=?`, [
310
+ indexName
311
+ ]);
312
+ return result.length > 0;
313
+ }
314
+ // Unknown database, assume index doesn't exist
315
+ return false;
316
+ }
317
+ catch {
318
+ // If query fails, assume index doesn't exist
319
+ return false;
320
+ }
321
+ }
236
322
  // ========== Extended methods ==========
237
323
  async getFirstByName(name) {
238
324
  const row = await this.#knex(name).orderBy('date', 'asc').first();
@@ -292,10 +378,13 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
292
378
  // Group by table name for efficient batch inserts
293
379
  const groupedByTable = new Map();
294
380
  for (const meta of metadataList) {
295
- if (!groupedByTable.has(meta.name)) {
296
- groupedByTable.set(meta.name, []);
381
+ const group = groupedByTable.get(meta.name);
382
+ if (group) {
383
+ group.push(meta);
384
+ }
385
+ else {
386
+ groupedByTable.set(meta.name, [meta]);
297
387
  }
298
- groupedByTable.get(meta.name).push(meta);
299
388
  }
300
389
  const results = [];
301
390
  // Process each table in a transaction for consistency
@@ -336,10 +425,13 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
336
425
  // Group by table name for efficient batch deletes
337
426
  const groupedByTable = new Map();
338
427
  for (const req of deleteRequests) {
339
- if (!groupedByTable.has(req.name)) {
340
- groupedByTable.set(req.name, []);
428
+ const group = groupedByTable.get(req.name);
429
+ if (group) {
430
+ group.push(req.id);
431
+ }
432
+ else {
433
+ groupedByTable.set(req.name, [req.id]);
341
434
  }
342
- groupedByTable.get(req.name).push(req.id);
343
435
  }
344
436
  // Process each table
345
437
  for (const [tableName, ids] of groupedByTable) {
@@ -353,10 +445,13 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
353
445
  // Group by table name for efficient queries
354
446
  const groupedByTable = new Map();
355
447
  for (const req of requests) {
356
- if (!groupedByTable.has(req.name)) {
357
- groupedByTable.set(req.name, []);
448
+ const group = groupedByTable.get(req.name);
449
+ if (group) {
450
+ group.push(req.id);
451
+ }
452
+ else {
453
+ groupedByTable.set(req.name, [req.id]);
358
454
  }
359
- groupedByTable.get(req.name).push(req.id);
360
455
  }
361
456
  // Query each table
362
457
  for (const [tableName, ids] of groupedByTable) {
@@ -1 +1 @@
1
- {"version":3,"file":"knex_database_adapter.js","sourceRoot":"","sources":["../../../src/database/adapters/knex_database_adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knex_database_adapter.js","sourceRoot":"","sources":["../../../src/database/adapters/knex_database_adapter.ts"],"names":[],"mappings":"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"}