@rocicorp/zero 1.4.0-canary.2 → 1.4.0-canary.3

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 (81) hide show
  1. package/out/analyze-query/src/analyze-cli.d.ts +0 -1
  2. package/out/analyze-query/src/analyze-cli.d.ts.map +1 -1
  3. package/out/analyze-query/src/analyze-cli.js +0 -1
  4. package/out/analyze-query/src/analyze-cli.js.map +1 -1
  5. package/out/analyze-query/src/bin-analyze.js +10 -9
  6. package/out/analyze-query/src/bin-analyze.js.map +1 -1
  7. package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
  8. package/out/replicache/src/kv/sqlite-store.js +7 -1
  9. package/out/replicache/src/kv/sqlite-store.js.map +1 -1
  10. package/out/replicache/src/with-transactions.d.ts.map +1 -1
  11. package/out/replicache/src/with-transactions.js +16 -2
  12. package/out/replicache/src/with-transactions.js.map +1 -1
  13. package/out/zero/package.js +8 -2
  14. package/out/zero/package.js.map +1 -1
  15. package/out/zero/src/adapters/kysely.d.ts +2 -0
  16. package/out/zero/src/adapters/kysely.d.ts.map +1 -0
  17. package/out/zero/src/adapters/kysely.js +2 -0
  18. package/out/zero/src/zero.js +2 -1
  19. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  20. package/out/zero-cache/src/auth/write-authorizer.js +14 -1
  21. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  22. package/out/zero-cache/src/db/migration-lite.js +8 -1
  23. package/out/zero-cache/src/db/migration-lite.js.map +1 -1
  24. package/out/zero-cache/src/db/pg-to-lite.d.ts +1 -1
  25. package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
  26. package/out/zero-cache/src/db/pg-to-lite.js +13 -13
  27. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  28. package/out/zero-cache/src/observability/metrics.d.ts +36 -6
  29. package/out/zero-cache/src/observability/metrics.d.ts.map +1 -1
  30. package/out/zero-cache/src/observability/metrics.js +55 -10
  31. package/out/zero-cache/src/observability/metrics.js.map +1 -1
  32. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  33. package/out/zero-cache/src/server/change-streamer.js +2 -0
  34. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  35. package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
  36. package/out/zero-cache/src/services/analyze.js +1 -1
  37. package/out/zero-cache/src/services/analyze.js.map +1 -1
  38. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  39. package/out/zero-cache/src/services/change-source/pg/change-source.js +6 -3
  40. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  41. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  42. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +2 -0
  43. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  44. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  45. package/out/zero-cache/src/services/replicator/change-processor.js +10 -3
  46. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  47. package/out/zero-cache/src/services/view-syncer/client-handler.js +3 -6
  48. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  49. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +2 -2
  50. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +5 -8
  51. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  52. package/out/zero-cache/src/services/view-syncer/row-record-cache.js +4 -7
  53. package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
  54. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  55. package/out/zero-cache/src/services/view-syncer/view-syncer.js +16 -26
  56. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  57. package/out/zero-client/src/client/version.js +1 -1
  58. package/out/zero-client/src/mod.d.ts +1 -0
  59. package/out/zero-client/src/mod.d.ts.map +1 -1
  60. package/out/zero-client/src/mod.js +1 -0
  61. package/out/zero-react/src/zero.js +1 -0
  62. package/out/zero-server/src/adapters/kysely.d.ts +69 -0
  63. package/out/zero-server/src/adapters/kysely.d.ts.map +1 -0
  64. package/out/zero-server/src/adapters/kysely.js +82 -0
  65. package/out/zero-server/src/adapters/kysely.js.map +1 -0
  66. package/out/zero-solid/src/zero.js +1 -0
  67. package/out/zql/src/query/validate-input.d.ts +8 -0
  68. package/out/zql/src/query/validate-input.d.ts.map +1 -1
  69. package/out/zql/src/query/validate-input.js +15 -2
  70. package/out/zql/src/query/validate-input.js.map +1 -1
  71. package/out/zqlite/src/query-builder.js +19 -7
  72. package/out/zqlite/src/query-builder.js.map +1 -1
  73. package/package.json +10 -2
  74. package/out/analyze-query/src/explain-queries.d.ts +0 -4
  75. package/out/analyze-query/src/explain-queries.d.ts.map +0 -1
  76. package/out/analyze-query/src/explain-queries.js +0 -13
  77. package/out/analyze-query/src/explain-queries.js.map +0 -1
  78. package/out/otel/src/test-log-config.d.ts +0 -8
  79. package/out/otel/src/test-log-config.d.ts.map +0 -1
  80. package/out/otel/src/test-log-config.js +0 -12
  81. package/out/otel/src/test-log-config.js.map +0 -1
