@supalive/core 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -2
- package/dist/bytes-AuEkyxeU.js +19 -0
- package/dist/bytes-AuEkyxeU.js.map +1 -0
- package/dist/codec-BHAmGEIQ.js +62 -0
- package/dist/codec-BHAmGEIQ.js.map +1 -0
- package/dist/helper-CiacMqje.d.ts +14 -0
- package/dist/helper-CiacMqje.d.ts.map +1 -0
- package/dist/helper-wGbzz6zo.js +42 -0
- package/dist/helper-wGbzz6zo.js.map +1 -0
- package/dist/index-CaWMDqq0.d.ts +1754 -0
- package/dist/index-CaWMDqq0.d.ts.map +1 -0
- package/dist/mysql-Cxd4Uq5p.d.ts +104 -0
- package/dist/mysql-Cxd4Uq5p.d.ts.map +1 -0
- package/dist/mysql-bvnjYWvZ.js +570 -0
- package/dist/mysql-bvnjYWvZ.js.map +1 -0
- package/dist/overlap-checker-Ct_HP_iB.js +187 -0
- package/dist/overlap-checker-Ct_HP_iB.js.map +1 -0
- package/dist/postgres-B8u1YN8X.js +824 -0
- package/dist/postgres-B8u1YN8X.js.map +1 -0
- package/dist/postgres-Ck-xt72U.d.ts +108 -0
- package/dist/postgres-Ck-xt72U.d.ts.map +1 -0
- package/dist/procedure-DX87tyef.js +124 -0
- package/dist/procedure-DX87tyef.js.map +1 -0
- package/dist/query-Bh0RNxDz.js +673 -0
- package/dist/query-Bh0RNxDz.js.map +1 -0
- package/dist/realtime_db-DOCgqbwi.js +247 -0
- package/dist/realtime_db-DOCgqbwi.js.map +1 -0
- package/dist/router-DlTYWpop.js +81 -0
- package/dist/router-DlTYWpop.js.map +1 -0
- package/dist/schema-Dd7u0A1L.js +109 -0
- package/dist/schema-Dd7u0A1L.js.map +1 -0
- package/dist/src/client/index.d.ts +2 -17
- package/dist/src/client/index.js +1152 -18
- package/dist/src/client/index.js.map +1 -1
- package/dist/src/exports/mysql.d.ts +2 -2
- package/dist/src/exports/mysql.js +2 -2
- package/dist/src/exports/postgres.d.ts +2 -2
- package/dist/src/exports/postgres.js +2 -2
- package/dist/src/exports/procedure.d.ts +3 -5
- package/dist/src/exports/procedure.js +6 -5
- package/dist/src/exports/schema-sql.d.ts +18 -0
- package/dist/src/exports/schema-sql.d.ts.map +1 -0
- package/dist/src/exports/schema-sql.js +161 -0
- package/dist/src/exports/schema-sql.js.map +1 -0
- package/dist/src/exports/server.d.ts +368 -2
- package/dist/src/exports/server.d.ts.map +1 -1
- package/dist/src/exports/server.js +1346 -2
- package/dist/src/exports/server.js.map +1 -1
- package/dist/src/exports/subscription-manager-worker-entry.d.ts +1 -0
- package/dist/src/exports/subscription-manager-worker-entry.js +115 -0
- package/dist/src/exports/subscription-manager-worker-entry.js.map +1 -0
- package/dist/src/exports/types.d.ts +4 -6
- package/dist/src/exports/types.js +5 -6
- package/dist/subscription-worker-pahX0zxg.js +511 -0
- package/dist/subscription-worker-pahX0zxg.js.map +1 -0
- package/dist/types_client_rpc-CIsjQQGG.js +105 -0
- package/dist/types_client_rpc-CIsjQQGG.js.map +1 -0
- package/dist/types_db-DXj_l9n-.js +168 -0
- package/dist/types_db-DXj_l9n-.js.map +1 -0
- package/dist/types_server-Dk6o_B7N.js +24 -0
- package/dist/types_server-Dk6o_B7N.js.map +1 -0
- package/dist/types_server-TFo6SWDH.d.ts +216 -0
- package/dist/types_server-TFo6SWDH.d.ts.map +1 -0
- package/package.json +7 -3
- package/dist/src/client/caller_client.d.ts +0 -42
- package/dist/src/client/caller_client.d.ts.map +0 -1
- package/dist/src/client/caller_client.js +0 -77
- package/dist/src/client/caller_client.js.map +0 -1
- package/dist/src/client/client.d.ts +0 -149
- package/dist/src/client/client.d.ts.map +0 -1
- package/dist/src/client/client.js +0 -308
- package/dist/src/client/client.js.map +0 -1
- package/dist/src/client/index.d.ts.map +0 -1
- package/dist/src/client/sub_key.d.ts +0 -20
- package/dist/src/client/sub_key.d.ts.map +0 -1
- package/dist/src/client/sub_key.js +0 -37
- package/dist/src/client/sub_key.js.map +0 -1
- package/dist/src/client/ws_client_manager.d.ts +0 -268
- package/dist/src/client/ws_client_manager.d.ts.map +0 -1
- package/dist/src/client/ws_client_manager.js +0 -1013
- package/dist/src/client/ws_client_manager.js.map +0 -1
- package/dist/src/config.d.ts +0 -117
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js +0 -2
- package/dist/src/config.js.map +0 -1
- package/dist/src/db/bytes.d.ts +0 -4
- package/dist/src/db/bytes.d.ts.map +0 -1
- package/dist/src/db/bytes.js +0 -24
- package/dist/src/db/bytes.js.map +0 -1
- package/dist/src/db/cache.d.ts +0 -30
- package/dist/src/db/cache.d.ts.map +0 -1
- package/dist/src/db/cache.js +0 -153
- package/dist/src/db/cache.js.map +0 -1
- package/dist/src/db/codec.d.ts +0 -10
- package/dist/src/db/codec.d.ts.map +0 -1
- package/dist/src/db/codec.js +0 -73
- package/dist/src/db/codec.js.map +0 -1
- package/dist/src/db/context.d.ts +0 -28
- package/dist/src/db/context.d.ts.map +0 -1
- package/dist/src/db/context.js +0 -147
- package/dist/src/db/context.js.map +0 -1
- package/dist/src/db/db.d.ts +0 -154
- package/dist/src/db/db.d.ts.map +0 -1
- package/dist/src/db/db.js +0 -23
- package/dist/src/db/db.js.map +0 -1
- package/dist/src/db/mysql.d.ts +0 -120
- package/dist/src/db/mysql.d.ts.map +0 -1
- package/dist/src/db/mysql.js +0 -708
- package/dist/src/db/mysql.js.map +0 -1
- package/dist/src/db/postgres.d.ts +0 -116
- package/dist/src/db/postgres.d.ts.map +0 -1
- package/dist/src/db/postgres.js +0 -998
- package/dist/src/db/postgres.js.map +0 -1
- package/dist/src/db/query.d.ts +0 -174
- package/dist/src/db/query.d.ts.map +0 -1
- package/dist/src/db/query.js +0 -790
- package/dist/src/db/query.js.map +0 -1
- package/dist/src/db/query_definition.d.ts +0 -54
- package/dist/src/db/query_definition.d.ts.map +0 -1
- package/dist/src/db/query_definition.js +0 -47
- package/dist/src/db/query_definition.js.map +0 -1
- package/dist/src/db/realtime_db.d.ts +0 -19
- package/dist/src/db/realtime_db.d.ts.map +0 -1
- package/dist/src/db/realtime_db.js +0 -98
- package/dist/src/db/realtime_db.js.map +0 -1
- package/dist/src/db/schema.d.ts +0 -110
- package/dist/src/db/schema.d.ts.map +0 -1
- package/dist/src/db/schema.js +0 -47
- package/dist/src/db/schema.js.map +0 -1
- package/dist/src/db/types_client_rpc.d.ts +0 -157
- package/dist/src/db/types_client_rpc.d.ts.map +0 -1
- package/dist/src/db/types_client_rpc.js +0 -106
- package/dist/src/db/types_client_rpc.js.map +0 -1
- package/dist/src/db/types_db.d.ts +0 -236
- package/dist/src/db/types_db.d.ts.map +0 -1
- package/dist/src/db/types_db.js +0 -188
- package/dist/src/db/types_db.js.map +0 -1
- package/dist/src/exports/mysql.d.ts.map +0 -1
- package/dist/src/exports/mysql.js.map +0 -1
- package/dist/src/exports/postgres.d.ts.map +0 -1
- package/dist/src/exports/postgres.js.map +0 -1
- package/dist/src/exports/procedure.d.ts.map +0 -1
- package/dist/src/exports/procedure.js.map +0 -1
- package/dist/src/exports/types.d.ts.map +0 -1
- package/dist/src/exports/types.js.map +0 -1
- package/dist/src/helper.d.ts +0 -11
- package/dist/src/helper.d.ts.map +0 -1
- package/dist/src/helper.js +0 -45
- package/dist/src/helper.js.map +0 -1
- package/dist/src/logger.d.ts +0 -7
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js +0 -47
- package/dist/src/logger.js.map +0 -1
- package/dist/src/router/index.d.ts +0 -4
- package/dist/src/router/index.d.ts.map +0 -1
- package/dist/src/router/index.js +0 -4
- package/dist/src/router/index.js.map +0 -1
- package/dist/src/router/procedure.d.ts +0 -204
- package/dist/src/router/procedure.d.ts.map +0 -1
- package/dist/src/router/procedure.js +0 -122
- package/dist/src/router/procedure.js.map +0 -1
- package/dist/src/router/router.d.ts +0 -88
- package/dist/src/router/router.d.ts.map +0 -1
- package/dist/src/router/router.js +0 -88
- package/dist/src/router/router.js.map +0 -1
- package/dist/src/server/hash.d.ts +0 -12
- package/dist/src/server/hash.d.ts.map +0 -1
- package/dist/src/server/hash.js +0 -20
- package/dist/src/server/hash.js.map +0 -1
- package/dist/src/server/hash.test.d.ts +0 -2
- package/dist/src/server/hash.test.d.ts.map +0 -1
- package/dist/src/server/hash.test.js +0 -43
- package/dist/src/server/hash.test.js.map +0 -1
- package/dist/src/server/index.d.ts +0 -9
- package/dist/src/server/index.d.ts.map +0 -1
- package/dist/src/server/index.js +0 -8
- package/dist/src/server/index.js.map +0 -1
- package/dist/src/server/overlap-checker.d.ts +0 -18
- package/dist/src/server/overlap-checker.d.ts.map +0 -1
- package/dist/src/server/overlap-checker.js +0 -247
- package/dist/src/server/overlap-checker.js.map +0 -1
- package/dist/src/server/sub_hash.d.ts +0 -23
- package/dist/src/server/sub_hash.d.ts.map +0 -1
- package/dist/src/server/sub_hash.js +0 -38
- package/dist/src/server/sub_hash.js.map +0 -1
- package/dist/src/server/subscription-manager-client.d.ts +0 -120
- package/dist/src/server/subscription-manager-client.d.ts.map +0 -1
- package/dist/src/server/subscription-manager-client.js +0 -207
- package/dist/src/server/subscription-manager-client.js.map +0 -1
- package/dist/src/server/subscription-manager-types.d.ts +0 -168
- package/dist/src/server/subscription-manager-types.d.ts.map +0 -1
- package/dist/src/server/subscription-manager-types.js +0 -94
- package/dist/src/server/subscription-manager-types.js.map +0 -1
- package/dist/src/server/subscription-manager-worker-entry.d.ts +0 -2
- package/dist/src/server/subscription-manager-worker-entry.d.ts.map +0 -1
- package/dist/src/server/subscription-manager-worker-entry.js +0 -127
- package/dist/src/server/subscription-manager-worker-entry.js.map +0 -1
- package/dist/src/server/subscription-manager-worker-protocol.d.ts +0 -40
- package/dist/src/server/subscription-manager-worker-protocol.d.ts.map +0 -1
- package/dist/src/server/subscription-manager-worker-protocol.js +0 -20
- package/dist/src/server/subscription-manager-worker-protocol.js.map +0 -1
- package/dist/src/server/subscription-manager.d.ts +0 -32
- package/dist/src/server/subscription-manager.d.ts.map +0 -1
- package/dist/src/server/subscription-manager.js +0 -249
- package/dist/src/server/subscription-manager.js.map +0 -1
- package/dist/src/server/subscription-manager.test.d.ts +0 -2
- package/dist/src/server/subscription-manager.test.d.ts.map +0 -1
- package/dist/src/server/subscription-manager.test.js +0 -610
- package/dist/src/server/subscription-manager.test.js.map +0 -1
- package/dist/src/server/subscription-worker.d.ts +0 -32
- package/dist/src/server/subscription-worker.d.ts.map +0 -1
- package/dist/src/server/subscription-worker.js +0 -190
- package/dist/src/server/subscription-worker.js.map +0 -1
- package/dist/src/server/supalive-server.d.ts +0 -158
- package/dist/src/server/supalive-server.d.ts.map +0 -1
- package/dist/src/server/supalive-server.js +0 -1048
- package/dist/src/server/supalive-server.js.map +0 -1
- package/dist/src/server/types_server.d.ts +0 -96
- package/dist/src/server/types_server.d.ts.map +0 -1
- package/dist/src/server/types_server.js +0 -36
- package/dist/src/server/types_server.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-manager-client.js","sourceRoot":"","sources":["../../../src/server/subscription-manager-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import z from "zod";
|
|
2
|
-
import { RawReadEntry, ReadEntry } from "../db/types_db";
|
|
3
|
-
export declare const RegisterSubscriptionParamsSchema: z.ZodObject<{
|
|
4
|
-
subId: z.ZodString;
|
|
5
|
-
cacheKey: z.ZodString;
|
|
6
|
-
queryName: z.ZodString;
|
|
7
|
-
args: z.ZodUnknown;
|
|
8
|
-
queryIdentity: z.ZodString;
|
|
9
|
-
instanceName: z.ZodString;
|
|
10
|
-
lastSnapshotTs: z.ZodPipe<z.ZodString, z.ZodTransform<bigint, string>>;
|
|
11
|
-
}, z.core.$strip>;
|
|
12
|
-
export type RegisterSubscriptionParams = z.infer<typeof RegisterSubscriptionParamsSchema>;
|
|
13
|
-
export declare const RegisterSubscriptionResultSchema: z.ZodObject<{
|
|
14
|
-
cacheKey: z.ZodString;
|
|
15
|
-
recompute: z.ZodBoolean;
|
|
16
|
-
readSet: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
17
|
-
kind: z.ZodLiteral<"point">;
|
|
18
|
-
table: z.ZodString;
|
|
19
|
-
id: z.ZodString;
|
|
20
|
-
tableId: z.ZodPipe<z.ZodAny, z.ZodTransform<Uint8Array<ArrayBufferLike>, any>>;
|
|
21
|
-
expectedCommitTs: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<bigint, string>>>>;
|
|
22
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
23
|
-
kind: z.ZodLiteral<"range">;
|
|
24
|
-
table: z.ZodString;
|
|
25
|
-
tableId: z.ZodPipe<z.ZodAny, z.ZodTransform<Uint8Array<ArrayBufferLike>, any>>;
|
|
26
|
-
predicate: z.ZodType<import("../client").Predicate, unknown, z.core.$ZodTypeInternals<import("../client").Predicate, unknown>>;
|
|
27
|
-
columns: z.ZodArray<z.ZodString>;
|
|
28
|
-
orderBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
29
|
-
limit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
30
|
-
offset: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
31
|
-
}, z.core.$strip>]>>;
|
|
32
|
-
}, z.core.$strip>;
|
|
33
|
-
export type RegisterSubscriptionResult = z.infer<typeof RegisterSubscriptionResultSchema>;
|
|
34
|
-
export declare const RegisterSubscriptionBatchParamsSchema: z.ZodArray<z.ZodObject<{
|
|
35
|
-
subId: z.ZodString;
|
|
36
|
-
cacheKey: z.ZodString;
|
|
37
|
-
queryName: z.ZodString;
|
|
38
|
-
args: z.ZodUnknown;
|
|
39
|
-
queryIdentity: z.ZodString;
|
|
40
|
-
instanceName: z.ZodString;
|
|
41
|
-
lastSnapshotTs: z.ZodPipe<z.ZodString, z.ZodTransform<bigint, string>>;
|
|
42
|
-
}, z.core.$strip>>;
|
|
43
|
-
export type RegisterSubscriptionBatchParams = z.infer<typeof RegisterSubscriptionBatchParamsSchema>;
|
|
44
|
-
export declare const RegisterSubscriptionBatchResultSchema: z.ZodArray<z.ZodObject<{
|
|
45
|
-
cacheKey: z.ZodString;
|
|
46
|
-
recompute: z.ZodBoolean;
|
|
47
|
-
readSet: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
48
|
-
kind: z.ZodLiteral<"point">;
|
|
49
|
-
table: z.ZodString;
|
|
50
|
-
id: z.ZodString;
|
|
51
|
-
tableId: z.ZodPipe<z.ZodAny, z.ZodTransform<Uint8Array<ArrayBufferLike>, any>>;
|
|
52
|
-
expectedCommitTs: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<bigint, string>>>>;
|
|
53
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
54
|
-
kind: z.ZodLiteral<"range">;
|
|
55
|
-
table: z.ZodString;
|
|
56
|
-
tableId: z.ZodPipe<z.ZodAny, z.ZodTransform<Uint8Array<ArrayBufferLike>, any>>;
|
|
57
|
-
predicate: z.ZodType<import("../client").Predicate, unknown, z.core.$ZodTypeInternals<import("../client").Predicate, unknown>>;
|
|
58
|
-
columns: z.ZodArray<z.ZodString>;
|
|
59
|
-
orderBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
60
|
-
limit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
61
|
-
offset: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
62
|
-
}, z.core.$strip>]>>;
|
|
63
|
-
}, z.core.$strip>>;
|
|
64
|
-
export type RegisterSubscriptionBatchResult = z.infer<typeof RegisterSubscriptionBatchResultSchema>;
|
|
65
|
-
export declare const UpdateSubscriptionReadSetParamsSchema: z.ZodObject<{
|
|
66
|
-
cacheKey: z.ZodString;
|
|
67
|
-
subId: z.ZodString;
|
|
68
|
-
instanceName: z.ZodString;
|
|
69
|
-
lastSnapshotTs: z.ZodPipe<z.ZodString, z.ZodTransform<bigint, string>>;
|
|
70
|
-
readSet: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
71
|
-
kind: z.ZodLiteral<"point">;
|
|
72
|
-
table: z.ZodString;
|
|
73
|
-
id: z.ZodString;
|
|
74
|
-
tableId: z.ZodPipe<z.ZodAny, z.ZodTransform<Uint8Array<ArrayBufferLike>, any>>;
|
|
75
|
-
expectedCommitTs: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<bigint, string>>>>;
|
|
76
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
77
|
-
kind: z.ZodLiteral<"range">;
|
|
78
|
-
table: z.ZodString;
|
|
79
|
-
tableId: z.ZodPipe<z.ZodAny, z.ZodTransform<Uint8Array<ArrayBufferLike>, any>>;
|
|
80
|
-
predicate: z.ZodType<import("../client").Predicate, unknown, z.core.$ZodTypeInternals<import("../client").Predicate, unknown>>;
|
|
81
|
-
columns: z.ZodArray<z.ZodString>;
|
|
82
|
-
orderBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
83
|
-
limit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
84
|
-
offset: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
85
|
-
}, z.core.$strip>]>>;
|
|
86
|
-
}, z.core.$strip>;
|
|
87
|
-
export type UpdateSubscriptionReadSetParams = z.infer<typeof UpdateSubscriptionReadSetParamsSchema>;
|
|
88
|
-
/**
|
|
89
|
-
* `tracked: false` means the sub-manager has no record of this subId (e.g.
|
|
90
|
-
* a restart wiped state and the caller hasn't re-registered yet). The app
|
|
91
|
-
* server should treat this as a signal to register the sub before retrying.
|
|
92
|
-
*/
|
|
93
|
-
export declare const UpdateSubscriptionReadSetResultSchema: z.ZodObject<{
|
|
94
|
-
tracked: z.ZodBoolean;
|
|
95
|
-
}, z.core.$strip>;
|
|
96
|
-
export type UpdateSubscriptionReadSetResult = z.infer<typeof UpdateSubscriptionReadSetResultSchema>;
|
|
97
|
-
export declare const UnregisterSubscriptionParamsSchema: z.ZodObject<{
|
|
98
|
-
subId: z.ZodString;
|
|
99
|
-
instanceName: z.ZodString;
|
|
100
|
-
}, z.core.$strip>;
|
|
101
|
-
export type UnregisterSubscriptionParams = z.infer<typeof UnregisterSubscriptionParamsSchema>;
|
|
102
|
-
export declare const UnregisterSubscriptionsParamsSchema: z.ZodArray<z.ZodObject<{
|
|
103
|
-
subId: z.ZodString;
|
|
104
|
-
instanceName: z.ZodString;
|
|
105
|
-
}, z.core.$strip>>;
|
|
106
|
-
export type UnregisterSubscriptionsParams = z.infer<typeof UnregisterSubscriptionsParamsSchema>;
|
|
107
|
-
export declare const UnregisterSubscriptionResultSchema: z.ZodObject<{
|
|
108
|
-
ok: z.ZodBoolean;
|
|
109
|
-
}, z.core.$strip>;
|
|
110
|
-
export type UnregisterSubscriptionResult = z.infer<typeof UnregisterSubscriptionResultSchema>;
|
|
111
|
-
export declare const UnregisterSubscriptionsResultSchema: z.ZodArray<z.ZodObject<{
|
|
112
|
-
ok: z.ZodBoolean;
|
|
113
|
-
}, z.core.$strip>>;
|
|
114
|
-
export type UnregisterSubscriptionsResult = z.infer<typeof UnregisterSubscriptionsResultSchema>;
|
|
115
|
-
export declare const InvalidateWritesetParamsSchema: z.ZodObject<{
|
|
116
|
-
writeSet: z.ZodArray<z.ZodObject<{
|
|
117
|
-
table: z.ZodString;
|
|
118
|
-
tableId: z.ZodPipe<z.ZodAny, z.ZodTransform<Uint8Array<ArrayBufferLike>, any>>;
|
|
119
|
-
id: z.ZodString;
|
|
120
|
-
op: z.ZodEnum<{
|
|
121
|
-
insert: "insert";
|
|
122
|
-
update: "update";
|
|
123
|
-
delete: "delete";
|
|
124
|
-
}>;
|
|
125
|
-
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
126
|
-
prevData: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
127
|
-
expectedCommitTs: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<bigint, string>>>>;
|
|
128
|
-
}, z.core.$strip>>;
|
|
129
|
-
}, z.core.$strip>;
|
|
130
|
-
export type InvalidateWritesetParams = z.infer<typeof InvalidateWritesetParamsSchema>;
|
|
131
|
-
export declare const AffectedSubscriptionSchema: z.ZodObject<{
|
|
132
|
-
subId: z.ZodString;
|
|
133
|
-
queryName: z.ZodString;
|
|
134
|
-
args: z.ZodUnknown;
|
|
135
|
-
cacheKey: z.ZodString;
|
|
136
|
-
notifyInstances: z.ZodArray<z.ZodString>;
|
|
137
|
-
}, z.core.$strip>;
|
|
138
|
-
export type AffectedSubscription = z.infer<typeof AffectedSubscriptionSchema>;
|
|
139
|
-
export declare const InvalidateWritesetResultSchema: z.ZodObject<{
|
|
140
|
-
affected: z.ZodArray<z.ZodObject<{
|
|
141
|
-
subId: z.ZodString;
|
|
142
|
-
queryName: z.ZodString;
|
|
143
|
-
args: z.ZodUnknown;
|
|
144
|
-
cacheKey: z.ZodString;
|
|
145
|
-
notifyInstances: z.ZodArray<z.ZodString>;
|
|
146
|
-
}, z.core.$strip>>;
|
|
147
|
-
}, z.core.$strip>;
|
|
148
|
-
export type InvalidateWritesetResult = z.infer<typeof InvalidateWritesetResultSchema>;
|
|
149
|
-
export declare const RegistrationRecordSchema: z.ZodObject<{
|
|
150
|
-
queryName: z.ZodString;
|
|
151
|
-
args: z.ZodUnknown;
|
|
152
|
-
queryIdentity: z.ZodString;
|
|
153
|
-
cacheKey: z.ZodString;
|
|
154
|
-
}, z.core.$strip>;
|
|
155
|
-
export type RegistrationRecord = z.infer<typeof RegistrationRecordSchema>;
|
|
156
|
-
export interface TrackedSubscription {
|
|
157
|
-
subId: string;
|
|
158
|
-
queryName: string;
|
|
159
|
-
args: unknown;
|
|
160
|
-
cacheKey: string;
|
|
161
|
-
lastSnapshotTs: bigint;
|
|
162
|
-
readSet: ReadEntry[];
|
|
163
|
-
rawReadSet: RawReadEntry[];
|
|
164
|
-
/** All app server instances that currently hold this subscription. */
|
|
165
|
-
instances: Set<string>;
|
|
166
|
-
timeout: NodeJS.Timeout | null;
|
|
167
|
-
}
|
|
168
|
-
//# sourceMappingURL=subscription-manager-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-manager-types.d.ts","sourceRoot":"","sources":["../../../src/server/subscription-manager-types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAgB,YAAY,EAAE,SAAS,EAAqC,MAAM,gBAAgB,CAAC;AAY1G,eAAO,MAAM,gCAAgC;;;;;;;;iBAoB3C,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;iBAI3C,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,qCAAqC;;;;;;;;kBAA4C,CAAC;AAC/F,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;kBAA4C,CAAC;AAC/F,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;iBAMhD,CAAC;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG;;;;GAIG;AACH,eAAO,MAAM,qCAAqC;;iBAEhD,CAAC;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG,eAAO,MAAM,kCAAkC;;;iBAG7C,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,mCAAmC;;;kBAA8C,CAAC;AAC/F,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,kCAAkC;;iBAAgC,CAAC;AAChF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,mCAAmC;;kBAAyC,CAAC;AAC1F,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;iBAEzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,0BAA0B;;;;;;iBAarC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,8BAA8B;;;;;;;;iBAEzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAStF,eAAO,MAAM,wBAAwB;;;;;iBAKnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,sEAAsE;IACtE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;CAClC"}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import z from "zod";
|
|
2
|
-
import { BigIntSchema, ReadEntrySchema, WriteEntrySchema } from "../db/types_db";
|
|
3
|
-
// ─── RPC Schemas ──────────────────────────────────────────────────────────────
|
|
4
|
-
//
|
|
5
|
-
// The wire protocol intentionally has NO `_clientVersion` / `_resync` /
|
|
6
|
-
// `serverVersion` fields. Ordering of concurrent `updateSubscriptionReadSet`
|
|
7
|
-
// calls is enforced by `lastSnapshotTs` (which is monotonic — it comes from
|
|
8
|
-
// `Database.getLatestSnapshotTimestamp()`). Recovery after a sub-manager
|
|
9
|
-
// restart is driven by the app server iterating its own
|
|
10
|
-
// `serverSubscriptions` map and re-registering each one using params
|
|
11
|
-
// persisted in Redis under `sl:reg:<subId>`.
|
|
12
|
-
export const RegisterSubscriptionParamsSchema = z.object({
|
|
13
|
-
/**
|
|
14
|
-
* Caller-computed FNV-1a routing key + identity for this subscription.
|
|
15
|
-
* The sub-manager trusts these values rather than re-deriving them from
|
|
16
|
-
* (queryName, args, queryIdentity); this avoids one stringify+SHA1 per
|
|
17
|
-
* register RPC. Trust is fine: the sub-manager RPC channel is fully
|
|
18
|
-
* internal.
|
|
19
|
-
*/
|
|
20
|
-
subId: z.string(),
|
|
21
|
-
cacheKey: z.string(),
|
|
22
|
-
queryName: z.string(),
|
|
23
|
-
args: z.unknown(),
|
|
24
|
-
/**
|
|
25
|
-
* Segmentation key used in the subId/cacheKey hash. Defaults to the
|
|
26
|
-
* authenticated user's id ("anonymous" when none), unless the
|
|
27
|
-
* procedure overrides it via `QueryConfig.queryIdentity`.
|
|
28
|
-
*/
|
|
29
|
-
queryIdentity: z.string(),
|
|
30
|
-
instanceName: z.string(),
|
|
31
|
-
lastSnapshotTs: BigIntSchema,
|
|
32
|
-
});
|
|
33
|
-
export const RegisterSubscriptionResultSchema = z.object({
|
|
34
|
-
cacheKey: z.string(),
|
|
35
|
-
recompute: z.boolean(),
|
|
36
|
-
readSet: z.array(ReadEntrySchema),
|
|
37
|
-
});
|
|
38
|
-
export const RegisterSubscriptionBatchParamsSchema = z.array(RegisterSubscriptionParamsSchema);
|
|
39
|
-
export const RegisterSubscriptionBatchResultSchema = z.array(RegisterSubscriptionResultSchema);
|
|
40
|
-
export const UpdateSubscriptionReadSetParamsSchema = z.object({
|
|
41
|
-
cacheKey: z.string(),
|
|
42
|
-
subId: z.string(),
|
|
43
|
-
instanceName: z.string(),
|
|
44
|
-
lastSnapshotTs: BigIntSchema,
|
|
45
|
-
readSet: z.array(ReadEntrySchema),
|
|
46
|
-
});
|
|
47
|
-
/**
|
|
48
|
-
* `tracked: false` means the sub-manager has no record of this subId (e.g.
|
|
49
|
-
* a restart wiped state and the caller hasn't re-registered yet). The app
|
|
50
|
-
* server should treat this as a signal to register the sub before retrying.
|
|
51
|
-
*/
|
|
52
|
-
export const UpdateSubscriptionReadSetResultSchema = z.object({
|
|
53
|
-
tracked: z.boolean(),
|
|
54
|
-
});
|
|
55
|
-
export const UnregisterSubscriptionParamsSchema = z.object({
|
|
56
|
-
subId: z.string(),
|
|
57
|
-
instanceName: z.string(),
|
|
58
|
-
});
|
|
59
|
-
export const UnregisterSubscriptionsParamsSchema = z.array(UnregisterSubscriptionParamsSchema);
|
|
60
|
-
export const UnregisterSubscriptionResultSchema = z.object({ ok: z.boolean() });
|
|
61
|
-
export const UnregisterSubscriptionsResultSchema = z.array(z.object({ ok: z.boolean() }));
|
|
62
|
-
export const InvalidateWritesetParamsSchema = z.object({
|
|
63
|
-
writeSet: z.array(WriteEntrySchema),
|
|
64
|
-
});
|
|
65
|
-
export const AffectedSubscriptionSchema = z.object({
|
|
66
|
-
subId: z.string(),
|
|
67
|
-
queryName: z.string(),
|
|
68
|
-
args: z.unknown(),
|
|
69
|
-
cacheKey: z.string(),
|
|
70
|
-
/**
|
|
71
|
-
* Every live instance that currently holds this subId. Routing rules:
|
|
72
|
-
* • If the writer is in this list, it recomputes locally and publishes
|
|
73
|
-
* an `update` to the rest (its own id is filtered by the publisher).
|
|
74
|
-
* • Otherwise the writer broadcasts a `recompute-race` to every entry;
|
|
75
|
-
* receivers race for a Redis lock and the winner recomputes.
|
|
76
|
-
*/
|
|
77
|
-
notifyInstances: z.array(z.string()),
|
|
78
|
-
});
|
|
79
|
-
export const InvalidateWritesetResultSchema = z.object({
|
|
80
|
-
affected: z.array(AffectedSubscriptionSchema),
|
|
81
|
-
});
|
|
82
|
-
// ─── Registration record persisted to Redis ──────────────────────────────────
|
|
83
|
-
//
|
|
84
|
-
// Stored at `sl:reg:<subId>` by the sub-manager when a brand-new subscription
|
|
85
|
-
// is created, and deleted by the sub-manager when the last instance leaves.
|
|
86
|
-
// The app server reads this on reconnect to know how to re-register its
|
|
87
|
-
// known subIds.
|
|
88
|
-
export const RegistrationRecordSchema = z.object({
|
|
89
|
-
queryName: z.string(),
|
|
90
|
-
args: z.unknown(),
|
|
91
|
-
queryIdentity: z.string(),
|
|
92
|
-
cacheKey: z.string(),
|
|
93
|
-
});
|
|
94
|
-
//# sourceMappingURL=subscription-manager-types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-manager-types.js","sourceRoot":"","sources":["../../../src/server/subscription-manager-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-manager-worker-entry.d.ts","sourceRoot":"","sources":["../../../src/server/subscription-manager-worker-entry.ts"],"names":[],"mappings":""}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { parentPort } from "node:worker_threads";
|
|
2
|
-
import Redis from "ioredis";
|
|
3
|
-
import { CacheLayer } from "../db/cache";
|
|
4
|
-
import { PgDatabase } from "../db/postgres";
|
|
5
|
-
import { MySqlDatabase } from "../db/mysql";
|
|
6
|
-
import { mapWriteSetToRaw } from "./overlap-checker";
|
|
7
|
-
import { InvalidateWritesetParamsSchema, RegisterSubscriptionBatchParamsSchema, RegisterSubscriptionParamsSchema, UnregisterSubscriptionParamsSchema, UnregisterSubscriptionsParamsSchema, UpdateSubscriptionReadSetParamsSchema, } from "./subscription-manager-types";
|
|
8
|
-
import { SubscriptionWorker } from "./subscription-worker";
|
|
9
|
-
import { MsgType, } from "./subscription-manager-worker-protocol";
|
|
10
|
-
import { logger as baseLogger } from "../logger";
|
|
11
|
-
if (!parentPort) {
|
|
12
|
-
throw new Error("subscription-manager-worker-entry must run inside a worker_threads Worker");
|
|
13
|
-
}
|
|
14
|
-
const port = parentPort;
|
|
15
|
-
const logger = baseLogger.child({ name: "SUBS_WRK_ENTRY" });
|
|
16
|
-
let worker = null;
|
|
17
|
-
let db = null;
|
|
18
|
-
let cache = null;
|
|
19
|
-
let redis = null;
|
|
20
|
-
async function init(payload) {
|
|
21
|
-
redis = new Redis(payload.upstash.redisUrl, {
|
|
22
|
-
connectTimeout: 15_000,
|
|
23
|
-
maxRetriesPerRequest: 5,
|
|
24
|
-
});
|
|
25
|
-
cache = new CacheLayer(redis, payload.cacheTTLSeconds);
|
|
26
|
-
if (payload.database.type === "postgres") {
|
|
27
|
-
db = new PgDatabase(logger.child({ database: "postgres", worker: payload.workerId }), {
|
|
28
|
-
...payload.database,
|
|
29
|
-
connectionString: payload.database.connectionString,
|
|
30
|
-
max: payload.maxConnectionsPerWorker,
|
|
31
|
-
min: payload.database.minConnections ?? 1,
|
|
32
|
-
idleTimeoutMillis: payload.database.idleTimeoutMillis ?? 30_000,
|
|
33
|
-
connectionTimeoutMillis: payload.database.connectionTimeoutMillis ?? 7_000,
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
db = new MySqlDatabase(logger.child({ database: "mysql", worker: payload.workerId }), {
|
|
38
|
-
...payload.database,
|
|
39
|
-
connectionLimit: payload.maxConnectionsPerWorker,
|
|
40
|
-
idleTimeout: payload.database.idleTimeoutMillis ?? 30_000,
|
|
41
|
-
connectTimeout: payload.database.connectionTimeoutMillis ?? 7_000,
|
|
42
|
-
waitForConnections: true,
|
|
43
|
-
queueLimit: payload.database.queueLimit ?? 0,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
worker = new SubscriptionWorker(payload.workerId, cache, db);
|
|
47
|
-
}
|
|
48
|
-
async function dispatch(req) {
|
|
49
|
-
if (req.type === MsgType.Init) {
|
|
50
|
-
await init(req.payload);
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
if (!worker) {
|
|
54
|
-
throw new Error("Worker received message before Init");
|
|
55
|
-
}
|
|
56
|
-
switch (req.type) {
|
|
57
|
-
case MsgType.Register: {
|
|
58
|
-
const params = RegisterSubscriptionParamsSchema.parse(req.payload);
|
|
59
|
-
return worker.register(params);
|
|
60
|
-
}
|
|
61
|
-
case MsgType.RegisterBatch: {
|
|
62
|
-
const params = RegisterSubscriptionBatchParamsSchema.parse(req.payload);
|
|
63
|
-
return Promise.all(params.map((p) => worker.register(p)));
|
|
64
|
-
}
|
|
65
|
-
case MsgType.UpdateReadSet: {
|
|
66
|
-
const params = UpdateSubscriptionReadSetParamsSchema.parse(req.payload);
|
|
67
|
-
return worker.updateReadSet(params);
|
|
68
|
-
}
|
|
69
|
-
case MsgType.Unregister: {
|
|
70
|
-
const params = UnregisterSubscriptionParamsSchema.parse(req.payload);
|
|
71
|
-
return worker.unregister(params);
|
|
72
|
-
}
|
|
73
|
-
case MsgType.Unregisters: {
|
|
74
|
-
const params = UnregisterSubscriptionsParamsSchema.parse(req.payload);
|
|
75
|
-
return worker.unregisters(params);
|
|
76
|
-
}
|
|
77
|
-
case MsgType.Invalidate: {
|
|
78
|
-
const { writeSet } = InvalidateWritesetParamsSchema.parse(req.payload);
|
|
79
|
-
const rawWriteSet = mapWriteSetToRaw(writeSet);
|
|
80
|
-
return worker.invalidate(rawWriteSet);
|
|
81
|
-
}
|
|
82
|
-
case MsgType.MinSubscriptionTs: {
|
|
83
|
-
const m = worker.minSubscriptionTs();
|
|
84
|
-
// bigint isn't structured-cloneable via JSON; postMessage handles
|
|
85
|
-
// bigints natively, so we return it as-is.
|
|
86
|
-
return m;
|
|
87
|
-
}
|
|
88
|
-
case MsgType.LatestSnapshotTs: {
|
|
89
|
-
return db.getLatestSnapshotTimestamp();
|
|
90
|
-
}
|
|
91
|
-
case MsgType.Prune: {
|
|
92
|
-
const ts = req.payload;
|
|
93
|
-
return db.pruneCommitLogsBefore(ts);
|
|
94
|
-
}
|
|
95
|
-
case MsgType.Shutdown: {
|
|
96
|
-
try {
|
|
97
|
-
await db?.close();
|
|
98
|
-
}
|
|
99
|
-
catch (_) { /* ignore */ }
|
|
100
|
-
try {
|
|
101
|
-
await redis?.quit?.();
|
|
102
|
-
}
|
|
103
|
-
catch (_) { /* ignore */ }
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
|
-
default: {
|
|
107
|
-
throw new Error(`Unknown MsgType: ${req.type}`);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
port.on("message", async (req) => {
|
|
112
|
-
try {
|
|
113
|
-
const result = await dispatch(req);
|
|
114
|
-
const res = { reqId: req.reqId, ok: true, result };
|
|
115
|
-
port.postMessage(res);
|
|
116
|
-
}
|
|
117
|
-
catch (err) {
|
|
118
|
-
const e = err;
|
|
119
|
-
const res = {
|
|
120
|
-
reqId: req.reqId,
|
|
121
|
-
ok: false,
|
|
122
|
-
error: { message: e?.message ?? String(err), stack: e?.stack },
|
|
123
|
-
};
|
|
124
|
-
port.postMessage(res);
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
//# sourceMappingURL=subscription-manager-worker-entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-manager-worker-entry.js","sourceRoot":"","sources":["../../../src/server/subscription-manager-worker-entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { DatabaseConfig, SubscriptionManagerConfig } from "../config";
|
|
2
|
-
export declare enum MsgType {
|
|
3
|
-
Init = 1,
|
|
4
|
-
Register = 2,
|
|
5
|
-
RegisterBatch = 3,
|
|
6
|
-
UpdateReadSet = 4,
|
|
7
|
-
Unregister = 5,
|
|
8
|
-
Unregisters = 6,
|
|
9
|
-
Invalidate = 7,
|
|
10
|
-
MinSubscriptionTs = 8,
|
|
11
|
-
LatestSnapshotTs = 9,
|
|
12
|
-
Prune = 10,
|
|
13
|
-
Shutdown = 11
|
|
14
|
-
}
|
|
15
|
-
export interface WorkerRequest {
|
|
16
|
-
type: MsgType;
|
|
17
|
-
reqId: number;
|
|
18
|
-
payload: unknown;
|
|
19
|
-
}
|
|
20
|
-
export type WorkerResponse = {
|
|
21
|
-
reqId: number;
|
|
22
|
-
ok: true;
|
|
23
|
-
result: unknown;
|
|
24
|
-
} | {
|
|
25
|
-
reqId: number;
|
|
26
|
-
ok: false;
|
|
27
|
-
error: {
|
|
28
|
-
message: string;
|
|
29
|
-
stack?: string;
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
export interface WorkerInitPayload {
|
|
33
|
-
workerId: number;
|
|
34
|
-
database: DatabaseConfig;
|
|
35
|
-
upstash: SubscriptionManagerConfig["upstash"];
|
|
36
|
-
cacheTTLSeconds: number;
|
|
37
|
-
maxConnectionsPerWorker: number;
|
|
38
|
-
logLevel?: string;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=subscription-manager-worker-protocol.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-manager-worker-protocol.d.ts","sourceRoot":"","sources":["../../../src/server/subscription-manager-worker-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAQ3E,oBAAY,OAAO;IACjB,IAAI,IAAI;IACR,QAAQ,IAAI;IACZ,aAAa,IAAI;IACjB,aAAa,IAAI;IACjB,UAAU,IAAI;IACd,WAAW,IAAI;IACf,UAAU,IAAI;IACd,iBAAiB,IAAI;IACrB,gBAAgB,IAAI;IACpB,KAAK,KAAK;IACV,QAAQ,KAAK;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC5C;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE7E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// Internal wire protocol between the SubscriptionManager dispatcher (main
|
|
2
|
-
// thread) and each SubscriptionWorker thread. The channel is trusted, so we
|
|
3
|
-
// pass payloads as raw decoded objects and let the worker Zod-parse them
|
|
4
|
-
// against the matching schema. Numeric MsgType keeps the discriminator a
|
|
5
|
-
// single int — cheaper to switch on than a string.
|
|
6
|
-
export var MsgType;
|
|
7
|
-
(function (MsgType) {
|
|
8
|
-
MsgType[MsgType["Init"] = 1] = "Init";
|
|
9
|
-
MsgType[MsgType["Register"] = 2] = "Register";
|
|
10
|
-
MsgType[MsgType["RegisterBatch"] = 3] = "RegisterBatch";
|
|
11
|
-
MsgType[MsgType["UpdateReadSet"] = 4] = "UpdateReadSet";
|
|
12
|
-
MsgType[MsgType["Unregister"] = 5] = "Unregister";
|
|
13
|
-
MsgType[MsgType["Unregisters"] = 6] = "Unregisters";
|
|
14
|
-
MsgType[MsgType["Invalidate"] = 7] = "Invalidate";
|
|
15
|
-
MsgType[MsgType["MinSubscriptionTs"] = 8] = "MinSubscriptionTs";
|
|
16
|
-
MsgType[MsgType["LatestSnapshotTs"] = 9] = "LatestSnapshotTs";
|
|
17
|
-
MsgType[MsgType["Prune"] = 10] = "Prune";
|
|
18
|
-
MsgType[MsgType["Shutdown"] = 11] = "Shutdown";
|
|
19
|
-
})(MsgType || (MsgType = {}));
|
|
20
|
-
//# sourceMappingURL=subscription-manager-worker-protocol.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-manager-worker-protocol.js","sourceRoot":"","sources":["../../../src/server/subscription-manager-worker-protocol.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,4EAA4E;AAC5E,yEAAyE;AACzE,yEAAyE;AACzE,mDAAmD;AAEnD,MAAM,CAAN,IAAY,OAYX;AAZD,WAAY,OAAO;IACjB,qCAAQ,CAAA;IACR,6CAAY,CAAA;IACZ,uDAAiB,CAAA;IACjB,uDAAiB,CAAA;IACjB,iDAAc,CAAA;IACd,mDAAe,CAAA;IACf,iDAAc,CAAA;IACd,+DAAqB,CAAA;IACrB,6DAAoB,CAAA;IACpB,wCAAU,CAAA;IACV,8CAAa,CAAA;AACf,CAAC,EAZW,OAAO,KAAP,OAAO,QAYlB"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { SubscriptionManagerConfig } from "../config";
|
|
2
|
-
export { SubscriptionWorker } from "./subscription-worker";
|
|
3
|
-
/**
|
|
4
|
-
* One process per deployment. Routes each subscription operation to one of N
|
|
5
|
-
* worker threads by hashing subId. Worker threads run in parallel on separate
|
|
6
|
-
* CPU cores; this dispatcher does no Zod parsing — it reads `subId` directly
|
|
7
|
-
* from the decoded payload (the internal channel is trusted) and forwards the
|
|
8
|
-
* raw payload. The worker validates and parses with Zod before executing.
|
|
9
|
-
*/
|
|
10
|
-
export declare class SubscriptionManager {
|
|
11
|
-
private wss;
|
|
12
|
-
private port;
|
|
13
|
-
private workers;
|
|
14
|
-
private pruneInterval;
|
|
15
|
-
private static readonly PRUNE_INTERVAL_MS;
|
|
16
|
-
constructor(config: SubscriptionManagerConfig);
|
|
17
|
-
start(): Promise<void>;
|
|
18
|
-
stop(): Promise<void>;
|
|
19
|
-
private pruneCommitLogs;
|
|
20
|
-
workerCount(): number;
|
|
21
|
-
workerIndexFor(subId: string): number;
|
|
22
|
-
private workerFor;
|
|
23
|
-
private registerMethods;
|
|
24
|
-
private readSubId;
|
|
25
|
-
private registerSubscription;
|
|
26
|
-
private registerSubscriptionBatch;
|
|
27
|
-
private updateSubscriptionReadSet;
|
|
28
|
-
private unregisterSubscription;
|
|
29
|
-
private unregisterSubscriptions;
|
|
30
|
-
private invalidateWriteset;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=subscription-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-manager.d.ts","sourceRoot":"","sources":["../../../src/server/subscription-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AA2BtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAsG3D;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,aAAa,CAA+C;IACpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAkB;gBAE/C,MAAM,EAAE,yBAAyB;IAsBvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAUb,eAAe;IAsB7B,WAAW,IAAI,MAAM;IAIrB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIrC,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,SAAS;YAIH,oBAAoB;YAKpB,yBAAyB;YAwBzB,yBAAyB;YAKzB,sBAAsB;YAKtB,uBAAuB;YAsBvB,kBAAkB;CAQjC"}
|