volleyballsimtypes 0.0.489 → 0.0.492

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 (151) hide show
  1. package/dist/cjs/src/api/index.d.ts +4 -3
  2. package/dist/cjs/src/api/index.js +15 -0
  3. package/dist/cjs/src/api/tactics-player-refs.d.ts +13 -0
  4. package/dist/cjs/src/api/tactics-player-refs.js +43 -0
  5. package/dist/cjs/src/data/event-purge.d.ts +14 -0
  6. package/dist/cjs/src/data/event-purge.js +116 -0
  7. package/dist/cjs/src/data/index.d.ts +1 -0
  8. package/dist/cjs/src/data/index.js +1 -0
  9. package/dist/cjs/src/data/init-models.js +41 -0
  10. package/dist/cjs/src/data/models/competition.d.ts +1 -1
  11. package/dist/cjs/src/data/models/competition.js +1 -1
  12. package/dist/cjs/src/data/models/event-bot-team.d.ts +21 -0
  13. package/dist/cjs/src/data/models/event-bot-team.js +44 -0
  14. package/dist/cjs/src/data/models/event-competition.d.ts +29 -0
  15. package/dist/cjs/src/data/models/event-competition.js +52 -0
  16. package/dist/cjs/src/data/models/event-pack-player.d.ts +22 -0
  17. package/dist/cjs/src/data/models/event-pack-player.js +31 -0
  18. package/dist/cjs/src/data/models/event-pack.d.ts +37 -0
  19. package/dist/cjs/src/data/models/event-pack.js +55 -0
  20. package/dist/cjs/src/data/models/event-result.d.ts +34 -0
  21. package/dist/cjs/src/data/models/event-result.js +48 -0
  22. package/dist/cjs/src/data/models/event-squad.d.ts +30 -0
  23. package/dist/cjs/src/data/models/event-squad.js +46 -0
  24. package/dist/cjs/src/data/models/event.d.ts +51 -0
  25. package/dist/cjs/src/data/models/event.js +82 -0
  26. package/dist/cjs/src/data/models/index.d.ts +7 -0
  27. package/dist/cjs/src/data/models/index.js +7 -0
  28. package/dist/cjs/src/data/models/lineup-preset.d.ts +3 -1
  29. package/dist/cjs/src/data/models/lineup-preset.js +53 -0
  30. package/dist/cjs/src/data/models/tactics.d.ts +2 -2
  31. package/dist/cjs/src/data/transformers/tactics.test.js +19 -0
  32. package/dist/cjs/src/index.d.ts +1 -0
  33. package/dist/cjs/src/index.js +6 -0
  34. package/dist/cjs/src/service/competition/event-draft.d.ts +46 -0
  35. package/dist/cjs/src/service/competition/event-draft.js +85 -0
  36. package/dist/cjs/src/service/competition/event-draft.test.d.ts +1 -0
  37. package/dist/cjs/src/service/competition/event-draft.test.js +91 -0
  38. package/dist/cjs/src/service/competition/event-rewards.d.ts +26 -0
  39. package/dist/cjs/src/service/competition/event-rewards.js +49 -0
  40. package/dist/cjs/src/service/competition/event-rewards.test.d.ts +1 -0
  41. package/dist/cjs/src/service/competition/event-rewards.test.js +58 -0
  42. package/dist/cjs/src/service/competition/event-schedule.d.ts +126 -0
  43. package/dist/cjs/src/service/competition/event-schedule.js +141 -0
  44. package/dist/cjs/src/service/competition/event-schedule.test.d.ts +1 -0
  45. package/dist/cjs/src/service/competition/event-schedule.test.js +138 -0
  46. package/dist/cjs/src/service/competition/index.d.ts +3 -0
  47. package/dist/cjs/src/service/competition/index.js +3 -0
  48. package/dist/cjs/src/service/match/index.d.ts +1 -0
  49. package/dist/cjs/src/service/match/index.js +1 -0
  50. package/dist/cjs/src/service/match/match-generator.js +25 -48
  51. package/dist/cjs/src/service/match/match-generator.test.d.ts +1 -0
  52. package/dist/cjs/src/service/match/match-generator.test.js +48 -0
  53. package/dist/cjs/src/service/match/round-robin.d.ts +11 -0
  54. package/dist/cjs/src/service/match/round-robin.js +44 -0
  55. package/dist/cjs/src/service/match/round-robin.test.d.ts +1 -0
  56. package/dist/cjs/src/service/match/round-robin.test.js +71 -0
  57. package/dist/cjs/src/service/notification/catalog/en.json +21 -0
  58. package/dist/cjs/src/service/notification/catalog/es.json +21 -0
  59. package/dist/cjs/src/service/notification/catalog/fr.json +21 -0
  60. package/dist/cjs/src/service/notification/catalog/it.json +21 -0
  61. package/dist/cjs/src/service/notification/catalog/pl.json +21 -0
  62. package/dist/cjs/src/service/notification/catalog/pt-BR.json +21 -0
  63. package/dist/cjs/src/service/notification/catalog/tr.json +21 -0
  64. package/dist/cjs/src/service/notification/notification-type.d.ts +1 -1
  65. package/dist/cjs/src/service/notification/notification-type.js +6 -1
  66. package/dist/cjs/src/service/notification/notification.test.js +3 -1
  67. package/dist/cjs/src/service/notification/registry.js +52 -0
  68. package/dist/cjs/src/service/player/player-generator.d.ts +1 -0
  69. package/dist/cjs/src/service/player/player-generator.js +16 -1
  70. package/dist/cjs/src/service/team/blocking-preference.d.ts +3 -1
  71. package/dist/cjs/src/service/team/blocking-preference.js +7 -0
  72. package/dist/cjs/src/service/team/schemas/tactics.z.d.ts +2 -2
  73. package/dist/cjs/src/service/team/schemas/tactics.z.js +7 -2
  74. package/dist/cjs/src/service/team/schemas/tactics.z.test.js +32 -0
  75. package/dist/cjs/src/service/team/schemas/team.z.d.ts +2 -2
  76. package/dist/esm/src/api/index.d.ts +4 -3
  77. package/dist/esm/src/api/index.js +1 -0
  78. package/dist/esm/src/api/tactics-player-refs.d.ts +13 -0
  79. package/dist/esm/src/api/tactics-player-refs.js +40 -0
  80. package/dist/esm/src/data/event-purge.d.ts +14 -0
  81. package/dist/esm/src/data/event-purge.js +110 -0
  82. package/dist/esm/src/data/index.d.ts +1 -0
  83. package/dist/esm/src/data/index.js +1 -0
  84. package/dist/esm/src/data/init-models.js +42 -1
  85. package/dist/esm/src/data/models/competition.d.ts +1 -1
  86. package/dist/esm/src/data/models/competition.js +1 -1
  87. package/dist/esm/src/data/models/event-bot-team.d.ts +21 -0
  88. package/dist/esm/src/data/models/event-bot-team.js +40 -0
  89. package/dist/esm/src/data/models/event-competition.d.ts +29 -0
  90. package/dist/esm/src/data/models/event-competition.js +48 -0
  91. package/dist/esm/src/data/models/event-pack-player.d.ts +22 -0
  92. package/dist/esm/src/data/models/event-pack-player.js +27 -0
  93. package/dist/esm/src/data/models/event-pack.d.ts +37 -0
  94. package/dist/esm/src/data/models/event-pack.js +51 -0
  95. package/dist/esm/src/data/models/event-result.d.ts +34 -0
  96. package/dist/esm/src/data/models/event-result.js +44 -0
  97. package/dist/esm/src/data/models/event-squad.d.ts +30 -0
  98. package/dist/esm/src/data/models/event-squad.js +42 -0
  99. package/dist/esm/src/data/models/event.d.ts +51 -0
  100. package/dist/esm/src/data/models/event.js +78 -0
  101. package/dist/esm/src/data/models/index.d.ts +7 -0
  102. package/dist/esm/src/data/models/index.js +7 -0
  103. package/dist/esm/src/data/models/lineup-preset.d.ts +3 -1
  104. package/dist/esm/src/data/models/lineup-preset.js +20 -0
  105. package/dist/esm/src/data/models/tactics.d.ts +2 -2
  106. package/dist/esm/src/data/transformers/tactics.test.js +20 -1
  107. package/dist/esm/src/index.d.ts +1 -0
  108. package/dist/esm/src/index.js +4 -0
  109. package/dist/esm/src/service/competition/event-draft.d.ts +46 -0
  110. package/dist/esm/src/service/competition/event-draft.js +78 -0
  111. package/dist/esm/src/service/competition/event-draft.test.d.ts +1 -0
  112. package/dist/esm/src/service/competition/event-draft.test.js +89 -0
  113. package/dist/esm/src/service/competition/event-rewards.d.ts +26 -0
  114. package/dist/esm/src/service/competition/event-rewards.js +44 -0
  115. package/dist/esm/src/service/competition/event-rewards.test.d.ts +1 -0
  116. package/dist/esm/src/service/competition/event-rewards.test.js +56 -0
  117. package/dist/esm/src/service/competition/event-schedule.d.ts +126 -0
  118. package/dist/esm/src/service/competition/event-schedule.js +129 -0
  119. package/dist/esm/src/service/competition/event-schedule.test.d.ts +1 -0
  120. package/dist/esm/src/service/competition/event-schedule.test.js +136 -0
  121. package/dist/esm/src/service/competition/index.d.ts +3 -0
  122. package/dist/esm/src/service/competition/index.js +3 -0
  123. package/dist/esm/src/service/match/index.d.ts +1 -0
  124. package/dist/esm/src/service/match/index.js +1 -0
  125. package/dist/esm/src/service/match/match-generator.js +25 -48
  126. package/dist/esm/src/service/match/match-generator.test.d.ts +1 -0
  127. package/dist/esm/src/service/match/match-generator.test.js +43 -0
  128. package/dist/esm/src/service/match/round-robin.d.ts +11 -0
  129. package/dist/esm/src/service/match/round-robin.js +41 -0
  130. package/dist/esm/src/service/match/round-robin.test.d.ts +1 -0
  131. package/dist/esm/src/service/match/round-robin.test.js +69 -0
  132. package/dist/esm/src/service/notification/catalog/en.json +21 -0
  133. package/dist/esm/src/service/notification/catalog/es.json +21 -0
  134. package/dist/esm/src/service/notification/catalog/fr.json +21 -0
  135. package/dist/esm/src/service/notification/catalog/it.json +21 -0
  136. package/dist/esm/src/service/notification/catalog/pl.json +21 -0
  137. package/dist/esm/src/service/notification/catalog/pt-BR.json +21 -0
  138. package/dist/esm/src/service/notification/catalog/tr.json +21 -0
  139. package/dist/esm/src/service/notification/notification-type.d.ts +1 -1
  140. package/dist/esm/src/service/notification/notification-type.js +6 -1
  141. package/dist/esm/src/service/notification/notification.test.js +3 -1
  142. package/dist/esm/src/service/notification/registry.js +52 -0
  143. package/dist/esm/src/service/player/player-generator.d.ts +1 -0
  144. package/dist/esm/src/service/player/player-generator.js +15 -0
  145. package/dist/esm/src/service/team/blocking-preference.d.ts +3 -1
  146. package/dist/esm/src/service/team/blocking-preference.js +6 -1
  147. package/dist/esm/src/service/team/schemas/tactics.z.d.ts +2 -2
  148. package/dist/esm/src/service/team/schemas/tactics.z.js +7 -2
  149. package/dist/esm/src/service/team/schemas/tactics.z.test.js +32 -0
  150. package/dist/esm/src/service/team/schemas/team.z.d.ts +2 -2
  151. package/package.json +6 -1
