@procedures/mongo 0.34.0 → 0.35.1

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 (43) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +61 -5
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/index.d.ts +5 -3
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +3 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/module.d.ts +2 -2
  9. package/dist/module.d.ts.map +1 -1
  10. package/dist/module.js +4 -5
  11. package/dist/module.js.map +1 -1
  12. package/dist/procedures/input-schemas.d.ts.map +1 -1
  13. package/dist/procedures/input-schemas.js +29 -2
  14. package/dist/procedures/input-schemas.js.map +1 -1
  15. package/dist/storage/document-storage.d.ts +338 -10
  16. package/dist/storage/document-storage.d.ts.map +1 -1
  17. package/dist/storage/document-storage.js +704 -75
  18. package/dist/storage/document-storage.js.map +1 -1
  19. package/dist/storage/index.d.ts +5 -3
  20. package/dist/storage/index.d.ts.map +1 -1
  21. package/dist/storage/index.js +4 -1
  22. package/dist/storage/index.js.map +1 -1
  23. package/dist/storage/materializer.d.ts +27 -12
  24. package/dist/storage/materializer.d.ts.map +1 -1
  25. package/dist/storage/materializer.js +44 -15
  26. package/dist/storage/materializer.js.map +1 -1
  27. package/dist/storage/own-writes.d.ts +51 -0
  28. package/dist/storage/own-writes.d.ts.map +1 -0
  29. package/dist/storage/own-writes.js +130 -0
  30. package/dist/storage/own-writes.js.map +1 -0
  31. package/dist/storage/storage-hints.d.ts +230 -0
  32. package/dist/storage/storage-hints.d.ts.map +1 -0
  33. package/dist/storage/storage-hints.js +876 -0
  34. package/dist/storage/storage-hints.js.map +1 -0
  35. package/package.json +3 -3
  36. package/src/index.ts +15 -3
  37. package/src/module.ts +5 -5
  38. package/src/procedures/input-schemas.ts +29 -2
  39. package/src/storage/document-storage.ts +832 -75
  40. package/src/storage/index.ts +15 -3
  41. package/src/storage/materializer.ts +61 -22
  42. package/src/storage/own-writes.ts +157 -0
  43. package/src/storage/storage-hints.ts +971 -0
package/dist/index.d.ts CHANGED
@@ -26,15 +26,17 @@ export type { ScopeInput } from "./scope.js";
26
26
  export { hasCollection, requireCollection, getBaseMeta, } from "./types.js";
27
27
  export type { MongoProcedures, ProcedureInput, ProcedureOutput, PingInput, PingOutput, InfoInput, ListCollectionsInput, ListCollectionsOutput, CreateCollectionInput, CreateCollectionOutput, DropCollectionInput, DropCollectionOutput, StatsInput, FindInput, FindOutput, GetInput, GetOutput, InsertInput, InsertOutput, UpdateInput, UpdateOutput, DeleteInput, DeleteOutput, CountInput, CountOutput, AggregateInput, AggregateOutput, DistinctInput, DistinctOutput, BulkInput, BulkOutput, ExplainInput, ExplainOutput, WatchInput, WatchChange, ListIndexesInput, ListIndexesOutput, CreateIndexInput, CreateIndexOutput, DropIndexInput, DropIndexOutput, } from "./procedures.types.js";
28
28
  export type { PaginationInput, PaginationOutput, SortOrder, SortSpec, DocumentId, BaseDocument, MongoDocument, DocumentQuery, DocumentUpdate, BaseMeta, CollectionMeta, BulkInsertOne, BulkUpdateOne, BulkUpdateMany, BulkDeleteOne, BulkDeleteMany, BulkOperation, BulkWriteResult, IndexSpec, IndexOptions, IndexInfo, CollectionOptions, CollectionStats, DatabaseInfo, AggregationStage, AggregationOptions, } from "./types.js";
29
- export { MongoStorage, MongoDocumentStorage, selectorPrefilter } from "./storage/index.js";
30
- export type { MongoStorageOptions, MongoDocumentStorageOptions } from "./storage/index.js";
29
+ export { MongoStorage, MongoDocumentStorage, selectorPrefilter, DOCUMENT_STORAGE_FIELDS, TOMBSTONE_FIELD, DEFAULT_STORED_FORM, decodeStoredDocument, versionOfStored, } from "./storage/index.js";
30
+ export type { MongoStorageOptions, MongoDocumentStorageOptions, SelectorPrefilterOptions, StoredForm, DecodeStoredDocumentOptions, StoredDocumentEntry } from "./storage/index.js";
31
+ export { watchStorageChanges, storageChangeOf } from "./storage/index.js";
32
+ export type { StorageChange, StorageChangeHint, StorageChangesWatch, StorageHintPublisher, WatchStorageChangesOptions } from "./storage/index.js";
31
33
  export { BLOCKED_PIPELINE_OPERATORS, ALLOWED_PIPELINE_STAGES, DEFAULT_PIPELINE_LIMITS, assertNoBlockedOperators, boundPipeline, cutResults, isTimeLimitError, scopePipeline, } from "./storage/index.js";
