@rocicorp/zero 0.20.2025050400 → 0.20.2025050600

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 (140) hide show
  1. package/out/analyze-query/src/bin-analyze.js +10 -3
  2. package/out/analyze-query/src/bin-analyze.js.map +1 -1
  3. package/out/{chunk-KOXC55U7.js → chunk-EBZYAQDK.js} +14 -5
  4. package/out/chunk-EBZYAQDK.js.map +7 -0
  5. package/out/{chunk-54ZZCBOP.js → chunk-N44AEZOH.js} +2 -2
  6. package/out/{chunk-IFAC3PDK.js → chunk-VA2YVVTK.js} +58 -9
  7. package/out/{chunk-IFAC3PDK.js.map → chunk-VA2YVVTK.js.map} +2 -2
  8. package/out/{inspector-Z55GQ5JV.js → inspector-GCX7QH7K.js} +3 -3
  9. package/out/react.js +1 -1
  10. package/out/solid.js +3 -3
  11. package/out/z2s/src/compiler.d.ts.map +1 -1
  12. package/out/z2s/src/compiler.js +5 -1
  13. package/out/z2s/src/compiler.js.map +1 -1
  14. package/out/zero-cache/src/config/network.d.ts +5 -0
  15. package/out/zero-cache/src/config/network.d.ts.map +1 -0
  16. package/out/zero-cache/src/config/network.js +47 -0
  17. package/out/zero-cache/src/config/network.js.map +1 -0
  18. package/out/zero-cache/src/config/normalize.d.ts +29 -0
  19. package/out/zero-cache/src/config/normalize.d.ts.map +1 -0
  20. package/out/zero-cache/src/config/normalize.js +73 -0
  21. package/out/zero-cache/src/config/normalize.js.map +1 -0
  22. package/out/zero-cache/src/config/zero-config.d.ts +262 -99
  23. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  24. package/out/zero-cache/src/config/zero-config.js +64 -32
  25. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  26. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  27. package/out/zero-cache/src/server/change-streamer.js +19 -4
  28. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  29. package/out/zero-cache/src/server/main.d.ts +1 -1
  30. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  31. package/out/zero-cache/src/server/main.js +14 -26
  32. package/out/zero-cache/src/server/main.js.map +1 -1
  33. package/out/zero-cache/src/server/replicator.d.ts.map +1 -1
  34. package/out/zero-cache/src/server/replicator.js +15 -4
  35. package/out/zero-cache/src/server/replicator.js.map +1 -1
  36. package/out/zero-cache/src/server/runner/run-worker.d.ts +7 -0
  37. package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
  38. package/out/zero-cache/src/server/runner/run-worker.js +34 -73
  39. package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
  40. package/out/zero-cache/src/server/runner/runtime.d.ts.map +1 -1
  41. package/out/zero-cache/src/server/runner/runtime.js +12 -1
  42. package/out/zero-cache/src/server/runner/runtime.js.map +1 -1
  43. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts +2 -9
  44. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
  45. package/out/zero-cache/src/server/runner/zero-dispatcher.js +9 -46
  46. package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
  47. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  48. package/out/zero-cache/src/server/syncer.js +4 -2
  49. package/out/zero-cache/src/server/syncer.js.map +1 -1
  50. package/out/zero-cache/src/server/worker-dispatcher.d.ts +16 -0
  51. package/out/zero-cache/src/server/worker-dispatcher.d.ts.map +1 -0
  52. package/out/zero-cache/src/server/worker-dispatcher.js +99 -0
  53. package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -0
  54. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  55. package/out/zero-cache/src/services/change-source/pg/change-source.js +12 -6
  56. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  57. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +6 -3
  58. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
  59. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +31 -16
  60. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  61. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +1 -1
  62. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  63. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +4 -15
  64. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  65. package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +1 -1
  66. package/out/zero-cache/src/services/change-streamer/schema/init.js +8 -0
  67. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
  68. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +2 -1
  69. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  70. package/out/zero-cache/src/services/change-streamer/schema/tables.js +19 -13
  71. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
  72. package/out/zero-cache/src/services/change-streamer/storer.d.ts +1 -1
  73. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  74. package/out/zero-cache/src/services/change-streamer/storer.js +6 -2
  75. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  76. package/out/zero-cache/src/services/http-service.d.ts +5 -2
  77. package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
  78. package/out/zero-cache/src/services/http-service.js +27 -11
  79. package/out/zero-cache/src/services/http-service.js.map +1 -1
  80. package/out/zero-cache/src/services/statz.d.ts +1 -1
  81. package/out/zero-cache/src/services/statz.d.ts.map +1 -1
  82. package/out/zero-cache/src/services/statz.js +6 -7
  83. package/out/zero-cache/src/services/statz.js.map +1 -1
  84. package/out/zero-cache/src/types/error-for-client.d.ts +1 -1
  85. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  86. package/out/zero-cache/src/types/pg.js +23 -21
  87. package/out/zero-cache/src/types/pg.js.map +1 -1
  88. package/out/zero-cache/src/{services/dispatcher → types}/websocket-handoff.d.ts +18 -2
  89. package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -0
  90. package/out/zero-cache/src/{services/dispatcher → types}/websocket-handoff.js +14 -6
  91. package/out/zero-cache/src/types/websocket-handoff.js.map +1 -0
  92. package/out/zero-cache/src/{services/dispatcher → workers}/connect-params.d.ts +1 -1
  93. package/out/zero-cache/src/workers/connect-params.d.ts.map +1 -0
  94. package/out/zero-cache/src/{services/dispatcher → workers}/connect-params.js +3 -3
  95. package/out/zero-cache/src/workers/connect-params.js.map +1 -0
  96. package/out/zero-cache/src/workers/connection.d.ts +1 -1
  97. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  98. package/out/zero-cache/src/workers/connection.js +8 -3
  99. package/out/zero-cache/src/workers/connection.js.map +1 -1
  100. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts +1 -1
  101. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
  102. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  103. package/out/zero-cache/src/workers/syncer.js +1 -1
  104. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  105. package/out/zero-protocol/src/ast.d.ts +2 -2
  106. package/out/zero-protocol/src/ast.d.ts.map +1 -1
  107. package/out/zero-protocol/src/ast.js +3 -1
  108. package/out/zero-protocol/src/ast.js.map +1 -1
  109. package/out/zero.js +3 -3
  110. package/out/zql/src/ivm/constraint.d.ts +24 -0
  111. package/out/zql/src/ivm/constraint.d.ts.map +1 -1
  112. package/out/zql/src/ivm/constraint.js +65 -0
  113. package/out/zql/src/ivm/constraint.js.map +1 -1
  114. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  115. package/out/zql/src/ivm/memory-source.js +10 -5
  116. package/out/zql/src/ivm/memory-source.js.map +1 -1
  117. package/out/zql/src/query/query-impl.d.ts +1 -1
  118. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  119. package/out/zql/src/query/query-impl.js +5 -3
  120. package/out/zql/src/query/query-impl.js.map +1 -1
  121. package/package.json +1 -1
  122. package/out/chunk-KOXC55U7.js.map +0 -7
  123. package/out/zero-cache/src/server/runner/config.d.ts +0 -368
  124. package/out/zero-cache/src/server/runner/config.d.ts.map +0 -1
  125. package/out/zero-cache/src/server/runner/config.js +0 -103
  126. package/out/zero-cache/src/server/runner/config.js.map +0 -1
  127. package/out/zero-cache/src/services/dispatcher/connect-params.d.ts.map +0 -1
  128. package/out/zero-cache/src/services/dispatcher/connect-params.js.map +0 -1
  129. package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts +0 -15
  130. package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts.map +0 -1
  131. package/out/zero-cache/src/services/dispatcher/dispatcher.js +0 -64
  132. package/out/zero-cache/src/services/dispatcher/dispatcher.js.map +0 -1
  133. package/out/zero-cache/src/services/dispatcher/websocket-handoff.d.ts.map +0 -1
  134. package/out/zero-cache/src/services/dispatcher/websocket-handoff.js.map +0 -1
  135. package/out/zero-cache/src/types/timeout.d.ts +0 -11
  136. package/out/zero-cache/src/types/timeout.d.ts.map +0 -1
  137. package/out/zero-cache/src/types/timeout.js +0 -23
  138. package/out/zero-cache/src/types/timeout.js.map +0 -1
  139. /package/out/{chunk-54ZZCBOP.js.map → chunk-N44AEZOH.js.map} +0 -0
  140. /package/out/{inspector-Z55GQ5JV.js.map → inspector-GCX7QH7K.js.map} +0 -0
