kinwuzhao 1.0.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.zh-CN.md +303 -0
- package/dist/index.cjs +692 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +201 -0
- package/dist/index.d.ts +201 -0
- package/dist/index.js +654 -0
- package/dist/index.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts","../src/utils.ts","../src/ganzhi.ts","../src/jieqi.ts","../src/kinwuzhao.ts"],"names":["SolarTime","key"],"mappings":";;;;;AAMO,IAAM,QAAA,GAAW,CAAC,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAG;AAClE,IAAM,MAAA,GAAS;AAAA,EACpB,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF;AAGO,IAAM,cAAA,GAAyC;AAAA,EACpD,CAAA,EAAG,QAAA;AAAA,EACH,CAAA,EAAG,QAAA;AAAA,EACH,CAAA,EAAG,QAAA;AAAA,EACH,CAAA,EAAG,QAAA;AAAA,EACH,CAAA,EAAG;AACL;AAGO,IAAM,UAAU,CAAC,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,UAAK,QAAG;AAGxC,IAAM,MAAA,GAAS,CAAC,QAAA,EAAK,QAAA,EAAK,UAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAG;AAGtD,IAAM,UAAA,GAAa,CAAC,QAAA,EAAK,QAAA,EAAK,UAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAA,EAAK,QAAG;AAG1D,IAAM,aAAa,CAAC,cAAA,EAAM,gBAAM,cAAA,EAAM,cAAA,EAAM,gBAAM,cAAI;AAGtD,IAAM,kBAAA,GAAuD;AAAA,EAClE,YAAA,EAAI,CAAC,QAAA,EAAK,QAAG,CAAA;AAAA,EACb,YAAA,EAAI,CAAC,QAAA,EAAK,QAAG,CAAA;AAAA,EACb,YAAA,EAAI,CAAC,QAAA,EAAK,QAAG,CAAA;AAAA,EACb,YAAA,EAAI,CAAC,QAAA,EAAK,QAAG,CAAA;AAAA,EACb,YAAA,EAAI,CAAC,QAAA,EAAK,QAAG,CAAA;AAAA,EACb,YAAA,EAAI,CAAC,QAAA,EAAK,QAAG;AACf;AAGO,IAAM,gBAAA,GAA2C;AAAA,EACtD,MAAA,EAAG,cAAA;AAAA,EACH,MAAA,EAAG,cAAA;AAAA,EACH,MAAA,EAAG,cAAA;AAAA,EACH,MAAA,EAAG,cAAA;AAAA,EACH,MAAA,EAAG,cAAA;AAAA,EACH,MAAA,EAAG,cAAA;AAAA,EACH,MAAA,EAAG,cAAA;AAAA,EACH,MAAA,EAAG,cAAA;AAAA,EACH,MAAA,EAAG,cAAA;AAAA,EACH,MAAA,EAAG;AACL;AAGO,IAAM,uBAAA,GAA0B;AAAA,EACrC,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF;AAGO,IAAM,YAAA,GAAe;AAAA,EAC1B,CAAC,cAAA,EAAM,cAAA,EAAM,cAAI,CAAA;AAAA,EACjB,CAAC,cAAA,EAAM,cAAA,EAAM,cAAI,CAAA;AAAA,EACjB,CAAC,cAAA,EAAM,cAAA,EAAM,cAAI,CAAA;AAAA,EACjB,CAAC,cAAA,EAAM,cAAA,EAAM,cAAI,CAAA;AAAA,EACjB,CAAC,cAAA,EAAM,cAAA,EAAM,cAAI,CAAA;AAAA,EACjB,CAAC,cAAA,EAAM,cAAA,EAAM,cAAI,CAAA;AAAA,EACjB,CAAC,cAAA,EAAM,cAAA,EAAM,cAAI,CAAA;AAAA,EACjB,CAAC,cAAA,EAAM,cAAA,EAAM,cAAI;AACnB;AAGO,IAAM,UAAA,GAAqC;AAAA,EAChD,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG;AACL;AAGO,IAAM,WAAA,GAAsC;AAAA,EACjD,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG;AACL;AAGO,IAAM,QAAA,GAAsC;AAAA,EACjD,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG,QAAA;AAAA,EACH,MAAA,EAAG;AACL;AAGO,IAAM,YAAA,GAAe;AAAA,EAC1B,EAAE,MAAA,EAAG,EAAE,MAAA,EAAG,UAAK,MAAA,EAAG,QAAA,EAAI,EAAG,MAAA,EAAG,EAAE,MAAA,EAAG,QAAA,EAAK,MAAA,EAAG,UAAI,EAAE;AAAA,EAC/C,EAAE,MAAA,EAAG,EAAE,MAAA,EAAG,UAAK,MAAA,EAAG,QAAA,EAAI,EAAG,MAAA,EAAG,EAAE,MAAA,EAAG,QAAA,EAAK,MAAA,EAAG,UAAI,EAAE;AAAA,EAC/C,EAAE,MAAA,EAAG,EAAE,MAAA,EAAG,UAAK,MAAA,EAAG,QAAA,EAAI,EAAG,MAAA,EAAG,EAAE,MAAA,EAAG,QAAA,EAAK,MAAA,EAAG,UAAI,EAAE;AAAA,EAC/C,EAAE,MAAA,EAAG,EAAE,MAAA,EAAG,UAAK,MAAA,EAAG,QAAA,EAAI,EAAG,MAAA,EAAG,EAAE,MAAA,EAAG,QAAA,EAAK,MAAA,EAAG,UAAI,EAAE;AAAA,EAC/C,EAAE,MAAA,EAAG,EAAE,MAAA,EAAG,UAAK,MAAA,EAAG,QAAA,EAAI,EAAG,MAAA,EAAG,EAAE,MAAA,EAAG,QAAA,EAAK,MAAA,EAAG,UAAI,EAAE;AAAA,EAC/C,EAAE,MAAA,EAAG,EAAE,MAAA,EAAG,UAAK,MAAA,EAAG,QAAA,EAAI,EAAG,MAAA,EAAG,EAAE,MAAA,EAAG,QAAA,EAAK,MAAA,EAAG,UAAI;AAC/C;AAGO,IAAM,gBAAA,GAA2C;AAAA,EACtD,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI;AACN;AAGO,IAAM,WAAA,GAAsC;AAAA,EACjD,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI,cAAA;AAAA,EACJ,YAAA,EAAI;AACN;AAGO,IAAM,WAAW,CAAC,cAAA,EAAM,gBAAM,cAAA,EAAM,cAAA,EAAM,gBAAM,cAAI;AAGpD,IAAM,kBAAkB,CAAC,QAAA,EAAK,gBAAM,cAAA,EAAM,cAAA,EAAM,gBAAM,cAAI;;;ACpM1D,SAAS,aAAA,GAA0B;AACxC,EAAA,MAAM,SAAmB,EAAC;AAC1B,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC3B,IAAA,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,GAAI,EAAE,IAAI,MAAA,CAAO,CAAA,GAAI,EAAE,CAAC,CAAA;AAAA,EAC/C;AACA,EAAA,OAAO,MAAA;AACT;AAKO,IAAM,QAAQ,aAAA;AAKd,SAAS,WAAA,CAAe,KAAU,KAAA,EAAoB;AAC3D,EAAA,MAAM,eAAA,GAAkB,QAAQ,GAAA,CAAI,MAAA;AACpC,EAAA,OAAO,CAAC,GAAG,GAAA,CAAI,KAAA,CAAM,eAAe,CAAA,EAAG,GAAG,GAAA,CAAI,KAAA,CAAM,CAAA,EAAG,eAAe,CAAC,CAAA;AACzE;AAKO,SAAS,OAAA,CAAW,MAAW,OAAA,EAAiB;AACrD,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,OAAA,CAAQ,OAAO,CAAA;AAClC,EAAA,IAAI,KAAA,KAAU,IAAI,OAAO,IAAA;AACzB,EAAA,OAAO,WAAA,CAAY,MAAM,KAAK,CAAA;AAChC;AAKO,SAAS,eAAA,CACd,MACA,GAAA,EACe;AACf,EAAA,IAAI,gBAAgB,GAAA,EAAK;AACvB,IAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,CAAA,IAAK,IAAA,CAAK,SAAQ,EAAG;AAC1C,MAAA,IAAI,IAAA,CAAK,QAAA,CAAS,GAAG,CAAA,EAAG;AACtB,QAAA,OAAO,KAAA;AAAA,MACT;AAAA,IACF;AAAA,EACF,CAAA,MAAO;AACL,IAAA,KAAA,MAAW,CAAC,OAAA,EAAS,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,EAAG;AACnD,MAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAA;AAC9B,MAAA,IAAI,IAAA,CAAK,QAAA,CAAS,MAAA,CAAO,GAAG,CAAC,CAAA,EAAG;AAC9B,QAAA,OAAO,KAAA;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,MAAA;AACT;AAKO,SAAS,YAAY,KAAA,EAAuB;AACjD,EAAA,IAAI,KAAA,IAAS,GAAG,OAAO,CAAA;AACvB,EAAA,OAAO,KAAK,KAAA,CAAM,IAAA,CAAK,QAAO,IAAK,KAAA,GAAQ,EAAE,CAAA,GAAI,CAAA;AACnD;AAKO,SAAS,YAAA,GAAsC;AACpD,EAAA,MAAM,MAAA,uBAAa,GAAA,EAAsB;AACzC,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC1B,IAAA,MAAM,WAAA,GAAc,KAAA,CAAM,CAAA,GAAI,EAAE,CAAA;AAChC,IAAA,MAAM,MAAM,KAAA,CAAM,KAAA,CAAM,IAAI,EAAA,EAAI,CAAA,GAAI,KAAK,EAAE,CAAA;AAC3C,IAAA,MAAA,CAAO,GAAA,CAAI,KAAK,WAAW,CAAA;AAAA,EAC7B;AACA,EAAA,OAAO,MAAA;AACT;AAKO,SAAS,cAAc,SAAA,EAA2C;AACvE,EAAA,MAAM,QAAA,GAAmC;AAAA,IACvC,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG;AAAA,GACL;AAEA,EAAA,MAAM,MAAA,GAAS,UAAU,CAAC,CAAA;AAC1B,EAAA,MAAM,WAAA,GAAc,SAAS,MAAM,CAAA;AACnC,EAAA,IAAI,CAAC,WAAA,EAAa,OAAO,EAAC;AAE1B,EAAA,MAAM,WAAW,OAAA,CAAQ,KAAA,EAAO,WAAW,CAAA,CAAE,KAAA,CAAM,GAAG,EAAE,CAAA;AACxD,EAAA,MAAM,SAAiC,EAAC;AACxC,EAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,GAAA,EAAK,KAAA,KAAU;AAC7B,IAAA,MAAA,CAAO,GAAG,CAAA,GAAI,QAAA,CAAS,KAAK,CAAA;AAAA,EAC9B,CAAC,CAAA;AAED,EAAA,OAAO,MAAA;AACT;AAKO,SAAS,eAAe,UAAA,EAA4C;AACzE,EAAA,MAAM,UAAA,GAAqC;AAAA,IACzC,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG;AAAA,GACL;AAEA,EAAA,MAAM,OAAA,GAAU,WAAW,CAAC,CAAA;AAC5B,EAAA,MAAM,WAAA,GAAc,WAAW,OAAO,CAAA;AACtC,EAAA,IAAI,CAAC,WAAA,EAAa,OAAO,EAAC;AAE1B,EAAA,MAAM,YAAY,OAAA,CAAQ,KAAA,EAAO,WAAW,CAAA,CAAE,KAAA,CAAM,GAAG,EAAE,CAAA;AACzD,EAAA,MAAM,SAAiC,EAAC;AACxC,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC3B,IAAA,MAAA,CAAO,CAAA,GAAI,CAAC,CAAA,GAAI,SAAA,CAAU,CAAC,CAAA;AAAA,EAC7B;AAEA,EAAA,OAAO,MAAA;AACT;AAMO,SAAS,YAAY,UAAA,EAA8B;AACxD,EAAA,MAAM,UAAA,GAAqC;AAAA,IACzC,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG,cAAA;AAAA,IACH,MAAA,EAAG;AAAA,GACL;AAEA,EAAA,MAAM,OAAA,GAAU,WAAW,CAAC,CAAA;AAC5B,EAAA,MAAM,WAAA,GAAc,WAAW,OAAO,CAAA;AACtC,EAAA,IAAI,CAAC,aAAa,OAAO,KAAA;AAEzB,EAAA,OAAO,OAAA,CAAQ,OAAO,WAAW,CAAA;AACnC;AAKO,SAAS,UAAU,QAAA,EAA0B;AAClD,EAAA,MAAM,SAAA,GAAoC;AAAA,IACxC,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG,QAAA;AAAA,IACH,MAAA,EAAG;AAAA,GACL;AAEA,EAAA,OAAO,SAAA,CAAU,QAAQ,CAAA,IAAK,EAAA;AAChC;AAKO,IAAM,SAAN,MAAmB;AAAA,EAChB,OAAA,uBAAc,GAAA,EAAU;AAAA,EACxB,QAAA,uBAAe,GAAA,EAAU;AAAA,EAEjC,GAAA,CAAI,KAAQ,KAAA,EAAgB;AAC1B,IAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,GAAA,EAAK,KAAK,CAAA;AAC3B,IAAA,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,KAAA,EAAO,GAAG,CAAA;AAAA,EAC9B;AAAA,EAEA,IAAI,GAAA,EAAuB;AACzB,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,GAAG,CAAA;AAAA,EAC7B;AAAA,EAEA,WAAW,KAAA,EAAyB;AAClC,IAAA,OAAO,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,KAAK,CAAA;AAAA,EAChC;AAAA,EAEA,IAAI,OAAA,GAAU;AACZ,IAAA,OAAO;AAAA,MACL,GAAA,EAAK,CAAC,KAAA,KAAa,IAAA,CAAK,WAAW,KAAK;AAAA,KAC1C;AAAA,EACF;AACF;;;AC9MO,SAAS,MAAA,CACd,IAAA,EACA,KAAA,EACA,GAAA,EACA,MACA,MAAA,EACc;AAEd,EAAA,IAAI,YAAA,GAAe,IAAA;AACnB,EAAA,IAAI,aAAA,GAAgB,KAAA;AACpB,EAAA,IAAI,WAAA,GAAc,GAAA;AAClB,EAAA,IAAI,YAAA,GAAe,IAAA;AAEnB,EAAA,IAAI,SAAS,EAAA,EAAI;AACf,IAAA,MAAM,UAAU,IAAI,IAAA,CAAK,MAAM,KAAA,GAAQ,CAAA,EAAG,MAAM,CAAC,CAAA;AACjD,IAAA,YAAA,GAAe,QAAQ,WAAA,EAAY;AACnC,IAAA,aAAA,GAAgB,OAAA,CAAQ,UAAS,GAAI,CAAA;AACrC,IAAA,WAAA,GAAc,QAAQ,OAAA,EAAQ;AAC9B,IAAA,YAAA,GAAe,CAAA;AAAA,EACjB;AAGA,EAAA,MAAM,SAAA,GAAY,UAAU,UAAA,CAAW,YAAA,EAAc,eAAe,WAAA,EAAa,YAAA,EAAc,QAAQ,CAAC,CAAA;AACxG,EAAA,MAAM,SAAA,GAAY,UAAU,YAAA,EAAa;AACzC,EAAA,MAAM,SAAA,GAAY,UAAU,YAAA,EAAa;AAEzC,EAAA,MAAM,UAAA,GAAa,SAAA,CAAU,OAAA,EAAQ,CAAE,OAAA,EAAQ;AAC/C,EAAA,MAAM,WAAA,GAAc,SAAA,CAAU,QAAA,EAAS,CAAE,OAAA,EAAQ;AACjD,EAAA,MAAM,SAAA,GAAY,SAAA,CAAU,MAAA,EAAO,CAAE,OAAA,EAAQ;AAC7C,EAAA,MAAM,UAAA,GAAa,SAAA,CAAU,OAAA,EAAQ,CAAE,OAAA,EAAQ;AAI/C,EAAA,MAAM,WAAA,GAAc,UAAU,UAAA,CAAW,YAAA,EAAc,eAAe,WAAA,EAAa,CAAA,EAAG,GAAG,CAAC,CAAA;AAC1F,EAAA,MAAM,WAAA,GAAc,YAAY,YAAA,EAAa;AAC7C,EAAA,MAAM,WAAA,GAAc,YAAY,YAAA,EAAa;AAC7C,EAAA,MAAM,QAAA,GAAW,WAAA,CAAY,OAAA,EAAQ,CAAE,OAAA,EAAQ;AAC/C,EAAA,MAAM,YAAA,GAAe,eAAA,CAAgB,QAAA,EAAU,YAAA,EAAc,MAAM,CAAA;AAEnE,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,UAAA;AAAA,IACN,KAAA,EAAO,WAAA;AAAA,IACP,GAAA,EAAK,SAAA;AAAA,IACL,IAAA,EAAM,UAAA;AAAA,IACN,MAAA,EAAQ;AAAA,GACV;AACF;AAMA,SAAS,eAAA,CAAgB,QAAA,EAAkB,IAAA,EAAc,MAAA,EAAwB;AAC/E,EAAA,MAAM,MAAA,GAAS,YAAY,QAAQ,CAAA;AAGnC,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,EAAE,CAAA,GAAI,EAAA;AAGhD,EAAA,MAAM,WAAW,IAAA,GAAO,CAAA,GAAI,KAAK,KAAA,CAAM,aAAA,GAAgB,EAAE,CAAA,IAAK,EAAA;AAE9D,EAAA,OAAO,OAAO,OAAO,CAAA;AACvB;AAKO,SAAS,WAAW,IAAA,EAAsB;AAC/C,EAAA,MAAM,MAAA,GAAS;AAAA,IACb,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,OAAO,MAAA,CAAO,IAAI,CAAA,IAAK,QAAA;AACzB;AC3GO,SAAS,gBAAA,CACd,IAAA,EACA,KAAA,EACA,GAAA,EACA,MACA,MAAA,EACQ;AACR,EAAA,MAAM,SAAA,GAAYA,UAAU,UAAA,CAAW,IAAA,EAAM,OAAO,GAAA,EAAK,IAAA,EAAM,QAAQ,CAAC,CAAA;AACxE,EAAA,MAAM,IAAA,GAAO,UAAU,OAAA,EAAQ;AAC/B,EAAA,OAAO,KAAK,OAAA,EAAQ;AACtB;AAKO,SAAS,WAAW,KAAA,EAAuB;AAChD,EAAA,MAAM,OAAA,GAAkC;AAAA,IACtC,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI,QAAA;AAAA,IACJ,YAAA,EAAI;AAAA,GACN;AAEA,EAAA,OAAO,OAAA,CAAQ,KAAK,CAAA,IAAK,EAAA;AAC3B;;;ACAA,SAAS,mBAAA,GAA8D;AACrE,EAAA,MAAM,SAAiD,EAAC;AAExD,EAAA,YAAA,CAAa,OAAA,CAAQ,CAAC,KAAA,EAAO,KAAA,KAAU;AACrC,IAAA,MAAM,OAAA,GAAU,WAAA,CAAY,MAAA,EAA+B,KAAK,CAAA;AAChE,IAAA,MAAM,UAAkC,EAAC;AACzC,IAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,GAAA,EAAK,CAAA,KAAM;AAC1B,MAAA,OAAA,CAAQ,GAAG,CAAA,GAAI,UAAA,CAAW,CAAC,CAAA;AAAA,IAC7B,CAAC,CAAA;AAED,IAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,KAAA,KAAU;AACvB,MAAA,MAAA,CAAO,KAAK,CAAA,GAAI,OAAA;AAAA,IAClB,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAA,OAAO,MAAA;AACT;AAEA,IAAM,mBAAmB,mBAAA,EAAoB;AAK7C,IAAM,qBAAA,GAA+E;AAAA,EACnF,EAAE,KAAA,EAAO,CAAC,cAAA,EAAM,cAAA,EAAM,cAAA,EAAM,cAAA,EAAM,cAAA,EAAM,cAAI,CAAA,EAAG,IAAA,EAAM,QAAA,EAAK,KAAK,QAAA,EAAI;AAAA,EACnE,EAAE,KAAA,EAAO,CAAC,cAAA,EAAM,cAAA,EAAM,cAAA,EAAM,cAAA,EAAM,cAAA,EAAM,cAAI,CAAA,EAAG,IAAA,EAAM,QAAA,EAAK,KAAK,QAAA,EAAI;AAAA,EACnE,EAAE,KAAA,EAAO,CAAC,cAAA,EAAM,cAAA,EAAM,cAAA,EAAM,cAAA,EAAM,cAAA,EAAM,cAAI,CAAA,EAAG,IAAA,EAAM,QAAA,EAAK,KAAK,QAAA,EAAI;AAAA,EACnE,EAAE,KAAA,EAAO,CAAC,cAAA,EAAM,cAAA,EAAM,cAAA,EAAM,cAAA,EAAM,cAAA,EAAM,cAAI,CAAA,EAAG,IAAA,EAAM,QAAA,EAAK,KAAK,QAAA;AACjE,CAAA;AAKA,SAAS,WAAW,KAAA,EAAgD;AAClE,EAAA,KAAA,MAAW,UAAU,qBAAA,EAAuB;AAC1C,IAAA,IAAI,MAAA,CAAO,KAAA,CAAM,QAAA,CAAS,KAAK,CAAA,EAAG;AAChC,MAAA,OAAO,EAAE,MAAA,EAAG,MAAA,CAAO,IAAA,EAAM,MAAA,EAAG,OAAO,GAAA,EAAI;AAAA,IACzC;AAAA,EACF;AACA,EAAA,OAAO,IAAA;AACT;AAYO,SAAS,eACd,GAAA,EACA,EAAA,EACA,EAAA,EACA,GAAA,EACA,KACA,UAAA,EACoB;AACpB,EAAA,MAAM,MAAA,GAAS,IAAI,CAAC,CAAA;AAGpB,EAAA,IAAI,EAAE,UAAU,gBAAA,CAAA,EAAmB;AACjC,IAAA,OAAO,EAAE,cAAI,0HAAA,EAAuB;AAAA,EACtC;AAEA,EAAA,MAAM,IAAA,GAAO,EAAA;AACb,EAAA,MAAM,SAA6B,EAAC;AAGpC,EAAA,MAAM,UAAA,GAAa,iBAAiB,MAAM,CAAA;AAC1C,EAAA,MAAM,UAAA,GAAa,UAAA,CAAW,OAAA,CAAQ,UAAiB,CAAA;AACvD,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,EAAE,QAAQ,CAAA,EAAE,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,UAAA,CAAA,CAAY,UAAA,GAAa,CAAA,IAAK,CAAC,CAAC,CAAA;AAGrF,EAAA,MAAM,SAAA,GAAY,IAAI,MAAA,EAAuB;AAC7C,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,CAAE,OAAA,CAAQ,CAAC,CAACC,IAAAA,EAAK,KAAK,CAAA,KAAM;AACnD,MAAA,SAAA,CAAU,GAAA,CAAIA,MAAK,KAAK,CAAA;AAAA,IAC1B,CAAC,CAAA;AAAA,EACH;AAGA,EAAA,MAAM,OAAA,GAAU,WAAW,EAAE,CAAA;AAC7B,EAAA,IAAI,IAAA,GAAO,EAAA;AACX,EAAA,IAAI,GAAA,GAAM,EAAA;AACV,EAAA,IAAI,OAAA,GAAU,EAAA;AAEd,EAAA,IAAI,WAAW,UAAA,EAAY;AACzB,IAAA,MAAM,UAAU,SAAA,CAAU,UAAA,CAAW,OAAA,CAAQ,MAAC,KAAK,OAAA,CAAQ,MAAA;AAC3D,IAAA,MAAM,SAAS,SAAA,CAAU,UAAA,CAAW,OAAA,CAAQ,MAAC,KAAK,OAAA,CAAQ,MAAA;AAC1D,IAAA,IAAA,GAAO,UAAA,CAAW,OAAO,CAAA,IAAK,EAAA;AAC9B,IAAA,GAAA,GAAM,UAAA,CAAW,MAAM,CAAA,IAAK,EAAA;AAE5B,IAAA,MAAM,aAAa,WAAA,CAAY,GAAA,CAAI,CAAC,CAAC,CAAA,IAAK,IAAI,CAAC,CAAA;AAC/C,IAAA,MAAM,aAAA,GAAgB,SAAA,CAAU,UAAA,CAAW,UAAU,CAAA,IAAK,UAAA;AAC1D,IAAA,OAAA,GAAU,UAAA,CAAW,aAAa,CAAA,IAAK,EAAA;AAAA,EACzC;AAGA,EAAA,MAAM,WAAW,IAAA,CAAK,KAAA,CAAM,MAAM,OAAA,CAAQ,GAAG,IAAI,EAAE,CAAA;AACnD,EAAA,MAAM,UAAA,GAAa,aAAa,QAAQ,CAAA;AACxC,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,GAAA,CAAI,CAAC,CAAC,CAAA;AAC/B,EAAA,MAAM,EAAA,GAAK,UAAA,CAAW,OAAO,CAAA,CAAE,MAAA;AAC/B,EAAA,MAAM,EAAA,GAAK,UAAA,CAAW,OAAO,CAAA,CAAE,MAAA;AAC/B,EAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,EAAE,CAAA,IAAK,EAAA;AAChC,EAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,EAAE,CAAA,IAAK,EAAA;AAGhC,EAAA,MAAM,SAAA,GAAqC;AAAA,IACzC,CAAC,gBAAM,QAAG,CAAA;AAAA,IACV,CAAC,gBAAM,cAAI,CAAA;AAAA,IACX,CAAC,gBAAM,cAAI,CAAA;AAAA,IACX,CAAC,gBAAM,cAAI,CAAA;AAAA,IACX,CAAC,gBAAM,cAAI,CAAA;AAAA,IACX,CAAC,gBAAM,cAAI;AAAA,GACb;AAEA,EAAA,IAAI,MAAA,GAAS,IAAA;AACb,EAAA,IAAI,SAAA,GAAY,EAAA;AAEhB,EAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,SAAA,CAAU,QAAQ,GAAA,EAAA,EAAO;AAC/C,IAAA,MAAM,CAAC,IAAA,EAAM,KAAK,CAAA,GAAI,UAAU,GAAG,CAAA;AACnC,IAAA,MAAM,IAAA,GAAO,YAAY,MAAM,CAAA;AAC/B,IAAA,IAAI,UAAU,IAAA,GAAO,CAAA;AACrB,IAAA,OAAA,GAAU,OAAA,KAAY,IAAI,CAAA,GAAI,OAAA;AAC9B,IAAA,MAAM,WAAA,GAAc,eAAe,OAAO,CAAA;AAC1C,IAAA,MAAM,KAAA,GAAQ,SAAS,GAAG,CAAA;AAE1B,IAAA,MAAM,UAAU,IAAA,CAAK,CAAC,MAAM,QAAA,GAAM,QAAA,GAAM,KAAK,CAAC,CAAA;AAG9C,IAAA,IAAI,QAAA,GAAW,EAAA;AACf,IAAA,IAAI,QAAQ,CAAA,EAAG;AACb,MAAA,SAAA,GAAY,WAAA;AAAA,IACd,CAAA,MAAO;AACL,MAAA,MAAM,cAAc,SAAA,GAAY,WAAA;AAChC,MAAA,MAAM,cAAA,GAAiB,gBAAA,CAAiB,WAAW,CAAA,IAAK,EAAA;AACxD,MAAA,QAAA,GAAW,WAAA,CAAY,cAAc,CAAA,IAAK,EAAA;AAAA,IAC5C;AAGA,IAAA,MAAM,SAAA,GAAY,gBAAA,CAAiB,EAAE,CAAA,GAAI,OAAO,CAAA,IAAK,EAAA;AAGrD,IAAA,MAAM,QAAA,GAAW,mBAAmB,KAAK,CAAA;AACzC,IAAA,MAAM,aAAA,GAAgB,YAAY,QAAA,CAAS,CAAC,EAAE,CAAC,CAAA,KAAM,UAAU,QAAA,GAAM,EAAA;AACrE,IAAA,MAAM,YAAA,GAAe,YAAY,QAAA,CAAS,CAAC,EAAE,CAAC,CAAA,KAAM,UAAU,QAAA,GAAM,EAAA;AAEpE,IAAC,MAAA,CAAe,KAAK,CAAA,GAAI;AAAA,MACvB,YAAA,EAAI,KAAA;AAAA,MACJ,aAAA,EAAK,OAAA;AAAA,MACL,YAAA,EAAI,SAAA;AAAA,MACJ,YAAA,EAAI,OAAA;AAAA,MACJ,YAAA,EAAI,WAAA;AAAA,MACJ,YAAA,EAAI,KAAA;AAAA,MACJ,kBAAA,EAAK,aAAA;AAAA,MACL,kBAAA,EAAK,YAAA;AAAA,MACL,YAAA,EAAI,QAAA;AAAA,MACJ,MAAA,EAAG,KAAA,KAAU,OAAA,GAAU,QAAA,GAAM,EAAA;AAAA,MAC7B,MAAA,EAAG,KAAA,KAAU,OAAA,GAAU,QAAA,GAAM,EAAA;AAAA,MAC7B,MAAA,EAAG,IAAA,KAAS,OAAA,GAAU,QAAA,GAAM,EAAA;AAAA,MAC5B,MAAA,EAAG,GAAA,KAAQ,OAAA,GAAU,QAAA,GAAM,EAAA;AAAA,MAC3B,YAAA,EAAI,OAAA,KAAY,OAAA,GAAU,cAAA,GAAO;AAAA,KACnC;AAEA,IAAA,MAAA,IAAU,OAAA;AACV,IAAA,IAAI,UAAU,CAAA,EAAG;AAAA,EACnB;AAEA,EAAA,OAAO,MAAA;AACT;AAWO,SAAS,YAAA,CACd,MAAA,EACA,GAAA,EACA,EAAA,EACA,IACA,UAAA,EACoB;AACpB,EAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAO,GAAA,EAAK,IAAA,EAAM,QAAO,GAAI,MAAA;AAG3C,EAAA,MAAM,SAAA,GAAY,OAAO,CAAC,CAAA;AAC1B,EAAA,IAAI,EAAE,aAAa,gBAAA,CAAA,EAAmB;AACpC,IAAA,OAAO,EAAE,cAAI,0HAAA,EAAuB;AAAA,EACtC;AAGA,EAAA,MAAM,SAAiC,EAAC;AACxC,EAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,EAAA,EAAI,KAAA,KAAU;AAC3B,IAAA,MAAA,CAAO,EAAE,IAAI,KAAA,GAAQ,CAAA;AAAA,EACvB,CAAC,CAAA;AAGD,EAAA,MAAM,UAAA,GAAa,iBAAiB,SAAS,CAAA;AAC7C,EAAA,MAAM,UAAA,GAAa,UAAA,CAAW,OAAA,CAAQ,UAAiB,CAAA;AACvD,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,EAAE,QAAQ,CAAA,EAAE,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,UAAA,CAAA,CAAY,UAAA,GAAa,CAAA,IAAK,CAAC,CAAC,CAAA;AAGrF,EAAA,MAAM,SAAA,GAAY,IAAI,MAAA,EAAuB;AAC7C,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,CAAE,OAAA,CAAQ,CAAC,CAACA,IAAAA,EAAK,KAAK,CAAA,KAAM;AACnD,MAAA,SAAA,CAAU,GAAA,CAAIA,MAAK,KAAK,CAAA;AAAA,IAC1B,CAAC,CAAA;AAAA,EACH;AAGA,EAAA,MAAM,OAAA,GAAU,WAAW,EAAE,CAAA;AAC7B,EAAA,IAAI,IAAA,GAAO,EAAA;AACX,EAAA,IAAI,GAAA,GAAM,EAAA;AACV,EAAA,IAAI,OAAA,GAAU,EAAA;AAEd,EAAA,IAAI,WAAW,UAAA,EAAY;AACzB,IAAA,MAAM,UAAU,SAAA,CAAU,UAAA,CAAW,OAAA,CAAQ,MAAC,KAAK,OAAA,CAAQ,MAAA;AAC3D,IAAA,MAAM,SAAS,SAAA,CAAU,UAAA,CAAW,OAAA,CAAQ,MAAC,KAAK,OAAA,CAAQ,MAAA;AAC1D,IAAA,IAAA,GAAO,UAAA,CAAW,OAAO,CAAA,IAAK,EAAA;AAC9B,IAAA,GAAA,GAAM,UAAA,CAAW,MAAM,CAAA,IAAK,EAAA;AAE5B,IAAA,MAAM,aAAa,WAAA,CAAY,MAAA,CAAO,CAAC,CAAC,CAAA,IAAK,OAAO,CAAC,CAAA;AACrD,IAAA,MAAM,aAAA,GAAgB,SAAA,CAAU,UAAA,CAAW,UAAU,CAAA,IAAK,UAAA;AAC1D,IAAA,OAAA,GAAU,UAAA,CAAW,aAAa,CAAA,IAAK,EAAA;AAAA,EACzC;AAGA,EAAA,MAAM,cAAc,IAAA,CAAK,KAAA,CAAM,MAAM,OAAA,CAAQ,MAAM,IAAI,EAAE,CAAA;AACzD,EAAA,MAAM,UAAA,GAAa,aAAa,WAAW,CAAA;AAC3C,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,MAAA,CAAO,CAAC,CAAC,CAAA;AAClC,EAAA,MAAM,EAAA,GAAK,UAAA,CAAW,OAAO,CAAA,CAAE,MAAA;AAC/B,EAAA,MAAM,EAAA,GAAK,UAAA,CAAW,OAAO,CAAA,CAAE,MAAA;AAC/B,EAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,EAAE,CAAA,IAAK,EAAA;AAChC,EAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,EAAE,CAAA,IAAK,EAAA;AAGhC,EAAA,MAAM,SAAA,GAA+C;AAAA,IACnD,CAAC,gBAAM,QAAA,EAAK,CAAC,MAAM,KAAA,EAAO,GAAA,EAAK,IAAA,EAAM,MAAM,CAAC,CAAA;AAAA,IAC5C,CAAC,gBAAM,cAAA,EAAM,CAAC,OAAO,GAAA,EAAK,IAAA,EAAM,MAAM,CAAC,CAAA;AAAA,IACvC,CAAC,cAAA,EAAM,cAAA,EAAM,CAAC,GAAA,EAAK,IAAA,EAAM,MAAM,CAAC,CAAA;AAAA,IAChC,CAAC,cAAA,EAAM,cAAA,EAAM,CAAC,IAAA,EAAM,MAAM,CAAC,CAAA;AAAA,IAC3B,CAAC,cAAA,EAAM,cAAA,EAAM,CAAC,MAAM,CAAC,CAAA;AAAA,IACrB,CAAC,cAAA,EAAM,cAAA,EAAM,EAAE;AAAA,GACjB;AAEA,EAAA,MAAM,SAA6B,EAAC;AACpC,EAAA,IAAI,SAAA,GAAY,EAAA;AAEhB,EAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,SAAA,CAAU,QAAQ,GAAA,EAAA,EAAO;AAC/C,IAAA,MAAM,CAAC,IAAA,EAAM,KAAA,EAAO,KAAK,CAAA,GAAI,UAAU,GAAG,CAAA;AAG1C,IAAA,IAAI,KAAA,GAAQ,GAAA;AACZ,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,MAAA,KAAA,IAAS,OAAO,IAAI,CAAA,KAAM,OAAO,IAAA,KAAS,WAAW,IAAA,GAAO,CAAA,CAAA;AAAA,IAC9D;AAEA,IAAA,IAAI,UAAU,KAAA,GAAQ,CAAA;AACtB,IAAA,OAAA,GAAU,OAAA,KAAY,IAAI,CAAA,GAAI,OAAA;AAC9B,IAAA,MAAM,WAAA,GAAc,eAAe,OAAO,CAAA;AAC1C,IAAA,MAAM,KAAA,GAAQ,SAAS,GAAG,CAAA;AAE1B,IAAA,MAAM,UAAU,IAAA,CAAK,CAAC,MAAM,QAAA,GAAM,QAAA,GAAM,KAAK,CAAC,CAAA;AAG9C,IAAA,IAAI,QAAA,GAAW,EAAA;AACf,IAAA,IAAI,QAAQ,CAAA,EAAG;AACb,MAAA,SAAA,GAAY,WAAA;AAAA,IACd,CAAA,MAAO;AACL,MAAA,MAAM,cAAc,SAAA,GAAY,WAAA;AAChC,MAAA,MAAM,cAAA,GAAiB,gBAAA,CAAiB,WAAW,CAAA,IAAK,EAAA;AACxD,MAAA,QAAA,GAAW,WAAA,CAAY,cAAc,CAAA,IAAK,EAAA;AAAA,IAC5C;AAGA,IAAA,MAAM,SAAA,GAAY,gBAAA,CAAiB,EAAE,CAAA,GAAI,OAAO,CAAA,IAAK,EAAA;AAGrD,IAAA,MAAM,QAAA,GAAW,mBAAmB,KAAK,CAAA;AACzC,IAAA,MAAM,aAAA,GAAgB,YAAY,QAAA,CAAS,CAAC,EAAE,CAAC,CAAA,KAAM,UAAU,QAAA,GAAM,EAAA;AACrE,IAAA,MAAM,YAAA,GAAe,YAAY,QAAA,CAAS,CAAC,EAAE,CAAC,CAAA,KAAM,UAAU,QAAA,GAAM,EAAA;AAEpE,IAAC,MAAA,CAAe,KAAK,CAAA,GAAI;AAAA,MACvB,YAAA,EAAI,KAAA;AAAA,MACJ,aAAA,EAAK,OAAA;AAAA,MACL,YAAA,EAAI,SAAA;AAAA,MACJ,YAAA,EAAI,OAAA;AAAA,MACJ,YAAA,EAAI,WAAA;AAAA,MACJ,YAAA,EAAI,KAAA;AAAA,MACJ,kBAAA,EAAK,aAAA;AAAA,MACL,kBAAA,EAAK,YAAA;AAAA,MACL,YAAA,EAAI,QAAA;AAAA,MACJ,MAAA,EAAG,IAAA,KAAS,OAAA,GAAU,QAAA,GAAM,EAAA;AAAA,MAC5B,MAAA,EAAG,GAAA,KAAQ,OAAA,GAAU,QAAA,GAAM,EAAA;AAAA,MAC3B,MAAA,EAAG,KAAA,KAAU,OAAA,GAAU,QAAA,GAAM,EAAA;AAAA,MAC7B,MAAA,EAAG,KAAA,KAAU,OAAA,GAAU,QAAA,GAAM,EAAA;AAAA,MAC7B,YAAA,EAAI,OAAA,KAAY,OAAA,GAAU,cAAA,GAAO;AAAA,KACnC;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT","file":"index.js","sourcesContent":["/**\n * 五兆占卜系统 - 常量定义\n * 包含天干地支、五行、八卦等基础常量\n */\n\n// 天干地支\nexport const TIAN_GAN = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'] as const;\nexport const DI_ZHI = [\n '子',\n '丑',\n '寅',\n '卯',\n '辰',\n '巳',\n '午',\n '未',\n '申',\n '酉',\n '戌',\n '亥',\n] as const;\n\n// 数字对应五行\nexport const NUM_TO_ELEMENT: Record<number, string> = {\n 1: '水',\n 2: '火',\n 3: '木',\n 4: '金',\n 5: '土',\n};\n\n// 五行\nexport const WU_XING = ['木', '火', '土', '金', '水'] as const;\n\n// 八卦\nexport const BA_GUA = ['艮', '震', '巽', '離', '坤', '兌', '乾', '坎'] as const;\n\n// 旺相胎沒死囚廢休\nexport const WANG_XIANG = ['王', '相', '胎', '沒', '死', '囚', '廢', '休'] as const;\n\n// 六兽序列\nexport const SIX_BEASTS = ['青龍', '朱雀', '螣蛇', '勾陳', '白虎', '玄武'] as const;\n\n// 六兽弱点\nexport const SIX_BEAST_WEAKNESS: Record<string, [string, string]> = {\n 青龍: ['坤', '兌'],\n 朱雀: ['坎', '巽'],\n 螣蛇: ['坎', '巽'],\n 勾陳: ['巽', '巽'],\n 白虎: ['坎', '離'],\n 玄武: ['巽', '震'],\n};\n\n// 日干对应起六兽首位\nexport const DAY_GAN_TO_BEAST: Record<string, string> = {\n 甲: '青龍',\n 乙: '青龍',\n 丙: '朱雀',\n 丁: '朱雀',\n 戊: '勾陳',\n 己: '勾陳',\n 庚: '白虎',\n 辛: '白虎',\n 壬: '玄武',\n 癸: '玄武',\n};\n\n// 二十四节气\nexport const TWENTY_FOUR_SOLAR_TERMS = [\n '立春',\n '雨水',\n '驚蟄',\n '春分',\n '清明',\n '穀雨',\n '立夏',\n '小滿',\n '芒種',\n '夏至',\n '小暑',\n '大暑',\n '立秋',\n '處暑',\n '白露',\n '秋分',\n '寒露',\n '霜降',\n '立冬',\n '小雪',\n '大雪',\n '冬至',\n '小寒',\n '大寒',\n] as const;\n\n// 节气分组\nexport const JIEQI_GROUPS = [\n ['立春', '雨水', '驚蟄'],\n ['春分', '清明', '穀雨'],\n ['立夏', '小滿', '芒種'],\n ['夏至', '小暑', '大暑'],\n ['立秋', '處暑', '白露'],\n ['秋分', '寒露', '霜降'],\n ['立冬', '小雪', '大雪'],\n ['冬至', '小寒', '大寒'],\n] as const;\n\n// 地支转卦\nexport const ZHI_TO_GUA: Record<string, string> = {\n 子: '坎',\n 寅: '震',\n 卯: '震',\n 辰: '巽',\n 巳: '巽',\n 午: '離',\n 申: '兌',\n 酉: '兌',\n 戌: '乾',\n 亥: '乾',\n 丑: '中',\n 未: '中',\n};\n\n// 将军\nexport const GENERAL_MAP: Record<string, string> = {\n 子: '子',\n 丑: '酉',\n 寅: '午',\n 卯: '卯',\n 辰: '子',\n 巳: '酉',\n 午: '午',\n 未: '卯',\n 申: '子',\n 酉: '酉',\n 戌: '午',\n 亥: '卯',\n};\n\n// 阴阳\nexport const YIN_YANG: Record<string, '陽' | '陰'> = {\n 甲: '陽',\n 丙: '陽',\n 戊: '陽',\n 庚: '陽',\n 壬: '陽',\n 乙: '陰',\n 丁: '陰',\n 己: '陰',\n 辛: '陰',\n 癸: '陰',\n};\n\n// 孤虚配置\nexport const GU_XU_CONFIG = [\n { 陽: { 孤: '戌', 虛: '辰' }, 陰: { 孤: '亥', 虛: '巳' } },\n { 陽: { 孤: '申', 虛: '寅' }, 陰: { 孤: '酉', 虛: '卯' } },\n { 陽: { 孤: '午', 虛: '子' }, 陰: { 孤: '未', 虛: '丑' } },\n { 陽: { 孤: '辰', 虛: '戌' }, 陰: { 孤: '巳', 虛: '亥' } },\n { 陽: { 孤: '寅', 虛: '申' }, 陰: { 孤: '卯', 虛: '酉' } },\n { 陽: { 孤: '子', 虛: '午' }, 陰: { 孤: '丑', 虛: '未' } },\n];\n\n// 五行生克关系\nexport const WU_XING_RELATION: Record<string, string> = {\n 木木: '比和',\n 木火: '我生',\n 木土: '我尅',\n 木金: '尅我',\n 木水: '生我',\n 火木: '生我',\n 火火: '比和',\n 火土: '我生',\n 火金: '我尅',\n 火水: '尅我',\n 土木: '尅我',\n 土火: '生我',\n 土土: '比和',\n 土金: '我生',\n 土水: '我尅',\n 金木: '我尅',\n 金火: '尅我',\n 金土: '生我',\n 金金: '比和',\n 金水: '我生',\n 水木: '我生',\n 水火: '尅我',\n 水土: '尅我',\n 水金: '生我',\n 水水: '比和',\n};\n\n// 六亲\nexport const LIU_QIN_MAP: Record<string, string> = {\n 尅我: '官鬼',\n 我尅: '妻財',\n 比和: '兄弟',\n 生我: '父母',\n 我生: '子孫',\n};\n\n// 宫位\nexport const GONG_WEI = ['巽宮', '震宮', '離宮', '中宮', '兌宮', '坎宮'] as const;\n\n// 宫位标签\nexport const GONG_WEI_LABELS = ['兆', '木鄉', '火鄉', '土鄉', '金鄉', '水鄉'] as const;\n","/**\n * 五兆占卜系统 - 工具函数\n */\n\nimport { TIAN_GAN, DI_ZHI } from './constants.js';\n\n/**\n * 生成六十甲子\n */\nexport function generateJiaZi(): string[] {\n const result: string[] = [];\n for (let i = 0; i < 60; i++) {\n result.push(TIAN_GAN[i % 10] + DI_ZHI[i % 12]);\n }\n return result;\n}\n\n/**\n * 获取六十甲子\n */\nexport const JIAZI = generateJiaZi();\n\n/**\n * 旋转数组\n */\nexport function rotateArray<T>(arr: T[], shift: number): T[] {\n const normalizedShift = shift % arr.length;\n return [...arr.slice(normalizedShift), ...arr.slice(0, normalizedShift)];\n}\n\n/**\n * 创建新列表(从指定元素开始)\n */\nexport function newList<T>(list: T[], element: T): T[] {\n const index = list.indexOf(element);\n if (index === -1) return list;\n return rotateArray(list, index);\n}\n\n/**\n * 多键字典查找\n */\nexport function multiKeyDictGet<K, V>(\n dict: Map<K[], V> | Record<string, V>,\n key: K\n): V | undefined {\n if (dict instanceof Map) {\n for (const [keys, value] of dict.entries()) {\n if (keys.includes(key)) {\n return value;\n }\n }\n } else {\n for (const [keysStr, value] of Object.entries(dict)) {\n const keys = keysStr.split(',');\n if (keys.includes(String(key))) {\n return value;\n }\n }\n }\n return undefined;\n}\n\n/**\n * 随机分割(返回左边部分)\n */\nexport function randomSplit(total: number): number {\n if (total <= 1) return 1;\n return Math.floor(Math.random() * (total - 1)) + 1;\n}\n\n/**\n * 获取六甲旬\n */\nexport function getLiuJiaXun(): Map<string[], string> {\n const xunMap = new Map<string[], string>();\n for (let i = 0; i < 6; i++) {\n const startGanZhi = JIAZI[i * 10];\n const xun = JIAZI.slice(i * 10, i * 10 + 10);\n xunMap.set(xun, startGanZhi);\n }\n return xunMap;\n}\n\n/**\n * 五鼠遁 - 根据日干支推算时辰干支\n */\nexport function findLunarHour(dayGanZhi: string): Record<string, string> {\n const fiveRats: Record<string, string> = {\n 甲: '甲子',\n 己: '甲子',\n 乙: '丙子',\n 庚: '丙子',\n 丙: '戊子',\n 辛: '戊子',\n 丁: '庚子',\n 壬: '庚子',\n 戊: '壬子',\n 癸: '壬子',\n };\n\n const dayGan = dayGanZhi[0];\n const startGanZhi = fiveRats[dayGan];\n if (!startGanZhi) return {};\n\n const hourList = newList(JIAZI, startGanZhi).slice(0, 12);\n const result: Record<string, string> = {};\n DI_ZHI.forEach((zhi, index) => {\n result[zhi] = hourList[index];\n });\n\n return result;\n}\n\n/**\n * 五虎遁 - 根据年干支推算月份干支\n */\nexport function findLunarMonth(yearGanZhi: string): Record<number, string> {\n const fiveTigers: Record<string, string> = {\n 甲: '丙寅',\n 己: '丙寅',\n 乙: '戊寅',\n 庚: '戊寅',\n 丙: '庚寅',\n 辛: '庚寅',\n 丁: '壬寅',\n 壬: '壬寅',\n 戊: '甲寅',\n 癸: '甲寅',\n };\n\n const yearGan = yearGanZhi[0];\n const startGanZhi = fiveTigers[yearGan];\n if (!startGanZhi) return {};\n\n const monthList = newList(JIAZI, startGanZhi).slice(0, 12);\n const result: Record<number, string> = {};\n for (let i = 0; i < 12; i++) {\n result[i + 1] = monthList[i];\n }\n\n return result;\n}\n\n/**\n * 五马遁 - 根据子时干支推算刻干支(每10分钟一个干支)\n * 对应Python版本的find_lunar_ke函数\n */\nexport function findLunarKe(hourGanZhi: string): string[] {\n const fiveHorses: Record<string, string> = {\n 丙: '甲午',\n 辛: '甲午',\n 丁: '丙午',\n 壬: '丙午',\n 戊: '戊午',\n 癸: '戊午',\n 甲: '庚午',\n 己: '庚午',\n 乙: '壬午',\n 庚: '壬午',\n };\n\n const hourGan = hourGanZhi[0];\n const startGanZhi = fiveHorses[hourGan];\n if (!startGanZhi) return JIAZI;\n\n return newList(JIAZI, startGanZhi);\n}\n\n/**\n * 获取干支对应的五行\n */\nexport function getWuXing(ganOrZhi: string): string {\n const wuXingMap: Record<string, string> = {\n 甲: '木',\n 乙: '木',\n 寅: '木',\n 卯: '木',\n 震: '木',\n 巽: '木',\n 丙: '火',\n 丁: '火',\n 巳: '火',\n 午: '火',\n 離: '火',\n 壬: '水',\n 癸: '水',\n 亥: '水',\n 子: '水',\n 坎: '水',\n 庚: '金',\n 辛: '金',\n 申: '金',\n 酉: '金',\n 乾: '金',\n 兌: '金',\n 未: '土',\n 丑: '土',\n 戊: '土',\n 己: '土',\n 辰: '土',\n 戌: '土',\n 艮: '土',\n 坤: '土',\n };\n\n return wuXingMap[ganOrZhi] || '';\n}\n\n/**\n * 双向映射类\n */\nexport class BiDict<K, V> {\n private forward = new Map<K, V>();\n private backward = new Map<V, K>();\n\n set(key: K, value: V): void {\n this.forward.set(key, value);\n this.backward.set(value, key);\n }\n\n get(key: K): V | undefined {\n return this.forward.get(key);\n }\n\n getInverse(value: V): K | undefined {\n return this.backward.get(value);\n }\n\n get inverse() {\n return {\n get: (value: V) => this.getInverse(value),\n };\n }\n}\n","/**\n * 五兆占卜系统 - 干支计算模块\n * 使用tyme4ts计算天干地支\n */\n\nimport { SolarTime } from 'tyme4ts';\nimport { findLunarKe, JIAZI, newList } from './utils.js';\n\n/**\n * 干支结果\n */\nexport interface GanZhiResult {\n year: string; // 年干支\n month: string; // 月干支\n day: string; // 日干支\n hour: string; // 时干支\n minute: string; // 分干支\n}\n\n/**\n * 将公历日期转换为干支\n * @param year 年\n * @param month 月 (1-12)\n * @param day 日\n * @param hour 时 (0-23)\n * @param minute 分 (0-59)\n * @returns 干支结果\n */\nexport function ganZhi(\n year: number,\n month: number,\n day: number,\n hour: number,\n minute: number\n): GanZhiResult {\n // 处理23点的特殊情况(算作第二天的子时)\n let adjustedYear = year;\n let adjustedMonth = month;\n let adjustedDay = day;\n let adjustedHour = hour;\n\n if (hour === 23) {\n const nextDay = new Date(year, month - 1, day + 1);\n adjustedYear = nextDay.getFullYear();\n adjustedMonth = nextDay.getMonth() + 1;\n adjustedDay = nextDay.getDate();\n adjustedHour = 0;\n }\n\n // 使用tyme4ts获取八字\n const solarTime = SolarTime.fromYmdHms(adjustedYear, adjustedMonth, adjustedDay, adjustedHour, minute, 0);\n const lunarHour = solarTime.getLunarHour();\n const eightChar = lunarHour.getEightChar();\n\n const yearGanZhi = eightChar.getYear().getName();\n const monthGanZhi = eightChar.getMonth().getName();\n const dayGanZhi = eightChar.getDay().getName();\n const hourGanZhi = eightChar.getHour().getName();\n\n // 计算刻干支(使用五马遁,每10分钟一个干支)\n // 获取当天子时的干支\n const ziSolarTime = SolarTime.fromYmdHms(adjustedYear, adjustedMonth, adjustedDay, 0, 0, 0);\n const ziLunarHour = ziSolarTime.getLunarHour();\n const ziEightChar = ziLunarHour.getEightChar();\n const ziGanZhi = ziEightChar.getHour().getName();\n const minuteGanZhi = getMinuteGanZhi(ziGanZhi, adjustedHour, minute);\n\n return {\n year: yearGanZhi,\n month: monthGanZhi,\n day: dayGanZhi,\n hour: hourGanZhi,\n minute: minuteGanZhi,\n };\n}\n\n/**\n * 根据子时干支和具体时间计算分钟干支(刻干支)\n * 每10分钟对应一个干支,对应Python版本的ke_jiazi_d函数\n */\nfunction getMinuteGanZhi(ziGanZhi: string, hour: number, minute: number): string {\n const keList = findLunarKe(ziGanZhi);\n\n // 将分钟取整到10分钟(00, 10, 20, 30, 40, 50)\n const roundedMinute = Math.floor(minute / 10) * 10;\n\n // 计算索引:每小时6个刻,每天144个刻,循环60个干支\n const keIndex = (hour * 6 + Math.floor(roundedMinute / 10)) % 60;\n\n return keList[keIndex];\n}\n\n/**\n * 获取时辰对应的地支\n */\nexport function getHourZhi(hour: number): string {\n const zhiMap = [\n '子',\n '丑',\n '丑',\n '寅',\n '寅',\n '卯',\n '卯',\n '辰',\n '辰',\n '巳',\n '巳',\n '午',\n '午',\n '未',\n '未',\n '申',\n '申',\n '酉',\n '酉',\n '戌',\n '戌',\n '亥',\n '亥',\n '子',\n ];\n return zhiMap[hour] || '子';\n}\n\n/**\n * 生成干支表(用于调试)\n */\nexport function generateGanZhiTable(startYear: number, endYear: number): void {\n for (let year = startYear; year <= endYear; year++) {\n const result = ganZhi(year, 1, 1, 0, 0);\n console.log(`${year}年: ${result.year} ${result.month} ${result.day} ${result.hour}`);\n }\n}\n","/**\n * 五兆占卜系统 - 节气计算模块\n * 使用tyme4ts计算二十四节气\n */\n\nimport { SolarTime } from 'tyme4ts';\n\n/**\n * 根据日期查找当前节气\n * @param year 年\n * @param month 月 (1-12)\n * @param day 日\n * @param hour 时 (0-23)\n * @param minute 分 (0-59)\n * @returns 当前节气名称\n */\nexport function findCurrentJieQi(\n year: number,\n month: number,\n day: number,\n hour: number,\n minute: number\n): string {\n const solarTime = SolarTime.fromYmdHms(year, month, day, hour, minute, 0);\n const term = solarTime.getTerm();\n return term.getName();\n}\n\n/**\n * 根据节气查找季节\n */\nexport function findSeason(jieqi: string): string {\n const seasons: Record<string, string> = {\n 立春: '春',\n 雨水: '春',\n 驚蟄: '春',\n 春分: '春',\n 清明: '春',\n 穀雨: '春',\n 立夏: '夏',\n 小滿: '夏',\n 芒種: '夏',\n 夏至: '夏',\n 小暑: '夏',\n 大暑: '夏',\n 立秋: '秋',\n 處暑: '秋',\n 白露: '秋',\n 秋分: '秋',\n 寒露: '秋',\n 霜降: '秋',\n 立冬: '冬',\n 小雪: '冬',\n 大雪: '冬',\n 冬至: '冬',\n 小寒: '冬',\n 大寒: '冬',\n };\n\n return seasons[jieqi] || '';\n}\n","/**\n * 五兆占卜系统 - 核心排盘模块\n */\n\nimport {\n NUM_TO_ELEMENT,\n SIX_BEASTS,\n DAY_GAN_TO_BEAST,\n SIX_BEAST_WEAKNESS,\n YIN_YANG,\n GU_XU_CONFIG,\n ZHI_TO_GUA,\n GENERAL_MAP,\n WU_XING_RELATION,\n LIU_QIN_MAP,\n GONG_WEI,\n GONG_WEI_LABELS,\n BA_GUA,\n WANG_XIANG,\n JIEQI_GROUPS,\n} from './constants.js';\nimport { randomSplit, BiDict, getWuXing, JIAZI, rotateArray } from './utils.js';\nimport { GanZhiResult } from './ganzhi.js';\n\n/**\n * 宫位信息\n */\nexport interface GongWeiInfo {\n 宮位: string; // 宫位名称\n 宮位1: string; // 宫位八卦\n 旺相: string; // 旺相状态\n 數字: number; // 数字(1-5)\n 五行: string; // 五行\n 六獸: string; // 六兽\n 六獸死: string; // 六兽死\n 六獸害: string; // 六兽害\n 六親: string; // 六亲\n 孤: string; // 孤\n 虛: string; // 虚\n 關: string; // 关\n 籥: string; // 钥\n 將軍: string; // 将军\n}\n\n/**\n * 五兆排盘结果\n */\nexport interface WuZhaoPaiPanResult {\n 兆?: GongWeiInfo;\n 木鄉?: GongWeiInfo;\n 火鄉?: GongWeiInfo;\n 土鄉?: GongWeiInfo;\n 金鄉?: GongWeiInfo;\n 水鄉?: GongWeiInfo;\n 錯誤?: string;\n}\n\n/**\n * 节气旺相配置\n */\nfunction buildJieQiWangXiang(): Record<string, Record<string, string>> {\n const result: Record<string, Record<string, string>> = {};\n\n JIEQI_GROUPS.forEach((group, index) => {\n const rotated = rotateArray(BA_GUA as unknown as string[], index);\n const mapping: Record<string, string> = {};\n rotated.forEach((gua, i) => {\n mapping[gua] = WANG_XIANG[i];\n });\n\n group.forEach((jieqi) => {\n result[jieqi] = mapping;\n });\n });\n\n return result;\n}\n\nconst JIEQI_WANG_XIANG = buildJieQiWangXiang();\n\n/**\n * 四季关籥配置\n */\nconst SOLAR_TERMS_BY_SEASON: Array<{ terms: string[]; guan: string; yue: string }> = [\n { terms: ['立春', '雨水', '驚蟄', '春分', '清明', '穀雨'], guan: '丑', yue: '巳' },\n { terms: ['立夏', '小滿', '芒種', '夏至', '小暑', '大暑'], guan: '辰', yue: '申' },\n { terms: ['立秋', '處暑', '白露', '秋分', '寒露', '霜降'], guan: '未', yue: '亥' },\n { terms: ['立冬', '小雪', '大雪', '冬至', '小寒', '大寒'], guan: '戌', yue: '寅' },\n];\n\n/**\n * 根据节气获取关籥\n */\nfunction getGuanYue(jieqi: string): { 關: string; 籥: string } | null {\n for (const season of SOLAR_TERMS_BY_SEASON) {\n if (season.terms.includes(jieqi)) {\n return { 關: season.guan, 籥: season.yue };\n }\n }\n return null;\n}\n\n/**\n * 五兆随机分配排盘\n * @param num 起卦数字\n * @param jq 节气\n * @param cm 农历月\n * @param gz1 干支1(用于配六兽)\n * @param gz2 干支2(时辰干支,用于孤虚)\n * @param liurenData 六壬数据(地转天盘)\n * @returns 五兆排盘结果\n */\nexport function fiveZhaoPaiPan(\n num: number,\n jq: string,\n cm: string,\n gz1: string,\n gz2: string,\n liurenData?: Record<string, string>\n): WuZhaoPaiPanResult {\n const dayGan = gz1[0];\n\n // 验证日干\n if (!(dayGan in DAY_GAN_TO_BEAST)) {\n return { 錯誤: '日干不正確,請輸入:甲乙丙丁戊己庚辛壬癸' };\n }\n\n const base = 36;\n const result: WuZhaoPaiPanResult = {};\n\n // 确定六兽序列\n const beastStart = DAY_GAN_TO_BEAST[dayGan];\n const startIndex = SIX_BEASTS.indexOf(beastStart as any);\n const beastSeq = Array.from({ length: 6 }, (_, i) => SIX_BEASTS[(startIndex + i) % 6]);\n\n // 准备地转天盘(如果提供了六壬数据)\n const sky2earth = new BiDict<string, string>();\n if (liurenData) {\n Object.entries(liurenData).forEach(([key, value]) => {\n sky2earth.set(key, value);\n });\n }\n\n // 获取关籥\n const guanYue = getGuanYue(jq);\n let lock = '';\n let key = '';\n let general = '';\n\n if (guanYue && liurenData) {\n const guanZhi = sky2earth.getInverse(guanYue.關) || guanYue.關;\n const yueZhi = sky2earth.getInverse(guanYue.籥) || guanYue.籥;\n lock = ZHI_TO_GUA[guanZhi] || '';\n key = ZHI_TO_GUA[yueZhi] || '';\n\n const generalZhi = GENERAL_MAP[gz2[1]] || gz2[1];\n const generalMapped = sky2earth.getInverse(generalZhi) || generalZhi;\n general = ZHI_TO_GUA[generalMapped] || '';\n }\n\n // 获取孤虚\n const gz2Index = Math.floor(JIAZI.indexOf(gz2) / 10);\n const guxuConfig = GU_XU_CONFIG[gz2Index];\n const yinYang = YIN_YANG[gz2[0]];\n const gu = guxuConfig[yinYang].孤;\n const xu = guxuConfig[yinYang].虛;\n const guGua = ZHI_TO_GUA[gu] || '';\n const xuGua = ZHI_TO_GUA[xu] || '';\n\n // 宫位配置\n const positions: Array<[string, string]> = [\n ['巽宮', '兆'],\n ['震宮', '木鄉'],\n ['離宮', '火鄉'],\n ['中宮', '土鄉'],\n ['兌宮', '金鄉'],\n ['坎宮', '水鄉'],\n ];\n\n let remain = base;\n let myElement = '';\n\n for (let idx = 0; idx < positions.length; idx++) {\n const [gong, label] = positions[idx];\n const left = randomSplit(remain);\n let zhaoNum = left % 5;\n zhaoNum = zhaoNum === 0 ? 5 : zhaoNum;\n const zhaoElement = NUM_TO_ELEMENT[zhaoNum];\n const beast = beastSeq[idx];\n\n const gongGua = gong[0] === '中' ? '坤' : gong[0];\n\n // 计算六亲\n let relation = '';\n if (idx === 0) {\n myElement = zhaoElement;\n } else {\n const relationKey = myElement + zhaoElement;\n const wuxingRelation = WU_XING_RELATION[relationKey] || '';\n relation = LIU_QIN_MAP[wuxingRelation] || '';\n }\n\n // 获取旺相\n const wangxiang = JIEQI_WANG_XIANG[jq]?.[gongGua] || '';\n\n // 六兽死害\n const weakness = SIX_BEAST_WEAKNESS[beast];\n const sixBeastDeath = weakness && weakness[0][0] === gongGua ? '死' : '';\n const sixBeastHarm = weakness && weakness[1][0] === gongGua ? '害' : '';\n\n (result as any)[label] = {\n 宮位: label,\n 宮位1: gongGua,\n 旺相: wangxiang,\n 數字: zhaoNum,\n 五行: zhaoElement,\n 六獸: beast,\n 六獸死: sixBeastDeath,\n 六獸害: sixBeastHarm,\n 六親: relation,\n 孤: guGua === gongGua ? '孤' : '',\n 虛: xuGua === gongGua ? '虛' : '',\n 關: lock === gongGua ? '關' : '',\n 籥: key === gongGua ? '籥' : '',\n 將軍: general === gongGua ? '將軍' : '',\n };\n\n remain -= zhaoNum;\n if (remain <= 0) break;\n }\n\n return result;\n}\n\n/**\n * 干支起盘(根据年月日时分干支计算)\n * @param gzList 干支列表 [年, 月, 日, 时, 分]\n * @param num 额外数字\n * @param jq 节气\n * @param cm 农历月\n * @param liurenData 六壬数据\n * @returns 五兆排盘结果\n */\nexport function ganzhiPaiPan(\n gzList: GanZhiResult,\n num: number,\n jq: string,\n cm: string,\n liurenData?: Record<string, string>\n): WuZhaoPaiPanResult {\n const { year, month, day, hour, minute } = gzList;\n\n // 验证分钟干支的天干(Python版本使用mi[0])\n const minuteGan = minute[0];\n if (!(minuteGan in DAY_GAN_TO_BEAST)) {\n return { 錯誤: '日干不正確,請輸入:甲乙丙丁戊己庚辛壬癸' };\n }\n\n // 甲子序号映射\n const jz2num: Record<string, number> = {};\n JIAZI.forEach((gz, index) => {\n jz2num[gz] = index + 1;\n });\n\n // 确定六兽序列(使用分钟干支的天干)\n const beastStart = DAY_GAN_TO_BEAST[minuteGan];\n const startIndex = SIX_BEASTS.indexOf(beastStart as any);\n const beastSeq = Array.from({ length: 6 }, (_, i) => SIX_BEASTS[(startIndex + i) % 6]);\n\n // 准备地转天盘\n const sky2earth = new BiDict<string, string>();\n if (liurenData) {\n Object.entries(liurenData).forEach(([key, value]) => {\n sky2earth.set(key, value);\n });\n }\n\n // 获取关籥\n const guanYue = getGuanYue(jq);\n let lock = '';\n let key = '';\n let general = '';\n\n if (guanYue && liurenData) {\n const guanZhi = sky2earth.getInverse(guanYue.關) || guanYue.關;\n const yueZhi = sky2earth.getInverse(guanYue.籥) || guanYue.籥;\n lock = ZHI_TO_GUA[guanZhi] || '';\n key = ZHI_TO_GUA[yueZhi] || '';\n\n const generalZhi = GENERAL_MAP[minute[1]] || minute[1];\n const generalMapped = sky2earth.getInverse(generalZhi) || generalZhi;\n general = ZHI_TO_GUA[generalMapped] || '';\n }\n\n // 获取孤虚\n const minuteIndex = Math.floor(JIAZI.indexOf(minute) / 10);\n const guxuConfig = GU_XU_CONFIG[minuteIndex];\n const yinYang = YIN_YANG[minute[0]];\n const gu = guxuConfig[yinYang].孤;\n const xu = guxuConfig[yinYang].虛;\n const guGua = ZHI_TO_GUA[gu] || '';\n const xuGua = ZHI_TO_GUA[xu] || '';\n\n // 宫位配置(每个宫位使用不同的干支组合)\n const positions: Array<[string, string, string[]]> = [\n ['巽宮', '兆', [year, month, day, hour, minute]],\n ['震宮', '木鄉', [month, day, hour, minute]],\n ['離宮', '火鄉', [day, hour, minute]],\n ['中宮', '土鄉', [hour, minute]],\n ['兌宮', '金鄉', [minute]],\n ['坎宮', '水鄉', []],\n ];\n\n const result: WuZhaoPaiPanResult = {};\n let myElement = '';\n\n for (let idx = 0; idx < positions.length; idx++) {\n const [gong, label, parts] = positions[idx];\n\n // 计算总数\n let total = num;\n for (const part of parts) {\n total += jz2num[part] || (typeof part === 'number' ? part : 0);\n }\n\n let zhaoNum = total % 5;\n zhaoNum = zhaoNum === 0 ? 5 : zhaoNum;\n const zhaoElement = NUM_TO_ELEMENT[zhaoNum];\n const beast = beastSeq[idx];\n\n const gongGua = gong[0] === '中' ? '坤' : gong[0];\n\n // 计算六亲\n let relation = '';\n if (idx === 0) {\n myElement = zhaoElement;\n } else {\n const relationKey = myElement + zhaoElement;\n const wuxingRelation = WU_XING_RELATION[relationKey] || '';\n relation = LIU_QIN_MAP[wuxingRelation] || '';\n }\n\n // 获取旺相\n const wangxiang = JIEQI_WANG_XIANG[jq]?.[gongGua] || '';\n\n // 六兽死害\n const weakness = SIX_BEAST_WEAKNESS[beast];\n const sixBeastDeath = weakness && weakness[0][0] === gongGua ? '死' : '';\n const sixBeastHarm = weakness && weakness[1][0] === gongGua ? '害' : '';\n\n (result as any)[label] = {\n 宮位: label,\n 宮位1: gongGua,\n 旺相: wangxiang,\n 數字: zhaoNum,\n 五行: zhaoElement,\n 六獸: beast,\n 六獸死: sixBeastDeath,\n 六獸害: sixBeastHarm,\n 六親: relation,\n 關: lock === gongGua ? '關' : '',\n 籥: key === gongGua ? '籥' : '',\n 孤: guGua === gongGua ? '孤' : '',\n 虛: xuGua === gongGua ? '虛' : '',\n 將軍: general === gongGua ? '將軍' : '',\n };\n }\n\n return result;\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "kinwuzhao",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "五兆占卜排盘系统 - TypeScript实现",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"require": "./dist/index.cjs"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsup",
|
|
21
|
+
"dev": "tsup --watch",
|
|
22
|
+
"test": "vitest run",
|
|
23
|
+
"test:watch": "vitest",
|
|
24
|
+
"test:ui": "vitest --ui",
|
|
25
|
+
"test:coverage": "vitest run --coverage",
|
|
26
|
+
"type-check": "tsc --noEmit",
|
|
27
|
+
"lint": "eslint src --ext .ts",
|
|
28
|
+
"format": "prettier --write \"src/**/*.ts\"",
|
|
29
|
+
"prepublishOnly": "pnpm run build"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"五兆",
|
|
33
|
+
"kinwuzhao",
|
|
34
|
+
"占卜",
|
|
35
|
+
"divination",
|
|
36
|
+
"chinese-calendar",
|
|
37
|
+
"天干地支",
|
|
38
|
+
"节气",
|
|
39
|
+
"五行"
|
|
40
|
+
],
|
|
41
|
+
"author": "",
|
|
42
|
+
"license": "MIT",
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@types/node": "^22.10.5",
|
|
45
|
+
"@typescript-eslint/eslint-plugin": "^8.20.0",
|
|
46
|
+
"@typescript-eslint/parser": "^8.20.0",
|
|
47
|
+
"@vitest/ui": "^2.1.8",
|
|
48
|
+
"eslint": "^9.18.0",
|
|
49
|
+
"prettier": "^3.4.2",
|
|
50
|
+
"tsup": "^8.3.5",
|
|
51
|
+
"typescript": "^5.7.3",
|
|
52
|
+
"vitest": "^2.1.8"
|
|
53
|
+
},
|
|
54
|
+
"dependencies": {
|
|
55
|
+
"tyme4ts": "^1.4.1"
|
|
56
|
+
}
|
|
57
|
+
}
|