@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.
Files changed (132) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/MIGRATION.md +303 -0
  3. package/README.md +96 -98
  4. package/dist/application.d.ts.map +1 -1
  5. package/dist/application.js +9 -5
  6. package/dist/application.js.map +1 -1
  7. package/dist/examples.d.ts +1 -0
  8. package/dist/examples.d.ts.map +1 -1
  9. package/dist/examples.js +3 -1
  10. package/dist/examples.js.map +1 -1
  11. package/dist/helpers/config.helper.d.ts +4 -1
  12. package/dist/helpers/config.helper.d.ts.map +1 -1
  13. package/dist/helpers/config.helper.js +26 -0
  14. package/dist/helpers/config.helper.js.map +1 -1
  15. package/dist/helpers/errors.helper.d.ts +18 -0
  16. package/dist/helpers/errors.helper.d.ts.map +1 -0
  17. package/dist/helpers/errors.helper.js +20 -0
  18. package/dist/helpers/errors.helper.js.map +1 -0
  19. package/dist/helpers/fastify.helper.d.ts +5 -1
  20. package/dist/helpers/fastify.helper.d.ts.map +1 -1
  21. package/dist/helpers/fastify.helper.js +3 -1
  22. package/dist/helpers/fastify.helper.js.map +1 -1
  23. package/dist/helpers/handlers.helper.d.ts +10 -1
  24. package/dist/helpers/handlers.helper.d.ts.map +1 -1
  25. package/dist/helpers/handlers.helper.js +2 -1
  26. package/dist/helpers/handlers.helper.js.map +1 -1
  27. package/dist/index.d.ts +6 -4
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +7 -4
  30. package/dist/index.js.map +1 -1
  31. package/dist/plugins/404.plugin.d.ts.map +1 -1
  32. package/dist/plugins/404.plugin.js +2 -1
  33. package/dist/plugins/404.plugin.js.map +1 -1
  34. package/dist/plugins/apikey.plugin.d.ts.map +1 -1
  35. package/dist/plugins/apikey.plugin.js +6 -7
  36. package/dist/plugins/apikey.plugin.js.map +1 -1
  37. package/dist/plugins/error.plugin.d.ts.map +1 -1
  38. package/dist/plugins/error.plugin.js +6 -2
  39. package/dist/plugins/error.plugin.js.map +1 -1
  40. package/dist/plugins/sentry.plugin.js +2 -2
  41. package/dist/plugins/sentry.plugin.js.map +1 -1
  42. package/dist/plugins/swagger.plugin.d.ts.map +1 -1
  43. package/dist/plugins/swagger.plugin.js +5 -1
  44. package/dist/plugins/swagger.plugin.js.map +1 -1
  45. package/dist/routes/checksum/checksum.route.d.ts +3 -0
  46. package/dist/routes/checksum/checksum.route.d.ts.map +1 -0
  47. package/dist/routes/checksum/checksum.route.js +21 -0
  48. package/dist/routes/checksum/checksum.route.js.map +1 -0
  49. package/dist/routes/checksum/index.d.ts +3 -0
  50. package/dist/routes/checksum/index.d.ts.map +1 -0
  51. package/dist/routes/checksum/index.js +12 -0
  52. package/dist/routes/checksum/index.js.map +1 -0
  53. package/dist/routes/client/client.route.d.ts +3 -0
  54. package/dist/routes/client/client.route.d.ts.map +1 -0
  55. package/dist/routes/{client.route.js → client/client.route.js} +5 -5
  56. package/dist/routes/client/client.route.js.map +1 -0
  57. package/dist/routes/client/index.d.ts +3 -0
  58. package/dist/routes/client/index.d.ts.map +1 -0
  59. package/dist/routes/client/index.js +12 -0
  60. package/dist/routes/client/index.js.map +1 -0
  61. package/dist/routes/config/config.route.js +1 -1
  62. package/dist/routes/config/config.route.js.map +1 -1
  63. package/dist/routes/config/config.route.validate.plugin.d.ts.map +1 -1
  64. package/dist/routes/config/config.route.validate.plugin.js +43 -17
  65. package/dist/routes/config/config.route.validate.plugin.js.map +1 -1
  66. package/dist/routes/play/play.route.validate.plugin.d.ts +9 -9
  67. package/dist/routes/play/play.route.validate.plugin.d.ts.map +1 -1
  68. package/dist/routes/play/play.route.validate.plugin.js +84 -40
  69. package/dist/routes/play/play.route.validate.plugin.js.map +1 -1
  70. package/dist/routes/validate/validate.route.validate.plugin.d.ts.map +1 -1
  71. package/dist/routes/validate/validate.route.validate.plugin.js +9 -3
  72. package/dist/routes/validate/validate.route.validate.plugin.js.map +1 -1
  73. package/dist/routes-public/healthcheck.route.d.ts.map +1 -0
  74. package/dist/{routes → routes-public}/healthcheck.route.js +4 -10
  75. package/dist/routes-public/healthcheck.route.js.map +1 -0
  76. package/dist/schemas/checksum.schema.d.ts +11 -0
  77. package/dist/schemas/checksum.schema.d.ts.map +1 -0
  78. package/dist/schemas/checksum.schema.js +26 -0
  79. package/dist/schemas/checksum.schema.js.map +1 -0
  80. package/dist/schemas/client.schema.d.ts +1 -1
  81. package/dist/schemas/client.schema.js +4 -4
  82. package/dist/schemas/client.schema.js.map +1 -1
  83. package/dist/schemas/config.schema.d.ts +17 -20
  84. package/dist/schemas/config.schema.d.ts.map +1 -1
  85. package/dist/schemas/config.schema.js +41 -42
  86. package/dist/schemas/config.schema.js.map +1 -1
  87. package/dist/schemas/examples/checksum.schema.examples.d.ts +3 -0
  88. package/dist/schemas/examples/checksum.schema.examples.d.ts.map +1 -0
  89. package/dist/schemas/examples/checksum.schema.examples.js +26 -0
  90. package/dist/schemas/examples/checksum.schema.examples.js.map +1 -0
  91. package/dist/schemas/examples/client.schema.examples.d.ts.map +1 -1
  92. package/dist/schemas/examples/client.schema.examples.js +15 -18
  93. package/dist/schemas/examples/client.schema.examples.js.map +1 -1
  94. package/dist/schemas/examples/config.schema.examples.d.ts.map +1 -1
  95. package/dist/schemas/examples/config.schema.examples.js +30 -34
  96. package/dist/schemas/examples/config.schema.examples.js.map +1 -1
  97. package/dist/schemas/examples/healthcheck.schema.examples.d.ts.map +1 -1
  98. package/dist/schemas/examples/healthcheck.schema.examples.js +3 -14
  99. package/dist/schemas/examples/healthcheck.schema.examples.js.map +1 -1
  100. package/dist/schemas/examples/play.schema.examples.d.ts.map +1 -1
  101. package/dist/schemas/examples/play.schema.examples.js +66 -130
  102. package/dist/schemas/examples/play.schema.examples.js.map +1 -1
  103. package/dist/schemas/examples/validate.schema.examples.d.ts.map +1 -1
  104. package/dist/schemas/examples/validate.schema.examples.js +1 -3
  105. package/dist/schemas/examples/validate.schema.examples.js.map +1 -1
  106. package/dist/schemas/healthcheck.schema.d.ts +2 -20
  107. package/dist/schemas/healthcheck.schema.d.ts.map +1 -1
  108. package/dist/schemas/healthcheck.schema.js +10 -41
  109. package/dist/schemas/healthcheck.schema.js.map +1 -1
  110. package/dist/schemas/play.schema.d.ts +21 -16
  111. package/dist/schemas/play.schema.d.ts.map +1 -1
  112. package/dist/schemas/play.schema.js +36 -45
  113. package/dist/schemas/play.schema.js.map +1 -1
  114. package/dist/schemas/shared.d.ts +13 -21
  115. package/dist/schemas/shared.d.ts.map +1 -1
  116. package/dist/schemas/shared.js +56 -72
  117. package/dist/schemas/shared.js.map +1 -1
  118. package/dist/schemas/validate.schema.d.ts +2 -3
  119. package/dist/schemas/validate.schema.d.ts.map +1 -1
  120. package/dist/schemas/validate.schema.js +2 -5
  121. package/dist/schemas/validate.schema.js.map +1 -1
  122. package/package.json +3 -2
  123. package/dist/plugins/metrics.plugin.d.ts +0 -9
  124. package/dist/plugins/metrics.plugin.d.ts.map +0 -1
  125. package/dist/plugins/metrics.plugin.js +0 -24
  126. package/dist/plugins/metrics.plugin.js.map +0 -1
  127. package/dist/routes/client.route.d.ts +0 -3
  128. package/dist/routes/client.route.d.ts.map +0 -1
  129. package/dist/routes/client.route.js.map +0 -1
  130. package/dist/routes/healthcheck.route.d.ts.map +0 -1
  131. package/dist/routes/healthcheck.route.js.map +0 -1
  132. /package/dist/{routes → routes-public}/healthcheck.route.d.ts +0 -0
