@vibe-commit/capture 0.7.0 → 0.9.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/README.md +238 -7
- package/dist/account_not_here.d.ts +15 -0
- package/dist/account_not_here.js +25 -0
- package/dist/account_not_here.js.map +1 -0
- package/dist/agents/claude_code.js +13 -0
- package/dist/agents/claude_code.js.map +1 -1
- package/dist/agents/codex_cli.js +11 -0
- package/dist/agents/codex_cli.js.map +1 -1
- package/dist/agents/cursor.js +7 -1
- package/dist/agents/cursor.js.map +1 -1
- package/dist/agents/registry.d.ts +7 -0
- package/dist/agents/registry.js +9 -0
- package/dist/agents/registry.js.map +1 -1
- package/dist/agents/types.d.ts +32 -0
- package/dist/agents/types.js.map +1 -1
- package/dist/bounded_id.d.ts +29 -0
- package/dist/bounded_id.js +42 -0
- package/dist/bounded_id.js.map +1 -0
- package/dist/codex_folders.d.ts +340 -0
- package/dist/codex_folders.js +1448 -0
- package/dist/codex_folders.js.map +1 -0
- package/dist/commands/auth.d.ts +7 -0
- package/dist/commands/auth.js +21 -0
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/backfill.d.ts +29 -7
- package/dist/commands/backfill.js +387 -109
- package/dist/commands/backfill.js.map +1 -1
- package/dist/commands/browser_credential.d.ts +4 -2
- package/dist/commands/browser_credential.js +5 -2
- package/dist/commands/browser_credential.js.map +1 -1
- package/dist/commands/connect.d.ts +10 -1
- package/dist/commands/connect.js +14 -9
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/connect_account.d.ts +135 -0
- package/dist/commands/connect_account.js +321 -0
- package/dist/commands/connect_account.js.map +1 -0
- package/dist/commands/connect_picker.js +204 -29
- package/dist/commands/connect_picker.js.map +1 -1
- package/dist/commands/device_credential.d.ts +3 -1
- package/dist/commands/device_credential.js +1 -0
- package/dist/commands/device_credential.js.map +1 -1
- package/dist/commands/finalize.d.ts +67 -0
- package/dist/commands/finalize.js +450 -114
- package/dist/commands/finalize.js.map +1 -1
- package/dist/commands/finish_mint.d.ts +28 -0
- package/dist/commands/finish_mint.js +16 -4
- package/dist/commands/finish_mint.js.map +1 -1
- package/dist/commands/scan.d.ts +28 -0
- package/dist/commands/scan.js +11 -0
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/status.d.ts +19 -1
- package/dist/commands/status.js +123 -14
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/status_machine.d.ts +12 -3
- package/dist/commands/status_machine.js +111 -13
- package/dist/commands/status_machine.js.map +1 -1
- package/dist/commands/sync_reason.d.ts +17 -0
- package/dist/commands/sync_reason.js +25 -0
- package/dist/commands/sync_reason.js.map +1 -0
- package/dist/consent.d.ts +131 -3
- package/dist/consent.js +248 -14
- package/dist/consent.js.map +1 -1
- package/dist/copy/strings.d.ts +165 -4
- package/dist/copy/strings.js +190 -7
- package/dist/copy/strings.js.map +1 -1
- package/dist/folder_grants.d.ts +44 -0
- package/dist/folder_grants.js +101 -0
- package/dist/folder_grants.js.map +1 -0
- package/dist/git.d.ts +26 -4
- package/dist/git.js +82 -11
- package/dist/git.js.map +1 -1
- package/dist/grants_sync.d.ts +165 -0
- package/dist/grants_sync.js +289 -0
- package/dist/grants_sync.js.map +1 -0
- package/dist/grants_verb.d.ts +70 -0
- package/dist/grants_verb.js +121 -0
- package/dist/grants_verb.js.map +1 -0
- package/dist/hooks/entry.d.ts +30 -50
- package/dist/hooks/entry.js +601 -561
- package/dist/hooks/entry.js.map +1 -1
- package/dist/hooks/fire_lock.d.ts +31 -0
- package/dist/hooks/fire_lock.js +120 -12
- package/dist/hooks/fire_lock.js.map +1 -1
- package/dist/hooks/session_grants.d.ts +59 -0
- package/dist/hooks/session_grants.js +91 -0
- package/dist/hooks/session_grants.js.map +1 -0
- package/dist/hooks/session_start.d.ts +28 -7
- package/dist/hooks/session_start.js +55 -11
- package/dist/hooks/session_start.js.map +1 -1
- package/dist/index.js +22 -5
- package/dist/index.js.map +1 -1
- package/dist/machine_state.d.ts +44 -1
- package/dist/machine_state.js +75 -12
- package/dist/machine_state.js.map +1 -1
- package/dist/oauth/discovery.js +2 -1
- package/dist/oauth/discovery.js.map +1 -1
- package/dist/oauth/pkce.js +2 -1
- package/dist/oauth/pkce.js.map +1 -1
- package/dist/oauth/retire.d.ts +10 -0
- package/dist/oauth/retire.js +13 -0
- package/dist/oauth/retire.js.map +1 -1
- package/dist/paths.d.ts +54 -1
- package/dist/paths.js +88 -12
- package/dist/paths.js.map +1 -1
- package/dist/pending_revoke.d.ts +117 -0
- package/dist/pending_revoke.js +233 -0
- package/dist/pending_revoke.js.map +1 -0
- package/dist/pending_revoke_file.d.ts +55 -0
- package/dist/pending_revoke_file.js +74 -0
- package/dist/pending_revoke_file.js.map +1 -0
- package/dist/physical_path.d.ts +46 -0
- package/dist/physical_path.js +151 -0
- package/dist/physical_path.js.map +1 -0
- package/dist/picker.d.ts +82 -5
- package/dist/picker.js +183 -10
- package/dist/picker.js.map +1 -1
- package/dist/picker_checklist.d.ts +27 -3
- package/dist/picker_checklist.js +81 -6
- package/dist/picker_checklist.js.map +1 -1
- package/dist/policy.d.ts +24 -1
- package/dist/policy.js +30 -2
- package/dist/policy.js.map +1 -1
- package/dist/post.d.ts +55 -2
- package/dist/post.js +72 -22
- package/dist/post.js.map +1 -1
- package/dist/project.d.ts +89 -0
- package/dist/project.js +123 -0
- package/dist/project.js.map +1 -1
- package/dist/redact.d.ts +77 -2
- package/dist/redact.js +713 -47
- package/dist/redact.js.map +1 -1
- package/dist/session_targets.d.ts +713 -0
- package/dist/session_targets.js +2602 -0
- package/dist/session_targets.js.map +1 -0
- package/dist/spool.d.ts +12 -0
- package/dist/spool.js +29 -1
- package/dist/spool.js.map +1 -1
- package/dist/spool_union.d.ts +51 -0
- package/dist/spool_union.js +57 -0
- package/dist/spool_union.js.map +1 -0
- package/dist/state.d.ts +5 -0
- package/dist/state.js +19 -1
- package/dist/state.js.map +1 -1
- package/dist/system_message.d.ts +25 -2
- package/dist/system_message.js +29 -5
- package/dist/system_message.js.map +1 -1
- package/dist/text_tail.d.ts +8 -0
- package/dist/text_tail.js +19 -0
- package/dist/text_tail.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
package/dist/hooks/entry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/hooks/entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAyB,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,SAAS,EAA+B,MAAM,YAAY,CAAC;AACpG,OAAO,EAAE,WAAW,EAAqB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,eAAe,EACf,YAAY,GAEb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAoB,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAkB,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7K,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAC;AAEtE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAE5C,6DAA6D;AAC7D,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC;;;;;;;;;GASG;AACH,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,UAAkB;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,oBAAoB,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,IAAI,CAAC,EAAU;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC;;;;;;;;;;;;GAYG;AACH;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,KAA2B,EAC3B,gBAAgB,GAAG,CAAC;IAEpB,MAAM,OAAO,GAAG,KAAK,KAAK,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,uEAAuE;IACvE,+EAA+E;IAC/E,mDAAmD;IACnD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,gBAAgB,GAAG,OAAO,CAAC,CAAC;AAC5D,CAAC;AAwBD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACxF,MAAM,CAAC,GAAG,MAAiC,CAAC;IAC5C,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC;IAC/B,MAAM,cAAc,GAAG,CAAC,CAAC,eAAe,CAAC;IACzC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;IAClB,MAAM,SAAS,GAAG,CAAC,CAAC,eAAe,CAAC;IACpC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACnE,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,SAAS,GAAG,CAAC,CAAC,qBAAqB,CAAC;IAC1C,OAAO;QACL,SAAS;QACT,cAAc;QACd,GAAG,EAAE,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QAChE,SAAS,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;QACzD,GAAG,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,EAAE;YACnD,CAAC,CAAC,EAAE,mBAAmB,EAAE,SAAS,EAAE;YACpC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,IAAI,GAAG,CACX,MAAe,EACf,kBAA4B,EAC5B,QAAkB,EACT,EAAE;QACX,MAAM,IAAI,GAAG,OAAO,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtF,IAAI,OAAO,IAAI,KAAK,UAAU;YAAG,IAAmB,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,uEAAuE;IACvE,0EAA0E;IACzE,OAAO,CAAC,MAAwC,CAAC,KAAK,GAAG,IAAI,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,OAAsB;IACpC,qEAAqE;IACrE,0EAA0E;IAC1E,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,2EAA2E;IAC3E,oDAAoD;IACpD,aAAa,EAAE,CAAC;IAChB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,SAAS,CAAC,CAAC,EAAE,GAAG,OAAO,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;;;GAQG;AACH,IAAI,WAAW,GAAqB,IAAI,CAAC;AAEzC,+EAA+E;AAC/E,SAAS,aAAa;IACpB,MAAM,KAAK,GAAG,WAAW,CAAC;IAC1B,WAAW,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,EAAE,OAAO,EAAE,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,0EAA0E;IAC5E,CAAC;AACH,CAAC;AAiDD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAoB;IAChD,aAAa,EAAE,CAAC;IAEhB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACpD,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,2EAA2E;IAC3E,8EAA8E;IAC9E,kBAAkB;IAClB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjC,6EAA6E;IAC7E,0EAA0E;IAC1E,wCAAwC;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,8EAA8E;IAC9E,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,kDAAkD;IAClD,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE3B,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAU,EAAE,CAAC;QAC9D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,YAAY,CAAC,GAAsB,EAAE,OAAe;IAClE,MAAM,GAAG,GAAG,GAAG,CAAC,0BAA0B,CAAC;IAC3C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACnF,CAAC;AAED,+DAA+D;AAC/D,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACvF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,QAAQ,CACrB,GAAoB,EACpB,QAAgB,EAChB,aAAqB;IAErB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEhC,uEAAuE;IACvE,4EAA4E;IAC5E,8DAA8D;IAC9D,2DAA2D;IAC3D,MAAM,MAAM,GAAG,CACb,KAAkB,EAClB,UAAyB,IAAI,EAC7B,QAA2B,EAC3B,MAAe,EACf,QAAiB,EACF,EAAE,CACjB,YAAY,CACV;QACE,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO;QACP,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC/C,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;QACrB,2FAA2F;QAC3F,gEAAgE;QAChE,GAAG,CAAC,QAAQ,KAAK,SAAS;YACxB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACxD,WAAW,EAAE,qBAAqB,CAAC,QAAQ,CAAC;aAC7C,CAAC;QACN,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5C,EACD,KAAK,CACN,CAAC;IAEJ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAE3E,4GAA4G;IAC5G,6GAA6G;IAC7G,sGAAsG;IACtG,yGAAyG;IACzG,MAAM,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3E,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC7B,OAAO,mBAAmB,CAAC;YACzB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE;YAC5B,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,mFAAmF;IACnF,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,8CAA8C;IAC9C,EAAE;IACF,qEAAqE;IACrE,EAAE;IACF,6EAA6E;IAC7E,wEAAwE;IACxE,+EAA+E;IAC/E,wEAAwE;IACxE,wBAAwB;IACxB,EAAE;IACF,4EAA4E;IAC5E,uEAAuE;IACvE,6EAA6E;IAC7E,8EAA8E;IAC9E,6EAA6E;IAC7E,6EAA6E;IAC7E,+EAA+E;IAC/E,8DAA8D;IAC9D,EAAE;IACF,8EAA8E;IAC9E,6EAA6E;IAC7E,4EAA4E;IAC5E,+EAA+E;IAC/E,yEAAyE;IACzE,sDAAsD;IACtD,EAAE;IACF,0EAA0E;IAC1E,4EAA4E;IAC5E,8EAA8E;IAC9E,8EAA8E;IAC9E,mEAAmE;IACnE,EAAE;IACF,2EAA2E;IAC3E,4EAA4E;IAC5E,8EAA8E;IAC9E,6EAA6E;IAC7E,uDAAuD;IACvD,EAAE;IACF,iHAAiH;IACjH,kHAAkH;IAClH,oHAAoH;IACpH,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;QAClF,0GAA0G;QAC1G,+GAA+G;QAC/G,0GAA0G;QAC1G,2DAA2D;QAC3D,0GAA0G;QAC1G,0BAA0B;QAC1B,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAC7F,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACrC,CAAC;QACD,4EAA4E;QAC5E,wEAAwE;QACxE,2EAA2E;QAC3E,uCAAuC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,yEAAyE;IACzE,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,2BAA2B;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEjC,kHAAkH;IAClH,gHAAgH;IAChH,2GAA2G;IAC3G,6GAA6G;IAC7G,yGAAyG;IACzG,MAAM,SAAS,GACb,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM;QAC1C,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC;QACnF,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;QACjC,KAAK,aAAa,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,YAAY;YACf,yEAAyE;YACzE,uEAAuE;YACvE,+DAA+D;YAC/D,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;QACjC,KAAK,IAAI;YACP,MAAM;IACV,CAAC;IAED,oDAAoD;IACpD,2EAA2E;IAC3E,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAC/E,EAAE;IACF,8EAA8E;IAC9E,8EAA8E;IAC9E,gFAAgF;IAChF,2EAA2E;IAC3E,EAAE;IACF,8EAA8E;IAC9E,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,4EAA4E;IAC5E,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5E,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,+EAA+E;IAC/E,6EAA6E;IAC7E,mEAAmE;IACnE,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE9B,2EAA2E;IAC3E,+EAA+E;IAC/E,yEAAyE;IACzE,sEAAsE;IACtE,iDAAiD;IACjD,6EAA6E;IAC7E,EAAE;IACF,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAC/E,8DAA8D;IAC9D,EAAE;IACF,sEAAsE;IACtE,4EAA4E;IAC5E,6CAA6C;IAC7C,0EAA0E;IAC1E,sEAAsE;IACtE,4EAA4E;IAC5E,4EAA4E;IAC5E,0EAA0E;IAC1E,iCAAiC;IACjC,EAAE;IACF,uEAAuE;IACvE,2EAA2E;IAC3E,qEAAqE;IACrE,6EAA6E;IAC7E,+EAA+E;IAC/E,sDAAsD;IACtD,MAAM,YAAY,GAAG,KAAK,KAAK,iBAAiB,CAAC;IAEjD,4EAA4E;IAC5E,4EAA4E;IAC5E,aAAa;IACb,EAAE;IACF,2EAA2E;IAC3E,+EAA+E;IAC/E,+EAA+E;IAC/E,6EAA6E;IAC7E,4EAA4E;IAC5E,+DAA+D;IAC/D,EAAE;IACF,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,OAAO,GAAG;QACd,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS;KAChC,CAAC;IACF,2EAA2E;IAC3E,8EAA8E;IAC9E,+EAA+E;IAC/E,qEAAqE;IACrE,wCAAwC;IACxC,EAAE;IACF,6EAA6E;IAC7E,6EAA6E;IAC7E,2EAA2E;IAC3E,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC1D,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,IAAI,WAAW,KAAK,IAAI,IAAI,QAAQ,EAAE,CAAC;QACrC,yEAAyE;QACzE,wEAAwE;QACxE,4EAA4E;QAC5E,2BAA2B;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,8EAA8E;IAC9E,qEAAqE;IACrE,EAAE;IACF,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,uEAAuE;IACvE,6EAA6E;IAC7E,0EAA0E;IAC1E,8EAA8E;IAC9E,0DAA0D;IAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,aAAa,CAAC,CAAC;IAC9E,MAAM,GAAG,GACP,SAAS,GAAG,CAAC;QACX,CAAC,CAAC,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC;QAC1E,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACrC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,8EAA8E;IAC9E,sDAAsD;IACtD,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE,8EAA8E;IAC9E,yEAAyE;IACzE,8EAA8E;IAC9E,uBAAuB;IACvB,EAAE;IACF,4DAA4D;IAC5D,0EAA0E;IAC1E,8EAA8E;IAC9E,6EAA6E;IAC7E,2EAA2E;IAC3E,mDAAmD;IACnD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC;IAE1B,2EAA2E;IAC3E,yEAAyE;IACzE,8EAA8E;IAC9E,+EAA+E;IAC/E,EAAE;IACF,4EAA4E;IAC5E,8EAA8E;IAC9E,8DAA8D;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEjC,+EAA+E;IAC/E,mDAAmD;IACnD,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IACrE,6EAA6E;IAC7E,8EAA8E;IAC9E,6EAA6E;IAC7E,0EAA0E;IAC1E,6EAA6E;IAC7E,wEAAwE;IACxE,0DAA0D;IAC1D,iEAAiE;IACjE,+EAA+E;IAC/E,uEAAuE;IACvE,2HAA2H;IAC3H,4HAA4H;IAC5H,sHAAsH;IACtH,6MAA6M;IAC7M,kGAAkG;IAClG,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACnF,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,yBAAyB,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAClF,mIAAmI;IACnI,mIAAmI;IACnI,6HAA6H;IAC7H,gHAAgH;IAChH,IAAI,KAAK,KAAK,MAAM,IAAI,YAAY,EAAE,CAAC;QACrC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACrD,gGAAgG;QAChG,EAAE;QACF,+GAA+G;QAC/G,+GAA+G;QAC/G,yGAAyG;QACzG,qFAAqF;QACrF,MAAM,cAAc,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9E,IAAI,cAAc,CAAC,KAAK,GAAG,CAAC;YAAE,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IACxH,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxD,8EAA8E;IAC9E,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE,qIAAqI;IACrI,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/D,uEAAuE;IACvE,6EAA6E;IAC7E,oEAAoE;IACpE,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B;QACE,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,GAAG;QACH,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,mEAAmE;QACnE,2EAA2E;QAC3E,OAAO,EAAE,UAAU;QACnB,QAAQ;QACR,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,MAAiB;QAC1B,qEAAqE;QACrE,wEAAwE;QACxE,0EAA0E;QAC1E,gCAAgC;QAChC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,sEAAsE;QACtE,yEAAyE;QACzE,gEAAgE;QAChE,SAAS,EAAE,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC;QAChD,oHAAoH;QACpH,6GAA6G;QAC7G,YAAY,EAAE,WAAW,GAAG,UAAU;QACtC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;QACjB,MAAM,EAAE,IAAI;QACZ,uEAAuE;QACvE,oEAAoE;QACpE,qEAAqE;QACrE,yEAAyE;QACzE,mDAAmD;QACnD,IAAI;QACJ,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,2EAA2E;QAC3E,yEAAyE;QACzE,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,SAAS,CAAC,KAAK;QACzB,gBAAgB,EAAE,QAAQ,CAAC,KAAK;QAChC,cAAc,EAAE,QAAQ,CAAC,MAAM;KAChC,EACD,GAAG;IACH,qEAAqE;IACrE,2EAA2E;IAC3E,gEAAgE;IAChE,uEAAuE;IACvE,2EAA2E;IAC3E,qEAAqE;IACrE,0EAA0E;IAC1E,gCAAgC;IAChC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EACzF,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CACnC,CAAC;IAEF,yCAAyC;IACzC,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;QACvC,GAAG;QACH,KAAK;QACL,GAAG;QACH,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU;QACV,cAAc;QACd,QAAQ;QACR,SAAS,EAAE,WAAW;QACtB,UAAU;QACV,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,+DAA+D;IAC/D,EAAE;IACF,6DAA6D;IAC7D,yEAAyE;IACzE,8EAA8E;IAC9E,EAAE;IACF,2EAA2E;IAC3E,2BAA2B;IAC3B,EAAE;IACF,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,qEAAqE;IACrE,uEAAuE;IACvE,oDAAoD;IACpD,EAAE;IACF,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,8EAA8E;IAC9E,sDAAsD;IACtD,IAAI,YAAY,EAAE,CAAC;QACjB,SAAS,CACP,GAAG,EACH,KAAK,EACL,UAAU,EACV,CAAC,EAAE,OAAO,EAAE,MAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,EAC/D,SAAS,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,IAAI,EACrC,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,sCAAsC;IACtC,EAAE;IACF,wEAAwE;IACxE,6EAA6E;IAC7E,+EAA+E;IAC/E,uCAAuC;IACvC,EAAE;IACF,4EAA4E;IAC5E,2EAA2E;IAC3E,+EAA+E;IAC/E,wEAAwE;IACxE,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAClC,IAAI,QAAQ,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YACrC,6FAA6F;YAC7F,4FAA4F;YAC5F,yFAAyF;YACzF,oDAAoD;YACpD,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,IACE,OAAO,CAAC,IAAI,KAAK,IAAI;gBACrB,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,EACpF,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,MAAM,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAClC,sGAAsG;YACtG,qGAAqG;YACrG,sGAAsG;YACtG,+EAA+E;YAC/E,IAAI,QAAQ,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,oBAAoB,CAC/B,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,GAAG,EACP,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,EACtC,QAAQ,CAAC,iBAAiB,EAC1B,IAAI,IAAI,EAAE,CACX,CAAC;gBACF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC5C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBAC1E,IAAI,MAAM,KAAK,IAAI;wBAAE,OAAO,MAAM,CAAC;gBACrC,CAAC;YACH,CAAC;YACD,OAAO,CACL,CAAC,SAAS,EAAE,KAAK,IAAI,IAAI;gBACvB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC5E,MAAM,CAAC,mBAAmB,EAAE,UAAU,CAAC,CACxC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAuBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAqBtC;IACC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,GACxG,IAAI,CAAC;IACP,0EAA0E;IAC1E,qEAAqE;IACrE,8EAA8E;IAC9E,8EAA8E;IAC9E,8EAA8E;IAC9E,qBAAqB;IACrB,MAAM,KAAK,GAAG;QACZ,GAAG,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC;QAC/C,GAAG,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC;KACtC,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAEtE,+EAA+E;IAC/E,oDAAoD;IACpD,EAAE;IACF,+EAA+E;IAC/E,8EAA8E;IAC9E,0EAA0E;IAC1E,yEAAyE;IACzE,mDAAmD;IACnD,EAAE;IACF,4EAA4E;IAC5E,qDAAqD;IACrD,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAChE,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACtF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAExE,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,MAAM,UAAU,GAAe,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC1C,IAAI,UAAU,GAAG,UAAU,GAAG,sBAAsB;YAAE,MAAM;QAE5D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B;YACE,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,GAAG;YACH,UAAU;YACV,OAAO,EAAE,UAAU;YACnB,QAAQ;YACR,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,mEAAmE;YACnE,qEAAqE;YACrE,+CAA+C;YAC/C,cAAc,EAAE,IAAI,CAAC,IAAI;YACzB,yEAAyE;YACzE,SAAS,EAAE,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC;YAChD,2GAA2G;YAC3G,YAAY,EAAE,SAAS,GAAG,UAAU;YACpC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;YACjB,MAAM;SACP,EACD,IAAI,CAAC,IAAI;QACT,uEAAuE;QACvE,yEAAyE;QACzE,4EAA4E;QAC5E,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAC9E,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CACxB,CAAC;QACF,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAI,SAAS,CAAC,QAAQ,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACrC,CAAC;AAqBD;;;;;;;GAOG;AACH,SAAS,SAAS,CAAC,QAAkB;IACnC,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,CACL,QAAQ,CAAC,IAAI,KAAK,WAAW;QAC7B,CAAC,QAAQ,CAAC,WAAW,KAAK,OAAO,IAAI,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,CACvE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,SAAS,SAAS,CAChB,GAAoB,EACpB,KAAgB,EAChB,UAAkB,EAClB,KAA8B;AAC9B,kEAAkE;AAClE,kBAA2B,EAC3B,KAAa;IAEb,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAChE,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,wEAAwE;IACxE,4EAA4E;IAC5E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI;YAAE,SAAS;QAC9C,4EAA4E;QAC5E,uEAAuE;QACvE,yEAAyE;QACzE,6EAA6E;QAC7E,qEAAqE;QACrE,IAAI,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,0EAA0E;QAC1E,gBAAgB,CACd,GAAG,CAAC,IAAI,EACR,GAAG,EACH,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAChH,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,2EAA2E;IAC3E,4EAA4E;IAC5E,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,2GAA2G;IAC3G,uGAAuG;IACvG,uGAAuG;IACvG,4CAA4C;IAC5C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QACpE,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,iBAAiB,CAAC,GAAoB,EAAE,cAAsB;IACrE,8EAA8E;IAC9E,gFAAgF;IAChF,6EAA6E;IAC7E,sEAAsE;IACtE,sEAAsE;IACtE,EAAE;IACF,qEAAqE;IACrE,6EAA6E;IAC7E,sEAAsE;IACtE,6EAA6E;IAC7E,+EAA+E;IAC/E,8EAA8E;IAC9E,8EAA8E;IAC9E,6CAA6C;IAC7C,EAAE;IACF,4EAA4E;IAC5E,wEAAwE;IACxE,0EAA0E;IAC1E,0CAA0C;IAC1C,IACE,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,oBAAoB;QACtF,UAAU,EACV,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;IACzC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjD,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,OAAO,KAAK,IAAI;YAAE,SAAS;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC;YAAE,SAAS;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;gBAAE,SAAS;YAChD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5F,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,SAAS,sBAAsB,CAAC,GAAoB,EAAE,KAAgB;IACpE,MAAM,SAAS,GAAG,KAAK,CAAC,mBAAmB,CAAC;IAC5C,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACvC,IACE,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;SACpE,oBAAoB,KAAK,UAAU,EACtC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,0EAA0E;IAC1E,+EAA+E;IAC/E,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAE/D,MAAM,OAAO,GAAG,wBAAwB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9D,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACjD,OAAO;YACL,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;SACzF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;QAC3D,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,MAAM,aAAa,GAAG,WAAW,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,SAAS,YAAY,CAAC,SAAiB;IACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACrE,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,IAAI,KAAK,EAAE;YAAE,MAAM;QACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,4EAA4E;IAC5E,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IACzE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IAChD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAY,EACZ,IAAY,EACZ,EAAU,EACV,YAA+B,EAC/B,IAAY,EACZ,GAAsB;IAEtB,IAAI,EAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9D,OAAO,gBAAgB,CACrB,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CACzE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,SAAS,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,iDAAiD;YACnD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpC;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,QAAQ,GAAG,CAAI,GAAsB,EAAK,EAAE;QAChD,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IACF,OAAO;QACL,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC5B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE;YACd,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/E,KAAK,IAAI,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,IAAI,GAAI,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;gBACtD,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACnD,IAAI,EAAE,IAAI,CAAC;oBAAE,OAAO,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;gBACnC,GAAG,GAAG,KAAK,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACJ,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CACtB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE;YACd,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC1C,KAAK,IAAI,GAAG,GAAG,IAAI,IAAM,CAAC;gBACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACnD,IAAI,IAAI,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC5B,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,EAAE,IAAI,CAAC;oBAAE,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;gBACjC,GAAG,IAAI,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC;KACL,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,GAAe,EAAE,cAAsB,EAAE,KAAa,EAAE,OAAyB,SAAS;IACrI,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACjE,OAAO,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAChG,CAAC"}
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/hooks/entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,6 +57,10 @@
|
|
|
57
57
|
* not dangerous. Stated rather than assumed, because "a lock that silently drops
|
|
58
58
|
* work" is the right thing to be suspicious of.
|
|
59
59
|
*/
|
|
60
|
+
/** How much longer than the budget a lock may sit before anyone may reclaim it. */
|
|
61
|
+
export declare const STALE_MARGIN_MS = 2000;
|
|
62
|
+
/** `FireKey.repoKey` meaning "this firing is session-scoped, not repo-scoped". Never a path, so it cannot collide with one. */
|
|
63
|
+
export declare const SESSION_SCOPE = "\0session";
|
|
60
64
|
export interface FireKey {
|
|
61
65
|
readonly repoKey: string;
|
|
62
66
|
readonly sessionId: string;
|
|
@@ -73,6 +77,13 @@ export declare function fireLockPath(home: string, key: FireKey): string | null;
|
|
|
73
77
|
export interface FireClaim {
|
|
74
78
|
/** Release ours. Safe to call twice; never removes a lock that is not ours. */
|
|
75
79
|
readonly release: () => void;
|
|
80
|
+
/**
|
|
81
|
+
* HEARTBEAT (C25): re-stamp the lock's `at` as NOW under the SAME nonce, so a holder that is still working is never judged
|
|
82
|
+
* stale however long the whole job takes. `true`: the lock is still ours and fresh. `false`: it is NOT (another process
|
|
83
|
+
* reclaimed it, it was removed, or it cannot be written), and the holder must stop BEFORE its next write: a second writer may
|
|
84
|
+
* already be on the session. Safe to call any number of times, including after `false` (it stays `false`).
|
|
85
|
+
*/
|
|
86
|
+
readonly refresh: () => boolean;
|
|
76
87
|
}
|
|
77
88
|
/**
|
|
78
89
|
* Claim this firing, or report that another process already has it.
|
|
@@ -88,3 +99,23 @@ export interface FireClaim {
|
|
|
88
99
|
* too LATE only skips one redundant invocation — so the margin leans late.
|
|
89
100
|
*/
|
|
90
101
|
export declare function claimFiring(home: string, key: FireKey, budgetMs: number): FireClaim | null;
|
|
102
|
+
/** Where a session's ONE writer lock lives (O5): beside its target record, keyed by the session id alone. */
|
|
103
|
+
export declare function sessionWriterLockPath(home: string, sessionId: string): string;
|
|
104
|
+
/**
|
|
105
|
+
* ⛔ THE ONE LOCK PER SESSION (O5, any-folder capture): serialises every writer of a session's target record, ledgers and
|
|
106
|
+
* spools: every hook event, `finalize` and `backfill`, whichever repo each is standing in.
|
|
107
|
+
*
|
|
108
|
+
* It is NOT `claimFiring`. That one answers "is this exact firing already running?" and the loser BOWS OUT; this one answers
|
|
109
|
+
* "is another writer touching this session right now?" and the loser WAITS, because a Stop and a PreCompact (or a hook and a
|
|
110
|
+
* `finalize`) are different work that must not interleave on one record. The wait is spent out of the CALLER'S OWN budget:
|
|
111
|
+
* it polls until `deadlineAtMs` and then gives up with `null`, and the bytes it did not send ride the next firing (or the idle
|
|
112
|
+
* drain). A waiter never holds the watchdog hostage: `wait` is the caller's awaitable timer, not a blocking sleep.
|
|
113
|
+
*
|
|
114
|
+
* `staleAfterMs` is the age after which a lock is presumed to belong to a dead process: a hook passes its budget plus the
|
|
115
|
+
* margin (a healthy holder is ended by its watchdog at the budget), an interactive verb its own ceiling.
|
|
116
|
+
*/
|
|
117
|
+
export declare function claimSessionWriter(home: string, sessionId: string, options: {
|
|
118
|
+
readonly staleAfterMs: number;
|
|
119
|
+
readonly deadlineAtMs: number;
|
|
120
|
+
readonly wait: (ms: number) => Promise<void>;
|
|
121
|
+
}): Promise<FireClaim | null>;
|
package/dist/hooks/fire_lock.js
CHANGED
|
@@ -57,12 +57,14 @@
|
|
|
57
57
|
* not dangerous. Stated rather than assumed, because "a lock that silently drops
|
|
58
58
|
* work" is the right thing to be suspicious of.
|
|
59
59
|
*/
|
|
60
|
-
import { linkSync, openSync, readFileSync, unlinkSync, writeFileSync, closeSync, mkdirSync } from "node:fs";
|
|
60
|
+
import { linkSync, openSync, readFileSync, renameSync, unlinkSync, writeFileSync, closeSync, mkdirSync } from "node:fs";
|
|
61
61
|
import { randomBytes } from "node:crypto";
|
|
62
62
|
import { join } from "node:path";
|
|
63
|
-
import { repoSessionsDir } from "../paths.js";
|
|
63
|
+
import { repoSessionsDir, sessionFileStem, targetsDir } from "../paths.js";
|
|
64
64
|
/** How much longer than the budget a lock may sit before anyone may reclaim it. */
|
|
65
|
-
const STALE_MARGIN_MS = 2_000;
|
|
65
|
+
export const STALE_MARGIN_MS = 2_000;
|
|
66
|
+
/** `FireKey.repoKey` meaning "this firing is session-scoped, not repo-scoped". Never a path, so it cannot collide with one. */
|
|
67
|
+
export const SESSION_SCOPE = "\u0000session";
|
|
66
68
|
/**
|
|
67
69
|
* Where one firing's lock lives — beside the session state it protects.
|
|
68
70
|
*
|
|
@@ -70,7 +72,9 @@ const STALE_MARGIN_MS = 2_000;
|
|
|
70
72
|
* project resolved has nothing to serialise against and must not invent a path.
|
|
71
73
|
*/
|
|
72
74
|
export function fireLockPath(home, key) {
|
|
73
|
-
|
|
75
|
+
// `SESSION_SCOPE` keys the firing by session and event alone (any-folder capture): the lock then lives beside the session's
|
|
76
|
+
// target record and never creates a repo-digest directory, which a turn that ended outside any work tree has no business making.
|
|
77
|
+
const dir = key.repoKey === SESSION_SCOPE ? targetsDir(home) : repoSessionsDir(home, key.repoKey);
|
|
74
78
|
if (dir === null)
|
|
75
79
|
return null;
|
|
76
80
|
const session = key.sessionId.replace(/[^A-Za-z0-9._-]/g, "_") || "_";
|
|
@@ -94,15 +98,27 @@ export function claimFiring(home, key, budgetMs) {
|
|
|
94
98
|
const path = fireLockPath(home, key);
|
|
95
99
|
if (path === null)
|
|
96
100
|
return null;
|
|
101
|
+
return claimPath(path, budgetMs + STALE_MARGIN_MS);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Take the lock at `path` or report that a live holder has it. `staleAfterMs` is how old a lock may be before it is presumed
|
|
105
|
+
* to belong to a dead process and is reclaimed (exactly once, see the comment inside).
|
|
106
|
+
*/
|
|
107
|
+
function claimPath(path, staleAfterMs) {
|
|
108
|
+
// ⛔ THE HOLDER WRITES ITS OWN STALENESS BOUND INTO THE LOCK (C18 #2). A contender used to judge a lock by ITS OWN timeout, so a hook
|
|
109
|
+
// (budget ~7 s) could unlink the live 60 s lock of `finalize`, and two writers then ran at once. Now a contender honours the value
|
|
110
|
+
// the holder stamped; only a lock with none (written by an older client) falls back to the contender's own.
|
|
111
|
+
const nonce = randomBytes(8).toString("hex");
|
|
97
112
|
const mine = JSON.stringify({
|
|
98
113
|
pid: process.pid,
|
|
99
114
|
at: Date.now(),
|
|
100
|
-
|
|
115
|
+
staleAfterMs,
|
|
116
|
+
nonce,
|
|
101
117
|
});
|
|
102
118
|
if (!publish(path, mine)) {
|
|
103
119
|
// Taken. Is the holder alive, or did one die mid-flight?
|
|
104
|
-
const held =
|
|
105
|
-
if (held !== null && Date.now() - held <=
|
|
120
|
+
const held = heldLock(path);
|
|
121
|
+
if (held !== null && Date.now() - held.at <= (held.staleAfterMs ?? staleAfterMs))
|
|
106
122
|
return null;
|
|
107
123
|
// ⚠ Stale (or undatable, which means it was not written by this code).
|
|
108
124
|
// Remove and try EXACTLY ONCE more: if a third process wins that race, it is
|
|
@@ -117,7 +133,19 @@ export function claimFiring(home, key, budgetMs) {
|
|
|
117
133
|
if (!publish(path, mine))
|
|
118
134
|
return null;
|
|
119
135
|
}
|
|
136
|
+
// THE NONCE IS THE LOCK'S IDENTITY (C25): `refresh` rewrites `at` and nothing else, so "is it still ours?" is "does the file carry our
|
|
137
|
+
// nonce?", never "is it byte-for-byte what we wrote?".
|
|
138
|
+
const isOurs = () => {
|
|
139
|
+
try {
|
|
140
|
+
const parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
141
|
+
return parsed !== null && typeof parsed === "object" && parsed.nonce === nonce ? { parsed } : null;
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
};
|
|
120
147
|
let released = false;
|
|
148
|
+
let lost = false;
|
|
121
149
|
return {
|
|
122
150
|
release: () => {
|
|
123
151
|
if (released)
|
|
@@ -127,15 +155,89 @@ export function claimFiring(home, key, budgetMs) {
|
|
|
127
155
|
// ⛔ ONLY IF STILL OURS. A stale reclaim may have handed this path to
|
|
128
156
|
// another process while we were running; deleting it then would drop
|
|
129
157
|
// THEIR lock and re-admit the double-send.
|
|
130
|
-
if (
|
|
158
|
+
if (isOurs() !== null)
|
|
131
159
|
unlinkSync(path);
|
|
132
160
|
}
|
|
133
161
|
catch {
|
|
134
162
|
// Already gone, or unreadable. Either way there is nothing of ours left.
|
|
135
163
|
}
|
|
136
164
|
},
|
|
165
|
+
refresh: () => {
|
|
166
|
+
if (released || lost)
|
|
167
|
+
return false;
|
|
168
|
+
try {
|
|
169
|
+
// ⛔ Only a lock that still carries OUR nonce is re-stamped. A reclaimed lock holds another holder's, and writing over it
|
|
170
|
+
// would hand the session to two writers again.
|
|
171
|
+
const held = isOurs();
|
|
172
|
+
if (held === null) {
|
|
173
|
+
lost = true;
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
const next = JSON.stringify({ ...held.parsed, at: Date.now() });
|
|
177
|
+
// Replace atomically (the stamp is complete before it is visible, as `publish` insists): a contender reading mid-write
|
|
178
|
+
// must see the old stamp or the new one, never an empty file it would treat as stale. The check-then-rename window is
|
|
179
|
+
// only exploitable by a contender that finds the lock STALE inside it, which a holder that beats within its bound
|
|
180
|
+
// never is.
|
|
181
|
+
const staging = `${path}.${process.pid}.${randomBytes(6).toString("hex")}`;
|
|
182
|
+
const fd = openSync(staging, "wx", 0o600);
|
|
183
|
+
try {
|
|
184
|
+
writeFileSync(fd, next);
|
|
185
|
+
}
|
|
186
|
+
finally {
|
|
187
|
+
closeSync(fd);
|
|
188
|
+
}
|
|
189
|
+
try {
|
|
190
|
+
renameSync(staging, path);
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
try {
|
|
194
|
+
unlinkSync(staging);
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
// Ours alone.
|
|
198
|
+
}
|
|
199
|
+
throw error;
|
|
200
|
+
}
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
// Unreadable or unwritable: ownership cannot be shown, so the holder stops (fail closed).
|
|
205
|
+
lost = true;
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
},
|
|
137
209
|
};
|
|
138
210
|
}
|
|
211
|
+
/** Where a session's ONE writer lock lives (O5): beside its target record, keyed by the session id alone. */
|
|
212
|
+
export function sessionWriterLockPath(home, sessionId) {
|
|
213
|
+
return join(targetsDir(home), `${sessionFileStem(sessionId)}.writer.lock`);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* ⛔ THE ONE LOCK PER SESSION (O5, any-folder capture): serialises every writer of a session's target record, ledgers and
|
|
217
|
+
* spools: every hook event, `finalize` and `backfill`, whichever repo each is standing in.
|
|
218
|
+
*
|
|
219
|
+
* It is NOT `claimFiring`. That one answers "is this exact firing already running?" and the loser BOWS OUT; this one answers
|
|
220
|
+
* "is another writer touching this session right now?" and the loser WAITS, because a Stop and a PreCompact (or a hook and a
|
|
221
|
+
* `finalize`) are different work that must not interleave on one record. The wait is spent out of the CALLER'S OWN budget:
|
|
222
|
+
* it polls until `deadlineAtMs` and then gives up with `null`, and the bytes it did not send ride the next firing (or the idle
|
|
223
|
+
* drain). A waiter never holds the watchdog hostage: `wait` is the caller's awaitable timer, not a blocking sleep.
|
|
224
|
+
*
|
|
225
|
+
* `staleAfterMs` is the age after which a lock is presumed to belong to a dead process: a hook passes its budget plus the
|
|
226
|
+
* margin (a healthy holder is ended by its watchdog at the budget), an interactive verb its own ceiling.
|
|
227
|
+
*/
|
|
228
|
+
export async function claimSessionWriter(home, sessionId, options) {
|
|
229
|
+
const path = sessionWriterLockPath(home, sessionId);
|
|
230
|
+
for (;;) {
|
|
231
|
+
const claim = claimPath(path, options.staleAfterMs);
|
|
232
|
+
if (claim !== null)
|
|
233
|
+
return claim;
|
|
234
|
+
if (Date.now() >= options.deadlineAtMs)
|
|
235
|
+
return null;
|
|
236
|
+
await options.wait(WRITER_POLL_MS);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/** How often a waiting writer retries. Short against any budget, long against the cost of a failed `link()`. */
|
|
240
|
+
const WRITER_POLL_MS = 20;
|
|
139
241
|
/**
|
|
140
242
|
* Create the lock atomically, contents first.
|
|
141
243
|
*
|
|
@@ -179,11 +281,17 @@ function publish(path, contents) {
|
|
|
179
281
|
}
|
|
180
282
|
}
|
|
181
283
|
}
|
|
182
|
-
/**
|
|
183
|
-
|
|
284
|
+
/** The longest a holder's own bound is believed: a corrupt or hostile value must not wedge a lock for good. */
|
|
285
|
+
const MAX_HOLDER_STALE_MS = 10 * 60_000;
|
|
286
|
+
/** When the lock on disk was taken and how long its holder said it may be held, or `null` if it cannot be dated. */
|
|
287
|
+
function heldLock(path) {
|
|
184
288
|
try {
|
|
185
|
-
const
|
|
186
|
-
|
|
289
|
+
const parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
290
|
+
if (typeof parsed.at !== "number")
|
|
291
|
+
return null;
|
|
292
|
+
const bound = parsed.staleAfterMs;
|
|
293
|
+
const own = typeof bound === "number" && Number.isFinite(bound) && bound > 0 ? Math.min(bound, MAX_HOLDER_STALE_MS) : null;
|
|
294
|
+
return { at: parsed.at, staleAfterMs: own };
|
|
187
295
|
}
|
|
188
296
|
catch {
|
|
189
297
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fire_lock.js","sourceRoot":"","sources":["../../src/hooks/fire_lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"fire_lock.js","sourceRoot":"","sources":["../../src/hooks/fire_lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `SessionStart`'s one bounded read of the account's grants (slice 2, `CR-259`, S4; exception 2, VT's conditions).
|
|
3
|
+
*
|
|
4
|
+
* ```
|
|
5
|
+
* GET <ingest origin>/ingest/v1/grants 200 { "schema": 1, "epoch", "owners", "repos", "excluded" }
|
|
6
|
+
* ```
|
|
7
|
+
*
|
|
8
|
+
* This is the ONLY place a hook reads a successful response body. It is a separate request from any upload and it never goes through
|
|
9
|
+
* `send`, so an ingest reply's 2xx body is still not read on the hook path (`post.ts`).
|
|
10
|
+
*
|
|
11
|
+
* ## When it runs — all four, or not at all
|
|
12
|
+
*
|
|
13
|
+
* 1. the machine's account state is **stale**: a credential-lane answer carried an `X-Grant-Epoch` that is not the epoch last
|
|
14
|
+
* recorded (`noteGrantEpoch`, called from `deliver`). A machine that has seen the same epoch every turn never asks;
|
|
15
|
+
* 2. the last GET was **more than an hour ago** (`last_get_at`). It is written BEFORE the request, so a server that hangs or a
|
|
16
|
+
* hook that is killed mid-request costs the next hour of sessions nothing;
|
|
17
|
+
* 3. there is a **usable credential and ingest address**;
|
|
18
|
+
* 4. the hook has **budget to spare**: the GET is bounded at 1,000 ms and by what is left of the hook's own wall clock.
|
|
19
|
+
*
|
|
20
|
+
* ## What it can and cannot do
|
|
21
|
+
*
|
|
22
|
+
* - It reads through `readCappedJson` at the **hook path's 64 KiB** (a CLI verb reads 1 MiB; a hook does not). A stalled, cut-off,
|
|
23
|
+
* oversize or off-contract body is "unavailable": **the state stays stale**, nothing throws, and nothing waits past the bound.
|
|
24
|
+
* - It writes `grants-account.json` — `account`, `stale: false`, `last_get_at` — whole and atomically, and NEVER `grants.json`.
|
|
25
|
+
* `refused` is left as it was: a GET is not a sync, only a sync (or this machine's own next 200) says a refusal is over.
|
|
26
|
+
* - It never syncs: no POST, no queue, no `pending`. Whatever the machine has not delivered stays for the next verb.
|
|
27
|
+
* - What it learned admits nothing. `isCaptureAllowed` never reads `account` as a grant.
|
|
28
|
+
*
|
|
29
|
+
* It returns how many of the account's owner grants and repository grants this machine has not named, so the caller can say state 10.
|
|
30
|
+
* `null` means nothing to say.
|
|
31
|
+
*/
|
|
32
|
+
import type { IngestCredential } from "../credential.js";
|
|
33
|
+
/** The most one SessionStart GET waits: exception 2's bound, inside the hook's existing budget. */
|
|
34
|
+
export declare const SESSION_GRANTS_GET_MS = 1000;
|
|
35
|
+
/** At most one GET an hour per machine. */
|
|
36
|
+
export declare const SESSION_GRANTS_MIN_INTERVAL_MS: number;
|
|
37
|
+
export interface SessionGrantsDeps {
|
|
38
|
+
readonly env: NodeJS.ProcessEnv;
|
|
39
|
+
readonly home: string;
|
|
40
|
+
readonly credential: IngestCredential;
|
|
41
|
+
/** Injected so a cell can stub the one request. */
|
|
42
|
+
readonly fetch?: typeof fetch;
|
|
43
|
+
readonly now?: () => Date;
|
|
44
|
+
/** What is left of the hook's own budget, in ms. Absent means the GET's own bound is all there is. */
|
|
45
|
+
readonly budgetLeftMs?: () => number;
|
|
46
|
+
}
|
|
47
|
+
export interface GrantsNoticeFacts {
|
|
48
|
+
/** The account's epoch as the GET read it: the key of the once-per-epoch notice. */
|
|
49
|
+
readonly epoch: number;
|
|
50
|
+
/** How many of the account's OWNER grants this machine has not named. */
|
|
51
|
+
readonly owners: number;
|
|
52
|
+
/** How many of the account's REPOSITORY grants this machine has not named (not under a named owner, not turned off). Owners plus repos is at least 1. */
|
|
53
|
+
readonly repos: number;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Do the one bounded GET if it is due, record what it said, and report the unnamed count if there is one to report.
|
|
57
|
+
* **NEVER THROWS.**
|
|
58
|
+
*/
|
|
59
|
+
export declare function refreshAccountGrants(deps: SessionGrantsDeps): Promise<GrantsNoticeFacts | null>;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `SessionStart`'s one bounded read of the account's grants (slice 2, `CR-259`, S4; exception 2, VT's conditions).
|
|
3
|
+
*
|
|
4
|
+
* ```
|
|
5
|
+
* GET <ingest origin>/ingest/v1/grants 200 { "schema": 1, "epoch", "owners", "repos", "excluded" }
|
|
6
|
+
* ```
|
|
7
|
+
*
|
|
8
|
+
* This is the ONLY place a hook reads a successful response body. It is a separate request from any upload and it never goes through
|
|
9
|
+
* `send`, so an ingest reply's 2xx body is still not read on the hook path (`post.ts`).
|
|
10
|
+
*
|
|
11
|
+
* ## When it runs — all four, or not at all
|
|
12
|
+
*
|
|
13
|
+
* 1. the machine's account state is **stale**: a credential-lane answer carried an `X-Grant-Epoch` that is not the epoch last
|
|
14
|
+
* recorded (`noteGrantEpoch`, called from `deliver`). A machine that has seen the same epoch every turn never asks;
|
|
15
|
+
* 2. the last GET was **more than an hour ago** (`last_get_at`). It is written BEFORE the request, so a server that hangs or a
|
|
16
|
+
* hook that is killed mid-request costs the next hour of sessions nothing;
|
|
17
|
+
* 3. there is a **usable credential and ingest address**;
|
|
18
|
+
* 4. the hook has **budget to spare**: the GET is bounded at 1,000 ms and by what is left of the hook's own wall clock.
|
|
19
|
+
*
|
|
20
|
+
* ## What it can and cannot do
|
|
21
|
+
*
|
|
22
|
+
* - It reads through `readCappedJson` at the **hook path's 64 KiB** (a CLI verb reads 1 MiB; a hook does not). A stalled, cut-off,
|
|
23
|
+
* oversize or off-contract body is "unavailable": **the state stays stale**, nothing throws, and nothing waits past the bound.
|
|
24
|
+
* - It writes `grants-account.json` — `account`, `stale: false`, `last_get_at` — whole and atomically, and NEVER `grants.json`.
|
|
25
|
+
* `refused` is left as it was: a GET is not a sync, only a sync (or this machine's own next 200) says a refusal is over.
|
|
26
|
+
* - It never syncs: no POST, no queue, no `pending`. Whatever the machine has not delivered stays for the next verb.
|
|
27
|
+
* - What it learned admits nothing. `isCaptureAllowed` never reads `account` as a grant.
|
|
28
|
+
*
|
|
29
|
+
* It returns how many of the account's owner grants and repository grants this machine has not named, so the caller can say state 10.
|
|
30
|
+
* `null` means nothing to say.
|
|
31
|
+
*/
|
|
32
|
+
import { accountNotHere } from "../account_not_here.js";
|
|
33
|
+
import { readGrants, readAccountState, writeAccountState, EMPTY_GRANTS } from "../consent.js";
|
|
34
|
+
import { fetchAccountGrants } from "../grants_sync.js";
|
|
35
|
+
import { readPerClone } from "../machine_state.js";
|
|
36
|
+
import { ingestUrl } from "../post.js";
|
|
37
|
+
/** The most one SessionStart GET waits: exception 2's bound, inside the hook's existing budget. */
|
|
38
|
+
export const SESSION_GRANTS_GET_MS = 1_000;
|
|
39
|
+
/** At most one GET an hour per machine. */
|
|
40
|
+
export const SESSION_GRANTS_MIN_INTERVAL_MS = 60 * 60 * 1000;
|
|
41
|
+
/** Kept back from the hook's wall clock for everything after the request (the notice, the write, the exit). */
|
|
42
|
+
const RESERVE_MS = 300;
|
|
43
|
+
/** Under this the request is not worth starting: the hook just leaves the state stale. */
|
|
44
|
+
const MIN_TIMEOUT_MS = 100;
|
|
45
|
+
/**
|
|
46
|
+
* Do the one bounded GET if it is due, record what it said, and report the unnamed count if there is one to report.
|
|
47
|
+
* **NEVER THROWS.**
|
|
48
|
+
*/
|
|
49
|
+
export async function refreshAccountGrants(deps) {
|
|
50
|
+
try {
|
|
51
|
+
const now = (deps.now ?? (() => new Date()))();
|
|
52
|
+
const state = readAccountState(deps.home);
|
|
53
|
+
if (!state.stale)
|
|
54
|
+
return null;
|
|
55
|
+
if (state.last_get_at !== null) {
|
|
56
|
+
const last = Date.parse(state.last_get_at);
|
|
57
|
+
if (Number.isFinite(last) && now.getTime() - last < SESSION_GRANTS_MIN_INTERVAL_MS && now.getTime() >= last)
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
const url = ingestUrl(deps.env);
|
|
61
|
+
if (url === null)
|
|
62
|
+
return null;
|
|
63
|
+
const left = deps.budgetLeftMs?.() ?? Number.POSITIVE_INFINITY;
|
|
64
|
+
const timeoutMs = Math.min(SESSION_GRANTS_GET_MS, left - RESERVE_MS);
|
|
65
|
+
if (!(timeoutMs >= MIN_TIMEOUT_MS))
|
|
66
|
+
return null;
|
|
67
|
+
// Before the request, not after it: a hang must not be paid for again by every session of the next hour.
|
|
68
|
+
writeAccountState(deps.home, { ...state, last_get_at: now.toISOString() });
|
|
69
|
+
const read = await fetchAccountGrants(url, deps.credential, { fetch: deps.fetch ?? fetch, timeoutMs });
|
|
70
|
+
if (read.kind !== "ok")
|
|
71
|
+
return null;
|
|
72
|
+
const stamp = now.toISOString();
|
|
73
|
+
const account = { owners: read.owners, repos: read.repos, excluded: read.excluded, epoch: read.epoch, synced_at: stamp };
|
|
74
|
+
// Re-read: another hook or a verb may have written the file during the request, and only this hook's own fields are ours to set.
|
|
75
|
+
writeAccountState(deps.home, { ...readAccountState(deps.home), account, stale: false, last_get_at: stamp });
|
|
76
|
+
const grants = readGrants(deps.home);
|
|
77
|
+
if (grants.kind === "unreadable")
|
|
78
|
+
return null;
|
|
79
|
+
// A repo this machine holds only a per-clone consent for is on here: count it as named (the same resolution `status` uses).
|
|
80
|
+
const perClone = readPerClone(deps.home).flatMap((c) => (c.slug === null ? [] : [c.slug]));
|
|
81
|
+
const notHere = accountNotHere(grants.kind === "ok" ? grants.grants : EMPTY_GRANTS, account, perClone);
|
|
82
|
+
// `notHere` names an owner as `owner/` and a repo as its slug (`account_not_here.ts`): the trailing slash is the split.
|
|
83
|
+
const owners = notHere.filter((name) => name.endsWith("/")).length;
|
|
84
|
+
const repos = notHere.length - owners;
|
|
85
|
+
return owners + repos === 0 ? null : { epoch: read.epoch, owners, repos };
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=session_grants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session_grants.js","sourceRoot":"","sources":["../../src/hooks/session_grants.ts"],"names":[],"mappings":"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"}
|