optio-api 0.2.9 → 0.2.11

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 (54) hide show
  1. package/README.md +39 -7
  2. package/dist/_generated/optio-engine.d.ts +8 -0
  3. package/dist/_generated/optio-engine.d.ts.map +1 -1
  4. package/dist/_generated/optio-engine.js +3 -0
  5. package/dist/_generated/optio-engine.js.map +1 -1
  6. package/dist/access-scope.d.ts +53 -0
  7. package/dist/access-scope.d.ts.map +1 -0
  8. package/dist/access-scope.js +110 -0
  9. package/dist/access-scope.js.map +1 -0
  10. package/dist/adapters/express.d.ts +5 -0
  11. package/dist/adapters/express.d.ts.map +1 -1
  12. package/dist/adapters/express.js +35 -23
  13. package/dist/adapters/express.js.map +1 -1
  14. package/dist/adapters/fastify.d.ts +5 -1
  15. package/dist/adapters/fastify.d.ts.map +1 -1
  16. package/dist/adapters/fastify.js +74 -33
  17. package/dist/adapters/fastify.js.map +1 -1
  18. package/dist/adapters/nextjs-app.d.ts +5 -0
  19. package/dist/adapters/nextjs-app.d.ts.map +1 -1
  20. package/dist/adapters/nextjs-app.js +44 -15
  21. package/dist/adapters/nextjs-app.js.map +1 -1
  22. package/dist/adapters/nextjs-pages.d.ts +5 -0
  23. package/dist/adapters/nextjs-pages.d.ts.map +1 -1
  24. package/dist/adapters/nextjs-pages.js +41 -15
  25. package/dist/adapters/nextjs-pages.js.map +1 -1
  26. package/dist/auth.d.ts +48 -0
  27. package/dist/auth.d.ts.map +1 -1
  28. package/dist/auth.js +44 -0
  29. package/dist/auth.js.map +1 -1
  30. package/dist/discovery.d.ts +7 -1
  31. package/dist/discovery.d.ts.map +1 -1
  32. package/dist/discovery.js +18 -11
  33. package/dist/discovery.js.map +1 -1
  34. package/dist/handlers.d.ts +44 -14
  35. package/dist/handlers.d.ts.map +1 -1
  36. package/dist/handlers.js +78 -20
  37. package/dist/handlers.js.map +1 -1
  38. package/dist/index.d.ts +3 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +5 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/process-change-hub.d.ts +87 -0
  43. package/dist/process-change-hub.d.ts.map +1 -0
  44. package/dist/process-change-hub.js +268 -0
  45. package/dist/process-change-hub.js.map +1 -0
  46. package/dist/process-change-relevance.d.ts +57 -0
  47. package/dist/process-change-relevance.d.ts.map +1 -0
  48. package/dist/process-change-relevance.js +101 -0
  49. package/dist/process-change-relevance.js.map +1 -0
  50. package/dist/stream-poller.d.ts +13 -1
  51. package/dist/stream-poller.d.ts.map +1 -1
  52. package/dist/stream-poller.js +290 -260
  53. package/dist/stream-poller.js.map +1 -1
  54. package/package.json +2 -2
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Which changes of `{prefix}_processes` a live stream must re-read for,
3
+ * decided from the change event alone (no extra read). The rules lean towards
4
+ * "relevant": a false positive costs one read, a false negative a stale stream.
5
+ *
6
+ * Spec: docs/2026-10-09-api-change-streams-design.md ("What is relevant")
7
+ */
8
+ import type { ChangeStreamDocument, Document } from 'mongodb';
9
+ /**
10
+ * The fields the list stream compares and sends; the list poll reads nothing
11
+ * else (no log, widgetData, params or sessionEvents), so each read stays small.
12
+ */
13
+ export declare const LIST_PROJECTION: {
14
+ readonly processId: 1;
15
+ readonly name: 1;
16
+ readonly status: 1;
17
+ readonly progress: 1;
18
+ readonly cancellable: 1;
19
+ readonly special: 1;
20
+ readonly warning: 1;
21
+ readonly metadata: 1;
22
+ readonly depth: 1;
23
+ readonly supportsResume: 1;
24
+ readonly hasSavedState: 1;
25
+ readonly supportsResurrect: 1;
26
+ readonly hasUnsavedWork: 1;
27
+ readonly resurrecting: 1;
28
+ readonly autoResumeScheduled: 1;
29
+ readonly browserOpenRequests: 1;
30
+ };
31
+ /** A change of one process document, reduced to what the rules need. Ids are
32
+ * the `_id` as a string (ObjectId hex). `fields` are the top-level keys an
33
+ * update touched; `values` its `updatedFields` as delivered. */
34
+ export type ProcessChange = {
35
+ op: 'insert' | 'replace';
36
+ id: string;
37
+ doc: Record<string, unknown>;
38
+ } | {
39
+ op: 'update';
40
+ id: string;
41
+ fields: Set<string>;
42
+ values: Record<string, unknown>;
43
+ } | {
44
+ op: 'delete';
45
+ id: string;
46
+ } | {
47
+ op: 'invalidate';
48
+ };
49
+ export declare function toProcessChange(ev: ChangeStreamDocument<Document>): ProcessChange | null;
50
+ /** The list stream (`members`: the ids it showed in its last read). */
51
+ export declare function listRelevant(c: ProcessChange, members: Set<string>): boolean;
52
+ /** A tree or multi-tree stream (`roots`: its root ids; `members`: the ids it
53
+ * showed in its last read, flat ids included). */
54
+ export declare function treeRelevant(c: ProcessChange, roots: Set<string>, members: Set<string>): boolean;
55
+ /** The session-events stream of `sessionId` (`members`: the ids it read). */
56
+ export declare function sessionRelevant(c: ProcessChange, sessionId: string, members: Set<string>): boolean;
57
+ //# sourceMappingURL=process-change-relevance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-change-relevance.d.ts","sourceRoot":"","sources":["../src/process-change-relevance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAKlB,CAAC;AAIX;;iEAEiE;AACjE,MAAM,MAAM,aAAa,GACrB;IAAE,EAAE,EAAE,QAAQ,GAAG,SAAS,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACtE;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAClF;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,YAAY,CAAA;CAAE,CAAC;AAIzB,wBAAgB,eAAe,CAAC,EAAE,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,aAAa,GAAG,IAAI,CAuCxF;AAOD,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAW5E;AAED;mDACmD;AACnD,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAWhG;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAalG"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * The fields the list stream compares and sends; the list poll reads nothing
3
+ * else (no log, widgetData, params or sessionEvents), so each read stays small.
4
+ */
5
+ export const LIST_PROJECTION = {
6
+ processId: 1, name: 1, status: 1, progress: 1, cancellable: 1, special: 1,
7
+ warning: 1, metadata: 1, depth: 1, supportsResume: 1, hasSavedState: 1,
8
+ supportsResurrect: 1, hasUnsavedWork: 1, resurrecting: 1,
9
+ autoResumeScheduled: 1, browserOpenRequests: 1,
10
+ };
11
+ const LIST_FIELDS = new Set(Object.keys(LIST_PROJECTION));
12
+ const topLevel = (path) => path.split('.', 1)[0];
13
+ export function toProcessChange(ev) {
14
+ switch (ev.operationType) {
15
+ case 'insert':
16
+ case 'replace':
17
+ return {
18
+ op: ev.operationType,
19
+ id: String(ev.documentKey._id),
20
+ doc: (ev.fullDocument ?? {}),
21
+ };
22
+ case 'update': {
23
+ const trimmed = ev;
24
+ if (Array.isArray(trimmed.changedFields)) {
25
+ // Cut down by the change stream's own pipeline (process-change-hub.ts).
26
+ return {
27
+ op: 'update',
28
+ id: String(ev.documentKey._id),
29
+ fields: new Set(trimmed.changedFields.map(topLevel)),
30
+ values: 'sessionValue' in trimmed ? { originatingSessionId: trimmed.sessionValue } : {},
31
+ };
32
+ }
33
+ const desc = ev.updateDescription ?? {};
34
+ const values = (desc.updatedFields ?? {});
35
+ const fields = new Set([
36
+ ...Object.keys(values).map(topLevel),
37
+ ...(desc.removedFields ?? []).map(topLevel),
38
+ ...(desc.truncatedArrays ?? []).map((t) => topLevel(t.field)),
39
+ ]);
40
+ return { op: 'update', id: String(ev.documentKey._id), fields, values };
41
+ }
42
+ case 'delete':
43
+ return { op: 'delete', id: String(ev.documentKey._id) };
44
+ case 'drop':
45
+ case 'rename':
46
+ case 'dropDatabase':
47
+ case 'invalidate':
48
+ return { op: 'invalidate' };
49
+ default:
50
+ return null;
51
+ }
52
+ }
53
+ const touches = (fields, wanted) => {
54
+ for (const f of fields)
55
+ if (wanted.has(f))
56
+ return true;
57
+ return false;
58
+ };
59
+ /** The list stream (`members`: the ids it showed in its last read). */
60
+ export function listRelevant(c, members) {
61
+ switch (c.op) {
62
+ case 'invalidate':
63
+ case 'insert':
64
+ case 'replace': // may start or stop matching, like an insert
65
+ return true;
66
+ case 'delete':
67
+ return members.has(c.id);
68
+ case 'update':
69
+ return c.fields.has('metadata') || (members.has(c.id) && touches(c.fields, LIST_FIELDS));
70
+ }
71
+ }
72
+ /** A tree or multi-tree stream (`roots`: its root ids; `members`: the ids it
73
+ * showed in its last read, flat ids included). */
74
+ export function treeRelevant(c, roots, members) {
75
+ switch (c.op) {
76
+ case 'invalidate':
77
+ return true;
78
+ case 'insert':
79
+ case 'replace':
80
+ return members.has(c.id) || roots.has(String(c.doc.rootId));
81
+ case 'delete':
82
+ case 'update':
83
+ return members.has(c.id);
84
+ }
85
+ }
86
+ /** The session-events stream of `sessionId` (`members`: the ids it read). */
87
+ export function sessionRelevant(c, sessionId, members) {
88
+ switch (c.op) {
89
+ case 'invalidate':
90
+ return true;
91
+ case 'insert':
92
+ case 'replace':
93
+ return c.doc.originatingSessionId === sessionId;
94
+ case 'delete':
95
+ return false; // a deleted process has no new events to send
96
+ case 'update':
97
+ return c.values.originatingSessionId === sessionId
98
+ || (members.has(c.id) && c.fields.has('sessionEvents'));
99
+ }
100
+ }
101
+ //# sourceMappingURL=process-change-relevance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-change-relevance.js","sourceRoot":"","sources":["../src/process-change-relevance.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,24 @@
1
1
  import { ObjectId, type Db } from 'mongodb';
