@procedures/client 0.35.1 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/browser.d.ts +3 -3
  4. package/dist/browser.d.ts.map +1 -1
  5. package/dist/browser.js +2 -0
  6. package/dist/browser.js.map +1 -1
  7. package/dist/events/bus.d.ts.map +1 -1
  8. package/dist/events/bus.js +5 -1
  9. package/dist/events/bus.js.map +1 -1
  10. package/dist/events/index.d.ts +1 -1
  11. package/dist/events/index.d.ts.map +1 -1
  12. package/dist/events/publisher.d.ts +18 -2
  13. package/dist/events/publisher.d.ts.map +1 -1
  14. package/dist/events/publisher.js +142 -25
  15. package/dist/events/publisher.js.map +1 -1
  16. package/dist/events/recheck.d.ts +27 -5
  17. package/dist/events/recheck.d.ts.map +1 -1
  18. package/dist/events/recheck.js +11 -10
  19. package/dist/events/recheck.js.map +1 -1
  20. package/dist/procedures/collection/admission.d.ts +26 -7
  21. package/dist/procedures/collection/admission.d.ts.map +1 -1
  22. package/dist/procedures/collection/admission.js +39 -7
  23. package/dist/procedures/collection/admission.js.map +1 -1
  24. package/dist/procedures/collection/changes.d.ts +13 -4
  25. package/dist/procedures/collection/changes.d.ts.map +1 -1
  26. package/dist/procedures/collection/changes.js +50 -6
  27. package/dist/procedures/collection/changes.js.map +1 -1
  28. package/dist/procedures/collection/hint-filter.d.ts +143 -0
  29. package/dist/procedures/collection/hint-filter.d.ts.map +1 -0
  30. package/dist/procedures/collection/hint-filter.js +311 -0
  31. package/dist/procedures/collection/hint-filter.js.map +1 -0
  32. package/dist/procedures/collection/index.d.ts +2 -0
  33. package/dist/procedures/collection/index.d.ts.map +1 -1
  34. package/dist/procedures/collection/index.js +2 -0
  35. package/dist/procedures/collection/index.js.map +1 -1
  36. package/dist/procedures/collection/procedures.d.ts +2 -2
  37. package/dist/procedures/collection/procedures.d.ts.map +1 -1
  38. package/dist/procedures/collection/procedures.js +6 -4
  39. package/dist/procedures/collection/procedures.js.map +1 -1
  40. package/dist/procedures/index.d.ts +2 -2
  41. package/dist/procedures/index.d.ts.map +1 -1
  42. package/dist/procedures/index.js +3 -1
  43. package/dist/procedures/index.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/browser.ts +7 -0
  46. package/src/events/bus.ts +6 -1
  47. package/src/events/index.ts +1 -1
  48. package/src/events/publisher.ts +150 -26
  49. package/src/events/recheck.ts +38 -13
  50. package/src/procedures/collection/admission.ts +50 -9
  51. package/src/procedures/collection/changes.ts +56 -7
  52. package/src/procedures/collection/hint-filter.ts +376 -0
  53. package/src/procedures/collection/index.ts +3 -0
  54. package/src/procedures/collection/procedures.ts +8 -6
  55. package/src/procedures/index.ts +5 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/procedures/collection/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,UAAU;AACV,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,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,GACxB,MAAM,cAAc,CAAC;AAuBtB,aAAa;AACb,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAG7D,mDAAmD;AACnD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAG3E,kDAAkD;AAClD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnJ,6GAA6G;AAC7G,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC/D,qEAAqE;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,0GAA0G;AAC1G,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAmB5D,6FAA6F;AAC7F,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,EAC9B,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,gGAAgG;AAChG,gCAAgC;AAChC,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/procedures/collection/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,UAAU;AACV,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,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,GACxB,MAAM,cAAc,CAAC;AAuBtB,aAAa;AACb,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAG7D,mDAAmD;AACnD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAG3E,kDAAkD;AAClD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnJ,6GAA6G;AAC7G,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC/D,qEAAqE;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,0GAA0G;AAC1G,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5D,mGAAmG;AACnG,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAmBhE,6FAA6F;AAC7F,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,EAC9B,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,gGAAgG;AAChG,gCAAgC;AAChC,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -42,8 +42,8 @@ export interface CollectionProceduresOptions {
42
42
  */
43
43
  changeEvents?: boolean | CollectionChangeEventsOptions | undefined;
44
44
  /**
45
- * The rules of the rows (roadmap CLI-41). `admit` examines each row of each read and of each
46
- * change event with values. `guard` examines each write before the storage changes, and a
45
+ * The rules of the rows (roadmap CLI-41). `admit` examines each row of each read, and each row of
46
+ * each change event for each subscriber (roadmap CLI-78). `guard` examines each write before the storage changes, and a
47
47
  * refused write gets `FORBIDDEN` (reason `write-not-allowed`). With `versionOf`, a guarded write
48
48
  * expects the version that the guard read. `maxScanned` stops the scan of a `find` (roadmap
49
49
  * CLI-55). Without it, the procedures check only the partition.
@@ -1 +1 @@
1
- {"version":3,"file":"procedures.d.ts","sourceRoot":"","sources":["../../../src/procedures/collection/procedures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAkDlE,OAAO,EAA8D,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIjH,OAAO,EAA8C,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AA6BtG,sFAAsF;AACtF,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IACvH;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAED,gDAAgD;AAChD,MAAM,WAAW,2BAA2B;IAC1C;;;;;OAKG;IACH,WAAW,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC7C;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,6BAA6B,GAAG,SAAS,CAAC;IACnE;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC7C;AAwBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,2BAAgC,GAAG,YAAY,EAAE,CA6T5H"}
1
+ {"version":3,"file":"procedures.d.ts","sourceRoot":"","sources":["../../../src/procedures/collection/procedures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAkDlE,OAAO,EAA8D,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIjH,OAAO,EAA8C,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AA8BtG,sFAAsF;AACtF,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IACvH;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAED,gDAAgD;AAChD,MAAM,WAAW,2BAA2B;IAC1C;;;;;OAKG;IACH,WAAW,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC7C;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,6BAA6B,GAAG,SAAS,CAAC;IACnE;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC7C;AAwBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,2BAAgC,GAAG,YAAY,EAAE,CA8T5H"}
@@ -11,6 +11,7 @@ import { collectionChangeTopic, startChangeChain, writeWithChangeEvent } from ".
11
11
  import { partitionOfCall, storageOfCall, withPartition } from "./partition.js";
12
12
  import { admitsRow, admittedStorage, checkAdmission } from "./admission.js";
13
13
  import { patchItem } from "./patch-in-parts.js";
14
+ import { withCollectionRules } from "./hint-filter.js";
14
15
  // =============================================================================
15
16
  // Handler Factory
16
17
  // =============================================================================
@@ -81,7 +82,7 @@ export function createCollectionProcedures(collectionName, options = {}) {
81
82
  const admission = options.admission;
82
83
  checkAdmission(admission);
83
84
  /** A write, and then its change event on the bus of the context. The chain of the events belongs to the storage, not to its view. */
84
- const changing = (ctx, partition, storage, ids, origin, write) => writeWithChangeEvent(ctx.bus, storage, topicRule ? topicOf(ctx, partition) : undefined, ids, origin, write, withValues, admission?.admit);
85
+ const changing = (ctx, partition, storage, ids, origin, write) => writeWithChangeEvent(ctx.bus, storage, topicRule ? topicOf(ctx, partition) : undefined, ids, origin, write, withValues, admission);
85
86
  /**
86
87
  * The partition and the storage of a call (roadmap CLI-17). The repository of the call has the
87
88
  * partitions of the collection and their resolver: the tenant comes from the principal. Each read
@@ -91,9 +92,10 @@ export function createCollectionProcedures(collectionName, options = {}) {
91
92
  const collection = getCollectionFromPath(ctx.path);
92
93
  const partition = await partitionOfCall(ctx, collection, input.partition);
93
94
  const storage = storageOfCall(ctx, collection, partition);
94
- return { storage, view: admittedStorage(storage, admission, ctx), partition };
95
+ return { storage, view: admittedStorage(storage, admission, ctx, partition), partition };
95
96
  };
96
- return [
97
+ // The rules of the rows on the metadata: the publisher of the events filters each event with them (roadmap CLI-78)
98
+ return withCollectionRules([
97
99
  // Get
98
100
  defineProcedure({
99
101
  path: [...basePath, "get"],
@@ -372,6 +374,6 @@ export function createCollectionProcedures(collectionName, options = {}) {
372
374
  return changing(ctx, partition, storage, input.ids, input.origin, () => view.deleteBatch(input.ids, writeOptionsOf(input)));
373
375
  },
374
376
  }),
375
- ];
377
+ ], admission);
376
378
  }
377
379
  //# sourceMappingURL=procedures.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"procedures.js","sourceRoot":"","sources":["../../../src/procedures/collection/procedures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"procedures.js","sourceRoot":"","sources":["../../../src/procedures/collection/procedures.ts"],"names":[],"mappings":"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"}
@@ -26,8 +26,8 @@ export type { NarrowingNote, WireNarrowing, NarrowedCapability } from "./narrowi
26
26
  export { ProcedureRegistry, RegistryError, PROCEDURE_REGISTRY, assertValidPath } from "./registry.js";
27
27
  export { defineProcedure, defineStub, createProcedure, ProcedureBuilder, namespace, validateProcedure, } from "./define.js";
28
28
  export type { ProcedureDefinition, ProcedureStub } from "./define.js";
29
- export { createCollectionProcedures, collectionChangeTopic, collectionTopicReads, PARTITION_PATTERN, collectionTopicPartition, collectionTopicTarget, collectionTopicRule, CollectionTopicCollisionError, admittedStorage, admitsRow, DEFAULT_FIND_LIMIT, DEFAULT_QUERY_OPERATORS, DEFAULT_QUERY_POLICY, QUERY_OPERATORS, applyPatch, compareStorageValues, compileSelector, isPatchOperations, matchesSelector, mergePatch, patchProblems, queryEntries, queryOptionsProblems, selectorProblems, MAX_EXPECTED_VERSION_LENGTH, PRECONDITION_NOT_SUPPORTED, VERSION_CONFLICTS_METADATA_KEY, VersionConflictError, asVersionConflictError, isExpectedVersion, preconditionNotSupported, versionConflict, versionConflicts, versionConflictsOf, } from "./collection/index.js";
30
- export type { CurrentItem, VersionConflict, VersionOf, StorageItemWriteOptions, StorageBatchWriteOptions, CollectionProceduresOptions, CollectionChangeEventsOptions, CollectionChangeEvent, CollectionAdmission, CollectionRow, CollectionWrite, CollectionWriteGuard, CollectionPartitions, PartitionInput, PartitionResolver, StoragePatchOperations, StorageQueryOperator, StorageQueryPolicy, CollectionStorage, StorageChanges, StorageMetadata, StorageWriteOptions, StorageSetChange, StorageDeleteChange, StorageClearChange, StorageChangeEvent, StorageChangeBatch, StorageObserver, StorageFieldOperators, StoragePatch, StorageQueryOptions, StorageSelector, StorageSort, StorageSortDirection, } from "./collection/index.js";
29
+ export { createCollectionProcedures, collectionChangeTopic, collectionTopicReads, PARTITION_PATTERN, collectionTopicPartition, collectionTopicTarget, collectionTopicRule, CollectionTopicCollisionError, admittedStorage, admitsRow, withHintImages, hintImagesOf, DEFAULT_FIND_LIMIT, DEFAULT_QUERY_OPERATORS, DEFAULT_QUERY_POLICY, QUERY_OPERATORS, applyPatch, compareStorageValues, compileSelector, isPatchOperations, matchesSelector, mergePatch, patchProblems, queryEntries, queryOptionsProblems, selectorProblems, MAX_EXPECTED_VERSION_LENGTH, PRECONDITION_NOT_SUPPORTED, VERSION_CONFLICTS_METADATA_KEY, VersionConflictError, asVersionConflictError, isExpectedVersion, preconditionNotSupported, versionConflict, versionConflicts, versionConflictsOf, } from "./collection/index.js";
30
+ export type { CurrentItem, VersionConflict, VersionOf, StorageItemWriteOptions, StorageBatchWriteOptions, CollectionProceduresOptions, CollectionChangeEventsOptions, CollectionChangeEvent, CollectionAdmission, CollectionRow, HintImages, HintRowState, CollectionWrite, CollectionWriteGuard, CollectionPartitions, PartitionInput, PartitionResolver, StoragePatchOperations, StorageQueryOperator, StorageQueryPolicy, CollectionStorage, StorageChanges, StorageMetadata, StorageWriteOptions, StorageSetChange, StorageDeleteChange, StorageClearChange, StorageChangeEvent, StorageChangeBatch, StorageObserver, StorageFieldOperators, StoragePatch, StorageQueryOptions, StorageSelector, StorageSort, StorageSortDirection, } from "./collection/index.js";
31
31
  export { registerModule, registerProcedures, createAndRegister, } from "./discovery.js";
32
32
  export { clientModule, defineModule, definePackage, moduleClosure, registerModules, createRegistry, registerClientProcedures, } from "./module.js";
33
33
  export type { ModuleInput, PackageDefinition } from "./module.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/procedures/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/procedures/index.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,9 @@ export { createCollectionProcedures, collectionChangeTopic, collectionTopicReads
30
30
  // The refusal of a storage whose topic is the topic of a partition (roadmap CLI-57). Deprecated since CLI-75
31
31
  CollectionTopicCollisionError,
32
32
  // The rules of the rows of a collection (roadmap CLI-41)
33
- admittedStorage, admitsRow, DEFAULT_FIND_LIMIT, DEFAULT_QUERY_OPERATORS, DEFAULT_QUERY_POLICY, QUERY_OPERATORS, applyPatch, compareStorageValues, compileSelector, isPatchOperations, matchesSelector, mergePatch, patchProblems, queryEntries, queryOptionsProblems, selectorProblems, MAX_EXPECTED_VERSION_LENGTH, PRECONDITION_NOT_SUPPORTED, VERSION_CONFLICTS_METADATA_KEY, VersionConflictError, asVersionConflictError, isExpectedVersion, preconditionNotSupported, versionConflict, versionConflicts, versionConflictsOf, } from "./collection/index.js";
33
+ admittedStorage, admitsRow,
34
+ // The images of the rows of a change event, for the row filter of each subscriber (roadmap CLI-78)
35
+ withHintImages, hintImagesOf, DEFAULT_FIND_LIMIT, DEFAULT_QUERY_OPERATORS, DEFAULT_QUERY_POLICY, QUERY_OPERATORS, applyPatch, compareStorageValues, compileSelector, isPatchOperations, matchesSelector, mergePatch, patchProblems, queryEntries, queryOptionsProblems, selectorProblems, MAX_EXPECTED_VERSION_LENGTH, PRECONDITION_NOT_SUPPORTED, VERSION_CONFLICTS_METADATA_KEY, VersionConflictError, asVersionConflictError, isExpectedVersion, preconditionNotSupported, versionConflict, versionConflicts, versionConflictsOf, } from "./collection/index.js";
34
36
  // Manual registration helpers
35
37
  export { registerModule, registerProcedures, createAndRegister, } from "./discovery.js";
36
38
  // Modules and explicit registries (roadmap 3.1)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/procedures/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/procedures/index.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/client",
4
- "version": "0.35.1",
4
+ "version": "0.37.0",
5
5
  "description": "Procedures as data for TypeScript: define typed procedures once and call them in process, over HTTP, WebSocket, the CLI or MCP. Streaming, middleware, retries, caching and a JSON program format.",
6
6
  "keywords": [
7
7
  "rpc",
package/src/browser.ts CHANGED
@@ -148,6 +148,9 @@ export {
148
148
  // The rules of the rows of a collection (roadmap CLI-41)
149
149
  admittedStorage,
150
150
  admitsRow,
151
+ // The images of the rows of a change event, for the row filter of each subscriber (roadmap CLI-78)
152
+ withHintImages,
153
+ hintImagesOf,
151
154
  // The query language of the collection storages (roadmap CLI-14, CLI-34)
152
155
  DEFAULT_FIND_LIMIT,
153
156
  DEFAULT_QUERY_OPERATORS,
@@ -337,6 +340,8 @@ export type {
337
340
  CollectionChangeEventsOptions,
338
341
  CollectionAdmission,
339
342
  CollectionRow,
343
+ HintImages,
344
+ HintRowState,
340
345
  CollectionWrite,
341
346
  CollectionWriteGuard,
342
347
  CollectionPartitions,
@@ -590,6 +595,8 @@ export type {
590
595
  TopicRule,
591
596
  TopicCall,
592
597
  RightsChange,
598
+ RightsScope,
599
+ RightsScopes,
593
600
  SubscriptionRecheck,
594
601
  EventItem,
595
602
  RemoteEvent,
package/src/events/bus.ts CHANGED
@@ -444,6 +444,9 @@ export function resetGlobalEventBus(): void {
444
444
  globalBus = undefined;
445
445
  }
446
446
 
447
+ /** The key of the bus under a view of a bus. */
448
+ const BASE_BUS = Symbol.for("procedures.baseBus");
449
+
447
450
  /**
448
451
  * A view of a bus whose `stream()` and `once()` use a signal when the caller gives none. The
449
452
  * context of a procedure gets this view: when the invocation aborts, the handler's waits on
@@ -455,7 +458,7 @@ export function resetGlobalEventBus(): void {
455
458
  */
456
459
  export function withEventBusSignal(bus: EventBus, signal: AbortSignal): EventBus {
457
460
  const waitOptions = (options?: EventWaitOptions): EventWaitOptions => ({ signal: options?.signal ?? signal });
458
- return {
461
+ const view: EventBus = {
459
462
  emit: (channel, data) => bus.emit(channel, data),
460
463
  on: (channel, handler, options) => bus.on(channel, handler, options),
461
464
  once: (channel, options) => bus.once(channel, waitOptions(options)),
@@ -466,6 +469,8 @@ export function withEventBusSignal(bus: EventBus, signal: AbortSignal): EventBus
466
469
  clear: (channel) => bus.clear(channel),
467
470
  clearAll: () => bus.clearAll(),
468
471
  };
472
+ // The bus under the view: the marks of the row filters of the events belong to it (roadmap CLI-78)
473
+ return Object.defineProperty(view, BASE_BUS, { value: (bus as { [BASE_BUS]?: EventBus })[BASE_BUS] ?? bus, enumerable: false });
469
474
  }
470
475
 
471
476
  // =============================================================================
@@ -59,7 +59,7 @@ export {
59
59
  // The remote events: a peer subscribes to the topics of the bus of another peer (EVENTS.md)
60
60
  export { EventPublisher, topicMatcher, MAX_SUBSCRIPTION_TOPICS, MAX_TOPIC_LENGTH } from "./publisher.js";
61
61
  export type { EventPublisherOptions, TopicRule, TopicCall } from "./publisher.js";
62
- export type { RightsChange, SubscriptionRecheck } from "./recheck.js";
62
+ export type { RightsChange, RightsScope, RightsScopes, SubscriptionRecheck } from "./recheck.js";
63
63
  export { EVENTS_SUBSCRIBE_PATH, SubscriptionError, remoteEvents, subscribeRemote } from "./remote.js";
64
64
  export type {
65
65
  EventItem,
@@ -20,6 +20,12 @@
20
20
  * (`ctx.admit`): each row passes the filter, and the subscriber gets only the admitted rows.
21
21
  * - An open subscription gets the same checks again at a change of the rights (`rightsChanged()`,
22
22
  * `recheck.rightsChanges`) and after `recheck.maxAge` (roadmap CLI-44). A refusal ends it.
23
+ * - The change events of a collection with a rule of the rows (`admission.admit`) reach each
24
+ * subscriber through a row filter (roadmap CLI-78, `hint-filter.ts`). The subscriber gets only the
25
+ * ids of the rows that it can read. A re-check at a change of the rights gives such a subscriber a
26
+ * `reset` hint, so it reads its rows again.
27
+ * - The `seq` of an event counts the events that the subscriber gets. An event that the row filter
28
+ * takes out gets no number, so the subscriber sees no gap.
23
29
  *
24
30
  * The delivery is at most once. The queue of a subscription holds at most `buffer` events. When
25
31
  * it is full, the publisher drops the oldest event, and the next event tells the number of lost
@@ -39,7 +45,8 @@ import { getGlobalEventBus } from "./bus.js";
39
45
  import { EVENTS_SUBSCRIBE_PATH, type EventItem, type SubscribeInput } from "./remote.js";
40
46
  import { admittedValue, rowsOf } from "./rows.js";
41
47
  import { realClock, type Clock } from "../clock.js";
42
- import { SubscriptionRechecks, type RightsChange, type SubscriptionRecheck } from "./recheck.js";
48
+ import { SubscriptionRechecks, type RecheckCause, type RightsChange, type RightsScope, type RightsScopes, type SubscriptionRecheck } from "./recheck.js";
49
+ import { DROPPED, RowHintFilter, collectionInvocation, collectionRulesOf, markFilteredTopic, type HintFilterMode } from "../procedures/collection/hint-filter.js";
43
50
 
44
51
  /** The number of topics that one subscription can name. */
45
52
  export const MAX_SUBSCRIPTION_TOPICS = 64;
@@ -172,7 +179,45 @@ const eventItemSchema = z.discriminatedUnion("type", [
172
179
  ]);
173
180
 
174
181
  /** A topic of a subscriber, and the topic of the bus that it listens to. */
175
- type Route = readonly [topic: string, busTopic: string];
182
+ interface Route {
183
+ readonly topic: string;
184
+ readonly busTopic: string;
185
+ /** The collection of a topic of a collection, and its resolved partition (roadmap CLI-78). */
186
+ readonly collection?: string | undefined;
187
+ readonly partition?: string | undefined;
188
+ /** The partition that the topic names, before the resolver: the input of the rules has it. */
189
+ readonly requested?: string | undefined;
190
+ }
191
+
192
+ /** True when a change of the rights with this scope touches the rows of the route (roadmap CLI-78). */
193
+ function inScope(route: Route, scope: RightsScopes | undefined): boolean {
194
+ if (scope === undefined) return true;
195
+ const scopes: readonly RightsScope[] = Array.isArray(scope) ? scope : [scope as RightsScope];
196
+ return scopes.some(({ collection, partition }) => matchesName(collection, route.collection) && matchesName(partition, route.partition));
197
+ }
198
+
199
+ /** True when a name of a route matches a field of a scope. A test that throws matches. */
200
+ function matchesName(field: RightsScope["collection"], name: string | undefined): boolean {
201
+ if (field === undefined) return true;
202
+ if (name === undefined) return false;
203
+ if (typeof field === "string") return field === name;
204
+ try {
205
+ return field(name) === true;
206
+ } catch {
207
+ return true;
208
+ }
209
+ }
210
+
211
+ /** An event of the bus that waits in the queue of a subscription. It gets its `seq` when the subscriber gets it. */
212
+ interface QueuedEvent {
213
+ readonly topic: string;
214
+ readonly data: unknown;
215
+ }
216
+
217
+ /** The `reset` hint that a re-check gives to a subscriber with a row filter (roadmap CLI-78). */
218
+ function resetHint(): unknown {
219
+ return { changed: [], deleted: [], reset: true };
220
+ }
176
221
 
177
222
  /**
178
223
  * One subscription: the listeners on the bus and the queue of its events. It is the async
@@ -182,7 +227,7 @@ type Route = readonly [topic: string, busTopic: string];
182
227
  */
183
228
  class TopicSubscription implements AsyncIterableIterator<EventItem> {
184
229
  private confirmation: EventItem | undefined;
185
- private readonly queue: Array<Extract<EventItem, { type: "event" }>> = [];
230
+ private readonly queue: QueuedEvent[] = [];
186
231
  private seq = 0;
187
232
  private dropped = 0;
188
233
  private waiter:
@@ -207,10 +252,12 @@ class TopicSubscription implements AsyncIterableIterator<EventItem> {
207
252
  private readonly admit: ((item: unknown) => Promise<boolean>) | undefined,
208
253
  /** The invocation of the subscription: the rule of the rows of a value gets it (roadmap CLI-41) */
209
254
  private readonly invocation?: Invocation | undefined,
255
+ /** The row filter of each topic of a collection, by the topic of the subscriber (roadmap CLI-78) */
256
+ private readonly filters?: ReadonlyMap<string, RowHintFilter> | undefined,
210
257
  ) {
211
- this.confirmation = { type: "subscribed", topics: routes.map(([topic]) => topic) };
258
+ this.confirmation = { type: "subscribed", topics: routes.map(({ topic }) => topic) };
212
259
  // Before, clear() removed the listeners, and the subscriber saw no end (EVENTS.md)
213
- this.unsubscribes = routes.map(([topic, busTopic]) =>
260
+ this.unsubscribes = routes.map(({ topic, busTopic }) =>
214
261
  bus.on(busTopic, (data) => this.push(topic, data), { onClear: () => this.fail(clearedError(topic), { keepQueue: true }) }),
215
262
  );
216
263
  signal?.addEventListener("abort", this.onAbort, { once: true });
@@ -227,7 +274,7 @@ class TopicSubscription implements AsyncIterableIterator<EventItem> {
227
274
  /** This function takes one event of the bus. It never waits. */
228
275
  private push(topic: string, data: unknown): void {
229
276
  if (this.closed) return;
230
- const event = { type: "event" as const, topic, data, seq: ++this.seq };
277
+ const event: QueuedEvent = { topic, data };
231
278
  const waiter = this.waiter;
232
279
  if (waiter && this.queue.length === 0 && !this.recheck) {
233
280
  this.waiter = undefined;
@@ -243,22 +290,44 @@ class TopicSubscription implements AsyncIterableIterator<EventItem> {
243
290
  }
244
291
 
245
292
  /**
246
- * The item of an event for the subscriber. The rows of its data pass the output filter of the
247
- * host for this subscriber and the rule of the rows, and the subscriber gets only the admitted rows.
293
+ * This function gives a `reset` hint to the subscriber on a topic (roadmap CLI-78): its rights
294
+ * changed, so it reads its rows again. The hint goes after the events of the queue.
248
295
  */
249
- private deliver(event: Extract<EventItem, { type: "event" }>): Promise<IteratorResult<EventItem>> {
250
- const item = this.withDropped(event) as Extract<EventItem, { type: "event" }>;
251
- const rows = rowsOf(item.data);
252
- if (!rows || (!this.admit && !rows.admit)) return Promise.resolve({ value: item, done: false });
253
- return admittedValue(item.data, this.admit, this.invocation).then((data): IteratorResult<EventItem> => ({ value: { ...item, data }, done: false }));
296
+ reset(topic: string): void {
297
+ this.filters?.get(topic)?.forget();
298
+ this.push(topic, resetHint());
299
+ }
300
+
301
+ /**
302
+ * The item of an event for the subscriber. The ids of a change event pass the row filter of the
303
+ * topic (roadmap CLI-78). The rows of its data pass the output filter of the host for this
304
+ * subscriber and the rule of the rows. The subscriber gets only the admitted rows. An event
305
+ * that the row filter takes out goes, and the subscriber gets the next event.
306
+ */
307
+ private deliver(event: QueuedEvent): Promise<IteratorResult<EventItem>> {
308
+ const filtered = this.filters?.get(event.topic)?.apply(event.data);
309
+ if (!filtered) return this.item(event.topic, event.data);
310
+ return filtered.then(
311
+ (data) => (data === DROPPED ? this.next() : this.item(event.topic, data)),
312
+ // A filter that fails: the subscriber reads the changes itself
313
+ () => this.item(event.topic, { changed: [], deleted: [] }),
314
+ );
254
315
  }
255
316
 
256
- /** The event with the number of events that the publisher dropped before it. */
257
- private withDropped(event: Extract<EventItem, { type: "event" }>): EventItem {
258
- if (this.dropped === 0) return event;
317
+ /**
318
+ * The item of the data of an event. It gets the next `seq`, and the number of events that the
319
+ * publisher dropped before it. A dropped event keeps its number, so the subscriber sees the gap.
320
+ */
321
+ private item(topic: string, data: unknown): Promise<IteratorResult<EventItem>> {
259
322
  const dropped = this.dropped;
260
323
  this.dropped = 0;
261
- return { ...event, dropped };
324
+ this.seq += dropped;
325
+ const item: Extract<EventItem, { type: "event" }> = { type: "event", topic, data, seq: ++this.seq, ...(dropped > 0 && { dropped }) };
326
+ const rows = rowsOf(data);
327
+ if (!rows || (!this.admit && !rows.admit)) return Promise.resolve({ value: item, done: false });
328
+ // The rule of the rows of a topic of a collection gets the invocation of that topic (roadmap CLI-78)
329
+ const invocation = this.filters?.get(topic)?.invocation ?? this.invocation;
330
+ return admittedValue(data, this.admit, invocation).then((admitted): IteratorResult<EventItem> => ({ value: { ...item, data: admitted }, done: false }));
262
331
  }
263
332
 
264
333
  next(): Promise<IteratorResult<EventItem>> {
@@ -441,10 +510,15 @@ export class EventPublisher {
441
510
  * and the partition. Its events wait for the check. A refusal ends the subscription with its
442
511
  * error, for example `FORBIDDEN`. The promise ends when each check ends, and it does not reject.
443
512
  *
513
+ * The change can also have a scope (roadmap CLI-78): the collections or the partitions whose rows
514
+ * it touches. Then only the topics of the scope with a row filter get a `reset` hint and a new
515
+ * `admitsAll`. Each touched subscription still gets the checks of its start.
516
+ *
444
517
  * @param change - The subscriptions that the change touches. Without it, each open subscription gets a check.
518
+ * @param scope - The rows that the change touches. Without it, the change touches each topic.
445
519
  */
446
- rightsChanged(change?: RightsChange): Promise<void> {
447
- return this.rechecks.rightsChanged(change);
520
+ rightsChanged(change?: RightsChange, scope?: RightsScopes): Promise<void> {
521
+ return this.rechecks.rightsChanged(change, scope);
448
522
  }
449
523
 
450
524
  /**
@@ -459,9 +533,9 @@ export class EventPublisher {
459
533
  */
460
534
  private async route(topic: string, ctx: ProcedureContext): Promise<Route> {
461
535
  const target = collectionTopicTarget(topic, ctx.repository);
462
- if (!target) return [topic, topic];
536
+ if (!target) return { topic, busTopic: topic };
463
537
  const partition = await partitionOfCall(ctx, target.collection, target.partition);
464
- return [topic, collectionChangeTopic(target.collection, partition)];
538
+ return { topic, busTopic: collectionChangeTopic(target.collection, partition), collection: target.collection, partition, requested: target.partition };
465
539
  }
466
540
 
467
541
  /**
@@ -506,14 +580,30 @@ export class EventPublisher {
506
580
  * because the listener has the old partition.
507
581
  */
508
582
  private async readmit(routes: ReadonlyArray<Route>, ctx: ProcedureContext): Promise<void> {
509
- this.admitTopics(routes.map(([topic]) => topic), ctx);
510
- for (const [topic, busTopic] of routes) {
511
- if ((await this.route(topic, ctx))[1] !== busTopic) {
583
+ this.admitTopics(routes.map(({ topic }) => topic), ctx);
584
+ for (const { topic, busTopic } of routes) {
585
+ if ((await this.route(topic, ctx)).busTopic !== busTopic) {
512
586
  throw new InvocationError("FORBIDDEN", `The partition of the topic "${topic}" changed, so the subscription ends`, ctx.path, "partition-not-allowed");
513
587
  }
514
588
  }
515
589
  }
516
590
 
591
+ /**
592
+ * The row filters of the topics of the collections of a subscription (roadmap CLI-78). Each one
593
+ * gets the rules of its collection and the result of `admitsAll`.
594
+ */
595
+ private async filtersOf(routes: ReadonlyArray<Route>, ctx: ProcedureContext): Promise<Map<string, RowHintFilter>> {
596
+ const filters = new Map<string, RowHintFilter>();
597
+ for (const { topic, collection, partition, requested } of routes) {
598
+ if (collection === undefined) continue;
599
+ // The rules get an invocation of the collection and its partition, not the call of `events.subscribe`
600
+ const filter = new RowHintFilter(() => collectionRulesOf(ctx, collection), collectionInvocation(ctx.invocation, ctx, collection, requested), partition);
601
+ await filter.refresh();
602
+ filters.set(topic, filter);
603
+ }
604
+ return filters;
605
+ }
606
+
517
607
  /**
518
608
  * The stream of one subscription. The publisher examines each topic before it adds a listener:
519
609
  * the topic rule, the reads, `allow`, and the partition. A call with one bad topic makes no subscription.
@@ -523,10 +613,44 @@ export class EventPublisher {
523
613
  this.admitTopics(unique, ctx);
524
614
  const routes: Route[] = [];
525
615
  for (const topic of unique) routes.push(await this.route(topic, ctx));
526
- const subscription = new TopicSubscription(this.bus, routes, this.buffer, ctx.signal, (closed) => this.open.delete(closed), ctx.admit, ctx.invocation);
616
+ const filters = await this.filtersOf(routes, ctx);
617
+ const subscription = new TopicSubscription(this.bus, routes, this.buffer, ctx.signal, (closed) => this.open.delete(closed), ctx.admit, ctx.invocation, filters);
527
618
  this.open.add(subscription);
619
+ // The marks of the topics with a row filter: the writes of these topics read the rows before them (roadmap CLI-78)
620
+ const marks = new Map<string, () => void>();
621
+ let ended = false;
622
+ const mark = (route: Route, mode: HintFilterMode): void => {
623
+ if (ended) return;
624
+ const marked = marks.get(route.topic);
625
+ if (mode === "pass") {
626
+ marked?.();
627
+ marks.delete(route.topic);
628
+ } else if (!marked) {
629
+ marks.set(route.topic, markFilteredTopic(this.bus, route.busTopic));
630
+ }
631
+ };
632
+ for (const route of routes) {
633
+ const filter = filters.get(route.topic);
634
+ if (filter) mark(route, filter.mode);
635
+ }
636
+ subscription.onEnd(() => {
637
+ ended = true;
638
+ for (const unmark of marks.values()) unmark();
639
+ marks.clear();
640
+ });
528
641
  // The same checks run again at a change of the rights and after the max age (roadmap CLI-44)
529
- this.rechecks.watch(subscription, ctx.principal, () => this.readmit(routes, ctx));
642
+ this.rechecks.watch(subscription, ctx.principal, async (cause: RecheckCause, scope?: RightsScopes) => {
643
+ await this.readmit(routes, ctx);
644
+ // The rights can change the rows that the subscriber reads: a `reset` hint makes it read them again (roadmap CLI-78)
645
+ for (const route of routes) {
646
+ const filter = filters.get(route.topic);
647
+ if (!filter || !inScope(route, scope)) continue;
648
+ const before = filter.mode;
649
+ const after = await filter.refresh();
650
+ mark(route, after);
651
+ if (after !== before || (cause === "rights" && after === "filter")) subscription.reset(route.topic);
652
+ }
653
+ });
530
654
  return subscription.closeIfAborted();
531
655
  }
532
656
  }