react-native-nitro-pose-exercises 1.0.8 → 1.0.9

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 (79) hide show
  1. package/android/build.gradle +9 -10
  2. package/android/src/main/java/com/margelo/nitro/nitroposeexercises/NitroPoseExercises.kt +73 -127
  3. package/lib/module/config/bicep-curl.js +61 -0
  4. package/lib/module/config/bicep-curl.js.map +1 -0
  5. package/lib/module/config/chair-pose.js +64 -0
  6. package/lib/module/config/chair-pose.js.map +1 -0
  7. package/lib/module/config/cobra-pose.js +57 -0
  8. package/lib/module/config/cobra-pose.js.map +1 -0
  9. package/lib/module/config/downward-dog.js +65 -0
  10. package/lib/module/config/downward-dog.js.map +1 -0
  11. package/lib/module/config/lunge.js +62 -0
  12. package/lib/module/config/lunge.js.map +1 -0
  13. package/lib/module/config/plank.js +57 -0
  14. package/lib/module/config/plank.js.map +1 -0
  15. package/lib/module/config/shoulder-press.js +62 -0
  16. package/lib/module/config/shoulder-press.js.map +1 -0
  17. package/lib/module/config/situp.js +48 -0
  18. package/lib/module/config/situp.js.map +1 -0
  19. package/lib/module/config/squat.js +69 -0
  20. package/lib/module/config/squat.js.map +1 -0
  21. package/lib/module/config/tree-pose.js +57 -0
  22. package/lib/module/config/tree-pose.js.map +1 -0
  23. package/lib/module/config/tricep-dip.js +55 -0
  24. package/lib/module/config/tricep-dip.js.map +1 -0
  25. package/lib/module/config/wall-sit.js +57 -0
  26. package/lib/module/config/wall-sit.js.map +1 -0
  27. package/lib/module/config/warrior-i.js +79 -0
  28. package/lib/module/config/warrior-i.js.map +1 -0
  29. package/lib/module/config/warrior-ii.js +86 -0
  30. package/lib/module/config/warrior-ii.js.map +1 -0
  31. package/lib/module/index.js +19 -0
  32. package/lib/module/index.js.map +1 -1
  33. package/lib/typescript/src/config/bicep-curl.d.ts +3 -0
  34. package/lib/typescript/src/config/bicep-curl.d.ts.map +1 -0
  35. package/lib/typescript/src/config/chair-pose.d.ts +3 -0
  36. package/lib/typescript/src/config/chair-pose.d.ts.map +1 -0
  37. package/lib/typescript/src/config/cobra-pose.d.ts +3 -0
  38. package/lib/typescript/src/config/cobra-pose.d.ts.map +1 -0
  39. package/lib/typescript/src/config/downward-dog.d.ts +3 -0
  40. package/lib/typescript/src/config/downward-dog.d.ts.map +1 -0
  41. package/lib/typescript/src/config/lunge.d.ts +3 -0
  42. package/lib/typescript/src/config/lunge.d.ts.map +1 -0
  43. package/lib/typescript/src/config/plank.d.ts +3 -0
  44. package/lib/typescript/src/config/plank.d.ts.map +1 -0
  45. package/lib/typescript/src/config/shoulder-press.d.ts +3 -0
  46. package/lib/typescript/src/config/shoulder-press.d.ts.map +1 -0
  47. package/lib/typescript/src/config/situp.d.ts +3 -0
  48. package/lib/typescript/src/config/situp.d.ts.map +1 -0
  49. package/lib/typescript/src/config/squat.d.ts +3 -0
  50. package/lib/typescript/src/config/squat.d.ts.map +1 -0
  51. package/lib/typescript/src/config/tree-pose.d.ts +3 -0
  52. package/lib/typescript/src/config/tree-pose.d.ts.map +1 -0
  53. package/lib/typescript/src/config/tricep-dip.d.ts +3 -0
  54. package/lib/typescript/src/config/tricep-dip.d.ts.map +1 -0
  55. package/lib/typescript/src/config/wall-sit.d.ts +3 -0
  56. package/lib/typescript/src/config/wall-sit.d.ts.map +1 -0
  57. package/lib/typescript/src/config/warrior-i.d.ts +3 -0
  58. package/lib/typescript/src/config/warrior-i.d.ts.map +1 -0
  59. package/lib/typescript/src/config/warrior-ii.d.ts +3 -0
  60. package/lib/typescript/src/config/warrior-ii.d.ts.map +1 -0
  61. package/lib/typescript/src/index.d.ts +14 -0
  62. package/lib/typescript/src/index.d.ts.map +1 -1
  63. package/nitro.json +8 -1
  64. package/package.json +1 -1
  65. package/src/config/bicep-curl.ts +64 -0
  66. package/src/config/chair-pose.ts +67 -0
  67. package/src/config/cobra-pose.ts +59 -0
  68. package/src/config/downward-dog.ts +68 -0
  69. package/src/config/lunge.ts +65 -0
  70. package/src/config/plank.ts +59 -0
  71. package/src/config/shoulder-press.ts +63 -0
  72. package/src/config/situp.ts +51 -0
  73. package/src/config/squat.ts +71 -0
  74. package/src/config/tree-pose.ts +59 -0
  75. package/src/config/tricep-dip.ts +58 -0
  76. package/src/config/wall-sit.ts +59 -0
  77. package/src/config/warrior-i.ts +82 -0
  78. package/src/config/warrior-ii.ts +88 -0
  79. package/src/index.tsx +19 -0
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ // MediaPipe Pose Landmark indices
4
+ // 23 = left hip, 25 = left knee, 27 = left ankle
5
+ // 24 = right hip, 26 = right knee, 28 = right ankle
6
+ // 11 = left shoulder, 12 = right shoulder
7
+
8
+ export const LUNGE_CONFIG = {
9
+ name: 'Lunge',
10
+ type: 'rep',
11
+ angles: [{
12
+ name: 'frontKnee',
13
+ landmarkA: 23,
14
+ // left hip
15
+ landmarkB: 25,
16
+ // left knee (vertex)
17
+ landmarkC: 27 // left ankle
18
+ }, {
19
+ name: 'backKnee',
20
+ landmarkA: 24,
21
+ // right hip
22
+ landmarkB: 26,
23
+ // right knee (vertex)
24
+ landmarkC: 28 // right ankle
25
+ }, {
26
+ name: 'torsoAngle',
27
+ landmarkA: 11,
28
+ // left shoulder
29
+ landmarkB: 23,
30
+ // left hip (vertex)
31
+ landmarkC: 25 // left knee
32
+ }],
33
+ phases: [{
34
+ phase: 'up',
35
+ angleName: 'frontKnee',
36
+ minAngle: 155,
37
+ maxAngle: 180
38
+ }, {
39
+ phase: 'down',
40
+ angleName: 'frontKnee',
41
+ minAngle: 70,
42
+ maxAngle: 110
43
+ }],
44
+ repSequence: ['up', 'down', 'up'],
45
+ formRules: [{
46
+ name: 'kneeOverToe',
47
+ message: "Don't let your front knee go past your toes",
48
+ severity: 'warning',
49
+ angleName: 'frontKnee',
50
+ minAngle: 75,
51
+ maxAngle: 180
52
+ }, {
53
+ name: 'torsoLean',
54
+ message: 'Keep your torso upright',
55
+ severity: 'warning',
56
+ angleName: 'torsoAngle',
57
+ minAngle: 75,
58
+ maxAngle: 180
59
+ }],
60
+ holdDurationMs: 0
61
+ };
62
+ //# sourceMappingURL=lunge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["LUNGE_CONFIG","name","type","angles","landmarkA","landmarkB","landmarkC","phases","phase","angleName","minAngle","maxAngle","repSequence","formRules","message","severity","holdDurationMs"],"sourceRoot":"../../../src","sources":["config/lunge.ts"],"mappings":";;AAEA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,YAA4B,GAAG;EAC1CC,IAAI,EAAE,OAAO;EACbC,IAAI,EAAE,KAAK;EACXC,MAAM,EAAE,CACN;IACEF,IAAI,EAAE,WAAW;IACjBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,UAAU;IAChBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,YAAY;IAClBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,CACF;EACDC,MAAM,EAAE,CACN;IACEC,KAAK,EAAE,IAAI;IACXC,SAAS,EAAE,WAAW;IACtBC,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEH,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,WAAW;IACtBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;EACjCC,SAAS,EAAE,CACT;IACEZ,IAAI,EAAE,aAAa;IACnBa,OAAO,EAAE,6CAA6C;IACtDC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,WAAW;IACtBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEV,IAAI,EAAE,WAAW;IACjBa,OAAO,EAAE,yBAAyB;IAClCC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,YAAY;IACvBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDK,cAAc,EAAE;AAClB,CAAC","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ // MediaPipe Pose Landmark indices
4
+ // 11 = left shoulder, 13 = left elbow, 15 = left wrist
5
+ // 23 = left hip, 27 = left ankle
6
+ // 12 = right shoulder, 24 = right hip, 28 = right ankle
7
+
8
+ export const PLANK_CONFIG = {
9
+ name: 'Plank',
10
+ type: 'hold',
11
+ angles: [{
12
+ name: 'leftHip',
13
+ landmarkA: 11,
14
+ // left shoulder
15
+ landmarkB: 23,
16
+ // left hip (vertex)
17
+ landmarkC: 27 // left ankle
18
+ }, {
19
+ name: 'rightHip',
20
+ landmarkA: 12,
21
+ // right shoulder
22
+ landmarkB: 24,
23
+ // right hip (vertex)
24
+ landmarkC: 28 // right ankle
25
+ }, {
26
+ name: 'leftElbow',
27
+ landmarkA: 11,
28
+ // left shoulder
29
+ landmarkB: 13,
30
+ // left elbow (vertex)
31
+ landmarkC: 15 // left wrist
32
+ }],
33
+ phases: [{
34
+ phase: 'hold',
35
+ angleName: 'leftHip',
36
+ minAngle: 155,
37
+ maxAngle: 180
38
+ }],
39
+ repSequence: [],
40
+ formRules: [{
41
+ name: 'hipSag',
42
+ message: 'Hips are dropping — tighten your core',
43
+ severity: 'warning',
44
+ angleName: 'leftHip',
45
+ minAngle: 155,
46
+ maxAngle: 180
47
+ }, {
48
+ name: 'hipPike',
49
+ message: "Lower your hips — you're piking up",
50
+ severity: 'warning',
51
+ angleName: 'leftHip',
52
+ minAngle: 155,
53
+ maxAngle: 180
54
+ }],
55
+ holdDurationMs: 60000 // 60 seconds default
56
+ };
57
+ //# sourceMappingURL=plank.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PLANK_CONFIG","name","type","angles","landmarkA","landmarkB","landmarkC","phases","phase","angleName","minAngle","maxAngle","repSequence","formRules","message","severity","holdDurationMs"],"sourceRoot":"../../../src","sources":["config/plank.ts"],"mappings":";;AAEA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,YAA4B,GAAG;EAC1CC,IAAI,EAAE,OAAO;EACbC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,CACN;IACEF,IAAI,EAAE,SAAS;IACfG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,UAAU;IAChBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,WAAW;IACjBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,CACF;EACDC,MAAM,EAAE,CACN;IACEC,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,SAAS;IACpBC,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDC,WAAW,EAAE,EAAE;EACfC,SAAS,EAAE,CACT;IACEZ,IAAI,EAAE,QAAQ;IACda,OAAO,EAAE,uCAAuC;IAChDC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,SAAS;IACpBC,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEV,IAAI,EAAE,SAAS;IACfa,OAAO,EAAE,oCAAoC;IAC7CC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,SAAS;IACpBC,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDK,cAAc,EAAE,KAAK,CAAE;AACzB,CAAC","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ // MediaPipe Pose Landmark indices
4
+ // 11 = left shoulder, 13 = left elbow, 15 = left wrist
5
+ // 12 = right shoulder, 14 = right elbow, 16 = right wrist
6
+ // 23 = left hip
7
+
8
+ export const SHOULDER_PRESS_CONFIG = {
9
+ name: 'Shoulder Press',
10
+ type: 'rep',
11
+ angles: [{
12
+ name: 'leftElbow',
13
+ landmarkA: 11,
14
+ // left shoulder
15
+ landmarkB: 13,
16
+ // left elbow (vertex)
17
+ landmarkC: 15 // left wrist
18
+ }, {
19
+ name: 'rightElbow',
20
+ landmarkA: 12,
21
+ // right shoulder
22
+ landmarkB: 14,
23
+ // right elbow (vertex)
24
+ landmarkC: 16 // right wrist
25
+ }, {
26
+ name: 'leftShoulderAngle',
27
+ landmarkA: 23,
28
+ // left hip
29
+ landmarkB: 11,
30
+ // left shoulder (vertex)
31
+ landmarkC: 13 // left elbow
32
+ }, {
33
+ name: 'rightShoulderAngle',
34
+ landmarkA: 24,
35
+ // right hip
36
+ landmarkB: 12,
37
+ // right shoulder (vertex)
38
+ landmarkC: 14 // right elbow
39
+ }],
40
+ phases: [{
41
+ phase: 'up',
42
+ angleName: 'leftElbow',
43
+ minAngle: 155,
44
+ maxAngle: 180
45
+ }, {
46
+ phase: 'down',
47
+ angleName: 'leftElbow',
48
+ minAngle: 60,
49
+ maxAngle: 100
50
+ }],
51
+ repSequence: ['down', 'up', 'down'],
52
+ formRules: [{
53
+ name: 'backArch',
54
+ message: "Keep your core tight — don't arch your back",
55
+ severity: 'warning',
56
+ angleName: 'leftShoulderAngle',
57
+ minAngle: 80,
58
+ maxAngle: 180
59
+ }],
60
+ holdDurationMs: 0
61
+ };
62
+ //# sourceMappingURL=shoulder-press.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SHOULDER_PRESS_CONFIG","name","type","angles","landmarkA","landmarkB","landmarkC","phases","phase","angleName","minAngle","maxAngle","repSequence","formRules","message","severity","holdDurationMs"],"sourceRoot":"../../../src","sources":["config/shoulder-press.ts"],"mappings":";;AAEA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,qBAAqC,GAAG;EACnDC,IAAI,EAAE,gBAAgB;EACtBC,IAAI,EAAE,KAAK;EACXC,MAAM,EAAE,CACN;IACEF,IAAI,EAAE,WAAW;IACjBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,YAAY;IAClBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,mBAAmB;IACzBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,oBAAoB;IAC1BG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,CACF;EACDC,MAAM,EAAE,CACN;IACEC,KAAK,EAAE,IAAI;IACXC,SAAS,EAAE,WAAW;IACtBC,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEH,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,WAAW;IACtBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDC,WAAW,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;EACnCC,SAAS,EAAE,CACT;IACEZ,IAAI,EAAE,UAAU;IAChBa,OAAO,EAAE,6CAA6C;IACtDC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,mBAAmB;IAC9BC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDK,cAAc,EAAE;AAClB,CAAC","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ // MediaPipe Pose Landmark indices
4
+ // 11 = left shoulder, 12 = right shoulder
5
+ // 23 = left hip, 24 = right hip
6
+ // 25 = left knee, 26 = right knee
7
+
8
+ export const SITUP_CONFIG = {
9
+ name: 'Sit-Up',
10
+ type: 'rep',
11
+ angles: [{
12
+ name: 'leftHip',
13
+ landmarkA: 11,
14
+ // left shoulder
15
+ landmarkB: 23,
16
+ // left hip (vertex)
17
+ landmarkC: 25 // left knee
18
+ }, {
19
+ name: 'rightHip',
20
+ landmarkA: 12,
21
+ // right shoulder
22
+ landmarkB: 24,
23
+ // right hip (vertex)
24
+ landmarkC: 26 // right knee
25
+ }],
26
+ phases: [{
27
+ phase: 'down',
28
+ angleName: 'leftHip',
29
+ minAngle: 130,
30
+ maxAngle: 180
31
+ }, {
32
+ phase: 'up',
33
+ angleName: 'leftHip',
34
+ minAngle: 40,
35
+ maxAngle: 90
36
+ }],
37
+ repSequence: ['down', 'up', 'down'],
38
+ formRules: [{
39
+ name: 'neckStrain',
40
+ message: "Don't pull on your neck — lead with your chest",
41
+ severity: 'warning',
42
+ angleName: 'leftHip',
43
+ minAngle: 30,
44
+ maxAngle: 180
45
+ }],
46
+ holdDurationMs: 0
47
+ };
48
+ //# sourceMappingURL=situp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SITUP_CONFIG","name","type","angles","landmarkA","landmarkB","landmarkC","phases","phase","angleName","minAngle","maxAngle","repSequence","formRules","message","severity","holdDurationMs"],"sourceRoot":"../../../src","sources":["config/situp.ts"],"mappings":";;AAEA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,YAA4B,GAAG;EAC1CC,IAAI,EAAE,QAAQ;EACdC,IAAI,EAAE,KAAK;EACXC,MAAM,EAAE,CACN;IACEF,IAAI,EAAE,SAAS;IACfG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,UAAU;IAChBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,CACF;EACDC,MAAM,EAAE,CACN;IACEC,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,SAAS;IACpBC,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEH,KAAK,EAAE,IAAI;IACXC,SAAS,EAAE,SAAS;IACpBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDC,WAAW,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;EACnCC,SAAS,EAAE,CACT;IACEZ,IAAI,EAAE,YAAY;IAClBa,OAAO,EAAE,gDAAgD;IACzDC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,SAAS;IACpBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDK,cAAc,EAAE;AAClB,CAAC","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ // MediaPipe Pose Landmark indices
4
+ // 23 = left hip, 25 = left knee, 27 = left ankle
5
+ // 24 = right hip, 26 = right knee, 28 = right ankle
6
+ // 11 = left shoulder, 12 = right shoulder
7
+
8
+ export const SQUAT_CONFIG = {
9
+ name: 'Squat',
10
+ type: 'rep',
11
+ angles: [{
12
+ name: 'leftKnee',
13
+ landmarkA: 23,
14
+ // left hip
15
+ landmarkB: 25,
16
+ // left knee (vertex)
17
+ landmarkC: 27 // left ankle
18
+ }, {
19
+ name: 'rightKnee',
20
+ landmarkA: 24,
21
+ // right hip
22
+ landmarkB: 26,
23
+ // right knee (vertex)
24
+ landmarkC: 28 // right ankle
25
+ }, {
26
+ name: 'leftHip',
27
+ landmarkA: 11,
28
+ // left shoulder
29
+ landmarkB: 23,
30
+ // left hip (vertex)
31
+ landmarkC: 25 // left knee
32
+ }, {
33
+ name: 'rightHip',
34
+ landmarkA: 12,
35
+ // right shoulder
36
+ landmarkB: 24,
37
+ // right hip (vertex)
38
+ landmarkC: 26 // right knee
39
+ }],
40
+ phases: [{
41
+ phase: 'up',
42
+ angleName: 'leftKnee',
43
+ minAngle: 155,
44
+ maxAngle: 180
45
+ }, {
46
+ phase: 'down',
47
+ angleName: 'leftKnee',
48
+ minAngle: 50,
49
+ maxAngle: 105
50
+ }],
51
+ repSequence: ['up', 'down', 'up'],
52
+ formRules: [{
53
+ name: 'kneesCaving',
54
+ message: 'Push your knees out over your toes',
55
+ severity: 'warning',
56
+ angleName: 'leftKnee',
57
+ minAngle: 40,
58
+ maxAngle: 180
59
+ }, {
60
+ name: 'leaningForward',
61
+ message: "Keep your torso upright — don't lean too far forward",
62
+ severity: 'warning',
63
+ angleName: 'leftHip',
64
+ minAngle: 70,
65
+ maxAngle: 180
66
+ }],
67
+ holdDurationMs: 0
68
+ };
69
+ //# sourceMappingURL=squat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SQUAT_CONFIG","name","type","angles","landmarkA","landmarkB","landmarkC","phases","phase","angleName","minAngle","maxAngle","repSequence","formRules","message","severity","holdDurationMs"],"sourceRoot":"../../../src","sources":["config/squat.ts"],"mappings":";;AAEA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,YAA4B,GAAG;EAC1CC,IAAI,EAAE,OAAO;EACbC,IAAI,EAAE,KAAK;EACXC,MAAM,EAAE,CACN;IACEF,IAAI,EAAE,UAAU;IAChBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,WAAW;IACjBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,SAAS;IACfG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,UAAU;IAChBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,CACF;EACDC,MAAM,EAAE,CACN;IACEC,KAAK,EAAE,IAAI;IACXC,SAAS,EAAE,UAAU;IACrBC,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEH,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,UAAU;IACrBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;EACjCC,SAAS,EAAE,CACT;IACEZ,IAAI,EAAE,aAAa;IACnBa,OAAO,EAAE,oCAAoC;IAC7CC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,UAAU;IACrBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEV,IAAI,EAAE,gBAAgB;IACtBa,OAAO,EAAE,sDAAsD;IAC/DC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,SAAS;IACpBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDK,cAAc,EAAE;AAClB,CAAC","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ // MediaPipe Pose Landmark indices
4
+ // 23 = left hip, 25 = left knee, 27 = left ankle
5
+ // 24 = right hip, 26 = right knee, 28 = right ankle
6
+ // 11 = left shoulder, 12 = right shoulder
7
+
8
+ export const TREE_POSE_CONFIG = {
9
+ name: 'Tree Pose (Vrksasana)',
10
+ type: 'hold',
11
+ angles: [{
12
+ name: 'standingLeg',
13
+ landmarkA: 23,
14
+ // left hip
15
+ landmarkB: 25,
16
+ // left knee (vertex)
17
+ landmarkC: 27 // left ankle
18
+ }, {
19
+ name: 'raisedKnee',
20
+ landmarkA: 24,
21
+ // right hip
22
+ landmarkB: 26,
23
+ // right knee (vertex)
24
+ landmarkC: 28 // right ankle
25
+ }, {
26
+ name: 'torso',
27
+ landmarkA: 11,
28
+ // left shoulder
29
+ landmarkB: 23,
30
+ // left hip (vertex)
31
+ landmarkC: 25 // left knee
32
+ }],
33
+ phases: [{
34
+ phase: 'hold',
35
+ angleName: 'standingLeg',
36
+ minAngle: 165,
37
+ maxAngle: 180
38
+ }],
39
+ repSequence: [],
40
+ formRules: [{
41
+ name: 'standingLegBent',
42
+ message: 'Straighten your standing leg',
43
+ severity: 'warning',
44
+ angleName: 'standingLeg',
45
+ minAngle: 165,
46
+ maxAngle: 180
47
+ }, {
48
+ name: 'leaningTorso',
49
+ message: 'Keep your torso straight and centered',
50
+ severity: 'warning',
51
+ angleName: 'torso',
52
+ minAngle: 160,
53
+ maxAngle: 180
54
+ }],
55
+ holdDurationMs: 30000 // 30 seconds per side
56
+ };
57
+ //# sourceMappingURL=tree-pose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TREE_POSE_CONFIG","name","type","angles","landmarkA","landmarkB","landmarkC","phases","phase","angleName","minAngle","maxAngle","repSequence","formRules","message","severity","holdDurationMs"],"sourceRoot":"../../../src","sources":["config/tree-pose.ts"],"mappings":";;AAEA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,gBAAgC,GAAG;EAC9CC,IAAI,EAAE,uBAAuB;EAC7BC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,CACN;IACEF,IAAI,EAAE,aAAa;IACnBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,YAAY;IAClBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,OAAO;IACbG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,CACF;EACDC,MAAM,EAAE,CACN;IACEC,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,aAAa;IACxBC,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDC,WAAW,EAAE,EAAE;EACfC,SAAS,EAAE,CACT;IACEZ,IAAI,EAAE,iBAAiB;IACvBa,OAAO,EAAE,8BAA8B;IACvCC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,aAAa;IACxBC,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEV,IAAI,EAAE,cAAc;IACpBa,OAAO,EAAE,uCAAuC;IAChDC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,OAAO;IAClBC,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDK,cAAc,EAAE,KAAK,CAAE;AACzB,CAAC","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ // MediaPipe Pose Landmark indices
4
+ // 11 = left shoulder, 13 = left elbow, 15 = left wrist
5
+ // 12 = right shoulder, 14 = right elbow, 16 = right wrist
6
+ // 23 = left hip
7
+
8
+ export const TRICEP_DIP_CONFIG = {
9
+ name: 'Tricep Dip',
10
+ type: 'rep',
11
+ angles: [{
12
+ name: 'leftElbow',
13
+ landmarkA: 11,
14
+ // left shoulder
15
+ landmarkB: 13,
16
+ // left elbow (vertex)
17
+ landmarkC: 15 // left wrist
18
+ }, {
19
+ name: 'rightElbow',
20
+ landmarkA: 12,
21
+ // right shoulder
22
+ landmarkB: 14,
23
+ // right elbow (vertex)
24
+ landmarkC: 16 // right wrist
25
+ }, {
26
+ name: 'shoulderDrop',
27
+ landmarkA: 23,
28
+ // left hip
29
+ landmarkB: 11,
30
+ // left shoulder (vertex)
31
+ landmarkC: 13 // left elbow
32
+ }],
33
+ phases: [{
34
+ phase: 'up',
35
+ angleName: 'leftElbow',
36
+ minAngle: 150,
37
+ maxAngle: 180
38
+ }, {
39
+ phase: 'down',
40
+ angleName: 'leftElbow',
41
+ minAngle: 60,
42
+ maxAngle: 100
43
+ }],
44
+ repSequence: ['up', 'down', 'up'],
45
+ formRules: [{
46
+ name: 'goingTooDeep',
47
+ message: "Don't go too deep — stop at 90 degrees to protect your shoulders",
48
+ severity: 'error',
49
+ angleName: 'leftElbow',
50
+ minAngle: 55,
51
+ maxAngle: 180
52
+ }],
53
+ holdDurationMs: 0
54
+ };
55
+ //# sourceMappingURL=tricep-dip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TRICEP_DIP_CONFIG","name","type","angles","landmarkA","landmarkB","landmarkC","phases","phase","angleName","minAngle","maxAngle","repSequence","formRules","message","severity","holdDurationMs"],"sourceRoot":"../../../src","sources":["config/tricep-dip.ts"],"mappings":";;AAEA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,iBAAiC,GAAG;EAC/CC,IAAI,EAAE,YAAY;EAClBC,IAAI,EAAE,KAAK;EACXC,MAAM,EAAE,CACN;IACEF,IAAI,EAAE,WAAW;IACjBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,YAAY;IAClBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,cAAc;IACpBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,CACF;EACDC,MAAM,EAAE,CACN;IACEC,KAAK,EAAE,IAAI;IACXC,SAAS,EAAE,WAAW;IACtBC,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEH,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,WAAW;IACtBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;EACjCC,SAAS,EAAE,CACT;IACEZ,IAAI,EAAE,cAAc;IACpBa,OAAO,EACL,kEAAkE;IACpEC,QAAQ,EAAE,OAAO;IACjBN,SAAS,EAAE,WAAW;IACtBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDK,cAAc,EAAE;AAClB,CAAC","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ // MediaPipe Pose Landmark indices
4
+ // 23 = left hip, 25 = left knee, 27 = left ankle
5
+ // 24 = right hip, 26 = right knee, 28 = right ankle
6
+ // 11 = left shoulder, 12 = right shoulder
7
+
8
+ export const WALL_SIT_CONFIG = {
9
+ name: 'Wall Sit',
10
+ type: 'hold',
11
+ angles: [{
12
+ name: 'leftKnee',
13
+ landmarkA: 23,
14
+ // left hip
15
+ landmarkB: 25,
16
+ // left knee (vertex)
17
+ landmarkC: 27 // left ankle
18
+ }, {
19
+ name: 'rightKnee',
20
+ landmarkA: 24,
21
+ // right hip
22
+ landmarkB: 26,
23
+ // right knee (vertex)
24
+ landmarkC: 28 // right ankle
25
+ }, {
26
+ name: 'leftHip',
27
+ landmarkA: 11,
28
+ // left shoulder
29
+ landmarkB: 23,
30
+ // left hip (vertex)
31
+ landmarkC: 25 // left knee
32
+ }],
33
+ phases: [{
34
+ phase: 'hold',
35
+ angleName: 'leftKnee',
36
+ minAngle: 80,
37
+ maxAngle: 110
38
+ }],
39
+ repSequence: [],
40
+ formRules: [{
41
+ name: 'tooHigh',
42
+ message: 'Sit lower — your thighs should be parallel to the ground',
43
+ severity: 'warning',
44
+ angleName: 'leftKnee',
45
+ minAngle: 80,
46
+ maxAngle: 110
47
+ }, {
48
+ name: 'leaningForward',
49
+ message: 'Press your back flat against the wall',
50
+ severity: 'warning',
51
+ angleName: 'leftHip',
52
+ minAngle: 80,
53
+ maxAngle: 110
54
+ }],
55
+ holdDurationMs: 45000 // 45 seconds default
56
+ };
57
+ //# sourceMappingURL=wall-sit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WALL_SIT_CONFIG","name","type","angles","landmarkA","landmarkB","landmarkC","phases","phase","angleName","minAngle","maxAngle","repSequence","formRules","message","severity","holdDurationMs"],"sourceRoot":"../../../src","sources":["config/wall-sit.ts"],"mappings":";;AAEA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,eAA+B,GAAG;EAC7CC,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,CACN;IACEF,IAAI,EAAE,UAAU;IAChBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,WAAW;IACjBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,SAAS;IACfG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,CACF;EACDC,MAAM,EAAE,CACN;IACEC,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,UAAU;IACrBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDC,WAAW,EAAE,EAAE;EACfC,SAAS,EAAE,CACT;IACEZ,IAAI,EAAE,SAAS;IACfa,OAAO,EAAE,0DAA0D;IACnEC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,UAAU;IACrBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEV,IAAI,EAAE,gBAAgB;IACtBa,OAAO,EAAE,uCAAuC;IAChDC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,SAAS;IACpBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDK,cAAc,EAAE,KAAK,CAAE;AACzB,CAAC","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ // MediaPipe Pose Landmark indices
4
+ // 11 = left shoulder, 13 = left elbow, 15 = left wrist
5
+ // 12 = right shoulder, 14 = right elbow, 16 = right wrist
6
+ // 23 = left hip, 25 = left knee, 27 = left ankle
7
+ // 24 = right hip, 26 = right knee, 28 = right ankle
8
+
9
+ export const WARRIOR_I_CONFIG = {
10
+ name: 'Warrior I (Virabhadrasana I)',
11
+ type: 'hold',
12
+ angles: [{
13
+ name: 'frontKnee',
14
+ landmarkA: 23,
15
+ // left hip
16
+ landmarkB: 25,
17
+ // left knee (vertex)
18
+ landmarkC: 27 // left ankle
19
+ }, {
20
+ name: 'backLeg',
21
+ landmarkA: 24,
22
+ // right hip
23
+ landmarkB: 26,
24
+ // right knee (vertex)
25
+ landmarkC: 28 // right ankle
26
+ }, {
27
+ name: 'leftArm',
28
+ landmarkA: 11,
29
+ // left shoulder
30
+ landmarkB: 13,
31
+ // left elbow (vertex)
32
+ landmarkC: 15 // left wrist
33
+ }, {
34
+ name: 'torso',
35
+ landmarkA: 11,
36
+ // left shoulder
37
+ landmarkB: 23,
38
+ // left hip (vertex)
39
+ landmarkC: 25 // left knee
40
+ }],
41
+ phases: [{
42
+ phase: 'hold',
43
+ angleName: 'frontKnee',
44
+ minAngle: 80,
45
+ maxAngle: 110
46
+ }],
47
+ repSequence: [],
48
+ formRules: [{
49
+ name: 'frontKneeTooStraight',
50
+ message: 'Bend your front knee deeper — aim for 90 degrees',
51
+ severity: 'warning',
52
+ angleName: 'frontKnee',
53
+ minAngle: 80,
54
+ maxAngle: 110
55
+ }, {
56
+ name: 'backLegBent',
57
+ message: 'Keep your back leg straight and strong',
58
+ severity: 'warning',
59
+ angleName: 'backLeg',
60
+ minAngle: 155,
61
+ maxAngle: 180
62
+ }, {
63
+ name: 'armsNotExtended',
64
+ message: 'Reach your arms up fully — straighten your elbows',
65
+ severity: 'info',
66
+ angleName: 'leftArm',
67
+ minAngle: 160,
68
+ maxAngle: 180
69
+ }, {
70
+ name: 'torsoLeaning',
71
+ message: 'Keep your torso upright over your hips',
72
+ severity: 'warning',
73
+ angleName: 'torso',
74
+ minAngle: 80,
75
+ maxAngle: 110
76
+ }],
77
+ holdDurationMs: 30000 // 30 seconds per side
78
+ };
79
+ //# sourceMappingURL=warrior-i.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WARRIOR_I_CONFIG","name","type","angles","landmarkA","landmarkB","landmarkC","phases","phase","angleName","minAngle","maxAngle","repSequence","formRules","message","severity","holdDurationMs"],"sourceRoot":"../../../src","sources":["config/warrior-i.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,gBAAgC,GAAG;EAC9CC,IAAI,EAAE,8BAA8B;EACpCC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,CACN;IACEF,IAAI,EAAE,WAAW;IACjBG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,SAAS;IACfG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,SAAS;IACfG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,EACD;IACEL,IAAI,EAAE,OAAO;IACbG,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE,EAAE,CAAE;EACjB,CAAC,CACF;EACDC,MAAM,EAAE,CACN;IACEC,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,WAAW;IACtBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDC,WAAW,EAAE,EAAE;EACfC,SAAS,EAAE,CACT;IACEZ,IAAI,EAAE,sBAAsB;IAC5Ba,OAAO,EAAE,kDAAkD;IAC3DC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,WAAW;IACtBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEV,IAAI,EAAE,aAAa;IACnBa,OAAO,EAAE,wCAAwC;IACjDC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,SAAS;IACpBC,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEV,IAAI,EAAE,iBAAiB;IACvBa,OAAO,EAAE,mDAAmD;IAC5DC,QAAQ,EAAE,MAAM;IAChBN,SAAS,EAAE,SAAS;IACpBC,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEV,IAAI,EAAE,cAAc;IACpBa,OAAO,EAAE,wCAAwC;IACjDC,QAAQ,EAAE,SAAS;IACnBN,SAAS,EAAE,OAAO;IAClBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE;EACZ,CAAC,CACF;EACDK,cAAc,EAAE,KAAK,CAAE;AACzB,CAAC","ignoreList":[]}