gambling-bot-shared 0.1.35 → 0.1.37

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.
@@ -0,0 +1,8 @@
1
+ export declare const GAME_RECORD_FIELDS: {
2
+ readonly slots: readonly ["winMultipliers", "symbolWeights"];
3
+ readonly lottery: readonly ["winMultipliers"];
4
+ readonly roulette: readonly ["winMultipliers"];
5
+ readonly plinko: readonly ["binMultipliers"];
6
+ };
7
+ export type GameWithRecords = keyof typeof GAME_RECORD_FIELDS;
8
+ export type RecordKey = (typeof GAME_RECORD_FIELDS)[GameWithRecords][number];
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GAME_RECORD_FIELDS = void 0;
4
+ exports.GAME_RECORD_FIELDS = {
5
+ slots: ['winMultipliers', 'symbolWeights'],
6
+ lottery: ['winMultipliers'],
7
+ roulette: ['winMultipliers'],
8
+ plinko: ['binMultipliers']
9
+ };
@@ -2,3 +2,5 @@ export * from './defaultConfig';
2
2
  export * from './maxSimulations';
3
3
  export * from './lotteryConfig';
4
4
  export * from './rouletteConfig';
5
+ export * from './gameRecordFields';
6
+ export * from './transaction';
@@ -18,3 +18,5 @@ __exportStar(require("./defaultConfig"), exports);
18
18
  __exportStar(require("./maxSimulations"), exports);
19
19
  __exportStar(require("./lotteryConfig"), exports);
20
20
  __exportStar(require("./rouletteConfig"), exports);
