volleyballsimtypes 0.0.527 → 0.0.528

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 (39) hide show
  1. package/dist/cjs/src/api/index.d.ts +3 -1
  2. package/dist/cjs/src/data/init-models.js +5 -0
  3. package/dist/cjs/src/data/models/index.d.ts +1 -0
  4. package/dist/cjs/src/data/models/index.js +1 -0
  5. package/dist/cjs/src/data/models/team-badge.d.ts +20 -0
  6. package/dist/cjs/src/data/models/team-badge.js +38 -0
  7. package/dist/cjs/src/data/models/team.d.ts +3 -1
  8. package/dist/cjs/src/data/transformers/team.js +4 -1
  9. package/dist/cjs/src/service/team/badge.d.ts +301 -0
  10. package/dist/cjs/src/service/team/badge.js +93 -0
  11. package/dist/cjs/src/service/team/index.d.ts +1 -0
  12. package/dist/cjs/src/service/team/index.js +1 -0
  13. package/dist/cjs/src/service/team/jersey-defaults.js +3 -1
  14. package/dist/cjs/src/service/team/jersey.d.ts +2 -0
  15. package/dist/cjs/src/service/team/jersey.js +14 -2
  16. package/dist/cjs/src/service/team/schemas/team.z.d.ts +98 -0
  17. package/dist/cjs/src/service/team/schemas/team.z.js +3 -1
  18. package/dist/cjs/src/service/team/team.d.ts +2 -0
  19. package/dist/cjs/src/service/team/team.js +2 -1
  20. package/dist/esm/src/api/index.d.ts +3 -1
  21. package/dist/esm/src/data/init-models.js +6 -1
  22. package/dist/esm/src/data/models/index.d.ts +1 -0
  23. package/dist/esm/src/data/models/index.js +1 -0
  24. package/dist/esm/src/data/models/team-badge.d.ts +20 -0
  25. package/dist/esm/src/data/models/team-badge.js +34 -0
  26. package/dist/esm/src/data/models/team.d.ts +3 -1
  27. package/dist/esm/src/data/transformers/team.js +4 -1
  28. package/dist/esm/src/service/team/badge.d.ts +301 -0
  29. package/dist/esm/src/service/team/badge.js +90 -0
  30. package/dist/esm/src/service/team/index.d.ts +1 -0
  31. package/dist/esm/src/service/team/index.js +1 -0
  32. package/dist/esm/src/service/team/jersey-defaults.js +3 -1
  33. package/dist/esm/src/service/team/jersey.d.ts +2 -0
  34. package/dist/esm/src/service/team/jersey.js +14 -2
  35. package/dist/esm/src/service/team/schemas/team.z.d.ts +98 -0
  36. package/dist/esm/src/service/team/schemas/team.z.js +3 -1
  37. package/dist/esm/src/service/team/team.d.ts +2 -0
  38. package/dist/esm/src/service/team/team.js +2 -1
  39. package/package.json +1 -1
@@ -413,6 +413,8 @@ export declare const TeamInputSchema: z.ZodObject<{
413
413
  }>>;
414
414
  brandColor1: z.ZodDefault<z.ZodString>;
415
415
  brandColor2: z.ZodDefault<z.ZodString>;
416
+ brandSize: z.ZodDefault<z.ZodNumber>;
417
+ badgeSize: z.ZodDefault<z.ZodNumber>;
416
418
  }, z.core.$strip>>;
