@push-rpc/next 2.0.10 → 2.0.12

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 (85) hide show
  1. package/README.md +216 -22
  2. package/example/client.ts +1 -1
  3. package/example/server.ts +2 -2
  4. package/package-lock.json +1291 -0
  5. package/package.json +1 -1
  6. package/src/client/HttpClient.ts +1 -20
  7. package/src/client/RpcClientImpl.ts +18 -6
  8. package/src/client/WebSocketConnection.ts +8 -27
  9. package/src/client/index.ts +2 -0
  10. package/src/index.ts +1 -0
  11. package/src/rpc.ts +1 -0
  12. package/src/server/RpcServerImpl.ts +12 -8
  13. package/src/server/index.ts +2 -0
  14. package/src/utils/middleware.ts +7 -2
  15. package/tests/connection.ts +2 -87
  16. package/tests/middleware.ts +129 -1
  17. package/tests/testUtils.ts +25 -0
  18. package/dist/client/HttpClient.d.ts +0 -13
  19. package/dist/client/HttpClient.js +0 -98
  20. package/dist/client/HttpClient.js.map +0 -1
  21. package/dist/client/RemoteSubscriptions.d.ts +0 -18
  22. package/dist/client/RemoteSubscriptions.js +0 -120
  23. package/dist/client/RemoteSubscriptions.js.map +0 -1
  24. package/dist/client/RpcClientImpl.d.ts +0 -23
  25. package/dist/client/RpcClientImpl.js +0 -117
  26. package/dist/client/RpcClientImpl.js.map +0 -1
  27. package/dist/client/WebSocketConnection.d.ts +0 -38
  28. package/dist/client/WebSocketConnection.js +0 -180
  29. package/dist/client/WebSocketConnection.js.map +0 -1
  30. package/dist/client/index.d.ts +0 -28
  31. package/dist/client/index.js +0 -38
  32. package/dist/client/index.js.map +0 -1
  33. package/dist/client/remote.d.ts +0 -14
  34. package/dist/client/remote.js +0 -66
  35. package/dist/client/remote.js.map +0 -1
  36. package/dist/index.d.ts +0 -12
  37. package/dist/index.js.map +0 -1
  38. package/dist/logger.d.ts +0 -8
  39. package/dist/logger.js +0 -9
  40. package/dist/logger.js.map +0 -1
  41. package/dist/rpc.d.ts +0 -36
  42. package/dist/rpc.js +0 -32
  43. package/dist/rpc.js.map +0 -1
  44. package/dist/server/ConnectionsServer.d.ts +0 -13
  45. package/dist/server/ConnectionsServer.js +0 -72
  46. package/dist/server/ConnectionsServer.js.map +0 -1
  47. package/dist/server/LocalSubscriptions.d.ts +0 -12
  48. package/dist/server/LocalSubscriptions.js +0 -113
  49. package/dist/server/LocalSubscriptions.js.map +0 -1
  50. package/dist/server/RpcServerImpl.d.ts +0 -24
  51. package/dist/server/RpcServerImpl.js +0 -195
  52. package/dist/server/RpcServerImpl.js.map +0 -1
  53. package/dist/server/http.d.ts +0 -9
  54. package/dist/server/http.js +0 -89
  55. package/dist/server/http.js.map +0 -1
  56. package/dist/server/index.d.ts +0 -30
  57. package/dist/server/index.js +0 -33
  58. package/dist/server/index.js.map +0 -1
  59. package/dist/server/local.d.ts +0 -15
  60. package/dist/server/local.js +0 -46
  61. package/dist/server/local.js.map +0 -1
  62. package/dist/utils/cookies.d.ts +0 -7
  63. package/dist/utils/cookies.js +0 -31
  64. package/dist/utils/cookies.js.map +0 -1
  65. package/dist/utils/env.d.ts +0 -6
  66. package/dist/utils/env.js +0 -22
  67. package/dist/utils/env.js.map +0 -1
  68. package/dist/utils/json.d.ts +0 -2
  69. package/dist/utils/json.js +0 -34
  70. package/dist/utils/json.js.map +0 -1
  71. package/dist/utils/middleware.d.ts +0 -2
  72. package/dist/utils/middleware.js +0 -31
  73. package/dist/utils/middleware.js.map +0 -1
  74. package/dist/utils/promises.d.ts +0 -5
  75. package/dist/utils/promises.js +0 -29
  76. package/dist/utils/promises.js.map +0 -1
  77. package/dist/utils/server.d.ts +0 -5
  78. package/dist/utils/server.js +0 -48
  79. package/dist/utils/server.js.map +0 -1
  80. package/dist/utils/throttle.d.ts +0 -4
  81. package/dist/utils/throttle.js +0 -40
  82. package/dist/utils/throttle.js.map +0 -1
  83. package/dist/utils/types.d.ts +0 -1
  84. package/dist/utils/types.js +0 -3
  85. package/dist/utils/types.js.map +0 -1
