solidworks-mcp-server 2.2.0 → 3.0.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 +33 -10
- package/dist/application/services/command-bus.d.ts +39 -0
- package/dist/application/services/command-bus.d.ts.map +1 -0
- package/dist/application/services/command-bus.js +88 -0
- package/dist/application/services/command-bus.js.map +1 -0
- package/dist/application/services/event-bus.d.ts +31 -0
- package/dist/application/services/event-bus.d.ts.map +1 -0
- package/dist/application/services/event-bus.js +83 -0
- package/dist/application/services/event-bus.js.map +1 -0
- package/dist/application/services/query-bus.d.ts +30 -0
- package/dist/application/services/query-bus.d.ts.map +1 -0
- package/dist/application/services/query-bus.js +59 -0
- package/dist/application/services/query-bus.js.map +1 -0
- package/dist/application/services/tool-registry.d.ts +53 -0
- package/dist/application/services/tool-registry.d.ts.map +1 -0
- package/dist/application/services/tool-registry.js +81 -0
- package/dist/application/services/tool-registry.js.map +1 -0
- package/dist/application/use-cases/analysis/index.d.ts +13 -0
- package/dist/application/use-cases/analysis/index.d.ts.map +1 -0
- package/dist/application/use-cases/analysis/index.js +17 -0
- package/dist/application/use-cases/analysis/index.js.map +1 -0
- package/dist/application/use-cases/drawing/index.d.ts +13 -0
- package/dist/application/use-cases/drawing/index.d.ts.map +1 -0
- package/dist/application/use-cases/drawing/index.js +17 -0
- package/dist/application/use-cases/drawing/index.js.map +1 -0
- package/dist/application/use-cases/export/index.d.ts +13 -0
- package/dist/application/use-cases/export/index.d.ts.map +1 -0
- package/dist/application/use-cases/export/index.js +17 -0
- package/dist/application/use-cases/export/index.js.map +1 -0
- package/dist/application/use-cases/macro/index.d.ts +13 -0
- package/dist/application/use-cases/macro/index.d.ts.map +1 -0
- package/dist/application/use-cases/macro/index.js +17 -0
- package/dist/application/use-cases/macro/index.js.map +1 -0
- package/dist/application/use-cases/modeling/index.d.ts +56 -0
- package/dist/application/use-cases/modeling/index.d.ts.map +1 -0
- package/dist/application/use-cases/modeling/index.js +385 -0
- package/dist/application/use-cases/modeling/index.js.map +1 -0
- package/dist/core/interfaces/core-abstractions.d.ts +289 -0
- package/dist/core/interfaces/core-abstractions.d.ts.map +1 -0
- package/dist/core/interfaces/core-abstractions.js +121 -0
- package/dist/core/interfaces/core-abstractions.js.map +1 -0
- package/dist/index.refactored.d.ts +7 -0
- package/dist/index.refactored.d.ts.map +1 -0
- package/dist/index.refactored.js +254 -0
- package/dist/index.refactored.js.map +1 -0
- package/dist/infrastructure/config/configuration-manager.d.ts +381 -0
- package/dist/infrastructure/config/configuration-manager.d.ts.map +1 -0
- package/dist/infrastructure/config/configuration-manager.js +566 -0
- package/dist/infrastructure/config/configuration-manager.js.map +1 -0
- package/dist/infrastructure/container/service-locator.d.ts +14 -0
- package/dist/infrastructure/container/service-locator.d.ts.map +1 -0
- package/dist/infrastructure/container/service-locator.js +38 -0
- package/dist/infrastructure/container/service-locator.js.map +1 -0
- package/dist/infrastructure/logging/logger.d.ts +24 -0
- package/dist/infrastructure/logging/logger.d.ts.map +1 -0
- package/dist/infrastructure/logging/logger.js +65 -0
- package/dist/infrastructure/logging/logger.js.map +1 -0
- package/dist/infrastructure/solidworks/solidworks-adapter.d.ts +43 -0
- package/dist/infrastructure/solidworks/solidworks-adapter.d.ts.map +1 -0
- package/dist/infrastructure/solidworks/solidworks-adapter.js +527 -0
- package/dist/infrastructure/solidworks/solidworks-adapter.js.map +1 -0
- package/dist/presentation/mcp/request-handler.d.ts +41 -0
- package/dist/presentation/mcp/request-handler.d.ts.map +1 -0
- package/dist/presentation/mcp/request-handler.js +100 -0
- package/dist/presentation/mcp/request-handler.js.map +1 -0
- package/dist/presentation/transformers/error-transformer.d.ts +16 -0
- package/dist/presentation/transformers/error-transformer.d.ts.map +1 -0
- package/dist/presentation/transformers/error-transformer.js +44 -0
- package/dist/presentation/transformers/error-transformer.js.map +1 -0
- package/dist/presentation/transformers/response-transformer.d.ts +24 -0
- package/dist/presentation/transformers/response-transformer.d.ts.map +1 -0
- package/dist/presentation/transformers/response-transformer.js +102 -0
- package/dist/presentation/transformers/response-transformer.js.map +1 -0
- package/dist/resources/design-table.d.ts +28 -28
- package/dist/resources/pdm.d.ts +70 -70
- package/dist/shared/constants/solidworks-constants.d.ts +302 -0
- package/dist/shared/constants/solidworks-constants.d.ts.map +1 -0
- package/dist/shared/constants/solidworks-constants.js +471 -0
- package/dist/shared/constants/solidworks-constants.js.map +1 -0
- package/dist/tools/diagnostics.d.ts +21 -0
- package/dist/tools/diagnostics.d.ts.map +1 -0
- package/dist/tools/diagnostics.js +120 -0
- package/dist/tools/diagnostics.js.map +1 -0
- package/dist/tools/drawing-analysis.d.ts +9 -0
- package/dist/tools/drawing-analysis.d.ts.map +1 -0
- package/dist/tools/drawing-analysis.js +239 -0
- package/dist/tools/drawing-analysis.js.map +1 -0
- package/dist/tools/drawing.d.ts +4 -4
- package/dist/tools/enhanced-drawing.d.ts +51 -0
- package/dist/tools/enhanced-drawing.d.ts.map +1 -0
- package/dist/tools/enhanced-drawing.js +193 -0
- package/dist/tools/enhanced-drawing.js.map +1 -0
- package/dist/tools/export.d.ts +6 -6
- package/dist/tools/macro-security.d.ts +9 -0
- package/dist/tools/macro-security.d.ts.map +1 -0
- package/dist/tools/macro-security.js +86 -0
- package/dist/tools/macro-security.js.map +1 -0
- package/dist/tools/vba-advanced.d.ts +12 -12
- package/dist/tools/vba-assembly.d.ts +8 -8
- package/dist/tools/vba-drawing.d.ts +14 -14
- package/dist/tools/vba-file-management.d.ts +16 -16
- package/dist/tools/vba-part.d.ts +10 -10
- package/dist/tools/vba.d.ts +67 -67
- package/package.json +12 -7
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Abstractions and Interfaces
|
|
3
|
+
* These form the foundation of our clean architecture
|
|
4
|
+
*/
|
|
5
|
+
export type Success<T> = {
|
|
6
|
+
success: true;
|
|
7
|
+
data: T;
|
|
8
|
+
};
|
|
9
|
+
export type Failure<E = Error> = {
|
|
10
|
+
success: false;
|
|
11
|
+
error: E;
|
|
12
|
+
};
|
|
13
|
+
export type Result<T, E = Error> = Success<T> | Failure<E>;
|
|
14
|
+
export declare class ResultUtil {
|
|
15
|
+
static ok<T>(data: T): Success<T>;
|
|
16
|
+
static fail<E = Error>(error: E): Failure<E>;
|
|
17
|
+
static isSuccess<T, E>(result: Result<T, E>): result is Success<T>;
|
|
18
|
+
static isFailure<T, E>(result: Result<T, E>): result is Failure<E>;
|
|
19
|
+
static map<T, U, E>(result: Result<T, E>, fn: (data: T) => U): Result<U, E>;
|
|
20
|
+
static flatMap<T, U, E>(result: Result<T, E>, fn: (data: T) => Result<U, E>): Result<U, E>;
|
|
21
|
+
static fromPromise<T>(promise: Promise<T>, errorHandler?: (error: unknown) => Error): Promise<Result<T>>;
|
|
22
|
+
}
|
|
23
|
+
export declare abstract class DomainError extends Error {
|
|
24
|
+
readonly details?: unknown | undefined;
|
|
25
|
+
abstract readonly code: string;
|
|
26
|
+
abstract readonly statusCode: number;
|
|
27
|
+
constructor(message: string, details?: unknown | undefined);
|
|
28
|
+
toJSON(): {
|
|
29
|
+
name: string;
|
|
30
|
+
code: string;
|
|
31
|
+
message: string;
|
|
32
|
+
details: unknown;
|
|
33
|
+
stack: string | undefined;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export declare class ConnectionError extends DomainError {
|
|
37
|
+
readonly code = "CONNECTION_ERROR";
|
|
38
|
+
readonly statusCode = 503;
|
|
39
|
+
}
|
|
40
|
+
export declare class ModelNotFoundError extends DomainError {
|
|
41
|
+
readonly code = "MODEL_NOT_FOUND";
|
|
42
|
+
readonly statusCode = 404;
|
|
43
|
+
}
|
|
44
|
+
export declare class InvalidOperationError extends DomainError {
|
|
45
|
+
readonly code = "INVALID_OPERATION";
|
|
46
|
+
readonly statusCode = 400;
|
|
47
|
+
}
|
|
48
|
+
export declare class ValidationError extends DomainError {
|
|
49
|
+
readonly code = "VALIDATION_ERROR";
|
|
50
|
+
readonly statusCode = 422;
|
|
51
|
+
}
|
|
52
|
+
export declare class COMError extends DomainError {
|
|
53
|
+
readonly code = "COM_ERROR";
|
|
54
|
+
readonly statusCode = 500;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Connection management interface
|
|
58
|
+
*/
|
|
59
|
+
export interface IConnection<T = unknown> {
|
|
60
|
+
connect(): Promise<Result<T>>;
|
|
61
|
+
disconnect(): Promise<Result<void>>;
|
|
62
|
+
isConnected(): boolean;
|
|
63
|
+
getConnection(): T | null;
|
|
64
|
+
healthCheck(): Promise<Result<boolean>>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Repository pattern interface
|
|
68
|
+
*/
|
|
69
|
+
export interface IRepository<T, ID = string> {
|
|
70
|
+
findById(id: ID): Promise<Result<T | null>>;
|
|
71
|
+
findAll(): Promise<Result<T[]>>;
|
|
72
|
+
save(entity: T): Promise<Result<T>>;
|
|
73
|
+
update(id: ID, entity: Partial<T>): Promise<Result<T>>;
|
|
74
|
+
delete(id: ID): Promise<Result<void>>;
|
|
75
|
+
exists(id: ID): Promise<Result<boolean>>;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Unit of Work pattern for transactions
|
|
79
|
+
*/
|
|
80
|
+
export interface IUnitOfWork {
|
|
81
|
+
begin(): Promise<Result<void>>;
|
|
82
|
+
commit(): Promise<Result<void>>;
|
|
83
|
+
rollback(): Promise<Result<void>>;
|
|
84
|
+
inTransaction(): boolean;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Command pattern interface
|
|
88
|
+
*/
|
|
89
|
+
export interface ICommand<TParams = unknown, TResult = unknown> {
|
|
90
|
+
execute(params: TParams): Promise<Result<TResult>>;
|
|
91
|
+
canExecute(params: TParams): Promise<Result<boolean>>;
|
|
92
|
+
validate(params: TParams): Result<void>;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Query pattern interface
|
|
96
|
+
*/
|
|
97
|
+
export interface IQuery<TParams = unknown, TResult = unknown> {
|
|
98
|
+
execute(params: TParams): Promise<Result<TResult>>;
|
|
99
|
+
validate(params: TParams): Result<void>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Event interface for Observer pattern
|
|
103
|
+
*/
|
|
104
|
+
export interface IEvent {
|
|
105
|
+
readonly id: string;
|
|
106
|
+
readonly timestamp: Date;
|
|
107
|
+
readonly type: string;
|
|
108
|
+
readonly payload?: unknown;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Event handler interface
|
|
112
|
+
*/
|
|
113
|
+
export interface IEventHandler<T extends IEvent = IEvent> {
|
|
114
|
+
handle(event: T): Promise<Result<void>>;
|
|
115
|
+
canHandle(event: IEvent): boolean;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Event bus interface
|
|
119
|
+
*/
|
|
120
|
+
export interface IEventBus {
|
|
121
|
+
publish(event: IEvent): Promise<Result<void>>;
|
|
122
|
+
subscribe(eventType: string, handler: IEventHandler): void;
|
|
123
|
+
unsubscribe(eventType: string, handler: IEventHandler): void;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* SolidWorks model types
|
|
127
|
+
*/
|
|
128
|
+
export declare enum ModelType {
|
|
129
|
+
Part = "Part",
|
|
130
|
+
Assembly = "Assembly",
|
|
131
|
+
Drawing = "Drawing"
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* SolidWorks model interface
|
|
135
|
+
*/
|
|
136
|
+
export interface ISolidWorksModel {
|
|
137
|
+
readonly id: string;
|
|
138
|
+
readonly path: string;
|
|
139
|
+
readonly name: string;
|
|
140
|
+
readonly type: ModelType;
|
|
141
|
+
readonly isActive: boolean;
|
|
142
|
+
readonly isDirty: boolean;
|
|
143
|
+
readonly metadata?: Record<string, unknown>;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* SolidWorks feature interface
|
|
147
|
+
*/
|
|
148
|
+
export interface ISolidWorksFeature {
|
|
149
|
+
readonly id: string;
|
|
150
|
+
readonly name: string;
|
|
151
|
+
readonly type: string;
|
|
152
|
+
readonly suppressed: boolean;
|
|
153
|
+
readonly parameters?: Record<string, unknown>;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* SolidWorks dimension interface
|
|
157
|
+
*/
|
|
158
|
+
export interface ISolidWorksDimension {
|
|
159
|
+
readonly name: string;
|
|
160
|
+
readonly value: number;
|
|
161
|
+
readonly feature: string;
|
|
162
|
+
readonly tolerance?: {
|
|
163
|
+
upper: number;
|
|
164
|
+
lower: number;
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* SolidWorks API adapter interface
|
|
169
|
+
*/
|
|
170
|
+
export interface ISolidWorksAdapter {
|
|
171
|
+
connect(): Promise<Result<void>>;
|
|
172
|
+
disconnect(): Promise<Result<void>>;
|
|
173
|
+
isConnected(): boolean;
|
|
174
|
+
openModel(path: string): Promise<Result<ISolidWorksModel>>;
|
|
175
|
+
closeModel(save: boolean): Promise<Result<void>>;
|
|
176
|
+
createPart(): Promise<Result<ISolidWorksModel>>;
|
|
177
|
+
getCurrentModel(): Result<ISolidWorksModel | null>;
|
|
178
|
+
saveModel(path?: string): Promise<Result<void>>;
|
|
179
|
+
createFeature(params: unknown): Promise<Result<ISolidWorksFeature>>;
|
|
180
|
+
getFeatures(): Promise<Result<ISolidWorksFeature[]>>;
|
|
181
|
+
suppressFeature(name: string): Promise<Result<void>>;
|
|
182
|
+
getDimension(name: string): Promise<Result<ISolidWorksDimension>>;
|
|
183
|
+
setDimension(name: string, value: number): Promise<Result<void>>;
|
|
184
|
+
listDimensions(): Promise<Result<ISolidWorksDimension[]>>;
|
|
185
|
+
exportModel(path: string, format: string): Promise<Result<void>>;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Configuration provider interface
|
|
189
|
+
*/
|
|
190
|
+
export interface IConfigurationProvider {
|
|
191
|
+
get<T = unknown>(key: string): T | undefined;
|
|
192
|
+
getRequired<T = unknown>(key: string): T;
|
|
193
|
+
set(key: string, value: unknown): void;
|
|
194
|
+
has(key: string): boolean;
|
|
195
|
+
validate(): Result<void>;
|
|
196
|
+
reload(): Promise<Result<void>>;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Logger interface
|
|
200
|
+
*/
|
|
201
|
+
export interface ILogger {
|
|
202
|
+
debug(message: string, context?: Record<string, unknown>): void;
|
|
203
|
+
info(message: string, context?: Record<string, unknown>): void;
|
|
204
|
+
warn(message: string, context?: Record<string, unknown>): void;
|
|
205
|
+
error(message: string, error?: Error, context?: Record<string, unknown>): void;
|
|
206
|
+
fatal(message: string, error?: Error, context?: Record<string, unknown>): void;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Abstract factory interface
|
|
210
|
+
*/
|
|
211
|
+
export interface IFactory<T, TParams = unknown> {
|
|
212
|
+
create(params: TParams): Result<T>;
|
|
213
|
+
canCreate(params: TParams): boolean;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Service locator interface (for dependency injection)
|
|
217
|
+
*/
|
|
218
|
+
export interface IServiceLocator {
|
|
219
|
+
register<T>(token: symbol | string, instance: T): void;
|
|
220
|
+
resolve<T>(token: symbol | string): T;
|
|
221
|
+
has(token: symbol | string): boolean;
|
|
222
|
+
reset(): void;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Validator interface
|
|
226
|
+
*/
|
|
227
|
+
export interface IValidator<T = unknown> {
|
|
228
|
+
validate(input: unknown): Result<T>;
|
|
229
|
+
isValid(input: unknown): boolean;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Validation rule interface
|
|
233
|
+
*/
|
|
234
|
+
export interface IValidationRule<T = unknown> {
|
|
235
|
+
validate(value: T): Result<void>;
|
|
236
|
+
message: string;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Middleware interface for request processing pipeline
|
|
240
|
+
*/
|
|
241
|
+
export interface IMiddleware<TContext = unknown> {
|
|
242
|
+
execute(context: TContext, next: () => Promise<Result<void>>): Promise<Result<void>>;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Pipeline interface
|
|
246
|
+
*/
|
|
247
|
+
export interface IPipeline<TContext = unknown> {
|
|
248
|
+
use(middleware: IMiddleware<TContext>): void;
|
|
249
|
+
execute(context: TContext): Promise<Result<void>>;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Cache interface
|
|
253
|
+
*/
|
|
254
|
+
export interface ICache<T = unknown> {
|
|
255
|
+
get(key: string): Promise<Result<T | null>>;
|
|
256
|
+
set(key: string, value: T, ttl?: number): Promise<Result<void>>;
|
|
257
|
+
has(key: string): Promise<Result<boolean>>;
|
|
258
|
+
delete(key: string): Promise<Result<void>>;
|
|
259
|
+
clear(): Promise<Result<void>>;
|
|
260
|
+
size(): Promise<Result<number>>;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Metrics collector interface
|
|
264
|
+
*/
|
|
265
|
+
export interface IMetricsCollector {
|
|
266
|
+
increment(metric: string, value?: number, tags?: Record<string, string>): void;
|
|
267
|
+
gauge(metric: string, value: number, tags?: Record<string, string>): void;
|
|
268
|
+
histogram(metric: string, value: number, tags?: Record<string, string>): void;
|
|
269
|
+
timing(metric: string, duration: number, tags?: Record<string, string>): void;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Health check interface
|
|
273
|
+
*/
|
|
274
|
+
export interface IHealthCheck {
|
|
275
|
+
name: string;
|
|
276
|
+
check(): Promise<Result<HealthStatus>>;
|
|
277
|
+
}
|
|
278
|
+
export interface HealthStatus {
|
|
279
|
+
status: 'healthy' | 'degraded' | 'unhealthy';
|
|
280
|
+
message?: string;
|
|
281
|
+
details?: Record<string, unknown>;
|
|
282
|
+
}
|
|
283
|
+
export declare const TypeGuards: {
|
|
284
|
+
isModelType(value: unknown): value is ModelType;
|
|
285
|
+
isSolidWorksModel(value: unknown): value is ISolidWorksModel;
|
|
286
|
+
isError(value: unknown): value is Error;
|
|
287
|
+
isDomainError(value: unknown): value is DomainError;
|
|
288
|
+
};
|
|
289
|
+
//# sourceMappingURL=core-abstractions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-abstractions.d.ts","sourceRoot":"","sources":["../../../src/core/interfaces/core-abstractions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Abstractions and Interfaces
|
|
3
|
+
* These form the foundation of our clean architecture
|
|
4
|
+
*/
|
|
5
|
+
export class ResultUtil {
|
|
6
|
+
static ok(data) {
|
|
7
|
+
return { success: true, data };
|
|
8
|
+
}
|
|
9
|
+
static fail(error) {
|
|
10
|
+
return { success: false, error };
|
|
11
|
+
}
|
|
12
|
+
static isSuccess(result) {
|
|
13
|
+
return result.success === true;
|
|
14
|
+
}
|
|
15
|
+
static isFailure(result) {
|
|
16
|
+
return result.success === false;
|
|
17
|
+
}
|
|
18
|
+
static map(result, fn) {
|
|
19
|
+
if (ResultUtil.isSuccess(result)) {
|
|
20
|
+
return ResultUtil.ok(fn(result.data));
|
|
21
|
+
}
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
static flatMap(result, fn) {
|
|
25
|
+
if (ResultUtil.isSuccess(result)) {
|
|
26
|
+
return fn(result.data);
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
static async fromPromise(promise, errorHandler) {
|
|
31
|
+
try {
|
|
32
|
+
const data = await promise;
|
|
33
|
+
return ResultUtil.ok(data);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
const processedError = errorHandler
|
|
37
|
+
? errorHandler(error)
|
|
38
|
+
: error instanceof Error
|
|
39
|
+
? error
|
|
40
|
+
: new Error(String(error));
|
|
41
|
+
return ResultUtil.fail(processedError);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// ============================================
|
|
46
|
+
// 2. DOMAIN ERRORS
|
|
47
|
+
// ============================================
|
|
48
|
+
export class DomainError extends Error {
|
|
49
|
+
details;
|
|
50
|
+
constructor(message, details) {
|
|
51
|
+
super(message);
|
|
52
|
+
this.details = details;
|
|
53
|
+
this.name = this.constructor.name;
|
|
54
|
+
Error.captureStackTrace(this, this.constructor);
|
|
55
|
+
}
|
|
56
|
+
toJSON() {
|
|
57
|
+
return {
|
|
58
|
+
name: this.name,
|
|
59
|
+
code: this.code,
|
|
60
|
+
message: this.message,
|
|
61
|
+
details: this.details,
|
|
62
|
+
stack: this.stack,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export class ConnectionError extends DomainError {
|
|
67
|
+
code = 'CONNECTION_ERROR';
|
|
68
|
+
statusCode = 503;
|
|
69
|
+
}
|
|
70
|
+
export class ModelNotFoundError extends DomainError {
|
|
71
|
+
code = 'MODEL_NOT_FOUND';
|
|
72
|
+
statusCode = 404;
|
|
73
|
+
}
|
|
74
|
+
export class InvalidOperationError extends DomainError {
|
|
75
|
+
code = 'INVALID_OPERATION';
|
|
76
|
+
statusCode = 400;
|
|
77
|
+
}
|
|
78
|
+
export class ValidationError extends DomainError {
|
|
79
|
+
code = 'VALIDATION_ERROR';
|
|
80
|
+
statusCode = 422;
|
|
81
|
+
}
|
|
82
|
+
export class COMError extends DomainError {
|
|
83
|
+
code = 'COM_ERROR';
|
|
84
|
+
statusCode = 500;
|
|
85
|
+
}
|
|
86
|
+
// ============================================
|
|
87
|
+
// 4. SOLIDWORKS SPECIFIC INTERFACES
|
|
88
|
+
// ============================================
|
|
89
|
+
/**
|
|
90
|
+
* SolidWorks model types
|
|
91
|
+
*/
|
|
92
|
+
export var ModelType;
|
|
93
|
+
(function (ModelType) {
|
|
94
|
+
ModelType["Part"] = "Part";
|
|
95
|
+
ModelType["Assembly"] = "Assembly";
|
|
96
|
+
ModelType["Drawing"] = "Drawing";
|
|
97
|
+
})(ModelType || (ModelType = {}));
|
|
98
|
+
// ============================================
|
|
99
|
+
// TYPE GUARDS
|
|
100
|
+
// ============================================
|
|
101
|
+
export const TypeGuards = {
|
|
102
|
+
isModelType(value) {
|
|
103
|
+
return Object.values(ModelType).includes(value);
|
|
104
|
+
},
|
|
105
|
+
isSolidWorksModel(value) {
|
|
106
|
+
return (typeof value === 'object' &&
|
|
107
|
+
value !== null &&
|
|
108
|
+
'id' in value &&
|
|
109
|
+
'path' in value &&
|
|
110
|
+
'name' in value &&
|
|
111
|
+
'type' in value &&
|
|
112
|
+
TypeGuards.isModelType(value.type));
|
|
113
|
+
},
|
|
114
|
+
isError(value) {
|
|
115
|
+
return value instanceof Error;
|
|
116
|
+
},
|
|
117
|
+
isDomainError(value) {
|
|
118
|
+
return value instanceof DomainError;
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=core-abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-abstractions.js","sourceRoot":"","sources":["../../../src/core/interfaces/core-abstractions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.refactored.d.ts","sourceRoot":"","sources":["../src/index.refactored.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
|