417
419
  alternateJerseyConfig: z.ZodOptional<z.ZodObject<{
418
420
  pattern: z.ZodEnum<{
@@ -438,5 +440,101 @@ export declare const TeamInputSchema: z.ZodObject<{
438
440
  brandColor1: z.ZodDefault<z.ZodString>;
439
441
  brandColor2: z.ZodDefault<z.ZodString>;
440
442
  }, z.core.$strip>>;
443
+ badgeConfig: z.ZodOptional<z.ZodObject<{
444
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
445
+ x: z.ZodNumber;
446
+ y: z.ZodNumber;
447
+ size: z.ZodNumber;
448
+ rotation: z.ZodNumber;
449
+ type: z.ZodLiteral<"shape">;
450
+ shape: z.ZodString;
451
+ colors: z.ZodArray<z.ZodString>;
452
+ }, z.core.$strip>, z.ZodObject<{
453
+ x: z.ZodNumber;
454
+ y: z.ZodNumber;
455
+ size: z.ZodNumber;
456
+ rotation: z.ZodNumber;
457
+ type: z.ZodLiteral<"icon">;
458
+ icon: z.ZodEnum<{
459
+ star: "star";
460
+ crown: "crown";
461
+ bolt: "bolt";
462
+ fire: "fire";
463
+ heart: "heart";
464
+ gem: "gem";
465
+ skull: "skull";
466
+ ghost: "ghost";
467
+ anchor: "anchor";
468
+ compass: "compass";
469
+ sun: "sun";
470
+ moon: "moon";
471
+ snowflake: "snowflake";
472
+ leaf: "leaf";
473
+ seedling: "seedling";
474
+ tree: "tree";
475
+ mountain: "mountain";
476
+ water: "water";
477
+ wind: "wind";
478
+ meteor: "meteor";
479
+ rocket: "rocket";
480
+ bell: "bell";
481
+ flag: "flag";
482
+ feather: "feather";
483
+ "shield-halved": "shield-halved";
484
+ "chess-knight": "chess-knight";
485
+ "chess-rook": "chess-rook";
486
+ hammer: "hammer";
487
+ crosshairs: "crosshairs";
488
+ medal: "medal";
489
+ trophy: "trophy";
490
+ award: "award";
491
+ volleyball: "volleyball";
492
+ dragon: "dragon";
493
+ cat: "cat";
494
+ crow: "crow";
495
+ turtle: "turtle";
496
+ unicorn: "unicorn";
497
+ horse: "horse";
498
+ dove: "dove";
499
+ fish: "fish";
500
+ paw: "paw";
501
+ spider: "spider";
502
+ otter: "otter";
503
+ frog: "frog";
504
+ dog: "dog";
505
+ }>;
506
+ color: z.ZodString;
507
+ }, z.core.$strip>, z.ZodObject<{
508
+ x: z.ZodNumber;
509
+ y: z.ZodNumber;
510
+ size: z.ZodNumber;
511
+ rotation: z.ZodNumber;
512
+ type: z.ZodLiteral<"text">;
513
+ text: z.ZodString;
514
+ font: z.ZodEnum<{
515
+ block: "block";
516
+ sans: "sans";
517
+ wide: "wide";
518
+ mono: "mono";
519
+ serif: "serif";
520
+ permanentMarker: "permanentMarker";
521
+ kaushanScript: "kaushanScript";
522
+ russoOne: "russoOne";
523
+ teko: "teko";
524
+ saira: "saira";
525
+ michroma: "michroma";
526
+ zillaSlab: "zillaSlab";
527
+ changaOne: "changaOne";
528
+ stardosStencil: "stardosStencil";
529
+ wallpoet: "wallpoet";
530
+ orbitron: "orbitron";
531
+ tourney: "tourney";
532
+ bebasNeue: "bebasNeue";
533
+ anton: "anton";
534
+ jersey25: "jersey25";
535
+ }>;
536
+ color: z.ZodString;
537
+ }, z.core.$strip>], "type">>;
538
+ }, z.core.$strip>>;
441
539
  }, z.core.$strip>;
442
540
  export type TeamInput = z.infer<typeof TeamInputSchema>;
@@ -6,6 +6,7 @@ const player_1 = require("../../player");
6
6
  const country_1 = require("../../country");
7
7
  const tactics_z_1 = require("./tactics.z");
8
8
  const jersey_1 = require("../jersey");
9
+ const badge_1 = require("../badge");
9
10
  const playerInstanceSchema = zod_1.z.custom((v) => v instanceof player_1.Player, {
10
11
  message: 'INVALID_PLAYER_INSTANCE'
11
12
  });
