@pluto-khronos/types 0.1.0
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.
- package/README.md +4 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +22 -0
- package/dist/schemas/betting.d.ts +23 -0
- package/dist/schemas/betting.js +19 -0
- package/dist/schemas/channels.d.ts +770 -0
- package/dist/schemas/channels.js +141 -0
- package/dist/schemas/colors.d.ts +15 -0
- package/dist/schemas/colors.js +61 -0
- package/dist/schemas/guilds.d.ts +33 -0
- package/dist/schemas/guilds.js +28 -0
- package/dist/schemas/match-metadata.d.ts +63 -0
- package/dist/schemas/match-metadata.js +22 -0
- package/dist/schemas/shared.d.ts +24 -0
- package/dist/schemas/shared.js +18 -0
- package/dist/schemas/sports.d.ts +79 -0
- package/dist/schemas/sports.js +42 -0
- package/dist/schemas/teams.d.ts +35 -0
- package/dist/schemas/teams.js +32 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +2 -0
- package/package.json +41 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.incomingChannelDataSchema = exports.channelCreationEventSchema = exports.channelEligibleGuildSchema = exports.prepareMatchEmbedSchema = exports.channelAggregatedSchema = exports.channelDeletionEventSchema = exports.channelDeletionResultSchema = exports.channelDeletionJobSchema = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @group Channels
|
|
6
|
+
* Schemas for managing Discord channel-related operations
|
|
7
|
+
*/
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
const betting_1 = require("./betting");
|
|
10
|
+
const colors_1 = require("./colors");
|
|
11
|
+
const guilds_1 = require("./guilds");
|
|
12
|
+
const match_metadata_1 = require("./match-metadata");
|
|
13
|
+
const shared_1 = require("./shared");
|
|
14
|
+
const sports_1 = require("./sports");
|
|
15
|
+
const teams_1 = require("./teams");
|
|
16
|
+
/**
|
|
17
|
+
* Schema for channel deletion job data
|
|
18
|
+
* @group Channel Deletion
|
|
19
|
+
*/
|
|
20
|
+
exports.channelDeletionJobSchema = zod_1.z
|
|
21
|
+
.object({
|
|
22
|
+
channelName: zod_1.z.string().describe('Name of the channel to be deleted'),
|
|
23
|
+
jobId: zod_1.z
|
|
24
|
+
.string()
|
|
25
|
+
.optional()
|
|
26
|
+
.describe('Optional unique identifier for the deletion job'),
|
|
27
|
+
})
|
|
28
|
+
.describe('BullMQ Schema structure for channel deletion jobs');
|
|
29
|
+
/**
|
|
30
|
+
* Schema for channel deletion operation results
|
|
31
|
+
* @group Channel Deletion
|
|
32
|
+
*/
|
|
33
|
+
exports.channelDeletionResultSchema = zod_1.z
|
|
34
|
+
.object({
|
|
35
|
+
success: zod_1.z
|
|
36
|
+
.boolean()
|
|
37
|
+
.describe('Whether the deletion operation was successful'),
|
|
38
|
+
channelName: zod_1.z.string().describe('Name of the channel that was processed'),
|
|
39
|
+
error: zod_1.z.string().optional().describe('Error message if deletion failed'),
|
|
40
|
+
})
|
|
41
|
+
.describe('BullMQ Schema structure for channel deletion results');
|
|
42
|
+
/**
|
|
43
|
+
* Schema for channel deletion event data
|
|
44
|
+
* @group Channel Deletion
|
|
45
|
+
*/
|
|
46
|
+
exports.channelDeletionEventSchema = zod_1.z
|
|
47
|
+
.object({
|
|
48
|
+
channelIds: zod_1.z
|
|
49
|
+
.array(zod_1.z.string())
|
|
50
|
+
.describe('Array of channel IDs to be deleted from Discord'),
|
|
51
|
+
metadata: zod_1.z
|
|
52
|
+
.object({
|
|
53
|
+
publishedAt: zod_1.z
|
|
54
|
+
.date()
|
|
55
|
+
.describe('Timestamp when the deletion event was published'),
|
|
56
|
+
eventId: zod_1.z
|
|
57
|
+
.string()
|
|
58
|
+
.describe('Unique identifier for tracking the deletion event'),
|
|
59
|
+
})
|
|
60
|
+
.describe('Metadata associated with the channel deletion event'),
|
|
61
|
+
})
|
|
62
|
+
.describe('BullMQ Schema structure for channel deletion events data');
|
|
63
|
+
/**
|
|
64
|
+
* Schema for aggregated channel information
|
|
65
|
+
* @group Channel Data
|
|
66
|
+
*/
|
|
67
|
+
exports.channelAggregatedSchema = zod_1.z
|
|
68
|
+
.object({
|
|
69
|
+
id: zod_1.z.string().describe('Unique identifier for the channel'),
|
|
70
|
+
sport: sports_1.sportsServingSchema,
|
|
71
|
+
created: zod_1.z
|
|
72
|
+
.boolean()
|
|
73
|
+
.describe('Whether the channel has been created in Discord'),
|
|
74
|
+
gametime: zod_1.z.date().describe('Scheduled time for the game/match'),
|
|
75
|
+
channelname: zod_1.z.string().describe('Name of the Discord channel'),
|
|
76
|
+
matchOdds: betting_1.matchOddsSchema,
|
|
77
|
+
...teams_1.matchTeamsSchema.shape,
|
|
78
|
+
metadata: match_metadata_1.matchMetadataSchema.optional(),
|
|
79
|
+
})
|
|
80
|
+
.describe('Aggregated channel information including match and odds details');
|
|
81
|
+
/**
|
|
82
|
+
* Schema for match embed preparation data
|
|
83
|
+
* @group Channel Embeds
|
|
84
|
+
*/
|
|
85
|
+
exports.prepareMatchEmbedSchema = zod_1.z
|
|
86
|
+
.object({
|
|
87
|
+
favored: zod_1.z.string().describe('Team favored to win'),
|
|
88
|
+
favoredTeamClr: colors_1.colorResolvableSchema.describe('Color for the favored team'),
|
|
89
|
+
home_team: zod_1.z.string().describe('Full name of home team'),
|
|
90
|
+
homeTeamShortName: zod_1.z
|
|
91
|
+
.string()
|
|
92
|
+
.describe('Short name/abbreviation of home team'),
|
|
93
|
+
away_team: zod_1.z.string().describe('Full name of away team'),
|
|
94
|
+
awayTeamShortName: zod_1.z
|
|
95
|
+
.string()
|
|
96
|
+
.describe('Short name/abbreviation of away team'),
|
|
97
|
+
bettingChanId: zod_1.z.string().describe('ID of the betting channel'),
|
|
98
|
+
header: zod_1.z.string().describe('Header text for the match embed'),
|
|
99
|
+
sport: sports_1.sportsServingSchema.describe('Sport type for the match'),
|
|
100
|
+
records: sports_1.teamRecordsResultSchema
|
|
101
|
+
.nullable()
|
|
102
|
+
.optional()
|
|
103
|
+
.describe('Optional team records'),
|
|
104
|
+
})
|
|
105
|
+
.describe('Data structure for preparing match embed messages');
|
|
106
|
+
/**
|
|
107
|
+
* Schema for guild data with channel creation eligibility
|
|
108
|
+
* @group Guilds
|
|
109
|
+
*/
|
|
110
|
+
exports.channelEligibleGuildSchema = guilds_1.guildConfigSchema
|
|
111
|
+
.extend({
|
|
112
|
+
eligibleMatches: zod_1.z
|
|
113
|
+
.array(zod_1.z.string())
|
|
114
|
+
.describe('List of match IDs eligible for channel creation'),
|
|
115
|
+
})
|
|
116
|
+
.describe('Guild data for channel creation eligibility');
|
|
117
|
+
/**
|
|
118
|
+
* Schema for channel creation events
|
|
119
|
+
* @group Channel Creation
|
|
120
|
+
*/
|
|
121
|
+
exports.channelCreationEventSchema = zod_1.z
|
|
122
|
+
.object({
|
|
123
|
+
channel: exports.channelAggregatedSchema,
|
|
124
|
+
guild: exports.channelEligibleGuildSchema,
|
|
125
|
+
metadata: shared_1.bullMqMetadataSchema,
|
|
126
|
+
})
|
|
127
|
+
.describe('Event data for channel creation operations');
|
|
128
|
+
/**
|
|
129
|
+
* Schema for incoming channel data from Pluto
|
|
130
|
+
* @group Channel Data
|
|
131
|
+
*/
|
|
132
|
+
exports.incomingChannelDataSchema = zod_1.z
|
|
133
|
+
.object({
|
|
134
|
+
channels: zod_1.z
|
|
135
|
+
.array(exports.channelAggregatedSchema)
|
|
136
|
+
.describe('Array of channel data'),
|
|
137
|
+
guilds: zod_1.z
|
|
138
|
+
.array(exports.channelEligibleGuildSchema)
|
|
139
|
+
.describe('Array of eligible guild data'),
|
|
140
|
+
})
|
|
141
|
+
.describe('Schema for Pluto to process channel creation events');
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group Colors
|
|
3
|
+
* Schemas for Discord color-related types and validations
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
/**
|
|
7
|
+
* Schema for Discord.js color values, supporting hex, integer, and named colors
|
|
8
|
+
* @group Colors
|
|
9
|
+
*/
|
|
10
|
+
export declare const colorResolvableSchema: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodEnum<["DEFAULT", "WHITE", "AQUA", "GREEN", "BLUE", "YELLOW", "PURPLE", "LUMINOUS_VIVID_PINK", "FUCHSIA", "GOLD", "ORANGE", "RED", "GREY", "NAVY", "DARK_AQUA", "DARK_GREEN", "DARK_BLUE", "DARK_PURPLE", "DARK_VIVID_PINK", "DARK_GOLD", "DARK_ORANGE", "DARK_RED", "DARK_GREY", "DARKER_GREY", "LIGHT_GREY", "DARK_NAVY", "BLURPLE", "GREYPLE", "DARK_BUT_NOT_BLACK", "NOT_QUITE_BLACK", "RANDOM"]>]>;
|
|
11
|
+
/**
|
|
12
|
+
* Type representing a Discord.js color value
|
|
13
|
+
* @group Colors
|
|
14
|
+
*/
|
|
15
|
+
export type ColorResolvable = z.infer<typeof colorResolvableSchema>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.colorResolvableSchema = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @group Colors
|
|
6
|
+
* Schemas for Discord color-related types and validations
|
|
7
|
+
*/
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
/**
|
|
10
|
+
* Schema for Discord.js color values, supporting hex, integer, and named colors
|
|
11
|
+
* @group Colors
|
|
12
|
+
*/
|
|
13
|
+
exports.colorResolvableSchema = zod_1.z
|
|
14
|
+
.union([
|
|
15
|
+
zod_1.z
|
|
16
|
+
.string()
|
|
17
|
+
.regex(/^#[0-9A-Fa-f]{6}$/)
|
|
18
|
+
.describe('Hex color code in #RRGGBB format'),
|
|
19
|
+
zod_1.z
|
|
20
|
+
.number()
|
|
21
|
+
.int()
|
|
22
|
+
.min(0)
|
|
23
|
+
.max(0xffffff)
|
|
24
|
+
.describe('Integer color value between 0 and 16777215'),
|
|
25
|
+
zod_1.z
|
|
26
|
+
.enum([
|
|
27
|
+
'DEFAULT',
|
|
28
|
+
'WHITE',
|
|
29
|
+
'AQUA',
|
|
30
|
+
'GREEN',
|
|
31
|
+
'BLUE',
|
|
32
|
+
'YELLOW',
|
|
33
|
+
'PURPLE',
|
|
34
|
+
'LUMINOUS_VIVID_PINK',
|
|
35
|
+
'FUCHSIA',
|
|
36
|
+
'GOLD',
|
|
37
|
+
'ORANGE',
|
|
38
|
+
'RED',
|
|
39
|
+
'GREY',
|
|
40
|
+
'NAVY',
|
|
41
|
+
'DARK_AQUA',
|
|
42
|
+
'DARK_GREEN',
|
|
43
|
+
'DARK_BLUE',
|
|
44
|
+
'DARK_PURPLE',
|
|
45
|
+
'DARK_VIVID_PINK',
|
|
46
|
+
'DARK_GOLD',
|
|
47
|
+
'DARK_ORANGE',
|
|
48
|
+
'DARK_RED',
|
|
49
|
+
'DARK_GREY',
|
|
50
|
+
'DARKER_GREY',
|
|
51
|
+
'LIGHT_GREY',
|
|
52
|
+
'DARK_NAVY',
|
|
53
|
+
'BLURPLE',
|
|
54
|
+
'GREYPLE',
|
|
55
|
+
'DARK_BUT_NOT_BLACK',
|
|
56
|
+
'NOT_QUITE_BLACK',
|
|
57
|
+
'RANDOM',
|
|
58
|
+
])
|
|
59
|
+
.describe('Discord.js predefined color names'),
|
|
60
|
+
])
|
|
61
|
+
.describe('Discord.js ColorResolvable - supports hex codes, integers, and predefined color names');
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group Guilds
|
|
3
|
+
* Schemas and types for Discord guild (server) configurations
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
/**
|
|
7
|
+
* Base schema for guild configuration
|
|
8
|
+
* @group Guilds
|
|
9
|
+
*/
|
|
10
|
+
export declare const guildConfigSchema: z.ZodObject<{
|
|
11
|
+
guildId: z.ZodString;
|
|
12
|
+
bettingChannelId: z.ZodString;
|
|
13
|
+
gameCategoryId: z.ZodString;
|
|
14
|
+
preferredTeams: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
15
|
+
sport: z.ZodString;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
guildId: string;
|
|
18
|
+
bettingChannelId: string;
|
|
19
|
+
gameCategoryId: string;
|
|
20
|
+
sport: string;
|
|
21
|
+
preferredTeams?: string[] | undefined;
|
|
22
|
+
}, {
|
|
23
|
+
guildId: string;
|
|
24
|
+
bettingChannelId: string;
|
|
25
|
+
gameCategoryId: string;
|
|
26
|
+
sport: string;
|
|
27
|
+
preferredTeams?: string[] | undefined;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Type representing base guild configuration
|
|
31
|
+
* @group Guilds
|
|
32
|
+
*/
|
|
33
|
+
export type GuildConfig = z.infer<typeof guildConfigSchema>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.guildConfigSchema = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @group Guilds
|
|
6
|
+
* Schemas and types for Discord guild (server) configurations
|
|
7
|
+
*/
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
/**
|
|
10
|
+
* Base schema for guild configuration
|
|
11
|
+
* @group Guilds
|
|
12
|
+
*/
|
|
13
|
+
exports.guildConfigSchema = zod_1.z
|
|
14
|
+
.object({
|
|
15
|
+
guildId: zod_1.z.string().describe('Discord guild (server) ID'),
|
|
16
|
+
bettingChannelId: zod_1.z
|
|
17
|
+
.string()
|
|
18
|
+
.describe('ID of the channel where betting takes place'),
|
|
19
|
+
gameCategoryId: zod_1.z
|
|
20
|
+
.string()
|
|
21
|
+
.describe('ID of the category where game channels are created'),
|
|
22
|
+
preferredTeams: zod_1.z
|
|
23
|
+
.array(zod_1.z.string())
|
|
24
|
+
.optional()
|
|
25
|
+
.describe('List of teams the guild follows. May be an empty array if the guild follows no teams, allowing them to receive data for all events for their defined sport'),
|
|
26
|
+
sport: zod_1.z.string().describe('Sport type for this guild configuration'),
|
|
27
|
+
})
|
|
28
|
+
.describe('Base Discord Guild configuration');
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group Metadata
|
|
3
|
+
* Common metadata schemas used across features
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
/**
|
|
7
|
+
* Schema for match metadata
|
|
8
|
+
* @group Metadata
|
|
9
|
+
*/
|
|
10
|
+
export declare const matchMetadataSchema: z.ZodObject<{
|
|
11
|
+
headline: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
12
|
+
records: z.ZodNullable<z.ZodOptional<z.ZodObject<{
|
|
13
|
+
home_team: z.ZodObject<{
|
|
14
|
+
total_record: z.ZodString;
|
|
15
|
+
}, "strip", z.ZodTypeAny, {
|
|
16
|
+
total_record: string;
|
|
17
|
+
}, {
|
|
18
|
+
total_record: string;
|
|
19
|
+
}>;
|
|
20
|
+
away_team: z.ZodObject<{
|
|
21
|
+
total_record: z.ZodString;
|
|
22
|
+
}, "strip", z.ZodTypeAny, {
|
|
23
|
+
total_record: string;
|
|
24
|
+
}, {
|
|
25
|
+
total_record: string;
|
|
26
|
+
}>;
|
|
27
|
+
}, "strip", z.ZodTypeAny, {
|
|
28
|
+
home_team: {
|
|
29
|
+
total_record: string;
|
|
30
|
+
};
|
|
31
|
+
away_team: {
|
|
32
|
+
total_record: string;
|
|
33
|
+
};
|
|
34
|
+
}, {
|
|
35
|
+
home_team: {
|
|
36
|
+
total_record: string;
|
|
37
|
+
};
|
|
38
|
+
away_team: {
|
|
39
|
+
total_record: string;
|
|
40
|
+
};
|
|
41
|
+
}>>>;
|
|
42
|
+
}, "strip", z.ZodTypeAny, {
|
|
43
|
+
headline?: string | null | undefined;
|
|
44
|
+
records?: {
|
|
45
|
+
home_team: {
|
|
46
|
+
total_record: string;
|
|
47
|
+
};
|
|
48
|
+
away_team: {
|
|
49
|
+
total_record: string;
|
|
50
|
+
};
|
|
51
|
+
} | null | undefined;
|
|
52
|
+
}, {
|
|
53
|
+
headline?: string | null | undefined;
|
|
54
|
+
records?: {
|
|
55
|
+
home_team: {
|
|
56
|
+
total_record: string;
|
|
57
|
+
};
|
|
58
|
+
away_team: {
|
|
59
|
+
total_record: string;
|
|
60
|
+
};
|
|
61
|
+
} | null | undefined;
|
|
62
|
+
}>;
|
|
63
|
+
export type MatchMetadata = z.infer<typeof matchMetadataSchema>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.matchMetadataSchema = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @group Metadata
|
|
6
|
+
* Common metadata schemas used across features
|
|
7
|
+
*/
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
const sports_1 = require("./sports");
|
|
10
|
+
/**
|
|
11
|
+
* Schema for match metadata
|
|
12
|
+
* @group Metadata
|
|
13
|
+
*/
|
|
14
|
+
exports.matchMetadataSchema = zod_1.z
|
|
15
|
+
.object({
|
|
16
|
+
headline: zod_1.z.string().optional().nullable().describe('Match headline'),
|
|
17
|
+
records: sports_1.teamRecordsResultSchema
|
|
18
|
+
.optional()
|
|
19
|
+
.nullable()
|
|
20
|
+
.describe('Team records information'),
|
|
21
|
+
})
|
|
22
|
+
.describe('Match metadata information');
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group Shared
|
|
3
|
+
* Shared schemas and types used across multiple features
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
/**
|
|
7
|
+
* Schema for BullMQ job metadata
|
|
8
|
+
* @group Queue
|
|
9
|
+
*/
|
|
10
|
+
export declare const bullMqMetadataSchema: z.ZodObject<{
|
|
11
|
+
publishedAt: z.ZodDate;
|
|
12
|
+
eventId: z.ZodString;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
publishedAt: Date;
|
|
15
|
+
eventId: string;
|
|
16
|
+
}, {
|
|
17
|
+
publishedAt: Date;
|
|
18
|
+
eventId: string;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Type representing BullMQ job metadata
|
|
22
|
+
* @group Queue
|
|
23
|
+
*/
|
|
24
|
+
export type BullMqMetadata = z.infer<typeof bullMqMetadataSchema>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bullMqMetadataSchema = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @group Shared
|
|
6
|
+
* Shared schemas and types used across multiple features
|
|
7
|
+
*/
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
/**
|
|
10
|
+
* Schema for BullMQ job metadata
|
|
11
|
+
* @group Queue
|
|
12
|
+
*/
|
|
13
|
+
exports.bullMqMetadataSchema = zod_1.z
|
|
14
|
+
.object({
|
|
15
|
+
publishedAt: zod_1.z.date().describe('Timestamp when the event was published'),
|
|
16
|
+
eventId: zod_1.z.string().describe('Unique identifier for tracking the event'),
|
|
17
|
+
})
|
|
18
|
+
.describe('Common metadata structure for BullMQ jobs');
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group Sports
|
|
3
|
+
* Schemas and types for sports-related data
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
/**
|
|
7
|
+
* Constant object defining supported sports
|
|
8
|
+
* @group Sports
|
|
9
|
+
*/
|
|
10
|
+
export declare const SportsServing: {
|
|
11
|
+
readonly nba: "nba";
|
|
12
|
+
readonly nfl: "nfl";
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Schema for supported sports in the application
|
|
16
|
+
* @group Sports
|
|
17
|
+
*/
|
|
18
|
+
export declare const sportsServingSchema: z.ZodEnum<["nba", "nfl"]>;
|
|
19
|
+
/**
|
|
20
|
+
* Schema for a team's record information
|
|
21
|
+
* @group Sports
|
|
22
|
+
*/
|
|
23
|
+
export declare const teamRecordSchema: z.ZodObject<{
|
|
24
|
+
total_record: z.ZodString;
|
|
25
|
+
}, "strip", z.ZodTypeAny, {
|
|
26
|
+
total_record: string;
|
|
27
|
+
}, {
|
|
28
|
+
total_record: string;
|
|
29
|
+
}>;
|
|
30
|
+
/**
|
|
31
|
+
* Schema for both teams' record information in a match
|
|
32
|
+
* @group Sports
|
|
33
|
+
*/
|
|
34
|
+
export declare const teamRecordsResultSchema: z.ZodObject<{
|
|
35
|
+
home_team: z.ZodObject<{
|
|
36
|
+
total_record: z.ZodString;
|
|
37
|
+
}, "strip", z.ZodTypeAny, {
|
|
38
|
+
total_record: string;
|
|
39
|
+
}, {
|
|
40
|
+
total_record: string;
|
|
41
|
+
}>;
|
|
42
|
+
away_team: z.ZodObject<{
|
|
43
|
+
total_record: z.ZodString;
|
|
44
|
+
}, "strip", z.ZodTypeAny, {
|
|
45
|
+
total_record: string;
|
|
46
|
+
}, {
|
|
47
|
+
total_record: string;
|
|
48
|
+
}>;
|
|
49
|
+
}, "strip", z.ZodTypeAny, {
|
|
50
|
+
home_team: {
|
|
51
|
+
total_record: string;
|
|
52
|
+
};
|
|
53
|
+
away_team: {
|
|
54
|
+
total_record: string;
|
|
55
|
+
};
|
|
56
|
+
}, {
|
|
57
|
+
home_team: {
|
|
58
|
+
total_record: string;
|
|
59
|
+
};
|
|
60
|
+
away_team: {
|
|
61
|
+
total_record: string;
|
|
62
|
+
};
|
|
63
|
+
}>;
|
|
64
|
+
/**
|
|
65
|
+
* Type representing a team's record
|
|
66
|
+
* @group Sports
|
|
67
|
+
*/
|
|
68
|
+
export type TeamRecord = z.infer<typeof teamRecordSchema>;
|
|
69
|
+
/**
|
|
70
|
+
* Type representing both teams' records in a match
|
|
71
|
+
|
|
72
|
+
* @group Sports
|
|
73
|
+
*/
|
|
74
|
+
export type TeamRecordsResult = z.infer<typeof teamRecordsResultSchema>;
|
|
75
|
+
/**
|
|
76
|
+
* Type representing the sports we support
|
|
77
|
+
* @group Sports
|
|
78
|
+
*/
|
|
79
|
+
export type SportsServing = z.infer<typeof sportsServingSchema>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.teamRecordsResultSchema = exports.teamRecordSchema = exports.sportsServingSchema = exports.SportsServing = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @group Sports
|
|
6
|
+
* Schemas and types for sports-related data
|
|
7
|
+
*/
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
/**
|
|
10
|
+
* Constant object defining supported sports
|
|
11
|
+
* @group Sports
|
|
12
|
+
*/
|
|
13
|
+
exports.SportsServing = {
|
|
14
|
+
nba: 'nba',
|
|
15
|
+
nfl: 'nfl',
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Schema for supported sports in the application
|
|
19
|
+
* @group Sports
|
|
20
|
+
*/
|
|
21
|
+
exports.sportsServingSchema = zod_1.z
|
|
22
|
+
.enum(['nba', 'nfl'])
|
|
23
|
+
.describe('Sports we support in the APIs');
|
|
24
|
+
/**
|
|
25
|
+
* Schema for a team's record information
|
|
26
|
+
* @group Sports
|
|
27
|
+
*/
|
|
28
|
+
exports.teamRecordSchema = zod_1.z
|
|
29
|
+
.object({
|
|
30
|
+
total_record: zod_1.z.string().describe("Team's total win-loss record"),
|
|
31
|
+
})
|
|
32
|
+
.describe('Team record structure');
|
|
33
|
+
/**
|
|
34
|
+
* Schema for both teams' record information in a match
|
|
35
|
+
* @group Sports
|
|
36
|
+
*/
|
|
37
|
+
exports.teamRecordsResultSchema = zod_1.z
|
|
38
|
+
.object({
|
|
39
|
+
home_team: exports.teamRecordSchema.describe("Home team's record"),
|
|
40
|
+
away_team: exports.teamRecordSchema.describe("Away team's record"),
|
|
41
|
+
})
|
|
42
|
+
.describe('Team Record information for both teams in a match');
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group Teams
|
|
3
|
+
* Schemas for team-related data
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
/**
|
|
7
|
+
* Schema for team names in a match
|
|
8
|
+
* @group Teams
|
|
9
|
+
*/
|
|
10
|
+
export declare const matchTeamsSchema: z.ZodObject<{
|
|
11
|
+
home_team: z.ZodString;
|
|
12
|
+
away_team: z.ZodString;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
home_team: string;
|
|
15
|
+
away_team: string;
|
|
16
|
+
}, {
|
|
17
|
+
home_team: string;
|
|
18
|
+
away_team: string;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Schema for team abbreviations
|
|
22
|
+
* @group Teams
|
|
23
|
+
*/
|
|
24
|
+
export declare const teamAbbreviationsSchema: z.ZodObject<{
|
|
25
|
+
homeTeamShortName: z.ZodString;
|
|
26
|
+
awayTeamShortName: z.ZodString;
|
|
27
|
+
}, "strip", z.ZodTypeAny, {
|
|
28
|
+
homeTeamShortName: string;
|
|
29
|
+
awayTeamShortName: string;
|
|
30
|
+
}, {
|
|
31
|
+
homeTeamShortName: string;
|
|
32
|
+
awayTeamShortName: string;
|
|
33
|
+
}>;
|
|
34
|
+
export type MatchTeams = z.infer<typeof matchTeamsSchema>;
|
|
35
|
+
export type TeamAbbreviations = z.infer<typeof teamAbbreviationsSchema>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.teamAbbreviationsSchema = exports.matchTeamsSchema = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @group Teams
|
|
6
|
+
* Schemas for team-related data
|
|
7
|
+
*/
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
/**
|
|
10
|
+
* Schema for team names in a match
|
|
11
|
+
* @group Teams
|
|
12
|
+
*/
|
|
13
|
+
exports.matchTeamsSchema = zod_1.z
|
|
14
|
+
.object({
|
|
15
|
+
home_team: zod_1.z.string().describe('Name of the home team'),
|
|
16
|
+
away_team: zod_1.z.string().describe('Name of the away team'),
|
|
17
|
+
})
|
|
18
|
+
.describe('Team names in a match');
|
|
19
|
+
/**
|
|
20
|
+
* Schema for team abbreviations
|
|
21
|
+
* @group Teams
|
|
22
|
+
*/
|
|
23
|
+
exports.teamAbbreviationsSchema = zod_1.z
|
|
24
|
+
.object({
|
|
25
|
+
homeTeamShortName: zod_1.z
|
|
26
|
+
.string()
|
|
27
|
+
.describe('Short name/abbreviation of home team'),
|
|
28
|
+
awayTeamShortName: zod_1.z
|
|
29
|
+
.string()
|
|
30
|
+
.describe('Short name/abbreviation of away team'),
|
|
31
|
+
})
|
|
32
|
+
.describe('Team abbreviations');
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ColorResolvable = `#${string}` | "DEFAULT" | "WHITE" | "AQUA" | "GREEN" | "BLUE" | "YELLOW" | "PURPLE" | "LUMINOUS_VIVID_PINK" | "FUCHSIA" | "GOLD" | "ORANGE" | "RED" | "GREY" | "NAVY" | "DARK_AQUA" | "DARK_GREEN" | "DARK_BLUE" | "DARK_PURPLE" | "DARK_VIVID_PINK" | "DARK_GOLD" | "DARK_ORANGE" | "DARK_RED" | "DARK_GREY" | "DARKER_GREY" | "LIGHT_GREY" | "DARK_NAVY" | "BLURPLE" | "GREYPLE" | "DARK_BUT_NOT_BLACK" | "NOT_QUITE_BLACK" | "RANDOM" | number;
|
package/dist/types.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pluto-khronos/types",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Shared TypeScript types for Pluto & Khronos projects",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"type-check": "tsc --noEmit",
|
|
13
|
+
"clean": "rm -rf dist",
|
|
14
|
+
"format": "biome check --write --unsafe .",
|
|
15
|
+
"docs": "typedoc",
|
|
16
|
+
"docs:watch": "typedoc --watch"
|
|
17
|
+
},
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"typescript",
|
|
23
|
+
"types"
|
|
24
|
+
],
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@biomejs/biome": "1.9.4",
|
|
28
|
+
"@types/bun": "^1.2.3",
|
|
29
|
+
"@types/node": "^22.13.5",
|
|
30
|
+
"lefthook": "^1.11.0",
|
|
31
|
+
"typedoc": "^0.27.8",
|
|
32
|
+
"typedoc-plugin-markdown": "^4.4.2",
|
|
33
|
+
"typedoc-plugin-mdn-links": "^4.0.14",
|
|
34
|
+
"typedoc-plugin-zod": "^1.3.1",
|
|
35
|
+
"typedoc-theme-hierarchy": "^5.0.4",
|
|
36
|
+
"typescript": "^5.0.0"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"zod": "^3.24.2"
|
|
40
|
+
}
|
|
41
|
+
}
|