@levrbet/shared 0.1.64 → 0.1.66
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/dist/core/types/oracle/game.types.d.ts +4 -0
- package/dist/core/types/oracle/game.types.js +6 -1
- package/dist/core/types/oracle/game.types.js.map +1 -1
- package/dist/core/types/oracle/request_types/game.request.types.d.ts +32 -0
- package/dist/core/types/oracle/request_types/game.request.types.js +21 -1
- package/dist/core/types/oracle/request_types/game.request.types.js.map +1 -1
- package/dist/server/utils/express.utils.d.ts +24 -0
- package/dist/server/utils/express.utils.js +36 -0
- package/dist/server/utils/express.utils.js.map +1 -0
- package/dist/server/utils/index.d.ts +1 -0
- package/dist/server/utils/index.js +1 -0
- package/dist/server/utils/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formattedMarketType = void 0;
|
|
3
|
+
exports.formattedMarketType = exports.RegistrationStatus = void 0;
|
|
4
4
|
const prisma_1 = require("../../prisma");
|
|
5
|
+
var RegistrationStatus;
|
|
6
|
+
(function (RegistrationStatus) {
|
|
7
|
+
RegistrationStatus["Registered"] = "Registered";
|
|
8
|
+
RegistrationStatus["Unregistered"] = "Unregistered";
|
|
9
|
+
})(RegistrationStatus || (exports.RegistrationStatus = RegistrationStatus = {}));
|
|
5
10
|
const formattedMarketType = (market) => {
|
|
6
11
|
return {
|
|
7
12
|
[prisma_1.MarketTypes.FullTimeWinner]: "Full Time Winner",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game.types.js","sourceRoot":"","sources":["../../../../src/core/types/oracle/game.types.ts"],"names":[],"mappings":";;;AAAA,yCAA0C;
|
|
1
|
+
{"version":3,"file":"game.types.js","sourceRoot":"","sources":["../../../../src/core/types/oracle/game.types.ts"],"names":[],"mappings":";;;AAAA,yCAA0C;AAE1C,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,+CAAyB,CAAA;IACzB,mDAA6B,CAAA;AACjC,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAEM,MAAM,mBAAmB,GAAG,CAAC,MAAmB,EAAE,EAAE;IACvD,OAAO;QACH,CAAC,oBAAW,CAAC,cAAc,CAAC,EAAE,kBAAkB;QAChD,CAAC,oBAAW,CAAC,SAAS,CAAC,EAAE,YAAY;KACxC,CAAC,MAAM,CAAC,CAAA;AACb,CAAC,CAAA;AALY,QAAA,mBAAmB,uBAK/B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { LevrMarketId } from "../../../contracts";
|
|
3
3
|
import { LevrChain } from "../../blockchain";
|
|
4
|
+
import { RegistrationStatus } from "../game.types";
|
|
4
5
|
export declare const CreateSportsRequestSchema: z.ZodObject<{
|
|
5
6
|
sports: z.ZodArray<z.ZodObject<{
|
|
6
7
|
name: z.ZodString;
|
|
@@ -116,6 +117,35 @@ export declare const CreateGameRequestSchema: z.ZodObject<{
|
|
|
116
117
|
sideGroup: z.ZodOptional<z.ZodNumber>;
|
|
117
118
|
}, z.core.$strip>>;
|
|
118
119
|
}, z.core.$strip>;
|
|
120
|
+
export declare const GetActiveGamesQuerySchema: z.ZodObject<{
|
|
121
|
+
page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
122
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
123
|
+
eventName: z.ZodOptional<z.ZodString>;
|
|
124
|
+
sportGroup: z.ZodOptional<z.ZodEnum<{
|
|
125
|
+
Football: "Football";
|
|
126
|
+
Basketball: "Basketball";
|
|
127
|
+
Baseball: "Baseball";
|
|
128
|
+
AmericanFootball: "AmericanFootball";
|
|
129
|
+
}>>;
|
|
130
|
+
startDate: z.ZodOptional<z.ZodISODateTime>;
|
|
131
|
+
endDate: z.ZodOptional<z.ZodISODateTime>;
|
|
132
|
+
leagueAbbreviation: z.ZodOptional<z.ZodString>;
|
|
133
|
+
}, z.core.$strip>;
|
|
134
|
+
export declare const GetFixturesQuerySchema: z.ZodObject<{
|
|
135
|
+
page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
136
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
137
|
+
eventName: z.ZodOptional<z.ZodString>;
|
|
138
|
+
registrationStatus: z.ZodOptional<z.ZodEnum<typeof RegistrationStatus>>;
|
|
139
|
+
sportGroup: z.ZodOptional<z.ZodEnum<{
|
|
140
|
+
Football: "Football";
|
|
141
|
+
Basketball: "Basketball";
|
|
142
|
+
Baseball: "Baseball";
|
|
143
|
+
AmericanFootball: "AmericanFootball";
|
|
144
|
+
}>>;
|
|
145
|
+
startDate: z.ZodOptional<z.ZodISODateTime>;
|
|
146
|
+
endDate: z.ZodOptional<z.ZodISODateTime>;
|
|
147
|
+
leagueAbbreviation: z.ZodOptional<z.ZodString>;
|
|
148
|
+
}, z.core.$strip>;
|
|
119
149
|
export type CreateLeaguesRequest = z.infer<typeof CreateLeaguesRequestSchema>;
|
|
120
150
|
export type CreateSportsRequest = z.infer<typeof CreateSportsRequestSchema>;
|
|
121
151
|
export type CreateTournamentRequest = z.infer<typeof CreateTournamentsRequestSchema>;
|
|
@@ -123,3 +153,5 @@ export type UpdateTournamentConfigRequest = z.infer<typeof UpdateTournamentConfi
|
|
|
123
153
|
export type CreateProviderRequest = z.infer<typeof CreateProviderRequestSchema>;
|
|
124
154
|
export type CreateFixtureRequest = z.infer<typeof CreateFixtureRequestSchema>;
|
|
125
155
|
export type CreateGameRequest = z.infer<typeof CreateGameRequestSchema>;
|
|
156
|
+
export type GetActiveGamesQuery = z.infer<typeof GetActiveGamesQuerySchema>;
|
|
157
|
+
export type GetFixturesQuery = z.infer<typeof GetFixturesQuerySchema>;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CreateGameRequestSchema = exports.CreateFixtureRequestSchema = exports.TeamSchema = exports.CreateProviderRequestSchema = exports.CreateLeaguesRequestSchema = exports.UpdateTournamentConfigSchema = exports.CreateTournamentsRequestSchema = exports.CreateSportsRequestSchema = void 0;
|
|
3
|
+
exports.GetFixturesQuerySchema = exports.GetActiveGamesQuerySchema = exports.CreateGameRequestSchema = exports.CreateFixtureRequestSchema = exports.TeamSchema = exports.CreateProviderRequestSchema = exports.CreateLeaguesRequestSchema = exports.UpdateTournamentConfigSchema = exports.CreateTournamentsRequestSchema = exports.CreateSportsRequestSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const contracts_1 = require("../../../contracts");
|
|
6
6
|
const prisma_1 = require("../../../prisma");
|
|
7
7
|
const validators_1 = require("../../../validators");
|
|
8
8
|
const blockchain_1 = require("../../blockchain");
|
|
9
|
+
const game_types_1 = require("../game.types");
|
|
9
10
|
exports.CreateSportsRequestSchema = zod_1.z.object({
|
|
10
11
|
sports: zod_1.z
|
|
11
12
|
.array(zod_1.z.object({
|
|
@@ -101,4 +102,23 @@ exports.CreateGameRequestSchema = zod_1.z.object({
|
|
|
101
102
|
sideGroup: zod_1.z.number().optional(), // Optional side group
|
|
102
103
|
})),
|
|
103
104
|
});
|
|
105
|
+
exports.GetActiveGamesQuerySchema = zod_1.z.object({
|
|
106
|
+
page: zod_1.z.coerce.number().min(1).default(1),
|
|
107
|
+
limit: zod_1.z.coerce.number().min(1).max(100).default(25),
|
|
108
|
+
eventName: zod_1.z.string().optional(),
|
|
109
|
+
sportGroup: zod_1.z.enum(prisma_1.SportGroup).optional(),
|
|
110
|
+
startDate: zod_1.z.iso.datetime({ message: "Invalid ISO datetime for startDate" }).optional(),
|
|
111
|
+
endDate: zod_1.z.iso.datetime({ message: "Invalid ISO datetime for endDate" }).optional(),
|
|
112
|
+
leagueAbbreviation: zod_1.z.string().optional(),
|
|
113
|
+
});
|
|
114
|
+
exports.GetFixturesQuerySchema = zod_1.z.object({
|
|
115
|
+
page: zod_1.z.coerce.number().min(1).default(1),
|
|
116
|
+
limit: zod_1.z.coerce.number().min(1).max(100).default(25),
|
|
117
|
+
eventName: zod_1.z.string().optional(),
|
|
118
|
+
registrationStatus: zod_1.z.enum(game_types_1.RegistrationStatus).optional(),
|
|
119
|
+
sportGroup: zod_1.z.enum(prisma_1.SportGroup).optional(),
|
|
120
|
+
startDate: zod_1.z.iso.datetime({ message: "Invalid ISO datetime for startDate" }).optional(),
|
|
121
|
+
endDate: zod_1.z.iso.datetime({ message: "Invalid ISO datetime for endDate" }).optional(),
|
|
122
|
+
leagueAbbreviation: zod_1.z.string().optional(),
|
|
123
|
+
});
|
|
104
124
|
//# sourceMappingURL=game.request.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game.request.types.js","sourceRoot":"","sources":["../../../../../src/core/types/oracle/request_types/game.request.types.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,kDAAiD;AACjD,4CAAwE;AACxE,oDAQ4B;AAC5B,iDAA4C;
|
|
1
|
+
{"version":3,"file":"game.request.types.js","sourceRoot":"","sources":["../../../../../src/core/types/oracle/request_types/game.request.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Request, Response } from "express";
|
|
2
|
+
import type { ZodType } from "zod";
|
|
3
|
+
/**
|
|
4
|
+
* Validates a part of an Express request using a Zod schema and returns the validated data.
|
|
5
|
+
*
|
|
6
|
+
* @param schema - The Zod schema to validate against
|
|
7
|
+
* @param req - The Express request object
|
|
8
|
+
* @param part - The part of the request to validate ("body", "query", "params", etc.)
|
|
9
|
+
* @param res - The Express response object
|
|
10
|
+
* @returns The validated data if successful, undefined if validation fails (and sends 400 response)
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const bodySchema = z.object({ name: z.string() });
|
|
15
|
+
*
|
|
16
|
+
* app.post("/api", (req, res) => {
|
|
17
|
+
* const body = validateRequest(bodySchema, req, "body", res);
|
|
18
|
+
* if (!body) return;
|
|
19
|
+
* // body is now typed as { name: string }
|
|
20
|
+
* console.log(body.name);
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function validateRequest<T>(schema: ZodType<T>, req: Request, part: keyof Request, res: Response): T | undefined;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateRequest = validateRequest;
|
|
4
|
+
/**
|
|
5
|
+
* Validates a part of an Express request using a Zod schema and returns the validated data.
|
|
6
|
+
*
|
|
7
|
+
* @param schema - The Zod schema to validate against
|
|
8
|
+
* @param req - The Express request object
|
|
9
|
+
* @param part - The part of the request to validate ("body", "query", "params", etc.)
|
|
10
|
+
* @param res - The Express response object
|
|
11
|
+
* @returns The validated data if successful, undefined if validation fails (and sends 400 response)
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const bodySchema = z.object({ name: z.string() });
|
|
16
|
+
*
|
|
17
|
+
* app.post("/api", (req, res) => {
|
|
18
|
+
* const body = validateRequest(bodySchema, req, "body", res);
|
|
19
|
+
* if (!body) return;
|
|
20
|
+
* // body is now typed as { name: string }
|
|
21
|
+
* console.log(body.name);
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
function validateRequest(schema, req, part, res) {
|
|
26
|
+
const result = schema.safeParse(req[part]);
|
|
27
|
+
if (!result.success) {
|
|
28
|
+
res.status(400).json({
|
|
29
|
+
error: `Validation failed for request ${part.toString()}`,
|
|
30
|
+
details: result.error.issues,
|
|
31
|
+
});
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
return result.data;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=express.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"express.utils.js","sourceRoot":"","sources":["../../../src/server/utils/express.utils.ts"],"names":[],"mappings":";;AAwBA,0CAYC;AAjCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,eAAe,CAAI,MAAkB,EAAE,GAAY,EAAE,IAAmB,EAAE,GAAa;IACnG,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAE1C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,iCAAiC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACzD,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;SAC/B,CAAC,CAAA;QACF,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAA;AACtB,CAAC"}
|
|
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./constants"), exports);
|
|
18
18
|
__exportStar(require("./converters"), exports);
|
|
19
|
+
__exportStar(require("./express.utils"), exports);
|
|
19
20
|
__exportStar(require("./game.utils"), exports);
|
|
20
21
|
__exportStar(require("./tracing/trace"), exports);
|
|
21
22
|
__exportStar(require("./tracing/wrap.module.with.tracing"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,+CAA4B;AAC5B,+CAA4B;AAC5B,kDAA+B;AAC/B,qEAAkD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,+CAA4B;AAC5B,kDAA+B;AAC/B,+CAA4B;AAC5B,kDAA+B;AAC/B,qEAAkD"}
|