dsh-keys-manager 0.0.0 → 0.1.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/LICENSE +21 -0
- package/README.md +164 -16
- package/README.zh-CN.md +114 -0
- package/bundle/cordis.patch.yml +5 -0
- package/icon.svg +12 -0
- package/lib/client/format.d.ts +8 -0
- package/lib/client/index.d.ts +3 -0
- package/lib/client/locales.d.ts +4 -0
- package/lib/client/runtime.d.ts +21 -0
- package/lib/client/store.d.ts +4 -0
- package/lib/client/styles.d.ts +2 -0
- package/lib/client/types.d.ts +87 -0
- package/lib/client/ui.d.ts +18 -0
- package/lib/client.js +1594 -0
- package/lib/core.d.ts +71 -0
- package/lib/core.js +238 -0
- package/lib/core.js.map +1 -0
- package/lib/domain.d.ts +171 -0
- package/lib/domain.js +9 -0
- package/lib/domain.js.map +1 -0
- package/lib/host-types.d.ts +178 -0
- package/lib/host-types.js +2 -0
- package/lib/host-types.js.map +1 -0
- package/lib/index.d.ts +181 -0
- package/lib/index.js +1782 -0
- package/lib/index.js.map +1 -0
- package/lib/providers.d.ts +28 -0
- package/lib/providers.js +1308 -0
- package/lib/providers.js.map +1 -0
- package/lib/store.d.ts +62 -0
- package/lib/store.js +398 -0
- package/lib/store.js.map +1 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +79 -14
- package/scripts/build-client.mjs +53 -0
- package/scripts/prepare-release.mjs +243 -0
- package/scripts/verify-dist.mjs +30 -0
- package/index.js +0 -30
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAyBA;;;;GAIG;AACH,SAAS,UAAU,CAAI,KAAQ;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,UAAU,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACvD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC;YAAE,UAAU,CAAC,KAAK,CAAC,CAAA;IACxF,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAM,CAAA;AAClC,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,eAAe,GAA6B,UAAU,CAAC;IAClE;QACE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,qCAAqC;QAChD,KAAK,EAAE;YACL,mBAAmB;SACpB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,0BAA0B;gBAChC,MAAM,EAAE,gBAAgB;gBACxB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,4BAA4B;gBAClC,MAAM,EAAE,kBAAkB;gBAC1B,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,iCAAiC;gBACvC,MAAM,EAAE,qBAAqB;gBAC7B,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,iCAAiC;QAC5C,KAAK,EAAE;YACL,gBAAgB;SACjB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,aAAa;gBACrB,eAAe,EAAE,KAAK;gBACtB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,OAAO;gBACf,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,2BAA2B;gBACjC,MAAM,EAAE,gBAAgB;gBACxB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,2BAA2B;QACtC,KAAK,EAAE;YACL,iBAAiB;SAClB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,gBAAgB;gBACxB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,gBAAgB;gBACxB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,gBAAgB;gBACxB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,OAAO;gBACpB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,6BAA6B;QACxC,KAAK,EAAE;YACL,mBAAmB;SACpB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,cAAc;gBACtB,eAAe,EAAE,MAAM;gBACvB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,iCAAiC;QAC5C,KAAK,EAAE;YACL,iBAAiB;SAClB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,eAAe;gBACvB,eAAe,EAAE,KAAK;gBACtB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,gCAAgC;QAC3C,KAAK,EAAE;YACL,aAAa;SACd;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,+BAA+B;gBACrC,MAAM,EAAE,mBAAmB;gBAC3B,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,qCAAqC;QAChD,KAAK,EAAE;YACL,mBAAmB;SACpB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,oCAAoC;gBAC1C,MAAM,EAAE,qBAAqB;gBAC7B,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,mDAAmD;gBACzD,MAAM,EAAE,uBAAuB;gBAC/B,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,cAAc;gBACtB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,0BAA0B;QACrC,KAAK,EAAE;YACL,gBAAgB;SACjB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,WAAW;gBACnB,eAAe,EAAE,MAAM;gBACvB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,yBAAyB;gBAC/B,MAAM,EAAE,eAAe;gBACvB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,iCAAiC;QAC5C,KAAK,EAAE;YACL,cAAc;SACf;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,2BAA2B;gBACjC,MAAM,EAAE,iBAAiB;gBACzB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,0BAA0B;gBAChC,MAAM,EAAE,iBAAiB;gBACzB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,6BAA6B;QACxC,KAAK,EAAE;YACL,kBAAkB;SACnB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,OAAO;gBACf,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,8BAA8B;QACzC,KAAK,EAAE;YACL,gBAAgB;SACjB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,UAAU;gBAClB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,4BAA4B;QACvC,KAAK,EAAE;YACL,iBAAiB;SAClB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,uCAAuC;gBAC7C,MAAM,EAAE,qBAAqB;gBAC7B,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,IAAI;gBACjB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,0BAA0B;QACrC,KAAK,EAAE;YACL,eAAe;SAChB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,+BAA+B;gBACrC,MAAM,EAAE,mBAAmB;gBAC3B,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,iCAAiC;gBACvC,MAAM,EAAE,qBAAqB;gBAC7B,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,aAAa;gBACrB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,6BAA6B;QACxC,KAAK,EAAE;YACL,kBAAkB;SACnB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,mBAAmB;gBAC3B,eAAe,EAAE,OAAO;gBACxB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,MAAM;gBACvB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,MAAM;gBACvB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,qBAAqB;QAC7B,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,+CAA+C;QAC1D,KAAK,EAAE;YACL,6BAA6B;SAC9B;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,kBAAkB;gBAC1B,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,OAAO;gBACf,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,WAAW;gBACnB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,cAAc;gBACtB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,yBAAyB;QACjC,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,kCAAkC;QAC7C,KAAK,EAAE;YACL,sBAAsB;SACvB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,cAAc;gBACtB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,cAAc;gBACtB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,cAAc;gBACtB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,qBAAqB;QAC7B,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,oCAAoC;QAC/C,KAAK,EAAE;YACL,yBAAyB;SAC1B;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,cAAc;gBACtB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,cAAc;gBACtB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,cAAc;gBACtB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,sBAAsB;QAC9B,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,2BAA2B;QACtC,KAAK,EAAE;YACL,8BAA8B;SAC/B;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,aAAa;gBACrB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,eAAe;gBACvB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,aAAa;gBACrB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,0BAA0B;QACrC,KAAK,EAAE;YACL,gBAAgB;SACjB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,YAAY;gBACpB,eAAe,EAAE,OAAO;gBACxB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,MAAM;gBACd,eAAe,EAAE,OAAO;gBACxB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,qCAAqC;QAChD,KAAK,EAAE;YACL,eAAe;SAChB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,0BAA0B;gBAChC,MAAM,EAAE,qBAAqB;gBAC7B,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,kBAAkB;QAC1B,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,0BAA0B;QACrC,KAAK,EAAE;YACL,0BAA0B;SAC3B;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,mBAAmB;gBAC3B,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,iBAAiB;gBACzB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,MAAM,EAAE,qBAAqB;gBAC7B,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE,oBAAoB;QAC5B,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,wEAAwE;QACnF,KAAK,EAAE;YACL,4BAA4B;SAC7B;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,aAAa;gBACrB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,eAAe;gBACvB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,iBAAiB;gBACzB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,yBAAyB;QACjC,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,oEAAoE;QAC/E,KAAK,EAAE;YACL,4BAA4B;SAC7B;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,aAAa;gBACrB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,eAAe;gBACvB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,iBAAiB;gBACzB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,6BAA6B;QACxC,KAAK,EAAE;YACL,qBAAqB;YACrB,eAAe;SAChB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,OAAO;gBACf,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,MAAM,EAAE,qBAAqB;gBAC7B,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,aAAa;gBACrB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,0BAA0B;QACrC,KAAK,EAAE;YACL,iBAAiB;SAClB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,QAAQ;gBAChB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,oCAAoC;gBAC1C,MAAM,EAAE,iBAAiB;gBACzB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,gCAAgC;QAC3C,KAAK,EAAE;YACL,qBAAqB;SACtB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,+BAA+B;gBACrC,MAAM,EAAE,mBAAmB;gBAC3B,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,6BAA6B;gBACnC,MAAM,EAAE,iBAAiB;gBACzB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,kBAAkB;QAC1B,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,+BAA+B;QAC1C,KAAK,EAAE;YACL,wBAAwB;SACzB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,6BAA6B;gBACnC,MAAM,EAAE,iBAAiB;gBACzB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,+BAA+B;gBACrC,MAAM,EAAE,mBAAmB;gBAC3B,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,mBAAmB;QAC3B,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,6CAA6C;QACxD,KAAK,EAAE;YACL,eAAe;SAChB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,eAAe;gBACvB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,gCAAgC;QAC3C,KAAK,EAAE;YACL,sBAAsB;YACtB,WAAW;SACZ;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,mBAAmB;gBAC3B,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,yBAAyB;gBAC/B,MAAM,EAAE,yBAAyB;gBACjC,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,4BAA4B;gBAClC,MAAM,EAAE,4BAA4B;gBACpC,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,8BAA8B;QACzC,KAAK,EAAE;YACL,eAAe;SAChB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,4BAA4B;gBAClC,MAAM,EAAE,wBAAwB;gBAChC,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,OAAO;gBACpB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,iBAAiB;gBACzB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,wCAAwC;QACnD,KAAK,EAAE;YACL,sBAAsB;YACtB,qBAAqB;SACtB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,cAAc;gBACtB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,2BAA2B;gBACjC,MAAM,EAAE,gBAAgB;gBACxB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,eAAe;gBACvB,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,iCAAiC;gBACvC,MAAM,EAAE,wBAAwB;gBAChC,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,uCAAuC;QAClD,KAAK,EAAE;YACL,kBAAkB;SACnB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,0BAA0B;gBAClC,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,0BAA0B;gBAClC,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,uBAAuB;QAClC,KAAK,EAAE;YACL,sBAAsB;SACvB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,MAAM;gBACd,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,IAAI;gBACjB,OAAO,EAAE;oBACP,MAAM;iBACP;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,0BAA0B;QACrC,KAAK,EAAE;YACL,mBAAmB;SACpB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,mBAAmB;gBAC3B,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,eAAe;gBACvB,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,MAAM;gBACd,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE;oBACP,MAAM;oBACN,OAAO;iBACR;aACF;SACF;KACF;CACF,CAAC,CAAA;AAEF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,kBAAkB,GAAuC,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA"}
|
package/lib/store.d.ts
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { KeyRecord, ProviderRecord, StateDocument } from './domain.js';
|
|
2
|
+
export declare const STATE_VERSION: 1;
|
|
3
|
+
export declare const STATE_DIRNAME = "keys-manager";
|
|
4
|
+
export declare const STATE_FILENAME = "state.json";
|
|
5
|
+
/** State document plus a non-fatal load diagnostic. */
|
|
6
|
+
export type LoadedState = StateDocument & {
|
|
7
|
+
loadError?: string;
|
|
8
|
+
readOnly?: boolean;
|
|
9
|
+
};
|
|
10
|
+
/** Resolve the durable state directory for the current Harness home. */
|
|
11
|
+
export declare function stateDirectory(env?: NodeJS.ProcessEnv, home?: string): string;
|
|
12
|
+
/** Resolve the complete state file path. */
|
|
13
|
+
export declare function statePath(env?: NodeJS.ProcessEnv, home?: string): string;
|
|
14
|
+
/** Fresh, empty state. */
|
|
15
|
+
export declare function emptyState(): StateDocument;
|
|
16
|
+
/** Sanitize a whole document, dropping anything the current schema cannot express. */
|
|
17
|
+
export declare function sanitizeState(raw: unknown): StateDocument;
|
|
18
|
+
/** Read a state file; only parse corruption is preserved and reset. */
|
|
19
|
+
export declare function readStateFile(file: string): LoadedState;
|
|
20
|
+
export interface KeysManagerStoreOptions {
|
|
21
|
+
warn?: (message: string) => void;
|
|
22
|
+
}
|
|
23
|
+
/** Durable store with a debounced atomic writer. */
|
|
24
|
+
export declare class KeysManagerStore {
|
|
25
|
+
readonly file: string;
|
|
26
|
+
state: StateDocument;
|
|
27
|
+
loadError: string | undefined;
|
|
28
|
+
readonly readOnly: boolean;
|
|
29
|
+
private readonly warn;
|
|
30
|
+
private dirty;
|
|
31
|
+
private timer;
|
|
32
|
+
private writeChain;
|
|
33
|
+
private closed;
|
|
34
|
+
constructor(file: string, options?: KeysManagerStoreOptions);
|
|
35
|
+
get settings(): import("./domain.js").ManagerSettings;
|
|
36
|
+
get providers(): Record<string, ProviderRecord>;
|
|
37
|
+
provider(id: string): ProviderRecord | undefined;
|
|
38
|
+
key(providerId: string, keyId: string): KeyRecord | undefined;
|
|
39
|
+
bind(sessionId: string, providerId: string, keyId: string, now?: number): void;
|
|
40
|
+
binding(sessionId: string, providerId: string): {
|
|
41
|
+
keyId: string;
|
|
42
|
+
boundAt: number;
|
|
43
|
+
} | undefined;
|
|
44
|
+
clearBindings(predicate?: (key: string, binding: {
|
|
45
|
+
keyId: string;
|
|
46
|
+
boundAt: number;
|
|
47
|
+
}) => boolean): void;
|
|
48
|
+
/** Drop session bindings older than the TTL; safe to call periodically. */
|
|
49
|
+
pruneBindings(now?: number): boolean;
|
|
50
|
+
/** Mark state dirty and schedule a write. */
|
|
51
|
+
touch(): void;
|
|
52
|
+
/** Persist pending changes now, serialized after any in-flight write. */
|
|
53
|
+
flush(): Promise<void>;
|
|
54
|
+
/** Stop the timer and persist once. */
|
|
55
|
+
close(): Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Synchronous bootstrap used by a Host plugin before its first request:
|
|
59
|
+
* ensure the directory exists and, when the file is absent, write an empty
|
|
60
|
+
* state once. The regular debounced writer owns later updates.
|
|
61
|
+
*/
|
|
62
|
+
export declare function ensureStateFile(file: string): void;
|
package/lib/store.js
ADDED
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Durable, secret-free state for the Keys Manager.
|
|
3
|
+
*
|
|
4
|
+
* The file at `<DSH_HOME>/keys-manager/state.json` holds provider/key
|
|
5
|
+
* metadata only: aliases, refs, health, counters, and session bindings. API
|
|
6
|
+
* key literals live in the Harness credential store under each key's
|
|
7
|
+
* `ref`. The shape is deliberately additive so a future OAuth2 account
|
|
8
|
+
* record can sit beside `kind: 'api-key'` without a migration that rewrites
|
|
9
|
+
* existing rows.
|
|
10
|
+
*/
|
|
11
|
+
import { mkdirSync, readFileSync, renameSync, statSync, writeFileSync } from 'node:fs';
|
|
12
|
+
import { chmod, mkdir, rename, writeFile } from 'node:fs/promises';
|
|
13
|
+
import { dirname, join } from 'node:path';
|
|
14
|
+
import { homedir } from 'node:os';
|
|
15
|
+
import { normalizeCursor, normalizeSettings } from './core.js';
|
|
16
|
+
export const STATE_VERSION = 1;
|
|
17
|
+
export const STATE_DIRNAME = 'keys-manager';
|
|
18
|
+
export const STATE_FILENAME = 'state.json';
|
|
19
|
+
const BINDING_TTL_MS = 30 * 24 * 60 * 60 * 1000;
|
|
20
|
+
/** Resolve the durable state directory for the current Harness home. */
|
|
21
|
+
export function stateDirectory(env = process.env, home = homedir()) {
|
|
22
|
+
const dshHome = typeof env.DSH_HOME === 'string' && env.DSH_HOME.length > 0 ? env.DSH_HOME : join(home, '.dsh');
|
|
23
|
+
return join(dshHome, STATE_DIRNAME);
|
|
24
|
+
}
|
|
25
|
+
/** Resolve the complete state file path. */
|
|
26
|
+
export function statePath(env = process.env, home = homedir()) {
|
|
27
|
+
return join(stateDirectory(env, home), STATE_FILENAME);
|
|
28
|
+
}
|
|
29
|
+
/** Fresh, empty state. */
|
|
30
|
+
export function emptyState() {
|
|
31
|
+
return {
|
|
32
|
+
version: STATE_VERSION,
|
|
33
|
+
settings: normalizeSettings(undefined),
|
|
34
|
+
providers: {},
|
|
35
|
+
sessionBindings: {},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function numberOr(value, fallback) {
|
|
39
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
|
|
40
|
+
}
|
|
41
|
+
function integerOr(value, fallback) {
|
|
42
|
+
return typeof value === 'number' && Number.isInteger(value) && value >= 0 ? value : fallback;
|
|
43
|
+
}
|
|
44
|
+
/** Strip any accidental secret-looking field from a key record. */
|
|
45
|
+
function sanitizeKey(raw) {
|
|
46
|
+
if (raw === null || typeof raw !== 'object')
|
|
47
|
+
return undefined;
|
|
48
|
+
const source = raw;
|
|
49
|
+
if (typeof source.id !== 'string' || source.id.length === 0)
|
|
50
|
+
return undefined;
|
|
51
|
+
if (typeof source.ref !== 'string' || source.ref.length === 0)
|
|
52
|
+
return undefined;
|
|
53
|
+
return {
|
|
54
|
+
id: source.id,
|
|
55
|
+
alias: typeof source.alias === 'string' && source.alias.length > 0 ? source.alias.slice(0, 80) : 'Key',
|
|
56
|
+
ref: source.ref,
|
|
57
|
+
kind: source.kind === 'oauth' ? 'oauth' : 'api-key',
|
|
58
|
+
enabled: source.enabled !== false,
|
|
59
|
+
createdAt: numberOr(source.createdAt, Date.now()),
|
|
60
|
+
lastUsedAt: numberOr(source.lastUsedAt, 0),
|
|
61
|
+
cooldownUntil: numberOr(source.cooldownUntil, 0),
|
|
62
|
+
lastFailureAt: numberOr(source.lastFailureAt, 0),
|
|
63
|
+
lastFailureCode: typeof source.lastFailureCode === 'string' ? source.lastFailureCode : '',
|
|
64
|
+
failureLevel: integerOr(source.failureLevel, 0),
|
|
65
|
+
consecutiveFailures: integerOr(source.consecutiveFailures, 0),
|
|
66
|
+
totalUses: integerOr(source.totalUses, 0),
|
|
67
|
+
totalFailures: integerOr(source.totalFailures, 0),
|
|
68
|
+
// Legacy builds persisted transient read failures as valueMissing. The
|
|
69
|
+
// credential may be healthy again; re-probe on the next selection instead
|
|
70
|
+
// of carrying a permanent marker across restarts.
|
|
71
|
+
valueMissing: false,
|
|
72
|
+
importedFrom: typeof source.importedFrom === 'string' ? source.importedFrom : null,
|
|
73
|
+
oauth: source.oauth !== null && typeof source.oauth === 'object' ? source.oauth : null,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function sanitizeModels(raw) {
|
|
77
|
+
if (!Array.isArray(raw))
|
|
78
|
+
return [];
|
|
79
|
+
const models = [];
|
|
80
|
+
for (const entry of raw) {
|
|
81
|
+
if (entry === null || typeof entry !== 'object')
|
|
82
|
+
continue;
|
|
83
|
+
const source = entry;
|
|
84
|
+
if (typeof source.id !== 'string' || source.id.length === 0)
|
|
85
|
+
continue;
|
|
86
|
+
const model = { id: source.id };
|
|
87
|
+
if (typeof source.name === 'string')
|
|
88
|
+
model.name = source.name;
|
|
89
|
+
if (typeof source.contextWindow === 'number')
|
|
90
|
+
model.contextWindow = source.contextWindow;
|
|
91
|
+
if (typeof source.maxTokens === 'number')
|
|
92
|
+
model.maxTokens = source.maxTokens;
|
|
93
|
+
if (Array.isArray(source.input)) {
|
|
94
|
+
model.input = source.input.filter((value) => value === 'text' || value === 'image');
|
|
95
|
+
}
|
|
96
|
+
if (source.reasoningEfforts !== null && typeof source.reasoningEfforts === 'object') {
|
|
97
|
+
model.reasoningEfforts = source.reasoningEfforts;
|
|
98
|
+
}
|
|
99
|
+
if (source.compat !== null && typeof source.compat === 'object') {
|
|
100
|
+
model.compat = source.compat;
|
|
101
|
+
}
|
|
102
|
+
models.push(model);
|
|
103
|
+
}
|
|
104
|
+
return models;
|
|
105
|
+
}
|
|
106
|
+
/** Validate one persisted provider record. */
|
|
107
|
+
function sanitizeProvider(raw) {
|
|
108
|
+
if (raw === null || typeof raw !== 'object')
|
|
109
|
+
return undefined;
|
|
110
|
+
const source = raw;
|
|
111
|
+
if (typeof source.provider !== 'string' || source.provider.length === 0)
|
|
112
|
+
return undefined;
|
|
113
|
+
const settingsPath = Array.isArray(source.settingsPath)
|
|
114
|
+
? source.settingsPath.filter((part) => typeof part === 'string')
|
|
115
|
+
: [];
|
|
116
|
+
const keys = Array.isArray(source.keys) ? source.keys.map(sanitizeKey).filter((key) => key !== undefined) : [];
|
|
117
|
+
return {
|
|
118
|
+
provider: source.provider,
|
|
119
|
+
displayName: typeof source.displayName === 'string' && source.displayName.length > 0 ? source.displayName : source.provider,
|
|
120
|
+
source: source.source === 'extra' ? 'extra' : 'dsh',
|
|
121
|
+
settingsNs: typeof source.settingsNs === 'string' ? source.settingsNs : 'llm-pi-ai',
|
|
122
|
+
settingsPath,
|
|
123
|
+
adapter: source.adapter === 'deepseek' ? 'deepseek' : 'pi-ai',
|
|
124
|
+
brokerRef: typeof source.brokerRef === 'string' ? source.brokerRef : '',
|
|
125
|
+
originalApiKeyEnv: typeof source.originalApiKeyEnv === 'string' && source.originalApiKeyEnv.length > 0 ? source.originalApiKeyEnv : null,
|
|
126
|
+
createdProfile: source.createdProfile === true,
|
|
127
|
+
hadProfile: source.hadProfile === true,
|
|
128
|
+
extraId: typeof source.extraId === 'string' ? source.extraId : null,
|
|
129
|
+
api: typeof source.api === 'string' ? source.api : null,
|
|
130
|
+
baseURL: typeof source.baseURL === 'string' ? source.baseURL : null,
|
|
131
|
+
models: sanitizeModels(source.models),
|
|
132
|
+
adoptedAt: numberOr(source.adoptedAt, Date.now()),
|
|
133
|
+
cursor: normalizeCursor(typeof source.cursor === 'number' ? source.cursor : 0, keys.length),
|
|
134
|
+
keys,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/** Sanitize a whole document, dropping anything the current schema cannot express. */
|
|
138
|
+
export function sanitizeState(raw) {
|
|
139
|
+
const state = emptyState();
|
|
140
|
+
if (raw === null || typeof raw !== 'object')
|
|
141
|
+
return state;
|
|
142
|
+
const source = raw;
|
|
143
|
+
state.settings = normalizeSettings(source.settings);
|
|
144
|
+
if (source.providers !== null && typeof source.providers === 'object' && !Array.isArray(source.providers)) {
|
|
145
|
+
for (const [id, provider] of Object.entries(source.providers)) {
|
|
146
|
+
const clean = sanitizeProvider(provider);
|
|
147
|
+
if (clean !== undefined && clean.provider === id)
|
|
148
|
+
state.providers[id] = clean;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (source.sessionBindings !== null && typeof source.sessionBindings === 'object' && !Array.isArray(source.sessionBindings)) {
|
|
152
|
+
const now = Date.now();
|
|
153
|
+
for (const [key, binding] of Object.entries(source.sessionBindings)) {
|
|
154
|
+
if (binding === null || typeof binding !== 'object')
|
|
155
|
+
continue;
|
|
156
|
+
const record = binding;
|
|
157
|
+
const keyId = typeof record.keyId === 'string' ? record.keyId : '';
|
|
158
|
+
const boundAt = numberOr(record.boundAt, 0);
|
|
159
|
+
if (keyId.length === 0 || now - boundAt > BINDING_TTL_MS)
|
|
160
|
+
continue;
|
|
161
|
+
state.sessionBindings[key] = { keyId, boundAt };
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return state;
|
|
165
|
+
}
|
|
166
|
+
/** Read a state file; only parse corruption is preserved and reset. */
|
|
167
|
+
export function readStateFile(file) {
|
|
168
|
+
let stats;
|
|
169
|
+
try {
|
|
170
|
+
stats = statSync(file);
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
if (error.code === 'ENOENT')
|
|
174
|
+
return emptyState();
|
|
175
|
+
return {
|
|
176
|
+
...emptyState(),
|
|
177
|
+
readOnly: true,
|
|
178
|
+
loadError: `Could not inspect ${file}: ${error instanceof Error ? error.message : String(error)}`,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
if (!stats.isFile()) {
|
|
182
|
+
return {
|
|
183
|
+
...emptyState(),
|
|
184
|
+
readOnly: true,
|
|
185
|
+
loadError: `${file} is not a regular file; refusing to overwrite it.`,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
let text;
|
|
189
|
+
try {
|
|
190
|
+
text = readFileSync(file, 'utf8');
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
// A read failure is not corruption. Keep the file untouched and refuse to
|
|
194
|
+
// overwrite it; the manager starts read-only/in-memory.
|
|
195
|
+
return {
|
|
196
|
+
...emptyState(),
|
|
197
|
+
readOnly: true,
|
|
198
|
+
loadError: `Could not read ${file}: ${error instanceof Error ? error.message : String(error)}`,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
let parsed;
|
|
202
|
+
try {
|
|
203
|
+
parsed = JSON.parse(text);
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
const stamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
207
|
+
const backup = `${file}.corrupt-${stamp}`;
|
|
208
|
+
let preserved = false;
|
|
209
|
+
try {
|
|
210
|
+
renameSync(file, backup);
|
|
211
|
+
preserved = true;
|
|
212
|
+
}
|
|
213
|
+
catch {
|
|
214
|
+
// Keep the original bytes if the backup could not be created.
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
...emptyState(),
|
|
218
|
+
readOnly: !preserved,
|
|
219
|
+
loadError: preserved
|
|
220
|
+
? `State file was corrupt; preserved at ${backup} (${error instanceof Error ? error.message : String(error)})`
|
|
221
|
+
: `State file was corrupt and could not be backed up; refusing to overwrite it (${error instanceof Error ? error.message : String(error)})`,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
const version = parsed !== null && typeof parsed === 'object' ? parsed.version : undefined;
|
|
225
|
+
if (version !== undefined && version !== STATE_VERSION) {
|
|
226
|
+
return {
|
|
227
|
+
...emptyState(),
|
|
228
|
+
readOnly: true,
|
|
229
|
+
loadError: `Unsupported state schema version ${String(version)}; refusing to overwrite ${file}.`,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
return sanitizeState(parsed);
|
|
233
|
+
}
|
|
234
|
+
/** Durable store with a debounced atomic writer. */
|
|
235
|
+
export class KeysManagerStore {
|
|
236
|
+
file;
|
|
237
|
+
state;
|
|
238
|
+
loadError;
|
|
239
|
+
readOnly;
|
|
240
|
+
warn;
|
|
241
|
+
dirty = false;
|
|
242
|
+
timer;
|
|
243
|
+
writeChain = Promise.resolve();
|
|
244
|
+
closed = false;
|
|
245
|
+
constructor(file, options = {}) {
|
|
246
|
+
this.file = file;
|
|
247
|
+
this.warn = options.warn ?? (() => { });
|
|
248
|
+
const loaded = readStateFile(file);
|
|
249
|
+
this.loadError = loaded.loadError;
|
|
250
|
+
this.readOnly = loaded.readOnly === true;
|
|
251
|
+
const { loadError: _loadError, readOnly: _readOnly, ...state } = loaded;
|
|
252
|
+
this.state = state;
|
|
253
|
+
}
|
|
254
|
+
get settings() {
|
|
255
|
+
return this.state.settings;
|
|
256
|
+
}
|
|
257
|
+
get providers() {
|
|
258
|
+
return this.state.providers;
|
|
259
|
+
}
|
|
260
|
+
provider(id) {
|
|
261
|
+
return this.state.providers[id];
|
|
262
|
+
}
|
|
263
|
+
key(providerId, keyId) {
|
|
264
|
+
return this.state.providers[providerId]?.keys.find(key => key.id === keyId);
|
|
265
|
+
}
|
|
266
|
+
bind(sessionId, providerId, keyId, now = Date.now()) {
|
|
267
|
+
if (sessionId.length === 0)
|
|
268
|
+
return;
|
|
269
|
+
this.state.sessionBindings[`${sessionId}\u0000${providerId}`] = { keyId, boundAt: now };
|
|
270
|
+
this.touch();
|
|
271
|
+
}
|
|
272
|
+
binding(sessionId, providerId) {
|
|
273
|
+
if (sessionId.length === 0)
|
|
274
|
+
return undefined;
|
|
275
|
+
return this.state.sessionBindings[`${sessionId}\u0000${providerId}`];
|
|
276
|
+
}
|
|
277
|
+
clearBindings(predicate) {
|
|
278
|
+
let changed = false;
|
|
279
|
+
for (const key of Object.keys(this.state.sessionBindings)) {
|
|
280
|
+
const binding = this.state.sessionBindings[key];
|
|
281
|
+
if (predicate === undefined || predicate(key, binding)) {
|
|
282
|
+
delete this.state.sessionBindings[key];
|
|
283
|
+
changed = true;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
if (changed)
|
|
287
|
+
this.touch();
|
|
288
|
+
}
|
|
289
|
+
/** Drop session bindings older than the TTL; safe to call periodically. */
|
|
290
|
+
pruneBindings(now = Date.now()) {
|
|
291
|
+
let changed = false;
|
|
292
|
+
for (const [key, binding] of Object.entries(this.state.sessionBindings)) {
|
|
293
|
+
if (now - binding.boundAt > BINDING_TTL_MS) {
|
|
294
|
+
delete this.state.sessionBindings[key];
|
|
295
|
+
changed = true;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
if (changed)
|
|
299
|
+
this.touch();
|
|
300
|
+
return changed;
|
|
301
|
+
}
|
|
302
|
+
/** Mark state dirty and schedule a write. */
|
|
303
|
+
touch() {
|
|
304
|
+
if (this.closed || this.readOnly)
|
|
305
|
+
return;
|
|
306
|
+
this.dirty = true;
|
|
307
|
+
if (this.timer !== undefined)
|
|
308
|
+
return;
|
|
309
|
+
this.timer = setTimeout(() => {
|
|
310
|
+
this.timer = undefined;
|
|
311
|
+
void this.flush().catch(error => {
|
|
312
|
+
this.warn(`keys-manager: failed to persist state: ${error instanceof Error ? error.message : String(error)}`);
|
|
313
|
+
});
|
|
314
|
+
}, 150);
|
|
315
|
+
this.timer.unref?.();
|
|
316
|
+
}
|
|
317
|
+
/** Persist pending changes now, serialized after any in-flight write. */
|
|
318
|
+
flush() {
|
|
319
|
+
if (this.timer !== undefined) {
|
|
320
|
+
clearTimeout(this.timer);
|
|
321
|
+
this.timer = undefined;
|
|
322
|
+
}
|
|
323
|
+
if (this.readOnly) {
|
|
324
|
+
this.dirty = false;
|
|
325
|
+
return this.writeChain;
|
|
326
|
+
}
|
|
327
|
+
if (!this.dirty)
|
|
328
|
+
return this.writeChain;
|
|
329
|
+
this.dirty = false;
|
|
330
|
+
const snapshot = JSON.stringify(this.state, null, 2);
|
|
331
|
+
const file = this.file;
|
|
332
|
+
const attempt = this.writeChain.then(async () => {
|
|
333
|
+
try {
|
|
334
|
+
await mkdir(dirname(file), { recursive: true, mode: 0o700 });
|
|
335
|
+
const temp = `${file}.${process.pid}.${Date.now()}.tmp`;
|
|
336
|
+
await writeFile(temp, snapshot, { mode: 0o600 });
|
|
337
|
+
await rename(temp, file);
|
|
338
|
+
try {
|
|
339
|
+
await chmod(file, 0o600);
|
|
340
|
+
}
|
|
341
|
+
catch {
|
|
342
|
+
// Non-POSIX platforms have no mode to tighten.
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
catch (error) {
|
|
346
|
+
// Keep the latest snapshot pending and let an explicit flush retry it.
|
|
347
|
+
this.dirty = true;
|
|
348
|
+
throw error;
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
// The internal chain must stay usable after a rejected attempt; callers
|
|
352
|
+
// that care about the result receive `attempt` itself.
|
|
353
|
+
this.writeChain = attempt.catch(() => { });
|
|
354
|
+
return attempt;
|
|
355
|
+
}
|
|
356
|
+
/** Stop the timer and persist once. */
|
|
357
|
+
async close() {
|
|
358
|
+
this.closed = true;
|
|
359
|
+
if (this.readOnly)
|
|
360
|
+
return;
|
|
361
|
+
if (this.timer !== undefined) {
|
|
362
|
+
clearTimeout(this.timer);
|
|
363
|
+
this.timer = undefined;
|
|
364
|
+
}
|
|
365
|
+
this.dirty = true;
|
|
366
|
+
try {
|
|
367
|
+
await this.flush();
|
|
368
|
+
}
|
|
369
|
+
catch (error) {
|
|
370
|
+
this.warn(`keys-manager: failed to persist state on close: ${error instanceof Error ? error.message : String(error)}`);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Synchronous bootstrap used by a Host plugin before its first request:
|
|
376
|
+
* ensure the directory exists and, when the file is absent, write an empty
|
|
377
|
+
* state once. The regular debounced writer owns later updates.
|
|
378
|
+
*/
|
|
379
|
+
export function ensureStateFile(file) {
|
|
380
|
+
try {
|
|
381
|
+
statSync(file);
|
|
382
|
+
return;
|
|
383
|
+
}
|
|
384
|
+
catch (error) {
|
|
385
|
+
if (error.code !== 'ENOENT')
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
try {
|
|
389
|
+
mkdirSync(dirname(file), { recursive: true, mode: 0o700 });
|
|
390
|
+
const temp = `${file}.${process.pid}.tmp`;
|
|
391
|
+
writeFileSync(temp, JSON.stringify(emptyState(), null, 2), { mode: 0o600 });
|
|
392
|
+
renameSync(temp, file);
|
|
393
|
+
}
|
|
394
|
+
catch {
|
|
395
|
+
// A read-only home still serves in-memory state.
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
//# sourceMappingURL=store.js.map
|
package/lib/store.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/locale/en.json
ADDED
package/locale/zh.json
ADDED
package/package.json
CHANGED
|
@@ -1,27 +1,92 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-keys-manager",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"main": "index.js",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Multi-key management for DSH providers: sticky per-session round-robin, retry failover, cooldown recovery, and searchable extra providers.",
|
|
7
6
|
"repository": {
|
|
8
7
|
"type": "git",
|
|
9
|
-
"url": "
|
|
10
|
-
},
|
|
11
|
-
"bugs": {
|
|
12
|
-
"url": "https://github.com/btspoony/dsh-keys-manager/issues"
|
|
8
|
+
"url": "https://github.com/btspoony/dsh-keys-manager"
|
|
13
9
|
},
|
|
14
|
-
"homepage": "https://github.com/btspoony/dsh-keys-manager#readme",
|
|
15
10
|
"keywords": [
|
|
16
11
|
"dsh",
|
|
17
12
|
"dsh-plugin",
|
|
18
13
|
"keys",
|
|
19
14
|
"provider",
|
|
20
|
-
"llm"
|
|
21
|
-
|
|
15
|
+
"llm"
|
|
16
|
+
],
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"main": "./lib/index.js",
|
|
19
|
+
"types": "./lib/index.d.ts",
|
|
20
|
+
"icon": "./icon.svg",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./lib/index.d.ts",
|
|
24
|
+
"default": "./lib/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./client": {
|
|
27
|
+
"types": "./lib/client/index.d.ts",
|
|
28
|
+
"default": "./lib/client.js"
|
|
29
|
+
},
|
|
30
|
+
"./bundle/cordis.patch.yml": "./bundle/cordis.patch.yml",
|
|
31
|
+
"./locale/*.json": "./locale/*.json",
|
|
32
|
+
"./icon": "./icon.svg",
|
|
33
|
+
"./package.json": "./package.json"
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
"lib",
|
|
37
|
+
"bundle",
|
|
38
|
+
"locale",
|
|
39
|
+
"icon.svg",
|
|
40
|
+
"scripts"
|
|
22
41
|
],
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
|
|
42
|
+
"dsh": {
|
|
43
|
+
"bundle": {
|
|
44
|
+
"patch": "./bundle/cordis.patch.yml"
|
|
45
|
+
},
|
|
46
|
+
"client": {
|
|
47
|
+
"platform": "web",
|
|
48
|
+
"inject": [
|
|
49
|
+
"@deepseek-ai/dsh-client-ui-plugin-manager",
|
|
50
|
+
"@deepseek-ai/dsh-client-ui-settings",
|
|
51
|
+
"@deepseek-ai/dsh-client-ui-settings-models",
|
|
52
|
+
"@deepseek-ai/dsh-client-locale",
|
|
53
|
+
"@deepseek-ai/dsh-client-connection"
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"scripts": {
|
|
58
|
+
"typecheck": "tsc --noEmit && tsc -p tsconfig.client.json --noEmit && tsc -p tsconfig.spec.json --noEmit",
|
|
59
|
+
"build": "tsc -p tsconfig.build.json && tsc -p tsconfig.client.json && node scripts/build-client.mjs && node scripts/verify-dist.mjs",
|
|
60
|
+
"build:client": "tsc -p tsconfig.client.json && node scripts/build-client.mjs",
|
|
61
|
+
"test": "vitest run",
|
|
62
|
+
"release:prepare": "node scripts/prepare-release.mjs",
|
|
63
|
+
"prepare": "pnpm run build",
|
|
64
|
+
"prepack": "pnpm run build"
|
|
65
|
+
},
|
|
66
|
+
"engines": {
|
|
67
|
+
"node": "^22.19 || >=24"
|
|
68
|
+
},
|
|
69
|
+
"peerDependencies": {
|
|
70
|
+
"@deepseek-ai/cordis": "^4.0.5",
|
|
71
|
+
"@deepseek-ai/dsh-client-connection": "^0.2.1-rc.2",
|
|
72
|
+
"@deepseek-ai/dsh-client-locale": "^0.2.1-rc.2",
|
|
73
|
+
"@deepseek-ai/dsh-client-ui-plugin-manager": "^0.2.1-rc.2",
|
|
74
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.2.1-rc.2",
|
|
75
|
+
"@deepseek-ai/dsh-client-ui-settings-models": "^0.2.1-rc.2",
|
|
76
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.2.1-rc.2",
|
|
77
|
+
"@deepseek-ai/dsh-credentials": "^0.2.1-rc.2",
|
|
78
|
+
"@deepseek-ai/dsh-llm": "^0.2.1-rc.2",
|
|
79
|
+
"@deepseek-ai/dsh-settings": "^0.2.1-rc.2",
|
|
80
|
+
"@deepseek-ai/dsh-typert-registry": "^0.2.1-rc.2",
|
|
81
|
+
"react": "^18.2.0"
|
|
82
|
+
},
|
|
83
|
+
"devDependencies": {
|
|
84
|
+
"@deepseek-ai/cordis": "^4.0.5",
|
|
85
|
+
"@types/node": "^22.20.0",
|
|
86
|
+
"@types/react": "~18.3.31",
|
|
87
|
+
"esbuild": "^0.28.2",
|
|
88
|
+
"react": "^18.3.1",
|
|
89
|
+
"typescript": "^5.9.3",
|
|
90
|
+
"vitest": "^4.1.8"
|
|
26
91
|
}
|
|
27
92
|
}
|