@safeticsinc/dra 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ /**
3
+ * DRA (Danger Risk Assessment) 에러 처리 시스템
4
+ * 안전거리 계산 중 발생하는 다양한 에러를 구분하여 처리
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ErrorHandler = exports.SafetyThresholdError = exports.TypeError = exports.InvalidStateError = exports.CalculationError = exports.MissingParameterError = exports.OutOfRangeError = exports.ValidationError = exports.DRAError = void 0;
8
+ /**
9
+ * DRA 기본 에러 클래스
10
+ * 모든 DRA 특화 에러는 이 클래스를 상속받음
11
+ */
12
+ class DRAError extends Error {
13
+ constructor(message, code = 'DRA_ERROR', context) {
14
+ super(message);
15
+ this.name = 'DRAError';
16
+ this.code = code;
17
+ this.context = context;
18
+ this.timestamp = new Date();
19
+ // 프로토타입 체인 설정 (TypeScript에서 클래스 상속 시 필요)
20
+ Object.setPrototypeOf(this, DRAError.prototype);
21
+ }
22
+ /**
23
+ * 에러 정보를 객체로 반환
24
+ */
25
+ toJSON() {
26
+ return {
27
+ name: this.name,
28
+ code: this.code,
29
+ message: this.message,
30
+ context: this.context,
31
+ timestamp: this.timestamp,
32
+ };
33
+ }
34
+ /**
35
+ * 에러 정보를 문자열로 반환
36
+ */
37
+ toString() {
38
+ const contextStr = this.context
39
+ ? `\n컨텍스트: ${JSON.stringify(this.context, null, 2)}`
40
+ : '';
41
+ return `[${this.code}] ${this.message}${contextStr}`;
42
+ }
43
+ }
44
+ exports.DRAError = DRAError;
45
+ exports.default = DRAError;
46
+ /**
47
+ * 입력 파라미터 검증 에러
48
+ * 필수 파라미터가 누락되었거나 잘못된 형식일 때 발생
49
+ */
50
+ class ValidationError extends DRAError {
51
+ constructor(message, context) {
52
+ super(message, 'VALIDATION_ERROR', context);
53
+ this.name = 'ValidationError';
54
+ Object.setPrototypeOf(this, ValidationError.prototype);
55
+ }
56
+ }
57
+ exports.ValidationError = ValidationError;
58
+ /**
59
+ * 파라미터 범위 벗어남 에러
60
+ * 입력값이 허용된 범위를 벗어났을 때 발생
61
+ */
62
+ class OutOfRangeError extends DRAError {
63
+ constructor(paramName, value, minValue, maxValue) {
64
+ const message = minValue !== undefined && maxValue !== undefined
65
+ ? `파라미터 '${paramName}'은(는) ${minValue}~${maxValue} 범위여야 합니다. (현재값: ${value})`
66
+ : minValue !== undefined
67
+ ? `파라미터 '${paramName}'은(는) ${minValue} 이상이어야 합니다. (현재값: ${value})`
68
+ : `파라미터 '${paramName}'은(는) ${maxValue} 이하여야 합니다. (현재값: ${value})`;
69
+ super(message, 'OUT_OF_RANGE_ERROR', {
70
+ paramName,
71
+ value,
72
+ minValue,
73
+ maxValue,
74
+ });
75
+ this.name = 'OutOfRangeError';
76
+ this.paramName = paramName;
77
+ this.value = value;
78
+ this.minValue = minValue;
79
+ this.maxValue = maxValue;
80
+ Object.setPrototypeOf(this, OutOfRangeError.prototype);
81
+ }
82
+ }
83
+ exports.OutOfRangeError = OutOfRangeError;
84
+ /**
85
+ * 필수 파라미터 누락 에러
86
+ * 필수 파라미터가 제공되지 않았을 때 발생
87
+ */
88
+ class MissingParameterError extends DRAError {
89
+ constructor(requiredParams) {
90
+ const paramList = requiredParams.join(', ');
91
+ const message = `필수 파라미터가 누락되었습니다: ${paramList}`;
92
+ super(message, 'MISSING_PARAMETER_ERROR', { requiredParams });
93
+ this.name = 'MissingParameterError';
94
+ this.requiredParams = requiredParams;
95
+ Object.setPrototypeOf(this, MissingParameterError.prototype);
96
+ }
97
+ }
98
+ exports.MissingParameterError = MissingParameterError;
99
+ /**
100
+ * 계산 에러
101
+ * 계산 과정에서 수학적 오류 또는 불가능한 연산이 발생했을 때
102
+ */
103
+ class CalculationError extends DRAError {
104
+ constructor(message, formulaCode, params) {
105
+ super(message, 'CALCULATION_ERROR', { formulaCode, params });
106
+ this.name = 'CalculationError';
107
+ this.formulaCode = formulaCode;
108
+ this.params = params;
109
+ Object.setPrototypeOf(this, CalculationError.prototype);
110
+ }
111
+ }
112
+ exports.CalculationError = CalculationError;
113
+ /**
114
+ * 불가능한 상태 에러
115
+ * 현재 상태에서 요청된 작업을 수행할 수 없을 때 발생
116
+ */
117
+ class InvalidStateError extends DRAError {
118
+ constructor(message, currentState, requiredState) {
119
+ super(message, 'INVALID_STATE_ERROR', {
120
+ currentState,
121
+ requiredState,
122
+ });
123
+ this.name = 'InvalidStateError';
124
+ this.currentState = currentState;
125
+ this.requiredState = requiredState || '';
126
+ Object.setPrototypeOf(this, InvalidStateError.prototype);
127
+ }
128
+ }
129
+ exports.InvalidStateError = InvalidStateError;
130
+ /**
131
+ * 타입 에러
132
+ * 예상과 다른 타입의 값이 제공되었을 때 발생
133
+ */
134
+ class TypeError extends DRAError {
135
+ constructor(paramName, expectedType, actualType) {
136
+ const message = `파라미터 '${paramName}'의 타입이 잘못되었습니다. (예상: ${expectedType}, 실제: ${actualType})`;
137
+ super(message, 'TYPE_ERROR', {
138
+ paramName,
139
+ expectedType,
140
+ actualType,
141
+ });
142
+ this.name = 'TypeError';
143
+ this.paramName = paramName;
144
+ this.expectedType = expectedType;
145
+ this.actualType = actualType;
146
+ Object.setPrototypeOf(this, TypeError.prototype);
147
+ }
148
+ }
149
+ exports.TypeError = TypeError;
150
+ /**
151
+ * 안전 기준 미만 에러
152
+ * 계산된 안전거리가 최소 안전거리 기준을 만족하지 못할 때 발생
153
+ */
154
+ class SafetyThresholdError extends DRAError {
155
+ constructor(calculatedValue, minimumRequired) {
156
+ const safetyMargin = minimumRequired - calculatedValue;
157
+ const message = `안전거리가 기준을 충족하지 못했습니다. (계산값: ${calculatedValue}mm, 필요값: ${minimumRequired}mm, 부족: ${safetyMargin}mm)`;
158
+ super(message, 'SAFETY_THRESHOLD_ERROR', {
159
+ calculatedValue,
160
+ minimumRequired,
161
+ safetyMargin,
162
+ });
163
+ this.name = 'SafetyThresholdError';
164
+ this.calculatedValue = calculatedValue;
165
+ this.minimumRequired = minimumRequired;
166
+ this.safetyMargin = safetyMargin;
167
+ Object.setPrototypeOf(this, SafetyThresholdError.prototype);
168
+ }
169
+ }
170
+ exports.SafetyThresholdError = SafetyThresholdError;
171
+ /**
172
+ * 에러 검증 및 처리 유틸리티
173
+ */
174
+ class ErrorHandler {
175
+ /**
176
+ * 값이 범위 내에 있는지 검증
177
+ */
178
+ static validateRange(paramName, value, minValue, maxValue) {
179
+ if (minValue !== undefined &&
180
+ maxValue !== undefined &&
181
+ (value < minValue || value > maxValue)) {
182
+ throw new OutOfRangeError(paramName, value, minValue, maxValue);
183
+ }
184
+ if (minValue !== undefined && value < minValue) {
185
+ throw new OutOfRangeError(paramName, value, minValue, undefined);
186
+ }
187
+ if (maxValue !== undefined && value > maxValue) {
188
+ throw new OutOfRangeError(paramName, value, undefined, maxValue);
189
+ }
190
+ }
191
+ /**
192
+ * 필수 파라미터 검증
193
+ */
194
+ static validateRequired(params, requiredKeys) {
195
+ const missingKeys = requiredKeys.filter((key) => !(key in params));
196
+ if (missingKeys.length > 0) {
197
+ throw new MissingParameterError(missingKeys);
198
+ }
199
+ }
200
+ /**
201
+ * 타입 검증
202
+ */
203
+ static validateType(paramName, value, expectedType) {
204
+ const actualType = typeof value;
205
+ if (actualType !== expectedType) {
206
+ throw new TypeError(paramName, expectedType, actualType);
207
+ }
208
+ }
209
+ /**
210
+ * 값이 0이 아닌지 검증 (나눗셈 방지)
211
+ */
212
+ static validateNonZero(paramName, value) {
213
+ if (value === 0) {
214
+ throw new ValidationError(`파라미터 '${paramName}'은(는) 0이 될 수 없습니다.`, { paramName, value });
215
+ }
216
+ }
217
+ /**
218
+ * 배열이 최소 길이 이상인지 검증
219
+ */
220
+ static validateArrayLength(paramName, array, minLength) {
221
+ if (array.length < minLength) {
222
+ throw new ValidationError(`파라미터 '${paramName}'은(는) 최소 ${minLength}개 이상의 요소를 가져야 합니다. (현재: ${array.length}개)`, { paramName, minLength, actualLength: array.length });
223
+ }
224
+ }
225
+ /**
226
+ * 안전거리 기준 검증
227
+ */
228
+ static validateSafetyThreshold(calculatedValue, minimumRequired) {
229
+ if (calculatedValue < minimumRequired) {
230
+ throw new SafetyThresholdError(calculatedValue, minimumRequired);
231
+ }
232
+ }
233
+ /**
234
+ * 에러를 캐치하고 로깅
235
+ */
236
+ static catch(error, fallbackMessage = '알 수 없는 에러가 발생했습니다') {
237
+ if (error instanceof DRAError) {
238
+ console.error(`[${error.code}] ${error.message}`);
239
+ return error;
240
+ }
241
+ if (error instanceof Error) {
242
+ console.error(`[ERROR] ${error.message}`);
243
+ return new DRAError(error.message);
244
+ }
245
+ console.error(`[ERROR] ${fallbackMessage}`);
246
+ return new DRAError(fallbackMessage);
247
+ }
248
+ /**
249
+ * 에러 정보를 상세히 출력
250
+ */
251
+ static log(error) {
252
+ console.error(`
253
+ ═══════════════════════════════════════════════════════════
254
+ [${error.code}] ${error.name}
255
+ ═══════════════════════════════════════════════════════════
256
+ 메시지: ${error.message}
257
+ 시간: ${error.timestamp.toISOString()}
258
+ ${error.context ? ` 상세정보:\n${JSON.stringify(error.context, null, 4)}` : ''}
259
+ ═══════════════════════════════════════════════════════════
260
+ `);
261
+ }
262
+ }
263
+ exports.ErrorHandler = ErrorHandler;
264
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/core/error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './error';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./error"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
package/dist/index.cjs ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./core/index"), exports);
18
+ __exportStar(require("./algorithm/index"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ export * from './core/index';
2
+ export * from './algorithm/index';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,oDAAkC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=robot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robot.d.ts","sourceRoot":"","sources":["../../src/schema/robot.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=robot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robot.js","sourceRoot":"","sources":["../../src/schema/robot.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@safeticsinc/dra",
3
+ "version": "0.0.1",
4
+ "description": "digital risk assessment system algorithm and formula",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.cjs",
8
+ "module": "./dist/index.esm.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.esm.js",
14
+ "require": "./dist/index.cjs.js"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "package.json",
20
+ "README.md"
21
+ ],
22
+ "scripts": {
23
+ "build": "npm run build:esm && npm run build:cjs && npm run build:cli",
24
+ "build:esm": "tsc --project tsconfig.json",
25
+ "build:cjs": "tsc --project tsconfig.cjs.json --outDir dist && node -e \"require('fs').renameSync('dist/index.js', 'dist/index.cjs')\"",
26
+ "build:cli": "tsc --project tsconfig.cli.json",
27
+ "type-check": "tsc --noEmit",
28
+ "prepublishOnly": "npm run build",
29
+ "cli": "tsx src/cli/index.ts"
30
+ },
31
+ "repository": {
32
+ "type": "git",
33
+ "url": ""
34
+ },
35
+ "engines": {
36
+ "node": ">=18.0.0"
37
+ },
38
+ "devDependencies": {
39
+ "@types/node": "^20.0.0",
40
+ "@types/seedrandom": "^3",
41
+ "@types/three": "^0.159.0",
42
+ "readline": "^1.3.0",
43
+ "ts-node": "^10.9.2",
44
+ "tsx": "^4.21.0",
45
+ "typedoc": "^0.28.15",
46
+ "typescript": "^5.6.3"
47
+ },
48
+ "dependencies": {
49
+ "mathjs": "^15.1.0",
50
+ "seedrandom": "^3.0.5",
51
+ "three": "^0.159.0"
52
+ },
53
+ "peerDependencies": {
54
+ "react": "^18.0.0 || ^19.0.0",
55
+ "react-dom": "^18.0.0 || ^19.0.0"
56
+ },
57
+ "peerDependenciesMeta": {
58
+ "react": {
59
+ "optional": true
60
+ },
61
+ "react-dom": {
62
+ "optional": true
63
+ }
64
+ }
65
+ }