formulab 0.10.3 → 0.11.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.
Files changed (51) hide show
  1. package/dist/ie/index.d.ts +7 -0
  2. package/dist/ie/index.d.ts.map +1 -0
  3. package/dist/ie/index.js +7 -0
  4. package/dist/ie/index.js.map +1 -0
  5. package/dist/ie/learningCurve.d.ts +19 -0
  6. package/dist/ie/learningCurve.d.ts.map +1 -0
  7. package/dist/ie/learningCurve.js +65 -0
  8. package/dist/ie/learningCurve.js.map +1 -0
  9. package/dist/ie/standardTime.d.ts +17 -0
  10. package/dist/ie/standardTime.d.ts.map +1 -0
  11. package/dist/ie/standardTime.js +36 -0
  12. package/dist/ie/standardTime.js.map +1 -0
  13. package/dist/ie/timeStudy.d.ts +20 -0
  14. package/dist/ie/timeStudy.d.ts.map +1 -0
  15. package/dist/ie/timeStudy.js +52 -0
  16. package/dist/ie/timeStudy.js.map +1 -0
  17. package/dist/ie/types.d.ts +84 -0
  18. package/dist/ie/types.d.ts.map +1 -0
  19. package/dist/ie/types.js +2 -0
  20. package/dist/ie/types.js.map +1 -0
  21. package/dist/ie/vaAnalysis.d.ts +15 -0
  22. package/dist/ie/vaAnalysis.d.ts.map +1 -0
  23. package/dist/ie/vaAnalysis.js +45 -0
  24. package/dist/ie/vaAnalysis.js.map +1 -0
  25. package/dist/ie/workSampling.d.ts +19 -0
  26. package/dist/ie/workSampling.d.ts.map +1 -0
  27. package/dist/ie/workSampling.js +45 -0
  28. package/dist/ie/workSampling.js.map +1 -0
  29. package/dist/index.d.ts +1 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/quality/actionPriority.d.ts +18 -0
  34. package/dist/quality/actionPriority.d.ts.map +1 -0
  35. package/dist/quality/actionPriority.js +128 -0
  36. package/dist/quality/actionPriority.js.map +1 -0
  37. package/dist/quality/cpkToOccurrence.d.ts +13 -0
  38. package/dist/quality/cpkToOccurrence.d.ts.map +1 -0
  39. package/dist/quality/cpkToOccurrence.js +35 -0
  40. package/dist/quality/cpkToOccurrence.js.map +1 -0
  41. package/dist/quality/index.d.ts +4 -1
  42. package/dist/quality/index.d.ts.map +1 -1
  43. package/dist/quality/index.js +3 -0
  44. package/dist/quality/index.js.map +1 -1
  45. package/dist/quality/nelsonRules.d.ts +16 -0
  46. package/dist/quality/nelsonRules.d.ts.map +1 -0
  47. package/dist/quality/nelsonRules.js +213 -0
  48. package/dist/quality/nelsonRules.js.map +1 -0
  49. package/dist/quality/types.d.ts +45 -0
  50. package/dist/quality/types.d.ts.map +1 -1
  51. package/package.json +15 -3
