@supalive/core 1.16.0 → 1.18.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.
- package/dist/index-B2nE1y9E.d.ts +2384 -0
- package/dist/index-B2nE1y9E.d.ts.map +1 -0
- package/dist/index-B3i2G1gr.d.ts +2402 -0
- package/dist/index-B3i2G1gr.d.ts.map +1 -0
- package/dist/index-B5hAqW3O.d.ts +2402 -0
- package/dist/index-B5hAqW3O.d.ts.map +1 -0
- package/dist/index-BHs0EtJk.d.ts +2402 -0
- package/dist/index-BHs0EtJk.d.ts.map +1 -0
- package/dist/index-BI3MfAyI.d.ts +2399 -0
- package/dist/index-BI3MfAyI.d.ts.map +1 -0
- package/dist/index-BL90lDw7.d.ts +2400 -0
- package/dist/index-BL90lDw7.d.ts.map +1 -0
- package/dist/index-BMz7jVbX.d.ts +2402 -0
- package/dist/index-BMz7jVbX.d.ts.map +1 -0
- package/dist/index-BvryqYUm.d.ts +2394 -0
- package/dist/index-BvryqYUm.d.ts.map +1 -0
- package/dist/index-CjkNEwSc.d.ts +2402 -0
- package/dist/index-CjkNEwSc.d.ts.map +1 -0
- package/dist/index-Cng74DL5.d.ts +2404 -0
- package/dist/index-Cng74DL5.d.ts.map +1 -0
- package/dist/index-DYkOBnw_.d.ts +2378 -0
- package/dist/index-DYkOBnw_.d.ts.map +1 -0
- package/dist/index-DcM2uKpT.d.ts +2393 -0
- package/dist/index-DcM2uKpT.d.ts.map +1 -0
- package/dist/index-DsvdhOKL.d.ts +2400 -0
- package/dist/index-DsvdhOKL.d.ts.map +1 -0
- package/dist/index-yXV5AMh9.d.ts +2416 -0
- package/dist/index-yXV5AMh9.d.ts.map +1 -0
- package/dist/mysql-1ENHI0yX.d.ts +114 -0
- package/dist/mysql-1ENHI0yX.d.ts.map +1 -0
- package/dist/mysql-BJaQhVGE.d.ts +114 -0
- package/dist/mysql-BJaQhVGE.d.ts.map +1 -0
- package/dist/mysql-BKs5PTSR.d.ts +114 -0
- package/dist/mysql-BKs5PTSR.d.ts.map +1 -0
- package/dist/mysql-C6jg1Vpr.d.ts +114 -0
- package/dist/mysql-C6jg1Vpr.d.ts.map +1 -0
- package/dist/mysql-C7Km_lgc.d.ts +114 -0
- package/dist/mysql-C7Km_lgc.d.ts.map +1 -0
- package/dist/mysql-Cxro4f6T.d.ts +114 -0
- package/dist/mysql-Cxro4f6T.d.ts.map +1 -0
- package/dist/mysql-DKR33wfH.d.ts +114 -0
- package/dist/mysql-DKR33wfH.d.ts.map +1 -0
- package/dist/mysql-DNiYIZCK.d.ts +114 -0
- package/dist/mysql-DNiYIZCK.d.ts.map +1 -0
- package/dist/mysql-DS1s1c5M.d.ts +114 -0
- package/dist/mysql-DS1s1c5M.d.ts.map +1 -0
- package/dist/mysql-DcHgRk9f.d.ts +114 -0
- package/dist/mysql-DcHgRk9f.d.ts.map +1 -0
- package/dist/mysql-DnrIJoWL.d.ts +114 -0
- package/dist/mysql-DnrIJoWL.d.ts.map +1 -0
- package/dist/mysql-GsWYd6fG.d.ts +114 -0
- package/dist/mysql-GsWYd6fG.d.ts.map +1 -0
- package/dist/mysql-qTszEKAU.d.ts +114 -0
- package/dist/mysql-qTszEKAU.d.ts.map +1 -0
- package/dist/mysql-qW13LcGQ.d.ts +114 -0
- package/dist/mysql-qW13LcGQ.d.ts.map +1 -0
- package/dist/postgres-B0fqJe1X.d.ts +118 -0
- package/dist/postgres-B0fqJe1X.d.ts.map +1 -0
- package/dist/postgres-BATDLPml.d.ts +118 -0
- package/dist/postgres-BATDLPml.d.ts.map +1 -0
- package/dist/postgres-BUVYjnaT.d.ts +118 -0
- package/dist/postgres-BUVYjnaT.d.ts.map +1 -0
- package/dist/postgres-Bk_8PFRT.d.ts +118 -0
- package/dist/postgres-Bk_8PFRT.d.ts.map +1 -0
- package/dist/postgres-Bx79_JEy.d.ts +118 -0
- package/dist/postgres-Bx79_JEy.d.ts.map +1 -0
- package/dist/postgres-C3w741VH.d.ts +118 -0
- package/dist/postgres-C3w741VH.d.ts.map +1 -0
- package/dist/postgres-CAZYYgbZ.d.ts +118 -0
- package/dist/postgres-CAZYYgbZ.d.ts.map +1 -0
- package/dist/postgres-CFarR3cB.d.ts +118 -0
- package/dist/postgres-CFarR3cB.d.ts.map +1 -0
- package/dist/postgres-CWVM-KKP.d.ts +118 -0
- package/dist/postgres-CWVM-KKP.d.ts.map +1 -0
- package/dist/postgres-D50xpaQ-.d.ts +118 -0
- package/dist/postgres-D50xpaQ-.d.ts.map +1 -0
- package/dist/postgres-bhVzeRf2.d.ts +118 -0
- package/dist/postgres-bhVzeRf2.d.ts.map +1 -0
- package/dist/postgres-tVdgYJkj.d.ts +118 -0
- package/dist/postgres-tVdgYJkj.d.ts.map +1 -0
- package/dist/postgres-yAn2CF7j.d.ts +118 -0
- package/dist/postgres-yAn2CF7j.d.ts.map +1 -0
- package/dist/postgres-yTjQ-Nxk.d.ts +118 -0
- package/dist/postgres-yTjQ-Nxk.d.ts.map +1 -0
- package/dist/router-Bk0eLfmB.js +285 -0
- package/dist/router-Bk0eLfmB.js.map +1 -0
- package/dist/router-DP2ThAwh.js.map +1 -1
- package/dist/src/client/index.d.ts +2 -2
- package/dist/src/client/index.js +18 -5
- package/dist/src/client/index.js.map +1 -1
- package/dist/src/exports/mysql.d.ts +1 -1
- package/dist/src/exports/postgres.d.ts +1 -1
- package/dist/src/exports/procedure.d.ts +1 -1
- package/dist/src/exports/schema-sql.d.ts +1 -1
- package/dist/src/exports/server.d.ts +11 -7
- package/dist/src/exports/server.d.ts.map +1 -1
- package/dist/src/exports/server.js +34 -15
- package/dist/src/exports/server.js.map +1 -1
- package/dist/src/exports/sub-manager-worker-entry.js +1 -1
- package/dist/src/exports/types.d.ts +3 -3
- package/dist/src/exports/types.js +1 -1
- package/dist/sub-worker-dispatch-Cvqarej5.js +826 -0
- package/dist/sub-worker-dispatch-Cvqarej5.js.map +1 -0
- package/dist/sub-worker-dispatch-D-3VPkd4.js +826 -0
- package/dist/sub-worker-dispatch-D-3VPkd4.js.map +1 -0
- package/dist/sub-worker-dispatch-qiSs5Xkm.js.map +1 -1
- package/dist/types_client_rpc-B8jh6MKl.js +154 -0
- package/dist/types_client_rpc-B8jh6MKl.js.map +1 -0
- package/dist/types_client_rpc-BRCAgeyJ.js +155 -0
- package/dist/types_client_rpc-BRCAgeyJ.js.map +1 -0
- package/dist/types_server-AXVa_2mF.d.ts +684 -0
- package/dist/types_server-AXVa_2mF.d.ts.map +1 -0
- package/dist/types_server-B5KQ6PAO.d.ts +692 -0
- package/dist/types_server-B5KQ6PAO.d.ts.map +1 -0
- package/dist/types_server-BJBeSk6n.d.ts +691 -0
- package/dist/types_server-BJBeSk6n.d.ts.map +1 -0
- package/dist/types_server-BXeiSmd8.d.ts +691 -0
- package/dist/types_server-BXeiSmd8.d.ts.map +1 -0
- package/dist/types_server-BnRmctWG.d.ts +699 -0
- package/dist/types_server-BnRmctWG.d.ts.map +1 -0
- package/dist/types_server-C20ibVGu.d.ts +692 -0
- package/dist/types_server-C20ibVGu.d.ts.map +1 -0
- package/dist/types_server-CUPM08l2.d.ts +684 -0
- package/dist/types_server-CUPM08l2.d.ts.map +1 -0
- package/dist/types_server-CjjJIQps.d.ts +691 -0
- package/dist/types_server-CjjJIQps.d.ts.map +1 -0
- package/dist/types_server-CjzRPllt.d.ts +691 -0
- package/dist/types_server-CjzRPllt.d.ts.map +1 -0
- package/dist/types_server-CtYRmHdO.d.ts +684 -0
- package/dist/types_server-CtYRmHdO.d.ts.map +1 -0
- package/dist/types_server-Cy4bvdeN.d.ts +691 -0
- package/dist/types_server-Cy4bvdeN.d.ts.map +1 -0
- package/dist/types_server-DHRi8bGO.d.ts +684 -0
- package/dist/types_server-DHRi8bGO.d.ts.map +1 -0
- package/dist/types_server-DoeybfmY.d.ts +684 -0
- package/dist/types_server-DoeybfmY.d.ts.map +1 -0
- package/dist/types_server-JK14NE0j.d.ts +684 -0
- package/dist/types_server-JK14NE0j.d.ts.map +1 -0
- package/dist/types_server-hYv2--1M.d.ts +684 -0
- package/dist/types_server-hYv2--1M.d.ts.map +1 -0
- package/dist/types_server-kkQJDSjA.d.ts +684 -0
- package/dist/types_server-kkQJDSjA.d.ts.map +1 -0
- package/package.json +1 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as ActionProcedures, An as MutationArgs, At as QueryFn, Bn as StoredSchemaColumnsOptions, Cn as ComputedFieldConfig, Ct as MutationConfig, Dn as InferSchema, Dt as OutputOf, En as IndexDefinition, Et as MutationProcedure, Fn as ReturnQuery, Ft as createMutationBuilder, Gn as tableNameToId, Hn as defineSchema, In as SchemaCodecs, It as createQueryBuilder, Ln as SchemaColumnMapping, Mn as Prettify, Mt as TypeOf, Nn as QueryArgs, Nt as createActionBuilder, On as InsertData, Ot as QueryConfig, Pn as ReturnLiveQuery, Pt as createJobBuilder, Rn as SchemaColumnsOptions, Sn as ComputedField, St as JobProcedure, Tn as DefineSchemaConfig, Tt as MutationFn, Un as schemaRegistry, Vn as defineComputedField, Wn as shouldTrackSchema, _n as matchesPredicate, _t as HandlerLogger, an as IdAndCommitTs, at as PublicProcedures, bn as ComputedCodec, bt as JobCtx, cn as JsonOpOptions, ct as Router, dn as PaginationClause, dt as ActionConfig, et as AppRouter, fn as QueryBuilder, ft as ActionCtx, gn as jsonPathExtract, gt as ContextOf, hn as jsonPathExists, ht as AnyProcedure, it as ProcedureNames, jn as OverrideField, jt as QueryProcedure, kn as Model, kt as QueryCtx, ln as OrderByOptions, lt as getContextRegistry, mn as jsonContains, mt as ActionProcedure, nt as JobProcedures, on as JsonContainsOptions, ot as QueryProcedures, pn as buildPredicateSql, pt as ActionFn, rt as MutationProcedures, sn as JsonHasKeyMultiOptions, st as RegisteredProcedure, tt as ContextRegistry, un as OrderDirection, ut as router, vn as ActionArgs, vt as HandlerObservability, wn as DeclarativeIndex, wt as MutationCtx, xn as ComputedDataType, xt as JobFn, yn as ColumnCodec, yt as JobConfig, zn as SchemaDefinition } from "../../index-yXV5AMh9.js";
|
|
2
2
|
import { n as stableStringify, r as supaliveStringify, t as groupByToMap } from "../../helper-CiacMqje.js";
|
|
3
3
|
import * as z$2 from "zod";
|
|
4
4
|
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { Bt as
|
|
2
|
-
import { t as MySqlDatabase } from "../../mysql-
|
|
3
|
-
import { t as PgDatabase } from "../../postgres-
|
|
4
|
-
import { A as QueryTrigger, C as SubManagerLink, D as OperationKind, E as OperationEvent, F as startTimer, I as traceQueryExecution, M as configureRootLogger, N as elapsedMs, O as OperationOutcome, P as getRootLogger, S as SubManagerClient, T as ObservabilityOptions, b as SupaliveServerConfig, j as RequestLogMode, k as OperationTransport, p as DatabaseConfig, u as SubId, w as Observability, x as UpstashConfig, y as SubscriptionManagerConfig } from "../../types_server-
|
|
1
|
+
import { Bt as IncomingJobRequest, D as Context, Gt as ScheduleHandle, Ht as JobScheduler, Kt as ScheduledJobDef, Lt as DevScheduler, Rt as DevSchedulerOptions, Ut as QStashScheduler, Vt as JobClient, Wt as QStashSchedulerOptions, _r as UpdateSubscriptionReadSetParamsSchema, ar as InvalidateWritesetParams, cr as RegisterSubscriptionParams, ct as Router, dr as UnregisterSubscriptionParams, fr as UnregisterSubscriptionParamsSchema, gr as UpdateSubscriptionReadSetParams, ir as AffectedSubscription, lr as RegisterSubscriptionParamsSchema, nr as CacheLayer, or as InvalidateWritesetParamsSchema, pr as UnregisterSubscriptionResult, qn as Database, qt as SupaliveDb, rr as IORedisClient, sr as InvalidateWritesetResult, ur as RegisterSubscriptionResult, vr as UpdateSubscriptionReadSetResult, zt as EnqueueOptions } from "../../index-yXV5AMh9.js";
|
|
2
|
+
import { t as MySqlDatabase } from "../../mysql-DcHgRk9f.js";
|
|
3
|
+
import { t as PgDatabase } from "../../postgres-CWVM-KKP.js";
|
|
4
|
+
import { A as QueryTrigger, C as SubManagerLink, D as OperationKind, E as OperationEvent, F as startTimer, I as traceQueryExecution, M as configureRootLogger, N as elapsedMs, O as OperationOutcome, P as getRootLogger, S as SubManagerClient, T as ObservabilityOptions, b as SupaliveServerConfig, j as RequestLogMode, k as OperationTransport, p as DatabaseConfig, u as SubId, w as Observability, x as UpstashConfig, y as SubscriptionManagerConfig } from "../../types_server-CjjJIQps.js";
|
|
5
5
|
import pino, { Level } from "pino";
|
|
6
|
-
import Redis$1 from "ioredis";
|
|
7
6
|
|
|
8
7
|
//#region src/server/supalive-server.d.ts
|
|
9
8
|
/**
|
|
@@ -63,6 +62,12 @@ declare class SupaliveWebSocketServer<TContext extends Context> {
|
|
|
63
62
|
* the scheduler registers are already reachable.
|
|
64
63
|
*/
|
|
65
64
|
private syncJobSchedules;
|
|
65
|
+
/**
|
|
66
|
+
* The server's {@link Observability} — hand it to the internal caller's
|
|
67
|
+
* `init({ obs })` so its standalone calls log as per-procedure children of
|
|
68
|
+
* this server's request logger instead of a no-op.
|
|
69
|
+
*/
|
|
70
|
+
getObservability(): Observability;
|
|
66
71
|
/** Absolute URL the scheduler POSTs to for a given job name. */
|
|
67
72
|
endpointFor(name: string): string;
|
|
68
73
|
/**
|
|
@@ -158,7 +163,6 @@ declare class SupaliveWebSocketServer<TContext extends Context> {
|
|
|
158
163
|
private reexecuteAffectedQuery;
|
|
159
164
|
private executeLiveQuery;
|
|
160
165
|
private sendMessage;
|
|
161
|
-
private sendMessageRaw;
|
|
162
166
|
private sendError;
|
|
163
167
|
private subscribeToInstanceChannel;
|
|
164
168
|
/**
|
|
@@ -315,7 +319,7 @@ type InitCacheLayerOptions = {
|
|
|
315
319
|
};
|
|
316
320
|
declare function initCacheLayer(config: InitCacheLayerOptions): {
|
|
317
321
|
cacheLayer: CacheLayer;
|
|
318
|
-
redisSubClient?:
|
|
322
|
+
redisSubClient?: IORedisClient;
|
|
319
323
|
};
|
|
320
324
|
//#endregion
|
|
321
325
|
//#region src/server/sub_hash.d.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","names":[],"sources":["../../../src/server/supalive-server.ts","../../../src/logger.ts","../../../src/server/sub-manager.ts","../../../src/db/init_db.ts","../../../src/server/sub_hash.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","names":[],"sources":["../../../src/server/supalive-server.ts","../../../src/logger.ts","../../../src/server/sub-manager.ts","../../../src/db/init_db.ts","../../../src/server/sub_hash.ts"],"mappings":";;;;;;;;;AAiIA;cAAa,uBAAA,kBAAyC,OAAA;EAAA,QAC5C,MAAA;EAAA,QACA,UAAA;EAAA,QAEA,UAAA;EAAA,QACA,GAAA;EAAA,QAEA,KAAA;EAAA,QACA,QAAA;EAmNO;EAAA,iBAjNE,iBAAA;EAAA,QACT,EAAA;EAAA,QACA,eAAA;EAAA,QACA,MAAA;EAAA,QAMA,kBAAA;EAAA,QAIA,WAAA;EAAA,QAEA,SAAA;EAAA,QACA,OAAA;EAAA,QACA,SAAA;EAq2C0D;;EAAA,QAl2C1D,UAAA;EA9B4C;EAAA,QAgC5C,OAAA;EAAA,QAEA,QAAA;EAAA,QACA,mBAAA;EAAA,QACA,gBAAA;EAAA,QAEA,KAAA;EA9BA;EAAA,QAqCA,GAAA;EAlCA;EAAA,QAoCA,GAAA;cAEI,MAAA,EAAQ,oBAAA,CAAqB,QAAA;EA9BjC;;;;;;;;;;;;EAAA,QAuKA,qBAAA;EAAA,QAqBA,kBAAA;EAOR,cAAA,CAAe,MAAA,EAAQ,MAAA,MAAY,QAAA;EAK7B,KAAA,IAAS,OAAA;EA1KH;;;;;;EAAA,QAkME,gBAAA;EAxBR;;;;;EA4CC,gBAAA,IAAoB,aAAA;EAKf;EAAZ,WAAA,CAAY,IAAA;EASM;;;;;EAAZ,WAAA,CAAY,IAAA,UAAc,IAAA,WAAe,IAAA,GAAO,cAAA,GAAiB,OAAA,CAAQ,cAAA;EAMzE;EAAA,SAAA,CAAU,QAAA,WAAmB,OAAA;EAAA;;;;EASnC,YAAA,IAAgB,SAAA;EAIV,IAAA,IAAQ,OAAA;EAUd,QAAA;;;;;;EASA,aAAA;EAkDc;;;;;EAAA,QAzCA,iBAAA;EAAA,QAiCN,sBAAA;EAAA,QAQM,gBAAA;EAAA,QA4DA,aAAA;EAAA,QAmBA,cAAA;EAAA,QAqBA,UAAA;EAgmBA;;;;;;;EAAA,QA7jBN,eAAA;EAsyBA;;;;;EAAA,QA5wBM,kBAAA;EAAA,QAwCA,UAAA;EAAA,QAmLA,eAAA;EAAA,QAuLA,iBAAA;EAAA,QA2BA,gBAAA;EAqc6C;;;;;AAiEpB;;;;AC7jDzC;;;;AAA+D;ED4/CF,QA/Y7C,qBAAA;EAAA,QAgEA,kBAAA;;;AC5qCiD;AACjE;;;UDurCU,uBAAA;EAAA,QAoBM,oBAAA;ECtrCA;;;;AAA+B;AAK/C;;;;;;;;EALgB,QDutCA,gBAAA;EAAA,QAgBN,kBAAA;EAAA,QAOM,oBAAA;EAAA,QAgCA,sBAAA;EAAA,QA2EA,gBAAA;EAAA,QAsCN,WAAA;EAAA,QAYA,SAAA;EAAA,QAIM,0BAAA;EC14CyD;;;;;AAA4B;EAA5B,QD47CzD,kBAAA;;;AE5xChB;;;;EF8yCQ,mBAAA,CAAoB,MAAA,cAAoB,OAAA;EE9rChC;;;;;;;;EFgtCR,iBAAA,CAAkB,OAAA,UAAiB,OAAA,WAAkB,OAAA;EAAA,QAI7C,2BAAA;EAAA,QAmCA,yBAAA;EAAA,QA0BA,yBAAA;AAAA;;;cC7jDH,aAAA;AAAA,cACA,YAAA;AAAA,cACA,MAAA,EAAM,IAAA,CAAA,MAAA;AAAA,iBAqBH,UAAA,CAAW,IAAA,WAAe,KAAK;AAAA,iBAK/B,iBAAA,wCAAyD,GAAA,EAAK,GAAA,CAAI,CAAA,EAAG,CAAA,IAAK,MAAA,CAAO,CAAA,EAAG,CAAA;;;;;;;;;;cCgKvF,mBAAA;EAAA,QACH,GAAA;EAAA,QACA,IAAA;EAAA,QACA,MAAA;EAAA,QACA,OAAA;EAAA,QACA,aAAA;EAAA,wBACgB,iBAAA;cAEZ,MAAA,EAAQ,yBAAA;EFnEZ;;;;;;EAAA,QEmHA,iBAAA;EAiCF,KAAA,IAAS,OAAA;EAuBT,IAAA,IAAQ,OAAA;EFvJN;;;;;;;EEwKR,SAAA,IAAa,cAAA;EAAA,QAaC,eAAA;EFjKN;;;EAAA,QE6LM,2BAAA;EAUd,WAAA;EAIA,cAAA,CAAe,KAAA;EAAA,QAIP,SAAA;EAAA,QAIA,eAAA;EAAA,QAWA,SAAA;EAAA,QAIM,oBAAA;EAAA,QAKA,yBAAA;EAAA,QAwBA,yBAAA;EAAA,QAKA,sBAAA;EAAA,QAKA,uBAAA;EAAA,QAsBA,kBAAA;AAAA;;;;AF5UhB;;;;;;;;;;cG7Ga,YAAA;;;;;;;;;;iBAWS,QAAA,CAAS,EAAA,EAAI,QAAA,GAAW,OAAO;;;;;;cA6BxC,mBAAA;AAAA,KAID,aAAA;EACR,QAAA,EAAU,cAAA;EH2EJ;;;;;;EGpEN,eAAA,GAAkB,cAAA;EAClB,UAAA,EAAY,UAAA;EACZ,oBAAA;EACA,QAAA;AAAA;AAAA,iBAGkB,YAAA,CAAa,OAAA,EAAS,aAAA,GAAgB,OAAA,CAAQ,UAAA;AAAA,iBAgBpD,cAAA,CAAe,MAAA,EAAQ,cAAA,EAAgB,QAAA,YAAoB,UAAA,GAAa,aAAA;;;;;;;;;;;;;;iBA4DlE,gBAAA,CAAiB,EAAA,EAAI,UAAA,EAAY,KAAA,EAAO,UAAA,EAAY,WAAA,aAAsB,OAAA;AAAA,KAsBpF,qBAAA;EACR,OAAA,EAAS,aAAa;EAEtB,eAAA;EAEA,iBAAA;EAEA,iBAAA;EAEA,oBAAA;EAEA,eAAA;AAAA;AAAA,iBAGY,cAAA,CAAe,MAAA,EAAQ,qBAAA;EAA0B,UAAA,EAAY,UAAA;EAAY,cAAA,GAAiB,aAAA;AAAA;;;;iBCvLpF,SAAA,CAAU,KAAA,YAAiB,OAAO;;;;;cAS3C,kBAAA;;;;;;;;;iBAgDS,sBAAA,CACpB,SAAA,UACA,KAAA,oBACA,aAAA,WACC,OAAO;;;;;;iBAWY,gBAAA,CACpB,SAAA,UACA,KAAA,oBACA,aAAA,WACC,OAAO"}
|
|
@@ -2,10 +2,10 @@ import { l as primaryOnlyConn, n as getContextRegistry } from "../../router-DP2T
|
|
|
2
2
|
import { n as stableStringify, r as supaliveStringify, t as groupByToMap } from "../../helper-zdJT5FUc.js";
|
|
3
3
|
import { s as traceCacheCall } from "../../query-LJranz0c.js";
|
|
4
4
|
import { r as evaluateCacheFreshness } from "../../overlap-checker-1TwhkAwy.js";
|
|
5
|
-
import { i as AuthenticationError, o as ClientMessageSchema } from "../../types_client_rpc-
|
|
5
|
+
import { i as AuthenticationError, o as ClientMessageSchema } from "../../types_client_rpc-B8jh6MKl.js";
|
|
6
6
|
import { n as RemoteSubscriptionMessageSchema } from "../../types_server-BhC19R2a.js";
|
|
7
7
|
import { n as sleep } from "../../realtime_db-B0Tin87E.js";
|
|
8
|
-
import { C as appInstanceId, D as serializeMapValue, E as logger, S as RetentionWatermark, T as logLevelOf, _ as UnregisterSubscriptionResultSchema, a as bootstrapDbTypes, b as UpdateSubscriptionReadSetResultSchema, c as initCore, d as InvalidateWritesetParamsSchema, f as InvalidateWritesetResultSchema, g as UnregisterSubscriptionParamsSchema, h as RegisterSubscriptionResultSchema, i as DB_QUERY_TIMEOUT_MS, l as initDatabase, m as RegisterSubscriptionParamsSchema, n as SubscriptionWorker, o as createDatabase, p as RegisterSubscriptionBatchResultSchema, r as CORE_VERSION, s as initCacheLayer, t as dispatchWorkerMessage, u as CacheLayer, v as UnregisterSubscriptionsResultSchema, w as isProduction, x as RETENTION_WATERMARK_CHANNEL, y as UpdateSubscriptionReadSetParamsSchema } from "../../sub-worker-dispatch-
|
|
8
|
+
import { C as appInstanceId, D as serializeMapValue, E as logger, S as RetentionWatermark, T as logLevelOf, _ as UnregisterSubscriptionResultSchema, a as bootstrapDbTypes, b as UpdateSubscriptionReadSetResultSchema, c as initCore, d as InvalidateWritesetParamsSchema, f as InvalidateWritesetResultSchema, g as UnregisterSubscriptionParamsSchema, h as RegisterSubscriptionResultSchema, i as DB_QUERY_TIMEOUT_MS, l as initDatabase, m as RegisterSubscriptionParamsSchema, n as SubscriptionWorker, o as createDatabase, p as RegisterSubscriptionBatchResultSchema, r as CORE_VERSION, s as initCacheLayer, t as dispatchWorkerMessage, u as CacheLayer, v as UnregisterSubscriptionsResultSchema, w as isProduction, x as RETENTION_WATERMARK_CHANNEL, y as UpdateSubscriptionReadSetParamsSchema } from "../../sub-worker-dispatch-Cvqarej5.js";
|
|
9
9
|
import { n as resolveReadRouting, t as makeConnRouting } from "../../read-routing-BUcQAwnd.js";
|
|
10
10
|
import { ROOT_CONTEXT, SpanKind, SpanStatusCode, context, isSpanContextValid, metrics, propagation, trace } from "@opentelemetry/api";
|
|
11
11
|
import { v4 } from "uuid";
|
|
@@ -355,7 +355,7 @@ function summary(e) {
|
|
|
355
355
|
* `ts` the result reflects, which the caller echoes so the client can advance
|
|
356
356
|
* its high-water.
|
|
357
357
|
*/
|
|
358
|
-
async function runCachedQuery(deps, procedure, procedureName, input, serverCtx, lastSnapshotTs, clientMinTs
|
|
358
|
+
async function runCachedQuery(deps, handlerObs, procedure, procedureName, input, serverCtx, lastSnapshotTs, clientMinTs) {
|
|
359
359
|
const queryIdentity = resolveQueryIdentity(procedure, serverCtx, input, deps.getUserId);
|
|
360
360
|
const cacheKey = await generateCacheKey(procedureName, stableStringify(input), queryIdentity);
|
|
361
361
|
const routing = await resolveReadRouting(deps.db, lastSnapshotTs, clientMinTs ?? 0n);
|
|
@@ -396,7 +396,7 @@ async function runCachedQuery(deps, procedure, procedureName, input, serverCtx,
|
|
|
396
396
|
db: ctx,
|
|
397
397
|
serverCtx,
|
|
398
398
|
...makeConnRouting(ctx, routing),
|
|
399
|
-
log: handlerObs
|
|
399
|
+
log: handlerObs.log,
|
|
400
400
|
span: querySpan
|
|
401
401
|
};
|
|
402
402
|
return fn(qctx, input);
|
|
@@ -842,6 +842,9 @@ var HttpRpcHandler = class {
|
|
|
842
842
|
rateLimiter;
|
|
843
843
|
/** Job webhook prefix (`{jobPath}/`) — a job POST is `{jobPath}/<jobName>`. */
|
|
844
844
|
jobPrefix;
|
|
845
|
+
/** App build number added as a top-level `build` field to every response
|
|
846
|
+
* envelope (see {@link HttpRpcDeps.buildNumber}). Undefined = omit. */
|
|
847
|
+
buildNumber;
|
|
845
848
|
constructor(deps) {
|
|
846
849
|
this.deps = deps;
|
|
847
850
|
this.rpc = deps.rpc;
|
|
@@ -852,6 +855,7 @@ var HttpRpcHandler = class {
|
|
|
852
855
|
this.rateLimiter = new FixedWindowRateLimiter(rl.windowMs ?? 6e4, rl.max ?? 120);
|
|
853
856
|
}
|
|
854
857
|
this.jobPrefix = `${deps.jobPath}/`;
|
|
858
|
+
this.buildNumber = deps.buildNumber;
|
|
855
859
|
}
|
|
856
860
|
/** True when this handler owns the given request path as an RPC call. The
|
|
857
861
|
* procedure name is carried in the body now, so a single exact path is the
|
|
@@ -1112,7 +1116,7 @@ var HttpRpcHandler = class {
|
|
|
1112
1116
|
async runProcedure(procedure, input, serverCtx, minTs, handlerObs) {
|
|
1113
1117
|
if (procedure.type === "query") {
|
|
1114
1118
|
const lastSnapshotTs = await this.deps.db.impl.getLatestSnapshotTimestamp();
|
|
1115
|
-
return runCachedQuery(this.deps.oneShotDeps, procedure, procedure.name, input, serverCtx, lastSnapshotTs, minTs
|
|
1119
|
+
return runCachedQuery(this.deps.oneShotDeps, handlerObs, procedure, procedure.name, input, serverCtx, lastSnapshotTs, minTs);
|
|
1116
1120
|
}
|
|
1117
1121
|
if (procedure.type === "mutation") {
|
|
1118
1122
|
const res = await this.deps.db.mutation(async (ctx) => {
|
|
@@ -1121,8 +1125,8 @@ var HttpRpcHandler = class {
|
|
|
1121
1125
|
db: ctx,
|
|
1122
1126
|
serverCtx,
|
|
1123
1127
|
...primaryOnlyConn,
|
|
1124
|
-
log: handlerObs
|
|
1125
|
-
span: handlerObs
|
|
1128
|
+
log: handlerObs.log,
|
|
1129
|
+
span: handlerObs.span
|
|
1126
1130
|
}, input);
|
|
1127
1131
|
});
|
|
1128
1132
|
return {
|
|
@@ -1136,8 +1140,8 @@ var HttpRpcHandler = class {
|
|
|
1136
1140
|
serverCtx,
|
|
1137
1141
|
storage: this.deps.storage,
|
|
1138
1142
|
scheduler: this.deps.scheduler,
|
|
1139
|
-
log: handlerObs
|
|
1140
|
-
span: handlerObs
|
|
1143
|
+
log: handlerObs.log,
|
|
1144
|
+
span: handlerObs.span
|
|
1141
1145
|
}, input) };
|
|
1142
1146
|
}
|
|
1143
1147
|
async resolveAuth(req) {
|
|
@@ -1182,6 +1186,7 @@ var HttpRpcHandler = class {
|
|
|
1182
1186
|
res.setHeader("access-control-max-age", "86400");
|
|
1183
1187
|
}
|
|
1184
1188
|
send(res, status, body) {
|
|
1189
|
+
body.build = this.buildNumber;
|
|
1185
1190
|
res.writeHead(status, { "content-type": "application/json" });
|
|
1186
1191
|
res.end(supaliveStringify(body));
|
|
1187
1192
|
}
|
|
@@ -1366,6 +1371,7 @@ var SupaliveWebSocketServer = class {
|
|
|
1366
1371
|
verifyAuth: config.verifyAuth,
|
|
1367
1372
|
rpc: config.rpc ?? {},
|
|
1368
1373
|
rpcEnabled: config.rpc !== void 0,
|
|
1374
|
+
buildNumber: config.buildNumber,
|
|
1369
1375
|
storage: this.storage,
|
|
1370
1376
|
scheduler: this.jobClient,
|
|
1371
1377
|
obs: this.obs,
|
|
@@ -1465,6 +1471,14 @@ var SupaliveWebSocketServer = class {
|
|
|
1465
1471
|
this.log.error(err, "Failed to sync job schedules");
|
|
1466
1472
|
}
|
|
1467
1473
|
}
|
|
1474
|
+
/**
|
|
1475
|
+
* The server's {@link Observability} — hand it to the internal caller's
|
|
1476
|
+
* `init({ obs })` so its standalone calls log as per-procedure children of
|
|
1477
|
+
* this server's request logger instead of a no-op.
|
|
1478
|
+
*/
|
|
1479
|
+
getObservability() {
|
|
1480
|
+
return this.obs;
|
|
1481
|
+
}
|
|
1468
1482
|
/** Absolute URL the scheduler POSTs to for a given job name. */
|
|
1469
1483
|
endpointFor(name) {
|
|
1470
1484
|
return `${this.config.publicUrl}${this.jobPath}/${name}`;
|
|
@@ -1692,7 +1706,10 @@ var SupaliveWebSocketServer = class {
|
|
|
1692
1706
|
db: ctx,
|
|
1693
1707
|
serverCtx: session.serverCtx,
|
|
1694
1708
|
...primaryOnlyConn,
|
|
1695
|
-
log: op.handlerObs?.log
|
|
1709
|
+
log: op.handlerObs?.log ?? this.obs.lazyChildLogger({
|
|
1710
|
+
caller: "internal",
|
|
1711
|
+
procedure: op.procedure.name
|
|
1712
|
+
}),
|
|
1696
1713
|
span: op.handlerObs?.span
|
|
1697
1714
|
}, op.validatedInput);
|
|
1698
1715
|
});
|
|
@@ -1763,7 +1780,7 @@ var SupaliveWebSocketServer = class {
|
|
|
1763
1780
|
const validatedInput = procedure.inputSchema.parse(input);
|
|
1764
1781
|
if (procedure.type === "query") {
|
|
1765
1782
|
const lastSnapshotTs = await this.db.impl.getLatestSnapshotTimestamp();
|
|
1766
|
-
const { data, ts } = await runCachedQuery(this.oneShotDeps, procedure, procedureName, validatedInput, session.serverCtx, lastSnapshotTs, minTs
|
|
1783
|
+
const { data, ts } = await runCachedQuery(this.oneShotDeps, handlerObs, procedure, procedureName, validatedInput, session.serverCtx, lastSnapshotTs, minTs);
|
|
1767
1784
|
this.sendMessage(session, {
|
|
1768
1785
|
type: "response",
|
|
1769
1786
|
id,
|
|
@@ -2235,23 +2252,25 @@ var SupaliveWebSocketServer = class {
|
|
|
2235
2252
|
if (!procedure || procedure.type !== "query") throw new Error(`Procedure not defined: ${procedureName}`);
|
|
2236
2253
|
return this.db.liveQuery(async (ctx) => {
|
|
2237
2254
|
const fn = procedure.fn;
|
|
2255
|
+
const callerLog = () => this.obs.lazyChildLogger({
|
|
2256
|
+
caller: "internal",
|
|
2257
|
+
procedure: procedureName
|
|
2258
|
+
});
|
|
2238
2259
|
return traceQueryExecution(procedureName, opts?.trigger ?? "recompute", opts?.parentContext, (querySpan) => fn({
|
|
2239
2260
|
db: ctx,
|
|
2240
2261
|
serverCtx,
|
|
2241
2262
|
...primaryOnlyConn,
|
|
2242
|
-
log: opts?.log,
|
|
2263
|
+
log: opts?.log ?? callerLog(),
|
|
2243
2264
|
span: querySpan
|
|
2244
2265
|
}, input));
|
|
2245
2266
|
});
|
|
2246
2267
|
}
|
|
2247
2268
|
sendMessage(session, message) {
|
|
2248
2269
|
if (session.ws.readyState !== WebSocket.OPEN) return;
|
|
2270
|
+
message.build = this.config.buildNumber;
|
|
2249
2271
|
session.ws.send(supaliveStringify(message));
|
|
2250
2272
|
session.lastSentAt = Date.now();
|
|
2251
2273
|
}
|
|
2252
|
-
sendMessageRaw(session, message) {
|
|
2253
|
-
if (session.ws.readyState === WebSocket.OPEN) session.ws.send(message);
|
|
2254
|
-
}
|
|
2255
2274
|
sendError(session, id, error, code) {
|
|
2256
2275
|
this.sendMessage(session, {
|
|
2257
2276
|
type: "response",
|