@procedures/mongo 0.33.0 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +34 -5
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/index.d.ts +3 -3
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/procedures/collections.create.d.ts.map +1 -1
  9. package/dist/procedures/collections.create.js +5 -5
  10. package/dist/procedures/collections.create.js.map +1 -1
  11. package/dist/procedures/collections.drop.d.ts.map +1 -1
  12. package/dist/procedures/collections.drop.js +5 -5
  13. package/dist/procedures/collections.drop.js.map +1 -1
  14. package/dist/procedures/collections.list.d.ts.map +1 -1
  15. package/dist/procedures/collections.list.js +4 -4
  16. package/dist/procedures/collections.list.js.map +1 -1
  17. package/dist/procedures/collections.stats.d.ts.map +1 -1
  18. package/dist/procedures/collections.stats.js +4 -4
  19. package/dist/procedures/collections.stats.js.map +1 -1
  20. package/dist/procedures/database.info.d.ts.map +1 -1
  21. package/dist/procedures/database.info.js +4 -4
  22. package/dist/procedures/database.info.js.map +1 -1
  23. package/dist/procedures/database.ping.d.ts.map +1 -1
  24. package/dist/procedures/database.ping.js +4 -4
  25. package/dist/procedures/database.ping.js.map +1 -1
  26. package/dist/procedures/documents.aggregate.d.ts.map +1 -1
  27. package/dist/procedures/documents.aggregate.js +5 -5
  28. package/dist/procedures/documents.aggregate.js.map +1 -1
  29. package/dist/procedures/documents.bulk.d.ts.map +1 -1
  30. package/dist/procedures/documents.bulk.js +3 -3
  31. package/dist/procedures/documents.bulk.js.map +1 -1
  32. package/dist/procedures/documents.count.d.ts.map +1 -1
  33. package/dist/procedures/documents.count.js +5 -5
  34. package/dist/procedures/documents.count.js.map +1 -1
  35. package/dist/procedures/documents.delete.d.ts.map +1 -1
  36. package/dist/procedures/documents.delete.js +3 -3
  37. package/dist/procedures/documents.delete.js.map +1 -1
  38. package/dist/procedures/documents.distinct.d.ts.map +1 -1
  39. package/dist/procedures/documents.distinct.js +5 -5
  40. package/dist/procedures/documents.distinct.js.map +1 -1
  41. package/dist/procedures/documents.explain.d.ts.map +1 -1
  42. package/dist/procedures/documents.explain.js +3 -3
  43. package/dist/procedures/documents.explain.js.map +1 -1
  44. package/dist/procedures/documents.find.d.ts.map +1 -1
  45. package/dist/procedures/documents.find.js +3 -3
  46. package/dist/procedures/documents.find.js.map +1 -1
  47. package/dist/procedures/documents.get.d.ts.map +1 -1
  48. package/dist/procedures/documents.get.js +3 -3
  49. package/dist/procedures/documents.get.js.map +1 -1
  50. package/dist/procedures/documents.insert.d.ts.map +1 -1
  51. package/dist/procedures/documents.insert.js +5 -5
  52. package/dist/procedures/documents.insert.js.map +1 -1
  53. package/dist/procedures/documents.update.d.ts.map +1 -1
  54. package/dist/procedures/documents.update.js +3 -3
  55. package/dist/procedures/documents.update.js.map +1 -1
  56. package/dist/procedures/indexes.create.d.ts.map +1 -1
  57. package/dist/procedures/indexes.create.js +5 -5
  58. package/dist/procedures/indexes.create.js.map +1 -1
  59. package/dist/procedures/indexes.drop.d.ts.map +1 -1
  60. package/dist/procedures/indexes.drop.js +5 -5
  61. package/dist/procedures/indexes.drop.js.map +1 -1
  62. package/dist/procedures/indexes.list.d.ts.map +1 -1
  63. package/dist/procedures/indexes.list.js +4 -4
  64. package/dist/procedures/indexes.list.js.map +1 -1
  65. package/dist/procedures/watch.d.ts.map +1 -1
  66. package/dist/procedures/watch.js +3 -3
  67. package/dist/procedures/watch.js.map +1 -1
  68. package/dist/storage/document-storage.d.ts +177 -8
  69. package/dist/storage/document-storage.d.ts.map +1 -1
  70. package/dist/storage/document-storage.js +383 -72
  71. package/dist/storage/document-storage.js.map +1 -1
  72. package/dist/storage/index.d.ts +3 -3
  73. package/dist/storage/index.d.ts.map +1 -1
  74. package/dist/storage/index.js +2 -1
  75. package/dist/storage/index.js.map +1 -1
  76. package/dist/storage/materializer.d.ts +27 -12
  77. package/dist/storage/materializer.d.ts.map +1 -1
  78. package/dist/storage/materializer.js +37 -15
  79. package/dist/storage/materializer.js.map +1 -1
  80. package/package.json +3 -3
  81. package/src/index.ts +11 -3
  82. package/src/procedures/collections.create.ts +5 -9
  83. package/src/procedures/collections.drop.ts +5 -9
  84. package/src/procedures/collections.list.ts +4 -8
  85. package/src/procedures/collections.stats.ts +4 -8
  86. package/src/procedures/database.info.ts +4 -8
  87. package/src/procedures/database.ping.ts +4 -8
  88. package/src/procedures/documents.aggregate.ts +5 -9
  89. package/src/procedures/documents.bulk.ts +3 -5
  90. package/src/procedures/documents.count.ts +5 -9
  91. package/src/procedures/documents.delete.ts +3 -5
  92. package/src/procedures/documents.distinct.ts +5 -9
  93. package/src/procedures/documents.explain.ts +3 -5
  94. package/src/procedures/documents.find.ts +2 -5
  95. package/src/procedures/documents.get.ts +2 -5
  96. package/src/procedures/documents.insert.ts +5 -9
  97. package/src/procedures/documents.update.ts +3 -5
  98. package/src/procedures/indexes.create.ts +5 -9
  99. package/src/procedures/indexes.drop.ts +5 -9
  100. package/src/procedures/indexes.list.ts +4 -8
  101. package/src/procedures/watch.ts +3 -5
  102. package/src/storage/document-storage.ts +441 -71
  103. package/src/storage/index.ts +11 -3
  104. package/src/storage/materializer.ts +54 -22