@@ -0,0 +1,7 @@
1
+ export { standardTime } from './standardTime.js';
2
+ export { timeStudy } from './timeStudy.js';
3
+ export { workSampling } from './workSampling.js';
4
+ export { vaAnalysis } from './vaAnalysis.js';
5
+ export { learningCurve } from './learningCurve.js';
6
+ export type { StandardTimeInput, StandardTimeResult, TimeStudyInput, TimeStudyResult, WorkSamplingInput, WorkSamplingResult, ActivityCategory, Activity, VaAnalysisInput, CategorySummary, VaAnalysisResult, LearningCurveModel, LearningCurveInput, LearningCurveResult, } from './types.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ie/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,YAAY,EAEV,iBAAiB,EACjB,kBAAkB,EAElB,cAAc,EACd,eAAe,EAEf,iBAAiB,EACjB,kBAAkB,EAElB,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,eAAe,EACf,gBAAgB,EAEhB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ // IE (Industrial Engineering) domain formulas
2
+ export { standardTime } from './standardTime.js';
3
+ export { timeStudy } from './timeStudy.js';
4
+ export { workSampling } from './workSampling.js';
5
+ export { vaAnalysis } from './vaAnalysis.js';
6
+ export { learningCurve } from './learningCurve.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ie/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { LearningCurveInput, LearningCurveResult } from './types.js';
2
+ /**
3
+ * Learning Curve (Wright's Law)
4
+ *
5
+ * @formula
6
+ * b = ln(learningRate) / ln(2)
7
+ * Unit model: unitTime = firstUnitTime × unitNumber^b
8
+ * Cumulative model: cumulativeAverageTime = firstUnitTime × unitNumber^b
9
+ * cumulativeTotalTime = cumulativeAverageTime × unitNumber
10
+ *
11
+ * @reference Wright, T.P. (1936). "Factors Affecting the Cost of Airplanes".
12
+ * Journal of the Aeronautical Sciences, 3(4), 122-128.
13
+ *
14
+ * @throws {RangeError} First unit time must be a positive number
15
+ * @throws {RangeError} Learning rate must be between 0 and 1 (exclusive)
16
+ * @throws {RangeError} Unit number must be a positive integer
17
+ */
18
+ export declare function learningCurve(input: LearningCurveInput): LearningCurveResult;
19
+ //# sourceMappingURL=learningCurve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learningCurve.d.ts","sourceRoot":"","sources":["../../src/ie/learningCurve.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE1E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAiD5E"}
@@ -0,0 +1,65 @@
1
+ import { roundTo } from '../utils.js';
2
+ /**
3
+ * Learning Curve (Wright's Law)
4
+ *
5
+ * @formula
6
+ * b = ln(learningRate) / ln(2)
7
+ * Unit model: unitTime = firstUnitTime × unitNumber^b
8
+ * Cumulative model: cumulativeAverageTime = firstUnitTime × unitNumber^b
9
+ * cumulativeTotalTime = cumulativeAverageTime × unitNumber
10
+ *
11
+ * @reference Wright, T.P. (1936). "Factors Affecting the Cost of Airplanes".
12
+ * Journal of the Aeronautical Sciences, 3(4), 122-128.
13
+ *
14
+ * @throws {RangeError} First unit time must be a positive number
15
+ * @throws {RangeError} Learning rate must be between 0 and 1 (exclusive)
16
+ * @throws {RangeError} Unit number must be a positive integer
17
+ */
18
+ export function learningCurve(input) {
19
+ const { firstUnitTime, learningRate, unitNumber, model = 'unit' } = input;
20
+ if (!Number.isFinite(firstUnitTime) || firstUnitTime <= 0) {
21
+ throw new RangeError('First unit time must be a positive number');
22
+ }
23
+ if (!Number.isFinite(learningRate) || learningRate <= 0 || learningRate >= 1) {
24
+ throw new RangeError('Learning rate must be between 0 and 1 (exclusive)');
25
+ }
26
+ if (!Number.isFinite(unitNumber) || unitNumber < 1 || !Number.isInteger(unitNumber)) {
27
+ throw new RangeError('Unit number must be a positive integer');
28
+ }
29
+ const b = Math.log(learningRate) / Math.log(2);
30
+ let unitTime;
31
+ let cumulativeAverageTime;
32
+ let cumulativeTotalTime;
33
+ if (model === 'cumulative') {
34
+ // Cumulative average model: T̄(n) = T1 × n^b
35
+ cumulativeAverageTime = firstUnitTime * Math.pow(unitNumber, b);
36
+ cumulativeTotalTime = cumulativeAverageTime * unitNumber;
37
+ // Individual unit time: T(n) = cumTotal(n) - cumTotal(n-1)
38
+ if (unitNumber === 1) {
39
+ unitTime = firstUnitTime;
40
+ }
41
+ else {
42
+ const prevCumAvg = firstUnitTime * Math.pow(unitNumber - 1, b);
43
+ const prevCumTotal = prevCumAvg * (unitNumber - 1);
44
+ unitTime = cumulativeTotalTime - prevCumTotal;
45
+ }
46
+ }
47
+ else {
48
+ // Unit model: T(n) = T1 × n^b gives the nth unit time directly
49
+ unitTime = firstUnitTime * Math.pow(unitNumber, b);
50
+ // Approximate cumulative average by summing individual unit times
51
+ let cumTotal = 0;
52
+ for (let i = 1; i <= unitNumber; i++) {
53
+ cumTotal += firstUnitTime * Math.pow(i, b);
54
+ }
55
+ cumulativeTotalTime = cumTotal;
56
+ cumulativeAverageTime = cumTotal / unitNumber;
57
+ }
58
+ return {
59
+ unitTime: roundTo(unitTime, 4),
60
+ cumulativeAverageTime: roundTo(cumulativeAverageTime, 4),
61
+ cumulativeTotalTime: roundTo(cumulativeTotalTime, 4),
62
+ learningExponent: roundTo(b, 6),
63
+ };
64
+ }
65
+ //# sourceMappingURL=learningCurve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learningCurve.js","sourceRoot":"","sources":["../../src/ie/learningCurve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;IAE1E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,UAAU,CAAC,2CAA2C,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,UAAU,CAAC,mDAAmD,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,UAAU,CAAC,wCAAwC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,QAAgB,CAAC;IACrB,IAAI,qBAA6B,CAAC;IAClC,IAAI,mBAA2B,CAAC;IAEhC,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAC3B,6CAA6C;QAC7C,qBAAqB,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAChE,mBAAmB,GAAG,qBAAqB,GAAG,UAAU,CAAC;QACzD,2DAA2D;QAC3D,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrB,QAAQ,GAAG,aAAa,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/D,MAAM,YAAY,GAAG,UAAU,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;YACnD,QAAQ,GAAG,mBAAmB,GAAG,YAAY,CAAC;QAChD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,+DAA+D;QAC/D,QAAQ,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACnD,kEAAkE;QAClE,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,mBAAmB,GAAG,QAAQ,CAAC;QAC/B,qBAAqB,GAAG,QAAQ,GAAG,UAAU,CAAC;IAChD,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACxD,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACpD,gBAAgB,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;KAChC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { StandardTimeInput, StandardTimeResult } from './types.js';
2
+ /**
3
+ * Standard Time Calculation
4
+ *
5
+ * @formula
6
+ * normalTime = observedTime × ratingFactor
7
+ * standardTime = normalTime × (1 + allowancePercent / 100)
8
+ *
9
+ * @reference ILO (International Labour Organization). "Introduction to Work Study".
10
+ * @reference Barnes, R.M. (1980). "Motion and Time Study: Design and Measurement of Work".
11
+ *
12
+ * @throws {RangeError} Observed time must be a positive number
13
+ * @throws {RangeError} Rating factor must be between 0 (exclusive) and 2 (inclusive)
14
+ * @throws {RangeError} Allowance percent must be between 0 and 100
15
+ */
16
+ export declare function standardTime(input: StandardTimeInput): StandardTimeResult;
17
+ //# sourceMappingURL=standardTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standardTime.d.ts","sourceRoot":"","sources":["../../src/ie/standardTime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAsBzE"}
@@ -0,0 +1,36 @@
1
+ import { roundTo } from '../utils.js';
2
+ /**
3
+ * Standard Time Calculation
4
+ *
5
+ * @formula
6
+ * normalTime = observedTime × ratingFactor
7
+ * standardTime = normalTime × (1 + allowancePercent / 100)
8
+ *
9
+ * @reference ILO (International Labour Organization). "Introduction to Work Study".
10
+ * @reference Barnes, R.M. (1980). "Motion and Time Study: Design and Measurement of Work".
11
+ *
12
+ * @throws {RangeError} Observed time must be a positive number
13
+ * @throws {RangeError} Rating factor must be between 0 (exclusive) and 2 (inclusive)
14
+ * @throws {RangeError} Allowance percent must be between 0 and 100
15
+ */
16
+ export function standardTime(input) {
17
+ const { observedTime, ratingFactor, allowancePercent } = input;
18
+ if (!Number.isFinite(observedTime) || observedTime <= 0) {
19
+ throw new RangeError('Observed time must be a positive number');
20
+ }
21
+ if (!Number.isFinite(ratingFactor) || ratingFactor <= 0 || ratingFactor > 2) {
22
+ throw new RangeError('Rating factor must be between 0 (exclusive) and 2 (inclusive)');
23
+ }
24
+ if (!Number.isFinite(allowancePercent) || allowancePercent < 0 || allowancePercent > 100) {
25
+ throw new RangeError('Allowance percent must be between 0 and 100');
26
+ }
27
+ const normalTime = observedTime * ratingFactor;
28
+ const allowanceTime = normalTime * (allowancePercent / 100);
29
+ const std = normalTime + allowanceTime;
30
+ return {
31
+ normalTime: roundTo(normalTime, 4),
32
+ standardTime: roundTo(std, 4),
33
+ allowanceTime: roundTo(allowanceTime, 4),
34
+ };
35
+ }
36
+ //# sourceMappingURL=standardTime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standardTime.js","sourceRoot":"","sources":["../../src/ie/standardTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;IAE/D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,UAAU,CAAC,yCAAyC,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,UAAU,CAAC,+DAA+D,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,GAAG,CAAC,IAAI,gBAAgB,GAAG,GAAG,EAAE,CAAC;QACzF,MAAM,IAAI,UAAU,CAAC,6CAA6C,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,GAAG,YAAY,CAAC;IAC/C,MAAM,aAAa,GAAG,UAAU,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,UAAU,GAAG,aAAa,CAAC;IAEvC,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAClC,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7B,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;KACzC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { TimeStudyInput, TimeStudyResult } from './types.js';
2
+ /**
3
+ * Time Study — Required Number of Observations
4
+ *
5
+ * @formula n = (z × s / (e × x̄))²
6
+ * where z = z-score for confidence level
7
+ * s = sample standard deviation
8
+ * e = accuracy / 100 (fractional)
9
+ * x̄ = sample mean
10
+ *
11
+ * @reference Barnes, R.M. (1980). "Motion and Time Study".
12
+ * @reference Niebel, B.W. & Freivalds, A. (2003). "Methods, Standards, and Work Design".
13
+ *
14
+ * @throws {RangeError} Observations must have at least 2 elements
15
+ * @throws {RangeError} All observation values must be positive
16
+ * @throws {RangeError} Confidence must be between 0 and 1 (exclusive)
17
+ * @throws {RangeError} Accuracy must be a positive number
18
+ */
19
+ export declare function timeStudy(input: TimeStudyInput): TimeStudyResult;
20
+ //# sourceMappingURL=timeStudy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeStudy.d.ts","sourceRoot":"","sources":["../../src/ie/timeStudy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAoChE"}
@@ -0,0 +1,52 @@
1
+ import { roundTo } from '../utils.js';
2
+ import { normalInvCDF } from '../math.js';
3
+ /**
4
+ * Time Study — Required Number of Observations
5
+ *
6
+ * @formula n = (z × s / (e × x̄))²
7
+ * where z = z-score for confidence level
8
+ * s = sample standard deviation
9
+ * e = accuracy / 100 (fractional)
10
+ * x̄ = sample mean
11
+ *
12
+ * @reference Barnes, R.M. (1980). "Motion and Time Study".
13
+ * @reference Niebel, B.W. & Freivalds, A. (2003). "Methods, Standards, and Work Design".
14
+ *
15
+ * @throws {RangeError} Observations must have at least 2 elements
16
+ * @throws {RangeError} All observation values must be positive
17
+ * @throws {RangeError} Confidence must be between 0 and 1 (exclusive)
18
+ * @throws {RangeError} Accuracy must be a positive number
19
+ */
20
+ export function timeStudy(input) {
21
+ const { observations, confidence, accuracy } = input;
22
+ if (!Array.isArray(observations) || observations.length < 2) {
23
+ throw new RangeError('Observations must have at least 2 elements');
24
+ }
25
+ for (let i = 0; i < observations.length; i++) {
26
+ if (!Number.isFinite(observations[i]) || observations[i] <= 0) {
27
+ throw new RangeError('All observation values must be positive');
28
+ }
29
+ }
30
+ if (!Number.isFinite(confidence) || confidence <= 0 || confidence >= 1) {
31
+ throw new RangeError('Confidence must be between 0 and 1 (exclusive)');
32
+ }
33
+ if (!Number.isFinite(accuracy) || accuracy <= 0) {
34
+ throw new RangeError('Accuracy must be a positive number');
35
+ }
36
+ const n = observations.length;
37
+ const mean = observations.reduce((s, v) => s + v, 0) / n;
38
+ const variance = observations.reduce((s, v) => s + (v - mean) ** 2, 0) / (n - 1);
39
+ const stdDev = Math.sqrt(variance);
40
+ // z-score for two-tailed confidence
41
+ const z = normalInvCDF(1 - (1 - confidence) / 2);
42
+ const e = accuracy / 100;
43
+ const required = Math.ceil((z * stdDev / (e * mean)) ** 2);
44
+ return {
45
+ mean: roundTo(mean, 4),
46
+ stdDev: roundTo(stdDev, 4),
47
+ count: n,
48
+ requiredObservations: required,
49
+ isSufficient: n >= required,
50
+ };
51
+ }
52
+ //# sourceMappingURL=timeStudy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeStudy.js","sourceRoot":"","sources":["../../src/ie/timeStudy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAErD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,UAAU,CAAC,4CAA4C,CAAC,CAAC;IACrE,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,UAAU,CAAC,yCAAyC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,UAAU,CAAC,gDAAgD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;IAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEnC,oCAAoC;IACpC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC;IAEzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3D,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1B,KAAK,EAAE,CAAC;QACR,oBAAoB,EAAE,QAAQ;QAC9B,YAAY,EAAE,CAAC,IAAI,QAAQ;KAC5B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Standard Time Types
3
+ */
4
+ export interface StandardTimeInput {
5
+ observedTime: number;
6
+ ratingFactor: number;
7
+ allowancePercent: number;
8
+ }
9
+ export interface StandardTimeResult {
10
+ normalTime: number;
11
+ standardTime: number;
12
+ allowanceTime: number;
13
+ }
14
+ /**
15
+ * Time Study Types
16
+ */
17
+ export interface TimeStudyInput {
18
+ observations: number[];
19
+ confidence: number;
20
+ accuracy: number;
21
+ }
22
+ export interface TimeStudyResult {
23
+ mean: number;
24
+ stdDev: number;
25
+ count: number;
26
+ requiredObservations: number;
27
+ isSufficient: boolean;
28
+ }
29
+ /**
30
+ * Work Sampling Types
31
+ */
32
+ export interface WorkSamplingInput {
33
+ totalObservations: number;
34
+ activityObservations: number;
35
+ confidence: number;
36
+ accuracy: number;
37
+ }
38
+ export interface WorkSamplingResult {
39
+ proportion: number;
40
+ requiredObservations: number;
41
+ isSufficient: boolean;
42
+ marginOfError: number;
43
+ }
44
+ /**
45
+ * VA/NVA Analysis Types
46
+ */
47
+ export type ActivityCategory = 'VA' | 'NVA' | 'NNVA';
48
+ export interface Activity {
49
+ name: string;
50
+ duration: number;
51
+ category: ActivityCategory;
52
+ }
53
+ export interface VaAnalysisInput {
54
+ activities: Activity[];
55
+ }
56
+ export interface CategorySummary {
57
+ count: number;
58
+ totalDuration: number;
59
+ ratio: number;
60
+ }
61
+ export interface VaAnalysisResult {
62
+ totalDuration: number;
63
+ va: CategorySummary;
64
+ nva: CategorySummary;
65
+ nnva: CategorySummary;
66
+ vaRatio: number;
67
+ }
68
+ /**
69
+ * Learning Curve Types
70
+ */
71
+ export type LearningCurveModel = 'unit' | 'cumulative';
72
+ export interface LearningCurveInput {
73
+ firstUnitTime: number;
74
+ learningRate: number;
75
+ unitNumber: number;
76
+ model?: LearningCurveModel;
77
+ }
78
+ export interface LearningCurveResult {
79
+ unitTime: number;
80
+ cumulativeAverageTime: number;
81
+ cumulativeTotalTime: number;
82
+ learningExponent: number;
83
+ }
84
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ie/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,GAAG,EAAE,eAAe,CAAC;IACrB,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,YAAY,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ie/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import type { VaAnalysisInput, VaAnalysisResult } from './types.js';
2
+ /**
3
+ * Value-Added / Non-Value-Added Analysis
4
+ *
5
+ * Categorizes process activities as VA (Value Added), NVA (Non-Value Added),
6
+ * or NNVA (Necessary Non-Value Added) and computes time ratios.
7
+ *
8
+ * @reference Womack, J.P. & Jones, D.T. (1996). "Lean Thinking".
9
+ * @reference Ohno, T. (1988). "Toyota Production System".
10
+ *
11
+ * @throws {RangeError} Activities array must have at least 1 element
12
+ * @throws {RangeError} All activity durations must be non-negative
13
+ */
14
+ export declare function vaAnalysis(input: VaAnalysisInput): VaAnalysisResult;
15
+ //# sourceMappingURL=vaAnalysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaAnalysis.d.ts","sourceRoot":"","sources":["../../src/ie/vaAnalysis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAmB,MAAM,YAAY,CAAC;AAErF;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CAoCnE"}
@@ -0,0 +1,45 @@
1
+ import { roundTo } from '../utils.js';
2
+ /**
3
+ * Value-Added / Non-Value-Added Analysis
4
+ *
5
+ * Categorizes process activities as VA (Value Added), NVA (Non-Value Added),
6
+ * or NNVA (Necessary Non-Value Added) and computes time ratios.
7
+ *
8
+ * @reference Womack, J.P. & Jones, D.T. (1996). "Lean Thinking".
9
+ * @reference Ohno, T. (1988). "Toyota Production System".
10
+ *
11
+ * @throws {RangeError} Activities array must have at least 1 element
12
+ * @throws {RangeError} All activity durations must be non-negative
13
+ */
14
+ export function vaAnalysis(input) {
15
+ const { activities } = input;
16
+ if (!Array.isArray(activities) || activities.length < 1) {
17
+ throw new RangeError('Activities array must have at least 1 element');
18
+ }
19
+ for (let i = 0; i < activities.length; i++) {
20
+ if (!Number.isFinite(activities[i].duration) || activities[i].duration < 0) {
21
+ throw new RangeError('All activity durations must be non-negative');
22
+ }
23
+ }
24
+ const totalDuration = activities.reduce((s, a) => s + a.duration, 0);
25
+ const buildSummary = (category) => {
26
+ const filtered = activities.filter(a => a.category === category);
27
+ const catTotal = filtered.reduce((s, a) => s + a.duration, 0);
28
+ return {
29
+ count: filtered.length,
30
+ totalDuration: roundTo(catTotal, 4),
31
+ ratio: totalDuration > 0 ? roundTo(catTotal / totalDuration, 4) : 0,
32
+ };
33
+ };
34
+ const va = buildSummary('VA');
35
+ const nva = buildSummary('NVA');
36
+ const nnva = buildSummary('NNVA');
37
+ return {
38
+ totalDuration: roundTo(totalDuration, 4),
39
+ va,
40
+ nva,
41
+ nnva,
42
+ vaRatio: va.ratio,
43
+ };
44
+ }
45
+ //# sourceMappingURL=vaAnalysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaAnalysis.js","sourceRoot":"","sources":["../../src/ie/vaAnalysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,UAAU,CAAC,+CAA+C,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,UAAU,CAAC,6CAA6C,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAErE,MAAM,YAAY,GAAG,CAAC,QAA+B,EAAmB,EAAE;QACxE,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9D,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,aAAa,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnC,KAAK,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACpE,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAElC,OAAO;QACL,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACxC,EAAE;QACF,GAAG;QACH,IAAI;QACJ,OAAO,EAAE,EAAE,CAAC,KAAK;KAClB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { WorkSamplingInput, WorkSamplingResult } from './types.js';
2
+ /**
3
+ * Work Sampling Analysis
4
+ *
5
+ * @formula
6
+ * proportion = activityObservations / totalObservations
7
+ * requiredObservations = z² × p × (1 - p) / e²
8
+ * marginOfError = z × √(p × (1 - p) / totalObservations)
9
+ *
10
+ * @reference Barnes, R.M. (1980). "Motion and Time Study".
11
+ * @reference ILO. "Introduction to Work Study".
12
+ *
13
+ * @throws {RangeError} Total observations must be a positive integer
14
+ * @throws {RangeError} Activity observations must be between 0 and total observations
15
+ * @throws {RangeError} Confidence must be between 0 and 1 (exclusive)
16
+ * @throws {RangeError} Accuracy must be a positive number
17
+ */
18
+ export declare function workSampling(input: WorkSamplingInput): WorkSamplingResult;
19
+ //# sourceMappingURL=workSampling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workSampling.d.ts","sourceRoot":"","sources":["../../src/ie/workSampling.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CA6BzE"}
@@ -0,0 +1,45 @@
1
+ import { roundTo } from '../utils.js';
2
+ import { normalInvCDF } from '../math.js';
3
+ /**
4
+ * Work Sampling Analysis
5
+ *
6
+ * @formula
7
+ * proportion = activityObservations / totalObservations
8
+ * requiredObservations = z² × p × (1 - p) / e²
9
+ * marginOfError = z × √(p × (1 - p) / totalObservations)
10
+ *
11
+ * @reference Barnes, R.M. (1980). "Motion and Time Study".
12
+ * @reference ILO. "Introduction to Work Study".
13
+ *
14
+ * @throws {RangeError} Total observations must be a positive integer
15
+ * @throws {RangeError} Activity observations must be between 0 and total observations
16
+ * @throws {RangeError} Confidence must be between 0 and 1 (exclusive)
17
+ * @throws {RangeError} Accuracy must be a positive number
18
+ */
19
+ export function workSampling(input) {
20
+ const { totalObservations, activityObservations, confidence, accuracy } = input;
21
+ if (!Number.isFinite(totalObservations) || totalObservations <= 0) {
22
+ throw new RangeError('Total observations must be a positive integer');
23
+ }
24
+ if (!Number.isFinite(activityObservations) || activityObservations < 0 || activityObservations > totalObservations) {
25
+ throw new RangeError('Activity observations must be between 0 and total observations');
26
+ }
27
+ if (!Number.isFinite(confidence) || confidence <= 0 || confidence >= 1) {
28
+ throw new RangeError('Confidence must be between 0 and 1 (exclusive)');
29
+ }
30
+ if (!Number.isFinite(accuracy) || accuracy <= 0) {
31
+ throw new RangeError('Accuracy must be a positive number');
32
+ }
33
+ const p = activityObservations / totalObservations;
34
+ const z = normalInvCDF(1 - (1 - confidence) / 2);
35
+ const e = accuracy / 100;
36
+ const required = Math.ceil((z * z * p * (1 - p)) / (e * e));
37
+ const marginOfError = z * Math.sqrt((p * (1 - p)) / totalObservations);
38
+ return {
39
+ proportion: roundTo(p, 4),
40
+ requiredObservations: required,
41
+ isSufficient: totalObservations >= required,
42
+ marginOfError: roundTo(marginOfError, 4),
43
+ };
44
+ }
45
+ //# sourceMappingURL=workSampling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workSampling.js","sourceRoot":"","sources":["../../src/ie/workSampling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEhF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,UAAU,CAAC,+CAA+C,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,oBAAoB,GAAG,CAAC,IAAI,oBAAoB,GAAG,iBAAiB,EAAE,CAAC;QACnH,MAAM,IAAI,UAAU,CAAC,gEAAgE,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,UAAU,CAAC,gDAAgD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;IACnD,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC;IAEzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC;IAEvE,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QACzB,oBAAoB,EAAE,QAAQ;QAC9B,YAAY,EAAE,iBAAiB,IAAI,QAAQ;QAC3C,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;KACzC,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -12,4 +12,5 @@ export * from './utility/index.js';
12
12
  export * from './battery/index.js';
