@mesh-sync/worker-backend-client 4.0.21 → 4.1.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/README.md +508 -52
- package/dist/client.d.ts +90 -12
- package/dist/client.js +114 -16
- package/dist/types.d.ts +382 -34
- package/dist/types.js +12 -2
- package/package.json +1 -1
package/dist/types.d.ts
CHANGED
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
export declare const MessageTypes: {
|
|
5
5
|
readonly ANALYTICS_COLLECTION_REQUEST: "analytics-collection-request";
|
|
6
6
|
readonly BACKEND_LOGGING_EVENT: "backend-logging-event";
|
|
7
|
-
readonly EKG_EDGE_BATCH_CREATE_COMPLETED: "ekg-edge-batch-create-completed";
|
|
8
|
-
readonly EKG_EDGE_BATCH_CREATE_REQUEST: "ekg-edge-batch-create-request";
|
|
9
7
|
readonly ETSY_ANALYTICS_SYNC_COMPLETED: "etsy-analytics-sync-completed";
|
|
10
8
|
readonly ETSY_ANALYTICS_SYNC_REQUEST: "etsy-analytics-sync-request";
|
|
11
9
|
readonly ETSY_PUBLISH_LISTING_COMPLETED: "etsy-publish-listing-completed";
|
|
@@ -14,13 +12,17 @@ export declare const MessageTypes: {
|
|
|
14
12
|
readonly FILE_DOWNLOAD_REQUEST: "file-download-request";
|
|
15
13
|
readonly FILE_VECTORIZE_COMPLETED: "file-vectorize-completed";
|
|
16
14
|
readonly FILE_VECTORIZE_REQUEST: "file-vectorize-request";
|
|
15
|
+
readonly IP_CHECK_COMPLETED: "ip-check-completed";
|
|
16
|
+
readonly IP_CHECK_REQUEST: "ip-check-request";
|
|
17
17
|
readonly MARKETPLACE_ANALYTICS_SYNC_COMPLETED: "marketplace-analytics-sync-completed";
|
|
18
18
|
readonly MARKETPLACE_ANALYTICS_SYNC_REQUEST: "marketplace-analytics-sync-request";
|
|
19
19
|
readonly MARKETPLACE_CONNECTION_SYNC_COMPLETED: "marketplace-connection-sync-completed";
|
|
20
20
|
readonly MARKETPLACE_CONNECTION_SYNC_REQUEST: "marketplace-connection-sync-request";
|
|
21
21
|
readonly MARKETPLACE_CREDENTIAL_ROTATION_COMPLETED: "marketplace-credential-rotation-completed";
|
|
22
22
|
readonly MARKETPLACE_CREDENTIAL_ROTATION_REQUEST: "marketplace-credential-rotation-request";
|
|
23
|
+
readonly MARKETPLACE_INTELLIGENCE_COMPLETED: "marketplace-intelligence-completed";
|
|
23
24
|
readonly MARKETPLACE_INTELLIGENCE_EVENT: "marketplace-intelligence-event";
|
|
25
|
+
readonly MARKETPLACE_INTELLIGENCE_REQUEST: "marketplace-intelligence-request";
|
|
24
26
|
readonly MARKETPLACE_LISTING_DESCRIPTION_GENERATION_COMPLETED: "marketplace-listing-description-generation-completed";
|
|
25
27
|
readonly MARKETPLACE_LISTING_DESCRIPTION_GENERATION_REQUEST: "marketplace-listing-description-generation-request";
|
|
26
28
|
readonly MARKETPLACE_LISTING_SYNC_COMPLETED: "marketplace-listing-sync-completed";
|
|
@@ -49,12 +51,20 @@ export declare const MessageTypes: {
|
|
|
49
51
|
readonly MODEL_METADATA_GENERATION_REQUEST: "model-metadata-generation-request";
|
|
50
52
|
readonly MODEL_METAMODEL_DETECTION_FOUND: "model-metamodel-detection-found";
|
|
51
53
|
readonly MODEL_METAMODEL_DETECTION_REQUEST: "model-metamodel-detection-request";
|
|
54
|
+
readonly MODEL_PRINT_ANALYSIS_COMPLETED: "model-print-analysis-completed";
|
|
55
|
+
readonly MODEL_PRINT_ANALYSIS_REQUEST: "model-print-analysis-request";
|
|
52
56
|
readonly MODEL_SELLABILITY_ANALYSIS_COMPLETED: "model-sellability-analysis-completed";
|
|
53
57
|
readonly MODEL_SELLABILITY_ANALYSIS_REQUEST: "model-sellability-analysis-request";
|
|
54
58
|
readonly MODEL_SEMANTIC_ANALYSIS_COMPLETED: "model-semantic-analysis-completed";
|
|
55
59
|
readonly MODEL_SEMANTIC_ANALYSIS_REQUEST: "model-semantic-analysis-request";
|
|
56
60
|
readonly MODEL_TECHNICAL_METADATA_COMPLETED: "model-technical-metadata-completed";
|
|
57
61
|
readonly MODEL_TECHNICAL_METADATA_REQUEST: "model-technical-metadata-request";
|
|
62
|
+
readonly SLICING_FDM_REQUEST: "slicing-fdm-request";
|
|
63
|
+
readonly SLICING_FDM_RESULT: "slicing-fdm-result";
|
|
64
|
+
readonly SLICING_SIMULATION_REQUEST: "slicing-simulation-request";
|
|
65
|
+
readonly SLICING_SIMULATION_RESULT: "slicing-simulation-result";
|
|
66
|
+
readonly SLICING_SLA_REQUEST: "slicing-sla-request";
|
|
67
|
+
readonly SLICING_SLA_RESULT: "slicing-sla-result";
|
|
58
68
|
readonly THUMBNAIL_GENERATION_COMPLETED: "thumbnail-generation-completed";
|
|
59
69
|
readonly THUMBNAIL_GENERATION_REQUEST: "thumbnail-generation-request";
|
|
60
70
|
readonly USER_ENGAGEMENT_EVENT: "user-engagement-event";
|
|
@@ -131,38 +141,6 @@ export interface BackendLoggingEventMessage {
|
|
|
131
141
|
/** Operation duration in milliseconds (if applicable) */
|
|
132
142
|
durationMs?: number;
|
|
133
143
|
}
|
|
134
|
-
/**
|
|
135
|
-
* Completion event for EKG edge batch creation with propagation results.
|
|
136
|
-
*/
|
|
137
|
-
export interface EkgEdgeBatchCreateCompletedMessage {
|
|
138
|
-
/** Original request ID from ekg-edge-batch-create-request */
|
|
139
|
-
requestId: string;
|
|
140
|
-
/** Whether the batch operation succeeded */
|
|
141
|
-
success: boolean;
|
|
142
|
-
/** Batch operation statistics */
|
|
143
|
-
statistics: Record<string, string | number | boolean>;
|
|
144
|
-
/** List of high-conflict edges requiring review */
|
|
145
|
-
conflicts?: Array<Record<string, string | number | boolean>>;
|
|
146
|
-
/** Errors encountered during processing */
|
|
147
|
-
errors?: Array<Record<string, string | number | boolean>>;
|
|
148
|
-
/** Overall graph state after this batch */
|
|
149
|
-
graphMetrics?: Record<string, string | number | boolean>;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Create multiple EKG edges with Dempster-Shafer mass functions. Triggered by metamodel detection completion.
|
|
153
|
-
*/
|
|
154
|
-
export interface EkgEdgeBatchCreateRequestMessage {
|
|
155
|
-
/** Unique request ID for tracking (e.g., metamodel detection job ID) */
|
|
156
|
-
requestId: string;
|
|
157
|
-
/** Source of the edges: metamodel-heuristic, manual, taxonomy-import, etc. */
|
|
158
|
-
source: string;
|
|
159
|
-
/** Batch of edges to create/update in the EKG */
|
|
160
|
-
edges: Array<Record<string, string | number | boolean>>;
|
|
161
|
-
/** Options for evidential edge propagation after edge creation */
|
|
162
|
-
propagationOptions?: Record<string, string | number | boolean>;
|
|
163
|
-
/** Optional webhook URL for async completion notification */
|
|
164
|
-
webhookUrl?: string;
|
|
165
|
-
}
|
|
166
144
|
/**
|
|
167
145
|
* Contains synced analytics data for Etsy listings. Backend stores this in etsy_analytics_snapshots table and indexes to ELK.
|
|
168
146
|
|
|
@@ -342,6 +320,70 @@ export interface FileVectorizeRequestMessage {
|
|
|
342
320
|
/** Optional: Specific model version to use */
|
|
343
321
|
modelName?: string;
|
|
344
322
|
}
|
|
323
|
+
/**
|
|
324
|
+
* Contains IP verification results including trademark risk, copyright risk, detected brands/franchises, and analysis confidence scores
|
|
325
|
+
*/
|
|
326
|
+
export interface IpCheckCompletedMessage {
|
|
327
|
+
/** Model UUID that was analyzed */
|
|
328
|
+
modelId?: string;
|
|
329
|
+
/** Owner user ID */
|
|
330
|
+
ownerId?: string;
|
|
331
|
+
/** Type of entity checked: 'model' or 'metamodel' */
|
|
332
|
+
entityType?: string;
|
|
333
|
+
/** Overall IP check outcome: 'clear', 'flagged', or 'error' */
|
|
334
|
+
status?: string;
|
|
335
|
+
/** Detected trademark infringement risk level: 'none', 'low', 'medium', 'high' */
|
|
336
|
+
trademarkRisk?: string;
|
|
337
|
+
/** Detected copyright infringement risk level: 'none', 'low', 'medium', 'high' */
|
|
338
|
+
copyrightRisk?: string;
|
|
339
|
+
/** Brand names detected in model name or content */
|
|
340
|
+
matchedBrands?: Array<Record<string, string | number | boolean>>;
|
|
341
|
+
/** Franchise/character names detected */
|
|
342
|
+
matchedFranchises?: Array<Record<string, string | number | boolean>>;
|
|
343
|
+
/** Number of visually similar models found */
|
|
344
|
+
similarModelsCount?: string | number | boolean;
|
|
345
|
+
/** Overall confidence score for the analysis (0.0-1.0) */
|
|
346
|
+
confidence?: number;
|
|
347
|
+
/** Risk score as 0-100 integer (FR-024: >70 HIGH, 40-70 MEDIUM, <40 LOW) */
|
|
348
|
+
riskScorePercent?: string | number | boolean;
|
|
349
|
+
/** Overall risk level: 'none', 'low', 'medium', 'high' */
|
|
350
|
+
riskLevel?: string;
|
|
351
|
+
/** Recommended action: 'block' (HIGH risk), 'warn' (MEDIUM risk), 'allow' (LOW/NONE risk) */
|
|
352
|
+
recommendation?: string;
|
|
353
|
+
/** Suggested modifications to reduce IP risk */
|
|
354
|
+
suggestedChanges?: Record<string, string | number | boolean>;
|
|
355
|
+
/** Detailed results from each heuristic check */
|
|
356
|
+
heuristicResults?: Record<string, string | number | boolean>;
|
|
357
|
+
/** Error details if status is 'error' */
|
|
358
|
+
error?: Record<string, string | number | boolean>;
|
|
359
|
+
/** Total processing time in milliseconds */
|
|
360
|
+
processingDurationMs?: string | number | boolean;
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Triggers intellectual property verification analysis for a model thumbnail, detecting potential trademark and copyright issues using perceptual hashing, text analysis, and optional reverse image search.
|
|
364
|
+
*/
|
|
365
|
+
export interface IpCheckRequestMessage {
|
|
366
|
+
/** Unique identifier for the model to analyze */
|
|
367
|
+
modelId?: string;
|
|
368
|
+
/** User ID who owns the model */
|
|
369
|
+
ownerId?: string;
|
|
370
|
+
/** Type of entity being checked: 'model' or 'metamodel' */
|
|
371
|
+
entityType?: string;
|
|
372
|
+
/** Name of the model for trademark/franchise text detection */
|
|
373
|
+
modelName?: string;
|
|
374
|
+
/** Model tags for IP reference detection */
|
|
375
|
+
tags?: Array<Record<string, string | number | boolean>>;
|
|
376
|
+
/** Model description for text-based IP analysis */
|
|
377
|
+
description?: string;
|
|
378
|
+
/** URL to fetch the thumbnail image for visual analysis */
|
|
379
|
+
thumbnailUrl?: string;
|
|
380
|
+
/** Path to thumbnail in MinIO if stored internally */
|
|
381
|
+
minioPath?: string;
|
|
382
|
+
/** Optional additional images for more comprehensive analysis (e.g., 360° views) */
|
|
383
|
+
additionalImageUrls?: Array<Record<string, string | number | boolean>>;
|
|
384
|
+
/** Optional analysis configuration */
|
|
385
|
+
analysisOptions?: Record<string, string | number | boolean>;
|
|
386
|
+
}
|
|
345
387
|
/**
|
|
346
388
|
* Contains synced analytics data for marketplace listings. Backend stores this in marketplace_analytics_snapshots table and indexes to ELK. Works with any marketplace provider.
|
|
347
389
|
*/
|
|
@@ -503,6 +545,34 @@ export interface MarketplaceCredentialRotationRequestMessage {
|
|
|
503
545
|
/** Additional request context */
|
|
504
546
|
metadata?: Record<string, string | number | boolean>;
|
|
505
547
|
}
|
|
548
|
+
/**
|
|
549
|
+
* Response from marketplace intelligence scraping.
|
|
550
|
+
Contains aggregated similarity data from marketplace searches.
|
|
551
|
+
|
|
552
|
+
Consumed by worker-backend to update pipeline context before
|
|
553
|
+
sellability analysis runs.
|
|
554
|
+
|
|
555
|
+
*/
|
|
556
|
+
export interface MarketplaceIntelligenceCompletedMessage {
|
|
557
|
+
/** UUID of the model that was researched */
|
|
558
|
+
modelId: string;
|
|
559
|
+
/** UUID of the model owner */
|
|
560
|
+
ownerId: string;
|
|
561
|
+
/** Result status */
|
|
562
|
+
status: string;
|
|
563
|
+
/** Aggregated market intelligence across all scraped marketplaces */
|
|
564
|
+
marketData?: Record<string, string | number | boolean>;
|
|
565
|
+
/** Results per marketplace */
|
|
566
|
+
marketplaceBreakdown?: Array<Record<string, string | number | boolean>>;
|
|
567
|
+
/** How saturated the market is for this model type (0=unique, 100=very common) */
|
|
568
|
+
similarityScore?: number;
|
|
569
|
+
/** Error information if status is FAILED */
|
|
570
|
+
error?: Record<string, string | number | boolean>;
|
|
571
|
+
/** When the analysis completed */
|
|
572
|
+
analyzedAt?: string;
|
|
573
|
+
/** Version of the intelligence collector */
|
|
574
|
+
analysisVersion?: string;
|
|
575
|
+
}
|
|
506
576
|
/**
|
|
507
577
|
* Public marketplace intelligence data scraped from external marketplaces.
|
|
508
578
|
|
|
@@ -541,6 +611,36 @@ export interface MarketplaceIntelligenceEventMessage {
|
|
|
541
611
|
/** Method used for scraping */
|
|
542
612
|
scrapingMethod?: string;
|
|
543
613
|
}
|
|
614
|
+
/**
|
|
615
|
+
* Triggers automated marketplace scraping to find similar/competing listings
|
|
616
|
+
for a given model. This is a pipeline stage that runs after metadata generation
|
|
617
|
+
to inform sellability analysis with real market data.
|
|
618
|
+
|
|
619
|
+
The worker-analytic-collector (or marketplace-connectors worker) will:
|
|
620
|
+
1. Use model metadata (title, tags, category) to build search queries
|
|
621
|
+
2. Scrape connected marketplaces (Etsy, eBay, etc.) for similar listings
|
|
622
|
+
3. Emit marketplace-intelligence-event results for Elasticsearch indexing
|
|
623
|
+
4. Return aggregated similarity data to the pipeline context
|
|
624
|
+
|
|
625
|
+
Pipeline integration:
|
|
626
|
+
- Triggered after: metadata-generation (needs model title/tags/category)
|
|
627
|
+
- Results feed into: sellability-analysis (market positioning data)
|
|
628
|
+
|
|
629
|
+
*/
|
|
630
|
+
export interface MarketplaceIntelligenceRequestMessage {
|
|
631
|
+
/** UUID of the model to research */
|
|
632
|
+
modelId: string;
|
|
633
|
+
/** UUID of the model owner */
|
|
634
|
+
ownerId: string;
|
|
635
|
+
/** Model metadata used to build marketplace search queries */
|
|
636
|
+
searchContext?: Record<string, string | number | boolean>;
|
|
637
|
+
/** Configuration for the marketplace scraping */
|
|
638
|
+
scrapingOptions?: Record<string, string | number | boolean>;
|
|
639
|
+
/** Pipeline execution ID for correlation */
|
|
640
|
+
pipelineId?: string;
|
|
641
|
+
/** Pipeline execution UUID for correlation */
|
|
642
|
+
executionId?: string;
|
|
643
|
+
}
|
|
544
644
|
/**
|
|
545
645
|
* Notifies backend that marketplace description generation completed. Contains generated description with metadata tracking (AI model, confidence, generation timestamp) and suggested price.
|
|
546
646
|
*/
|
|
@@ -1082,6 +1182,62 @@ export interface ModelMetamodelDetectionRequestMessage {
|
|
|
1082
1182
|
/** Statistics about the processed folder. */
|
|
1083
1183
|
statistics: Record<string, string | number | boolean>;
|
|
1084
1184
|
}
|
|
1185
|
+
/**
|
|
1186
|
+
* Reports completion of 3D print analysis — contains estimation, printability, and cost breakdown per FR-022
|
|
1187
|
+
*/
|
|
1188
|
+
export interface ModelPrintAnalysisCompletedMessage {
|
|
1189
|
+
/** ID of the original analysis request job */
|
|
1190
|
+
originalJobId?: string;
|
|
1191
|
+
/** UUID of the analysed model */
|
|
1192
|
+
modelId?: string;
|
|
1193
|
+
/** Analysis result status */
|
|
1194
|
+
status?: string;
|
|
1195
|
+
/** Error description when status is FAILED */
|
|
1196
|
+
errorMessage?: string;
|
|
1197
|
+
/** Material type used for estimation */
|
|
1198
|
+
material?: string;
|
|
1199
|
+
/** Quality preset used */
|
|
1200
|
+
quality?: string;
|
|
1201
|
+
/** Estimated total print time in minutes */
|
|
1202
|
+
printTimeMinutes?: number;
|
|
1203
|
+
/** Estimated material consumption in grams (body only) */
|
|
1204
|
+
materialGrams?: number;
|
|
1205
|
+
/** Whether the model requires support structures */
|
|
1206
|
+
needsSupport?: boolean;
|
|
1207
|
+
/** Estimated support material in grams */
|
|
1208
|
+
supportMaterialGrams?: number;
|
|
1209
|
+
/** Percentage of surface area with overhangs > 45° */
|
|
1210
|
+
overhangPercentage?: number;
|
|
1211
|
+
/** Thinnest detected wall in millimeters */
|
|
1212
|
+
minWallThicknessMm?: number;
|
|
1213
|
+
/** Solid volume of the mesh in cm³ */
|
|
1214
|
+
solidVolumeCm3?: number;
|
|
1215
|
+
/** Total surface area in cm² */
|
|
1216
|
+
surfaceAreaCm2?: number;
|
|
1217
|
+
/** Bounding box in millimeters */
|
|
1218
|
+
boundingBox?: Record<string, string | number | boolean>;
|
|
1219
|
+
/** Total estimated production cost in EUR */
|
|
1220
|
+
estimatedCostEUR?: number;
|
|
1221
|
+
/** Granular cost breakdown per WF-009 MaterialCostCalculatorService */
|
|
1222
|
+
costBreakdown?: Record<string, string | number | boolean>;
|
|
1223
|
+
}
|
|
1224
|
+
/**
|
|
1225
|
+
* Triggers 3D print analysis for a model — estimates print time, material usage, support needs, and cost breakdown per FR-022
|
|
1226
|
+
*/
|
|
1227
|
+
export interface ModelPrintAnalysisRequestMessage {
|
|
1228
|
+
/** UUID of the model to analyse */
|
|
1229
|
+
modelId?: string;
|
|
1230
|
+
/** UUID of the user who owns the model */
|
|
1231
|
+
ownerId?: string;
|
|
1232
|
+
/** Material type enum value (e.g. PLA, PETG, RESIN_STANDARD) */
|
|
1233
|
+
material?: string;
|
|
1234
|
+
/** Print quality preset */
|
|
1235
|
+
quality?: string;
|
|
1236
|
+
/** URL called when analysis completes or fails */
|
|
1237
|
+
webhookUrl?: string;
|
|
1238
|
+
/** Path to model in MinIO storage for geometry analysis (e.g. 'raw_models/{modelId}/original.glb') */
|
|
1239
|
+
minioPath?: string;
|
|
1240
|
+
}
|
|
1085
1241
|
/**
|
|
1086
1242
|
* Contains sellability analysis results including Etsy-specific recommendations, material pricing, and marketplace compatibility scores
|
|
1087
1243
|
*/
|
|
@@ -1228,6 +1384,8 @@ export interface ModelTechnicalMetadataCompletedMessage {
|
|
|
1228
1384
|
materialEstimates?: Record<string, string | number | boolean>;
|
|
1229
1385
|
/** Recommended print orientation for minimal support material and best results */
|
|
1230
1386
|
recommendedOrientation?: Record<string, string | number | boolean>;
|
|
1387
|
+
/** Slicer-derived recommended print settings based on model analysis (feeds into print job creation as defaults) */
|
|
1388
|
+
slicerRecommendations?: Record<string, string | number | boolean>;
|
|
1231
1389
|
/** Original file format unit detected from metadata or inferred from scale */
|
|
1232
1390
|
originalUnit?: string;
|
|
1233
1391
|
/** File format version (e.g., 'STL Binary', 'OBJ v4', 'PLY 1.0') */
|
|
@@ -1270,6 +1428,194 @@ export interface ModelTechnicalMetadataRequestMessage {
|
|
|
1270
1428
|
/** Optional analysis configuration parameters */
|
|
1271
1429
|
analysisOptions?: Record<string, string | number | boolean>;
|
|
1272
1430
|
}
|
|
1431
|
+
/**
|
|
1432
|
+
* Request FDM slicing simulation via OrcaSlicer (preferred) or heuristic fallback. Accepts OrcaSlicer-compatible printer/process/filament JSON profiles.
|
|
1433
|
+
*/
|
|
1434
|
+
export interface SlicingFdmRequestMessage {
|
|
1435
|
+
/** UUID of the model */
|
|
1436
|
+
modelId?: string;
|
|
1437
|
+
/** UUID or path of the storage item to download the STL/3MF */
|
|
1438
|
+
storageItemId?: string;
|
|
1439
|
+
/** UUID of the user's slicer profile from the database */
|
|
1440
|
+
profileId?: string;
|
|
1441
|
+
/** Human-readable profile name (e.g. 'My Bambu X1C - PLA Fine') */
|
|
1442
|
+
profileName?: string;
|
|
1443
|
+
/** OrcaSlicer printer profile JSON: nozzle_diameter, bed_shape, max speeds, acceleration, retraction */
|
|
1444
|
+
printerProfile?: Record<string, string | number | boolean>;
|
|
1445
|
+
/** OrcaSlicer process profile JSON: layer_height, sparse_infill_density, wall_loops, speeds, support settings */
|
|
1446
|
+
processProfile?: Record<string, string | number | boolean>;
|
|
1447
|
+
/** OrcaSlicer filament profile JSON: filament_type, filament_density, temperature, flow_ratio, retraction */
|
|
1448
|
+
filamentProfile?: Record<string, string | number | boolean>;
|
|
1449
|
+
/** Override: layer height in mm (takes precedence over processProfile) */
|
|
1450
|
+
layerHeight?: number;
|
|
1451
|
+
/** Override: infill percentage (0-100) */
|
|
1452
|
+
infillPercentage?: number;
|
|
1453
|
+
/** Override: nozzle diameter in mm */
|
|
1454
|
+
nozzleDiameter?: number;
|
|
1455
|
+
/** Override: outer wall print speed in mm/s */
|
|
1456
|
+
printSpeed?: number;
|
|
1457
|
+
/** Override: number of wall loops / perimeters */
|
|
1458
|
+
wallCount?: string | number | boolean;
|
|
1459
|
+
/** Override: generate support structures */
|
|
1460
|
+
supportEnabled?: boolean;
|
|
1461
|
+
/** Override: filament density in g/cm³ (default: 1.24 PLA) */
|
|
1462
|
+
materialDensity?: number;
|
|
1463
|
+
/** URL to POST the slicing result back to */
|
|
1464
|
+
webhookUrl?: string;
|
|
1465
|
+
}
|
|
1466
|
+
/**
|
|
1467
|
+
* Result of FDM slicing simulation from OrcaSlicer (toolpath) or heuristic fallback. Contains exact physical metrics for cost calculation.
|
|
1468
|
+
*/
|
|
1469
|
+
export interface SlicingFdmResultMessage {
|
|
1470
|
+
/** UUID of the model */
|
|
1471
|
+
modelId?: string;
|
|
1472
|
+
/** Status of the simulation */
|
|
1473
|
+
status?: string;
|
|
1474
|
+
/** Exact print time in hours (from toolpath analysis) */
|
|
1475
|
+
printTimeHours?: number;
|
|
1476
|
+
/** Total filament weight in grams (including supports) */
|
|
1477
|
+
materialWeightGrams?: number;
|
|
1478
|
+
/** Extruded material volume in cm³ */
|
|
1479
|
+
materialVolumeCm3?: number;
|
|
1480
|
+
/** Maximum Z height in mm */
|
|
1481
|
+
maxZHeightMM?: number;
|
|
1482
|
+
/** Support structure filament weight in grams */
|
|
1483
|
+
supportMaterialWeightGrams?: number;
|
|
1484
|
+
/** Total number of layers */
|
|
1485
|
+
layerCount?: string | number | boolean;
|
|
1486
|
+
/** Total filament extrusion length in mm */
|
|
1487
|
+
totalExtrusionLengthMm?: number;
|
|
1488
|
+
/** Engine that produced the result */
|
|
1489
|
+
slicingMethod?: string;
|
|
1490
|
+
/** Version of the slicer engine used */
|
|
1491
|
+
slicerVersion?: string;
|
|
1492
|
+
/** Name or ID of the slicer profile used */
|
|
1493
|
+
profileUsed?: string;
|
|
1494
|
+
/** Error code if simulation failed */
|
|
1495
|
+
errorCode?: string;
|
|
1496
|
+
/** Error message if simulation failed */
|
|
1497
|
+
errorMessage?: string;
|
|
1498
|
+
}
|
|
1499
|
+
/**
|
|
1500
|
+
* DEPRECATED: Use slicing-fdm-request or slicing-sla-request instead. Unified contract kept for backward compatibility only.
|
|
1501
|
+
*/
|
|
1502
|
+
export interface SlicingSimulationRequestMessage {
|
|
1503
|
+
/** UUID of the model */
|
|
1504
|
+
modelId?: string;
|
|
1505
|
+
/** UUID or path of the storage item to download the STL/3MF */
|
|
1506
|
+
storageItemId?: string;
|
|
1507
|
+
/** Printing technology: FDM, SLA, MSLA, SLS */
|
|
1508
|
+
technology?: string;
|
|
1509
|
+
/** Complete slicer profile with user settings. For FDM: OrcaSlicer-compatible JSON profiles. For SLA: exposure/lift parameters. */
|
|
1510
|
+
slicerProfile?: Record<string, string | number | boolean>;
|
|
1511
|
+
/** DEPRECATED: Legacy simple config format. Use slicerProfile instead. */
|
|
1512
|
+
slicerConfig?: Record<string, string | number | boolean>;
|
|
1513
|
+
/** DEPRECATED: UUID of the slicer profile. Use slicerProfile.profileId instead. */
|
|
1514
|
+
slicerProfileId?: string;
|
|
1515
|
+
/** URL to POST the slicing result back to */
|
|
1516
|
+
webhookUrl?: string;
|
|
1517
|
+
}
|
|
1518
|
+
/**
|
|
1519
|
+
* DEPRECATED: Use slicing-fdm-result or slicing-sla-result instead. Unified contract kept for backward compatibility only.
|
|
1520
|
+
*/
|
|
1521
|
+
export interface SlicingSimulationResultMessage {
|
|
1522
|
+
/** UUID of the model */
|
|
1523
|
+
modelId?: string;
|
|
1524
|
+
/** Status of the simulation */
|
|
1525
|
+
status?: string;
|
|
1526
|
+
/** Exact print time in hours (from toolpath or cross-sectional analysis) */
|
|
1527
|
+
printTimeHours?: number;
|
|
1528
|
+
/** Total material weight in grams (filament or resin, including supports) */
|
|
1529
|
+
materialWeightGrams?: number;
|
|
1530
|
+
/** Material volume in cm³ */
|
|
1531
|
+
materialVolumeCm3?: number;
|
|
1532
|
+
/** Maximum Z height in mm */
|
|
1533
|
+
maxZHeightMM?: number;
|
|
1534
|
+
/** Support structure material weight in grams */
|
|
1535
|
+
supportMaterialWeightGrams?: number;
|
|
1536
|
+
/** Total number of layers */
|
|
1537
|
+
layerCount?: string | number | boolean;
|
|
1538
|
+
/** Total filament extrusion length in mm (FDM only) */
|
|
1539
|
+
totalExtrusionLengthMm?: number;
|
|
1540
|
+
/** Engine that produced the result: orcaslicer_toolpath, pyslm_cross_section, heuristic_volumetric */
|
|
1541
|
+
slicingMethod?: string;
|
|
1542
|
+
/** Version of the slicer engine used */
|
|
1543
|
+
slicerVersion?: string;
|
|
1544
|
+
/** Name or ID of the slicer profile used */
|
|
1545
|
+
profileUsed?: string;
|
|
1546
|
+
/** Error code if simulation failed */
|
|
1547
|
+
errorCode?: string;
|
|
1548
|
+
/** Error message if simulation failed */
|
|
1549
|
+
errorMessage?: string;
|
|
1550
|
+
}
|
|
1551
|
+
/**
|
|
1552
|
+
* Request SLA/MSLA slicing simulation via PySLM cross-sectional analysis. Accepts resin printer profile with exposure, lift, and layer parameters.
|
|
1553
|
+
*/
|
|
1554
|
+
export interface SlicingSlaRequestMessage {
|
|
1555
|
+
/** UUID of the model */
|
|
1556
|
+
modelId?: string;
|
|
1557
|
+
/** UUID or path of the storage item to download the STL/3MF */
|
|
1558
|
+
storageItemId?: string;
|
|
1559
|
+
/** SLA or MSLA */
|
|
1560
|
+
technology?: string;
|
|
1561
|
+
/** UUID of the user's slicer profile from the database */
|
|
1562
|
+
profileId?: string;
|
|
1563
|
+
/** Human-readable profile name (e.g. 'Elegoo Mars 3 - Standard Grey') */
|
|
1564
|
+
profileName?: string;
|
|
1565
|
+
/** Layer height in mm (default: 0.05) */
|
|
1566
|
+
layerHeight?: number;
|
|
1567
|
+
/** Normal layer UV exposure time in seconds (default: 2.5) */
|
|
1568
|
+
exposureTime?: number;
|
|
1569
|
+
/** Bottom/burn-in layer exposure time in seconds (default: 30) */
|
|
1570
|
+
bottomExposureTime?: number;
|
|
1571
|
+
/** Number of bottom/burn-in layers (default: 5) */
|
|
1572
|
+
bottomLayers?: string | number | boolean;
|
|
1573
|
+
/** Platform lift height in mm between layers (default: 5.0) */
|
|
1574
|
+
liftHeight?: number;
|
|
1575
|
+
/** Platform lift speed in mm/min (default: 60) */
|
|
1576
|
+
liftSpeed?: number;
|
|
1577
|
+
/** Platform retract speed in mm/min (default: 150) */
|
|
1578
|
+
retractSpeed?: number;
|
|
1579
|
+
/** Resin density in g/cm³ (default: 1.1) */
|
|
1580
|
+
resinDensity?: number;
|
|
1581
|
+
/** Generate support structures (default: true for SLA) */
|
|
1582
|
+
supportEnabled?: boolean;
|
|
1583
|
+
/** URL to POST the slicing result back to */
|
|
1584
|
+
webhookUrl?: string;
|
|
1585
|
+
}
|
|
1586
|
+
/**
|
|
1587
|
+
* Result of SLA/MSLA slicing simulation from PySLM cross-sectional analysis. Contains exact resin usage and print time metrics.
|
|
1588
|
+
*/
|
|
1589
|
+
export interface SlicingSlaResultMessage {
|
|
1590
|
+
/** UUID of the model */
|
|
1591
|
+
modelId?: string;
|
|
1592
|
+
/** Status of the simulation */
|
|
1593
|
+
status?: string;
|
|
1594
|
+
/** Exact print time in hours (from cross-sectional analysis) */
|
|
1595
|
+
printTimeHours?: number;
|
|
1596
|
+
/** Total resin weight in grams (including supports) */
|
|
1597
|
+
materialWeightGrams?: number;
|
|
1598
|
+
/** Cured resin volume in cm³ (from cross-sectional area integration) */
|
|
1599
|
+
materialVolumeCm3?: number;
|
|
1600
|
+
/** Maximum Z height in mm */
|
|
1601
|
+
maxZHeightMM?: number;
|
|
1602
|
+
/** Support structure resin weight in grams */
|
|
1603
|
+
supportMaterialWeightGrams?: number;
|
|
1604
|
+
/** Total number of layers */
|
|
1605
|
+
layerCount?: string | number | boolean;
|
|
1606
|
+
/** Maximum cross-sectional area in mm² (affects MSLA peel force) */
|
|
1607
|
+
maxCrossSectionAreaMm2?: number;
|
|
1608
|
+
/** Engine that produced the result */
|
|
1609
|
+
slicingMethod?: string;
|
|
1610
|
+
/** Version of PySLM / trimesh used */
|
|
1611
|
+
slicerVersion?: string;
|
|
1612
|
+
/** Name or ID of the slicer profile used */
|
|
1613
|
+
profileUsed?: string;
|
|
1614
|
+
/** Error code if simulation failed */
|
|
1615
|
+
errorCode?: string;
|
|
1616
|
+
/** Error message if simulation failed */
|
|
1617
|
+
errorMessage?: string;
|
|
1618
|
+
}
|
|
1273
1619
|
/**
|
|
1274
1620
|
* Handles thumbnail generation completed.
|
|
1275
1621
|
*/
|
|
@@ -1286,6 +1632,8 @@ export interface ThumbnailGenerationCompletedMessage {
|
|
|
1286
1632
|
thumbnail360Views?: Array<Record<string, string | number | boolean>>;
|
|
1287
1633
|
/** The path to the generated GLTF/GLB 3D preview file. */
|
|
1288
1634
|
gltfPreviewPath?: string;
|
|
1635
|
+
/** The path to the generated animated MP4 preview file. */
|
|
1636
|
+
animatedPreviewPath?: string;
|
|
1289
1637
|
/** An error message if the thumbnail generation failed. */
|
|
1290
1638
|
errorMessage?: string;
|
|
1291
1639
|
/** The storage location of the model. */
|
package/dist/types.js
CHANGED
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
export const MessageTypes = {
|
|
6
6
|
ANALYTICS_COLLECTION_REQUEST: 'analytics-collection-request',
|
|
7
7
|
BACKEND_LOGGING_EVENT: 'backend-logging-event',
|
|
8
|
-
EKG_EDGE_BATCH_CREATE_COMPLETED: 'ekg-edge-batch-create-completed',
|
|
9
|
-
EKG_EDGE_BATCH_CREATE_REQUEST: 'ekg-edge-batch-create-request',
|
|
10
8
|
ETSY_ANALYTICS_SYNC_COMPLETED: 'etsy-analytics-sync-completed',
|
|
11
9
|
ETSY_ANALYTICS_SYNC_REQUEST: 'etsy-analytics-sync-request',
|
|
12
10
|
ETSY_PUBLISH_LISTING_COMPLETED: 'etsy-publish-listing-completed',
|
|
@@ -15,13 +13,17 @@ export const MessageTypes = {
|
|
|
15
13
|
FILE_DOWNLOAD_REQUEST: 'file-download-request',
|
|
16
14
|
FILE_VECTORIZE_COMPLETED: 'file-vectorize-completed',
|
|
17
15
|
FILE_VECTORIZE_REQUEST: 'file-vectorize-request',
|
|
16
|
+
IP_CHECK_COMPLETED: 'ip-check-completed',
|
|
17
|
+
IP_CHECK_REQUEST: 'ip-check-request',
|
|
18
18
|
MARKETPLACE_ANALYTICS_SYNC_COMPLETED: 'marketplace-analytics-sync-completed',
|
|
19
19
|
MARKETPLACE_ANALYTICS_SYNC_REQUEST: 'marketplace-analytics-sync-request',
|
|
20
20
|
MARKETPLACE_CONNECTION_SYNC_COMPLETED: 'marketplace-connection-sync-completed',
|
|
21
21
|
MARKETPLACE_CONNECTION_SYNC_REQUEST: 'marketplace-connection-sync-request',
|
|
22
22
|
MARKETPLACE_CREDENTIAL_ROTATION_COMPLETED: 'marketplace-credential-rotation-completed',
|
|
23
23
|
MARKETPLACE_CREDENTIAL_ROTATION_REQUEST: 'marketplace-credential-rotation-request',
|
|
24
|
+
MARKETPLACE_INTELLIGENCE_COMPLETED: 'marketplace-intelligence-completed',
|
|
24
25
|
MARKETPLACE_INTELLIGENCE_EVENT: 'marketplace-intelligence-event',
|
|
26
|
+
MARKETPLACE_INTELLIGENCE_REQUEST: 'marketplace-intelligence-request',
|
|
25
27
|
MARKETPLACE_LISTING_DESCRIPTION_GENERATION_COMPLETED: 'marketplace-listing-description-generation-completed',
|
|
26
28
|
MARKETPLACE_LISTING_DESCRIPTION_GENERATION_REQUEST: 'marketplace-listing-description-generation-request',
|
|
27
29
|
MARKETPLACE_LISTING_SYNC_COMPLETED: 'marketplace-listing-sync-completed',
|
|
@@ -50,12 +52,20 @@ export const MessageTypes = {
|
|
|
50
52
|
MODEL_METADATA_GENERATION_REQUEST: 'model-metadata-generation-request',
|
|
51
53
|
MODEL_METAMODEL_DETECTION_FOUND: 'model-metamodel-detection-found',
|
|
52
54
|
MODEL_METAMODEL_DETECTION_REQUEST: 'model-metamodel-detection-request',
|
|
55
|
+
MODEL_PRINT_ANALYSIS_COMPLETED: 'model-print-analysis-completed',
|
|
56
|
+
MODEL_PRINT_ANALYSIS_REQUEST: 'model-print-analysis-request',
|
|
53
57
|
MODEL_SELLABILITY_ANALYSIS_COMPLETED: 'model-sellability-analysis-completed',
|
|
54
58
|
MODEL_SELLABILITY_ANALYSIS_REQUEST: 'model-sellability-analysis-request',
|
|
55
59
|
MODEL_SEMANTIC_ANALYSIS_COMPLETED: 'model-semantic-analysis-completed',
|
|
56
60
|
MODEL_SEMANTIC_ANALYSIS_REQUEST: 'model-semantic-analysis-request',
|
|
57
61
|
MODEL_TECHNICAL_METADATA_COMPLETED: 'model-technical-metadata-completed',
|
|
58
62
|
MODEL_TECHNICAL_METADATA_REQUEST: 'model-technical-metadata-request',
|
|
63
|
+
SLICING_FDM_REQUEST: 'slicing-fdm-request',
|
|
64
|
+
SLICING_FDM_RESULT: 'slicing-fdm-result',
|
|
65
|
+
SLICING_SIMULATION_REQUEST: 'slicing-simulation-request',
|
|
66
|
+
SLICING_SIMULATION_RESULT: 'slicing-simulation-result',
|
|
67
|
+
SLICING_SLA_REQUEST: 'slicing-sla-request',
|
|
68
|
+
SLICING_SLA_RESULT: 'slicing-sla-result',
|
|
59
69
|
THUMBNAIL_GENERATION_COMPLETED: 'thumbnail-generation-completed',
|
|
60
70
|
THUMBNAIL_GENERATION_REQUEST: 'thumbnail-generation-request',
|
|
61
71
|
USER_ENGAGEMENT_EVENT: 'user-engagement-event',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mesh-sync/worker-backend-client",
|
|
3
|
-
"version": "4.0
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "Auto-generated TypeScript client for worker-backend - provides type-safe methods for enqueueing jobs",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|