21
+ __exportStar(require("./gameRecordFields"), exports);
22
+ __exportStar(require("./transaction"), exports);
@@ -0,0 +1,2 @@
1
+ export declare const TRANSACTION_TYPES: readonly ["deposit", "withdraw", "bet", "win", "refund", "bonus", "vip"];
2
+ export declare const TRANSACTION_SOURCES: readonly ["command", "manual", "web", "system", "casino"];
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TRANSACTION_SOURCES = exports.TRANSACTION_TYPES = void 0;
4
+ exports.TRANSACTION_TYPES = [
5
+ 'deposit',
6
+ 'withdraw',
7
+ 'bet',
8
+ 'win',
9
+ 'refund',
10
+ 'bonus',
11
+ 'vip'
12
+ ];
13
+ exports.TRANSACTION_SOURCES = [
14
+ 'command',
15
+ 'manual',
16
+ 'web',
17
+ 'system',
18
+ 'casino'
19
+ ];
@@ -0,0 +1,115 @@
1
+ import z from 'zod';
2
+ export declare const atmChannelsFormSchema: z.ZodObject<{
3
+ actions: z.ZodString;
4
+ logs: z.ZodString;
5
+ }, z.core.$strip>;
6
+ export declare const casinoChannelsFormSchema: z.ZodObject<{
7
+ casinoChannelIds: z.ZodArray<z.ZodString>;
8
+ }, z.core.$strip>;
9
+ export declare const predictionChannelsFormSchema: z.ZodObject<{
10
+ actions: z.ZodString;
11
+ logs: z.ZodString;
12
+ }, z.core.$strip>;
13
+ export declare const raffleChannelsFormSchema: z.ZodObject<{
14
+ actions: z.ZodString;
15
+ logs: z.ZodString;
16
+ }, z.core.$strip>;
17
+ export declare const channelsFormSchema: z.ZodObject<{
18
+ atm: z.ZodObject<{
19
+ actions: z.ZodString;
20
+ logs: z.ZodString;
21
+ }, z.core.$strip>;
22
+ casino: z.ZodObject<{
23
+ casinoChannelIds: z.ZodArray<z.ZodString>;
24
+ }, z.core.$strip>;
25
+ prediction: z.ZodObject<{
26
+ actions: z.ZodString;
27
+ logs: z.ZodString;
28
+ }, z.core.$strip>;
29
+ raffle: z.ZodObject<{
30
+ actions: z.ZodString;
31
+ logs: z.ZodString;
32
+ }, z.core.$strip>;
33
+ }, z.core.$strip>;
34
+ export declare const casinoSettingsSchema: z.ZodObject<{
35
+ dice: z.ZodObject<{
36
+ winMultiplier: z.ZodNumber;
37
+ minBet: z.ZodNumber;
38
+ maxBet: z.ZodNumber;
39
+ }, z.core.$strip>;
40
+ coinflip: z.ZodObject<{
41
+ winMultiplier: z.ZodNumber;
42
+ minBet: z.ZodNumber;
43
+ maxBet: z.ZodNumber;
44
+ }, z.core.$strip>;
45
+ slots: z.ZodObject<{
46
+ winMultipliers: z.ZodRecord<z.ZodString, z.ZodNumber>;
47
+ symbolWeights: z.ZodRecord<z.ZodString, z.ZodNumber>;
48
+ minBet: z.ZodNumber;
49
+ maxBet: z.ZodNumber;
50
+ }, z.core.$strip>;
51
+ lottery: z.ZodObject<{
52
+ winMultipliers: z.ZodRecord<z.ZodString, z.ZodNumber>;
53
+ minBet: z.ZodNumber;
54
+ maxBet: z.ZodNumber;
55
+ }, z.core.$strip>;
56
+ roulette: z.ZodObject<{
57
+ winMultipliers: z.ZodRecord<z.ZodString, z.ZodNumber>;
58
+ minBet: z.ZodNumber;
59
+ maxBet: z.ZodNumber;
60
+ }, z.core.$strip>;
61
+ rps: z.ZodObject<{
62
+ casinoCut: z.ZodNumber;
63
+ minBet: z.ZodNumber;
64
+ maxBet: z.ZodNumber;
65
+ }, z.core.$strip>;
66
+ goldenJackpot: z.ZodObject<{
67
+ winMultiplier: z.ZodNumber;
68
+ oneInChance: z.ZodNumber;
69
+ minBet: z.ZodNumber;
70
+ maxBet: z.ZodNumber;
71
+ }, z.core.$strip>;
72
+ blackjack: z.ZodObject<{
73
+ minBet: z.ZodNumber;
74
+ maxBet: z.ZodNumber;
75
+ }, z.core.$strip>;
76
+ prediction: z.ZodObject<{
77
+ minBet: z.ZodNumber;
78
+ maxBet: z.ZodNumber;
79
+ }, z.core.$strip>;
80
+ raffle: z.ZodObject<{
81
+ casinoCut: z.ZodNumber;
82
+ }, z.core.$strip>;
83
+ plinko: z.ZodObject<{
84
+ binMultipliers: z.ZodRecord<z.ZodString, z.ZodNumber>;
85
+ minBet: z.ZodNumber;
86
+ maxBet: z.ZodNumber;
87
+ }, z.core.$strip>;
88
+ }, z.core.$strip>;
89
+ export declare const vipSettingsFormSchema: z.ZodObject<{
90
+ roleOwnerId: z.ZodString;
91
+ roleMemberId: z.ZodString;
92
+ pricePerDay: z.ZodNumber;
93
+ pricePerCreate: z.ZodNumber;
94
+ pricePerAdditionalMember: z.ZodNumber;
95
+ maxMembers: z.ZodNumber;
96
+ categoryId: z.ZodString;
97
+ }, z.core.$strip>;
98
+ export declare const managerRoleFormSchema: z.ZodObject<{
99
+ managerRoleId: z.ZodString;
100
+ }, z.core.$strip>;
101
+ export declare const bonusFormSchema: z.ZodObject<{
102
+ rewardMode: z.ZodEnum<{
103
+ linear: "linear";
104
+ exponential: "exponential";
105
+ }>;
106
+ baseReward: z.ZodNumber;
107
+ streakIncrement: z.ZodOptional<z.ZodNumber>;
108
+ streakMultiplier: z.ZodOptional<z.ZodNumber>;
109
+ maxReward: z.ZodNumber;
110
+ resetOnMax: z.ZodBoolean;
111
+ milestoneBonus: z.ZodObject<{
112
+ weekly: z.ZodNumber;
113
+ monthly: z.ZodNumber;
114
+ }, z.core.$strip>;
115
+ }, z.core.$strip>;
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.bonusFormSchema = exports.managerRoleFormSchema = exports.vipSettingsFormSchema = exports.casinoSettingsSchema = exports.channelsFormSchema = exports.raffleChannelsFormSchema = exports.predictionChannelsFormSchema = exports.casinoChannelsFormSchema = exports.atmChannelsFormSchema = void 0;
7
+ const zod_1 = __importDefault(require("zod"));
8
+ const NO_CHANNEL = 'At least one channel must be selected.';
9
+ exports.atmChannelsFormSchema = zod_1.default.object({
10
+ actions: zod_1.default.string().min(1, { message: NO_CHANNEL }),
11
+ logs: zod_1.default.string().min(1, { message: NO_CHANNEL })
12
+ });
13
+ exports.casinoChannelsFormSchema = zod_1.default.object({
14
+ casinoChannelIds: zod_1.default
15
+ .array(zod_1.default.string().min(1, { message: NO_CHANNEL }))
16
+ .min(1, { message: NO_CHANNEL })
17
+ });
18
+ exports.predictionChannelsFormSchema = zod_1.default.object({
19
+ actions: zod_1.default.string().min(1, { message: NO_CHANNEL }),
20
+ logs: zod_1.default.string().min(1, { message: NO_CHANNEL })
21
+ });
22
+ exports.raffleChannelsFormSchema = zod_1.default.object({
23
+ actions: zod_1.default.string().min(1, { message: NO_CHANNEL }),
24
+ logs: zod_1.default.string().min(1, { message: NO_CHANNEL })
25
+ });
26
+ exports.channelsFormSchema = zod_1.default.object({
27
+ atm: exports.atmChannelsFormSchema,
28
+ casino: exports.casinoChannelsFormSchema,
29
+ prediction: exports.predictionChannelsFormSchema,
30
+ raffle: exports.raffleChannelsFormSchema
31
+ });
32
+ const num = zod_1.default.number();
33
+ exports.casinoSettingsSchema = zod_1.default.object({
34
+ dice: zod_1.default.object({
35
+ winMultiplier: num,
36
+ minBet: num,
37
+ maxBet: num
38
+ }),
39
+ coinflip: zod_1.default.object({
40
+ winMultiplier: num,
41
+ minBet: num,
42
+ maxBet: num
43
+ }),
44
+ slots: zod_1.default.object({
45
+ winMultipliers: zod_1.default.record(zod_1.default.string(), num),
46
+ symbolWeights: zod_1.default.record(zod_1.default.string(), num),
47
+ minBet: num,
48
+ maxBet: num
49
+ }),
50
+ lottery: zod_1.default.object({
51
+ winMultipliers: zod_1.default.record(zod_1.default.string(), num),
52
+ minBet: num,
53
+ maxBet: num
54
+ }),
55
+ roulette: zod_1.default.object({
56
+ winMultipliers: zod_1.default.record(zod_1.default.string(), num),
57
+ minBet: num,
58
+ maxBet: num
59
+ }),
60
+ rps: zod_1.default.object({
61
+ casinoCut: num,
62
+ minBet: num,
63
+ maxBet: num
64
+ }),
65
+ goldenJackpot: zod_1.default.object({
66
+ winMultiplier: num,
67
+ oneInChance: num,
68
+ minBet: num,
69
+ maxBet: num
70
+ }),
71
+ blackjack: zod_1.default.object({
72
+ minBet: num,
73
+ maxBet: num
74
+ }),
75
+ prediction: zod_1.default.object({
76
+ minBet: num,
77
+ maxBet: num
78
+ }),
79
+ raffle: zod_1.default.object({
80
+ casinoCut: num
81
+ }),
82
+ plinko: zod_1.default.object({
83
+ binMultipliers: zod_1.default.record(zod_1.default.string(), num),
84
+ minBet: num,
85
+ maxBet: num
86
+ })
87
+ });
88
+ exports.vipSettingsFormSchema = zod_1.default.object({
89
+ roleOwnerId: zod_1.default.string().min(1, 'Select a Owner VIP role'),
90
+ roleMemberId: zod_1.default.string().min(1, 'Select a Member VIP role'),
91
+ pricePerDay: zod_1.default.number().min(0, 'Must be ≥ 0'),
92
+ pricePerCreate: zod_1.default.number().min(0, 'Must be ≥ 0'),
93
+ pricePerAdditionalMember: zod_1.default.number().min(0, 'Must be ≥ 0'),
94
+ maxMembers: zod_1.default.number().min(0, 'Must be ≥ 0'),
95
+ categoryId: zod_1.default.string().min(1, 'Select a category')
96
+ });
97
+ exports.managerRoleFormSchema = zod_1.default.object({
98
+ managerRoleId: zod_1.default.string().min(1, 'Select a manager role')
99
+ });
100
+ exports.bonusFormSchema = zod_1.default.object({
101
+ rewardMode: zod_1.default.enum(['linear', 'exponential']),
102
+ baseReward: zod_1.default.number().min(0),
103
+ streakIncrement: zod_1.default.number().min(0).optional(),
104
+ streakMultiplier: zod_1.default.number().min(0).optional(),
105
+ maxReward: zod_1.default.number().min(0),
106
+ resetOnMax: zod_1.default.boolean(),
107
+ milestoneBonus: zod_1.default.object({
108
+ weekly: zod_1.default.number().min(0),
109
+ monthly: zod_1.default.number().min(0)
110
+ })
111
+ });
@@ -0,0 +1 @@
1
+ export * from './forms';
@@ -0,0 +1,17 @@
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("./forms"), exports);
@@ -0,0 +1,6 @@
1
+ export declare const canClaimDailyBonus: (lastClaim: Date | null, now: Date) => boolean;
2
+ export declare const getStreakAfterClaim: (lastClaim: Date | null, now: Date, currentStreak: number) => number;
3
+ export declare const getStreakDisplay: (lastClaim: Date | null, now: Date, streak: number) => {
4
+ currentStreak: number;
5
+ nextStreak: number;
6
+ };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStreakDisplay = exports.getStreakAfterClaim = exports.canClaimDailyBonus = void 0;
4
+ const DAY_MS = 24 * 60 * 60 * 1000;
5
+ const canClaimDailyBonus = (lastClaim, now) => {
6
+ if (!lastClaim)
7
+ return true;
8
+ return now.getTime() - lastClaim.getTime() >= DAY_MS;
9
+ };
10
+ exports.canClaimDailyBonus = canClaimDailyBonus;
11
+ const getStreakAfterClaim = (lastClaim, now, currentStreak) => {
12
+ if (!lastClaim)
13
+ return 1;
14
+ if (now.getTime() - lastClaim.getTime() < 2 * DAY_MS) {
15
+ return currentStreak + 1;
16
+ }
17
+ return 1;
18
+ };
19
+ exports.getStreakAfterClaim = getStreakAfterClaim;
20
+ const getStreakDisplay = (lastClaim, now, streak) => {
21
+ if (!lastClaim) {
22
+ return { currentStreak: 0, nextStreak: 1 };
23
+ }
24
+ const diff = now.getTime() - lastClaim.getTime();
25
+ if (diff < 2 * DAY_MS) {
26
+ return { currentStreak: streak, nextStreak: streak + 1 };
27
+ }
28
+ return { currentStreak: 0, nextStreak: 1 };
29
+ };
30
+ exports.getStreakDisplay = getStreakDisplay;
@@ -0,0 +1,8 @@
1
+ export declare const formatNumberToReadableString: (number: number) => string;
2
+ export declare const parseReadableStringToNumber: (readableString: string) => number;
3
+ export declare const formatNumberWithSpaces: (num: number) => string;
4
+ export declare const formatNumberToPercentage: (num: number) => string;
5
+ export declare const getReadableName: (key: string, map: {
6
+ name: string;
7
+ value: string;
8
+ }[]) => string;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getReadableName = exports.formatNumberToPercentage = exports.formatNumberWithSpaces = exports.parseReadableStringToNumber = exports.formatNumberToReadableString = void 0;
4
+ const formatNumberToReadableString = (number) => {
5
+ const absNumber = Math.abs(number);
6
+ const roundTo = (num, digits = 2) => Math.round(num * 10 ** digits) / 10 ** digits;
7
+ let formatted;
8
+ if (absNumber >= 1000000000) {
9
+ formatted = `${roundTo(absNumber / 1000000000)}B`;
10
+ }
11
+ else if (absNumber >= 1000000) {
12
+ formatted = `${roundTo(absNumber / 1000000)}M`;
13
+ }
14
+ else if (absNumber >= 1000) {
15
+ formatted = `${roundTo(absNumber / 1000)}k`;
16
+ }
17
+ else {
18
+ formatted = roundTo(absNumber).toString();
19
+ }
20
+ return number < 0 ? `-${formatted}` : formatted;
21
+ };
22
+ exports.formatNumberToReadableString = formatNumberToReadableString;
23
+ const parseReadableStringToNumber = (readableString) => {
24
+ const normalizedString = readableString.toUpperCase();
25
+ if (!/^[-]?[0-9.]+[BMK]?$/.test(normalizedString)) {
26
+ return NaN;
27
+ }
28
+ if (normalizedString.endsWith('B')) {
29
+ return parseFloat(normalizedString.slice(0, -1)) * 1000000000;
30
+ }
31
+ else if (normalizedString.endsWith('M')) {
32
+ return parseFloat(normalizedString.slice(0, -1)) * 1000000;
33
+ }
34
+ else if (normalizedString.endsWith('K')) {
35
+ return parseFloat(normalizedString.slice(0, -1)) * 1000;
36
+ }
37
+ else {
38
+ return parseFloat(normalizedString);
39
+ }
40
+ };
41
+ exports.parseReadableStringToNumber = parseReadableStringToNumber;
42
+ const formatNumberWithSpaces = (num) => {
43
+ return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
44
+ };
45
+ exports.formatNumberWithSpaces = formatNumberWithSpaces;
46
+ const formatNumberToPercentage = (num) => {
47
+ return (num * 100).toFixed(2) + '%';
48
+ };
49
+ exports.formatNumberToPercentage = formatNumberToPercentage;
50
+ const getReadableName = (key, map) => {
51
+ const found = map.find((item) => item.value === key);
52
+ return found ? found.name : key;
53
+ };
54
+ exports.getReadableName = getReadableName;
@@ -0,0 +1 @@
1
+ export declare const generateId: () => string;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateId = void 0;
4
+ const generateId = () => {
5
+ const timestamp = Date.now().toString(36);
6
+ const random = Math.floor(Math.random() * 1000000)
7
+ .toString(36)
8
+ .padStart(5, '0');
9
+ return `${timestamp}${random}`.toUpperCase();
10
+ };
11
+ exports.generateId = generateId;
@@ -1,3 +1,8 @@
1
1
  export * from './calculateRTP';
