@based/server 9.2.6 → 10.0.0

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 (83) hide show
  1. package/dist/auth/index.js +1 -1
  2. package/dist/auth/index.js.map +1 -1
  3. package/dist/channel/destroy.js +3 -1
  4. package/dist/channel/destroy.js.map +1 -1
  5. package/dist/channel/start.js +10 -3
  6. package/dist/channel/start.js.map +1 -1
  7. package/dist/channel/subscribe.js +13 -1
  8. package/dist/channel/subscribe.js.map +1 -1
  9. package/dist/channel/types.d.ts +1 -0
  10. package/dist/channel/types.js.map +1 -1
  11. package/dist/channel/unsub.js +24 -3
  12. package/dist/channel/unsub.js.map +1 -1
  13. package/dist/functions/index.d.ts +1 -1
  14. package/dist/functions/index.js +50 -20
  15. package/dist/functions/index.js.map +1 -1
  16. package/dist/incoming/http/fakeWs/function.js +8 -6
  17. package/dist/incoming/http/fakeWs/function.js.map +1 -1
  18. package/dist/incoming/http/fakeWs/handleBinary.js +4 -3
  19. package/dist/incoming/http/fakeWs/handleBinary.js.map +1 -1
  20. package/dist/incoming/http/fakeWs/query.js +6 -5
  21. package/dist/incoming/http/fakeWs/query.js.map +1 -1
  22. package/dist/incoming/http/handleRequest.js.map +1 -1
  23. package/dist/incoming/http/index.js +2 -0
  24. package/dist/incoming/http/index.js.map +1 -1
  25. package/dist/incoming/http/pathMatcher.d.ts +1 -1
  26. package/dist/incoming/http/pathMatcher.js +16 -1
  27. package/dist/incoming/http/pathMatcher.js.map +1 -1
  28. package/dist/incoming/http/payloadParser.d.ts +1 -1
  29. package/dist/incoming/http/payloadParser.js +1 -0
  30. package/dist/incoming/http/payloadParser.js.map +1 -1
  31. package/dist/incoming/http/query.js +3 -2
  32. package/dist/incoming/http/query.js.map +1 -1
  33. package/dist/incoming/upgrade.js +1 -0
  34. package/dist/incoming/upgrade.js.map +1 -1
  35. package/dist/incoming/ws/auth.js +4 -6
  36. package/dist/incoming/ws/auth.js.map +1 -1
  37. package/dist/incoming/ws/channelPublish.js +4 -3
  38. package/dist/incoming/ws/channelPublish.js.map +1 -1
  39. package/dist/incoming/ws/channelSubscribe.js +6 -5
  40. package/dist/incoming/ws/channelSubscribe.js.map +1 -1
  41. package/dist/incoming/ws/function.js +8 -5
  42. package/dist/incoming/ws/function.js.map +1 -1
  43. package/dist/incoming/ws/get.js +8 -7
  44. package/dist/incoming/ws/get.js.map +1 -1
  45. package/dist/incoming/ws/index.d.ts +2 -2
  46. package/dist/incoming/ws/index.js +14 -12
  47. package/dist/incoming/ws/index.js.map +1 -1
  48. package/dist/incoming/ws/query.js +6 -5
  49. package/dist/incoming/ws/query.js.map +1 -1
  50. package/dist/incoming/ws/stream.d.ts +1 -1
  51. package/dist/incoming/ws/stream.js +29 -28
  52. package/dist/incoming/ws/stream.js.map +1 -1
  53. package/dist/protocol.d.ts +25 -14
  54. package/dist/protocol.js +312 -158
  55. package/dist/protocol.js.map +1 -1
  56. package/dist/query/destroy.js +2 -1
  57. package/dist/query/destroy.js.map +1 -1
  58. package/dist/query/send.d.ts +1 -1
  59. package/dist/query/send.js +29 -7
  60. package/dist/query/send.js.map +1 -1
  61. package/dist/query/start/error.js +4 -1
  62. package/dist/query/start/error.js.map +1 -1
  63. package/dist/query/start/update.js +22 -4
  64. package/dist/query/start/update.js.map +1 -1
  65. package/dist/query/subscribe.js +15 -5
  66. package/dist/query/subscribe.js.map +1 -1
  67. package/dist/query/types.d.ts +1 -0
  68. package/dist/query/unsub.js +32 -8
  69. package/dist/query/unsub.js.map +1 -1
  70. package/dist/sendError.js +4 -4
  71. package/dist/sendError.js.map +1 -1
  72. package/dist/sendHttpResponse.js +8 -4
  73. package/dist/sendHttpResponse.js.map +1 -1
  74. package/package.json +2 -2
  75. package/dist/incoming/http/basicFunction copy.d.ts +0 -3
  76. package/dist/incoming/http/basicFunction copy.js +0 -75
  77. package/dist/incoming/http/basicFunction copy.js.map +0 -1
  78. package/dist/incoming/http/function.d.ts +0 -3
  79. package/dist/incoming/http/function.js +0 -75
  80. package/dist/incoming/http/function.js.map +0 -1
  81. package/dist/incoming/http/parsePath.d.ts +0 -22
  82. package/dist/incoming/http/parsePath.js +0 -126
  83. package/dist/incoming/http/parsePath.js.map +0 -1
