trucoshi 13.2.1 → 14.0.0-rc.2
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 +62 -10
- package/dist/events.d.ts +3 -1
- package/dist/events.js +1 -0
- package/dist/lib/classes/Deck.js +4 -3
- package/dist/tutorials/index.js +4 -4
- package/dist/types.d.ts +10 -0
- package/dist/types.js +1 -0
- package/package.json +52 -19
- package/prisma/client/edge.js +3 -3
- package/prisma/client/index-browser.js +2 -2
- package/prisma/client/index.d.ts +1 -1
- package/prisma/client/index.js +3 -3
- package/prisma/client/package.json +1 -1
- package/prisma/client/runtime/edge-esm.js +2 -2
- package/prisma/client/runtime/edge.js +2 -2
- package/prisma/client/runtime/library.js +2 -2
- package/prisma/client/runtime/react-native.js +2 -2
- package/prisma/client/runtime/wasm-compiler-edge.js +2 -2
- package/prisma/client/runtime/wasm-engine-edge.js +2 -2
- package/prisma/client/wasm.js +3 -3
package/README.md
CHANGED
|
@@ -18,13 +18,34 @@ Proba la demo actual en [Trucoshi](https://trucoshi.com)
|
|
|
18
18
|
|
|
19
19
|
[Lightning Accounts](https://github.com/jfrader/lightning-accounts)
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
## Development
|
|
22
22
|
|
|
23
|
-
`
|
|
23
|
+
Use Node.js 24 (see `.nvmrc`) and Yarn 1.22.22. With `nvm` installed, a clean setup is:
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
```bash
|
|
26
|
+
nvm install
|
|
27
|
+
npm install --global yarn@1.22.22 # only when Yarn is missing
|
|
28
|
+
cp .env.example .env
|
|
29
|
+
yarn install --frozen-lockfile
|
|
30
|
+
yarn prisma:generate
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Run the local server watcher with `yarn dev`. It performs one clean initial build, then uses an
|
|
34
|
+
incremental TypeScript cache for fast restarts. PostgreSQL and Redis must match `.env`.
|
|
35
|
+
|
|
36
|
+
Use these checks before pushing:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
yarn validate # script syntax, formatting, types, and unit tests
|
|
40
|
+
yarn format # apply the repository's formatting rules
|
|
41
|
+
yarn build # clean CommonJS server build
|
|
42
|
+
yarn build:dist:clean # clean publishable package build
|
|
43
|
+
```
|
|
26
44
|
|
|
27
|
-
`yarn
|
|
45
|
+
`yarn test:e2e` is intentionally guarded: it loads `.env.test` before doing anything and refuses to
|
|
46
|
+
reset a database unless `NODE_ENV=test` and the database host or name has a distinct `test` segment.
|
|
47
|
+
Local launchers only stop local development/test containers; use `yarn docker:stop:all` when you
|
|
48
|
+
explicitly intend to stop the production and staging Compose projects too.
|
|
28
49
|
|
|
29
50
|
### Full local dev stack
|
|
30
51
|
|
|
@@ -34,11 +55,19 @@ Run the three-repo local stack from this repo with:
|
|
|
34
55
|
|
|
35
56
|
If your user cannot run Docker directly, use `yarn dev:all:sudo-docker`. Do not prefix either command with `sudo`; that mode only elevates Docker commands, so Yarn, Vite, generated Prisma files, and local links remain owned by your user.
|
|
36
57
|
|
|
37
|
-
|
|
58
|
+
For only the Trucoshi backend stack, use `yarn docker` with direct Docker access or `yarn docker:sudo` when Docker requires sudo. The matching stop commands are `yarn docker:stop` and `yarn docker:stop:sudo`.
|
|
59
|
+
|
|
60
|
+
The launcher expects `lightning-accounts`, `trucoshi`, and `trucoshi-client` to be sibling folders
|
|
61
|
+
with dependencies installed in each. It keeps all three in development mode and continuously
|
|
62
|
+
refreshes their status and service URLs. Use the numbered shortcuts or ↑/↓ to move, Enter or → to
|
|
63
|
+
select, and ← or Esc to go back. It can also build and host a client snapshot at
|
|
64
|
+
`http://localhost:2993`. The snapshot is off by default, so it never slows Vite's hot-reload loop.
|
|
65
|
+
Set `DEV_ALL_PUBLIC_HOST`, `DEV_ALL_CLIENT_HOST_PORT`, or `DEV_ALL_LOG_DIR` to override the defaults.
|
|
38
66
|
|
|
39
67
|
# Test
|
|
40
68
|
|
|
41
|
-
`yarn test`
|
|
69
|
+
`yarn test` runs the full unit/socket suite on an automatically allocated local port, so it can run
|
|
70
|
+
without colliding with the development or e2e servers.
|
|
42
71
|
|
|
43
72
|
### Card skins
|
|
44
73
|
|
|
@@ -52,13 +81,11 @@ Trucoshi e2e tests depend on a running Lightning Accounts e2e server. Start that
|
|
|
52
81
|
terminal, then run the Trucoshi e2e suite in another:
|
|
53
82
|
|
|
54
83
|
```bash
|
|
55
|
-
cd
|
|
56
|
-
NODE_ENV=test ./init-e2e.sh
|
|
84
|
+
(cd ../lightning-accounts && NODE_ENV=test ./init-e2e.sh)
|
|
57
85
|
```
|
|
58
86
|
|
|
59
87
|
```bash
|
|
60
|
-
|
|
61
|
-
NODE_ENV=test ./init-e2e.sh
|
|
88
|
+
yarn docker:e2e
|
|
62
89
|
```
|
|
63
90
|
|
|
64
91
|
Use `../lightning-accounts/init-test.sh` when you want to run the Lightning Accounts Jest/e2e
|
|
@@ -88,6 +115,31 @@ yarn docker:prod:migrate
|
|
|
88
115
|
docker compose -f docker-compose.prod.yml --env-file .env up -d --build server
|
|
89
116
|
```
|
|
90
117
|
|
|
118
|
+
### Operations console
|
|
119
|
+
|
|
120
|
+
Use the interactive console to check Accounts/game readiness, verify wallet and bets are disabled,
|
|
121
|
+
inspect match/queue counts, drain before a deployment, wait for zero, or resume a cancelled release:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
cp .env.ops.example .env.ops
|
|
125
|
+
yarn ops
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
The menu supports development, staging, and production. Edit `.env.ops` with the public or local
|
|
129
|
+
base URLs for each environment. Tokens may be supplied through the shell or the ignored file, but
|
|
130
|
+
leaving them empty is safer: the console prompts without echo and retains each token in memory only.
|
|
131
|
+
Production drain/resume actions require typing an environment-specific confirmation phrase.
|
|
132
|
+
See the complete [operations console guide](docs/operations/ops-console.md) for configuration,
|
|
133
|
+
output interpretation, and the staging/production release sequence.
|
|
134
|
+
|
|
135
|
+
Direct environment shortcuts are also available:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
yarn ops:dev
|
|
139
|
+
yarn ops:staging
|
|
140
|
+
yarn ops:prod
|
|
141
|
+
```
|
|
142
|
+
|
|
91
143
|
### Admin users
|
|
92
144
|
|
|
93
145
|
User roles live in Lightning Accounts. To promote an existing user by email:
|
package/dist/events.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SocketError } from "./server";
|
|
2
|
-
import { EMatchState, IAdminCreateChestRewardCodeInput, IAdminCreateChestRewardCodeResult, IAdminDashboard, IAdminSetNoticeBannerInput, IAdminSetNoticeBannerResult, IAccountDetails, CardSkinId, ICard, IChatMessage, IEquippedDeck, ILobbyOptions, IInventoryCardGroup, IMatchDetails, IPlayerRanking, IPublicChatRoom, IPublicMatch, IPublicMatchInfo, IPublicMatchStats, IJoinQueueOptions, IQueueMatchFound, IQueueMatchCancelled, IQueueMatchStarting, IQueueReadyUpdate, IQueueStatus, IRewardCodeRedeemResult, IPublicNoticeBanner, ITreasureOpenResult, ITreasureStatus, ISkinRollResult, ITrucoshiStats, IUserData, IWaitingPlayData, IWaitingSayData } from "./types";
|
|
2
|
+
import { EMatchState, IAdminCreateChestRewardCodeInput, IAdminCreateChestRewardCodeResult, IAdminDashboard, IAdminSetNoticeBannerInput, IAdminSetNoticeBannerResult, IAccountDetails, CardSkinId, ICard, IChatMessage, IEquippedDeck, ILobbyOptions, IInventoryCardGroup, IMatchDetails, IPlayerRanking, IPublicChatRoom, IPublicMatch, IPublicMatchInfo, IPublicMatchStats, IJoinQueueOptions, IQueueMatchFound, IQueueMatchCancelled, IQueueMatchStarting, IQueueReadyUpdate, IQueueStatus, IRewardCodeRedeemResult, IPublicNoticeBanner, ITreasureOpenResult, ITreasureStatus, ISkinRollResult, ITrucoshiStats, IUserData, IWaitingPlayData, IWaitingSayData, IFeedbackInput } from "./types";
|
|
3
3
|
export type IEventCallback<T = {}> = (args: {
|
|
4
4
|
success: boolean;
|
|
5
5
|
error?: SocketError;
|
|
@@ -80,6 +80,7 @@ export declare enum EClientEvent {
|
|
|
80
80
|
OPEN_TREASURE_CHEST = "OPEN_TREASURE_CHEST",
|
|
81
81
|
DEV_GRANT_TREASURE_CHEST = "DEV_GRANT_TREASURE_CHEST",
|
|
82
82
|
FETCH_NOTICE_BANNER = "FETCH_NOTICE_BANNER",
|
|
83
|
+
SUBMIT_FEEDBACK = "SUBMIT_FEEDBACK",
|
|
83
84
|
ADMIN_FETCH_DASHBOARD = "ADMIN_FETCH_DASHBOARD",
|
|
84
85
|
ADMIN_CREATE_CHEST_REWARD_CODE = "ADMIN_CREATE_CHEST_REWARD_CODE",
|
|
85
86
|
ADMIN_SET_NOTICE_BANNER = "ADMIN_SET_NOTICE_BANNER",
|
|
@@ -177,6 +178,7 @@ export interface ClientToServerEvents {
|
|
|
177
178
|
[EClientEvent.FETCH_NOTICE_BANNER]: (callback: IEventCallback<{
|
|
178
179
|
noticeBanner: IPublicNoticeBanner | null;
|
|
179
180
|
}>) => void;
|
|
181
|
+
[EClientEvent.SUBMIT_FEEDBACK]: (input: IFeedbackInput, callback: IEventCallback<{}>) => void;
|
|
180
182
|
[EClientEvent.ADMIN_FETCH_DASHBOARD]: (callback: IEventCallback<{
|
|
181
183
|
dashboard: IAdminDashboard;
|
|
182
184
|
}>) => void;
|
package/dist/events.js
CHANGED
|
@@ -52,6 +52,7 @@ export var EClientEvent;
|
|
|
52
52
|
EClientEvent["OPEN_TREASURE_CHEST"] = "OPEN_TREASURE_CHEST";
|
|
53
53
|
EClientEvent["DEV_GRANT_TREASURE_CHEST"] = "DEV_GRANT_TREASURE_CHEST";
|
|
54
54
|
EClientEvent["FETCH_NOTICE_BANNER"] = "FETCH_NOTICE_BANNER";
|
|
55
|
+
EClientEvent["SUBMIT_FEEDBACK"] = "SUBMIT_FEEDBACK";
|
|
55
56
|
EClientEvent["ADMIN_FETCH_DASHBOARD"] = "ADMIN_FETCH_DASHBOARD";
|
|
56
57
|
EClientEvent["ADMIN_CREATE_CHEST_REWARD_CODE"] = "ADMIN_CREATE_CHEST_REWARD_CODE";
|
|
57
58
|
EClientEvent["ADMIN_SET_NOTICE_BANNER"] = "ADMIN_SET_NOTICE_BANNER";
|
package/dist/lib/classes/Deck.js
CHANGED
|
@@ -76,9 +76,10 @@ export function dealCards(table, deck, fixedHandsByPlayerIdx) {
|
|
|
76
76
|
for (const player of table.players) {
|
|
77
77
|
const fixedHand = fixedHands.get(player.idx);
|
|
78
78
|
playerHands[player.idx] = fixedHand
|
|
79
|
-
? fixedHand.map((card) => deck.pick(card) ||
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
? fixedHand.map((card) => deck.pick(card) ||
|
|
80
|
+
(() => {
|
|
81
|
+
throw new Error(`Fixed hand card is not available in deck: ${card}`);
|
|
82
|
+
})())
|
|
82
83
|
: deck.takeThree();
|
|
83
84
|
}
|
|
84
85
|
for (const player of table.players) {
|
package/dist/tutorials/index.js
CHANGED
|
@@ -100,9 +100,7 @@ export const renderTutorialMessageText = (text, roundCards, previousRounds) => {
|
|
|
100
100
|
if (!previousRoundScore) {
|
|
101
101
|
return null;
|
|
102
102
|
}
|
|
103
|
-
renderedText = renderedText
|
|
104
|
-
.split(TUTORIAL_PREVIOUS_ROUND_SCORE_TOKEN)
|
|
105
|
-
.join(previousRoundScore);
|
|
103
|
+
renderedText = renderedText.split(TUTORIAL_PREVIOUS_ROUND_SCORE_TOKEN).join(previousRoundScore);
|
|
106
104
|
}
|
|
107
105
|
return renderedText;
|
|
108
106
|
};
|
|
@@ -183,7 +181,9 @@ const validateBotAction = (botAction, context) => {
|
|
|
183
181
|
if (botAction.action.type === "card" && !isCard(botAction.action.value)) {
|
|
184
182
|
throw new Error(`${context} card action must use a valid card id`);
|
|
185
183
|
}
|
|
186
|
-
if (botAction.action.type === "command" &&
|
|
184
|
+
if (botAction.action.type === "command" &&
|
|
185
|
+
!isCommand(botAction.action.value) &&
|
|
186
|
+
typeof botAction.action.value !== "number") {
|
|
187
187
|
throw new Error(`${context} command action must use a valid command`);
|
|
188
188
|
}
|
|
189
189
|
};
|
package/dist/types.d.ts
CHANGED
|
@@ -36,6 +36,13 @@ export interface IUserData {
|
|
|
36
36
|
session: string;
|
|
37
37
|
account: User | null;
|
|
38
38
|
}
|
|
39
|
+
export declare const FEEDBACK_MESSAGE_MAX_LENGTH = 1000;
|
|
40
|
+
export type FeedbackContext = "lobby" | "match";
|
|
41
|
+
export interface IFeedbackInput {
|
|
42
|
+
message: string;
|
|
43
|
+
context: FeedbackContext;
|
|
44
|
+
matchSessionId?: string;
|
|
45
|
+
}
|
|
39
46
|
export interface ILobbyOptions {
|
|
40
47
|
maxPlayers: 2 | 4 | 6;
|
|
41
48
|
faltaEnvido: 1 | 2;
|
|
@@ -157,6 +164,7 @@ export interface IMatchFlorBattle {
|
|
|
157
164
|
winnerTeamIdx: 0 | 1 | null;
|
|
158
165
|
winner: IPublicPlayer | null;
|
|
159
166
|
}
|
|
167
|
+
export type PublicRoundResult = 0 | 1 | "tie" | null;
|
|
160
168
|
export interface IMatchPreviousHand {
|
|
161
169
|
envido: {
|
|
162
170
|
winner: IPublicPlayer;
|
|
@@ -178,6 +186,7 @@ export interface IMatchPreviousHand {
|
|
|
178
186
|
cards: ICard[];
|
|
179
187
|
}>;
|
|
180
188
|
rounds: IPlayedCard[][];
|
|
189
|
+
roundResults: PublicRoundResult[];
|
|
181
190
|
points: IHandPoints;
|
|
182
191
|
matchSessionId: string;
|
|
183
192
|
}
|
|
@@ -200,6 +209,7 @@ export interface IPublicMatch {
|
|
|
200
209
|
me: IPublicPlayer | null;
|
|
201
210
|
freshHand: boolean;
|
|
202
211
|
rounds: IPlayedCard[][];
|
|
212
|
+
roundResults: PublicRoundResult[];
|
|
203
213
|
lastCard?: ICard | null;
|
|
204
214
|
lastCommand?: ECommand | number | null;
|
|
205
215
|
awardedSatsPerPlayer?: number;
|
package/dist/types.js
CHANGED
|
@@ -10,6 +10,7 @@ export var EMatchState;
|
|
|
10
10
|
EMatchState["FINISHED"] = "FINISHED";
|
|
11
11
|
EMatchState["PAUSED"] = "PAUSED";
|
|
12
12
|
})(EMatchState || (EMatchState = {}));
|
|
13
|
+
export const FEEDBACK_MESSAGE_MAX_LENGTH = 1000;
|
|
13
14
|
export var EChatSystem;
|
|
14
15
|
(function (EChatSystem) {
|
|
15
16
|
EChatSystem[EChatSystem["TEAM_0"] = 0] = "TEAM_0";
|
package/package.json
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trucoshi",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "14.0.0-rc.2",
|
|
4
|
+
"packageManager": "yarn@1.22.22",
|
|
5
|
+
"engines": {
|
|
6
|
+
"node": ">=24",
|
|
7
|
+
"yarn": ">=1.22.22 <2"
|
|
8
|
+
},
|
|
4
9
|
"description": "Truco Game Server",
|
|
5
10
|
"main": "dist/types.js",
|
|
6
11
|
"license": "GPL-3.0",
|
|
@@ -18,25 +23,50 @@
|
|
|
18
23
|
]
|
|
19
24
|
},
|
|
20
25
|
"scripts": {
|
|
21
|
-
"
|
|
22
|
-
"build
|
|
26
|
+
"clean": "rimraf ./build ./dist",
|
|
27
|
+
"clean:build": "rimraf ./build",
|
|
28
|
+
"clean:dist": "rimraf ./dist",
|
|
29
|
+
"prisma:generate": "prisma generate",
|
|
30
|
+
"prisma:generate:dev": "test -f ./node_modules/.prisma/client/index.js && test -f ./prisma/client/index.js && test ./node_modules/.prisma/client/index.js -nt ./prisma/schema.prisma && test ./prisma/client/index.js -nt ./prisma/schema.prisma || prisma generate",
|
|
31
|
+
"typecheck": "tsc --noEmit --incremental --tsBuildInfoFile ./build/.typecheck.tsbuildinfo --project .",
|
|
32
|
+
"check:scripts": "node --check ./bin/trucoshi-server && find ./scripts -type f -name '*.js' -exec node --check {} \\; && bash -n ./init-*.sh",
|
|
33
|
+
"format": "prettier --write package.json nodemon.json 'tsconfig*.json' .prettierrc.json '.vscode/*.json' '.github/**/*.{yml,yaml,json,md}' '*.md' '*.{yml,yaml}' 'docs/**/*.md' 'scripts/**/*.js' 'src/**/*.{ts,json}' 'test/**/*.{ts,js,json}'",
|
|
34
|
+
"format:check": "prettier --check package.json nodemon.json 'tsconfig*.json' .prettierrc.json '.vscode/*.json' '.github/**/*.{yml,yaml,json,md}' '*.md' '*.{yml,yaml}' 'docs/**/*.md' 'scripts/**/*.js' 'src/**/*.{ts,json}' 'test/**/*.{ts,js,json}'",
|
|
35
|
+
"validate": "yarn check:scripts && yarn format:check && yarn typecheck && yarn test",
|
|
36
|
+
"build": "yarn prisma:generate && yarn clean:build && yarn build:server",
|
|
37
|
+
"build:server": "tsc --project .",
|
|
38
|
+
"build:dist": "yarn prisma:generate:dev && yarn build:dist:incremental",
|
|
39
|
+
"build:dist:incremental": "tsc --project ./tsconfig.dist.json",
|
|
40
|
+
"build:dist:clean": "yarn prisma:generate && yarn clean:dist && yarn build:dist:incremental",
|
|
41
|
+
"prestart": "yarn prisma:generate:dev && yarn clean:build",
|
|
23
42
|
"start": "nodemon",
|
|
43
|
+
"dev": "yarn start",
|
|
24
44
|
"start:migrate": "prisma db push && yarn start",
|
|
25
45
|
"start:prod": "node bin/trucoshi-server",
|
|
26
46
|
"start:prod:migrate": "prisma migrate deploy && yarn start:prod",
|
|
27
47
|
"docker": "NODE_ENV=development ./init-dev.sh",
|
|
48
|
+
"docker:sudo": "DEV_DOCKER_SUDO=1 NODE_ENV=development ./init-dev.sh",
|
|
49
|
+
"docker:stop": "./init-stop-all.sh --local",
|
|
50
|
+
"docker:stop:sudo": "DEV_DOCKER_SUDO=1 ./init-stop-all.sh --local",
|
|
51
|
+
"docker:stop:all": "./init-stop-all.sh --all",
|
|
28
52
|
"dev:all": "NODE_ENV=development ./init-dev-all.sh",
|
|
29
53
|
"dev:all:sudo-docker": "DEV_ALL_DOCKER_SUDO=1 NODE_ENV=development ./init-dev-all.sh",
|
|
30
54
|
"docker:exec": "docker compose exec -i server yarn",
|
|
31
|
-
"docker:prod": "NODE_ENV=production
|
|
55
|
+
"docker:prod": "NODE_ENV=production docker compose -f docker-compose.prod.yml --env-file .env up -d --build --wait",
|
|
32
56
|
"docker:prod:migrate": "docker compose -f docker-compose.prod.yml --env-file .env run --rm --no-deps server yarn prisma migrate deploy",
|
|
33
|
-
"
|
|
57
|
+
"ops": "node ./scripts/ops-console.js",
|
|
58
|
+
"ops:dev": "node ./scripts/ops-console.js --env development",
|
|
59
|
+
"ops:staging": "node ./scripts/ops-console.js --env staging",
|
|
60
|
+
"ops:prod": "node ./scripts/ops-console.js --env production",
|
|
61
|
+
"docker:staging": "NODE_ENV=staging docker compose -f docker-compose.staging.yml --env-file .env up -d --build --wait",
|
|
34
62
|
"docker:staging:migrate": "docker compose -f docker-compose.staging.yml --env-file .env run --rm --no-deps server yarn prisma migrate deploy",
|
|
35
63
|
"docker:e2e": "NODE_ENV=test ./init-e2e.sh",
|
|
36
|
-
"test": "
|
|
37
|
-
"test:
|
|
64
|
+
"test": "yarn test:scripts && yarn test:unit",
|
|
65
|
+
"test:scripts": "node --test ./test/scripts/*.test.js",
|
|
66
|
+
"test:unit": "node ./scripts/run-unit-tests.js",
|
|
67
|
+
"test:e2e": "node ./scripts/run-e2e.js",
|
|
38
68
|
"profiler": "node --prof ./bin/trucoshi-server",
|
|
39
|
-
"prepublishOnly": "yarn
|
|
69
|
+
"prepublishOnly": "yarn validate && yarn build:dist:clean",
|
|
40
70
|
"cli:autoplay": "APP_DEBUG_LEVEL=warn yarn run ts-node src/utils/scripts/autoplay",
|
|
41
71
|
"cli:play": "APP_DEBUG_LEVEL=warn yarn run ts-node src/utils/scripts/play",
|
|
42
72
|
"sync:skins": "node scripts/sync-skins.js",
|
|
@@ -57,10 +87,13 @@
|
|
|
57
87
|
"chai": "^5.3.3",
|
|
58
88
|
"mocha": "^11.7.5",
|
|
59
89
|
"nodemon": "^3.1.14",
|
|
60
|
-
"
|
|
90
|
+
"prettier": "3.6.2",
|
|
91
|
+
"rimraf": "^6.1.3",
|
|
61
92
|
"sinon": "^21.0.2",
|
|
62
93
|
"socket.io-client": "4.8.3",
|
|
63
|
-
"ts-mocha": "^11.1.0"
|
|
94
|
+
"ts-mocha": "^11.1.0",
|
|
95
|
+
"ts-node": "^10.9.1",
|
|
96
|
+
"typescript": "^5.9.3"
|
|
64
97
|
},
|
|
65
98
|
"files": [
|
|
66
99
|
"dist/lib/*",
|
|
@@ -79,14 +112,12 @@
|
|
|
79
112
|
"@socket.io/redis-adapter": "8.3.0",
|
|
80
113
|
"@types/jsonwebtoken": "^9.0.5",
|
|
81
114
|
"@types/node-forge": "^1.3.14",
|
|
82
|
-
"
|
|
83
|
-
"axios": "^1.13.6",
|
|
115
|
+
"axios": "^1.18.1",
|
|
84
116
|
"axios-cookiejar-support": "^6.0.5",
|
|
85
117
|
"dotenv": "^16.0.3",
|
|
86
|
-
"
|
|
87
|
-
"form-data": "^4.0.5",
|
|
118
|
+
"form-data": "^4.0.6",
|
|
88
119
|
"jsonwebtoken": "^9.0.3",
|
|
89
|
-
"lightning-accounts": "
|
|
120
|
+
"lightning-accounts": "7.0.0-rc.0",
|
|
90
121
|
"lodash.debounce": "^4.0.8",
|
|
91
122
|
"lodash.memoize": "^4.1.2",
|
|
92
123
|
"lodash.partialright": "^4.2.1",
|
|
@@ -95,11 +126,13 @@
|
|
|
95
126
|
"path-scurry": "^2.0.2",
|
|
96
127
|
"pino": "^9.14.0",
|
|
97
128
|
"pino-pretty": "^13.1.3",
|
|
98
|
-
"
|
|
129
|
+
"prisma": "6.19.2",
|
|
130
|
+
"redis": "5.7.0",
|
|
99
131
|
"safe-rng": "^1.0.4",
|
|
100
132
|
"sanitize-html": "^2.17.1",
|
|
101
|
-
"socket.io": "4.8.3"
|
|
102
|
-
|
|
103
|
-
|
|
133
|
+
"socket.io": "4.8.3"
|
|
134
|
+
},
|
|
135
|
+
"resolutions": {
|
|
136
|
+
"axios/form-data": "4.0.6"
|
|
104
137
|
}
|
|
105
138
|
}
|
package/prisma/client/edge.js
CHANGED
|
@@ -36,11 +36,11 @@ exports.Prisma = Prisma
|
|
|
36
36
|
exports.$Enums = {}
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
|
-
* Prisma Client JS version: 6.19.
|
|
39
|
+
* Prisma Client JS version: 6.19.2
|
|
40
40
|
* Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7
|
|
41
41
|
*/
|
|
42
42
|
Prisma.prismaVersion = {
|
|
43
|
-
client: "6.19.
|
|
43
|
+
client: "6.19.2",
|
|
44
44
|
engine: "c2990dca591cba766e3b7ef5d9e8a84796e47ab7"
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -342,7 +342,7 @@ const config = {
|
|
|
342
342
|
"schemaEnvPath": "../../.env"
|
|
343
343
|
},
|
|
344
344
|
"relativePath": "..",
|
|
345
|
-
"clientVersion": "6.19.
|
|
345
|
+
"clientVersion": "6.19.2",
|
|
346
346
|
"engineVersion": "c2990dca591cba766e3b7ef5d9e8a84796e47ab7",
|
|
347
347
|
"datasourceNames": [
|
|
348
348
|
"db"
|
|
@@ -21,11 +21,11 @@ exports.Prisma = Prisma
|
|
|
21
21
|
exports.$Enums = {}
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
* Prisma Client JS version: 6.19.
|
|
24
|
+
* Prisma Client JS version: 6.19.2
|
|
25
25
|
* Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7
|
|
26
26
|
*/
|
|
27
27
|
Prisma.prismaVersion = {
|
|
28
|
-
client: "6.19.
|
|
28
|
+
client: "6.19.2",
|
|
29
29
|
engine: "c2990dca591cba766e3b7ef5d9e8a84796e47ab7"
|
|
30
30
|
}
|
|
31
31
|
|
package/prisma/client/index.d.ts
CHANGED
|
@@ -433,7 +433,7 @@ export namespace Prisma {
|
|
|
433
433
|
export import Exact = $Public.Exact
|
|
434
434
|
|
|
435
435
|
/**
|
|
436
|
-
* Prisma Client JS version: 6.19.
|
|
436
|
+
* Prisma Client JS version: 6.19.2
|
|
437
437
|
* Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7
|
|
438
438
|
*/
|
|
439
439
|
export type PrismaVersion = {
|
package/prisma/client/index.js
CHANGED
|
@@ -36,11 +36,11 @@ exports.Prisma = Prisma
|
|
|
36
36
|
exports.$Enums = {}
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
|
-
* Prisma Client JS version: 6.19.
|
|
39
|
+
* Prisma Client JS version: 6.19.2
|
|
40
40
|
* Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7
|
|
41
41
|
*/
|
|
42
42
|
Prisma.prismaVersion = {
|
|
43
|
-
client: "6.19.
|
|
43
|
+
client: "6.19.2",
|
|
44
44
|
engine: "c2990dca591cba766e3b7ef5d9e8a84796e47ab7"
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -343,7 +343,7 @@ const config = {
|
|
|
343
343
|
"schemaEnvPath": "../../.env"
|
|
344
344
|
},
|
|
345
345
|
"relativePath": "..",
|
|
346
|
-
"clientVersion": "6.19.
|
|
346
|
+
"clientVersion": "6.19.2",
|
|
347
347
|
"engineVersion": "c2990dca591cba766e3b7ef5d9e8a84796e47ab7",
|
|
348
348
|
"datasourceNames": [
|
|
349
349
|
"db"
|