@@ -1,23 +1,9 @@
1
1
  import { Static, Type } from 'typebox';
2
- export declare enum ECategory {
3
- slots = "slots",
4
- cluster = "cluster",
5
- table = "table"
6
- }
7
2
  export declare enum EStakeType {
8
3
  default = "default",
9
4
  buy = "buy",
10
5
  bonusBet = "bonusBet"
11
6
  }
12
- export declare enum EVolatility {
13
- variable = "Variable",
14
- low = "Low",
15
- medLow = "Medium - Low",
16
- med = "Medium",
17
- medHigh = "Medium - High",
18
- high = "High",
19
- veryHigh = "Very High"
20
- }
21
7
  export declare enum EEnvironment {
22
8
  development = "development",
23
9
  staging = "staging",
@@ -33,6 +19,7 @@ export type TExamples = {
33
19
  export declare const StakeSchema: Type.TObject<{
34
20
  name: Type.TString;
35
21
  amount: Type.TNumber;
22
+ coinValue: Type.TOptional<Type.TNumber>;
36
23
  level: Type.TOptional<Type.TInteger>;
37
24
  qty: Type.TOptional<Type.TInteger>;
38
25
  params: Type.TOptional<Type.TString>;
@@ -42,29 +29,34 @@ export declare const StakeModeSchema: Type.TObject<{
42
29
  type: Type.TEnum<[EStakeType.default, EStakeType.buy, EStakeType.bonusBet]>;
43
30
  bets: Type.TNumber;
44
31
  multiple: Type.TOptional<Type.TBoolean>;
45
- parametric: Type.TBoolean;
46
32
  maxQty: Type.TOptional<Type.TInteger>;
33
+ parametric: Type.TBoolean;
34
+ }>;
35
+ export declare const MetaSchema: Type.TObject<{
36
+ public: Type.TAny;
37
+ private: Type.TAny;
47
38
  }>;
48
39
  export declare const HeadersSchema: Type.TObject<{
49
40
  "x-api-key": Type.TString;
50
41
  }>;
51
42
  export declare const InternalErrorSchema: Type.TObject<{
52
- ok: Type.TBoolean;
43
+ status: Type.TLiteral<false>;
44
+ code: Type.TInteger;
53
45
  message: Type.TString;
54
- custom: Type.TOptional<Type.TAny>;
55
46
  }>;
56
47
  export declare const RequestErrorSchema: Type.TObject<{
57
- ok: Type.TBoolean;
48
+ status: Type.TLiteral<false>;
49
+ code: Type.TInteger;
58
50
  message: Type.TString;
59
- custom: Type.TOptional<Type.TAny>;
60
51
  }>;
61
52
  export declare const AccessErrorSchema: Type.TObject<{
62
- ok: Type.TBoolean;
53
+ status: Type.TLiteral<false>;
54
+ code: Type.TInteger;
63
55
  message: Type.TString;
64
- custom: Type.TOptional<Type.TAny>;
65
56
  }>;
66
57
  export type TStake = Static<typeof StakeSchema>;
67
58
  export type TStakeMode = Static<typeof StakeModeSchema>;
59
+ export type TMeta = Static<typeof MetaSchema>;
68
60
  export type TInternalError = Static<typeof InternalErrorSchema>;
69
61
  export type TRequestError = Static<typeof RequestErrorSchema>;
70
62
  export type TAccessError = Static<typeof AccessErrorSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../schemas/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAItC,oBAAY,SAAS;IACjB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,KAAK,UAAU;CAClB;AAED,oBAAY,UAAU;IAClB,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,QAAQ,aAAa;CACxB;AAED,oBAAY,WAAW;IACnB,QAAQ,aAAa;IACrB,GAAG,QAAQ;IACX,MAAM,iBAAiB;IACvB,GAAG,WAAW;IACd,OAAO,kBAAkB;IACzB,IAAI,SAAS;IACb,QAAQ,cAAc;CACzB;AAED,oBAAY,YAAY;IACpB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;CAC5B;AAED,MAAM,MAAM,SAAS,GAAG;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG;QACX,KAAK,EAAE,GAAG,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAA;KACvB,CAAA;CACJ,CAAA;AAED,eAAO,MAAM,WAAW;;;;;;EAuBtB,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;EAyB1B,CAAA;AAEF,eAAO,MAAM,aAAa;;EAKxB,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;EAkB9B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;EAkB7B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;EAkB5B,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAA;AAC/C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAA;AACvD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../schemas/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAItC,oBAAY,UAAU;IAClB,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,QAAQ,aAAa;CACxB;AAED,oBAAY,YAAY;IACpB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;CAC5B;AAED,MAAM,MAAM,SAAS,GAAG;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG;QACX,KAAK,EAAE,GAAG,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAA;KACvB,CAAA;CACJ,CAAA;AAED,eAAO,MAAM,WAAW;;;;;;;EA2BtB,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;EAyB1B,CAAA;AAEF,eAAO,MAAM,UAAU;;;EAWrB,CAAA;AAEF,eAAO,MAAM,aAAa;;EAKxB,CAAA;AAcF,eAAO,MAAM,mBAAmB;;;;EAS9B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;EAS7B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;EAS5B,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAA;AAC/C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAA;AACvD,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAA;AAC7C,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
@@ -1,30 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AccessErrorSchema = exports.RequestErrorSchema = exports.InternalErrorSchema = exports.HeadersSchema = exports.StakeModeSchema = exports.StakeSchema = exports.EEnvironment = exports.EVolatility = exports.EStakeType = exports.ECategory = void 0;
3
+ exports.AccessErrorSchema = exports.RequestErrorSchema = exports.InternalErrorSchema = exports.HeadersSchema = exports.MetaSchema = exports.StakeModeSchema = exports.StakeSchema = exports.EEnvironment = exports.EStakeType = void 0;
4
4
  const typebox_1 = require("typebox");
5
5
  const env_helper_1 = require("../helpers/env.helper");
6
- var ECategory;
7
- (function (ECategory) {
8
- ECategory["slots"] = "slots";
9
- ECategory["cluster"] = "cluster";
10
- ECategory["table"] = "table";
11
- })(ECategory || (exports.ECategory = ECategory = {}));
12
6
  var EStakeType;
13
7
  (function (EStakeType) {
14
8
  EStakeType["default"] = "default";
15
9
  EStakeType["buy"] = "buy";
16
10
  EStakeType["bonusBet"] = "bonusBet";
17
11
  })(EStakeType || (exports.EStakeType = EStakeType = {}));
18
- var EVolatility;
19
- (function (EVolatility) {
20
- EVolatility["variable"] = "Variable";
21
- EVolatility["low"] = "Low";
22
- EVolatility["medLow"] = "Medium - Low";
23
- EVolatility["med"] = "Medium";
24
- EVolatility["medHigh"] = "Medium - High";
25
- EVolatility["high"] = "High";
26
- EVolatility["veryHigh"] = "Very High";
27
- })(EVolatility || (exports.EVolatility = EVolatility = {}));
28
12
  var EEnvironment;
29
13
  (function (EEnvironment) {
30
14
  EEnvironment["development"] = "development";
@@ -33,115 +17,115 @@ var EEnvironment;
33
17
  })(EEnvironment || (exports.EEnvironment = EEnvironment = {}));
34
18
  exports.StakeSchema = typebox_1.Type.Object({
35
19
  name: typebox_1.Type.String({
36
- description: 'Stake mode name ("default", "buyBonus", etc)',
20
+ description: 'Stake mode name. Must match one of StakeMode.name from /config',
37
21
  }),
38
22
  amount: typebox_1.Type.Number({
39
- description: 'Cash bet value',
23
+ description: 'Total stake amount in currency units, already multiplied by StakeMode.bets AND by qty (when set). Formula: amount = baseBetAmount × StakeMode.bets × (qty ?? 1). baseBetAmount is the in-currency value of one base bet on the chosen coin/line combination (e.g. coinValue × coinRatio for fixed-line; coinValue × level for variable-line)',
40
24
  exclusiveMinimum: 0,
41
25
  }),
26
+ coinValue: typebox_1.Type.Optional(typebox_1.Type.Number({
27
+ description: 'Price of one coin in currency units. Needed by the Game Server to compute cashWin from coin-denominated math. Present only for games with a coin mechanic; omitted entirely for games without one (e.g. roulettes)',
28
+ exclusiveMinimum: 0,
29
+ })),
42
30
  level: typebox_1.Type.Optional(typebox_1.Type.Integer({
43
- description: 'Line level. Available only for games with variable lines and for some specific table games',
31
+ description: 'Chosen line number. Required when hasVariableLines=true; must be one of variableLevels',
44
32
  minimum: 0,
45
33
  })),
46
34
  qty: typebox_1.Type.Optional(typebox_1.Type.Integer({
47
- description: 'Count of the same stakes (only for multiple)',
35
+ description: 'Number of stakes of this mode placed (only when StakeMode.multiple=true; up to maxQty). Already factored into amount — consumers must NOT multiply amount × qty again',
48
36
  minimum: 1,
49
37
  })),
50
38
  params: typebox_1.Type.Optional(typebox_1.Type.String({
51
- description: 'Custom additional data for complex stakes (chip value, slider range, etc.). Stringified JSON',
39
+ description: 'Custom player input defining round parameters. Only for StakeMode.parametric=true; format is game-specific',
52
40
  })),
53
41
  }, {
54
42
  $id: 'Stake',
55
- description: 'Stake data. Optional for requests with choice',
43
+ description: 'A bet built from a StakeMode',
56
44
  additionalProperties: false,
57
45
  });
58
46
  exports.StakeModeSchema = typebox_1.Type.Object({
59
47
  name: typebox_1.Type.String({
60
- description: 'Stake mode name ("default", "buyBonus", etc)',
48
+ description: 'Stake mode identifier (e.g. "default", "buyBonus", "doubleStreet")',
61
49
  }),
62
50
  type: typebox_1.Type.Enum(EStakeType, {
63
- description: 'Type of stake mode: default, buy, etc',
51
+ description: 'One of EStakeType: default, buy, bonusBet',
64
52
  }),
65
53
  bets: typebox_1.Type.Number({
66
- description: 'Multiplier (price) of stake mode, by default 1',
54
+ description: 'How much the player pays for this mode, as a multiplier of the base stake size',
67
55
  exclusiveMinimum: 0,
68
56
  }),
69
57
  multiple: typebox_1.Type.Optional(typebox_1.Type.Boolean({
70
- description: 'Shows that it is allowed to place several stakes of this type.',
58
+ description: 'true if more than one stake of this mode can be placed at once',
71
59
  })),
72
- parametric: typebox_1.Type.Boolean({
73
- description: 'Shows that stake mode may have custom additional data (chip value, slider range, etc.)',
74
- }),
75
60
  maxQty: typebox_1.Type.Optional(typebox_1.Type.Integer({
76
- description: 'How many stakes of this type is allowed to make at once',
61
+ description: 'Only when multiple=true: maximum allowed number of such stakes',
77
62
  minimum: 1,
78
63
  })),
64
+ parametric: typebox_1.Type.Boolean({
65
+ description: 'true if a stake of this mode carries an extra params payload that can affect the round',
66
+ }),
79
67
  }, {
80
68
  $id: 'StakeMode',
81
- description: 'Information about available stakes of the game',
69
+ description: 'Bet template the game advertises in /config → stakeModes',
70
+ additionalProperties: false,
71
+ });
72
+ exports.MetaSchema = typebox_1.Type.Object({
73
+ public: typebox_1.Type.Any({
74
+ description: 'Public part of meta — RGS may forward it to the client',
75
+ }),
76
+ private: typebox_1.Type.Any({
77
+ description: 'Private part of meta — never forwarded to the client',
78
+ }),
79
+ }, {
80
+ $id: 'Meta',
81
+ description: 'Game-specific state carried across /play calls. Shape is opaque to RGS and to this package',
82
82
  additionalProperties: false,
83
83
  });
84
84
  exports.HeadersSchema = typebox_1.Type.Object({
85
85
  [(0, env_helper_1.getenv)('API_HEADER', 'x-api-key')]: typebox_1.Type.String({
86
- description: 'Secret key',
86
+ description: 'Shared API key used to authenticate all RGS → Game Server calls',
87
87
  examples: ['test'],
88
88
  }),
89
89
  });
90
- exports.InternalErrorSchema = typebox_1.Type.Object({
91
- ok: typebox_1.Type.Boolean({
92
- description: 'Always false',
90
+ const errorEnvelopeProps = {
91
+ status: typebox_1.Type.Literal(false, {
92
+ description: 'Always false for error responses',
93
+ }),
94
+ code: typebox_1.Type.Integer({
95
+ description: 'Machine-readable error code (1xxx validation, 2xxx auth, 4xxx business, 9xxx internal)',
93
96
  }),
94
97
  message: typebox_1.Type.String({
95
- description: 'Error message',
98
+ description: 'Human-readable description of the failure',
96
99
  }),
97
- custom: typebox_1.Type.Optional(typebox_1.Type.Any({
98
- description: 'Any additional data about error',
99
- })),
100
- }, {
100
+ };
101
+ exports.InternalErrorSchema = typebox_1.Type.Object(errorEnvelopeProps, {
101
102
  $id: 'InternalError',
102
- description: 'Any internal error: invalid reply format, native exception, etc.',
103
+ description: 'Server-side failure',
103
104
  additionalProperties: false,
104
105
  examples: [{
105
- ok: false,
106
- message: '"ok" is required!',
106
+ status: false,
107
+ code: 9001,
108
+ message: 'Unhandled exception',
107
109
  }],
108
110
  });
109
- exports.RequestErrorSchema = typebox_1.Type.Object({
110
- ok: typebox_1.Type.Boolean({
111
- description: 'Always false',
112
- }),
113
- message: typebox_1.Type.String({
114
- description: 'Error message',
115
- }),
116
- custom: typebox_1.Type.Optional(typebox_1.Type.Any({
117
- description: 'Any additional data about error',
118
- })),
119
- }, {
111
+ exports.RequestErrorSchema = typebox_1.Type.Object(errorEnvelopeProps, {
120
112
  $id: 'RequestError',
121
- description: 'Invalid request format (body, headers)',
113
+ description: 'Malformed body, invalid parameters or a domain-rule rejection',
122
114
  additionalProperties: false,
123
115
  examples: [{
124
- ok: false,
125
- message: "body must have required property 'demo'",
116
+ status: false,
117
+ code: 1001,
118
+ message: "body must have required property 'isDemo'",
126
119
  }],
127
120
  });
128
- exports.AccessErrorSchema = typebox_1.Type.Object({
129
- ok: typebox_1.Type.Boolean({
130
- description: 'Always false',
131
- }),
132
- message: typebox_1.Type.String({
133
- description: 'Error message',
134
- }),
135
- custom: typebox_1.Type.Optional(typebox_1.Type.Any({
136
- description: 'Any additional data about error',
137
- })),
138
- }, {
121
+ exports.AccessErrorSchema = typebox_1.Type.Object(errorEnvelopeProps, {
139
122
  $id: 'AccessError',
140
- description: 'Incorrect API key',
123
+ description: 'Missing or invalid X-API-KEY',
141
124
  additionalProperties: false,
142
125
  examples: [{
143
- ok: false,
144
- message: "API_KEY doesn't match",
126
+ status: false,
127
+ code: 2001,
128
+ message: 'Invalid X-API-KEY',
145
129
  }],
146
130
  });
147
131
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../schemas/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../schemas/shared.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare const ValidateRequestSchema: Type.TObject<{
5
5
  stakes: Type.TOptional<Type.TArray<Type.TObject<{
6
6
  name: Type.TString;
7
7
  amount: Type.TNumber;
8
+ coinValue: Type.TOptional<Type.TNumber>;
8
9
  level: Type.TOptional<Type.TInteger>;
9
10
  qty: Type.TOptional<Type.TInteger>;
10
11
  params: Type.TOptional<Type.TString>;
@@ -13,9 +14,7 @@ export declare const ValidateRequestSchema: Type.TObject<{
13
14
  metaPrivate: Type.TOptional<Type.TString>;
14
15
  metaPublic: Type.TOptional<Type.TString>;
15
16
  }>;
16
- export declare const ValidateReplySchema: Type.TObject<{
17
- ok: Type.TBoolean;
18
- }>;
17
+ export declare const ValidateReplySchema: Type.TObject<{}>;
19
18
  export type TValidateRequest = Static<typeof ValidateRequestSchema>;
20
19
  export type TValidateReply = Static<typeof ValidateReplySchema>;
21
20
  //# sourceMappingURL=validate.schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.schema.d.ts","sourceRoot":"","sources":["../../schemas/validate.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAKtC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;EA0BhC,CAAA;AAEF,eAAO,MAAM,mBAAmB;;EAQ9B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACnE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
1
+ {"version":3,"file":"validate.schema.d.ts","sourceRoot":"","sources":["../../schemas/validate.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAKtC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;EA0BhC,CAAA;AAEF,eAAO,MAAM,mBAAmB,kBAK9B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACnE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
@@ -31,12 +31,9 @@ exports.ValidateRequestSchema = typebox_1.Type.Object({
31
31
  additionalProperties: false,
32
32
  'x-examples': validate_schema_examples_1.validateRequestExamples,
33
33
  });
34
- exports.ValidateReplySchema = typebox_1.Type.Object({
35
- ok: typebox_1.Type.Boolean({
36
- description: 'Always true for success responses',
37
- }),
38
- }, {
34
+ exports.ValidateReplySchema = typebox_1.Type.Object({}, {
39
35
  $id: 'ValidateReply',
36
+ description: 'Empty success body; non-2xx with error envelope on failure',
40
37
  additionalProperties: false,
41
38
  'x-examples': validate_schema_examples_1.validateReplyExamples,
42
39
  });
@@ -1 +1 @@
1
- {"version":3,"file":"validate.schema.js","sourceRoot":"","sources":["../../schemas/validate.schema.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAEtC,kFAAoG;AACpG,qCAAsC;AAEzB,QAAA,qBAAqB,GAAG,cAAI,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC;QACf,WAAW,EAAE,yBAAyB;KACzC,CAAC;IACF,gBAAgB,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC;QACzC,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,CAAC;KACb,CAAC,CAAC;IACH,MAAM,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,KAAK,CAAC,oBAAW,EAAE;QAC1C,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,CAAC;KACd,CAAC,CAAC;IACH,WAAW,EAAE,cAAI,CAAC,MAAM,CAAC;QACrB,WAAW,EAAE,8CAA8C;QAC3D,gBAAgB,EAAE,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC;QACnC,WAAW,EAAE,gIAAgI;KAChJ,CAAC,CAAC;IACH,UAAU,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC;QAClC,WAAW,EAAE,6IAA6I;KAC7J,CAAC,CAAC;CACN,EAAE;IACC,GAAG,EAAE,iBAAiB;IACtB,oBAAoB,EAAE,KAAK;IAC3B,YAAY,EAAE,kDAAuB;CACxC,CAAC,CAAA;AAEW,QAAA,mBAAmB,GAAG,cAAI,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,cAAI,CAAC,OAAO,CAAC;QACb,WAAW,EAAE,mCAAmC;KACnD,CAAC;CACL,EAAE;IACC,GAAG,EAAE,eAAe;IACpB,oBAAoB,EAAE,KAAK;IAC3B,YAAY,EAAE,gDAAqB;CACtC,CAAC,CAAA"}
1
+ {"version":3,"file":"validate.schema.js","sourceRoot":"","sources":["../../schemas/validate.schema.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAEtC,kFAAoG;AACpG,qCAAsC;AAEzB,QAAA,qBAAqB,GAAG,cAAI,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC;QACf,WAAW,EAAE,yBAAyB;KACzC,CAAC;IACF,gBAAgB,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC;QACzC,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,CAAC;KACb,CAAC,CAAC;IACH,MAAM,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,KAAK,CAAC,oBAAW,EAAE;QAC1C,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,CAAC;KACd,CAAC,CAAC;IACH,WAAW,EAAE,cAAI,CAAC,MAAM,CAAC;QACrB,WAAW,EAAE,8CAA8C;QAC3D,gBAAgB,EAAE,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC;QACnC,WAAW,EAAE,gIAAgI;KAChJ,CAAC,CAAC;IACH,UAAU,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC;QAClC,WAAW,EAAE,6IAA6I;KAC7J,CAAC,CAAC;CACN,EAAE;IACC,GAAG,EAAE,iBAAiB;IACtB,oBAAoB,EAAE,KAAK;IAC3B,YAAY,EAAE,kDAAuB;CACxC,CAAC,CAAA;AAEW,QAAA,mBAAmB,GAAG,cAAI,CAAC,MAAM,CAAC,EAAE,EAAE;IAC/C,GAAG,EAAE,eAAe;IACpB,WAAW,EAAE,4DAA4D;IACzE,oBAAoB,EAAE,KAAK;IAC3B,YAAY,EAAE,gDAAqB;CACtC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truelab/trueserver",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "TrueLab Fastify server package: routes, schemas, and plugins for TrueLab game backends",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -31,7 +31,8 @@
31
31
  "files": [
32
32
  "dist",
33
33
  "README.md",
34
- "CHANGELOG.md"
34
+ "CHANGELOG.md",
35
+ "MIGRATION.md"
35
36
  ],
36
37
  "engines": {
37
38
  "node": ">=22.12"
@@ -1,9 +0,0 @@
1
- import { TMetrics } from '../schemas/healthcheck.schema';
2
- declare module 'fastify' {
3
- interface FastifyInstance {
4
- metrics: TMetrics;
5
- }
6
- }
7
- declare const metricsPlugin: (fastify: import("../helpers/fastify.helper").FastifyTypebox) => Promise<void>;
8
- export default metricsPlugin;
9
- //# sourceMappingURL=metrics.plugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.plugin.d.ts","sourceRoot":"","sources":["../../plugins/metrics.plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAExD,OAAO,QAAQ,SAAS,CAAC;IACrB,UAAU,eAAe;QACrB,OAAO,EAAE,QAAQ,CAAA;KACpB;CACJ;AASD,QAAA,MAAM,aAAa,gFAYjB,CAAA;AAEF,eAAe,aAAa,CAAA"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /* eslint-disable no-param-reassign */
4
- const fastify_helper_1 = require("../helpers/fastify.helper");
5
- const metricsSingleton = {
6
- requests: {
7
- success: 0,
8
- failed: 0,
9
- },
10
- };
11
- const metricsPlugin = (0, fastify_helper_1.registerPlugin)(async (fastify) => {
12
- fastify.decorate('metrics', metricsSingleton);
13
- fastify.addHook('onResponse', (_request, reply, done) => {
14
- if (reply.raw.statusCode < 400) {
15
- fastify.metrics.requests.success += 1;
16
- }
17
- else {
18
- fastify.metrics.requests.failed += 1;
19
- }
20
- done();
21
- });
22
- });
23
- exports.default = metricsPlugin;
24
- //# sourceMappingURL=metrics.plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.plugin.js","sourceRoot":"","sources":["../../plugins/metrics.plugin.ts"],"names":[],"mappings":";;AAAA,sCAAsC;AACtC,8DAA0D;AAS1D,MAAM,gBAAgB,GAAa;IAC/B,QAAQ,EAAE;QACN,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;KACZ;CACJ,CAAA;AAED,MAAM,aAAa,GAAG,IAAA,+BAAc,EAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;IAE7C,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACpD,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;QACzC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAA;QACxC,CAAC;QAED,IAAI,EAAE,CAAA;IACV,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,kBAAe,aAAa,CAAA"}
@@ -1,3 +0,0 @@
1
- declare const clientRoute: (fastify: import("../helpers/fastify.helper").FastifyTypebox) => Promise<void>;
2
- export default clientRoute;
3
- //# sourceMappingURL=client.route.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.route.d.ts","sourceRoot":"","sources":["../../routes/client.route.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,WAAW,gFAYf,CAAA;AAEF,eAAe,WAAW,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.route.js","sourceRoot":"","sources":["../../routes/client.route.ts"],"names":[],"mappings":";;AAAA,8DAAyD;AACzD,gEAAqD;AACrD,4DAA4D;AAC5D,8CAE0B;AAE1B,MAAM,WAAW,GAAG,IAAA,8BAAa,EAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAChD,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;QACpB,MAAM,EAAE;YACJ,QAAQ,EAAE;gBACN,GAAG,EAAE,iCAAiB;gBACtB,GAAG,EAAE,2BAAkB;gBACvB,GAAG,EAAE,0BAAiB;gBACtB,GAAG,EAAE,4BAAmB;aAC3B;YACD,OAAO,EAAE,sBAAa;SACzB;KACJ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,0BAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;AACtF,CAAC,CAAC,CAAA;AAEF,kBAAe,WAAW,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"healthcheck.route.d.ts","sourceRoot":"","sources":["../../routes/healthcheck.route.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,gBAAgB,gFA4BpB,CAAA;AAEF,eAAe,gBAAgB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"healthcheck.route.js","sourceRoot":"","sources":["../../routes/healthcheck.route.ts"],"names":[],"mappings":";;AAAA,4DAAwD;AACxD,sDAAiD;AACjD,8DAAyD;AACzD,sEAAsE;AACtE,8CAE0B;AAE1B,MAAM,gBAAgB,GAAG,IAAA,8BAAa,EAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACrD,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;QACzB,MAAM,EAAE;YACJ,QAAQ,EAAE;gBACN,GAAG,EAAE,2CAAsB;gBAC3B,GAAG,EAAE,2BAAkB;gBACvB,GAAG,EAAE,0BAAiB;gBACtB,GAAG,EAAE,4BAAmB;aAC3B;YACD,OAAO,EAAE,sBAAa;SACzB;KACJ,EAAE,GAAG,EAAE,CAAC,CAAC;QACN,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,IAAA,6BAAa,GAAE,CAAC,IAAI;QAC7B,WAAW,EAAE,IAAA,sBAAS,EAClB,qBAAY,CAAC,WAAW,EACxB,qBAAY,CAAC,OAAO,EACpB,qBAAY,CAAC,UAAU,CAC1B;QACD,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;QACxB,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;QAC/B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE;YACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM;SAC3B;KACJ,CAAC,CAAC,CAAA;AACP,CAAC,CAAC,CAAA;AAEF,kBAAe,gBAAgB,CAAA"}