@@ -1,9 +0,0 @@
1
- /// <reference types="node" />
2
- import { IncomingMessage, ServerResponse } from "http";
3
- import { RpcConnectionContext } from "../rpc.js";
4
- export declare function serveHttpRequest(req: IncomingMessage, res: ServerResponse, path: string, hooks: HttpServerHooks, createConnectionContext: (req: IncomingMessage) => Promise<RpcConnectionContext>): Promise<void>;
5
- export type HttpServerHooks = {
6
- call(ctx: RpcConnectionContext, itemName: string, parameters: unknown[]): Promise<unknown>;
7
- subscribe(clientId: RpcConnectionContext, itemName: string, parameters: unknown[]): Promise<unknown>;
8
- unsubscribe(clientId: RpcConnectionContext, itemName: string, parameters: unknown[]): Promise<unknown>;
9
- };
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.serveHttpRequest = void 0;
4
- const json_js_1 = require("../utils/json.js");
5
- const logger_js_1 = require("../logger.js");
6
- const server_js_1 = require("../utils/server.js");
7
- async function serveHttpRequest(req, res, path, hooks, createConnectionContext) {
8
- // if port is in options - response 404 on other URLs
9
- // oherwise just handle request
10
- if (req.url?.startsWith(path)) {
11
- try {
12
- const ctx = await createConnectionContext(req);
13
- const itemName = req.url.slice(path.length + 1);
14
- const isJson = req.headers["content-type"]?.includes("application/json") ?? false;
15
- const textBody = await readBody(req);
16
- let body = isJson && !!textBody ? (0, json_js_1.safeParseJson)(textBody) : [];
17
- if (!Array.isArray(body)) {
18
- body = [body];
19
- }
20
- let result;
21
- switch (req.method) {
22
- case "POST":
23
- result = await hooks.call(ctx, itemName, body);
24
- break;
25
- case "PUT":
26
- result = await hooks.subscribe(ctx, itemName, body);
27
- break;
28
- case "PATCH":
29
- result = await hooks.unsubscribe(ctx, itemName, body);
30
- break;
31
- default:
32
- res.statusCode = 404;
33
- res.end();
34
- return;
35
- }
36
- if (typeof result == "undefined") {
37
- res.statusCode = 204;
38
- res.end();
39
- return;
40
- }
41
- if (typeof result == "string") {
42
- res.setHeader("Content-Type", "text/plain");
43
- res.write(result);
44
- res.end();
45
- return;
46
- }
47
- res.setHeader("Content-Type", "application/json");
48
- res.write((0, json_js_1.safeStringify)(result));
49
- res.end();
50
- }
51
- catch (e) {
52
- if (e.code) {
53
- res.statusCode = e.code;
54
- res.statusMessage = e.message;
55
- const { code, message, stack, ...rest } = e;
56
- if (Object.keys(rest).length > 0) {
57
- res.setHeader("Content-Type", "application/json");
58
- res.write((0, json_js_1.safeStringify)(rest));
59
- }
60
- res.end();
61
- return;
62
- }
63
- else {
64
- logger_js_1.log.warn(`Error in ${req.url}.`, e);
65
- res.statusCode = 500;
66
- res.statusMessage = e["message"] || "Internal Server Error";
67
- res.end();
68
- return;
69
- }
70
- }
71
- }
72
- }
73
- exports.serveHttpRequest = serveHttpRequest;
74
- function readBody(req) {
75
- const decompressed = (0, server_js_1.decompressRequest)(req);
76
- return new Promise((resolve, reject) => {
77
- let body = "";
78
- decompressed.on("data", (chunk) => {
79
- body += chunk.toString();
80
- });
81
- decompressed.on("end", () => {
82
- resolve(body);
83
- });
84
- decompressed.on("error", (error) => {
85
- reject(error);
86
- });
87
- });
88
- }
89
- //# sourceMappingURL=http.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- /// <reference types="node" />
2
- import { RpcConnectionContext, RpcContext, Services } from "../rpc.js";
3
- import { ServicesWithTriggers } from "./local.js";
4
- import { Middleware } from "../utils/middleware.js";
5
- import http, { IncomingMessage } from "http";
6
- export declare function publishServices<S extends Services<S>, C extends RpcContext>(services: S, overrideOptions: Partial<PublishServicesOptions<C>> & ({
7
- port: number;
8
- } | {
9
- server: http.Server;
10
- })): Promise<{
11
- server: RpcServer;
12
- services: ServicesWithTriggers<S>;
13
- httpServer: http.Server;
14
- }>;
15
- export type RpcServer = {
16
- close(): Promise<void>;
17
- _allSubscriptions(): Array<any[]>;
18
- };
19
- export type PublishServicesOptions<C extends RpcContext> = {
20
- host: string;
21
- path: string;
22
- middleware: Middleware<C>[];
23
- pingInterval: number;
24
- subscriptions: boolean;
25
- createConnectionContext(req: IncomingMessage): Promise<RpcConnectionContext>;
26
- } & ({
27
- server: http.Server;
28
- } | {
29
- port: number;
30
- } | {});
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.publishServices = void 0;
4
- const rpc_js_1 = require("../rpc.js");
5
- const RpcServerImpl_js_1 = require("./RpcServerImpl.js");
6
- async function publishServices(services, overrideOptions) {
7
- const options = {
8
- ...defaultOptions,
9
- ...overrideOptions,
10
- };
11
- const rpcServer = new RpcServerImpl_js_1.RpcServerImpl(services, options);
12
- await rpcServer.start();
13
- return {
14
- services: rpcServer.createServicesWithTriggers(),
15
- server: rpcServer,
16
- httpServer: rpcServer.httpServer,
17
- };
18
- }
19
- exports.publishServices = publishServices;
20
- const defaultOptions = {
21
- path: "",
22
- host: "0.0.0.0",
23
- middleware: [],
24
- pingInterval: 30 * 1000, // should be in-sync with client
25
- subscriptions: true,
26
- async createConnectionContext(req) {
27
- const header = req.headers[rpc_js_1.CLIENT_ID_HEADER];
28
- return {
29
- clientId: (Array.isArray(header) ? header[0] : header) || "anon",
30
- };
31
- },
32
- };
33
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;AAAA,sCAAsF;AAGtF,yDAAgD;AAGzC,KAAK,UAAU,eAAe,CACnC,QAAW,EACX,eAA8F;IAM9F,MAAM,OAAO,GAAG;QACd,GAAG,cAAc;QACjB,GAAG,eAAe;KACnB,CAAA;IAED,MAAM,SAAS,GAAG,IAAI,gCAAa,CAAO,QAAQ,EAAE,OAAO,CAAC,CAAA;IAE5D,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IAEvB,OAAO;QACL,QAAQ,EAAE,SAAS,CAAC,0BAA0B,EAAE;QAChD,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS,CAAC,UAAU;KACjC,CAAA;AACH,CAAC;AAtBD,0CAsBC;AAyBD,MAAM,cAAc,GAAqD;IACvE,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,SAAS;IACf,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,EAAE,GAAG,IAAI,EAAE,gCAAgC;IACzD,aAAa,EAAE,IAAI;IAEnB,KAAK,CAAC,uBAAuB,CAAC,GAAoB;QAChD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,yBAAgB,CAAC,CAAA;QAE5C,OAAO;YACL,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM;SACjE,CAAA;IACH,CAAC;CACF,CAAA"}
@@ -1,15 +0,0 @@
1
- import { RemoteFunction, Services } from "../rpc.js";
2
- import { LocalSubscriptions } from "./LocalSubscriptions.js";
3
- import { ExtractPromiseResult } from "../utils/types.js";
4
- import { ThrottleArgsReducer } from "../utils/throttle.js";
5
- export type ThrottleSettings<D> = {
6
- timeout: number;
7
- reducer?: ThrottleArgsReducer<D>;
8
- };
9
- export declare function withTriggers<T extends Services<T>>(localSubscriptions: LocalSubscriptions, services: T, name?: string): ServicesWithTriggers<T>;
10
- export type ServicesWithTriggers<T extends Services<T>> = {
11
- [K in keyof T]: T[K] extends RemoteFunction ? T[K] & {
12
- trigger(filter?: Partial<Parameters<T[K]>[0]>, suppliedData?: ExtractPromiseResult<ReturnType<T[K]>>): void;
13
- throttle(settings: ThrottleSettings<ExtractPromiseResult<ReturnType<T[K]>>>): void;
14
- } : T[K] extends object ? ServicesWithTriggers<T[K]> : never;
15
- };
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withTriggers = void 0;
4
- function withTriggers(localSubscriptions, services, name = "") {
5
- const cachedItems = {};
6
- const skippedProps = ["length", "name", "prototype", "arguments", "caller"];
7
- return new Proxy(services, {
8
- get(target, propName) {
9
- // skip internal props
10
- if (typeof propName != "string")
11
- return target[propName];
12
- // skip other system props
13
- if (["then", "catch", "toJSON", ...skippedProps].includes(propName))
14
- return target[propName];
15
- const itemName = name ? name + "/" + propName : propName;
16
- if (typeof target[propName] == "function") {
17
- const delegate = (...params) => {
18
- return target[propName](...params);
19
- };
20
- delegate.trigger = (filter = {}, suppliedData) => {
21
- // triggers are delayed for consumers to receive updates after the current call ends.
22
- setTimeout(() => {
23
- localSubscriptions.trigger(itemName, filter, suppliedData);
24
- }, 0);
25
- };
26
- delegate.throttle = (settings) => {
27
- localSubscriptions.throttleItem(itemName, settings);
28
- };
29
- return delegate;
30
- }
31
- else if (!cachedItems[propName]) {
32
- cachedItems[propName] = withTriggers(localSubscriptions, services[propName], itemName);
33
- }
34
- return cachedItems[propName];
35
- },
36
- set(target, propName, value) {
37
- cachedItems[propName] = value;
38
- return true;
39
- },
40
- ownKeys() {
41
- return [...skippedProps, ...Object.keys(cachedItems)];
42
- },
43
- });
44
- }
45
- exports.withTriggers = withTriggers;
46
- //# sourceMappingURL=local.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/server/local.ts"],"names":[],"mappings":";;;AAUA,SAAgB,YAAY,CAC1B,kBAAsC,EACtC,QAAW,EACX,IAAI,GAAG,EAAE;IAET,MAAM,WAAW,GAAQ,EAAE,CAAA;IAC3B,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;IAE3E,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QACzB,GAAG,CAAC,MAAW,EAAE,QAAgB;YAC/B,sBAAsB;YACtB,IAAI,OAAO,QAAQ,IAAI,QAAQ;gBAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA;YAExD,0BAA0B;YAC1B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA;YAE5F,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;YAExD,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC1C,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAiB,EAAE,EAAE;oBACxC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;gBACpC,CAAC,CAAA;gBAED,QAAQ,CAAC,OAAO,GAAG,CAAC,SAAkC,EAAE,EAAE,YAAsB,EAAE,EAAE;oBAClF,qFAAqF;oBACrF,UAAU,CAAC,GAAG,EAAE;wBACd,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;oBAC5D,CAAC,EAAE,CAAC,CAAC,CAAA;gBACP,CAAC,CAAA;gBAED,QAAQ,CAAC,QAAQ,GAAG,CAAC,QAAmC,EAAE,EAAE;oBAC1D,kBAAkB,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;gBACrD,CAAC,CAAA;gBAED,OAAO,QAAQ,CAAA;YACjB,CAAC;iBAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,WAAW,CAAC,QAAQ,CAAC,GAAG,YAAY,CAClC,kBAAkB,EAClB,QAAQ,CAAC,QAAmB,CAAQ,EACpC,QAAQ,CACT,CAAA;YACH,CAAC;YAED,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC9B,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK;YACzB,WAAW,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAA;YAC7B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO;YACL,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;QACvD,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAvDD,oCAuDC"}
@@ -1,7 +0,0 @@
1
- /** Limited Cookie support for non-browser clients */
2
- export declare class ClientCookies {
3
- private cookies;
4
- updateCookies(setCookies: string[]): void;
5
- getCookieString(): string;
6
- }
7
- export declare function parseCookies(str: string): Record<string, string>;
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseCookies = exports.ClientCookies = void 0;
4
- /** Limited Cookie support for non-browser clients */
5
- class ClientCookies {
6
- constructor() {
7
- this.cookies = {};
8
- }
9
- updateCookies(setCookies) {
10
- setCookies.forEach((c) => {
11
- const [name, value] = c.split(";")[0].split("=");
12
- this.cookies[name] = value;
13
- });
14
- }
15
- getCookieString() {
16
- return Object.entries(this.cookies)
17
- .map(([k, v]) => `${k}=${v}`)
18
- .join("; ");
19
- }
20
- }
21
- exports.ClientCookies = ClientCookies;
22
- function parseCookies(str) {
23
- const rx = /([^;=\s]*)=([^;]*)/g;
24
- const r = {};
25
- for (let m; (m = rx.exec(str));) {
26
- r[m[1]] = decodeURIComponent(m[2]);
27
- }
28
- return r;
29
- }
30
- exports.parseCookies = parseCookies;
31
- //# sourceMappingURL=cookies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../src/utils/cookies.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACrD,MAAa,aAAa;IAA1B;QACU,YAAO,GAA2B,EAAE,CAAA;IAc9C,CAAC;IAZC,aAAa,CAAC,UAAoB;QAChC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;QAC5B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,eAAe;QACb,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5B,IAAI,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;CACF;AAfD,sCAeC;AAED,SAAgB,YAAY,CAAC,GAAW;IACtC,MAAM,EAAE,GAAG,qBAAqB,CAAA;IAChC,MAAM,CAAC,GAA2B,EAAE,CAAA;IAEpC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAI,CAAC;QACjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AARD,oCAQC"}
@@ -1,6 +0,0 @@
1
- export declare enum Environment {
2
- Browser = 0,
3
- Node = 1,
4
- ReactNative = 2
5
- }
6
- export declare const environment: Environment;
package/dist/utils/env.js DELETED
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.environment = exports.Environment = void 0;
4
- var Environment;
5
- (function (Environment) {
6
- Environment[Environment["Browser"] = 0] = "Browser";
7
- Environment[Environment["Node"] = 1] = "Node";
8
- Environment[Environment["ReactNative"] = 2] = "ReactNative";
9
- })(Environment || (exports.Environment = Environment = {}));
10
- exports.environment = getEnvironment();
11
- function getEnvironment() {
12
- if (typeof document !== "undefined") {
13
- return Environment.Browser;
14
- }
15
- else if (typeof navigator !== "undefined" && navigator.product === "ReactNative") {
16
- return Environment.ReactNative;
17
- }
18
- else {
19
- return Environment.Node;
20
- }
21
- }
22
- //# sourceMappingURL=env.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,mDAAO,CAAA;IACP,6CAAI,CAAA;IACJ,2DAAW,CAAA;AACb,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAEY,QAAA,WAAW,GAAG,cAAc,EAAE,CAAA;AAE3C,SAAS,cAAc;IACrB,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,WAAW,CAAC,OAAO,CAAA;IAC5B,CAAC;SAAM,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QACnF,OAAO,WAAW,CAAC,WAAW,CAAA;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,WAAW,CAAC,IAAI,CAAA;IACzB,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function safeStringify(value: any): string;
2
- export declare function safeParseJson(json: string): any;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.safeParseJson = exports.safeStringify = void 0;
7
- const fast_stringify_1 = __importDefault(require("fast-stringify"));
8
- function safeStringify(value) {
9
- // @ts-ignore
10
- return (0, fast_stringify_1.default)(value);
11
- }
12
- exports.safeStringify = safeStringify;
13
- function safeParseJson(json) {
14
- return JSON.parse(json, dateReviver);
15
- }
16
- exports.safeParseJson = safeParseJson;
17
- function dateReviver(key, val) {
18
- if (typeof val == "string") {
19
- if (ISO8601_secs.test(val)) {
20
- return new Date(val);
21
- }
22
- if (ISO8601.test(val)) {
23
- return new Date(val);
24
- }
25
- if (ISO8601_date.test(val)) {
26
- return new Date(val);
27
- }
28
- }
29
- return val;
30
- }
31
- const ISO8601 = /^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d.\d\d\dZ$/;
32
- const ISO8601_secs = /^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\dZ$/;
33
- const ISO8601_date = /^\d\d\d\d-\d\d-\d\d$/;
34
- //# sourceMappingURL=json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAsC;AAEtC,SAAgB,aAAa,CAAC,KAAU;IACtC,aAAa;IACb,OAAO,IAAA,wBAAS,EAAC,KAAK,CAAC,CAAA;AACzB,CAAC;AAHD,sCAGC;AAED,SAAgB,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;AACtC,CAAC;AAFD,sCAEC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,GAAQ;IACxC,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QAED,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,OAAO,GAAG,6CAA6C,CAAA;AAC7D,MAAM,YAAY,GAAG,sCAAsC,CAAA;AAC3D,MAAM,YAAY,GAAG,sBAAsB,CAAA"}
@@ -1,2 +0,0 @@
1
- export type Middleware<Context> = (ctx: Context, next: (...params: unknown[]) => Promise<unknown>, ...params: unknown[]) => Promise<unknown>;
2
- export declare function withMiddlewares<Context>(ctx: Context, middlewares: Middleware<Context>[], final: (...params: unknown[]) => Promise<unknown>, ...params: any): Promise<unknown>;
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withMiddlewares = void 0;
4
- function withMiddlewares(ctx, middlewares, final, ...params) {
5
- return (function (next, ...params) {
6
- let index = -1;
7
- return dispatch(0, ...params);
8
- function dispatch(i, ...p) {
9
- if (i <= index)
10
- return Promise.reject(new Error("next() called multiple times"));
11
- // use previous invocation params
12
- if (!p.length) {
13
- p = params;
14
- }
15
- index = i;
16
- try {
17
- if (i === middlewares.length) {
18
- return Promise.resolve(next(...p));
19
- }
20
- else {
21
- return Promise.resolve(middlewares[i](ctx, dispatch.bind(null, i + 1), ...p));
22
- }
23
- }
24
- catch (err) {
25
- return Promise.reject(err);
26
- }
27
- }
28
- })(final, ...params);
29
- }
30
- exports.withMiddlewares = withMiddlewares;
31
- //# sourceMappingURL=middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/utils/middleware.ts"],"names":[],"mappings":";;;AAMA,SAAgB,eAAe,CAC7B,GAAY,EACZ,WAAkC,EAClC,KAAiD,EACjD,GAAG,MAAW;IAEd,OAAO,CAAC,UAAU,IAAI,EAAE,GAAG,MAAM;QAC/B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAA;QACd,OAAO,QAAQ,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAA;QAE7B,SAAS,QAAQ,CAAC,CAAS,EAAE,GAAG,CAAY;YAC1C,IAAI,CAAC,IAAI,KAAK;gBAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAA;YAEhF,iCAAiC;YACjC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACd,CAAC,GAAG,MAAM,CAAA;YACZ,CAAC;YAED,KAAK,GAAG,CAAC,CAAA;YAET,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;oBAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACpC,CAAC;qBAAM,CAAC;oBACN,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;gBAC/E,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CAAA;AACtB,CAAC;AA/BD,0CA+BC"}
@@ -1,5 +0,0 @@
1
- export declare class PromiseCache {
2
- invoke<T>(cacheKey: unknown, supplier: () => Promise<T>): Promise<T>;
3
- private cache;
4
- }
5
- export declare function adelay(ms: number): Promise<unknown>;
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.adelay = exports.PromiseCache = void 0;
4
- class PromiseCache {
5
- constructor() {
6
- this.cache = {};
7
- }
8
- invoke(cacheKey, supplier) {
9
- const key = JSON.stringify(cacheKey);
10
- if (!this.cache[key]) {
11
- this.cache[key] = supplier()
12
- .then((r) => {
13
- delete this.cache[key];
14
- return r;
15
- })
16
- .catch((e) => {
17
- delete this.cache[key];
18
- throw e;
19
- });
20
- }
21
- return this.cache[key];
22
- }
23
- }
24
- exports.PromiseCache = PromiseCache;
25
- async function adelay(ms) {
26
- return new Promise((r) => setTimeout(r, ms));
27
- }
28
- exports.adelay = adelay;
29
- //# sourceMappingURL=promises.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promises.js","sourceRoot":"","sources":["../../src/utils/promises.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAY;IAAzB;QAmBU,UAAK,GAAkC,EAAE,CAAA;IACnD,CAAC;IAnBC,MAAM,CAAI,QAAiB,EAAE,QAA0B;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAEpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE;iBACzB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACV,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACtB,OAAO,CAAC,CAAA;YACV,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACtB,MAAM,CAAC,CAAA;YACT,CAAC,CAAC,CAAA;QACN,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;CAGF;AApBD,oCAoBC;AAEM,KAAK,UAAU,MAAM,CAAC,EAAU;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAC9C,CAAC;AAFD,wBAEC"}
@@ -1,5 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import * as http from "http";
4
- import * as Stream from "stream";
5
- export declare function decompressRequest(request: http.IncomingMessage): Stream;
@@ -1,48 +0,0 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.decompressRequest = void 0;
27
- const zlib = __importStar(require("zlib"));
28
- const stream_1 = require("stream");
29
- function decompressRequest(request) {
30
- const contentEncoding = (request.headers["content-encoding"] || "").toLowerCase();
31
- if (!["gzip", "deflate", "br"].includes(contentEncoding)) {
32
- return request;
33
- }
34
- const isBrotli = contentEncoding === "br";
35
- const decompress = isBrotli ? zlib.createBrotliDecompress() : zlib.createUnzip();
36
- const stream = new stream_1.PassThrough();
37
- decompress.on("error", (error) => {
38
- // Ignore empty request
39
- if (error.code === "Z_BUF_ERROR") {
40
- stream.end();
41
- return;
42
- }
43
- stream.emit("error", error);
44
- });
45
- return (0, stream_1.pipeline)(request, decompress, stream, () => { });
46
- }
47
- exports.decompressRequest = decompressRequest;
48
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/utils/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA4B;AAC5B,mCAAmF;AAGnF,SAAgB,iBAAiB,CAAC,OAA6B;IAC7D,MAAM,eAAe,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAEjF,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACzD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,KAAK,IAAI,CAAA;IAEzC,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;IAChF,MAAM,MAAM,GAAG,IAAI,oBAAiB,EAAE,CAAA;IAEtC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;QACpC,uBAAuB;QACvB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,EAAE,CAAA;YACZ,OAAM;QACR,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,OAAO,IAAA,iBAAc,EAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;AAC9D,CAAC;AAvBD,8CAuBC"}
@@ -1,4 +0,0 @@
1
- export type ThrottleArgsReducer<D> = (prevValue: D, newValue: D) => D;
2
- export declare function lastValueReducer<D>(prevValue: D, newValue: D): D;
3
- export declare function groupReducer<D>(prevValue: D[], newValue: D[]): D[];
4
- export declare function throttle<D>(callback: (d: D) => void, delay: number, reducer: ThrottleArgsReducer<D>): (d: D) => void;
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.throttle = exports.groupReducer = exports.lastValueReducer = void 0;
4
- function lastValueReducer(prevValue, newValue) {
5
- return newValue;
6
- }
7
- exports.lastValueReducer = lastValueReducer;
8
- function groupReducer(prevValue, newValue) {
9
- if (!Array.isArray(newValue))
10
- throw new Error("groupReducer should only be used with topics that return arrays");
11
- return prevValue ? [...prevValue, ...newValue] : newValue;
12
- }
13
- exports.groupReducer = groupReducer;
14
- function throttle(callback, delay, reducer) {
15
- let timer;
16
- let lastExec = 0;
17
- let reducedArg;
18
- function wrapper(d) {
19
- let self = this;
20
- let elapsed = Date.now() - lastExec;
21
- function exec() {
22
- lastExec = Date.now();
23
- callback.call(self, reducedArg);
24
- reducedArg = undefined;
25
- }
26
- if (timer) {
27
- clearTimeout(timer);
28
- }
29
- reducedArg = reducer(reducedArg, d);
30
- if (elapsed > delay) {
31
- exec();
32
- }
33
- else {
34
- timer = setTimeout(exec, delay - elapsed);
35
- }
36
- }
37
- return wrapper;
38
- }
39
- exports.throttle = throttle;
40
- //# sourceMappingURL=throttle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../src/utils/throttle.ts"],"names":[],"mappings":";;;AAEA,SAAgB,gBAAgB,CAAI,SAAY,EAAE,QAAW;IAC3D,OAAO,QAAQ,CAAA;AACjB,CAAC;AAFD,4CAEC;AAED,SAAgB,YAAY,CAAI,SAAc,EAAE,QAAa;IAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;IAEpF,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;AAC3D,CAAC;AALD,oCAKC;AAED,SAAgB,QAAQ,CACtB,QAAwB,EACxB,KAAa,EACb,OAA+B;IAE/B,IAAI,KAAqB,CAAA;IACzB,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,IAAI,UAAe,CAAA;IAEnB,SAAS,OAAO,CAAY,CAAI;QAC9B,IAAI,IAAI,GAAG,IAAI,CAAA;QACf,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAA;QAEnC,SAAS,IAAI;YACX,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACrB,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;YAC/B,UAAU,GAAG,SAAS,CAAA;QACxB,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;QAED,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;QAEnC,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC;YACpB,IAAI,EAAE,CAAA;QACR,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAlCD,4BAkCC"}
@@ -1 +0,0 @@
1
- export type ExtractPromiseResult<Type> = Type extends Promise<infer X> ? X : never;
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":""}