@procedures/mongo 0.8.1 → 0.9.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-storage.js","sourceRoot":"","sources":["../../src/storage/document-storage.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,8 @@
3
3
  */
4
4
  export { MongoStorage } from "./mongo-storage.js";
5
5
  export type { MongoStorageOptions } from "./mongo-storage.js";
6
+ export { MongoDocumentStorage, selectorPrefilter } from "./document-storage.js";
7
+ export type { MongoDocumentStorageOptions } from "./document-storage.js";
8
+ export { BLOCKED_PIPELINE_OPERATORS, ALLOWED_PIPELINE_STAGES, DEFAULT_PIPELINE_LIMITS, assertNoBlockedOperators, boundPipeline, cutResults, isTimeLimitError, scopePipeline, } from "./pipeline-scope.js";
9
+ export type { PipelineLimits, PipelineScope } from "./pipeline-scope.js";
6
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAChF,YAAY,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -2,4 +2,6 @@
2
2
  * MongoDB Storage Exports
3
3
  */
4
4
  export { MongoStorage } from "./mongo-storage.js";
5
+ export { MongoDocumentStorage, selectorPrefilter } from "./document-storage.js";
6
+ export { BLOCKED_PIPELINE_OPERATORS, ALLOWED_PIPELINE_STAGES, DEFAULT_PIPELINE_LIMITS, assertNoBlockedOperators, boundPipeline, cutResults, isTimeLimitError, scopePipeline, } from "./pipeline-scope.js";
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * The guard of an aggregation pipeline over shared collections (Graph's split plan, part P3). A
3
+ * pipeline of a caller reads only the documents of a filter (for example of one tenant or one
4
+ * partition), on each collection that it reads, and a write stamps its fields.
5
+ *
6
+ * - The filter goes before the first stage, into a stage that must be first (`$geoNear`,
7
+ * `$search`, `$vectorSearch`), into a `$match` with `$text`, and into each sub-pipeline
8
+ * (`$lookup`, `$graphLookup`, `$unionWith`, `$facet`).
9
+ * - A pipeline reads and writes only the collections of the scope (`from`, `coll`, `into`).
10
+ * - `$out` replaces a whole collection, so it is refused. `$merge` is refused unless the scope
11
+ * permits writes: then it gets the stamp, and its match key includes the stamp fields.
12
+ * - Only the stages of `ALLOWED_PIPELINE_STAGES` pass: the stages of the server are refused. The
13
+ * JavaScript operators of the server (`$function`, `$accumulator`, `$where`) are refused at each
14
+ * depth.
15
+ * - A stage has exactly one key, so a second key cannot hide a refused stage.
16
+ * - The function changes no part of the pipeline of the caller.
17
+ */
18
+ import type { Document } from "mongodb";
19
+ import { type Duration } from "@procedures/client";
20
+ /**
21
+ * The stages that a scoped pipeline can have: the stages that read and change the documents of
22
+ * the stream. Another stage is refused, so a stage of the server that a later MongoDB adds (for
23
+ * example `$listClusterCatalog`) is refused too. `$documents` (documents from the pipeline) and
24
+ * `$out` (it replaces a whole collection) are not in it.
25
+ */
26
+ export declare const ALLOWED_PIPELINE_STAGES: ReadonlySet<string>;
27
+ /** The operators that start JavaScript on the server. */
28
+ export declare const BLOCKED_PIPELINE_OPERATORS: ReadonlySet<string>;
29
+ /** The scope of a pipeline. */
30
+ export interface PipelineScope {
31
+ /** The filter of the documents that the pipeline can read, on each collection that it reads. */
32
+ readonly match: Document;
33
+ /**
34
+ * The collections that the pipeline can read (`$lookup`, `$graphLookup`, `$unionWith`) and
35
+ * write (`$merge`). Each of them gets the filter. Give only the collections that the caller can
36
+ * read: a pipeline needs the same right as a direct read.
37
+ */
38
+ readonly collections: readonly string[];
39
+ /** The fields that each written document gets. With them, the pipeline can end in `$merge`. */
40
+ readonly stamp?: Document | undefined;
41
+ }
42
+ /** This function throws when a value has a JavaScript operator of the server, at any depth. */
43
+ export declare function assertNoBlockedOperators(value: unknown): void;
44
+ /** This function gives the pipeline with the filter of the scope on each read, and the stamp on each write. */
45
+ export declare function scopePipeline(pipeline: readonly Document[], scope: PipelineScope): Document[];
46
+ /** The limits of an aggregation of a caller. */
47
+ export interface PipelineLimits {
48
+ /** The longest time of the aggregation (default 10 s). A plain number is a `TypeError`. */
49
+ readonly maxTime?: Duration | undefined;
50
+ /** The most documents of the result (default 5000). */
51
+ readonly maxResults?: number | undefined;
52
+ }
53
+ /** The default limits of an aggregation. */
54
+ export declare const DEFAULT_PIPELINE_LIMITS: Readonly<{
55
+ maxTime: Duration;
56
+ maxResults: number;
57
+ }>;
58
+ /**
59
+ * This function adds a `$limit` of one more than the result limit, so a cut result is known. A
60
+ * pipeline that ends in `$merge` writes and gives no documents, so it gets no `$limit`.
61
+ */
62
+ export declare function boundPipeline(pipeline: readonly Document[], maxResults: number): {
63
+ pipeline: Document[];
64
+ limited: boolean;
65
+ };
66
+ /** This function gives at most `maxResults` documents, and tells if it cut the result. */
67
+ export declare function cutResults<T>(results: T[], maxResults: number, limited: boolean): {
68
+ docs: T[];
69
+ truncated: boolean;
70
+ };
71
+ /** True for the error of an operation that passed its `maxTimeMS` (code 50, MaxTimeMSExpired). */
72
+ export declare function isTimeLimitError(error: unknown): boolean;
73
+ //# sourceMappingURL=pipeline-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-scope.d.ts","sourceRoot":"","sources":["../../src/storage/pipeline-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CA+BtD,CAAC;AAEH,yDAAyD;AACzD,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAAoD,CAAC;AAEhH,+BAA+B;AAC/B,MAAM,WAAW,aAAa;IAC5B,gGAAgG;IAChG,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,+FAA+F;IAC/F,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACvC;AAED,+FAA+F;AAC/F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAU7D;AAkCD,+GAA+G;AAC/G,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,EAAE,KAAK,EAAE,aAAa,GAAG,QAAQ,EAAE,CA2H7F;AAED,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC7B,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACxC,uDAAuD;IACvD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED,4CAA4C;AAC5C,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAA8D,CAAC;AAEvJ;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAK3H;AAED,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG;IAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAGnH;AAED,kGAAkG;AAClG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGxD"}
@@ -0,0 +1,262 @@
1
+ /**
2
+ * The guard of an aggregation pipeline over shared collections (Graph's split plan, part P3). A
3
+ * pipeline of a caller reads only the documents of a filter (for example of one tenant or one
4
+ * partition), on each collection that it reads, and a write stamps its fields.
5
+ *
6
+ * - The filter goes before the first stage, into a stage that must be first (`$geoNear`,
7
+ * `$search`, `$vectorSearch`), into a `$match` with `$text`, and into each sub-pipeline
8
+ * (`$lookup`, `$graphLookup`, `$unionWith`, `$facet`).
9
+ * - A pipeline reads and writes only the collections of the scope (`from`, `coll`, `into`).
10
+ * - `$out` replaces a whole collection, so it is refused. `$merge` is refused unless the scope
11
+ * permits writes: then it gets the stamp, and its match key includes the stamp fields.
12
+ * - Only the stages of `ALLOWED_PIPELINE_STAGES` pass: the stages of the server are refused. The
13
+ * JavaScript operators of the server (`$function`, `$accumulator`, `$where`) are refused at each
14
+ * depth.
15
+ * - A stage has exactly one key, so a second key cannot hide a refused stage.
16
+ * - The function changes no part of the pipeline of the caller.
17
+ */
18
+ import { seconds } from "@procedures/client";
19
+ /**
20
+ * The stages that a scoped pipeline can have: the stages that read and change the documents of
21
+ * the stream. Another stage is refused, so a stage of the server that a later MongoDB adds (for
22
+ * example `$listClusterCatalog`) is refused too. `$documents` (documents from the pipeline) and
23
+ * `$out` (it replaces a whole collection) are not in it.
24
+ */
25
+ export const ALLOWED_PIPELINE_STAGES = new Set([
26
+ "$addFields",
27
+ "$bucket",
28
+ "$bucketAuto",
29
+ "$count",
30
+ "$densify",
31
+ "$facet",
32
+ "$fill",
33
+ "$geoNear",
34
+ "$graphLookup",
35
+ "$group",
36
+ "$limit",
37
+ "$lookup",
38
+ "$match",
39
+ "$merge",
40
+ "$project",
41
+ "$redact",
42
+ "$replaceRoot",
43
+ "$replaceWith",
44
+ "$sample",
45
+ "$search",
46
+ "$searchMeta",
47
+ "$set",
48
+ "$setWindowFields",
49
+ "$skip",
50
+ "$sort",
51
+ "$sortByCount",
52
+ "$unionWith",
53
+ "$unset",
54
+ "$unwind",
55
+ "$vectorSearch",
56
+ ]);
57
+ /** The operators that start JavaScript on the server. */
58
+ export const BLOCKED_PIPELINE_OPERATORS = new Set(["$function", "$accumulator", "$where"]);
59
+ /** This function throws when a value has a JavaScript operator of the server, at any depth. */
60
+ export function assertNoBlockedOperators(value) {
61
+ if (typeof value !== "object" || value === null)
62
+ return;
63
+ if (Array.isArray(value)) {
64
+ for (const element of value)
65
+ assertNoBlockedOperators(element);
66
+ return;
67
+ }
68
+ for (const [key, field] of Object.entries(value)) {
69
+ if (BLOCKED_PIPELINE_OPERATORS.has(key))
70
+ throw new Error(`The operator ${key} is not allowed in a scoped pipeline`);
71
+ assertNoBlockedOperators(field);
72
+ }
73
+ }
74
+ /** The filter of a selector of a stage, and the filter of the scope. */
75
+ function scoped(selector, match) {
76
+ return typeof selector === "object" && selector !== null && !Array.isArray(selector) ? { ...selector, ...match } : { ...match };
77
+ }
78
+ /** The `equals` clauses of `$search` for the filter: each field must be a string, a number or a boolean. */
79
+ function searchFilter(match) {
80
+ return Object.entries(match).map(([path, value]) => {
81
+ if (typeof value !== "string" && typeof value !== "number" && typeof value !== "boolean") {
82
+ throw new Error(`$search can filter the scope only by equality: the field ${path} has a condition`);
83
+ }
84
+ return { equals: { path, value } };
85
+ });
86
+ }
87
+ /** This function refuses a collection outside the scope. */
88
+ function checkCollection(name, stage, scope) {
89
+ if (typeof name !== "string" || !scope.collections.includes(name)) {
90
+ throw new Error(`${stage} can read and write only the collections of the scope, not ${JSON.stringify(name)}`);
91
+ }
92
+ }
93
+ /** This function sets an own field (a key `__proto__` does not change the prototype). */
94
+ function put(target, key, value) {
95
+ Object.defineProperty(target, key, { value, enumerable: true, writable: true, configurable: true });
96
+ }
97
+ /** The fields that a pipeline cannot remove: the fields of the filter and of the stamp. */
98
+ function guardedFields(scope) {
99
+ return new Set([...Object.keys(scope.match), ...Object.keys(scope.stamp ?? {})].filter((key) => !key.startsWith("$")));
100
+ }
101
+ /** This function gives the pipeline with the filter of the scope on each read, and the stamp on each write. */
102
+ export function scopePipeline(pipeline, scope) {
103
+ if (!Array.isArray(pipeline))
104
+ throw new Error("A pipeline must be an array");
105
+ assertNoBlockedOperators(pipeline);
106
+ const guarded = guardedFields(scope);
107
+ const result = [];
108
+ let matched = false;
109
+ for (const stage of pipeline) {
110
+ if (typeof stage !== "object" || stage === null || Array.isArray(stage) || Object.keys(stage).length !== 1) {
111
+ throw new Error("A pipeline stage must be an object with exactly one operator");
112
+ }
113
+ const name = Object.keys(stage)[0];
114
+ const body = stage[name];
115
+ if (name === "$out")
116
+ throw new Error("$out is not allowed in a scoped pipeline: it replaces the whole collection");
117
+ if (!ALLOWED_PIPELINE_STAGES.has(name))
118
+ throw new Error(`The stage ${name} is not allowed in a scoped pipeline`);
119
+ const sub = { match: scope.match, collections: scope.collections };
120
+ // The stages that must be first take the filter themselves
121
+ if (name === "$geoNear") {
122
+ result.push({ $geoNear: { ...body, query: scoped(body["query"], scope.match) } });
123
+ matched = true;
124
+ continue;
125
+ }
126
+ if (name === "$vectorSearch") {
127
+ result.push({ $vectorSearch: { ...body, filter: scoped(body["filter"], scope.match) } });
128
+ matched = true;
129
+ continue;
130
+ }
131
+ if (name === "$search" || name === "$searchMeta") {
132
+ const search = { ...body };
133
+ let compound;
134
+ if (search["compound"] === undefined) {
135
+ const operator = {};
136
+ for (const [key, value] of Object.entries(search))
137
+ if (key !== "index")
138
+ operator[key] = value;
139
+ compound = { must: [operator], filter: [] };
140
+ for (const key of Object.keys(search))
141
+ if (key !== "index")
142
+ delete search[key];
143
+ }
144
+ else {
145
+ const existing = search["compound"];
146
+ compound = { ...existing, filter: Array.isArray(existing["filter"]) ? [...existing["filter"]] : [] };
147
+ }
148
+ compound["filter"].push(...searchFilter(scope.match));
149
+ search["compound"] = compound;
150
+ result.push({ [name]: search });
151
+ matched = true;
152
+ continue;
153
+ }
154
+ if (!matched) {
155
+ result.push({ $match: { ...scope.match } });
156
+ matched = true;
157
+ }
158
+ if (name === "$lookup") {
159
+ const lookup = { ...body };
160
+ checkCollection(lookup["from"], "$lookup", scope);
161
+ if (lookup["pipeline"] === undefined) {
162
+ // The form with localField and foreignField becomes the form with a pipeline and the filter
163
+ const local = lookup["localField"];
164
+ const foreign = lookup["foreignField"];
165
+ if (typeof local !== "string" || typeof foreign !== "string")
166
+ throw new Error("$lookup needs localField and foreignField, or a pipeline");
167
+ delete lookup["localField"];
168
+ delete lookup["foreignField"];
169
+ lookup["let"] = { ...lookup["let"], scopeLocalValue: `$${local}` };
170
+ lookup["pipeline"] = [{ $match: { ...scope.match } }, { $match: { $expr: { $eq: [`$${foreign}`, "$$scopeLocalValue"] } } }];
171
+ }
172
+ else {
173
+ lookup["pipeline"] = scopePipeline(lookup["pipeline"], sub);
174
+ }
175
+ result.push({ $lookup: lookup });
176
+ continue;
177
+ }
178
+ if (name === "$graphLookup") {
179
+ const graph = body;
180
+ checkCollection(graph["from"], "$graphLookup", scope);
181
+ result.push({ $graphLookup: { ...graph, restrictSearchWithMatch: scoped(graph["restrictSearchWithMatch"], scope.match) } });
182
+ continue;
183
+ }
184
+ if (name === "$unionWith") {
185
+ const union = typeof body === "string" ? { coll: body, pipeline: [] } : { ...body };
186
+ checkCollection(union["coll"], "$unionWith", scope);
187
+ union["pipeline"] = scopePipeline(union["pipeline"] ?? [], sub);
188
+ result.push({ $unionWith: union });
189
+ continue;
190
+ }
191
+ if (name === "$facet") {
192
+ const facet = {};
193
+ for (const [branch, branchPipeline] of Object.entries(body)) {
194
+ put(facet, branch, scopePipeline(branchPipeline, sub));
195
+ }
196
+ result.push({ $facet: facet });
197
+ continue;
198
+ }
199
+ if (name === "$merge") {
200
+ if (scope.stamp === undefined)
201
+ throw new Error("$merge is not allowed in a read-only scoped pipeline");
202
+ const merge = typeof body === "string" ? { into: body } : { ...body };
203
+ const into = merge["into"];
204
+ if (typeof into === "object" && into !== null && into["db"] !== undefined) {
205
+ throw new Error("A $merge into another database is not allowed in a scoped pipeline");
206
+ }
207
+ checkCollection(typeof into === "object" && into !== null ? into["coll"] : into, "$merge", scope);
208
+ const on = merge["on"] ?? "_id";
209
+ const keys = typeof on === "string" ? [on] : [...on];
210
+ for (const field of Object.keys(scope.stamp))
211
+ if (!keys.includes(field))
212
+ keys.push(field);
213
+ merge["on"] = keys;
214
+ // The stamp comes last, so an update of the pipeline cannot write another value
215
+ if (Array.isArray(merge["whenMatched"]))
216
+ merge["whenMatched"] = [...merge["whenMatched"], { $addFields: { ...scope.stamp } }];
217
+ result.push({ $addFields: { ...scope.stamp } }, { $merge: merge });
218
+ continue;
219
+ }
220
+ if (name === "$unset") {
221
+ const fields = Array.isArray(body) ? body : [body];
222
+ for (const field of fields)
223
+ if (typeof field === "string" && guarded.has(field))
224
+ throw new Error(`A scoped pipeline cannot $unset ${field}`);
225
+ result.push(stage);
226
+ continue;
227
+ }
228
+ if (name === "$match" && typeof body === "object" && body !== null && body["$text"] !== undefined) {
229
+ result.push({ $match: { ...body, ...scope.match } });
230
+ continue;
231
+ }
232
+ result.push(stage);
233
+ }
234
+ if (!matched)
235
+ result.unshift({ $match: { ...scope.match } });
236
+ return result;
237
+ }
238
+ /** The default limits of an aggregation. */
239
+ export const DEFAULT_PIPELINE_LIMITS = Object.freeze({ maxTime: seconds(10), maxResults: 5_000 });
240
+ /**
241
+ * This function adds a `$limit` of one more than the result limit, so a cut result is known. A
242
+ * pipeline that ends in `$merge` writes and gives no documents, so it gets no `$limit`.
243
+ */
244
+ export function boundPipeline(pipeline, maxResults) {
245
+ const last = pipeline[pipeline.length - 1];
246
+ const lastStage = last && typeof last === "object" ? Object.keys(last)[0] : undefined;
247
+ if (lastStage === "$merge")
248
+ return { pipeline: [...pipeline], limited: false };
249
+ return { pipeline: [...pipeline, { $limit: maxResults + 1 }], limited: true };
250
+ }
251
+ /** This function gives at most `maxResults` documents, and tells if it cut the result. */
252
+ export function cutResults(results, maxResults, limited) {
253
+ if (!limited || results.length <= maxResults)
254
+ return { docs: results, truncated: false };
255
+ return { docs: results.slice(0, maxResults), truncated: true };
256
+ }
257
+ /** True for the error of an operation that passed its `maxTimeMS` (code 50, MaxTimeMSExpired). */
258
+ export function isTimeLimitError(error) {
259
+ const value = error;
260
+ return value?.code === 50 || value?.codeName === "MaxTimeMSExpired";
261
+ }
262
+ //# sourceMappingURL=pipeline-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-scope.js","sourceRoot":"","sources":["../../src/storage/pipeline-scope.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.8.1",
4
+ "version": "0.9.1",
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.8.1",
76
- "@procedures/collections": "0.8.1",
75
+ "@procedures/client": "0.9.1",
76
+ "@procedures/collections": "0.9.1",
77
77
  "mongodb": "^7.0.0",
78
78
  "zod": "^4.6.5"
79
79
  },
package/src/index.ts CHANGED
@@ -138,8 +138,20 @@ export type {
138
138
  // Storage (CollectionStorage implementation)
139
139
  // =============================================================================
140
140
 
141
- export { MongoStorage } from "./storage/index.js";
142
- export type { MongoStorageOptions } from "./storage/index.js";
141
+ export { MongoStorage, MongoDocumentStorage, selectorPrefilter } from "./storage/index.js";
142
+ export type { MongoStorageOptions, MongoDocumentStorageOptions } from "./storage/index.js";
143
+ // The guard of an aggregation pipeline over shared collections, and its limits (Graph's split plan, P3)
144
+ export {
145
+ BLOCKED_PIPELINE_OPERATORS,
146
+ ALLOWED_PIPELINE_STAGES,
147
+ DEFAULT_PIPELINE_LIMITS,
148
+ assertNoBlockedOperators,
149
+ boundPipeline,
150
+ cutResults,
151
+ isTimeLimitError,
152
+ scopePipeline,
153
+ } from "./storage/index.js";
154
+ export type { PipelineLimits, PipelineScope } from "./storage/index.js";
143
155
 
144
156
  // =============================================================================
145
157
  // Procedure Registration