@cotal-ai/auth 0.11.6 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admission-mediator.d.ts +319 -0
- package/dist/admission-mediator.d.ts.map +1 -0
- package/dist/admission-mediator.js +1033 -0
- package/dist/admission-mediator.js.map +1 -0
- package/dist/auth-admin.d.ts +29 -0
- package/dist/auth-admin.d.ts.map +1 -0
- package/dist/auth-admin.js +224 -0
- package/dist/auth-admin.js.map +1 -0
- package/dist/authority-client.d.ts +215 -0
- package/dist/authority-client.d.ts.map +1 -0
- package/dist/authority-client.js +346 -0
- package/dist/authority-client.js.map +1 -0
- package/dist/barrier-evict.d.ts +16 -0
- package/dist/barrier-evict.d.ts.map +1 -0
- package/dist/barrier-evict.js +100 -0
- package/dist/barrier-evict.js.map +1 -0
- package/dist/commands.js +16 -12
- package/dist/commands.js.map +1 -1
- package/dist/connect-reader.d.ts +72 -0
- package/dist/connect-reader.d.ts.map +1 -0
- package/dist/connect-reader.js +154 -0
- package/dist/connect-reader.js.map +1 -0
- package/dist/continuity.d.ts +23 -0
- package/dist/continuity.d.ts.map +1 -0
- package/dist/continuity.js +145 -0
- package/dist/continuity.js.map +1 -0
- package/dist/credential-ledger.d.ts +343 -0
- package/dist/credential-ledger.d.ts.map +1 -0
- package/dist/credential-ledger.js +732 -0
- package/dist/credential-ledger.js.map +1 -0
- package/dist/drain-repair.d.ts +95 -0
- package/dist/drain-repair.d.ts.map +1 -0
- package/dist/drain-repair.js +305 -0
- package/dist/drain-repair.js.map +1 -0
- package/dist/idp.d.ts +19 -0
- package/dist/idp.d.ts.map +1 -1
- package/dist/idp.js +17 -0
- package/dist/idp.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -3
- package/dist/index.js.map +1 -1
- package/dist/issuer.d.ts +8 -0
- package/dist/issuer.d.ts.map +1 -1
- package/dist/issuer.js +4 -2
- package/dist/issuer.js.map +1 -1
- package/dist/ledger-scanner.d.ts +98 -0
- package/dist/ledger-scanner.d.ts.map +1 -0
- package/dist/ledger-scanner.js +352 -0
- package/dist/ledger-scanner.js.map +1 -0
- package/dist/ledger.d.ts +12 -0
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +103 -13
- package/dist/ledger.js.map +1 -1
- package/dist/lifecycle-registry.d.ts +397 -0
- package/dist/lifecycle-registry.d.ts.map +1 -0
- package/dist/lifecycle-registry.js +819 -0
- package/dist/lifecycle-registry.js.map +1 -0
- package/dist/permissions.d.ts +5 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +29 -6
- package/dist/permissions.js.map +1 -1
- package/dist/plane-claim.d.ts +83 -0
- package/dist/plane-claim.d.ts.map +1 -0
- package/dist/plane-claim.js +290 -0
- package/dist/plane-claim.js.map +1 -0
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +45 -16
- package/dist/provider.js.map +1 -1
- package/dist/records-scanner.d.ts +78 -0
- package/dist/records-scanner.d.ts.map +1 -0
- package/dist/records-scanner.js +320 -0
- package/dist/records-scanner.js.map +1 -0
- package/dist/retirement-barrier.d.ts +217 -0
- package/dist/retirement-barrier.d.ts.map +1 -0
- package/dist/retirement-barrier.js +624 -0
- package/dist/retirement-barrier.js.map +1 -0
- package/dist/retirement-cleaner.d.ts +54 -0
- package/dist/retirement-cleaner.d.ts.map +1 -0
- package/dist/retirement-cleaner.js +158 -0
- package/dist/retirement-cleaner.js.map +1 -0
- package/dist/root-credential.d.ts +26 -0
- package/dist/root-credential.d.ts.map +1 -0
- package/dist/root-credential.js +116 -0
- package/dist/root-credential.js.map +1 -0
- package/dist/service.d.ts +73 -5
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +349 -24
- package/dist/service.js.map +1 -1
- package/dist/session-ledger.d.ts +224 -0
- package/dist/session-ledger.d.ts.map +1 -0
- package/dist/session-ledger.js +713 -0
- package/dist/session-ledger.js.map +1 -0
- package/dist/store.d.ts +18 -8
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +74 -51
- package/dist/store.js.map +1 -1
- package/dist/token.d.ts +17 -0
- package/dist/token.d.ts.map +1 -1
- package/dist/token.js +30 -2
- package/dist/token.js.map +1 -1
- package/package.json +7 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-ledger.js","sourceRoot":"","sources":["../src/session-ledger.ts"],"names":[],"mappings":"AA0CA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAkB,MAAM,MAAM,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,YAAY,EACZ,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,eAAe,EACf,uBAAuB,GAWxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,cAAc,EACd,0BAA0B,GAG3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EACpB,cAAc,GAEf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAA0B,MAAM,qBAAqB,CAAC;AAEjF,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;AAC9B,MAAM,KAAK,GAAG,CAAC,CAAU,EAAgC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrH,MAAM,IAAI,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAUrG;;mDAEmD;AACnD,MAAM,WAAW,GAAG,IAAI,OAAO,EAA0B,CAAC;AAC1D,SAAS,WAAW,CAAC,KAAuB;IAC1C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;QACzB,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,+KAA+K,CAAC,CAAC;AACtO,CAAC;AAED;;;;;;;;iDAQiD;AACjD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAkB,EAAE,KAAa;IAC1E,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,GAA6G,CAAC;IAClH,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QAClB,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACjF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,kBAAkB,MAAM,sDAAuD,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvK,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,KAAK,KAAK;QAC5B,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,kBAAkB,MAAM,qBAAqB,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,wIAAwI,CAAC,CAAC;IAClQ,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC;QACpD,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,kBAAkB,MAAM,8CAA8C,GAAG,CAAC,OAAO,0GAA0G,CAAC,CAAC;IAChP,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACpF,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,kBAAkB,MAAM,sHAAsH,CAAC,CAAC;IACnM,+FAA+F;IAC/F,gGAAgG;IAChG,iGAAiG;IACjG,0EAA0E;IAC1E,MAAM,KAAK,GAAqB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mGAAmG;AAEnG,SAAS,QAAQ,CAAC,GAAe,EAAE,GAAW;IAC5C,IAAI,CAAU,CAAC;IACf,IAAI,CAAC;QACH,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,uEAAuE,CAAC,CAAC;IACvI,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,mBAAmB,CAAC,CAAC;IAChG,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5I,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,+BAA+B,CAAC,8BAA8B,CAAC,CAAC;IACjL,MAAM,CAAC,GAAG,CAAwD,CAAC;IACnE,MAAM,MAAM,GAAsB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,uBAAuB,CAAC,CAAC;IACpF,IACE,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QACjE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACvF,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,QAAQ;QACvG,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QACzD,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,WAAW;QACvG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS;QACpG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAExE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,6EAA6E,CAAC,CAAC;IAC7I,6FAA6F;IAC7F,mFAAmF;IACnF,IAAI,GAAG,KAAK,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;QACvC,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,sBAAsB,GAAG,sBAAsB,CAAC,CAAC,SAAS,UAAU,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,sDAAsD,CAAC,CAAC;IACjM,sFAAsF;IACtF,kEAAkE;IAClE,IAAI,CAAC,CAAC,UAAU,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC;QACrJ,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,oDAAoD,CAAC,CAAC,UAAU,eAAe,CAAC,CAAC,WAAW,uDAAuD,CAAC,CAAC;IACnN,OAAO,CAAqB,CAAC;AAC/B,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAU,EAAW,EAAE;IACxC,MAAM,IAAI,GAAI,CAA2C,EAAE,SAAS,EAAE,QAAQ,CAAC;IAC/E,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,sBAAsB,CAAC,IAAI,CAAE,CAAW,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;AACtG,CAAC,CAAC;AAEF;6FAC6F;AAC7F,MAAM,UAAU,eAAe,CAAC,EAAM;IACpC,MAAM,SAAS,GAAG,KAAK,EAAE,SAAiB,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,mFAAmF;QACnF,0FAA0F;QAC1F,gFAAgF;QAChF,2DAA2D;QAC3D,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK;YAC3B,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,mBAAmB,GAAG,cAAc,KAAK,CAAC,SAAS,+EAA+E,CAAC,CAAC;QACvL,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IACvE,CAAC,CAAC;IACF,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,SAAS;YAClB,OAAO,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;QAC3C,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,GAAG;YACrB,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClF,OAAO,SAAS,CAAC;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,SAAS,CAAC,CAAC,CAAC;oBAAE,OAAO,QAAQ,CAAC;gBAClC,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,kCAAkC,GAAG,CAAC,SAAS,uDAAwD,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvL,CAAC;QACH,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,SAAS;YAC5B,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YACtD,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxH,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,SAAS,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC,CAAC,mCAAmC;gBACnE,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,gCAAgC,SAAS,kFAAmF,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5M,CAAC;QACH,CAAC;QACD,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE;YACpC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG;oBAAE,OAAO,KAAK,CAAC;gBACvB,IAAK,uBAA6C,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACzF,4BAA4B,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAClH,OAAO,IAAI,CAAC;gBACd,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,SAAS,CAAC,CAAC,CAAC;wBAAE,SAAS,CAAC,4DAA4D;oBACxF,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,gCAAgC,SAAS,8BAA+B,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxJ,CAAC;YACH,CAAC;YACD,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,uCAAuC,SAAS,yCAAyC,CAAC,CAAC;QACtI,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY;YACvC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG;oBAAE,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,sBAAsB,SAAS,+CAA+C,CAAC,CAAC;gBAC3I,MAAM,KAAK,GAAG,YAAY,KAAK,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5H,IAAI,KAAK,KAAK,SAAS;oBACrB,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,cAAc,YAAY,4BAA4B,SAAS,iCAAiC,CAAC,CAAC;gBACrJ,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;oBAAE,OAAO;gBACnC,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACvJ,OAAO;gBACT,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,SAAS,CAAC,CAAC,CAAC;wBAAE,SAAS;oBAC3B,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,2BAA2B,YAAY,iEAAkE,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACzL,CAAC;YACH,CAAC;YACD,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,2BAA2B,YAAY,qDAAqD,CAAC,CAAC;QACzI,CAAC;KACF,CAAC;AACJ,CAAC;AAuBD;;kFAEkF;AAClF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,UAAkB,EAAU,EAAE,CACxE,UAAU,aAAa,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;AAExF;;4DAE4D;AAC5D,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAU,EAAE,CAAC,GAAG,SAAS,IAAI,SAAS,IAAI,CAAC;AACrG,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,UAAkB,EAAE,SAAiB,EAAU,EAAE,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,UAAU,IAAI,SAAS,IAAI,CAAC;AAErJ;;gFAEgF;AAChF,SAAS,aAAa,CAAC,EAAU;IAC/B,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,EAAE,EAAE,CAAC;IAC3C,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,EAAE,EAAE,CAAC;IAC7C,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,iBAAiB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,wEAAwE,CAAC,CAAC;AAChK,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAe,EAAE,GAAW;IACrD,IAAI,CAAU,CAAC;IACf,IAAI,CAAC;QACH,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,qBAAqB,GAAG,0BAA0B,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,qBAAqB,GAAG,mBAAmB,CAAC,CAAC;IAClG,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IACrI,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,qBAAqB,GAAG,+BAA+B,CAAC,8BAA8B,CAAC,CAAC;IACnL,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC/K,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,qBAAqB,GAAG,gCAAgC,CAAC,CAAC;IAClG,4FAA4F;IAC5F,wFAAwF;IACxF,yFAAyF;IACzF,yEAAyE;IACzE,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1F,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC;QAC/D,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,qBAAqB,GAAG,+FAA+F,CAAC,CAAC;IACjK,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,KAAK,4CAA4C,CAAC,CAAC;IAC5H,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS;QAC1C,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,qBAAqB,GAAG,+CAA+C,CAAC,CAAC;IACjH,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,CAAC,CAAC,EAA6B,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,WAAW;gBAAE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,qBAAqB,GAAG,yCAAyC,CAAC,mBAAmB,CAAC,CAAC;QACrN,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAc,CAAC;YACtH,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,qBAAqB,GAAG,0CAA0C,CAAC,CAAC;QAC5G,0FAA0F;QAC1F,4FAA4F;QAC5F,iFAAiF;QACjF,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY;YAC/E,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,qBAAqB,GAAG,uBAAuB,EAAE,CAAC,IAAI,8GAA8G,CAAC,CAAC;QAC9M,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;YACzJ,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,qBAAqB,GAAG,wIAAwI,CAAC,CAAC;QAC1M,IAAI,CAAC;YACH,oBAAoB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,qBAAqB,GAAG,iDAAiD,CAAC,CAAC;QACnH,CAAC;IACH,CAAC;IACD,OAAO,CAA+B,CAAC;AACzC,CAAC;AAED;;;8DAG8D;AAC9D,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAM,EAAE,QAAgB,EAAE,UAAkB,EAAE,IAAqB;IACzG,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;2FAC2F;AAC3F,KAAK,UAAU,mBAAmB,CAAC,EAAM,EAAE,QAAgB,EAAE,UAAkB,EAAE,IAAY;IAC3F,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK;QACR,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,GAAG,IAAI,mCAAmC,GAAG,uDAAuD,CAAC,CAAC;IACvJ,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK;QAC3B,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,qBAAqB,GAAG,cAAc,KAAK,CAAC,SAAS,wEAAwE,CAAC,CAAC;IAClL,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;QACvB,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,GAAG,IAAI,iCAAiC,IAAI,CAAC,KAAK,yGAAyG,CAAC,CAAC;IAC9M,OAAO,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;8FA0B8F;AAC9F,MAAM,UAAU,mBAAmB,CAAC,KAAuB,EAAE,IAA8C;IACzG,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5C,OAAO;QACL,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC,CAAC,iEAAiE;YAC1F,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK;gBAC3B,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,qBAAqB,GAAG,cAAc,KAAK,CAAC,SAAS,wEAAwE,CAAC,CAAC;YAClL,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACjD,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU;gBACtD,2FAA2F;gBAC3F,4EAA4E;gBAC5E,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/E,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;gBAClG,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC;QACJ,CAAC;QACD,KAAK,EAAE,KAAK,EAAE,GAAqB,EAAE,EAAE;YACrC,wFAAwF;YACxF,+EAA+E;YAC/E,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,YAAY,KAAK,UAAU;gBAC9D,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,8BAA8B,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,YAAY,yBAAyB,QAAQ,IAAI,UAAU,4CAA4C,CAAC,CAAC;YAC9M,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ;gBAC7B,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,4BAA4B,QAAQ,IAAI,UAAU,uEAAuE,CAAC,CAAC;YAC9K,MAAM,SAAS,GAAwB;gBACrC,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG;aACrG,CAAC;YACF,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;YACpE,sFAAsF;YACtF,yEAAyE;YACzE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC9D,MAAM,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,gBAAwB,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,gBAAgB;gBAAE,OAAO,KAAK,CAAC;YAC7F,IAAI,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,MAAM;gBAAE,OAAO,KAAK,CAAC;YACvE,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;gBACpD,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,SAAS,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC,CAAC,6DAA6D;gBAC7F,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,qCAAqC,GAAG,qDAAsD,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9K,CAAC;QACH,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,GAAqB,EAAE,EAAE;YACtC,8FAA8F;YAC9F,6FAA6F;YAC7F,8FAA8F;YAC9F,4FAA4F;YAC5F,MAAM,oBAAoB,CAAC,EAAE,EAAE,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QACvF,CAAC;KACF,CAAC;AACJ,CAAC;AAsBD,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAE,KAA2B,EAAU,EAAE,CAC7E,iBAAiB,SAAS,IAAI,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAEjE,SAAS,aAAa,CAAC,GAAe,EAAE,GAAW;IACjD,IAAI,CAAU,CAAC;IACf,IAAI,CAAC;QACH,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,yBAAyB,GAAG,uEAAuE,CAAC,CAAC;IAC7I,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,yBAAyB,GAAG,mBAAmB,CAAC,CAAC;IACtG,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5F,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,yBAAyB,GAAG,+BAA+B,CAAC,wEAAwE,CAAC,CAAC;IACjO,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;QACvH,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACxI,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,yBAAyB,GAAG,gGAAgG,CAAC,CAAC;IACtK,IAAI,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC;QAC3C,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,4BAA4B,GAAG,YAAY,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,KAAK,sDAAsD,CAAC,CAAC;IAClK,OAAO,CAA+B,CAAC;AACzC,CAAC;AAgCD;;2FAE2F;AAC3F,MAAM,UAAU,sBAAsB,CAAC,IAAqB;IAC1D,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,mDAAmD;IAClF,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1C,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK;QACpD,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,uDAAuD,QAAQ,CAAC,KAAK,MAAM,MAAM,CAAC,KAAK,4BAA4B,KAAK,sDAAsD,CAAC,CAAC;IACnO,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;QAClB,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,8BAA8B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,oFAAoF,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1Q,CAAC,CAAC,SAAS,CAAC;IAEd,yFAAyF;IACzF,2FAA2F;IAC3F,8CAA8C;IAC9C,MAAM,YAAY,GAAG,CAAC,GAAqB,EAAE,KAA2B,EAAE,EAAE;QAC1E,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzF,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IACpG,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,EAAE,SAAiB,EAAE,YAAoB,EAA8B,EAAE;QAC5F,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK;YAC3C,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,sBAAsB,SAAS,0DAA0D,CAAC,CAAC;QAC9I,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;QAClE,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ;YACxB,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,WAAW,SAAS,QAAQ,GAAG,CAAC,KAAK,kFAAkF,CAAC,CAAC;QAC5K,sFAAsF;QACtF,uEAAuE;QACvE,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,SAAS,KAAK,KAAK;YACjD,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,cAAc,YAAY,yBAAyB,SAAS,yDAAyD,CAAC,CAAC;QAC1K,MAAM,SAAS,GAAwB,cAAc,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACpF,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC;YAChH,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,kBAAkB,SAAS,2BAA2B,SAAS,sEAAsE,CAAC,CAAC;QAC/K,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS;YAC/B,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,cAAc,YAAY,2DAA2D,CAAC,CAAC;QACxI,mFAAmF;QACnF,MAAM,KAAK,GAAyB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK;YAC3C,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,cAAc,YAAY,wBAAwB,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5L,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QACzE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,GAAG,KAAK,SAAS;YACnB,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,mBAAmB,GAAG,CAAC,GAAG,yBAAyB,YAAY,yGAAyG,CAAC,CAAC;QACrN,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,aAAa;YAClD,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,CAAC,GAAG,6IAA6I,CAAC,CAAC;QAC1N,2FAA2F;QAC3F,kFAAkF;QAClF,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;aAC9G,kBAAkB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;aAClD,UAAU,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;aACpE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;aAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IACxD,CAAC,CAAC;IAEF,OAAO;QACL,MAAM;QACN,qBAAqB,CAAC,KAAK;YACzB,2FAA2F;YAC3F,mFAAmF;YACnF,wFAAwF;YACxF,OAAO;gBACL,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;gBACpE,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;aACtF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,kBAAkB,CAAC,MAAM;YAC7B,oFAAoF;YACpF,4EAA4E;YAC5E,qFAAqF;YACrF,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,CAAC;gBACJ,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,aAAa,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,+DAA+D,CAAC,CAAC;YAC1J,MAAM,IAAI,GAAG,MAAM,0BAA0B,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY;gBAAE,OAAO,SAAS,CAAC;YACjI,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QACnC,CAAC;QACD,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU;YACrC,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC7B,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK;gBAC3B,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,qBAAqB,GAAG,cAAc,KAAK,CAAC,SAAS,wEAAwE,CAAC,CAAC;YAClL,OAAO,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;QAC1D,CAAC;QACD,KAAK,CAAC,iBAAiB,CAAC,MAAM;YAC5B,iFAAiF;YACjF,2DAA2D;YAC3D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9D,IAAI,IAAI,KAAK,SAAS;gBACpB,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,UAAU,MAAM,CAAC,EAAE,yCAAyC,MAAM,CAAC,YAAY,qEAAqE,CAAC,CAAC;YACvM,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM;gBAC3B,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,UAAU,MAAM,CAAC,EAAE,kCAAkC,IAAI,CAAC,GAAG,CAAC,KAAK,yGAAyG,CAAC,CAAC;YAC/N,OAAO,EAAE,GAAG,EAAE,QAAQ,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzE,CAAC;QACD,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU;YAC3C,OAAO,CAAC,MAAM,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,QAAQ,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QACxG,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI;YAC9B,oFAAoF;YACpF,uFAAuF;YACvF,sFAAsF;YACtF,wFAAwF;YACxF,oFAAoF;YACpF,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,EAAE,KAAK,SAAS;gBAAE,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,2BAA2B,MAAM,CAAC,OAAO,CAAC,GAAG,kEAAkE,CAAC,CAAC;YAChL,uFAAuF;YACvF,0FAA0F;YAC1F,4FAA4F;YAC5F,4CAA4C;YAC5C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YAC/J,MAAM,KAAK,GAAG,KAAK,EAAE,EAAU,EAAE,KAA2B,EAAE,EAAE;gBAC9D,qFAAqF;gBACrF,qFAAqF;gBACrF,wDAAwD;gBACxD,MAAM,SAAS,GAAwB,KAAK,KAAK,QAAQ;oBACvD,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,WAAW,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;oBACnM,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,WAAW,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;gBACrO,MAAM,uBAAuB,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;gBAChE,MAAM,MAAM,GAAoB,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;gBACzJ,MAAM,uBAAuB,CAAC,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;YACjF,CAAC,CAAC;YACF,MAAM,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACtC,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACxC,yFAAyF;YACzF,sFAAsF;YACtF,kFAAkF;YAClF,sFAAsF;YACtF,sFAAsF;YACtF,mFAAmF;YACnF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;YACxC,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,GAAG,CAAC,QAAQ;oBAC7C,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,iBAAiB,GAAG,CAAC,GAAG,mCAAmC,IAAI,OAAO,GAAG,CAAC,QAAQ,4DAA4D,CAAC,CAAC;gBACxL,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;oBACpE,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,GAAG,0CAA0C,KAAK,EAAE,QAAQ,IAAI,MAAM,cAAc,QAAQ,sCAAsC,CAAC,CAAC;gBAC3M,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC9C,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,SAAS,CAAC,CAAC,CAAC;wBACd,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,GAAG,6DAA6D,CAAC,CAAC;oBACzI,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,sBAAsB,GAAG,uDAAwD,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjK,CAAC;YACH,CAAC;QACH,CAAC;QACD,iBAAiB,EAAE,OAAO;QAC1B,KAAK,CAAC,gBAAgB,CAAC,EAAE;YACvB,uFAAuF;YACvF,sFAAsF;YACtF,iFAAiF;YACjF,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK;gBAAE,OAAO,CAAC,mDAAmD;YACvE,MAAM,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxB,CAAC;AACJ,CAAC;AAWD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAuB,EACvB,KAAkE,EAClE,IAA6E;IAE7E,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,GAAG,KAAK,SAAS;QACnB,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,WAAW,IAAI,CAAC,SAAS,gCAAgC,CAAC,CAAC;IACpG,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,MAAM,MAAM,GACV,CAAC,CAAC,IAAI,KAAK,UAAU;QACrB,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;QACpG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpI,IAAI,CAAC,MAAM;QACT,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,2CAA2C,IAAI,CAAC,SAAS,gFAAgF,CAAC,CAAC;IAC5L,wFAAwF;IACxF,4FAA4F;IAC5F,+EAA+E;IAC/E,MAAM,EAAE,GAAyB,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1F,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ;QACxE,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,4BAA4B,IAAI,CAAC,SAAS,iHAAiH,CAAC,CAAC;IAC9M,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC/E,6FAA6F;IAC7F,2FAA2F;IAC3F,4FAA4F;IAC5F,0FAA0F;IAC1F,4FAA4F;IAC5F,2FAA2F;IAC3F,2FAA2F;IAC3F,sEAAsE;IACtE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,YAAY,GAAG,IAAI,CAAC;IACxB,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAU,EAAE,CAAC;YAC3H,IAAI,MAAM;gBAAE,SAAS;YACrB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;oBAAC,YAAY,GAAG,KAAK,CAAC;oBAAC,SAAS;gBAAC,CAAC,CAAC,0CAA0C;gBACvH,MAAM,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;gBACjC,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,GAAG,KAAK,CAAC,CAAC,0EAA0E;YAClG,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AACxC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,KAAuB,EACvB,KAAkE,EAClE,SAAiB;IAEjB,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,GAAG,KAAK,SAAS;QACnB,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,WAAW,SAAS,kKAAkK,CAAC,CAAC;IAC3O,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAC5G,IAAI,CAAC,GAAG,CAAC,YAAY;QACnB,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,0CAA0C,SAAS,yEAAyE,CAAC,CAAC;IACzK,oFAAoF;IACpF,4FAA4F;IAC5F,iFAAiF;IACjF,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK;YAC3B,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,8BAA8B,UAAU,0BAA0B,SAAS,cAAc,KAAK,CAAC,SAAS,iEAAiE,CAAC,CAAC;QAC9N,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACxD,OAAO,EAAE,iBAAiB,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;IAC1D,CAAC;IACD,wFAAwF;IACxF,4FAA4F;IAC5F,8FAA8F;IAC9F,wFAAwF;IACxF,+BAA+B;IAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IACnF,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,8BAA8B,UAAU,0BAA0B,SAAS,mIAAmI,CAAC,CAAC;AACnQ,CAAC;AAED;;;;yDAIyD;AACzD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAuB,EACvB,KAAkE,EAClE,IAAwC,EACxC,OAA0B;IAE1B,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,iGAAiG;IACjG,4FAA4F;IAC5F,8FAA8F;IAC9F,uFAAuF;IACvF,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;QACjD,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,8GAA8G,CAAC,CAAC;IAC9M,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC5F,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,iDAAiD,CAAC,CAAC;IACvJ,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,yFAAyF;IACzF,yFAAyF;IACzF,0FAA0F;IAC1F,iGAAiG;IACjG,8FAA8F;IAC9F,4FAA4F;IAC5F,yFAAyF;IACzF,KAAK,MAAM,IAAI,IAAI,MAAM,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC,CAAC,oDAAoD;QACvI,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,MAAM,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;gBAAE,KAAK,EAAE,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mEAAmE;QAC5F,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAUD;;;;oCAIoC;AACpC,KAAK,UAAU,uBAAuB,CAAC,OAA0B;IAC/D,OAAO,CAAC,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC"}
|
package/dist/store.d.ts
CHANGED
|
@@ -1,28 +1,38 @@
|
|
|
1
|
+
import { type SecretStore } from "@cotal-ai/core";
|
|
1
2
|
import { type CalloutAuth, type CalloutProvisionInput } from "./callout.js";
|
|
2
3
|
import { type UserTokenIssuer } from "./issuer.js";
|
|
4
|
+
/** Canonical {@link SecretStore} keys of the four secret kinds — one builder per kind, mirroring
|
|
5
|
+
* today's `.cotal/auth/<space>/<file>` layout so the local filesystem composition is unchanged.
|
|
6
|
+
* A hosted adapter treats them as opaque ids (its own resolve adds tenant scope). The space
|
|
7
|
+
* segment is workspace's ONE guarded encoder (`spaceSegment`, shared with `userAuthStateDir`):
|
|
8
|
+
* a `.`/`..`/empty space is refused before any key or path exists, on both surfaces. */
|
|
9
|
+
export declare const authCalloutKey: (space: string) => string;
|
|
10
|
+
export declare const authIssuerKey: (space: string) => string;
|
|
11
|
+
export declare const authOwnerSecretKey: (space: string) => string;
|
|
12
|
+
export declare const authServiceKeysKey: (space: string) => string;
|
|
3
13
|
/** The pinned `iss` for a space's Cotal user bearers — a stable URN, deliberately NOT the auth
|
|
4
14
|
* service's URL (the service port is ephemeral; an issuer pin must never change across restarts).
|
|
5
15
|
* Both the issuer (mint) and the callout (validate) take it from here — one source, no drift. */
|
|
6
16
|
export declare function spaceIssuer(space: string): string;
|
|
7
17
|
/** Load the persisted callout account material, or undefined if this space never enabled user auth. */
|
|
8
|
-
export declare function loadCalloutAuth(
|
|
18
|
+
export declare function loadCalloutAuth(store: SecretStore, space: string): Promise<CalloutAuth | undefined>;
|
|
9
19
|
/** Load-or-create the callout account: first call on a space mints it (operator seed required)
|
|
10
20
|
* and persists; every later call returns the SAME account, so the broker config preload and
|
|
11
21
|
* previously-issued sentinel creds stay valid. Idempotent. */
|
|
12
|
-
export declare function ensureCalloutAuth(
|
|
22
|
+
export declare function ensureCalloutAuth(store: SecretStore, input: CalloutProvisionInput): Promise<CalloutAuth>;
|
|
13
23
|
/** Load the persisted issuer (all published kids live; the persisted active kid signs), or undefined
|
|
14
24
|
* if this space never enabled user auth. */
|
|
15
|
-
export declare function loadIssuer(
|
|
25
|
+
export declare function loadIssuer(store: SecretStore, space: string): Promise<UserTokenIssuer | undefined>;
|
|
16
26
|
/** Load-or-create the space's user-bearer issuer: first call generates the Ed25519 signing key and
|
|
17
27
|
* persists it under the pinned {@link spaceIssuer} `iss`; later calls return the SAME keys, so
|
|
18
28
|
* outstanding bearers keep verifying. A persisted `iss` that disagrees with the space's pin fails
|
|
19
29
|
* loud (the material belongs to another space/layout — never sign under a mismatched issuer). */
|
|
20
|
-
export declare function ensureIssuer(
|
|
30
|
+
export declare function ensureIssuer(store: SecretStore, space: string): Promise<UserTokenIssuer>;
|
|
21
31
|
/** Load the owner-derivation secret, or undefined if this space never enabled user auth. */
|
|
22
|
-
export declare function loadOwnerSecret(
|
|
32
|
+
export declare function loadOwnerSecret(store: SecretStore, space: string): Promise<Uint8Array | undefined>;
|
|
23
33
|
/** Load-or-create the per-space owner-derivation secret. There is deliberately NO regenerate path:
|
|
24
34
|
* a new secret re-keys every owner in the space (a migration, never an accident). */
|
|
25
|
-
export declare function ensureOwnerSecret(
|
|
35
|
+
export declare function ensureOwnerSecret(store: SecretStore, space: string): Promise<Uint8Array>;
|
|
26
36
|
/** The persisted pin of THE external IdP this space trusts (plan gate 4: "pin IdP JWKS/issuer/
|
|
27
37
|
* audience"). All four strings are frozen at `up --user-auth --idp <url>` time; nothing here is
|
|
28
38
|
* ever read from a presented token. Better Auth conventions seed the derivation (issuer/audience =
|
|
@@ -56,11 +66,11 @@ export interface ServiceKeys {
|
|
|
56
66
|
signingSeed: string;
|
|
57
67
|
};
|
|
58
68
|
}
|
|
59
|
-
export declare function loadServiceKeys(
|
|
69
|
+
export declare function loadServiceKeys(store: SecretStore, space: string): Promise<ServiceKeys | undefined>;
|
|
60
70
|
/** Write (or refresh) the service's key projection. Idempotent overwrite — the projection carries
|
|
61
71
|
* no identity of its own, it IS the (stable) data-account signing material, so rewriting from the
|
|
62
72
|
* same space bundle is a no-op in content. */
|
|
63
|
-
export declare function saveServiceKeys(
|
|
73
|
+
export declare function saveServiceKeys(store: SecretStore, space: string, keys: ServiceKeys): Promise<void>;
|
|
64
74
|
/** Where the RUNNING auth service listens — written by the daemon only after EVERY plane is bound
|
|
65
75
|
* (its existence is the readiness signal), read by user-mode connects from other directories on
|
|
66
76
|
* this machine. Runtime state, not a trust pin: the port and capability rotate per start.
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/store.js
CHANGED
|
@@ -1,35 +1,49 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* callout account identity, the issuer signing keys, and the owner-derivation secret must survive
|
|
6
|
-
* restarts, or previously-minted credentials/owners silently break:
|
|
2
|
+
* Persistence for a space's USER-AUTH material. Everything is generate-on-first-use and STABLE
|
|
3
|
+
* thereafter — the callout account identity, the issuer signing keys, and the owner-derivation
|
|
4
|
+
* secret must survive restarts, or previously-minted credentials/owners silently break:
|
|
7
5
|
*
|
|
8
6
|
* - `callout.json` — the dedicated auth-callout account ({@link CalloutAuth}: account + signing key,
|
|
9
7
|
* callout service creds, deny-all sentinel creds, xkey). Regenerating it would orphan the account
|
|
10
8
|
* the broker config preloads; minting it the first time needs the FULL SpaceAuth (operator seed).
|
|
11
9
|
* - `issuer.json` — the Cotal user-bearer issuer: its pinned `iss` string plus the serialized
|
|
12
10
|
* Ed25519 signing keys (private JWKs) and the active kid. Losing these kills every outstanding
|
|
13
|
-
* bearer (rotation is `rotate`/`retire` on the loaded issuer
|
|
11
|
+
* bearer (rotation is `rotate`/`retire` on the loaded issuer plus a re-put of the document).
|
|
14
12
|
* - `owner-secret.json` — the per-space owner-derivation secret (32 random bytes). REGENERATING IT
|
|
15
13
|
* RE-KEYS EVERY OWNER in the space (same human → different `u_…`), which is a migration, never an
|
|
16
14
|
* accident — hence load-or-create with no overwrite path.
|
|
17
15
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
16
|
+
* These SECRET kinds (plus `service-keys.json`, the daemon's key projection) read and write through
|
|
17
|
+
* the {@link SecretStore} seam — the caller composes the store (locally the workspace's
|
|
18
|
+
* `.cotal`-rooted filesystem store, so keys land byte-for-byte on today's paths; a hosted
|
|
19
|
+
* composition injects KMS/Vault) and nothing here discovers one ambiently. The store's atomic
|
|
20
|
+
* whole-value put replaces the explicit temp+rename here; its adapter owns 0600/0700 hardening.
|
|
21
|
+
*
|
|
22
|
+
* The NON-SEAM kinds stay explicit-dir filesystem APIs (the auth-paths posture: the caller picks
|
|
23
|
+
* the dir): the IdP pin (`idp.json`, a trust pin, not a secret) and the auth-service runtime
|
|
24
|
+
* discovery file (`auth-service.json`, ephemeral pid/port/capability).
|
|
25
|
+
*
|
|
26
|
+
* Versioned JSON with fail-loud parsing everywhere (the login session-cache posture: a torn or
|
|
27
|
+
* hand-edited credential surfaces as one legible sentence, never a raw SyntaxError downstream).
|
|
21
28
|
*/
|
|
22
29
|
import { existsSync, readFileSync, rmSync } from "node:fs";
|
|
23
30
|
import { randomBytes } from "node:crypto";
|
|
24
31
|
import { join } from "node:path";
|
|
25
32
|
import { mkSecretDir, writeSecretFileAtomic } from "@cotal-ai/core";
|
|
33
|
+
import { spaceSegment } from "@cotal-ai/workspace";
|
|
26
34
|
import { createCalloutAuth } from "./callout.js";
|
|
27
35
|
import { normalizeIdpUrl } from "./login.js";
|
|
28
36
|
import { createUserTokenIssuer, exportSigningKey, generateSigningKey, importSigningKey, } from "./issuer.js";
|
|
29
|
-
const CALLOUT_FILE = "callout.json";
|
|
30
|
-
const ISSUER_FILE = "issuer.json";
|
|
31
|
-
const OWNER_SECRET_FILE = "owner-secret.json";
|
|
32
37
|
const STORE_VER = 1;
|
|
38
|
+
/** Canonical {@link SecretStore} keys of the four secret kinds — one builder per kind, mirroring
|
|
39
|
+
* today's `.cotal/auth/<space>/<file>` layout so the local filesystem composition is unchanged.
|
|
40
|
+
* A hosted adapter treats them as opaque ids (its own resolve adds tenant scope). The space
|
|
41
|
+
* segment is workspace's ONE guarded encoder (`spaceSegment`, shared with `userAuthStateDir`):
|
|
42
|
+
* a `.`/`..`/empty space is refused before any key or path exists, on both surfaces. */
|
|
43
|
+
export const authCalloutKey = (space) => `auth/${spaceSegment(space)}/callout.json`;
|
|
44
|
+
export const authIssuerKey = (space) => `auth/${spaceSegment(space)}/issuer.json`;
|
|
45
|
+
export const authOwnerSecretKey = (space) => `auth/${spaceSegment(space)}/owner-secret.json`;
|
|
46
|
+
export const authServiceKeysKey = (space) => `auth/${spaceSegment(space)}/service-keys.json`;
|
|
33
47
|
/** The pinned `iss` for a space's Cotal user bearers — a stable URN, deliberately NOT the auth
|
|
34
48
|
* service's URL (the service port is ephemeral; an issuer pin must never change across restarts).
|
|
35
49
|
* Both the issuer (mint) and the callout (validate) take it from here — one source, no drift. */
|
|
@@ -38,55 +52,67 @@ export function spaceIssuer(space) {
|
|
|
38
52
|
throw new Error("spaceIssuer: a space is required");
|
|
39
53
|
return `urn:cotal:auth:${space}`;
|
|
40
54
|
}
|
|
41
|
-
/** Fail-loud versioned-JSON read
|
|
42
|
-
* a legible sentence naming
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return undefined;
|
|
55
|
+
/** Fail-loud versioned-JSON parse, shared by the store-read and file-read paths: a torn/edited/
|
|
56
|
+
* unknown-version document is a legible sentence naming WHERE it lives (a store key or a path)
|
|
57
|
+
* and the recovery, never a raw parse error downstream. */
|
|
58
|
+
function parseStoreDoc(raw, where, what) {
|
|
46
59
|
let parsed;
|
|
47
60
|
try {
|
|
48
|
-
parsed = JSON.parse(
|
|
61
|
+
parsed = JSON.parse(raw);
|
|
49
62
|
}
|
|
50
63
|
catch (e) {
|
|
51
|
-
throw new Error(`${
|
|
64
|
+
throw new Error(`${where}: the ${what} entry is not valid JSON (${e instanceof Error ? e.message : String(e)}) - restore it from backup; regenerating breaks existing credentials`);
|
|
52
65
|
}
|
|
53
66
|
if (parsed === null || typeof parsed !== "object" || parsed.ver !== STORE_VER)
|
|
54
|
-
throw new Error(`${
|
|
67
|
+
throw new Error(`${where}: unknown ${what} version ${String(parsed?.ver)} (expected ${STORE_VER}) - refusing to guess at credential material`);
|
|
55
68
|
return parsed;
|
|
56
69
|
}
|
|
70
|
+
/** The store-side read: an absent key is undefined; everything else parses fail-loud. The key names
|
|
71
|
+
* the location in errors — under the local filesystem composition it IS the `.cotal`-relative path. */
|
|
72
|
+
async function readStoreValue(store, key, what) {
|
|
73
|
+
const raw = await store.get(key);
|
|
74
|
+
return raw === undefined ? undefined : parseStoreDoc(raw, key, what);
|
|
75
|
+
}
|
|
76
|
+
/** The file-side read, for the NON-SEAM kinds only (the IdP pin, service runtime discovery). */
|
|
77
|
+
function readStoreFile(path, what) {
|
|
78
|
+
if (!existsSync(path))
|
|
79
|
+
return undefined;
|
|
80
|
+
return parseStoreDoc(readFileSync(path, "utf8"), path, what);
|
|
81
|
+
}
|
|
57
82
|
/** Load the persisted callout account material, or undefined if this space never enabled user auth. */
|
|
58
|
-
export function loadCalloutAuth(
|
|
59
|
-
const
|
|
83
|
+
export async function loadCalloutAuth(store, space) {
|
|
84
|
+
const key = authCalloutKey(space);
|
|
85
|
+
const f = await readStoreValue(store, key, "callout account");
|
|
60
86
|
if (!f)
|
|
61
87
|
return undefined;
|
|
62
88
|
const c = f.callout;
|
|
63
89
|
if (!c?.account?.pub || !c.account.jwt || !c.calloutCreds || !c.sentinelCreds || !c.xkey?.seed)
|
|
64
|
-
throw new Error(`${
|
|
90
|
+
throw new Error(`${key}: malformed callout account material - restore it from backup; regenerating orphans the preloaded auth account`);
|
|
65
91
|
return c;
|
|
66
92
|
}
|
|
67
93
|
/** Load-or-create the callout account: first call on a space mints it (operator seed required)
|
|
68
94
|
* and persists; every later call returns the SAME account, so the broker config preload and
|
|
69
95
|
* previously-issued sentinel creds stay valid. Idempotent. */
|
|
70
|
-
export async function ensureCalloutAuth(
|
|
71
|
-
const existing = loadCalloutAuth(
|
|
96
|
+
export async function ensureCalloutAuth(store, input) {
|
|
97
|
+
const existing = await loadCalloutAuth(store, input.space);
|
|
72
98
|
if (existing)
|
|
73
99
|
return existing;
|
|
74
100
|
const callout = await createCalloutAuth(input);
|
|
75
|
-
|
|
76
|
-
writeSecretFileAtomic(join(dir, CALLOUT_FILE), JSON.stringify({ ver: STORE_VER, callout }, null, 2));
|
|
101
|
+
await store.put(authCalloutKey(input.space), JSON.stringify({ ver: STORE_VER, callout }, null, 2));
|
|
77
102
|
return callout;
|
|
78
103
|
}
|
|
79
104
|
/** Load the persisted issuer (all published kids live; the persisted active kid signs), or undefined
|
|
80
105
|
* if this space never enabled user auth. */
|
|
81
|
-
export async function loadIssuer(
|
|
82
|
-
const
|
|
106
|
+
export async function loadIssuer(store, space) {
|
|
107
|
+
const key = authIssuerKey(space);
|
|
108
|
+
const f = await readStoreValue(store, key, "issuer key");
|
|
83
109
|
if (!f)
|
|
84
110
|
return undefined;
|
|
85
111
|
if (!f.issuer || !Array.isArray(f.keys) || !f.keys.length || !f.activeKid)
|
|
86
|
-
throw new Error(`${
|
|
112
|
+
throw new Error(`${key}: malformed issuer key material - restore it from backup; regenerating kills every outstanding bearer`);
|
|
87
113
|
const active = f.keys.find((k) => k.kid === f.activeKid);
|
|
88
114
|
if (!active)
|
|
89
|
-
throw new Error(`${
|
|
115
|
+
throw new Error(`${key}: active kid ${f.activeKid} is not in the key set - restore it from backup`);
|
|
90
116
|
// createUserTokenIssuer starts with one active key; rotate() adds the rest (each rotate re-points
|
|
91
117
|
// active, so feed the non-active keys THROUGH rotate and finish on the persisted active kid).
|
|
92
118
|
const issuer = createUserTokenIssuer({ issuer: f.issuer, key: await importSigningKey(active) });
|
|
@@ -101,38 +127,37 @@ export async function loadIssuer(dir) {
|
|
|
101
127
|
* persists it under the pinned {@link spaceIssuer} `iss`; later calls return the SAME keys, so
|
|
102
128
|
* outstanding bearers keep verifying. A persisted `iss` that disagrees with the space's pin fails
|
|
103
129
|
* loud (the material belongs to another space/layout — never sign under a mismatched issuer). */
|
|
104
|
-
export async function ensureIssuer(
|
|
130
|
+
export async function ensureIssuer(store, space) {
|
|
105
131
|
const iss = spaceIssuer(space);
|
|
106
|
-
const existing = await loadIssuer(
|
|
132
|
+
const existing = await loadIssuer(store, space);
|
|
107
133
|
if (existing) {
|
|
108
134
|
if (existing.issuer !== iss)
|
|
109
|
-
throw new Error(`${
|
|
135
|
+
throw new Error(`${authIssuerKey(space)}: persisted issuer "${existing.issuer}" != this space's pin "${iss}" - the material belongs to a different space; refusing to mint under it`);
|
|
110
136
|
return existing;
|
|
111
137
|
}
|
|
112
138
|
const key = await generateSigningKey();
|
|
113
|
-
|
|
114
|
-
writeSecretFileAtomic(join(dir, ISSUER_FILE), JSON.stringify({ ver: STORE_VER, issuer: iss, activeKid: key.kid, keys: [await exportSigningKey(key)] }, null, 2));
|
|
139
|
+
await store.put(authIssuerKey(space), JSON.stringify({ ver: STORE_VER, issuer: iss, activeKid: key.kid, keys: [await exportSigningKey(key)] }, null, 2));
|
|
115
140
|
return createUserTokenIssuer({ issuer: iss, key });
|
|
116
141
|
}
|
|
117
142
|
/** Load the owner-derivation secret, or undefined if this space never enabled user auth. */
|
|
118
|
-
export function loadOwnerSecret(
|
|
119
|
-
const
|
|
143
|
+
export async function loadOwnerSecret(store, space) {
|
|
144
|
+
const key = authOwnerSecretKey(space);
|
|
145
|
+
const f = await readStoreValue(store, key, "owner secret");
|
|
120
146
|
if (!f)
|
|
121
147
|
return undefined;
|
|
122
148
|
const secret = Buffer.from(f.secretB64 ?? "", "base64");
|
|
123
149
|
if (secret.byteLength !== 32)
|
|
124
|
-
throw new Error(`${
|
|
150
|
+
throw new Error(`${key}: malformed owner secret - restore it from backup; a regenerated secret RE-KEYS EVERY OWNER in the space`);
|
|
125
151
|
return new Uint8Array(secret);
|
|
126
152
|
}
|
|
127
153
|
/** Load-or-create the per-space owner-derivation secret. There is deliberately NO regenerate path:
|
|
128
154
|
* a new secret re-keys every owner in the space (a migration, never an accident). */
|
|
129
|
-
export function ensureOwnerSecret(
|
|
130
|
-
const existing = loadOwnerSecret(
|
|
155
|
+
export async function ensureOwnerSecret(store, space) {
|
|
156
|
+
const existing = await loadOwnerSecret(store, space);
|
|
131
157
|
if (existing)
|
|
132
158
|
return existing;
|
|
133
159
|
const secret = randomBytes(32);
|
|
134
|
-
|
|
135
|
-
writeSecretFileAtomic(join(dir, OWNER_SECRET_FILE), JSON.stringify({ ver: STORE_VER, secretB64: Buffer.from(secret).toString("base64") }, null, 2));
|
|
160
|
+
await store.put(authOwnerSecretKey(space), JSON.stringify({ ver: STORE_VER, secretB64: Buffer.from(secret).toString("base64") }, null, 2));
|
|
136
161
|
return new Uint8Array(secret);
|
|
137
162
|
}
|
|
138
163
|
// ---- the pinned external IdP ----
|
|
@@ -169,22 +194,20 @@ export function ensurePinnedIdp(dir, idpUrl) {
|
|
|
169
194
|
writeSecretFileAtomic(join(dir, IDP_FILE), JSON.stringify({ ver: STORE_VER, ...pin }, null, 2));
|
|
170
195
|
return pin;
|
|
171
196
|
}
|
|
172
|
-
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
const f = readStoreFile(join(dir, SERVICE_KEYS_FILE), "service key projection");
|
|
197
|
+
export async function loadServiceKeys(store, space) {
|
|
198
|
+
const key = authServiceKeysKey(space);
|
|
199
|
+
const f = await readStoreValue(store, key, "service key projection");
|
|
176
200
|
if (!f)
|
|
177
201
|
return undefined;
|
|
178
202
|
if (!f.dataAccount?.pub || !f.dataAccount.signingSeed)
|
|
179
|
-
throw new Error(`${
|
|
203
|
+
throw new Error(`${key}: malformed service key projection - re-run \`cotal up --user-auth\` to rewrite it`);
|
|
180
204
|
return { dataAccount: { pub: f.dataAccount.pub, signingSeed: f.dataAccount.signingSeed } };
|
|
181
205
|
}
|
|
182
206
|
/** Write (or refresh) the service's key projection. Idempotent overwrite — the projection carries
|
|
183
207
|
* no identity of its own, it IS the (stable) data-account signing material, so rewriting from the
|
|
184
208
|
* same space bundle is a no-op in content. */
|
|
185
|
-
export function saveServiceKeys(
|
|
186
|
-
|
|
187
|
-
writeSecretFileAtomic(join(dir, SERVICE_KEYS_FILE), JSON.stringify({ ver: STORE_VER, ...keys }, null, 2));
|
|
209
|
+
export async function saveServiceKeys(store, space, keys) {
|
|
210
|
+
await store.put(authServiceKeysKey(space), JSON.stringify({ ver: STORE_VER, ...keys }, null, 2));
|
|
188
211
|
}
|
|
189
212
|
// ---- the auth-service runtime discovery file ----
|
|
190
213
|
const SERVICE_FILE = "auth-service.json";
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/token.d.ts
CHANGED
|
@@ -29,6 +29,16 @@ export interface UserTokenActor {
|
|
|
29
29
|
scope?: string[];
|
|
30
30
|
/** The spawning principal (`<owner>.<actor>` dot-form), when this agent was spawned by another. */
|
|
31
31
|
parent?: string;
|
|
32
|
+
/** The ledger row's lifecycle UID this bearer was minted against (SPEC 13.1). The callout's
|
|
33
|
+
* connect authorization requires exact equality with the CURRENT row; a bearer minted for a
|
|
34
|
+
* retired incarnation is refused, never resolved to the successor. */
|
|
35
|
+
lifecycleUid?: string;
|
|
36
|
+
/** The credential-ledger row id this bearer was issued under (SPEC 13.1: `cred.<uid>.<credid>`).
|
|
37
|
+
* The connect boundary leader-reads that row and refuses a bearer whose credential row is
|
|
38
|
+
* revoked or absent (the deny-new lever) — and for a root credential, whose credid is not the
|
|
39
|
+
* lifecycle head's `currentCredentialId`. Grammar-asserted here (well-formed only); the STATE
|
|
40
|
+
* match is the connect boundary's job, exactly like {@link lifecycleUid}. */
|
|
41
|
+
credentialId?: string;
|
|
32
42
|
/** Exchange-authorized elevated view ({@link USER_TOKEN_VIEWS}); absent = agent profile. */
|
|
33
43
|
view?: UserTokenView;
|
|
34
44
|
}
|
|
@@ -42,12 +52,19 @@ export interface ValidatedUserToken {
|
|
|
42
52
|
scope: string[];
|
|
43
53
|
/** The validated actor claim. */
|
|
44
54
|
act: UserTokenActor;
|
|
55
|
+
/** The credential-ledger row id this bearer was minted under (== `act.credentialId`, hoisted for
|
|
56
|
+
* the connect boundary's leader-served revocation read). Absent on a pre-cut bearer. */
|
|
57
|
+
credentialId?: string;
|
|
45
58
|
/** Token-shape version (== {@link USER_TOKEN_VER}). */
|
|
46
59
|
ver: number;
|
|
47
60
|
/** Bearer expiry (unix seconds) — the callout binds the minted NATS user JWT's lifetime to it,
|
|
48
61
|
* so broker access dies with the bearer (the v1 revocation lever, enforced server-side). */
|
|
49
62
|
exp: number;
|
|
50
63
|
}
|
|
64
|
+
/** Assert a `credentialId` claim is a bounded dotted KV-safe id (mirrors the ledger's
|
|
65
|
+
* `cred.<uid>.<credid>` tail grammar; the STATE match is the connect boundary's job). Shared by
|
|
66
|
+
* the mint side (the issuer, so the mint ↔ validate inverse holds) and this validator. THROWS. */
|
|
67
|
+
export declare function assertCredentialIdClaim(v: unknown): asserts v is string;
|
|
51
68
|
export interface ValidateUserTokenOpts {
|
|
52
69
|
/** The pinned verification key path: a `createRemoteJWKSet(new URL(<pinned origin>))` resolver
|
|
53
70
|
* or a local public key. The token itself NEVER influences where the key comes from. */
|
package/dist/token.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAGvD;4EAC4E;AAC5E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;8CAC8C;AAC9C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;;;;;+FAM+F;AAC/F,eAAO,MAAM,gBAAgB,8EAA+E,CAAC;AAC7G,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D;;;;+FAI+F;AAC/F,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAMxE,CAAC;AAEF;;iFAEiF;AACjF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,mGAAmG;IACnG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,iCAAiC;IACjC,GAAG,EAAE,cAAc,CAAC;IACpB,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ;iGAC6F;IAC7F,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC;6FACyF;IACzF,GAAG,EAAE,eAAe,GAAG,SAAS,CAAC;IACjC,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;mBAEmB;AACnB,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAGvD;4EAC4E;AAC5E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;8CAC8C;AAC9C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;;;;;+FAM+F;AAC/F,eAAO,MAAM,gBAAgB,8EAA+E,CAAC;AAC7G,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D;;;;+FAI+F;AAC/F,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAMxE,CAAC;AAEF;;iFAEiF;AACjF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,mGAAmG;IACnG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;2EAEuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;kFAI8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,iCAAiC;IACjC,GAAG,EAAE,cAAc,CAAC;IACpB;6FACyF;IACzF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ;iGAC6F;IAC7F,GAAG,EAAE,MAAM,CAAC;CACb;AAMD;;mGAEmG;AACnG,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,CAGvE;AAED,MAAM,WAAW,qBAAqB;IACpC;6FACyF;IACzF,GAAG,EAAE,eAAe,GAAG,SAAS,CAAC;IACjC,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;mBAEmB;AACnB,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6F/G"}
|
package/dist/token.js
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* token would quietly disable it).
|
|
19
19
|
*/
|
|
20
20
|
import { decodeProtectedHeader, jwtVerify } from "jose";
|
|
21
|
-
import { assertDerivedOwnerToken, assertValidOwnerToken } from "@cotal-ai/core";
|
|
21
|
+
import { assertDerivedOwnerToken, assertLifecycleToken, assertValidOwnerToken } from "@cotal-ai/core";
|
|
22
22
|
/** Current normative token-shape version. Bump only with a SPEC change; validators reject
|
|
23
23
|
* anything else (older = downgrade, newer = from-the-future misconfig). */
|
|
24
24
|
export const USER_TOKEN_VER = 1;
|
|
@@ -45,6 +45,16 @@ export const VIEW_REQUIRED_SCOPE = {
|
|
|
45
45
|
"channel-writer": "admin",
|
|
46
46
|
deployer: "spawn",
|
|
47
47
|
};
|
|
48
|
+
/** A KV-safe key segment: the ledger's `cred.` key alphabet. Kept local to the validator (not
|
|
49
|
+
* imported from the credential ledger) so the trust boundary carries no KV dependency. */
|
|
50
|
+
const CREDENTIAL_ID_SEGMENT = /^[A-Za-z0-9_-]+$/;
|
|
51
|
+
/** Assert a `credentialId` claim is a bounded dotted KV-safe id (mirrors the ledger's
|
|
52
|
+
* `cred.<uid>.<credid>` tail grammar; the STATE match is the connect boundary's job). Shared by
|
|
53
|
+
* the mint side (the issuer, so the mint ↔ validate inverse holds) and this validator. THROWS. */
|
|
54
|
+
export function assertCredentialIdClaim(v) {
|
|
55
|
+
if (typeof v !== "string" || v.length === 0 || v.length > 256 || !v.split(".").every((s) => CREDENTIAL_ID_SEGMENT.test(s)))
|
|
56
|
+
throw new Error(`user token: act.credentialId ${JSON.stringify(v)} is not a bounded dotted KV-safe credential id`);
|
|
57
|
+
}
|
|
48
58
|
/** Validate a user bearer token. Returns the reduced, validated claims or THROWS — there is no
|
|
49
59
|
* partially-valid result and no fallback (a validation failure at the callout is a denied
|
|
50
60
|
* connection). */
|
|
@@ -113,6 +123,23 @@ export async function validateUserToken(token, opts) {
|
|
|
113
123
|
}
|
|
114
124
|
if (act.view !== undefined && !USER_TOKEN_VIEWS.includes(act.view))
|
|
115
125
|
throw new Error(`user token: act.view "${String(act.view)}" is not a known view (${USER_TOKEN_VIEWS.join(", ")}) - unknown views fail closed`);
|
|
126
|
+
// Lifecycle claim (SPEC 13.1): grammar-asserted when present. Presence/absence POLICY lives at the
|
|
127
|
+
// connect boundary (ledgerAuthorizeConnect requires it on EVERY bearer, views included) and the
|
|
128
|
+
// mint boundary (the idp bridge and the agent exchange stamp it from the grant row); the validator
|
|
129
|
+
// only guarantees a present claim is well-formed, so no garbled uid reaches an equality check.
|
|
130
|
+
if (act.lifecycleUid !== undefined) {
|
|
131
|
+
if (typeof act.lifecycleUid !== "string")
|
|
132
|
+
throw new Error("user token: act.lifecycleUid must be a string token when present");
|
|
133
|
+
assertLifecycleToken(act.lifecycleUid, "user token act.lifecycleUid");
|
|
134
|
+
}
|
|
135
|
+
// Credential claim (SPEC 13.1): grammar-asserted when present, same posture as lifecycleUid. The
|
|
136
|
+
// grammar mirrors the ledger's `cred.<uid>.<credid>` tail (bounded dotted KV-safe segments) but
|
|
137
|
+
// is checked LOCALLY on purpose — the trust-boundary validator must not depend on the KV
|
|
138
|
+
// credential ledger. The connect boundary matches this credid against the real leader-served
|
|
139
|
+
// row (active + principal-bound; root also head-current); the validator only guarantees a
|
|
140
|
+
// present claim is a well-formed, KV-safe id, so no garbled id reaches that read.
|
|
141
|
+
if (act.credentialId !== undefined)
|
|
142
|
+
assertCredentialIdClaim(act.credentialId);
|
|
116
143
|
const scope = payload.scope === undefined ? [] : payload.scope;
|
|
117
144
|
if (!(Array.isArray(scope) && scope.every((s) => typeof s === "string")))
|
|
118
145
|
throw new Error("user token: scope must be a string list when present");
|
|
@@ -120,7 +147,8 @@ export async function validateUserToken(token, opts) {
|
|
|
120
147
|
owner,
|
|
121
148
|
space: opts.audience,
|
|
122
149
|
scope,
|
|
123
|
-
act: { owner: act.owner, actor: act.actor, scope: act.scope, parent: act.parent, view: act.view },
|
|
150
|
+
act: { owner: act.owner, actor: act.actor, scope: act.scope, parent: act.parent, lifecycleUid: act.lifecycleUid, credentialId: act.credentialId, view: act.view },
|
|
151
|
+
credentialId: act.credentialId,
|
|
124
152
|
ver: USER_TOKEN_VER,
|
|
125
153
|
exp: payload.exp,
|
|
126
154
|
};
|
package/dist/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAExD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cotal-ai/auth",
|
|
3
3
|
"description": "Cotal per-user auth bridge: opaque owner-token derivation and strict user-token validation for the NATS auth-callout cutover (Plane 1 ↔ Plane 2).",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.13.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -22,8 +22,10 @@
|
|
|
22
22
|
"@nats-io/nkeys": "^2.0.3",
|
|
23
23
|
"@nats-io/transport-node": "^3.4.0",
|
|
24
24
|
"jose": "^6.2.3",
|
|
25
|
-
"@
|
|
26
|
-
"@
|
|
25
|
+
"@nats-io/jetstream": "^3.4.0",
|
|
26
|
+
"@nats-io/kv": "^3.4.0",
|
|
27
|
+
"@cotal-ai/core": "0.13.0",
|
|
28
|
+
"@cotal-ai/workspace": "0.13.0"
|
|
27
29
|
},
|
|
28
30
|
"devDependencies": {
|
|
29
31
|
"better-auth": "^1.6.23"
|
|
@@ -36,6 +38,7 @@
|
|
|
36
38
|
},
|
|
37
39
|
"scripts": {
|
|
38
40
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
39
|
-
"build": "tsc -p tsconfig.json"
|
|
41
|
+
"build": "tsc -p tsconfig.json",
|
|
42
|
+
"test": "tsx smoke/backup-continuity.smoke.ts && tsx smoke/views.smoke.ts"
|
|
40
43
|
}
|
|
41
44
|
}
|