32
34
  export type { PipelineLimits, PipelineScope } from "./storage/index.js";
33
35
  export { registerMongoProcedures, procedures } from "./module.js";
34
36
  export * from "./procedures/index.js";
35
37
  export type { Db, Collection, Document, ObjectId, Filter, UpdateFilter, FindOptions, AggregateOptions, } from "mongodb";
36
38
  export { ViewMaterializer, identityPartition, partitionTargetId, viewFilter, VIEW_GENERATION_FIELD, VIEW_HASH_FIELD } from "./storage/index.js";
37
- export type { MaterializedView, MaterializedViewStatus, ViewMaterializerOptions, ViewPartitionOf, ViewPipelineScope, ViewTargetId } from "./storage/index.js";
39
+ export type { MaterializedView, MaterializedViewStatus, ViewMaterializerOptions, ViewPartitionOf, ViewPipelineScope, ViewStorageSource, ViewTargetId } from "./storage/index.js";
38
40
  export { MongoViewStorage } from "./storage/index.js";
39
41
  export type { MongoViewStorageOptions } from "./storage/index.js";
40
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,OAAO,EACL,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC/E,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C,OAAO,EAEL,aAAa,EACb,iBAAiB,EACjB,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,eAAe,EACf,cAAc,EACd,eAAe,EAEf,SAAS,EACT,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,SAAS,EACT,UAAU,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAEV,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,QAAQ,EAER,UAAU,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EAEd,QAAQ,EACR,cAAc,EAEd,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,EAEf,SAAS,EACT,YAAY,EACZ,SAAS,EAET,iBAAiB,EACjB,eAAe,EAEf,YAAY,EAEZ,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC3F,YAAY,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAE3F,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxE,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMlE,cAAc,uBAAuB,CAAC;AAMtC,YAAY,EACV,EAAE,EACF,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAChJ,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9J,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -33,7 +33,9 @@ hasCollection, requireCollection, getBaseMeta, } from "./types.js";
33
33
  // =============================================================================
34
34
  // Storage (CollectionStorage implementation)
35
35
  // =============================================================================
36
- export { MongoStorage, MongoDocumentStorage, selectorPrefilter } from "./storage/index.js";
36
+ export { MongoStorage, MongoDocumentStorage, selectorPrefilter, DOCUMENT_STORAGE_FIELDS, TOMBSTONE_FIELD, DEFAULT_STORED_FORM, decodeStoredDocument, versionOfStored, } from "./storage/index.js";
37
+ // The change hints of a storage collection from its change stream (roadmap CLI-77)
38
+ export { watchStorageChanges, storageChangeOf } from "./storage/index.js";
37
39
  // The guard of an aggregation pipeline over shared collections, and its limits (Graph's split plan, P3)
38
40
  export { BLOCKED_PIPELINE_OPERATORS, ALLOWED_PIPELINE_STAGES, DEFAULT_PIPELINE_LIMITS, assertNoBlockedOperators, boundPipeline, cutResults, isTimeLimitError, scopePipeline, } from "./storage/index.js";
39
41
  // =============================================================================
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,OAAO,EACL,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAKzB,gFAAgF;AAChF,QAAQ;AACR,gFAAgF;AAEhF,OAAO;AACL,cAAc;AACd,aAAa,EACb,iBAAiB,EACjB,WAAW,GACZ,MAAM,YAAY,CAAC;AAqFpB,gFAAgF;AAChF,6CAA6C;AAC7C,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE3F,wGAAwG;AACxG,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAElE,gFAAgF;AAChF,sDAAsD;AACtD,gFAAgF;AAEhF,cAAc,uBAAuB,CAAC;AAgBtC,uEAAuE;AACvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhJ,6GAA6G;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,OAAO,EACL,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAKzB,gFAAgF;AAChF,QAAQ;AACR,gFAAgF;AAEhF,OAAO;AACL,cAAc;AACd,aAAa,EACb,iBAAiB,EACjB,WAAW,GACZ,MAAM,YAAY,CAAC;AAqFpB,gFAAgF;AAChF,6CAA6C;AAC7C,gFAAgF;AAEhF,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,mFAAmF;AACnF,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1E,wGAAwG;AACxG,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAElE,gFAAgF;AAChF,sDAAsD;AACtD,gFAAgF;AAEhF,cAAc,uBAAuB,CAAC;AAgBtC,uEAAuE;AACvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhJ,6GAA6G;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/module.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  * Registers MongoDB procedures with the client system.
7
7
  * This file is referenced by package.json's client.procedures field.