@@ -1,5 +1,6 @@
1
1
  import { describe, it, expect } from '@jest/globals';
2
2
  import { TacticsInputSchema } from './tactics.z';
3
+ import { NO_BLOCK } from '../blocking-preference';
3
4
  import { RoleEnum } from '../../player';
4
5
  import { makeCountry, makePlayer } from '../../test-helpers';
5
6
  describe('TacticsInputSchema — second libero rules', () => {
@@ -278,4 +279,35 @@ describe('TacticsInputSchema — blocking preferences', () => {
278
279
  }));
279
280
  expect(res.success).toBe(true);
280
281
  });
282
+ it('accepts NO_BLOCK as an assignment, alongside a commit on another starter', () => {
283
+ const res = TacticsInputSchema.safeParse(baseInput({
284
+ blockingPreferences: [{ rotation: 1, targets: { [p4.id]: NO_BLOCK, [p3.id]: RoleEnum.MIDDLE_BLOCKER } }]
285
+ }));
286
+ expect(res.success).toBe(true);
287
+ if (res.success) {
288
+ expect(res.data.blockingPreferences[0].targets[p4.id]).toBe(NO_BLOCK);
289
+ expect(res.data.blockingPreferences[0].targets[p3.id]).toBe(RoleEnum.MIDDLE_BLOCKER);
290
+ }
291
+ });
292
+ it('accepts NO_BLOCK in a per-set override', () => {
293
+ const res = TacticsInputSchema.safeParse(baseInput({
294
+ blockingPreferenceSets: [[{ rotation: 1, targets: { [p4.id]: NO_BLOCK } }], []]
295
+ }));
296
+ expect(res.success).toBe(true);
297
+ });
298
+ it('still rejects a NO_BLOCK assignment on a player who is not a starter', () => {
299
+ const res = TacticsInputSchema.safeParse(baseInput({
300
+ blockingPreferences: [{ rotation: 1, targets: { [reserve.id]: NO_BLOCK } }]
301
+ }));
302
+ expect(res.success).toBe(false);
303
+ if (!res.success) {
304
+ expect(res.error.issues.some(i => i.message === 'BLOCKING_PREFERENCE_BLOCKER_NOT_A_STARTER')).toBe(true);
305
+ }
306
+ });
307
+ it('rejects an unknown assignment string', () => {
308
+ const res = TacticsInputSchema.safeParse(baseInput({
309
+ blockingPreferences: [{ rotation: 1, targets: { [p4.id]: 'NO_BLOCKING' } }]
310
+ }));
311
+ expect(res.success).toBe(false);
312
+ });
281
313
  });