@@ -200,9 +200,24 @@ export declare const zeroOptions: {
200
200
  type: v.Type<number>;
201
201
  desc: string[];
202
202
  };
203
- changeStreamerPort: {
204
- type: v.Optional<number>;
205
- desc: string[];
203
+ changeStreamer: {
204
+ mode: {
205
+ type: v.Type<"dedicated" | "discover">;
206
+ desc: string[];
207
+ };
208
+ port: {
209
+ type: v.Optional<number>;
210
+ desc: string[];
211
+ };
212
+ address: {
213
+ type: v.Optional<string>;
214
+ desc: string[];
215
+ };
216
+ discoveryInterfacePreferences: {
217
+ type: v.Type<string[]>;
218
+ desc: string[];
219
+ hidden: boolean;
220
+ };
206
221
  };
207
222
  taskID: {
208
223
  type: v.Optional<string>;
@@ -222,10 +237,6 @@ export declare const zeroOptions: {
222
237
  type: v.Optional<number>;
223
238
  desc: string[];
224
239
  };
225
- changeStreamerURI: {
226
- type: v.Optional<string>;
227
- desc: string[];
228
- };
229
240
  autoReset: {
230
241
  type: v.Type<boolean>;
231
242
  desc: string[];
@@ -310,123 +321,275 @@ export declare const zeroOptions: {
310
321
  type: v.Type<boolean>;
311
322
  desc: string[];
312
323
  };
324
+ serverVersion: {
325
+ type: v.Optional<string>;
326
+ desc: string[];
327
+ };
313
328
  };
314
- export type ZeroConfig = ReturnType<typeof getZeroConfig>;
329
+ export type ZeroConfig = Config<typeof zeroOptions>;
315
330
  export declare const ZERO_ENV_VAR_PREFIX = "ZERO_";
316
- export declare function getZeroConfig(env?: NodeJS.ProcessEnv, argv?: string[]): {
331
+ export declare function getZeroConfig(env?: NodeJS.ProcessEnv, argv?: string[]): Config<{
317
332
  upstream: {
318
- db: string;
319
- type: "pg" | "custom";
320
- maxConns: number;
321
- } & {
322
- maxConnsPerWorker?: number | undefined;
333
+ db: {
334
+ type: v.Type<string>;
335
+ desc: string[];
336
+ };
337
+ type: {
338
+ type: v.Type<"pg" | "custom">;
339
+ desc: string[];
340
+ hidden: boolean;
341
+ };
342
+ maxConns: {
343
+ type: v.Type<number>;
344
+ desc: string[];
345
+ };
346
+ maxConnsPerWorker: {
347
+ type: v.Optional<number>;
348
+ hidden: boolean;
349
+ };
323
350
  };
324
- push: {} & {
325
- url?: string | undefined;
326
- apiKey?: string | undefined;
351
+ push: {
352
+ url: {
353
+ type: v.Optional<string>;
354
+ desc: string[];
355
+ };
356
+ apiKey: {
357
+ type: v.Optional<string>;
358
+ desc: string[];
359
+ };
327
360
  };
328
361
  cvr: {
329
- maxConns: number;
330
- } & {
331
- db?: string | undefined;
332
- maxConnsPerWorker?: number | undefined;
362
+ db: {
363
+ type: v.Optional<string>;
364
+ desc: string[];
365
+ };
366
+ maxConns: {
367
+ type: v.Type<number>;
368
+ desc: string[];
369
+ };
370
+ maxConnsPerWorker: {
371
+ type: v.Optional<number>;
372
+ hidden: boolean;
373
+ };
374
+ };
375
+ queryHydrationStats: {
376
+ type: v.Optional<boolean>;
377
+ desc: string[];
333
378
  };
334
379
  change: {
335
- maxConns: number;
336
- } & {
337
- db?: string | undefined;
380
+ db: {
381
+ type: v.Optional<string>;
382
+ desc: string[];
383
+ };
384
+ maxConns: {
385
+ type: v.Type<number>;
386
+ desc: string[];
387
+ };
338
388
  };
339
389
  replica: {
340
- file: string;
341
- } & {
342
- vacuumIntervalHours?: number | undefined;
390
+ file: {
391
+ type: v.Type<string>;
392
+ desc: string[];
393
+ };
394
+ vacuumIntervalHours: {
395
+ type: v.Optional<number>;
396
+ desc: string[];
397
+ };
343
398
  };
344
399
  log: {
345
- level: "error" | "debug" | "info" | "warn";
346
- format: "text" | "json";
347
- slowRowThreshold: number;
348
- slowHydrateThreshold: number;
349
- ivmSampling: number;
350
- } & {
351
- traceCollector?: string | undefined;
352
- metricCollector?: string | undefined;
353
- logCollector?: string | undefined;
400
+ level: v.Type<"error" | "debug" | "info" | "warn">;
401
+ format: {
402
+ type: v.Type<"text" | "json">;
403
+ desc: string[];
404
+ };
405
+ traceCollector: {
406
+ type: v.Optional<string>;
407
+ desc: string[];
408
+ };
409
+ metricCollector: {
410
+ type: v.Optional<string>;
411
+ desc: string[];
412
+ };
413
+ logCollector: {
414
+ type: v.Optional<string>;
415
+ desc: string[];
416
+ };
417
+ slowRowThreshold: {
418
+ type: v.Type<number>;
419
+ desc: string[];
420
+ };
421
+ slowHydrateThreshold: {
422
+ type: v.Type<number>;
423
+ desc: string[];
424
+ };
425
+ ivmSampling: {
426
+ type: v.Type<number>;
427
+ desc: string[];
428
+ };
354
429
  };
355
430
  app: {
356
- id: string;
357
- publications: string[];
358
- } & {};
431
+ id: {
432
+ type: v.Type<string>;
433
+ desc: string[];
434
+ };
435
+ publications: {
436
+ type: v.Type<string[]>;
437
+ desc: string[];
438
+ };
439
+ };
359
440
  shard: {
360
- num: number;
361
- } & {
362
- id?: string | undefined;
441
+ id: {
442
+ type: v.Optional<string>;
443
+ hidden: boolean;
444
+ };
445
+ num: {
446
+ type: v.Type<number>;
447
+ desc: string[];
448
+ hidden: boolean;
449
+ };
363
450
  };
364
- auth: {} & {
365
- jwk?: string | undefined;
366
- jwksUrl?: string | undefined;
367
- secret?: string | undefined;
451
+ auth: {
452
+ jwk: {
453
+ type: v.Optional<string>;
454
+ desc: string[];
455
+ };
456
+ jwksUrl: {
457
+ type: v.Optional<string>;
458
+ desc: string[];
459
+ };
460
+ secret: {
461
+ type: v.Optional<string>;
462
+ desc: string[];
463
+ };
464
+ };
465
+ port: {
466
+ type: v.Type<number>;
467
+ desc: string[];
468
+ };
469
+ changeStreamer: {
470
+ mode: {
471
+ type: v.Type<"dedicated" | "discover">;
472
+ desc: string[];
473
+ };
474
+ port: {
475
+ type: v.Optional<number>;
476
+ desc: string[];
477
+ };
478
+ address: {
479
+ type: v.Optional<string>;
480
+ desc: string[];
481
+ };
482
+ discoveryInterfacePreferences: {
483
+ type: v.Type<string[]>;
484
+ desc: string[];
485
+ hidden: boolean;
486
+ };
487
+ };
488
+ taskID: {
489
+ type: v.Optional<string>;
490
+ desc: string[];
368
491
  };
369
- port: number;
370
492
  perUserMutationLimit: {
371
- windowMs: number;
372
- } & {
373
- max?: number | undefined;
493
+ max: {
494
+ type: v.Optional<number>;
495
+ desc: string[];
496
+ };
497
+ windowMs: {
498
+ type: v.Type<number>;
499
+ desc: string[];
500
+ };
501
+ };
502
+ numSyncWorkers: {
503
+ type: v.Optional<number>;
504
+ desc: string[];
505
+ };
506
+ autoReset: {
507
+ type: v.Type<boolean>;
508
+ desc: string[];
509
+ };
510
+ adminPassword: {
511
+ type: v.Optional<string>;
512
+ desc: string[];
374
513
  };
375
- autoReset: boolean;
376
514
  litestream: {
377
- configPath: string;
378
- logLevel: "error" | "debug" | "info" | "warn";
379
- checkpointThresholdMB: number;
380
- incrementalBackupIntervalMinutes: number;
381
- snapshotBackupIntervalHours: number;
382
- restoreParallelism: number;
383
- multipartConcurrency: number;
384
- multipartSize: number;
385
- } & {
386
- executable?: string | undefined;
387
- backupURL?: string | undefined;
388
- port?: number | undefined;
389
- restoreDurationMsEstimate?: number | undefined;
515
+ executable: {
516
+ type: v.Optional<string>;
517
+ desc: string[];
518
+ };
519
+ configPath: {
520
+ type: v.Type<string>;
521
+ desc: string[];
522
+ };
523
+ logLevel: {
524
+ type: v.Type<"error" | "debug" | "info" | "warn">;
525
+ };
526
+ backupURL: {
527
+ type: v.Optional<string>;
528
+ desc: string[];
529
+ };
530
+ port: {
531
+ type: v.Optional<number>;
532
+ desc: string[];
533
+ };
534
+ checkpointThresholdMB: {
535
+ type: v.Type<number>;
536
+ desc: string[];
537
+ };
538
+ incrementalBackupIntervalMinutes: {
539
+ type: v.Type<number>;
540
+ desc: string[];
541
+ };
542
+ snapshotBackupIntervalHours: {
543
+ type: v.Type<number>;
544
+ desc: string[];
545
+ };
546
+ restoreParallelism: {
547
+ type: v.Type<number>;
548
+ desc: string[];
549
+ };
550
+ multipartConcurrency: {
551
+ type: v.Type<number>;
552
+ desc: string[];
553
+ };
554
+ multipartSize: {
555
+ type: v.Type<number>;
556
+ desc: string[];
557
+ };
558
+ restoreDurationMsEstimate: {
559
+ type: v.Optional<number>;
560
+ desc: string[];
561
+ };
390
562
  };
391
- initialSync: {
392
- tableCopyWorkers: number;
393
- rowBatchSize: number;
394
- } & {};
395
- targetClientRowCount: number;
396
- lazyStartup: boolean;
397
- } & {
398
- queryHydrationStats?: boolean | undefined;
399
- changeStreamerPort?: number | undefined;
400
- taskID?: string | undefined;
401
- numSyncWorkers?: number | undefined;
402
- changeStreamerURI?: string | undefined;
403
- adminPassword?: string | undefined;
404
- storageDBTmpDir?: string | undefined;
405
- tenantID?: string | undefined;
406
- } & {
407
- cvr: {
408
- db: string;
563
+ storageDBTmpDir: {
564
+ type: v.Optional<string>;
565
+ desc: string[];
409
566
  };
410
- change: {
411
- db: string;
567
+ initialSync: {
568
+ tableCopyWorkers: {
569
+ type: v.Type<number>;
570
+ desc: string[];
571
+ };
572
+ rowBatchSize: {
573
+ type: v.Type<number>;
574
+ desc: string[];
575
+ };
412
576
  };
413
- };
414
- export declare function normalizeZeroConfig<T extends {
415
- cvr: {
416
- db?: string | undefined;
577
+ tenantID: {
578
+ type: v.Optional<string>;
579
+ desc: string[];
580
+ hidden: boolean;
417
581
  };
418
- change?: {
419
- db?: string | undefined;
420
- } | undefined;
421
- upstream: {
422
- db: string;
582
+ targetClientRowCount: {
583
+ type: v.Type<number>;
584
+ desc: string[];
423
585
  };
424
- }>(config: T): T & {
425
- cvr: {
426
- db: string;
586
+ lazyStartup: {
587
+ type: v.Type<boolean>;
588
+ desc: string[];
427
589
  };
428
- change: {
429
- db: string;
590
+ serverVersion: {
591
+ type: v.Optional<string>;
592
+ desc: string[];
430
593
  };
431
- };
594
+ }>;
432
595
  //# sourceMappingURL=zero-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zero-config.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAe,KAAK,MAAM,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AAOnD,YAAY,EAAC,SAAS,EAAC,MAAM,kCAAkC,CAAC;AAEhE,eAAO,MAAM,UAAU;;;;;;;;;CA+CtB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;CAwBxB,CAAC;AAEF,QAAA,MAAM,cAAc;;;;;;;;;CAmBnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,QAAA,MAAM,oBAAoB;;;;;;;;;CAczB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5D,QAAA,MAAM,WAAW;;;;;;;;;;;;;CAmBhB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAKpD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyXvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAI3C,wBAAgB,aAAa,CAC3B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,WAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW7B;AAED,wBAAgB,mBAAmB,CACjC,CAAC,SAAS;IACR,GAAG,EAAE;QACH,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACzB,CAAC;IACF,MAAM,CAAC,EACH;QACE,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACzB,GACD,SAAS,CAAC;IACd,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;CACH,EACD,MAAM,EAAE,CAAC;;;;;;;EAYV"}
1
+ {"version":3,"file":"zero-config.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAe,KAAK,MAAM,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AAOnD,YAAY,EAAC,SAAS,EAAC,MAAM,kCAAkC,CAAC;AAEhE,eAAO,MAAM,UAAU;;;;;;;;;CA+CtB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;CAwBxB,CAAC;AAEF,QAAA,MAAM,cAAc;;;;;;;;;CAmBnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,QAAA,MAAM,oBAAoB;;;;;;;;;CAczB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5D,QAAA,MAAM,WAAW;;;;;;;;;;;;;CAmBhB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAKpD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyavB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAI3C,wBAAgB,aAAa,CAC3B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,WAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAU7B"}
@@ -240,15 +240,65 @@ export const zeroOptions = {
240
240
  type: v.number().default(4848),
241
241
  desc: [`The port for sync connections.`],
242
242
  },
243
- changeStreamerPort: {
244
- type: v.number().optional(),
245
- desc: [
246
- `The port on which the {bold change-streamer} runs. This is an internal`,
247
- `protocol between the {bold replication-manager} and {bold zero-cache}, which`,
248
- `runs in the same process in local development.`,
249
- ``,
250
- `If unspecified, defaults to {bold --port} + 1.`,
251
- ],
243
+ changeStreamer: {
244
+ mode: {
245
+ type: v
246
+ .union(v.literal('dedicated'), v.literal('discover'))
247
+ .default('dedicated'),
248
+ desc: [
249
+ `The mode for running or connecting to the change-streamer:`,
250
+ `* {bold dedicated}: runs the change-streamer and shuts down when another`,
251
+ ` change-streamer takes over the replication slot. This is appropriate in a `,
252
+ ` single-node configuration, or for the {bold replication-manager} in a `,
253
+ ` multi-node configuration.`,
254
+ `* {bold discover}: connects to the change-streamer as internally advertised in the`,
255
+ ` change-db. This is appropriate for the {bold view-syncers} in a multi-node `,
256
+ ` configuration.`,
257
+ ],
258
+ },
259
+ port: {
260
+ type: v.number().optional(),
261
+ desc: [
262
+ `The port on which the {bold change-streamer} runs. This is an internal`,
263
+ `protocol between the {bold replication-manager} and {bold view-syncers}, which`,
264
+ `runs in the same process tree in local development or a single-node configuration.`,
265
+ ``,
266
+ `If unspecified, defaults to {bold --port} + 1.`,
267
+ ],
268
+ },
269
+ address: {
270
+ type: v.string().optional(),
271
+ desc: [
272
+ `The {bold host:port} for other processes to use when connecting to this `,
273
+ `change-streamer. When unspecified, the machine's IP address and the`,
274
+ `{bold --change-streamer-port} will be advertised for discovery.`,
275
+ ``,
276
+ `In most cases, the default behavior (unspecified) is sufficient, including in a`,
277
+ `single-node configuration or a multi-node configuration with host/awsvpc networking`,
278
+ `(e.g. Fargate).`,
279
+ ``,
280
+ `For a multi-node configuration in which the process is unable to determine the`,
281
+ `externally addressable port (e.g. a container running with {bold bridge} mode networking),`,
282
+ `the {bold --change-streamer-address} must be specified manually (e.g. a load balancer or`,
283
+ `service discovery address).`,
284
+ ],
285
+ },
286
+ discoveryInterfacePreferences: {
287
+ type: v.array(v.string()).default([
288
+ 'eth', // linux
289
+ 'en', // macbooks
290
+ ]),
291
+ desc: [
292
+ `The name prefixes to prefer when introspecting the network interfaces to determine`,
293
+ `the externally reachable IP address for change-streamer discovery. This defaults`,
294
+ `to commonly used names for standard ethernet interfaces in order to prevent selecting`,
295
+ `special interfaces such as those for VPNs.`,
296
+ ],
297
+ // More confusing than it's worth to advertise this. The default list should be
298
+ // adjusted to make things work for all environments; it is controlled as a
299
+ // hidden flag as an emergency to unblock people with outlier network configs.
300
+ hidden: true,
301
+ },
252
302
  },
253
303
  taskID: {
254
304
  type: v.string().optional(),
@@ -270,15 +320,6 @@ export const zeroOptions = {
270
320
  `configuration for running the {bold replication-manager}.`,
271
321
  ],
272
322
  },
273
- changeStreamerURI: {
274
- type: v.string().optional(),
275
- desc: [
276
- `When unset, the zero-cache runs its own {bold replication-manager}`,
277
- `(i.e. {bold change-streamer}). In production, this should be set to`,
278
- `the {bold replication-manager} URI, which runs a {bold change-streamer}`,
279
- `on port 4849.`,
280
- ],
281
- },
282
323
  autoReset: {
283
324
  type: v.boolean().default(true),
284
325
  desc: [
@@ -463,6 +504,10 @@ export const zeroOptions = {
463
504
  'Currently only supported in single-node mode.',
464
505
  ],
465
506
  },
507
+ serverVersion: {
508
+ type: v.string().optional(),
509
+ desc: [`The version string outputted to logs when the server starts up.`],
510
+ },
466
511
  };
467
512
  export const ZERO_ENV_VAR_PREFIX = 'ZERO_';
468
513
  let loadedConfig;
@@ -473,19 +518,6 @@ export function getZeroConfig(env = process.env, argv = process.argv.slice(2)) {
473
518
  runtimeDebugFlags.trackRowsVended = true;
474
519
  }
475
520
  }
476
- return normalizeZeroConfig(loadedConfig);
477
- }
478
- export function normalizeZeroConfig(config) {
479
- return {
480
- ...config,
481
- cvr: {
482
- ...config.cvr,
483
- db: config.cvr.db ?? config.upstream.db,
484
- },
485
- change: {
486
- ...config.change,
487
- db: config.change?.db ?? config.upstream.db,
488
- },
489
- };
521
+ return loadedConfig;
490
522
  }
491
523
  //# sourceMappingURL=zero-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zero-config.js","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zero-config.js","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"change-streamer.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAI/B,wBAA8B,SAAS,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CAqGf"}
1
+ {"version":3,"file":"change-streamer.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAI/B,wBAA8B,SAAS,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CAmHf"}
@@ -1,6 +1,7 @@
1
1
  import { assert } from "../../../shared/src/asserts.js";
2
2
  import { must } from "../../../shared/src/must.js";
3
3
  import { DatabaseInitError } from "../../../zqlite/src/db.js";
4
+ import { assertNormalized } from "../config/normalize.js";
4
5
  import { getZeroConfig } from "../config/zero-config.js";
5
6
  import { deleteLiteDB } from "../db/delete-lite-db.js";
6
7
  import { warmupConnections } from "../db/warmup.js";
@@ -17,14 +18,28 @@ import { getShardConfig } from "../types/shards.js";
17
18
  import { createLogContext } from "./logging.js";
18
19
  export default async function runWorker(parent, env) {
19
20
  const config = getZeroConfig(env);
20
- const { taskID, changeStreamerPort: port = config.port + 1, upstream, change, replica, initialSync, litestream, } = config;
21
+ assertNormalized(config);
22
+ const { taskID, changeStreamer: { port, address }, upstream, change, replica, initialSync, litestream, } = config;
21
23
  const lc = createLogContext(config, { worker: 'change-streamer' });
22
24
  // Kick off DB connection warmup in the background.
23
- const changeDB = pgClient(lc, change.db ?? upstream.db, {
25
+ const changeDB = pgClient(lc, change.db, {
24
26
  max: change.maxConns,
25
27
  connection: { ['application_name']: 'zero-change-streamer' },
26
28
  });
27
29
  void warmupConnections(lc, changeDB, 'change');
30
+ // Start the web server immediately to respond to container health checks
31
+ // on 4849. This prevents the container from being considered unhealthy if
32
+ // initial sync takes a long time (the max container grace period is only
33
+ // 5 minutes), and since the server explicitly advertises readiness via the
34
+ // Change DB, the container health check is more of a "liveness" signal than
35
+ // a "serving" signal.
36
+ //
37
+ // Load-balancer health checks (on /keepalive), on the other hand, have
38
+ // an unlimited grace period. In case those are being used, the server
39
+ // will not respond to /keepalives until the change-streamer is ready to
40
+ // serve.
41
+ const changeStreamerWebServer = new ChangeStreamerHttpServer(lc, { port }, parent);
42
+ void changeStreamerWebServer.start();
28
43
  const { autoReset } = config;
29
44
  const shard = getShardConfig(config);
30
45
  let changeStreamer;
@@ -37,7 +52,7 @@ export default async function runWorker(parent, env) {
37
52
  ? await initializePostgresChangeSource(lc, upstream.db, shard, replica.file, initialSync)
38
53
  : await initializeCustomChangeSource(lc, upstream.db, shard, replica.file);
39
54
  initialSyncTime = Date.now() - start;
40
- changeStreamer = await initializeStreamer(lc, shard, must(taskID, `main must set --task-id`), changeDB, changeSource, subscriptionState, autoReset ?? false);
55
+ changeStreamer = await initializeStreamer(lc, shard, taskID, address, changeDB, changeSource, subscriptionState, autoReset ?? false);
41
56
  break;
42
57
  }
43
58
  catch (e) {
@@ -56,7 +71,7 @@ export default async function runWorker(parent, env) {
56
71
  }
57
72
  // impossible: upstream must have advanced in order for replication to be stuck.
58
73
  assert(changeStreamer, `resetting replica did not advance replicaVersion`);
59
- const changeStreamerWebServer = new ChangeStreamerHttpServer(config, lc, changeStreamer, { port }, parent);
74
+ changeStreamerWebServer.setDelegate(changeStreamer);
60
75
  parent.send(['ready', { ready: true }]);
61
76
  const services = [changeStreamer, changeStreamerWebServer];
62
77
  if (litestream.backupURL) {
@@ -1 +1 @@
1
- {"version":3,"file":"change-streamer.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-streamer.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"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"}