@@ -1,22 +0,0 @@
1
- /**
2
- * Matches a route with a path, always returning an object with the keys defined in the route.
3
- * If a value isn't found or doesn't pass validation (custom regex), it'll be null.
4
- * For repeatable params with '*', the default value is an empty array.
5
- *
6
- * Rules:
7
- * - Required params: if missing, returns null.
8
- * - Custom regex params: if it doesn't match, returns null.
9
- * - Repeatable params with '+': if missing, returns null; otherwise, returns an array.
10
- * - Repeatable params with '*': if missing, returns an empty array; otherwise, returns an array.
11
- * - Optional params ('?'): if missing, returns null.
12
- * - Malformed parameters: '+' or '*' cannot be combined with '?' in the same parameter, will returns null.
13
- *
14
- * @param route E.g., '/users/:userId(\\d+)?'
15
- * @param path E.g., '/users/123'
16
- * @param sensitive If true, matching is case-sensitive.
17
- * @param strict If true, trailing slashes (and other details) are considered.
18
- * @returns An object with the route keys and their values (never returns null).
19
- */
20
- export declare function parsePath(route: string, path: string, sensitive: boolean, strict: boolean): {
21
- [key: string]: string | string[] | null;
22
- };
@@ -1,126 +0,0 @@
1
- function escapeRegExp(str) {
2
- return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
3
- }
4
- /**
5
- * Compiles the route into a regex and extracts the parameter keys.
6
- *
7
- * @param route The route string, e.g., '/users/:userId(\\d+)?'
8
- * @param strict If true, matching strictly respects slashes (trailing slash matters).
9
- * @param sensitive If true, matching is case-sensitive.
10
- * @returns An object containing the compiled regex and the array of keys.
11
- */
12
- function compileRoute(route, strict, sensitive) {
13
- const keys = [];
14
- let regexStr = '^';
15
- let lastIndex = 0;
16
- const paramRegex = /:([a-zA-Z0-9_]+)(?:\(([^)]+)\))?([+*?])?/g;
17
- let match;
18
- while ((match = paramRegex.exec(route)) !== null) {
19
- const [full, name, customPattern, modifier] = match;
20
- let staticPart = route.slice(lastIndex, match.index);
21
- if ((modifier === '?' || modifier === '*') && match.index + full.length === route.length && staticPart.endsWith('/')) {
22
- staticPart = staticPart.slice(0, -1);
23
- }
24
- regexStr += escapeRegExp(staticPart);
25
- lastIndex = match.index + full.length;
26
- const pattern = '[^/]+';
27
- keys.push({
28
- name,
29
- modifier: modifier || '',
30
- repeat: modifier === '*' || modifier === '+',
31
- customPattern,
32
- });
33
- let prefix = staticPart.endsWith('/') ? '' : '/';
34
- if ((modifier === '?' || modifier === '*') && match.index + full.length === route.length) {
35
- prefix = '/?';
36
- }
37
- if (modifier === '?') {
38
- regexStr += `(?:${prefix}(${pattern}))?`;
39
- }
40
- else if (modifier === '*') {
41
- regexStr += `(?:${prefix}(${pattern}(?:/${pattern})*))?`;
42
- }
43
- else if (modifier === '+') {
44
- regexStr += `${prefix}(${pattern}(?:/${pattern})*)`;
45
- }
46
- else {
47
- regexStr += `${prefix}(${pattern})`;
48
- }
49
- }
50
- regexStr += escapeRegExp(route.slice(lastIndex));
51
- if (!strict) {
52
- if (!regexStr.endsWith('/')) {
53
- regexStr += '/?';
54
- }
55
- else {
56
- regexStr += '?';
57
- }
58
- }
59
- regexStr += '$';
60
- const flags = sensitive ? '' : 'i';
61
- const regex = new RegExp(regexStr, flags);
62
- return { regex, keys };
63
- }
64
- /**
65
- * Matches a route with a path, always returning an object with the keys defined in the route.
66
- * If a value isn't found or doesn't pass validation (custom regex), it'll be null.
67
- * For repeatable params with '*', the default value is an empty array.
68
- *
69
- * Rules:
70
- * - Required params: if missing, returns null.
71
- * - Custom regex params: if it doesn't match, returns null.
72
- * - Repeatable params with '+': if missing, returns null; otherwise, returns an array.
73
- * - Repeatable params with '*': if missing, returns an empty array; otherwise, returns an array.
74
- * - Optional params ('?'): if missing, returns null.
75
- * - Malformed parameters: '+' or '*' cannot be combined with '?' in the same parameter, will returns null.
76
- *
77
- * @param route E.g., '/users/:userId(\\d+)?'
78
- * @param path E.g., '/users/123'
79
- * @param sensitive If true, matching is case-sensitive.
80
- * @param strict If true, trailing slashes (and other details) are considered.
81
- * @returns An object with the route keys and their values (never returns null).
82
- */
83
- export function parsePath(route, path, sensitive, strict) {
84
- const { regex, keys } = compileRoute(route, strict, sensitive);
85
- const m = regex.exec(path);
86
- const params = {};
87
- for (const key of keys) {
88
- if (key.repeat) {
89
- params[key.name] = key.modifier === '*' ? [] : null;
90
- }
91
- else {
92
- params[key.name] = null;
93
- }
94
- }
95
- if (!m) {
96
- return params;
97
- }
98
- for (let i = 0; i < keys.length; i++) {
99
- const key = keys[i];
100
- let value = m[i + 1];
101
- if (value === undefined) {
102
- continue;
103
- }
104
- if (key.repeat) {
105
- const parts = value.split('/');
106
- if (key.customPattern) {
107
- const customRegex = new RegExp('^' + key.customPattern + '$');
108
- params[key.name] = parts.every(p => customRegex.test(p)) ? parts : null;
109
- }
110
- else {
111
- params[key.name] = parts;
112
- }
113
- }
114
- else {
115
- if (key.customPattern) {
116
- const customRegex = new RegExp('^' + key.customPattern + '$');
117
- params[key.name] = customRegex.test(value) ? value : null;
118
- }
119
- else {
120
- params[key.name] = value;
121
- }
122
- }
123
- }
124
- return params;
125
- }
126
- //# sourceMappingURL=parsePath.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parsePath.js","sourceRoot":"","sources":["../../../src/incoming/http/parsePath.ts"],"names":[],"mappings":"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"}