@@ -1 +1 @@
1
- {"version":3,"file":"materializer.js","sourceRoot":"","sources":["../../src/storage/materializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"materializer.js","sourceRoot":"","sources":["../../src/storage/materializer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "@procedures/mongo",
4
- "version": "0.33.0",
4
+ "version": "0.35.0",
5
5
  "description": "MongoDB as typed procedures: documents, bulk writes, distinct, explain, collections, indexes, aggregation, change streams and database info, with safe update and delete targets.",
6
6
  "keywords": [
7
7
  "mongodb",
@@ -72,8 +72,8 @@
72
72
  "procedures": "./dist/register.js"
73
73
  },
74
74
  "dependencies": {
75
- "@procedures/client": "0.33.0",
76
- "@procedures/collections": "0.33.0",
75
+ "@procedures/client": "0.35.0",
76
+ "@procedures/collections": "0.35.0",
77
77
  "mongodb": "^7.0.0",
78
78
  "zod": "^4.6.5"
79
79
  },
package/src/index.ts CHANGED
@@ -138,8 +138,16 @@ export type {
138
138
  // Storage (CollectionStorage implementation)
139
139
  // =============================================================================
140
140
 
141
- export { MongoStorage, MongoDocumentStorage, selectorPrefilter } from "./storage/index.js";
142
- export type { MongoStorageOptions, MongoDocumentStorageOptions } from "./storage/index.js";
141
+ export {
142
+ MongoStorage,
143
+ MongoDocumentStorage,
144
+ selectorPrefilter,
145
+ DOCUMENT_STORAGE_FIELDS,
146
+ TOMBSTONE_FIELD,
147
+ DEFAULT_STORED_FORM,
148
+ decodeStoredDocument,
149
+ } from "./storage/index.js";
150
+ export type { MongoStorageOptions, MongoDocumentStorageOptions, SelectorPrefilterOptions, StoredForm, DecodeStoredDocumentOptions, StoredDocumentEntry } from "./storage/index.js";
143
151
  // The guard of an aggregation pipeline over shared collections, and its limits (Graph's split plan, P3)
144
152
  export {
145
153
  BLOCKED_PIPELINE_OPERATORS,
@@ -181,7 +189,7 @@ export type {
181
189
  } from "mongodb";
182
190
  // Materialized views driven by change streams (Graph's split plan, P4)
183
191
  export { ViewMaterializer, identityPartition, partitionTargetId, viewFilter, VIEW_GENERATION_FIELD, VIEW_HASH_FIELD } from "./storage/index.js";
184
- export type { MaterializedView, MaterializedViewStatus, ViewMaterializerOptions, ViewPartitionOf, ViewPipelineScope, ViewTargetId } from "./storage/index.js";
192
+ export type { MaterializedView, MaterializedViewStatus, ViewMaterializerOptions, ViewPartitionOf, ViewPipelineScope, ViewStorageSource, ViewTargetId } from "./storage/index.js";
185
193
  // A read-only storage of a view for the collection procedures: one generation for each read (roadmap CLI-38)
186
194
  export { MongoViewStorage } from "./storage/index.js";
187
195
  export type { MongoViewStorageOptions } from "./storage/index.js";
@@ -3,7 +3,7 @@
3
3
  * Create a new collection
4
4
  */
5
5
 
6
- import { createProcedure, zodAdapter, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
6
+ import { createProcedure, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
7
7
  import { databaseFor, type ScopeInput } from "../scope.js";
8
8
  import { scopeFields, documentObject } from "./input-schemas.js";
9
9
  import { z } from "zod";
@@ -22,8 +22,7 @@ interface CreateOutput {
22
22
  }
23
23
 
24
24
  // Schemas
25
- const createInputSchema = zodAdapter<CreateInput>(
26
- z.object({
25
+ const createInputSchema: z.ZodType<CreateInput> = z.object({
27
26
  ...scopeFields(),
28
27
  name: z.string().min(1).describe("The name of the new collection"),
29
28
  options: z
@@ -35,14 +34,11 @@ const createInputSchema = zodAdapter<CreateInput>(
35
34
  })
36
35
  .optional()
37
36
  .describe("The options of the collection"),
38
- })
39
- );
40
- const createOutputSchema = zodAdapter<CreateOutput>(
41
- z.looseObject({
37
+ });
38
+ const createOutputSchema: z.ZodType<CreateOutput> = z.looseObject({
42
39
  acknowledged: z.boolean().describe("True when the server confirmed the write"),
43
40
  collectionName: z.string().describe("The name of the new collection"),
44
- })
45
- );
41
+ });
46
42
 
47
43
  export const createCollectionProcedure: Procedure<
48
44
  CreateInput,
@@ -3,7 +3,7 @@
3
3
  * Drop (delete) a collection
4
4
  */
5
5
 
6
- import { createProcedure, zodAdapter, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
6
+ import { createProcedure, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
7
7
  import { collectionName, databaseFor, type ScopeInput } from "../scope.js";
8
8
  import { scopeFields } from "./input-schemas.js";
9
9
  import { z } from "zod";
@@ -20,18 +20,14 @@ interface DropOutput {
20
20
  }
21
21
 
22
22
  // Schemas
23
- const dropInputSchema = zodAdapter<DropInput>(
24
- z.object({
23
+ const dropInputSchema: z.ZodType<DropInput> = z.object({
25
24
  ...scopeFields(),
26
25
  confirm: z.boolean().describe("Set to true to drop the collection and all of its documents"),
27
- })
28
- );
29
- const dropOutputSchema = zodAdapter<DropOutput>(
30
- z.looseObject({
26
+ });
27
+ const dropOutputSchema: z.ZodType<DropOutput> = z.looseObject({
31
28
  acknowledged: z.boolean().describe("True when the server confirmed the write"),
32
29
  dropped: z.boolean().describe("False when the collection did not exist"),
33
- })
34
- );
30
+ });
35
31
 
36
32
  export const dropProcedure: Procedure<
37
33
  DropInput,
@@ -3,7 +3,7 @@
3
3
  * List all collections in the database
4
4
  */
5
5
 
6
- import { createProcedure, zodAdapter, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
6
+ import { createProcedure, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
7
7
  import { databaseFor, type ScopeInput } from "../scope.js";
8
8
  import { scopeFields } from "./input-schemas.js";
9
9
  import { z } from "zod";
@@ -17,14 +17,10 @@ interface ListOutput {
17
17
  }
18
18
 
19
19
  // Schemas
20
- const listInputSchema = zodAdapter<ListInput>(
21
- z.object({ ...scopeFields() })
22
- );
23
- const listOutputSchema = zodAdapter<ListOutput>(
24
- z.looseObject({
20
+ const listInputSchema: z.ZodType<ListInput> = z.object({ ...scopeFields() });
21
+ const listOutputSchema: z.ZodType<ListOutput> = z.looseObject({
25
22
  collections: z.array(z.string()).describe("The collection names of the database"),
26
- })
27
- );
23
+ });
28
24
 
29
25
  export const listProcedure: Procedure<
30
26
  ListInput,
@@ -3,7 +3,7 @@
3
3
  * Get collection statistics
4
4
  */
5
5
 
6
- import { createProcedure, zodAdapter, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
6
+ import { createProcedure, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
7
7
  import { collectionFor, type ScopeInput } from "../scope.js";
8
8
  import { scopeFields } from "./input-schemas.js";
9
9
  import { z } from "zod";
@@ -14,19 +14,15 @@ import type { CollectionStats } from "../types.js";
14
14
  type StatsInput = ScopeInput;
15
15
 
16
16
  // Schemas
17
- const statsInputSchema = zodAdapter<StatsInput>(
18
- z.object({ ...scopeFields() })
19
- );
20
- const statsOutputSchema = zodAdapter<CollectionStats>(
21
- z.looseObject({
17
+ const statsInputSchema: z.ZodType<StatsInput> = z.object({ ...scopeFields() });
18
+ const statsOutputSchema: z.ZodType<CollectionStats> = z.looseObject({
22
19
  count: z.number().describe("The number of documents"),
23
20
  size: z.number().describe("The size of the documents, in bytes"),
24
21
  avgObjSize: z.number().describe("The average size of a document, in bytes"),
25
22
  storageSize: z.number().describe("The storage size, in bytes"),
26
23
  nindexes: z.number().describe("The number of indexes"),
27
24
  totalIndexSize: z.number().describe("The size of the indexes, in bytes"),
28
- })
29
- );
25
+ });
30
26
 
31
27
  export const statsProcedure: Procedure<
32
28
  StatsInput,
@@ -3,7 +3,7 @@
3
3
  * Get database information and statistics
4
4
  */
5
5
 
6
- import { createProcedure, zodAdapter, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
6
+ import { createProcedure, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
7
7
  import { databaseFor, type ScopeInput } from "../scope.js";
8
8
  import { scopeFields } from "./input-schemas.js";
9
9
  import { z } from "zod";
@@ -14,18 +14,14 @@ import { type DatabaseInfo } from "../types.js";
14
14
  type InfoInput = ScopeInput;
15
15
 
16
16
  // Schemas
17
- const infoInputSchema = zodAdapter<InfoInput>(
18
- z.object({ ...scopeFields() })
19
- );
20
- const infoOutputSchema = zodAdapter<DatabaseInfo>(
21
- z.looseObject({
17
+ const infoInputSchema: z.ZodType<InfoInput> = z.object({ ...scopeFields() });
18
+ const infoOutputSchema: z.ZodType<DatabaseInfo> = z.looseObject({
22
19
  name: z.string().describe("The database name"),
23
20
  collections: z.number().describe("The number of collections (views not counted)"),
24
21
  views: z.number().describe("The number of views"),
25
22
  sizeOnDisk: z.number().describe("The data size, in bytes"),
26
23
  empty: z.boolean().describe("True when the database has no collections"),
27
- })
28
- );
24
+ });
29
25
 
30
26
  export const infoProcedure: Procedure<
31
27
  InfoInput,
@@ -3,7 +3,7 @@
3
3
  * Health check and connectivity test
4
4
  */
5
5
 
6
- import { createProcedure, zodAdapter, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
6
+ import { createProcedure, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
7
7
  import { databaseFor, type ScopeInput } from "../scope.js";
8
8
  import { scopeFields } from "./input-schemas.js";
9
9
  import { z } from "zod";
@@ -18,15 +18,11 @@ interface PingOutput {
18
18
  }
19
19
 
20
20
  // Schemas
21
- const pingInputSchema = zodAdapter<PingInput>(
22
- z.object({ ...scopeFields() })
23
- );
24
- const pingOutputSchema = zodAdapter<PingOutput>(
25
- z.looseObject({
21
+ const pingInputSchema: z.ZodType<PingInput> = z.object({ ...scopeFields() });
22
+ const pingOutputSchema: z.ZodType<PingOutput> = z.looseObject({
26
23
  ok: z.boolean().describe("True when the server answered"),
27
24
  latencyMs: z.number().describe("The time of the ping, in milliseconds"),
28
- })
29
- );
25
+ });
30
26
 
31
27
  export const pingProcedure: Procedure<
32
28
  PingInput,
@@ -3,7 +3,7 @@
3
3
  * Run an aggregation pipeline
4
4
  */
5
5
 
6
- import { createProcedure, zodAdapter, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
6
+ import { createProcedure, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
7
7
  import { collectionFor, type ScopeInput } from "../scope.js";
8
8
  import { scopeFields, documentObject } from "./input-schemas.js";
9
9
  import { z } from "zod";
@@ -25,8 +25,7 @@ interface AggregateOutput {
25
25
  }
26
26
 
27
27
  // Schemas
28
- const aggregateInputSchema = zodAdapter<AggregateInput>(
29
- z.object({
28
+ const aggregateInputSchema: z.ZodType<AggregateInput> = z.object({
30
29
  ...scopeFields(),
31
30
  pipeline: z.array(documentObject()).describe("The aggregation stages, in order (for example [{ $match: {...} }, { $group: {...} }])"),
32
31
  options: z
@@ -36,13 +35,10 @@ const aggregateInputSchema = zodAdapter<AggregateInput>(
36
35
  })
37
36
  .optional()
38
37
  .describe("The options of the aggregation"),
39
- })
40
- );
41
- const aggregateOutputSchema = zodAdapter<AggregateOutput>(
42
- z.looseObject({
38
+ });
39
+ const aggregateOutputSchema: z.ZodType<AggregateOutput> = z.looseObject({
43
40
  results: z.array(z.record(z.string(), z.unknown())).describe("The documents that the pipeline gave"),
44
- })
45
- );
41
+ });
46
42
 
47
43
  /** The stages that write to a collection. A read-only procedure refuses them (CAP-2). */
48
44
  const WRITING_STAGES = ["$out", "$merge"];
@@ -10,7 +10,7 @@
10
10
  * of an update or a delete needs `confirm: true`, and an unknown field is an error.
11
11
  */
12
12
 
13
- import { createProcedure, zodAdapter, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
13
+ import { createProcedure, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
14
14
  import type { AnyBulkWriteOperation, Document } from "mongodb";
15
15
  import { z } from "zod";
16
16
  import { collectionFor, copyScope, SCOPE_FIELDS, type ScopeInput } from "../scope.js";
@@ -148,8 +148,7 @@ const bulkInputSchema = described<BulkInput>(
148
148
  confirm: z.boolean().optional().describe("Set to true to use an empty filter, which matches every document, in an update or a delete"),
149
149
  })
150
150
  );
151
- const bulkOutputSchema = zodAdapter<BulkOutput>(
152
- z.looseObject({
151
+ const bulkOutputSchema: z.ZodType<BulkOutput> = z.looseObject({
153
152
  ok: z.boolean().describe("True when the server confirmed the writes"),
154
153
  insertedCount: z.number().describe("The number of inserted documents"),
155
154
  matchedCount: z.number().describe("The number of documents that the updates matched"),
@@ -158,8 +157,7 @@ const bulkOutputSchema = zodAdapter<BulkOutput>(
158
157
  upsertedCount: z.number().describe("The number of documents that an upsert made"),
159
158
  insertedIds: z.record(z.string(), z.string()).describe("The ids of the inserted documents, as text, by the index of their operation"),
160
159
  upsertedIds: z.record(z.string(), z.string()).describe("The ids of the upserted documents, as text, by the index of their operation"),
161
- })
162
- );
160
+ });
163
161
 
164
162
  export const bulkProcedure: Procedure<
165
163
  BulkInput,
@@ -3,7 +3,7 @@
3
3
  * Count documents matching a filter
4
4
  */
5
5
 
6
- import { createProcedure, zodAdapter, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
6
+ import { createProcedure, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
7
7
  import { collectionFor, type ScopeInput } from "../scope.js";
8
8
  import { scopeFields, documentObject } from "./input-schemas.js";
9
9
  import { z } from "zod";
@@ -19,17 +19,13 @@ interface CountOutput {
19
19
  }
20
20
 
21
21
  // Schemas
22
- const countInputSchema = zodAdapter<CountInput>(
23
- z.object({
22
+ const countInputSchema: z.ZodType<CountInput> = z.object({
24
23
  ...scopeFields(),
25
24
  query: documentObject().optional().describe("The filter of the documents to count (default: all documents)"),
26
- })
27
- );
28
- const countOutputSchema = zodAdapter<CountOutput>(
29
- z.looseObject({
25
+ });
26
+ const countOutputSchema: z.ZodType<CountOutput> = z.looseObject({
30
27
  count: z.number().describe("The number of documents that match"),
31
- })
32
- );
28
+ });
33
29
 
34
30
  export const countProcedure: Procedure<
35
31
  CountInput,
@@ -3,7 +3,7 @@
3
3
  * Delete documents matching a filter
4
4
  */
5
5
 
6
- import { createProcedure, type Effects, type Procedure, type ProcedureContext, zodAdapter } from "@procedures/client";
6
+ import { createProcedure, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
7
7
  import { collectionFor } from "../scope.js";
8
8
  import { described, scopeFields, targetFields } from "./input-schemas.js";
9
9
  import { z } from "zod";
@@ -23,12 +23,10 @@ const deleteInputSchema = described<DeleteInput>(
23
23
  (data: unknown) => parseTarget("mongo.documents.delete", data).target,
24
24
  z.object({ ...scopeFields(), ...targetFields() })
25
25
  );
26
- const deleteOutputSchema = zodAdapter<DeleteOutput>(
27
- z.looseObject({
26
+ const deleteOutputSchema: z.ZodType<DeleteOutput> = z.looseObject({
28
27
  acknowledged: z.boolean().describe("True when the server confirmed the write"),
29
28
  deletedCount: z.number().describe("The number of deleted documents"),
30
- })
31
- );
29
+ });
32
30
 
33
31
  export const deleteProcedure: Procedure<
34
32
  DeleteInput,
@@ -3,7 +3,7 @@
3
3
  * The distinct values of one field in the documents that match a filter
4
4
  */
5
5
 
6
- import { createProcedure, zodAdapter, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
6
+ import { createProcedure, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
7
7
  import { collectionFor, type ScopeInput } from "../scope.js";
8
8
  import { scopeFields, documentObject } from "./input-schemas.js";
9
9
  import { z } from "zod";
@@ -22,18 +22,14 @@ interface DistinctOutput {
22
22
  }
23
23
 
24
24
  // Schemas
25
- const distinctInputSchema = zodAdapter<DistinctInput>(
26
- z.object({
25
+ const distinctInputSchema: z.ZodType<DistinctInput> = z.object({
27
26
  ...scopeFields(),
28
27
  field: z.string().min(1).describe('The field, with dots for an embedded field (for example "address.city")'),
29
28
  query: documentObject().optional().describe("The filter of the documents (default: all documents)"),
30
- })
31
- );
32
- const distinctOutputSchema = zodAdapter<DistinctOutput>(
33
- z.looseObject({
29
+ });
30
+ const distinctOutputSchema: z.ZodType<DistinctOutput> = z.looseObject({
34
31
  values: z.array(z.unknown()).describe("The distinct values of the field. An array field gives each of its elements."),
35
- })
36
- );
32
+ });
37
33
 
38
34
  export const distinctProcedure: Procedure<
39
35
  DistinctInput,
@@ -7,7 +7,7 @@
7
7
  * the verbosity `executionStats` runs the plan.
8
8
  */
9
9
 
10
- import { createProcedure, zodAdapter, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
10
+ import { createProcedure, type Effects, type Procedure, type ProcedureContext } from "@procedures/client";
11
11
  import type { Document, ExplainVerbosityLike, FindOptions } from "mongodb";
12
12
  import { z } from "zod";
13
13
  import { collectionFor, copyScope, SCOPE_FIELDS, type ScopeInput } from "../scope.js";
@@ -108,12 +108,10 @@ const explainInputSchema = described<ExplainInput>(
108
108
  .describe("queryPlanner (the default): the plan only. executionStats and allPlansExecution also run the plan."),
109
109
  })
110
110
  );
111
- const explainOutputSchema = zodAdapter<ExplainOutput>(
112
- z.looseObject({
111
+ const explainOutputSchema: z.ZodType<ExplainOutput> = z.looseObject({
113
112
  operation: z.enum(["find", "aggregate"]).describe("The operation that the server explained"),
114
113
  plan: z.record(z.string(), z.unknown()).describe("The explain document of the server (queryPlanner, and executionStats with that verbosity)"),
115
- })
116
- );
114
+ });
117
115
 
118
116
  export const explainProcedure: Procedure<
119
117
  ExplainInput,