@x12i/memorix-service 3.13.0 → 3.14.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 (52) hide show
  1. package/dist/analytics/host.d.ts +2 -2
  2. package/dist/analytics/host.d.ts.map +1 -1
  3. package/dist/analytics/host.js.map +1 -1
  4. package/dist/analytics/read-row.d.ts +33 -0
  5. package/dist/analytics/read-row.d.ts.map +1 -0
  6. package/dist/analytics/read-row.js +76 -0
  7. package/dist/analytics/read-row.js.map +1 -0
  8. package/dist/analytics/tracker.d.ts +14 -0
  9. package/dist/analytics/tracker.d.ts.map +1 -1
  10. package/dist/analytics/tracker.js +55 -17
  11. package/dist/analytics/tracker.js.map +1 -1
  12. package/dist/catalog-bridge.d.ts +4 -4
  13. package/dist/catalog-bridge.d.ts.map +1 -1
  14. package/dist/catalog-bridge.js +63 -34
  15. package/dist/catalog-bridge.js.map +1 -1
  16. package/dist/metadata-view.d.ts +30 -0
  17. package/dist/metadata-view.d.ts.map +1 -0
  18. package/dist/metadata-view.js +67 -0
  19. package/dist/metadata-view.js.map +1 -0
  20. package/dist/nexum-analysis/enqueue.d.ts +1 -1
  21. package/dist/nexum-analysis/enqueue.d.ts.map +1 -1
  22. package/dist/nexum-analysis/enqueue.js +2 -1
  23. package/dist/nexum-analysis/enqueue.js.map +1 -1
  24. package/dist/openapi/openapi.json +115 -11
  25. package/dist/platform.d.ts +7 -0
  26. package/dist/platform.d.ts.map +1 -1
  27. package/dist/platform.js +68 -29
  28. package/dist/platform.js.map +1 -1
  29. package/dist/routes/data.d.ts.map +1 -1
  30. package/dist/routes/data.js +123 -12
  31. package/dist/routes/data.js.map +1 -1
  32. package/dist/writes/content-write.d.ts +38 -1
  33. package/dist/writes/content-write.d.ts.map +1 -1
  34. package/dist/writes/content-write.js +67 -7
  35. package/dist/writes/content-write.js.map +1 -1
  36. package/dist/writes/error-shape.d.ts.map +1 -1
  37. package/dist/writes/error-shape.js +8 -1
  38. package/dist/writes/error-shape.js.map +1 -1
  39. package/dist/writes/queued-write.d.ts +38 -0
  40. package/dist/writes/queued-write.d.ts.map +1 -0
  41. package/dist/writes/queued-write.js +288 -0
  42. package/dist/writes/queued-write.js.map +1 -0
  43. package/dist/writes/receipt-store.d.ts +52 -2
  44. package/dist/writes/receipt-store.d.ts.map +1 -1
  45. package/dist/writes/receipt-store.js +191 -2
  46. package/dist/writes/receipt-store.js.map +1 -1
  47. package/dist/writes/worker.d.ts +21 -0
  48. package/dist/writes/worker.d.ts.map +1 -1
  49. package/dist/writes/worker.js +81 -1
  50. package/dist/writes/worker.js.map +1 -1
  51. package/openapi/openapi.json +115 -11
  52. package/package.json +1 -1
@@ -3,9 +3,9 @@
3
3
  * for the `@datasources` backfill, and cell cleanup on rebuild.
4
4
  */
5
5
  import type { MongoClient } from "mongodb";
6
- import type { UnifiedMetadataClient } from "@x12i/memorix-metadata-runtime";
6
+ import type { MetadataView } from "../metadata-view.js";
7
7
  import { type AnalyticsMetadataView, type HeadSource } from "./tracker.js";