13
13
  export * from './environmental/index.js';
14
14
  export * from './machining/index.js';
15
+ export * from './ie/index.js';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -14,4 +14,5 @@ export * from './utility/index.js';
14
14
  export * from './battery/index.js';
15
15
  export * from './environmental/index.js';
16
16
  export * from './machining/index.js';
17
+ export * from './ie/index.js';
17
18
  //# 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,sEAAsE;AACtE,+BAA+B;AAE/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,+BAA+B;AAE/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ActionPriorityInput, ActionPriorityResult } from './types.js';
2
+ /**
3
+ * AIAG-VDA 2019 Action Priority (AP) Matrix
4
+ *
5
+ * Replaces the traditional RPN-based prioritization with a structured
6
+ * S × O × D matrix lookup that better reflects risk relationships.
7
+ *
8
+ * @formula AP = lookup(severityGroup, occurrenceGroup, detectionGroup)
9
+ * - RPN = S × O × D (still computed for reference)
10
+ *
11
+ * @reference AIAG & VDA (2019). "FMEA Handbook", 1st Edition.
12
+ *
13
+ * @throws {RangeError} Severity must be between 1 and 10
14
+ * @throws {RangeError} Occurrence must be between 1 and 10
15
+ * @throws {RangeError} Detection must be between 1 and 10
16
+ */
17
+ export declare function actionPriority(input: ActionPriorityInput): ActionPriorityResult;
18
+ //# sourceMappingURL=actionPriority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionPriority.d.ts","sourceRoot":"","sources":["../../src/quality/actionPriority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAuB,MAAM,YAAY,CAAC;AAEjG;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CA+B/E"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * AIAG-VDA 2019 Action Priority (AP) Matrix
3
+ *
4
+ * Replaces the traditional RPN-based prioritization with a structured
5
+ * S × O × D matrix lookup that better reflects risk relationships.
6
+ *
7
+ * @formula AP = lookup(severityGroup, occurrenceGroup, detectionGroup)
8
+ * - RPN = S × O × D (still computed for reference)
9
+ *
10
+ * @reference AIAG & VDA (2019). "FMEA Handbook", 1st Edition.
11
+ *
12
+ * @throws {RangeError} Severity must be between 1 and 10
13
+ * @throws {RangeError} Occurrence must be between 1 and 10
14
+ * @throws {RangeError} Detection must be between 1 and 10
15
+ */
16
+ export function actionPriority(input) {
17
+ const { severity, occurrence, detection } = input;
18
+ if (!Number.isFinite(severity) || severity < 1 || severity > 10) {
19
+ throw new RangeError('Severity must be between 1 and 10');
20
+ }
21
+ if (!Number.isFinite(occurrence) || occurrence < 1 || occurrence > 10) {
22
+ throw new RangeError('Occurrence must be between 1 and 10');
23
+ }
24
+ if (!Number.isFinite(detection) || detection < 1 || detection > 10) {
25
+ throw new RangeError('Detection must be between 1 and 10');
26
+ }
27
+ const s = Math.round(severity);
28
+ const o = Math.round(occurrence);
29
+ const d = Math.round(detection);
30
+ const sGroup = getGroup(s, S_GROUPS);
31
+ const oGroup = getGroup(o, O_GROUPS);
32
+ const dGroup = getGroup(d, D_GROUPS);
33
+ const ap = AP_TABLE[sGroup][oGroup][dGroup];
34
+ const rpn = s * o * d;
35
+ return {
36
+ actionPriority: ap,
37
+ rpn,
38
+ severityGroup: sGroup,
39
+ occurrenceGroup: oGroup,
40
+ detectionGroup: dGroup,
41
+ };
42
+ }
43
+ // Group mapping: value → group index (0-4)
44
+ const S_GROUPS = [[1, 0], [3, 1], [6, 2], [8, 3], [10, 4]];
45
+ const O_GROUPS = [[1, 0], [3, 1], [6, 2], [8, 3], [10, 4]];
46
+ const D_GROUPS = [[1, 0], [4, 1], [6, 2], [8, 3], [10, 4]];
47
+ function getGroup(value, groups) {
48
+ for (const [max, group] of groups) {
49
+ if (value <= max)
50
+ return group;
51
+ }
52
+ return groups[groups.length - 1][1];
53
+ }
54
+ const H = 'H';
55
+ const M = 'M';
56
+ const L = 'L';
57
+ /**
58
+ * AP lookup table: AP_TABLE[sGroup][oGroup][dGroup]
59
+ * S groups: {1}=0, {2-3}=1, {4-6}=2, {7-8}=3, {9-10}=4
60
+ * O groups: {1}=0, {2-3}=1, {4-6}=2, {7-8}=3, {9-10}=4
61
+ * D groups: {1}=0, {2-4}=1, {5-6}=2, {7-8}=3, {9-10}=4
62
+ *
63
+ * Table columns are D in order: {9-10}, {7-8}, {5-6}, {2-4}, {1}
64
+ * So dGroup 4→col0, 3→col1, 2→col2, 1→col3, 0→col4
65
+ */
66
+ const AP_TABLE = buildApTable();
67
+ function buildApTable() {
68
+ // Raw table: [sGroup][oGroup] → [D={9-10}, D={7-8}, D={5-6}, D={2-4}, D={1}]
69
+ const raw = [
70
+ // S=1 (sGroup=0)
71
+ [
72
+ /* O=1 */ [L, L, L, L, L],
73
+ /* O=2-3 */ [L, L, L, L, L],
74
+ /* O=4-6 */ [M, L, L, L, L],
75
+ /* O=7-8 */ [M, M, L, L, L],
76
+ /* O=9-10 */ [H, M, M, L, L],
77
+ ],
78
+ // S=2-3 (sGroup=1)
79
+ [
80
+ /* O=1 */ [L, L, L, L, L],
81
+ /* O=2-3 */ [M, L, L, L, L],
82
+ /* O=4-6 */ [M, M, L, L, L],
83
+ /* O=7-8 */ [H, M, M, L, L],
84
+ /* O=9-10 */ [H, H, M, M, L],
85
+ ],
86
+ // S=4-6 (sGroup=2)
87
+ [
88
+ /* O=1 */ [M, L, L, L, L],
89
+ /* O=2-3 */ [M, M, L, L, L],
90
+ /* O=4-6 */ [H, M, M, L, L],
91
+ /* O=7-8 */ [H, H, M, M, L],
92
+ /* O=9-10 */ [H, H, H, M, M],
93
+ ],
94
+ // S=7-8 (sGroup=3)
95
+ [
96
+ /* O=1 */ [M, M, L, L, L],
97
+ /* O=2-3 */ [H, M, M, L, L],
98
+ /* O=4-6 */ [H, H, M, M, L],
99
+ /* O=7-8 */ [H, H, H, M, M],
100
+ /* O=9-10 */ [H, H, H, H, H],
101
+ ],
102
+ // S=9-10 (sGroup=4)
103
+ [
104
+ /* O=1 */ [H, M, M, L, L],
105
+ /* O=2-3 */ [H, H, M, M, L],
106
+ /* O=4-6 */ [H, H, H, M, M],
107
+ /* O=7-8 */ [H, H, H, H, H],
108
+ /* O=9-10 */ [H, H, H, H, H],
109
+ ],
110
+ ];
111
+ // Convert raw table: columns are D={9-10}(4), D={7-8}(3), D={5-6}(2), D={2-4}(1), D={1}(0)
112
+ // We need AP_TABLE[s][o][dGroup] where dGroup 0={1}, 1={2-4}, 2={5-6}, 3={7-8}, 4={9-10}
113
+ const table = [];
114
+ for (let s = 0; s < 5; s++) {
115
+ table[s] = [];
116
+ for (let o = 0; o < 5; o++) {
117
+ table[s][o] = [
118
+ raw[s][o][4], // dGroup 0 ({1}) ← col 4
119
+ raw[s][o][3], // dGroup 1 ({2-4}) ← col 3
120
+ raw[s][o][2], // dGroup 2 ({5-6}) ← col 2
121
+ raw[s][o][1], // dGroup 3 ({7-8}) ← col 1
122
+ raw[s][o][0], // dGroup 4 ({9-10}) ← col 0
123
+ ];
124
+ }
125
+ }
126
+ return table;
127
+ }
128
+ //# sourceMappingURL=actionPriority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionPriority.js","sourceRoot":"","sources":["../../src/quality/actionPriority.ts"],"names":[],"mappings":"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,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC7B;QACD,mBAAmB;QACnB;YACE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC7B;QACD,mBAAmB;QACnB;YACE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC7B;QACD,mBAAmB;QACnB;YACE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC7B;QACD,oBAAoB;QACpB;YACE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC7B;KACF,CAAC;IAEF,2FAA2F;IAC3F,yFAAyF;IACzF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;gBACZ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,4BAA4B;gBAC1C,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,6BAA6B;gBAC3C,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,6BAA6B;gBAC3C,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,6BAA6B;gBAC3C,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,6BAA6B;aAC5C,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { CpkToOccurrenceInput, CpkToOccurrenceResult } from './types.js';
2
+ /**
3
+ * Map Cpk (Process Capability Index) to FMEA Occurrence rating
4
+ *
5
+ * Based on AIAG-VDA FMEA Handbook correlation between process capability
6
+ * and occurrence likelihood.
7
+ *
8
+ * @reference AIAG & VDA (2019). "FMEA Handbook", 1st Edition, Table O-1.
9
+ *
10
+ * @throws {RangeError} Cpk must be a non-negative number
11
+ */
12
+ export declare function cpkToOccurrence(input: CpkToOccurrenceInput): CpkToOccurrenceResult;
13
+ //# sourceMappingURL=cpkToOccurrence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpkToOccurrence.d.ts","sourceRoot":"","sources":["../../src/quality/cpkToOccurrence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,CAclF"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Map Cpk (Process Capability Index) to FMEA Occurrence rating
3
+ *
4
+ * Based on AIAG-VDA FMEA Handbook correlation between process capability
5
+ * and occurrence likelihood.
6
+ *
7
+ * @reference AIAG & VDA (2019). "FMEA Handbook", 1st Edition, Table O-1.
8
+ *
9
+ * @throws {RangeError} Cpk must be a non-negative number
10
+ */
11
+ export function cpkToOccurrence(input) {
12
+ const { cpk } = input;
13
+ if (!Number.isFinite(cpk) || cpk < 0) {
14
+ throw new RangeError('Cpk must be a non-negative number');
15
+ }
16
+ const entry = CPK_TABLE.find(row => cpk >= row.threshold);
17
+ return {
18
+ occurrence: entry.occurrence,
19
+ description: entry.description,
20
+ cpkRange: entry.cpkRange,
21
+ };
22
+ }
23
+ const CPK_TABLE = [
24
+ { threshold: 2.00, occurrence: 1, description: 'Remote: Failure unlikely', cpkRange: '>= 2.00' },
25
+ { threshold: 1.67, occurrence: 2, description: 'Very low: Few failures', cpkRange: '1.67 - 1.99' },
26
+ { threshold: 1.33, occurrence: 3, description: 'Low: Relatively few failures', cpkRange: '1.33 - 1.66' },
27
+ { threshold: 1.00, occurrence: 4, description: 'Moderately low: Occasional failures', cpkRange: '1.00 - 1.32' },
28
+ { threshold: 0.83, occurrence: 5, description: 'Moderate: Medium number of failures', cpkRange: '0.83 - 0.99' },
29
+ { threshold: 0.67, occurrence: 6, description: 'Moderately high: Frequent failures', cpkRange: '0.67 - 0.82' },
30
+ { threshold: 0.51, occurrence: 7, description: 'High: Many failures', cpkRange: '0.51 - 0.66' },
31
+ { threshold: 0.33, occurrence: 8, description: 'Very high: Repeated failures', cpkRange: '0.33 - 0.50' },
32
+ { threshold: 0.17, occurrence: 9, description: 'Extremely high: Persistent failures', cpkRange: '0.17 - 0.32' },
33
+ { threshold: -Infinity, occurrence: 10, description: 'Almost certain: Failure is inevitable', cpkRange: '< 0.17' },
34
+ ];
35
+ //# sourceMappingURL=cpkToOccurrence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpkToOccurrence.js","sourceRoot":"","sources":["../../src/quality/cpkToOccurrence.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAEtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,UAAU,CAAC,mCAAmC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAE,CAAC;IAE3D,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAuF;IACpG,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAG,WAAW,EAAE,0BAA0B,EAAqB,QAAQ,EAAE,SAAS,EAAE;IACpH,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAG,WAAW,EAAE,wBAAwB,EAAuB,QAAQ,EAAE,aAAa,EAAE;IACxH,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAG,WAAW,EAAE,8BAA8B,EAAiB,QAAQ,EAAE,aAAa,EAAE;IACxH,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAG,WAAW,EAAE,qCAAqC,EAAU,QAAQ,EAAE,aAAa,EAAE;IACxH,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAG,WAAW,EAAE,qCAAqC,EAAU,QAAQ,EAAE,aAAa,EAAE;IACxH,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAG,WAAW,EAAE,oCAAoC,EAAW,QAAQ,EAAE,aAAa,EAAE;IACxH,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAG,WAAW,EAAE,qBAAqB,EAA0B,QAAQ,EAAE,aAAa,EAAE;IACxH,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAG,WAAW,EAAE,8BAA8B,EAAiB,QAAQ,EAAE,aAAa,EAAE;IACxH,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAG,WAAW,EAAE,qCAAqC,EAAU,QAAQ,EAAE,aAAa,EAAE;IACxH,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,uCAAuC,EAAI,QAAQ,EAAE,QAAQ,EAAE;CACrH,CAAC"}
@@ -16,5 +16,8 @@ export { gageRR } from './gageRR.js';
16
16
  export { cmk } from './cmk.js';
