tenniscommon 1.1.40 → 1.1.41

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 (40) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/common/general/generalUtils.d.ts +0 -1
  3. package/dist/cjs/common/general/generalUtils.js +0 -1
  4. package/dist/cjs/common/training/initialData.d.ts +3 -2
  5. package/dist/cjs/common/training/initialData.js +26 -4
  6. package/dist/cjs/common/training/interfaces.d.ts +20 -2
  7. package/dist/cjs/common/training/validation.d.ts +50 -1
  8. package/dist/cjs/common/training/validation.js +25 -2
  9. package/dist/esm/common/general/generalUtils.d.ts +0 -1
  10. package/dist/esm/common/general/generalUtils.js +0 -1
  11. package/dist/esm/common/training/initialData.d.ts +3 -2
  12. package/dist/esm/common/training/initialData.js +23 -2
  13. package/dist/esm/common/training/interfaces.d.ts +20 -2
  14. package/dist/esm/common/training/validation.d.ts +50 -1
  15. package/dist/esm/common/training/validation.js +24 -1
  16. package/dist/types/common/general/generalUtils.d.ts +0 -1
  17. package/dist/types/common/training/initialData.d.ts +3 -2
  18. package/dist/types/common/training/interfaces.d.ts +20 -2
  19. package/dist/types/common/training/validation.d.ts +50 -1
  20. package/package.json +1 -6
  21. package/dist/cjs/common/trainingWeekly/index.d.ts +0 -3
  22. package/dist/cjs/common/trainingWeekly/index.js +0 -19
  23. package/dist/cjs/common/trainingWeekly/initialData.d.ts +0 -2
  24. package/dist/cjs/common/trainingWeekly/initialData.js +0 -24
  25. package/dist/cjs/common/trainingWeekly/interfaces.d.ts +0 -19
  26. package/dist/cjs/common/trainingWeekly/interfaces.js +0 -2
  27. package/dist/cjs/common/trainingWeekly/validation.d.ts +0 -50
  28. package/dist/cjs/common/trainingWeekly/validation.js +0 -27
  29. package/dist/esm/common/trainingWeekly/index.d.ts +0 -3
  30. package/dist/esm/common/trainingWeekly/index.js +0 -3
  31. package/dist/esm/common/trainingWeekly/initialData.d.ts +0 -2
  32. package/dist/esm/common/trainingWeekly/initialData.js +0 -21
  33. package/dist/esm/common/trainingWeekly/interfaces.d.ts +0 -19
  34. package/dist/esm/common/trainingWeekly/interfaces.js +0 -1
  35. package/dist/esm/common/trainingWeekly/validation.d.ts +0 -50
  36. package/dist/esm/common/trainingWeekly/validation.js +0 -24
  37. package/dist/types/common/trainingWeekly/index.d.ts +0 -3
  38. package/dist/types/common/trainingWeekly/initialData.d.ts +0 -2
  39. package/dist/types/common/trainingWeekly/interfaces.d.ts +0 -19
  40. package/dist/types/common/trainingWeekly/validation.d.ts +0 -50
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  consume the **same source of truth** for data shapes and validation rules.
7
7
  ### What it provides
8
- The library is organized by feature/domain (for example: general, player, opponent, matchplay, tournament, training, trainingWeekly, spending, performance, chat). Each domain typically contains:
8
+ The library is organized by feature/domain (for example: general, player, opponent, matchplay, tournament, training, spending, performance, chat). Each domain typically contains:
9
9
  - **Interfaces & unions** for strong typing across client/server
10
10
  - **Zod validation** for runtime input validation (useful for API boundaries and form validation)
11
11
  - **Initial data / stats creators** to generate safe “empty/default” objects for new records and dashboards
@@ -49,7 +49,6 @@ export declare const COLLECTION: {
49
49
  readonly performance: "performance";
50
50
  readonly player: "player";
51
51
  readonly spending: "spending";
52
- readonly trainingWeekly: "trainingWeekly";
53
52
  readonly training: "training";
54
53
  readonly tournament: "tournament";
55
54
  };
@@ -48,7 +48,6 @@ exports.COLLECTION = {
48
48
  performance: "performance",
49
49
  player: "player",
50
50
  spending: "spending",
51
- trainingWeekly: "trainingWeekly",
52
51
  training: "training",
53
52
  tournament: "tournament",
54
53
  };
@@ -1,2 +1,3 @@
1
- import { TrainingItem } from './interfaces';
2
- export declare const createEmptyTrainingItem: (playerId: string, isoYear: number, isoWeek: number) => TrainingItem;
1
+ import { TrainingLogItem, TrainingBaseItem } from './interfaces';
2
+ export declare function createInitialTrainingBaseItem(playerId: string): TrainingBaseItem;
3
+ export declare const createEmptyTrainingLogItem: (playerId: string, isoYear: number, isoWeek: number) => TrainingLogItem;
@@ -1,9 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createEmptyTrainingItem = void 0;
3
+ exports.createEmptyTrainingLogItem = void 0;
4
+ exports.createInitialTrainingBaseItem = createInitialTrainingBaseItem;
4
5
  const date_fns_1 = require("date-fns");