@@ -8,7 +8,7 @@ import { stringify } from "../../../../shared/src/bigint-json.js";
8
8
  import { manualSpan, startAsyncSpan, startSpan } from "../../../../otel/src/span.js";
9
9
  import { ZERO_VERSION_COLUMN_NAME } from "../replicator/schema/constants.js";
10
10
  import { transformAndHashQuery } from "../../auth/read-authorizer.js";
11
- import { getOrCreateCounter, getOrCreateHistogram, getOrCreateUpDownCounter } from "../../observability/metrics.js";
11
+ import { getOrCreateCounter, getOrCreateLatencyHistogram, getOrCreateUpDownCounter } from "../../observability/metrics.js";
12
12
  import { rowIDString } from "../../types/row-key.js";
13
13
  import "../replicator/schema/replication-state.js";
14
14
  import { ResetPipelinesSignal } from "./snapshotter.js";
@@ -86,25 +86,13 @@ var ViewSyncerService = class {
86
86
  #queryReplacements = /* @__PURE__ */ new Map();
87
87
  #activeClients = getOrCreateUpDownCounter("sync", "active-clients", "Number of active sync clients");
88
88
  #hydrations = getOrCreateCounter("sync", "hydration", "Number of query hydrations");
89
- #hydrationTime = getOrCreateHistogram("sync", "hydration-time", {
90
- description: "Time to hydrate a query.",
91
- unit: "s"
92
- });
93
- #transactionAdvanceTime = getOrCreateHistogram("sync", "advance-time", {
94
- description: "Time to advance all queries for a given client group after applying a new transaction to the replica.",
95
- unit: "s"
96
- });
89
+ #hydrationTime = getOrCreateLatencyHistogram("sync", "hydration-time", "Time to hydrate a query.");
90
+ #transactionAdvanceTime = getOrCreateLatencyHistogram("sync", "advance-time", "Time to advance all queries for a given client group after applying a new transaction to the replica.");
97
91
  #queryTransformations = getOrCreateCounter("sync", "query.transformations", "Number of query transformations performed");
98
- #queryTransformationTime = getOrCreateHistogram("sync", "query.transformation-time", {
99
- description: "Time to transform custom queries via API server",
100
- unit: "s"
101
- });
92
+ #queryTransformationTime = getOrCreateLatencyHistogram("sync", "query.transformation-time", "Time to transform custom queries via API server.");
102
93
  #queryTransformationHashChanges = getOrCreateCounter("sync", "query.transformation-hash-changes", "Number of times query transformation hash changed");
103
94
  #queryTransformationNoOps = getOrCreateCounter("sync", "query.transformation-no-ops", "Number of times query transformation resulted in no-op (hash unchanged)");
104
- #lockWaitTime = getOrCreateHistogram("sync", "lock-wait-time", {
105
- description: "Time spent waiting to acquire the ViewSyncer lock.",
106
- unit: "s"
107
- });
95
+ #lockWaitTime = getOrCreateLatencyHistogram("sync", "lock-wait-time", "Time spent waiting to acquire the ViewSyncer lock.");
108
96
  #pipelineResets = getOrCreateCounter("sync", "pipeline-resets", "Number of pipeline resets");
109
97
  #inspectorDelegate;
110
98
  #config;