@@ -289,11 +289,11 @@ export declare const TeamInputSchema: z.ZodObject<{
289
289
  }, z.core.$strip>>>>;
290
290
  blockingPreferences: z.ZodDefault<z.ZodArray<z.ZodObject<{
291
291
  rotation: z.ZodNumber;
292
- targets: z.ZodRecord<z.ZodString, z.ZodEnum<typeof import("../../player").RoleEnum> & z.ZodType<import("../../player").RoleEnum.SETTER | import("../../player").RoleEnum.OUTSIDE_HITTER | import("../../player").RoleEnum.OPPOSITE_HITTER | import("../../player").RoleEnum.MIDDLE_BLOCKER, import("../../player").RoleEnum, z.core.$ZodTypeInternals<import("../../player").RoleEnum.SETTER | import("../../player").RoleEnum.OUTSIDE_HITTER | import("../../player").RoleEnum.OPPOSITE_HITTER | import("../../player").RoleEnum.MIDDLE_BLOCKER, import("../../player").RoleEnum>>>;
292
+ targets: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<typeof import("../../player").RoleEnum> & z.ZodType<import("../../player").RoleEnum.SETTER | import("../../player").RoleEnum.OUTSIDE_HITTER | import("../../player").RoleEnum.OPPOSITE_HITTER | import("../../player").RoleEnum.MIDDLE_BLOCKER, import("../../player").RoleEnum, z.core.$ZodTypeInternals<import("../../player").RoleEnum.SETTER | import("../../player").RoleEnum.OUTSIDE_HITTER | import("../../player").RoleEnum.OPPOSITE_HITTER | import("../../player").RoleEnum.MIDDLE_BLOCKER, import("../../player").RoleEnum>>, z.ZodLiteral<"NO_BLOCK">]>>;
293
293
  }, z.core.$strip>>>;