5
- // Factory function for creating initial TrainingItem
6
- const createEmptyTrainingItem = (playerId, isoYear, isoWeek) => {
6
+ function createInitialTrainingBaseItem(playerId) {
7
+ return {
8
+ _id: '',
9
+ playerId,
10
+ matchPractice: 0,
11
+ tactical: 0,
12
+ serve: 0,
13
+ return: 0,
14
+ forehand: 0,
15
+ backhand: 0,
16
+ volley: 0,
17
+ overhead: 0,
18
+ dropShot: 0,
19
+ slice: 0,
20
+ strengthAndConditioning: 0,
21
+ speedAndEndurance: 0,
22
+ // Training Formats
23
+ lesson: 0,
24
+ squad: 0,
25
+ };
26
+ }
27
+ // Factory function for creating initial TrainingLogItem
28
+ const createEmptyTrainingLogItem = (playerId, isoYear, isoWeek) => {
7
29
  let date = new Date(isoYear, 0, 4); // 4th Jan is always in the first ISO week
8
30
  date = (0, date_fns_1.setISOWeekYear)(date, isoYear);
9
31
  date = (0, date_fns_1.setISOWeek)(date, isoWeek);
@@ -31,4 +53,4 @@ const createEmptyTrainingItem = (playerId, isoYear, isoWeek) => {
31
53
  notes: '',
32
54
  };
33
55
  };
34
- exports.createEmptyTrainingItem = createEmptyTrainingItem;
56
+ exports.createEmptyTrainingLogItem = createEmptyTrainingLogItem;
@@ -1,5 +1,23 @@
1
- import { TrainingWeeklyItem } from '../trainingWeekly';
2
1
  import { ValueOf } from '../general';
2
+ export interface TrainingBaseItem {
3
+ _id: string;
4
+ playerId: string;
5
+ matchPractice: number;
6
+ tactical: number;
7
+ serve: number;
8
+ return: number;
9
+ forehand: number;
10
+ backhand: number;
11
+ volley: number;
12
+ overhead: number;
13
+ dropShot: number;
14
+ slice: number;
15
+ strengthAndConditioning: number;
16
+ speedAndEndurance: number;
17
+ lesson: number;
18
+ squad: number;
19
+ }
20
+ export type TrainingBaseHoursField = 'matchPractice' | 'tactical' | 'serve' | 'return' | 'forehand' | 'backhand' | 'volley' | 'overhead' | 'dropShot' | 'slice' | 'strengthAndConditioning' | 'speedAndEndurance' | 'lesson' | 'squad';
3
21
  export declare const TRAINING: {
4
22
  readonly ACTIVITY: {
5
23
  readonly MatchPractice: "Match Practice";
@@ -26,7 +44,7 @@ export declare const TRAINING_ARRAYS: {
26
44
  ACTIVITY: TRAINING_ACTIVITY_UNION[];
27
45
  FORMAT: TRAINING_FORMAT_UNION[];
28
46
  };
29
- export interface TrainingItem extends TrainingWeeklyItem {
47
+ export interface TrainingLogItem extends TrainingBaseItem {
30
48
  date: Date;
31
49
  isoWeek: number;
32
50
  isoYear: number;
@@ -1,5 +1,54 @@
1
1
  import { z } from 'zod';
2
- export declare const trainingItemSchema: z.ZodObject<{
2
+ export declare const trainingBaseItemSchema: z.ZodObject<{
3
+ playerId: z.ZodString;
4
+ matchPractice: z.ZodNumber;
5
+ tactical: z.ZodNumber;
6
+ serve: z.ZodNumber;
7
+ return: z.ZodNumber;
8
+ forehand: z.ZodNumber;
9
+ backhand: z.ZodNumber;
10
+ volley: z.ZodNumber;
11
+ overhead: z.ZodNumber;
12
+ dropShot: z.ZodNumber;
13
+ slice: z.ZodNumber;
14
+ strengthAndConditioning: z.ZodNumber;
15
+ speedAndEndurance: z.ZodNumber;
16
+ lesson: z.ZodNumber;
17
+ squad: z.ZodNumber;
18
+ }, "strip", z.ZodTypeAny, {
19
+ slice: number;
20
+ serve: number;
21
+ return: number;
22
+ playerId: string;
23
+ matchPractice: number;
24
+ tactical: number;
25
+ forehand: number;
26
+ backhand: number;
27
+ volley: number;
28
+ overhead: number;
29
+ dropShot: number;
30
+ strengthAndConditioning: number;
31
+ speedAndEndurance: number;
32
+ lesson: number;
33
+ squad: number;
34
+ }, {
35
+ slice: number;
36
+ serve: number;
37
+ return: number;
38
+ playerId: string;
39
+ matchPractice: number;
40
+ tactical: number;
41
+ forehand: number;
42
+ backhand: number;
43
+ volley: number;
44
+ overhead: number;
45
+ dropShot: number;
46
+ strengthAndConditioning: number;
47
+ speedAndEndurance: number;
48
+ lesson: number;
49
+ squad: number;
50
+ }>;
51
+ export declare const trainingLogItemSchema: z.ZodObject<{
3
52
  playerId: z.ZodString;
4
53
  date: z.ZodEffects<z.ZodEffects<z.ZodDate, Date, Date>, Date, unknown>;
5
54
  isoWeek: z.ZodNumber;
@@ -1,8 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.trainingItemSchema = void 0;
3
+ exports.trainingLogItemSchema = exports.trainingBaseItemSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- exports.trainingItemSchema = zod_1.z.object({
5
+ exports.trainingBaseItemSchema = zod_1.z.object({
6
+ playerId: zod_1.z.string().min(1, 'PlayerId is required.'),
7
+ // Applied Tennis
8
+ matchPractice: zod_1.z.number().nonnegative('Match practice hours must be a non-negative number.'),
9
+ tactical: zod_1.z.number().nonnegative('Tactical hours must be a non-negative number.'),
10
+ // Serve Phase
11
+ serve: zod_1.z.number().nonnegative('Serve hours must be a non-negative number.'),
12
+ return: zod_1.z.number().nonnegative('Return hours must be a non-negative number.'),
13
+ // Groundstrokes
14
+ forehand: zod_1.z.number().nonnegative('Forehand hours must be a non-negative number.'),
15
+ backhand: zod_1.z.number().nonnegative('Backhand hours must be a non-negative number.'),
16
+ // Net & Touch shots
17
+ volley: zod_1.z.number().nonnegative('Volley hours must be a non-negative number.'),
18
+ overhead: zod_1.z.number().nonnegative('Overhead hours must be a non-negative number.'),
19
+ dropShot: zod_1.z.number().nonnegative('Drop shot hours must be a non-negative number.'),
20
+ slice: zod_1.z.number().nonnegative('Slice hours must be a non-negative number.'),
21
+ // Physical
22
+ strengthAndConditioning: zod_1.z.number().nonnegative('Strength & conditioning hours must be a non-negative number.'),
23
+ speedAndEndurance: zod_1.z.number().nonnegative('Speed & endurance hours must be a non-negative number.'),
24
+ // Training Formats
25
+ lesson: zod_1.z.number().nonnegative('Lesson hours must be a non-negative number.'),
26
+ squad: zod_1.z.number().nonnegative('Squad hours must be a non-negative number.'),
27
+ });
28
+ exports.trainingLogItemSchema = zod_1.z.object({
6
29
  playerId: zod_1.z.string().min(1, 'PlayerId is required.'),
7
30
  date: zod_1.z.preprocess(arg => (typeof arg === 'string' || arg instanceof Date ? new Date(arg) : undefined), zod_1.z.date().refine(d => !isNaN(d.getTime()), 'Invalid weekStart date.')),
8
31
  isoWeek: zod_1.z.number().int().min(1, 'isoWeek must be between 1 and 53').max(53, 'isoWeek must be between 1 and 53'),
@@ -49,7 +49,6 @@ export declare const COLLECTION: {
49
49
  readonly performance: "performance";
50
50
  readonly player: "player";
51
51
  readonly spending: "spending";
52
- readonly trainingWeekly: "trainingWeekly";
53
52
  readonly training: "training";
54
53
  readonly tournament: "tournament";
55
54
  };
@@ -41,7 +41,6 @@ export const COLLECTION = {
41
41
  performance: "performance",
42
42
  player: "player",
43
43
  spending: "spending",
44
- trainingWeekly: "trainingWeekly",
45
44
  training: "training",
46
45
  tournament: "tournament",
47
46
  };
@@ -1,2 +1,3 @@
1
- import { TrainingItem } from './interfaces';
2
- export declare const createEmptyTrainingItem: (playerId: string, isoYear: number, isoWeek: number) => TrainingItem;
1
+ import { TrainingLogItem, TrainingBaseItem } from './interfaces';
2
+ export declare function createInitialTrainingBaseItem(playerId: string): TrainingBaseItem;
3
+ export declare const createEmptyTrainingLogItem: (playerId: string, isoYear: number, isoWeek: number) => TrainingLogItem;
@@ -1,6 +1,27 @@
1
1
  import { startOfISOWeek, setISOWeek, setISOWeekYear } from 'date-fns';
2
- // Factory function for creating initial TrainingItem
3
- export const createEmptyTrainingItem = (playerId, isoYear, isoWeek) => {
2
+ export function createInitialTrainingBaseItem(playerId) {
3
+ return {
4
+ _id: '',
5
+ playerId,
6
+ matchPractice: 0,
7
+ tactical: 0,
8
+ serve: 0,
9
+ return: 0,
10
+ forehand: 0,
11
+ backhand: 0,
12
+ volley: 0,
13
+ overhead: 0,
14
+ dropShot: 0,
15
+ slice: 0,
16
+ strengthAndConditioning: 0,
17
+ speedAndEndurance: 0,
18
+ // Training Formats
19
+ lesson: 0,
20
+ squad: 0,
21
+ };
22
+ }
23
+ // Factory function for creating initial TrainingLogItem
24
+ export const createEmptyTrainingLogItem = (playerId, isoYear, isoWeek) => {
4
25
  let date = new Date(isoYear, 0, 4); // 4th Jan is always in the first ISO week
5
26
  date = setISOWeekYear(date, isoYear);
6
27
  date = setISOWeek(date, isoWeek);
@@ -1,5 +1,23 @@
1
- import { TrainingWeeklyItem } from '../trainingWeekly';
2
1
  import { ValueOf } from '../general';
2
+ export interface TrainingBaseItem {
3
+ _id: string;
4
+ playerId: string;
5
+ matchPractice: number;
6
+ tactical: number;
7
+ serve: number;
8
+ return: number;
9
+ forehand: number;
10
+ backhand: number;
11
+ volley: number;
12
+ overhead: number;
13
+ dropShot: number;
14
+ slice: number;
15
+ strengthAndConditioning: number;
16
+ speedAndEndurance: number;
17
+ lesson: number;
18
+ squad: number;
19
+ }
20
+ export type TrainingBaseHoursField = 'matchPractice' | 'tactical' | 'serve' | 'return' | 'forehand' | 'backhand' | 'volley' | 'overhead' | 'dropShot' | 'slice' | 'strengthAndConditioning' | 'speedAndEndurance' | 'lesson' | 'squad';
3
21
  export declare const TRAINING: {
4
22
  readonly ACTIVITY: {
5
23
  readonly MatchPractice: "Match Practice";
@@ -26,7 +44,7 @@ export declare const TRAINING_ARRAYS: {
26
44
  ACTIVITY: TRAINING_ACTIVITY_UNION[];
27
45
  FORMAT: TRAINING_FORMAT_UNION[];
28
46
  };
29
- export interface TrainingItem extends TrainingWeeklyItem {
47
+ export interface TrainingLogItem extends TrainingBaseItem {
30
48
  date: Date;
31
49
  isoWeek: number;
32
50
  isoYear: number;
@@ -1,5 +1,54 @@
1
1
  import { z } from 'zod';
2
- export declare const trainingItemSchema: z.ZodObject<{
2
+ export declare const trainingBaseItemSchema: z.ZodObject<{
3
+ playerId: z.ZodString;
4
+ matchPractice: z.ZodNumber;
5
+ tactical: z.ZodNumber;
6
+ serve: z.ZodNumber;
7
+ return: z.ZodNumber;
8
+ forehand: z.ZodNumber;
9
+ backhand: z.ZodNumber;
10
+ volley: z.ZodNumber;
11
+ overhead: z.ZodNumber;
12
+ dropShot: z.ZodNumber;
13
+ slice: z.ZodNumber;
14
+ strengthAndConditioning: z.ZodNumber;
15
+ speedAndEndurance: z.ZodNumber;
16
+ lesson: z.ZodNumber;
17
+ squad: z.ZodNumber;
18
+ }, "strip", z.ZodTypeAny, {
19
+ slice: number;
20
+ serve: number;
21
+ return: number;
22
+ playerId: string;
23
+ matchPractice: number;
24
+ tactical: number;
25
+ forehand: number;
26
+ backhand: number;
27
+ volley: number;
28
+ overhead: number;
29
+ dropShot: number;
30
+ strengthAndConditioning: number;
31
+ speedAndEndurance: number;
32
+ lesson: number;
33
+ squad: number;
34
+ }, {
35
+ slice: number;
36
+ serve: number;
37
+ return: number;
38
+ playerId: string;
39
+ matchPractice: number;
40
+ tactical: number;
41
+ forehand: number;
42
+ backhand: number;
43
+ volley: number;
44
+ overhead: number;
45
+ dropShot: number;
46
+ strengthAndConditioning: number;
47
+ speedAndEndurance: number;
48
+ lesson: number;
49
+ squad: number;
50
+ }>;
51
+ export declare const trainingLogItemSchema: z.ZodObject<{
3
52
  playerId: z.ZodString;
4
53
  date: z.ZodEffects<z.ZodEffects<z.ZodDate, Date, Date>, Date, unknown>;
5
54
  isoWeek: z.ZodNumber;
@@ -1,5 +1,28 @@
1
1
  import { z } from 'zod';
2
- export const trainingItemSchema = z.object({
2
+ export const trainingBaseItemSchema = z.object({
3
+ playerId: z.string().min(1, 'PlayerId is required.'),
4
+ // Applied Tennis
5
+ matchPractice: z.number().nonnegative('Match practice hours must be a non-negative number.'),
6
+ tactical: z.number().nonnegative('Tactical hours must be a non-negative number.'),
7
+ // Serve Phase
8
+ serve: z.number().nonnegative('Serve hours must be a non-negative number.'),
9
+ return: z.number().nonnegative('Return hours must be a non-negative number.'),
10
+ // Groundstrokes
11
+ forehand: z.number().nonnegative('Forehand hours must be a non-negative number.'),
12
+ backhand: z.number().nonnegative('Backhand hours must be a non-negative number.'),
13
+ // Net & Touch shots
14
+ volley: z.number().nonnegative('Volley hours must be a non-negative number.'),
15
+ overhead: z.number().nonnegative('Overhead hours must be a non-negative number.'),
16
+ dropShot: z.number().nonnegative('Drop shot hours must be a non-negative number.'),
17
+ slice: z.number().nonnegative('Slice hours must be a non-negative number.'),
18
+ // Physical
19
+ strengthAndConditioning: z.number().nonnegative('Strength & conditioning hours must be a non-negative number.'),
20
+ speedAndEndurance: z.number().nonnegative('Speed & endurance hours must be a non-negative number.'),
21
+ // Training Formats
22
+ lesson: z.number().nonnegative('Lesson hours must be a non-negative number.'),
23
+ squad: z.number().nonnegative('Squad hours must be a non-negative number.'),
24
+ });
25
+ export const trainingLogItemSchema = z.object({
3
26
  playerId: z.string().min(1, 'PlayerId is required.'),
4
27
  date: z.preprocess(arg => (typeof arg === 'string' || arg instanceof Date ? new Date(arg) : undefined), z.date().refine(d => !isNaN(d.getTime()), 'Invalid weekStart date.')),
5
28
  isoWeek: z.number().int().min(1, 'isoWeek must be between 1 and 53').max(53, 'isoWeek must be between 1 and 53'),
@@ -49,7 +49,6 @@ export declare const COLLECTION: {
49
49
  readonly performance: "performance";
50
50
  readonly player: "player";
51
51
  readonly spending: "spending";
52
- readonly trainingWeekly: "trainingWeekly";
53
52
  readonly training: "training";
54
53
  readonly tournament: "tournament";
55
54
  };
@@ -1,2 +1,3 @@
1
- import { TrainingItem } from './interfaces';
2
- export declare const createEmptyTrainingItem: (playerId: string, isoYear: number, isoWeek: number) => TrainingItem;
1
+ import { TrainingLogItem, TrainingBaseItem } from './interfaces';
2
+ export declare function createInitialTrainingBaseItem(playerId: string): TrainingBaseItem;
3
+ export declare const createEmptyTrainingLogItem: (playerId: string, isoYear: number, isoWeek: number) => TrainingLogItem;
@@ -1,5 +1,23 @@
1
- import { TrainingWeeklyItem } from '../trainingWeekly';
2
1
  import { ValueOf } from '../general';
2
+ export interface TrainingBaseItem {
3
+ _id: string;
4
+ playerId: string;
5
+ matchPractice: number;
6
+ tactical: number;
7
+ serve: number;
8
+ return: number;
9
+ forehand: number;
10
+ backhand: number;
11
+ volley: number;
12
+ overhead: number;
13
+ dropShot: number;
14
+ slice: number;
15
+ strengthAndConditioning: number;
16
+ speedAndEndurance: number;
17
+ lesson: number;
18
+ squad: number;
19
+ }
20
+ export type TrainingBaseHoursField = 'matchPractice' | 'tactical' | 'serve' | 'return' | 'forehand' | 'backhand' | 'volley' | 'overhead' | 'dropShot' | 'slice' | 'strengthAndConditioning' | 'speedAndEndurance' | 'lesson' | 'squad';
3
21
  export declare const TRAINING: {
4
22
  readonly ACTIVITY: {
5
23
  readonly MatchPractice: "Match Practice";
@@ -26,7 +44,7 @@ export declare const TRAINING_ARRAYS: {
26
44
  ACTIVITY: TRAINING_ACTIVITY_UNION[];
27
45
  FORMAT: TRAINING_FORMAT_UNION[];
28
46
  };
29
- export interface TrainingItem extends TrainingWeeklyItem {
47
+ export interface TrainingLogItem extends TrainingBaseItem {
30
48
  date: Date;
31
49
  isoWeek: number;
32
50
  isoYear: number;
@@ -1,5 +1,54 @@
1
1
  import { z } from 'zod';
2
- export declare const trainingItemSchema: z.ZodObject<{
2
+ export declare const trainingBaseItemSchema: z.ZodObject<{
3
+ playerId: z.ZodString;
4
+ matchPractice: z.ZodNumber;
5
+ tactical: z.ZodNumber;
6
+ serve: z.ZodNumber;
7
+ return: z.ZodNumber;
8
+ forehand: z.ZodNumber;
9
+ backhand: z.ZodNumber;
10
+ volley: z.ZodNumber;
11
+ overhead: z.ZodNumber;
12
+ dropShot: z.ZodNumber;
13
+ slice: z.ZodNumber;
14
+ strengthAndConditioning: z.ZodNumber;
15
+ speedAndEndurance: z.ZodNumber;
16
+ lesson: z.ZodNumber;
17
+ squad: z.ZodNumber;
18
+ }, "strip", z.ZodTypeAny, {
19
+ slice: number;
20
+ serve: number;
21
+ return: number;
22
+ playerId: string;
23
+ matchPractice: number;
24
+ tactical: number;
25
+ forehand: number;
26
+ backhand: number;
27
+ volley: number;
28
+ overhead: number;
29
+ dropShot: number;
30
+ strengthAndConditioning: number;
31
+ speedAndEndurance: number;
32
+ lesson: number;
33
+ squad: number;
34
+ }, {
35
+ slice: number;
36
+ serve: number;
37
+ return: number;
38
+ playerId: string;
39
+ matchPractice: number;
40
+ tactical: number;
41
+ forehand: number;
42
+ backhand: number;
43
+ volley: number;
44
+ overhead: number;
45
+ dropShot: number;
46
+ strengthAndConditioning: number;
47
+ speedAndEndurance: number;
48
+ lesson: number;
49
+ squad: number;
50
+ }>;
51
+ export declare const trainingLogItemSchema: z.ZodObject<{
3
52
  playerId: z.ZodString;
4
53
  date: z.ZodEffects<z.ZodEffects<z.ZodDate, Date, Date>, Date, unknown>;
5
54
  isoWeek: z.ZodNumber;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tenniscommon",
3
- "version": "1.1.40",
3
+ "version": "1.1.41",
4
4
  "description": "Types for Tennis application",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -86,11 +86,6 @@
86
86
  "import": "./dist/esm/common/training/index.js",
87
87
  "types": "./dist/types/common/training/index.d.ts"
88
88
  },
89
- "./TrainingWeekly": {
90
- "require": "./dist/cjs/common/trainingWeekly/index.js",
91
- "import": "./dist/esm/common/trainingWeekly/index.js",
92
- "types": "./dist/types/common/trainingWeekly/index.d.ts"
93
- },
94
89
  "./General": {
95
90
  "require": "./dist/cjs/common/general/index.js",
96
91
  "import": "./dist/esm/common/general/index.js",
@@ -1,3 +0,0 @@
1
- export * from './interfaces';
2
- export * from './initialData';
3
- export * from './validation';
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./interfaces"), exports);
18
- __exportStar(require("./initialData"), exports);
19
- __exportStar(require("./validation"), exports);
@@ -1,2 +0,0 @@
1
- import { TrainingWeeklyItem } from './interfaces';
2
- export declare function createInitialTrainingWeeklyItem(playerId: string): TrainingWeeklyItem;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createInitialTrainingWeeklyItem = createInitialTrainingWeeklyItem;
4
- function createInitialTrainingWeeklyItem(playerId) {
5
- return {
6
- _id: '',
7
- playerId,
8
- matchPractice: 0,
9
- tactical: 0,
10
- serve: 0,
11
- return: 0,
12
- forehand: 0,
13
- backhand: 0,
14
- volley: 0,
15
- overhead: 0,
16
- dropShot: 0,
17
- slice: 0,
18
- strengthAndConditioning: 0,
19
- speedAndEndurance: 0,
20
- // Training Formats
21
- lesson: 0,
22
- squad: 0,
23
- };
24
- }
@@ -1,19 +0,0 @@
1
- export interface TrainingWeeklyItem {
2
- _id: string;
3
- playerId: string;
4
- matchPractice: number;
5
- tactical: number;
6
- serve: number;
7
- return: number;
8
- forehand: number;
9
- backhand: number;
10
- volley: number;
11
- overhead: number;
12
- dropShot: number;
13
- slice: number;
14
- strengthAndConditioning: number;
15
- speedAndEndurance: number;
16
- lesson: number;
17
- squad: number;
18
- }
19
- export type TrainingWeeklyHoursField = Exclude<keyof TrainingWeeklyItem, '_id' | 'playerId'>;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,50 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const trainingWeeklyItemSchema: z.ZodObject<{
3
- playerId: z.ZodString;
4
- matchPractice: z.ZodNumber;
5
- tactical: z.ZodNumber;
6
- serve: z.ZodNumber;
7
- return: z.ZodNumber;
8
- forehand: z.ZodNumber;
9
- backhand: z.ZodNumber;
10
- volley: z.ZodNumber;
11
- overhead: z.ZodNumber;
12
- dropShot: z.ZodNumber;
13
- slice: z.ZodNumber;
14
- strengthAndConditioning: z.ZodNumber;
15
- speedAndEndurance: z.ZodNumber;
16
- lesson: z.ZodNumber;
17
- squad: z.ZodNumber;
18
- }, "strip", z.ZodTypeAny, {
19
- slice: number;
20
- serve: number;
21
- return: number;
22
- playerId: string;
23
- matchPractice: number;
24
- tactical: number;
25
- forehand: number;
26
- backhand: number;
27
- volley: number;
28
- overhead: number;
29
- dropShot: number;
30
- strengthAndConditioning: number;
31
- speedAndEndurance: number;
32
- lesson: number;
33
- squad: number;
34
- }, {
35
- slice: number;
36
- serve: number;
37
- return: number;
38
- playerId: string;
39
- matchPractice: number;
40
- tactical: number;
41
- forehand: number;
42
- backhand: number;
43
- volley: number;
44
- overhead: number;
45
- dropShot: number;
46
- strengthAndConditioning: number;
47
- speedAndEndurance: number;
48
- lesson: number;
49
- squad: number;
50
- }>;
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.trainingWeeklyItemSchema = void 0;
4
- const zod_1 = require("zod");
5
- exports.trainingWeeklyItemSchema = zod_1.z.object({
6
- playerId: zod_1.z.string().min(1, 'PlayerId is required.'),
7
- // Applied Tennis
8
- matchPractice: zod_1.z.number().nonnegative('Match practice hours must be a non-negative number.'),
9
- tactical: zod_1.z.number().nonnegative('Tactical hours must be a non-negative number.'),
10
- // Serve Phase
11
- serve: zod_1.z.number().nonnegative('Serve hours must be a non-negative number.'),
12
- return: zod_1.z.number().nonnegative('Return hours must be a non-negative number.'),
13
- // Groundstrokes
14
- forehand: zod_1.z.number().nonnegative('Forehand hours must be a non-negative number.'),
15
- backhand: zod_1.z.number().nonnegative('Backhand hours must be a non-negative number.'),
16
- // Net & Touch shots
17
- volley: zod_1.z.number().nonnegative('Volley hours must be a non-negative number.'),
18
- overhead: zod_1.z.number().nonnegative('Overhead hours must be a non-negative number.'),
19
- dropShot: zod_1.z.number().nonnegative('Drop shot hours must be a non-negative number.'),
20
- slice: zod_1.z.number().nonnegative('Slice hours must be a non-negative number.'),
21
- // Physical
22
- strengthAndConditioning: zod_1.z.number().nonnegative('Strength & conditioning hours must be a non-negative number.'),
23
- speedAndEndurance: zod_1.z.number().nonnegative('Speed & endurance hours must be a non-negative number.'),
24
- // Training Formats
25
- lesson: zod_1.z.number().nonnegative('Lesson hours must be a non-negative number.'),
26
- squad: zod_1.z.number().nonnegative('Squad hours must be a non-negative number.'),
27
- });
@@ -1,3 +0,0 @@
1
- export * from './interfaces';
2
- export * from './initialData';
3
- export * from './validation';
@@ -1,3 +0,0 @@
1
- export * from './interfaces';
2
- export * from './initialData';
3
- export * from './validation';
@@ -1,2 +0,0 @@
1
- import { TrainingWeeklyItem } from './interfaces';
2
- export declare function createInitialTrainingWeeklyItem(playerId: string): TrainingWeeklyItem;
@@ -1,21 +0,0 @@
1
- export function createInitialTrainingWeeklyItem(playerId) {
2
- return {
3
- _id: '',
4
- playerId,
5
- matchPractice: 0,
6
- tactical: 0,
7
- serve: 0,
8
- return: 0,
9
- forehand: 0,
10
- backhand: 0,
11
- volley: 0,
12
- overhead: 0,
13
- dropShot: 0,
14
- slice: 0,
15
- strengthAndConditioning: 0,
16
- speedAndEndurance: 0,
17
- // Training Formats
18
- lesson: 0,
19
- squad: 0,
20
- };
21
- }
@@ -1,19 +0,0 @@
1
- export interface TrainingWeeklyItem {
2
- _id: string;
3
- playerId: string;
4
- matchPractice: number;
5
- tactical: number;
6
- serve: number;
7
- return: number;
8
- forehand: number;
9
- backhand: number;
10
- volley: number;
11
- overhead: number;
12
- dropShot: number;
13
- slice: number;
14
- strengthAndConditioning: number;
15
- speedAndEndurance: number;
16
- lesson: number;
17
- squad: number;
18
- }
19
- export type TrainingWeeklyHoursField = Exclude<keyof TrainingWeeklyItem, '_id' | 'playerId'>;
@@ -1 +0,0 @@
1
- export {};
@@ -1,50 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const trainingWeeklyItemSchema: z.ZodObject<{
3
- playerId: z.ZodString;
4
- matchPractice: z.ZodNumber;
5
- tactical: z.ZodNumber;
6
- serve: z.ZodNumber;
7
- return: z.ZodNumber;
8
- forehand: z.ZodNumber;
9
- backhand: z.ZodNumber;
10
- volley: z.ZodNumber;
11
- overhead: z.ZodNumber;
12
- dropShot: z.ZodNumber;
13
- slice: z.ZodNumber;
14
- strengthAndConditioning: z.ZodNumber;
15
- speedAndEndurance: z.ZodNumber;
16
- lesson: z.ZodNumber;
17
- squad: z.ZodNumber;
18
- }, "strip", z.ZodTypeAny, {
19
- slice: number;
20
- serve: number;
21
- return: number;
22
- playerId: string;
23
- matchPractice: number;
24
- tactical: number;
25
- forehand: number;
26
- backhand: number;
27
- volley: number;
28
- overhead: number;
29
- dropShot: number;
30
- strengthAndConditioning: number;
31
- speedAndEndurance: number;
32
- lesson: number;
33
- squad: number;
34
- }, {
35
- slice: number;
36
- serve: number;
37
- return: number;
38
- playerId: string;
39
- matchPractice: number;
40
- tactical: number;
41
- forehand: number;
42
- backhand: number;
43
- volley: number;
44
- overhead: number;
45
- dropShot: number;
46
- strengthAndConditioning: number;
47
- speedAndEndurance: number;
48
- lesson: number;
49
- squad: number;
50
- }>;
@@ -1,24 +0,0 @@
1
- import { z } from 'zod';
2
- export const trainingWeeklyItemSchema = z.object({
3
- playerId: z.string().min(1, 'PlayerId is required.'),
4
- // Applied Tennis
5
- matchPractice: z.number().nonnegative('Match practice hours must be a non-negative number.'),
6
- tactical: z.number().nonnegative('Tactical hours must be a non-negative number.'),
7
- // Serve Phase
8
- serve: z.number().nonnegative('Serve hours must be a non-negative number.'),
9
- return: z.number().nonnegative('Return hours must be a non-negative number.'),
10
- // Groundstrokes
11
- forehand: z.number().nonnegative('Forehand hours must be a non-negative number.'),
12
- backhand: z.number().nonnegative('Backhand hours must be a non-negative number.'),
13
- // Net & Touch shots
14
- volley: z.number().nonnegative('Volley hours must be a non-negative number.'),
15
- overhead: z.number().nonnegative('Overhead hours must be a non-negative number.'),
16
- dropShot: z.number().nonnegative('Drop shot hours must be a non-negative number.'),
17
- slice: z.number().nonnegative('Slice hours must be a non-negative number.'),
18
- // Physical
19
- strengthAndConditioning: z.number().nonnegative('Strength & conditioning hours must be a non-negative number.'),
20
- speedAndEndurance: z.number().nonnegative('Speed & endurance hours must be a non-negative number.'),
21
- // Training Formats
22
- lesson: z.number().nonnegative('Lesson hours must be a non-negative number.'),
23
- squad: z.number().nonnegative('Squad hours must be a non-negative number.'),
24
- });
@@ -1,3 +0,0 @@
1
- export * from './interfaces';
2
- export * from './initialData';
3
- export * from './validation';
@@ -1,2 +0,0 @@
1
- import { TrainingWeeklyItem } from './interfaces';
2
- export declare function createInitialTrainingWeeklyItem(playerId: string): TrainingWeeklyItem;
@@ -1,19 +0,0 @@
1
- export interface TrainingWeeklyItem {
2
- _id: string;
3
- playerId: string;
4
- matchPractice: number;
5
- tactical: number;
6
- serve: number;
7
- return: number;
8
- forehand: number;
9
- backhand: number;
10
- volley: number;
11
- overhead: number;
12
- dropShot: number;
13
- slice: number;
14
- strengthAndConditioning: number;
15
- speedAndEndurance: number;
16
- lesson: number;
17
- squad: number;
18
- }
19
- export type TrainingWeeklyHoursField = Exclude<keyof TrainingWeeklyItem, '_id' | 'playerId'>;
@@ -1,50 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const trainingWeeklyItemSchema: z.ZodObject<{
3
- playerId: z.ZodString;
4
- matchPractice: z.ZodNumber;
5
- tactical: z.ZodNumber;
6
- serve: z.ZodNumber;
7
- return: z.ZodNumber;
8
- forehand: z.ZodNumber;
9
- backhand: z.ZodNumber;
10
- volley: z.ZodNumber;
11
- overhead: z.ZodNumber;
12
- dropShot: z.ZodNumber;
13
- slice: z.ZodNumber;
14
- strengthAndConditioning: z.ZodNumber;
15
- speedAndEndurance: z.ZodNumber;
16
- lesson: z.ZodNumber;
17
- squad: z.ZodNumber;
18
- }, "strip", z.ZodTypeAny, {
19
- slice: number;
20
- serve: number;
21
- return: number;
22
- playerId: string;
23
- matchPractice: number;
24
- tactical: number;
25
- forehand: number;
26
- backhand: number;
27
- volley: number;
28
- overhead: number;
29
- dropShot: number;
30
- strengthAndConditioning: number;
31
- speedAndEndurance: number;
32
- lesson: number;
33
- squad: number;
34
- }, {
35
- slice: number;
36
- serve: number;
37
- return: number;
38
- playerId: string;
39
- matchPractice: number;
40
- tactical: number;
41
- forehand: number;
42
- backhand: number;
43
- volley: number;
44
- overhead: number;
45
- dropShot: number;
46
- strengthAndConditioning: number;
47
- speedAndEndurance: number;
48
- lesson: number;
49
- squad: number;
50
- }>;