8
8
  */
9
- import { type AnyProcedure, type ProcedureModule, type ProcedureRegistry } from "@procedures/client";
9
+ import { type AnyProcedure, type ProcedureModule, type PackageDefinition } from "@procedures/client";
10
10
  /**
11
11
  * All MongoDB procedures
12
12
  */
@@ -22,5 +22,5 @@ export default mongoModule;
22
22
  * a registry. The default is the global registry. Importing this file registers nothing: the
23
23
  * `./register` entry starts this function (ARCHITECTURE-PROPOSALS-2026-10, P9).
24
24
  */
25
- export declare function registerMongoProcedures(registry?: ProcedureRegistry): void;
25
+ export declare const registerMongoProcedures: PackageDefinition["register"];
26
26
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAgB,KAAK,eAAe,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAwBxJ;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,YAAY,EA0B7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,eAAoE,CAAC;eAEhF,WAAW;AAE1B;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,GAAE,iBAAsC,GAAG,IAAI,CAE9F"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAiB,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAwBpH;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,YAAY,EA0B7C,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,eAAqC,CAAC;eAEjD,WAAW;AAE1B;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,iBAAiB,CAAC,UAAU,CAAyB,CAAC"}
package/dist/module.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * Registers MongoDB procedures with the client system.
7
7
  * This file is referenced by package.json's client.procedures field.
8
8
  */
9
- import { defineModule, PROCEDURE_REGISTRY, registerModules } from "@procedures/client";
9
+ import { definePackage } from "@procedures/client";
10
10
  // Import all procedures
11
11
  import { pingProcedure } from "./procedures/database.ping.js";
12
12
  import { infoProcedure } from "./procedures/database.info.js";
@@ -58,18 +58,17 @@ export const procedures = [
58
58
  // Change streams
59
59
  watchProcedure,
60
60
  ];
61
+ const mongoPackage = definePackage("@procedures/mongo", [...procedures]);
61
62
  /**
62
63
  * The module of this package, for `createRegistry()`: its procedures as data. Importing this
63
64
  * file registers nothing. (`register.ts` registers the same procedures in the global registry.)
64
65
  */
65
- export const mongoModule = defineModule("@procedures/mongo", [...procedures]);
66
+ export const mongoModule = mongoPackage.module;
66
67
  export default mongoModule;
67
68
  /**
68
69
  * This function registers the procedures of @procedures/mongo, and of the modules that it requires, in
69
70
  * a registry. The default is the global registry. Importing this file registers nothing: the
70
71
  * `./register` entry starts this function (ARCHITECTURE-PROPOSALS-2026-10, P9).
71
72
  */
72
- export function registerMongoProcedures(registry = PROCEDURE_REGISTRY) {
73
- registerModules(registry, [mongoModule]);
74
- }
73
+ export const registerMongoProcedures = mongoPackage.register;
75
74
  //# sourceMappingURL=module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAqB,YAAY,EAAwB,kBAAkB,EAAE,eAAe,EAA0B,MAAM,oBAAoB,CAAC;AAExJ,wBAAwB;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAA4B;IACjD,WAAW;IACX,aAAa;IACb,aAAa;IACb,cAAc;IACd,aAAa;IACb,yBAAyB;IACzB,aAAa;IACb,cAAc;IACd,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,eAAe;IACf,eAAe;IACf,eAAe;IACf,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,aAAa;IACb,gBAAgB;IAChB,UAAU;IACV,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,cAAc;CACf,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAoB,YAAY,CAAC,mBAAmB,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;AAE/F,eAAe,WAAW,CAAC;AAE3B;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAQ,GAAsB,kBAAkB;IACtF,eAAe,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAmE,MAAM,oBAAoB,CAAC;AAEpH,wBAAwB;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAA4B;IACjD,WAAW;IACX,aAAa;IACb,aAAa;IACb,cAAc;IACd,aAAa;IACb,yBAAyB;IACzB,aAAa;IACb,cAAc;IACd,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,eAAe;IACf,eAAe;IACf,eAAe;IACf,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,aAAa;IACb,gBAAgB;IAChB,UAAU;IACV,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,cAAc;CACf,CAAC;AAEF,MAAM,YAAY,GAAsB,aAAa,CAAC,mBAAmB,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;AAE5F;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAoB,YAAY,CAAC,MAAM,CAAC;AAEhE,eAAe,WAAW,CAAC;AAE3B;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAkC,YAAY,CAAC,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"input-schemas.d.ts","sourceRoot":"","sources":["../../src/procedures/input-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAA4B,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAElF,8DAA8D;AAC9D,wBAAgB,WAAW,IAAI;IAAE,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAAC,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;CAAE,CAK9G;AAED,iEAAiE;AACjE,wBAAgB,cAAc,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,CAEvE;AAED,gFAAgF;AAChF,wBAAgB,YAAY,IAAI;IAC9B,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC,CAAC;IAC3F,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;CACtC,CAUA;AAED,+BAA+B;AAC/B,wBAAgB,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC,CAKhH;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAE/F"}