2
2
  export * from './calculateBonusReward';
3
3
  export * from './generateBonusPreview';
4
+ export * from './formatters';
5
+ export * from './generateId';
6
+ export * from './parseTimeToSeconds';
7
+ export * from './validateBetAmount';
8
+ export * from './bonusStreak';
@@ -17,3 +17,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./calculateRTP"), exports);
18
18
  __exportStar(require("./calculateBonusReward"), exports);
19
19
  __exportStar(require("./generateBonusPreview"), exports);
20
+ __exportStar(require("./formatters"), exports);
21
+ __exportStar(require("./generateId"), exports);
22
+ __exportStar(require("./parseTimeToSeconds"), exports);
23
+ __exportStar(require("./validateBetAmount"), exports);
24
+ __exportStar(require("./bonusStreak"), exports);
@@ -0,0 +1 @@
1
+ export declare const parseTimeToSeconds: (time: string) => number;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseTimeToSeconds = void 0;
4
+ const parseTimeToSeconds = (time) => {
5
+ const regex = /(\d+)([mhdw])/gi;
6
+ let totalSeconds = 0;
7
+ const sanitizedTime = time.replace(/\s+/g, '');
8
+ const matches = sanitizedTime.match(regex);
9
+ if (!matches)
10
+ return 0;
11
+ matches.forEach((match) => {
12
+ const value = parseInt(match.slice(0, -1), 10);
13
+ const unit = match.slice(-1).toLowerCase();
14
+ switch (unit) {
15
+ case 'm':
16
+ totalSeconds += value * 60;
17
+ break;
18
+ case 'h':
19
+ totalSeconds += value * 3600;
20
+ break;
21
+ case 'd':
22
+ totalSeconds += value * 86400;
23
+ break;
24
+ case 'w':
25
+ totalSeconds += value * 604800;
26
+ break;
27
+ }
28
+ });
29
+ return totalSeconds;
30
+ };
31
+ exports.parseTimeToSeconds = parseTimeToSeconds;
@@ -0,0 +1,8 @@
1
+ export type BetValidationError = 'INVALID_NUMBER' | 'TOO_MANY_DECIMALS' | 'BELOW_MINIMUM' | 'ABOVE_MAXIMUM' | 'BELOW_MIN_BET';
2
+ export type BetValidationResult = {
3
+ ok: true;
4
+ } | {
5
+ ok: false;
6
+ error: BetValidationError;
7
+ };
8
+ export declare const validateBetAmount: (betAmount: number, maxBet: number, minBet: number) => BetValidationResult;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateBetAmount = void 0;
4
+ const validateBetAmount = (betAmount, maxBet, minBet) => {
5
+ if (!Number.isFinite(betAmount)) {
6
+ return { ok: false, error: 'INVALID_NUMBER' };
7
+ }
8
+ const betCentsRaw = betAmount * 100;
9
+ const betCents = Math.round(betCentsRaw);
10
+ if (Math.abs(betCentsRaw - betCents) > 1e-6) {
11
+ return { ok: false, error: 'TOO_MANY_DECIMALS' };
12
+ }
13
+ if (betAmount < 1) {
14
+ return { ok: false, error: 'BELOW_MINIMUM' };
15
+ }
16
+ const minBetCents = Math.floor(minBet * 100);
17
+ const maxBetCents = Math.floor(maxBet * 100);
18
+ if (maxBetCents > 0 && betCents > maxBetCents) {
19
+ return { ok: false, error: 'ABOVE_MAXIMUM' };
20
+ }
21
+ if (minBetCents > 0 && betCents < minBetCents) {
22
+ return { ok: false, error: 'BELOW_MIN_BET' };
23
+ }
24
+ return { ok: true };
25
+ };
26
+ exports.validateBetAmount = validateBetAmount;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gambling-bot-shared",
3
- "version": "0.1.35",
3
+ "version": "0.1.37",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",
@@ -16,10 +16,15 @@
16
16
  "./server": {
17
17
  "types": "./dist/server.d.ts",
18
18
  "default": "./dist/server.js"
19
+ },
20
+ "./schemas": {
21
+ "types": "./dist/schemas/index.d.ts",
22
+ "default": "./dist/schemas/index.js"
19
23
  }
20
24
  },
21
25
  "scripts": {
22
26
  "build": "tsc -p tsconfig.json",
27
+ "prepublishOnly": "pnpm run build",
23
28
  "release": "pnpm build && npm version patch && npm publish"
24
29
  },
25
30
  "peerDependencies": {
@@ -32,6 +37,6 @@
32
37
  "typescript": "^5.9.3"
33
38
  },
34
39
  "dependencies": {
35
- "zod": "^3.25.76"
40
+ "zod": "^4.3.6"
36
41
  }
37
42
  }