2
2
  import type { ProcessMetadataFilter } from 'optio-contracts';
3
+ import type { ScopeFilter } from './auth.js';
4
+ import { type ProcessChangeHub } from './process-change-hub.js';
3
5
  export interface StreamPollerOptions {
4
6
  db: Db;
5
7
  prefix: string;
6
8
  sendEvent: (data: unknown) => void;
7
9
  onError: () => void;
8
10
  metadataFilter?: ProcessMetadataFilter;
11
+ /** Access scope (auth.ts): only processes inside it are emitted. */
12
+ scope?: ScopeFilter | null;
13
+ /** The change hub to follow; default: the shared hub of (db, prefix). */
14
+ hub?: ProcessChangeHub;
9
15
  }
10
16
  export interface ListPollerHandle {
11
17
  start(): void;
12
18
  stop(): void;
13
19
  }
14
20
  export declare function createListPoller(opts: StreamPollerOptions): ListPollerHandle;
15
- export interface TreePollerOptions extends Omit<StreamPollerOptions, 'metadataFilter'> {
21
+ export interface TreePollerOptions extends Omit<StreamPollerOptions, 'metadataFilter' | 'scope'> {
16
22
  rootId: string;
17
23
  baseDepth: number;
18
24
  maxDepth?: number;
@@ -30,6 +36,8 @@ export interface MultiTreePollerOptions {
30
36
  treeRoots: MultiTreeRoot[];
31
37
  flatIds: ObjectId[];
32
38
  maxDepth?: number;
39
+ /** The change hub to follow; default: the shared hub of (db, prefix). */
40
+ hub?: ProcessChangeHub;
33
41
  }
34
42
  export declare function createMultiTreePoller(opts: MultiTreePollerOptions): ListPollerHandle;
35
43
  export interface SessionEventsPollerOptions {
@@ -38,6 +46,10 @@ export interface SessionEventsPollerOptions {
38
46
  sessionId: string;
39
47
  sendEvent: (data: unknown) => void;
40
48
  onError: () => void;
49
+ /** Access scope (auth.ts): only processes inside it are read. */
50
+ scope?: ScopeFilter | null;
51
+ /** The change hub to follow; default: the shared hub of (db, prefix). */
52
+ hub?: ProcessChangeHub;
41
53
  }
42
54
  /**
43
55
  * Poll-backed session-events feed. Each ~1s tick reads processes whose
@@ -1 +1 @@
1
- {"version":3,"file":"stream-poller.d.ts","sourceRoot":"","sources":["../src/stream-poller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG7D,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;CACd;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CA+D5E;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,CA4G1E;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,GAAG,gBAAgB,CA0HpF;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,0BAA0B,GAAG,gBAAgB,CA2C5F"}
1
+ {"version":3,"file":"stream-poller.d.ts","sourceRoot":"","sources":["../src/stream-poller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAI7C,OAAO,EAA2C,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEzG,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,oEAAoE;IACpE,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,yEAAyE;IACzE,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;CACd;AAqED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CAyD5E;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAC9F,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,CAoG1E;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,GAAG,gBAAgB,CAkHpF;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iEAAiE;IACjE,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,yEAAyE;IACzE,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,0BAA0B,GAAG,gBAAgB,CA6B5F"}