17
17
  export { weibull } from './weibull.js';
18
18
  export { paretoAnalysis } from './paretoAnalysis.js';
19
- export type { OeeRawData, OeeInput, OeeResult, CpkInput, CpkResult, CycleTimeInput, CycleTimeResult, TimeUnit, TaktTimeInput, TaktTimeResult, InspectionLevel, AqlInput, AqlResult, DowntimeInput, DowntimeResult, DpmoInput, DpmoResult, BalancingTask, LineBalancingInput, WorkStation, PositionalWeight, LineBalancingResult, MtbfInput, MtbfResult, PpkInput, PpkResult, ConvertFrom, PpmInput, PpmResult, RpnInput, RiskLevel, RpnResult, YieldInput, YieldResult, ControlChartType, ControlChartInput, ControlLimit, SubgroupStat, ControlChartResult, GageRRInput, GageRRResult, CmkInput, CmkResult, WeibullInput, WeibullResult, ParetoItem, ParetoInput, ParetoClassification, ParetoResult, } from './types.js';
19
+ export { actionPriority } from './actionPriority.js';
20
+ export { cpkToOccurrence } from './cpkToOccurrence.js';
21
+ export { nelsonRules } from './nelsonRules.js';
22
+ export type { OeeRawData, OeeInput, OeeResult, CpkInput, CpkResult, CycleTimeInput, CycleTimeResult, TimeUnit, TaktTimeInput, TaktTimeResult, InspectionLevel, AqlInput, AqlResult, DowntimeInput, DowntimeResult, DpmoInput, DpmoResult, BalancingTask, LineBalancingInput, WorkStation, PositionalWeight, LineBalancingResult, MtbfInput, MtbfResult, PpkInput, PpkResult, ConvertFrom, PpmInput, PpmResult, RpnInput, RiskLevel, RpnResult, YieldInput, YieldResult, ControlChartType, ControlChartInput, ControlLimit, SubgroupStat, ControlChartResult, GageRRInput, GageRRResult, CmkInput, CmkResult, WeibullInput, WeibullResult, ParetoItem, ParetoInput, ParetoClassification, ParetoResult, ActionPriorityLevel, ActionPriorityInput, ActionPriorityResult, CpkToOccurrenceInput, CpkToOccurrenceResult, NelsonRulesInput, NelsonViolation, NelsonRulesResult, } from './types.js';
20
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/quality/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,YAAY,EAEV,UAAU,EACV,QAAQ,EACR,SAAS,EAET,QAAQ,EACR,SAAS,EAET,cAAc,EACd,eAAe,EAEf,QAAQ,EACR,aAAa,EACb,cAAc,EAEd,eAAe,EACf,QAAQ,EACR,SAAS,EAET,aAAa,EACb,cAAc,EAEd,SAAS,EACT,UAAU,EAEV,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EAEnB,SAAS,EACT,UAAU,EAEV,QAAQ,EACR,SAAS,EAET,WAAW,EACX,QAAQ,EACR,SAAS,EAET,QAAQ,EACR,SAAS,EACT,SAAS,EAET,UAAU,EACV,WAAW,EAEX,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAElB,WAAW,EACX,YAAY,EAEZ,QAAQ,EACR,SAAS,EAET,YAAY,EACZ,aAAa,EAEb,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,YAAY,GACb,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/quality/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,YAAY,EAEV,UAAU,EACV,QAAQ,EACR,SAAS,EAET,QAAQ,EACR,SAAS,EAET,cAAc,EACd,eAAe,EAEf,QAAQ,EACR,aAAa,EACb,cAAc,EAEd,eAAe,EACf,QAAQ,EACR,SAAS,EAET,aAAa,EACb,cAAc,EAEd,SAAS,EACT,UAAU,EAEV,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EAEnB,SAAS,EACT,UAAU,EAEV,QAAQ,EACR,SAAS,EAET,WAAW,EACX,QAAQ,EACR,SAAS,EAET,QAAQ,EACR,SAAS,EACT,SAAS,EAET,UAAU,EACV,WAAW,EAEX,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAElB,WAAW,EACX,YAAY,EAEZ,QAAQ,EACR,SAAS,EAET,YAAY,EACZ,aAAa,EAEb,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,YAAY,EAEZ,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EAEpB,oBAAoB,EACpB,qBAAqB,EAErB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -17,4 +17,7 @@ export { gageRR } from './gageRR.js';
17
17
  export { cmk } from './cmk.js';
