@truelab/trueserver 0.0.4 → 0.0.6
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/CHANGELOG.md +33 -0
- package/MIGRATION.md +303 -0
- package/README.md +96 -98
- package/dist/application.d.ts.map +1 -1
- package/dist/application.js +9 -5
- package/dist/application.js.map +1 -1
- package/dist/examples.d.ts +1 -0
- package/dist/examples.d.ts.map +1 -1
- package/dist/examples.js +3 -1
- package/dist/examples.js.map +1 -1
- package/dist/helpers/config.helper.d.ts +4 -1
- package/dist/helpers/config.helper.d.ts.map +1 -1
- package/dist/helpers/config.helper.js +26 -0
- package/dist/helpers/config.helper.js.map +1 -1
- package/dist/helpers/errors.helper.d.ts +18 -0
- package/dist/helpers/errors.helper.d.ts.map +1 -0
- package/dist/helpers/errors.helper.js +20 -0
- package/dist/helpers/errors.helper.js.map +1 -0
- package/dist/helpers/fastify.helper.d.ts +5 -1
- package/dist/helpers/fastify.helper.d.ts.map +1 -1
- package/dist/helpers/fastify.helper.js +3 -1
- package/dist/helpers/fastify.helper.js.map +1 -1
- package/dist/helpers/handlers.helper.d.ts +10 -1
- package/dist/helpers/handlers.helper.d.ts.map +1 -1
- package/dist/helpers/handlers.helper.js +2 -1
- package/dist/helpers/handlers.helper.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/plugins/404.plugin.d.ts.map +1 -1
- package/dist/plugins/404.plugin.js +2 -1
- package/dist/plugins/404.plugin.js.map +1 -1
- package/dist/plugins/apikey.plugin.d.ts.map +1 -1
- package/dist/plugins/apikey.plugin.js +6 -7
- package/dist/plugins/apikey.plugin.js.map +1 -1
- package/dist/plugins/error.plugin.d.ts.map +1 -1
- package/dist/plugins/error.plugin.js +6 -2
- package/dist/plugins/error.plugin.js.map +1 -1
- package/dist/plugins/sentry.plugin.js +2 -2
- package/dist/plugins/sentry.plugin.js.map +1 -1
- package/dist/plugins/swagger.plugin.d.ts.map +1 -1
- package/dist/plugins/swagger.plugin.js +5 -1
- package/dist/plugins/swagger.plugin.js.map +1 -1
- package/dist/routes/checksum/checksum.route.d.ts +3 -0
- package/dist/routes/checksum/checksum.route.d.ts.map +1 -0
- package/dist/routes/checksum/checksum.route.js +21 -0
- package/dist/routes/checksum/checksum.route.js.map +1 -0
- package/dist/routes/checksum/index.d.ts +3 -0
- package/dist/routes/checksum/index.d.ts.map +1 -0
- package/dist/routes/checksum/index.js +12 -0
- package/dist/routes/checksum/index.js.map +1 -0
- package/dist/routes/client/client.route.d.ts +3 -0
- package/dist/routes/client/client.route.d.ts.map +1 -0
- package/dist/routes/{client.route.js → client/client.route.js} +5 -5
- package/dist/routes/client/client.route.js.map +1 -0
- package/dist/routes/client/index.d.ts +3 -0
- package/dist/routes/client/index.d.ts.map +1 -0
- package/dist/routes/client/index.js +12 -0
- package/dist/routes/client/index.js.map +1 -0
- package/dist/routes/config/config.route.js +1 -1
- package/dist/routes/config/config.route.js.map +1 -1
- package/dist/routes/config/config.route.validate.plugin.d.ts.map +1 -1
- package/dist/routes/config/config.route.validate.plugin.js +43 -17
- package/dist/routes/config/config.route.validate.plugin.js.map +1 -1
- package/dist/routes/play/play.route.validate.plugin.d.ts +9 -9
- package/dist/routes/play/play.route.validate.plugin.d.ts.map +1 -1
- package/dist/routes/play/play.route.validate.plugin.js +84 -40
- package/dist/routes/play/play.route.validate.plugin.js.map +1 -1
- package/dist/routes/validate/validate.route.validate.plugin.d.ts.map +1 -1
- package/dist/routes/validate/validate.route.validate.plugin.js +9 -3
- package/dist/routes/validate/validate.route.validate.plugin.js.map +1 -1
- package/dist/routes-public/healthcheck.route.d.ts.map +1 -0
- package/dist/{routes → routes-public}/healthcheck.route.js +4 -10
- package/dist/routes-public/healthcheck.route.js.map +1 -0
- package/dist/schemas/checksum.schema.d.ts +11 -0
- package/dist/schemas/checksum.schema.d.ts.map +1 -0
- package/dist/schemas/checksum.schema.js +26 -0
- package/dist/schemas/checksum.schema.js.map +1 -0
- package/dist/schemas/client.schema.d.ts +1 -1
- package/dist/schemas/client.schema.js +4 -4
- package/dist/schemas/client.schema.js.map +1 -1
- package/dist/schemas/config.schema.d.ts +17 -20
- package/dist/schemas/config.schema.d.ts.map +1 -1
- package/dist/schemas/config.schema.js +41 -42
- package/dist/schemas/config.schema.js.map +1 -1
- package/dist/schemas/examples/checksum.schema.examples.d.ts +3 -0
- package/dist/schemas/examples/checksum.schema.examples.d.ts.map +1 -0
- package/dist/schemas/examples/checksum.schema.examples.js +26 -0
- package/dist/schemas/examples/checksum.schema.examples.js.map +1 -0
- package/dist/schemas/examples/client.schema.examples.d.ts.map +1 -1
- package/dist/schemas/examples/client.schema.examples.js +15 -18
- package/dist/schemas/examples/client.schema.examples.js.map +1 -1
- package/dist/schemas/examples/config.schema.examples.d.ts.map +1 -1
- package/dist/schemas/examples/config.schema.examples.js +30 -34
- package/dist/schemas/examples/config.schema.examples.js.map +1 -1
- package/dist/schemas/examples/healthcheck.schema.examples.d.ts.map +1 -1
- package/dist/schemas/examples/healthcheck.schema.examples.js +3 -14
- package/dist/schemas/examples/healthcheck.schema.examples.js.map +1 -1
- package/dist/schemas/examples/play.schema.examples.d.ts.map +1 -1
- package/dist/schemas/examples/play.schema.examples.js +66 -130
- package/dist/schemas/examples/play.schema.examples.js.map +1 -1
- package/dist/schemas/examples/validate.schema.examples.d.ts.map +1 -1
- package/dist/schemas/examples/validate.schema.examples.js +1 -3
- package/dist/schemas/examples/validate.schema.examples.js.map +1 -1
- package/dist/schemas/healthcheck.schema.d.ts +2 -20
- package/dist/schemas/healthcheck.schema.d.ts.map +1 -1
- package/dist/schemas/healthcheck.schema.js +10 -41
- package/dist/schemas/healthcheck.schema.js.map +1 -1
- package/dist/schemas/play.schema.d.ts +21 -16
- package/dist/schemas/play.schema.d.ts.map +1 -1
- package/dist/schemas/play.schema.js +36 -45
- package/dist/schemas/play.schema.js.map +1 -1
- package/dist/schemas/shared.d.ts +13 -21
- package/dist/schemas/shared.d.ts.map +1 -1
- package/dist/schemas/shared.js +56 -72
- package/dist/schemas/shared.js.map +1 -1
- package/dist/schemas/validate.schema.d.ts +2 -3
- package/dist/schemas/validate.schema.d.ts.map +1 -1
- package/dist/schemas/validate.schema.js +2 -5
- package/dist/schemas/validate.schema.js.map +1 -1
- package/package.json +3 -2
- package/dist/plugins/metrics.plugin.d.ts +0 -9
- package/dist/plugins/metrics.plugin.d.ts.map +0 -1
- package/dist/plugins/metrics.plugin.js +0 -24
- package/dist/plugins/metrics.plugin.js.map +0 -1
- package/dist/routes/client.route.d.ts +0 -3
- package/dist/routes/client.route.d.ts.map +0 -1
- package/dist/routes/client.route.js.map +0 -1
- package/dist/routes/healthcheck.route.d.ts.map +0 -1
- package/dist/routes/healthcheck.route.js.map +0 -1
- /package/dist/{routes → routes-public}/healthcheck.route.d.ts +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Static, Type } from 'typebox';
|
|
2
2
|
export declare const ClientRequestSchema: Type.TObject<{}>;
|
|
3
3
|
export declare const ClientReplySchema: Type.TObject<{
|
|
4
|
-
ok: Type.TBoolean;
|
|
5
4
|
data: Type.TAny;
|
|
5
|
+
test: Type.TOptional<Type.TAny>;
|
|
6
6
|
}>;
|
|
7
7
|
export type TClientRequest = Static<typeof ClientRequestSchema>;
|
|
8
8
|
export type TClientReply = Static<typeof ClientReplySchema>;
|
|
@@ -8,12 +8,12 @@ exports.ClientRequestSchema = typebox_1.Type.Object({}, {
|
|
|
8
8
|
additionalProperties: false,
|
|
9
9
|
});
|
|
10
10
|
exports.ClientReplySchema = typebox_1.Type.Object({
|
|
11
|
-
ok: typebox_1.Type.Boolean({
|
|
12
|
-
description: 'Always true for success responses',
|
|
13
|
-
}),
|
|
14
11
|
data: typebox_1.Type.Any({
|
|
15
|
-
description: '
|
|
12
|
+
description: 'Any client-side data (paytables, RNG params, limits, etc.). RGS forwards it to the client as-is, for every session, without filtering',
|
|
16
13
|
}),
|
|
14
|
+
test: typebox_1.Type.Optional(typebox_1.Type.Any({
|
|
15
|
+
description: 'Any data the front-end needs to render the cheat tool. RGS forwards it only to sessions that are allowed to use the cheat tool',
|
|
16
|
+
})),
|
|
17
17
|
}, {
|
|
18
18
|
$id: 'ClientReply',
|
|
19
19
|
additionalProperties: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.schema.js","sourceRoot":"","sources":["../../schemas/client.schema.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAEtC,8EAAuE;AAE1D,QAAA,mBAAmB,GAAG,cAAI,CAAC,MAAM,CAAC,EAAE,EAAE;IAC/C,GAAG,EAAE,eAAe;IACpB,oBAAoB,EAAE,KAAK;CAC9B,CAAC,CAAA;AAEW,QAAA,iBAAiB,GAAG,cAAI,CAAC,MAAM,CAAC;IACzC,
|
|
1
|
+
{"version":3,"file":"client.schema.js","sourceRoot":"","sources":["../../schemas/client.schema.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAEtC,8EAAuE;AAE1D,QAAA,mBAAmB,GAAG,cAAI,CAAC,MAAM,CAAC,EAAE,EAAE;IAC/C,GAAG,EAAE,eAAe;IACpB,oBAAoB,EAAE,KAAK;CAC9B,CAAC,CAAA;AAEW,QAAA,iBAAiB,GAAG,cAAI,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,cAAI,CAAC,GAAG,CAAC;QACX,WAAW,EAAE,uIAAuI;KACvJ,CAAC;IACF,IAAI,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,GAAG,CAAC;QACzB,WAAW,EAAE,gIAAgI;KAChJ,CAAC,CAAC;CACN,EAAE;IACC,GAAG,EAAE,aAAa;IAClB,oBAAoB,EAAE,KAAK;IAC3B,YAAY,EAAE,4CAAmB;CACpC,CAAC,CAAA"}
|
|
@@ -1,33 +1,30 @@
|
|
|
1
1
|
import { Static, Type } from 'typebox';
|
|
2
|
-
import { ECategory, EVolatility } from './shared';
|
|
3
2
|
export declare const ConfigRequestSchema: Type.TObject<{}>;
|
|
4
3
|
export declare const ConfigReplySchema: Type.TObject<{
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
gameTitle: Type.TString;
|
|
5
|
+
gameId: Type.TString;
|
|
6
|
+
volatility: Type.TNumber;
|
|
7
|
+
rtp: Type.TString;
|
|
8
|
+
rtpVersion: Type.TString;
|
|
9
|
+
hasMeta: Type.TBoolean;
|
|
10
|
+
hasChoice: Type.TBoolean;
|
|
11
|
+
hasRestore: Type.TBoolean;
|
|
12
|
+
hasMultiStake: Type.TBoolean;
|
|
13
|
+
hasVariableLines: Type.TBoolean;
|
|
14
|
+
variableLevels: Type.TOptional<Type.TArray<Type.TNumber>>;
|
|
15
|
+
defaultLevel: Type.TOptional<Type.TNumber>;
|
|
16
|
+
coinRatio: Type.TOptional<Type.TNumber>;
|
|
17
|
+
minWin: Type.TNumber;
|
|
18
|
+
maxWin: Type.TNumber;
|
|
19
|
+
freeroundsAllowed: Type.TBoolean;
|
|
8
20
|
stakeModes: Type.TArray<Type.TObject<{
|
|
9
21
|
name: Type.TString;
|
|
10
22
|
type: Type.TEnum<[import("./shared").EStakeType.default, import("./shared").EStakeType.buy, import("./shared").EStakeType.bonusBet]>;
|
|
11
23
|
bets: Type.TNumber;
|
|
12
24
|
multiple: Type.TOptional<Type.TBoolean>;
|
|
13
|
-
parametric: Type.TBoolean;
|
|
14
25
|
maxQty: Type.TOptional<Type.TInteger>;
|
|
26
|
+
parametric: Type.TBoolean;
|
|
15
27
|
}>>;
|
|
16
|
-
rtp: Type.TNumber;
|
|
17
|
-
hitrate: Type.TOptional<Type.TNumber>;
|
|
18
|
-
volatility: Type.TOptional<Type.TEnum<[EVolatility.variable, EVolatility.low, EVolatility.medLow, EVolatility.med, EVolatility.medHigh, EVolatility.high, EVolatility.veryHigh]>>;
|
|
19
|
-
hasMeta: Type.TBoolean;
|
|
20
|
-
hasChoice: Type.TBoolean;
|
|
21
|
-
hasBuy: Type.TBoolean;
|
|
22
|
-
hasMultiStake: Type.TBoolean;
|
|
23
|
-
hasValidation: Type.TBoolean;
|
|
24
|
-
hasGamble: Type.TBoolean;
|
|
25
|
-
freeroundsAllowed: Type.TBoolean;
|
|
26
|
-
minWin: Type.TOptional<Type.TNumber>;
|
|
27
|
-
maxWin: Type.TNumber;
|
|
28
|
-
apiVersion: Type.TNumber;
|
|
29
|
-
variableLevels: Type.TOptional<Type.TInteger>;
|
|
30
|
-
coinRatio: Type.TOptional<Type.TNumber>;
|
|
31
28
|
}>;
|
|
32
29
|
export type TConfigRequest = Static<typeof ConfigRequestSchema>;
|
|
33
30
|
export type TConfigReply = Static<typeof ConfigReplySchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../schemas/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../schemas/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAKtC,eAAO,MAAM,mBAAmB,kBAG9B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;EAiE5B,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
|
|
@@ -9,67 +9,66 @@ exports.ConfigRequestSchema = typebox_1.Type.Object({}, {
|
|
|
9
9
|
additionalProperties: false,
|
|
10
10
|
});
|
|
11
11
|
exports.ConfigReplySchema = typebox_1.Type.Object({
|
|
12
|
-
|
|
13
|
-
description: '
|
|
12
|
+
gameTitle: typebox_1.Type.String({
|
|
13
|
+
description: 'Human-readable name of the game',
|
|
14
14
|
}),
|
|
15
|
-
|
|
16
|
-
description: '
|
|
15
|
+
gameId: typebox_1.Type.String({
|
|
16
|
+
description: 'Unique game identifier, shared across all RTP versions of this game (e.g. "book-of-odin")',
|
|
17
17
|
}),
|
|
18
|
-
|
|
19
|
-
description: 'Game
|
|
18
|
+
volatility: typebox_1.Type.Number({
|
|
19
|
+
description: 'Game volatility. One of 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5',
|
|
20
|
+
enum: [0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5],
|
|
20
21
|
}),
|
|
21
|
-
|
|
22
|
-
description: '
|
|
23
|
-
|
|
22
|
+
rtp: typebox_1.Type.String({
|
|
23
|
+
description: 'Exact RTP value of the deployed version as a decimal string (e.g. "96.17")',
|
|
24
|
+
pattern: '^\\d+(\\.\\d+)?$',
|
|
24
25
|
}),
|
|
25
|
-
|
|
26
|
-
description: '
|
|
26
|
+
rtpVersion: typebox_1.Type.String({
|
|
27
|
+
description: 'RTP version label (the bucket, e.g. "96") — matches the {rtpVersion} path segment under which this endpoint is mounted. Connected to rtp 1:1',
|
|
28
|
+
minLength: 1,
|
|
27
29
|
}),
|
|
28
|
-
hitrate: typebox_1.Type.Optional(typebox_1.Type.Number({
|
|
29
|
-
description: 'Game hitrate "x.xx". Optional if the game does not have static hitrate',
|
|
30
|
-
})),
|
|
31
|
-
volatility: typebox_1.Type.Optional(typebox_1.Type.Enum(shared_1.EVolatility, {
|
|
32
|
-
description: 'Game volatility level. Optional if the game does not have static volatility',
|
|
33
|
-
})),
|
|
34
30
|
hasMeta: typebox_1.Type.Boolean({
|
|
35
|
-
description: 'true if the game uses meta
|
|
31
|
+
description: 'true if the game uses meta state. Must be true whenever hasChoice is true',
|
|
36
32
|
}),
|
|
37
33
|
hasChoice: typebox_1.Type.Boolean({
|
|
38
|
-
description: 'true if
|
|
34
|
+
description: 'true if rounds may include in-round player choices. Requires hasMeta=true',
|
|
39
35
|
}),
|
|
40
|
-
|
|
41
|
-
description: 'true if the
|
|
36
|
+
hasRestore: typebox_1.Type.Boolean({
|
|
37
|
+
description: 'true if a round stays open across requests until the client explicitly sends /round/close',
|
|
42
38
|
}),
|
|
43
39
|
hasMultiStake: typebox_1.Type.Boolean({
|
|
44
|
-
description: 'true if the game
|
|
45
|
-
}),
|
|
46
|
-
hasValidation: typebox_1.Type.Boolean({
|
|
47
|
-
description: 'true if Business Logic should use validation endpoint for checking meta and stakes. Needed for games with complex mechanics, that can exceed max exposure',
|
|
40
|
+
description: 'true if the game accepts more than one stake at once',
|
|
48
41
|
}),
|
|
49
|
-
|
|
50
|
-
description: 'true if the
|
|
42
|
+
hasVariableLines: typebox_1.Type.Boolean({
|
|
43
|
+
description: 'true if the player can pick a number of paylines per spin',
|
|
51
44
|
}),
|
|
52
|
-
|
|
53
|
-
description: 'true
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
45
|
+
variableLevels: typebox_1.Type.Optional(typebox_1.Type.Array(typebox_1.Type.Number({ exclusiveMinimum: 0 }), {
|
|
46
|
+
description: 'Required when hasVariableLines=true; omit otherwise. Available payline numbers (literal values, e.g. [10, 20, 30, 40, 50])',
|
|
47
|
+
minItems: 1,
|
|
48
|
+
})),
|
|
49
|
+
defaultLevel: typebox_1.Type.Optional(typebox_1.Type.Number({
|
|
50
|
+
description: 'Required when hasVariableLines=true; omit otherwise. Default selected line number (must be one of variableLevels)',
|
|
51
|
+
exclusiveMinimum: 0,
|
|
52
|
+
})),
|
|
53
|
+
coinRatio: typebox_1.Type.Optional(typebox_1.Type.Number({
|
|
54
|
+
description: 'Required when hasVariableLines=false; omit otherwise. Ratio converting coins to currency units',
|
|
57
55
|
exclusiveMinimum: 0,
|
|
58
56
|
})),
|
|
57
|
+
minWin: typebox_1.Type.Number({
|
|
58
|
+
description: 'Minimum available win, expressed as a multiplier of the bet (×bet)',
|
|
59
|
+
minimum: 0,
|
|
60
|
+
}),
|
|
59
61
|
maxWin: typebox_1.Type.Number({
|
|
60
|
-
description: 'Maximum available win
|
|
62
|
+
description: 'Maximum available win, expressed as a multiplier of the bet (×bet)',
|
|
61
63
|
exclusiveMinimum: 0,
|
|
62
64
|
}),
|
|
63
|
-
|
|
64
|
-
description: '
|
|
65
|
+
freeroundsAllowed: typebox_1.Type.Boolean({
|
|
66
|
+
description: 'true if the game supports free-rounds bonuses',
|
|
67
|
+
}),
|
|
68
|
+
stakeModes: typebox_1.Type.Array(shared_1.StakeModeSchema, {
|
|
69
|
+
description: 'List of stake modes the game accepts in /play',
|
|
70
|
+
minItems: 1,
|
|
65
71
|
}),
|
|
66
|
-
variableLevels: typebox_1.Type.Optional(typebox_1.Type.Integer({
|
|
67
|
-
minimum: 2,
|
|
68
|
-
description: 'true if the game has variable number of lines, tables etc.',
|
|
69
|
-
})),
|
|
70
|
-
coinRatio: typebox_1.Type.Optional(typebox_1.Type.Number({
|
|
71
|
-
description: 'Game coin ratio',
|
|
72
|
-
})),
|
|
73
72
|
}, {
|
|
74
73
|
$id: 'ConfigReply',
|
|
75
74
|
additionalProperties: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../schemas/config.schema.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAEtC,8EAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../schemas/config.schema.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAEtC,8EAAuE;AACvE,qCAA0C;AAE7B,QAAA,mBAAmB,GAAG,cAAI,CAAC,MAAM,CAAC,EAAE,EAAE;IAC/C,GAAG,EAAE,eAAe;IACpB,oBAAoB,EAAE,KAAK;CAC9B,CAAC,CAAA;AAEW,QAAA,iBAAiB,GAAG,cAAI,CAAC,MAAM,CAAC;IACzC,SAAS,EAAE,cAAI,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,iCAAiC;KACjD,CAAC;IACF,MAAM,EAAE,cAAI,CAAC,MAAM,CAAC;QAChB,WAAW,EAAE,2FAA2F;KAC3G,CAAC;IACF,UAAU,EAAE,cAAI,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,gEAAgE;QAC7E,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KACjD,CAAC;IACF,GAAG,EAAE,cAAI,CAAC,MAAM,CAAC;QACb,WAAW,EAAE,4EAA4E;QACzF,OAAO,EAAE,kBAAkB;KAC9B,CAAC;IACF,UAAU,EAAE,cAAI,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,8IAA8I;QAC3J,SAAS,EAAE,CAAC;KACf,CAAC;IACF,OAAO,EAAE,cAAI,CAAC,OAAO,CAAC;QAClB,WAAW,EAAE,2EAA2E;KAC3F,CAAC;IACF,SAAS,EAAE,cAAI,CAAC,OAAO,CAAC;QACpB,WAAW,EAAE,2EAA2E;KAC3F,CAAC;IACF,UAAU,EAAE,cAAI,CAAC,OAAO,CAAC;QACrB,WAAW,EAAE,2FAA2F;KAC3G,CAAC;IACF,aAAa,EAAE,cAAI,CAAC,OAAO,CAAC;QACxB,WAAW,EAAE,sDAAsD;KACtE,CAAC;IACF,gBAAgB,EAAE,cAAI,CAAC,OAAO,CAAC;QAC3B,WAAW,EAAE,2DAA2D;KAC3E,CAAC;IACF,cAAc,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,KAAK,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,EAAE;QAC3E,WAAW,EAAE,4HAA4H;QACzI,QAAQ,EAAE,CAAC;KACd,CAAC,CAAC;IACH,YAAY,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC;QACpC,WAAW,EAAE,mHAAmH;QAChI,gBAAgB,EAAE,CAAC;KACtB,CAAC,CAAC;IACH,SAAS,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC;QACjC,WAAW,EAAE,gGAAgG;QAC7G,gBAAgB,EAAE,CAAC;KACtB,CAAC,CAAC;IACH,MAAM,EAAE,cAAI,CAAC,MAAM,CAAC;QAChB,WAAW,EAAE,oEAAoE;QACjF,OAAO,EAAE,CAAC;KACb,CAAC;IACF,MAAM,EAAE,cAAI,CAAC,MAAM,CAAC;QAChB,WAAW,EAAE,oEAAoE;QACjF,gBAAgB,EAAE,CAAC;KACtB,CAAC;IACF,iBAAiB,EAAE,cAAI,CAAC,OAAO,CAAC;QAC5B,WAAW,EAAE,+CAA+C;KAC/D,CAAC;IACF,UAAU,EAAE,cAAI,CAAC,KAAK,CAAC,wBAAe,EAAE;QACpC,WAAW,EAAE,+CAA+C;QAC5D,QAAQ,EAAE,CAAC;KACd,CAAC;CACL,EAAE;IACC,GAAG,EAAE,aAAa;IAClB,oBAAoB,EAAE,KAAK;IAC3B,YAAY,EAAE,4CAAmB;CACpC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checksum.schema.examples.d.ts","sourceRoot":"","sources":["../../../schemas/examples/checksum.schema.examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAmBrC,eAAO,MAAM,qBAAqB,EAAE,SAKnC,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checksumReplyExamples = void 0;
|
|
4
|
+
const defaultReply = {
|
|
5
|
+
files: [
|
|
6
|
+
{
|
|
7
|
+
path: 'src/math/probabilities.json',
|
|
8
|
+
hash: '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
path: 'src/math/paytable.json',
|
|
12
|
+
hash: '6c1bb5c8c2e6c4f1d0e3a7b8e1d4f7a0e2c5b8d1f3e6a9b2c5d8e1f4a7b0c3d6',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
path: 'src/math/spin.js',
|
|
16
|
+
hash: '3a4f6a4f3a4f6a4f3a4f6a4f3a4f6a4f3a4f6a4f3a4f6a4f3a4f6a4f3a4f6a4f',
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
};
|
|
20
|
+
exports.checksumReplyExamples = {
|
|
21
|
+
default: {
|
|
22
|
+
summary: 'Default reply',
|
|
23
|
+
value: defaultReply,
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=checksum.schema.examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checksum.schema.examples.js","sourceRoot":"","sources":["../../../schemas/examples/checksum.schema.examples.ts"],"names":[],"mappings":";;;AAEA,MAAM,YAAY,GAAG;IACjB,KAAK,EAAE;QACH;YACI,IAAI,EAAE,6BAA6B;YACnC,IAAI,EAAE,kEAAkE;SAC3E;QACD;YACI,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,kEAAkE;SAC3E;QACD;YACI,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,kEAAkE;SAC3E;KACJ;CACJ,CAAA;AAEY,QAAA,qBAAqB,GAAc;IAC5C,OAAO,EAAE;QACL,OAAO,EAAE,eAAe;QACxB,KAAK,EAAE,YAAY;KACtB;CACJ,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.schema.examples.d.ts","sourceRoot":"","sources":["../../../schemas/examples/client.schema.examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"client.schema.examples.d.ts","sourceRoot":"","sources":["../../../schemas/examples/client.schema.examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAmBrC,eAAO,MAAM,mBAAmB,EAAE,SASjC,CAAA"}
|
|
@@ -2,25 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.clientReplyExamples = void 0;
|
|
4
4
|
const defaultReply = {
|
|
5
|
-
ok: true,
|
|
6
5
|
data: {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
[0, 0, 0, 9, 27, 135, 540],
|
|
19
|
-
[0, 0, 0, 15, 45, 225, 900],
|
|
20
|
-
[0, 0, 0, 15, 45, 225, 900],
|
|
21
|
-
[0, 0, 0, 36, 120, 600, 2400],
|
|
22
|
-
[0, 0, 0, 36, 120, 600, 2400],
|
|
23
|
-
],
|
|
6
|
+
paytable: {},
|
|
7
|
+
numReels: 5,
|
|
8
|
+
numRows: 3,
|
|
9
|
+
limitWin: 5000,
|
|
10
|
+
limitBets: 100,
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
const withTestReply = {
|
|
14
|
+
...defaultReply,
|
|
15
|
+
test: {
|
|
16
|
+
cheats: {},
|
|
24
17
|
},
|
|
25
18
|
};
|
|
26
19
|
exports.clientReplyExamples = {
|
|
@@ -28,5 +21,9 @@ exports.clientReplyExamples = {
|
|
|
28
21
|
summary: 'Default reply',
|
|
29
22
|
value: defaultReply,
|
|
30
23
|
},
|
|
24
|
+
withTest: {
|
|
25
|
+
summary: 'Reply with cheat-tool payload',
|
|
26
|
+
value: withTestReply,
|
|
27
|
+
},
|
|
31
28
|
};
|
|
32
29
|
//# sourceMappingURL=client.schema.examples.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.schema.examples.js","sourceRoot":"","sources":["../../../schemas/examples/client.schema.examples.ts"],"names":[],"mappings":";;;AAEA,MAAM,YAAY,GAAG;IACjB,
|
|
1
|
+
{"version":3,"file":"client.schema.examples.js","sourceRoot":"","sources":["../../../schemas/examples/client.schema.examples.ts"],"names":[],"mappings":";;;AAEA,MAAM,YAAY,GAAG;IACjB,IAAI,EAAE;QACF,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,GAAG;KACjB;CACJ,CAAA;AAED,MAAM,aAAa,GAAG;IAClB,GAAG,YAAY;IACf,IAAI,EAAE;QACF,MAAM,EAAE,EAAE;KACb;CACJ,CAAA;AAEY,QAAA,mBAAmB,GAAc;IAC1C,OAAO,EAAE;QACL,OAAO,EAAE,eAAe;QACxB,KAAK,EAAE,YAAY;KACtB;IACD,QAAQ,EAAE;QACN,OAAO,EAAE,+BAA+B;QACxC,KAAK,EAAE,aAAa;KACvB;CACJ,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.examples.d.ts","sourceRoot":"","sources":["../../../schemas/examples/config.schema.examples.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"config.schema.examples.d.ts","sourceRoot":"","sources":["../../../schemas/examples/config.schema.examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,WAAW,CAAA;AAyCjD,eAAO,MAAM,mBAAmB,EAAE,SASjC,CAAA"}
|
|
@@ -2,55 +2,51 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.configReplyExamples = void 0;
|
|
4
4
|
const shared_1 = require("../shared");
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
const fixedLinesReply = {
|
|
6
|
+
gameTitle: 'Book of Odin',
|
|
7
|
+
gameId: 'book-of-odin',
|
|
8
|
+
volatility: 2.5,
|
|
9
|
+
rtp: '96.17',
|
|
10
|
+
rtpVersion: '96',
|
|
11
|
+
hasMeta: true,
|
|
12
|
+
hasChoice: true,
|
|
13
|
+
hasRestore: true,
|
|
14
|
+
hasMultiStake: false,
|
|
15
|
+
hasVariableLines: false,
|
|
16
|
+
coinRatio: 20,
|
|
17
|
+
minWin: 0.1,
|
|
18
|
+
maxWin: 10000,
|
|
19
|
+
freeroundsAllowed: true,
|
|
9
20
|
stakeModes: [
|
|
10
21
|
{
|
|
11
22
|
name: 'default',
|
|
12
|
-
type:
|
|
23
|
+
type: shared_1.EStakeType.default,
|
|
13
24
|
bets: 1,
|
|
14
25
|
parametric: false,
|
|
15
|
-
multiple: true,
|
|
16
|
-
maxQty: 100,
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: 'bonusBet',
|
|
20
|
-
type: shared_1.EStakeType.bonusBet,
|
|
21
|
-
bets: 1.25,
|
|
22
|
-
parametric: false,
|
|
23
|
-
multiple: true,
|
|
24
|
-
maxQty: 100,
|
|
25
26
|
},
|
|
26
27
|
{
|
|
27
28
|
name: 'buyBonus',
|
|
28
29
|
type: shared_1.EStakeType.buy,
|
|
29
30
|
bets: 100,
|
|
30
31
|
parametric: false,
|
|
31
|
-
multiple: true,
|
|
32
|
-
maxQty: 100,
|
|
33
32
|
},
|
|
34
33
|
],
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
hasValidation: true,
|
|
43
|
-
hasGamble: false,
|
|
44
|
-
freeroundsAllowed: true,
|
|
45
|
-
minWin: 0.5,
|
|
46
|
-
maxWin: 500,
|
|
47
|
-
apiVersion: 0,
|
|
48
|
-
coinRatio: 20,
|
|
34
|
+
};
|
|
35
|
+
const variableLinesReply = {
|
|
36
|
+
...fixedLinesReply,
|
|
37
|
+
hasVariableLines: true,
|
|
38
|
+
variableLevels: [1, 3, 5, 7, 9, 10],
|
|
39
|
+
defaultLevel: 9,
|
|
40
|
+
coinRatio: undefined,
|
|
49
41
|
};
|
|
50
42
|
exports.configReplyExamples = {
|
|
51
|
-
|
|
52
|
-
summary: '
|
|
53
|
-
value:
|
|
43
|
+
fixedLines: {
|
|
44
|
+
summary: 'Fixed-lines game (coinRatio)',
|
|
45
|
+
value: fixedLinesReply,
|
|
46
|
+
},
|
|
47
|
+
variableLines: {
|
|
48
|
+
summary: 'Variable-lines game (variableLevels + defaultLevel)',
|
|
49
|
+
value: variableLinesReply,
|
|
54
50
|
},
|
|
55
51
|
};
|
|
56
52
|
//# sourceMappingURL=config.schema.examples.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.examples.js","sourceRoot":"","sources":["../../../schemas/examples/config.schema.examples.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"config.schema.examples.js","sourceRoot":"","sources":["../../../schemas/examples/config.schema.examples.ts"],"names":[],"mappings":";;;AAAA,sCAAiD;AAEjD,MAAM,eAAe,GAAG;IACpB,SAAS,EAAE,cAAc;IACzB,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,GAAG;IACf,GAAG,EAAE,OAAO;IACZ,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,KAAK;IACpB,gBAAgB,EAAE,KAAK;IACvB,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,iBAAiB,EAAE,IAAI;IACvB,UAAU,EAAE;QACR;YACI,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,mBAAU,CAAC,OAAO;YACxB,IAAI,EAAE,CAAC;YACP,UAAU,EAAE,KAAK;SACpB;QACD;YACI,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,mBAAU,CAAC,GAAG;YACpB,IAAI,EAAE,GAAG;YACT,UAAU,EAAE,KAAK;SACpB;KACJ;CACJ,CAAA;AAED,MAAM,kBAAkB,GAAG;IACvB,GAAG,eAAe;IAClB,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IACnC,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,SAAS;CACvB,CAAA;AAEY,QAAA,mBAAmB,GAAc;IAC1C,UAAU,EAAE;QACR,OAAO,EAAE,8BAA8B;QACvC,KAAK,EAAE,eAAe;KACzB;IACD,aAAa,EAAE;QACX,OAAO,EAAE,qDAAqD;QAC9D,KAAK,EAAE,kBAAkB;KAC5B;CACJ,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"healthcheck.schema.examples.d.ts","sourceRoot":"","sources":["../../../schemas/examples/healthcheck.schema.examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"healthcheck.schema.examples.d.ts","sourceRoot":"","sources":["../../../schemas/examples/healthcheck.schema.examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAUrC,eAAO,MAAM,wBAAwB,EAAE,SAKtC,CAAA"}
|
|
@@ -2,22 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.healthcheckReplyExamples = void 0;
|
|
4
4
|
const defaultReply = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
environment: '
|
|
8
|
-
service: 'crazy-mix',
|
|
5
|
+
ok: true,
|
|
6
|
+
gameId: 'book-of-odin',
|
|
7
|
+
environment: 'production',
|
|
9
8
|
uptime: 423.825598962,
|
|
10
|
-
message: 'OK',
|
|
11
9
|
timestamp: 1666026861687,
|
|
12
|
-
metrics: {
|
|
13
|
-
requests: {
|
|
14
|
-
success: 18526,
|
|
15
|
-
failed: 2,
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
services: {
|
|
19
|
-
sentry: true,
|
|
20
|
-
},
|
|
21
10
|
};
|
|
22
11
|
exports.healthcheckReplyExamples = {
|
|
23
12
|
default: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"healthcheck.schema.examples.js","sourceRoot":"","sources":["../../../schemas/examples/healthcheck.schema.examples.ts"],"names":[],"mappings":";;;AAEA,MAAM,YAAY,GAAG;IACjB,
|
|
1
|
+
{"version":3,"file":"healthcheck.schema.examples.js","sourceRoot":"","sources":["../../../schemas/examples/healthcheck.schema.examples.ts"],"names":[],"mappings":";;;AAEA,MAAM,YAAY,GAAG;IACjB,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,cAAc;IACtB,WAAW,EAAE,YAAY;IACzB,MAAM,EAAE,aAAa;IACrB,SAAS,EAAE,aAAa;CAC3B,CAAA;AAEY,QAAA,wBAAwB,GAAc;IAC/C,OAAO,EAAE;QACL,OAAO,EAAE,eAAe;QACxB,KAAK,EAAE,YAAY;KACtB;CACJ,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"play.schema.examples.d.ts","sourceRoot":"","sources":["../../../schemas/examples/play.schema.examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"play.schema.examples.d.ts","sourceRoot":"","sources":["../../../schemas/examples/play.schema.examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AA6ErC,eAAO,MAAM,mBAAmB,EAAE,SAiBjC,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,SAS/B,CAAA"}
|