@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,382 @@
1
+ import { ErrorHandler } from '../core/error';
2
+ class ChainableResult {
3
+ constructor(value) {
4
+ this.value = value;
5
+ }
6
+ chain(fn) {
7
+ return fn(this.value);
8
+ }
9
+ log(label = 'Result') {
10
+ console.log(`[${label}]: ${this.value}`);
11
+ return this;
12
+ }
13
+ }
14
+ // ==================== ISO 13855 - 광전자식 방호장치 ====================
15
+ export var ISO13855;
16
+ (function (ISO13855) {
17
+ function A1(K, T, C) {
18
+ ErrorHandler.validateType('K', K, 'number');
19
+ ErrorHandler.validateType('T', T, 'number');
20
+ ErrorHandler.validateType('C', C, 'number');
21
+ return K * T + C;
22
+ }
23
+ ISO13855.A1 = A1;
24
+ function A2(t_1, t_2) {
25
+ ErrorHandler.validateType('t_1', t_1, 'number');
26
+ ErrorHandler.validateType('t_2', t_2, 'number');
27
+ return t_1 + t_2;
28
+ }
29
+ ISO13855.A2 = A2;
30
+ function A3(T, d) {
31
+ ErrorHandler.validateType('T', T, 'number');
32
+ ErrorHandler.validateType('d', d, 'number');
33
+ return 2000 * T + 8 * (d - 14);
34
+ }
35
+ ISO13855.A3 = A3;
36
+ function A4(T, d) {
37
+ ErrorHandler.validateType('T', T, 'number');
38
+ ErrorHandler.validateType('d', d, 'number');
39
+ return 1600 * T + 8 * (d - 14);
40
+ }
41
+ ISO13855.A4 = A4;
42
+ function A5(T) {
43
+ ErrorHandler.validateType('T', T, 'number');
44
+ return 1600 * T + 850;
45
+ }
46
+ ISO13855.A5 = A5;
47
+ function A6(T) {
48
+ ErrorHandler.validateType('T', T, 'number');
49
+ return 1600 * T + 1200;
50
+ }
51
+ ISO13855.A6 = A6;
52
+ function A7(T, H) {
53
+ ErrorHandler.validateType('T', T, 'number');
54
+ ErrorHandler.validateType('H', H, 'number');
55
+ const invasionDistance = Math.max(1200 - 0.4 * H, 850);
56
+ return 1600 * T + invasionDistance;
57
+ }
58
+ ISO13855.A7 = A7;
59
+ function A8(d) {
60
+ ErrorHandler.validateType('d', d, 'number');
61
+ return 15 * (d - 50);
62
+ }
63
+ ISO13855.A8 = A8;
64
+ function A9(H) {
65
+ ErrorHandler.validateType('H', H, 'number');
66
+ return H / 15 + 50;
67
+ }
68
+ ISO13855.A9 = A9;
69
+ function A10(K, T, C_RO) {
70
+ ErrorHandler.validateType('K', K, 'number');
71
+ ErrorHandler.validateType('T', T, 'number');
72
+ ErrorHandler.validateType('C_RO', C_RO, 'number');
73
+ return K * T + C_RO;
74
+ }
75
+ ISO13855.A10 = A10;
76
+ function A11(T, C_RO) {
77
+ ErrorHandler.validateType('K', T, 'number');
78
+ ErrorHandler.validateType('K', C_RO, 'number');
79
+ return 2000 * T + C_RO;
80
+ }
81
+ ISO13855.A11 = A11;
82
+ function A12(T, C_RO) {
83
+ ErrorHandler.validateType('T', T, 'number');
84
+ ErrorHandler.validateType('C_RO', C_RO, 'number');
85
+ return 1600 * T + C_RO;
86
+ }
87
+ ISO13855.A12 = A12;
88
+ function A13(pathLengths) {
89
+ ErrorHandler.validateArrayLength('pathLengths', pathLengths, 0);
90
+ return pathLengths.reduce((sum, length) => sum + length, 0);
91
+ }
92
+ ISO13855.A13 = A13;
93
+ function A14(T) {
94
+ ErrorHandler.validateType('T', T, 'number');
95
+ return 1600 * T + 1200;
96
+ }
97
+ ISO13855.A14 = A14;
98
+ function A15(T, h) {
99
+ ErrorHandler.validateType('T', T, 'number');
100
+ ErrorHandler.validateType('h', h, 'number');
101
+ return 1600 * T + (1200 - 0.4 * h);
102
+ }
103
+ ISO13855.A15 = A15;
104
+ function A16(T) {
105
+ ErrorHandler.validateType('T', T, 'number');
106
+ return 1600 * T + 250;
107
+ }
108
+ ISO13855.A16 = A16;
109
+ function A17(e, v) {
110
+ ErrorHandler.validateType('e', e, 'number');
111
+ ErrorHandler.validateType('v', v, 'number');
112
+ ErrorHandler.validateRange('v', v, Number.EPSILON);
113
+ return e / v;
114
+ }
115
+ ISO13855.A17 = A17;
116
+ function B1(measurements) {
117
+ ErrorHandler.validateArrayLength('measurements', measurements, 10);
118
+ const mean = measurements.reduce((a, b) => a + b) / measurements.length;
119
+ const variance = measurements.reduce((sum, x) => sum + Math.pow(x - mean, 2), 0) /
120
+ measurements.length;
121
+ const sigma = Math.sqrt(variance);
122
+ const calculated = mean + 3 * sigma;
123
+ const maximum = Math.max(...measurements);
124
+ return Math.max(calculated, maximum);
125
+ }
126
+ ISO13855.B1 = B1;
127
+ function B2(l_1, l_2, l_3) {
128
+ ErrorHandler.validateType('l_1', l_1, 'number');
129
+ ErrorHandler.validateType('l_2', l_2, 'number');
130
+ ErrorHandler.validateType('l_3', l_3, 'number');
131
+ return l_1 + l_2 + l_3;
132
+ }
133
+ ISO13855.B2 = B2;
134
+ function B3(S_1, S_2, S_3) {
135
+ ErrorHandler.validateType('S_1', S_1, 'number');
136
+ ErrorHandler.validateType('S_2', S_2, 'number');
137
+ ErrorHandler.validateType('S_3', S_3, 'number');
138
+ return S_1 + S_2 + S_3;
139
+ }
140
+ ISO13855.B3 = B3;
141
+ function B4(T) {
142
+ ErrorHandler.validateType('T', T, 'number');
143
+ return 1600 * T;
144
+ }
145
+ ISO13855.B4 = B4;
146
+ function B5(t_11, t_12) {
147
+ ErrorHandler.validateType('t_11', t_11, 'number');
148
+ ErrorHandler.validateType('t_12', t_12, 'number');
149
+ return t_11 + t_12;
150
+ }
151
+ ISO13855.B5 = B5;
152
+ function B6(S_RT, S_RO) {
153
+ ErrorHandler.validateType('S_RT', S_RT, 'number');
154
+ ErrorHandler.validateType('S_RO', S_RO, 'number');
155
+ return Math.max(S_RT, S_RO);
156
+ }
157
+ ISO13855.B6 = B6;
158
+ function B7(t_1, t_2, t_3) {
159
+ ErrorHandler.validateType('t_1', t_1, 'number');
160
+ ErrorHandler.validateType('t_2', t_2, 'number');
161
+ ErrorHandler.validateType('t_3', t_3, 'number');
162
+ return t_1 + t_2 - t_3;
163
+ }
164
+ ISO13855.B7 = B7;
165
+ function B8(projectionLengths) {
166
+ ErrorHandler.validateArrayLength('projectionLenths', projectionLengths, 0);
167
+ return projectionLengths.reduce((sum, length) => sum + length, 0);
168
+ }
169
+ ISO13855.B8 = B8;
170
+ /**
171
+ * === C 공식: 표준에서 태그되지 않은 조건 수식 ===
172
+ */
173
+ function C1(S) {
174
+ ErrorHandler.validateType('S', S, 'number');
175
+ return Math.max(S, 100);
176
+ }
177
+ ISO13855.C1 = C1;
178
+ function C2(S) {
179
+ ErrorHandler.validateType('S', S, 'number');
180
+ return Math.max(S, 500);
181
+ }
182
+ ISO13855.C2 = C2;
183
+ function C3(S, detectionCapacity = 30) {
184
+ ErrorHandler.validateType('S', S, 'number');
185
+ ErrorHandler.validateType('detectionCapacity', detectionCapacity, 'number');
186
+ return S > 150 && detectionCapacity <= 30;
187
+ }
188
+ ISO13855.C3 = C3;
189
+ function C4(S, detectionCapacity = 14) {
190
+ ErrorHandler.validateType('S', S, 'number');
191
+ ErrorHandler.validateType('detectionCapacity', detectionCapacity, 'number');
192
+ return S > 100 && detectionCapacity <= 14;
193
+ }
194
+ ISO13855.C4 = C4;
195
+ function C5(S_actual, S_required) {
196
+ ErrorHandler.validateType('S_actual', S_actual, 'number');
197
+ ErrorHandler.validateType('S_required', S_required, 'number');
198
+ return S_actual >= S_required;
199
+ }
200
+ ISO13855.C5 = C5;
201
+ function C6(H_min) {
202
+ ErrorHandler.validateType('H_min', H_min, 'number');
203
+ return H_min <= 300;
204
+ }
205
+ ISO13855.C6 = C6;
206
+ function C7(H_max) {
207
+ ErrorHandler.validateType('H_max', H_max, 'number');
208
+ return H_max <= 1000;
209
+ }
210
+ ISO13855.C7 = C7;
211
+ function C8(H_min) {
212
+ ErrorHandler.validateType('H_min', H_min, 'number');
213
+ return H_min <= 750;
214
+ }
215
+ ISO13855.C8 = C8;
216
+ function C9(angleA_s, angleA_h) {
217
+ ErrorHandler.validateType('angleA_s', angleA_s, 'number');
218
+ return angleA_s - angleA_h > 30;
219
+ }
220
+ ISO13855.C9 = C9;
221
+ function C10(S_2000) {
222
+ ErrorHandler.validateType('S_2000', S_2000, 'number');
223
+ return S_2000 > 500 ? '1600mm/s' : '2000mm/s';
224
+ }
225
+ ISO13855.C10 = C10;
226
+ class CalculationChainImpl {
227
+ constructor() {
228
+ this.storedParams = {};
229
+ }
230
+ params(params) {
231
+ this.storedParams = params;
232
+ return this;
233
+ }
234
+ update(params) {
235
+ this.storedParams = { ...this.storedParams, ...params };
236
+ return this;
237
+ }
238
+ // A 계열
239
+ A1(K, T, C) {
240
+ return new ChainableResult(A1(K, T, C));
241
+ }
242
+ A2(t_1, t_2) {
243
+ return new ChainableResult(A2(t_1, t_2));
244
+ }
245
+ A3(T, d) {
246
+ return new ChainableResult(A3(T, d));
247
+ }
248
+ A4(T, d) {
249
+ return new ChainableResult(A4(T, d));
250
+ }
251
+ A5(T) {
252
+ return new ChainableResult(A5(T));
253
+ }
254
+ A6(T) {
255
+ return new ChainableResult(A6(T));
256
+ }
257
+ A7(T, H) {
258
+ return new ChainableResult(A7(T, H));
259
+ }
260
+ A8(d) {
261
+ return new ChainableResult(A8(d));
262
+ }
263
+ A9(H) {
264
+ return new ChainableResult(A9(H));
265
+ }
266
+ A10(K, T, C_RO) {
267
+ return new ChainableResult(A10(K, T, C_RO));
268
+ }
269
+ A11(T, C_RO) {
270
+ return new ChainableResult(A11(T, C_RO));
271
+ }
272
+ A12(T, C_RO) {
273
+ return new ChainableResult(A12(T, C_RO));
274
+ }
275
+ A13(pathLengths) {
276
+ return new ChainableResult(A13(pathLengths));
277
+ }
278
+ A14(T) {
279
+ return new ChainableResult(A14(T));
280
+ }
281
+ A15(T, h) {
282
+ return new ChainableResult(A15(T, h));
283
+ }
284
+ A16(T) {
285
+ return new ChainableResult(A16(T));
286
+ }
287
+ A17(e, v) {
288
+ return new ChainableResult(A17(e, v));
289
+ }
290
+ // B 계열
291
+ B1(measurements) {
292
+ return new ChainableResult(B1(measurements));
293
+ }
294
+ B2(l_1, l_2, l_3) {
295
+ return new ChainableResult(B2(l_1, l_2, l_3));
296
+ }
297
+ B3(S_1, S_2, S_3) {
298
+ return new ChainableResult(B3(S_1, S_2, S_3));
299
+ }
300
+ B4(T) {
301
+ return new ChainableResult(B4(T));
302
+ }
303
+ B5(t_11, t_12) {
304
+ return new ChainableResult(B5(t_11, t_12));
305
+ }
306
+ B6(S_RT, S_RO) {
307
+ return new ChainableResult(B6(S_RT, S_RO));
308
+ }
309
+ B7(t_1, t_2, t_3) {
310
+ return new ChainableResult(B7(t_1, t_2, t_3));
311
+ }
312
+ B8(projectionLengths) {
313
+ return new ChainableResult(B8(projectionLengths));
314
+ }
315
+ // C 조건식
316
+ C1(S) {
317
+ return new ChainableResult(C1(S));
318
+ }
319
+ C2(S) {
320
+ return new ChainableResult(C2(S));
321
+ }
322
+ C3(S, detectionCapacity) {
323
+ return C3(S, detectionCapacity);
324
+ }
325
+ C4(S, detectionCapacity) {
326
+ return C4(S, detectionCapacity);
327
+ }
328
+ C5(S_actual, S_required) {
329
+ return C5(S_actual, S_required);
330
+ }
331
+ C6(H_min) {
332
+ return C6(H_min);
333
+ }
334
+ C7(H_max) {
335
+ return C7(H_max);
336
+ }
337
+ C8(H_min) {
338
+ return C8(H_min);
339
+ }
340
+ C9(angleA_s, angleA_h) {
341
+ return C9(angleA_s, angleA_h);
342
+ }
343
+ C10(S_2000) {
344
+ return C10(S_2000);
345
+ }
346
+ }
347
+ ISO13855.builder = new CalculationChainImpl();
348
+ })(ISO13855 || (ISO13855 = {}));
349
+ // ==================== ISO 13857 - 보호 구조물 ====================
350
+ export var ISO13857;
351
+ (function (ISO13857) {
352
+ function B1(S_h, S_r) {
353
+ ErrorHandler.validateType('S_h', S_h, 'number');
354
+ return Math.max(S_h, S_r);
355
+ }
356
+ ISO13857.B1 = B1;
357
+ class CalculationChainImpl {
358
+ constructor() {
359
+ this.storedParams = {};
360
+ }
361
+ params(params) {
362
+ this.storedParams = params;
363
+ return this;
364
+ }
365
+ update(params) {
366
+ this.storedParams = { ...this.storedParams, ...params };
367
+ return this;
368
+ }
369
+ B1(S_h, S_r) {
370
+ return new ChainableResult(B1(S_h, S_r));
371
+ }
372
+ }
373
+ ISO13857.builder = new CalculationChainImpl();
374
+ })(ISO13857 || (ISO13857 = {}));
375
+ export const DRA = {
376
+ ISO13855: ISO13855.builder,
377
+ ISO13857: ISO13857.builder,
378
+ wrap(value) {
379
+ return new ChainableResult(value);
380
+ },
381
+ };
382
+ //# sourceMappingURL=formulas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formulas.js","sourceRoot":"","sources":["../../../src/algorithm/formulas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ import * as readline from 'readline';
2
+ import { ISO13855 } from '../algorithm/formulas';
3
+ import { DRAError } from '../core/error';
4
+ class InteractiveCLI {
5
+ constructor() {
6
+ this.rl = readline.createInterface({
7
+ input: process.stdin,
8
+ output: process.stdout,
9
+ });
10
+ }
11
+ start() {
12
+ this.showWelcome();
13
+ this.showMenu();
14
+ }
15
+ showWelcome() {
16
+ console.log(`
17
+ ╔═══════════════════════════════════════════════════════════╗
18
+ ║ 🛡️ DRA 안전거리 계산기 (대화형) ║
19
+ ╚═══════════════════════════════════════════════════════════╝
20
+ `);
21
+ }
22
+ showMenu() {
23
+ const menu = `
24
+ 📋 선택할 계산 유형:
25
+ 1. A1 - 반응 시간 계산
26
+ 2. A17 - 열림 거리/속도 계산
27
+ 3. B1 - 통계 분석
28
+ 4. B6 - 최대값 선택
29
+ 5. 종료
30
+
31
+ `;
32
+ console.log(menu);
33
+ this.prompt('선택 (1-5): ', this.handleMenuChoice.bind(this));
34
+ }
35
+ handleMenuChoice(choice) {
36
+ switch (choice.trim()) {
37
+ case '1':
38
+ this.inputA1();
39
+ break;
40
+ case '2':
41
+ this.inputA17();
42
+ break;
43
+ case '3':
44
+ this.inputB1();
45
+ break;
46
+ case '4':
47
+ this.inputB6();
48
+ break;
49
+ case '5':
50
+ this.exit();
51
+ break;
52
+ default:
53
+ console.error('❌ 잘못된 선택');
54
+ this.showMenu();
55
+ }
56
+ }
57
+ inputA1() {
58
+ this.prompt('K 값: ', (K) => {
59
+ this.prompt('T 값: ', (T) => {
60
+ this.prompt('C 값: ', (C) => {
61
+ try {
62
+ const result = ISO13855.A1(parseFloat(K), parseFloat(T), parseFloat(C));
63
+ console.log(`\n✅ 결과: ${result}\n`);
64
+ }
65
+ catch (error) {
66
+ this.handleError(error);
67
+ }
68
+ this.showMenu();
69
+ });
70
+ });
71
+ });
72
+ }
73
+ inputA17() {
74
+ this.prompt('e 값: ', (e) => {
75
+ this.prompt('v 값: ', (v) => {
76
+ try {
77
+ const result = ISO13855.A17(parseFloat(e), parseFloat(v));
78
+ console.log(`\n✅ 결과: ${result}\n`);
79
+ }
80
+ catch (error) {
81
+ this.handleError(error);
82
+ }
83
+ this.showMenu();
84
+ });
85
+ });
86
+ }
87
+ inputB1() {
88
+ this.prompt('측정값을 쉼표로 분리해서 입력 (최소 10개): ', (input) => {
89
+ try {
90
+ const measurements = input.split(',').map((v) => parseFloat(v.trim()));
91
+ const result = ISO13855.B1(measurements);
92
+ console.log(`\n✅ 결과: ${result}\n`);
93
+ }
94
+ catch (error) {
95
+ this.handleError(error);
96
+ }
97
+ this.showMenu();
98
+ });
99
+ }
100
+ inputB6() {
101
+ this.prompt('S_RT 값: ', (S_RT) => {
102
+ this.prompt('S_RO 값: ', (S_RO) => {
103
+ try {
104
+ const result = ISO13855.B6(parseFloat(S_RT), parseFloat(S_RO));
105
+ console.log(`\n✅ 결과: ${result}\n`);
106
+ }
107
+ catch (error) {
108
+ this.handleError(error);
109
+ }
110
+ this.showMenu();
111
+ });
112
+ });
113
+ }
114
+ handleError(error) {
115
+ if (error instanceof DRAError) {
116
+ console.error(`\n❌ [${error.code}] ${error.message}`);
117
+ }
118
+ else if (error instanceof Error) {
119
+ console.error(`\n❌ 에러: ${error.message}`);
120
+ }
121
+ }
122
+ prompt(question, callback) {
123
+ this.rl.question(question, callback);
124
+ }
125
+ exit() {
126
+ console.log('\n👋 프로그램을 종료합니다.');
127
+ this.rl.close();
128
+ }
129
+ }
130
+ // 실행
131
+ const cli = new InteractiveCLI();
132
+ cli.start();
133
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"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"}