294
294
  blockingPreferenceSets: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodObject<{
295
295
  rotation: z.ZodNumber;
296
- targets: z.ZodRecord<z.ZodString, z.ZodEnum<typeof import("../../player").RoleEnum> & z.ZodType<import("../../player").RoleEnum.SETTER | import("../../player").RoleEnum.OUTSIDE_HITTER | import("../../player").RoleEnum.OPPOSITE_HITTER | import("../../player").RoleEnum.MIDDLE_BLOCKER, import("../../player").RoleEnum, z.core.$ZodTypeInternals<import("../../player").RoleEnum.SETTER | import("../../player").RoleEnum.OUTSIDE_HITTER | import("../../player").RoleEnum.OPPOSITE_HITTER | import("../../player").RoleEnum.MIDDLE_BLOCKER, import("../../player").RoleEnum>>>;
296
+ targets: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<typeof import("../../player").RoleEnum> & z.ZodType<import("../../player").RoleEnum.SETTER | import("../../player").RoleEnum.OUTSIDE_HITTER | import("../../player").RoleEnum.OPPOSITE_HITTER | import("../../player").RoleEnum.MIDDLE_BLOCKER, import("../../player").RoleEnum, z.core.$ZodTypeInternals<import("../../player").RoleEnum.SETTER | import("../../player").RoleEnum.OUTSIDE_HITTER | import("../../player").RoleEnum.OPPOSITE_HITTER | import("../../player").RoleEnum.MIDDLE_BLOCKER, import("../../player").RoleEnum>>, z.ZodLiteral<"NO_BLOCK">]>>;
297
297
  }, z.core.$strip>>>>;
298
298
  replaceKnockedImmediately: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
299
299
  injuryReplacements: z.ZodDefault<z.ZodArray<z.ZodObject<{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "volleyballsimtypes",
3
- "version": "0.0.489",
3
+ "version": "0.0.492",
4
4
  "description": "vbsim types",
5
5
  "main": "./dist/cjs/src/index.js",
6
6
  "module": "./dist/esm/src/index.js",
@@ -42,6 +42,11 @@
42
42
  "import": "./dist/esm/src/service/notification/index.js",
43
43
  "require": "./dist/cjs/src/service/notification/index.js"
44
44
  },
45
+ "./api": {
46
+ "types": "./dist/esm/src/api/index.d.ts",
47
+ "import": "./dist/esm/src/api/index.js",
48
+ "require": "./dist/cjs/src/api/index.js"
49
+ },
45
50
  "./stat-config": {
46
51
  "types": "./dist/esm/src/stat-config/index.d.ts",
47
52
  "import": "./dist/esm/src/stat-config/index.js",