@tearleads/client-sdk 0.1.17 → 0.1.19

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 (36) hide show
  1. package/client/principalMutationApi.d.ts +1 -1
  2. package/client/principalMutationApi.js +5 -13
  3. package/client/principalMutationApi.js.map +1 -1
  4. package/client/principalMutationDispatch.js +54 -0
  5. package/client/principalMutationDispatch.js.map +1 -0
  6. package/data/persistence/container-contents/documentMoveIntentPersistence.js.map +1 -1
  7. package/data/principals/principalMutationJournal.d.ts +2 -5
  8. package/data/principals/principalMutationJournal.js +3 -20
  9. package/data/principals/principalMutationJournal.js.map +1 -1
  10. package/data/principals/principalMutationJournalShape.d.ts +26 -0
  11. package/data/principals/principalMutationJournalShape.js +46 -0
  12. package/data/principals/principalMutationJournalShape.js.map +1 -0
  13. package/index.d.ts +1 -1
  14. package/index.js.map +1 -1
  15. package/internal/api-client/ApiClient.d.ts +267 -3
  16. package/internal/api-client/ApiClient.js +11 -29
  17. package/internal/api-client/ApiClient.js.map +1 -1
  18. package/internal/api-client/principalPolicyRequests.d.ts +266 -1
  19. package/internal/api-client/principalPolicyRequests.js +43 -1
  20. package/internal/api-client/principalPolicyRequests.js.map +1 -1
  21. package/internal/loro/document.js +8 -11
  22. package/internal/loro/document.js.map +1 -1
  23. package/internal/validators/operation/organizations.d.ts +54 -0
  24. package/internal/validators/operation/organizations.js +19 -4
  25. package/internal/validators/operation/organizations.js.map +1 -1
  26. package/package.json +4 -4
  27. package/workflows/organizations/index.d.ts +1 -0
  28. package/workflows/organizations/index.js.map +1 -1
  29. package/workflows/organizations/principalMutationJournalSession.d.ts +3 -3
  30. package/workflows/organizations/principalMutationJournalSession.js +2 -2
  31. package/workflows/organizations/principalMutationJournalSession.js.map +1 -1
  32. package/workflows/organizations/principalMutationReceipt.js +13 -12
  33. package/workflows/organizations/principalMutationReceipt.js.map +1 -1
  34. package/workflows/organizations/principalOperationReceipt.d.ts +5 -0
  35. package/workflows/organizations/principalOperationReceipt.js +36 -0
  36. package/workflows/organizations/principalOperationReceipt.js.map +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ApiClient.js","sourceRoot":"","sources":["ApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,iCAAiC,EACjC,kBAAkB,EAClB,4CAA4C,EAC5C,mCAAmC,EACnC,wBAAwB,EACxB,4CAA4C,EAC5C,uBAAuB,EACvB,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,oCAAoC,EACpC,2BAA2B,EAC3B,wBAAwB,EACxB,gCAAgC,EAChC,uBAAuB,EACvB,6BAA6B,EAC7B,qBAAqB,EACrB,2BAA2B,EAC3B,8CAA8C,EAC9C,qCAAqC,EACrC,8BAA8B,EAC9B,oCAAoC,EACpC,kBAAkB,EAClB,8BAA8B,EAC9B,sCAAsC,EACtC,4CAA4C,EAC5C,+BAA+B,EAC/B,iCAAiC,EACjC,iDAAiD,EACjD,qCAAqC,EACrC,iCAAiC,EACjC,wBAAwB,EACxB,qCAAqC,EACrC,4BAA4B,EAC5B,iCAAiC,EACjC,mCAAmC,EACnC,qBAAqB,EACrB,+BAA+B,EAC/B,iCAAiC,EACjC,gCAAgC,EAChC,qCAAqC,EACrC,gCAAgC,EAChC,2BAA2B,EAC3B,sCAAsC,EACtC,uCAAuC,EACvC,8BAA8B,EAC9B,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EAItB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,+BAA+B,EAC/B,uBAAuB,EACvB,kCAAkC,EAClC,sCAAsC,EACtC,qCAAqC,EACrC,qBAAqB,EACrB,eAAe,EACf,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAmDzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,wBAAwB,GAEzB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kCAAkC,EAClC,gCAAgC,EAChC,kCAAkC,GACnC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,IAAI,kBAAkB,EACpC,YAAY,IAAI,gBAAgB,EAChC,MAAM,IAAI,UAAU,EACpB,YAAY,IAAI,gBAAgB,GACjC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,IAAI,kBAAkB,EACxC,oBAAoB,IAAI,oBAAoB,GAC7C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,YAAY,GAEb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,0BAA0B,IAAI,iBAAiB,EAC/C,qBAAqB,IAAI,YAAY,EACrC,0BAA0B,IAAI,iBAAiB,GAChD,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,mCAAmC,EACnC,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,uBAAuB,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACpG,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,cAAc,GACf,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,uBAAuB,IAAI,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC5F,OAAO,EAAE,wBAAwB,IAAI,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACrG,OAAO,EAAE,uBAAuB,IAAI,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC5F,OAAO,EAAE,4BAA4B,IAAI,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,EAAE,yBAAyB,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,6BAA6B,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAUpC,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AActE,+EAA+E;AAC/E,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,KAAK,EAAE,aAAa,EAAE;IACjE,KAAK,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAE,cAAc,EAAE;IACpE,MAAM,EAAE,EAAE,SAAS,EAAE,wBAAwB,EAAE,KAAK,EAAE,eAAe,EAAE;CAC/D,CAAC;AAEX,MAAM,OAAO,SAAS;IACH,cAAc,CAAoB;IAClC,iBAAiB,GAAG,IAAI,0BAA0B,EAAE,CAAC;IACrD,kCAAkC,GAAG,IAAI,GAAG,EAG1D,CAAC;IACa,gCAAgC,GAAG,IAAI,GAAG,EAGxD,CAAC;IACa,8CAA8C,GAC7D,IAAI,qBAAqB,EAAqC,CAAC;IAChD,4CAA4C,GAC3D,IAAI,qBAAqB,EAAoC,CAAC;IAC/C,qDAAqD,GACpE,IAAI,GAAG,EAGJ,CAAC;IACW,mDAAmD,GAClE,IAAI,GAAG,EAGJ,CAAC;IACW,0CAA0C,GACzD,IAAI,YAAY,EAAmD,CAAC;IACrD,2BAA2B,CAA8B;IACzD,4BAA4B,GAAG,IAAI,YAAY,EAE7D,CAAC;IACa,4BAA4B,GAAG,IAAI,YAAY,EAE7D,CAAC;IACa,uBAAuB,CAA0B;IACjD,SAAS,CAAqB;IAC9B,OAAO,CAAqB;IAC5B,aAAa,CAA2B;IACzD,YAAY,OAAuB;QACjC,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,uBAAuB,GAAG,IAAI,uBAAuB,CACxD,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,4BAA4B,EACjC,IAAI,CAAC,2BAA2B,CACjC,CAAC;QACF,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAC/C,kBAAkB,CAAC,OAAO,CAC3B,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAC3D,kBAAkB,CAAC,aAAa,CACjC,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,wBAAwB,CACvC,IAAI,CAAC,cAAc,CAAC,eAAe,CACpC,CAAC;QACF,IAAI,CAAC,2BAA2B,GAAG,IAAI,2BAA2B,CAChE,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IACO,qBAAqB;QAC3B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,gCAAgC,CAAC,KAAK,EAAE,CAAC;QAC9C,IAAI,CAAC,0CAA0C,CAAC,KAAK,EAAE,CAAC;QACxD,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,8CAA8C,CAAC,KAAK,EAAE,CAAC;QAC5D,IAAI,CAAC,4CAA4C,CAAC,KAAK,EAAE,CAAC;QAC1D,IAAI,CAAC,qDAAqD,CAAC,KAAK,EAAE,CAAC;QACnE,IAAI,CAAC,mDAAmD,CAAC,KAAK,EAAE,CAAC;QACjE,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,CAAC;IAC5C,CAAC;IAEO,6BAA6B,CAAC,UAAkB;QACtD,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,2BAA2B;QACzB,IAAI,CAAC,0CAA0C,CAAC,KAAK,EAAE,CAAC;QACxD,IAAI,CAAC,8CAA8C,CAAC,KAAK,EAAE,CAAC;QAC5D,IAAI,CAAC,4CAA4C,CAAC,KAAK,EAAE,CAAC;QAC1D,IAAI,CAAC,qDAAqD,CAAC,KAAK,EAAE,CAAC;QACnE,IAAI,CAAC,mDAAmD,CAAC,KAAK,EAAE,CAAC;IACnE,CAAC;IAED,wEAAwE;IACxE,4BAA4B,CAAC,YAA+B;QAC1D,4BAA4B,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE;YAClD,eAAe,EAAE,IAAI,CAAC,0CAA0C;YAChE,UAAU,EAAE;gBACV,KAAK,EAAE,IAAI,CAAC,8CAA8C;gBAC1D,QAAQ,EAAE,IAAI,CAAC,qDAAqD;aACrE;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,4CAA4C;gBACxD,QAAQ,EAAE,IAAI,CAAC,mDAAmD;aACnE;SACF,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,6BAA6B,CAAC,UAAkB;QAC9C,IAAI,CAAC,0CAA0C,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,CAAC,4CAA4C,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrE,IAAI,CAAC,mDAAmD,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;OAKG;IACH,8BAA8B,CAAC,WAAmB;QAChD,IAAI,CAAC,8CAA8C,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACxE,IAAI,CAAC,qDAAqD,CAAC,MAAM,CAC/D,WAAW,CACZ,CAAC;IACJ,CAAC;IAEO,kCAAkC,CACxC,UAAkB,EAClB,MAEoC;QAEpC,MAAM,MAAM,GACV,IAAI,CAAC,0CAA0C,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,IAAI,IAAqD,CAAC;QAC1D,IAAI,GAAG,MAAM;aACV,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,IACE,IAAI,CAAC,0CAA0C,CAAC,GAAG,CAAC,UAAU,CAAC;oBAC/D,IAAI,EACJ,CAAC;oBACD,IAAI,CAAC,0CAA0C,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,yEAAyE;YACzE,wEAAwE;YACxE,wEAAwE;YACxE,wEAAwE;YACxE,6DAA6D;YAC7D,IACE,IAAI,CAAC,0CAA0C,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC/D,IAAI,EACJ,CAAC;gBACD,IAAI,CAAC,0CAA0C,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,0CAA0C,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAEO,+BAA+B,CACrC,QAAoC;QAEpC,MAAM,EACJ,UAAU,EACV,eAAe,EAAE,gBAAgB,EACjC,GAAG,OAAO,EACX,GAAG,QAAQ,CAAC;QACb,IAAI,CAAC,kCAAkC,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACnE,GAAG,WAAW,CAAC,MAAM,CACnB,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAC5D;YACD,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAEO,iCAAiC,CACvC,QAAsC;QAEtC,IAAI,CAAC,kCAAkC,CACrC,QAAQ,CAAC,UAAU,EACnB,CAAC,WAAW,EAAE,EAAE,CACd,WAAW,CAAC,MAAM,CAChB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,CACtD,CACJ,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,OAA2C;QACpD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,iBAAiB,CAAC,OAA4B;QAC5C,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,mBAAmB,CAAC,OAA4B;QAC9C,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,eAAe,CAAC,OAA2C;QACzD,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,mBAAmB,CAAC,OAA8B;QAChD,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,oBAAoB,CAAC,OAAsC;QACzD,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,YAAY,CAAC,KAAoB;QAC/B,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IAED,iBAAiB,CAAC,KAA2C;QAC3D,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wBAAwB,EAAE;YACtE,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;QACH,OAAO,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC;IAClC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,YAAY,CACV,MAAc,EACd,cAAsB,EACtB,eAAuB,EACvB,gBAA4B,EAC5B,sBAAkC,EAClC,iBAA2D,EAC3D,kBAA6D,EAC7D,yBAA2E,EAC3E,oBAAiE,EACjE,2BAA+E,EAC/E,6BAAmF,EACnF,4BAAiF,EACjF,oCAAiG,EACjG,kCAA8F,EAC9F,uBAAwE;QAExE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAC/C,IAAI,EAAE;gBACJ,MAAM;gBACN,cAAc;gBACd,eAAe;gBACf,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBAC9C,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC;gBAC1D,iBAAiB;gBACjB,kBAAkB;gBAClB,yBAAyB;gBACzB,oBAAoB;gBACpB,2BAA2B;gBAC3B,6BAA6B;gBAC7B,4BAA4B;gBAC5B,oCAAoC;gBACpC,kCAAkC;gBAClC,uBAAuB;aACxB;YACD,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,OAAkC;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2BAA2B,EAAE;YACzD,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAAmB,EAAE,SAAqB;QAC3D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAC5C,kBAAkB,EAClB,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EACrC,EAAE,qBAAqB,EAAE,KAAK,EAAE,CACjC,CAAC;QACF,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,OAAO,IAAI,CAAC,yBAAyB,CACnC,WAAW,EACX,SAAS,EACT,SAAS,CAAC,SAAS,CACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,WAAmB,EACnB,SAAqB,EACrB,YAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,CACjB,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,EACjE,SAAS,CACV,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3C,eAAe,EACf;YACE,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACpD,MAAM,EAAE,EAAE;SACX,EACD,EAAE,qBAAqB,EAAE,KAAK,EAAE,CACjC,CAAC;QAEF,OAAO,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAED,eAAe,CAAC,MAAc;QAC5B,OAAO,aAAa,CAAC,IAAI,CAAC,4BAA4B,EAAE,MAAM,EAAE,GAAG,EAAE,CACnE,IAAI,CAAC,OAAO,CACV,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAC7B,gBAAgB,CAAC,UAAU,EAC3B,gBAAgB,CAAC,MAAM,EACvB,SAAS,EACT,SAAS,EACT,qBAAqB,CACtB,CACF,CAAC;IACJ,CAAC;IAED,6BAA6B,CAAC,MAAc;QAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC;YAC5B,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,OAAO,CACjB,gBAAgB,CAAC,IAAI,EACrB,gBAAgB,CAAC,UAAU,EAC3B,gBAAgB,CAAC,MAAM,EACvB,SAAS,EACT,SAAS,EACT,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,OAAO,CACjB,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAClC,kBAAkB,CAAC,UAAU,EAC7B,kBAAkB,CAAC,MAAM,EACzB,SAAS,EACT,SAAS,EACT,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CACjB,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,MAAM,EACjB,SAAS,EACT,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAChC,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,uBAAuB,CACrB,aAAuC,EACvC,WAAmB,EACnB,UAA0C,EAAE;QAE5C,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CACvC,aAAa,EACb,WAAW,EACX,OAAO,CACR,CAAC;IACJ,CAAC;IAED,+BAA+B,CAC7B,GAAG,IAAwD;QAE3D,OAAO,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,yBAAyB,CACvB,GAAG,IAAgD;QAEnD,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,kBAAkB,CAAC,GAAG,IAAgD;QACpE,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,6EAA6E;IAC7E,wBAAwB,CACtB,GAAG,IAAsD;QAEzD,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,6BAA6B,CAC3B,cAAsB,EACtB,OAAe,EACf,KAA2C;QAE3C,OAAO,IAAI,CAAC,mCAAmC,CAC7C,cAAc,EACd,OAAO,EACP,KAAK,CACN,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mCAAmC,CACvC,cAAsB,EACtB,OAAe,EACf,KAA2C,EAC3C,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAC9C,cAAc,EACd,OAAO,EACP,KAAK,EACL,OAAO,CACR,CAAC;IACJ,CAAC;IAED,kCAAkC,CAChC,cAAsB,EACtB,SAAiB,EACjB,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CACjC,qCAAqC,EACrC,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EACpD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,8BAA8B,CAC5B,cAAsB,EACtB,MAAe,EACf,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CACjC,iCAAiC,EACjC;YACE,MAAM,EAAE,EAAE,cAAc,EAAE;YAC1B,KAAK,EAAE,EAAE,MAAM,EAAE;SAClB,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,kCAAkC,CAChC,cAAsB,EACtB,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CACjC,qCAAqC,EACrC,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,EAC9B,OAAO,CACR,CAAC;IACJ,CAAC;IACD,6BAA6B,CAC3B,QAAgC,EAAE,EAClC,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CACjC,gCAAgC,EAChC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EACrB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,2BAA2B,CACzB,QAAgC,EAAE,EAClC,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CACjC,8BAA8B,EAC9B,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EACrB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,yBAAyB,CACvB,cAAsB,EACtB,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CACjC,4BAA4B,EAC5B,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,EAC9B,OAAO,CACR,CAAC;IACJ,CAAC;IAED,oCAAoC,CAClC,cAAsB,EACtB,QAAmC,EAAE,EACrC,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CACjC,uCAAuC,EACvC,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EACrC,OAAO,CACR,CAAC;IACJ,CAAC;IAED,wBAAwB,CACtB,QAA6B,EAAE,EAC/B,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CACjC,2BAA2B,EAC3B,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EACrB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,qBAAqB,CACnB,MAAc,EACd,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CACjC,wBAAwB,EACxB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EACtB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,mCAAmC,CACjC,MAAc,EACd,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CACjC,sCAAsC,EACtC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EACtB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,8BAA8B,CAC5B,cAAsB,EACtB,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,aAAa,CACvB,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,EAC1C,qBAAqB,CAAC,UAAU,EAChC,qBAAqB,CAAC,MAAM,EAC5B,SAAS,EACT,OAAO,EACP,iCAAiC,CAClC,CAAC;IACJ,CAAC;IAED,sBAAsB,CAAC,cAAsB;QAC3C,OAAO,IAAI,CAAC,OAAO,CACjB,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAC5C,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAClC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAC9B,SAAS,EACT,SAAS,EACT,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED,6BAA6B,CAAC,cAAsB;QAClD,OAAO,IAAI,CAAC,OAAO,CACjB,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAChD,mBAAmB,CAAC,OAAO,CAAC,UAAU,EACtC,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAClC,SAAS,EACT,SAAS,EACT,sCAAsC,CACvC,CAAC;IACJ,CAAC;IAED,mCAAmC,CAAC,cAAsB;QACxD,OAAO,IAAI,CAAC,OAAO,CACjB,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,EACtD,mBAAmB,CAAC,aAAa,CAAC,UAAU,EAC5C,mBAAmB,CAAC,aAAa,CAAC,MAAM,EACxC,SAAS,EACT,SAAS,EACT,4CAA4C,CAC7C,CAAC;IACJ,CAAC;IAED,wCAAwC,CACtC,cAAsB,EACtB,KAA8B;QAE9B,OAAO,IAAI,CAAC,OAAO,CACjB,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,EACjE,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAChD,mBAAmB,CAAC,iBAAiB,CAAC,MAAM,EAC5C,SAAS,EACT,SAAS,EACT,iDAAiD,CAClD,CAAC;IACJ,CAAC;IAED,mCAAmC,CACjC,cAAsB,EACtB,KAA8B;QAE9B,OAAO,IAAI,CAAC,aAAa,CACvB,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,EAC3D,mBAAmB,CAAC,WAAW,CAAC,UAAU,EAC1C,mBAAmB,CAAC,WAAW,CAAC,MAAM,EACtC,SAAS,EACT,EAAE,YAAY,EAAE,KAAK,EAAE,EACvB,4CAA4C,CAC7C,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,wBAAwB,CACtB,cAAsB,EACtB,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,aAAa,CACvB,0BAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EACvD,0BAA0B,CAAC,OAAO,CAAC,UAAU,EAC7C,0BAA0B,CAAC,OAAO,CAAC,MAAM,EACzC,SAAS,EACT,OAAO,EACP,iCAAiC,CAClC,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,oBAAoB,CAAC,cAAsB;QACzC,OAAO,IAAI,CAAC,OAAO,CACjB,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,EACxD,0BAA0B,CAAC,QAAQ,CAAC,UAAU,EAC9C,0BAA0B,CAAC,QAAQ,CAAC,MAAM,EAC1C,SAAS,EACT,SAAS,EACT,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,2BAA2B,CAAC,cAAsB,EAAE,SAAiB;QACnE,OAAO,IAAI,CAAC,OAAO,CACjB,0BAA0B,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,EAC/D,0BAA0B,CAAC,eAAe,CAAC,UAAU,EACrD,0BAA0B,CAAC,eAAe,CAAC,MAAM,EACjD,IAAI,CAAC,SAAS,CACZ,0BAA0B,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAC3D,EACD,SAAS,EACT,oCAAoC,CACrC,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,kBAAkB,CAAC,cAAsB,EAAE,SAAiB;QAC1D,OAAO,IAAI,CAAC,OAAO,CACjB,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EACtD,0BAA0B,CAAC,MAAM,CAAC,UAAU,EAC5C,0BAA0B,CAAC,MAAM,CAAC,MAAM,EACxC,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EACjE,SAAS,EACT,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,wBAAwB,CAAC,cAAsB;QAC7C,OAAO,IAAI,CAAC,OAAO,CACjB,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EACtD,0BAA0B,CAAC,MAAM,CAAC,UAAU,EAC5C,0BAA0B,CAAC,MAAM,CAAC,MAAM,EACxC,SAAS,EACT,SAAS,EACT,iCAAiC,CAClC,CAAC;IACJ,CAAC;IAED,sBAAsB,CAAC,cAAsB;QAC3C,OAAO,IAAI,CAAC,OAAO,CACjB,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EACnD,mBAAmB,CAAC,UAAU,CAAC,UAAU,EACzC,mBAAmB,CAAC,UAAU,CAAC,MAAM,EACrC,SAAS,EACT,SAAS,EACT,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED,6BAA6B,CAC3B,cAAsB,EACtB,MAAc,EACd,KAA2C;QAE3C,OAAO,IAAI,CAAC,OAAO,CACjB,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,EACzC,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,MAAM,EACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,EAAE,qCAAqC,EAAE,cAAc,EAAE,EACzD,sCAAsC,CACvC,CAAC;IACJ,CAAC;IAED,yBAAyB,CACvB,cAAsB,EACtB,KAAuC;QAEvC,OAAO,IAAI,CAAC,OAAO,CACjB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,EAClC,aAAa,CAAC,UAAU,EACxB,aAAa,CAAC,MAAM,EACpB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,EAAE,qCAAqC,EAAE,cAAc,EAAE,EACzD,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED,uBAAuB,CACrB,cAAsB,EACtB,KAA+C;QAE/C,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5C,cAAc;YACd,cAAc;SACf,CAAC,CAAC;QACH,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC1D,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,OAAO,CACjB,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,EAChC,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,MAAM,EAClB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,EAAE,qCAAqC,EAAE,cAAc,EAAE,EACzD,gCAAgC,CACjC,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC1D,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACjE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB,CACrB,cAAsB,EACtB,OAAe,EACf,KAAqC;QAErC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3D,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5C,cAAc;YACd,cAAc;SACf,CAAC,CAAC;QACH,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC1D,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,OAAO,CACjB,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,EACzC,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,MAAM,EAClB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,EAAE,qCAAqC,EAAE,cAAc,EAAE,EACzD,gCAAgC,CACjC,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC1D,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACjE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4BAA4B,CAAC,cAAsB,EAAE,OAAe;QAClE,OAAO,IAAI,CAAC,OAAO,CACjB,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,EAC1C,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,MAAM,EACnB,SAAS,EACT,SAAS,EACT,qCAAqC,CACtC,CAAC;IACJ,CAAC;IAED,cAAc,CACZ,KAA4B,EAC5B,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,OAAO,CACjB,cAAc,CAAC,IAAI,EACnB,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,MAAM,EACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,oBAAoB,CAClB,KAA4B,EAC5B,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,aAAa,CACvB,cAAc,CAAC,IAAI,EACnB,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,MAAM,EACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,4BAA4B,CAAC,WAAmB;QAC9C,OAAO,aAAa,CAClB,IAAI,CAAC,8CAA8C,EACnD,WAAW,EACX,GAAG,EAAE,CACH,IAAI,CAAC,OAAO,CACV,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,EAC3C,yBAAyB,CAAC,aAAa,CAAC,WAAW,CAAC,EACpD,yBAAyB,CAAC,MAAM,EAChC,SAAS,EACT,SAAS,EACT,qCAAqC,CACtC,CACJ,CAAC;IACJ,CAAC;IAED,2CAA2C,CACzC,WAAmB,EACnB,sBAA8B;QAE9B,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CACjC,8CAA8C,EAC9C,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,EAAE,EACnD,EAAE,YAAY,EAAE,KAAK,EAAE,CACxB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAChB,WAAmB,EACnB,UAAkC,EAAE;QAEpC,OAAO,IAAI,CAAC,OAAO,CACjB,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAC1C,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,MAAM,EACtB,SAAS,EACT,SAAS,EACT,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IAED,kCAAkC,CAChC,WAAmB,EACnB,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,sBAAsB,CAChC,IAAI,CAAC,8CAA8C,EACnD,IAAI,CAAC,qDAAqD,EAC1D,WAAW,EACX,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,EAC3C,yBAAyB,CAAC,aAAa,CAAC,WAAW,CAAC,EACpD,OAAO,EACP,qCAAqC,CACtC,CAAC;IACJ,CAAC;IAED,uEAAuE;IACvE,2EAA2E;IAC3E,6EAA6E;IAC7E,8CAA8C;IACtC,sBAAsB,CAC5B,KAAsC,EACtC,eAA+D,EAC/D,QAAgB,EAChB,IAAY,EACZ,SAAyC,EACzC,OAA6B,EAC7B,gBAAmD;QAEnD,uEAAuE;QACvE,wEAAwE;QACxE,sEAAsE;QACtE,6DAA6D;QAC7D,IACE,OAAO,CAAC,OAAO,KAAK,SAAS;YAC7B,OAAO,CAAC,qBAAqB,KAAK,SAAS,EAC3C,CAAC;YACD,OAAO,IAAI,CAAC,aAAa,CACvB,IAAI,EACJ,SAAS,EACT,KAAK,EACL,SAAS,EACT,OAAO,EACP,gBAAgB,CACjB,CAAC;QACJ,CAAC;QAED,wEAAwE;QACxE,0EAA0E;QAC1E,wEAAwE;QACxE,uEAAuE;QACvE,mEAAmE;QACnE,uEAAuE;QACvE,sEAAsE;QACtE,qEAAqE;QACrE,sEAAsE;QACtE,oEAAoE;QACpE,yEAAyE;QACzE,qBAAqB;QACrB,EAAE;QACF,wEAAwE;QACxE,qEAAqE;QACrE,sEAAsE;QACtE,qEAAqE;QACrE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,MAAiC,CAAC;QACtC,IACE,QAAQ;YACR,QAAQ,CAAC,IAAI,KAAK,IAAI;YACtB,QAAQ,CAAC,iBAAiB,KAAK,iBAAiB,EAChD,CAAC;YACD,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAsC;gBAC/C,iBAAiB;gBACjB,aAAa,EAAE,IAAI,CAAC,2BAA2B,CAC7C,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,gBAAgB,CACjB,CAAC,OAAO,CAAC,GAAG,EAAE;oBACb,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC;wBAC5C,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC,CAAC;gBACF,IAAI;aACL,CAAC;YACF,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;QAC/B,CAAC;QAED,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wEAAwE;IACxE,qEAAqE;IACrE,yEAAyE;IACzE,2EAA2E;IAC3E,aAAa;IACL,KAAK,CAAC,2BAA2B,CACvC,KAAsC,EACtC,QAAgB,EAChB,IAAY,EACZ,SAAyC,EACzC,gBAAmD;QAEnD,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,OAAO,MAAM,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC;gBAC1B,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,mEAAmE;gBACnE,2BAA2B;YAC7B,CAAC;YACD,uEAAuE;YACvE,qEAAqE;YACrE,mDAAmD;YACnD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBACvB,MAAM;YACR,CAAC;YACD,MAAM,GAAG,OAAO,CAAC;QACnB,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,wEAAwE;QACxE,sEAAsE;QACtE,yEAAyE;QACzE,0DAA0D;QAC1D,2DAA2D;QAC3D,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CACrC,IAAI,EACJ,SAAS,EACT,KAAK,EACL,SAAS,EACT;YACE,YAAY,EAAE,KAAK;SACpB,EACD,gBAAgB,CACjB,CAAC;QAEF,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,6DAA6D;YAC7D,uEAAuE;YACvE,oEAAoE;YACpE,sEAAsE;YACtE,uDAAuD;YACvD,IACE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,MAAM;gBAC9B,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,iBAAiB,EACvD,CAAC;gBACD,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,MAAM,EAAE,CAAC;YACpD,mEAAmE;YACnE,uDAAuD;YACvD,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,eAAe,CACb,KAA+B,EAC/B,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,OAAO,CACjB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,MAAM,EACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,KAA+B,EAC/B,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,aAAa,CACvB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,MAAM,EACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED,mCAAmC,CACjC,KAAiD,EACjD,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,OAAO,CACjB,mCAAmC,CAAC,IAAI,EACxC,mCAAmC,CAAC,UAAU,EAC9C,mCAAmC,CAAC,MAAM,EAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,4CAA4C,CAC7C,CAAC;IACJ,CAAC;IAED,yCAAyC,CACvC,KAAiD,EACjD,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,aAAa,CACvB,mCAAmC,CAAC,IAAI,EACxC,mCAAmC,CAAC,UAAU,EAC9C,mCAAmC,CAAC,MAAM,EAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,4CAA4C,CAC7C,CAAC;IACJ,CAAC;IAED,cAAc,CACZ,WAAmB,EACnB,KAA+B,EAC/B,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,OAAO,CACjB,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAChC,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,MAAM,EACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,uBAAuB,CACxB,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CACb,WAAmB,EACnB,KAA+B,EAC/B,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,OAAO,CACjB,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EACjC,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,MAAM,EACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,wBAAwB,CACzB,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CACZ,WAAmB,EACnB,KAA+B,EAC/B,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,OAAO,CACjB,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAChC,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,MAAM,EACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,uBAAuB,CACxB,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAClB,WAAmB,EACnB,KAA+B,EAC/B,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,qBAAqB,CACnB,WAAmB,EACnB,KAA+B,EAC/B,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,mBAAmB,CACjB,WAAmB,EACnB,KAA+B,EAC/B,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,QAA0C,EAC1C,WAAmB,EACnB,KAA+B,EAC/B,OAA6B;QAE7B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,aAAa,CAC7B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EACvB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,MAAM,EACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,SAAS,CACV,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IAED,eAAe,CACb,WAAmB,EACnB,KAA6B,EAC7B,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,OAAO,CACjB,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EACjC,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,MAAM,EACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,wBAAwB,CACzB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,aAAa,CACX,WAAmB,EACnB,KAA+B,EAC/B,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,OAAO,CACjB,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,EAC/B,aAAa,CAAC,UAAU,EACxB,aAAa,CAAC,MAAM,EACpB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,sBAAsB,CACvB,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,WAAmB,EAAE,UAAgC,EAAE;QACrE,OAAO,IAAI,CAAC,OAAO,CACjB,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EACjC,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,MAAM,EACtB,SAAS,EACT,OAAO,EACP,wBAAwB,CACzB,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CACnB,WAAmB,EACnB,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,aAAa,CACvB,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EACjC,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,MAAM,EACtB,SAAS,EACT,OAAO,EACP,wBAAwB,CACzB,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B,CAAC,UAAkB;QAC5C,OAAO,aAAa,CAClB,IAAI,CAAC,4CAA4C,EACjD,UAAU,EACV,GAAG,EAAE,CACH,IAAI,CAAC,OAAO,CACV,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,EACzC,wBAAwB,CAAC,aAAa,CAAC,UAAU,CAAC,EAClD,wBAAwB,CAAC,MAAM,EAC/B,SAAS,EACT,SAAS,EACT,oCAAoC,CACrC,CACJ,CAAC;IACJ,CAAC;IAED,0BAA0B,CAAC,UAAkB,EAAE,UAAU,GAAG,EAAE;QAC5D,OAAO,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,iCAAiC,CAC/B,UAAkB,EAClB,UAAoD,EAAE;QAEtD,OAAO,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,iCAAiC,CAC/B,UAAkB,EAClB,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,sBAAsB,CAChC,IAAI,CAAC,4CAA4C,EACjD,IAAI,CAAC,mDAAmD,EACxD,UAAU,EACV,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,EACzC,wBAAwB,CAAC,aAAa,CAAC,UAAU,CAAC,EAClD,OAAO,EACP,oCAAoC,CACrC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,6BAA6B,CAC3B,UAAkB,EAClB,UAA4C;QAE5C,yBAAyB,CAAC;YACxB,KAAK,EAAE,IAAI,CAAC,4CAA4C;YACxD,SAAS,EAAE,wBAAwB,CAAC,aAAa,CAAC,UAAU,CAAC;YAC7D,EAAE,EAAE,UAAU;YACd,eAAe,EAAE,IAAI,CAAC,mDAAmD;YACzE,KAAK,EAAE,UAAU;YACjB,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,8BAA8B,CAC5B,WAAmB,EACnB,UAA6C;QAE7C,yBAAyB,CAAC;YACxB,KAAK,EAAE,IAAI,CAAC,8CAA8C;YAC1D,SAAS,EAAE,yBAAyB,CAAC,aAAa,CAAC,WAAW,CAAC;YAC/D,EAAE,EAAE,WAAW;YACf,eAAe,EACb,IAAI,CAAC,qDAAqD;YAC5D,KAAK,EAAE,WAAW;YAClB,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CACV,UAAkB,EAClB,KAAqC,EACrC,UAAgC,EAAE;QAElC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,OAAO,CACjB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAC7B,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,MAAM,EACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,qBAAqB,CACtB,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAChB,UAAkB,EAClB,KAAqC,EACrC,UAAgC,EAAE;QAElC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,aAAa,CACvB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAC7B,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,MAAM,EACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,qBAAqB,CACtB,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB,CAAC,KAAsC;QAC7D,OAAO,cAAc,CACnB,IAAI,CAAC,gCAAgC,EACrC,kCAAkC,CAAC,KAAK,CAAC,EACzC,GAAG,EAAE,CACH,IAAI,CAAC,OAAO,CACV,oBAAoB,CAAC,IAAI,EACzB,CAAC,KAAK,EAA6C,EAAE,CACnD,oBAAoB,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,EACzD,oBAAoB,CAAC,MAAM,EAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,SAAS,EACT,iCAAiC,CAClC,CACJ,CAAC;IACJ,CAAC;IAED,sBAAsB,CACpB,WAAmB,EACnB,OAAuC;QAEvC,OAAO,cAAc,CACnB,IAAI,CAAC,kCAAkC,EACvC,gCAAgC,CAAC,WAAW,EAAE,OAAO,CAAC,EACtD,GAAG,EAAE,CACH,IAAI,CAAC,OAAO,CACV,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAC7C,kBAAkB,CAAC,UAAU,EAC7B,kBAAkB,CAAC,MAAM,EACzB,SAAS,EACT,SAAS,EACT,+BAA+B,CAChC,CACJ,CAAC;IACJ,CAAC;IAED,4BAA4B,CAC1B,WAAmB,EACnB,OAAuC,EACvC,iBAAuC,EAAE;QAEzC,OAAO,IAAI,CAAC,aAAa,CACvB,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAC7C,kBAAkB,CAAC,UAAU,EAC7B,kBAAkB,CAAC,MAAM,EACzB,SAAS,EACT,cAAc,EACd,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED,cAAc,CACZ,UAAkB,EAClB,KAAqC,EACrC,UAAgC,EAAE;QAElC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,OAAO,CACjB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,EAC/B,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,MAAM,EACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,uBAAuB,CACxB,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB,CAClB,UAAkB,EAClB,KAAqC,EACrC,UAAgC,EAAE;QAElC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,aAAa,CACvB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,EAC/B,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,MAAM,EACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,uBAAuB,CACxB,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CACX,UAAkB,EAClB,KAA2B,EAC3B,UAAgC,EAAE;QAElC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,OAAO,CACjB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAC9B,aAAa,CAAC,UAAU,EACxB,aAAa,CAAC,MAAM,EACpB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,sBAAsB,CACvB,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CACnB,UAAkB,EAClB,OAAmC,EACnC,iBAAuC,EAAE;QAEzC,OAAO,IAAI,CAAC,OAAO,CACjB,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAC5C,kBAAkB,CAAC,UAAU,EAC7B,kBAAkB,CAAC,MAAM,EACzB,SAAS,EACT,cAAc,EACd,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAED,YAAY,CACV,UAAkB,EAClB,KAA0B,EAC1B,UAAgC,EAAE;QAElC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,YAAY,GAChB,IAAI,CAAC,4CAA4C,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,SAAS;aAClB,OAAO,CACN,qBAAqB,EACrB;YACE,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,EAAE,UAAU,EAAE;SACvB,EACD,OAAO,CACR;aACA,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACvB,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,0CAA0C,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM,kCAAkC,CACtC,IAAI,CAAC,4CAA4C,EACjD,UAAU,EACV,QAAQ,EACR,GAAG,EAAE,CACH,IAAI,CAAC,mDAAmD,CAAC,MAAM,CAC7D,UAAU,CACX,CACJ,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IACE,IAAI,CAAC,4CAA4C,CAAC,GAAG,CACnD,UAAU,CACX,KAAK,YAAY,EAClB,CAAC;oBACD,IAAI,CAAC,4CAA4C,CAAC,MAAM,CACtD,UAAU,CACX,CAAC;oBACF,IAAI,CAAC,mDAAmD,CAAC,MAAM,CAC7D,UAAU,CACX,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,IACE,IAAI,CAAC,4CAA4C,CAAC,GAAG,CAAC,UAAU,CAAC;gBACjE,YAAY,EACZ,CAAC;gBACD,IAAI,CAAC,4CAA4C,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACrE,IAAI,CAAC,mDAAmD,CAAC,MAAM,CAC7D,UAAU,CACX,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,UAAkB,EAClB,KAA0B,EAC1B,UAAgC,EAAE;QAElC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,YAAY,GAChB,IAAI,CAAC,4CAA4C,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAC/C,qBAAqB,EACrB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,EACvC,OAAO,CACR,CAAC;YACF,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,0CAA0C,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM,kCAAkC,CACtC,IAAI,CAAC,4CAA4C,EACjD,UAAU,EACV,MAAM,CAAC,IAAI,EACX,GAAG,EAAE,CACH,IAAI,CAAC,mDAAmD,CAAC,MAAM,CAC7D,UAAU,CACX,CACJ,CAAC;YACJ,CAAC;iBAAM,IACL,IAAI,CAAC,4CAA4C,CAAC,GAAG,CAAC,UAAU,CAAC;gBACjE,YAAY,EACZ,CAAC;gBACD,IAAI,CAAC,4CAA4C,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACrE,IAAI,CAAC,mDAAmD,CAAC,MAAM,CAC7D,UAAU,CACX,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,0BAA0B,CAAC,KAAwC;QACjE,OAAO,IAAI,CAAC,OAAO,CACjB,iBAAiB,CAAC,IAAI,EACtB,iBAAiB,CAAC,UAAU,EAC5B,iBAAiB,CAAC,MAAM,EACxB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,SAAS,EACT,mCAAmC,CACpC,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,OAAe;QACnC,OAAO,IAAI,CAAC,OAAO,CACjB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAC1B,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,MAAM,EACnB,SAAS,EACT,SAAS,EACT,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAED,4BAA4B,CAC1B,OAAe,EACf,UAAkB,EAClB,KAA0C;QAE1C,2EAA2E;QAC3E,+EAA+E;QAC/E,8EAA8E;QAC9E,4EAA4E;QAC5E,sEAAsE;QACtE,+EAA+E;QAC/E,4EAA4E;QAC5E,+EAA+E;QAC/E,+EAA+E;QAC/E,yEAAyE;QACzE,mCAAmC;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,oBAAoB,CACxC,qCAAqC,EACrC;YACE,OAAO,EAAE;gBACP,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;gBAChE,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM;gBAC7C,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,QAAQ;aAClD;YACD,IAAI,EAAE,KAAK,CAAC,cAAc;YAC1B,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;SAChC,EACD;YACE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CACnB,IAAI,YAAY,IAAI;gBAClB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,qBAAqB,EAAE;oBACtC,IAAI,EAAE,0BAA0B;iBACjC,CAAC;SACT,CACF,CAAC;IACJ,CAAC;IAED,0BAA0B,CACxB,OAAe,EACf,KAAwC;QAExC,OAAO,IAAI,CAAC,OAAO,CACjB,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAC/B,iBAAiB,CAAC,UAAU,EAC5B,iBAAiB,CAAC,MAAM,EACxB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,SAAS,EACT,mCAAmC,CACpC,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,kBAAkB,CAChB,MAAc,EACd,KAAgC,EAChC,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,OAAO,CACjB,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAC/B,kBAAkB,CAAC,UAAU,EAC7B,kBAAkB,CAAC,MAAM,EACzB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,2BAA2B,CAC5B;aACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,0CAA0C,CAAC,KAAK,EAAE,CAAC;YAC1D,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,IAAI,CAAC,0CAA0C,CAAC,KAAK,EAAE,CAAC;YACxD,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED,oBAAoB,CAClB,MAAc,EACd,SAAiB,EACjB,KAAkC,EAClC,UAAgC,EAAE;QAElC,OAAO,IAAI,CAAC,OAAO,CACjB,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAC5C,oBAAoB,CAAC,UAAU,EAC/B,oBAAoB,CAAC,MAAM,EAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,OAAO,EACP,6BAA6B,CAC9B;aACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,0CAA0C,CAAC,KAAK,EAAE,CAAC;YAC1D,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,IAAI,CAAC,0CAA0C,CAAC,KAAK,EAAE,CAAC;YACxD,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED,uBAAuB,CACrB,UAAkB,EAClB,UAAiC,EAAE;QAEnC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,0CAA0C,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,aAAa,CAClB,IAAI,CAAC,0CAA0C,EAC/C,UAAU,EACV,GAAG,EAAE,CACH,IAAI,CAAC,OAAO,CACV,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,EACxC,uBAAuB,CAAC,UAAU,EAClC,uBAAuB,CAAC,MAAM,EAC9B,SAAS,EACT,SAAS,EACT,gCAAgC,CACjC,CACJ,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { sign } from \"@tearleads/crypto\";\nimport type { NativeSubscriptionStore } from \"@tearleads/validators/billing\";\nimport {\n bindBlobAttachmentOperation,\n blobWireHeaderKeys,\n cancelStripeSubscriptionOperation,\n challengeOperation,\n claimNativeOrganizationSubscriptionOperation,\n completeMultipartBlobStageOperation,\n createContainerOperation,\n createContainerWithMetadataDocumentOperation,\n createDocumentOperation,\n createOrganizationGroupOperation,\n createOrganizationOperation,\n createStripeCheckoutOperation,\n createStripeCheckoutSessionOperation,\n createStripePortalOperation,\n deleteContainerOperation,\n deleteOrganizationGroupOperation,\n destroySessionOperation,\n detachBlobAttachmentOperation,\n documentSyncOperation,\n getContainerKekLogOperation,\n getContainerReplacementAuthorizationsOperation,\n getContainerWriterProjectionOperation,\n getDocumentPurgeProofOperation,\n getDocumentWriterProjectionOperation,\n getHealthOperation,\n getMultipartBlobStageOperation,\n getOrganizationBillingHistoryOperation,\n getOrganizationBillingManagementUrlOperation,\n getOrganizationBillingOperation,\n getOrganizationDataUsageOperation,\n getOrganizationNativePurchaseEligibilityOperation,\n getOrganizationPolicyHistoryOperation,\n getOrganizationReadModelOperation,\n getRootIdentityOperation,\n getRootOrganizationDataUsageOperation,\n getRootOrganizationOperation,\n getStripeCheckoutOptionsOperation,\n initiateMultipartBlobStageOperation,\n linkDocumentOperation,\n listContainerDocumentsOperation,\n listContainerParentLanesOperation,\n listDocumentAttachmentsOperation,\n listOrganizationGroupMembersOperation,\n listRootDataUsageReportOperation,\n listRootIdentitiesOperation,\n listRootIdentityOrganizationsOperation,\n listRootOrganizationIdentitiesOperation,\n listRootOrganizationsOperation,\n listSessionsOperation,\n logoutOperation,\n moveContainerOperation,\n purgeDocumentOperation,\n type RootIdentitiesQuery,\n type RootOrganizationPageQuery,\n type RootOrganizationsQuery,\n reciteContainerOperation,\n registerOperation,\n rekeyContainerOperation,\n revokeContainerOperation,\n shareContainerOperation,\n startOrganizationTrialOperation,\n unlinkDocumentOperation,\n updateOrganizationProfileOperation,\n updateOrganizationRosterEntryOperation,\n uploadMultipartBlobPartBytesOperation,\n userIdentityOperation,\n verifyOperation,\n webSocketTicketOperation,\n} from \"@tearleads/validators/operation\";\nimport type {\n BlobAttachmentBindRequest,\n BlobAttachmentDetachRequest,\n CommitOrganizationGroupPolicyRequest,\n CompleteMultipartBlobStageRequest,\n ContainerCreateWithMetadataDocumentRequest,\n ContainerMutationRequest,\n ContainerReciteRequest,\n ContainerRotationRequest,\n CreateOrganizationGroupWithPolicyRequest,\n CreateOrganizationRequest,\n DeleteOrganizationGroupRequest,\n DocumentCreateRequest,\n DocumentLinkSetMutationRequest,\n DocumentPurgeRequest,\n DocumentSyncRequest,\n InitiateMultipartBlobStageRequest,\n ListContainerParentLanesRequest,\n RegistrationRequest,\n UpdateOrganizationProfileRequest,\n UpdateOrganizationRosterEntryRequest,\n} from \"@tearleads/validators/request\";\nimport type {\n BlobAttachmentBindResponse,\n BlobAttachmentDetachResponse,\n CommitOrganizationGroupPolicyResponse,\n ContainerCreateWithMetadataDocumentResponse,\n ContainerDeleteResponse,\n ContainerMutationResponse,\n ContainerRotationResponse,\n ContainerWriterProjectionResponse,\n DocumentCreateResponse,\n DocumentSyncResponse,\n DocumentWriterProjectionResponse,\n ListContainerDocumentsResponse,\n ListContainerParentLanesResponse,\n ListDocumentAttachmentsResponse,\n OrganizationDataUsageResponse,\n OrganizationPolicyHistoryResponse,\n OrganizationReadModelResponse,\n PrincipalPolicyBundleResponse,\n RootDataUsageReportResponse,\n RootIdentitiesResponse,\n RootIdentityDetailResponse,\n RootIdentityOrganizationsResponse,\n RootOrganizationDetailResponse,\n RootOrganizationIdentitiesResponse,\n RootOrganizationsResponse,\n UserIdentityResponse,\n} from \"@tearleads/validators/response\";\nimport { BoundedCache } from \"./ApiCache\";\nimport { ApiRequestRuntime } from \"./apiRequestRuntime\";\nimport {\n createOperationTransport,\n type OperationTransport,\n} from \"./operationTransportFactory\";\nimport type { PrincipalPolicyPageReadOptions } from \"./principalPolicyPages\";\nimport { PrincipalPolicyRequests } from \"./principalPolicyRequests\";\nimport { ProjectionHistoryTransport } from \"./projectionHistoryTransport\";\nimport {\n bindPrototypeMethods,\n cachedRequest,\n dedupedRequest,\n evictWriterProjectionIfSyncChanged,\n listContainerDocumentsRequestKey,\n listContainerParentLanesRequestKey,\n} from \"./requestInternals\";\nimport {\n destroySession as authDestroySession,\n listSessions as authListSessions,\n logout as authLogout,\n userIdentity as authUserIdentity,\n} from \"./routes/auth/session\";\nimport {\n bindBlobAttachment as blobAttachmentBind,\n detachBlobAttachment as blobAttachmentDetach,\n} from \"./routes/blobs/attachments\";\nimport {\n getBlobBytes,\n type UploadMultipartBlobPartBytesRequest,\n} from \"./routes/blobs/get\";\nimport {\n completeMultipartBlobStage as multipartComplete,\n getMultipartBlobStage as multipartGet,\n initiateMultipartBlobStage as multipartInitiate,\n} from \"./routes/blobs/multipart\";\nimport {\n containerCreate,\n containerCreateWithMetadataDocument,\n containerDelete,\n containerMove,\n containerRecite,\n containerRekey,\n containerRevoke,\n containerShare,\n} from \"./routes/containers/mutations\";\nimport {\n type ContainerKekLogOptions,\n containerDocuments,\n containerKekLog,\n containerParentLanes,\n} from \"./routes/containers/reads\";\nimport { listDocumentAttachments as documentAttachmentsList } from \"./routes/documents/attachments\";\nimport { DocumentAttributionRequests } from \"./routes/documents/attributionRequests\";\nimport {\n type DocumentPurgeProofOptions,\n documentCreate,\n documentLink,\n documentPurge,\n documentPurgeProof,\n documentUnlink,\n} from \"./routes/documents/mutations\";\nimport { organizationBilling } from \"./routes/organizations/billing\";\nimport { createOrganizationGroup as groupCreate } from \"./routes/organizations/createGroup\";\nimport { getOrganizationDataUsage as organizationDataUsage } from \"./routes/organizations/dataUsage\";\nimport { deleteOrganizationGroup as groupDelete } from \"./routes/organizations/deleteGroup\";\nimport { listOrganizationGroupMembers as groupMembers } from \"./routes/organizations/groupMembers\";\nimport { updateOrganizationProfile as profileUpdate } from \"./routes/organizations/profile\";\nimport { updateOrganizationRosterEntry as rosterUpdate } from \"./routes/organizations/roster\";\nimport { organizationStripeCheckout } from \"./routes/organizations/stripeCheckout\";\nimport {\n containerWriterProjection,\n documentWriterProjection,\n} from \"./routes/writerProjections\";\nimport type {\n HttpMethod,\n ListContainerDocumentsOptions,\n ListDocumentEditAttributionRangesOptions,\n OperationRequestFn,\n OperationRequestResultFn,\n RequestResult,\n RequestResultOptions,\n} from \"./types\";\nimport {\n CitingProjectionCache,\n evictWriterProjectionsCiting,\n} from \"./writerProjectionCitations\";\nimport { primeWriterProjectionSlot } from \"./writerProjectionPrime\";\nimport { writerProjectionRequests } from \"./writerProjectionRequests\";\n\ntype ExpiredHandler = () => boolean | Promise<boolean>;\ntype PaymentRequiredHandler = (organizationId: string | null) => void;\n\n// A joinable in-flight writer-projection result fetch, pinned to the value\n// slot and per-key invalidation stamp it started against. A caller may join\n// it only while both are unchanged — see writerProjectionResult.\ninterface InFlightWriterProjectionResult<T> {\n readonly invalidationStamp: number;\n readonly resultPromise: Promise<RequestResult<T>>;\n readonly slot: Promise<T | null> | undefined;\n}\n\n/** The rotations that may carry descendant rekeys, each with its operation. */\nconst CONTAINER_ROTATIONS = {\n move: { operation: moveContainerOperation, route: containerMove },\n rekey: { operation: rekeyContainerOperation, route: containerRekey },\n revoke: { operation: revokeContainerOperation, route: containerRevoke },\n} as const;\n\nexport class ApiClient {\n private readonly requestRuntime: ApiRequestRuntime;\n private readonly projectionHistory = new ProjectionHistoryTransport();\n private readonly containerDocumentListRequestsByKey = new Map<\n string,\n Promise<ListContainerDocumentsResponse | null>\n >();\n private readonly containerParentLaneRequestsByKey = new Map<\n string,\n Promise<ListContainerParentLanesResponse | null>\n >();\n private readonly containerWriterProjectionRequestsByContainerId =\n new CitingProjectionCache<ContainerWriterProjectionResponse>();\n private readonly documentWriterProjectionRequestsByDocumentId =\n new CitingProjectionCache<DocumentWriterProjectionResponse>();\n private readonly containerWriterProjectionResultsInFlightByContainerId =\n new Map<\n string,\n InFlightWriterProjectionResult<ContainerWriterProjectionResponse>\n >();\n private readonly documentWriterProjectionResultsInFlightByDocumentId =\n new Map<\n string,\n InFlightWriterProjectionResult<DocumentWriterProjectionResponse>\n >();\n private readonly documentAttachmentListRequestsByDocumentId =\n new BoundedCache<Promise<ListDocumentAttachmentsResponse | null>>();\n private readonly documentAttributionRequests: DocumentAttributionRequests;\n private readonly userIdentityRequestsByUserId = new BoundedCache<\n Promise<UserIdentityResponse | null>\n >();\n private readonly principalPolicyRequestsByKey = new BoundedCache<\n Promise<PrincipalPolicyBundleResponse | null>\n >();\n private readonly principalPolicyRequests: PrincipalPolicyRequests;\n private readonly transport: OperationTransport;\n private readonly request: OperationRequestFn;\n private readonly requestResult: OperationRequestResultFn;\n constructor(baseUrl?: string | null) {\n bindPrototypeMethods(this, ApiClient.prototype);\n this.requestRuntime = new ApiRequestRuntime(baseUrl);\n this.principalPolicyRequests = new PrincipalPolicyRequests(\n this.requestRuntime,\n this.principalPolicyRequestsByKey,\n this.clearWriterProjectionCaches,\n );\n const projectionRequests = writerProjectionRequests(this.requestRuntime);\n this.request = this.projectionHistory.wrapRequest(\n projectionRequests.request,\n );\n this.requestResult = this.projectionHistory.wrapRequestResult(\n projectionRequests.requestResult,\n );\n this.transport = createOperationTransport(\n this.requestRuntime.responseRequest,\n );\n this.documentAttributionRequests = new DocumentAttributionRequests(\n this.transport,\n );\n }\n private clearAuthScopedCaches(): void {\n this.projectionHistory.clear();\n this.containerDocumentListRequestsByKey.clear();\n this.containerParentLaneRequestsByKey.clear();\n this.documentAttachmentListRequestsByDocumentId.clear();\n this.documentAttributionRequests.clear();\n this.containerWriterProjectionRequestsByContainerId.clear();\n this.documentWriterProjectionRequestsByDocumentId.clear();\n this.containerWriterProjectionResultsInFlightByContainerId.clear();\n this.documentWriterProjectionResultsInFlightByDocumentId.clear();\n this.userIdentityRequestsByUserId.clear();\n this.principalPolicyRequestsByKey.clear();\n }\n\n private invalidateDocumentAttribution(documentId: string): void {\n this.documentAttributionRequests.invalidate(documentId);\n }\n\n clearWriterProjectionCaches(): void {\n this.documentAttachmentListRequestsByDocumentId.clear();\n this.containerWriterProjectionRequestsByContainerId.clear();\n this.documentWriterProjectionRequestsByDocumentId.clear();\n this.containerWriterProjectionResultsInFlightByContainerId.clear();\n this.documentWriterProjectionResultsInFlightByDocumentId.clear();\n }\n\n /** After a peer changed these containers' manifests; see the helper. */\n evictWriterProjectionsCiting(containerIds: readonly string[]): void {\n evictWriterProjectionsCiting(new Set(containerIds), {\n attachmentLists: this.documentAttachmentListRequestsByDocumentId,\n containers: {\n cache: this.containerWriterProjectionRequestsByContainerId,\n inFlight: this.containerWriterProjectionResultsInFlightByContainerId,\n },\n documents: {\n cache: this.documentWriterProjectionRequestsByDocumentId,\n inFlight: this.documentWriterProjectionResultsInFlightByDocumentId,\n },\n });\n }\n\n evictUserIdentity(userId: string): void {\n this.userIdentityRequestsByUserId.delete(userId);\n }\n\n /**\n * Evict a document's projection and attachment envelopes together: link/unlink\n * changes both. A stale attachment list would regenerate an already committed\n * destination wrap during a move. Unrelated documents keep their caches.\n */\n evictDocumentWriterProjection(documentId: string): void {\n this.documentAttachmentListRequestsByDocumentId.delete(documentId);\n this.documentWriterProjectionRequestsByDocumentId.delete(documentId);\n this.documentWriterProjectionResultsInFlightByDocumentId.delete(documentId);\n }\n\n /**\n * Container counterpart of {@link evictDocumentWriterProjection}: evict a\n * single container's cached writer projection. A stale-projection create\n * retry only implicates the container it is creating under, so it evicts just\n * that entry rather than clearing the whole projection cache.\n */\n evictContainerWriterProjection(containerId: string): void {\n this.containerWriterProjectionRequestsByContainerId.delete(containerId);\n this.containerWriterProjectionResultsInFlightByContainerId.delete(\n containerId,\n );\n }\n\n private updateCachedDocumentAttachmentList(\n documentId: string,\n update: (\n attachments: ListDocumentAttachmentsResponse,\n ) => ListDocumentAttachmentsResponse,\n ): void {\n const cached =\n this.documentAttachmentListRequestsByDocumentId.get(documentId);\n if (!cached) {\n return;\n }\n\n let next: Promise<ListDocumentAttachmentsResponse | null>;\n next = cached\n .then((attachments) => {\n if (!attachments) {\n if (\n this.documentAttachmentListRequestsByDocumentId.get(documentId) ===\n next\n ) {\n this.documentAttachmentListRequestsByDocumentId.delete(documentId);\n }\n return attachments;\n }\n\n return update(attachments);\n })\n .catch(() => {\n // The underlying list fetch failed. Drop this derived cache entry so the\n // next read refetches, and resolve to null (the cache's miss semantics)\n // rather than rethrowing: nothing awaits this derived promise directly,\n // so a rethrow would surface as an unhandled rejection. Callers already\n // awaiting the original request still observe its rejection.\n if (\n this.documentAttachmentListRequestsByDocumentId.get(documentId) ===\n next\n ) {\n this.documentAttachmentListRequestsByDocumentId.delete(documentId);\n }\n return null;\n });\n this.documentAttachmentListRequestsByDocumentId.set(documentId, next);\n }\n\n private cacheBlobAttachmentBindResponse(\n response: BlobAttachmentBindResponse,\n ): void {\n const {\n documentId,\n writeHeaderHash: _writeHeaderHash,\n ...binding\n } = response;\n this.updateCachedDocumentAttachmentList(documentId, (attachments) => [\n ...attachments.filter(\n (cachedBinding) => cachedBinding.slotId !== response.slotId,\n ),\n binding,\n ]);\n }\n\n private cacheBlobAttachmentDetachResponse(\n response: BlobAttachmentDetachResponse,\n ): void {\n this.updateCachedDocumentAttachmentList(\n response.documentId,\n (attachments) =>\n attachments.filter(\n (binding) => binding.bindingId !== response.bindingId,\n ),\n );\n }\n\n setOnError(handler: ((message: string) => void) | null): void {\n this.requestRuntime.setOnError(handler);\n }\n\n setOnNetworkError(handler: (() => void) | null): void {\n this.requestRuntime.setOnNetworkError(handler);\n }\n\n setOnNetworkSuccess(handler: (() => void) | null): void {\n this.requestRuntime.setOnNetworkSuccess(handler);\n }\n\n setOnApiVersion(handler: ((version: number) => void) | null): void {\n this.requestRuntime.setOnApiVersion(handler);\n }\n\n setOnSessionExpired(handler: ExpiredHandler | null): void {\n this.requestRuntime.setOnSessionExpired(handler);\n }\n\n setOnPaymentRequired(handler: PaymentRequiredHandler | null): void {\n this.requestRuntime.setOnPaymentRequired(handler);\n }\n\n setAuthToken(token: string | null): void {\n if (this.requestRuntime.setAuthToken(token)) {\n this.clearAuthScopedCaches();\n }\n }\n\n getAuthToken(): string | null {\n return this.requestRuntime.getAuthToken();\n }\n\n getRequestFailure(input: { method: HttpMethod; path: string }) {\n return this.requestRuntime.getRequestFailure(input);\n }\n\n async requestWebSocketTicket(): Promise<string | null> {\n const response = await this.transport.request(webSocketTicketOperation, {\n params: {},\n });\n return response?.ticket ?? null;\n }\n\n getHealth() {\n return this.transport.request(getHealthOperation, { params: {} });\n }\n\n registerUser(\n userId: string,\n organizationId: string,\n rootContainerId: string,\n signingPublicKey: Uint8Array,\n encapsulationPublicKey: Uint8Array,\n initialAdminGroup: RegistrationRequest[\"initialAdminGroup\"],\n initialMemberGroup: RegistrationRequest[\"initialMemberGroup\"],\n initialOrganizationPolicy: RegistrationRequest[\"initialOrganizationPolicy\"],\n initialRootContainer: RegistrationRequest[\"initialRootContainer\"],\n initialRootMetadataDocument: RegistrationRequest[\"initialRootMetadataDocument\"],\n initialRosterProfileContainer: RegistrationRequest[\"initialRosterProfileContainer\"],\n initialRosterProfileDocument: RegistrationRequest[\"initialRosterProfileDocument\"],\n initialOrganizationMetadataContainer: RegistrationRequest[\"initialOrganizationMetadataContainer\"],\n initialOrganizationProfileDocument?: RegistrationRequest[\"initialOrganizationProfileDocument\"],\n initialSystemContainers?: RegistrationRequest[\"initialSystemContainers\"],\n ) {\n return this.transport.request(registerOperation, {\n body: {\n userId,\n organizationId,\n rootContainerId,\n signingPublicKey: Array.from(signingPublicKey),\n encapsulationPublicKey: Array.from(encapsulationPublicKey),\n initialAdminGroup,\n initialMemberGroup,\n initialOrganizationPolicy,\n initialRootContainer,\n initialRootMetadataDocument,\n initialRosterProfileContainer,\n initialRosterProfileDocument,\n initialOrganizationMetadataContainer,\n initialOrganizationProfileDocument,\n initialSystemContainers,\n },\n params: {},\n });\n }\n\n createOrganization(request: CreateOrganizationRequest) {\n return this.transport.request(createOrganizationOperation, {\n body: request,\n params: {},\n });\n }\n\n async authenticate(fingerprint: string, secretKey: Uint8Array) {\n const challenge = await this.transport.request(\n challengeOperation,\n { body: { fingerprint }, params: {} },\n { retryOnSessionExpired: false },\n );\n if (!challenge) return null;\n\n return this.authenticateWithChallenge(\n fingerprint,\n secretKey,\n challenge.challenge,\n );\n }\n\n async authenticateWithChallenge(\n fingerprint: string,\n secretKey: Uint8Array,\n challengeHex: string,\n ) {\n const signed = sign(\n this.requestRuntime.authChallengeBytes(challengeHex, fingerprint),\n secretKey,\n );\n const response = await this.transport.request(\n verifyOperation,\n {\n body: { fingerprint, signature: Array.from(signed) },\n params: {},\n },\n { retryOnSessionExpired: false },\n );\n\n return response?.authenticated ? response : null;\n }\n\n getUserIdentity(userId: string) {\n return cachedRequest(this.userIdentityRequestsByUserId, userId, () =>\n this.request(\n authUserIdentity.path(userId),\n authUserIdentity.isResponse,\n authUserIdentity.method,\n undefined,\n undefined,\n userIdentityOperation,\n ),\n );\n }\n\n getUserIdentityRequestFailure(userId: string) {\n return this.getRequestFailure({\n method: authUserIdentity.method,\n path: authUserIdentity.path(userId),\n });\n }\n\n listSessions() {\n return this.request(\n authListSessions.path,\n authListSessions.isResponse,\n authListSessions.method,\n undefined,\n undefined,\n listSessionsOperation,\n );\n }\n\n destroySession(sessionId: string) {\n return this.request(\n authDestroySession.path(sessionId),\n authDestroySession.isResponse,\n authDestroySession.method,\n undefined,\n undefined,\n destroySessionOperation,\n );\n }\n\n logout() {\n return this.request(\n authLogout.path,\n authLogout.isResponse,\n authLogout.method,\n undefined,\n { retryOnSessionExpired: false },\n logoutOperation,\n );\n }\n\n getPrincipalPolicyPages(\n principalType: \"group\" | \"organization\",\n principalId: string,\n options: PrincipalPolicyPageReadOptions = {},\n ) {\n return this.principalPolicyRequests.pages(\n principalType,\n principalId,\n options,\n );\n }\n\n getProjectionPolicyHistoryPages(\n ...args: Parameters<PrincipalPolicyRequests[\"publicPages\"]>\n ) {\n return this.principalPolicyRequests.publicPages(...args);\n }\n\n getCurrentPrincipalPolicy(\n ...args: Parameters<PrincipalPolicyRequests[\"get\"]>\n ) {\n return this.principalPolicyRequests.get(...args);\n }\n\n putPrincipalPolicy(...args: Parameters<PrincipalPolicyRequests[\"put\"]>) {\n return this.principalPolicyRequests.put(...args);\n }\n\n /** Preserves unknown outcomes for authored organization directory writes. */\n putPrincipalPolicyResult(\n ...args: Parameters<PrincipalPolicyRequests[\"putResult\"]>\n ) {\n return this.principalPolicyRequests.putResult(...args);\n }\n\n commitOrganizationGroupPolicy(\n organizationId: string,\n groupId: string,\n input: CommitOrganizationGroupPolicyRequest,\n ) {\n return this.commitOrganizationGroupPolicyResult(\n organizationId,\n groupId,\n input,\n ).then((result) => (result.ok ? result.data : null));\n }\n\n /**\n * Status-bearing group policy commit. A rematerialized rotation the server\n * refuses for stranding a granted path names the descendant rekeys the batch\n * must carry, which the plain method collapses to null.\n */\n async commitOrganizationGroupPolicyResult(\n organizationId: string,\n groupId: string,\n input: CommitOrganizationGroupPolicyRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<CommitOrganizationGroupPolicyResponse>> {\n return this.principalPolicyRequests.commitResult(\n organizationId,\n groupId,\n input,\n options,\n );\n }\n\n getOrganizationPolicyHistoryResult(\n organizationId: string,\n stateHash: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<OrganizationPolicyHistoryResponse>> {\n return this.transport.requestResult(\n getOrganizationPolicyHistoryOperation,\n { params: { organizationId }, query: { stateHash } },\n options,\n );\n }\n\n getOrganizationReadModelResult(\n organizationId: string,\n cursor?: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<OrganizationReadModelResponse>> {\n return this.transport.requestResult(\n getOrganizationReadModelOperation,\n {\n params: { organizationId },\n query: { cursor },\n },\n options,\n );\n }\n\n getRootOrganizationDataUsageResult(\n organizationId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<OrganizationDataUsageResponse>> {\n return this.transport.requestResult(\n getRootOrganizationDataUsageOperation,\n { params: { organizationId } },\n options,\n );\n }\n listRootDataUsageReportResult(\n query: RootOrganizationsQuery = {},\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootDataUsageReportResponse>> {\n return this.transport.requestResult(\n listRootDataUsageReportOperation,\n { params: {}, query },\n options,\n );\n }\n\n listRootOrganizationsResult(\n query: RootOrganizationsQuery = {},\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootOrganizationsResponse>> {\n return this.transport.requestResult(\n listRootOrganizationsOperation,\n { params: {}, query },\n options,\n );\n }\n\n getRootOrganizationResult(\n organizationId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootOrganizationDetailResponse>> {\n return this.transport.requestResult(\n getRootOrganizationOperation,\n { params: { organizationId } },\n options,\n );\n }\n\n listRootOrganizationIdentitiesResult(\n organizationId: string,\n query: RootOrganizationPageQuery = {},\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootOrganizationIdentitiesResponse>> {\n return this.transport.requestResult(\n listRootOrganizationIdentitiesOperation,\n { params: { organizationId }, query },\n options,\n );\n }\n\n listRootIdentitiesResult(\n query: RootIdentitiesQuery = {},\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootIdentitiesResponse>> {\n return this.transport.requestResult(\n listRootIdentitiesOperation,\n { params: {}, query },\n options,\n );\n }\n\n getRootIdentityResult(\n userId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootIdentityDetailResponse>> {\n return this.transport.requestResult(\n getRootIdentityOperation,\n { params: { userId } },\n options,\n );\n }\n\n listRootIdentityOrganizationsResult(\n userId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootIdentityOrganizationsResponse>> {\n return this.transport.requestResult(\n listRootIdentityOrganizationsOperation,\n { params: { userId } },\n options,\n );\n }\n\n getOrganizationDataUsageResult(\n organizationId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<OrganizationDataUsageResponse>> {\n return this.requestResult(\n organizationDataUsage.path(organizationId),\n organizationDataUsage.isResponse,\n organizationDataUsage.method,\n undefined,\n options,\n getOrganizationDataUsageOperation,\n );\n }\n\n getOrganizationBilling(organizationId: string) {\n return this.request(\n organizationBilling.get.path(organizationId),\n organizationBilling.get.isResponse,\n organizationBilling.get.method,\n undefined,\n undefined,\n getOrganizationBillingOperation,\n );\n }\n\n getOrganizationBillingHistory(organizationId: string) {\n return this.request(\n organizationBilling.history.path(organizationId),\n organizationBilling.history.isResponse,\n organizationBilling.history.method,\n undefined,\n undefined,\n getOrganizationBillingHistoryOperation,\n );\n }\n\n getOrganizationBillingManagementUrl(organizationId: string) {\n return this.request(\n organizationBilling.managementUrl.path(organizationId),\n organizationBilling.managementUrl.isResponse,\n organizationBilling.managementUrl.method,\n undefined,\n undefined,\n getOrganizationBillingManagementUrlOperation,\n );\n }\n\n getOrganizationNativePurchaseEligibility(\n organizationId: string,\n store: NativeSubscriptionStore,\n ) {\n return this.request(\n organizationBilling.nativeEligibility.path(organizationId, store),\n organizationBilling.nativeEligibility.isResponse,\n organizationBilling.nativeEligibility.method,\n undefined,\n undefined,\n getOrganizationNativePurchaseEligibilityOperation,\n );\n }\n\n claimNativeOrganizationSubscription(\n organizationId: string,\n store: NativeSubscriptionStore,\n ) {\n return this.requestResult(\n organizationBilling.nativeClaim.path(organizationId, store),\n organizationBilling.nativeClaim.isResponse,\n organizationBilling.nativeClaim.method,\n undefined,\n { reportErrors: false },\n claimNativeOrganizationSubscriptionOperation,\n );\n }\n\n /** Empty options means unconfigured; 403/409 remain errors. */\n getStripeCheckoutOptions(\n organizationId: string,\n options: RequestResultOptions = {},\n ) {\n return this.requestResult(\n organizationStripeCheckout.options.path(organizationId),\n organizationStripeCheckout.options.isResponse,\n organizationStripeCheckout.options.method,\n undefined,\n options,\n getStripeCheckoutOptionsOperation,\n );\n }\n\n /** Starts or resumes inline checkout; an existing subscription returns 409. */\n createStripeCheckout(organizationId: string) {\n return this.request(\n organizationStripeCheckout.checkout.path(organizationId),\n organizationStripeCheckout.checkout.isResponse,\n organizationStripeCheckout.checkout.method,\n undefined,\n undefined,\n createStripeCheckoutOperation,\n );\n }\n\n /** Opens hosted checkout; a null URL means unavailable or ineligible. */\n createStripeCheckoutSession(organizationId: string, returnUrl: string) {\n return this.request(\n organizationStripeCheckout.checkoutSession.path(organizationId),\n organizationStripeCheckout.checkoutSession.isResponse,\n organizationStripeCheckout.checkoutSession.method,\n JSON.stringify(\n organizationStripeCheckout.checkoutSession.body(returnUrl),\n ),\n undefined,\n createStripeCheckoutSessionOperation,\n );\n }\n\n /** Opens Stripe's subscription-management portal for the organization. */\n createStripePortal(organizationId: string, returnUrl: string) {\n return this.request(\n organizationStripeCheckout.portal.path(organizationId),\n organizationStripeCheckout.portal.isResponse,\n organizationStripeCheckout.portal.method,\n JSON.stringify(organizationStripeCheckout.portal.body(returnUrl)),\n undefined,\n createStripePortalOperation,\n );\n }\n\n /** Schedules period-end cancellation; any non-2xx resolves null. */\n cancelStripeSubscription(organizationId: string) {\n return this.request(\n organizationStripeCheckout.cancel.path(organizationId),\n organizationStripeCheckout.cancel.isResponse,\n organizationStripeCheckout.cancel.method,\n undefined,\n undefined,\n cancelStripeSubscriptionOperation,\n );\n }\n\n startOrganizationTrial(organizationId: string) {\n return this.request(\n organizationBilling.startTrial.path(organizationId),\n organizationBilling.startTrial.isResponse,\n organizationBilling.startTrial.method,\n undefined,\n undefined,\n startOrganizationTrialOperation,\n );\n }\n\n updateOrganizationRosterEntry(\n organizationId: string,\n userId: string,\n input: UpdateOrganizationRosterEntryRequest,\n ) {\n return this.request(\n rosterUpdate.path(organizationId, userId),\n rosterUpdate.isResponse,\n rosterUpdate.method,\n JSON.stringify(input),\n { expectedPaymentRequiredOrganizationId: organizationId },\n updateOrganizationRosterEntryOperation,\n );\n }\n\n updateOrganizationProfile(\n organizationId: string,\n input: UpdateOrganizationProfileRequest,\n ) {\n return this.request(\n profileUpdate.path(organizationId),\n profileUpdate.isResponse,\n profileUpdate.method,\n JSON.stringify(input),\n { expectedPaymentRequiredOrganizationId: organizationId },\n updateOrganizationProfileOperation,\n );\n }\n\n createOrganizationGroup(\n organizationId: string,\n input: CreateOrganizationGroupWithPolicyRequest,\n ) {\n const groupRequestKey = JSON.stringify([\"group\", input.groupId]);\n const organizationRequestKey = JSON.stringify([\n \"organization\",\n organizationId,\n ]);\n this.principalPolicyRequestsByKey.delete(groupRequestKey);\n this.principalPolicyRequestsByKey.delete(organizationRequestKey);\n return this.request(\n groupCreate.path(organizationId),\n groupCreate.isResponse,\n groupCreate.method,\n JSON.stringify(input),\n { expectedPaymentRequiredOrganizationId: organizationId },\n createOrganizationGroupOperation,\n ).finally(() => {\n this.principalPolicyRequestsByKey.delete(groupRequestKey);\n this.principalPolicyRequestsByKey.delete(organizationRequestKey);\n this.clearWriterProjectionCaches();\n });\n }\n\n deleteOrganizationGroup(\n organizationId: string,\n groupId: string,\n input: DeleteOrganizationGroupRequest,\n ) {\n const groupRequestKey = JSON.stringify([\"group\", groupId]);\n const organizationRequestKey = JSON.stringify([\n \"organization\",\n organizationId,\n ]);\n this.principalPolicyRequestsByKey.delete(groupRequestKey);\n this.principalPolicyRequestsByKey.delete(organizationRequestKey);\n return this.request(\n groupDelete.path(organizationId, groupId),\n groupDelete.isResponse,\n groupDelete.method,\n JSON.stringify(input),\n { expectedPaymentRequiredOrganizationId: organizationId },\n deleteOrganizationGroupOperation,\n ).finally(() => {\n this.principalPolicyRequestsByKey.delete(groupRequestKey);\n this.principalPolicyRequestsByKey.delete(organizationRequestKey);\n this.clearWriterProjectionCaches();\n });\n }\n\n listOrganizationGroupMembers(organizationId: string, groupId: string) {\n return this.request(\n groupMembers.path(organizationId, groupId),\n groupMembers.isResponse,\n groupMembers.method,\n undefined,\n undefined,\n listOrganizationGroupMembersOperation,\n );\n }\n\n createDocument(\n input: DocumentCreateRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n documentCreate.path,\n documentCreate.isResponse,\n documentCreate.method,\n JSON.stringify(input),\n options,\n createDocumentOperation,\n );\n }\n\n createDocumentResult(\n input: DocumentCreateRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<DocumentCreateResponse>> {\n return this.requestResult(\n documentCreate.path,\n documentCreate.isResponse,\n documentCreate.method,\n JSON.stringify(input),\n options,\n createDocumentOperation,\n );\n }\n\n getContainerWriterProjection(containerId: string) {\n return cachedRequest(\n this.containerWriterProjectionRequestsByContainerId,\n containerId,\n () =>\n this.request(\n containerWriterProjection.path(containerId),\n containerWriterProjection.isResponseFor(containerId),\n containerWriterProjection.method,\n undefined,\n undefined,\n getContainerWriterProjectionOperation,\n ),\n );\n }\n\n getContainerReplacementAuthorizationsResult(\n containerId: string,\n replacesOrganizationId: string,\n ) {\n return this.transport.requestResult(\n getContainerReplacementAuthorizationsOperation,\n { params: { containerId, replacesOrganizationId } },\n { reportErrors: false },\n );\n }\n\n /**\n * The append-only rotation log for one container — the rebuild/repair\n * read path. Never cached: it is fetched exactly when the served keyring\n * failed verification and the ground truth is needed. A historical keyring\n * is O(its epoch) bytes, so at most one ships per request, named by\n * `keyringForEpoch`.\n */\n getContainerKekLog(\n containerId: string,\n options: ContainerKekLogOptions = {},\n ) {\n return this.request(\n containerKekLog.path(containerId, options),\n containerKekLog.isResponse,\n containerKekLog.method,\n undefined,\n undefined,\n getContainerKekLogOperation,\n );\n }\n\n getContainerWriterProjectionResult(\n containerId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerWriterProjectionResponse>> {\n return this.writerProjectionResult(\n this.containerWriterProjectionRequestsByContainerId,\n this.containerWriterProjectionResultsInFlightByContainerId,\n containerId,\n containerWriterProjection.path(containerId),\n containerWriterProjection.isResponseFor(containerId),\n options,\n getContainerWriterProjectionOperation,\n );\n }\n\n // Shared by the writer-projection result variants: coalesce concurrent\n // result callers onto one in-flight fetch, reuse a cached success, fetch a\n // result otherwise, and reconcile the cache without ever clobbering an entry\n // that changed while the fetch was in flight.\n private writerProjectionResult<T>(\n cache: BoundedCache<Promise<T | null>>,\n inFlightResults: Map<string, InFlightWriterProjectionResult<T>>,\n cacheKey: string,\n path: string,\n validator: (value: unknown) => value is T,\n options: RequestResultOptions,\n failureOperation: Parameters<OperationRequestFn>[5],\n ): Promise<RequestResult<T>> {\n // Request-affecting options make the response caller-specific: run the\n // request directly with the caller's options, join no shared fetch, and\n // never publish the outcome to the shared caches. Only reporting-only\n // callers below participate in coalescing and cache warming.\n if (\n options.headers !== undefined ||\n options.retryOnSessionExpired !== undefined\n ) {\n return this.requestResult(\n path,\n validator,\n \"GET\",\n undefined,\n options,\n failureOperation,\n );\n }\n\n // A concurrent burst shares one fetch — failure included — so it cannot\n // repeat the HTTP request or the 402 billing signal. The entry lives only\n // while the fetch is in flight: failures are shared, never cached, so a\n // later retry refetches. An in-flight fetch is joinable only while the\n // value slot and per-key invalidation stamp it started against are\n // unchanged: a prime, a completed plain GET, or an eviction of THIS id\n // that lands mid-flight makes the older fetch unadoptable, so a later\n // caller reads the current cache state (or fetches fresh) instead of\n // joining a fetch that predates it — while invalidations of other ids\n // leave the coalescing intact. Eviction and priming also delete the\n // entry outright; the identity guard keeps a late settle from deleting a\n // successor's entry.\n //\n // The shared fetch itself is always silent; each caller applies its OWN\n // reporting policy to the shared outcome below. Coalescing therefore\n // never lets one caller's reportErrors suppress (or force) another's,\n // and caller options never reach the request — the fetch takes none.\n const slot = cache.get(cacheKey);\n const invalidationStamp = cache.invalidationStamp(cacheKey);\n const inFlight = inFlightResults.get(cacheKey);\n let shared: Promise<RequestResult<T>>;\n if (\n inFlight &&\n inFlight.slot === slot &&\n inFlight.invalidationStamp === invalidationStamp\n ) {\n shared = inFlight.resultPromise;\n } else {\n const entry: InFlightWriterProjectionResult<T> = {\n invalidationStamp,\n resultPromise: this.fetchWriterProjectionResult(\n cache,\n cacheKey,\n path,\n validator,\n failureOperation,\n ).finally(() => {\n if (inFlightResults.get(cacheKey) === entry) {\n inFlightResults.delete(cacheKey);\n }\n }),\n slot,\n };\n inFlightResults.set(cacheKey, entry);\n shared = entry.resultPromise;\n }\n\n if (options.reportErrors === false) {\n return shared;\n }\n return shared.then((result) => {\n if (!result.ok) {\n result.report();\n }\n return result;\n });\n }\n\n // The fetch half of writerProjectionResult. Cache reconciliation guards\n // against both mid-flight slot replacement (identity comparison) and\n // mid-flight eviction of an empty slot (the per-key invalidation stamp),\n // so a projection an eviction (e.g. after a revoke) meant to drop is never\n // re-cached.\n private async fetchWriterProjectionResult<T>(\n cache: BoundedCache<Promise<T | null>>,\n cacheKey: string,\n path: string,\n validator: (value: unknown) => value is T,\n failureOperation: Parameters<OperationRequestFn>[5],\n ): Promise<RequestResult<T>> {\n let cached = cache.get(cacheKey);\n while (cached) {\n try {\n const data = await cached;\n if (data) {\n return { data, ok: true };\n }\n } catch {\n // A rejected shared entry is reconciled by its own settle handler;\n // fall through either way.\n }\n // The awaited entry settled empty. Re-read the slot before fetching: a\n // newer entry installed while we awaited must be reused, not fetched\n // over — the set below would otherwise clobber it.\n const current = cache.get(cacheKey);\n if (current === cached) {\n break;\n }\n cached = current;\n }\n\n // The plain value cache never sees this fetch while it is in flight: a\n // published always-silent entry would hand a concurrent PLAIN caller a\n // null without its normal error reporting. Plain callers keep their own\n // fetch-and-report behavior instead, and only a success is published.\n // Always silent here: reporting is per-caller in writerProjectionResult,\n // and taking no caller options is what guarantees nothing\n // request-affecting can be smuggled into the shared fetch.\n const invalidationStamp = cache.invalidationStamp(cacheKey);\n const result = await this.requestResult(\n path,\n validator,\n \"GET\",\n undefined,\n {\n reportErrors: false,\n },\n failureOperation,\n );\n\n if (result.ok) {\n // Publish the success unless the slot changed or this id was\n // invalidated mid-flight. The stamp check is what makes an eviction of\n // THIS id visible even when the slot was empty before and after the\n // flight — the case the identity comparison alone cannot see — and it\n // never caches a projection an eviction meant to drop.\n if (\n cache.get(cacheKey) === cached &&\n cache.invalidationStamp(cacheKey) === invalidationStamp\n ) {\n cache.set(cacheKey, Promise.resolve(result.data));\n }\n } else if (cached && cache.get(cacheKey) === cached) {\n // The adopted entry settled empty and the fetch confirmed there is\n // nothing to serve: drop it so a later read refetches.\n cache.delete(cacheKey);\n }\n\n return result;\n }\n\n createContainer(\n input: ContainerMutationRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerCreate.path,\n containerCreate.isResponse,\n containerCreate.method,\n JSON.stringify(input),\n options,\n createContainerOperation,\n );\n }\n\n async createContainerResult(\n input: ContainerMutationRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerMutationResponse>> {\n return this.requestResult(\n containerCreate.path,\n containerCreate.isResponse,\n containerCreate.method,\n JSON.stringify(input),\n options,\n createContainerOperation,\n );\n }\n\n createContainerWithMetadataDocument(\n input: ContainerCreateWithMetadataDocumentRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerCreateWithMetadataDocument.path,\n containerCreateWithMetadataDocument.isResponse,\n containerCreateWithMetadataDocument.method,\n JSON.stringify(input),\n options,\n createContainerWithMetadataDocumentOperation,\n );\n }\n\n createContainerWithMetadataDocumentResult(\n input: ContainerCreateWithMetadataDocumentRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerCreateWithMetadataDocumentResponse>> {\n return this.requestResult(\n containerCreateWithMetadataDocument.path,\n containerCreateWithMetadataDocument.isResponse,\n containerCreateWithMetadataDocument.method,\n JSON.stringify(input),\n options,\n createContainerWithMetadataDocumentOperation,\n );\n }\n\n shareContainer(\n containerId: string,\n input: ContainerMutationRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerShare.path(containerId),\n containerShare.isResponse,\n containerShare.method,\n JSON.stringify(input),\n options,\n shareContainerOperation,\n ).finally(() => {\n this.clearWriterProjectionCaches();\n });\n }\n\n revokeContainer(\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerRevoke.path(containerId),\n containerRevoke.isResponse,\n containerRevoke.method,\n JSON.stringify(input),\n options,\n revokeContainerOperation,\n ).finally(() => {\n this.clearWriterProjectionCaches();\n });\n }\n\n rekeyContainer(\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerRekey.path(containerId),\n containerRekey.isResponse,\n containerRekey.method,\n JSON.stringify(input),\n options,\n rekeyContainerOperation,\n ).finally(() => {\n this.clearWriterProjectionCaches();\n });\n }\n\n /**\n * Status-bearing rotations: a caller that must tell a permanent refusal (403\n * once ancestor write access is revoked, 402) from a transient 5xx or an\n * offline blip cannot do so through the plain methods, which collapse both to\n * null. They are also how a rotation learns which descendant rekeys it must\n * carry.\n */\n rekeyContainerResult(\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerRotationResponse>> {\n return this.rotationResult(\"rekey\", containerId, input, options);\n }\n\n revokeContainerResult(\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerRotationResponse>> {\n return this.rotationResult(\"revoke\", containerId, input, options);\n }\n\n moveContainerResult(\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerRotationResponse>> {\n return this.rotationResult(\"move\", containerId, input, options);\n }\n\n private async rotationResult(\n rotation: keyof typeof CONTAINER_ROTATIONS,\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions,\n ): Promise<RequestResult<ContainerRotationResponse>> {\n const { operation, route } = CONTAINER_ROTATIONS[rotation];\n try {\n return await this.requestResult(\n route.path(containerId),\n route.isResponse,\n route.method,\n JSON.stringify(input),\n options,\n operation,\n );\n } finally {\n this.clearWriterProjectionCaches();\n }\n }\n\n reciteContainer(\n containerId: string,\n input: ContainerReciteRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerRecite.path(containerId),\n containerRecite.isResponse,\n containerRecite.method,\n JSON.stringify(input),\n options,\n reciteContainerOperation,\n ).finally(() => this.clearWriterProjectionCaches());\n }\n\n moveContainer(\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerMove.path(containerId),\n containerMove.isResponse,\n containerMove.method,\n JSON.stringify(input),\n options,\n moveContainerOperation,\n ).finally(() => {\n this.clearWriterProjectionCaches();\n });\n }\n\n deleteContainer(containerId: string, options: RequestResultOptions = {}) {\n return this.request(\n containerDelete.path(containerId),\n containerDelete.isResponse,\n containerDelete.method,\n undefined,\n options,\n deleteContainerOperation,\n ).finally(() => {\n this.clearWriterProjectionCaches();\n });\n }\n\n deleteContainerResult(\n containerId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerDeleteResponse>> {\n return this.requestResult(\n containerDelete.path(containerId),\n containerDelete.isResponse,\n containerDelete.method,\n undefined,\n options,\n deleteContainerOperation,\n ).finally(() => {\n this.clearWriterProjectionCaches();\n });\n }\n\n getDocumentWriterProjection(documentId: string) {\n return cachedRequest(\n this.documentWriterProjectionRequestsByDocumentId,\n documentId,\n () =>\n this.request(\n documentWriterProjection.path(documentId),\n documentWriterProjection.isResponseFor(documentId),\n documentWriterProjection.method,\n undefined,\n undefined,\n getDocumentWriterProjectionOperation,\n ),\n );\n }\n\n getDocumentEditAttribution(documentId: string, requestKey = \"\") {\n return this.documentAttributionRequests.get(documentId, requestKey);\n }\n\n listDocumentEditAttributionRanges(\n documentId: string,\n options: ListDocumentEditAttributionRangesOptions = {},\n ) {\n return this.documentAttributionRequests.listRanges(documentId, options);\n }\n\n getDocumentWriterProjectionResult(\n documentId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<DocumentWriterProjectionResponse>> {\n return this.writerProjectionResult(\n this.documentWriterProjectionRequestsByDocumentId,\n this.documentWriterProjectionResultsInFlightByDocumentId,\n documentId,\n documentWriterProjection.path(documentId),\n documentWriterProjection.isResponseFor(documentId),\n options,\n getDocumentWriterProjectionOperation,\n );\n }\n\n /**\n * Seed the writer-projection cache from a mutation response the client just\n * authored, so the next read resolves locally instead of a cold\n * `GET /documents/:documentId/writer-projection`. The seed is the same\n * material a fresh fetch returns (create/link/sync responses carry the\n * manifest, content-key bundle, and KEK targets; authorizing paths are the\n * projection the client supplied). No-op when a fetch is in flight or the\n * slot is primed — never clobber an existing entry. The existing invalidation\n * paths (sync-change, share/rekey/move, link/unlink) evict a primed\n * projection that later goes stale, exactly as they evict a fetched one.\n */\n primeDocumentWriterProjection(\n documentId: string,\n projection: DocumentWriterProjectionResponse,\n ): void {\n primeWriterProjectionSlot({\n cache: this.documentWriterProjectionRequestsByDocumentId,\n describes: documentWriterProjection.isResponseFor(documentId),\n id: documentId,\n inFlightResults: this.documentWriterProjectionResultsInFlightByDocumentId,\n label: \"Document\",\n projection,\n });\n }\n\n /**\n * Container counterpart of {@link primeDocumentWriterProjection}: seed the\n * container writer-projection cache from a create the client just authored so\n * the next write under that container (a child folder, a document) resolves\n * locally instead of a cold `GET /containers/:containerId/writer-projection`.\n * The seed is the same material a fresh fetch returns — the create plan's\n * authorizing path and container KEKs — validated by the caller against the\n * create response before priming. No-op when a fetch is in flight or the slot\n * is already primed, so it never clobbers a newer entry. The existing\n * invalidation (share/revoke/rekey/move/delete -> clearWriterProjectionCaches)\n * evicts a primed projection that later goes stale exactly as it evicts a\n * fetched one, so a subsequent write on stale access still fails closed and\n * retries with a fresh projection.\n */\n primeContainerWriterProjection(\n containerId: string,\n projection: ContainerWriterProjectionResponse,\n ): void {\n primeWriterProjectionSlot({\n cache: this.containerWriterProjectionRequestsByContainerId,\n describes: containerWriterProjection.isResponseFor(containerId),\n id: containerId,\n inFlightResults:\n this.containerWriterProjectionResultsInFlightByContainerId,\n label: \"Container\",\n projection,\n });\n }\n\n linkDocument(\n documentId: string,\n input: DocumentLinkSetMutationRequest,\n options: RequestResultOptions = {},\n ) {\n this.invalidateDocumentAttribution(documentId);\n return this.request(\n documentLink.path(documentId),\n documentLink.isResponse,\n documentLink.method,\n JSON.stringify(input),\n options,\n linkDocumentOperation,\n ).finally(() => {\n this.invalidateDocumentAttribution(documentId);\n this.evictDocumentWriterProjection(documentId);\n });\n }\n\n linkDocumentResult(\n documentId: string,\n input: DocumentLinkSetMutationRequest,\n options: RequestResultOptions = {},\n ) {\n this.invalidateDocumentAttribution(documentId);\n return this.requestResult(\n documentLink.path(documentId),\n documentLink.isResponse,\n documentLink.method,\n JSON.stringify(input),\n options,\n linkDocumentOperation,\n ).finally(() => {\n this.invalidateDocumentAttribution(documentId);\n this.evictDocumentWriterProjection(documentId);\n });\n }\n\n listContainerParentLanes(input: ListContainerParentLanesRequest) {\n return dedupedRequest(\n this.containerParentLaneRequestsByKey,\n listContainerParentLanesRequestKey(input),\n () =>\n this.request<ListContainerParentLanesResponse>(\n containerParentLanes.path,\n (value): value is ListContainerParentLanesResponse =>\n containerParentLanes.isResponseForRequest(input, value),\n containerParentLanes.method,\n JSON.stringify(input),\n undefined,\n listContainerParentLanesOperation,\n ),\n );\n }\n\n listContainerDocuments(\n containerId: string,\n options?: ListContainerDocumentsOptions,\n ) {\n return dedupedRequest(\n this.containerDocumentListRequestsByKey,\n listContainerDocumentsRequestKey(containerId, options),\n () =>\n this.request<ListContainerDocumentsResponse>(\n containerDocuments.path(containerId, options),\n containerDocuments.isResponse,\n containerDocuments.method,\n undefined,\n undefined,\n listContainerDocumentsOperation,\n ),\n );\n }\n\n listContainerDocumentsResult(\n containerId: string,\n options?: ListContainerDocumentsOptions,\n requestOptions: RequestResultOptions = {},\n ): Promise<RequestResult<ListContainerDocumentsResponse>> {\n return this.requestResult(\n containerDocuments.path(containerId, options),\n containerDocuments.isResponse,\n containerDocuments.method,\n undefined,\n requestOptions,\n listContainerDocumentsOperation,\n );\n }\n\n unlinkDocument(\n documentId: string,\n input: DocumentLinkSetMutationRequest,\n options: RequestResultOptions = {},\n ) {\n this.invalidateDocumentAttribution(documentId);\n return this.request(\n documentUnlink.path(documentId),\n documentUnlink.isResponse,\n documentUnlink.method,\n JSON.stringify(input),\n options,\n unlinkDocumentOperation,\n ).finally(() => {\n this.invalidateDocumentAttribution(documentId);\n this.evictDocumentWriterProjection(documentId);\n });\n }\n\n unlinkDocumentResult(\n documentId: string,\n input: DocumentLinkSetMutationRequest,\n options: RequestResultOptions = {},\n ) {\n this.invalidateDocumentAttribution(documentId);\n return this.requestResult(\n documentUnlink.path(documentId),\n documentUnlink.isResponse,\n documentUnlink.method,\n JSON.stringify(input),\n options,\n unlinkDocumentOperation,\n ).finally(() => {\n this.invalidateDocumentAttribution(documentId);\n this.evictDocumentWriterProjection(documentId);\n });\n }\n\n purgeDocument(\n documentId: string,\n input: DocumentPurgeRequest,\n options: RequestResultOptions = {},\n ) {\n this.invalidateDocumentAttribution(documentId);\n return this.request(\n documentPurge.path(documentId),\n documentPurge.isResponse,\n documentPurge.method,\n JSON.stringify(input),\n options,\n purgeDocumentOperation,\n ).finally(() => {\n this.invalidateDocumentAttribution(documentId);\n this.evictDocumentWriterProjection(documentId);\n });\n }\n\n getDocumentPurgeProof(\n documentId: string,\n options?: DocumentPurgeProofOptions,\n requestOptions: RequestResultOptions = {},\n ) {\n return this.request(\n documentPurgeProof.path(documentId, options),\n documentPurgeProof.isResponse,\n documentPurgeProof.method,\n undefined,\n requestOptions,\n getDocumentPurgeProofOperation,\n );\n }\n\n syncDocument(\n documentId: string,\n input: DocumentSyncRequest,\n options: RequestResultOptions = {},\n ) {\n this.invalidateDocumentAttribution(documentId);\n const cachedBefore =\n this.documentWriterProjectionRequestsByDocumentId.get(documentId);\n return this.transport\n .request(\n documentSyncOperation,\n {\n body: input,\n params: { documentId },\n },\n options,\n )\n .then(async (response) => {\n if (response) {\n if (response.updates.length > 0) {\n this.documentAttachmentListRequestsByDocumentId.delete(documentId);\n }\n await evictWriterProjectionIfSyncChanged(\n this.documentWriterProjectionRequestsByDocumentId,\n documentId,\n response,\n () =>\n this.documentWriterProjectionResultsInFlightByDocumentId.delete(\n documentId,\n ),\n );\n } else {\n if (\n this.documentWriterProjectionRequestsByDocumentId.get(\n documentId,\n ) === cachedBefore\n ) {\n this.documentWriterProjectionRequestsByDocumentId.delete(\n documentId,\n );\n this.documentWriterProjectionResultsInFlightByDocumentId.delete(\n documentId,\n );\n }\n }\n return response;\n })\n .catch((error: unknown) => {\n if (\n this.documentWriterProjectionRequestsByDocumentId.get(documentId) ===\n cachedBefore\n ) {\n this.documentWriterProjectionRequestsByDocumentId.delete(documentId);\n this.documentWriterProjectionResultsInFlightByDocumentId.delete(\n documentId,\n );\n }\n throw error;\n })\n .finally(() => {\n this.invalidateDocumentAttribution(documentId);\n });\n }\n\n async syncDocumentResult(\n documentId: string,\n input: DocumentSyncRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<DocumentSyncResponse>> {\n this.invalidateDocumentAttribution(documentId);\n const cachedBefore =\n this.documentWriterProjectionRequestsByDocumentId.get(documentId);\n try {\n const result = await this.transport.requestResult(\n documentSyncOperation,\n { body: input, params: { documentId } },\n options,\n );\n if (result.ok) {\n if (result.data.updates.length > 0) {\n this.documentAttachmentListRequestsByDocumentId.delete(documentId);\n }\n await evictWriterProjectionIfSyncChanged(\n this.documentWriterProjectionRequestsByDocumentId,\n documentId,\n result.data,\n () =>\n this.documentWriterProjectionResultsInFlightByDocumentId.delete(\n documentId,\n ),\n );\n } else if (\n this.documentWriterProjectionRequestsByDocumentId.get(documentId) ===\n cachedBefore\n ) {\n this.documentWriterProjectionRequestsByDocumentId.delete(documentId);\n this.documentWriterProjectionResultsInFlightByDocumentId.delete(\n documentId,\n );\n }\n return result;\n } finally {\n this.invalidateDocumentAttribution(documentId);\n }\n }\n\n initiateMultipartBlobStage(input: InitiateMultipartBlobStageRequest) {\n return this.request(\n multipartInitiate.path,\n multipartInitiate.isResponse,\n multipartInitiate.method,\n JSON.stringify(input),\n undefined,\n initiateMultipartBlobStageOperation,\n );\n }\n\n getMultipartBlobStage(stageId: string) {\n return this.request(\n multipartGet.path(stageId),\n multipartGet.isResponse,\n multipartGet.method,\n undefined,\n undefined,\n getMultipartBlobStageOperation,\n );\n }\n\n uploadMultipartBlobPartBytes(\n stageId: string,\n partNumber: number,\n input: UploadMultipartBlobPartBytesRequest,\n ) {\n // Send the encrypted part as a File — not a raw Uint8Array and not a plain\n // Blob. CapacitorHttp (enabled on the native builds so API requests bypass the\n // WKWebView's broken cross-origin fetch) serializes request bodies across the\n // JS->native bridge in its convertBody(): a Uint8Array octet-stream body is\n // `TextDecoder().decode()`d to UTF-8 there — which corrupts encrypted\n // ciphertext (arbitrary, non-UTF-8 bytes) — and a plain Blob is not recognized\n // at all, falling through as JSON (`{}`). Only a File is read byte-for-byte\n // (readAsBinaryString -> base64), so the ciphertext survives the bridge intact\n // and the server's byte-length/SHA-256 validation passes. A File is a Blob, so\n // it is equally valid on the plain web fetch path (the operation-derived\n // Content-Type header still wins).\n return this.transport.requestBinaryRequest(\n uploadMultipartBlobPartBytesOperation,\n {\n headers: {\n [blobWireHeaderKeys.partByteLength]: input.byteLength.toString(),\n [blobWireHeaderKeys.partSha256]: input.sha256,\n [blobWireHeaderKeys.partUploadId]: input.uploadId,\n },\n body: input.encryptedBytes,\n params: { partNumber, stageId },\n },\n {\n encodeBody: (body) =>\n body instanceof File\n ? body\n : new File([body], \"encrypted-blob-part\", {\n type: \"application/octet-stream\",\n }),\n },\n );\n }\n\n completeMultipartBlobStage(\n stageId: string,\n input: CompleteMultipartBlobStageRequest,\n ) {\n return this.request(\n multipartComplete.path(stageId),\n multipartComplete.isResponse,\n multipartComplete.method,\n JSON.stringify(input),\n undefined,\n completeMultipartBlobStageOperation,\n );\n }\n\n getBlobBytes(blobId: string) {\n return getBlobBytes(this.transport, blobId);\n }\n\n bindBlobAttachment(\n blobId: string,\n input: BlobAttachmentBindRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n blobAttachmentBind.path(blobId),\n blobAttachmentBind.isResponse,\n blobAttachmentBind.method,\n JSON.stringify(input),\n options,\n bindBlobAttachmentOperation,\n )\n .then((response) => {\n if (response) {\n this.cacheBlobAttachmentBindResponse(response);\n } else {\n this.documentAttachmentListRequestsByDocumentId.clear();\n }\n return response;\n })\n .catch((error: unknown) => {\n this.documentAttachmentListRequestsByDocumentId.clear();\n throw error;\n });\n }\n\n detachBlobAttachment(\n blobId: string,\n bindingId: string,\n input: BlobAttachmentDetachRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n blobAttachmentDetach.path(blobId, bindingId),\n blobAttachmentDetach.isResponse,\n blobAttachmentDetach.method,\n JSON.stringify(input),\n options,\n detachBlobAttachmentOperation,\n )\n .then((response) => {\n if (response) {\n this.cacheBlobAttachmentDetachResponse(response);\n } else {\n this.documentAttachmentListRequestsByDocumentId.clear();\n }\n return response;\n })\n .catch((error: unknown) => {\n this.documentAttachmentListRequestsByDocumentId.clear();\n throw error;\n });\n }\n\n listDocumentAttachments(\n documentId: string,\n options: { refresh?: boolean } = {},\n ) {\n if (options.refresh) {\n this.documentAttachmentListRequestsByDocumentId.delete(documentId);\n }\n return cachedRequest(\n this.documentAttachmentListRequestsByDocumentId,\n documentId,\n () =>\n this.request(\n documentAttachmentsList.path(documentId),\n documentAttachmentsList.isResponse,\n documentAttachmentsList.method,\n undefined,\n undefined,\n listDocumentAttachmentsOperation,\n ),\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ApiClient.js","sourceRoot":"","sources":["ApiClient.ts"],"names":[],"mappings":"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","sourcesContent":["import { sign } from \"@tearleads/crypto\";\nimport type { NativeSubscriptionStore } from \"@tearleads/validators/billing\";\nimport {\n bindBlobAttachmentOperation,\n blobWireHeaderKeys,\n cancelStripeSubscriptionOperation,\n challengeOperation,\n claimNativeOrganizationSubscriptionOperation,\n completeMultipartBlobStageOperation,\n createContainerOperation,\n createContainerWithMetadataDocumentOperation,\n createDocumentOperation,\n createOrganizationOperation,\n createStripeCheckoutOperation,\n createStripeCheckoutSessionOperation,\n createStripePortalOperation,\n deleteContainerOperation,\n destroySessionOperation,\n detachBlobAttachmentOperation,\n documentSyncOperation,\n getContainerKekLogOperation,\n getContainerReplacementAuthorizationsOperation,\n getContainerWriterProjectionOperation,\n getDocumentPurgeProofOperation,\n getDocumentWriterProjectionOperation,\n getHealthOperation,\n getMultipartBlobStageOperation,\n getOrganizationBillingHistoryOperation,\n getOrganizationBillingManagementUrlOperation,\n getOrganizationBillingOperation,\n getOrganizationDataUsageOperation,\n getOrganizationNativePurchaseEligibilityOperation,\n getOrganizationPolicyHistoryOperation,\n getOrganizationReadModelOperation,\n getRootIdentityOperation,\n getRootOrganizationDataUsageOperation,\n getRootOrganizationOperation,\n getStripeCheckoutOptionsOperation,\n initiateMultipartBlobStageOperation,\n linkDocumentOperation,\n listContainerDocumentsOperation,\n listContainerParentLanesOperation,\n listDocumentAttachmentsOperation,\n listOrganizationGroupMembersOperation,\n listRootDataUsageReportOperation,\n listRootIdentitiesOperation,\n listRootIdentityOrganizationsOperation,\n listRootOrganizationIdentitiesOperation,\n listRootOrganizationsOperation,\n listSessionsOperation,\n logoutOperation,\n moveContainerOperation,\n purgeDocumentOperation,\n type RootIdentitiesQuery,\n type RootOrganizationPageQuery,\n type RootOrganizationsQuery,\n reciteContainerOperation,\n registerOperation,\n rekeyContainerOperation,\n revokeContainerOperation,\n shareContainerOperation,\n startOrganizationTrialOperation,\n unlinkDocumentOperation,\n updateOrganizationProfileOperation,\n updateOrganizationRosterEntryOperation,\n uploadMultipartBlobPartBytesOperation,\n userIdentityOperation,\n verifyOperation,\n webSocketTicketOperation,\n} from \"@tearleads/validators/operation\";\nimport type {\n BlobAttachmentBindRequest,\n BlobAttachmentDetachRequest,\n CommitOrganizationGroupPolicyRequest,\n CompleteMultipartBlobStageRequest,\n ContainerCreateWithMetadataDocumentRequest,\n ContainerMutationRequest,\n ContainerReciteRequest,\n ContainerRotationRequest,\n CreateOrganizationRequest,\n DocumentCreateRequest,\n DocumentLinkSetMutationRequest,\n DocumentPurgeRequest,\n DocumentSyncRequest,\n InitiateMultipartBlobStageRequest,\n ListContainerParentLanesRequest,\n RegistrationRequest,\n UpdateOrganizationProfileRequest,\n UpdateOrganizationRosterEntryRequest,\n} from \"@tearleads/validators/request\";\nimport type {\n BlobAttachmentBindResponse,\n BlobAttachmentDetachResponse,\n CommitOrganizationGroupPolicyResponse,\n ContainerCreateWithMetadataDocumentResponse,\n ContainerDeleteResponse,\n ContainerMutationResponse,\n ContainerRotationResponse,\n ContainerWriterProjectionResponse,\n DocumentCreateResponse,\n DocumentSyncResponse,\n DocumentWriterProjectionResponse,\n ListContainerDocumentsResponse,\n ListContainerParentLanesResponse,\n ListDocumentAttachmentsResponse,\n OrganizationDataUsageResponse,\n OrganizationPolicyHistoryResponse,\n OrganizationReadModelResponse,\n PrincipalPolicyBundleResponse,\n RootDataUsageReportResponse,\n RootIdentitiesResponse,\n RootIdentityDetailResponse,\n RootIdentityOrganizationsResponse,\n RootOrganizationDetailResponse,\n RootOrganizationIdentitiesResponse,\n RootOrganizationsResponse,\n UserIdentityResponse,\n} from \"@tearleads/validators/response\";\nimport { BoundedCache } from \"./ApiCache\";\nimport { ApiRequestRuntime } from \"./apiRequestRuntime\";\nimport {\n createOperationTransport,\n type OperationTransport,\n} from \"./operationTransportFactory\";\nimport type { PrincipalPolicyPageReadOptions } from \"./principalPolicyPages\";\nimport { PrincipalPolicyRequests } from \"./principalPolicyRequests\";\nimport { ProjectionHistoryTransport } from \"./projectionHistoryTransport\";\nimport {\n bindPrototypeMethods,\n cachedRequest,\n dedupedRequest,\n evictWriterProjectionIfSyncChanged,\n listContainerDocumentsRequestKey,\n listContainerParentLanesRequestKey,\n} from \"./requestInternals\";\nimport {\n destroySession as authDestroySession,\n listSessions as authListSessions,\n logout as authLogout,\n userIdentity as authUserIdentity,\n} from \"./routes/auth/session\";\nimport {\n bindBlobAttachment as blobAttachmentBind,\n detachBlobAttachment as blobAttachmentDetach,\n} from \"./routes/blobs/attachments\";\nimport {\n getBlobBytes,\n type UploadMultipartBlobPartBytesRequest,\n} from \"./routes/blobs/get\";\nimport {\n completeMultipartBlobStage as multipartComplete,\n getMultipartBlobStage as multipartGet,\n initiateMultipartBlobStage as multipartInitiate,\n} from \"./routes/blobs/multipart\";\nimport {\n containerCreate,\n containerCreateWithMetadataDocument,\n containerDelete,\n containerMove,\n containerRecite,\n containerRekey,\n containerRevoke,\n containerShare,\n} from \"./routes/containers/mutations\";\nimport {\n type ContainerKekLogOptions,\n containerDocuments,\n containerKekLog,\n containerParentLanes,\n} from \"./routes/containers/reads\";\nimport { listDocumentAttachments as documentAttachmentsList } from \"./routes/documents/attachments\";\nimport { DocumentAttributionRequests } from \"./routes/documents/attributionRequests\";\nimport {\n type DocumentPurgeProofOptions,\n documentCreate,\n documentLink,\n documentPurge,\n documentPurgeProof,\n documentUnlink,\n} from \"./routes/documents/mutations\";\nimport { organizationBilling } from \"./routes/organizations/billing\";\nimport { getOrganizationDataUsage as organizationDataUsage } from \"./routes/organizations/dataUsage\";\nimport { listOrganizationGroupMembers as groupMembers } from \"./routes/organizations/groupMembers\";\nimport { updateOrganizationProfile as profileUpdate } from \"./routes/organizations/profile\";\nimport { updateOrganizationRosterEntry as rosterUpdate } from \"./routes/organizations/roster\";\nimport { organizationStripeCheckout } from \"./routes/organizations/stripeCheckout\";\nimport {\n containerWriterProjection,\n documentWriterProjection,\n} from \"./routes/writerProjections\";\nimport type {\n HttpMethod,\n ListContainerDocumentsOptions,\n ListDocumentEditAttributionRangesOptions,\n OperationRequestFn,\n OperationRequestResultFn,\n RequestResult,\n RequestResultOptions,\n} from \"./types\";\nimport {\n CitingProjectionCache,\n evictWriterProjectionsCiting,\n} from \"./writerProjectionCitations\";\nimport { primeWriterProjectionSlot } from \"./writerProjectionPrime\";\nimport { writerProjectionRequests } from \"./writerProjectionRequests\";\n\ntype ExpiredHandler = () => boolean | Promise<boolean>;\ntype PaymentRequiredHandler = (organizationId: string | null) => void;\n\n// A joinable in-flight writer-projection result fetch, pinned to the value\n// slot and per-key invalidation stamp it started against. A caller may join\n// it only while both are unchanged — see writerProjectionResult.\ninterface InFlightWriterProjectionResult<T> {\n readonly invalidationStamp: number;\n readonly resultPromise: Promise<RequestResult<T>>;\n readonly slot: Promise<T | null> | undefined;\n}\n\n/** The rotations that may carry descendant rekeys, each with its operation. */\nconst CONTAINER_ROTATIONS = {\n move: { operation: moveContainerOperation, route: containerMove },\n rekey: { operation: rekeyContainerOperation, route: containerRekey },\n revoke: { operation: revokeContainerOperation, route: containerRevoke },\n} as const;\n\nexport class ApiClient {\n private readonly requestRuntime: ApiRequestRuntime;\n private readonly projectionHistory = new ProjectionHistoryTransport();\n private readonly containerDocumentListRequestsByKey = new Map<\n string,\n Promise<ListContainerDocumentsResponse | null>\n >();\n private readonly containerParentLaneRequestsByKey = new Map<\n string,\n Promise<ListContainerParentLanesResponse | null>\n >();\n private readonly containerWriterProjectionRequestsByContainerId =\n new CitingProjectionCache<ContainerWriterProjectionResponse>();\n private readonly documentWriterProjectionRequestsByDocumentId =\n new CitingProjectionCache<DocumentWriterProjectionResponse>();\n private readonly containerWriterProjectionResultsInFlightByContainerId =\n new Map<\n string,\n InFlightWriterProjectionResult<ContainerWriterProjectionResponse>\n >();\n private readonly documentWriterProjectionResultsInFlightByDocumentId =\n new Map<\n string,\n InFlightWriterProjectionResult<DocumentWriterProjectionResponse>\n >();\n private readonly documentAttachmentListRequestsByDocumentId =\n new BoundedCache<Promise<ListDocumentAttachmentsResponse | null>>();\n private readonly documentAttributionRequests: DocumentAttributionRequests;\n private readonly userIdentityRequestsByUserId = new BoundedCache<\n Promise<UserIdentityResponse | null>\n >();\n private readonly principalPolicyRequestsByKey = new BoundedCache<\n Promise<PrincipalPolicyBundleResponse | null>\n >();\n private readonly principalPolicyRequests: PrincipalPolicyRequests;\n private readonly transport: OperationTransport;\n private readonly request: OperationRequestFn;\n private readonly requestResult: OperationRequestResultFn;\n constructor(baseUrl?: string | null) {\n bindPrototypeMethods(this, ApiClient.prototype);\n this.requestRuntime = new ApiRequestRuntime(baseUrl);\n this.principalPolicyRequests = new PrincipalPolicyRequests(\n this.requestRuntime,\n this.principalPolicyRequestsByKey,\n this.clearWriterProjectionCaches,\n );\n const projectionRequests = writerProjectionRequests(this.requestRuntime);\n this.request = this.projectionHistory.wrapRequest(\n projectionRequests.request,\n );\n this.requestResult = this.projectionHistory.wrapRequestResult(\n projectionRequests.requestResult,\n );\n this.transport = createOperationTransport(\n this.requestRuntime.responseRequest,\n );\n this.documentAttributionRequests = new DocumentAttributionRequests(\n this.transport,\n );\n }\n private clearAuthScopedCaches(): void {\n this.projectionHistory.clear();\n this.containerDocumentListRequestsByKey.clear();\n this.containerParentLaneRequestsByKey.clear();\n this.documentAttachmentListRequestsByDocumentId.clear();\n this.documentAttributionRequests.clear();\n this.containerWriterProjectionRequestsByContainerId.clear();\n this.documentWriterProjectionRequestsByDocumentId.clear();\n this.containerWriterProjectionResultsInFlightByContainerId.clear();\n this.documentWriterProjectionResultsInFlightByDocumentId.clear();\n this.userIdentityRequestsByUserId.clear();\n this.principalPolicyRequestsByKey.clear();\n }\n\n private invalidateDocumentAttribution(documentId: string): void {\n this.documentAttributionRequests.invalidate(documentId);\n }\n\n clearWriterProjectionCaches(): void {\n this.documentAttachmentListRequestsByDocumentId.clear();\n this.containerWriterProjectionRequestsByContainerId.clear();\n this.documentWriterProjectionRequestsByDocumentId.clear();\n this.containerWriterProjectionResultsInFlightByContainerId.clear();\n this.documentWriterProjectionResultsInFlightByDocumentId.clear();\n }\n\n /** After a peer changed these containers' manifests; see the helper. */\n evictWriterProjectionsCiting(containerIds: readonly string[]): void {\n evictWriterProjectionsCiting(new Set(containerIds), {\n attachmentLists: this.documentAttachmentListRequestsByDocumentId,\n containers: {\n cache: this.containerWriterProjectionRequestsByContainerId,\n inFlight: this.containerWriterProjectionResultsInFlightByContainerId,\n },\n documents: {\n cache: this.documentWriterProjectionRequestsByDocumentId,\n inFlight: this.documentWriterProjectionResultsInFlightByDocumentId,\n },\n });\n }\n\n evictUserIdentity(userId: string): void {\n this.userIdentityRequestsByUserId.delete(userId);\n }\n\n /**\n * Evict a document's projection and attachment envelopes together: link/unlink\n * changes both. A stale attachment list would regenerate an already committed\n * destination wrap during a move. Unrelated documents keep their caches.\n */\n evictDocumentWriterProjection(documentId: string): void {\n this.documentAttachmentListRequestsByDocumentId.delete(documentId);\n this.documentWriterProjectionRequestsByDocumentId.delete(documentId);\n this.documentWriterProjectionResultsInFlightByDocumentId.delete(documentId);\n }\n\n /**\n * Container counterpart of {@link evictDocumentWriterProjection}: evict a\n * single container's cached writer projection. A stale-projection create\n * retry only implicates the container it is creating under, so it evicts just\n * that entry rather than clearing the whole projection cache.\n */\n evictContainerWriterProjection(containerId: string): void {\n this.containerWriterProjectionRequestsByContainerId.delete(containerId);\n this.containerWriterProjectionResultsInFlightByContainerId.delete(\n containerId,\n );\n }\n\n private updateCachedDocumentAttachmentList(\n documentId: string,\n update: (\n attachments: ListDocumentAttachmentsResponse,\n ) => ListDocumentAttachmentsResponse,\n ): void {\n const cached =\n this.documentAttachmentListRequestsByDocumentId.get(documentId);\n if (!cached) {\n return;\n }\n\n let next: Promise<ListDocumentAttachmentsResponse | null>;\n next = cached\n .then((attachments) => {\n if (!attachments) {\n if (\n this.documentAttachmentListRequestsByDocumentId.get(documentId) ===\n next\n ) {\n this.documentAttachmentListRequestsByDocumentId.delete(documentId);\n }\n return attachments;\n }\n\n return update(attachments);\n })\n .catch(() => {\n // The underlying list fetch failed. Drop this derived cache entry so the\n // next read refetches, and resolve to null (the cache's miss semantics)\n // rather than rethrowing: nothing awaits this derived promise directly,\n // so a rethrow would surface as an unhandled rejection. Callers already\n // awaiting the original request still observe its rejection.\n if (\n this.documentAttachmentListRequestsByDocumentId.get(documentId) ===\n next\n ) {\n this.documentAttachmentListRequestsByDocumentId.delete(documentId);\n }\n return null;\n });\n this.documentAttachmentListRequestsByDocumentId.set(documentId, next);\n }\n\n private cacheBlobAttachmentBindResponse(\n response: BlobAttachmentBindResponse,\n ): void {\n const {\n documentId,\n writeHeaderHash: _writeHeaderHash,\n ...binding\n } = response;\n this.updateCachedDocumentAttachmentList(documentId, (attachments) => [\n ...attachments.filter(\n (cachedBinding) => cachedBinding.slotId !== response.slotId,\n ),\n binding,\n ]);\n }\n\n private cacheBlobAttachmentDetachResponse(\n response: BlobAttachmentDetachResponse,\n ): void {\n this.updateCachedDocumentAttachmentList(\n response.documentId,\n (attachments) =>\n attachments.filter(\n (binding) => binding.bindingId !== response.bindingId,\n ),\n );\n }\n\n setOnError(handler: ((message: string) => void) | null): void {\n this.requestRuntime.setOnError(handler);\n }\n\n setOnNetworkError(handler: (() => void) | null): void {\n this.requestRuntime.setOnNetworkError(handler);\n }\n\n setOnNetworkSuccess(handler: (() => void) | null): void {\n this.requestRuntime.setOnNetworkSuccess(handler);\n }\n\n setOnApiVersion(handler: ((version: number) => void) | null): void {\n this.requestRuntime.setOnApiVersion(handler);\n }\n\n setOnSessionExpired(handler: ExpiredHandler | null): void {\n this.requestRuntime.setOnSessionExpired(handler);\n }\n\n setOnPaymentRequired(handler: PaymentRequiredHandler | null): void {\n this.requestRuntime.setOnPaymentRequired(handler);\n }\n\n setAuthToken(token: string | null): void {\n if (this.requestRuntime.setAuthToken(token)) {\n this.clearAuthScopedCaches();\n }\n }\n\n getAuthToken(): string | null {\n return this.requestRuntime.getAuthToken();\n }\n\n getRequestFailure(input: { method: HttpMethod; path: string }) {\n return this.requestRuntime.getRequestFailure(input);\n }\n\n async requestWebSocketTicket(): Promise<string | null> {\n const response = await this.transport.request(webSocketTicketOperation, {\n params: {},\n });\n return response?.ticket ?? null;\n }\n\n getHealth() {\n return this.transport.request(getHealthOperation, { params: {} });\n }\n\n registerUser(\n userId: string,\n organizationId: string,\n rootContainerId: string,\n signingPublicKey: Uint8Array,\n encapsulationPublicKey: Uint8Array,\n initialAdminGroup: RegistrationRequest[\"initialAdminGroup\"],\n initialMemberGroup: RegistrationRequest[\"initialMemberGroup\"],\n initialOrganizationPolicy: RegistrationRequest[\"initialOrganizationPolicy\"],\n initialRootContainer: RegistrationRequest[\"initialRootContainer\"],\n initialRootMetadataDocument: RegistrationRequest[\"initialRootMetadataDocument\"],\n initialRosterProfileContainer: RegistrationRequest[\"initialRosterProfileContainer\"],\n initialRosterProfileDocument: RegistrationRequest[\"initialRosterProfileDocument\"],\n initialOrganizationMetadataContainer: RegistrationRequest[\"initialOrganizationMetadataContainer\"],\n initialOrganizationProfileDocument?: RegistrationRequest[\"initialOrganizationProfileDocument\"],\n initialSystemContainers?: RegistrationRequest[\"initialSystemContainers\"],\n ) {\n return this.transport.request(registerOperation, {\n body: {\n userId,\n organizationId,\n rootContainerId,\n signingPublicKey: Array.from(signingPublicKey),\n encapsulationPublicKey: Array.from(encapsulationPublicKey),\n initialAdminGroup,\n initialMemberGroup,\n initialOrganizationPolicy,\n initialRootContainer,\n initialRootMetadataDocument,\n initialRosterProfileContainer,\n initialRosterProfileDocument,\n initialOrganizationMetadataContainer,\n initialOrganizationProfileDocument,\n initialSystemContainers,\n },\n params: {},\n });\n }\n\n createOrganization(request: CreateOrganizationRequest) {\n return this.transport.request(createOrganizationOperation, {\n body: request,\n params: {},\n });\n }\n\n async authenticate(fingerprint: string, secretKey: Uint8Array) {\n const challenge = await this.transport.request(\n challengeOperation,\n { body: { fingerprint }, params: {} },\n { retryOnSessionExpired: false },\n );\n if (!challenge) return null;\n\n return this.authenticateWithChallenge(\n fingerprint,\n secretKey,\n challenge.challenge,\n );\n }\n\n async authenticateWithChallenge(\n fingerprint: string,\n secretKey: Uint8Array,\n challengeHex: string,\n ) {\n const signed = sign(\n this.requestRuntime.authChallengeBytes(challengeHex, fingerprint),\n secretKey,\n );\n const response = await this.transport.request(\n verifyOperation,\n {\n body: { fingerprint, signature: Array.from(signed) },\n params: {},\n },\n { retryOnSessionExpired: false },\n );\n\n return response?.authenticated ? response : null;\n }\n\n getUserIdentity(userId: string) {\n return cachedRequest(this.userIdentityRequestsByUserId, userId, () =>\n this.request(\n authUserIdentity.path(userId),\n authUserIdentity.isResponse,\n authUserIdentity.method,\n undefined,\n undefined,\n userIdentityOperation,\n ),\n );\n }\n\n getUserIdentityRequestFailure(userId: string) {\n return this.getRequestFailure({\n method: authUserIdentity.method,\n path: authUserIdentity.path(userId),\n });\n }\n\n listSessions() {\n return this.request(\n authListSessions.path,\n authListSessions.isResponse,\n authListSessions.method,\n undefined,\n undefined,\n listSessionsOperation,\n );\n }\n\n destroySession(sessionId: string) {\n return this.request(\n authDestroySession.path(sessionId),\n authDestroySession.isResponse,\n authDestroySession.method,\n undefined,\n undefined,\n destroySessionOperation,\n );\n }\n\n logout() {\n return this.request(\n authLogout.path,\n authLogout.isResponse,\n authLogout.method,\n undefined,\n { retryOnSessionExpired: false },\n logoutOperation,\n );\n }\n\n getPrincipalPolicyPages(\n principalType: \"group\" | \"organization\",\n principalId: string,\n options: PrincipalPolicyPageReadOptions = {},\n ) {\n return this.principalPolicyRequests.pages(\n principalType,\n principalId,\n options,\n );\n }\n\n getProjectionPolicyHistoryPages(\n ...args: Parameters<PrincipalPolicyRequests[\"publicPages\"]>\n ) {\n return this.principalPolicyRequests.publicPages(...args);\n }\n\n getCurrentPrincipalPolicy(\n ...args: Parameters<PrincipalPolicyRequests[\"get\"]>\n ) {\n return this.principalPolicyRequests.get(...args);\n }\n\n putPrincipalPolicy(...args: Parameters<PrincipalPolicyRequests[\"put\"]>) {\n return this.principalPolicyRequests.put(...args);\n }\n\n /** Preserves unknown outcomes for authored organization directory writes. */\n putPrincipalPolicyResult(\n ...args: Parameters<PrincipalPolicyRequests[\"putResult\"]>\n ) {\n return this.principalPolicyRequests.putResult(...args);\n }\n\n commitOrganizationGroupPolicy(\n organizationId: string,\n groupId: string,\n input: CommitOrganizationGroupPolicyRequest,\n ) {\n return this.commitOrganizationGroupPolicyResult(\n organizationId,\n groupId,\n input,\n ).then((result) => (result.ok ? result.data : null));\n }\n\n /**\n * Status-bearing group policy commit. A rematerialized rotation the server\n * refuses for stranding a granted path names the descendant rekeys the batch\n * must carry, which the plain method collapses to null.\n */\n async commitOrganizationGroupPolicyResult(\n organizationId: string,\n groupId: string,\n input: CommitOrganizationGroupPolicyRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<CommitOrganizationGroupPolicyResponse>> {\n return this.principalPolicyRequests.commitResult(\n organizationId,\n groupId,\n input,\n options,\n );\n }\n\n getOrganizationPolicyHistoryResult(\n organizationId: string,\n stateHash: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<OrganizationPolicyHistoryResponse>> {\n return this.transport.requestResult(\n getOrganizationPolicyHistoryOperation,\n { params: { organizationId }, query: { stateHash } },\n options,\n );\n }\n\n getOrganizationReadModelResult(\n organizationId: string,\n cursor?: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<OrganizationReadModelResponse>> {\n return this.transport.requestResult(\n getOrganizationReadModelOperation,\n {\n params: { organizationId },\n query: { cursor },\n },\n options,\n );\n }\n\n getRootOrganizationDataUsageResult(\n organizationId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<OrganizationDataUsageResponse>> {\n return this.transport.requestResult(\n getRootOrganizationDataUsageOperation,\n { params: { organizationId } },\n options,\n );\n }\n listRootDataUsageReportResult(\n query: RootOrganizationsQuery = {},\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootDataUsageReportResponse>> {\n return this.transport.requestResult(\n listRootDataUsageReportOperation,\n { params: {}, query },\n options,\n );\n }\n\n listRootOrganizationsResult(\n query: RootOrganizationsQuery = {},\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootOrganizationsResponse>> {\n return this.transport.requestResult(\n listRootOrganizationsOperation,\n { params: {}, query },\n options,\n );\n }\n\n getRootOrganizationResult(\n organizationId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootOrganizationDetailResponse>> {\n return this.transport.requestResult(\n getRootOrganizationOperation,\n { params: { organizationId } },\n options,\n );\n }\n\n listRootOrganizationIdentitiesResult(\n organizationId: string,\n query: RootOrganizationPageQuery = {},\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootOrganizationIdentitiesResponse>> {\n return this.transport.requestResult(\n listRootOrganizationIdentitiesOperation,\n { params: { organizationId }, query },\n options,\n );\n }\n\n listRootIdentitiesResult(\n query: RootIdentitiesQuery = {},\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootIdentitiesResponse>> {\n return this.transport.requestResult(\n listRootIdentitiesOperation,\n { params: {}, query },\n options,\n );\n }\n\n getRootIdentityResult(\n userId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootIdentityDetailResponse>> {\n return this.transport.requestResult(\n getRootIdentityOperation,\n { params: { userId } },\n options,\n );\n }\n\n listRootIdentityOrganizationsResult(\n userId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<RootIdentityOrganizationsResponse>> {\n return this.transport.requestResult(\n listRootIdentityOrganizationsOperation,\n { params: { userId } },\n options,\n );\n }\n\n getOrganizationDataUsageResult(\n organizationId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<OrganizationDataUsageResponse>> {\n return this.requestResult(\n organizationDataUsage.path(organizationId),\n organizationDataUsage.isResponse,\n organizationDataUsage.method,\n undefined,\n options,\n getOrganizationDataUsageOperation,\n );\n }\n\n getOrganizationBilling(organizationId: string) {\n return this.request(\n organizationBilling.get.path(organizationId),\n organizationBilling.get.isResponse,\n organizationBilling.get.method,\n undefined,\n undefined,\n getOrganizationBillingOperation,\n );\n }\n\n getOrganizationBillingHistory(organizationId: string) {\n return this.request(\n organizationBilling.history.path(organizationId),\n organizationBilling.history.isResponse,\n organizationBilling.history.method,\n undefined,\n undefined,\n getOrganizationBillingHistoryOperation,\n );\n }\n\n getOrganizationBillingManagementUrl(organizationId: string) {\n return this.request(\n organizationBilling.managementUrl.path(organizationId),\n organizationBilling.managementUrl.isResponse,\n organizationBilling.managementUrl.method,\n undefined,\n undefined,\n getOrganizationBillingManagementUrlOperation,\n );\n }\n\n getOrganizationNativePurchaseEligibility(\n organizationId: string,\n store: NativeSubscriptionStore,\n ) {\n return this.request(\n organizationBilling.nativeEligibility.path(organizationId, store),\n organizationBilling.nativeEligibility.isResponse,\n organizationBilling.nativeEligibility.method,\n undefined,\n undefined,\n getOrganizationNativePurchaseEligibilityOperation,\n );\n }\n\n claimNativeOrganizationSubscription(\n organizationId: string,\n store: NativeSubscriptionStore,\n ) {\n return this.requestResult(\n organizationBilling.nativeClaim.path(organizationId, store),\n organizationBilling.nativeClaim.isResponse,\n organizationBilling.nativeClaim.method,\n undefined,\n { reportErrors: false },\n claimNativeOrganizationSubscriptionOperation,\n );\n }\n\n /** Empty options means unconfigured; 403/409 remain errors. */\n getStripeCheckoutOptions(\n organizationId: string,\n options: RequestResultOptions = {},\n ) {\n return this.requestResult(\n organizationStripeCheckout.options.path(organizationId),\n organizationStripeCheckout.options.isResponse,\n organizationStripeCheckout.options.method,\n undefined,\n options,\n getStripeCheckoutOptionsOperation,\n );\n }\n\n /** Starts or resumes inline checkout; an existing subscription returns 409. */\n createStripeCheckout(organizationId: string) {\n return this.request(\n organizationStripeCheckout.checkout.path(organizationId),\n organizationStripeCheckout.checkout.isResponse,\n organizationStripeCheckout.checkout.method,\n undefined,\n undefined,\n createStripeCheckoutOperation,\n );\n }\n\n /** Opens hosted checkout; a null URL means unavailable or ineligible. */\n createStripeCheckoutSession(organizationId: string, returnUrl: string) {\n return this.request(\n organizationStripeCheckout.checkoutSession.path(organizationId),\n organizationStripeCheckout.checkoutSession.isResponse,\n organizationStripeCheckout.checkoutSession.method,\n JSON.stringify(\n organizationStripeCheckout.checkoutSession.body(returnUrl),\n ),\n undefined,\n createStripeCheckoutSessionOperation,\n );\n }\n\n /** Opens Stripe's subscription-management portal for the organization. */\n createStripePortal(organizationId: string, returnUrl: string) {\n return this.request(\n organizationStripeCheckout.portal.path(organizationId),\n organizationStripeCheckout.portal.isResponse,\n organizationStripeCheckout.portal.method,\n JSON.stringify(organizationStripeCheckout.portal.body(returnUrl)),\n undefined,\n createStripePortalOperation,\n );\n }\n\n /** Schedules period-end cancellation; any non-2xx resolves null. */\n cancelStripeSubscription(organizationId: string) {\n return this.request(\n organizationStripeCheckout.cancel.path(organizationId),\n organizationStripeCheckout.cancel.isResponse,\n organizationStripeCheckout.cancel.method,\n undefined,\n undefined,\n cancelStripeSubscriptionOperation,\n );\n }\n\n startOrganizationTrial(organizationId: string) {\n return this.request(\n organizationBilling.startTrial.path(organizationId),\n organizationBilling.startTrial.isResponse,\n organizationBilling.startTrial.method,\n undefined,\n undefined,\n startOrganizationTrialOperation,\n );\n }\n\n updateOrganizationRosterEntry(\n organizationId: string,\n userId: string,\n input: UpdateOrganizationRosterEntryRequest,\n ) {\n return this.request(\n rosterUpdate.path(organizationId, userId),\n rosterUpdate.isResponse,\n rosterUpdate.method,\n JSON.stringify(input),\n { expectedPaymentRequiredOrganizationId: organizationId },\n updateOrganizationRosterEntryOperation,\n );\n }\n\n updateOrganizationProfile(\n organizationId: string,\n input: UpdateOrganizationProfileRequest,\n ) {\n return this.request(\n profileUpdate.path(organizationId),\n profileUpdate.isResponse,\n profileUpdate.method,\n JSON.stringify(input),\n { expectedPaymentRequiredOrganizationId: organizationId },\n updateOrganizationProfileOperation,\n );\n }\n\n createOrganizationGroup(\n ...args: Parameters<PrincipalPolicyRequests[\"createResult\"]>\n ) {\n return this.createOrganizationGroupResult(...args).then((result) =>\n result.ok ? result.data : null,\n );\n }\n\n createOrganizationGroupResult(\n ...args: Parameters<PrincipalPolicyRequests[\"createResult\"]>\n ) {\n return this.principalPolicyRequests.createResult(...args);\n }\n\n deleteOrganizationGroup(\n ...args: Parameters<PrincipalPolicyRequests[\"deleteResult\"]>\n ) {\n return this.deleteOrganizationGroupResult(...args).then((result) =>\n result.ok ? result.data : null,\n );\n }\n\n deleteOrganizationGroupResult(\n ...args: Parameters<PrincipalPolicyRequests[\"deleteResult\"]>\n ) {\n return this.principalPolicyRequests.deleteResult(...args);\n }\n\n listOrganizationGroupMembers(organizationId: string, groupId: string) {\n return this.request(\n groupMembers.path(organizationId, groupId),\n groupMembers.isResponse,\n groupMembers.method,\n undefined,\n undefined,\n listOrganizationGroupMembersOperation,\n );\n }\n\n createDocument(\n input: DocumentCreateRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n documentCreate.path,\n documentCreate.isResponse,\n documentCreate.method,\n JSON.stringify(input),\n options,\n createDocumentOperation,\n );\n }\n\n createDocumentResult(\n input: DocumentCreateRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<DocumentCreateResponse>> {\n return this.requestResult(\n documentCreate.path,\n documentCreate.isResponse,\n documentCreate.method,\n JSON.stringify(input),\n options,\n createDocumentOperation,\n );\n }\n\n getContainerWriterProjection(containerId: string) {\n return cachedRequest(\n this.containerWriterProjectionRequestsByContainerId,\n containerId,\n () =>\n this.request(\n containerWriterProjection.path(containerId),\n containerWriterProjection.isResponseFor(containerId),\n containerWriterProjection.method,\n undefined,\n undefined,\n getContainerWriterProjectionOperation,\n ),\n );\n }\n\n getContainerReplacementAuthorizationsResult(\n containerId: string,\n replacesOrganizationId: string,\n ) {\n return this.transport.requestResult(\n getContainerReplacementAuthorizationsOperation,\n { params: { containerId, replacesOrganizationId } },\n { reportErrors: false },\n );\n }\n\n /**\n * The append-only rotation log for one container — the rebuild/repair\n * read path. Never cached: it is fetched exactly when the served keyring\n * failed verification and the ground truth is needed. A historical keyring\n * is O(its epoch) bytes, so at most one ships per request, named by\n * `keyringForEpoch`.\n */\n getContainerKekLog(\n containerId: string,\n options: ContainerKekLogOptions = {},\n ) {\n return this.request(\n containerKekLog.path(containerId, options),\n containerKekLog.isResponse,\n containerKekLog.method,\n undefined,\n undefined,\n getContainerKekLogOperation,\n );\n }\n\n getContainerWriterProjectionResult(\n containerId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerWriterProjectionResponse>> {\n return this.writerProjectionResult(\n this.containerWriterProjectionRequestsByContainerId,\n this.containerWriterProjectionResultsInFlightByContainerId,\n containerId,\n containerWriterProjection.path(containerId),\n containerWriterProjection.isResponseFor(containerId),\n options,\n getContainerWriterProjectionOperation,\n );\n }\n\n // Shared by the writer-projection result variants: coalesce concurrent\n // result callers onto one in-flight fetch, reuse a cached success, fetch a\n // result otherwise, and reconcile the cache without ever clobbering an entry\n // that changed while the fetch was in flight.\n private writerProjectionResult<T>(\n cache: BoundedCache<Promise<T | null>>,\n inFlightResults: Map<string, InFlightWriterProjectionResult<T>>,\n cacheKey: string,\n path: string,\n validator: (value: unknown) => value is T,\n options: RequestResultOptions,\n failureOperation: Parameters<OperationRequestFn>[5],\n ): Promise<RequestResult<T>> {\n // Request-affecting options make the response caller-specific: run the\n // request directly with the caller's options, join no shared fetch, and\n // never publish the outcome to the shared caches. Only reporting-only\n // callers below participate in coalescing and cache warming.\n if (\n options.headers !== undefined ||\n options.retryOnSessionExpired !== undefined\n ) {\n return this.requestResult(\n path,\n validator,\n \"GET\",\n undefined,\n options,\n failureOperation,\n );\n }\n\n // A concurrent burst shares one fetch — failure included — so it cannot\n // repeat the HTTP request or the 402 billing signal. The entry lives only\n // while the fetch is in flight: failures are shared, never cached, so a\n // later retry refetches. An in-flight fetch is joinable only while the\n // value slot and per-key invalidation stamp it started against are\n // unchanged: a prime, a completed plain GET, or an eviction of THIS id\n // that lands mid-flight makes the older fetch unadoptable, so a later\n // caller reads the current cache state (or fetches fresh) instead of\n // joining a fetch that predates it — while invalidations of other ids\n // leave the coalescing intact. Eviction and priming also delete the\n // entry outright; the identity guard keeps a late settle from deleting a\n // successor's entry.\n //\n // The shared fetch itself is always silent; each caller applies its OWN\n // reporting policy to the shared outcome below. Coalescing therefore\n // never lets one caller's reportErrors suppress (or force) another's,\n // and caller options never reach the request — the fetch takes none.\n const slot = cache.get(cacheKey);\n const invalidationStamp = cache.invalidationStamp(cacheKey);\n const inFlight = inFlightResults.get(cacheKey);\n let shared: Promise<RequestResult<T>>;\n if (\n inFlight &&\n inFlight.slot === slot &&\n inFlight.invalidationStamp === invalidationStamp\n ) {\n shared = inFlight.resultPromise;\n } else {\n const entry: InFlightWriterProjectionResult<T> = {\n invalidationStamp,\n resultPromise: this.fetchWriterProjectionResult(\n cache,\n cacheKey,\n path,\n validator,\n failureOperation,\n ).finally(() => {\n if (inFlightResults.get(cacheKey) === entry) {\n inFlightResults.delete(cacheKey);\n }\n }),\n slot,\n };\n inFlightResults.set(cacheKey, entry);\n shared = entry.resultPromise;\n }\n\n if (options.reportErrors === false) {\n return shared;\n }\n return shared.then((result) => {\n if (!result.ok) {\n result.report();\n }\n return result;\n });\n }\n\n // The fetch half of writerProjectionResult. Cache reconciliation guards\n // against both mid-flight slot replacement (identity comparison) and\n // mid-flight eviction of an empty slot (the per-key invalidation stamp),\n // so a projection an eviction (e.g. after a revoke) meant to drop is never\n // re-cached.\n private async fetchWriterProjectionResult<T>(\n cache: BoundedCache<Promise<T | null>>,\n cacheKey: string,\n path: string,\n validator: (value: unknown) => value is T,\n failureOperation: Parameters<OperationRequestFn>[5],\n ): Promise<RequestResult<T>> {\n let cached = cache.get(cacheKey);\n while (cached) {\n try {\n const data = await cached;\n if (data) {\n return { data, ok: true };\n }\n } catch {\n // A rejected shared entry is reconciled by its own settle handler;\n // fall through either way.\n }\n // The awaited entry settled empty. Re-read the slot before fetching: a\n // newer entry installed while we awaited must be reused, not fetched\n // over — the set below would otherwise clobber it.\n const current = cache.get(cacheKey);\n if (current === cached) {\n break;\n }\n cached = current;\n }\n\n // The plain value cache never sees this fetch while it is in flight: a\n // published always-silent entry would hand a concurrent PLAIN caller a\n // null without its normal error reporting. Plain callers keep their own\n // fetch-and-report behavior instead, and only a success is published.\n // Always silent here: reporting is per-caller in writerProjectionResult,\n // and taking no caller options is what guarantees nothing\n // request-affecting can be smuggled into the shared fetch.\n const invalidationStamp = cache.invalidationStamp(cacheKey);\n const result = await this.requestResult(\n path,\n validator,\n \"GET\",\n undefined,\n {\n reportErrors: false,\n },\n failureOperation,\n );\n\n if (result.ok) {\n // Publish the success unless the slot changed or this id was\n // invalidated mid-flight. The stamp check is what makes an eviction of\n // THIS id visible even when the slot was empty before and after the\n // flight — the case the identity comparison alone cannot see — and it\n // never caches a projection an eviction meant to drop.\n if (\n cache.get(cacheKey) === cached &&\n cache.invalidationStamp(cacheKey) === invalidationStamp\n ) {\n cache.set(cacheKey, Promise.resolve(result.data));\n }\n } else if (cached && cache.get(cacheKey) === cached) {\n // The adopted entry settled empty and the fetch confirmed there is\n // nothing to serve: drop it so a later read refetches.\n cache.delete(cacheKey);\n }\n\n return result;\n }\n\n createContainer(\n input: ContainerMutationRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerCreate.path,\n containerCreate.isResponse,\n containerCreate.method,\n JSON.stringify(input),\n options,\n createContainerOperation,\n );\n }\n\n async createContainerResult(\n input: ContainerMutationRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerMutationResponse>> {\n return this.requestResult(\n containerCreate.path,\n containerCreate.isResponse,\n containerCreate.method,\n JSON.stringify(input),\n options,\n createContainerOperation,\n );\n }\n\n createContainerWithMetadataDocument(\n input: ContainerCreateWithMetadataDocumentRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerCreateWithMetadataDocument.path,\n containerCreateWithMetadataDocument.isResponse,\n containerCreateWithMetadataDocument.method,\n JSON.stringify(input),\n options,\n createContainerWithMetadataDocumentOperation,\n );\n }\n\n createContainerWithMetadataDocumentResult(\n input: ContainerCreateWithMetadataDocumentRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerCreateWithMetadataDocumentResponse>> {\n return this.requestResult(\n containerCreateWithMetadataDocument.path,\n containerCreateWithMetadataDocument.isResponse,\n containerCreateWithMetadataDocument.method,\n JSON.stringify(input),\n options,\n createContainerWithMetadataDocumentOperation,\n );\n }\n\n shareContainer(\n containerId: string,\n input: ContainerMutationRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerShare.path(containerId),\n containerShare.isResponse,\n containerShare.method,\n JSON.stringify(input),\n options,\n shareContainerOperation,\n ).finally(() => {\n this.clearWriterProjectionCaches();\n });\n }\n\n revokeContainer(\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerRevoke.path(containerId),\n containerRevoke.isResponse,\n containerRevoke.method,\n JSON.stringify(input),\n options,\n revokeContainerOperation,\n ).finally(() => {\n this.clearWriterProjectionCaches();\n });\n }\n\n rekeyContainer(\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerRekey.path(containerId),\n containerRekey.isResponse,\n containerRekey.method,\n JSON.stringify(input),\n options,\n rekeyContainerOperation,\n ).finally(() => {\n this.clearWriterProjectionCaches();\n });\n }\n\n /**\n * Status-bearing rotations: a caller that must tell a permanent refusal (403\n * once ancestor write access is revoked, 402) from a transient 5xx or an\n * offline blip cannot do so through the plain methods, which collapse both to\n * null. They are also how a rotation learns which descendant rekeys it must\n * carry.\n */\n rekeyContainerResult(\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerRotationResponse>> {\n return this.rotationResult(\"rekey\", containerId, input, options);\n }\n\n revokeContainerResult(\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerRotationResponse>> {\n return this.rotationResult(\"revoke\", containerId, input, options);\n }\n\n moveContainerResult(\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerRotationResponse>> {\n return this.rotationResult(\"move\", containerId, input, options);\n }\n\n private async rotationResult(\n rotation: keyof typeof CONTAINER_ROTATIONS,\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions,\n ): Promise<RequestResult<ContainerRotationResponse>> {\n const { operation, route } = CONTAINER_ROTATIONS[rotation];\n try {\n return await this.requestResult(\n route.path(containerId),\n route.isResponse,\n route.method,\n JSON.stringify(input),\n options,\n operation,\n );\n } finally {\n this.clearWriterProjectionCaches();\n }\n }\n\n reciteContainer(\n containerId: string,\n input: ContainerReciteRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerRecite.path(containerId),\n containerRecite.isResponse,\n containerRecite.method,\n JSON.stringify(input),\n options,\n reciteContainerOperation,\n ).finally(() => this.clearWriterProjectionCaches());\n }\n\n moveContainer(\n containerId: string,\n input: ContainerRotationRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n containerMove.path(containerId),\n containerMove.isResponse,\n containerMove.method,\n JSON.stringify(input),\n options,\n moveContainerOperation,\n ).finally(() => {\n this.clearWriterProjectionCaches();\n });\n }\n\n deleteContainer(containerId: string, options: RequestResultOptions = {}) {\n return this.request(\n containerDelete.path(containerId),\n containerDelete.isResponse,\n containerDelete.method,\n undefined,\n options,\n deleteContainerOperation,\n ).finally(() => {\n this.clearWriterProjectionCaches();\n });\n }\n\n deleteContainerResult(\n containerId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<ContainerDeleteResponse>> {\n return this.requestResult(\n containerDelete.path(containerId),\n containerDelete.isResponse,\n containerDelete.method,\n undefined,\n options,\n deleteContainerOperation,\n ).finally(() => {\n this.clearWriterProjectionCaches();\n });\n }\n\n getDocumentWriterProjection(documentId: string) {\n return cachedRequest(\n this.documentWriterProjectionRequestsByDocumentId,\n documentId,\n () =>\n this.request(\n documentWriterProjection.path(documentId),\n documentWriterProjection.isResponseFor(documentId),\n documentWriterProjection.method,\n undefined,\n undefined,\n getDocumentWriterProjectionOperation,\n ),\n );\n }\n\n getDocumentEditAttribution(documentId: string, requestKey = \"\") {\n return this.documentAttributionRequests.get(documentId, requestKey);\n }\n\n listDocumentEditAttributionRanges(\n documentId: string,\n options: ListDocumentEditAttributionRangesOptions = {},\n ) {\n return this.documentAttributionRequests.listRanges(documentId, options);\n }\n\n getDocumentWriterProjectionResult(\n documentId: string,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<DocumentWriterProjectionResponse>> {\n return this.writerProjectionResult(\n this.documentWriterProjectionRequestsByDocumentId,\n this.documentWriterProjectionResultsInFlightByDocumentId,\n documentId,\n documentWriterProjection.path(documentId),\n documentWriterProjection.isResponseFor(documentId),\n options,\n getDocumentWriterProjectionOperation,\n );\n }\n\n /**\n * Seed the writer-projection cache from a mutation response the client just\n * authored, so the next read resolves locally instead of a cold\n * `GET /documents/:documentId/writer-projection`. The seed is the same\n * material a fresh fetch returns (create/link/sync responses carry the\n * manifest, content-key bundle, and KEK targets; authorizing paths are the\n * projection the client supplied). No-op when a fetch is in flight or the\n * slot is primed — never clobber an existing entry. The existing invalidation\n * paths (sync-change, share/rekey/move, link/unlink) evict a primed\n * projection that later goes stale, exactly as they evict a fetched one.\n */\n primeDocumentWriterProjection(\n documentId: string,\n projection: DocumentWriterProjectionResponse,\n ): void {\n primeWriterProjectionSlot({\n cache: this.documentWriterProjectionRequestsByDocumentId,\n describes: documentWriterProjection.isResponseFor(documentId),\n id: documentId,\n inFlightResults: this.documentWriterProjectionResultsInFlightByDocumentId,\n label: \"Document\",\n projection,\n });\n }\n\n /**\n * Container counterpart of {@link primeDocumentWriterProjection}: seed the\n * container writer-projection cache from a create the client just authored so\n * the next write under that container (a child folder, a document) resolves\n * locally instead of a cold `GET /containers/:containerId/writer-projection`.\n * The seed is the same material a fresh fetch returns — the create plan's\n * authorizing path and container KEKs — validated by the caller against the\n * create response before priming. No-op when a fetch is in flight or the slot\n * is already primed, so it never clobbers a newer entry. The existing\n * invalidation (share/revoke/rekey/move/delete -> clearWriterProjectionCaches)\n * evicts a primed projection that later goes stale exactly as it evicts a\n * fetched one, so a subsequent write on stale access still fails closed and\n * retries with a fresh projection.\n */\n primeContainerWriterProjection(\n containerId: string,\n projection: ContainerWriterProjectionResponse,\n ): void {\n primeWriterProjectionSlot({\n cache: this.containerWriterProjectionRequestsByContainerId,\n describes: containerWriterProjection.isResponseFor(containerId),\n id: containerId,\n inFlightResults:\n this.containerWriterProjectionResultsInFlightByContainerId,\n label: \"Container\",\n projection,\n });\n }\n\n linkDocument(\n documentId: string,\n input: DocumentLinkSetMutationRequest,\n options: RequestResultOptions = {},\n ) {\n this.invalidateDocumentAttribution(documentId);\n return this.request(\n documentLink.path(documentId),\n documentLink.isResponse,\n documentLink.method,\n JSON.stringify(input),\n options,\n linkDocumentOperation,\n ).finally(() => {\n this.invalidateDocumentAttribution(documentId);\n this.evictDocumentWriterProjection(documentId);\n });\n }\n\n linkDocumentResult(\n documentId: string,\n input: DocumentLinkSetMutationRequest,\n options: RequestResultOptions = {},\n ) {\n this.invalidateDocumentAttribution(documentId);\n return this.requestResult(\n documentLink.path(documentId),\n documentLink.isResponse,\n documentLink.method,\n JSON.stringify(input),\n options,\n linkDocumentOperation,\n ).finally(() => {\n this.invalidateDocumentAttribution(documentId);\n this.evictDocumentWriterProjection(documentId);\n });\n }\n\n listContainerParentLanes(input: ListContainerParentLanesRequest) {\n return dedupedRequest(\n this.containerParentLaneRequestsByKey,\n listContainerParentLanesRequestKey(input),\n () =>\n this.request<ListContainerParentLanesResponse>(\n containerParentLanes.path,\n (value): value is ListContainerParentLanesResponse =>\n containerParentLanes.isResponseForRequest(input, value),\n containerParentLanes.method,\n JSON.stringify(input),\n undefined,\n listContainerParentLanesOperation,\n ),\n );\n }\n\n listContainerDocuments(\n containerId: string,\n options?: ListContainerDocumentsOptions,\n ) {\n return dedupedRequest(\n this.containerDocumentListRequestsByKey,\n listContainerDocumentsRequestKey(containerId, options),\n () =>\n this.request<ListContainerDocumentsResponse>(\n containerDocuments.path(containerId, options),\n containerDocuments.isResponse,\n containerDocuments.method,\n undefined,\n undefined,\n listContainerDocumentsOperation,\n ),\n );\n }\n\n listContainerDocumentsResult(\n containerId: string,\n options?: ListContainerDocumentsOptions,\n requestOptions: RequestResultOptions = {},\n ): Promise<RequestResult<ListContainerDocumentsResponse>> {\n return this.requestResult(\n containerDocuments.path(containerId, options),\n containerDocuments.isResponse,\n containerDocuments.method,\n undefined,\n requestOptions,\n listContainerDocumentsOperation,\n );\n }\n\n unlinkDocument(\n documentId: string,\n input: DocumentLinkSetMutationRequest,\n options: RequestResultOptions = {},\n ) {\n this.invalidateDocumentAttribution(documentId);\n return this.request(\n documentUnlink.path(documentId),\n documentUnlink.isResponse,\n documentUnlink.method,\n JSON.stringify(input),\n options,\n unlinkDocumentOperation,\n ).finally(() => {\n this.invalidateDocumentAttribution(documentId);\n this.evictDocumentWriterProjection(documentId);\n });\n }\n\n unlinkDocumentResult(\n documentId: string,\n input: DocumentLinkSetMutationRequest,\n options: RequestResultOptions = {},\n ) {\n this.invalidateDocumentAttribution(documentId);\n return this.requestResult(\n documentUnlink.path(documentId),\n documentUnlink.isResponse,\n documentUnlink.method,\n JSON.stringify(input),\n options,\n unlinkDocumentOperation,\n ).finally(() => {\n this.invalidateDocumentAttribution(documentId);\n this.evictDocumentWriterProjection(documentId);\n });\n }\n\n purgeDocument(\n documentId: string,\n input: DocumentPurgeRequest,\n options: RequestResultOptions = {},\n ) {\n this.invalidateDocumentAttribution(documentId);\n return this.request(\n documentPurge.path(documentId),\n documentPurge.isResponse,\n documentPurge.method,\n JSON.stringify(input),\n options,\n purgeDocumentOperation,\n ).finally(() => {\n this.invalidateDocumentAttribution(documentId);\n this.evictDocumentWriterProjection(documentId);\n });\n }\n\n getDocumentPurgeProof(\n documentId: string,\n options?: DocumentPurgeProofOptions,\n requestOptions: RequestResultOptions = {},\n ) {\n return this.request(\n documentPurgeProof.path(documentId, options),\n documentPurgeProof.isResponse,\n documentPurgeProof.method,\n undefined,\n requestOptions,\n getDocumentPurgeProofOperation,\n );\n }\n\n syncDocument(\n documentId: string,\n input: DocumentSyncRequest,\n options: RequestResultOptions = {},\n ) {\n this.invalidateDocumentAttribution(documentId);\n const cachedBefore =\n this.documentWriterProjectionRequestsByDocumentId.get(documentId);\n return this.transport\n .request(\n documentSyncOperation,\n {\n body: input,\n params: { documentId },\n },\n options,\n )\n .then(async (response) => {\n if (response) {\n if (response.updates.length > 0) {\n this.documentAttachmentListRequestsByDocumentId.delete(documentId);\n }\n await evictWriterProjectionIfSyncChanged(\n this.documentWriterProjectionRequestsByDocumentId,\n documentId,\n response,\n () =>\n this.documentWriterProjectionResultsInFlightByDocumentId.delete(\n documentId,\n ),\n );\n } else {\n if (\n this.documentWriterProjectionRequestsByDocumentId.get(\n documentId,\n ) === cachedBefore\n ) {\n this.documentWriterProjectionRequestsByDocumentId.delete(\n documentId,\n );\n this.documentWriterProjectionResultsInFlightByDocumentId.delete(\n documentId,\n );\n }\n }\n return response;\n })\n .catch((error: unknown) => {\n if (\n this.documentWriterProjectionRequestsByDocumentId.get(documentId) ===\n cachedBefore\n ) {\n this.documentWriterProjectionRequestsByDocumentId.delete(documentId);\n this.documentWriterProjectionResultsInFlightByDocumentId.delete(\n documentId,\n );\n }\n throw error;\n })\n .finally(() => {\n this.invalidateDocumentAttribution(documentId);\n });\n }\n\n async syncDocumentResult(\n documentId: string,\n input: DocumentSyncRequest,\n options: RequestResultOptions = {},\n ): Promise<RequestResult<DocumentSyncResponse>> {\n this.invalidateDocumentAttribution(documentId);\n const cachedBefore =\n this.documentWriterProjectionRequestsByDocumentId.get(documentId);\n try {\n const result = await this.transport.requestResult(\n documentSyncOperation,\n { body: input, params: { documentId } },\n options,\n );\n if (result.ok) {\n if (result.data.updates.length > 0) {\n this.documentAttachmentListRequestsByDocumentId.delete(documentId);\n }\n await evictWriterProjectionIfSyncChanged(\n this.documentWriterProjectionRequestsByDocumentId,\n documentId,\n result.data,\n () =>\n this.documentWriterProjectionResultsInFlightByDocumentId.delete(\n documentId,\n ),\n );\n } else if (\n this.documentWriterProjectionRequestsByDocumentId.get(documentId) ===\n cachedBefore\n ) {\n this.documentWriterProjectionRequestsByDocumentId.delete(documentId);\n this.documentWriterProjectionResultsInFlightByDocumentId.delete(\n documentId,\n );\n }\n return result;\n } finally {\n this.invalidateDocumentAttribution(documentId);\n }\n }\n\n initiateMultipartBlobStage(input: InitiateMultipartBlobStageRequest) {\n return this.request(\n multipartInitiate.path,\n multipartInitiate.isResponse,\n multipartInitiate.method,\n JSON.stringify(input),\n undefined,\n initiateMultipartBlobStageOperation,\n );\n }\n\n getMultipartBlobStage(stageId: string) {\n return this.request(\n multipartGet.path(stageId),\n multipartGet.isResponse,\n multipartGet.method,\n undefined,\n undefined,\n getMultipartBlobStageOperation,\n );\n }\n\n uploadMultipartBlobPartBytes(\n stageId: string,\n partNumber: number,\n input: UploadMultipartBlobPartBytesRequest,\n ) {\n // Send the encrypted part as a File — not a raw Uint8Array and not a plain\n // Blob. CapacitorHttp (enabled on the native builds so API requests bypass the\n // WKWebView's broken cross-origin fetch) serializes request bodies across the\n // JS->native bridge in its convertBody(): a Uint8Array octet-stream body is\n // `TextDecoder().decode()`d to UTF-8 there — which corrupts encrypted\n // ciphertext (arbitrary, non-UTF-8 bytes) — and a plain Blob is not recognized\n // at all, falling through as JSON (`{}`). Only a File is read byte-for-byte\n // (readAsBinaryString -> base64), so the ciphertext survives the bridge intact\n // and the server's byte-length/SHA-256 validation passes. A File is a Blob, so\n // it is equally valid on the plain web fetch path (the operation-derived\n // Content-Type header still wins).\n return this.transport.requestBinaryRequest(\n uploadMultipartBlobPartBytesOperation,\n {\n headers: {\n [blobWireHeaderKeys.partByteLength]: input.byteLength.toString(),\n [blobWireHeaderKeys.partSha256]: input.sha256,\n [blobWireHeaderKeys.partUploadId]: input.uploadId,\n },\n body: input.encryptedBytes,\n params: { partNumber, stageId },\n },\n {\n encodeBody: (body) =>\n body instanceof File\n ? body\n : new File([body], \"encrypted-blob-part\", {\n type: \"application/octet-stream\",\n }),\n },\n );\n }\n\n completeMultipartBlobStage(\n stageId: string,\n input: CompleteMultipartBlobStageRequest,\n ) {\n return this.request(\n multipartComplete.path(stageId),\n multipartComplete.isResponse,\n multipartComplete.method,\n JSON.stringify(input),\n undefined,\n completeMultipartBlobStageOperation,\n );\n }\n\n getBlobBytes(blobId: string) {\n return getBlobBytes(this.transport, blobId);\n }\n\n bindBlobAttachment(\n blobId: string,\n input: BlobAttachmentBindRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n blobAttachmentBind.path(blobId),\n blobAttachmentBind.isResponse,\n blobAttachmentBind.method,\n JSON.stringify(input),\n options,\n bindBlobAttachmentOperation,\n )\n .then((response) => {\n if (response) {\n this.cacheBlobAttachmentBindResponse(response);\n } else {\n this.documentAttachmentListRequestsByDocumentId.clear();\n }\n return response;\n })\n .catch((error: unknown) => {\n this.documentAttachmentListRequestsByDocumentId.clear();\n throw error;\n });\n }\n\n detachBlobAttachment(\n blobId: string,\n bindingId: string,\n input: BlobAttachmentDetachRequest,\n options: RequestResultOptions = {},\n ) {\n return this.request(\n blobAttachmentDetach.path(blobId, bindingId),\n blobAttachmentDetach.isResponse,\n blobAttachmentDetach.method,\n JSON.stringify(input),\n options,\n detachBlobAttachmentOperation,\n )\n .then((response) => {\n if (response) {\n this.cacheBlobAttachmentDetachResponse(response);\n } else {\n this.documentAttachmentListRequestsByDocumentId.clear();\n }\n return response;\n })\n .catch((error: unknown) => {\n this.documentAttachmentListRequestsByDocumentId.clear();\n throw error;\n });\n }\n\n listDocumentAttachments(\n documentId: string,\n options: { refresh?: boolean } = {},\n ) {\n if (options.refresh) {\n this.documentAttachmentListRequestsByDocumentId.delete(documentId);\n }\n return cachedRequest(\n this.documentAttachmentListRequestsByDocumentId,\n documentId,\n () =>\n this.request(\n documentAttachmentsList.path(documentId),\n documentAttachmentsList.isResponse,\n documentAttachmentsList.method,\n undefined,\n undefined,\n listDocumentAttachmentsOperation,\n ),\n );\n }\n}\n"]}