@n1k1t/mock-server 0.1.67 → 0.1.69

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 (38) hide show
  1. package/lib/package.json +1 -1
  2. package/lib/src/server/endpoints/cache.backup.endpoint.d.ts +24 -0
  3. package/lib/src/server/endpoints/cache.backup.endpoint.d.ts.map +1 -0
  4. package/lib/src/server/endpoints/cache.backup.endpoint.js +37 -0
  5. package/lib/src/server/endpoints/cache.backup.endpoint.js.map +1 -0
  6. package/lib/src/server/endpoints/cache.delete.endpoint.d.ts +7 -13
  7. package/lib/src/server/endpoints/cache.delete.endpoint.d.ts.map +1 -1
  8. package/lib/src/server/endpoints/cache.delete.endpoint.js +27 -29
  9. package/lib/src/server/endpoints/cache.delete.endpoint.js.map +1 -1
  10. package/lib/src/server/endpoints/cache.restore.endpoint.d.ts +39 -0
  11. package/lib/src/server/endpoints/cache.restore.endpoint.d.ts.map +1 -0
  12. package/lib/src/server/endpoints/cache.restore.endpoint.js +29 -0
  13. package/lib/src/server/endpoints/cache.restore.endpoint.js.map +1 -0
  14. package/lib/src/server/endpoints/index.d.ts +2 -0
  15. package/lib/src/server/endpoints/index.d.ts.map +1 -1
  16. package/lib/src/server/endpoints/index.js +5 -1
  17. package/lib/src/server/endpoints/index.js.map +1 -1
  18. package/lib/src/server/models/context/types.d.ts +1 -1
  19. package/lib/src/server/models/context/types.d.ts.map +1 -1
  20. package/lib/src/server/models/context/utils.js.map +1 -1
  21. package/lib/src/server/services/analytics.service.d.ts +2 -0
  22. package/lib/src/server/services/analytics.service.d.ts.map +1 -1
  23. package/lib/src/server/services/analytics.service.js +28 -24
  24. package/lib/src/server/services/analytics.service.js.map +1 -1
  25. package/lib/src/server/types/index.d.ts +3 -0
  26. package/lib/src/server/types/index.d.ts.map +1 -1
  27. package/lib/src/server/utils/index.d.ts +1 -1
  28. package/lib/src/server/utils/index.d.ts.map +1 -1
  29. package/lib/src/server/utils/index.js +15 -0
  30. package/lib/src/server/utils/index.js.map +1 -1
  31. package/lib/src/server/utils/rx.d.ts +8 -0
  32. package/lib/src/server/utils/rx.d.ts.map +1 -0
  33. package/lib/src/server/utils/rx.js +43 -0
  34. package/lib/src/server/utils/rx.js.map +1 -0
  35. package/package.json +1 -1
  36. package/public/assets/{index-TxMiEbRI.css → index-CKgMA4A4.css} +1 -1
  37. package/public/assets/{index-CwXt07DI.js → index-DU3YCqcD.js} +48 -37
  38. package/public/index.html +2 -2
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n1k1t/mock-server",
3
- "version": "0.1.67",
3
+ "version": "0.1.69",
4
4
  "description": "Powerful util to setup mocks over HTTP APIs",
5
5
  "main": "lib/src/index.js",
6
6
  "types": "lib/src/index.d.ts",