@@ -132,7 +120,7 @@ var ViewSyncerService = class {
132
120
  this.#lc.debug?.("about to acquire lock for cvr ", rid);
133
121
  const lockWaitStart = performance.now();
134
122
  return this.#lock.withLock(async () => {
135
- this.#lockWaitTime.record((performance.now() - lockWaitStart) / 1e3);
123
+ this.#lockWaitTime.recordMs(performance.now() - lockWaitStart);
136
124
  this.#lc.debug?.("acquired lock in #runInLockWithCVR ", rid);
137
125
  const lc = this.#lc.withContext("lock", rid);
138
126
  if (!this.#stateChanges.active) {
@@ -625,7 +613,7 @@ var ViewSyncerService = class {
625
613
  });
626
614
  const elapsed = timer.totalElapsed();
627
615
  this.#hydrations.add(1);
628
- this.#hydrationTime.record(elapsed / 1e3);
616
+ this.#hydrationTime.recordMs(elapsed);
629
617
  this.#addQueryMaterializationServerMetric(transformationHash, elapsed);
630
618
  lc.debug?.(`hydrated ${count} rows for ${queryID} (${elapsed} ms)`);
631
619
  }
@@ -727,8 +715,8 @@ var ViewSyncerService = class {
727
715
  this.#queryTransformations.add(1, { result: "error" });
728
716
  throw e;
729
717
  } finally {
730
- const transformDuration = (performance.now() - transformStart) / 1e3;
731
- this.#queryTransformationTime.record(transformDuration);
718
+ const transformDuration = performance.now() - transformStart;
719
+ this.#queryTransformationTime.recordMs(transformDuration);
732
720
  }
733
721
  const successfullyTransformedCustomQueries = /* @__PURE__ */ new Map();
734
722
  erroredQueryIDs = this.#processTransformedCustomQueries(lc, transformedCustomQueries.result, (q) => {
@@ -756,10 +744,11 @@ var ViewSyncerService = class {
756
744
  }
757
745
  }
758
746
  const removeQueriesQueryIds = new Set([...Object.values(cvr.queries).filter((q) => expired(ttlClock, q)).map((q) => q.id), ...erroredQueryIDs || []]);
759
- const addQueries = transformedQueries.map(({ id, transformed }) => ({
747
+ const addQueries = transformedQueries.map(({ id, origQuery, transformed }) => ({
760
748
  id,
761
749
  ast: transformed.transformedAst,
762
- transformationHash: transformed.transformationHash
750
+ transformationHash: transformed.transformationHash,
751
+ name: origQuery.type === "custom" ? origQuery.name : void 0
763
752
  })).filter((q) => !removeQueriesQueryIds.has(q.id) && this.#pipelines.queries().get(q.id)?.transformationHash !== q.transformationHash);
764
753
  lc.info?.(`syncQueryPipelineSet: ${cvrQueryEntires.length} CVR queries, ${customQueriesToTransform.length} custom re-transformed, ${erroredQueryIDs?.length ?? 0} errored, ${removeQueriesQueryIds.size} to remove, ${addQueries.length} to add`);
765
754
  for (const q of addQueries) {
@@ -832,11 +821,12 @@ var ViewSyncerService = class {
832
821
  if (elapsed > slowHydrateThreshold) lc.warn?.("Slow query materialization", elapsed, q.ast);
833
822
  manualSpan(tracer, "vs.addAndConsumeQuery", elapsed, {
834
823
  hash: q.id,
835
- transformationHash: q.transformationHash
824
+ transformationHash: q.transformationHash,
825
+ ...q.name !== void 0 && { name: q.name }
836
826
  });
837
827
  }
838
828
  hydrations.add(1);
839
- hydrationTime.record(totalProcessTime / 1e3);
829
+ hydrationTime.recordMs(totalProcessTime);
840
830
  }
841
831
  await this.#processChanges(lc, timer, generateRowChanges(this.#slowHydrateThreshold), updater, pokers);
842
832
  await startAsyncSpan(tracer, "vs.#syncQueryPipelineSet.deleteUnreferencedRows", async () => {
@@ -1009,7 +999,7 @@ var ViewSyncerService = class {
1009
999
  const wallTime = performance.now() - start;
1010
1000
  const totalProcessTime = timer.totalElapsed();
1011
1001
  lc.info?.(`finished processing advancement of ${numChanges} changes ((process: ${totalProcessTime} ms, wall: ${wallTime} ms))`);
1012
- this.#transactionAdvanceTime.record(totalProcessTime / 1e3);
1002
+ this.#transactionAdvanceTime.recordMs(totalProcessTime);
1013
1003
  return "success";
1014
1004
  });
1015
1005
  }