@procedures/client 0.8.0 → 0.8.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.
- package/CHANGELOG.md +58 -0
- package/README.md +95 -8
- package/dist/.tsbuildinfo +1 -1
- package/dist/adapters/http/client/transport.d.ts +4 -0
- package/dist/adapters/http/client/transport.d.ts.map +1 -1
- package/dist/adapters/http/client/transport.js +11 -1
- package/dist/adapters/http/client/transport.js.map +1 -1
- package/dist/adapters/http/client/types.d.ts +19 -0
- package/dist/adapters/http/client/types.d.ts.map +1 -1
- package/dist/adapters/http/server/cors.d.ts +64 -0
- package/dist/adapters/http/server/cors.d.ts.map +1 -0
- package/dist/adapters/http/server/cors.js +113 -0
- package/dist/adapters/http/server/cors.js.map +1 -0
- package/dist/adapters/http/server/handler.d.ts +136 -0
- package/dist/adapters/http/server/handler.d.ts.map +1 -0
- package/dist/adapters/http/server/handler.js +495 -0
- package/dist/adapters/http/server/handler.js.map +1 -0
- package/dist/adapters/http/server/strategies.d.ts +14 -5
- package/dist/adapters/http/server/strategies.d.ts.map +1 -1
- package/dist/adapters/http/server/strategies.js.map +1 -1
- package/dist/adapters/http/server/transport.d.ts +30 -46
- package/dist/adapters/http/server/transport.d.ts.map +1 -1
- package/dist/adapters/http/server/transport.js +48 -432
- package/dist/adapters/http/server/transport.js.map +1 -1
- package/dist/adapters/http/server/types.d.ts +13 -0
- package/dist/adapters/http/server/types.d.ts.map +1 -1
- package/dist/adapters/websocket/server/transport.d.ts +46 -1
- package/dist/adapters/websocket/server/transport.d.ts.map +1 -1
- package/dist/adapters/websocket/server/transport.js +152 -15
- package/dist/adapters/websocket/server/transport.js.map +1 -1
- package/dist/adapters/websocket/server/types.d.ts +10 -3
- package/dist/adapters/websocket/server/types.d.ts.map +1 -1
- package/dist/adapters/websocket/server/upgrade-router.d.ts +28 -0
- package/dist/adapters/websocket/server/upgrade-router.d.ts.map +1 -0
- package/dist/adapters/websocket/server/upgrade-router.js +62 -0
- package/dist/adapters/websocket/server/upgrade-router.js.map +1 -0
- package/dist/adapters/websocket/server/upgrade.d.ts +68 -0
- package/dist/adapters/websocket/server/upgrade.d.ts.map +1 -0
- package/dist/adapters/websocket/server/upgrade.js +49 -0
- package/dist/adapters/websocket/server/upgrade.js.map +1 -0
- package/dist/adapters/websocket/shared/rpc.d.ts +2 -0
- package/dist/adapters/websocket/shared/rpc.d.ts.map +1 -1
- package/dist/adapters/websocket/shared/rpc.js +8 -2
- package/dist/adapters/websocket/shared/rpc.js.map +1 -1
- package/dist/browser.d.ts +12 -4
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +11 -2
- package/dist/browser.js.map +1 -1
- package/dist/client/client.d.ts +43 -0
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +69 -1
- package/dist/client/client.js.map +1 -1
- package/dist/events/publisher.d.ts +14 -0
- package/dist/events/publisher.d.ts.map +1 -1
- package/dist/events/publisher.js +42 -4
- package/dist/events/publisher.js.map +1 -1
- package/dist/events/rows.d.ts +31 -0
- package/dist/events/rows.d.ts.map +1 -0
- package/dist/events/rows.js +39 -0
- package/dist/events/rows.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +14 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +9 -0
- package/dist/node.js.map +1 -1
- package/dist/procedures/capability.d.ts +6 -0
- package/dist/procedures/capability.d.ts.map +1 -1
- package/dist/procedures/capability.js +25 -0
- package/dist/procedures/capability.js.map +1 -1
- package/dist/procedures/collection/changes.d.ts +94 -0
- package/dist/procedures/collection/changes.d.ts.map +1 -0
- package/dist/procedures/collection/changes.js +182 -0
- package/dist/procedures/collection/changes.js.map +1 -0
- package/dist/procedures/collection/index.d.ts +8 -3
- package/dist/procedures/collection/index.d.ts.map +1 -1
- package/dist/procedures/collection/index.js +6 -1
- package/dist/procedures/collection/index.js.map +1 -1
- package/dist/procedures/collection/procedures.d.ts +39 -2
- package/dist/procedures/collection/procedures.d.ts.map +1 -1
- package/dist/procedures/collection/procedures.js +111 -8
- package/dist/procedures/collection/procedures.js.map +1 -1
- package/dist/procedures/collection/query.d.ts +246 -0
- package/dist/procedures/collection/query.d.ts.map +1 -0
- package/dist/procedures/collection/query.js +854 -0
- package/dist/procedures/collection/query.js.map +1 -0
- package/dist/procedures/collection/schemas.d.ts +50 -0
- package/dist/procedures/collection/schemas.d.ts.map +1 -1
- package/dist/procedures/collection/schemas.js +144 -6
- package/dist/procedures/collection/schemas.js.map +1 -1
- package/dist/procedures/collection/storage.d.ts +58 -6
- package/dist/procedures/collection/storage.d.ts.map +1 -1
- package/dist/procedures/collection/storage.js +23 -0
- package/dist/procedures/collection/storage.js.map +1 -1
- package/dist/procedures/elicit.d.ts +190 -0
- package/dist/procedures/elicit.d.ts.map +1 -0
- package/dist/procedures/elicit.js +127 -0
- package/dist/procedures/elicit.js.map +1 -0
- package/dist/procedures/hints.d.ts +43 -0
- package/dist/procedures/hints.d.ts.map +1 -0
- package/dist/procedures/hints.js +74 -0
- package/dist/procedures/hints.js.map +1 -0
- package/dist/procedures/index.d.ts +9 -2
- package/dist/procedures/index.d.ts.map +1 -1
- package/dist/procedures/index.js +5 -1
- package/dist/procedures/index.js.map +1 -1
- package/dist/procedures/invoke.d.ts +20 -0
- package/dist/procedures/invoke.d.ts.map +1 -1
- package/dist/procedures/invoke.js +13 -0
- package/dist/procedures/invoke.js.map +1 -1
- package/dist/procedures/progress.d.ts +24 -0
- package/dist/procedures/progress.d.ts.map +1 -0
- package/dist/procedures/progress.js +11 -0
- package/dist/procedures/progress.js.map +1 -0
- package/dist/procedures/registry.d.ts.map +1 -1
- package/dist/procedures/registry.js +5 -0
- package/dist/procedures/registry.js.map +1 -1
- package/dist/procedures/types.d.ts +42 -0
- package/dist/procedures/types.d.ts.map +1 -1
- package/dist/procedures/types.js.map +1 -1
- package/dist/procedures/untrusted.d.ts +28 -0
- package/dist/procedures/untrusted.d.ts.map +1 -0
- package/dist/procedures/untrusted.js +32 -0
- package/dist/procedures/untrusted.js.map +1 -0
- package/dist/server/browser-guard.d.ts +12 -2
- package/dist/server/browser-guard.d.ts.map +1 -1
- package/dist/server/browser-guard.js +43 -6
- package/dist/server/browser-guard.js.map +1 -1
- package/dist/server/host-policy.d.ts +10 -1
- package/dist/server/host-policy.d.ts.map +1 -1
- package/dist/server/host-policy.js +5 -0
- package/dist/server/host-policy.js.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/procedure-server.d.ts +38 -6
- package/dist/server/procedure-server.d.ts.map +1 -1
- package/dist/server/procedure-server.js +65 -13
- package/dist/server/procedure-server.js.map +1 -1
- package/dist/server/request-auth.d.ts +51 -4
- package/dist/server/request-auth.d.ts.map +1 -1
- package/dist/server/request-auth.js +116 -5
- package/dist/server/request-auth.js.map +1 -1
- package/dist/server/types.d.ts +73 -5
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js.map +1 -1
- package/package.json +5 -1
- package/src/adapters/http/client/transport.ts +11 -1
- package/src/adapters/http/client/types.ts +22 -0
- package/src/adapters/http/server/cors.ts +144 -0
- package/src/adapters/http/server/handler.ts +624 -0
- package/src/adapters/http/server/strategies.ts +16 -6
- package/src/adapters/http/server/transport.ts +55 -478
- package/src/adapters/http/server/types.ts +15 -0
- package/src/adapters/websocket/server/transport.ts +166 -16
- package/src/adapters/websocket/server/types.ts +11 -3
- package/src/adapters/websocket/server/upgrade-router.ts +77 -0
- package/src/adapters/websocket/server/upgrade.ts +88 -0
- package/src/adapters/websocket/shared/rpc.ts +9 -2
- package/src/browser.ts +79 -2
- package/src/client/client.ts +83 -1
- package/src/events/publisher.ts +48 -4
- package/src/events/rows.ts +48 -0
- package/src/index.ts +1 -1
- package/src/node.ts +21 -0
- package/src/procedures/capability.ts +21 -0
- package/src/procedures/collection/changes.ts +245 -0
- package/src/procedures/collection/index.ts +53 -1
- package/src/procedures/collection/procedures.ts +163 -7
- package/src/procedures/collection/query.ts +1009 -0
- package/src/procedures/collection/schemas.ts +196 -7
- package/src/procedures/collection/storage.ts +78 -6
- package/src/procedures/elicit.ts +320 -0
- package/src/procedures/hints.ts +91 -0
- package/src/procedures/index.ts +78 -2
- package/src/procedures/invoke.ts +29 -0
- package/src/procedures/progress.ts +25 -0
- package/src/procedures/registry.ts +4 -0
- package/src/procedures/types.ts +49 -0
- package/src/procedures/untrusted.ts +50 -0
- package/src/server/browser-guard.ts +48 -6
- package/src/server/host-policy.ts +13 -1
- package/src/server/index.ts +3 -0
- package/src/server/procedure-server.ts +82 -14
- package/src/server/request-auth.ts +128 -6
- package/src/server/types.ts +82 -5
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* These procedures delegate to storage backends via the repository pattern.
|
|
6
6
|
*/
|
|
7
7
|
import { defineProcedure } from "../define.js";
|
|
8
|
-
import { getInputSchema, getOutputSchema, setInputSchema, setOutputSchema, deleteInputSchema, deleteOutputSchema, hasInputSchema, hasOutputSchema, getAllInputSchema, getAllOutputSchema, entriesInputSchema, entriesOutputSchema, idsInputSchema, idsOutputSchema, changesInputSchema, changesOutputSchema, sizeInputSchema, sizeOutputSchema, clearInputSchema, clearOutputSchema, getBatchInputSchema, getBatchOutputSchema, setBatchInputSchema, setBatchOutputSchema, deleteBatchInputSchema, deleteBatchOutputSchema, } from "./schemas.js";
|
|
8
|
+
import { getInputSchema, getOutputSchema, setInputSchema, setOutputSchema, deleteInputSchema, deleteOutputSchema, hasInputSchema, hasOutputSchema, getAllInputSchema, getAllOutputSchema, entriesInputSchema, entriesOutputSchema, idsInputSchema, idsOutputSchema, changesInputSchema, changesOutputSchema, sizeInputSchema, sizeOutputSchema, clearInputSchema, clearOutputSchema, getBatchInputSchema, getBatchOutputSchema, setBatchInputSchema, setBatchOutputSchema, deleteBatchInputSchema, deleteBatchOutputSchema, findInputSchemaOf, findOutputSchema, patchInputSchema, patchOutputSchema, } from "./schemas.js";
|
|
9
|
+
import { DEFAULT_FIND_LIMIT, applyPatch, queryEntries } from "./query.js";
|
|
10
|
+
import { collectionChangeTopic, startChangeChain, writeWithChangeEvent } from "./changes.js";
|
|
9
11
|
// =============================================================================
|
|
10
12
|
// Handler Factory
|
|
11
13
|
// =============================================================================
|
|
@@ -29,6 +31,51 @@ function getStorage(ctx) {
|
|
|
29
31
|
const collection = getCollectionFromPath(ctx.path);
|
|
30
32
|
return ctx.repository.getStorage(collection);
|
|
31
33
|
}
|
|
34
|
+
/** The options of a query from the input of `find`. */
|
|
35
|
+
function queryOptionsOf(input, policy) {
|
|
36
|
+
// A find without a limit gets the maxLimit of the policy (roadmap CLI-14)
|
|
37
|
+
const limit = input.limit ?? (Number.isFinite(policy.maxLimit) ? policy.maxLimit : undefined);
|
|
38
|
+
return {
|
|
39
|
+
...(input.sort !== undefined && { sort: input.sort }),
|
|
40
|
+
...(input.skip !== undefined && { skip: input.skip }),
|
|
41
|
+
...(limit !== undefined && { limit }),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/** The write options of an input with an origin. */
|
|
45
|
+
function writeOptionsOf(input) {
|
|
46
|
+
return input.origin === undefined ? undefined : { origin: input.origin };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The patches of a storage without `patch()` that run, for each id. A patch of an id waits for the
|
|
50
|
+
* patch before it, so two patches of one process keep each field. A write of another writer
|
|
51
|
+
* between the read and the write of a patch is lost: give the storage a `patch()` for one step.
|
|
52
|
+
*/
|
|
53
|
+
const PATCHES = new WeakMap();
|
|
54
|
+
/** This function patches an item of a storage without `patch()`: a read, a merge and a write. */
|
|
55
|
+
function patchInParts(storage, id, fields, options) {
|
|
56
|
+
let running = PATCHES.get(storage);
|
|
57
|
+
if (!running) {
|
|
58
|
+
running = new Map();
|
|
59
|
+
PATCHES.set(storage, running);
|
|
60
|
+
}
|
|
61
|
+
const queue = running;
|
|
62
|
+
const before = queue.get(id) ?? Promise.resolve();
|
|
63
|
+
const patch = before.then(async () => {
|
|
64
|
+
const current = await storage.get(id);
|
|
65
|
+
if (current === undefined)
|
|
66
|
+
return undefined;
|
|
67
|
+
const next = applyPatch(current, fields);
|
|
68
|
+
await storage.set(id, next, options);
|
|
69
|
+
return next;
|
|
70
|
+
});
|
|
71
|
+
const settled = patch.then(() => undefined, () => undefined);
|
|
72
|
+
queue.set(id, settled);
|
|
73
|
+
void settled.then(() => {
|
|
74
|
+
if (queue.get(id) === settled)
|
|
75
|
+
queue.delete(id);
|
|
76
|
+
});
|
|
77
|
+
return patch;
|
|
78
|
+
}
|
|
32
79
|
// =============================================================================
|
|
33
80
|
// Collection Procedure Definitions
|
|
34
81
|
// =============================================================================
|
|
@@ -36,6 +83,7 @@ function getStorage(ctx) {
|
|
|
36
83
|
* Create collection procedures for a specific collection name.
|
|
37
84
|
*
|
|
38
85
|
* @param collectionName - Name of the collection
|
|
86
|
+
* @param options - The query policy of `find`
|
|
39
87
|
* @returns Array of procedure definitions
|
|
40
88
|
*
|
|
41
89
|
* @example
|
|
@@ -44,10 +92,19 @@ function getStorage(ctx) {
|
|
|
44
92
|
* registry.registerAll(userProcedures);
|
|
45
93
|
* ```
|
|
46
94
|
*/
|
|
47
|
-
export function createCollectionProcedures(collectionName) {
|
|
95
|
+
export function createCollectionProcedures(collectionName, options = {}) {
|
|
48
96
|
const basePath = ["collections", collectionName];
|
|
97
|
+
// A find of a caller gets a limit: DEFAULT_FIND_LIMIT, unless the policy gives its own maxLimit
|
|
98
|
+
const queryPolicy = { ...options.queryPolicy, maxLimit: options.queryPolicy?.maxLimit ?? DEFAULT_FIND_LIMIT };
|
|
49
99
|
// Each collection is a resource of its own (CAPABILITIES-2026-10): a capability can permit one
|
|
50
100
|
const resource = `collection:${collectionName}`;
|
|
101
|
+
// The topic of the change events of a call (roadmap CLI-15). CLI-17 adds the partition with the option topic.
|
|
102
|
+
const events = options.changeEvents ?? true;
|
|
103
|
+
const topicRule = events === false ? undefined : (events !== true && events.topic) || ((name) => collectionChangeTopic(name));
|
|
104
|
+
const topicOf = (ctx) => topicRule?.(collectionName, ctx);
|
|
105
|
+
const withValues = events !== false && events !== true && events.values === true;
|
|
106
|
+
/** A write, and then its change event on the bus of the context. */
|
|
107
|
+
const changing = (ctx, storage, ids, origin, write) => writeWithChangeEvent(ctx.bus, storage, topicRule ? topicOf(ctx) : undefined, ids, origin, write, withValues);
|
|
51
108
|
return [
|
|
52
109
|
// Get
|
|
53
110
|
defineProcedure({
|
|
@@ -81,7 +138,7 @@ export function createCollectionProcedures(collectionName) {
|
|
|
81
138
|
},
|
|
82
139
|
handler: async (input, ctx) => {
|
|
83
140
|
const storage = getStorage(ctx);
|
|
84
|
-
await storage.set(input.id, input.value);
|
|
141
|
+
await changing(ctx, storage, [input.id], input.origin, () => storage.set(input.id, input.value, writeOptionsOf(input)));
|
|
85
142
|
},
|
|
86
143
|
}),
|
|
87
144
|
// Delete
|
|
@@ -96,7 +153,7 @@ export function createCollectionProcedures(collectionName) {
|
|
|
96
153
|
},
|
|
97
154
|
handler: async (input, ctx) => {
|
|
98
155
|
const storage = getStorage(ctx);
|
|
99
|
-
return storage.delete(input.id);
|
|
156
|
+
return changing(ctx, storage, [input.id], input.origin, () => storage.delete(input.id, writeOptionsOf(input)));
|
|
100
157
|
},
|
|
101
158
|
}),
|
|
102
159
|
// Has
|
|
@@ -181,6 +238,10 @@ export function createCollectionProcedures(collectionName) {
|
|
|
181
238
|
const storage = getStorage(ctx);
|
|
182
239
|
if (storage.getChangesSince) {
|
|
183
240
|
const changes = await storage.getChangesSince(input.since);
|
|
241
|
+
// The chain of the change events starts at this version: the caller then applies the
|
|
242
|
+
// next event without a read (roadmap CLI-15)
|
|
243
|
+
if (topicRule)
|
|
244
|
+
startChangeChain(ctx.bus, storage, topicOf(ctx), changes.version);
|
|
184
245
|
return {
|
|
185
246
|
version: changes.version,
|
|
186
247
|
full: changes.full,
|
|
@@ -197,6 +258,48 @@ export function createCollectionProcedures(collectionName) {
|
|
|
197
258
|
throw new Error(`The storage of ${collectionName} cannot give its changes or the ids of its items`);
|
|
198
259
|
},
|
|
199
260
|
}),
|
|
261
|
+
// Find: the items that match a JSON selector, with an order, a skip and a limit (roadmap CLI-14)
|
|
262
|
+
defineProcedure({
|
|
263
|
+
path: [...basePath, "find"],
|
|
264
|
+
input: findInputSchemaOf(queryPolicy),
|
|
265
|
+
output: findOutputSchema,
|
|
266
|
+
metadata: {
|
|
267
|
+
effects: { reads: [resource], writes: [] },
|
|
268
|
+
description: `Find the items of ${collectionName} that match a selector, with their ids, an order, a skip and a limit`,
|
|
269
|
+
tags: ["collections", collectionName, "read", "query"],
|
|
270
|
+
},
|
|
271
|
+
handler: async (input, ctx) => {
|
|
272
|
+
const storage = getStorage(ctx);
|
|
273
|
+
const selector = input.selector ?? {};
|
|
274
|
+
const query = queryOptionsOf(input, queryPolicy);
|
|
275
|
+
// The storage runs the selector itself when it can: a database does not read each item. It
|
|
276
|
+
// gets the policy of the host, so it permits what the procedure permits.
|
|
277
|
+
if (storage.query)
|
|
278
|
+
return (await storage.query(selector, query, queryPolicy)).map(([id, value]) => ({ id, value }));
|
|
279
|
+
if (!storage.getEntries) {
|
|
280
|
+
throw new Error(`The storage of ${collectionName} cannot run a selector or give the ids of its items`);
|
|
281
|
+
}
|
|
282
|
+
return queryEntries(await storage.getEntries(), selector, query, queryPolicy).map(([id, value]) => ({ id, value }));
|
|
283
|
+
},
|
|
284
|
+
}),
|
|
285
|
+
// Patch: merge fields into one item, a JSON Merge Patch (roadmap CLI-14)
|
|
286
|
+
defineProcedure({
|
|
287
|
+
path: [...basePath, "patch"],
|
|
288
|
+
input: patchInputSchema,
|
|
289
|
+
output: patchOutputSchema,
|
|
290
|
+
metadata: {
|
|
291
|
+
effects: { reads: [resource], writes: [resource], idempotent: true },
|
|
292
|
+
description: `Merge fields into one item of ${collectionName}: a JSON Merge Patch, or the operations $set and $unset`,
|
|
293
|
+
tags: ["collections", collectionName, "write"],
|
|
294
|
+
},
|
|
295
|
+
handler: async (input, ctx) => {
|
|
296
|
+
const storage = getStorage(ctx);
|
|
297
|
+
const write = writeOptionsOf(input);
|
|
298
|
+
const value = await changing(ctx, storage, [input.id], input.origin, () => storage.patch ? storage.patch(input.id, input.fields, write) : patchInParts(storage, input.id, input.fields, write));
|
|
299
|
+
const output = value === undefined ? { found: false } : { found: true, value };
|
|
300
|
+
return output;
|
|
301
|
+
},
|
|
302
|
+
}),
|
|
200
303
|
// Size
|
|
201
304
|
defineProcedure({
|
|
202
305
|
path: [...basePath, "size"],
|
|
@@ -222,9 +325,9 @@ export function createCollectionProcedures(collectionName) {
|
|
|
222
325
|
description: `Clear all items from ${collectionName}`,
|
|
223
326
|
tags: ["collections", collectionName, "write"],
|
|
224
327
|
},
|
|
225
|
-
handler: async (
|
|
328
|
+
handler: async (input, ctx) => {
|
|
226
329
|
const storage = getStorage(ctx);
|
|
227
|
-
await storage.clear();
|
|
330
|
+
await changing(ctx, storage, "*", input.origin, () => storage.clear(writeOptionsOf(input)));
|
|
228
331
|
},
|
|
229
332
|
}),
|
|
230
333
|
// GetBatch
|
|
@@ -260,7 +363,7 @@ export function createCollectionProcedures(collectionName) {
|
|
|
260
363
|
item.id,
|
|
261
364
|
item.value,
|
|
262
365
|
]);
|
|
263
|
-
await storage.setBatch(items);
|
|
366
|
+
await changing(ctx, storage, items.map(([id]) => id), input.origin, () => storage.setBatch(items, writeOptionsOf(input)));
|
|
264
367
|
},
|
|
265
368
|
}),
|
|
266
369
|
// DeleteBatch
|
|
@@ -275,7 +378,7 @@ export function createCollectionProcedures(collectionName) {
|
|
|
275
378
|
},
|
|
276
379
|
handler: async (input, ctx) => {
|
|
277
380
|
const storage = getStorage(ctx);
|
|
278
|
-
return storage.deleteBatch(input.ids);
|
|
381
|
+
return changing(ctx, storage, input.ids, input.origin, () => storage.deleteBatch(input.ids, writeOptionsOf(input)));
|
|
279
382
|
},
|
|
280
383
|
}),
|
|
281
384
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procedures.js","sourceRoot":"","sources":["../../../src/procedures/collection/procedures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,GAgBxB,MAAM,cAAc,CAAC;AAEtB,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,qBAAqB,CAAC,IAAc;IAC3C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,CAAE,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAI,GAAqB;IAC1C,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC,UAAU,CAAC,UAAU,CAAI,UAAU,CAAC,CAAC;AAClD,CAAC;AAED,gFAAgF;AAChF,mCAAmC;AACnC,gFAAgF;AAEhF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,0BAA0B,CAAC,cAAsB;IAC/D,MAAM,QAAQ,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACjD,+FAA+F;IAC/F,MAAM,QAAQ,GAAG,cAAc,cAAc,EAAE,CAAC;IAEhD,OAAO;QACL,MAAM;QACN,eAAe,CAAC;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC;YAC1B,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC1C,WAAW,EAAE,iBAAiB,cAAc,QAAQ;gBACpD,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,CAAC;aAC9C;YACD,OAAO,EAAE,KAAK,EAAE,KAAe,EAAE,GAAsB,EAAE,EAAE;gBACzD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC1C,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;oBAAE,OAAO,KAAK,CAAC;gBACvC,mFAAmF;gBACnF,MAAM,MAAM,GAAmB,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBAC/F,OAAO,MAAM,CAAC;YAChB,CAAC;SACF,CAAC;QAEF,MAAM;QACN,eAAe,CAAC;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC;YAC1B,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;gBACpE,WAAW,EAAE,eAAe,cAAc,EAAE;gBAC5C,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,OAAO,CAAC;aAC/C;YACD,OAAO,EAAE,KAAK,EAAE,KAAe,EAAE,GAAqB,EAAE,EAAE;gBACxD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;SACF,CAAC;QAEF,SAAS;QACT,eAAe,CAAC;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC;YAC7B,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,kBAAkB;YAC1B,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;gBACpE,WAAW,EAAE,oBAAoB,cAAc,EAAE;gBACjD,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,OAAO,CAAC;aAC/C;YACD,OAAO,EAAE,KAAK,EAAE,KAAkB,EAAE,GAAqB,EAAE,EAAE;gBAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;SACF,CAAC;QAEF,MAAM;QACN,eAAe,CAAC;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC;YAC1B,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC1C,WAAW,EAAE,2BAA2B,cAAc,EAAE;gBACxD,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,CAAC;aAC9C;YACD,OAAO,EAAE,KAAK,EAAE,KAAe,EAAE,GAAqB,EAAE,EAAE;gBACxD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/B,CAAC;SACF,CAAC;QAEF,SAAS;QACT,eAAe,CAAC;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC;YAC7B,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,kBAAkB;YAC1B,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC1C,WAAW,EAAE,sBAAsB,cAAc,EAAE;gBACnD,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,CAAC;aAC9C;YACD,OAAO,EAAE,KAAK,EAAE,MAAmB,EAAE,GAAqB,EAAE,EAAE;gBAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC;SACF,CAAC;QAEF,0DAA0D;QAC1D,eAAe,CAAC;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,SAAS,CAAC;YAC9B,KAAK,EAAE,kBAAkB;YACzB,MAAM,EAAE,mBAAmB;YAC3B,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC1C,WAAW,EAAE,oBAAoB,cAAc,iBAAiB;gBAChE,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,CAAC;aAC9C;YACD,OAAO,EAAE,KAAK,EAAE,MAAoB,EAAE,GAAqB,EAAE,EAAE;gBAC7D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;oBACxB,MAAM,IAAI,KAAK,CAAC,kBAAkB,cAAc,mCAAmC,CAAC,CAAC;gBACvF,CAAC;gBACD,OAAO,CAAC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;SACF,CAAC;QAEF,gEAAgE;QAChE,eAAe,CAAC;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC;YAC1B,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC1C,WAAW,EAAE,+BAA+B,cAAc,sBAAsB;gBAChF,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,CAAC;aAC9C;YACD,OAAO,EAAE,KAAK,EAAE,MAAgB,EAAE,GAAqB,EAAE,EAAE;gBACzD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,OAAO,CAAC,MAAM;oBAAE,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC5C,8EAA8E;gBAC9E,IAAI,OAAO,CAAC,UAAU;oBAAE,OAAO,CAAC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9E,MAAM,IAAI,KAAK,CAAC,kBAAkB,cAAc,mCAAmC,CAAC,CAAC;YACvF,CAAC;SACF,CAAC;QAEF,kFAAkF;QAClF,eAAe,CAAC;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,SAAS,CAAC;YAC9B,KAAK,EAAE,kBAAkB;YACzB,MAAM,EAAE,mBAAmB;YAC3B,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC1C,WAAW,EAAE,oBAAoB,cAAc,+BAA+B;gBAC9E,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,CAAC;aAC9C;YACD,OAAO,EAAE,KAAK,EAAE,KAAmB,EAAE,GAAqB,EAA0B,EAAE;gBACpF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;oBAC5B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC3D,OAAO;wBACL,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;wBAC9D,OAAO,EAAE,OAAO,CAAC,OAAO;qBACzB,CAAC;gBACJ,CAAC;gBACD,qFAAqF;gBACrF,gCAAgC;gBAChC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oBACvB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC3C,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBAC1G,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,cAAc,kDAAkD,CAAC,CAAC;YACtG,CAAC;SACF,CAAC;QAEF,OAAO;QACP,eAAe,CAAC;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,MAAM,CAAC;YAC3B,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC1C,WAAW,EAAE,0BAA0B,cAAc,EAAE;gBACvD,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,CAAC;aAC9C;YACD,OAAO,EAAE,KAAK,EAAE,MAAiB,EAAE,GAAqB,EAAE,EAAE;gBAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;YACxB,CAAC;SACF,CAAC;QAEF,QAAQ;QACR,eAAe,CAAC;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC;YAC5B,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,iBAAiB;YACzB,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;gBACpE,WAAW,EAAE,wBAAwB,cAAc,EAAE;gBACrD,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,OAAO,CAAC;aAC/C;YACD,OAAO,EAAE,KAAK,EAAE,MAAkB,EAAE,GAAqB,EAAE,EAAE;gBAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;SACF,CAAC;QAEF,WAAW;QACX,eAAe,CAAC;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,UAAU,CAAC;YAC/B,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,oBAAoB;YAC5B,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC1C,WAAW,EAAE,2BAA2B,cAAc,EAAE;gBACxD,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC;aACvD;YACD,OAAO,EAAE,KAAK,EAAE,KAAoB,EAAE,GAAqB,EAAE,EAAE;gBAC7D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjD,8BAA8B;gBAC9B,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;SACF,CAAC;QAEF,WAAW;QACX,eAAe,CAAC;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,UAAU,CAAC;YAC/B,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,oBAAoB;YAC5B,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;gBACpE,WAAW,EAAE,yBAAyB,cAAc,EAAE;gBACtD,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC;aACxD;YACD,OAAO,EAAE,KAAK,EAAE,KAAoB,EAAE,GAAqB,EAAE,EAAE;gBAC7D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,KAAK,GAA6B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;oBAChE,IAAI,CAAC,EAAE;oBACP,IAAI,CAAC,KAAK;iBACX,CAAC,CAAC;gBACH,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;SACF,CAAC;QAEF,cAAc;QACd,eAAe,CAAC;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,aAAa,CAAC;YAClC,KAAK,EAAE,sBAAsB;YAC7B,MAAM,EAAE,uBAAuB;YAC/B,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;gBACpE,WAAW,EAAE,8BAA8B,cAAc,EAAE;gBAC3D,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC;aACxD;YACD,OAAO,EAAE,KAAK,EAAE,KAAuB,EAAE,GAAqB,EAAE,EAAE;gBAChE,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;SACF,CAAC;KACH,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"procedures.js","sourceRoot":"","sources":["../../../src/procedures/collection/procedures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The query language of the collection storages: a selector, an order, a skip, a limit, the query
|
|
3
|
+
* policy that limits them, and the two forms of a patch.
|
|
4
|
+
*
|
|
5
|
+
* A selector is JSON: a subset of the query selectors of MongoDB. It goes over the wire as it is,
|
|
6
|
+
* so the procedure `collections.<name>.find` and `query()` of each storage take the same selector.
|
|
7
|
+
* A storage that can run a selector itself (for example a database) gives the same result as
|
|
8
|
+
* `queryEntries()` of this module, which is the reference.
|
|
9
|
+
*
|
|
10
|
+
* This module is the one copy of the language (roadmap CLI-34). The language is a part of the wire
|
|
11
|
+
* contract of the core. `@procedures/collections` and the storage packages import it from
|
|
12
|
+
* `@procedures/client/query`, an entry without other imports.
|
|
13
|
+
*
|
|
14
|
+
* The rules:
|
|
15
|
+
* - A key of a selector is a field path, for example `"meta.kind"`. A number in a path is an
|
|
16
|
+
* index of an array, for example `"tags.0"`.
|
|
17
|
+
* - A path through an array of objects looks into each object: `"items.name"` gives the name of
|
|
18
|
+
* each item.
|
|
19
|
+
* - The value of a field path is a literal or an object of operators. A literal is a test for
|
|
20
|
+
* equality. A field whose value is an array also matches when one element is equal.
|
|
21
|
+
* - The literal `null` also matches a missing field.
|
|
22
|
+
* - The operators are `$eq`, `$ne`, `$gt`, `$gte`, `$lt`, `$lte`, `$in`, `$nin`, `$exists`,
|
|
23
|
+
* `$not`, `$regex` with `$options`, `$size`, `$all` and `$elemMatch`. The top of a selector also
|
|
24
|
+
* takes `$and`, `$or` and `$nor`. Another operator is an error, not a condition that is ignored.
|
|
25
|
+
* - `$gt`, `$gte`, `$lt` and `$lte` compare only values of one type: numbers with numbers, strings
|
|
26
|
+
* with strings, and booleans with booleans.
|
|
27
|
+
* - Two objects are equal when they have the same keys with equal values. The order of the keys
|
|
28
|
+
* does not change the result.
|
|
29
|
+
* - A key whose value is `undefined` is not in the selector, as in JSON.
|
|
30
|
+
* - A query policy limits the operators, the size and the depth of a selector, the lists, the
|
|
31
|
+
* regular expressions and the limit. The default policy does not permit `$regex`.
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* A selector of a query. Each key is a field path with a condition, or one of the operators
|
|
35
|
+
* `$and`, `$or` and `$nor`. An empty selector matches each item.
|
|
36
|
+
*/
|
|
37
|
+
export interface StorageSelector {
|
|
38
|
+
/** Each selector of the list matches. */
|
|
39
|
+
readonly $and?: readonly StorageSelector[] | undefined;
|
|
40
|
+
/** One or more selectors of the list match. */
|
|
41
|
+
readonly $or?: readonly StorageSelector[] | undefined;
|
|
42
|
+
/** No selector of the list matches. */
|
|
43
|
+
readonly $nor?: readonly StorageSelector[] | undefined;
|
|
44
|
+
/** A condition on the value at a field path: a literal, or a `StorageFieldOperators` object. */
|
|
45
|
+
readonly [path: string]: unknown;
|
|
46
|
+
}
|
|
47
|
+
/** The operators of a condition on one field path. All operators of one object must match. */
|
|
48
|
+
export interface StorageFieldOperators {
|
|
49
|
+
/** The value is equal to this value. */
|
|
50
|
+
readonly $eq?: unknown;
|
|
51
|
+
/** The value is not equal to this value. */
|
|
52
|
+
readonly $ne?: unknown;
|
|
53
|
+
/** The value is more than this number, string or boolean. */
|
|
54
|
+
readonly $gt?: number | string | boolean | null | undefined;
|
|
55
|
+
/** The value is more than or equal to this number, string or boolean. */
|
|
56
|
+
readonly $gte?: number | string | boolean | null | undefined;
|
|
57
|
+
/** The value is less than this number, string or boolean. */
|
|
58
|
+
readonly $lt?: number | string | boolean | null | undefined;
|
|
59
|
+
/** The value is less than or equal to this number, string or boolean. */
|
|
60
|
+
readonly $lte?: number | string | boolean | null | undefined;
|
|
61
|
+
/** The value is equal to one value of the list. */
|
|
62
|
+
readonly $in?: readonly unknown[] | undefined;
|
|
63
|
+
/** The value is equal to no value of the list. */
|
|
64
|
+
readonly $nin?: readonly unknown[] | undefined;
|
|
65
|
+
/** True: the field has a value. False: the field is missing. */
|
|
66
|
+
readonly $exists?: boolean | undefined;
|
|
67
|
+
/** The operators of this object do not match. */
|
|
68
|
+
readonly $not?: StorageFieldOperators | undefined;
|
|
69
|
+
/** The value is a string that matches this regular expression. A query policy must permit it. */
|
|
70
|
+
readonly $regex?: string | undefined;
|
|
71
|
+
/** The flags of `$regex`: `i`, `m`, `s` and `u`. */
|
|
72
|
+
readonly $options?: string | undefined;
|
|
73
|
+
/** The value is an array of this length. */
|
|
74
|
+
readonly $size?: number | undefined;
|
|
75
|
+
/** The value has each value of the list: an equal element, or an equal value. */
|
|
76
|
+
readonly $all?: readonly unknown[] | undefined;
|
|
77
|
+
/** The value is an array with one or more elements that match: a selector of objects, or operators. */
|
|
78
|
+
readonly $elemMatch?: StorageSelector | StorageFieldOperators | undefined;
|
|
79
|
+
}
|
|
80
|
+
/** The direction of a sort key: 1 is ascending, -1 is descending. */
|
|
81
|
+
export type StorageSortDirection = 1 | -1;
|
|
82
|
+
/**
|
|
83
|
+
* The order of a query: field paths with their directions. The first key sorts first. Items with
|
|
84
|
+
* equal keys keep the order of the entries.
|
|
85
|
+
*/
|
|
86
|
+
export type StorageSort = Readonly<Record<string, StorageSortDirection>>;
|
|
87
|
+
/** The options of a query: the order, then the skip, then the limit. */
|
|
88
|
+
export interface StorageQueryOptions {
|
|
89
|
+
/** The order of the result. Without it, the result has the order of the entries. */
|
|
90
|
+
readonly sort?: StorageSort | undefined;
|
|
91
|
+
/** The number of items to skip, after the sort. A whole number, 0 or more. */
|
|
92
|
+
readonly skip?: number | undefined;
|
|
93
|
+
/** The largest number of items in the result, after the skip. A whole number, 1 or more. */
|
|
94
|
+
readonly limit?: number | undefined;
|
|
95
|
+
}
|
|
96
|
+
/** An operator of the query language. `$options` goes with `$regex`. */
|
|
97
|
+
export type StorageQueryOperator = "$eq" | "$ne" | "$gt" | "$gte" | "$lt" | "$lte" | "$in" | "$nin" | "$exists" | "$not" | "$regex" | "$size" | "$all" | "$elemMatch" | "$and" | "$or" | "$nor";
|
|
98
|
+
/**
|
|
99
|
+
* The limits of the queries of a caller. A host that serves selectors of callers that it does not
|
|
100
|
+
* trust keeps them small. Each limit that a policy does not give has its default.
|
|
101
|
+
*/
|
|
102
|
+
export interface StorageQueryPolicy {
|
|
103
|
+
/**
|
|
104
|
+
* The operators that a selector can use.
|
|
105
|
+
* @default DEFAULT_QUERY_OPERATORS: each operator except `$regex`
|
|
106
|
+
*/
|
|
107
|
+
readonly operators?: readonly StorageQueryOperator[] | undefined;
|
|
108
|
+
/**
|
|
109
|
+
* The longest pattern of a `$regex`, in characters.
|
|
110
|
+
* @default 128
|
|
111
|
+
*/
|
|
112
|
+
readonly maxRegexLength?: number | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* The flags that `$options` can have: some of `i`, `m`, `s` and `u`.
|
|
115
|
+
* @default "imsu"
|
|
116
|
+
*/
|
|
117
|
+
readonly regexFlags?: string | undefined;
|
|
118
|
+
/**
|
|
119
|
+
* The largest number of clauses of a selector: each condition of a field path, each operator and
|
|
120
|
+
* each `$and`, `$or` and `$nor`.
|
|
121
|
+
* @default 64
|
|
122
|
+
*/
|
|
123
|
+
readonly maxClauses?: number | undefined;
|
|
124
|
+
/**
|
|
125
|
+
* The deepest nesting of a selector. Each `$and`, `$or`, `$nor`, `$not` and `$elemMatch` adds a
|
|
126
|
+
* level.
|
|
127
|
+
* @default 6
|
|
128
|
+
*/
|
|
129
|
+
readonly maxDepth?: number | undefined;
|
|
130
|
+
/**
|
|
131
|
+
* The longest list of `$in`, `$nin` and `$all`.
|
|
132
|
+
* @default 256
|
|
133
|
+
*/
|
|
134
|
+
readonly maxListLength?: number | undefined;
|
|
135
|
+
/**
|
|
136
|
+
* The largest limit of a query. A query without a limit gets this limit.
|
|
137
|
+
* @default no limit for a storage, and `DEFAULT_FIND_LIMIT` (1000) for the procedure `find`
|
|
138
|
+
*/
|
|
139
|
+
readonly maxLimit?: number | undefined;
|
|
140
|
+
}
|
|
141
|
+
/** Each operator of the query language. A policy with these operators permits `$regex`. */
|
|
142
|
+
export declare const QUERY_OPERATORS: readonly StorageQueryOperator[];
|
|
143
|
+
/** The operators of the default policy: each operator except `$regex`. */
|
|
144
|
+
export declare const DEFAULT_QUERY_OPERATORS: readonly StorageQueryOperator[];
|
|
145
|
+
/** The limits of a policy that gives no limit of its own. `$regex` is off. */
|
|
146
|
+
export declare const DEFAULT_QUERY_POLICY: StorageQueryPolicy;
|
|
147
|
+
/** The limit of the procedure `find` for a call without a limit, when its policy gives no `maxLimit`. */
|
|
148
|
+
export declare const DEFAULT_FIND_LIMIT: number;
|
|
149
|
+
/**
|
|
150
|
+
* The fields of a patch. A patch has one of two forms:
|
|
151
|
+
*
|
|
152
|
+
* - A JSON Merge Patch (RFC 7386): each field replaces the field of the item, an object merges
|
|
153
|
+
* into an object field, and `null` removes the field.
|
|
154
|
+
* - Operations (`StoragePatchOperations`): each key starts with `$`. `$set` can set `null` and
|
|
155
|
+
* nested field paths, and `$unset` removes field paths.
|
|
156
|
+
*/
|
|
157
|
+
export type StoragePatch = Readonly<Record<string, unknown>>;
|
|
158
|
+
/**
|
|
159
|
+
* The operations form of a patch: each key starts with `$`. It is a type of an object literal, so a
|
|
160
|
+
* value of it is a `StoragePatch` too.
|
|
161
|
+
*/
|
|
162
|
+
export type StoragePatchOperations = {
|
|
163
|
+
/** The values of field paths, for example `{ "meta.kind": "k1", note: null }`. */
|
|
164
|
+
readonly $set?: Readonly<Record<string, unknown>> | undefined;
|
|
165
|
+
/** The field paths to remove. An element of an array becomes `null`. */
|
|
166
|
+
readonly $unset?: readonly string[] | undefined;
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* This function compares two JSON values in the order of the queries: `null` and a missing value
|
|
170
|
+
* first, then numbers, strings, objects, arrays and booleans. Numbers compare by value, and strings
|
|
171
|
+
* by their UTF-16 code units. Arrays compare element by element. Objects compare by their sorted
|
|
172
|
+
* keys, then by the values of the keys.
|
|
173
|
+
*
|
|
174
|
+
* @returns A negative number when `a` comes first, a positive number when `b` comes first, or 0
|
|
175
|
+
*/
|
|
176
|
+
export declare function compareStorageValues(a: unknown, b: unknown): number;
|
|
177
|
+
/**
|
|
178
|
+
* This function gives the problems of a selector: each part that the language does not know, and
|
|
179
|
+
* each part that the policy does not permit. An empty list means that the selector is correct.
|
|
180
|
+
*
|
|
181
|
+
* @param policy - The query policy. The default policy does not permit `$regex`.
|
|
182
|
+
*/
|
|
183
|
+
export declare function selectorProblems(selector: unknown, policy?: StorageQueryPolicy): string[];
|
|
184
|
+
/**
|
|
185
|
+
* This function makes a test from a selector. The test gives true for each item that the selector
|
|
186
|
+
* matches. Compile a selector one time for many items.
|
|
187
|
+
*
|
|
188
|
+
* @param policy - The query policy. The default policy does not permit `$regex`.
|
|
189
|
+
* @throws TypeError when the selector has a problem (refer to `selectorProblems`)
|
|
190
|
+
*/
|
|
191
|
+
export declare function compileSelector(selector: StorageSelector, policy?: StorageQueryPolicy): (item: unknown) => boolean;
|
|
192
|
+
/**
|
|
193
|
+
* This function tells if a selector matches an item.
|
|
194
|
+
*
|
|
195
|
+
* @throws TypeError when the selector has a problem
|
|
196
|
+
*/
|
|
197
|
+
export declare function matchesSelector(selector: StorageSelector, item: unknown, policy?: StorageQueryPolicy): boolean;
|
|
198
|
+
/**
|
|
199
|
+
* This function gives the problems of the options of a query. An empty list means that the
|
|
200
|
+
* options are correct. A policy with a `maxLimit` refuses a larger limit.
|
|
201
|
+
*/
|
|
202
|
+
export declare function queryOptionsProblems(options: unknown, policy?: StorageQueryPolicy): string[];
|
|
203
|
+
/**
|
|
204
|
+
* This function runs a query on entries, as the reference of each storage: the selector, then the
|
|
205
|
+
* order, then the skip and the limit. The result has the entries themselves, not copies.
|
|
206
|
+
*
|
|
207
|
+
* - Without `sort`, the result has the order of the entries.
|
|
208
|
+
* - A sort key on an array field uses its least element for ascending, and its most element for
|
|
209
|
+
* descending. A missing field sorts as `null`.
|
|
210
|
+
* - A query without a limit gets the `maxLimit` of the policy, when it has one.
|
|
211
|
+
*
|
|
212
|
+
* @param policy - The query policy. The default policy does not permit `$regex`.
|
|
213
|
+
* @throws TypeError when the selector or the options have a problem
|
|
214
|
+
*/
|
|
215
|
+
export declare function queryEntries<T>(entries: Iterable<readonly [string, T]>, selector?: StorageSelector, options?: StorageQueryOptions, policy?: StorageQueryPolicy): Array<[string, T]>;
|
|
216
|
+
/** True for the operations form of a patch: an object whose defined keys each start with `$`. */
|
|
217
|
+
export declare function isPatchOperations(fields: unknown): fields is StoragePatchOperations;
|
|
218
|
+
/**
|
|
219
|
+
* This function gives the problems of the fields of a patch. An empty list means that the patch
|
|
220
|
+
* is correct: a JSON Merge Patch, or the operations `$set` and `$unset`. A patch that mixes the two
|
|
221
|
+
* forms is not correct.
|
|
222
|
+
*/
|
|
223
|
+
export declare function patchProblems(fields: unknown): string[];
|
|
224
|
+
/**
|
|
225
|
+
* This function applies a JSON Merge Patch (RFC 7386) to a value, and gives the new value. It does
|
|
226
|
+
* not change the value or the patch, but the new value can share parts with them.
|
|
227
|
+
*
|
|
228
|
+
* - Each field of the patch replaces the field of the value.
|
|
229
|
+
* - An object field of the patch merges into an object field of the value.
|
|
230
|
+
* - A `null` field removes the field.
|
|
231
|
+
* - A value that is not an object becomes an empty object first.
|
|
232
|
+
*/
|
|
233
|
+
export declare function mergePatch(value: unknown, fields: StoragePatch): Record<string, unknown>;
|
|
234
|
+
/**
|
|
235
|
+
* This function applies a patch to a value, and gives the new value: a JSON Merge Patch, or the
|
|
236
|
+
* operations `$set` and `$unset`. It does not change the value or the patch.
|
|
237
|
+
*
|
|
238
|
+
* - `$set` sets each field path, also to `null`. A missing or null part of a path becomes an object.
|
|
239
|
+
* - `$unset` removes each field path. An element of an array becomes `null`.
|
|
240
|
+
* - A value that is not an object becomes an empty object first.
|
|
241
|
+
*
|
|
242
|
+
* @throws TypeError when the patch has a problem (refer to `patchProblems`), or when a path of
|
|
243
|
+
* `$set` goes through a value that is not an object, or past the end of an array
|
|
244
|
+
*/
|
|
245
|
+
export declare function applyPatch(value: unknown, fields: StoragePatch): Record<string, unknown>;
|
|
246
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/procedures/collection/query.ts"],"names":[],"mappings":"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"}
|