8
- export declare function createAnalyticsMetadataViews(metadata: UnifiedMetadataClient): {
8
+ export declare function createAnalyticsMetadataViews(metadata: MetadataView): {
9
9
  viewFor(agentIds: string[]): AnalyticsMetadataView;
10
10
  invalidate(): void;
11
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/analytics/host.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAK5E,OAAO,EAAsB,KAAK,qBAAqB,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ/F,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,qBAAqB,GAAG;IAC7E,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAAC;IACnD,UAAU,IAAI,IAAI,CAAC;CACpB,CAqFA;AAED,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CA4CrE;AAMD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhH"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/analytics/host.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,EAAsB,KAAK,qBAAqB,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ/F,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,YAAY,GAAG;IACpE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAAC;IACnD,UAAU,IAAI,IAAI,CAAC;CACpB,CAqFA;AAED,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CA4CrE;AAMD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhH"}
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/analytics/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/analytics/host.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAA+C,MAAM,cAAc,CAAC;AAI/F,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,QAAsB;IAIjE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiC,CAAC;IACvD,MAAM,KAAK,GAAG,CAAC,QAAkB,EAAyB,EAAE;QAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;QACtE,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAqB,CAAC,CAAC;QACtG,MAAM,aAAa,GAAG,IAAI,GAAG,EAA4C,CAAC;QAC1E,MAAM,WAAW,GAAG,IAAI,GAAG,EAQxB,CAAC;QACJ,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,UAAqC,CAAC;YACpD,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA+B,CAAC;gBACrD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACpE,MAAM,IAAI,GAAG,CAAqC,CAAC;oBACnD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;wBAAE,SAAS;oBAC1C,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5H,CAAC;gBACD,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACrC,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC3E,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAE,EAAuB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;qBACtF,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnB,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;gBACtD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC9D,MAAM,KAAK,GAAG,GAAyC,CAAC;oBACxD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;wBAAE,SAAS;oBACnE,MAAM,CAAC,GAAG,CACR,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CACxG,CAAC;gBACJ,CAAC;gBACD,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;oBACtC,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;oBACvE,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC;oBAC1C,YAAY;oBACZ,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8D,CAAC;QACtF,OAAO;YACL,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS;YAC1B,OAAO,EAAE;gBACP,kBAAkB,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI;gBAC7E,aAAa,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC1D,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,YAAY,IAAI,IAAI;gBAC/E,SAAS,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI;aAC7F;YACD,OAAO,CAAC,YAAY;gBAClB,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,IAAI,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC1E,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,WAAW,EAAE,CAAC,CAAC,WAAW;qBAC3B,CAAC,CAAC,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,cAAc,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,IAAI,IAAI;YACzE,cAAc,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,YAAY,IAAI,QAAQ;SACtF,CAAC;IACJ,CAAC,CAAC;IACF,OAAO;QACL,OAAO,CAAC,QAAQ;YACd,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,CAAC,EAAE,CAAC;gBACP,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACpB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACpB,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,UAAU;YACR,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,qBAAqB,CAAC,MAAmB;IACvD,OAAO;QACL,KAAK,CAAC,WAAW,CAAC,KAAK;YACrB,IAAI,WAAW,GAAa,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,WAAW,GAAG,CACZ,MAAM,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,aAAsB,CAAC,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CACtH,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW,GAAG,EAAE,CAAC;YACnB,CAAC;YACD,MAAM,GAAG,GAAoE,EAAE,CAAC;YAChF,KAAK,MAAM,QAAQ,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAU,EAAE,CAAC;gBACjE,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,MAAM,MAAM;qBACvB,EAAE,CAAC,MAAM,CAAC;qBACV,eAAe,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;qBACvC,OAAO,EAAE;qBACT,KAAK,CAAC,GAAG,EAAE,CAAC,EAA6B,CAAC,CAAC;gBAC9C,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;oBAC7B,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;wBAAE,SAAS;oBAC7C,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,2BAA2B,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;oBACnF,IAAI,CAAC,WAAW;wBAAE,SAAS;oBAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK;YACpC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAkB,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9F,MAAM,IAAI,GAAG,MAAM,IAAI;iBACpB,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;iBACvD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;iBAChB,KAAK,CAAC,KAAK,CAAC;iBACZ,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC;iBAC1D,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtB,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;gBACjB,QAAQ,EAAE,MAAM,CAAE,CAA4B,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC;gBACjE,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;aAClC,CAAC,CAAC,CAAC;QACN,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAmB,EAAE,MAAc,EAAE,WAAmB;IAC/F,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC;IACvE,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * How the analytics tracker reads one stored row, and which failures are worth retrying.
3
+ */
4
+ import { type LogicalV2Record, type MemorixContentReader } from "@x12i/memorix-data";
5
+ import type { MemorixScope } from "../scope.js";
6
+ export type RowAddress = {
7
+ objectType: string;
8
+ contentType: string;
9
+ recordId: string;
10
+ };
11
+ /**
12
+ * Read the row for a record id.
13
+ *
14
+ * A discriminated content type (for example `process-manifest`, keyed by `data.kind`)
15
+ * holds one instance per discriminator value under the same record id, and the reader
16
+ * refuses an exact read that does not name one. The write events the tracker receives
17
+ * carry only the record id. For those types, take the most recently modified instance,
18
+ * found through the `recordId` index. Other types read exactly as before.
19
+ *
20
+ * Throws `READ_NOT_FOUND` when no instance exists, so callers treat the row as gone.
21
+ */
22
+ export declare function readRow(reader: MemorixContentReader, scope: MemorixScope, address: RowAddress): Promise<LogicalV2Record>;
23
+ /**
24
+ * True when retrying the task cannot succeed. Anything else, including storage
25
+ * errors and an unavailable reader, is treated as temporary.
26
+ */
27
+ export declare function isPermanentFailure(err: unknown): boolean;
28
+ /**
29
+ * Logs each distinct problem once per window. Repeats inside the window are counted
30
+ * and reported with the next line, so one bad content type cannot flood the log.
31
+ */
32
+ export declare function createProblemReporter(log: (message: string, detail?: Record<string, unknown>) => void, now: () => number, windowMs?: number): (key: string, message: string, detail: Record<string, unknown>) => void;
33
+ //# sourceMappingURL=read-row.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-row.d.ts","sourceRoot":"","sources":["../../src/analytics/read-row.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAe,KAAK,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,UAAU,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAMvF;;;;;;;;;;GAUG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,eAAe,CAAC,CAsB1B;AAeD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAExD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EAChE,GAAG,EAAE,MAAM,MAAM,EACjB,QAAQ,SAAc,GACrB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAYzE"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * How the analytics tracker reads one stored row, and which failures are worth retrying.
3
+ */
4
+ import { ReaderError } from "@x12i/memorix-data";
5
+ function codeOf(err) {
6
+ return err && typeof err === "object" && "code" in err ? String(err.code) : "";
7
+ }
8
+ /**
9
+ * Read the row for a record id.
10
+ *
11
+ * A discriminated content type (for example `process-manifest`, keyed by `data.kind`)
12
+ * holds one instance per discriminator value under the same record id, and the reader
13
+ * refuses an exact read that does not name one. The write events the tracker receives
14
+ * carry only the record id. For those types, take the most recently modified instance,
15
+ * found through the `recordId` index. Other types read exactly as before.
16
+ *
17
+ * Throws `READ_NOT_FOUND` when no instance exists, so callers treat the row as gone.
18
+ */
19
+ export async function readRow(reader, scope, address) {
20
+ try {
21
+ return await reader.getContent(scope, address);
22
+ }
23
+ catch (err) {
24
+ if (codeOf(err) !== "READ_DISCRIMINATOR_REQUIRED")
25
+ throw err;
26
+ }
27
+ const page = await reader.listContent(scope, {
28
+ objectType: address.objectType,
29
+ contentType: address.contentType,
30
+ filters: [{ field: "recordId", op: "eq", value: address.recordId }],
31
+ sort: [{ field: "_system.modifiedAt", direction: "desc" }],
32
+ limit: 1,
33
+ });
34
+ const row = page.items[0];
35
+ if (!row) {
36
+ throw new ReaderError("READ_NOT_FOUND", `No ${address.objectType}/${address.contentType} row for ${address.recordId}`, { recordId: address.recordId });
37
+ }
38
+ return row;
39
+ }
40
+ /** Reads that fail because the request is wrong. Retrying cannot change the answer. */
41
+ const PERMANENT_READ_CODES = new Set([
42
+ "READ_DISCRIMINATOR_REQUIRED",
43
+ "READ_QUERY_INVALID",
44
+ "READ_QUERY_INJECTION",
45
+ "READ_QUERY_FIELD_FORBIDDEN",
46
+ "READ_QUERY_NOT_PUSHDOWN",
47
+ "READ_ABSTRACT_UNKNOWN",
48
+ "ROUTE_UNKNOWN_OBJECT_TYPE",
49
+ "ROUTE_UNKNOWN_CONTENT_TYPE",
50
+ "ROUTE_CATEGORY_MISMATCH",
51
+ ]);
52
+ /**
53
+ * True when retrying the task cannot succeed. Anything else, including storage
54
+ * errors and an unavailable reader, is treated as temporary.
55
+ */
56
+ export function isPermanentFailure(err) {
57
+ return PERMANENT_READ_CODES.has(codeOf(err));
58
+ }
59
+ /**
60
+ * Logs each distinct problem once per window. Repeats inside the window are counted
61
+ * and reported with the next line, so one bad content type cannot flood the log.
62
+ */
63
+ export function createProblemReporter(log, now, windowMs = 10 * 60_000) {
64
+ const last = new Map();
65
+ return (key, message, detail) => {
66
+ const t = now();
67
+ const prev = last.get(key);
68
+ if (prev && t - prev.at < windowMs) {
69
+ prev.suppressed++;
70
+ return;
71
+ }
72
+ last.set(key, { at: t, suppressed: 0 });
73
+ log(message, prev && prev.suppressed > 0 ? { ...detail, alsoSkippedSinceLastReport: prev.suppressed } : detail);
74
+ };
75
+ }
76
+ //# sourceMappingURL=read-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-row.js","sourceRoot":"","sources":["../../src/analytics/read-row.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAmD,MAAM,oBAAoB,CAAC;AAKlG,SAAS,MAAM,CAAC,GAAY;IAC1B,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAE,GAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxG,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAA4B,EAC5B,KAAmB,EACnB,OAAmB;IAEnB,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,6BAA6B;YAAE,MAAM,GAAG,CAAC;IAC/D,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE;QAC3C,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAC1D,KAAK,EAAE,CAAC;KACT,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,WAAW,CACnB,gBAAgB,EAChB,MAAM,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,YAAY,OAAO,CAAC,QAAQ,EAAE,EAC7E,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAC/B,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uFAAuF;AACvF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,6BAA6B;IAC7B,oBAAoB;IACpB,sBAAsB;IACtB,4BAA4B;IAC5B,yBAAyB;IACzB,uBAAuB;IACvB,2BAA2B;IAC3B,4BAA4B;IAC5B,yBAAyB;CAC1B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,OAAO,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAgE,EAChE,GAAiB,EACjB,QAAQ,GAAG,EAAE,GAAG,MAAM;IAEtB,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8C,CAAC;IACnE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QACxC,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,0BAA0B,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClH,CAAC,CAAC;AACJ,CAAC"}
@@ -115,6 +115,7 @@ export declare class AnalyticsTracker {
115
115
  private readonly inflight;
116
116
  private readonly memoryIndexes;
117
117
  private readonly indexes;
118
+ private readonly reportSkipped;
118
119
  private closed;
119
120
  constructor(options: AnalyticsTrackerOptions);
120
121
  private indexStore;
@@ -137,6 +138,19 @@ export declare class AnalyticsTracker {
137
138
  private enqueue;
138
139
  private scheduleDrain;
139
140
  private drain;
141
+ private processGroup;
142
+ /**
143
+ * Process tasks that share a counter. A group applies nothing until every read in it
144
+ * has succeeded, so a failed attempt can be repeated on a smaller group without
145
+ * applying anything twice.
146
+ *
147
+ * - A permanent failure (the request is wrong, not the system) splits the group in
148
+ * half until the failing task is alone. Only that task is reported, once, and it is
149
+ * not retried. The rest of the group is processed normally.
150
+ * - A temporary failure (storage down, reader unavailable) keeps the whole group and
151
+ * retries it with backoff. Splitting would multiply failing calls during an outage.
152
+ */
153
+ private runGroup;
140
154
  private retry;
141
155
  private applyEntries;
142
156
  private subjectEntry;
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/analytics/tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/analytics/tracker.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { ServiceError } from "../errors.js";
2
2
  import { replaceAnalyticsContentGrants } from "./content-allow.js";
3
+ import { createProblemReporter, isPermanentFailure, readRow } from "./read-row.js";
3
4
  import { abstractTypesOf, contentSelections, definitionHash, populationKey, usesDatasource, validateCounterDefinition, } from "./definition.js";
4
5
  import { countexScope } from "./engine.js";
5
6
  import { buildEnvelope, hasScopePlaceholder, resolveRecordIds, scopeValuesOf, summarizePair, topLeaderIds, } from "./materializer.js";
@@ -49,6 +50,7 @@ export class AnalyticsTracker {
49
50
  inflight = new Set();
50
51
  memoryIndexes = new Map();
51
52
  indexes;
53
+ reportSkipped = createProblemReporter((message, extra) => this.log(message, extra), () => this.now().getTime());
52
54
  closed = false;
53
55
  constructor(options) {
54
56
  this.o = {
@@ -282,22 +284,58 @@ export class AnalyticsTracker {
282
284
  else
283
285
  groups.set(g, [t]);
284
286
  }
285
- for (const tasks of groups.values()) {
286
- try {
287
- if (tasks[0].kind === "abstract")
288
- await this.processAbstract(tasks);
289
- else if (tasks[0].kind === "content")
290
- await this.processContent(tasks);
291
- else
292
- await this.processHeads(tasks);
293
- }
294
- catch (err) {
295
- this.log("analytics: reconcile failed; retrying", { error: String(err) });
296
- for (const t of tasks)
297
- this.retry(t);
298
- }
287
+ for (const tasks of groups.values())
288
+ await this.runGroup(tasks);
289
+ }
290
+ }
291
+ async processGroup(tasks) {
292
+ if (tasks[0].kind === "abstract")
293
+ await this.processAbstract(tasks);
294
+ else if (tasks[0].kind === "content")
295
+ await this.processContent(tasks);
296
+ else
297
+ await this.processHeads(tasks);
298
+ }
299
+ /**
300
+ * Process tasks that share a counter. A group applies nothing until every read in it
301
+ * has succeeded, so a failed attempt can be repeated on a smaller group without
302
+ * applying anything twice.
303
+ *
304
+ * - A permanent failure (the request is wrong, not the system) splits the group in
305
+ * half until the failing task is alone. Only that task is reported, once, and it is
306
+ * not retried. The rest of the group is processed normally.
307
+ * - A temporary failure (storage down, reader unavailable) keeps the whole group and
308
+ * retries it with backoff. Splitting would multiply failing calls during an outage.
309
+ */
310
+ async runGroup(tasks) {
311
+ if (tasks.length === 0)
312
+ return;
313
+ try {
314
+ await this.processGroup(tasks);
315
+ return;
316
+ }
317
+ catch (err) {
318
+ if (!isPermanentFailure(err)) {
319
+ this.log("analytics: reconcile failed; retrying", { error: String(err), tasks: tasks.length });
320
+ for (const t of tasks)
321
+ this.retry(t);
322
+ return;
323
+ }
324
+ if (tasks.length === 1) {
325
+ const t = tasks[0];
326
+ this.reportSkipped(`${t.kind}${SEP}${"objectType" in t ? t.objectType : ""}${SEP}${"contentType" in t ? t.contentType : ""}${SEP}${errorCode(err)}`, "analytics: skipped a record it cannot read; not retrying", {
327
+ kind: t.kind,
328
+ ...("objectType" in t ? { objectType: t.objectType, contentType: "contentType" in t ? t.contentType : undefined } : {}),
329
+ recordId: t.recordId,
330
+ code: errorCode(err),
331
+ error: String(err),
332
+ });
333
+ return;
299
334
  }
300
335
  }
336
+ const mid = Math.ceil(tasks.length / 2);
337
+ await this.runGroup(tasks.slice(0, mid));
338
+ await this.runGroup(tasks.slice(mid));
301
339
  }
302
340
  retry(task) {
303
341
  const attempts = task.attempts + 1;
@@ -448,7 +486,7 @@ export class AnalyticsTracker {
448
486
  let datasource = null;
449
487
  if (usesDatasource(def)) {
450
488
  try {
451
- const record = await reader.getContent(scope, {
489
+ const record = await readRow(reader, scope, {
452
490
  objectType: item.objectType,
453
491
  contentType: item.contentType,
454
492
  recordId: item.recordId,
@@ -490,7 +528,7 @@ export class AnalyticsTracker {
490
528
  async loadContentSubject(reader, scope, def, objectType, contentType, recordId) {
491
529
  let record;
492
530
  try {
493
- record = await reader.getContent(scope, { objectType, contentType, recordId });
531
+ record = await readRow(reader, scope, { objectType, contentType, recordId });
494
532
  }
495
533
  catch (err) {
496
534
  if (isGone(err))
@@ -562,7 +600,7 @@ export class AnalyticsTracker {
562
600
  const scope = { orgId, agentIds: t.agentIds };
563
601
  let datasource;
564
602
  try {
565
- const record = await this.o.portsFor(scope).reader.getContent(scope, {
603
+ const record = await readRow(this.o.portsFor(scope).reader, scope, {
566
604
  objectType: t.objectType,
567
605
  contentType: t.contentType,
568
606
  recordId: t.recordId,