1
+ {"version":3,"file":"input-schemas.d.ts","sourceRoot":"","sources":["../../src/procedures/input-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE7E,8DAA8D;AAC9D,wBAAgB,WAAW,IAAI;IAAE,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAAC,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;CAAE,CAK9G;AAED,iEAAiE;AACjE,wBAAgB,cAAc,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,CAEvE;AAED,gFAAgF;AAChF,wBAAgB,YAAY,IAAI;IAC9B,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC,CAAC;IAC3F,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;CACtC,CAUA;AAED,+BAA+B;AAC/B,wBAAgB,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC,CAKhH;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CA6B/F"}
@@ -11,7 +11,7 @@
11
11
  * a zod object that names the same fields.
12
12
  */
13
13
  import { z } from "zod";
14
- import { jsonSchemaOf, zodAdapter } from "@procedures/client";
14
+ import { jsonSchemaOf, typed } from "@procedures/client";
15
15
  /** The fields that select the database and the collection. */
16
16
  export function scopeFields() {
17
17
  return {
@@ -47,6 +47,33 @@ export function idTypeField() {
47
47
  * that names the same fields.
48
48
  */
49
49
  export function described(parse, fields) {
50
- return Object.assign(zodAdapter({ parse }), { "~jsonSchema": jsonSchemaOf(fields) });
50
+ const safeParse = (data) => {
51
+ try {
52
+ return { success: true, data: parse(data) };
53
+ }
54
+ catch (error) {
55
+ const err = error;
56
+ const message = err.message ?? "Validation failed";
57
+ // A plain Error has no issues: its message is the one issue
58
+ const issues = err.issues ?? err.errors;
59
+ return { success: false, error: { message, issues: issues && issues.length > 0 ? issues : [{ message }] } };
60
+ }
61
+ };
62
+ // typed<T>() gives the type and the shape. The parse function replaces its pass-through validation
63
+ const schema = typed();
64
+ return Object.assign(schema, {
65
+ parse: (data) => parse(data),
66
+ safeParse,
67
+ "~standard": {
68
+ ...schema["~standard"],
69
+ validate: (value) => {
70
+ const result = safeParse(value);
71
+ return result.success
72
+ ? { value: result.data }
73
+ : { issues: (result.error.issues ?? []).map((issue) => ({ message: issue.message, path: issue.path })) };
74
+ },
75
+ },
76
+ "~jsonSchema": jsonSchemaOf(fields),
77
+ });
51
78
  }
52
79
  //# sourceMappingURL=input-schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-schemas.js","sourceRoot":"","sources":["../../src/procedures/input-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAsB,MAAM,oBAAoB,CAAC;AAElF,8DAA8D;AAC9D,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;QACpH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;KAC/G,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,YAAY;IAO1B,OAAO;QACL,MAAM,EAAE,cAAc,EAAE;aACrB,QAAQ,EAAE;aACV,QAAQ,CAAC,sGAAsG,CAAC;QACnH,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAC/F,MAAM,EAAE,WAAW,EAAE;QACrB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;QAChG,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;KAC7G,CAAC;AACJ,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC;SACL,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;SACpC,QAAQ,EAAE;SACV,QAAQ,CAAC,2FAA2F,CAAC,CAAC;AAC3G,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAI,KAA2B,EAAE,MAAmB;IAC3E,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"input-schemas.js","sourceRoot":"","sources":["../../src/procedures/input-schemas.ts"],"names":[],"mappings":"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"}