@smart-byte/leani-sdk 0.1.0-rc.1 → 0.1.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -7
- package/dist/backfill.d.ts +15 -2
- package/dist/backfill.js +277 -190
- package/dist/backfill.js.map +1 -1
- package/dist/errors.d.ts +10 -1
- package/dist/errors.js +13 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +39 -5
- package/dist/index.js +177 -150
- package/dist/index.js.map +1 -1
- package/dist/openapi.generated.d.ts +532 -88
- package/dist/openapi.generated.js.map +1 -1
- package/dist/transport.d.ts +39 -0
- package/dist/transport.js +166 -0
- package/dist/transport.js.map +1 -0
- package/package.json +11 -8
- package/dist/backfill.d.ts.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/openapi.generated.d.ts.map +0 -1
package/dist/backfill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backfill.js","sourceRoot":"","sources":["../src/backfill.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backfill.js","sourceRoot":"","sources":["../src/backfill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOzD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,YAAY,GACb,MAAM,gBAAgB,CAAC;AAyExB,MAAM,0BAA0B,GAG5B;IACF,OAAO,EAAE;QACP,kBAAkB,EAAE,GAAG,GAAG,IAAI;QAC9B,mBAAmB,EAAE,IAAI,GAAG,IAAI;QAChC,aAAa,EAAE,KAAK;QACpB,sBAAsB,EAAE,GAAG;QAC3B,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,MAAM;KACpB;IACD,QAAQ,EAAE;QACR,kBAAkB,EAAE,IAAI,GAAG,IAAI;QAC/B,mBAAmB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;QACpC,aAAa,EAAE,MAAM;QACrB,sBAAsB,EAAE,KAAK;QAC7B,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,MAAM;KACpB;IACD,UAAU,EAAE;QACV,kBAAkB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;QACnC,mBAAmB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QACrC,aAAa,EAAE,MAAM;QACrB,sBAAsB,EAAE,KAAK;QAC7B,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,MAAM;KACpB;CACF,CAAC;AAEF,MAAM,UAAU,uBAAuB,CACrC,OAAgC;IAEhC,OAAO,EAAE,GAAG,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC;AACpD,CAAC;AAsQD,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,CAAS;IACb,yBAAyB,CAAgB;IACzC,uBAAuB,CAAgB;IAEhD,YAAY,MAAmD;QAC7D,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI;YACP,MAAM,CAAC,IAAI,KAAK,gBAAgB;gBAC9B,CAAC,CAAC,0BAA0B;gBAC5B,CAAC,CAAC,qBAAqB,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,CAAC;QAClE,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;IAChE,CAAC;CACF;AAkDD,MAAM,UAAU,gCAAgC,CAC9C,OAA0C;IAE1C,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IACpD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;IAC9C,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,KAAK,EACvB,MAAiC,EACjC,IAAY,EACZ,IAAa,EACb,MAA+B,EAC/B,UAAmB,EACnB,YAAqB,EACT,EAAE;QACd,MAAM,OAAO,GAAG,cAAc,CAC5B,OAAO,CAAC,KAAK,EACb,kBAAkB,EAClB,UAAU,EACV,YAAY,CACb,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YAClE,MAAM;YACN,OAAO,EACL,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS;gBACpC,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAC/B,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC3D,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC;SACxC,EAAE,MAAM,CAAC,CAAC;QACX,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,QAAQ,CAAI,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO;QACP,MAAM,EAAE,CAAC,OAAmC,EAAE,EAAE,CAC9C,WAAW,CACT,MAAM,EACN,iCAAiC,EACjC;YACE,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;gBAC9B,CAAC,CAAC;oBACE,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC;oBACtD,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;iBACtD;gBACH,CAAC,CAAC;oBACE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC5C,SAAS,EAAE,WAAW,CACpB,KAAK,CAAC,SAAS,EACf,UAAU,KAAK,aAAa,CAC7B;wBACD,OAAO,EAAE,gBAAgB,CACvB,KAAK,CAAC,OAAO,EACb,UAAU,KAAK,WAAW,CAC3B;qBACF,CAAC,CAAC;iBACJ,CAAC;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,cAAc;YACpC,QAAQ,EACN,OAAO,CAAC,QAAQ,KAAK,SAAS;gBAC5B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;oBACtD,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;oBAC3B,eAAe,EAAE,qBAAqB,CACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAChC,0BAA0B,CAC3B;oBACD,UAAU,EACR,OAAO,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS;wBACvC,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,cAAc,CACZ,OAAO,CAAC,QAAQ,CAAC,UAAU,EAC3B,qBAAqB,CACtB;iBACR;YACP,MAAM,EACJ,OAAO,CAAC,MAAM,KAAK,SAAS;gBAC1B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,uBAAuB,EAAE,qBAAqB,CAC5C,OAAO,CAAC,MAAM,CAAC,uBAAuB,EACtC,gCAAgC,CACjC;oBACD,sBAAsB,EAAE,qBAAqB,CAC3C,OAAO,CAAC,MAAM,CAAC,sBAAsB,EACrC,+BAA+B,CAChC;oBACD,gBAAgB,EAAE,WAAW,CAC3B,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAC/B,yBAAyB,CAC1B;iBACF;YACP,QAAQ,EACN,OAAO,CAAC,QAAQ,KAAK,SAAS;gBAC5B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,kBAAkB,EAChB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,KAAK,SAAS;wBAC/C,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,qBAAqB,CACnB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,EACnC,6BAA6B,CAC9B;oBACP,mBAAmB,EACjB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,KAAK,SAAS;wBAChD,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,qBAAqB,CACnB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,EACpC,8BAA8B,CAC/B;oBACP,aAAa,EACX,OAAO,CAAC,QAAQ,CAAC,aAAa,KAAK,SAAS;wBAC1C,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,qBAAqB,CACnB,OAAO,CAAC,QAAQ,CAAC,aAAa,EAC9B,wBAAwB,CACzB;oBACP,sBAAsB,EACpB,OAAO,CAAC,QAAQ,CAAC,sBAAsB,KAAK,SAAS;wBACnD,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,qBAAqB,CACnB,OAAO,CAAC,QAAQ,CAAC,sBAAsB,EACvC,iCAAiC,CAClC;oBACP,cAAc,EACZ,OAAO,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS;wBAC3C,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,qBAAqB,CACnB,OAAO,CAAC,QAAQ,CAAC,cAAc,EAC/B,yBAAyB,CAC1B;oBACP,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;iBAC1C;YACP,cAAc,EAAE,cAAc,CAC5B,OAAO,CAAC,cAAc,EACtB,gBAAgB,CACjB;SACF,EACD,OAAO,CAAC,MAAM,CACf;QACH,IAAI,EAAE,KAAK,EAAE,WAAsC,EAAE,EAAE;YACrD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,KAAK,EACL,iCAAiC,EACjC,SAAS,EACT,WAAW,EAAE,MAAM,CACpB,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,CACP,YAAoB,EACpB,cAAyC,EACzC,EAAE,CACF,WAAW,CACT,KAAK,EACL,mCAAmC,kBAAkB,CAAC,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,EACrG,SAAS,EACT,cAAc,EAAE,MAAM,CACvB;QACH,MAAM,EAAE,CACN,YAAoB,EACpB,aAAwC,EACxC,EAAE,CACF,WAAW,CACT,MAAM,EACN,mCAAmC,kBAAkB,CAAC,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,SAAS,EAC5G,SAAS,EACT,aAAa,EAAE,MAAM,CACtB;QACH,MAAM,EAAE,CACN,YAAoB,EACpB,aAAwC,EACxC,EAAE,CACF,WAAW,CACT,QAAQ,EACR,mCAAmC,kBAAkB,CAAC,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,EACrG,SAAS,EACT,aAAa,EAAE,MAAM,CACtB;QACH,OAAO,EAAE,CACP,YAAoB,EACpB,QAAgB,EAChB,aAAa,GAIT,EAAE,EACN,EAAE;YACF,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7D,MAAM,KAAK,GACT,aAAa,CAAC,KAAK,KAAK,SAAS;gBAC/B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,UAAU,qBAAqB,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YACtE,OAAO,WAAW,CAKhB,KAAK,EACL,GAAG,IAAI,GAAG,KAAK,EAAE,EACjB,SAAS,EACT,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,UAAU,CACzB,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,CACN,YAAoB,EACpB,QAAgB,EAChB,aAAa,GAIT,EAAE,EACN,EAAE,CACF,kBAAkB,CAChB,SAAS,EACT,OAAO,EACP,OAAO,CAAC,KAAK,EACb,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,aAAa,CAAC,UAAU,EACxB,aAAa,CAAC,QAAQ,EACtB,aAAa,CAAC,MAAM,CACrB;QACH,UAAU,EAAE,CACV,SAAiB,EACjB,QAAgB,EAChB,aAAa,GAAkD,EAAE,EACjE,EAAE,CACF,cAAc,CACZ,SAAS,EACT,OAAO,EACP,OAAO,CAAC,KAAK,EACb,SAAS,EACT,SAAS,EACT,QAAQ,EACR,aAAa,CAAC,UAAU,EACxB,aAAa,CAAC,MAAM,CACrB;QACH,SAAS,EAAE,CAAI,OAAqC,EAAE,EAAE,CACtD,qBAAqB,CACnB,SAAS,EACT,OAAO,EACP,OAAO,CAAC,KAAK,EACb,SAAS,EACT,OAAO,CACR;KACJ,CAAC,CAAC;AACL,CAAC;AAeD,KAAK,UAAU,qBAAqB,CAClC,SAAoB,EACpB,OAAY,EACZ,KAAyB,EACzB,SAAiB,EACjB,OAAqC;IAErC,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,CAC3D,cAAc,CAAC,cAAc,EAAE,iBAAiB,KAAK,kBAAkB,CAAC,CACzE,CAAC;IACF,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QACnD,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,eAAe,CAAC;IAC7C,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CACvC,cAAc,CACZ,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,OAAO,CAAC,UAAU,EAClB,MAAM,CACP,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,KAAK,MAAM,cAAc,IAAI,UAAU,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CACvC,kBAAkB,CAChB,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,EACT,cAAc,EACd,QAAQ,EACR,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,QAAQ,EAChB,MAAM,CACP,CAAC;YACJ,KAAK,CAAC,IAAI,CACR,kBAAkB,CAChB,cAAc,EACd,MAAM,IAAI,EAAE,EACZ,IAAI,EACJ,OAAO,CAAC,MAAM,CACf,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IACE,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,KAAK,WAAW,CAAC,EAC3D,CAAC;QACD,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,SAAS,CACjB,+DAA+D,CAChE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,QAA0B,EAAQ,EAAE;QACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,SAAS,CAAC,iBAAiB,SAAS,CAAC,QAAQ,4BAA4B,CAAC,CAAC;QACvF,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,QAAwB,EAA0C,EAAE,CACnF,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,KAAK;SACF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;SACzC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CACtC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC7B,MAAM,IAAI,SAAS,CACjB,oEAAoE,CACrE,CAAC;YACJ,CAAC;YACD,OAAO,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC7B,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,cAAc,EAAE,CAAC,cAAsB,EAAE,EAAE;YACzC,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC7B,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,EAAE,GAAG,cAAc,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,SAAS,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,WAAW,EAAE,CACX,KAA8B,EAC9B,kBAA6C,EAC7C,EAAE;YACF,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC1E,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;YACpF,CAAC;YACD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAC/D,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7E,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAC1B,CAAC,OAAO,EAAoC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,CAC7E,CAAC;YACF,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,CAAC,MAAM,CAAC;YACtB,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CACtB,cAAsC,EACtC,IAA+D,EAC/D,MAA+B;IAE/B,MAAM,UAAU,GAAG,0BAA0B,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5E,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ;QACvC,gBAAgB,EAAE,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,gBAAgB;QACjE,KAAK,CAAC,IAAI;YACR,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,IAAI;oBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBACvD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW;oBAAE,SAAS;gBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC1B,OAAO;oBACL,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE;wBACL,QAAQ,EAAE,MAAM;wBAChB,MAAM,EAAE,MAAM;wBACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,SAAS,EAAE,MAAM,CAAC,qBAAqB;wBACvC,MAAM,EAAE,MAAM,CAAC,OAAO;wBACtB,MAAM;qBACP;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,KAAK,EAAE,UAAU,CAAC,KAAK;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,cAAsB,EACtB,cAA0C,EAC1C,IAAmE,EACnE,MAA+B;IAE/B,MAAM,UAAU,GAAG,0BAA0B,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5E,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,OAAO;QACL,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ;QACvC,gBAAgB,EAAE,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,gBAAgB;QACjE,KAAK,CAAC,IAAI;YACR,IAAI,QAAQ;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACtD,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,IAAI;oBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBACvD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW;oBAAE,SAAS;gBAC9C,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC;gBACnD,OAAO;oBACL,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC;iBACxD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,KAAK,EAAE,UAAU,CAAC,KAAK;KACxB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,SAAS,oBAAoB,CAC3B,MAAc,EACd,MAAyD;IAEzD,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QACxC,OAAO;YACL,QAAQ,EAAE,SAAS;YACnB,MAAM;YACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,MAAM;YACxB,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,MAAM;YAClB,MAAM;SACP,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,qBAAqB;QACvC,MAAM,EAAE,MAAM,CAAC,OAAO;QACtB,MAAM;KACP,CAAC;AACJ,CAAC;AAWD,SAAS,0BAA0B,CAQjC,cAAgD,EAChD,IAAyE,EACzE,MAA+B;IAE/B,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;IACnC,MAAM,eAAe,GAAG,MAAM;QAC5B,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAChB,IAAI,OAAO,GAAG,cAAc,CAAC;IAC7B,IAAI,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAC/C,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,aAAwC,CAAC;IAE7C,MAAM,SAAS,GAAG,GAAkB,EAAE;QACpC,aAAa,KAAK,CAAC,KAAK,IAAI,EAAE;YAC5B,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC;oBAChD,IAAI,CAAC;wBACH,wBAAwB,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;oBACxD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;wBACjD,MAAM,KAAK,CAAC;oBACd,CAAC;oBACD,OAAO,GAAG,WAAW,CAAC;oBACtB,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC/C,OAAO;gBACT,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC;wBAAE,MAAM,KAAK,CAAC;oBACvD,MAAM,qBAAqB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;oBACtD,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YACD,MAAM,eAAe,CAAC,MAAM,IAAI,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC5E,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,aAAa,GAAG,SAAS,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,IAAsC,EAAE;QACxD,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,IAAI;oBAAE,OAAO,MAAM,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;YACzD,CAAC;YACD,MAAM,SAAS,EAAE,CAAC;QACpB,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,EACvB,MAAc,EACd,OAAkC,EACR,EAAE;QAC5B,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACvD,MAAM,SAAS,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,WAAW;QACX,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,sEAAsE;YACtE,6BAA6B;YAC7B,MAAM,aAAa,EAAE,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBAC5C,IAAI,CAAC,eAAe,CAAC,OAAO;oBAAE,MAAM,KAAK,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAM/B,QAAgB,EAAE,WAAmB;IACrC,IACE,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;QAC1C,WAAW,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;QAC9C,WAAW,CAAC,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,SAAS,CAAC,EAAE;QAClD,WAAW,CAAC,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,SAAS,CAAC,OAAO;QAC5D,WAAW,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,SAAS,CAAC,QAAQ;QAC9D,WAAW,CAAC,SAAS,CAAC,UAAU,KAAK,QAAQ,CAAC,SAAS,CAAC,UAAU;QAClE,WAAW,CAAC,SAAS,CAAC,gBAAgB;YACpC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EACrC,CAAC;QACD,MAAM,mBAAmB,CACvB,MAAM,EACN,0DAA0D,CAC3D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,6BAA6B,CAAC,KAAc;IACnD,OAAO,CACL,KAAK,YAAY,UAAU;QAC3B,CAAC,KAAK,CAAC,SAAS;YACd,KAAK,CAAC,IAAI,KAAK,yBAAyB;YACxC,KAAK,CAAC,IAAI,KAAK,uBAAuB,CAAC,CAC1C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,OAAe,EACf,MAAmB;IAEnB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,MAAM,CAAC,MAAM,IAAI,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3C,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAuB,EACvB,KAAwC;IAExC,OAAO;QACL,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3B,KAAK,CAAC,KAAK,CAAC,CAAC;YACb,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,EAIpB,CAAC;YACJ,IAAI,IAA8B,CAAC;YACnC,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1B,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAQ,EAAE;gBACvC,KAAK,CAAC,KAAK,CAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CACvB,CAAC,MAAM,EAAE,EAAE;oBACT,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAClB,IAAI,EAAE,EAAE,CAAC;oBACT,IAAI,GAAG,SAAS,CAAC;gBACnB,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;oBACjB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAClB,IAAI,EAAE,EAAE,CAAC;oBACT,IAAI,GAAG,SAAS,CAAC;gBACnB,CAAC,CACF,CAAC;YACJ,CAAC,CAAC;YACF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtE,OAAO,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;wBAClC,IAAI,GAAG,OAAO,CAAC;oBACjB,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAClC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,IAAI,KAAK,MAAM,CACzC,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAM,CAAC,CAAC;gBACpC,OAAO,CAAC,MAAM,CAAC,KAAM,CAAC,CAAC;gBACvB,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACxE,IAAI,OAAO,IAAI,OAAO;oBAAE,MAAM,OAAO,CAAC,KAAK,CAAC;gBAC5C,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBACxB,MAAM,IAAI,CAAC,CAAC;oBACZ,SAAS;gBACX,CAAC;gBACD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC;gBAChE,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,IAAI,CAAC,CAAC;gBACd,CAAC;gBACD,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC,KAAM,CAAC,CAAC;oBACjB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,SAAoB,EACpB,OAAY,EACZ,KAAyB,EACzB,SAAiB,EACjB,YAAoB,EACpB,QAAgB,EAChB,UAA8B,EAC9B,QAA6C,EAC7C,MAA+B;IAE/B,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAIvC,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,EACT,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACpD,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC3C,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,EAC7C,UAAU,EACV,MAAM,EACN,UAAU,CACX,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,SAAS,CAAC;QAC7B,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC5B,MAAM,MAAM,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,oEAAoE;IACpE,2DAA2D;IAC3D,MAAM,eAAe,GAAG,KAAK,SAAS,CAAC;QAGrC,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAChC,MAAM,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,SAAS,CAAC;QAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,EAAE,EAAE,CAAC;YACpC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,OAAO;QACP,eAAe;QACf,MAAM;QACN,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;KACpE,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,SAAoB,EACpB,OAAY,EACZ,KAAyB,EACzB,SAAiB,EACjB,SAAiB,EACjB,QAAgB,EAChB,UAA8B,EAC9B,MAA+B;IAE/B,OAAO,mBAAmB,CACxB,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,EACT,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAC/C,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC5C,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAC9C,UAAU,EACV,MAAM,EACN,MAAM,CACP,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,SAAoB,EACpB,OAAY,EACZ,KAAyB,EACzB,SAAiB,EACjB,UAAkB,EAClB,eAAuB,EACvB,SAAiB,EACjB,UAA8B,EAC9B,MAA+B,EAC/B,UAA+B;IAE/B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,uEAAuE;IACvE,0EAA0E;IAC1E,IAAI,OAAgB,CAAC;IACrB,MAAM,IAAI,GAAG,CAAC,KAAc,EAAQ,EAAE;QACpC,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,OAAO,GAAG,KAAK,CAAC;QAChB,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,cAAc,EAAE,CAAC;IACnB,CAAC;IACD,wEAAwE;IACxE,+DAA+D;IAC/D,IAAI,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,CAC1C,IAAI,CACF,IAAI,cAAc,CAChB,GAAG,UAAU,gCAAgC,SAAS,KAAK,CAC5D,CACF,CAAC,CAAC;IACL,IAAI,OAA4C,CAAC;IACjD,IAAI,SAAuD,CAAC;IAC5D,IAAI,YAAoB,CAAC;IACzB,IAAI,UAAkB,CAAC;IACvB,IAAI,mBAA2B,CAAC;IAChC,IAAI,CAAC;QACH,QAAQ,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACxE,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,sBAAsB,EAAE,UAAU,CAAC;YAClE,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,EAAE,MAAM,CAAC,CAAC;QACX,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,mBAAmB,CAAC;gBAC5B,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,GAAG,UAAU,8BAA8B;gBACpD,yBAAyB,EAAE,IAAI;gBAC/B,uBAAuB,EAAE,IAAI;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAC7D,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QAClB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,mBAAmB,CAAC,UAAU,EAAE,sCAAsC,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,SAAS,GAAI,KAAK,CAAC,KAA4B,CAAC,IAAI,CAAC;QAC3D,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;YAC5D,MAAM,IAAI,mBAAmB,CAC3B,KAAK,CAAC,KAAoD,CAC3D,CAAC;QACJ,CAAC;QACD,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,mBAAmB,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC;QAC5E,CAAC;QACD,SAAS,GAAG,KAAK,CAAC,KAAqD,CAAC;QACxE,YAAY,GAAG,cAAc,CAC3B,SAAS,CAAC,YAAY,EACtB,2BAA2B,CAC5B,CAAC;QACF,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACpE,mBAAmB,GAAG,kBAAkB,CACtC,SAAS,CAAC,mBAAmB,EAC7B,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACrD,MAAM,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,OAAO,IAAI,KAAK,CAAC;IACzB,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,MAAM,EAAE,CAAC;IACpB,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,WAAW,EAAE,GAAG,SAAS,CAAC;IAClE,MAAM,MAAM,GAAG,CAAC,GAAG,mBAAmB,CAAC;IACvC,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,CACnC,IAAI,CACF,IAAI,cAAc,CAAC,GAAG,UAAU,4BAA4B,MAAM,KAAK,CAAC,CACzE,CAAC,CAAC;IACL,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;IACtC,MAAM,WAAW,GAAG,wBAAwB,CAC1C,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,YAAY,EACZ,UAAU,EACV,OAAO,CAAC,MAAM,CACf,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACzB,wEAAwE;QACxE,4CAA4C;QAC5C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,SAAoC,CAAC;IACzC,MAAM,KAAK,GAAG,GAAkB,EAAE;QAChC,SAAS,KAAK,CAAC,KAAK,IAAI,EAAE;YACxB,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YACrD,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC/B,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YACD,MAAM,WAAW,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;oBACvE,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,gBAAgB,CACvB,cAAc,CAAC,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,CAAC,CACpE;oBACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;iBACvC,EAAE,SAAS,CAAC,CAAC;gBACd,KAAK,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,mEAAmE;gBACnE,sEAAsE;YACxE,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,SAAS,CAAC;QAC7B,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;QACtE,CAAC;QACD,eAAe,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,IAAI,IAA6B,CAAC;gBAClC,mEAAmE;gBACnE,sBAAsB;gBACtB,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC7B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,4DAA4D;oBAC5D,IAAI,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACvD,OAAO;oBACT,CAAC;oBACD,MAAM,OAAO,IAAI,KAAK,CAAC;gBACzB,CAAC;wBAAS,CAAC;oBACT,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACpB,CAAC;gBACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,MAAM,OAAO,CAAC;gBAChB,CAAC;gBACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,OAAO;gBACT,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAGG,CAAC;gBACxB,MAAM,UAAU,GAAI,MAA6B,CAAC,IAAI,CAAC;gBACvD,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,gBAAgB,EAAE,CAAC;oBAC9D,MAAM,IAAI,mBAAmB,CAC3B,MAAqD,CACtD,CAAC;gBACJ,CAAC;gBACD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;oBAC3B,MAAM,mBAAmB,CAAC,UAAU,EAAE,mCAAmC,CAAC,CAAC;gBAC7E,CAAC;gBACD,MAAM,MAAiB,CAAC;YAC1B,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,KAAK,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,WAAgC;QACvC,WAAW,EAAE,KAAK,EAChB,MAAc,EACd,kBAA6C,EACnB,EAAE;YAC5B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,CAAC;YAChB,CAAC;YACD,MAAM,MAAM,GAAG,kBAAkB,EAAE,MAAM,CAAC;YAC1C,MAAM,WAAW,GAAG,MAAM,IAAI,CAC5B,SAAS,EACT,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,EACtC;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,cAAc,CACrB,KAAK,EACL,kBAAkB,EAClB,UAAU,EACV,YAAY,CACb;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAClE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC;aACxC,EACD,MAAM,CACP,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;gBACpB,MAAM,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,QAAQ,CAAkB,WAAW,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QACD,KAAK;QACL,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO;KAChC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAA+B,EAC/B,OAAe;IAEf,OAAO,IAAI,mBAAmB,CAAC;QAC7B,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,GAAG,UAAU,IAAI,OAAO,EAAE;QACnC,yBAAyB,EAAE,IAAI;QAC/B,uBAAuB,EAAE,IAAI;KAC9B,CAAC,CAAC;AACL,CAAC;AASD,KAAK,UAAU,wBAAwB,CACrC,SAAoB,EACpB,OAAY,EACZ,KAAyB,EACzB,SAAiB,EACjB,SAAiB,EACjB,UAA8B,EAC9B,YAAoB,EACpB,UAAkB,EAClB,IAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/D,0EAA0E;IAC1E,IAAI,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAClC,IAAI,OAAO,GAAG,UAAU,CAAC;IACzB,IAAI,OAAO,GAAG,YAAY,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;gBACvE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,gBAAgB,CACvB,cAAc,CAAC,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,CAAC,CACpE;gBACD,sDAAsD;gBACtD,MAAM,EAAE,YAAY,CAClB,IAAI,EACJ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAC1D;aACF,EAAE,IAAI,CAAC,CAAC;YACT,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;YACD,MAAM,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC/B,SAAS,GAAG,WAAW,CAAC;YACxB,OAAO,GAAG,UAAU,CAAC;YACrB,OAAO,GAAG,YAAY,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kEAAkE;YAClE,MAAM,SAAS,GAAG,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,SAAS,CAAC;YACjE,IACE,IAAI,CAAC,OAAO;gBACZ,CAAC,SAAS;gBACV,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,OAAO,EACrD,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,OAAO,GAAG,OAAO,CAAC;YAClB,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,MAAmB;IAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,KAAa;IACtD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW,CAChC,IAAgC,EAChC,MAAoB;IAEpB,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,MAAM,SAAS,GAAG,IAAI,CAAC;AAEvB;;;GAGG;AACH,KAAK,SAAS,CAAC,CAAC,aAAa,CAC3B,IAAgC,EAChC,MAA+B,EAC/B,OAAoB;IAEpB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,uDAAuD;IACvD,IAAI,OAAO,GAAiB,EAAE,CAAC;IAC/B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAC5D,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,OAAO,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAChD,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;gBACzD,MAAM,oBAAoB,EAAE,CAAC;YAC/B,CAAC;YACD,MAAM,IAAI,GAAG,OAAO;iBACjB,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;iBAChD,IAAI,EAAE,CAAC;YACV,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,GAAG,CAAC,CAAC;YACjB,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC;YACxB,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YACpC,CAAC;YACD,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC;YAC5B,IAAI,YAAY,GAAG,uBAAuB,EAAE,CAAC;gBAC3C,MAAM,oBAAoB,EAAE,CAAC;YAC/B,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC,MAAM,IAAI,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,SAAS,GAAG,OAAO;SACtB,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,UAAU,EAAE,CAAC,CAAC;SAC5D,IAAI,EAAE,CAAC;IACV,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAY,CAAC;IACzC,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,IAAI,UAAU,CACnB,yBAAyB,uBAAuB,QAAQ,EACxD,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,EAAE,CAC5D,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAmB;IAC3C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CACrB,KAAyB,EACzB,MAAc,EACd,UAAmB,EACnB,YAAqB;IAErB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CACT,6BAA6B,EAC7B,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,CACzC,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CACT,0BAA0B,EAC1B,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAC7C,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6EAA6E;AAC7E,SAAS,gBAAgB,CAAC,OAAgB;IACxC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IACpC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CACnB,YAAoB,EACpB,QAAgB,EAChB,SAAiD;IAEjD,OAAO,CACL,6BAA6B,kBAAkB,CAAC,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE;QAC/F,cAAc,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,IAAI,SAAS,EAAE,CACtF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,YAAoB,EACpB,QAAgB,EAChB,QAA6C;IAE7C,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5D,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI;QAC3B,CAAC,oBAAoB,EAAE,QAAQ,CAAC,kBAAkB,CAAC;QACnD,CAAC,qBAAqB,EAAE,QAAQ,CAAC,mBAAmB,CAAC;QACrD,CAAC,eAAe,EAAE,QAAQ,CAAC,aAAa,CAAC;QACzC,CAAC,wBAAwB,EAAE,QAAQ,CAAC,sBAAsB,CAAC;QAC3D,CAAC,gBAAgB,EAAE,QAAQ,CAAC,cAAc,CAAC;KACnC,EAAE,CAAC;QACX,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,gBAAgB,CACvB,SAAiB,EACjB,QAAgB,EAChB,SAAqC;IAErC,OAAO,CACL,iBAAiB,kBAAkB,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE;QAC7E,2BAA2B,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,IAAI,SAAS,EAAE,CACnG,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,KAAa;IAC/C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,sCAAsC,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CACvB,KAA2B,EAC3B,KAAa;IAEb,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,KAAa;IACzD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,KAAa;IAClD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,KAAa;IAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,8CAA8C,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import { LeaniError, TransportError, responseError } from \"./errors.ts\";\nexport { LeaniError, TransportError } from \"./errors.ts\";\nimport type {\n ChangeEnvelope,\n DurableConsumer,\n FetchLike,\n ProcessorSummary,\n} from \"./index.ts\";\nimport {\n concatBytes,\n idleWatchdog,\n readChunks,\n readJson,\n readText,\n resolveUnder,\n send,\n withDeadline,\n} from \"./transport.ts\";\n\nexport type BackfillExecutionMode = \"fill_missing\" | \"recompute\";\nexport type BackfillState =\n | \"waiting_for_consumer\"\n | \"queued\"\n | \"running\"\n | \"backpressured\"\n | \"storage_backpressured\"\n | \"draining\"\n | \"complete_reclaimable\"\n | \"completed\"\n | \"failed\"\n | \"cancelled\";\n\nexport interface BackfillRange {\n fromBlock: number;\n toBlock: number;\n}\n\nexport interface RequestedBackfillRange {\n fromBlock: number;\n toBlock: number | \"finalized\";\n}\n\nexport interface BackfillStatus {\n id: string;\n owner: \"subscription\";\n processor: string;\n deliveryStreamId?: string;\n publicationRevision?: string;\n fromBlock: number;\n toBlock: number;\n ranges: BackfillRange[];\n requestedBlocks: number;\n processedBlocks: number;\n remainingBlocks: number;\n capturedFinalizedTarget?: number;\n mode: BackfillExecutionMode;\n batching?: EffectiveBackfillBatching;\n state: BackfillState;\n attempts: number;\n updatedAtUnixMs: number;\n report: unknown | null;\n lastError: string | null;\n}\n\nexport interface HistoricalWorkDeletion {\n id: string;\n owner: \"subscription\";\n removedJobs: number;\n removedSubscriptionRanges: number;\n removedConsumers: number;\n removedDeliveryRecords: number;\n removedDeliveryStreams: number;\n removedCoverageIntervals: number;\n removedCoverageSegments: number;\n removedExactCoverage: number;\n removedAppliedBlocks: number;\n removedFinalizedUndo: number;\n retainedProcessorOutput: boolean;\n retainedLiveStream: boolean;\n}\n\nexport type BackfillBatchingRequest = Partial<\n Omit<\n EffectiveBackfillBatching,\n \"maximumBufferedBatches\" | \"maximumBufferedBytes\"\n >\n>;\n\nexport type BackfillBatchingProfile = \"latency\" | \"balanced\" | \"throughput\";\n\nconst BACKFILL_BATCHING_PROFILES: Record<\n BackfillBatchingProfile,\n Required<BackfillBatchingRequest>\n> = {\n latency: {\n targetEncodedBytes: 256 * 1024,\n maximumEncodedBytes: 1024 * 1024,\n maximumEvents: 2_000,\n maximumProcessedBlocks: 512,\n maximumDelayMs: 10,\n compression: \"gzip\",\n },\n balanced: {\n targetEncodedBytes: 1024 * 1024,\n maximumEncodedBytes: 4 * 1024 * 1024,\n maximumEvents: 10_000,\n maximumProcessedBlocks: 4_096,\n maximumDelayMs: 25,\n compression: \"gzip\",\n },\n throughput: {\n targetEncodedBytes: 4 * 1024 * 1024,\n maximumEncodedBytes: 16 * 1024 * 1024,\n maximumEvents: 20_000,\n maximumProcessedBlocks: 8_192,\n maximumDelayMs: 50,\n compression: \"gzip\",\n },\n};\n\nexport function backfillBatchingProfile(\n profile: BackfillBatchingProfile,\n): Required<BackfillBatchingRequest> {\n return { ...BACKFILL_BATCHING_PROFILES[profile] };\n}\n\nexport interface EffectiveBackfillBatching {\n targetEncodedBytes: number;\n maximumEncodedBytes: number;\n maximumEvents: number;\n maximumProcessedBlocks: number;\n maximumDelayMs: number;\n maximumBufferedBatches: number;\n maximumBufferedBytes: number;\n compression: \"none\" | \"gzip\";\n}\n\ninterface CreateBackfillSubscriptionBase {\n processor: string;\n mode?: BackfillExecutionMode;\n consumer?: {\n id: string;\n role: \"required\";\n leaseTtlSeconds: number;\n credential?: string;\n };\n limits?: {\n maxUnacknowledgedBlocks: number;\n maxUnacknowledgedBytes: number;\n resumeBelowRatio: number;\n };\n batching?: BackfillBatchingRequest;\n idempotencyKey: string;\n signal?: AbortSignal;\n}\n\nexport type CreateBackfillSubscription = CreateBackfillSubscriptionBase &\n (\n | {\n fromBlock: number;\n toBlock: number | \"finalized\";\n ranges?: never;\n }\n | {\n ranges: RequestedBackfillRange[];\n fromBlock?: never;\n toBlock?: never;\n }\n );\n\nexport interface BackfillStreamHello {\n type: \"hello\";\n apiVersion: \"1\";\n chainId: number;\n processor: ProcessorSummary;\n subscriptionId: string;\n streamId: string;\n streamKind: \"backfill\";\n publicationRevision: string;\n ranges: BackfillRange[];\n acknowledgedCursor: string;\n storeEpoch: string;\n heartbeatIntervalMs: string;\n sessionExpiresAtUnixMs: string;\n leaseTtlMs: string;\n}\n\nexport interface BackfillStreamBatch<T = unknown> {\n type: \"batch\";\n streamId: string;\n originKind: \"historical_backfill\" | \"recompute\";\n originId: string;\n publicationRevision: string;\n fromBlock: number;\n throughBlock: number;\n processedBlockCount: string;\n domainChangeCount: string;\n progressUnitCount: string;\n rawPayloadBytes: string;\n uncompressedEncodedBytes: string;\n transmittedBytes: string;\n buildDelayMs: string;\n firstCursor: string | null;\n lastCursor: string | null;\n acknowledgeableCursor: string;\n changes: ChangeEnvelope<T>[];\n}\n\nexport interface BackfillStreamCompletion {\n type: \"backfill_complete\";\n subscriptionId: string;\n streamId: string;\n ranges: BackfillRange[];\n throughBlock: number;\n cursor: string;\n mode: BackfillExecutionMode;\n disposition:\n | \"published_all\"\n | \"published_missing_only\"\n | \"already_covered_noop\";\n requestedBlockCount: string;\n coveredBeforeRequestBlockCount: string;\n coveredBeforeRequestRanges: BackfillRange[];\n newlyProcessedBlockCount: string;\n republishedBlockCount: string;\n domainChangeCount: string;\n preexistingCoverageSkipped: boolean;\n repairHint?: \"recompute\";\n}\n\nexport interface BackfillStreamHeartbeat {\n type: \"heartbeat\";\n emittedAt: string;\n}\n\nexport interface BackfillStreamReset {\n type: \"reset_required\";\n code: \"reset_required\";\n message: string;\n earliestAvailableSequence: string | null;\n latestAvailableSequence: string | null;\n}\n\nexport interface BackfillStreamFailure {\n type: \"error\";\n code: string;\n message: string;\n earliestAvailableSequence: string | null;\n latestAvailableSequence: string | null;\n}\n\nexport type BackfillStreamRecord<T = unknown> =\n | BackfillStreamBatch<T>\n | BackfillStreamCompletion\n | BackfillStreamHeartbeat;\n\nexport interface LiveStreamHello {\n type: \"hello\";\n apiVersion: \"1\";\n chainId: number;\n processor: ProcessorSummary;\n streamId: string;\n streamKind: \"live\";\n acknowledgedCursor: string;\n storeEpoch: string;\n heartbeatIntervalMs: string;\n sessionExpiresAtUnixMs: string;\n leaseTtlMs: string;\n}\n\nexport interface LiveStreamBatch<T = unknown> {\n type: \"batch\";\n streamId: string;\n originKind: \"live\" | \"live_recovery\";\n originId: string;\n publicationRevision: \"0\";\n fromBlock: number;\n throughBlock: number;\n processedBlockCount: \"1\";\n domainChangeCount: string;\n progressUnitCount: \"1\";\n rawPayloadBytes: string;\n uncompressedEncodedBytes: string;\n transmittedBytes: string;\n buildDelayMs: string;\n firstCursor: string;\n lastCursor: string;\n acknowledgeableCursor: string;\n changes: ChangeEnvelope<T>[];\n}\n\nexport type LiveStreamRecord<T = unknown> =\n | LiveStreamBatch<T>\n | BackfillStreamHeartbeat;\n\nexport interface DeliverySession<THello, TRecord>\n extends AsyncIterable<TRecord> {\n readonly hello: THello;\n acknowledge(\n cursor: string,\n options?: { signal?: AbortSignal },\n ): Promise<DurableConsumer>;\n close(): Promise<void>;\n}\n\nexport interface BackfillDeliverySession<T = unknown>\n extends DeliverySession<BackfillStreamHello, BackfillStreamRecord<T>> {\n batches(): AsyncIterable<BackfillStreamBatch<T>>;\n /**\n * Every acknowledgement boundary with the changes it covers: each batch,\n * including one without changes, then the completion. Commit `events`,\n * then acknowledge `ackCursor`.\n */\n deliveryBatches(): AsyncIterable<HistoryDeliveryBatch<T>>;\n /**\n * The batches' changes, flattened. They carry no acknowledgement\n * boundary; acknowledge from `deliveryBatches()` or `batches()`.\n */\n events(): AsyncIterable<ChangeEnvelope<T>>;\n}\n\nexport type LiveDeliverySession<T = unknown> = DeliverySession<\n LiveStreamHello,\n LiveStreamRecord<T>\n>;\n\nexport interface MultiLaneSubscriptionRequest {\n processor: string;\n consumer: string;\n credential?: string;\n lanes: {\n live?: boolean;\n history?: Array<{ subscriptionId: string }>;\n };\n view?: \"live_priority\" | \"lane_specific\";\n batching?: BackfillBatchingRequest;\n signal?: AbortSignal;\n}\n\nexport type UnifiedDeliveryBatch<T = unknown> =\n | {\n laneKind: \"live\";\n laneId: \"live\";\n streamId: string;\n ackCursor: string;\n events: ChangeEnvelope<T>[];\n completion?: never;\n record: LiveStreamBatch<T>;\n }\n | {\n laneKind: \"history\";\n laneId: string;\n streamId: string;\n ackCursor: string;\n events: ChangeEnvelope<T>[];\n completion?: BackfillStreamCompletion;\n record: BackfillStreamBatch<T> | BackfillStreamCompletion;\n };\n\n/** One history lane's batch, as `BackfillDeliverySession.deliveryBatches()` yields it. */\nexport type HistoryDeliveryBatch<T = unknown> = Extract<\n UnifiedDeliveryBatch<T>,\n { laneKind: \"history\" }\n>;\n\nexport interface MultiLaneDelivery<T = unknown> {\n batches(): AsyncIterable<UnifiedDeliveryBatch<T>>;\n liveBatches(): AsyncIterable<UnifiedDeliveryBatch<T>>;\n historyBatches(\n subscriptionId: string,\n ): AsyncIterable<UnifiedDeliveryBatch<T>>;\n acknowledge(\n batch: UnifiedDeliveryBatch<T>,\n options?: { signal?: AbortSignal },\n ): Promise<DurableConsumer>;\n close(): Promise<void>;\n}\n\nexport interface BackfillSubscriptionClientOptions {\n baseUrl: string | URL;\n token?: string;\n fetch?: FetchLike;\n /** Deadline for JSON requests; established delivery streams stay open. */\n timeoutMs?: number;\n}\n\nexport class BackfillStreamError extends Error {\n readonly code: string;\n readonly earliestAvailableSequence: string | null;\n readonly latestAvailableSequence: string | null;\n\n constructor(record: BackfillStreamFailure | BackfillStreamReset) {\n super(record.message);\n this.name =\n record.type === \"reset_required\"\n ? \"BackfillStreamResetError\"\n : \"BackfillStreamError\";\n this.code = record.code;\n this.earliestAvailableSequence = record.earliestAvailableSequence;\n this.latestAvailableSequence = record.latestAvailableSequence;\n }\n}\n\nexport interface BackfillSubscriptionClient {\n readonly baseUrl: URL;\n create(request: CreateBackfillSubscription): Promise<BackfillStatus>;\n list(options?: { signal?: AbortSignal }): Promise<BackfillStatus[]>;\n inspect(\n subscription: string,\n options?: { signal?: AbortSignal },\n ): Promise<BackfillStatus>;\n cancel(\n subscription: string,\n options?: { signal?: AbortSignal },\n ): Promise<BackfillStatus>;\n delete(\n subscription: string,\n options?: { signal?: AbortSignal },\n ): Promise<HistoricalWorkDeletion>;\n changes<T = unknown>(\n subscription: string,\n consumer: string,\n options?: {\n credential?: string;\n limit?: number;\n signal?: AbortSignal;\n },\n ): Promise<{\n data: ChangeEnvelope<T>[];\n nextCursor: string | null;\n coverage: unknown;\n }>;\n stream<T = unknown>(\n subscription: string,\n consumer: string,\n options?: {\n credential?: string;\n batching?: BackfillBatchingRequest;\n signal?: AbortSignal;\n },\n ): Promise<BackfillDeliverySession<T>>;\n streamLive<T = unknown>(\n processor: string,\n consumer: string,\n options?: { credential?: string; signal?: AbortSignal },\n ): Promise<LiveDeliverySession<T>>;\n subscribe<T = unknown>(\n request: MultiLaneSubscriptionRequest,\n ): Promise<MultiLaneDelivery<T>>;\n}\n\nexport function createBackfillSubscriptionClient(\n options: BackfillSubscriptionClientOptions,\n): BackfillSubscriptionClient {\n const baseUrl = normalizeBaseUrl(options.baseUrl);\n const fetchImpl = options.fetch ?? globalThis.fetch;\n if (!fetchImpl) {\n throw new TypeError(\"a fetch implementation is required\");\n }\n\n const timeoutMs = options.timeoutMs ?? 30_000;\n assertPositiveInteger(timeoutMs, \"timeoutMs\");\n const requestJson = async <T>(\n method: \"GET\" | \"POST\" | \"DELETE\",\n path: string,\n body: unknown,\n signal: AbortSignal | undefined,\n credential?: string,\n sessionToken?: string,\n ): Promise<T> => {\n const headers = requestHeaders(\n options.token,\n \"application/json\",\n credential,\n sessionToken,\n );\n const response = await send(fetchImpl, resolveUnder(baseUrl, path), {\n method,\n headers:\n method === \"GET\" || body !== undefined\n ? headers\n : markLeaniRequest(headers),\n body: body === undefined ? undefined : JSON.stringify(body),\n signal: withDeadline(signal, timeoutMs),\n }, signal);\n if (!response.ok) {\n throw await responseError(response);\n }\n return readJson<T>(response, signal);\n };\n\n return Object.freeze({\n baseUrl,\n create: (request: CreateBackfillSubscription) =>\n requestJson<BackfillStatus>(\n \"POST\",\n \"admin/v1/backfill-subscriptions\",\n {\n processor: request.processor,\n ...(request.ranges === undefined\n ? {\n fromBlock: assertBlock(request.fromBlock, \"fromBlock\"),\n toBlock: assertUpperBound(request.toBlock, \"toBlock\"),\n }\n : {\n ranges: request.ranges.map((range, index) => ({\n fromBlock: assertBlock(\n range.fromBlock,\n `ranges[${index}].fromBlock`,\n ),\n toBlock: assertUpperBound(\n range.toBlock,\n `ranges[${index}].toBlock`,\n ),\n })),\n }),\n mode: request.mode ?? \"fill_missing\",\n consumer:\n request.consumer === undefined\n ? undefined\n : {\n id: assertIdentity(request.consumer.id, \"consumer.id\"),\n role: request.consumer.role,\n leaseTtlSeconds: assertPositiveInteger(\n request.consumer.leaseTtlSeconds,\n \"consumer.leaseTtlSeconds\",\n ),\n credential:\n request.consumer.credential === undefined\n ? undefined\n : assertIdentity(\n request.consumer.credential,\n \"consumer.credential\",\n ),\n },\n limits:\n request.limits === undefined\n ? undefined\n : {\n maxUnacknowledgedBlocks: assertPositiveInteger(\n request.limits.maxUnacknowledgedBlocks,\n \"limits.maxUnacknowledgedBlocks\",\n ),\n maxUnacknowledgedBytes: assertPositiveInteger(\n request.limits.maxUnacknowledgedBytes,\n \"limits.maxUnacknowledgedBytes\",\n ),\n resumeBelowRatio: assertRatio(\n request.limits.resumeBelowRatio,\n \"limits.resumeBelowRatio\",\n ),\n },\n batching:\n request.batching === undefined\n ? undefined\n : {\n targetEncodedBytes:\n request.batching.targetEncodedBytes === undefined\n ? undefined\n : assertPositiveInteger(\n request.batching.targetEncodedBytes,\n \"batching.targetEncodedBytes\",\n ),\n maximumEncodedBytes:\n request.batching.maximumEncodedBytes === undefined\n ? undefined\n : assertPositiveInteger(\n request.batching.maximumEncodedBytes,\n \"batching.maximumEncodedBytes\",\n ),\n maximumEvents:\n request.batching.maximumEvents === undefined\n ? undefined\n : assertPositiveInteger(\n request.batching.maximumEvents,\n \"batching.maximumEvents\",\n ),\n maximumProcessedBlocks:\n request.batching.maximumProcessedBlocks === undefined\n ? undefined\n : assertPositiveInteger(\n request.batching.maximumProcessedBlocks,\n \"batching.maximumProcessedBlocks\",\n ),\n maximumDelayMs:\n request.batching.maximumDelayMs === undefined\n ? undefined\n : assertPositiveInteger(\n request.batching.maximumDelayMs,\n \"batching.maximumDelayMs\",\n ),\n compression: request.batching.compression,\n },\n idempotencyKey: assertIdentity(\n request.idempotencyKey,\n \"idempotencyKey\",\n ),\n },\n request.signal,\n ),\n list: async (listOptions?: { signal?: AbortSignal }) => {\n const response = await requestJson<{ data: BackfillStatus[] }>(\n \"GET\",\n \"admin/v1/backfill-subscriptions\",\n undefined,\n listOptions?.signal,\n );\n return response.data;\n },\n inspect: (\n subscription: string,\n inspectOptions?: { signal?: AbortSignal },\n ) =>\n requestJson<BackfillStatus>(\n \"GET\",\n `admin/v1/backfill-subscriptions/${encodeURIComponent(assertIdentity(subscription, \"subscription\"))}`,\n undefined,\n inspectOptions?.signal,\n ),\n cancel: (\n subscription: string,\n cancelOptions?: { signal?: AbortSignal },\n ) =>\n requestJson<BackfillStatus>(\n \"POST\",\n `admin/v1/backfill-subscriptions/${encodeURIComponent(assertIdentity(subscription, \"subscription\"))}/cancel`,\n undefined,\n cancelOptions?.signal,\n ),\n delete: (\n subscription: string,\n deleteOptions?: { signal?: AbortSignal },\n ) =>\n requestJson<HistoricalWorkDeletion>(\n \"DELETE\",\n `admin/v1/backfill-subscriptions/${encodeURIComponent(assertIdentity(subscription, \"subscription\"))}`,\n undefined,\n deleteOptions?.signal,\n ),\n changes: <T>(\n subscription: string,\n consumer: string,\n changeOptions: {\n credential?: string;\n limit?: number;\n signal?: AbortSignal;\n } = {},\n ) => {\n const path = consumerPath(subscription, consumer, \"changes\");\n const query =\n changeOptions.limit === undefined\n ? \"\"\n : `?limit=${assertPositiveInteger(changeOptions.limit, \"limit\")}`;\n return requestJson<{\n data: ChangeEnvelope<T>[];\n nextCursor: string | null;\n coverage: unknown;\n }>(\n \"GET\",\n `${path}${query}`,\n undefined,\n changeOptions.signal,\n changeOptions.credential,\n );\n },\n stream: <T>(\n subscription: string,\n consumer: string,\n streamOptions: {\n credential?: string;\n batching?: BackfillBatchingRequest;\n signal?: AbortSignal;\n } = {},\n ) =>\n openBackfillStream<T>(\n fetchImpl,\n baseUrl,\n options.token,\n timeoutMs,\n subscription,\n consumer,\n streamOptions.credential,\n streamOptions.batching,\n streamOptions.signal,\n ),\n streamLive: <T>(\n processor: string,\n consumer: string,\n streamOptions: { credential?: string; signal?: AbortSignal } = {},\n ) =>\n openLiveStream<T>(\n fetchImpl,\n baseUrl,\n options.token,\n timeoutMs,\n processor,\n consumer,\n streamOptions.credential,\n streamOptions.signal,\n ),\n subscribe: <T>(request: MultiLaneSubscriptionRequest) =>\n openMultiLaneDelivery<T>(\n fetchImpl,\n baseUrl,\n options.token,\n timeoutMs,\n request,\n ),\n });\n}\n\ninterface UnifiedLane<T> {\n readonly kind: \"live\" | \"history\";\n readonly laneId: string;\n readonly streamId: string;\n readonly deliveryOrdering: \"canonical\" | \"block_versioned_idempotent\";\n next(): Promise<IteratorResult<UnifiedDeliveryBatch<T>>>;\n acknowledge(\n cursor: string,\n options?: { signal?: AbortSignal },\n ): Promise<DurableConsumer>;\n close(): Promise<void>;\n}\n\nasync function openMultiLaneDelivery<T>(\n fetchImpl: FetchLike,\n baseUrl: URL,\n token: string | undefined,\n timeoutMs: number,\n request: MultiLaneSubscriptionRequest,\n): Promise<MultiLaneDelivery<T>> {\n const processor = assertIdentity(request.processor, \"processor\");\n const consumer = assertIdentity(request.consumer, \"consumer\");\n const history = request.lanes.history ?? [];\n const historyIds = history.map(({ subscriptionId }, index) =>\n assertIdentity(subscriptionId, `lanes.history[${index}].subscriptionId`),\n );\n if (new Set(historyIds).size !== historyIds.length) {\n throw new TypeError(\"history subscription IDs must be unique\");\n }\n if (!request.lanes.live && historyIds.length === 0) {\n throw new TypeError(\"subscribe requires at least one live or history lane\");\n }\n const view = request.view ?? \"live_priority\";\n const lanes: UnifiedLane<T>[] = [];\n try {\n if (request.lanes.live) {\n const open = (signal = request.signal) =>\n openLiveStream<T>(\n fetchImpl,\n baseUrl,\n token,\n timeoutMs,\n processor,\n consumer,\n request.credential,\n signal,\n );\n lanes.push(unifiedLiveLane(await open(), open, request.signal));\n }\n for (const subscriptionId of historyIds) {\n const open = (signal = request.signal) =>\n openBackfillStream<T>(\n fetchImpl,\n baseUrl,\n token,\n timeoutMs,\n subscriptionId,\n consumer,\n request.credential,\n request.batching,\n signal,\n );\n lanes.push(\n unifiedHistoryLane(\n subscriptionId,\n await open(),\n open,\n request.signal,\n ),\n );\n }\n } catch (error) {\n await Promise.allSettled(lanes.map((lane) => lane.close()));\n throw error;\n }\n if (\n lanes.length > 1 &&\n lanes.some((lane) => lane.deliveryOrdering === \"canonical\")\n ) {\n await Promise.allSettled(lanes.map((lane) => lane.close()));\n throw new TypeError(\n \"canonical processors cannot interleave live and history lanes\",\n );\n }\n\n const claimed = new Set<string>();\n const claim = (selected: UnifiedLane<T>[]): void => {\n const duplicate = selected.find((lane) => claimed.has(lane.streamId));\n if (duplicate) {\n throw new TypeError(`delivery lane ${duplicate.streamId} is already being iterated`);\n }\n for (const lane of selected) {\n claimed.add(lane.streamId);\n }\n };\n const iterate = (selected: UnifiedLane<T>): AsyncIterable<UnifiedDeliveryBatch<T>> =>\n iterateUnifiedLanes([selected], claim);\n const byStream = new Map(lanes.map((lane) => [lane.streamId, lane]));\n const live = lanes.find((lane) => lane.kind === \"live\");\n const byHistoryId = new Map(\n lanes\n .filter((lane) => lane.kind === \"history\")\n .map((lane) => [lane.laneId, lane]),\n );\n return Object.freeze({\n batches: () => {\n if (view !== \"live_priority\") {\n throw new TypeError(\n \"batches() requires view=live_priority; use lane-specific iterators\",\n );\n }\n return iterateUnifiedLanes(lanes, claim);\n },\n liveBatches: () => {\n if (view !== \"lane_specific\") {\n throw new TypeError(\"liveBatches() requires view=lane_specific\");\n }\n if (!live) {\n throw new TypeError(\"the delivery subscription has no live lane\");\n }\n return iterate(live);\n },\n historyBatches: (subscriptionId: string) => {\n if (view !== \"lane_specific\") {\n throw new TypeError(\"historyBatches() requires view=lane_specific\");\n }\n const id = assertIdentity(subscriptionId, \"subscriptionId\");\n const lane = byHistoryId.get(id);\n if (!lane) {\n throw new TypeError(`history subscription ${id} is not selected`);\n }\n return iterate(lane);\n },\n acknowledge: (\n batch: UnifiedDeliveryBatch<T>,\n acknowledgeOptions?: { signal?: AbortSignal },\n ) => {\n const lane = byStream.get(batch.streamId);\n if (!lane || lane.laneId !== batch.laneId || lane.kind !== batch.laneKind) {\n throw new TypeError(\"delivery batch does not belong to this subscription object\");\n }\n return lane.acknowledge(batch.ackCursor, acknowledgeOptions);\n },\n close: async () => {\n const outcomes = await Promise.allSettled(lanes.map((lane) => lane.close()));\n const failed = outcomes.find(\n (outcome): outcome is PromiseRejectedResult => outcome.status === \"rejected\",\n );\n if (failed) {\n throw failed.reason;\n }\n },\n });\n}\n\nfunction unifiedLiveLane<T>(\n initialSession: LiveDeliverySession<T>,\n open: (signal?: AbortSignal) => Promise<LiveDeliverySession<T>>,\n signal: AbortSignal | undefined,\n): UnifiedLane<T> {\n const connection = reconnectingLaneConnection(initialSession, open, signal);\n return {\n kind: \"live\",\n laneId: \"live\",\n streamId: initialSession.hello.streamId,\n deliveryOrdering: initialSession.hello.processor.deliveryOrdering,\n async next() {\n while (true) {\n const next = await connection.next();\n if (next.done) return { done: true, value: undefined };\n if (next.value.type === \"heartbeat\") continue;\n const record = next.value;\n return {\n done: false,\n value: {\n laneKind: \"live\",\n laneId: \"live\",\n streamId: record.streamId,\n ackCursor: record.acknowledgeableCursor,\n events: record.changes,\n record,\n },\n };\n }\n },\n acknowledge: connection.acknowledge,\n close: connection.close,\n };\n}\n\nfunction unifiedHistoryLane<T>(\n subscriptionId: string,\n initialSession: BackfillDeliverySession<T>,\n open: (signal?: AbortSignal) => Promise<BackfillDeliverySession<T>>,\n signal: AbortSignal | undefined,\n): UnifiedLane<T> {\n const connection = reconnectingLaneConnection(initialSession, open, signal);\n let complete = false;\n return {\n kind: \"history\",\n laneId: subscriptionId,\n streamId: initialSession.hello.streamId,\n deliveryOrdering: initialSession.hello.processor.deliveryOrdering,\n async next() {\n if (complete) return { done: true, value: undefined };\n while (true) {\n const next = await connection.next();\n if (next.done) return { done: true, value: undefined };\n if (next.value.type === \"heartbeat\") continue;\n complete = next.value.type === \"backfill_complete\";\n return {\n done: false,\n value: historyDeliveryBatch(subscriptionId, next.value),\n };\n }\n },\n acknowledge: connection.acknowledge,\n close: connection.close,\n };\n}\n\n/** A history batch or the completion with the cursor that acknowledges it. */\nfunction historyDeliveryBatch<T>(\n laneId: string,\n record: BackfillStreamBatch<T> | BackfillStreamCompletion,\n): HistoryDeliveryBatch<T> {\n if (record.type === \"backfill_complete\") {\n return {\n laneKind: \"history\",\n laneId,\n streamId: record.streamId,\n ackCursor: record.cursor,\n events: [],\n completion: record,\n record,\n };\n }\n return {\n laneKind: \"history\",\n laneId,\n streamId: record.streamId,\n ackCursor: record.acknowledgeableCursor,\n events: record.changes,\n record,\n };\n}\n\ninterface ReconnectingLaneConnection<THello, TRecord> {\n next(): Promise<IteratorResult<TRecord>>;\n acknowledge(\n cursor: string,\n options?: { signal?: AbortSignal },\n ): Promise<DurableConsumer>;\n close(): Promise<void>;\n}\n\nfunction reconnectingLaneConnection<\n THello extends {\n streamId: string;\n storeEpoch: string;\n processor: ProcessorSummary;\n },\n TRecord,\n>(\n initialSession: DeliverySession<THello, TRecord>,\n open: (signal?: AbortSignal) => Promise<DeliverySession<THello, TRecord>>,\n signal: AbortSignal | undefined,\n): ReconnectingLaneConnection<THello, TRecord> {\n const expected = initialSession.hello;\n const stop = new AbortController();\n const reconnectSignal = signal\n ? AbortSignal.any([signal, stop.signal])\n : stop.signal;\n let session = initialSession;\n let iterator = session[Symbol.asyncIterator]();\n let closed = false;\n let reconnectTask: Promise<void> | undefined;\n\n const reconnect = (): Promise<void> => {\n reconnectTask ??= (async () => {\n await session.close().catch(() => undefined);\n let delayMs = 25;\n while (!reconnectSignal.aborted) {\n try {\n const replacement = await open(reconnectSignal);\n try {\n validateReplacementHello(expected, replacement.hello);\n } catch (error) {\n await replacement.close().catch(() => undefined);\n throw error;\n }\n session = replacement;\n iterator = replacement[Symbol.asyncIterator]();\n return;\n } catch (error) {\n if (!isRetryableDeliveryDisconnect(error)) throw error;\n await waitForReconnectDelay(delayMs, reconnectSignal);\n delayMs = Math.min(delayMs * 2, 5_000);\n }\n }\n throw reconnectSignal.reason ?? new DOMException(\"Aborted\", \"AbortError\");\n })().finally(() => {\n reconnectTask = undefined;\n });\n return reconnectTask;\n };\n\n const next = async (): Promise<IteratorResult<TRecord>> => {\n while (!closed && !reconnectSignal.aborted) {\n try {\n const result = await iterator.next();\n if (!result.done) return result;\n } catch (error) {\n if (!isRetryableDeliveryDisconnect(error)) throw error;\n }\n await reconnect();\n }\n return { done: true, value: undefined };\n };\n\n const acknowledge = async (\n cursor: string,\n options?: { signal?: AbortSignal },\n ): Promise<DurableConsumer> => {\n try {\n return await session.acknowledge(cursor, options);\n } catch (error) {\n if (!isRetryableDeliveryDisconnect(error)) throw error;\n await reconnect();\n return session.acknowledge(cursor, options);\n }\n };\n\n return {\n next,\n acknowledge,\n close: async () => {\n if (closed) return;\n closed = true;\n stop.abort();\n await session.close();\n // A stopped reconnect rejects with the abort reason, which may be the\n // caller's own, of any type.\n await reconnectTask?.catch((error: unknown) => {\n if (!reconnectSignal.aborted) throw error;\n });\n },\n };\n}\n\nfunction validateReplacementHello<\n THello extends {\n streamId: string;\n storeEpoch: string;\n processor: ProcessorSummary;\n },\n>(expected: THello, replacement: THello): void {\n if (\n replacement.streamId !== expected.streamId ||\n replacement.storeEpoch !== expected.storeEpoch ||\n replacement.processor.id !== expected.processor.id ||\n replacement.processor.version !== expected.processor.version ||\n replacement.processor.codeHash !== expected.processor.codeHash ||\n replacement.processor.configHash !== expected.processor.configHash ||\n replacement.processor.deliveryOrdering !==\n expected.processor.deliveryOrdering\n ) {\n throw streamProtocolError(\n \"live\",\n \"replacement connection changed its durable lane identity\",\n );\n }\n}\n\n/**\n * Classified by where the failure came from, never by its message: the SDK\n * reports every failure below HTTP as a retryable TransportError, and a\n * caller's abort, a stream record, or a local check is never retried.\n */\nfunction isRetryableDeliveryDisconnect(error: unknown): boolean {\n return (\n error instanceof LeaniError &&\n (error.retryable ||\n error.code === \"consumer_session_active\" ||\n error.code === \"consumer_session_lost\")\n );\n}\n\nasync function waitForReconnectDelay(\n delayMs: number,\n signal: AbortSignal,\n): Promise<void> {\n if (signal.aborted) {\n throw signal.reason ?? new DOMException(\"Aborted\", \"AbortError\");\n }\n await new Promise<void>((resolve, reject) => {\n const finish = () => {\n signal.removeEventListener(\"abort\", abort);\n resolve();\n };\n const timeout = setTimeout(finish, delayMs);\n const abort = () => {\n clearTimeout(timeout);\n signal.removeEventListener(\"abort\", abort);\n reject(signal.reason ?? new DOMException(\"Aborted\", \"AbortError\"));\n };\n signal.addEventListener(\"abort\", abort, { once: true });\n });\n}\n\nfunction iterateUnifiedLanes<T>(\n lanes: UnifiedLane<T>[],\n claim: (lanes: UnifiedLane<T>[]) => void,\n): AsyncIterable<UnifiedDeliveryBatch<T>> {\n return {\n async *[Symbol.asyncIterator]() {\n claim(lanes);\n const ready: number[] = [];\n const settled = new Map<\n number,\n | { result: IteratorResult<UnifiedDeliveryBatch<T>>; error?: never }\n | { result?: never; error: unknown }\n >();\n let wake: (() => void) | undefined;\n let active = lanes.length;\n const schedule = (index: number): void => {\n lanes[index]!.next().then(\n (result) => {\n settled.set(index, { result });\n ready.push(index);\n wake?.();\n wake = undefined;\n },\n (error: unknown) => {\n settled.set(index, { error });\n ready.push(index);\n wake?.();\n wake = undefined;\n },\n );\n };\n for (let index = 0; index < lanes.length; index += 1) schedule(index);\n while (active > 0) {\n if (ready.length === 0) {\n await new Promise<void>((resolve) => {\n wake = resolve;\n });\n }\n const livePosition = ready.findIndex(\n (index) => lanes[index]!.kind === \"live\",\n );\n const [index] = ready.splice(livePosition >= 0 ? livePosition : 0, 1);\n const outcome = settled.get(index!);\n settled.delete(index!);\n if (!outcome) throw new Error(\"delivery scheduler lost a settled lane\");\n if (\"error\" in outcome) throw outcome.error;\n if (outcome.result.done) {\n active -= 1;\n continue;\n }\n const completed = outcome.result.value.completion !== undefined;\n if (completed) {\n active -= 1;\n }\n yield outcome.result.value;\n if (!completed) {\n schedule(index!);\n await Promise.resolve();\n }\n }\n },\n };\n}\n\nasync function openBackfillStream<T>(\n fetchImpl: FetchLike,\n baseUrl: URL,\n token: string | undefined,\n timeoutMs: number,\n subscription: string,\n consumer: string,\n credential: string | undefined,\n batching: BackfillBatchingRequest | undefined,\n signal: AbortSignal | undefined,\n): Promise<BackfillDeliverySession<T>> {\n const session = await openDeliverySession<\n BackfillStreamHello,\n BackfillStreamRecord<T>\n >(\n fetchImpl,\n baseUrl,\n token,\n timeoutMs,\n backfillStreamPath(subscription, consumer, batching),\n consumerPath(subscription, consumer, \"ack\"),\n consumerPath(subscription, consumer, \"lease\"),\n credential,\n signal,\n \"backfill\",\n );\n const batches = async function* (): AsyncGenerator<BackfillStreamBatch<T>> {\n for await (const record of session) {\n if (record.type === \"batch\") {\n yield record;\n }\n }\n };\n // The stream ends once the completion is acknowledged, so iteration\n // continues past it rather than closing the session first.\n const deliveryBatches = async function* (): AsyncGenerator<\n HistoryDeliveryBatch<T>\n > {\n for await (const record of session) {\n if (record.type !== \"heartbeat\") {\n yield historyDeliveryBatch(session.hello.subscriptionId, record);\n }\n }\n };\n const events = async function* (): AsyncGenerator<ChangeEnvelope<T>> {\n for await (const batch of batches()) {\n yield* batch.changes;\n }\n };\n return Object.freeze({\n hello: session.hello,\n acknowledge: session.acknowledge.bind(session),\n close: session.close.bind(session),\n batches,\n deliveryBatches,\n events,\n [Symbol.asyncIterator]: session[Symbol.asyncIterator].bind(session),\n });\n}\n\nasync function openLiveStream<T>(\n fetchImpl: FetchLike,\n baseUrl: URL,\n token: string | undefined,\n timeoutMs: number,\n processor: string,\n consumer: string,\n credential: string | undefined,\n signal: AbortSignal | undefined,\n): Promise<LiveDeliverySession<T>> {\n return openDeliverySession<LiveStreamHello, LiveStreamRecord<T>>(\n fetchImpl,\n baseUrl,\n token,\n timeoutMs,\n liveConsumerPath(processor, consumer, \"stream\"),\n liveConsumerPath(processor, consumer, \"ack\"),\n liveConsumerPath(processor, consumer, \"lease\"),\n credential,\n signal,\n \"live\",\n );\n}\n\nasync function openDeliverySession<THello, TRecord>(\n fetchImpl: FetchLike,\n baseUrl: URL,\n token: string | undefined,\n timeoutMs: number,\n streamPath: string,\n acknowledgePath: string,\n renewPath: string,\n credential: string | undefined,\n signal: AbortSignal | undefined,\n streamKind: \"backfill\" | \"live\",\n): Promise<DeliverySession<THello, TRecord>> {\n const connection = new AbortController();\n // A connection that fails on its own, rather than through the caller's\n // abort or close(), keeps the failure for the iterator and acknowledge().\n let failure: unknown;\n const fail = (error: unknown): void => {\n if (connection.signal.aborted) {\n return;\n }\n failure = error;\n connection.abort(error);\n };\n const stopFromCaller = () => connection.abort(signal?.reason);\n signal?.addEventListener(\"abort\", stopFromCaller, { once: true });\n if (signal?.aborted) {\n stopFromCaller();\n }\n // Until its hello arrives, the stream may stay silent as long as a JSON\n // request may take; afterwards, for three heartbeat intervals.\n let watchdog = idleWatchdog(timeoutMs, () =>\n fail(\n new TransportError(\n `${streamKind} stream sent no hello within ${timeoutMs} ms`,\n ),\n ));\n let records: AsyncGenerator<unknown> | undefined;\n let wireHello: SessionStreamHello & Record<string, unknown>;\n let sessionToken: string;\n let leaseTtlMs: number;\n let heartbeatIntervalMs: number;\n try {\n watchdog.arm();\n const response = await send(fetchImpl, resolveUnder(baseUrl, streamPath), {\n headers: requestHeaders(token, \"application/x-ndjson\", credential),\n signal: connection.signal,\n }, signal);\n if (!response.ok) {\n throw await responseError(response);\n }\n if (!response.body) {\n throw new BackfillStreamError({\n type: \"error\",\n code: \"stream_body_missing\",\n message: `${streamKind} stream response has no body`,\n earliestAvailableSequence: null,\n latestAvailableSequence: null,\n });\n }\n records = ndjsonRecords(response.body, connection.signal, () =>\n watchdog.arm());\n const first = await records.next();\n if (first.done) {\n throw streamProtocolError(streamKind, \"stream ended before its hello record\");\n }\n const firstType = (first.value as { type?: unknown }).type;\n if (firstType === \"error\" || firstType === \"reset_required\") {\n throw new BackfillStreamError(\n first.value as BackfillStreamFailure | BackfillStreamReset,\n );\n }\n if (firstType !== \"hello\") {\n throw streamProtocolError(streamKind, \"first stream record is not hello\");\n }\n wireHello = first.value as SessionStreamHello & Record<string, unknown>;\n sessionToken = assertIdentity(\n wireHello.sessionToken,\n \"stream hello sessionToken\",\n );\n leaseTtlMs = parseHelloDuration(wireHello.leaseTtlMs, \"leaseTtlMs\");\n heartbeatIntervalMs = parseHelloDuration(\n wireHello.heartbeatIntervalMs,\n \"heartbeatIntervalMs\",\n );\n } catch (error) {\n connection.abort();\n signal?.removeEventListener(\"abort\", stopFromCaller);\n await records?.return(undefined).catch(() => undefined);\n throw failure ?? error;\n } finally {\n watchdog.disarm();\n }\n const stream = records;\n const { sessionToken: _sessionToken, ...publicHello } = wireHello;\n const idleMs = 3 * heartbeatIntervalMs;\n watchdog = idleWatchdog(idleMs, () =>\n fail(\n new TransportError(`${streamKind} stream sent nothing for ${idleMs} ms`),\n ));\n const renewal = new AbortController();\n const renewalTask = renewSessionUntilStopped(\n fetchImpl,\n baseUrl,\n token,\n timeoutMs,\n renewPath,\n credential,\n sessionToken,\n leaseTtlMs,\n renewal.signal,\n ).catch((error: unknown) => {\n // A lease that cannot be renewed ends the connection at once instead of\n // at the next record, which may never come.\n if (!renewal.signal.aborted) {\n fail(error);\n }\n });\n let iteratorClaimed = false;\n let closeTask: Promise<void> | undefined;\n const close = (): Promise<void> => {\n closeTask ??= (async () => {\n renewal.abort();\n watchdog.disarm();\n connection.abort();\n signal?.removeEventListener(\"abort\", stopFromCaller);\n try {\n await stream.return(undefined);\n } catch (error) {\n if (!connection.signal.aborted) {\n throw error;\n }\n }\n await renewalTask;\n try {\n const released = await send(fetchImpl, resolveUnder(baseUrl, renewPath), {\n method: \"DELETE\",\n headers: markLeaniRequest(\n requestHeaders(token, \"application/json\", credential, sessionToken),\n ),\n signal: AbortSignal.timeout(timeoutMs),\n }, undefined);\n void released.body?.cancel().catch(() => undefined);\n } catch {\n // The lease also expires and is passively released when the stream\n // disconnects. Explicit release only makes clean reconnect immediate.\n }\n })();\n return closeTask;\n };\n const iterate = async function* (): AsyncGenerator<TRecord> {\n if (iteratorClaimed) {\n throw new TypeError(\"a delivery session can only be iterated once\");\n }\n iteratorClaimed = true;\n try {\n while (true) {\n let next: IteratorResult<unknown>;\n // Only a pending read counts silence, not the time the application\n // spends on a record.\n watchdog.arm();\n try {\n next = await stream.next();\n } catch (error) {\n // The caller's abort and close() end the iteration quietly.\n if (failure === undefined && connection.signal.aborted) {\n return;\n }\n throw failure ?? error;\n } finally {\n watchdog.disarm();\n }\n if (failure !== undefined) {\n throw failure;\n }\n if (next.done) {\n return;\n }\n const record = next.value as\n | TRecord\n | BackfillStreamFailure\n | BackfillStreamReset;\n const recordType = (record as { type?: unknown }).type;\n if (recordType === \"error\" || recordType === \"reset_required\") {\n throw new BackfillStreamError(\n record as BackfillStreamFailure | BackfillStreamReset,\n );\n }\n if (recordType === \"hello\") {\n throw streamProtocolError(streamKind, \"stream sent a second hello record\");\n }\n yield record as TRecord;\n }\n } finally {\n await close();\n }\n };\n return Object.freeze({\n hello: publicHello as unknown as THello,\n acknowledge: async (\n cursor: string,\n acknowledgeOptions?: { signal?: AbortSignal },\n ): Promise<DurableConsumer> => {\n if (closeTask !== undefined) {\n throw new TypeError(\"delivery session is closed\");\n }\n if (failure !== undefined) {\n throw failure;\n }\n const caller = acknowledgeOptions?.signal;\n const acknowledge = await send(\n fetchImpl,\n resolveUnder(baseUrl, acknowledgePath),\n {\n method: \"POST\",\n headers: requestHeaders(\n token,\n \"application/json\",\n credential,\n sessionToken,\n ),\n body: JSON.stringify({ cursor: assertIdentity(cursor, \"cursor\") }),\n signal: withDeadline(caller, timeoutMs),\n },\n caller,\n );\n if (!acknowledge.ok) {\n throw await responseError(acknowledge);\n }\n return readJson<DurableConsumer>(acknowledge, caller);\n },\n close,\n [Symbol.asyncIterator]: iterate,\n });\n}\n\nfunction streamProtocolError(\n streamKind: \"backfill\" | \"live\",\n message: string,\n): BackfillStreamError {\n return new BackfillStreamError({\n type: \"error\",\n code: \"invalid_stream_protocol\",\n message: `${streamKind} ${message}`,\n earliestAvailableSequence: null,\n latestAvailableSequence: null,\n });\n}\n\ninterface SessionStreamHello {\n type: \"hello\";\n sessionToken: string;\n leaseTtlMs: string;\n heartbeatIntervalMs: string;\n}\n\nasync function renewSessionUntilStopped(\n fetchImpl: FetchLike,\n baseUrl: URL,\n token: string | undefined,\n timeoutMs: number,\n renewPath: string,\n credential: string | undefined,\n sessionToken: string,\n leaseTtlMs: number,\n stop: AbortSignal,\n): Promise<void> {\n const intervalMs = Math.max(50, Math.floor(leaseTtlMs / 3));\n const firstRetryMs = Math.max(10, Math.floor(intervalMs / 10));\n // The node renewed the lease no earlier than the request that renewed it.\n let renewedAt = performance.now();\n let delayMs = intervalMs;\n let retryMs = firstRetryMs;\n while (!stop.aborted) {\n await abortableDelay(delayMs, stop);\n if (stop.aborted) {\n return;\n }\n const attemptedAt = performance.now();\n const leaseLeftMs = renewedAt + leaseTtlMs - attemptedAt;\n try {\n const response = await send(fetchImpl, resolveUnder(baseUrl, renewPath), {\n method: \"POST\",\n headers: markLeaniRequest(\n requestHeaders(token, \"application/json\", credential, sessionToken),\n ),\n // An answer after the lease lapsed could not keep it.\n signal: withDeadline(\n stop,\n Math.max(1, Math.min(timeoutMs, Math.floor(leaseLeftMs))),\n ),\n }, stop);\n if (!response.ok) {\n throw await responseError(response);\n }\n await readText(response, stop);\n renewedAt = attemptedAt;\n delayMs = intervalMs;\n retryMs = firstRetryMs;\n } catch (error) {\n // Retry a transient failure, with backoff, while the lease holds.\n const retryable = error instanceof LeaniError && error.retryable;\n if (\n stop.aborted ||\n !retryable ||\n renewedAt + leaseTtlMs - performance.now() <= retryMs\n ) {\n throw error;\n }\n delayMs = retryMs;\n retryMs *= 2;\n }\n }\n}\n\nfunction abortableDelay(delayMs: number, signal: AbortSignal): Promise<void> {\n return new Promise((resolve) => {\n const finish = () => {\n clearTimeout(timeout);\n signal.removeEventListener(\"abort\", finish);\n resolve();\n };\n const timeout = setTimeout(finish, delayMs);\n signal.addEventListener(\"abort\", finish, { once: true });\n });\n}\n\nfunction parseHelloDuration(value: string, field: string): number {\n const milliseconds = Number(value);\n if (!Number.isSafeInteger(milliseconds) || milliseconds <= 0) {\n throw new TypeError(`stream hello contains an invalid ${field}`);\n }\n return milliseconds;\n}\n\nexport async function* parseNdjson(\n body: ReadableStream<Uint8Array>,\n signal?: AbortSignal,\n): AsyncGenerator<unknown> {\n yield* ndjsonRecords(body, signal);\n}\n\n/**\n * The largest NDJSON record the client buffers: the node's default buffer\n * for a batch's changes, 64 MiB, and room for the batch's own fields.\n */\nconst MAX_NDJSON_RECORD_BYTES = 65 * 1024 * 1024;\n\nconst LINE_FEED = 0x0a;\n\n/**\n * Split NDJSON records at line feeds, scanning each byte once. A line feed is\n * ASCII, so a scan by byte never splits a UTF-8 character.\n */\nasync function* ndjsonRecords(\n body: ReadableStream<Uint8Array>,\n signal: AbortSignal | undefined,\n onChunk?: () => void,\n): AsyncGenerator<unknown> {\n const decoder = new TextDecoder();\n // The bytes received so far of the record in progress.\n let pending: Uint8Array[] = [];\n let pendingBytes = 0;\n for await (const chunk of readChunks(body, signal, onChunk)) {\n let lineStart = 0;\n let newline = chunk.indexOf(LINE_FEED);\n while (newline >= 0) {\n const tail = chunk.subarray(lineStart, newline);\n if (pendingBytes + tail.length > MAX_NDJSON_RECORD_BYTES) {\n throw ndjsonRecordTooLarge();\n }\n const line = decoder\n .decode(concatBytes(pending, pendingBytes, tail))\n .trim();\n pending = [];\n pendingBytes = 0;\n lineStart = newline + 1;\n if (line) {\n yield JSON.parse(line) as unknown;\n }\n newline = chunk.indexOf(LINE_FEED, lineStart);\n }\n const rest = chunk.subarray(lineStart);\n if (rest.length > 0) {\n pendingBytes += rest.length;\n if (pendingBytes > MAX_NDJSON_RECORD_BYTES) {\n throw ndjsonRecordTooLarge();\n }\n pending.push(rest);\n }\n }\n if (signal?.aborted) {\n throw signal.reason ?? new DOMException(\"aborted\", \"AbortError\");\n }\n const finalLine = decoder\n .decode(concatBytes(pending, pendingBytes, new Uint8Array()))\n .trim();\n if (finalLine) {\n yield JSON.parse(finalLine) as unknown;\n }\n}\n\nfunction ndjsonRecordTooLarge(): LeaniError {\n return new LeaniError(\n `NDJSON record exceeds ${MAX_NDJSON_RECORD_BYTES} bytes`,\n { status: 200, code: \"invalid_response\", retryable: false },\n );\n}\n\nfunction normalizeBaseUrl(value: string | URL): URL {\n const url = new URL(value);\n if (!url.pathname.endsWith(\"/\")) {\n url.pathname += \"/\";\n }\n return url;\n}\n\nfunction requestHeaders(\n token: string | undefined,\n accept: string,\n credential?: string,\n sessionToken?: string,\n): Headers {\n const headers = new Headers({ accept });\n if (token) {\n headers.set(\"authorization\", `Bearer ${token}`);\n }\n if (credential !== undefined) {\n headers.set(\n \"x-leani-consumer-credential\",\n assertIdentity(credential, \"credential\"),\n );\n }\n if (sessionToken !== undefined) {\n headers.set(\n \"x-leani-consumer-session\",\n assertIdentity(sessionToken, \"sessionToken\"),\n );\n }\n if (accept === \"application/json\") {\n headers.set(\"content-type\", \"application/json\");\n }\n return headers;\n}\n\n/** Mark a mutation without a JSON body, which the node otherwise refuses. */\nfunction markLeaniRequest(headers: Headers): Headers {\n headers.set(\"x-leani-request\", \"1\");\n return headers;\n}\n\nfunction consumerPath(\n subscription: string,\n consumer: string,\n operation: \"changes\" | \"ack\" | \"lease\" | \"stream\",\n): string {\n return (\n `v1/backfill-subscriptions/${encodeURIComponent(assertIdentity(subscription, \"subscription\"))}` +\n `/consumers/${encodeURIComponent(assertIdentity(consumer, \"consumer\"))}/${operation}`\n );\n}\n\nfunction backfillStreamPath(\n subscription: string,\n consumer: string,\n batching: BackfillBatchingRequest | undefined,\n): string {\n const path = consumerPath(subscription, consumer, \"stream\");\n if (batching === undefined) return path;\n const query = new URLSearchParams();\n for (const [field, value] of [\n [\"targetEncodedBytes\", batching.targetEncodedBytes],\n [\"maximumEncodedBytes\", batching.maximumEncodedBytes],\n [\"maximumEvents\", batching.maximumEvents],\n [\"maximumProcessedBlocks\", batching.maximumProcessedBlocks],\n [\"maximumDelayMs\", batching.maximumDelayMs],\n ] as const) {\n if (value !== undefined) {\n query.set(field, String(assertPositiveInteger(value, `batching.${field}`)));\n }\n }\n return query.size === 0 ? path : `${path}?${query}`;\n}\n\nfunction liveConsumerPath(\n processor: string,\n consumer: string,\n operation: \"ack\" | \"lease\" | \"stream\",\n): string {\n return (\n `v1/processors/${encodeURIComponent(assertIdentity(processor, \"processor\"))}` +\n `/streams/live/consumers/${encodeURIComponent(assertIdentity(consumer, \"consumer\"))}/${operation}`\n );\n}\n\nfunction assertBlock(value: number, field: string): number {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new TypeError(`${field} must be a non-negative safe integer`);\n }\n return value;\n}\n\nfunction assertUpperBound(\n value: number | \"finalized\",\n field: string,\n): number | \"finalized\" {\n return value === \"finalized\" ? value : assertBlock(value, field);\n}\n\nfunction assertPositiveInteger(value: number, field: string): number {\n if (!Number.isSafeInteger(value) || value <= 0) {\n throw new TypeError(`${field} must be a positive safe integer`);\n }\n return value;\n}\n\nfunction assertIdentity(value: string, field: string): string {\n if (!value.trim()) {\n throw new TypeError(`${field} must not be empty`);\n }\n return value;\n}\n\nfunction assertRatio(value: number, field: string): number {\n if (!Number.isFinite(value) || value <= 0 || value >= 1) {\n throw new TypeError(`${field} must be greater than zero and less than one`);\n }\n return value;\n}\n"]}
|
package/dist/errors.d.ts
CHANGED
|
@@ -19,8 +19,17 @@ export declare class LeaniError extends Error {
|
|
|
19
19
|
retryable: boolean;
|
|
20
20
|
details?: Record<string, unknown> | null;
|
|
21
21
|
requestId?: string;
|
|
22
|
+
cause?: unknown;
|
|
22
23
|
});
|
|
23
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* A request that failed below HTTP: the connection was refused or reset, the
|
|
27
|
+
* deadline passed, the response body broke off, or a stream went silent. It
|
|
28
|
+
* has no HTTP status (`status` is 0), is always retryable, and keeps the
|
|
29
|
+
* underlying failure as `cause`.
|
|
30
|
+
*/
|
|
31
|
+
export declare class TransportError extends LeaniError {
|
|
32
|
+
constructor(message: string, cause?: unknown);
|
|
33
|
+
}
|
|
24
34
|
export declare function responseError(response: Response): Promise<LeaniError>;
|
|
25
35
|
export declare function errorFromBody(status: number, body: unknown): LeaniError;
|
|
26
|
-
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.js
CHANGED
|
@@ -5,7 +5,7 @@ export class LeaniError extends Error {
|
|
|
5
5
|
details;
|
|
6
6
|
requestId;
|
|
7
7
|
constructor(message, options) {
|
|
8
|
-
super(message);
|
|
8
|
+
super(message, options.cause === undefined ? undefined : { cause: options.cause });
|
|
9
9
|
this.name = "LeaniError";
|
|
10
10
|
this.status = options.status;
|
|
11
11
|
this.code = options.code;
|
|
@@ -14,6 +14,18 @@ export class LeaniError extends Error {
|
|
|
14
14
|
this.requestId = options.requestId;
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* A request that failed below HTTP: the connection was refused or reset, the
|
|
19
|
+
* deadline passed, the response body broke off, or a stream went silent. It
|
|
20
|
+
* has no HTTP status (`status` is 0), is always retryable, and keeps the
|
|
21
|
+
* underlying failure as `cause`.
|
|
22
|
+
*/
|
|
23
|
+
export class TransportError extends LeaniError {
|
|
24
|
+
constructor(message, cause) {
|
|
25
|
+
super(message, { status: 0, code: "transport", retryable: true, cause });
|
|
26
|
+
this.name = "TransportError";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
17
29
|
export async function responseError(response) {
|
|
18
30
|
let body;
|
|
19
31
|
try {
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAC1B,MAAM,CAAS;IACf,IAAI,CAAS;IACb,SAAS,CAAU;IACnB,OAAO,CAAkC;IACzC,SAAS,CAAU;IAE5B,YACE,OAAe,EACf,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAC1B,MAAM,CAAS;IACf,IAAI,CAAS;IACb,SAAS,CAAU;IACnB,OAAO,CAAkC;IACzC,SAAS,CAAU;IAE5B,YACE,OAAe,EACf,OAOC;QAED,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACrC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,UAAU;IAC5C,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAkB;IACpD,IAAI,IAAgC,CAAC;IACrC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;IAC7E,CAAC;IACD,OAAO,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,IAAa;IACzD,MAAM,KAAK,GAAI,IAAuC,EAAE,KAAK,CAAC;IAC9D,OAAO,IAAI,UAAU,CACnB,OAAO,KAAK,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,MAAM,EAAE,EACpF;QACE,MAAM;QACN,IAAI,EAAE,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;QAC/D,SAAS,EAAE,OAAO,KAAK,EAAE,SAAS,KAAK,SAAS;YAC9C,CAAC,CAAC,KAAK,CAAC,SAAS;YACjB,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,IAAI,GAAG;QACrD,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACxF,SAAS,EAAE,OAAO,KAAK,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KAC9E,CACF,CAAC;AACJ,CAAC","sourcesContent":["export interface LeaniErrorBody {\n error: {\n code: string;\n message: string;\n retryable: boolean;\n details?: Record<string, unknown> | null;\n requestId: string;\n };\n}\n\nexport class LeaniError extends Error {\n readonly status: number;\n readonly code: string;\n readonly retryable: boolean;\n readonly details?: Record<string, unknown> | null;\n readonly requestId?: string;\n\n constructor(\n message: string,\n options: {\n status: number;\n code: string;\n retryable: boolean;\n details?: Record<string, unknown> | null;\n requestId?: string;\n cause?: unknown;\n },\n ) {\n super(message, options.cause === undefined ? undefined : { cause: options.cause });\n this.name = \"LeaniError\";\n this.status = options.status;\n this.code = options.code;\n this.retryable = options.retryable;\n this.details = options.details;\n this.requestId = options.requestId;\n }\n}\n\n/**\n * A request that failed below HTTP: the connection was refused or reset, the\n * deadline passed, the response body broke off, or a stream went silent. It\n * has no HTTP status (`status` is 0), is always retryable, and keeps the\n * underlying failure as `cause`.\n */\nexport class TransportError extends LeaniError {\n constructor(message: string, cause?: unknown) {\n super(message, { status: 0, code: \"transport\", retryable: true, cause });\n this.name = \"TransportError\";\n }\n}\n\nexport async function responseError(response: Response): Promise<LeaniError> {\n let body: LeaniErrorBody | undefined;\n try {\n body = (await response.json()) as LeaniErrorBody;\n } catch {\n // Fall through to the status-derived error without exposing response text.\n }\n return errorFromBody(response.status, body);\n}\n\nexport function errorFromBody(status: number, body: unknown): LeaniError {\n const error = (body as Partial<LeaniErrorBody> | null)?.error;\n return new LeaniError(\n typeof error?.message === \"string\" ? error.message : `Leani returned HTTP ${status}`,\n {\n status,\n code: typeof error?.code === \"string\" ? error.code : \"internal\",\n retryable: typeof error?.retryable === \"boolean\"\n ? error.retryable\n : status === 408 || status === 429 || status >= 500,\n details: error?.details && typeof error.details === \"object\" ? error.details : undefined,\n requestId: typeof error?.requestId === \"string\" ? error.requestId : undefined,\n },\n );\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LeaniError } from "./errors.ts";
|
|
2
|
-
export { LeaniError, type LeaniErrorBody } from "./errors.ts";
|
|
3
|
-
export declare const SDK_VERSION: "0.1.0-rc.
|
|
2
|
+
export { LeaniError, TransportError, type LeaniErrorBody } from "./errors.ts";
|
|
3
|
+
export declare const SDK_VERSION: "0.1.0-rc.2";
|
|
4
4
|
export type { components as OpenApiComponents, operations as OpenApiOperations, paths as OpenApiPaths, } from "./openapi.generated.ts";
|
|
5
5
|
export type Hex = `0x${string}`;
|
|
6
6
|
export type Finality = "preview" | "included" | "finalized";
|
|
@@ -92,13 +92,13 @@ export interface ProcessorCoverage {
|
|
|
92
92
|
requested?: {
|
|
93
93
|
fromBlock: number;
|
|
94
94
|
toBlock: number;
|
|
95
|
-
};
|
|
95
|
+
} | null;
|
|
96
96
|
available: CoverageInterval[];
|
|
97
97
|
configuredStartBlock: number;
|
|
98
98
|
processedThrough: number | null;
|
|
99
99
|
finalizedThrough: number | null;
|
|
100
100
|
complete: boolean;
|
|
101
|
-
state: "starting" | "backfilling" | "catching_up" | "live" | "degraded" | "failed";
|
|
101
|
+
state: "starting" | "backfilling" | "catching_up" | "live" | "degraded" | "paused" | "failed";
|
|
102
102
|
}
|
|
103
103
|
export interface Page<T> {
|
|
104
104
|
data: T[];
|
|
@@ -115,12 +115,23 @@ export interface BlobsBlock {
|
|
|
115
115
|
blobCount: number;
|
|
116
116
|
blobGasUsed: string;
|
|
117
117
|
excessBlobGas: string;
|
|
118
|
+
/**
|
|
119
|
+
* Protocol blob base fee in wei per blob gas: the EIP-4844 fee for
|
|
120
|
+
* `excessBlobGas` under the fork active at `timestamp`. EIP-7918 does not
|
|
121
|
+
* change it.
|
|
122
|
+
*/
|
|
118
123
|
blobBaseFee: string;
|
|
119
124
|
executionBaseFee: string;
|
|
120
125
|
gasUsed: string;
|
|
121
126
|
gasLimit: string;
|
|
122
127
|
executionEthBurnedWei: string;
|
|
128
|
+
/** `blobBaseFee` times `blobGasUsed`. */
|
|
123
129
|
blobEthBurnedWei: string;
|
|
130
|
+
/**
|
|
131
|
+
* EIP-7918 reserve price in wei per blob gas from Fusaka on, `null` before.
|
|
132
|
+
* It only changes how excess blob gas evolves and is not applied to
|
|
133
|
+
* `blobBaseFee`.
|
|
134
|
+
*/
|
|
124
135
|
reserveFeeWei: string | null;
|
|
125
136
|
transactionCount: number;
|
|
126
137
|
targetBlobsPerBlock: number;
|
|
@@ -139,6 +150,7 @@ export interface BlobTransaction {
|
|
|
139
150
|
blobCount: number;
|
|
140
151
|
totalBurnedWei: string;
|
|
141
152
|
executionBurnedWei: string;
|
|
153
|
+
/** The block's `blobBaseFee` times this transaction's blob gas. */
|
|
142
154
|
blobBurnedWei: string;
|
|
143
155
|
}
|
|
144
156
|
export interface BlobsSnapshotEntry {
|
|
@@ -216,12 +228,16 @@ export interface CreateConsumerOptions {
|
|
|
216
228
|
export interface DurableConsumer {
|
|
217
229
|
id: string;
|
|
218
230
|
processorInstance: string;
|
|
231
|
+
/** The delivery stream this consumer reads. */
|
|
232
|
+
streamId: string;
|
|
219
233
|
role: ConsumerRole;
|
|
220
234
|
state: ConsumerState;
|
|
221
235
|
acknowledgedSequence: string;
|
|
222
236
|
deliveredSequence: string;
|
|
223
237
|
acknowledgedCursor: string;
|
|
224
238
|
deliveredCursor: string;
|
|
239
|
+
/** Stream sessions that have taken the lease; `"0"` before the first. */
|
|
240
|
+
leaseGeneration: string;
|
|
225
241
|
leaseTtlMs: string;
|
|
226
242
|
leaseExpiresAtUnixMs: string;
|
|
227
243
|
leaseActive: boolean;
|
|
@@ -234,7 +250,12 @@ export interface DurableConsumer {
|
|
|
234
250
|
}
|
|
235
251
|
export interface BlobSchedule {
|
|
236
252
|
name: string;
|
|
253
|
+
/**
|
|
254
|
+
* Block-number label for `atBlock` lookups. For Dencun it is 19426589, the
|
|
255
|
+
* first block the blobs processor covers.
|
|
256
|
+
*/
|
|
237
257
|
activationBlock: number;
|
|
258
|
+
/** The fork's parameters apply to blocks from this timestamp on. */
|
|
238
259
|
activationTimestamp: number;
|
|
239
260
|
forkId: Hex;
|
|
240
261
|
targetBlobsPerBlock: number;
|
|
@@ -252,6 +273,12 @@ export interface Erc20Balance {
|
|
|
252
273
|
finality: Finality;
|
|
253
274
|
coverageFrom: number;
|
|
254
275
|
complete: boolean;
|
|
276
|
+
/**
|
|
277
|
+
* Block whose transfer proved the ledger incomplete for this token and
|
|
278
|
+
* holder. From that block the pair is no longer derived and `balance` keeps
|
|
279
|
+
* its last derived value; `null` while the pair is derived.
|
|
280
|
+
*/
|
|
281
|
+
incompleteFrom: number | null;
|
|
255
282
|
method: "erc20_transfer_ledger";
|
|
256
283
|
}
|
|
257
284
|
export interface EvmEvent {
|
|
@@ -272,7 +299,9 @@ export interface EvmEvent {
|
|
|
272
299
|
export interface TransactionStats {
|
|
273
300
|
from: Hex;
|
|
274
301
|
to: Hex;
|
|
302
|
+
/** Submitted transactions from `from` to `to`, reverted ones included. */
|
|
275
303
|
count: number;
|
|
304
|
+
/** Submitted value in wei, including the value of reverted transactions. */
|
|
276
305
|
totalValueWei: string;
|
|
277
306
|
asOfBlock: number;
|
|
278
307
|
blockHash: Hex;
|
|
@@ -411,6 +440,12 @@ export interface SubscribeOptions {
|
|
|
411
440
|
signal?: AbortSignal;
|
|
412
441
|
/** Receives the connection handshake frame; called once per (re)connect. */
|
|
413
442
|
onHello?: (hello: StreamHello) => void;
|
|
443
|
+
/**
|
|
444
|
+
* Reconnect when the stream sends nothing, not even the node's 15-second
|
|
445
|
+
* keep-alive comments, for this long while the loop waits for a change.
|
|
446
|
+
* Defaults to 60,000 ms.
|
|
447
|
+
*/
|
|
448
|
+
idleTimeoutMs?: number;
|
|
414
449
|
}
|
|
415
450
|
/** Select a configured instance when more than one processor has this kind. */
|
|
416
451
|
export interface ProcessorSubscribeOptions extends SubscribeOptions {
|
|
@@ -572,4 +607,3 @@ export interface CursorStore {
|
|
|
572
607
|
clear(): void;
|
|
573
608
|
}
|
|
574
609
|
export declare function createInMemoryCursorStore(initial?: string): CursorStore;
|
|
575
|
-
//# sourceMappingURL=index.d.ts.map
|