@based/server 6.5.1 → 6.6.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 (79) hide show
  1. package/dist/channel/start.js +29 -1
  2. package/dist/channel/start.js.map +1 -1
  3. package/dist/channel/subscribe.js +3 -0
  4. package/dist/channel/subscribe.js.map +1 -1
  5. package/dist/channel/unsub.js +6 -1
  6. package/dist/channel/unsub.js.map +1 -1
  7. package/dist/incoming/http/index.js +3 -3
  8. package/dist/incoming/http/index.js.map +1 -1
  9. package/dist/incoming/http/query.js +6 -0
  10. package/dist/incoming/http/query.js.map +1 -1
  11. package/dist/incoming/http/streamFunction/multiPart/index.js +5 -17
  12. package/dist/incoming/http/streamFunction/multiPart/index.js.map +1 -1
  13. package/dist/incoming/http/streamFunction/stream/index.js +12 -2
  14. package/dist/incoming/http/streamFunction/stream/index.js.map +1 -1
  15. package/dist/incoming/index.js +1 -0
  16. package/dist/incoming/index.js.map +1 -1
  17. package/dist/incoming/ws/get.js +6 -0
  18. package/dist/incoming/ws/get.js.map +1 -1
  19. package/dist/query/start/index.js +28 -1
  20. package/dist/query/start/index.js.map +1 -1
  21. package/dist/query/subscribe.js +5 -1
  22. package/dist/query/subscribe.js.map +1 -1
  23. package/dist/query/unsub.js +6 -1
  24. package/dist/query/unsub.js.map +1 -1
  25. package/dist/server.d.ts +13 -0
  26. package/dist/server.js +6 -0
  27. package/dist/server.js.map +1 -1
  28. package/package.json +2 -2
  29. package/dist/createSimpleServer.d.ts +0 -34
  30. package/dist/createSimpleServer.js +0 -197
  31. package/dist/createSimpleServer.js.map +0 -1
  32. package/dist/incoming/ws/observable.d.ts +0 -7
  33. package/dist/incoming/ws/observable.js +0 -91
  34. package/dist/incoming/ws/observable.js.map +0 -1
  35. package/dist/ip.d.ts +0 -2
  36. package/dist/ip.js +0 -8
  37. package/dist/ip.js.map +0 -1
  38. package/dist/observable/cleanup.d.ts +0 -2
  39. package/dist/observable/cleanup.js +0 -66
  40. package/dist/observable/cleanup.js.map +0 -1
  41. package/dist/observable/create.d.ts +0 -3
  42. package/dist/observable/create.js +0 -35
  43. package/dist/observable/create.js.map +0 -1
  44. package/dist/observable/destroy.d.ts +0 -4
  45. package/dist/observable/destroy.js +0 -47
  46. package/dist/observable/destroy.js.map +0 -1
  47. package/dist/observable/extendCache.d.ts +0 -2
  48. package/dist/observable/extendCache.js +0 -10
  49. package/dist/observable/extendCache.js.map +0 -1
  50. package/dist/observable/genObservableId.d.ts +0 -1
  51. package/dist/observable/genObservableId.js +0 -12
  52. package/dist/observable/genObservableId.js.map +0 -1
  53. package/dist/observable/get.d.ts +0 -4
  54. package/dist/observable/get.js +0 -15
  55. package/dist/observable/get.js.map +0 -1
  56. package/dist/observable/index.d.ts +0 -10
  57. package/dist/observable/index.js +0 -27
  58. package/dist/observable/index.js.map +0 -1
  59. package/dist/observable/send.d.ts +0 -5
  60. package/dist/observable/send.js +0 -26
  61. package/dist/observable/send.js.map +0 -1
  62. package/dist/observable/start/error.d.ts +0 -3
  63. package/dist/observable/start/error.js +0 -43
  64. package/dist/observable/start/error.js.map +0 -1
  65. package/dist/observable/start/index.d.ts +0 -2
  66. package/dist/observable/start/index.js +0 -56
  67. package/dist/observable/start/index.js.map +0 -1
  68. package/dist/observable/start/update.d.ts +0 -3
  69. package/dist/observable/start/update.js +0 -116
  70. package/dist/observable/start/update.js.map +0 -1
  71. package/dist/observable/subscribe.d.ts +0 -7
  72. package/dist/observable/subscribe.js +0 -47
  73. package/dist/observable/subscribe.js.map +0 -1
  74. package/dist/observable/types.d.ts +0 -25
  75. package/dist/observable/types.js +0 -3
  76. package/dist/observable/types.js.map +0 -1
  77. package/dist/observable/unsub.d.ts +0 -6
  78. package/dist/observable/unsub.js +0 -46
  79. package/dist/observable/unsub.js.map +0 -1