18
18
  export { weibull } from './weibull.js';
19
19
  export { paretoAnalysis } from './paretoAnalysis.js';
20
+ export { actionPriority } from './actionPriority.js';
21
+ export { cpkToOccurrence } from './cpkToOccurrence.js';
22
+ export { nelsonRules } from './nelsonRules.js';
20
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/quality/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/quality/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { NelsonRulesInput, NelsonRulesResult } from './types.js';
2
+ /**
3
+ * Nelson Rules for SPC Control Chart Analysis
4
+ *
5
+ * Eight rules to detect non-random patterns in control chart data,
6
+ * indicating special cause variation.
7
+ *
8
+ * @reference Nelson, L.S. (1984). "The Shewhart Control Chart — Tests for Special Causes".
9
+ * Journal of Quality Technology, 16(4), 237-239.
10
+ * @reference Western Electric (1956). "Statistical Quality Control Handbook".
11
+ *
12
+ * @throws {RangeError} Values array must have at least 1 element
13
+ * @throws {RangeError} Sigma must be a positive number
14
+ */
15
+ export declare function nelsonRules(input: NelsonRulesInput): NelsonRulesResult;
16
+ //# sourceMappingURL=nelsonRules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nelsonRules.d.ts","sourceRoot":"","sources":["../../src/quality/nelsonRules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAmB,MAAM,YAAY,CAAC;AAEvF;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAqCtE"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * Nelson Rules for SPC Control Chart Analysis
3
+ *
4
+ * Eight rules to detect non-random patterns in control chart data,
5
+ * indicating special cause variation.
6
+ *
7
+ * @reference Nelson, L.S. (1984). "The Shewhart Control Chart — Tests for Special Causes".
8
+ * Journal of Quality Technology, 16(4), 237-239.
9
+ * @reference Western Electric (1956). "Statistical Quality Control Handbook".
10
+ *
11
+ * @throws {RangeError} Values array must have at least 1 element
12
+ * @throws {RangeError} Sigma must be a positive number
13
+ */
14
+ export function nelsonRules(input) {
15
+ const { values, centerLine, sigma, rules = [1, 2, 3, 4, 5, 6, 7, 8] } = input;
16
+ if (!Array.isArray(values) || values.length < 1) {
17
+ throw new RangeError('Values array must have at least 1 element');
18
+ }
19
+ if (!Number.isFinite(sigma) || sigma <= 0) {
20
+ throw new RangeError('Sigma must be a positive number');
21
+ }
22
+ if (!Number.isFinite(centerLine)) {
23
+ throw new RangeError('Center line must be a finite number');
24
+ }
25
+ const violations = [];
26
+ const ruleCheckers = {
27
+ 1: () => checkRule1(values, centerLine, sigma),
28
+ 2: () => checkRule2(values, centerLine),
29
+ 3: () => checkRule3(values),
30
+ 4: () => checkRule4(values),
31
+ 5: () => checkRule5(values, centerLine, sigma),
32
+ 6: () => checkRule6(values, centerLine, sigma),
33
+ 7: () => checkRule7(values, centerLine, sigma),
34
+ 8: () => checkRule8(values, centerLine, sigma),
35
+ };
36
+ for (const rule of rules) {
37
+ if (rule >= 1 && rule <= 8) {
38
+ const result = ruleCheckers[rule]();
39
+ if (result)
40
+ violations.push(result);
41
+ }
42
+ }
43
+ return {
44
+ violations,
45
+ hasViolation: violations.length > 0,
46
+ };
47
+ }
48
+ const RULE_DESCRIPTIONS = {
49
+ 1: 'One point beyond 3σ from center line',
50
+ 2: 'Nine consecutive points on same side of center line',
51
+ 3: 'Six consecutive points steadily increasing or decreasing',
52
+ 4: 'Fourteen consecutive points alternating up and down',
53
+ 5: 'Two of three consecutive points beyond 2σ (same side)',
54
+ 6: 'Four of five consecutive points beyond 1σ (same side)',
55
+ 7: 'Fifteen consecutive points within ±1σ (stratification)',
56
+ 8: 'Eight consecutive points beyond ±1σ on both sides (mixture)',
57
+ };
58
+ // Rule 1: One point > 3σ from CL
59
+ function checkRule1(values, cl, sigma) {
60
+ const indices = [];
61
+ for (let i = 0; i < values.length; i++) {
62
+ if (Math.abs(values[i] - cl) > 3 * sigma) {
63
+ indices.push(i);
64
+ }
65
+ }
66
+ return indices.length > 0 ? { rule: 1, description: RULE_DESCRIPTIONS[1], indices } : null;
67
+ }
68
+ // Rule 2: Nine consecutive points on same side of CL
69
+ function checkRule2(values, cl) {
70
+ const indices = [];
71
+ const n = values.length;
72
+ if (n < 9)
73
+ return null;
74
+ for (let i = 0; i <= n - 9; i++) {
75
+ const above = values.slice(i, i + 9).every(v => v > cl);
76
+ const below = values.slice(i, i + 9).every(v => v < cl);
77
+ if (above || below) {
78
+ for (let j = i; j < i + 9; j++) {
79
+ if (!indices.includes(j))
80
+ indices.push(j);
81
+ }
82
+ }
83
+ }
84
+ return indices.length > 0 ? { rule: 2, description: RULE_DESCRIPTIONS[2], indices } : null;
85
+ }
86
+ // Rule 3: Six consecutive points steadily increasing or decreasing
87
+ function checkRule3(values) {
88
+ const indices = [];
89
+ const n = values.length;
90
+ if (n < 6)
91
+ return null;
92
+ for (let i = 0; i <= n - 6; i++) {
93
+ let increasing = true;
94
+ let decreasing = true;
95
+ for (let j = i; j < i + 5; j++) {
96
+ if (values[j + 1] <= values[j])
97
+ increasing = false;
98
+ if (values[j + 1] >= values[j])
99
+ decreasing = false;
100
+ }
101
+ if (increasing || decreasing) {
102
+ for (let j = i; j < i + 6; j++) {
103
+ if (!indices.includes(j))
104
+ indices.push(j);
105
+ }
106
+ }
107
+ }
108
+ return indices.length > 0 ? { rule: 3, description: RULE_DESCRIPTIONS[3], indices } : null;
109
+ }
110
+ // Rule 4: Fourteen consecutive points alternating up and down
111
+ function checkRule4(values) {
112
+ const indices = [];
113
+ const n = values.length;
114
+ if (n < 14)
115
+ return null;
116
+ for (let i = 0; i <= n - 14; i++) {
117
+ let alternating = true;
118
+ for (let j = i; j < i + 13; j++) {
119
+ const dir1 = values[j + 1] - values[j];
120
+ const dir2 = j + 2 < values.length ? values[j + 2] - values[j + 1] : 0;
121
+ if (j < i + 12 && dir1 * dir2 >= 0) {
122
+ alternating = false;
123
+ break;
124
+ }
125
+ }
126
+ if (alternating) {
127
+ for (let j = i; j < i + 14; j++) {
128
+ if (!indices.includes(j))
129
+ indices.push(j);
130
+ }
131
+ }
132
+ }
133
+ return indices.length > 0 ? { rule: 4, description: RULE_DESCRIPTIONS[4], indices } : null;
134
+ }
135
+ // Rule 5: Two of three consecutive points > 2σ from CL (same side)
136
+ function checkRule5(values, cl, sigma) {
137
+ const indices = [];
138
+ const n = values.length;
139
+ if (n < 3)
140
+ return null;
141
+ for (let i = 0; i <= n - 3; i++) {
142
+ const window = values.slice(i, i + 3);
143
+ const aboveCount = window.filter(v => v > cl + 2 * sigma).length;
144
+ const belowCount = window.filter(v => v < cl - 2 * sigma).length;
145
+ if (aboveCount >= 2 || belowCount >= 2) {
146
+ for (let j = i; j < i + 3; j++) {
147
+ if (!indices.includes(j))
148
+ indices.push(j);
149
+ }
150
+ }
151
+ }
152
+ return indices.length > 0 ? { rule: 5, description: RULE_DESCRIPTIONS[5], indices } : null;
153
+ }
154
+ // Rule 6: Four of five consecutive points > 1σ from CL (same side)
155
+ function checkRule6(values, cl, sigma) {
156
+ const indices = [];
157
+ const n = values.length;
158
+ if (n < 5)
159
+ return null;
160
+ for (let i = 0; i <= n - 5; i++) {
161
+ const window = values.slice(i, i + 5);
162
+ const aboveCount = window.filter(v => v > cl + sigma).length;
163
+ const belowCount = window.filter(v => v < cl - sigma).length;
164
+ if (aboveCount >= 4 || belowCount >= 4) {
165
+ for (let j = i; j < i + 5; j++) {
166
+ if (!indices.includes(j))
167
+ indices.push(j);
168
+ }
169
+ }
170
+ }
171
+ return indices.length > 0 ? { rule: 6, description: RULE_DESCRIPTIONS[6], indices } : null;
172
+ }
173
+ // Rule 7: Fifteen consecutive points within ±1σ (stratification)
174
+ function checkRule7(values, cl, sigma) {
175
+ const indices = [];
176
+ const n = values.length;
177
+ if (n < 15)
178
+ return null;
179
+ for (let i = 0; i <= n - 15; i++) {
180
+ const allWithin = values.slice(i, i + 15).every(v => Math.abs(v - cl) < sigma);
181
+ if (allWithin) {
182
+ for (let j = i; j < i + 15; j++) {
183
+ if (!indices.includes(j))
184
+ indices.push(j);
185
+ }
186
+ }
187
+ }
188
+ return indices.length > 0 ? { rule: 7, description: RULE_DESCRIPTIONS[7], indices } : null;
189
+ }
190
+ // Rule 8: Eight consecutive points beyond ±1σ on both sides (mixture)
191
+ function checkRule8(values, cl, sigma) {
192
+ const indices = [];
193
+ const n = values.length;
194
+ if (n < 8)
195
+ return null;
196
+ for (let i = 0; i <= n - 8; i++) {
197
+ const window = values.slice(i, i + 8);
198
+ const allBeyond = window.every(v => Math.abs(v - cl) > sigma);
199
+ if (!allBeyond)
200
+ continue;
201
+ // Must have points on both sides
202
+ const hasAbove = window.some(v => v > cl + sigma);
203
+ const hasBelow = window.some(v => v < cl - sigma);
204
+ if (hasAbove && hasBelow) {
205
+ for (let j = i; j < i + 8; j++) {
206
+ if (!indices.includes(j))
207
+ indices.push(j);
208
+ }
209
+ }
210
+ }
211
+ return indices.length > 0 ? { rule: 8, description: RULE_DESCRIPTIONS[8], indices } : null;
212
+ }
213
+ //# sourceMappingURL=nelsonRules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nelsonRules.js","sourceRoot":"","sources":["../../src/quality/nelsonRules.ts"],"names":[],"mappings":"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"}
@@ -339,6 +339,51 @@ export interface WeibullResult {
339
339
  b50Life: number;
340
340
  failureMode: 'infant' | 'random' | 'wearout';
341
341
  }