@@ -23,7 +24,8 @@ exports.TeamInputSchema = zod_1.z.object({
23
24
  legacyFlagCountry: countrySchema.optional(),
24
25
  tactics: tactics_z_1.TacticsInputSchema.optional(),
25
26
  jerseyConfig: jersey_1.JerseySchema.optional(),
26
- alternateJerseyConfig: jersey_1.AlternateJerseySchema.optional()
27
+ alternateJerseyConfig: jersey_1.AlternateJerseySchema.optional(),
28
+ badgeConfig: badge_1.BadgeSchema.optional()
27
29
  }).superRefine((data, ctx) => {
28
30
  const ids = data.roster.map(p => p.id);
29
31
  if (new Set(ids).size !== ids.length) {
@@ -2,6 +2,7 @@ import { Player } from '../player';
2
2
  import { Country } from '../country';
3
3
  import { Tactics } from './tactics';
4
4
  import type { JerseyConfig, AlternateJerseyConfig } from './jersey';
5
+ import type { BadgeConfig } from './badge';
5
6
  export declare class Team {
6
7
  readonly id: string;
7
8
  readonly roster: Player[];
@@ -13,6 +14,7 @@ export declare class Team {
13
14
  readonly legacyFlagCountry?: Country;
14
15
  readonly jerseyConfig?: JerseyConfig;
15
16
  readonly alternateJerseyConfig?: AlternateJerseyConfig;
17
+ readonly badgeConfig?: BadgeConfig;
16
18
  private _rating;
17
19
  static create(input: unknown): Team;
18
20
  private constructor();
@@ -19,7 +19,7 @@ class Team {
19
19
  tactics: result.data.tactics != null ? tactics_1.Tactics.create(result.data.tactics) : undefined
20
20
  });
21
21
  }
22
- constructor({ id, rating, name, shortName, divisionId, country, legacyFlagCountry, roster, tactics, jerseyConfig, alternateJerseyConfig }) {
22
+ constructor({ id, rating, name, shortName, divisionId, country, legacyFlagCountry, roster, tactics, jerseyConfig, alternateJerseyConfig, badgeConfig }) {
23
23
  this.id = id;
24
24
  this._rating = rating;
25
25
  this.roster = roster;
@@ -31,6 +31,7 @@ class Team {
31
31
  this.legacyFlagCountry = legacyFlagCountry;
32
32
  this.jerseyConfig = jerseyConfig;
33
33
  this.alternateJerseyConfig = alternateJerseyConfig;
34
+ this.badgeConfig = badgeConfig;
34
35
  }
35
36
  get rating() {
36
37
  return this._rating;
@@ -1,4 +1,4 @@
1
- import { BaseConfig, BoxScore, DataProps, DeclineStatus, JerseyConfig, Division as _Division, League as _League, Match as _Match, MatchSet as _MatchSet, Player as _Player, PlayerPosition, Qualifier as _Qualifier, QualifierMatch as _QualifierMatch, Rally as _Rally, RallyEvent as _RallyEvent, PointBreakdown, RallyMetrics, Season as _Season, Standing as _Standing, Team as _Team, Tournament as _Tournament, TournamentMatch as _TournamentMatch, National as _National, NationalMatch as _NationalMatch, Country as _Country, DefenceFormation, LineupFunction, CourtPosition, ConditionLogic, EnergyBand, MatchForfeitType, PerformanceStats, PinchCondition, RotationSystemEnum, SubBackMode, SubBand } from '../service';
1
+ import { BadgeConfig, BaseConfig, BoxScore, DataProps, DeclineStatus, JerseyConfig, Division as _Division, League as _League, Match as _Match, MatchSet as _MatchSet, Player as _Player, PlayerPosition, Qualifier as _Qualifier, QualifierMatch as _QualifierMatch, Rally as _Rally, RallyEvent as _RallyEvent, PointBreakdown, RallyMetrics, Season as _Season, Standing as _Standing, Team as _Team, Tournament as _Tournament, TournamentMatch as _TournamentMatch, National as _National, NationalMatch as _NationalMatch, Country as _Country, DefenceFormation, LineupFunction, CourtPosition, ConditionLogic, EnergyBand, MatchForfeitType, PerformanceStats, PinchCondition, RotationSystemEnum, SubBackMode, SubBand } from '../service';
2
2
  export * from './tactics-player-refs';
3
3
  export type Rally = DataProps<_Rally> & {
4
4
  homePlayerPosition: PlayerPosition[];
@@ -85,6 +85,7 @@ export type Player = Omit<DataProps<_Player>, 'stats' | 'birthAge' | 'birthItera
85
85
  nickname?: string;
86
86
  jerseyConfig?: JerseyConfig;
87
87
  championBadge?: ChampionBadgeSpec;
88
+ teamBadge?: BadgeConfig;
88
89
  nationalFlagAlpha2?: string;
89
90
  };
90
91
  export interface StartingLineup {
@@ -198,6 +199,7 @@ export type Team = Omit<DataProps<_Team>, 'roster' | '_rating' | 'rating' | 'tac
198
199
  teamId: string;
199
200
  teamName: string;
200
201
  };
202
+ teamBadge?: BadgeConfig;
201
203
  };
202
204
  export type Standing = DataProps<_Standing> & {
203
205
  position: number;
@@ -1,4 +1,4 @@
1
- import { AuthIdentityModel, AuthSessionModel, AuthUserModel, BoxScoreModel, CoachModel, ScoutModel, PhysicianModel, PhysiotherapistModel, BoxScoreTotalsModel, CompetitionChampionModel, JerseyBadgeModel, CurrencyTransactionModel, GachaPityModel, GachaPullHistoryModel, WishlistModel, UserSettingsModel, UserAchievementsModel, UserDeviceTokenModel, BasePositionPresetModel, CompetitionMatchModel, CompetitionMVPModel, CompetitionModel, CompetitionStandingsMatchModel, CompetitionStandingsModel, CompetitionTeamsModel, CountryModel, DivisionModel, DivisionSeasonModel, IterationModel, LeagueModel, MatchModel, MatchRatingModel, MatchResultModel, MatchSetModel, PerformanceStatsModel, PlayerModel, PlayerImprovementLogModel, PlayerDeclineLogModel, PlayerTeamModel, RetiredPlayerModel, PromotionMatchModel, FriendlyModel, RegionQualifierModel, NationalCountryModel, NationalTeamModel, NationalTeamClaimModel, WnlSquadModel, WnlCallupModel, WnlSeasonModel, RallyModel, MatchInputSnapshotModel, TacticsModel, TeamJerseyModel, LineupPresetModel, MatchPresetModel, EventModel, EventCompetitionModel, EventSquadModel, EventPackModel, EventPackPlayerModel, EventResultModel, EventBotTeamModel, TeamModel, TeamReplacementModel, UserCurrencyModel, UserPlayerProgressModel, UserPullGrantModel, PremiumGrantModel, UserTeamModel, VPERModel, NotificationModel, AppConfigModel, LegacyTeamFlagModel } from './models';
1
+ import { AuthIdentityModel, AuthSessionModel, AuthUserModel, BoxScoreModel, CoachModel, ScoutModel, PhysicianModel, PhysiotherapistModel, BoxScoreTotalsModel, CompetitionChampionModel, JerseyBadgeModel, CurrencyTransactionModel, GachaPityModel, GachaPullHistoryModel, WishlistModel, UserSettingsModel, UserAchievementsModel, UserDeviceTokenModel, BasePositionPresetModel, CompetitionMatchModel, CompetitionMVPModel, CompetitionModel, CompetitionStandingsMatchModel, CompetitionStandingsModel, CompetitionTeamsModel, CountryModel, DivisionModel, DivisionSeasonModel, IterationModel, LeagueModel, MatchModel, MatchRatingModel, MatchResultModel, MatchSetModel, PerformanceStatsModel, PlayerModel, PlayerImprovementLogModel, PlayerDeclineLogModel, PlayerTeamModel, RetiredPlayerModel, PromotionMatchModel, FriendlyModel, RegionQualifierModel, NationalCountryModel, NationalTeamModel, NationalTeamClaimModel, WnlSquadModel, WnlCallupModel, WnlSeasonModel, RallyModel, MatchInputSnapshotModel, TacticsModel, TeamJerseyModel, TeamBadgeModel, LineupPresetModel, MatchPresetModel, EventModel, EventCompetitionModel, EventSquadModel, EventPackModel, EventPackPlayerModel, EventResultModel, EventBotTeamModel, TeamModel, TeamReplacementModel, UserCurrencyModel, UserPlayerProgressModel, UserPullGrantModel, PremiumGrantModel, UserTeamModel, VPERModel, NotificationModel, AppConfigModel, LegacyTeamFlagModel } from './models';
2
2
  export function initModels(sequelize) {
3
3
  const Coach = CoachModel.initModel(sequelize);
4
4
  const Scout = ScoutModel.initModel(sequelize);
@@ -7,6 +7,7 @@ export function initModels(sequelize) {
7
7
  const CurrencyTransaction = CurrencyTransactionModel.initModel(sequelize);
8
8
  const Tactics = TacticsModel.initModel(sequelize);
9
9
  const TeamJersey = TeamJerseyModel.initModel(sequelize);
10
+ const TeamBadge = TeamBadgeModel.initModel(sequelize);
10
11
  const LineupPreset = LineupPresetModel.initModel(sequelize);
11
12
  const MatchPreset = MatchPresetModel.initModel(sequelize);
12
13
  const Event = EventModel.initModel(sequelize);
@@ -252,6 +253,10 @@ export function initModels(sequelize) {
252
253
  // and the effective-jersey resolver include it, so the simulator's team loads are unchanged.
253
254
  Team.hasOne(TeamJersey, { as: 'TeamJersey', foreignKey: 'team_id' });
254
255
  TeamJersey.belongsTo(Team, { as: 'team', foreignKey: 'team_id' });
256
+ // Saved premium badge. Same rule as TeamJersey: NOT in Team.defaultScope, included explicitly only by the
257
+ // management API (badge editor load), so the simulator's team loads are unchanged.
258
+ Team.hasOne(TeamBadge, { as: 'TeamBadge', foreignKey: 'team_id' });
259
+ TeamBadge.belongsTo(Team, { as: 'team', foreignKey: 'team_id' });
255
260
  // Lineup presets are loaded only by the management API; deliberately NOT in Team.defaultScope so the
256
261
  // simulator's team loads are unchanged (it reads the active config from the mirrored Tactics row).
257
262
  Team.hasMany(LineupPreset, { as: 'lineupPresets', foreignKey: 'team_id' });
@@ -45,6 +45,7 @@ export * from './team';
45
45
  export * from './team-replacement';
46
46
  export * from './tactics';
47
47
  export * from './team-jersey';
48
+ export * from './team-badge';
48
49
  export * from './lineup-preset';
49
50
  export * from './base-position-preset';
50
51
  export * from './premium-grant';
@@ -45,6 +45,7 @@ export * from './team';
45
45
  export * from './team-replacement';
46
46
  export * from './tactics';
47
47
  export * from './team-jersey';
48
+ export * from './team-badge';
48
49
  export * from './lineup-preset';
49
50
  export * from './base-position-preset';
50
51
  export * from './premium-grant';
@@ -0,0 +1,20 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { Model } from 'sequelize';
3
+ import { TeamId, TeamModel } from '.';
4
+ import { BadgeConfig } from '../../service';
5
+ export interface TeamBadgeAttributes {
6
+ team_id: string;
7
+ config: BadgeConfig;
8
+ }
9
+ export type TeamBadgePk = 'team_id';
10
+ export type TeamBadgeId = TeamBadgeModel[TeamBadgePk];
11
+ export type TeamBadgeCreationAttributes = TeamBadgeAttributes;
12
+ export declare class TeamBadgeModel extends Model<TeamBadgeAttributes, TeamBadgeCreationAttributes> implements TeamBadgeAttributes {
13
+ team_id: string;
14
+ config: BadgeConfig;
15
+ team: TeamModel;
16
+ getTeam: Sequelize.BelongsToGetAssociationMixin<TeamModel>;
17
+ setTeam: Sequelize.BelongsToSetAssociationMixin<TeamModel, TeamId>;
18
+ createTeam: Sequelize.BelongsToCreateAssociationMixin<TeamModel>;
19
+ static initModel(sequelize: Sequelize.Sequelize): typeof TeamBadgeModel;
20
+ }
@@ -0,0 +1,34 @@
1
+ import { DataTypes, Model } from 'sequelize';
2
+ export class TeamBadgeModel extends Model {
3
+ static initModel(sequelize) {
4
+ return TeamBadgeModel.init({
5
+ team_id: {
6
+ type: DataTypes.UUID,
7
+ allowNull: false,
8
+ primaryKey: true,
9
+ references: {
10
+ model: 'Team',
11
+ key: 'team_id'
12
+ }
13
+ },
14
+ config: {
15
+ type: DataTypes.JSONB,
16
+ allowNull: false
17
+ }
18
+ }, {
19
+ sequelize,
20
+ tableName: 'TeamBadge',
21
+ schema: 'public',
22
+ timestamps: false,
23
+ indexes: [
24
+ {
25
+ name: 'TeamBadge_pk',
26
+ unique: true,
27
+ fields: [
28
+ { name: 'team_id' }
29
+ ]
30
+ }
31
+ ]
32
+ });
33
+ }
34
+ }
@@ -1,6 +1,6 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model, Optional } from 'sequelize';
3
- import { CompetitionChampionId, CompetitionChampionModel, CompetitionId, CompetitionModel, CompetitionTeamsId, CompetitionTeamsModel, CountryId, CountryModel, DivisionAttributes, DivisionId, DivisionModel, LegacyTeamFlagModel, MatchId, MatchModel, MatchRatingId, MatchRatingModel, PlayerAttributes, PlayerId, PlayerModel, PlayerTeamId, PlayerTeamModel, RallyId, RallyModel, TacticsAttributes, TacticsId, TacticsModel, TeamJerseyModel } from '.';
3
+ import { CompetitionChampionId, CompetitionChampionModel, CompetitionId, CompetitionModel, CompetitionTeamsId, CompetitionTeamsModel, CountryId, CountryModel, DivisionAttributes, DivisionId, DivisionModel, LegacyTeamFlagModel, MatchId, MatchModel, MatchRatingId, MatchRatingModel, PlayerAttributes, PlayerId, PlayerModel, PlayerTeamId, PlayerTeamModel, RallyId, RallyModel, TacticsAttributes, TacticsId, TacticsModel, TeamJerseyModel, TeamBadgeModel } from '.';
4
4
  export interface TeamAttributes {
5
5
  team_id: string;
6
6
  name: string;
@@ -31,6 +31,8 @@ export declare class TeamModel extends Model<TeamAttributes, TeamCreationAttribu
31
31
  createTactics: Sequelize.HasOneCreateAssociationMixin<TacticsModel>;
32
32
  TeamJersey?: TeamJerseyModel;
33
33
  getTeamJersey: Sequelize.HasOneGetAssociationMixin<TeamJerseyModel>;
34
+ TeamBadge?: TeamBadgeModel;
35
+ getTeamBadge: Sequelize.HasOneGetAssociationMixin<TeamBadgeModel>;
34
36
  country: CountryModel;
35
37
  getCountry: Sequelize.BelongsToGetAssociationMixin<CountryModel>;
36
38
  setCountry: Sequelize.BelongsToSetAssociationMixin<CountryModel, CountryId>;
@@ -47,7 +47,10 @@ function transformToObject(model, currentIteration, tacticsOverride) {
47
47
  // Present only when the caller explicitly included the TeamJersey association (editor / effective-jersey
48
48
  // resolver); undefined on ordinary team loads, which heals to the id-derived default in the UI.
49
49
  jerseyConfig: model.TeamJersey?.config,
50
- alternateJerseyConfig: model.TeamJersey?.alternate_config ?? undefined
50
+ alternateJerseyConfig: model.TeamJersey?.alternate_config ?? undefined,
51
+ // Present only when the caller explicitly included the TeamBadge association (the badge editor load);
52
+ // undefined on ordinary team loads.
53
+ badgeConfig: model.TeamBadge?.config
51
54
  });
52
55
  }
53
56
  export { transformToObject as transformToTeam, transformToAttributes as transformFromTeam };
@@ -0,0 +1,301 @@
1
+ import { z } from 'zod';
2
+ export declare const BADGE_CANVAS = 200;
3
+ export declare const BADGE_ICONS: readonly ["star", "crown", "bolt", "fire", "heart", "gem", "skull", "ghost", "anchor", "compass", "sun", "moon", "snowflake", "leaf", "seedling", "tree", "mountain", "water", "wind", "meteor", "rocket", "bell", "flag", "feather", "shield-halved", "chess-knight", "chess-rook", "hammer", "crosshairs", "medal", "trophy", "award", "volleyball", "dragon", "cat", "crow", "turtle", "unicorn", "horse", "dove", "fish", "paw", "spider", "otter", "frog", "dog"];
4
+ export type BadgeIconName = typeof BADGE_ICONS[number];
5
+ export declare const BADGE_TEXT_FONTS: readonly ["sans", "wide", "mono", "serif", "block", "permanentMarker", "kaushanScript", "russoOne", "teko", "saira", "michroma", "zillaSlab", "changaOne", "stardosStencil", "wallpoet", "orbitron", "tourney", "bebasNeue", "anton", "jersey25"];
6
+ export type BadgeTextFont = typeof BADGE_TEXT_FONTS[number];
7
+ export declare const BADGE_SHAPES: readonly ["star5-solid", "star5-slim-solid", "star6-solid", "cross-solid", "star5-outline", "star5-slim-outline", "star6-outline", "cross-outline", "pentagon-solid", "hexagon-solid", "octagon-solid", "pentagon-outline", "hexagon-outline", "octagon-outline", "square-solid", "triangle-solid", "diamond-solid", "square-outline", "triangle-outline", "diamond-outline", "rectangle-solid", "burst-solid", "trapezoid-solid", "rectangle-outline", "burst-outline", "trapezoid-outline", "circle-solid", "heptagon-solid", "nonagon-solid", "ellipse-solid", "parallelogram-solid", "heart-solid", "moon-solid", "semicircle-solid", "triangle-right-solid", "triangle-tall-solid", "trapezoid-tall-solid", "kite-solid"];
8
+ export type BadgeShapeName = typeof BADGE_SHAPES[number];
9
+ declare const shapeLayer: z.ZodObject<{
10
+ x: z.ZodNumber;
11
+ y: z.ZodNumber;
12
+ size: z.ZodNumber;
13
+ rotation: z.ZodNumber;
14
+ type: z.ZodLiteral<"shape">;
15
+ shape: z.ZodString;
16
+ colors: z.ZodArray<z.ZodString>;
17
+ }, z.core.$strip>;
18
+ declare const iconLayer: z.ZodObject<{
19
+ x: z.ZodNumber;
20
+ y: z.ZodNumber;
21
+ size: z.ZodNumber;
22
+ rotation: z.ZodNumber;
23
+ type: z.ZodLiteral<"icon">;
24
+ icon: z.ZodEnum<{
25
+ star: "star";
26
+ crown: "crown";
27
+ bolt: "bolt";
28
+ fire: "fire";
29
+ heart: "heart";
30
+ gem: "gem";
31
+ skull: "skull";
32
+ ghost: "ghost";
33
+ anchor: "anchor";
34
+ compass: "compass";
35
+ sun: "sun";
36
+ moon: "moon";
37
+ snowflake: "snowflake";
38
+ leaf: "leaf";
39
+ seedling: "seedling";
40
+ tree: "tree";
41
+ mountain: "mountain";
42
+ water: "water";
43
+ wind: "wind";
44
+ meteor: "meteor";
45
+ rocket: "rocket";
46
+ bell: "bell";
47
+ flag: "flag";
48
+ feather: "feather";
49
+ "shield-halved": "shield-halved";
50
+ "chess-knight": "chess-knight";
51
+ "chess-rook": "chess-rook";
52
+ hammer: "hammer";
53
+ crosshairs: "crosshairs";
54
+ medal: "medal";
55
+ trophy: "trophy";
56
+ award: "award";
57
+ volleyball: "volleyball";
58
+ dragon: "dragon";
59
+ cat: "cat";
60
+ crow: "crow";
61
+ turtle: "turtle";
62
+ unicorn: "unicorn";
63
+ horse: "horse";
64
+ dove: "dove";
65
+ fish: "fish";
66
+ paw: "paw";
67
+ spider: "spider";
68
+ otter: "otter";
69
+ frog: "frog";
70
+ dog: "dog";
71
+ }>;
72
+ color: z.ZodString;
73
+ }, z.core.$strip>;
74
+ declare const textLayer: z.ZodObject<{
75
+ x: z.ZodNumber;
76
+ y: z.ZodNumber;
77
+ size: z.ZodNumber;
78
+ rotation: z.ZodNumber;
79
+ type: z.ZodLiteral<"text">;
80
+ text: z.ZodString;
81
+ font: z.ZodEnum<{
82
+ block: "block";
83
+ sans: "sans";
84
+ wide: "wide";
85
+ mono: "mono";
86
+ serif: "serif";
87
+ permanentMarker: "permanentMarker";
88
+ kaushanScript: "kaushanScript";
89
+ russoOne: "russoOne";
90
+ teko: "teko";
91
+ saira: "saira";
92
+ michroma: "michroma";
93
+ zillaSlab: "zillaSlab";
94
+ changaOne: "changaOne";
95
+ stardosStencil: "stardosStencil";
96
+ wallpoet: "wallpoet";
97
+ orbitron: "orbitron";
98
+ tourney: "tourney";
99
+ bebasNeue: "bebasNeue";
100
+ anton: "anton";
101
+ jersey25: "jersey25";
102
+ }>;
103
+ color: z.ZodString;
104
+ }, z.core.$strip>;
105
+ export declare const BadgeLayerSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
106
+ x: z.ZodNumber;
107
+ y: z.ZodNumber;
108
+ size: z.ZodNumber;
109
+ rotation: z.ZodNumber;
110
+ type: z.ZodLiteral<"shape">;
111
+ shape: z.ZodString;
112
+ colors: z.ZodArray<z.ZodString>;
113
+ }, z.core.$strip>, z.ZodObject<{
114
+ x: z.ZodNumber;
115
+ y: z.ZodNumber;
116
+ size: z.ZodNumber;
117
+ rotation: z.ZodNumber;
118
+ type: z.ZodLiteral<"icon">;
119
+ icon: z.ZodEnum<{
120
+ star: "star";
121
+ crown: "crown";
122
+ bolt: "bolt";
123
+ fire: "fire";
124
+ heart: "heart";
125
+ gem: "gem";
126
+ skull: "skull";
127
+ ghost: "ghost";
128
+ anchor: "anchor";
129
+ compass: "compass";
130
+ sun: "sun";
131
+ moon: "moon";
132
+ snowflake: "snowflake";
133
+ leaf: "leaf";
134
+ seedling: "seedling";
135
+ tree: "tree";
136
+ mountain: "mountain";
137
+ water: "water";
138
+ wind: "wind";
139
+ meteor: "meteor";
140
+ rocket: "rocket";
141
+ bell: "bell";
142
+ flag: "flag";
143
+ feather: "feather";
144
+ "shield-halved": "shield-halved";
145
+ "chess-knight": "chess-knight";
146
+ "chess-rook": "chess-rook";
147
+ hammer: "hammer";
148
+ crosshairs: "crosshairs";
149
+ medal: "medal";
150
+ trophy: "trophy";
151
+ award: "award";
152
+ volleyball: "volleyball";
153
+ dragon: "dragon";
154
+ cat: "cat";
155
+ crow: "crow";
156
+ turtle: "turtle";
157
+ unicorn: "unicorn";
158
+ horse: "horse";
159
+ dove: "dove";
160
+ fish: "fish";
161
+ paw: "paw";
162
+ spider: "spider";
163
+ otter: "otter";
164
+ frog: "frog";
165
+ dog: "dog";
166
+ }>;
167
+ color: z.ZodString;
168
+ }, z.core.$strip>, z.ZodObject<{
169
+ x: z.ZodNumber;
170
+ y: z.ZodNumber;
171
+ size: z.ZodNumber;
172
+ rotation: z.ZodNumber;
173
+ type: z.ZodLiteral<"text">;
174
+ text: z.ZodString;
175
+ font: z.ZodEnum<{
176
+ block: "block";
177
+ sans: "sans";
178
+ wide: "wide";
179
+ mono: "mono";
180
+ serif: "serif";
181
+ permanentMarker: "permanentMarker";
182
+ kaushanScript: "kaushanScript";
183
+ russoOne: "russoOne";
184
+ teko: "teko";
185
+ saira: "saira";
186
+ michroma: "michroma";
187
+ zillaSlab: "zillaSlab";
188
+ changaOne: "changaOne";
189
+ stardosStencil: "stardosStencil";
190
+ wallpoet: "wallpoet";
191
+ orbitron: "orbitron";
192
+ tourney: "tourney";
193
+ bebasNeue: "bebasNeue";
194
+ anton: "anton";
195
+ jersey25: "jersey25";
196
+ }>;
197
+ color: z.ZodString;
198
+ }, z.core.$strip>], "type">;
199
+ export declare const BADGE_MAX_LAYERS = 25;
200
+ export declare const BadgeSchema: z.ZodObject<{
201
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
202
+ x: z.ZodNumber;
203
+ y: z.ZodNumber;
204
+ size: z.ZodNumber;
205
+ rotation: z.ZodNumber;
206
+ type: z.ZodLiteral<"shape">;
207
+ shape: z.ZodString;
208
+ colors: z.ZodArray<z.ZodString>;
209
+ }, z.core.$strip>, z.ZodObject<{
210
+ x: z.ZodNumber;
211
+ y: z.ZodNumber;
212
+ size: z.ZodNumber;
213
+ rotation: z.ZodNumber;
214
+ type: z.ZodLiteral<"icon">;
215
+ icon: z.ZodEnum<{
216
+ star: "star";
217
+ crown: "crown";
218
+ bolt: "bolt";
219
+ fire: "fire";
220
+ heart: "heart";
221
+ gem: "gem";
222
+ skull: "skull";
223
+ ghost: "ghost";
224
+ anchor: "anchor";
225
+ compass: "compass";
226
+ sun: "sun";
227
+ moon: "moon";
228
+ snowflake: "snowflake";
229
+ leaf: "leaf";
230
+ seedling: "seedling";
231
+ tree: "tree";
232
+ mountain: "mountain";
233
+ water: "water";
234
+ wind: "wind";
235
+ meteor: "meteor";
236
+ rocket: "rocket";
237
+ bell: "bell";
238
+ flag: "flag";
239
+ feather: "feather";
240
+ "shield-halved": "shield-halved";
241
+ "chess-knight": "chess-knight";
242
+ "chess-rook": "chess-rook";
243
+ hammer: "hammer";
244
+ crosshairs: "crosshairs";
245
+ medal: "medal";
246
+ trophy: "trophy";
247
+ award: "award";
248
+ volleyball: "volleyball";
249
+ dragon: "dragon";
250
+ cat: "cat";
251
+ crow: "crow";
252
+ turtle: "turtle";
253
+ unicorn: "unicorn";
254
+ horse: "horse";
255
+ dove: "dove";
256
+ fish: "fish";
257
+ paw: "paw";
258
+ spider: "spider";
259
+ otter: "otter";
260
+ frog: "frog";
261
+ dog: "dog";
262
+ }>;
263
+ color: z.ZodString;
264
+ }, z.core.$strip>, z.ZodObject<{
265
+ x: z.ZodNumber;
266
+ y: z.ZodNumber;
267
+ size: z.ZodNumber;
268
+ rotation: z.ZodNumber;
269
+ type: z.ZodLiteral<"text">;
270
+ text: z.ZodString;
271
+ font: z.ZodEnum<{
272
+ block: "block";
273
+ sans: "sans";
274
+ wide: "wide";
275
+ mono: "mono";
276
+ serif: "serif";
277
+ permanentMarker: "permanentMarker";
278
+ kaushanScript: "kaushanScript";
279
+ russoOne: "russoOne";
280
+ teko: "teko";
281
+ saira: "saira";
282
+ michroma: "michroma";
283
+ zillaSlab: "zillaSlab";
284
+ changaOne: "changaOne";
285
+ stardosStencil: "stardosStencil";
286
+ wallpoet: "wallpoet";
287
+ orbitron: "orbitron";
288
+ tourney: "tourney";
289
+ bebasNeue: "bebasNeue";
290
+ anton: "anton";
291
+ jersey25: "jersey25";
292
+ }>;
293
+ color: z.ZodString;
294
+ }, z.core.$strip>], "type">>;
295
+ }, z.core.$strip>;
296
+ export type BadgeConfig = z.infer<typeof BadgeSchema>;
297
+ export type BadgeLayer = z.infer<typeof BadgeLayerSchema>;
298
+ export type BadgeShapeLayer = z.infer<typeof shapeLayer>;
299
+ export type BadgeIconLayer = z.infer<typeof iconLayer>;
300
+ export type BadgeTextLayer = z.infer<typeof textLayer>;
301
+ export {};