trucoshi 5.4.0 → 5.5.3

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.
@@ -1,4 +1,4 @@
1
- import { BURNT_CARD, CARDS } from "../constants";
1
+ import { BURNT_CARD, CARDS } from "../../types";
2
2
  import { Random } from "./Random";
3
3
  export function Deck() {
4
4
  const deck = {
package/dist/types.d.ts CHANGED
@@ -40,6 +40,13 @@ export interface ISaidCommand {
40
40
  command: ECommand | number;
41
41
  }
42
42
  export interface IMatchPreviousHand {
43
+ envido: {
44
+ winner: IPublicPlayer;
45
+ data?: {
46
+ value: number;
47
+ cards: ICard[];
48
+ };
49
+ } | null;
43
50
  rounds: IPlayedCard[][];
44
51
  points: IHandPoints;
45
52
  matchSessionId: string;
@@ -104,6 +111,7 @@ export declare enum ESayCommand {
104
111
  export declare enum EFlorCommand {
105
112
  FLOR = "FLOR",
106
113
  CONTRAFLOR = "CONTRAFLOR",
114
+ CONTRAFLOR_AL_RESTO = "CONTRAFLOR_AL_RESTO",
107
115
  ACHICO = "ACHICO"
108
116
  }
109
117
  export declare enum ETrucoCommand {
@@ -128,6 +136,8 @@ export declare enum EHandState {
128
136
  WAITING_FOR_TRUCO_ANSWER = "WAITING_FOR_TRUCO_ANSWER",
129
137
  WAITING_ENVIDO_ANSWER = "WAITING_ENVIDO_ANSWER",
130
138
  WAITING_ENVIDO_POINTS_ANSWER = "WAITING_ENVIDO_POINTS_ANSWER",
139
+ WAITING_FLOR_ANSWER = "WAITING_FLOR_ANSWER",
140
+ WAITING_FLOR_POINTS_ANSWER = "WAITING_FLOR_POINTS_ANSWER",
131
141
  BEFORE_FINISHED = "BEFORE_FINISHED",
132
142
  FINISHED = "FINISHED"
133
143
  }
@@ -242,10 +252,14 @@ export interface IPlayer {
242
252
  hand: Array<ICard>;
243
253
  usedHand: Array<ICard>;
244
254
  prevHand: Array<ICard>;
245
- envido: Array<number>;
255
+ envido: Array<{
256
+ value: number;
257
+ cards: ICard[];
258
+ }>;
246
259
  _commands: Set<ECommand>;
247
260
  get commands(): Array<ECommand>;
248
261
  isTurn: boolean;
262
+ hasSaidEnvidoPoints: boolean;
249
263
  turnExpiresAt: number | null;
250
264
  turnExtensionExpiresAt: number | null;
251
265
  hasFlor: boolean;
@@ -254,8 +268,12 @@ export interface IPlayer {
254
268
  disabled: boolean;
255
269
  abandoned: boolean;
256
270
  ready: boolean;
271
+ saidEnvidoPoints(): void;
257
272
  resetCommands(): void;
258
- calculateEnvido(): Array<number>;
273
+ calculateEnvido(): Array<{
274
+ value: number;
275
+ cards: ICard[];
276
+ }>;
259
277
  setIdx(idx: number): void;
260
278
  setPayRequest(id?: number): void;
261
279
  setMatchPlayerId(id?: number): void;
package/dist/types.js CHANGED
@@ -21,6 +21,7 @@ export var EFlorCommand;
21
21
  (function (EFlorCommand) {
22
22
  EFlorCommand["FLOR"] = "FLOR";
23
23
  EFlorCommand["CONTRAFLOR"] = "CONTRAFLOR";
24
+ EFlorCommand["CONTRAFLOR_AL_RESTO"] = "CONTRAFLOR_AL_RESTO";
24
25
  EFlorCommand["ACHICO"] = "ACHICO";
25
26
  })(EFlorCommand || (EFlorCommand = {}));
26
27
  export var ETrucoCommand;
@@ -50,6 +51,8 @@ export var EHandState;
50
51
  EHandState["WAITING_FOR_TRUCO_ANSWER"] = "WAITING_FOR_TRUCO_ANSWER";
51
52
  EHandState["WAITING_ENVIDO_ANSWER"] = "WAITING_ENVIDO_ANSWER";
52
53
  EHandState["WAITING_ENVIDO_POINTS_ANSWER"] = "WAITING_ENVIDO_POINTS_ANSWER";
54
+ EHandState["WAITING_FLOR_ANSWER"] = "WAITING_FLOR_ANSWER";
55
+ EHandState["WAITING_FLOR_POINTS_ANSWER"] = "WAITING_FLOR_POINTS_ANSWER";
53
56
  EHandState["BEFORE_FINISHED"] = "BEFORE_FINISHED";
54
57
  EHandState["FINISHED"] = "FINISHED";
55
58
  })(EHandState || (EHandState = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trucoshi",
3
- "version": "5.4.0",
3
+ "version": "5.5.3",
4
4
  "description": "Lightning Truco Server",
5
5
  "main": "dist/types.js",
6
6
  "license": "GPL-3.0",
@@ -18,21 +18,26 @@
18
18
  ]
19
19
  },
20
20
  "scripts": {
21
- "start": "nodemon",
22
- "start:e2e": "yarn build && dotenv -e .env.e2e -- node ./bin/trucoshi-server ",
23
- "profiler": "yarn build && node --prof ./bin/trucoshi-server",
24
21
  "build": "yarn prisma generate --generator distClient && yarn run rimraf ./build && yarn run tsc --project .",
25
22
  "build:dist": "yarn run rimraf ./dist && yarn prisma generate --generator distClient && yarn run tsc --project ./tsconfig.dist.json",
23
+ "start": "nodemon",
24
+ "start:migrate": "prisma db push && yarn start",
25
+ "start:prod": "node bin/trucoshi-server",
26
+ "start:prod:migrate": "prisma migrate deploy && yarn start:prod",
27
+ "docker": "docker compose -f docker-compose.yml --env-file .env up --build --abort-on-container-exit",
28
+ "docker:exec": "docker compose exec -i server yarn",
29
+ "docker:prod": "docker compose -f docker-compose.prod.yml --env-file .env up --build",
30
+ "docker:staging": "docker compose -f docker-compose.staging.yml --env-file .env up --build",
31
+ "docker:test": "docker compose -f docker-compose.e2e.yml --env-file .env.test up --build --abort-on-container-exit",
32
+ "test": "dotenv -e .env.test -- ts-mocha --exit ./test/lib/**/*.ts -t 50000",
33
+ "test:e2e": "prisma db push --force-reset && dotenv -e .env.test -- ts-mocha --exit ./test/**/*.ts -t 60000",
34
+ "profiler": "node --prof ./bin/trucoshi-server",
26
35
  "prepublishOnly": "yarn test && yarn build:dist",
27
- "test": "dotenv -e .env.e2e -- yarn db:e2e:push --force-reset && dotenv -e .env.e2e -- ts-mocha --exit ./test/**/*.ts -t 50000",
28
36
  "cli:autoplay": "yarn run ts-node src/cli/autoplay",
29
37
  "cli:play": "yarn run ts-node src/cli/play",
30
38
  "db:push": "prisma db push",
31
39
  "db:studio": "prisma studio",
32
- "db:migrate": "prisma migrate dev",
33
- "db:e2e:push": "dotenv -e .env.e2e -- prisma db push",
34
- "db:e2e:studio": "dotenv -e .env.e2e -- prisma studio",
35
- "db:e2e:migrate": "dotenv -e .env.e2e -- prisma migrate dev"
40
+ "db:migrate": "prisma migrate dev"
36
41
  },
37
42
  "devDependencies": {
38
43
  "@types/chai": "^4.3.4",
@@ -74,8 +79,8 @@
74
79
  "lightning-accounts": "3.0.0",
75
80
  "node-forge": "^1.3.1",
76
81
  "path-scurry": "^1.9.2",
77
- "pino": "^8.11.0",
78
- "pino-pretty": "^10.0.0",
82
+ "pino": "^9.3.2",
83
+ "pino-pretty": "^11.2.2",
79
84
  "rimraf": "^4.1.1",
80
85
  "safe-rng": "^1.0.4",
81
86
  "socket.io": "^4.5.4",
@@ -243,7 +243,7 @@ const PrismaClient = getPrismaClient(config)
243
243
  exports.PrismaClient = PrismaClient
244
244
  Object.assign(exports, Prisma)
245
245
 
246
- path.join(__dirname, "libquery_engine-debian-openssl-1.1.x.so.node");
247
- path.join(process.cwd(), "prisma/client/libquery_engine-debian-openssl-1.1.x.so.node")
246
+ path.join(__dirname, "libquery_engine-debian-openssl-3.0.x.so.node");
247
+ path.join(process.cwd(), "prisma/client/libquery_engine-debian-openssl-3.0.x.so.node")
248
248
  path.join(__dirname, "schema.prisma");
249
249
  path.join(process.cwd(), "prisma/client/schema.prisma")