openlimiter 0.4.0 → 1.3.1
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 +63 -13
- package/dist/bin.js +91 -11
- package/dist/bin.js.map +1 -1
- package/dist/cli.d.ts +128 -12
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1276 -69
- package/dist/cli.js.map +1 -1
- package/dist/codex-device-login.d.ts +87 -0
- package/dist/codex-device-login.d.ts.map +1 -0
- package/dist/codex-device-login.js +291 -0
- package/dist/codex-device-login.js.map +1 -0
- package/dist/config.d.ts +44 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +129 -7
- package/dist/config.js.map +1 -1
- package/dist/hub-auth.d.ts +137 -0
- package/dist/hub-auth.d.ts.map +1 -0
- package/dist/hub-auth.js +280 -0
- package/dist/hub-auth.js.map +1 -0
- package/dist/hub-sync.d.ts +144 -0
- package/dist/hub-sync.d.ts.map +1 -0
- package/dist/hub-sync.js +370 -0
- package/dist/hub-sync.js.map +1 -0
- package/dist/hub.d.ts +60 -0
- package/dist/hub.d.ts.map +1 -0
- package/dist/hub.js +178 -0
- package/dist/hub.js.map +1 -0
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/ingest.d.ts +36 -2
- package/dist/ingest.d.ts.map +1 -1
- package/dist/ingest.js +175 -6
- package/dist/ingest.js.map +1 -1
- package/dist/qr.d.ts.map +1 -1
- package/dist/qr.js +1 -0
- package/dist/qr.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +33 -16
- package/dist/render.js.map +1 -1
- package/dist/session.d.ts +46 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +121 -0
- package/dist/session.js.map +1 -0
- package/dist/smoke.d.ts +107 -0
- package/dist/smoke.d.ts.map +1 -0
- package/dist/smoke.js +327 -0
- package/dist/smoke.js.map +1 -0
- package/dist/statusline-wrapper.d.ts +32 -0
- package/dist/statusline-wrapper.d.ts.map +1 -0
- package/dist/statusline-wrapper.js +121 -0
- package/dist/statusline-wrapper.js.map +1 -0
- package/dist/statusline.d.ts +14 -0
- package/dist/statusline.d.ts.map +1 -1
- package/dist/statusline.js +261 -19
- package/dist/statusline.js.map +1 -1
- package/dist/terminal.d.ts +109 -0
- package/dist/terminal.d.ts.map +1 -0
- package/dist/terminal.js +974 -0
- package/dist/terminal.js.map +1 -0
- package/package.json +8 -6
- package/dist/serve.d.ts +0 -170
- package/dist/serve.d.ts.map +0 -1
- package/dist/serve.js +0 -533
- package/dist/serve.js.map +0 -1
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,SAAS,EAMV,MAAM,mBAAmB,CAAC;AAsC3B,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7C,IAAI,OAAO,IAAI,EAAE;QAAE,OAAO,UAAU,CAAC;IACrC,IAAI,OAAO,IAAI,EAAE;QAAE,OAAO,QAAQ,CAAC;IACnC,IAAI,OAAO,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC;IAClC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAE/B;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,QAAQ,GAAG,YAAY;IACrE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,+EAA+E;AAE/E,MAAM,MAAM,GAAG,SAAS,CAAC;AACzB,MAAM,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AAE5B;;;;;;GAMG;AACH,MAAM,SAAS,GAA6B;IAC1C,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,IAAI;CACX,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B,oDAAoD;AACpD,MAAM,GAAG,GAAG,IAAI,CAAC;AAEjB;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,WAAyD,EACzD,KAAc;IAEd,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAyD;IAEzD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,OAAO,WAAW,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC;AAChD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAAyD,EACzD,KAAc,EACd,QAAgB;IAEhB,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,QAAQ,KAAK,OAAO,IAAI,WAAW,CAAC,YAAY,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAClF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAc,EAAE,IAAa;IACpD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI;QAAE,OAAO,UAAU,CAAC;IACjD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,IAAY,EAAE,KAAc;IACvD,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,iEAAiE;AACjE,MAAM,aAAa,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAEjG;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,QAAQ,CACtB,OAAe,EACf,KAAoB,EACpB,KAAc,EACd,QAAQ,GAAG,YAAY,EACvB,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,EACpC,YAAY,GAAG,oBAAoB,CACjC,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAC7B,OAAO,CAAC,QAAQ,CACjB;IAED,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC;IAClC,MAAM,IAAI,GAAa,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE5D,IAAI,QAAQ,KAAK,YAAY,IAAI,KAAK,IAAI,YAAY,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YAClC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,KAAK;QAClB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAClD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,WAAW,CACzB,QAAgB,EAChB,QAAyB,EACzB,KAAc;IAEd,OAAO,KAAK,CAAC,QAAQ,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,QAAoC,EACpC,KAAc;IAEd,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC9B,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,+EAA+E;AAE/E,MAAM,MAAM,GAAG,MAAM,CAAC;AACtB,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,GAAG,GAAG,UAAU,CAAC;AAEvB;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,OAAsB,EAAE,GAAW;IAC7D,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IACzE,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACnC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IACpC,IAAI,SAAS,GAAG,MAAM;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,SAAS,GAAG,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;IAC1E,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG;YAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;IAC1D,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG;QAC9C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC;IACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC;IACnC,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,+EAA+E;AAE/E,kEAAkE;AAClE,MAAM,OAAO,GAA2D;IACtE,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;IACvC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IACjC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;IAC7B,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IACjC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;IACnC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IACjC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IACjC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE7E,sEAAsE;AACtE,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,iFAAiF;AACjF,MAAM,QAAQ,GAAG,QAAQ,CAAC;AAc1B,mEAAmE;AACnE,SAAS,gBAAgB,CAAC,QAAkB;IAC1C,OAAO,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;AACnE,CAAC;AAED,6EAA6E;AAC7E,SAAS,gBAAgB,CAAC,IAAY,EAAE,QAAgB;IACtD,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,yBAAyB,CAAC,UAA0C;IAC3E,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IACtD,IAAI,UAAU,CAAC,UAAU,KAAK,oBAAoB;QAAE,OAAO,WAAW,CAAC;IACvE,IAAI,UAAU,CAAC,UAAU,KAAK,iBAAiB;QAAE,OAAO,aAAa,CAAC;IACtE,IAAI,UAAU,CAAC,UAAU,KAAK,iBAAiB;QAAE,OAAO,QAAQ,CAAC;IACjE,IAAI,UAAU,CAAC,UAAU,KAAK,YAAY;QAAE,OAAO,WAAW,CAAC;IAC/D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+DAA+D;AAC/D,SAAS,cAAc,CAAC,UAA0C;IAChE,IACE,UAAU,EAAE,UAAU,KAAK,oBAAoB;QAC/C,UAAU,CAAC,WAAW,KAAK,wBAAwB,EACnD,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,MAAM,KAAK,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,KAAK,aAAa;QACnC,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC;AAC3B,CAAC;AAED,SAAS,QAAQ,CAAC,QAAkB,EAAE,GAAW,EAAE,KAAc;IAC/D,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACtE,OAAO;QACL,QAAQ,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;QAC1E,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;QAC3C,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI;QACpD,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;QAC7B,KAAK;QACL,KAAK,EAAE,QAAQ,CAAC,OAAO,IAAI,MAAM;QACjC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;QAC7C,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,SAAS,YAAY,CAAC,GAAc,EAAE,KAAa;IACjD,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,YAAY,CAAC;IACvC,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC;AAED,+EAA+E;AAC/E,SAAS,UAAU,CAAC,IAAoB;IACtC,MAAM,MAAM,GAA8B,EAA+B,CAAC;IAC1E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,EACpB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAChE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,OAAO;SACnB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACzD,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,OAAO;aACf,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;aAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CACrB,SAA8B;IAE9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,IAAI,QAAQ,KAAK,OAAO;YAAE,OAAO,QAAQ,GAAG,OAAO,CAAC;QACpD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAChE,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,SAA8B,EAC9B,GAAW,EACX,KAAc;IAEd,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,qCAAqC,CAAC;IACzE,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACtD,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAClC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { CredentialCommandRunner } from "@openlimiter/core";
|
|
2
|
+
export declare const SESSION_FILE_NAME = "openlimiter-session.json";
|
|
3
|
+
/** How this build explains the file's own protection, inside the file. */
|
|
4
|
+
export declare const SESSION_SECURITY_NOTE_POSIX = "This file holds a hub sign in. It is written with mode 0600 (owner read and write only).";
|
|
5
|
+
export declare const SESSION_SECURITY_NOTE_WINDOWS = "This file holds a hub sign in. An owner only ACL is applied through icacls, best effort.";
|
|
6
|
+
export interface HubSession {
|
|
7
|
+
readonly version: 1;
|
|
8
|
+
readonly token: string;
|
|
9
|
+
readonly expiresAt: string;
|
|
10
|
+
readonly refreshCredential: string;
|
|
11
|
+
readonly refreshExpiresAt: string;
|
|
12
|
+
readonly deviceId: string;
|
|
13
|
+
readonly accountLabel: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Read the stored session document, keeping only a value shaped exactly like
|
|
17
|
+
* one this build could have written.
|
|
18
|
+
*
|
|
19
|
+
* A corrupt, foreign or unsafe file reads as no session at all rather than a
|
|
20
|
+
* thrown error: every caller of this function already has to handle "nobody
|
|
21
|
+
* is signed in" as an ordinary case, and a hand edited or half written file is
|
|
22
|
+
* one more way to reach it, not a new failure mode.
|
|
23
|
+
*/
|
|
24
|
+
export declare function readSession(directory?: string): Promise<HubSession | null>;
|
|
25
|
+
export interface WriteSessionOptions {
|
|
26
|
+
readonly directory?: string;
|
|
27
|
+
readonly platform: NodeJS.Platform;
|
|
28
|
+
readonly windowsAclRunner?: CredentialCommandRunner;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Write the session document, then narrow who can read it.
|
|
32
|
+
*
|
|
33
|
+
* The write itself goes through the product's shared atomic writer, which
|
|
34
|
+
* already puts the file at mode 0600 wherever a file mode exists. The
|
|
35
|
+
* Windows ACL is layered on afterwards because it is a second, independent
|
|
36
|
+
* mechanism and a failure in it must never roll back a sign in that otherwise
|
|
37
|
+
* succeeded.
|
|
38
|
+
*/
|
|
39
|
+
export declare function writeSession(session: HubSession, options: WriteSessionOptions): Promise<void>;
|
|
40
|
+
/** Forget the session. `logout` is this and nothing else. */
|
|
41
|
+
export declare function deleteSession(directory?: string): Promise<void>;
|
|
42
|
+
/** How long before expiry this build renews, rather than waiting to lapse. */
|
|
43
|
+
export declare const RENEWAL_WINDOW_MILLISECONDS: number;
|
|
44
|
+
/** Whether a session is fresh enough to use as it stands. */
|
|
45
|
+
export declare function sessionIsFresh(session: HubSession, now: string): boolean;
|
|
46
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,eAAO,MAAM,iBAAiB,6BAA6B,CAAC;AAE5D,0EAA0E;AAC1E,eAAO,MAAM,2BAA2B,6FACoD,CAAC;AAC7F,eAAO,MAAM,6BAA6B,6FACkD,CAAC;AAE7F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAcD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,SAAS,SAA0B,GAClC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAsB5B;AA0BD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;CACrD;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,6DAA6D;AAC7D,wBAAsB,aAAa,CAAC,SAAS,SAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtF;AAED,8EAA8E;AAC9E,eAAO,MAAM,2BAA2B,QAAkB,CAAC;AAE3D,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAKxE"}
|
package/dist/session.js
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one credential the CLI keeps for the hub, and how it is protected.
|
|
3
|
+
*
|
|
4
|
+
* This package ships no OS keyring driver, so the session lives in a plain
|
|
5
|
+
* file beside the configuration, exactly the way the configuration itself
|
|
6
|
+
* does. The file is written through the same atomic writer every other state
|
|
7
|
+
* document in this product uses, which already puts it at mode 0600 on every
|
|
8
|
+
* platform that has file modes. Windows has no such mode, so a best effort
|
|
9
|
+
* owner only ACL is applied through `icacls` on top of that, and the file
|
|
10
|
+
* says so about itself so a person who opens it understands why.
|
|
11
|
+
*/
|
|
12
|
+
import { unlink } from "node:fs/promises";
|
|
13
|
+
import { userInfo } from "node:os";
|
|
14
|
+
import path from "node:path";
|
|
15
|
+
import { canonicalJson, readJsonFileSafely, resolveStateDirectory, writeFileAtomically } from "@openlimiter/core";
|
|
16
|
+
export const SESSION_FILE_NAME = "openlimiter-session.json";
|
|
17
|
+
/** How this build explains the file's own protection, inside the file. */
|
|
18
|
+
export const SESSION_SECURITY_NOTE_POSIX = "This file holds a hub sign in. It is written with mode 0600 (owner read and write only).";
|
|
19
|
+
export const SESSION_SECURITY_NOTE_WINDOWS = "This file holds a hub sign in. An owner only ACL is applied through icacls, best effort.";
|
|
20
|
+
function isRecord(value) {
|
|
21
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
22
|
+
}
|
|
23
|
+
function boundedString(value, minimum, maximum) {
|
|
24
|
+
return typeof value === "string" && value.length >= minimum && value.length <= maximum;
|
|
25
|
+
}
|
|
26
|
+
function validInstant(value) {
|
|
27
|
+
return typeof value === "string" && value.length <= 64 && Number.isFinite(Date.parse(value));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Read the stored session document, keeping only a value shaped exactly like
|
|
31
|
+
* one this build could have written.
|
|
32
|
+
*
|
|
33
|
+
* A corrupt, foreign or unsafe file reads as no session at all rather than a
|
|
34
|
+
* thrown error: every caller of this function already has to handle "nobody
|
|
35
|
+
* is signed in" as an ordinary case, and a hand edited or half written file is
|
|
36
|
+
* one more way to reach it, not a new failure mode.
|
|
37
|
+
*/
|
|
38
|
+
export async function readSession(directory = resolveStateDirectory()) {
|
|
39
|
+
const result = await readJsonFileSafely(path.join(directory, SESSION_FILE_NAME));
|
|
40
|
+
if (!result.ok || !isRecord(result.value))
|
|
41
|
+
return null;
|
|
42
|
+
const value = result.value;
|
|
43
|
+
if (value["version"] !== 1)
|
|
44
|
+
return null;
|
|
45
|
+
const token = value["token"];
|
|
46
|
+
const expiresAt = value["expiresAt"];
|
|
47
|
+
const refreshCredential = value["refreshCredential"];
|
|
48
|
+
const refreshExpiresAt = value["refreshExpiresAt"];
|
|
49
|
+
const deviceId = value["deviceId"];
|
|
50
|
+
const accountLabel = value["accountLabel"];
|
|
51
|
+
if (!boundedString(token, 16, 32_768) ||
|
|
52
|
+
!validInstant(expiresAt) ||
|
|
53
|
+
!boundedString(refreshCredential, 16, 4_096) ||
|
|
54
|
+
!validInstant(refreshExpiresAt) ||
|
|
55
|
+
!boundedString(deviceId, 1, 128) ||
|
|
56
|
+
!boundedString(accountLabel, 1, 256)) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
return { version: 1, token, expiresAt, refreshCredential, refreshExpiresAt, deviceId, accountLabel };
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Apply an owner only ACL to the session file on Windows, best effort.
|
|
63
|
+
*
|
|
64
|
+
* `icacls` is asked to drop inherited permissions and grant the current user
|
|
65
|
+
* full control and nobody else. Every failure here, including no runner being
|
|
66
|
+
* available at all, is swallowed: the file is already private on every
|
|
67
|
+
* platform where a file mode means anything, and a person who cannot run
|
|
68
|
+
* `icacls` on their own machine still has a readable session file rather than
|
|
69
|
+
* a command that refuses to finish signing them in.
|
|
70
|
+
*/
|
|
71
|
+
async function applyWindowsOwnerOnlyAcl(target, runner) {
|
|
72
|
+
if (runner === undefined)
|
|
73
|
+
return;
|
|
74
|
+
const username = userInfo().username;
|
|
75
|
+
if (username.length === 0 || username.length > 256)
|
|
76
|
+
return;
|
|
77
|
+
try {
|
|
78
|
+
await runner("icacls", [target, "/inheritance:r", "/grant:r", username + ":F"], 5_000);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
/* Best effort, as documented on the file itself. */
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Write the session document, then narrow who can read it.
|
|
86
|
+
*
|
|
87
|
+
* The write itself goes through the product's shared atomic writer, which
|
|
88
|
+
* already puts the file at mode 0600 wherever a file mode exists. The
|
|
89
|
+
* Windows ACL is layered on afterwards because it is a second, independent
|
|
90
|
+
* mechanism and a failure in it must never roll back a sign in that otherwise
|
|
91
|
+
* succeeded.
|
|
92
|
+
*/
|
|
93
|
+
export async function writeSession(session, options) {
|
|
94
|
+
const directory = options.directory ?? resolveStateDirectory();
|
|
95
|
+
const target = path.join(directory, SESSION_FILE_NAME);
|
|
96
|
+
const documented = {
|
|
97
|
+
security: options.platform === "win32"
|
|
98
|
+
? SESSION_SECURITY_NOTE_WINDOWS
|
|
99
|
+
: SESSION_SECURITY_NOTE_POSIX,
|
|
100
|
+
...session
|
|
101
|
+
};
|
|
102
|
+
await writeFileAtomically(target, canonicalJson(documented));
|
|
103
|
+
if (options.platform === "win32") {
|
|
104
|
+
await applyWindowsOwnerOnlyAcl(target, options.windowsAclRunner);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/** Forget the session. `logout` is this and nothing else. */
|
|
108
|
+
export async function deleteSession(directory = resolveStateDirectory()) {
|
|
109
|
+
await unlink(path.join(directory, SESSION_FILE_NAME)).catch(() => undefined);
|
|
110
|
+
}
|
|
111
|
+
/** How long before expiry this build renews, rather than waiting to lapse. */
|
|
112
|
+
export const RENEWAL_WINDOW_MILLISECONDS = 60 * 60 * 1_000;
|
|
113
|
+
/** Whether a session is fresh enough to use as it stands. */
|
|
114
|
+
export function sessionIsFresh(session, now) {
|
|
115
|
+
const expiresAtMs = Date.parse(session.expiresAt);
|
|
116
|
+
const nowMs = Date.parse(now);
|
|
117
|
+
if (!Number.isFinite(expiresAtMs) || !Number.isFinite(nowMs))
|
|
118
|
+
return false;
|
|
119
|
+
return expiresAtMs - nowMs > RENEWAL_WINDOW_MILLISECONDS;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/smoke.d.ts
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { type ConnectionStatus, type ProviderCode } from "@openlimiter/core";
|
|
2
|
+
/** The environment variable that turns this on. Nothing else does. */
|
|
3
|
+
export declare const LIVE_ENVIRONMENT_FLAG = "OPENLIMITER_LIVE";
|
|
4
|
+
/** What the command prints when the flag is absent. */
|
|
5
|
+
export declare const SKIPPED_NOTE: string;
|
|
6
|
+
/**
|
|
7
|
+
* Where a person points this at a payload they captured themselves.
|
|
8
|
+
*
|
|
9
|
+
* `OPENLIMITER_SMOKE_PAYLOAD_CLAUDE=/path/to/statusline.json` hands that file
|
|
10
|
+
* to the Claude reader. This is how a live response reaches the real parser
|
|
11
|
+
* without this module ever making the call: the person makes it, with their own
|
|
12
|
+
* credential, in their own shell, and hands over the result.
|
|
13
|
+
*/
|
|
14
|
+
export declare const PAYLOAD_ENVIRONMENT_PREFIX = "OPENLIMITER_SMOKE_PAYLOAD_";
|
|
15
|
+
/** Where the evidence goes, when a person wants it somewhere else. */
|
|
16
|
+
export declare const EVIDENCE_DIRECTORY_ENVIRONMENT = "OPENLIMITER_EVIDENCE_DIR";
|
|
17
|
+
/** Largest payload file this harness will read. */
|
|
18
|
+
export declare const MAX_PAYLOAD_BYTES = 262144;
|
|
19
|
+
/** The first thing that must not be here, or null when the text is clean. */
|
|
20
|
+
export declare function containsSecret(text: string): string | null;
|
|
21
|
+
/**
|
|
22
|
+
* The directory the evidence is written into.
|
|
23
|
+
*
|
|
24
|
+
* The mission workspace, `launch-2026-09-01/providers`, which sits beside the
|
|
25
|
+
* checkout rather than inside it. It is found by walking up from the repository
|
|
26
|
+
* root, because a worktree may be checked out at `launch-2026-09-01/wt/<lane>`
|
|
27
|
+
* or beside the workspace, and a fixed number of parent steps is right in one
|
|
28
|
+
* of those layouts and silently wrong in the other. The environment variable
|
|
29
|
+
* wins over both, for a person who wants the file somewhere else entirely.
|
|
30
|
+
*/
|
|
31
|
+
export declare function evidenceDirectory(repositoryRoot: string, environment?: Readonly<Record<string, string | undefined>>): string;
|
|
32
|
+
/** The evidence file for one provider on one day. */
|
|
33
|
+
export declare function evidenceFileName(provider: ProviderCode, day: string): string;
|
|
34
|
+
/** The calendar day an instant falls on, in UTC, so a file name never drifts. */
|
|
35
|
+
export declare function evidenceDay(now: string): string;
|
|
36
|
+
export interface SmokeMeter {
|
|
37
|
+
readonly meter: string;
|
|
38
|
+
readonly value: number;
|
|
39
|
+
readonly unit: string;
|
|
40
|
+
readonly resetAt: string | null;
|
|
41
|
+
readonly state: "fresh" | "stale" | "unknown";
|
|
42
|
+
readonly source: string;
|
|
43
|
+
readonly precision: string;
|
|
44
|
+
}
|
|
45
|
+
export interface SmokeProvider {
|
|
46
|
+
readonly provider: ProviderCode;
|
|
47
|
+
readonly connector: string;
|
|
48
|
+
readonly maturity: "stable" | "beta";
|
|
49
|
+
readonly detected: boolean;
|
|
50
|
+
/** Where the reading came from: a payload file, the local cache, or nothing. */
|
|
51
|
+
readonly via: "payload_file" | "snapshot_cache" | "none";
|
|
52
|
+
readonly connection: ConnectionStatus | null;
|
|
53
|
+
readonly meters: readonly SmokeMeter[];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* One printed line per provider per meter, in the shape a human scans.
|
|
57
|
+
*
|
|
58
|
+
* Percent and reset, because those are the two things a person is checking, and
|
|
59
|
+
* nothing else, because every other field on a snapshot is either a constant or
|
|
60
|
+
* a thing that could carry an identity.
|
|
61
|
+
*/
|
|
62
|
+
export declare function smokeLine(entry: SmokeProvider, meter: SmokeMeter): string;
|
|
63
|
+
/** The line for a provider that produced nothing, which is still a result. */
|
|
64
|
+
export declare function silentLine(entry: SmokeProvider): string;
|
|
65
|
+
/**
|
|
66
|
+
* The evidence document, with nothing in it that could name a person.
|
|
67
|
+
*
|
|
68
|
+
* Built by naming every field that goes IN rather than by deleting fields that
|
|
69
|
+
* must stay out. An allow list cannot be defeated by a provider adding a field,
|
|
70
|
+
* and a deny list can, which is the whole argument.
|
|
71
|
+
*/
|
|
72
|
+
export declare function sanitizeEvidence(entry: SmokeProvider, now: string): Record<string, unknown>;
|
|
73
|
+
export interface SmokeDependencies {
|
|
74
|
+
readonly environment: Readonly<Record<string, string | undefined>>;
|
|
75
|
+
readonly stateDirectory: string;
|
|
76
|
+
readonly now: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Read every provider this machine has, through the real readers.
|
|
80
|
+
*
|
|
81
|
+
* A payload file wins when one was supplied, because that is a reading taken
|
|
82
|
+
* today. Otherwise the local snapshot cache stands in: those rows were written
|
|
83
|
+
* by the real collectors on this machine, so they still answer the question
|
|
84
|
+
* this harness exists for, and the document says which of the two it was.
|
|
85
|
+
*/
|
|
86
|
+
export declare function collectSmoke(dependencies: SmokeDependencies): Promise<readonly SmokeProvider[]>;
|
|
87
|
+
export interface SmokeOutcome {
|
|
88
|
+
readonly lines: readonly string[];
|
|
89
|
+
readonly written: readonly string[];
|
|
90
|
+
readonly refused: readonly string[];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Run the harness and write one evidence file per provider that reported.
|
|
94
|
+
*
|
|
95
|
+
* A provider with no reading writes no file: an evidence file saying nothing
|
|
96
|
+
* happened is a file somebody will one day cite as proof that something did.
|
|
97
|
+
*/
|
|
98
|
+
export declare function runSmoke(dependencies: SmokeDependencies, directory: string): Promise<SmokeOutcome>;
|
|
99
|
+
/**
|
|
100
|
+
* The command, including the half of it that does nothing.
|
|
101
|
+
*
|
|
102
|
+
* Returns the exit code rather than calling `process.exit`, so the whole thing
|
|
103
|
+
* stays testable and the skipped path can be asserted to be exactly what it
|
|
104
|
+
* claims: no reads, no writes, exit zero.
|
|
105
|
+
*/
|
|
106
|
+
export declare function smokeMain(repositoryRoot: string, environment?: Readonly<Record<string, string | undefined>>, write?: (line: string) => void): Promise<number>;
|
|
107
|
+
//# sourceMappingURL=smoke.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smoke.d.ts","sourceRoot":"","sources":["../src/smoke.ts"],"names":[],"mappings":"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"}
|