@@ -1,34 +0,0 @@
1
- import { BasedFunctionSpec, BasedQueryFunctionSpec, BasedStreamFunctionSpec, BasedSpec, BasedChannelFunctionSpec } from './functions';
2
- import { BasedQueryFunction, BasedFunction, BasedChannelFunction, BasedStreamFunction } from '@based/functions';
3
- import { BasedServer, ServerOptions } from './server';
4
- export type SimpleServerOptions = {
5
- install?: (opts: {
6
- server: BasedServer;
7
- name: string;
8
- function?: BasedSpec;
9
- }) => Promise<null | BasedSpec>;
10
- uninstall?: (opts: {
11
- server: BasedServer;
12
- name: string;
13
- function: BasedSpec;
14
- }) => Promise<boolean>;
15
- functions?: {
16
- [key: string]: BasedFunction | Partial<BasedFunctionSpec>;
17
- };
18
- streams?: {
19
- [key: string]: BasedStreamFunction | Partial<BasedStreamFunctionSpec>;
20
- };
21
- queryFunctions?: {
22
- [key: string]: BasedQueryFunction | Partial<BasedQueryFunctionSpec>;
23
- };
24
- channels?: {
25
- [key: string]: BasedChannelFunction | Partial<BasedChannelFunctionSpec>;
26
- };
27
- silent?: boolean;
28
- closeAfterIdleTime?: {
29
- channel: number;
30
- query: number;
31
- };
32
- uninstallAfterIdleTime?: number;
33
- } & Omit<ServerOptions, 'functions'>;
34
- export declare function createSimpleServer(props: SimpleServerOptions, sharedSocket?: boolean): Promise<BasedServer>;
@@ -1,197 +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.createSimpleServer = void 0;
7
- const functions_1 = require("./functions");
8
- const picocolors_1 = __importDefault(require("picocolors"));
9
- const server_1 = require("./server");
10
- const utils_1 = require("@saulx/utils");
11
- async function createSimpleServer(props, sharedSocket) {
12
- const { functions, queryFunctions, streams, channels } = props;
13
- const functionStore = {};
14
- for (const name in functions) {
15
- if (functions[name]) {
16
- const fn = functions[name];
17
- if ((0, functions_1.isSpec)(fn)) {
18
- functionStore[name] = {
19
- function: fn.function,
20
- name,
21
- checksum: 1,
22
- maxPayloadSize: 5e4,
23
- rateLimitTokens: 1,
24
- ...fn,
25
- };
26
- }
27
- else if (typeof fn === 'function') {
28
- functionStore[name] = {
29
- function: fn,
30
- name,
31
- checksum: 1,
32
- maxPayloadSize: 5e4,
33
- rateLimitTokens: 1,
34
- };
35
- }
36
- else {
37
- console.error(name, fn, 'Is not a function!');
38
- }
39
- }
40
- }
41
- for (const name in queryFunctions) {
42
- if (queryFunctions[name]) {
43
- const fn = queryFunctions[name];
44
- if ((0, functions_1.isSpec)(fn)) {
45
- functionStore[name] = {
46
- checksum: 1,
47
- query: true,
48
- function: fn.function,
49
- name,
50
- maxPayloadSize: 5000,
51
- rateLimitTokens: 1,
52
- ...fn,
53
- };
54
- }
55
- else if (typeof fn === 'function') {
56
- functionStore[name] = {
57
- checksum: 1,
58
- query: true,
59
- function: fn,
60
- name,
61
- maxPayloadSize: 5000,
62
- rateLimitTokens: 1,
63
- };
64
- }
65
- else {
66
- console.error(name, fn, 'Is not a query function!');
67
- }
68
- }
69
- }
70
- for (const name in streams) {
71
- if (streams[name]) {
72
- const fn = streams[name];
73
- if ((0, functions_1.isSpec)(fn)) {
74
- functionStore[name] = {
75
- checksum: 1,
76
- stream: true,
77
- function: fn.function,
78
- name,
79
- maxPayloadSize: 1e9,
80
- rateLimitTokens: 10,
81
- ...fn,
82
- };
83
- }
84
- else if (typeof fn === 'function') {
85
- functionStore[name] = {
86
- checksum: 1,
87
- stream: true,
88
- function: fn,
89
- name,
90
- maxPayloadSize: 1e9,
91
- rateLimitTokens: 10,
92
- };
93
- }
94
- else {
95
- console.error(name, fn, 'Is not a stream function!');
96
- }
97
- }
98
- }
99
- for (const name in channels) {
100
- if (channels[name]) {
101
- const fn = channels[name];
102
- if ((0, functions_1.isSpec)(fn)) {
103
- functionStore[name] = {
104
- checksum: 1,
105
- channel: true,
106
- function: fn.function,
107
- publish: fn.publish ||
108
- ((based, payload, msg, id) => {
109
- console.warn(' ↓ Publish to channel (no handler defined)', name, payload, msg, id);
110
- }),
111
- name,
112
- maxPayloadSize: 500,
113
- rateLimitTokens: 1,
114
- ...fn,
115
- };
116
- }
117
- else if (typeof fn === 'function') {
118
- functionStore[name] = {
119
- checksum: 1,
120
- channel: true,
121
- publish: (based, payload, msg, id) => {
122
- console.warn(' ↓ Publish to channel (no handler defined)', name, payload, msg, id);
123
- },
124
- function: fn,
125
- name,
126
- maxPayloadSize: 500,
127
- rateLimitTokens: 1,
128
- };
129
- }
130
- else {
131
- console.error(name, fn, 'Is not a channel function!');
132
- }
133
- }
134
- }
135
- const properProps = {
136
- ...props,
137
- functions: {
138
- closeAfterIdleTime: props.closeAfterIdleTime,
139
- uninstallAfterIdleTime: props.uninstallAfterIdleTime || -1,
140
- uninstall: props.uninstall ||
141
- (async () => {
142
- return true;
143
- }),
144
- install: props.install ||
145
- (async ({ name }) => {
146
- if (functionStore[name]) {
147
- return functionStore[name];
148
- }
149
- else {
150
- return null;
151
- }
152
- }),
153
- route: ({ path, name }) => {
154
- // TODO fix typez
155
- let rootFn;
156
- if (path) {
157
- for (const name in functionStore) {
158
- const fnPath = functionStore[name].path;
159
- if (fnPath === path) {
160
- return functionStore[name];
161
- }
162
- if (!rootFn && fnPath === '/') {
163
- rootFn = functionStore[name];
164
- }
165
- }
166
- }
167
- return functionStore[name] || rootFn || null;
168
- },
169
- },
170
- };
171
- if (!props.silent) {
172
- console.info(' ', picocolors_1.default.white('Based-server'), `starting with functions`);
173
- }
174
- let longestName = 0;
175
- for (const name in functionStore) {
176
- if (name.length > longestName) {
177
- longestName = name.length;
178
- }
179
- }
180
- for (const name in functionStore) {
181
- const obs = (0, functions_1.isChannelFunctionSpec)(functionStore[name])
182
- ? '[channel]'
183
- : (0, functions_1.isQueryFunctionSpec)(functionStore[name])
184
- ? '[query]'
185
- : (0, functions_1.isStreamFunctionSpec)(functionStore[name])
186
- ? '[stream]'
187
- : '';
188
- const pub = functionStore[name].public ? 'public' : 'private';
189
- if (!props.silent) {
190
- console.info(' ', picocolors_1.default.white(name), (0, utils_1.padLeft)('', longestName + 2 - name.length, ' '), picocolors_1.default.gray(pub), (0, utils_1.padLeft)('', 8 - pub.length, ' '), picocolors_1.default.green(obs), (0, utils_1.padLeft)('', 14 - obs.length, ' '), functionStore[name].path || '');
191
- }
192
- }
193
- const basedServer = new server_1.BasedServer(properProps);
194
- return props.port ? basedServer.start(props.port, sharedSocket) : basedServer;
195
- }
196
- exports.createSimpleServer = createSimpleServer;
197
- //# sourceMappingURL=createSimpleServer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSimpleServer.js","sourceRoot":"","sources":["../src/createSimpleServer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { WebSocketSession } from '@based/functions';
2
- import { BasedQueryFunctionRoute } from '../../functions';
3
- import { IsAuthorizedHandler } from '../../authorize';
4
- import { BinaryMessageHandler } from './types';
5
- export declare const enableSubscribe: IsAuthorizedHandler<WebSocketSession, BasedQueryFunctionRoute>;
6
- export declare const subscribeMessage: BinaryMessageHandler;
7
- export declare const unsubscribeMessage: BinaryMessageHandler;
@@ -1,91 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unsubscribeMessage = exports.subscribeMessage = exports.enableSubscribe = void 0;
4
- const protocol_1 = require("../../protocol");
5
- const observable_1 = require("../../observable");
6
- const error_1 = require("../../error");
7
- const sendError_1 = require("../../sendError");
8
- const security_1 = require("../../security");
9
- const verifyRoute_1 = require("../../verifyRoute");
10
- const authorize_1 = require("../../authorize");
11
- const enableSubscribe = (route, psec, server, ctx, payload, id, checksum) => {
12
- if ((0, observable_1.hasObs)(server, id)) {
13
- (0, observable_1.subscribeWs)(server, id, checksum, ctx);
14
- return;
15
- }
16
- const session = ctx.session;
17
- if (!session.obs.has(id)) {
18
- return;
19
- }
20
- if (!(0, observable_1.hasObs)(server, id)) {
21
- (0, observable_1.createObs)(server, route.name, id, payload);
22
- }
23
- (0, observable_1.subscribeWs)(server, id, checksum, ctx);
24
- };
25
- exports.enableSubscribe = enableSubscribe;
26
- const isNotAuthorized = (route, server, ctx, payload, id, checksum) => {
27
- const session = ctx.session;
28
- if (!session.unauthorizedObs) {
29
- session.unauthorizedObs = new Set();
30
- }
31
- session.unauthorizedObs.add({
32
- id,
33
- checksum,
34
- name: route.name,
35
- payload,
36
- });
37
- };
38
- const subscribeMessage = (arr, start, len, isDeflate, ctx, server) => {
39
- // | 4 header | 8 id | 8 checksum | 1 name length | * name | * payload |
40
- const nameLen = arr[start + 20];
41
- const id = (0, protocol_1.readUint8)(arr, start + 4, 8);
42
- const checksum = (0, protocol_1.readUint8)(arr, start + 12, 8);
43
- const name = (0, protocol_1.decodeName)(arr, start + 21, start + 21 + nameLen);
44
- if (!name || !id) {
45
- return false;
46
- }
47
- const route = (0, verifyRoute_1.verifyRoute)(server, ctx, 'query', server.functions.route(name), name, id);
48
- // TODO: add strictness setting - if strict return false here
49
- if (route === null) {
50
- return true;
51
- }
52
- if ((0, security_1.rateLimitRequest)(server, ctx, route.rateLimitTokens, server.rateLimit.ws)) {
53
- ctx.session.ws.close();
54
- return false;
55
- }
56
- if (route.maxPayloadSize !== -1 && len > route.maxPayloadSize) {
57
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.PayloadTooLarge, {
58
- route,
59
- observableId: id,
60
- });
61
- return true;
62
- }
63
- const session = ctx.session;
64
- if (session.obs.has(id)) {
65
- // Allready subscribed to this id
66
- return true;
67
- }
68
- const payload = len === nameLen + 21
69
- ? undefined
70
- : (0, protocol_1.parsePayload)((0, protocol_1.decodePayload)(new Uint8Array(arr.slice(start + 21 + nameLen, start + len)), isDeflate));
71
- session.obs.add(id);
72
- (0, authorize_1.authorize)(route, server, ctx, payload, exports.enableSubscribe, id, checksum, false, isNotAuthorized);
73
- return true;
74
- };
75
- exports.subscribeMessage = subscribeMessage;
76
- const unsubscribeMessage = (arr, start, len, isDeflate, ctx, server) => {
77
- // | 4 header | 8 id |
78
- if (!ctx.session) {
79
- return false;
80
- }
81
- const id = (0, protocol_1.readUint8)(arr, start + 4, 8);
82
- if (!id) {
83
- return false;
84
- }
85
- if ((0, observable_1.unsubscribeWs)(server, id, ctx)) {
86
- ctx.session.ws.unsubscribe(String(id));
87
- }
88
- return true;
89
- };
90
- exports.unsubscribeMessage = unsubscribeMessage;
91
- //# sourceMappingURL=observable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observable.js","sourceRoot":"","sources":["../../../src/incoming/ws/observable.ts"],"names":[],"mappings":"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"}
package/dist/ip.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import uws from '@based/uws';
2
- export declare const getIp: (res: uws.HttpResponse) => string;
package/dist/ip.js DELETED
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getIp = void 0;
4
- const getIp = (res) => {
5
- return Buffer.from(res.getRemoteAddressAsText()).toString();
6
- };
7
- exports.getIp = getIp;
8
- //# sourceMappingURL=ip.js.map
package/dist/ip.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"ip.js","sourceRoot":"","sources":["../src/ip.ts"],"names":[],"mappings":";;;AAEO,MAAM,KAAK,GAAG,CAAC,GAAqB,EAAU,EAAE;IACrD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC7D,CAAC,CAAA;AAFY,QAAA,KAAK,SAEjB"}
@@ -1,2 +0,0 @@
1
- import { BasedServer } from '../server';
2
- export declare const cleanUpObs: (server: BasedServer) => void;
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cleanUpObs = void 0;
4
- // TODO: maybe share between obs and channel
5
- const destroyObs = (server, obs) => {
6
- const id = obs.id;
7
- obs.timeTillDestroy = null;
8
- if (!server.activeObservables[obs.name]) {
9
- console.info('Trying to destroy a removed query function');
10
- server.activeObservablesById.delete(id);
11
- return;
12
- }
13
- server.activeObservables[obs.name].delete(id);
14
- if (server.activeObservables[obs.name].size === 0) {
15
- delete server.activeObservables[obs.name];
16
- }
17
- server.activeObservablesById.delete(id);
18
- obs.isDestroyed = true;
19
- if (obs.closeFunction) {
20
- obs.closeFunction();
21
- }
22
- };
23
- const cleanUpObs = (server) => {
24
- if (!server.obsCleanTimeout) {
25
- const cycleTime = Math.max(server.obsCleanupCycle, 500);
26
- server.obsCleanTimeout = setTimeout(() => {
27
- // const d = Date.now()
28
- // let cnt = 0
29
- server.obsCleanTimeout = null;
30
- let keepRunning = false;
31
- let shortestCycleTime;
32
- server.activeObservablesById.forEach((obs) => {
33
- if (obs.timeTillDestroy !== null) {
34
- obs.timeTillDestroy -= cycleTime;
35
- if (obs.timeTillDestroy < 1) {
36
- // cnt++
37
- destroyObs(server, obs);
38
- }
39
- else {
40
- if (shortestCycleTime === undefined ||
41
- obs.timeTillDestroy < shortestCycleTime) {
42
- shortestCycleTime = obs.timeTillDestroy;
43
- }
44
- keepRunning = true;
45
- }
46
- }
47
- });
48
- if (keepRunning) {
49
- server.obsCleanupCycle = shortestCycleTime;
50
- (0, exports.cleanUpObs)(server);
51
- }
52
- // console.info(
53
- // 'Cleanup time',
54
- // cycleTime,
55
- // 'new',
56
- // server.obsCleanupCycle,
57
- // Date.now() - d,
58
- // 'ms',
59
- // cnt,
60
- // 'obs cleaned up'
61
- // )
62
- }, cycleTime);
63
- }
64
- };
65
- exports.cleanUpObs = cleanUpObs;
66
- //# sourceMappingURL=cleanup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/observable/cleanup.ts"],"names":[],"mappings":";;;AAGA,4CAA4C;AAC5C,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,GAAqB,EAAE,EAAE;IAChE,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAA;IACjB,GAAG,CAAC,eAAe,GAAG,IAAI,CAAA;IAC1B,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACvC,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;QAC1D,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACvC,OAAM;KACP;IACD,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC7C,IAAI,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE;QACjD,OAAO,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;KAC1C;IACD,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACvC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAA;IACtB,IAAI,GAAG,CAAC,aAAa,EAAE;QACrB,GAAG,CAAC,aAAa,EAAE,CAAA;KACpB;AACH,CAAC,CAAA;AAEM,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,EAAE;IAChD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;QACvD,MAAM,CAAC,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;YACvC,uBAAuB;YACvB,cAAc;YACd,MAAM,CAAC,eAAe,GAAG,IAAI,CAAA;YAC7B,IAAI,WAAW,GAAG,KAAK,CAAA;YACvB,IAAI,iBAAyB,CAAA;YAC7B,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3C,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,EAAE;oBAChC,GAAG,CAAC,eAAe,IAAI,SAAS,CAAA;oBAChC,IAAI,GAAG,CAAC,eAAe,GAAG,CAAC,EAAE;wBAC3B,QAAQ;wBACR,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;qBACxB;yBAAM;wBACL,IACE,iBAAiB,KAAK,SAAS;4BAC/B,GAAG,CAAC,eAAe,GAAG,iBAAiB,EACvC;4BACA,iBAAiB,GAAG,GAAG,CAAC,eAAe,CAAA;yBACxC;wBACD,WAAW,GAAG,IAAI,CAAA;qBACnB;iBACF;YACH,CAAC,CAAC,CAAA;YACF,IAAI,WAAW,EAAE;gBACf,MAAM,CAAC,eAAe,GAAG,iBAAiB,CAAA;gBAC1C,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAA;aACnB;YACD,gBAAgB;YAChB,oBAAoB;YACpB,eAAe;YACf,WAAW;YACX,4BAA4B;YAC5B,oBAAoB;YACpB,UAAU;YACV,SAAS;YACT,qBAAqB;YACrB,IAAI;QACN,CAAC,EAAE,SAAS,CAAC,CAAA;KACd;AACH,CAAC,CAAA;AA1CY,QAAA,UAAU,cA0CtB"}
@@ -1,3 +0,0 @@
1
- import { BasedServer } from '../server';
2
- import { ActiveObservable } from './types';
3
- export declare const createObs: (server: BasedServer, name: string, id: number, payload: any, noStart?: boolean) => ActiveObservable;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createObs = void 0;
4
- const start_1 = require("./start");
5
- const get_1 = require("./get");
6
- const createObs = (server, name, id, payload, noStart) => {
7
- if ((0, get_1.hasObs)(server, id)) {
8
- const msg = `Allready has observable ${name} ${id}`;
9
- console.error(msg);
10
- throw new Error(msg);
11
- }
12
- const obs = {
13
- payload,
14
- reusedCache: false,
15
- clients: new Set(),
16
- functionObserveClients: new Set(),
17
- id,
18
- name,
19
- isDestroyed: false,
20
- startId: 0,
21
- timeTillDestroy: null,
22
- };
23
- if (!server.activeObservables[name]) {
24
- server.activeObservables[name] = new Map();
25
- }
26
- server.activeObservables[name].set(id, obs);
27
- server.activeObservablesById.set(id, obs);
28
- if (noStart) {
29
- return obs;
30
- }
31
- (0, start_1.start)(server, id);
32
- return obs;
33
- };
34
- exports.createObs = createObs;
35
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/observable/create.ts"],"names":[],"mappings":";;;AAEA,mCAA+B;AAC/B,+BAA8B;AAEvB,MAAM,SAAS,GAAG,CACvB,MAAmB,EACnB,IAAY,EACZ,EAAU,EACV,OAAY,EACZ,OAAiB,EACC,EAAE;IACpB,IAAI,IAAA,YAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACtB,MAAM,GAAG,GAAG,2BAA2B,IAAI,IAAI,EAAE,EAAE,CAAA;QACnD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;KACrB;IAED,MAAM,GAAG,GAAqB;QAC5B,OAAO;QACP,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,sBAAsB,EAAE,IAAI,GAAG,EAAE;QACjC,EAAE;QACF,IAAI;QACJ,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,CAAC;QACV,eAAe,EAAE,IAAI;KACtB,CAAA;IAED,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;QACnC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAA;KAC3C;IAED,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAC3C,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAEzC,IAAI,OAAO,EAAE;QACX,OAAO,GAAG,CAAA;KACX;IAED,IAAA,aAAK,EAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACjB,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAtCY,QAAA,SAAS,aAsCrB"}
@@ -1,4 +0,0 @@
1
- import { BasedServer } from '../server';
2
- import { ActiveObservable } from './types';
3
- export declare const updateDestroyTimer: (server: BasedServer, channel: ActiveObservable) => void;
4
- export declare const destroyObs: (server: BasedServer, id: number) => void;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.destroyObs = exports.updateDestroyTimer = void 0;
4
- const functions_1 = require("../functions");
5
- const cleanup_1 = require("./cleanup");
6
- const updateDestroyTimer = (server, channel) => {
7
- const spec = server.functions.specs[channel.name];
8
- if (!spec || !(0, functions_1.isQueryFunctionSpec)(spec)) {
9
- console.warn('destroyObs - Cannot find obs function spec -', channel.name);
10
- return;
11
- }
12
- const closeAfterIdleTime = spec.closeAfterIdleTime ?? server.functions.config.closeAfterIdleTime.query;
13
- channel.timeTillDestroy = closeAfterIdleTime;
14
- channel.closeAfterIdleTime = closeAfterIdleTime;
15
- const closeTime = Math.round(closeAfterIdleTime / 2);
16
- if (closeTime < server.obsCleanupCycle) {
17
- server.obsCleanupCycle = closeTime;
18
- }
19
- };
20
- exports.updateDestroyTimer = updateDestroyTimer;
21
- // dont use timer just use counter to remove it over time
22
- const destroyObs = (server, id) => {
23
- const obs = server.activeObservablesById.get(id);
24
- if (!obs) {
25
- console.error('destroyObs', id, 'does not exist!');
26
- return;
27
- }
28
- if (obs.isDestroyed) {
29
- console.error('obs allready destroyed', obs.name);
30
- return;
31
- }
32
- if (obs.clients.size ||
33
- obs.functionObserveClients.size ||
34
- obs.onNextData?.size) {
35
- if (obs.timeTillDestroy) {
36
- obs.timeTillDestroy = null;
37
- console.warn(`Obs being destroyed while listeners are present ${obs.name} ${obs.id}`, obs.payload);
38
- }
39
- return;
40
- }
41
- if (obs.timeTillDestroy === null) {
42
- (0, exports.updateDestroyTimer)(server, obs);
43
- (0, cleanup_1.cleanUpObs)(server);
44
- }
45
- };
46
- exports.destroyObs = destroyObs;
47
- //# sourceMappingURL=destroy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../../src/observable/destroy.ts"],"names":[],"mappings":";;;AAAA,4CAAkD;AAElD,uCAAsC;AAG/B,MAAM,kBAAkB,GAAG,CAChC,MAAmB,EACnB,OAAyB,EACzB,EAAE;IACF,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,+BAAmB,EAAC,IAAI,CAAC,EAAE;QACvC,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1E,OAAM;KACP;IACD,MAAM,kBAAkB,GACtB,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAA;IAC7E,OAAO,CAAC,eAAe,GAAG,kBAAkB,CAAA;IAC5C,OAAO,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAA;IAEpD,IAAI,SAAS,GAAG,MAAM,CAAC,eAAe,EAAE;QACtC,MAAM,CAAC,eAAe,GAAG,SAAS,CAAA;KACnC;AACH,CAAC,CAAA;AAlBY,QAAA,kBAAkB,sBAkB9B;AAED,yDAAyD;AAClD,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,EAAU,EAAE,EAAE;IAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEhD,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAA;QAClD,OAAM;KACP;IAED,IAAI,GAAG,CAAC,WAAW,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QACjD,OAAM;KACP;IAED,IACE,GAAG,CAAC,OAAO,CAAC,IAAI;QAChB,GAAG,CAAC,sBAAsB,CAAC,IAAI;QAC/B,GAAG,CAAC,UAAU,EAAE,IAAI,EACpB;QACA,IAAI,GAAG,CAAC,eAAe,EAAE;YACvB,GAAG,CAAC,eAAe,GAAG,IAAI,CAAA;YAC1B,OAAO,CAAC,IAAI,CACV,mDAAmD,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,EACvE,GAAG,CAAC,OAAO,CACZ,CAAA;SACF;QACD,OAAM;KACP;IAED,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,EAAE;QAChC,IAAA,0BAAkB,EAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC/B,IAAA,oBAAU,EAAC,MAAM,CAAC,CAAA;KACnB;AACH,CAAC,CAAA;AAhCY,QAAA,UAAU,cAgCtB"}
@@ -1,2 +0,0 @@
1
- import { ActiveObservable } from './types';
2
- export declare const extendCache: (obs: ActiveObservable) => void;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extendCache = void 0;
4
- const extendCache = (obs) => {
5
- if (obs.timeTillDestroy) {
6
- obs.timeTillDestroy = null;
7
- }
8
- };
9
- exports.extendCache = extendCache;
10
- //# sourceMappingURL=extendCache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extendCache.js","sourceRoot":"","sources":["../../src/observable/extendCache.ts"],"names":[],"mappings":";;;AAEO,MAAM,WAAW,GAAG,CAAC,GAAqB,EAAE,EAAE;IACnD,IAAI,GAAG,CAAC,eAAe,EAAE;QACvB,GAAG,CAAC,eAAe,GAAG,IAAI,CAAA;KAC3B;AACH,CAAC,CAAA;AAJY,QAAA,WAAW,eAIvB"}
@@ -1 +0,0 @@
1
- export declare const genObservableId: (name: string, payload: any) => number;
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.genObservableId = void 0;
4
- const hash_1 = require("@saulx/hash");
5
- const genObservableId = (name, payload) => {
6
- if (payload === undefined) {
7
- return (0, hash_1.hash)(name);
8
- }
9
- return (0, hash_1.hashObjectIgnoreKeyOrder)([name, payload]);
10
- };
11
- exports.genObservableId = genObservableId;
12
- //# sourceMappingURL=genObservableId.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"genObservableId.js","sourceRoot":"","sources":["../../src/observable/genObservableId.ts"],"names":[],"mappings":";;;AAAA,sCAA4D;AAErD,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,OAAY,EAAU,EAAE;IACpE,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,CAAA;KAClB;IACD,OAAO,IAAA,+BAAwB,EAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;AAClD,CAAC,CAAA;AALY,QAAA,eAAe,mBAK3B"}
@@ -1,4 +0,0 @@
1
- import { ActiveObservable } from './types';
2
- import { BasedServer } from '../server';
3
- export declare const getObsAndStopRemove: (server: BasedServer, id: number) => ActiveObservable;
4
- export declare const hasObs: (server: BasedServer, id: number) => Boolean;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasObs = exports.getObsAndStopRemove = void 0;
4
- const extendCache_1 = require("./extendCache");
5
- const getObsAndStopRemove = (server, id) => {
6
- const obs = server.activeObservablesById.get(id);
7
- (0, extendCache_1.extendCache)(obs);
8
- return obs;
9
- };
10
- exports.getObsAndStopRemove = getObsAndStopRemove;
11
- const hasObs = (server, id) => {
12
- return server.activeObservablesById.has(id);
13
- };
14
- exports.hasObs = hasObs;
15
- //# sourceMappingURL=get.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/observable/get.ts"],"names":[],"mappings":";;;AAEA,+CAA2C;AAEpC,MAAM,mBAAmB,GAAG,CACjC,MAAmB,EACnB,EAAU,EACQ,EAAE;IACpB,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAChD,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAA;IAChB,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAPY,QAAA,mBAAmB,uBAO/B;AAEM,MAAM,MAAM,GAAG,CAAC,MAAmB,EAAE,EAAU,EAAW,EAAE;IACjE,OAAO,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAC7C,CAAC,CAAA;AAFY,QAAA,MAAM,UAElB"}
@@ -1,10 +0,0 @@
1
- export * from './subscribe';
2
- export * from './unsub';
3
- export * from './destroy';
4
- export * from './create';
5
- export * from './extendCache';
6
- export * from './start';
7
- export * from './send';
8
- export * from './get';
9
- export * from './types';
10
- export * from './genObservableId';