342
+ /**
343
+ * Action Priority (AP) Types — AIAG-VDA 2019
344
+ */
345
+ export type ActionPriorityLevel = 'H' | 'M' | 'L';
346
+ export interface ActionPriorityInput {
347
+ severity: number;
348
+ occurrence: number;
349
+ detection: number;
350
+ }
351
+ export interface ActionPriorityResult {
352
+ actionPriority: ActionPriorityLevel;
353
+ rpn: number;
354
+ severityGroup: number;
355
+ occurrenceGroup: number;
356
+ detectionGroup: number;
357
+ }
358
+ /**
359
+ * Cpk to Occurrence Mapping Types
360
+ */
361
+ export interface CpkToOccurrenceInput {
362
+ cpk: number;
363
+ }
364
+ export interface CpkToOccurrenceResult {
365
+ occurrence: number;
366
+ description: string;
367
+ cpkRange: string;
368
+ }
369
+ /**
370
+ * Nelson Rules Types
371
+ */
372
+ export interface NelsonRulesInput {
373
+ values: number[];
374
+ centerLine: number;
375
+ sigma: number;
376
+ rules?: number[];
377
+ }
378
+ export interface NelsonViolation {
379
+ rule: number;
380
+ description: string;
381
+ indices: number[];
382
+ }
383
+ export interface NelsonRulesResult {
384
+ violations: NelsonViolation[];
385
+ hasViolation: boolean;
386
+ }
342
387
  /**
343
388
  * Pareto Analysis Types
344
389
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/quality/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE;QACP,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,WAAW,EAAE;QACX,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEjF,MAAM,WAAW,QAAQ;IACvB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,MAAM,WAAW,SAAS;IACxB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,KAAK,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,YAAY,CAAC;IACzB,UAAU,EAAE,YAAY,CAAC;IACzB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,sEAAsE;IACtE,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,YAAY,GAAG,UAAU,GAAG,cAAc,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,OAAO,EAAE;QACP,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7D,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7D,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9D,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/quality/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "formulab",
3
- "version": "0.10.3",
4
- "description": "Manufacturing & Engineering calculation formulas library - 174 industrial calculations across 14 domains for OEE, Cpk, SPC, metal weight, CNC machining, GD&T, battery, environmental, pipe flow, logistics, and more",
3
+ "version": "0.11.0",
4
+ "description": "Manufacturing & Engineering calculation formulas library - 182 industrial calculations across 15 domains for OEE, Cpk, SPC, FMEA, Nelson Rules, metal weight, CNC machining, GD&T, battery, environmental, pipe flow, logistics, IE time study, and more",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -66,6 +66,10 @@
66
66
  "./machining": {
67
67
  "types": "./dist/machining/index.d.ts",
68
68
  "import": "./dist/machining/index.js"
69
+ },
70
+ "./ie": {
71
+ "types": "./dist/ie/index.d.ts",
72
+ "import": "./dist/ie/index.js"
69
73
  }
70
74
  },
71
75
  "files": [
@@ -116,7 +120,15 @@
116
120
  "gdt",
117
121
  "true-position",
118
122
  "gauge-block",
119
- "bolt-circle"
123
+ "bolt-circle",
124
+ "fmea",
125
+ "action-priority",
126
+ "nelson-rules",
127
+ "industrial-engineering",
128
+ "time-study",
129
+ "learning-curve",
130
+ "work-sampling",
131
+ "standard-time"
120
132
  ],
121
133
  "author": "iyulab",
122
134
  "license": "MIT",