phecda-server 7.0.0-alpha.16 → 7.0.0-alpha.18
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 +10 -10
- package/assets/schema.json +1 -7
- package/bin/cli.mjs +16 -11
- package/dist/chunk-25LNE62T.mjs +325 -0
- package/dist/chunk-25LNE62T.mjs.map +1 -0
- package/dist/chunk-2AANNMKJ.js +339 -0
- package/dist/chunk-2AANNMKJ.js.map +1 -0
- package/dist/chunk-2AF4PNIP.mjs +548 -0
- package/dist/chunk-2AF4PNIP.mjs.map +1 -0
- package/dist/chunk-2ATTABKA.mjs +330 -0
- package/dist/chunk-2ATTABKA.mjs.map +1 -0
- package/dist/chunk-2TZOJIU5.mjs +548 -0
- package/dist/chunk-2TZOJIU5.mjs.map +1 -0
- package/dist/chunk-2WO3UGXN.js +551 -0
- package/dist/chunk-2WO3UGXN.js.map +1 -0
- package/dist/chunk-3GHLAAIB.js +330 -0
- package/dist/chunk-3GHLAAIB.js.map +1 -0
- package/dist/chunk-3OHQDPV2.js +548 -0
- package/dist/chunk-3OHQDPV2.js.map +1 -0
- package/dist/chunk-3P3Z5UC6.mjs +150 -0
- package/dist/chunk-3P3Z5UC6.mjs.map +1 -0
- package/dist/chunk-3XK2RTI2.mjs +563 -0
- package/dist/chunk-3XK2RTI2.mjs.map +1 -0
- package/dist/chunk-4G7TPEE2.mjs +330 -0
- package/dist/chunk-4G7TPEE2.mjs.map +1 -0
- package/dist/chunk-4GH4IFBL.mjs +339 -0
- package/dist/chunk-4GH4IFBL.mjs.map +1 -0
- package/dist/chunk-56Y5GBKV.mjs +336 -0
- package/dist/chunk-56Y5GBKV.mjs.map +1 -0
- package/dist/{chunk-MUI6MTUO.mjs → chunk-5DOJ5DLK.mjs} +2 -1
- package/dist/chunk-5DOJ5DLK.mjs.map +1 -0
- package/dist/chunk-5SMDKUTT.js +551 -0
- package/dist/chunk-5SMDKUTT.js.map +1 -0
- package/dist/chunk-672QEOST.js +549 -0
- package/dist/chunk-672QEOST.js.map +1 -0
- package/dist/{chunk-YCES6ABN.mjs → chunk-6JAHCTOT.mjs} +2 -1
- package/dist/chunk-6JAHCTOT.mjs.map +1 -0
- package/dist/chunk-6TVDK7LS.mjs +334 -0
- package/dist/chunk-6TVDK7LS.mjs.map +1 -0
- package/dist/chunk-6UFCTN4R.mjs +153 -0
- package/dist/chunk-6UFCTN4R.mjs.map +1 -0
- package/dist/chunk-6WL4Q3PG.js +546 -0
- package/dist/chunk-6WL4Q3PG.js.map +1 -0
- package/dist/chunk-77T6PXFR.js +330 -0
- package/dist/chunk-77T6PXFR.js.map +1 -0
- package/dist/chunk-7BE5DAYB.mjs +548 -0
- package/dist/chunk-7BE5DAYB.mjs.map +1 -0
- package/dist/{chunk-KCPBITYZ.js → chunk-7RF74WML.js} +25 -24
- package/dist/chunk-7RF74WML.js.map +1 -0
- package/dist/chunk-7SKWIPNP.js +230 -0
- package/dist/chunk-7SKWIPNP.js.map +1 -0
- package/dist/chunk-7VCG4CO6.js +551 -0
- package/dist/chunk-7VCG4CO6.js.map +1 -0
- package/dist/chunk-7X5SWO7F.js +230 -0
- package/dist/chunk-7X5SWO7F.js.map +1 -0
- package/dist/chunk-A2ZAEKXE.js +230 -0
- package/dist/chunk-A2ZAEKXE.js.map +1 -0
- package/dist/chunk-A7IQ3C2W.mjs +551 -0
- package/dist/chunk-A7IQ3C2W.mjs.map +1 -0
- package/dist/chunk-A7Z6WC2U.mjs +549 -0
- package/dist/chunk-A7Z6WC2U.mjs.map +1 -0
- package/dist/{chunk-VX4BZEL7.mjs → chunk-AH2GHJYG.mjs} +12 -8
- package/dist/chunk-AH2GHJYG.mjs.map +1 -0
- package/dist/chunk-AKRBZ4QH.js +327 -0
- package/dist/chunk-AKRBZ4QH.js.map +1 -0
- package/dist/chunk-AUF4H6MB.mjs +330 -0
- package/dist/chunk-AUF4H6MB.mjs.map +1 -0
- package/dist/chunk-B4LHVDDL.js +329 -0
- package/dist/chunk-B4LHVDDL.js.map +1 -0
- package/dist/chunk-BVI6MJ57.js +150 -0
- package/dist/chunk-BVI6MJ57.js.map +1 -0
- package/dist/chunk-BZMKWF3E.mjs +546 -0
- package/dist/chunk-BZMKWF3E.mjs.map +1 -0
- package/dist/chunk-BZMKZ733.mjs +154 -0
- package/dist/chunk-BZMKZ733.mjs.map +1 -0
- package/dist/chunk-C2MTV2HS.js +148 -0
- package/dist/chunk-C2MTV2HS.js.map +1 -0
- package/dist/chunk-CGHKI3FB.js +548 -0
- package/dist/chunk-CGHKI3FB.js.map +1 -0
- package/dist/chunk-CLQEY47X.js +154 -0
- package/dist/chunk-CLQEY47X.js.map +1 -0
- package/dist/chunk-DIDCPEI7.js +546 -0
- package/dist/chunk-DIDCPEI7.js.map +1 -0
- package/dist/chunk-DJCMOLNU.mjs +547 -0
- package/dist/chunk-DJCMOLNU.mjs.map +1 -0
- package/dist/chunk-DJKIF6CO.mjs +230 -0
- package/dist/chunk-DJKIF6CO.mjs.map +1 -0
- package/dist/chunk-DZXOLJ2U.mjs +546 -0
- package/dist/chunk-DZXOLJ2U.mjs.map +1 -0
- package/dist/chunk-EEZLSH37.js +230 -0
- package/dist/chunk-EEZLSH37.js.map +1 -0
- package/dist/chunk-EYNIZVQM.js +334 -0
- package/dist/chunk-EYNIZVQM.js.map +1 -0
- package/dist/chunk-FA4XQ5HS.mjs +547 -0
- package/dist/chunk-FA4XQ5HS.mjs.map +1 -0
- package/dist/chunk-FBN6O256.js +153 -0
- package/dist/chunk-FBN6O256.js.map +1 -0
- package/dist/chunk-FJYLWOEI.js +325 -0
- package/dist/chunk-FJYLWOEI.js.map +1 -0
- package/dist/chunk-FV5CWX5Y.js +563 -0
- package/dist/chunk-FV5CWX5Y.js.map +1 -0
- package/dist/chunk-FZIJNZOP.js +546 -0
- package/dist/chunk-FZIJNZOP.js.map +1 -0
- package/dist/chunk-G377USSH.js +230 -0
- package/dist/chunk-G377USSH.js.map +1 -0
- package/dist/chunk-G3K6FCN4.js +549 -0
- package/dist/chunk-G3K6FCN4.js.map +1 -0
- package/dist/chunk-GA3YDUKH.js +150 -0
- package/dist/chunk-GA3YDUKH.js.map +1 -0
- package/dist/chunk-GMYV3IKV.mjs +548 -0
- package/dist/chunk-GMYV3IKV.mjs.map +1 -0
- package/dist/{chunk-IJFIY6QN.js → chunk-H7OCHDZT.js} +55 -63
- package/dist/chunk-H7OCHDZT.js.map +1 -0
- package/dist/chunk-HBITJSAJ.js +334 -0
- package/dist/chunk-HBITJSAJ.js.map +1 -0
- package/dist/chunk-HGCBKGAE.js +563 -0
- package/dist/chunk-HGCBKGAE.js.map +1 -0
- package/dist/chunk-HGQUWR5Y.js +548 -0
- package/dist/chunk-HGQUWR5Y.js.map +1 -0
- package/dist/chunk-HNHYJHTR.mjs +150 -0
- package/dist/chunk-HNHYJHTR.mjs.map +1 -0
- package/dist/chunk-HOMMTTY3.js +549 -0
- package/dist/chunk-HOMMTTY3.js.map +1 -0
- package/dist/chunk-HPCKU764.js +230 -0
- package/dist/chunk-HPCKU764.js.map +1 -0
- package/dist/chunk-HWZUI3S7.mjs +154 -0
- package/dist/chunk-HWZUI3S7.mjs.map +1 -0
- package/dist/chunk-HXAYHDBD.mjs +324 -0
- package/dist/chunk-HXAYHDBD.mjs.map +1 -0
- package/dist/chunk-I7Q27MJV.mjs +230 -0
- package/dist/chunk-I7Q27MJV.mjs.map +1 -0
- package/dist/{chunk-6OQ2SB5W.js → chunk-IIAJBTJE.js} +19 -22
- package/dist/chunk-IIAJBTJE.js.map +1 -0
- package/dist/chunk-IPEKAVER.js +336 -0
- package/dist/chunk-IPEKAVER.js.map +1 -0
- package/dist/chunk-IUBKOGEX.js +337 -0
- package/dist/chunk-IUBKOGEX.js.map +1 -0
- package/dist/chunk-JF5Q4N2N.mjs +330 -0
- package/dist/chunk-JF5Q4N2N.mjs.map +1 -0
- package/dist/chunk-JL3U632E.mjs +329 -0
- package/dist/chunk-JL3U632E.mjs.map +1 -0
- package/dist/chunk-JZW6S7UZ.mjs +334 -0
- package/dist/chunk-JZW6S7UZ.mjs.map +1 -0
- package/dist/chunk-K7BBDAQV.js +330 -0
- package/dist/chunk-K7BBDAQV.js.map +1 -0
- package/dist/chunk-KATTCXH7.mjs +153 -0
- package/dist/chunk-KATTCXH7.mjs.map +1 -0
- package/dist/chunk-KHHTD6W2.js +325 -0
- package/dist/chunk-KHHTD6W2.js.map +1 -0
- package/dist/chunk-KJTJTAM5.js +547 -0
- package/dist/chunk-KJTJTAM5.js.map +1 -0
- package/dist/chunk-KUGU3UGO.js +334 -0
- package/dist/chunk-KUGU3UGO.js.map +1 -0
- package/dist/chunk-LBH4RXQQ.mjs +534 -0
- package/dist/chunk-LBH4RXQQ.mjs.map +1 -0
- package/dist/chunk-LMCXPBEL.js +230 -0
- package/dist/chunk-LMCXPBEL.js.map +1 -0
- package/dist/chunk-LPCFXBIN.mjs +554 -0
- package/dist/chunk-LPCFXBIN.mjs.map +1 -0
- package/dist/chunk-LWKMKMGP.mjs +551 -0
- package/dist/chunk-LWKMKMGP.mjs.map +1 -0
- package/dist/chunk-M2NBQIY4.js +230 -0
- package/dist/chunk-M2NBQIY4.js.map +1 -0
- package/dist/chunk-MCVUJNTJ.mjs +546 -0
- package/dist/chunk-MCVUJNTJ.mjs.map +1 -0
- package/dist/{chunk-NQ55PA2X.mjs → chunk-MDPW6WGF.mjs} +1 -0
- package/dist/chunk-MDPW6WGF.mjs.map +1 -0
- package/dist/chunk-O23LYYQO.mjs +549 -0
- package/dist/chunk-O23LYYQO.mjs.map +1 -0
- package/dist/chunk-OGNSLEM7.js +562 -0
- package/dist/chunk-OGNSLEM7.js.map +1 -0
- package/dist/chunk-OSCTXAED.js +154 -0
- package/dist/chunk-OSCTXAED.js.map +1 -0
- package/dist/chunk-P5DXLNAV.mjs +334 -0
- package/dist/chunk-P5DXLNAV.mjs.map +1 -0
- package/dist/chunk-PDKES3CS.js +334 -0
- package/dist/chunk-PDKES3CS.js.map +1 -0
- package/dist/chunk-PLD4EI4W.mjs +334 -0
- package/dist/chunk-PLD4EI4W.mjs.map +1 -0
- package/dist/chunk-PQXBA7RP.mjs +325 -0
- package/dist/chunk-PQXBA7RP.mjs.map +1 -0
- package/dist/chunk-PUXTWHMP.mjs +337 -0
- package/dist/chunk-PUXTWHMP.mjs.map +1 -0
- package/dist/chunk-PWYWGN3L.mjs +562 -0
- package/dist/chunk-PWYWGN3L.mjs.map +1 -0
- package/dist/chunk-PXWSDTIP.mjs +551 -0
- package/dist/chunk-PXWSDTIP.mjs.map +1 -0
- package/dist/chunk-Q64YUA6Q.js +153 -0
- package/dist/chunk-Q64YUA6Q.js.map +1 -0
- package/dist/chunk-Q7FATBG4.mjs +327 -0
- package/dist/chunk-Q7FATBG4.mjs.map +1 -0
- package/dist/chunk-QLR7YJ7K.js +548 -0
- package/dist/chunk-QLR7YJ7K.js.map +1 -0
- package/dist/chunk-QNTSTOHM.mjs +230 -0
- package/dist/chunk-QNTSTOHM.mjs.map +1 -0
- package/dist/chunk-QP2HPQND.js +548 -0
- package/dist/chunk-QP2HPQND.js.map +1 -0
- package/dist/{chunk-4LLLQOMF.js → chunk-RLFCI3RG.js} +1 -0
- package/dist/chunk-RLFCI3RG.js.map +1 -0
- package/dist/chunk-RW5HHB6Z.mjs +230 -0
- package/dist/chunk-RW5HHB6Z.mjs.map +1 -0
- package/dist/chunk-RXBJH74V.js +334 -0
- package/dist/chunk-RXBJH74V.js.map +1 -0
- package/dist/chunk-S2B3Y2WJ.mjs +230 -0
- package/dist/chunk-S2B3Y2WJ.mjs.map +1 -0
- package/dist/chunk-SCA7SXI6.mjs +334 -0
- package/dist/chunk-SCA7SXI6.mjs.map +1 -0
- package/dist/chunk-SE2XQSPO.js +549 -0
- package/dist/chunk-SE2XQSPO.js.map +1 -0
- package/dist/chunk-SP4ASHBX.mjs +334 -0
- package/dist/chunk-SP4ASHBX.mjs.map +1 -0
- package/dist/chunk-TFK3ICC2.mjs +548 -0
- package/dist/chunk-TFK3ICC2.mjs.map +1 -0
- package/dist/chunk-TQR7KDFP.mjs +150 -0
- package/dist/chunk-TQR7KDFP.mjs.map +1 -0
- package/dist/chunk-TRJVULA2.js +330 -0
- package/dist/chunk-TRJVULA2.js.map +1 -0
- package/dist/chunk-TU4XB7CZ.mjs +230 -0
- package/dist/chunk-TU4XB7CZ.mjs.map +1 -0
- package/dist/chunk-U7EKEUCU.mjs +549 -0
- package/dist/chunk-U7EKEUCU.mjs.map +1 -0
- package/dist/chunk-UBQ4FXWS.js +554 -0
- package/dist/chunk-UBQ4FXWS.js.map +1 -0
- package/dist/chunk-UFQBSH4U.mjs +230 -0
- package/dist/chunk-UFQBSH4U.mjs.map +1 -0
- package/dist/chunk-UUHB6RHI.mjs +230 -0
- package/dist/chunk-UUHB6RHI.mjs.map +1 -0
- package/dist/chunk-UUKYR5HO.js +336 -0
- package/dist/chunk-UUKYR5HO.js.map +1 -0
- package/dist/chunk-UZTDXFFC.js +547 -0
- package/dist/chunk-UZTDXFFC.js.map +1 -0
- package/dist/chunk-V6AD4Y74.js +550 -0
- package/dist/chunk-V6AD4Y74.js.map +1 -0
- package/dist/chunk-VBBZA6PA.mjs +148 -0
- package/dist/chunk-VBBZA6PA.mjs.map +1 -0
- package/dist/chunk-VM4RFF4O.js +339 -0
- package/dist/chunk-VM4RFF4O.js.map +1 -0
- package/dist/chunk-W4AIKOBG.mjs +330 -0
- package/dist/chunk-W4AIKOBG.mjs.map +1 -0
- package/dist/chunk-WCLQYWET.mjs +328 -0
- package/dist/chunk-WCLQYWET.mjs.map +1 -0
- package/dist/chunk-WRN4ZVJQ.js +334 -0
- package/dist/chunk-WRN4ZVJQ.js.map +1 -0
- package/dist/chunk-X2H2PYE4.js +328 -0
- package/dist/chunk-X2H2PYE4.js.map +1 -0
- package/dist/chunk-X4YZRAFM.mjs +563 -0
- package/dist/chunk-X4YZRAFM.mjs.map +1 -0
- package/dist/chunk-X6M4LKQR.mjs +550 -0
- package/dist/chunk-X6M4LKQR.mjs.map +1 -0
- package/dist/chunk-X6WMGSPO.js +150 -0
- package/dist/chunk-X6WMGSPO.js.map +1 -0
- package/dist/chunk-XAI6JXXC.mjs +339 -0
- package/dist/chunk-XAI6JXXC.mjs.map +1 -0
- package/dist/chunk-XSABKCJD.js +546 -0
- package/dist/chunk-XSABKCJD.js.map +1 -0
- package/dist/chunk-XW3UEXLV.mjs +336 -0
- package/dist/chunk-XW3UEXLV.mjs.map +1 -0
- package/dist/chunk-YQYBLTSZ.js +330 -0
- package/dist/chunk-YQYBLTSZ.js.map +1 -0
- package/dist/chunk-YSRKB2RQ.js +334 -0
- package/dist/chunk-YSRKB2RQ.js.map +1 -0
- package/dist/chunk-YT4J7LJM.mjs +549 -0
- package/dist/chunk-YT4J7LJM.mjs.map +1 -0
- package/dist/chunk-YXXWVL32.mjs +330 -0
- package/dist/chunk-YXXWVL32.mjs.map +1 -0
- package/dist/chunk-Z4JSVZR3.js +324 -0
- package/dist/chunk-Z4JSVZR3.js.map +1 -0
- package/dist/{core-DiFYc0bC.d.mts → core--qu3pWkq.d.ts} +1 -1
- package/dist/core-BPUiAJHn.d.ts +49 -0
- package/dist/core-Bi3rTHpi.d.ts +49 -0
- package/dist/core-Bjw_HRhA.d.mts +49 -0
- package/dist/core-Brb7fvGi.d.ts +49 -0
- package/dist/core-C7FYVQ3G.d.ts +49 -0
- package/dist/core-C8nKzrYj.d.ts +49 -0
- package/dist/core-CTa38Qb8.d.mts +49 -0
- package/dist/core-C_vzHvIM.d.mts +49 -0
- package/dist/core-CjJyvCUL.d.mts +49 -0
- package/dist/core-CxB9E1Mb.d.mts +49 -0
- package/dist/core-D5cwjnXb.d.ts +49 -0
- package/dist/core-D9ivz8Je.d.mts +49 -0
- package/dist/{core-KvmgTDU0.d.ts → core-DEjpz7U-.d.ts} +1 -1
- package/dist/core-DFoppC8I.d.mts +49 -0
- package/dist/core-DU0-ELVr.d.ts +49 -0
- package/dist/core-Dk6Y21IK.d.mts +49 -0
- package/dist/core-ppueS5ax.d.mts +49 -0
- package/dist/core-scwP4qK3.d.ts +49 -0
- package/dist/core-vtBLhyjz.d.mts +49 -0
- package/dist/helper.d.mts +1 -1
- package/dist/helper.d.ts +1 -1
- package/dist/helper.js +4 -3
- package/dist/helper.js.map +1 -0
- package/dist/helper.mjs +3 -2
- package/dist/helper.mjs.map +1 -0
- package/dist/http/elysia/index.d.mts +3 -3
- package/dist/http/elysia/index.d.ts +3 -3
- package/dist/http/elysia/index.js +41 -40
- package/dist/http/elysia/index.js.map +1 -0
- package/dist/http/elysia/index.mjs +4 -3
- package/dist/http/elysia/index.mjs.map +1 -0
- package/dist/http/express/index.d.mts +3 -3
- package/dist/http/express/index.d.ts +3 -3
- package/dist/http/express/index.js +38 -37
- package/dist/http/express/index.js.map +1 -0
- package/dist/http/express/index.mjs +3 -2
- package/dist/http/express/index.mjs.map +1 -0
- package/dist/http/fastify/index.d.mts +3 -3
- package/dist/http/fastify/index.d.ts +3 -3
- package/dist/http/fastify/index.js +39 -38
- package/dist/http/fastify/index.js.map +1 -0
- package/dist/http/fastify/index.mjs +4 -3
- package/dist/http/fastify/index.mjs.map +1 -0
- package/dist/http/h3/index.d.mts +3 -3
- package/dist/http/h3/index.d.ts +3 -3
- package/dist/http/h3/index.js +39 -38
- package/dist/http/h3/index.js.map +1 -0
- package/dist/http/h3/index.mjs +3 -2
- package/dist/http/h3/index.mjs.map +1 -0
- package/dist/http/hono/index.d.mts +3 -3
- package/dist/http/hono/index.d.ts +3 -3
- package/dist/http/hono/index.js +35 -34
- package/dist/http/hono/index.js.map +1 -0
- package/dist/http/hono/index.mjs +3 -2
- package/dist/http/hono/index.mjs.map +1 -0
- package/dist/http/hyper-express/index.d.mts +3 -3
- package/dist/http/hyper-express/index.d.ts +3 -3
- package/dist/http/hyper-express/index.js +36 -35
- package/dist/http/hyper-express/index.js.map +1 -0
- package/dist/http/hyper-express/index.mjs +3 -2
- package/dist/http/hyper-express/index.mjs.map +1 -0
- package/dist/http/koa/index.d.mts +3 -3
- package/dist/http/koa/index.d.ts +3 -3
- package/dist/http/koa/index.js +38 -37
- package/dist/http/koa/index.js.map +1 -0
- package/dist/http/koa/index.mjs +3 -2
- package/dist/http/koa/index.mjs.map +1 -0
- package/dist/index.d.mts +8 -9
- package/dist/index.d.ts +8 -9
- package/dist/index.js +41 -40
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +5 -4
- package/dist/index.mjs.map +1 -0
- package/dist/meta-vC_LItVL.d.mts +90 -0
- package/dist/meta-vC_LItVL.d.ts +90 -0
- package/dist/rpc/bullmq/index.d.mts +3 -3
- package/dist/rpc/bullmq/index.d.ts +3 -3
- package/dist/rpc/bullmq/index.js +12 -11
- package/dist/rpc/bullmq/index.js.map +1 -0
- package/dist/rpc/bullmq/index.mjs +3 -2
- package/dist/rpc/bullmq/index.mjs.map +1 -0
- package/dist/rpc/electron/index.d.mts +3 -3
- package/dist/rpc/electron/index.d.ts +3 -3
- package/dist/rpc/electron/index.js +9 -8
- package/dist/rpc/electron/index.js.map +1 -0
- package/dist/rpc/electron/index.mjs +3 -2
- package/dist/rpc/electron/index.mjs.map +1 -0
- package/dist/rpc/kafka/index.d.mts +3 -3
- package/dist/rpc/kafka/index.d.ts +3 -3
- package/dist/rpc/kafka/index.js +11 -10
- package/dist/rpc/kafka/index.js.map +1 -0
- package/dist/rpc/kafka/index.mjs +3 -2
- package/dist/rpc/kafka/index.mjs.map +1 -0
- package/dist/rpc/nats/index.d.mts +3 -3
- package/dist/rpc/nats/index.d.ts +3 -3
- package/dist/rpc/nats/index.js +12 -11
- package/dist/rpc/nats/index.js.map +1 -0
- package/dist/rpc/nats/index.mjs +3 -2
- package/dist/rpc/nats/index.mjs.map +1 -0
- package/dist/rpc/rabbitmq/index.d.mts +3 -3
- package/dist/rpc/rabbitmq/index.d.ts +3 -3
- package/dist/rpc/rabbitmq/index.js +13 -12
- package/dist/rpc/rabbitmq/index.js.map +1 -0
- package/dist/rpc/rabbitmq/index.mjs +3 -2
- package/dist/rpc/rabbitmq/index.mjs.map +1 -0
- package/dist/rpc/redis/index.d.mts +3 -3
- package/dist/rpc/redis/index.d.ts +3 -3
- package/dist/rpc/redis/index.js +11 -10
- package/dist/rpc/redis/index.js.map +1 -0
- package/dist/rpc/redis/index.mjs +3 -2
- package/dist/rpc/redis/index.mjs.map +1 -0
- package/dist/rpc/web-ext/index.d.mts +2 -0
- package/dist/rpc/web-ext/index.d.ts +2 -0
- package/dist/rpc/web-ext/index.js +1 -0
- package/dist/rpc/web-ext/index.js.map +1 -0
- package/dist/rpc/web-ext/index.mjs +1 -0
- package/dist/rpc/web-ext/index.mjs.map +1 -0
- package/dist/rpc/ws/index.d.mts +3 -3
- package/dist/rpc/ws/index.d.ts +3 -3
- package/dist/rpc/ws/index.js +8 -7
- package/dist/rpc/ws/index.js.map +1 -0
- package/dist/rpc/ws/index.mjs +3 -2
- package/dist/rpc/ws/index.mjs.map +1 -0
- package/dist/test.d.mts +3 -3
- package/dist/test.d.ts +3 -3
- package/dist/test.js +7 -6
- package/dist/test.js.map +1 -0
- package/dist/test.mjs +3 -2
- package/dist/test.mjs.map +1 -0
- package/dist/{types-8r301ZfZ.d.mts → types--FU0xyv7.d.mts} +1 -1
- package/dist/types-7nUdSf8z.d.mts +19 -0
- package/dist/{types-CVSbC6nz.d.mts → types-BE2z6gOo.d.ts} +1 -1
- package/dist/types-BJiHDyTL.d.mts +19 -0
- package/dist/types-BRCJyQsh.d.mts +90 -0
- package/dist/types-BRCJyQsh.d.ts +90 -0
- package/dist/types-BV7YmpJE.d.ts +14 -0
- package/dist/{types-Bz3JN2S1.d.ts → types-BVswigDc.d.ts} +1 -1
- package/dist/types-B_RVNTOF.d.mts +91 -0
- package/dist/types-B_RVNTOF.d.ts +91 -0
- package/dist/types-BtM-DxqM.d.mts +48 -0
- package/dist/types-C-nIlDCV.d.mts +48 -0
- package/dist/types-C-wRAcbr.d.ts +48 -0
- package/dist/types-C2KvkrD6.d.mts +48 -0
- package/dist/{meta-DlHaMicF.d.ts → types-C6hpZpnS.d.mts} +43 -43
- package/dist/{meta-DlHaMicF.d.mts → types-C6hpZpnS.d.ts} +43 -43
- package/dist/types-CFX2Ln0s.d.mts +48 -0
- package/dist/types-CR_EmIw8.d.mts +48 -0
- package/dist/types-CbRiXnzh.d.ts +19 -0
- package/dist/types-Ci9JeYtv.d.ts +48 -0
- package/dist/types-CiL0rHL3.d.ts +19 -0
- package/dist/types-CuBnfbgb.d.mts +14 -0
- package/dist/types-CvPG7k2Z.d.mts +14 -0
- package/dist/types-D9vxgkS4.d.mts +48 -0
- package/dist/types-DHYok84r.d.mts +14 -0
- package/dist/types-DI40e_s_.d.mts +19 -0
- package/dist/{types-DJuqpiI8.d.ts → types-DTOe0r2g.d.ts} +1 -1
- package/dist/types-DWVRUI6s.d.mts +91 -0
- package/dist/types-DWVRUI6s.d.ts +91 -0
- package/dist/types-DX98FM-A.d.ts +19 -0
- package/dist/types-DdJI1b5J.d.mts +19 -0
- package/dist/types-DfNl_AGj.d.ts +48 -0
- package/dist/types-DfNtpP-N.d.mts +111 -0
- package/dist/types-DfNtpP-N.d.ts +111 -0
- package/dist/types-DfVkUOZW.d.ts +48 -0
- package/dist/types-DfsKsjLM.d.mts +111 -0
- package/dist/types-DfsKsjLM.d.ts +111 -0
- package/dist/types-Didk5ZxZ.d.ts +48 -0
- package/dist/types-DsvVhEYR.d.ts +48 -0
- package/dist/types-Dt4WHNIG.d.mts +48 -0
- package/dist/types-DtG1fW8q.d.mts +48 -0
- package/dist/types-DwkH_ckj.d.mts +107 -0
- package/dist/types-DwkH_ckj.d.ts +107 -0
- package/dist/types-GLyEDoZh.d.ts +48 -0
- package/dist/types-HFldWW-W.d.mts +48 -0
- package/dist/types-LfX4z-X2.d.mts +48 -0
- package/dist/types-Ru_9udNp.d.ts +48 -0
- package/dist/types-gz344phy.d.mts +14 -0
- package/dist/types-hTbg1FQR.d.ts +19 -0
- package/dist/types-laEKHNwU.d.ts +14 -0
- package/dist/types-mcWWx2nR.d.mts +108 -0
- package/dist/types-mcWWx2nR.d.ts +108 -0
- package/dist/types-nA5JQl76.d.ts +14 -0
- package/dist/types-ojuQvq5-.d.ts +19 -0
- package/dist/types-pCI7fyyv.d.mts +108 -0
- package/dist/types-pCI7fyyv.d.ts +108 -0
- package/dist/types-vyUwFCHY.d.mts +19 -0
- package/dist/types-xovMFthM.d.ts +14 -0
- package/package.json +7 -2
- package/register/index.mjs +2 -2
- package/register/loader.mjs +33 -27
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkCLQEY47Xjs = require('./chunk-CLQEY47X.js');
|
|
8
|
+
|
|
9
|
+
// src/meta.ts
|
|
10
|
+
var Meta = class {
|
|
11
|
+
static {
|
|
12
|
+
_chunkCLQEY47Xjs.__name.call(void 0, this, "Meta");
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
constructor(data, paramsType) {
|
|
17
|
+
this.data = data;
|
|
18
|
+
this.paramsType = paramsType;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// src/core.ts
|
|
23
|
+
require('reflect-metadata');
|
|
24
|
+
var _events = require('events'); var _events2 = _interopRequireDefault(_events);
|
|
25
|
+
var _phecdacore = require('phecda-core');
|
|
26
|
+
var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);
|
|
27
|
+
var debug = _debug2.default.call(void 0, "phecda-server(Factory)");
|
|
28
|
+
var emitter = new (0, _events2.default)();
|
|
29
|
+
function defaultServerInject() {
|
|
30
|
+
if (!_phecdacore.getInject.call(void 0, "watcher")) {
|
|
31
|
+
_phecdacore.setInject.call(void 0, "watcher", ({ eventName, instance, property, options }) => {
|
|
32
|
+
const fn = typeof instance[property] === "function" ? instance[property].bind(instance) : (v) => instance[property] = v;
|
|
33
|
+
if (_optionalChain([options, 'optionalAccess', _ => _.once])) emitter.once(eventName, fn);
|
|
34
|
+
else emitter.on(eventName, fn);
|
|
35
|
+
return () => {
|
|
36
|
+
emitter.off(eventName, fn);
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
_chunkCLQEY47Xjs.__name.call(void 0, defaultServerInject, "defaultServerInject");
|
|
42
|
+
var phecdaNamespace = /* @__PURE__ */ new Map();
|
|
43
|
+
var ServerPhecda = (_class = class {
|
|
44
|
+
static {
|
|
45
|
+
_chunkCLQEY47Xjs.__name.call(void 0, this, "ServerPhecda");
|
|
46
|
+
}
|
|
47
|
+
__init() {this.moduleMap = /* @__PURE__ */ new Map()}
|
|
48
|
+
__init2() {this.meta = []}
|
|
49
|
+
__init3() {this.modelMap = /* @__PURE__ */ new WeakMap()}
|
|
50
|
+
__init4() {this.modelSet = /* @__PURE__ */ new WeakSet()}
|
|
51
|
+
__init5() {this.dependenceGraph = /* @__PURE__ */ new Map()}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
constructor(options) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);_class.prototype.__init6.call(this);
|
|
56
|
+
defaultServerInject();
|
|
57
|
+
const { namespace = "default", parseModule = /* @__PURE__ */ _chunkCLQEY47Xjs.__name.call(void 0, (module) => module, "parseModule"), parseMeta = /* @__PURE__ */ _chunkCLQEY47Xjs.__name.call(void 0, (meta) => meta, "parseMeta"), generators = [] } = options;
|
|
58
|
+
phecdaNamespace.set(namespace, this);
|
|
59
|
+
this.parseMeta = parseMeta;
|
|
60
|
+
this.parseModule = parseModule;
|
|
61
|
+
this.generators = generators;
|
|
62
|
+
}
|
|
63
|
+
async start(models) {
|
|
64
|
+
for (const model of models) await this.buildDepModule(model);
|
|
65
|
+
this.hmr();
|
|
66
|
+
this.generateCode().then(() => {
|
|
67
|
+
if (_chunkCLQEY47Xjs.IS_ONLY_GENERATE) {
|
|
68
|
+
_chunkCLQEY47Xjs.log.call(void 0, "Only generate code");
|
|
69
|
+
process.exit(_chunkCLQEY47Xjs.PS_EXIT_CODE.EXIT);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
__init6() {this.generateCode = /* @__PURE__ */ _chunkCLQEY47Xjs.__name.call(void 0, async () => {
|
|
74
|
+
return Promise.all(this.generators.map((generator) => {
|
|
75
|
+
debug(`generate "${generator.name}" code to ${generator.path}`);
|
|
76
|
+
return generator.output(this.meta);
|
|
77
|
+
}));
|
|
78
|
+
}, "generateCode")}
|
|
79
|
+
hmr() {
|
|
80
|
+
_chunkCLQEY47Xjs.HMR.call(void 0, async (oldModels, newModels) => {
|
|
81
|
+
debug("reload models ");
|
|
82
|
+
await this.replace(oldModels, newModels);
|
|
83
|
+
this.generateCode();
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
// async add(Model: Construct) {
|
|
87
|
+
// const tag = getTag(Model)
|
|
88
|
+
// const oldInstance = await this.del(tag)
|
|
89
|
+
// const { module: newModule } = await this.buildDepModule(Model)
|
|
90
|
+
// if (oldInstance && this.dependenceGraph.has(tag)) {
|
|
91
|
+
// debug(`replace module "${String(tag)}"`);
|
|
92
|
+
// [...this.dependenceGraph.get(tag)!].forEach((tag) => {
|
|
93
|
+
// const module = this.moduleMap.get(tag)
|
|
94
|
+
// for (const key in module) {
|
|
95
|
+
// if (module[key] === oldInstance)
|
|
96
|
+
// module[key] = newModule
|
|
97
|
+
// }
|
|
98
|
+
// })
|
|
99
|
+
// }
|
|
100
|
+
// }
|
|
101
|
+
// async del(modelOrTag: Construct | PropertyKey) {
|
|
102
|
+
// const tag = typeof modelOrTag === 'function' ? getTag(modelOrTag) : modelOrTag
|
|
103
|
+
// if (!this.moduleMap.has(tag))
|
|
104
|
+
// return
|
|
105
|
+
// const module = this.moduleMap.get(tag)
|
|
106
|
+
// debug(`unmount module "${String(tag)}"`)
|
|
107
|
+
// await invokeUnmount(module)
|
|
108
|
+
// debug(`del module "${String(tag)}"`)
|
|
109
|
+
// this.moduleMap.delete(tag)
|
|
110
|
+
// this.modelMap.delete(module)
|
|
111
|
+
// for (let i = this.meta.length - 1; i >= 0; i--) {
|
|
112
|
+
// if (this.meta[i].data.tag === tag)
|
|
113
|
+
// this.meta.splice(i, 1)
|
|
114
|
+
// }
|
|
115
|
+
// return module
|
|
116
|
+
// }
|
|
117
|
+
async destroy() {
|
|
118
|
+
debug("destroy all");
|
|
119
|
+
this.replace(Object.values(this.modelMap), []);
|
|
120
|
+
}
|
|
121
|
+
createProxyModule(tag) {
|
|
122
|
+
const that = this;
|
|
123
|
+
return new Proxy({}, {
|
|
124
|
+
get(_target, prop) {
|
|
125
|
+
const module = that.moduleMap.get(tag);
|
|
126
|
+
return Reflect.get(module, prop, module);
|
|
127
|
+
},
|
|
128
|
+
set(_target, prop, newValue) {
|
|
129
|
+
const module = that.moduleMap.get(tag);
|
|
130
|
+
return Reflect.set(module, prop, newValue, module);
|
|
131
|
+
},
|
|
132
|
+
has(_target, prop) {
|
|
133
|
+
return Reflect.has(that.moduleMap.get(tag), prop);
|
|
134
|
+
},
|
|
135
|
+
ownKeys() {
|
|
136
|
+
return Reflect.ownKeys(that.moduleMap.get(tag));
|
|
137
|
+
},
|
|
138
|
+
getPrototypeOf() {
|
|
139
|
+
return Reflect.getPrototypeOf(that.moduleMap.get(tag));
|
|
140
|
+
},
|
|
141
|
+
getOwnPropertyDescriptor(_target, prop) {
|
|
142
|
+
return Reflect.getOwnPropertyDescriptor(that.moduleMap.get(tag), prop);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
async buildDepModule(Model) {
|
|
147
|
+
const paramtypes = getParamTypes(Model);
|
|
148
|
+
let module;
|
|
149
|
+
const tag = _phecdacore.getTag.call(void 0, Model);
|
|
150
|
+
if (this.moduleMap.has(tag)) {
|
|
151
|
+
module = this.moduleMap.get(tag);
|
|
152
|
+
if (!module) {
|
|
153
|
+
_chunkCLQEY47Xjs.log.call(void 0, `Exist Circular-Dependency or Multiple modules with the same tag [${String(tag)}]`, "warn");
|
|
154
|
+
return {
|
|
155
|
+
module: this.createProxyModule(tag),
|
|
156
|
+
tag
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
if (this.modelMap.get(module) !== Model && !this.modelSet.has(Model)) {
|
|
160
|
+
this.modelSet.add(Model);
|
|
161
|
+
if (module instanceof Model) _chunkCLQEY47Xjs.log.call(void 0, `Module taged ${String(tag)} has been overridden`);
|
|
162
|
+
else _chunkCLQEY47Xjs.log.call(void 0, `Synonym module: Module taged "${String(tag)}" has been loaded before, so phecda-server won't load Module "${Model.name}"`, "warn");
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
module,
|
|
166
|
+
tag
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
this.moduleMap.set(tag, void 0);
|
|
170
|
+
debug(`instantiate module "${String(tag)}"`);
|
|
171
|
+
if (paramtypes) {
|
|
172
|
+
const paramtypesInstances = [];
|
|
173
|
+
for (const i in paramtypes) {
|
|
174
|
+
const { module: sub, tag: subTag } = await this.buildDepModule(paramtypes[i]);
|
|
175
|
+
paramtypesInstances[i] = sub;
|
|
176
|
+
if (!this.dependenceGraph.has(subTag)) this.dependenceGraph.set(subTag, /* @__PURE__ */ new Set());
|
|
177
|
+
this.dependenceGraph.get(subTag).add(tag);
|
|
178
|
+
}
|
|
179
|
+
module = this.parseModule(new Model(...paramtypesInstances));
|
|
180
|
+
} else {
|
|
181
|
+
module = this.parseModule(new Model());
|
|
182
|
+
}
|
|
183
|
+
this.meta.push(...getMetaFromInstance(module, tag, Model.name).map(this.parseMeta).filter((item) => !!item));
|
|
184
|
+
debug(`init module "${String(tag)}"`);
|
|
185
|
+
if (!_chunkCLQEY47Xjs.IS_ONLY_GENERATE) await _phecdacore.invokeInit.call(void 0, module);
|
|
186
|
+
debug(`add module "${String(tag)}"`);
|
|
187
|
+
this.moduleMap.set(tag, module);
|
|
188
|
+
this.modelMap.set(module, Model);
|
|
189
|
+
return {
|
|
190
|
+
module,
|
|
191
|
+
tag
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
async replace(oldModels, newModels) {
|
|
195
|
+
const oldModules = (await Promise.all(oldModels.map(async (model) => {
|
|
196
|
+
const tag = _phecdacore.getTag.call(void 0, model);
|
|
197
|
+
if (!this.has(tag)) return;
|
|
198
|
+
const module = this.moduleMap.get(tag);
|
|
199
|
+
debug(`unmount module "${String(tag)}"`);
|
|
200
|
+
await _phecdacore.invokeUnmount.call(void 0, module);
|
|
201
|
+
debug(`del module "${String(tag)}"`);
|
|
202
|
+
this.moduleMap.delete(tag);
|
|
203
|
+
this.modelMap.delete(module);
|
|
204
|
+
for (let i = this.meta.length - 1; i >= 0; i--) {
|
|
205
|
+
if (this.meta[i].data.tag === tag) this.meta.splice(i, 1);
|
|
206
|
+
}
|
|
207
|
+
return module;
|
|
208
|
+
}))).filter((item) => item);
|
|
209
|
+
for (const model of newModels) {
|
|
210
|
+
debug(`mount module: ${model.name}`);
|
|
211
|
+
await this.buildDepModule(model);
|
|
212
|
+
}
|
|
213
|
+
debug("replace old modules");
|
|
214
|
+
for (const module of oldModules) {
|
|
215
|
+
const tag = _phecdacore.getTag.call(void 0, module);
|
|
216
|
+
if (this.dependenceGraph.has(tag)) {
|
|
217
|
+
[
|
|
218
|
+
...this.dependenceGraph.get(tag)
|
|
219
|
+
].forEach((depTag) => {
|
|
220
|
+
const depModule = this.moduleMap.get(depTag);
|
|
221
|
+
if (depModule) {
|
|
222
|
+
for (const key in depModule) {
|
|
223
|
+
if (depModule[key] === module) depModule[key] = this.moduleMap.get(tag);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
has(modelOrTag) {
|
|
231
|
+
return this.moduleMap.has(typeof modelOrTag === "function" ? _phecdacore.getTag.call(void 0, modelOrTag) : modelOrTag);
|
|
232
|
+
}
|
|
233
|
+
get(modelOrTag) {
|
|
234
|
+
const tag = typeof modelOrTag === "function" ? _phecdacore.getTag.call(void 0, modelOrTag) : modelOrTag;
|
|
235
|
+
if (!this.has(tag)) throw new Error(`module "${tag.toString()}" doesn't exist`);
|
|
236
|
+
return this.moduleMap.get(tag);
|
|
237
|
+
}
|
|
238
|
+
}, _class);
|
|
239
|
+
async function Factory(models, opts = {}) {
|
|
240
|
+
const phecda = new ServerPhecda(opts);
|
|
241
|
+
await phecda.start(models);
|
|
242
|
+
return phecda;
|
|
243
|
+
}
|
|
244
|
+
_chunkCLQEY47Xjs.__name.call(void 0, Factory, "Factory");
|
|
245
|
+
function useS(nsOrModel, namespace) {
|
|
246
|
+
if (!nsOrModel) {
|
|
247
|
+
namespace = "default";
|
|
248
|
+
} else {
|
|
249
|
+
if (typeof nsOrModel === "string") namespace = nsOrModel;
|
|
250
|
+
else if (!namespace) namespace = "default";
|
|
251
|
+
}
|
|
252
|
+
if (!phecdaNamespace.has(namespace)) throw new Error(`namespace "${namespace}" doesn't exist`);
|
|
253
|
+
const serverPhecda = phecdaNamespace.get(namespace);
|
|
254
|
+
if (nsOrModel && typeof nsOrModel !== "string") return serverPhecda.get(nsOrModel);
|
|
255
|
+
else return serverPhecda;
|
|
256
|
+
}
|
|
257
|
+
_chunkCLQEY47Xjs.__name.call(void 0, useS, "useS");
|
|
258
|
+
function getMetaFromInstance(instance, tag, name) {
|
|
259
|
+
const propertyKeys = _phecdacore.getMetaKey.call(void 0, instance).filter((item) => typeof item === "string");
|
|
260
|
+
const baseMeta = _phecdacore.getMergedMeta.call(void 0, instance, void 0);
|
|
261
|
+
const ctxs = baseMeta.ctxs;
|
|
262
|
+
return propertyKeys.filter((i) => typeof instance[i] === "function").map((i) => {
|
|
263
|
+
const meta = _phecdacore.getMergedMeta.call(void 0, instance, i);
|
|
264
|
+
const metaData = {
|
|
265
|
+
...meta,
|
|
266
|
+
name,
|
|
267
|
+
tag,
|
|
268
|
+
func: i
|
|
269
|
+
};
|
|
270
|
+
if (baseMeta.controller) {
|
|
271
|
+
if (typeof tag !== "string") _chunkCLQEY47Xjs.log.call(void 0, `can't use Tag with ${typeof tag} on controller "${instance.constructor.name}",instead with "${tag = String(tag)}"`, "error");
|
|
272
|
+
metaData.controller = baseMeta.controller;
|
|
273
|
+
metaData[baseMeta.controller] = {
|
|
274
|
+
...baseMeta[baseMeta.controller],
|
|
275
|
+
...meta[baseMeta.controller]
|
|
276
|
+
};
|
|
277
|
+
const params = _phecdacore.getMetaParams.call(void 0, instance, i).map((item) => _phecdacore.getMergedMeta.call(void 0, instance, i, item));
|
|
278
|
+
params.forEach((item, index) => {
|
|
279
|
+
if (!item.pipe) item.pipe = meta.pipe || baseMeta.pipe;
|
|
280
|
+
if (!item.define) item.define = {};
|
|
281
|
+
item.index = index;
|
|
282
|
+
});
|
|
283
|
+
metaData.ctxs = ctxs;
|
|
284
|
+
metaData.params = params;
|
|
285
|
+
metaData.filter = meta.filter || baseMeta.filter;
|
|
286
|
+
metaData.define = {
|
|
287
|
+
...baseMeta.define,
|
|
288
|
+
...meta.define
|
|
289
|
+
};
|
|
290
|
+
for (const item of [
|
|
291
|
+
"addons",
|
|
292
|
+
"guards"
|
|
293
|
+
]) {
|
|
294
|
+
const set = new Set(baseMeta[item]);
|
|
295
|
+
if (meta[item]) {
|
|
296
|
+
meta[item].forEach((part) => {
|
|
297
|
+
set.delete(part);
|
|
298
|
+
set.add(part);
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
metaData[item] = [
|
|
302
|
+
...set
|
|
303
|
+
];
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return new Meta(deepFreeze(metaData), getParamTypes(instance, i) || []);
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
_chunkCLQEY47Xjs.__name.call(void 0, getMetaFromInstance, "getMetaFromInstance");
|
|
310
|
+
function deepFreeze(object) {
|
|
311
|
+
Object.freeze(object);
|
|
312
|
+
Object.getOwnPropertyNames(object).forEach((prop) => {
|
|
313
|
+
if (object[prop] !== null && (typeof object[prop] === "object" || typeof object[prop] === "function") && !Object.isFrozen(object[prop])) deepFreeze(object[prop]);
|
|
314
|
+
});
|
|
315
|
+
return object;
|
|
316
|
+
}
|
|
317
|
+
_chunkCLQEY47Xjs.__name.call(void 0, deepFreeze, "deepFreeze");
|
|
318
|
+
function getParamTypes(Model, key) {
|
|
319
|
+
const paramTypes = Reflect.getMetadata("design:paramtypes", Model, key);
|
|
320
|
+
if (typeof paramTypes === "function") return paramTypes();
|
|
321
|
+
else return paramTypes;
|
|
322
|
+
}
|
|
323
|
+
_chunkCLQEY47Xjs.__name.call(void 0, getParamTypes, "getParamTypes");
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
exports.Meta = Meta; exports.emitter = emitter; exports.defaultServerInject = defaultServerInject; exports.phecdaNamespace = phecdaNamespace; exports.ServerPhecda = ServerPhecda; exports.Factory = Factory; exports.useS = useS;
|
|
334
|
+
//# sourceMappingURL=chunk-PDKES3CS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/meta.ts","../src/core.ts"],"names":["Meta","constructor","data","paramsType","EventEmitter","getInject","getMergedMeta","getMetaKey","getMetaParams","getTag","invokeInit","invokeUnmount","setInject","Debug","debug","emitter","defaultServerInject","eventName","instance","property","options","fn","bind","v","once","on","off","phecdaNamespace","Map","ServerPhecda","moduleMap","meta","modelMap","WeakMap","modelSet","WeakSet","dependenceGraph","parseModule","parseMeta","generators","namespace","module","set","start","models","model","buildDepModule","hmr","generateCode","then","IS_ONLY_GENERATE","log","process","exit","PS_EXIT_CODE","EXIT","Promise","all","map","generator","name","path","output","HMR","oldModels","newModels","replace","destroy","Object","values","createProxyModule","tag","that","Proxy","get","_target","prop","Reflect","newValue","has","ownKeys","getPrototypeOf","getOwnPropertyDescriptor","Model","paramtypes","getParamTypes","String","add","undefined","paramtypesInstances","i","sub","subTag","Set","push","getMetaFromInstance","filter","item","oldModules","delete","length","splice","forEach","depTag","depModule","key","modelOrTag","Error","toString","Factory","opts","phecda","useS","nsOrModel","serverPhecda","propertyKeys","baseMeta","ctxs","metaData","func","controller","params","index","pipe","define","part","deepFreeze","object","freeze","getOwnPropertyNames","isFrozen","paramTypes","getMetadata"],"mappings":"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","sourcesContent":["import type { BaseRequestType } from './types'\r\n\r\nexport interface ServiceMetaData {\r\n func: string\r\n name: string\r\n tag: string\r\n define?: any\r\n [key: string]: any\r\n}\r\n\r\nexport interface ControllerMetaData extends ServiceMetaData {\r\n controller: string\r\n http?: {\r\n type: BaseRequestType\r\n prefix: string\r\n route: string\r\n headers?: Record<string, string>\r\n\r\n }\r\n rpc?: {\r\n queue?: string\r\n isEvent?: boolean\r\n }\r\n ctxs?: string[]\r\n params: { type: string; index: number; key: string; pipe?: string; define: Record<string, any> }[]\r\n guards: string[]\r\n pipe?: string\r\n filter?: string\r\n addons: string[]\r\n\r\n}\r\n\r\nexport type MetaData = ControllerMetaData | ServiceMetaData\r\n\r\nexport class Meta {\r\n constructor(public data: MetaData, public paramsType: any[]) {\r\n\r\n }\r\n}\r\n\r\nexport interface ControllerMeta extends Meta {\r\n data: ControllerMetaData\r\n}\r\n","import 'reflect-metadata'\r\nimport EventEmitter from 'node:events'\r\nimport type { Construct, Phecda, WatcherParam } from 'phecda-core'\r\nimport { getInject, getMergedMeta, getMetaKey, getMetaParams, getTag, invokeInit, invokeUnmount, setInject } from 'phecda-core'\r\nimport Debug from 'debug'\r\nimport type { Emitter } from './types'\r\nimport type { MetaData } from './meta'\r\nimport { Meta } from './meta'\r\nimport { log } from './utils'\r\nimport { IS_ONLY_GENERATE, PS_EXIT_CODE } from './common'\r\nimport type { Generator } from './generator'\r\nimport { HMR } from './hmr'\r\n\r\nconst debug = Debug('phecda-server(Factory)')\r\n// TODO: support both emitter types and origin emitter type in future\r\nexport const emitter: Emitter = new EventEmitter() as any\r\nexport interface Options {\r\n parseModule?: (module: any) => any\r\n parseMeta?: (meta: Meta) => Meta | null | undefined\r\n generators?: Generator[]\r\n namespace?: string\r\n\r\n}\r\n\r\nexport function defaultServerInject() {\r\n if (!getInject('watcher')) {\r\n setInject('watcher', ({ eventName, instance, property, options }: WatcherParam) => {\r\n const fn = typeof instance[property] === 'function' ? instance[property].bind(instance) : (v: any) => instance[property] = v\r\n\r\n if (options?.once)\r\n (emitter as any).once(eventName, fn)\r\n\r\n else\r\n (emitter as any).on(eventName, fn)\r\n\r\n return () => {\r\n (emitter as any).off(eventName, fn)\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport const phecdaNamespace = new Map<string, ServerPhecda>()\r\n\r\nexport class ServerPhecda {\r\n moduleMap = new Map<PropertyKey, InstanceType<Construct>>()\r\n meta: Meta[] = []\r\n modelMap = new WeakMap<InstanceType<Construct>, Construct>()\r\n modelSet = new WeakSet<Construct>()\r\n dependenceGraph = new Map<PropertyKey, Set<PropertyKey>>()\r\n parseModule: (module: any) => any\r\n parseMeta: (meta: Meta) => Meta | null | undefined\r\n generators: Generator[]\r\n constructor(options: Options) {\r\n defaultServerInject()\r\n const { namespace = 'default', parseModule = (module: any) => module, parseMeta = (meta: any) => meta, generators = [] } = options\r\n phecdaNamespace.set(namespace, this)\r\n this.parseMeta = parseMeta\r\n this.parseModule = parseModule\r\n this.generators = generators\r\n }\r\n\r\n async start(models: Construct[]) {\r\n for (const model of models)\r\n await this.buildDepModule(model)\r\n\r\n this.hmr()\r\n this.generateCode().then(() => {\r\n if (IS_ONLY_GENERATE) {\r\n log('Only generate code')\r\n process.exit(PS_EXIT_CODE.EXIT)// only output code/work for ci\r\n }\r\n })\r\n }\r\n\r\n generateCode = async () => {\r\n return Promise.all(this.generators.map((generator) => {\r\n debug(`generate \"${generator.name}\" code to ${generator.path}`)\r\n\r\n return generator.output(this.meta)\r\n }))\r\n }\r\n\r\n hmr() {\r\n HMR(async (oldModels, newModels) => {\r\n debug('reload models ')\r\n\r\n await this.replace(oldModels, newModels)\r\n\r\n this.generateCode()\r\n })\r\n }\r\n // async add(Model: Construct) {\r\n // const tag = getTag(Model)\r\n\r\n // const oldInstance = await this.del(tag)\r\n // const { module: newModule } = await this.buildDepModule(Model)\r\n\r\n // if (oldInstance && this.dependenceGraph.has(tag)) {\r\n // debug(`replace module \"${String(tag)}\"`);\r\n\r\n // [...this.dependenceGraph.get(tag)!].forEach((tag) => {\r\n // const module = this.moduleMap.get(tag)\r\n // for (const key in module) {\r\n // if (module[key] === oldInstance)\r\n // module[key] = newModule\r\n // }\r\n // })\r\n // }\r\n // }\r\n\r\n // async del(modelOrTag: Construct | PropertyKey) {\r\n // const tag = typeof modelOrTag === 'function' ? getTag(modelOrTag) : modelOrTag\r\n\r\n // if (!this.moduleMap.has(tag))\r\n // return\r\n\r\n // const module = this.moduleMap.get(tag)\r\n\r\n // debug(`unmount module \"${String(tag)}\"`)\r\n // await invokeUnmount(module)\r\n // debug(`del module \"${String(tag)}\"`)\r\n\r\n // this.moduleMap.delete(tag)\r\n // this.modelMap.delete(module)\r\n // for (let i = this.meta.length - 1; i >= 0; i--) {\r\n // if (this.meta[i].data.tag === tag)\r\n // this.meta.splice(i, 1)\r\n // }\r\n // return module\r\n // }\r\n\r\n async destroy() {\r\n debug('destroy all')\r\n\r\n this.replace(Object.values(this.modelMap), [])\r\n }\r\n\r\n createProxyModule(tag: PropertyKey) {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const that = this\r\n return new Proxy({}, {\r\n get(_target, prop) {\r\n const module = that.moduleMap.get(tag)\r\n return Reflect.get(module, prop, module)\r\n },\r\n set(_target, prop, newValue) {\r\n const module = that.moduleMap.get(tag)\r\n\r\n return Reflect.set(module, prop, newValue, module)\r\n },\r\n has(_target, prop) {\r\n return Reflect.has(that.moduleMap.get(tag), prop)\r\n },\r\n ownKeys() {\r\n return Reflect.ownKeys(that.moduleMap.get(tag))\r\n },\r\n getPrototypeOf() {\r\n return Reflect.getPrototypeOf(that.moduleMap.get(tag))\r\n },\r\n getOwnPropertyDescriptor(_target, prop) {\r\n return Reflect.getOwnPropertyDescriptor(that.moduleMap.get(tag), prop)\r\n },\r\n })\r\n }\r\n\r\n protected async buildDepModule(Model: Construct) {\r\n const paramtypes = getParamTypes(Model) as Construct[]\r\n let module: InstanceType<Construct>\r\n const tag = getTag(Model)\r\n\r\n if (this.moduleMap.has(tag)) {\r\n module = this.moduleMap.get(tag)\r\n if (!module) {\r\n log(`Exist Circular-Dependency or Multiple modules with the same tag [${String(tag)}]`, 'warn')\r\n return { module: this.createProxyModule(tag), tag }\r\n }\r\n if (this.modelMap.get(module) !== Model && !this.modelSet.has(Model)) {\r\n this.modelSet.add(Model)// a module will only warn once\r\n\r\n if (module instanceof Model)\r\n log(`Module taged ${String(tag)} has been overridden`)// legal override\r\n else\r\n log(`Synonym module: Module taged \"${String(tag)}\" has been loaded before, so phecda-server won't load Module \"${Model.name}\"`, 'warn')\r\n }\r\n return { module, tag }\r\n }\r\n this.moduleMap.set(tag, undefined)\r\n debug(`instantiate module \"${String(tag)}\"`)\r\n\r\n if (paramtypes) {\r\n const paramtypesInstances = [] as any[]\r\n for (const i in paramtypes) {\r\n const { module: sub, tag: subTag } = await this.buildDepModule(paramtypes[i])\r\n paramtypesInstances[i] = sub\r\n if (!this.dependenceGraph.has(subTag))\r\n this.dependenceGraph.set(subTag, new Set())\r\n this.dependenceGraph.get(subTag)!.add(tag)\r\n }\r\n\r\n module = this.parseModule(new Model(...paramtypesInstances))\r\n }\r\n else {\r\n module = this.parseModule(new Model())\r\n }\r\n this.meta.push(...getMetaFromInstance(module, tag, Model.name).map(this.parseMeta).filter(item => !!item))\r\n\r\n debug(`init module \"${String(tag)}\"`)\r\n\r\n if (!IS_ONLY_GENERATE)// ??\r\n await invokeInit(module)\r\n\r\n debug(`add module \"${String(tag)}\"`)\r\n\r\n this.moduleMap.set(tag, module)\r\n this.modelMap.set(module, Model)\r\n return { module, tag }\r\n }\r\n\r\n async replace(oldModels: Construct[], newModels: Construct[]) {\r\n const oldModules = (await Promise.all(oldModels.map(async (model) => {\r\n const tag = getTag(model)\r\n if (!this.has(tag))\r\n return\r\n const module = this.moduleMap.get(tag)\r\n\r\n debug(`unmount module \"${String(tag)}\"`)\r\n await invokeUnmount(module)\r\n debug(`del module \"${String(tag)}\"`)\r\n\r\n this.moduleMap.delete(tag)\r\n this.modelMap.delete(module)\r\n for (let i = this.meta.length - 1; i >= 0; i--) {\r\n if (this.meta[i].data.tag === tag)\r\n this.meta.splice(i, 1)\r\n }\r\n return module\r\n }))).filter(item => item)\r\n\r\n for (const model of newModels) {\r\n debug(`mount module: ${model.name}`)\r\n await this.buildDepModule(model)\r\n }\r\n\r\n debug('replace old modules')\r\n\r\n for (const module of oldModules) {\r\n const tag = getTag(module)\r\n if (this.dependenceGraph.has(tag)) {\r\n [...this.dependenceGraph.get(tag)!].forEach((depTag) => {\r\n const depModule = this.moduleMap.get(depTag)\r\n\r\n if (depModule) {\r\n for (const key in depModule) {\r\n if (depModule[key] === module)\r\n depModule[key] = this.moduleMap.get(tag)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n has(modelOrTag: Construct | PropertyKey) {\r\n return this.moduleMap.has(typeof modelOrTag === 'function' ? getTag(modelOrTag) : modelOrTag)\r\n }\r\n\r\n get<Model extends Construct>(modelOrTag: Model | PropertyKey): InstanceType<Model> {\r\n const tag = typeof modelOrTag === 'function' ? getTag(modelOrTag) : modelOrTag\r\n if (!this.has(tag))\r\n throw new Error(`module \"${tag.toString()}\" doesn't exist`)\r\n return this.moduleMap.get(tag)\r\n }\r\n}\r\n\r\nexport async function Factory(models: Construct[], opts: Options = {}) {\r\n const phecda = new ServerPhecda(opts)\r\n await phecda.start(models)\r\n return phecda\r\n}\r\n\r\nexport function useS<Model extends Construct>(model: Model, namespace?: string): InstanceType<Model>\r\nexport function useS(namespace?: string): ServerPhecda\r\nexport function useS(nsOrModel?: Construct | string, namespace?: string) {\r\n if (!nsOrModel) {\r\n namespace = 'default'\r\n }\r\n else {\r\n if (typeof nsOrModel === 'string')\r\n namespace = nsOrModel\r\n else if (!namespace)\r\n namespace = 'default'\r\n }\r\n if (!phecdaNamespace.has(namespace))\r\n throw new Error(`namespace \"${namespace}\" doesn't exist`)\r\n const serverPhecda = phecdaNamespace.get(namespace)!\r\n if (nsOrModel && typeof nsOrModel !== 'string')\r\n return serverPhecda.get(nsOrModel)\r\n else\r\n\r\n return serverPhecda\r\n}\r\n\r\nfunction getMetaFromInstance(instance: Phecda, tag: PropertyKey, name: string) {\r\n const propertyKeys = getMetaKey(instance).filter(item => typeof item === 'string') as string[]\r\n const baseMeta = getMergedMeta(instance, undefined) as MetaData\r\n\r\n const ctxs = baseMeta.ctxs\r\n return propertyKeys.filter(i => typeof (instance as any)[i] === 'function').map((i) => {\r\n const meta = getMergedMeta(instance, i)\r\n const metaData = {\r\n ...meta,\r\n name,\r\n tag,\r\n func:\r\n i,\r\n } as MetaData\r\n if (baseMeta.controller) {\r\n if (typeof tag !== 'string')\r\n log(`can't use Tag with ${typeof tag} on controller \"${(instance as any).constructor.name}\",instead with \"${tag = String(tag)}\"`, 'error')\r\n metaData.controller = baseMeta.controller\r\n metaData[baseMeta.controller] = {\r\n ...baseMeta[baseMeta.controller],\r\n ...meta[baseMeta.controller],\r\n }\r\n\r\n const params = getMetaParams(instance, i).map(item => getMergedMeta(instance, i, item))\r\n params.forEach((item, index) => {\r\n if (!item.pipe)\r\n item.pipe = meta.pipe || baseMeta.pipe\r\n if (!item.define)\r\n item.define = {}\r\n item.index = index\r\n })\r\n\r\n metaData.ctxs = ctxs\r\n metaData.params = params\r\n metaData.filter = meta.filter || baseMeta.filter\r\n metaData.define = { ...baseMeta.define, ...meta.define }\r\n\r\n for (const item of ['addons', 'guards']) {\r\n const set = new Set<string>(baseMeta[item])\r\n if (meta[item]) {\r\n meta[item].forEach((part: string) => {\r\n set.delete(part)\r\n set.add(part)\r\n })\r\n }\r\n\r\n metaData[item] = [...set]\r\n }\r\n\r\n // metaData.addons = [...new Set([...baseMeta.addons, ...meta.addons])]\r\n // metaData.guards = [...new Set([...baseMeta.guards, ...meta.guards])]\r\n // metaData.interceptors = [...new Set([...baseMeta.interceptors, ...meta.interceptors])]\r\n }\r\n return new Meta(deepFreeze(metaData as MetaData), getParamTypes(instance, i as string) || [])\r\n })\r\n}\r\n\r\nfunction deepFreeze<T extends Record<string, any>>(object: T): T {\r\n // 先冻结对象本身\r\n Object.freeze(object)\r\n\r\n // 获取对象的所有属性名\r\n Object.getOwnPropertyNames(object).forEach((prop) => {\r\n // 如果属性是对象,并且没有被冻结,则递归冻结\r\n if (object[prop] !== null\r\n && (typeof object[prop] === 'object' || typeof object[prop] === 'function')\r\n && !Object.isFrozen(object[prop]))\r\n deepFreeze(object[prop])\r\n })\r\n\r\n return object\r\n}\r\nfunction getParamTypes(Model: any, key?: string | symbol) {\r\n const paramTypes = Reflect.getMetadata('design:paramtypes', Model, key!)\r\n if (typeof paramTypes === 'function')// work with loader to handle Circular-Dependency\r\n return paramTypes()\r\n\r\n else return paramTypes\r\n}\r\n"]}
|