@racedayready/workouts 0.1.3 → 0.1.4

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.
@@ -1,5 +1,13 @@
1
1
  import type { WorkoutSegmentItem } from './workout-types';
2
2
  export declare const generateWorkoutItemId: () => string;
3
+ /**
4
+ * Individual item utils
5
+ */
6
+ export declare function getDistanceMeters(item: WorkoutSegmentItem): number;
7
+ export declare function getDurationSeconds(item: WorkoutSegmentItem): number;
8
+ /**
9
+ * Aggregates
10
+ */
3
11
  export declare function getTotalDistanceMeters(segments: WorkoutSegmentItem[]): number;
4
12
  export declare function getTotalSegmentCount(segments: WorkoutSegmentItem[]): number;
5
13
  export declare function getTotalDurationSeconds(segments: WorkoutSegmentItem[]): number;
@@ -1 +1 @@
1
- {"version":3,"file":"workout-utils.d.ts","sourceRoot":"","sources":["../../src/workouts/workout-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,eAAO,MAAM,qBAAqB,cAAmD,CAAC;AAEtF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAY7E;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAO3E;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAU9E"}
1
+ {"version":3,"file":"workout-utils.d.ts","sourceRoot":"","sources":["../../src/workouts/workout-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,eAAO,MAAM,qBAAqB,cAAmD,CAAC;AAEtF;;GAEG;AAEH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAWlE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAWnE;AAED;;GAEG;AAEH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAE7E;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAO3E;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAE9E"}
@@ -1,14 +1,24 @@
1
1
  export const generateWorkoutItemId = () => Math.random().toString(36).substring(2, 9);
2
+ /**
3
+ * Individual item utils
4
+ */
5
+ export function getDistanceMeters(item) {
6
+ if (item.type === 'group') {
7
+ return (item.segments.reduce((sum, item) => sum + getDistanceMeters(item), 0) * item.repeatCount);
8
+ }
9
+ return 'target_distance_meters' in item ? (item.target_distance_meters ?? 0) : 0;
10
+ }
11
+ export function getDurationSeconds(item) {
12
+ if (item.type === 'group') {
13
+ return (item.segments.reduce((sum, item) => sum + getDurationSeconds(item), 0) * item.repeatCount);
14
+ }
15
+ return 'target_duration_seconds' in item ? (item.target_duration_seconds ?? 0) : 0;
16
+ }
17
+ /**
18
+ * Aggregates
19
+ */
2
20
  export function getTotalDistanceMeters(segments) {
3
- return segments.reduce((total, segment) => {
4
- if (segment.type === 'group') {
5
- const groupDistance = segment.segments.reduce((sum, item) => {
6
- return sum + ('target_distance_meters' in item ? (item.target_distance_meters ?? 0) : 0);
7
- }, 0);
8
- return total + groupDistance * segment.repeatCount;
9
- }
10
- return (total + ('target_distance_meters' in segment ? (segment.target_distance_meters ?? 0) : 0));
11
- }, 0);
21
+ return segments.reduce((total, segment) => total + getDistanceMeters(segment), 0);
12
22
  }
13
23
  export function getTotalSegmentCount(segments) {
14
24
  return segments.reduce((total, segment) => {
@@ -19,14 +29,6 @@ export function getTotalSegmentCount(segments) {
19
29
  }, 0);
20
30
  }
21
31
  export function getTotalDurationSeconds(segments) {
22
- return segments.reduce((total, segment) => {
23
- if (segment.type === 'group') {
24
- const groupDuration = segment.segments.reduce((sum, item) => {
25
- return sum + (item.target_duration_seconds ?? 0);
26
- }, 0);
27
- return total + groupDuration * segment.repeatCount;
28
- }
29
- return total + (segment.target_duration_seconds ?? 0);
30
- }, 0);
32
+ return segments.reduce((total, segment) => total + getDurationSeconds(segment), 0);
31
33
  }
32
34
  //# sourceMappingURL=workout-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workout-utils.js","sourceRoot":"","sources":["../../src/workouts/workout-utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEtF,MAAM,UAAU,sBAAsB,CAAC,QAA8B;IACnE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,IAA2B,EAAE,EAAE;gBACzF,OAAO,GAAG,GAAG,CAAC,wBAAwB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3F,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,OAAO,KAAK,GAAG,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;QACrD,CAAC;QACD,OAAO,CACL,KAAK,GAAG,CAAC,wBAAwB,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC1F,CAAC;IACJ,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAA8B;IACjE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAC/D,CAAC;QACD,OAAO,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAA8B;IACpE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,IAA2B,EAAE,EAAE;gBACzF,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,OAAO,KAAK,GAAG,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;QACrD,CAAC;QACD,OAAO,KAAK,GAAG,CAAC,OAAO,CAAC,uBAAuB,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"workout-utils.js","sourceRoot":"","sources":["../../src/workouts/workout-utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEtF;;GAEG;AAEH,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACxD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,MAAM,CAClB,CAAC,GAAW,EAAE,IAAwB,EAAE,EAAE,CAAC,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,EACxE,CAAC,CACF,GAAG,IAAI,CAAC,WAAW,CACrB,CAAC;IACJ,CAAC;IAED,OAAO,wBAAwB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAwB;IACzD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,MAAM,CAClB,CAAC,GAAW,EAAE,IAAwB,EAAE,EAAE,CAAC,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,EACzE,CAAC,CACF,GAAG,IAAI,CAAC,WAAW,CACrB,CAAC;IACJ,CAAC;IAED,OAAO,yBAAyB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAED;;GAEG;AAEH,MAAM,UAAU,sBAAsB,CAAC,QAA8B;IACnE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAA8B;IACjE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAC/D,CAAC;QACD,OAAO,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAA8B;IACpE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACrF,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { describe, expect, it } from 'vitest';
2
- import { getTotalDistanceMeters, getTotalDurationSeconds, getTotalSegmentCount, } from './workout-utils';
2
+ import { generateWorkoutItemId, getDistanceMeters, getDurationSeconds, getTotalDistanceMeters, getTotalDurationSeconds, getTotalSegmentCount, } from './workout-utils';
3
+ import { WorkoutGroupItemSchema, WorkoutIndividualItemSchema, } from './workout-types';
3
4
  const swim = (id, overrides) => ({
4
5
  type: 'individual',
5
6
  id,
@@ -58,4 +59,141 @@ describe('getTotalSegmentCount', () => {
58
59
  expect(getTotalSegmentCount(segments)).toBe(8);
59
60
  });
60
61
  });
62
+ describe('getDistanceMeters', () => {
63
+ it('returns target_distance_meters for an individual', () => {
64
+ const item = WorkoutIndividualItemSchema.parse({
65
+ discipline: 'swim',
66
+ type: 'individual',
67
+ id: 'foo',
68
+ name: 'swim',
69
+ zone: 2,
70
+ target_distance_meters: 400,
71
+ });
72
+ expect(getDistanceMeters(item)).toBe(400);
73
+ });
74
+ it('returns zero for an individual without target_distance_meters', () => {
75
+ const item = WorkoutIndividualItemSchema.parse({
76
+ discipline: 'swim',
77
+ type: 'individual',
78
+ id: 'foo',
79
+ name: 'swim',
80
+ zone: 2,
81
+ });
82
+ expect(getDistanceMeters(item)).toBe(0);
83
+ });
84
+ it('returns zero if target_distance_meters is null or undefined', () => {
85
+ const item = WorkoutIndividualItemSchema.parse({
86
+ discipline: 'swim',
87
+ type: 'individual',
88
+ id: 'foo',
89
+ name: 'swim',
90
+ zone: 2,
91
+ target_distance_meters: undefined,
92
+ });
93
+ expect(getDistanceMeters(item)).toBe(0);
94
+ });
95
+ it('aggregates distance for a group (repeatCount)', () => {
96
+ const item = WorkoutGroupItemSchema.parse({
97
+ type: 'group',
98
+ id: 'grp',
99
+ repeatCount: 2,
100
+ segments: [
101
+ WorkoutIndividualItemSchema.parse({
102
+ discipline: 'swim',
103
+ type: 'individual',
104
+ id: 'a',
105
+ name: 'swim',
106
+ zone: 2,
107
+ target_distance_meters: 100,
108
+ }),
109
+ WorkoutIndividualItemSchema.parse({
110
+ discipline: 'swim',
111
+ type: 'individual',
112
+ id: 'b',
113
+ name: 'swim',
114
+ zone: 2,
115
+ target_distance_meters: 50,
116
+ }),
117
+ ],
118
+ });
119
+ // (100+50) * 2 = 300
120
+ expect(getDistanceMeters(item)).toBe(300);
121
+ });
122
+ });
123
+ describe('getDurationSeconds', () => {
124
+ it('returns target_duration_seconds for an individual', () => {
125
+ const item = WorkoutIndividualItemSchema.parse({
126
+ discipline: 'bike',
127
+ type: 'individual',
128
+ id: 'foo',
129
+ name: 'bike',
130
+ zone: 3,
131
+ target_duration_seconds: 120,
132
+ });
133
+ expect(getDurationSeconds(item)).toBe(120);
134
+ });
135
+ it('returns zero for an individual without target_duration_seconds', () => {
136
+ const item = WorkoutIndividualItemSchema.parse({
137
+ discipline: 'bike',
138
+ type: 'individual',
139
+ id: 'foo',
140
+ name: 'bike',
141
+ zone: 3,
142
+ });
143
+ expect(getDurationSeconds(item)).toBe(0);
144
+ });
145
+ it('returns zero if target_duration_seconds is undefined', () => {
146
+ const item = WorkoutIndividualItemSchema.parse({
147
+ discipline: 'bike',
148
+ type: 'individual',
149
+ id: 'foo',
150
+ name: 'bike',
151
+ zone: 3,
152
+ target_duration_seconds: undefined,
153
+ });
154
+ expect(getDurationSeconds(item)).toBe(0);
155
+ });
156
+ it('aggregates duration for a group (repeatCount)', () => {
157
+ const item = WorkoutGroupItemSchema.parse({
158
+ type: 'group',
159
+ id: 'grp',
160
+ repeatCount: 4,
161
+ segments: [
162
+ WorkoutIndividualItemSchema.parse({
163
+ discipline: 'bike',
164
+ type: 'individual',
165
+ id: 'c',
166
+ name: 'bike',
167
+ zone: 3,
168
+ target_duration_seconds: 60,
169
+ }),
170
+ WorkoutIndividualItemSchema.parse({
171
+ discipline: 'bike',
172
+ type: 'individual',
173
+ id: 'd',
174
+ name: 'bike',
175
+ zone: 3,
176
+ target_duration_seconds: 90,
177
+ }),
178
+ ],
179
+ });
180
+ // (60+90) * 4 = 600
181
+ expect(getDurationSeconds(item)).toBe(600);
182
+ });
183
+ });
184
+ describe('generateWorkoutItemId', () => {
185
+ it('returns a non-empty string of reasonable length', () => {
186
+ const id = generateWorkoutItemId();
187
+ expect(typeof id).toBe('string');
188
+ expect(id.length).toBeGreaterThanOrEqual(3);
189
+ expect(id.length).toBeLessThanOrEqual(8); // 7 chars per substring(2,9)
190
+ });
191
+ it('returns unique values on repeated calls', () => {
192
+ const ids = new Set();
193
+ for (let i = 0; i < 10; i++) {
194
+ ids.add(generateWorkoutItemId());
195
+ }
196
+ expect(ids.size).toBe(10);
197
+ });
198
+ });
61
199
  //# sourceMappingURL=workout-utils.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workout-utils.test.js","sourceRoot":"","sources":["../../src/workouts/workout-utils.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,IAAI,GAAG,CACX,EAAU,EACV,SAAwF,EACjE,EAAE,CAAC,CAAC;IAC3B,IAAI,EAAE,YAAY;IAClB,EAAE;IACF,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,CAAC;IACP,GAAG,SAAS;CACb,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,CACX,EAAU,EACV,SAAwD,EACjC,EAAE,CAAC,CAAC;IAC3B,IAAI,EAAE,YAAY;IAClB,EAAE;IACF,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,CAAC;IACP,GAAG,SAAS;CACb,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,CAAC,WAAmB,EAAE,QAA8B,EAAoB,EAAE,CAAC,CAAC;IACxF,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,OAAO;IACX,WAAW;IACX,QAAQ,EAAE,QAA8C;CACzD,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,QAAQ,GAAyB;YACrC,IAAI,CAAC,QAAQ,EAAE,EAAE,sBAAsB,EAAE,GAAG,EAAE,CAAC;YAC/C,KAAK,CAAC,CAAC,EAAE;gBACP,IAAI,CAAC,MAAM,EAAE,EAAE,sBAAsB,EAAE,GAAG,EAAE,CAAC;gBAC7C,IAAI,CAAC,MAAM,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAAC;aAC7C,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,EAAE,oBAAoB;SACpC,CAAC;QACF,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,QAAQ,GAAyB;YACrC,IAAI,CAAC,QAAQ,EAAE,EAAE,uBAAuB,EAAE,GAAG,EAAE,CAAC;YAChD,KAAK,CAAC,CAAC,EAAE;gBACP,IAAI,CAAC,IAAI,EAAE,EAAE,uBAAuB,EAAE,GAAG,EAAE,CAAC;gBAC5C,IAAI,CAAC,KAAK,EAAE,EAAE,uBAAuB,EAAE,GAAG,EAAE,CAAC;aAC9C,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,EAAE,cAAc;SACjC,CAAC;QACF,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,QAAQ,GAAyB;YACrC,IAAI,CAAC,QAAQ,CAAC;YACd,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC;SACjB,CAAC;QACF,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"workout-utils.test.js","sourceRoot":"","sources":["../../src/workouts/workout-utils.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@racedayready/workouts",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Workout schemas, types and utilities.",
5
5
  "license": "MIT",
6
6
  "private": false,