digitaltwin-core 0.9.2 → 0.10.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.
- package/dist/auth/user_service.d.ts.map +1 -1
- package/dist/auth/user_service.js +0 -5
- package/dist/auth/user_service.js.map +1 -1
- package/dist/components/assets_manager.d.ts +11 -1
- package/dist/components/assets_manager.d.ts.map +1 -1
- package/dist/components/assets_manager.js +355 -9
- package/dist/components/assets_manager.js.map +1 -1
- package/dist/components/collector.d.ts +11 -1
- package/dist/components/collector.d.ts.map +1 -1
- package/dist/components/collector.js +43 -0
- package/dist/components/collector.js.map +1 -1
- package/dist/components/custom_table_manager.d.ts +19 -1
- package/dist/components/custom_table_manager.d.ts.map +1 -1
- package/dist/components/custom_table_manager.js +225 -0
- package/dist/components/custom_table_manager.js.map +1 -1
- package/dist/components/handler.d.ts +11 -1
- package/dist/components/handler.d.ts.map +1 -1
- package/dist/components/handler.js +44 -0
- package/dist/components/handler.js.map +1 -1
- package/dist/components/harvester.d.ts +11 -1
- package/dist/components/harvester.d.ts.map +1 -1
- package/dist/components/harvester.js +43 -0
- package/dist/components/harvester.js.map +1 -1
- package/dist/components/tileset_manager.d.ts +10 -0
- package/dist/components/tileset_manager.d.ts.map +1 -1
- package/dist/components/tileset_manager.js +65 -0
- package/dist/components/tileset_manager.js.map +1 -1
- package/dist/components/types.d.ts +2 -0
- package/dist/components/types.d.ts.map +1 -1
- package/dist/engine/digital_twin_engine.d.ts.map +1 -1
- package/dist/engine/digital_twin_engine.js +20 -14
- package/dist/engine/digital_twin_engine.js.map +1 -1
- package/dist/engine/initializer.js +5 -11
- package/dist/engine/initializer.js.map +1 -1
- package/dist/engine/scheduler.d.ts.map +1 -1
- package/dist/engine/scheduler.js +10 -14
- package/dist/engine/scheduler.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/openapi/generator.d.ts +93 -0
- package/dist/openapi/generator.d.ts.map +1 -0
- package/dist/openapi/generator.js +293 -0
- package/dist/openapi/generator.js.map +1 -0
- package/dist/openapi/index.d.ts +9 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js +9 -0
- package/dist/openapi/index.js.map +1 -0
- package/dist/openapi/types.d.ts +182 -0
- package/dist/openapi/types.d.ts.map +1 -0
- package/dist/openapi/types.js +16 -0
- package/dist/openapi/types.js.map +1 -0
- package/package.json +2 -2
package/dist/engine/scheduler.js
CHANGED
|
@@ -55,7 +55,7 @@ class ComponentScheduler {
|
|
|
55
55
|
this.components = components;
|
|
56
56
|
this.queueManager = queueManager;
|
|
57
57
|
this.multiQueue = multiQueue;
|
|
58
|
-
this.logger = new Logger('
|
|
58
|
+
this.logger = new Logger('DigitalTwin', logLevel ?? (process.env.NODE_ENV === 'test' ? LogLevel.SILENT : LogLevel.INFO));
|
|
59
59
|
this.#buildComponentMap();
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
@@ -149,7 +149,7 @@ class ComponentScheduler {
|
|
|
149
149
|
continue;
|
|
150
150
|
const config = comp.getConfiguration();
|
|
151
151
|
if (config.source === collectorName && this.debouncedTriggers[config.name]) {
|
|
152
|
-
this.logger.
|
|
152
|
+
this.logger.debug(`Triggering harvester "${config.name}" from "${collectorName}"`);
|
|
153
153
|
this.debouncedTriggers[config.name]();
|
|
154
154
|
}
|
|
155
155
|
}
|
|
@@ -159,12 +159,9 @@ class ComponentScheduler {
|
|
|
159
159
|
* @private
|
|
160
160
|
*/
|
|
161
161
|
async #scheduleMultiQueue() {
|
|
162
|
-
this.logger.info('Starting multi-queue scheduling mode');
|
|
163
162
|
await this.#scheduleCollectors();
|
|
164
163
|
await this.#scheduleHarvesters();
|
|
165
|
-
|
|
166
|
-
this.logger.info(`Multi-queue scheduler initialized with ${workers.length} workers`);
|
|
167
|
-
return workers;
|
|
164
|
+
return [this.#createCollectorWorker(), this.#createHarvesterWorker(), this.#createPriorityWorker()];
|
|
168
165
|
}
|
|
169
166
|
/**
|
|
170
167
|
* Schedules all collectors in multi-queue mode
|
|
@@ -179,7 +176,7 @@ class ComponentScheduler {
|
|
|
179
176
|
name: config.name,
|
|
180
177
|
data: { type: 'collector', triggeredBy: 'schedule' }
|
|
181
178
|
});
|
|
182
|
-
this.logger.info(`
|
|
179
|
+
this.logger.info(`Collector "${config.name}" scheduled: ${schedule}`);
|
|
183
180
|
}
|
|
184
181
|
}
|
|
185
182
|
/**
|
|
@@ -196,7 +193,7 @@ class ComponentScheduler {
|
|
|
196
193
|
name: config.name,
|
|
197
194
|
data: { type: 'harvester', triggeredBy: 'schedule' }
|
|
198
195
|
});
|
|
199
|
-
this.logger.info(`
|
|
196
|
+
this.logger.info(`Harvester "${config.name}" scheduled: ${schedule}`);
|
|
200
197
|
}
|
|
201
198
|
}
|
|
202
199
|
}
|
|
@@ -240,7 +237,7 @@ class ComponentScheduler {
|
|
|
240
237
|
const comp = this.componentMap[job.name];
|
|
241
238
|
if (!comp)
|
|
242
239
|
return;
|
|
243
|
-
this.logger.
|
|
240
|
+
this.logger.debug(`Running collector: ${job.name}`);
|
|
244
241
|
try {
|
|
245
242
|
const result = await comp.run();
|
|
246
243
|
return {
|
|
@@ -262,7 +259,7 @@ class ComponentScheduler {
|
|
|
262
259
|
const comp = this.componentMap[job.name];
|
|
263
260
|
if (!comp)
|
|
264
261
|
return;
|
|
265
|
-
this.logger.
|
|
262
|
+
this.logger.debug(`Running harvester: ${job.name} (${job.data.triggeredBy})`);
|
|
266
263
|
try {
|
|
267
264
|
const result = await comp.run();
|
|
268
265
|
// Emit harvester completion event
|
|
@@ -290,7 +287,7 @@ class ComponentScheduler {
|
|
|
290
287
|
const comp = this.componentMap[job.name];
|
|
291
288
|
if (!comp)
|
|
292
289
|
return;
|
|
293
|
-
this.logger.
|
|
290
|
+
this.logger.debug(`Running priority job: ${job.name}`);
|
|
294
291
|
const result = await comp.run();
|
|
295
292
|
return { success: true, result };
|
|
296
293
|
}
|
|
@@ -299,14 +296,13 @@ class ComponentScheduler {
|
|
|
299
296
|
* @private
|
|
300
297
|
*/
|
|
301
298
|
async #scheduleSingleQueue() {
|
|
302
|
-
this.logger.warn('
|
|
299
|
+
this.logger.warn('Single-queue mode (not recommended for production)');
|
|
303
300
|
const singleQueue = this.queueManager.collectorQueue;
|
|
304
301
|
await this.#scheduleAllComponentsInSingleQueue(singleQueue);
|
|
305
302
|
const worker = new Worker(singleQueue.name, async (job) => this.#processSingleQueueJob(job), {
|
|
306
303
|
connection: singleQueue.opts.connection,
|
|
307
304
|
concurrency: WORKER_CONFIG.SINGLE_QUEUE.concurrency(this.components.length)
|
|
308
305
|
});
|
|
309
|
-
this.logger.info('Single-queue scheduler initialized with 1 worker');
|
|
310
306
|
return [worker];
|
|
311
307
|
}
|
|
312
308
|
/**
|
|
@@ -339,7 +335,7 @@ class ComponentScheduler {
|
|
|
339
335
|
const comp = this.componentMap[job.name];
|
|
340
336
|
if (!comp)
|
|
341
337
|
return;
|
|
342
|
-
this.logger.
|
|
338
|
+
this.logger.debug(`Running ${job.data.type}: ${job.name}`);
|
|
343
339
|
const result = await comp.run();
|
|
344
340
|
return { success: true, result };
|
|
345
341
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/engine/scheduler.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,QAAQ,MAAM,oBAAoB,CAAA;AAGzC;;GAEG;AACH,MAAM,aAAa,GAAG;IAClB,SAAS,EAAE;QACP,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;KACxC;IACD,SAAS,EAAE;QACP,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;KACxC;IACD,QAAQ,EAAE;QACN,WAAW,EAAE,CAAC,CAAC,8BAA8B;KAChD;IACD,YAAY,EAAE;QACV,WAAW,EAAE,CAAC,cAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;KACvE;CACK,CAAA;AAEV;;GAEG;AACH,MAAM,iBAAiB,GAAG;IACtB,gBAAgB,EAAE,IAAI;IACtB,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE;CACvC,CAAA;AAEV;;;;;;;;GAQG;AACH,MAAM,kBAAkB;IAQpB;;;;;;OAMG;IACH,YACI,UAAwC,EACxC,YAA0B,EAC1B,aAAsB,IAAI,EAC1B,QAAmB;QAdN,iBAAY,GAA0C,EAAE,CAAA;QACxD,sBAAiB,GAA6C,EAAE,CAAA;QAe7E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACpB,
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/engine/scheduler.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -42,5 +42,6 @@ export { QueueManager } from './engine/queue_manager.js';
|
|
|
42
42
|
export { initializeComponents } from './engine/initializer.js';
|
|
43
43
|
export * from './engine/events.js';
|
|
44
44
|
export * from './engine/endpoints.js';
|
|
45
|
+
export * from './openapi/index.js';
|
|
45
46
|
export { Env } from './env/env.js';
|
|
46
47
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EACH,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC9B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAGhE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAA;AAGlH,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AAGtC,cAAc,iBAAiB,CAAA;AAG/B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EACH,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACtB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EACH,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC9B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAGhE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAA;AAGlH,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AAGtC,cAAc,iBAAiB,CAAA;AAG/B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EACH,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACtB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AAGrC,cAAc,oBAAoB,CAAA;AAElC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -49,5 +49,7 @@ export { QueueManager } from './engine/queue_manager.js';
|
|
|
49
49
|
export { initializeComponents } from './engine/initializer.js';
|
|
50
50
|
export * from './engine/events.js';
|
|
51
51
|
export * from './engine/endpoints.js';
|
|
52
|
+
// OpenAPI Documentation Generation
|
|
53
|
+
export * from './openapi/index.js';
|
|
52
54
|
export { Env } from './env/env.js';
|
|
53
55
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc;AACd,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,kBAAkB;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EACH,kBAAkB,EAGrB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAEhE,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAkC,MAAM,8CAA8C,CAAA;AAElH,uBAAuB;AACvB,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AAEtC,iBAAiB;AACjB,cAAc,iBAAiB,CAAA;AAE/B,YAAY;AACZ,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EACH,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACtB,MAAM,2BAA2B,CAAA;AAGlC,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AAErC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc;AACd,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,kBAAkB;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EACH,kBAAkB,EAGrB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAEhE,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAkC,MAAM,8CAA8C,CAAA;AAElH,uBAAuB;AACvB,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AAEtC,iBAAiB;AACjB,cAAc,iBAAiB,CAAA;AAE/B,YAAY;AACZ,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EACH,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACtB,MAAM,2BAA2B,CAAA;AAGlC,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AAErC,mCAAmC;AACnC,cAAc,oBAAoB,CAAA;AAElC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview OpenAPI specification generator for Digital Twin components
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities to automatically generate OpenAPI 3.0
|
|
5
|
+
* documentation from Digital Twin components that implement OpenAPIDocumentable.
|
|
6
|
+
*/
|
|
7
|
+
import type { OpenAPIDocument, OpenAPIGeneratorOptions, OpenAPISchema } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Generates OpenAPI 3.0 specifications from Digital Twin components.
|
|
10
|
+
*
|
|
11
|
+
* The generator aggregates OpenAPI specs from all components that implement
|
|
12
|
+
* the OpenAPIDocumentable interface and produces a complete OpenAPI document.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { OpenAPIGenerator } from 'digitaltwin-core'
|
|
17
|
+
* import * as components from './src/components'
|
|
18
|
+
*
|
|
19
|
+
* const spec = OpenAPIGenerator.generate({
|
|
20
|
+
* info: {
|
|
21
|
+
* title: 'My Digital Twin API',
|
|
22
|
+
* version: '1.0.0',
|
|
23
|
+
* description: 'API documentation'
|
|
24
|
+
* },
|
|
25
|
+
* components: Object.values(components),
|
|
26
|
+
* servers: [{ url: 'http://localhost:3000' }]
|
|
27
|
+
* })
|
|
28
|
+
*
|
|
29
|
+
* // Write to file
|
|
30
|
+
* OpenAPIGenerator.writeYAML(spec, './openapi.yaml')
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare class OpenAPIGenerator {
|
|
34
|
+
/**
|
|
35
|
+
* Generates an OpenAPI document from the provided components.
|
|
36
|
+
*
|
|
37
|
+
* @param options - Generation options including components and metadata
|
|
38
|
+
* @returns Complete OpenAPI document
|
|
39
|
+
*/
|
|
40
|
+
static generate(options: OpenAPIGeneratorOptions): OpenAPIDocument;
|
|
41
|
+
/**
|
|
42
|
+
* Returns default security schemes for APISIX/Keycloak authentication.
|
|
43
|
+
*/
|
|
44
|
+
private static getDefaultSecuritySchemes;
|
|
45
|
+
/**
|
|
46
|
+
* Converts an OpenAPI document to YAML string.
|
|
47
|
+
*
|
|
48
|
+
* @param document - OpenAPI document to convert
|
|
49
|
+
* @returns YAML string representation
|
|
50
|
+
*/
|
|
51
|
+
static toYAML(document: OpenAPIDocument): string;
|
|
52
|
+
/**
|
|
53
|
+
* Converts an OpenAPI document to JSON string.
|
|
54
|
+
*
|
|
55
|
+
* @param document - OpenAPI document to convert
|
|
56
|
+
* @param pretty - Whether to format with indentation (default: true)
|
|
57
|
+
* @returns JSON string representation
|
|
58
|
+
*/
|
|
59
|
+
static toJSON(document: OpenAPIDocument, pretty?: boolean): string;
|
|
60
|
+
/**
|
|
61
|
+
* Recursively converts an object to YAML format.
|
|
62
|
+
* Simple implementation without external dependencies.
|
|
63
|
+
*/
|
|
64
|
+
private static objectToYAML;
|
|
65
|
+
/**
|
|
66
|
+
* Helper to create a simple schema reference.
|
|
67
|
+
*/
|
|
68
|
+
static schemaRef(name: string): OpenAPISchema;
|
|
69
|
+
/**
|
|
70
|
+
* Helper to create a common response for 200 OK with content.
|
|
71
|
+
*/
|
|
72
|
+
static successResponse(contentType: string, schema: OpenAPISchema, description?: string): {
|
|
73
|
+
'200': {
|
|
74
|
+
description: string;
|
|
75
|
+
content: {
|
|
76
|
+
[contentType]: {
|
|
77
|
+
schema: OpenAPISchema;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Helper to create common error responses.
|
|
84
|
+
*/
|
|
85
|
+
static errorResponses(codes?: Array<400 | 401 | 403 | 404 | 500>): Record<string, {
|
|
86
|
+
description: string;
|
|
87
|
+
}>;
|
|
88
|
+
/**
|
|
89
|
+
* Common schemas used across components.
|
|
90
|
+
*/
|
|
91
|
+
static commonSchemas: Record<string, OpenAPISchema>;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/openapi/generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACR,eAAe,EACf,uBAAuB,EAEvB,aAAa,EAGhB,MAAM,YAAY,CAAA;AAGnB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,gBAAgB;IACzB;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,GAAG,eAAe;IAqFlE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAWxC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM;IAIhD;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAO,GAAG,MAAM;IAI/D;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAoF3B;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAI7C;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,SAAwB;;;;gBAKtF,CAAC,WAAW,CAAC;;kBAAY;;;;IAMzC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,GAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAwB;qBACnC,MAAM;;IAiBzD;;OAEG;IACH,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAuClD;CACJ"}
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview OpenAPI specification generator for Digital Twin components
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities to automatically generate OpenAPI 3.0
|
|
5
|
+
* documentation from Digital Twin components that implement OpenAPIDocumentable.
|
|
6
|
+
*/
|
|
7
|
+
import { isOpenAPIDocumentable } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Generates OpenAPI 3.0 specifications from Digital Twin components.
|
|
10
|
+
*
|
|
11
|
+
* The generator aggregates OpenAPI specs from all components that implement
|
|
12
|
+
* the OpenAPIDocumentable interface and produces a complete OpenAPI document.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { OpenAPIGenerator } from 'digitaltwin-core'
|
|
17
|
+
* import * as components from './src/components'
|
|
18
|
+
*
|
|
19
|
+
* const spec = OpenAPIGenerator.generate({
|
|
20
|
+
* info: {
|
|
21
|
+
* title: 'My Digital Twin API',
|
|
22
|
+
* version: '1.0.0',
|
|
23
|
+
* description: 'API documentation'
|
|
24
|
+
* },
|
|
25
|
+
* components: Object.values(components),
|
|
26
|
+
* servers: [{ url: 'http://localhost:3000' }]
|
|
27
|
+
* })
|
|
28
|
+
*
|
|
29
|
+
* // Write to file
|
|
30
|
+
* OpenAPIGenerator.writeYAML(spec, './openapi.yaml')
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export class OpenAPIGenerator {
|
|
34
|
+
/**
|
|
35
|
+
* Generates an OpenAPI document from the provided components.
|
|
36
|
+
*
|
|
37
|
+
* @param options - Generation options including components and metadata
|
|
38
|
+
* @returns Complete OpenAPI document
|
|
39
|
+
*/
|
|
40
|
+
static generate(options) {
|
|
41
|
+
const { info, servers, components, additionalSchemas, additionalTags, includeAuth = true } = options;
|
|
42
|
+
// Filter components that implement OpenAPIDocumentable
|
|
43
|
+
const documentableComponents = components.filter(isOpenAPIDocumentable);
|
|
44
|
+
// Aggregate paths, tags, and schemas from all components
|
|
45
|
+
const allPaths = {};
|
|
46
|
+
const allTags = additionalTags ? [...additionalTags] : [];
|
|
47
|
+
const allSchemas = additionalSchemas ? { ...additionalSchemas } : {};
|
|
48
|
+
const tagNames = new Set(additionalTags?.map(t => t.name) || []);
|
|
49
|
+
for (const component of documentableComponents) {
|
|
50
|
+
try {
|
|
51
|
+
const spec = component.getOpenAPISpec();
|
|
52
|
+
// Merge paths
|
|
53
|
+
for (const [path, pathItem] of Object.entries(spec.paths)) {
|
|
54
|
+
if (allPaths[path]) {
|
|
55
|
+
// Merge operations into existing path
|
|
56
|
+
allPaths[path] = { ...allPaths[path], ...pathItem };
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
allPaths[path] = pathItem;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Merge tags (avoid duplicates)
|
|
63
|
+
if (spec.tags) {
|
|
64
|
+
for (const tag of spec.tags) {
|
|
65
|
+
if (!tagNames.has(tag.name)) {
|
|
66
|
+
allTags.push(tag);
|
|
67
|
+
tagNames.add(tag.name);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Merge schemas
|
|
72
|
+
if (spec.schemas) {
|
|
73
|
+
Object.assign(allSchemas, spec.schemas);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
const componentName = 'getConfiguration' in component
|
|
78
|
+
? component.getConfiguration().name
|
|
79
|
+
: 'unknown';
|
|
80
|
+
console.warn(`Warning: Failed to get OpenAPI spec from component "${componentName}":`, error);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Sort tags alphabetically
|
|
84
|
+
allTags.sort((a, b) => a.name.localeCompare(b.name));
|
|
85
|
+
// Build components section
|
|
86
|
+
const componentsSection = {};
|
|
87
|
+
if (Object.keys(allSchemas).length > 0) {
|
|
88
|
+
componentsSection.schemas = allSchemas;
|
|
89
|
+
}
|
|
90
|
+
if (includeAuth) {
|
|
91
|
+
componentsSection.securitySchemes = this.getDefaultSecuritySchemes();
|
|
92
|
+
}
|
|
93
|
+
// Build final document
|
|
94
|
+
const document = {
|
|
95
|
+
openapi: '3.0.3',
|
|
96
|
+
info,
|
|
97
|
+
paths: allPaths
|
|
98
|
+
};
|
|
99
|
+
if (servers && servers.length > 0) {
|
|
100
|
+
document.servers = servers;
|
|
101
|
+
}
|
|
102
|
+
if (allTags.length > 0) {
|
|
103
|
+
document.tags = allTags;
|
|
104
|
+
}
|
|
105
|
+
if (Object.keys(componentsSection).length > 0) {
|
|
106
|
+
document.components = componentsSection;
|
|
107
|
+
}
|
|
108
|
+
return document;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Returns default security schemes for APISIX/Keycloak authentication.
|
|
112
|
+
*/
|
|
113
|
+
static getDefaultSecuritySchemes() {
|
|
114
|
+
return {
|
|
115
|
+
ApiKeyAuth: {
|
|
116
|
+
type: 'apiKey',
|
|
117
|
+
in: 'header',
|
|
118
|
+
name: 'x-user-id',
|
|
119
|
+
description: 'Keycloak user ID (forwarded by APISIX)'
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Converts an OpenAPI document to YAML string.
|
|
125
|
+
*
|
|
126
|
+
* @param document - OpenAPI document to convert
|
|
127
|
+
* @returns YAML string representation
|
|
128
|
+
*/
|
|
129
|
+
static toYAML(document) {
|
|
130
|
+
return this.objectToYAML(document, 0);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Converts an OpenAPI document to JSON string.
|
|
134
|
+
*
|
|
135
|
+
* @param document - OpenAPI document to convert
|
|
136
|
+
* @param pretty - Whether to format with indentation (default: true)
|
|
137
|
+
* @returns JSON string representation
|
|
138
|
+
*/
|
|
139
|
+
static toJSON(document, pretty = true) {
|
|
140
|
+
return JSON.stringify(document, null, pretty ? 2 : undefined);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Recursively converts an object to YAML format.
|
|
144
|
+
* Simple implementation without external dependencies.
|
|
145
|
+
*/
|
|
146
|
+
static objectToYAML(obj, indent) {
|
|
147
|
+
const spaces = ' '.repeat(indent);
|
|
148
|
+
if (obj === null || obj === undefined) {
|
|
149
|
+
return 'null';
|
|
150
|
+
}
|
|
151
|
+
if (typeof obj === 'string') {
|
|
152
|
+
// Check if string needs quoting
|
|
153
|
+
if (obj === '' ||
|
|
154
|
+
obj.includes(':') ||
|
|
155
|
+
obj.includes('#') ||
|
|
156
|
+
obj.includes('\n') ||
|
|
157
|
+
obj.includes('"') ||
|
|
158
|
+
obj.includes("'") ||
|
|
159
|
+
obj.startsWith(' ') ||
|
|
160
|
+
obj.endsWith(' ') ||
|
|
161
|
+
obj === 'true' ||
|
|
162
|
+
obj === 'false' ||
|
|
163
|
+
obj === 'null' ||
|
|
164
|
+
/^[\d.]+$/.test(obj)) {
|
|
165
|
+
// Use double quotes and escape
|
|
166
|
+
return `"${obj.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n')}"`;
|
|
167
|
+
}
|
|
168
|
+
return obj;
|
|
169
|
+
}
|
|
170
|
+
if (typeof obj === 'number' || typeof obj === 'boolean') {
|
|
171
|
+
return String(obj);
|
|
172
|
+
}
|
|
173
|
+
if (Array.isArray(obj)) {
|
|
174
|
+
if (obj.length === 0) {
|
|
175
|
+
return '[]';
|
|
176
|
+
}
|
|
177
|
+
const items = obj.map(item => {
|
|
178
|
+
const value = this.objectToYAML(item, indent + 1);
|
|
179
|
+
if (typeof item === 'object' && item !== null && !Array.isArray(item)) {
|
|
180
|
+
// Object in array - put first property on same line as dash
|
|
181
|
+
const lines = value.split('\n');
|
|
182
|
+
if (lines.length > 0) {
|
|
183
|
+
return `${spaces}- ${lines[0].trimStart()}\n${lines.slice(1).join('\n')}`;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return `${spaces}- ${value}`;
|
|
187
|
+
});
|
|
188
|
+
return items.join('\n').replace(/\n+$/, '');
|
|
189
|
+
}
|
|
190
|
+
if (typeof obj === 'object') {
|
|
191
|
+
const entries = Object.entries(obj);
|
|
192
|
+
if (entries.length === 0) {
|
|
193
|
+
return '{}';
|
|
194
|
+
}
|
|
195
|
+
const lines = entries.map(([key, value]) => {
|
|
196
|
+
// Handle special keys that need quoting
|
|
197
|
+
const quotedKey = /[:\s#[\]{}]/.test(key) ? `"${key}"` : key;
|
|
198
|
+
if (value === null || value === undefined) {
|
|
199
|
+
return `${spaces}${quotedKey}: null`;
|
|
200
|
+
}
|
|
201
|
+
if (typeof value === 'object' && !Array.isArray(value) && Object.keys(value).length > 0) {
|
|
202
|
+
return `${spaces}${quotedKey}:\n${this.objectToYAML(value, indent + 1)}`;
|
|
203
|
+
}
|
|
204
|
+
if (Array.isArray(value) && value.length > 0) {
|
|
205
|
+
return `${spaces}${quotedKey}:\n${this.objectToYAML(value, indent + 1)}`;
|
|
206
|
+
}
|
|
207
|
+
return `${spaces}${quotedKey}: ${this.objectToYAML(value, indent + 1)}`;
|
|
208
|
+
});
|
|
209
|
+
return lines.join('\n');
|
|
210
|
+
}
|
|
211
|
+
return String(obj);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Helper to create a simple schema reference.
|
|
215
|
+
*/
|
|
216
|
+
static schemaRef(name) {
|
|
217
|
+
return { $ref: `#/components/schemas/${name}` };
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Helper to create a common response for 200 OK with content.
|
|
221
|
+
*/
|
|
222
|
+
static successResponse(contentType, schema, description = 'Successful response') {
|
|
223
|
+
return {
|
|
224
|
+
'200': {
|
|
225
|
+
description,
|
|
226
|
+
content: {
|
|
227
|
+
[contentType]: { schema }
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Helper to create common error responses.
|
|
234
|
+
*/
|
|
235
|
+
static errorResponses(codes = [400, 401, 404, 500]) {
|
|
236
|
+
const responses = {};
|
|
237
|
+
const descriptions = {
|
|
238
|
+
400: 'Bad request',
|
|
239
|
+
401: 'Unauthorized',
|
|
240
|
+
403: 'Forbidden',
|
|
241
|
+
404: 'Not found',
|
|
242
|
+
500: 'Internal server error'
|
|
243
|
+
};
|
|
244
|
+
for (const code of codes) {
|
|
245
|
+
responses[String(code)] = { description: descriptions[code] };
|
|
246
|
+
}
|
|
247
|
+
return responses;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Common schemas used across components.
|
|
251
|
+
*/
|
|
252
|
+
static { this.commonSchemas = {
|
|
253
|
+
Error: {
|
|
254
|
+
type: 'object',
|
|
255
|
+
properties: {
|
|
256
|
+
error: { type: 'string' },
|
|
257
|
+
message: { type: 'string' }
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
Point: {
|
|
261
|
+
type: 'object',
|
|
262
|
+
required: ['type', 'coordinates'],
|
|
263
|
+
properties: {
|
|
264
|
+
type: { type: 'string', enum: ['Point'] },
|
|
265
|
+
coordinates: {
|
|
266
|
+
type: 'array',
|
|
267
|
+
items: { type: 'number' }
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
Feature: {
|
|
272
|
+
type: 'object',
|
|
273
|
+
required: ['type', 'geometry', 'properties'],
|
|
274
|
+
properties: {
|
|
275
|
+
type: { type: 'string', enum: ['Feature'] },
|
|
276
|
+
geometry: { type: 'object' },
|
|
277
|
+
properties: { type: 'object' }
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
FeatureCollection: {
|
|
281
|
+
type: 'object',
|
|
282
|
+
required: ['type', 'features'],
|
|
283
|
+
properties: {
|
|
284
|
+
type: { type: 'string', enum: ['FeatureCollection'] },
|
|
285
|
+
features: {
|
|
286
|
+
type: 'array',
|
|
287
|
+
items: { $ref: '#/components/schemas/Feature' }
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}; }
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/openapi/generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAElD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,gBAAgB;IACzB;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAgC;QAC5C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;QAEpG,uDAAuD;QACvD,MAAM,sBAAsB,GAAG,UAAU,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;QAEvE,yDAAyD;QACzD,MAAM,QAAQ,GAA6B,EAAE,CAAA;QAC7C,MAAM,OAAO,GAAiB,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvE,MAAM,UAAU,GAAkC,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACnG,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAExE,KAAK,MAAM,SAAS,IAAI,sBAAsB,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,SAAS,CAAC,cAAc,EAAE,CAAA;gBAEvC,cAAc;gBACd,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxD,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACjB,sCAAsC;wBACtC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAA;oBACvD,CAAC;yBAAM,CAAC;wBACJ,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAA;oBAC7B,CAAC;gBACL,CAAC;gBAED,gCAAgC;gBAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACZ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;4BAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;4BACjB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;wBAC1B,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,gBAAgB;gBAChB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC3C,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,aAAa,GACf,kBAAkB,IAAI,SAAS;oBAC3B,CAAC,CAAE,SAA0D,CAAC,gBAAgB,EAAE,CAAC,IAAI;oBACrF,CAAC,CAAC,SAAS,CAAA;gBACnB,OAAO,CAAC,IAAI,CAAC,uDAAuD,aAAa,IAAI,EAAE,KAAK,CAAC,CAAA;YACjG,CAAC;QACL,CAAC;QAED,2BAA2B;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAEpD,2BAA2B;QAC3B,MAAM,iBAAiB,GAAsB,EAAE,CAAA;QAE/C,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,iBAAiB,CAAC,OAAO,GAAG,UAAU,CAAA;QAC1C,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACd,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAA;QACxE,CAAC;QAED,uBAAuB;QACvB,MAAM,QAAQ,GAAoB;YAC9B,OAAO,EAAE,OAAO;YAChB,IAAI;YACJ,KAAK,EAAE,QAAQ;SAClB,CAAA;QAED,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAA;QAC9B,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAA;QAC3B,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,UAAU,GAAG,iBAAiB,CAAA;QAC3C,CAAC;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,yBAAyB;QACpC,OAAO;YACH,UAAU,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,wCAAwC;aACxD;SACJ,CAAA;IACL,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,QAAyB;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IACzC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,QAAyB,EAAE,MAAM,GAAG,IAAI;QAClD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACjE,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,YAAY,CAAC,GAAY,EAAE,MAAc;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAElC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,MAAM,CAAA;QACjB,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1B,gCAAgC;YAChC,IACI,GAAG,KAAK,EAAE;gBACV,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACjB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACjB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAClB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACjB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACjB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;gBACnB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACjB,GAAG,KAAK,MAAM;gBACd,GAAG,KAAK,OAAO;gBACf,GAAG,KAAK,MAAM;gBACd,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EACtB,CAAC;gBACC,+BAA+B;gBAC/B,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAA;YACvF,CAAC;YACD,OAAO,GAAG,CAAA;QACd,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC;YACtD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAA;YACf,CAAC;YAED,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACzB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;gBACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpE,4DAA4D;oBAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACnB,OAAO,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;oBAC7E,CAAC;gBACL,CAAC;gBACD,OAAO,GAAG,MAAM,KAAK,KAAK,EAAE,CAAA;YAChC,CAAC,CAAC,CAAA;YAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAC/C,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC,CAAA;YAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAA;YACf,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACvC,wCAAwC;gBACxC,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;gBAE5D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxC,OAAO,GAAG,MAAM,GAAG,SAAS,QAAQ,CAAA;gBACxC,CAAC;gBAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChG,OAAO,GAAG,MAAM,GAAG,SAAS,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAA;gBAC5E,CAAC;gBAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3C,OAAO,GAAG,MAAM,GAAG,SAAS,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAA;gBAC5E,CAAC;gBAED,OAAO,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAA;YAC3E,CAAC,CAAC,CAAA;YAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAY;QACzB,OAAO,EAAE,IAAI,EAAE,wBAAwB,IAAI,EAAE,EAAE,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,WAAmB,EAAE,MAAqB,EAAE,WAAW,GAAG,qBAAqB;QAClG,OAAO;YACH,KAAK,EAAE;gBACH,WAAW;gBACX,OAAO,EAAE;oBACL,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE;iBAC5B;aACJ;SACJ,CAAA;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,QAA4C,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAClF,MAAM,SAAS,GAA4C,EAAE,CAAA;QAE7D,MAAM,YAAY,GAA2B;YACzC,GAAG,EAAE,aAAa;YAClB,GAAG,EAAE,cAAc;YACnB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,uBAAuB;SAC/B,CAAA;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAA;QACjE,CAAC;QAED,OAAO,SAAS,CAAA;IACpB,CAAC;IAED;;OAEG;aACI,kBAAa,GAAkC;QAClD,KAAK,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC9B;SACJ;QACD,KAAK,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;YACjC,UAAU,EAAE;gBACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;gBACzC,WAAW,EAAE;oBACT,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC5B;aACJ;SACJ;QACD,OAAO,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC;YAC5C,UAAU,EAAE;gBACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE;gBAC3C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC5B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjC;SACJ;QACD,iBAAiB,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;YAC9B,UAAU,EAAE;gBACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,mBAAmB,CAAC,EAAE;gBACrD,QAAQ,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE;iBAClD;aACJ;SACJ;KACJ,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview OpenAPI documentation generation module
|
|
3
|
+
*
|
|
4
|
+
* This module exports utilities for generating OpenAPI 3.0 specifications
|
|
5
|
+
* from Digital Twin components.
|
|
6
|
+
*/
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export * from './generator.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/openapi/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview OpenAPI documentation generation module
|
|
3
|
+
*
|
|
4
|
+
* This module exports utilities for generating OpenAPI 3.0 specifications
|
|
5
|
+
* from Digital Twin components.
|
|
6
|
+
*/
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export * from './generator.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/openapi/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
|