@@ -0,0 +1,24 @@
1
+ import { Endpoint } from '../models';
2
+ declare const _default: Endpoint<{
3
+ outgoing: string;
4
+ }, import("../models").IEndpointSchema<{
5
+ outgoing: string;
6
+ }>> & {
7
+ http: {
8
+ readonly method: "POST";
9
+ readonly path: "/cache/backup";
10
+ };
11
+ } & {
12
+ io: {
13
+ readonly path: "cache:backup";
14
+ };
15
+ } & {
16
+ handler: ({ reply, server }: (import("..").InternalHttpRequestContext<string> | import("..").InternalSocketIoRequestContext<string>) & {
17
+ incoming: {
18
+ data?: unknown;
19
+ query?: unknown;
20
+ };
21
+ }) => Promise<void>;
22
+ };
23
+ export default _default;
24
+ //# sourceMappingURL=cache.backup.endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.backup.endpoint.d.ts","sourceRoot":"","sources":["../../../../src/server/endpoints/cache.backup.endpoint.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;;cAMhB,MAAM;;cAAN,MAAM;;;;;;;;;;;;;;;;;;AAD3B,wBAkCK"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_gzip_1 = require("node-gzip");
4
+ const utils_1 = require("../utils");
5
+ const models_1 = require("../models");
6
+ const logger_1 = require("../../logger");
7
+ const logger = logger_1.Logger.build('Server.Endpoints.CacheBackup');
8
+ exports.default = models_1.Endpoint
9
+ .build()
10
+ .bindToHttp({ method: 'POST', path: `/cache/backup` })
11
+ .bindToIo({ path: 'cache:backup' })
12
+ .assignHandler(async ({ reply, server }) => {
13
+ const backup = { redis: [] };
14
+ if (server.databases.redis) {
15
+ const converter = utils_1.RxConverter.build(server.services.analytics.iterateRedisKeys());
16
+ for await (const key of converter.iterate()) {
17
+ const unprefixed = server.databases.redis.options.keyPrefix
18
+ ? key.replace(server.databases.redis.options.keyPrefix, '')
19
+ : key;
20
+ const value = await server.databases.redis.get(unprefixed).catch((error) => {
21
+ logger.error(`Got error while fetching redis value for key [${key}]`, error?.stack ?? error);
22
+ return null;
23
+ });
24
+ value
25
+ ? backup.redis.push([unprefixed, value])
26
+ : logger.warn(`Got [${value}] for key [${key}]`);
27
+ }
28
+ }
29
+ const zipped = await (0, node_gzip_1.gzip)(JSON.stringify(backup)).catch((error) => {
30
+ logger.error('Got error while zip payload', error?.stack ?? error);
31
+ return null;
32
+ });
33
+ zipped
34
+ ? reply.ok(zipped.toString('base64'))
35
+ : reply.internalError('Cannot zip backup payload');
36
+ });
37
+ //# sourceMappingURL=cache.backup.endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.backup.endpoint.js","sourceRoot":"","sources":["../../../../src/server/endpoints/cache.backup.endpoint.ts"],"names":[],"mappings":";;AAAA,yCAAiC;AAGjC,oCAAuC;AACvC,sCAAqC;AACrC,yCAAsC;AAEtC,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAE5D,kBAAe,iBAAQ;KACpB,KAAK,EAAwB;KAC7B,UAAU,CAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;KAC5D,QAAQ,CAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;KACzC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;IACzC,MAAM,MAAM,GAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAE3C,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,mBAAW,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAElF,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,OAAO,CAAC,SAAS;gBAC1D,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC5D,CAAC,CAAC,GAAG,CAAC;YAER,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1E,MAAM,CAAC,KAAK,CAAC,iDAAiD,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;gBAC7F,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,KAAK;gBACH,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBACxC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,cAAc,GAAG,GAAG,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAI,EAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAChE,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM;QACJ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { Endpoint } from '../models';
2
- interface IRedisResult {
3
- count: number;
2
+ interface IOutgoing {
3
+ redis?: {
4
+ count: number;
5
+ };
4
6
  }
5
7
  declare const _default: Endpoint<{
6
8
  incoming: {
@@ -8,18 +10,14 @@ declare const _default: Endpoint<{
8
10
  prefix?: string;
9
11
  };
10
12
  };
11
- outgoing: {
12
- redis?: IRedisResult;
13
- };
13
+ outgoing: IOutgoing;
14
14
  }, import("../models").IEndpointSchema<{
15
15
  incoming: {
16
16
  data: {
17
17
  prefix?: string;
18
18
  };
19
19
  };
20
- outgoing: {
21
- redis?: IRedisResult;
22
- };
20
+ outgoing: IOutgoing;
23
21
  }>> & {
24
22
  http: {
25
23
  readonly method: "DELETE";
@@ -30,11 +28,7 @@ declare const _default: Endpoint<{
30
28
  readonly path: "cache:delete";
31
29
  };
32
30
  } & {
33
- handler: ({ incoming, reply, server }: (import("..").InternalHttpRequestContext<{
34
- redis?: IRedisResult;
35
- }> | import("..").InternalSocketIoRequestContext<{
36
- redis?: IRedisResult;
37
- }>) & {
31
+ handler: ({ incoming, reply, server }: (import("..").InternalHttpRequestContext<IOutgoing> | import("..").InternalSocketIoRequestContext<IOutgoing>) & {
38
32
  incoming: {
39
33
  data?: {
40
34
  prefix?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"cache.delete.endpoint.d.ts","sourceRoot":"","sources":["../../../../src/server/endpoints/cache.delete.endpoint.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;;cAoCoB;QAAE,IAAI,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;cAAY;QAAE,KAAK,CAAC,EAAE,YAAY,CAAA;KAAE;;cAAjE;QAAE,IAAI,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;cAAY;QAAE,KAAK,CAAC,EAAE,YAAY,CAAA;KAAE;;;;;;;;;;;;gBAAd,YAAY;;gBAAZ,YAAY;;;;yBAA5C,MAAM;;;;;;AAD9C,wBAUI"}
1
+ {"version":3,"file":"cache.delete.endpoint.d.ts","sourceRoot":"","sources":["../../../../src/server/endpoints/cache.delete.endpoint.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,UAAU,SAAS;IACjB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;;cAKoB;QAAE,IAAI,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;cAAY,SAAS;;cAAlD;QAAE,IAAI,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;cAAY,SAAS;;;;;;;;;;;;;;yBAA/B,MAAM;;;;;;AAD9C,wBAiCK"}
@@ -1,38 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("../utils");
3
4
  const models_1 = require("../models");
4
5
  const logger_1 = require("../../logger");
5
- const logger = logger_1.Logger.build('Server.Endpoint.CacheUsage.Get');
6
- const deleteKeys = (client, prefix) => new Promise((resolve, reject) => {
7
- const stream = client.scanStream({ match: `${client.options.keyPrefix ?? ''}${prefix ?? ''}*` });
8
- const result = { count: 0 };
9
- stream.once('end', () => resolve(result));
10
- stream.once('error', (error) => {
11
- logger.error('Got error while scan execution', error?.stack ?? error);
12
- stream.close();
13
- reject(error);
14
- });
15
- stream.on('data', async (keys) => {
16
- stream.pause();
17
- result.count += keys.length;
18
- await Promise
19
- .all(keys.map(async (key) => client.call('DEL', key)))
20
- .catch((error) => {
21
- logger.error('Got error while deletion keys', error?.stack ?? error);
22
- stream.close();
23
- reject(error);
24
- return [];
25
- });
26
- stream.resume();
27
- });
28
- });
6
+ const logger = logger_1.Logger.build('Server.Endpoints.CacheDelete');
29
7
  exports.default = models_1.Endpoint
30
8
  .build()
31
9
  .bindToHttp({ method: 'DELETE', path: `/cache` })
32
10
  .bindToIo({ path: 'cache:delete' })
33
- .assignHandler(async ({ incoming, reply, server }) => reply.ok({
34
- redis: server.databases.redis
35
- ? await deleteKeys(server.databases.redis, incoming.data?.prefix).catch(() => undefined)
36
- : undefined,
37
- }));
11
+ .assignHandler(async ({ incoming, reply, server }) => {
12
+ const result = {
13
+ ...(server.databases.redis && {
14
+ redis: {
15
+ count: 0,
16
+ },
17
+ }),
18
+ };
19
+ if (result.redis) {
20
+ const converter = utils_1.RxConverter.build(server.services.analytics.iterateRedisKeys(incoming.data?.prefix));
21
+ for await (const key of converter.iterate()) {
22
+ const unprefixed = server.databases.redis.options.keyPrefix
23
+ ? key.replace(server.databases.redis.options.keyPrefix, '')
24
+ : key;
25
+ const deleted = await server.databases.redis.del(unprefixed).catch((error) => {
26
+ logger.error(`Got error while deletion redis value for key [${key}]`, error?.stack ?? error);
27
+ return null;
28
+ });
29
+ if (deleted) {
30
+ result.redis.count += deleted;
31
+ }
32
+ }
33
+ }
34
+ reply.ok(result);
35
+ });
38
36
  //# sourceMappingURL=cache.delete.endpoint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.delete.endpoint.js","sourceRoot":"","sources":["../../../../src/server/endpoints/cache.delete.endpoint.ts"],"names":[],"mappings":";;AAGA,sCAAqC;AACrC,yCAAsC;AAMtC,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;AAE9D,MAAM,UAAU,GAAG,CAAC,MAAa,EAAE,MAAe,EAAE,EAAE,CAAC,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IACnG,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,GAAG,MAAM,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACjG,MAAM,MAAM,GAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAE1C,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QAC7B,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;QACtE,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,MAAM,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAc,EAAE,EAAE;QACzC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;QAE5B,MAAM,OAAO;aACV,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;aACrD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;YACrE,MAAM,CAAC,KAAK,EAAE,CAAC;YAEf,MAAM,CAAC,KAAK,CAAC,CAAC;YACd,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEL,MAAM,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,kBAAe,iBAAQ;KACpB,KAAK,EAAmF;KACxF,UAAU,CAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;KACvD,QAAQ,CAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;KACzC,aAAa,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CACnD,KAAK,CAAC,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK;QAC3B,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QACxF,CAAC,CAAC,SAAS;CACd,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"cache.delete.endpoint.js","sourceRoot":"","sources":["../../../../src/server/endpoints/cache.delete.endpoint.ts"],"names":[],"mappings":";;AAEA,oCAAuC;AACvC,sCAAqC;AACrC,yCAAsC;AAQtC,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAE5D,kBAAe,iBAAQ;KACpB,KAAK,EAAoE;KACzE,UAAU,CAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;KACvD,QAAQ,CAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;KACzC,aAAa,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;IACnD,MAAM,MAAM,GAAc;QACxB,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI;YAC5B,KAAK,EAAE;gBACL,KAAK,EAAE,CAAC;aACT;SACF,CAAC;KACH,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,mBAAW,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAEvG,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,OAAO,CAAC,SAAS;gBAC1D,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC5D,CAAC,CAAC,GAAG,CAAC;YAER,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5E,MAAM,CAAC,KAAK,CAAC,iDAAiD,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;gBAC7F,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { Endpoint } from '../models';
2
+ declare const _default: Endpoint<{
3
+ incoming: {
4
+ data: {
5
+ backup: string;
6
+ ttl?: number;
7
+ };
8
+ };
9
+ outgoing: null;
10
+ }, import("../models").IEndpointSchema<{
11
+ incoming: {
12
+ data: {
13
+ backup: string;
14
+ ttl?: number;
15
+ };
16
+ };
17
+ outgoing: null;
18
+ }>> & {
19
+ http: {
20
+ readonly method: "POST";
21
+ readonly path: "/cache/restore";
22
+ };
23
+ } & {
24
+ io: {
25
+ readonly path: "cache:restore";
26
+ };
27
+ } & {
28
+ handler: ({ incoming, reply, server }: (import("..").InternalHttpRequestContext<null> | import("..").InternalSocketIoRequestContext<null>) & {
29
+ incoming: {
30
+ data?: {
31
+ backup: string;
32
+ ttl?: number;
33
+ } | undefined;
34
+ query?: unknown;
35
+ };
36
+ }) => Promise<void>;
37
+ };
38
+ export default _default;
39
+ //# sourceMappingURL=cache.restore.endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.restore.endpoint.d.ts","sourceRoot":"","sources":["../../../../src/server/endpoints/cache.restore.endpoint.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;;cAMhB;QAAE,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;cAAY,IAAI;;cAA1D;QAAE,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;cAAY,IAAI;;;;;;;;;;;;;;wBAAxC,MAAM;sBAAQ,MAAM;;;;;;AAD3D,wBA2BK"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_gzip_1 = require("node-gzip");
4
+ const models_1 = require("../models");
5
+ const logger_1 = require("../../logger");
6
+ const logger = logger_1.Logger.build('Server.Endpoints.CacheRestore');
7
+ exports.default = models_1.Endpoint
8
+ .build()
9
+ .bindToHttp({ method: 'POST', path: `/cache/restore` })
10
+ .bindToIo({ path: 'cache:restore' })
11
+ .assignHandler(async ({ incoming, reply, server }) => {
12
+ const unziped = await (0, node_gzip_1.ungzip)(Buffer.from(incoming.data.backup, 'base64')).catch((error) => {
13
+ logger.error('Got error while cache unzip', error?.stack ?? error);
14
+ return null;
15
+ });
16
+ if (!unziped) {
17
+ return reply.internalError('Cannot unzip backup payload');
18
+ }
19
+ const ttl = incoming.data.ttl ?? 60 * 60;
20
+ const backup = JSON.parse(unziped.toString('utf8'));
21
+ if (server.databases.redis) {
22
+ await Promise.all(backup.redis.map(([key, value]) => server.databases.redis.setex(key, ttl, value).catch((error) => {
23
+ logger.error(`Got error while inserting key [${key}]`, error?.stack ?? error);
24
+ return null;
25
+ })));
26
+ }
27
+ reply.ok(null);
28
+ });
29
+ //# sourceMappingURL=cache.restore.endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.restore.endpoint.js","sourceRoot":"","sources":["../../../../src/server/endpoints/cache.restore.endpoint.ts"],"names":[],"mappings":";;AAAA,yCAAmC;AAGnC,sCAAqC;AACrC,yCAAsC;AAEtC,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;AAE7D,kBAAe,iBAAQ;KACpB,KAAK,EAA4E;KACjF,UAAU,CAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;KAC7D,QAAQ,CAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;KAC1C,aAAa,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;IACnD,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAM,EAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACzF,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAElE,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAClD,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7D,MAAM,CAAC,KAAK,CAAC,kCAAkC,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;YAC9E,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACH,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
@@ -6,6 +6,8 @@ export { default as expectationsUpdate } from './expectations.update.endpoint';
6
6
  export { default as historyGetList } from './history.get-list.endpoint';
7
7
  export { default as historyDelete } from './history.delete.endpoint';
8
8
  export { default as cacheUsageGet } from './cache.usage.get.endpoint';
9
+ export { default as cacheRestore } from './cache.restore.endpoint';
10
+ export { default as cacheBackup } from './cache.backup.endpoint';
9
11
  export { default as cacheDelete } from './cache.delete.endpoint';
10
12
  export { default as configGet } from './config.get.endpoint';
11
13
  export { default as metrics } from './metrics.endpoint';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/endpoints/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/endpoints/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,gBAAgB,CAAC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.gui = exports.ping = exports.stats = exports.metrics = exports.configGet = exports.cacheDelete = exports.cacheUsageGet = exports.historyDelete = exports.historyGetList = exports.expectationsUpdate = exports.expectationsDelete = exports.expectationsCreate = exports.expectationsGetList = exports.expectationsGroupUpdate = void 0;
6
+ exports.gui = exports.ping = exports.stats = exports.metrics = exports.configGet = exports.cacheDelete = exports.cacheBackup = exports.cacheRestore = exports.cacheUsageGet = exports.historyDelete = exports.historyGetList = exports.expectationsUpdate = exports.expectationsDelete = exports.expectationsCreate = exports.expectationsGetList = exports.expectationsGroupUpdate = void 0;
7
7
  var expectations_group_update_endpoint_1 = require("./expectations-group.update.endpoint");
8
8
  Object.defineProperty(exports, "expectationsGroupUpdate", { enumerable: true, get: function () { return __importDefault(expectations_group_update_endpoint_1).default; } });
9
9
  var expectations_get_list_endpoint_1 = require("./expectations.get-list.endpoint");
@@ -20,6 +20,10 @@ var history_delete_endpoint_1 = require("./history.delete.endpoint");
20
20
  Object.defineProperty(exports, "historyDelete", { enumerable: true, get: function () { return __importDefault(history_delete_endpoint_1).default; } });
21
21
  var cache_usage_get_endpoint_1 = require("./cache.usage.get.endpoint");
22
22
  Object.defineProperty(exports, "cacheUsageGet", { enumerable: true, get: function () { return __importDefault(cache_usage_get_endpoint_1).default; } });
23
+ var cache_restore_endpoint_1 = require("./cache.restore.endpoint");
24
+ Object.defineProperty(exports, "cacheRestore", { enumerable: true, get: function () { return __importDefault(cache_restore_endpoint_1).default; } });
25
+ var cache_backup_endpoint_1 = require("./cache.backup.endpoint");
26
+ Object.defineProperty(exports, "cacheBackup", { enumerable: true, get: function () { return __importDefault(cache_backup_endpoint_1).default; } });
23
27
  var cache_delete_endpoint_1 = require("./cache.delete.endpoint");
24
28
  Object.defineProperty(exports, "cacheDelete", { enumerable: true, get: function () { return __importDefault(cache_delete_endpoint_1).default; } });
25
29
  var config_get_endpoint_1 = require("./config.get.endpoint");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/endpoints/index.ts"],"names":[],"mappings":";;;;;;AAAA,2FAA0F;AAAjF,8JAAA,OAAO,OAA2B;AAC3C,mFAAkF;AAAzE,sJAAA,OAAO,OAAuB;AACvC,+EAA+E;AAAtE,mJAAA,OAAO,OAAsB;AACtC,+EAA+E;AAAtE,mJAAA,OAAO,OAAsB;AACtC,+EAA+E;AAAtE,mJAAA,OAAO,OAAsB;AAEtC,yEAAwE;AAA/D,4IAAA,OAAO,OAAkB;AAClC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AAEjC,uEAAsE;AAA7D,0IAAA,OAAO,OAAiB;AACjC,iEAAiE;AAAxD,qIAAA,OAAO,OAAe;AAE/B,6DAA6D;AAApD,iIAAA,OAAO,OAAa;AAE7B,uDAAwD;AAA/C,4HAAA,OAAO,OAAW;AAC3B,mDAAoD;AAA3C,wHAAA,OAAO,OAAS;AACzB,iDAAkD;AAAzC,sHAAA,OAAO,OAAQ;AACxB,+CAAgD;AAAvC,oHAAA,OAAO,OAAO"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/endpoints/index.ts"],"names":[],"mappings":";;;;;;AAAA,2FAA0F;AAAjF,8JAAA,OAAO,OAA2B;AAC3C,mFAAkF;AAAzE,sJAAA,OAAO,OAAuB;AACvC,+EAA+E;AAAtE,mJAAA,OAAO,OAAsB;AACtC,+EAA+E;AAAtE,mJAAA,OAAO,OAAsB;AACtC,+EAA+E;AAAtE,mJAAA,OAAO,OAAsB;AAEtC,yEAAwE;AAA/D,4IAAA,OAAO,OAAkB;AAClC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AAEjC,uEAAsE;AAA7D,0IAAA,OAAO,OAAiB;AACjC,mEAAmE;AAA1D,uIAAA,OAAO,OAAgB;AAChC,iEAAiE;AAAxD,qIAAA,OAAO,OAAe;AAC/B,iEAAiE;AAAxD,qIAAA,OAAO,OAAe;AAE/B,6DAA6D;AAApD,iIAAA,OAAO,OAAa;AAE7B,uDAAwD;AAA/C,4HAAA,OAAO,OAAW;AAC3B,mDAAoD;AAA3C,wHAAA,OAAO,OAAS;AACzB,iDAAkD;AAAzC,sHAAA,OAAO,OAAQ;AACxB,+CAAgD;AAAvC,oHAAA,OAAO,OAAO"}
@@ -6,7 +6,7 @@ export interface IRequestContextIncoming {
6
6
  path: string;
7
7
  method: string;
8
8
  headers: Record<string, string>;
9
- query?: object;
9
+ query?: Record<string, unknown>;
10
10
  stream?: Observable<unknown>;
11
11
  data?: unknown;
12
12
  dataRaw?: Buffer;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/models/context/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAE7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAElC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAEnC,QAAQ,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,QAAQ,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;CAChE;AAED,MAAM,WAAW,iCAAiC;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtB,cAAc;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,yCAAyC,GACjD;IAAE,SAAS,EAAE,KAAK,CAAA;CAAE,GACpB;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/models/context/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAE7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAElC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAEnC,QAAQ,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,QAAQ,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;CAChE;AAED,MAAM,WAAW,iCAAiC;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtB,cAAc;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,yCAAyC,GACjD;IAAE,SAAS,EAAE,KAAK,CAAA;CAAE,GACpB;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/server/models/context/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/server/models/context/utils.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
+ import { Observable } from 'rxjs';
1
2
  import { Service } from '../models';
2
3
  export interface IRedisUsage {
3
4
  count: number;
4
5
  bytes: number;
5
6
  }
6
7
  export declare class AnalyticsService extends Service {
8
+ iterateRedisKeys(prefix?: string): Observable<string>;
7
9
  calculateRedisUsage(prefix?: string): Promise<IRedisUsage>;
8
10
  static build(server: Service['server']): AnalyticsService;
9
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.service.d.ts","sourceRoot":"","sources":["../../../../src/server/services/analytics.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAID,qBAAa,gBAAiB,SAAQ,OAAO;IAC9B,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAyCvE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;CAGvC"}
1
+ {"version":3,"file":"analytics.service.d.ts","sourceRoot":"","sources":["../../../../src/server/services/analytics.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,MAAM,CAAC;AAI/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAID,qBAAa,gBAAiB,SAAQ,OAAO;IACpC,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAsB/C,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAqBvE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;CAGvC"}
@@ -1,39 +1,43 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AnalyticsService = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const utils_1 = require("../utils");
4
6
  const models_1 = require("../models");
5
7
  const logger_1 = require("../../logger");
6
8
  const logger = logger_1.Logger.build('Services.Analytics');
7
9
  class AnalyticsService extends models_1.Service {
10
+ iterateRedisKeys(prefix) {
11
+ if (!this.server.databases.redis) {
12
+ return (0, rxjs_1.of)();
13
+ }
14
+ const subject = new rxjs_1.Subject();
15
+ const match = `${this.server.databases.redis.options.keyPrefix ?? ''}${prefix ?? ''}*`;
16
+ const stream = this.server.databases.redis.scanStream({ match });
17
+ stream.once('end', () => setImmediate(() => subject.complete()));
18
+ stream.once('error', (error) => {
19
+ logger.error('Got error while scan execution', error?.stack ?? error);
20
+ stream.close();
21
+ subject.error(error);
22
+ });
23
+ stream.on('data', async (keys) => keys.forEach((key) => subject.next(key)));
24
+ return subject.asObservable();
25
+ }
8
26
  async calculateRedisUsage(prefix) {
9
27
  if (!this.server.databases.redis) {
10
28
  return { count: 0, bytes: 0 };
11
29
  }
12
- return new Promise((resolve, reject) => {
13
- const match = `${this.server.databases.redis.options.keyPrefix ?? ''}${prefix ?? ''}*`;
14
- const stream = this.server.databases.redis.scanStream({ match });
15
- const result = { count: 0, bytes: 0 };
16
- stream.once('end', () => resolve(result));
17
- stream.once('error', (error) => {
18
- logger.error('Got error while scan execution', error?.stack ?? error);
19
- stream.close();
20
- reject(error);
30
+ const converter = utils_1.RxConverter.build(this.iterateRedisKeys(prefix));
31
+ const result = { count: 0, bytes: 0 };
32
+ for await (const key of converter.iterate()) {
33
+ const usage = await this.server.databases.redis.call('MEMORY', 'USAGE', key).catch((error) => {
34
+ logger.error('Got error while fetching memory usage', error?.stack ?? error);
35
+ throw error;
21
36
  });
22
- stream.on('data', async (keys) => {
23
- stream.pause();
24
- result.count += keys.length;
25
- const usage = await Promise
26
- .all(keys.map(async (key) => this.server.databases.redis.call('MEMORY', 'USAGE', key)))
27
- .catch((error) => {
28
- logger.error('Got error while fetching memory usage', error?.stack ?? error);
29
- stream.close();
30
- reject(error);
31
- return [];
32
- });
33
- usage.forEach((bytes) => result.bytes += Number(bytes));
34
- stream.resume();
35
- });
36
- });
37
+ result.count += 1;
38
+ result.bytes += Number(usage);
39
+ }
40
+ return result;
37
41
  }
38
42
  static build(server) {
39
43
  return new AnalyticsService(server);
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.service.js","sourceRoot":"","sources":["../../../../src/server/services/analytics.service.ts"],"names":[],"mappings":";;;AAEA,sCAAoC;AACpC,yCAAsC;AAOtC,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAElD,MAAa,gBAAiB,SAAQ,gBAAO;IACpC,KAAK,CAAC,mBAAmB,CAAC,MAAe;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACjC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,GAAG,MAAM,IAAI,EAAE,GAAG,CAAC;YACxF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAElE,MAAM,MAAM,GAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAEnD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC7B,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;gBACtE,MAAM,CAAC,KAAK,EAAE,CAAC;gBAEf,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAc,EAAE,EAAE;gBACzC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAEf,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;gBAE5B,MAAM,KAAK,GAAG,MAAM,OAAO;qBACxB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;qBACvF,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACf,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;oBAC7E,MAAM,CAAC,KAAK,EAAE,CAAC;oBAEf,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBAEL,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAExD,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAyB;QACpC,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF;AA7CD,4CA6CC"}
1
+ {"version":3,"file":"analytics.service.js","sourceRoot":"","sources":["../../../../src/server/services/analytics.service.ts"],"names":[],"mappings":";;;AAAA,+BAA+C;AAG/C,oCAAuC;AACvC,sCAAoC;AACpC,yCAAsC;AAOtC,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAElD,MAAa,gBAAiB,SAAQ,gBAAO;IACpC,gBAAgB,CAAC,MAAe;QACrC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACjC,OAAO,IAAA,SAAE,GAAE,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,cAAO,EAAU,CAAC;QAEtC,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,GAAG,MAAM,IAAI,EAAE,GAAG,CAAC;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAElE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC7B,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;YACtE,MAAM,CAAC,KAAK,EAAE,CAAC;YAEf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtF,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,MAAe;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACjC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,SAAS,GAAG,mBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAEnD,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5F,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;gBAC7E,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YAClB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAyB;QACpC,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF;AA/CD,4CA+CC"}
@@ -34,4 +34,7 @@ export interface IIoExchangeSchema {
34
34
  point: TMetricPoint;
35
35
  };
36
36
  }
37
+ export interface ICacheBackup {
38
+ redis: [string, string][];
39
+ }
37
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,mBAAmB,GAAG,EAAE;IACrE,SAAS,EAAE,MAAM,SAAS;QAAE,SAAS,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACrE,KAAK,EAAE,MAAM,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7D,IAAI,EAAE,MAAM,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;IACzF,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7E,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAChD,qBAAqB,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAElD,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErC,mBAAmB,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,YAAY,CAAC;KACrB,CAAC;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,mBAAmB,GAAG,EAAE;IACrE,SAAS,EAAE,MAAM,SAAS;QAAE,SAAS,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACrE,KAAK,EAAE,MAAM,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7D,IAAI,EAAE,MAAM,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;IACzF,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7E,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAChD,qBAAqB,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAElD,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErC,mBAAmB,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,YAAY,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CAC3B"}
@@ -1,6 +1,7 @@
1
1
  import { TObject, TSchema } from '@n1k1t/typebox';
2
2
  import { ValueError } from '@n1k1t/typebox/value';
3
3
  import type { Constructable } from '../../../types';
4
+ export * from './rx';
4
5
  interface IValidationMetaContext {
5
6
  schema: TObject;
6
7
  properties: Set<string | Symbol>;
@@ -8,5 +9,4 @@ interface IValidationMetaContext {
8
9
  export declare const extractValidationMetaContext: (Definition: Constructable<object> | Function) => IValidationMetaContext | null;
9
10
  export declare const validate: (instance: object, references?: TSchema[]) => ValueError[];
10
11
  export declare const UseValidation: (schema: TSchema) => PropertyDecorator;
11
- export {};
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAQ,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAS,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,UAAU,sBAAsB;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CAClC;AASD,eAAO,MAAM,4BAA4B,eAC1B,aAAa,CAAC,MAAM,CAAC,GAAG,QAAQ,KAAG,sBAAsB,GAAG,IACd,CAAC;AAE9D,eAAO,MAAM,QAAQ,aAAc,MAAM,eAAc,OAAO,EAAE,KAAQ,UAAU,EAGjF,CAAA;AAED,eAAO,MAAM,aAAa,WAAY,OAAO,KAAG,iBAQ/C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAQ,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAS,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,cAAc,MAAM,CAAC;AAErB,UAAU,sBAAsB;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CAClC;AASD,eAAO,MAAM,4BAA4B,eAC1B,aAAa,CAAC,MAAM,CAAC,GAAG,QAAQ,KAAG,sBAAsB,GAAG,IACd,CAAC;AAE9D,eAAO,MAAM,QAAQ,aAAc,MAAM,eAAc,OAAO,EAAE,KAAQ,UAAU,EAGjF,CAAA;AAED,eAAO,MAAM,aAAa,WAAY,OAAO,KAAG,iBAQ/C,CAAA"}
@@ -1,8 +1,23 @@
1
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
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
17
  exports.UseValidation = exports.validate = exports.extractValidationMetaContext = void 0;
4
18
  const typebox_1 = require("@n1k1t/typebox");
5
19
  const value_1 = require("@n1k1t/typebox/value");
20
+ __exportStar(require("./rx"), exports);
6
21
  const validationContextMetaKey = Symbol('validation:context');
7
22
  const buildValidationMetaContext = () => ({
8
23
  schema: typebox_1.Type.Object({}),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/utils/index.ts"],"names":[],"mappings":";;;AAAA,4CAAwD;AACxD,gDAAyD;AASzD,MAAM,wBAAwB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAE9D,MAAM,0BAA0B,GAAG,GAA2B,EAAE,CAAC,CAAC;IAChE,MAAM,EAAE,cAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACvB,UAAU,EAAE,IAAI,GAAG,EAAE;CACtB,CAAC,CAAC;AAEI,MAAM,4BAA4B,GACvC,CAAC,UAA4C,EAAiC,EAAE,CAC9E,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,wBAAwB,CAAC,IAAI,IAAI,CAAC;AAFjD,QAAA,4BAA4B,gCAEqB;AAEvD,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,aAAwB,EAAE,EAAgB,EAAE;IACrF,MAAM,OAAO,GAAG,IAAA,oCAA4B,EAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,aAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC,CAAA;AAHY,QAAA,QAAQ,YAGpB;AAEM,MAAM,aAAa,GAAG,CAAC,MAAe,EAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;IACnF,MAAM,OAAO,GAAG,IAAA,oCAA4B,EAAC,MAAM,CAAC,WAAW,CAAC;WAC3D,0BAA0B,EAAE,CAAC;IAElC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,MAAM,GAAG,cAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,cAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAElF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,wBAAwB,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC,CAAA;AARY,QAAA,aAAa,iBAQzB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4CAAwD;AACxD,gDAAyD;AAIzD,uCAAqB;AAOrB,MAAM,wBAAwB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAE9D,MAAM,0BAA0B,GAAG,GAA2B,EAAE,CAAC,CAAC;IAChE,MAAM,EAAE,cAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACvB,UAAU,EAAE,IAAI,GAAG,EAAE;CACtB,CAAC,CAAC;AAEI,MAAM,4BAA4B,GACvC,CAAC,UAA4C,EAAiC,EAAE,CAC9E,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,wBAAwB,CAAC,IAAI,IAAI,CAAC;AAFjD,QAAA,4BAA4B,gCAEqB;AAEvD,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,aAAwB,EAAE,EAAgB,EAAE;IACrF,MAAM,OAAO,GAAG,IAAA,oCAA4B,EAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,aAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC,CAAA;AAHY,QAAA,QAAQ,YAGpB;AAEM,MAAM,aAAa,GAAG,CAAC,MAAe,EAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;IACnF,MAAM,OAAO,GAAG,IAAA,oCAA4B,EAAC,MAAM,CAAC,WAAW,CAAC;WAC3D,0BAA0B,EAAE,CAAC;IAElC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,MAAM,GAAG,cAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,cAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAElF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,wBAAwB,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC,CAAA;AARY,QAAA,aAAa,iBAQzB"}
@@ -0,0 +1,8 @@
1
+ import { Observable } from 'rxjs';
2
+ export declare class RxConverter<T> {
3
+ source: Observable<T>;
4
+ constructor(source: Observable<T>);
5
+ iterate(): AsyncIterable<T, null>;
6
+ static build<T>(source: Observable<T>): RxConverter<T>;
7
+ }
8
+ //# sourceMappingURL=rx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rx.d.ts","sourceRoot":"","sources":["../../../../src/server/utils/rx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,qBAAa,WAAW,CAAC,CAAC;IACL,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;gBAArB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAEjC,OAAO,IAAI,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC;IAqCxC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;CAGvD"}