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
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# phecda-server
|
|
2
|
-
|
|
3
|
-
[DOCUMENT](https://fgsreally.github.io/phecda/)
|
|
4
|
-
|
|
5
|
-
nodejs server framework that provide IOC/type-reuse/http&rpc-adaptor
|
|
6
|
-
|
|
7
|
-
like `nestjs`+ `trpc`, work with `elysia/express/hono/h3/koa/fastify/hyper-express` and `redis/rabbimq/kafka/bullmq/nats`
|
|
8
|
-
|
|
9
|
-
Pragmatism , Progressive, Less code and Easy to maintain
|
|
10
|
-
|
|
1
|
+
# phecda-server
|
|
2
|
+
|
|
3
|
+
[DOCUMENT](https://fgsreally.github.io/phecda/)
|
|
4
|
+
|
|
5
|
+
nodejs server framework that provide IOC/type-reuse/http&rpc-adaptor
|
|
6
|
+
|
|
7
|
+
like `nestjs`+ `trpc`, work with `elysia/express/hono/h3/koa/fastify/hyper-express` and `redis/rabbimq/kafka/bullmq/nats`
|
|
8
|
+
|
|
9
|
+
Pragmatism , Progressive, Less code and Easy to maintain
|
|
10
|
+
|
package/assets/schema.json
CHANGED
|
@@ -38,13 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"description": "Including the module's file middle name, such as controller mapping to xx.controller.ts"
|
|
40
40
|
},
|
|
41
|
-
|
|
42
|
-
"type": "object",
|
|
43
|
-
"additionalProperties": {
|
|
44
|
-
"type": "string"
|
|
45
|
-
},
|
|
46
|
-
"description": "Virtual module, just like in Vite."
|
|
47
|
-
},
|
|
41
|
+
|
|
48
42
|
"unimport": {
|
|
49
43
|
"oneOf": [
|
|
50
44
|
{
|
package/bin/cli.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#! /usr/bin/env node
|
|
1
|
+
#! /usr/bin/env node
|
|
2
2
|
import { fork } from 'child_process'
|
|
3
3
|
import { createRequire } from 'module'
|
|
4
4
|
import pc from 'picocolors'
|
|
@@ -15,6 +15,8 @@ const log = (...args) => {
|
|
|
15
15
|
|
|
16
16
|
const cli = cac('phecda').option('-c,--config <config>', 'config file', {
|
|
17
17
|
default: 'ps.json',
|
|
18
|
+
}).option('-n,--node-args <node-args>', 'args that will be passed to nodejs', {
|
|
19
|
+
default: '',
|
|
18
20
|
})
|
|
19
21
|
|
|
20
22
|
const require = createRequire(import.meta.url)
|
|
@@ -35,10 +37,10 @@ function startChild(file, args) {
|
|
|
35
37
|
env: { ...process.env },
|
|
36
38
|
stdio: 'inherit',
|
|
37
39
|
execArgv: [
|
|
40
|
+
...args,
|
|
38
41
|
nodeVersion < 18.19
|
|
39
42
|
? '--loader=phecda-server/register/loader.mjs'
|
|
40
43
|
: '--import=phecda-server/register',
|
|
41
|
-
...args,
|
|
42
44
|
],
|
|
43
45
|
})
|
|
44
46
|
|
|
@@ -74,7 +76,7 @@ process.on('SIGINT', () => {
|
|
|
74
76
|
|
|
75
77
|
cli
|
|
76
78
|
.command('init [root]', 'init config file')
|
|
77
|
-
.allowUnknownOptions()
|
|
79
|
+
// .allowUnknownOptions()
|
|
78
80
|
.option('-t,--tsconfig <tsconfig>', 'init tsconfig file', {
|
|
79
81
|
default: 'tsconfig.json',
|
|
80
82
|
})
|
|
@@ -156,7 +158,6 @@ cli
|
|
|
156
158
|
],
|
|
157
159
|
},
|
|
158
160
|
},
|
|
159
|
-
virtualFile: {},
|
|
160
161
|
moduleFile: [],
|
|
161
162
|
})
|
|
162
163
|
}
|
|
@@ -167,11 +168,13 @@ cli
|
|
|
167
168
|
cli
|
|
168
169
|
.command('<file> [root]', 'run file')
|
|
169
170
|
.alias('run')
|
|
170
|
-
.allowUnknownOptions()
|
|
171
|
-
.option('-p,--prod
|
|
171
|
+
// .allowUnknownOptions()
|
|
172
|
+
.option('-p,--prod', 'prod mode', {
|
|
172
173
|
default: false,
|
|
173
174
|
})
|
|
174
175
|
.action((file, root, options) => {
|
|
176
|
+
const nodeArgs = options.nodeArgs.split(' ').filter(Boolean)
|
|
177
|
+
|
|
175
178
|
if (root)
|
|
176
179
|
process.chdir(root)
|
|
177
180
|
|
|
@@ -184,7 +187,7 @@ cli
|
|
|
184
187
|
|
|
185
188
|
log('process start!')
|
|
186
189
|
|
|
187
|
-
startChild(file,
|
|
190
|
+
startChild(file, nodeArgs)
|
|
188
191
|
console.log(`${pc.green('->')} press ${pc.green('e')} to exit`)
|
|
189
192
|
console.log(`${pc.green('->')} press ${pc.green('r')} to relaunch`)
|
|
190
193
|
console.log(`${pc.green('->')} press ${pc.green('c')} to clear terminal`)
|
|
@@ -197,12 +200,12 @@ cli
|
|
|
197
200
|
if (closePromise)
|
|
198
201
|
await closePromise
|
|
199
202
|
log('relaunch...')
|
|
200
|
-
startChild(file,
|
|
203
|
+
startChild(file, nodeArgs)
|
|
201
204
|
}
|
|
202
205
|
else {
|
|
203
206
|
log('relaunch...')
|
|
204
207
|
|
|
205
|
-
startChild(file,
|
|
208
|
+
startChild(file, nodeArgs)
|
|
206
209
|
}
|
|
207
210
|
}
|
|
208
211
|
if (input === 'e')
|
|
@@ -215,13 +218,15 @@ cli
|
|
|
215
218
|
|
|
216
219
|
cli
|
|
217
220
|
.command('generate <file> [root]', 'generate code(mainly for ci)')
|
|
218
|
-
.allowUnknownOptions()
|
|
221
|
+
// .allowUnknownOptions()
|
|
219
222
|
.action((file, root, options) => {
|
|
223
|
+
const nodeArgs = options.nodeArgs.split(' ').filter(Boolean)
|
|
224
|
+
|
|
220
225
|
if (root)
|
|
221
226
|
process.chdir(root)
|
|
222
227
|
process.env.PS_GENERATE = 'true'
|
|
223
228
|
process.env.PS_CONFIG_FILE = process.env.PS_CONFIG_FILE || options.config
|
|
224
|
-
startChild(file,
|
|
229
|
+
startChild(file, nodeArgs)
|
|
225
230
|
})
|
|
226
231
|
|
|
227
232
|
cli.help()
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import {
|
|
2
|
+
HMR,
|
|
3
|
+
IS_ONLY_GENERATE,
|
|
4
|
+
__name,
|
|
5
|
+
log
|
|
6
|
+
} from "./chunk-VBBZA6PA.mjs";
|
|
7
|
+
|
|
8
|
+
// src/meta.ts
|
|
9
|
+
var Meta = class {
|
|
10
|
+
static {
|
|
11
|
+
__name(this, "Meta");
|
|
12
|
+
}
|
|
13
|
+
data;
|
|
14
|
+
paramsType;
|
|
15
|
+
constructor(data, paramsType) {
|
|
16
|
+
this.data = data;
|
|
17
|
+
this.paramsType = paramsType;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// src/core.ts
|
|
22
|
+
import "reflect-metadata";
|
|
23
|
+
import EventEmitter from "node:events";
|
|
24
|
+
import { getInject, getMergedMeta, getMetaKey, getMetaParams, getTag, invokeInit, invokeUnmount, setInject } from "phecda-core";
|
|
25
|
+
import Debug from "debug";
|
|
26
|
+
var debug = Debug("phecda-server(Factory)");
|
|
27
|
+
var emitter = new EventEmitter();
|
|
28
|
+
function defaultServerInject() {
|
|
29
|
+
if (!getInject("watcher")) {
|
|
30
|
+
setInject("watcher", ({ eventName, instance, property, options }) => {
|
|
31
|
+
const fn = typeof instance[property] === "function" ? instance[property].bind(instance) : (v) => instance[property] = v;
|
|
32
|
+
if (options?.once) emitter.once(eventName, fn);
|
|
33
|
+
else emitter.on(eventName, fn);
|
|
34
|
+
return () => {
|
|
35
|
+
emitter.off(eventName, fn);
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
__name(defaultServerInject, "defaultServerInject");
|
|
41
|
+
var phecdaNamespace = /* @__PURE__ */ new Map();
|
|
42
|
+
var ServerPhecda = class {
|
|
43
|
+
static {
|
|
44
|
+
__name(this, "ServerPhecda");
|
|
45
|
+
}
|
|
46
|
+
moduleMap = /* @__PURE__ */ new Map();
|
|
47
|
+
meta = [];
|
|
48
|
+
modelMap = /* @__PURE__ */ new WeakMap();
|
|
49
|
+
modelSet = /* @__PURE__ */ new WeakSet();
|
|
50
|
+
dependenceGraph = /* @__PURE__ */ new Map();
|
|
51
|
+
parseModule;
|
|
52
|
+
parseMeta;
|
|
53
|
+
generators;
|
|
54
|
+
constructor(options) {
|
|
55
|
+
defaultServerInject();
|
|
56
|
+
const { namespace = "default", parseModule = /* @__PURE__ */ __name((module) => module, "parseModule"), parseMeta = /* @__PURE__ */ __name((meta) => meta, "parseMeta"), generators = [] } = options;
|
|
57
|
+
phecdaNamespace.set(namespace, this);
|
|
58
|
+
this.parseMeta = parseMeta;
|
|
59
|
+
this.parseModule = parseModule;
|
|
60
|
+
this.generators = generators;
|
|
61
|
+
}
|
|
62
|
+
async start(models) {
|
|
63
|
+
for (const model of models) await this.buildDepModule(model);
|
|
64
|
+
this.hmr();
|
|
65
|
+
this.generateCode().then(() => {
|
|
66
|
+
if (IS_ONLY_GENERATE) process.exit(4);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
generateCode = /* @__PURE__ */ __name(async () => {
|
|
70
|
+
return Promise.all(this.generators.map((generator) => {
|
|
71
|
+
debug(`generate "${generator.name}" code to ${generator.path}`);
|
|
72
|
+
return generator.output(this.meta);
|
|
73
|
+
}));
|
|
74
|
+
}, "generateCode");
|
|
75
|
+
hmr() {
|
|
76
|
+
HMR(async (oldModels, newModels) => {
|
|
77
|
+
debug("reload models ");
|
|
78
|
+
await this.replace(oldModels, newModels);
|
|
79
|
+
this.generateCode();
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
// async add(Model: Construct) {
|
|
83
|
+
// const tag = getTag(Model)
|
|
84
|
+
// const oldInstance = await this.del(tag)
|
|
85
|
+
// const { module: newModule } = await this.buildDepModule(Model)
|
|
86
|
+
// if (oldInstance && this.dependenceGraph.has(tag)) {
|
|
87
|
+
// debug(`replace module "${String(tag)}"`);
|
|
88
|
+
// [...this.dependenceGraph.get(tag)!].forEach((tag) => {
|
|
89
|
+
// const module = this.moduleMap.get(tag)
|
|
90
|
+
// for (const key in module) {
|
|
91
|
+
// if (module[key] === oldInstance)
|
|
92
|
+
// module[key] = newModule
|
|
93
|
+
// }
|
|
94
|
+
// })
|
|
95
|
+
// }
|
|
96
|
+
// }
|
|
97
|
+
// async del(modelOrTag: Construct | PropertyKey) {
|
|
98
|
+
// const tag = typeof modelOrTag === 'function' ? getTag(modelOrTag) : modelOrTag
|
|
99
|
+
// if (!this.moduleMap.has(tag))
|
|
100
|
+
// return
|
|
101
|
+
// const module = this.moduleMap.get(tag)
|
|
102
|
+
// debug(`unmount module "${String(tag)}"`)
|
|
103
|
+
// await invokeUnmount(module)
|
|
104
|
+
// debug(`del module "${String(tag)}"`)
|
|
105
|
+
// this.moduleMap.delete(tag)
|
|
106
|
+
// this.modelMap.delete(module)
|
|
107
|
+
// for (let i = this.meta.length - 1; i >= 0; i--) {
|
|
108
|
+
// if (this.meta[i].data.tag === tag)
|
|
109
|
+
// this.meta.splice(i, 1)
|
|
110
|
+
// }
|
|
111
|
+
// return module
|
|
112
|
+
// }
|
|
113
|
+
async destroy() {
|
|
114
|
+
debug("destroy all");
|
|
115
|
+
this.replace(Object.values(this.modelMap), []);
|
|
116
|
+
}
|
|
117
|
+
createProxyModule(tag) {
|
|
118
|
+
const that = this;
|
|
119
|
+
return new Proxy({}, {
|
|
120
|
+
get(_target, prop) {
|
|
121
|
+
const module = that.moduleMap.get(tag);
|
|
122
|
+
return Reflect.get(module, prop, module);
|
|
123
|
+
},
|
|
124
|
+
set(_target, prop, newValue) {
|
|
125
|
+
const module = that.moduleMap.get(tag);
|
|
126
|
+
return Reflect.set(module, prop, newValue, module);
|
|
127
|
+
},
|
|
128
|
+
has(_target, prop) {
|
|
129
|
+
return Reflect.has(that.moduleMap.get(tag), prop);
|
|
130
|
+
},
|
|
131
|
+
ownKeys() {
|
|
132
|
+
return Reflect.ownKeys(that.moduleMap.get(tag));
|
|
133
|
+
},
|
|
134
|
+
getPrototypeOf() {
|
|
135
|
+
return Reflect.getPrototypeOf(that.moduleMap.get(tag));
|
|
136
|
+
},
|
|
137
|
+
getOwnPropertyDescriptor(_target, prop) {
|
|
138
|
+
return Reflect.getOwnPropertyDescriptor(that.moduleMap.get(tag), prop);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
async buildDepModule(Model) {
|
|
143
|
+
const paramtypes = getParamTypes(Model);
|
|
144
|
+
let module;
|
|
145
|
+
const tag = getTag(Model);
|
|
146
|
+
if (this.moduleMap.has(tag)) {
|
|
147
|
+
module = this.moduleMap.get(tag);
|
|
148
|
+
if (!module) {
|
|
149
|
+
log(`Exist Circular-Dependency or Multiple modules with the same tag [${String(tag)}]`, "warn");
|
|
150
|
+
return {
|
|
151
|
+
module: this.createProxyModule(tag),
|
|
152
|
+
tag
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
if (this.modelMap.get(module) !== Model && !this.modelSet.has(Model)) {
|
|
156
|
+
this.modelSet.add(Model);
|
|
157
|
+
if (module instanceof Model) log(`Module taged ${String(tag)} has been overridden`);
|
|
158
|
+
else log(`Synonym module: Module taged "${String(tag)}" has been loaded before, so phecda-server won't load Module "${Model.name}"`, "warn");
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
module,
|
|
162
|
+
tag
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
this.moduleMap.set(tag, void 0);
|
|
166
|
+
debug(`instantiate module "${String(tag)}"`);
|
|
167
|
+
if (paramtypes) {
|
|
168
|
+
const paramtypesInstances = [];
|
|
169
|
+
for (const i in paramtypes) {
|
|
170
|
+
const { module: sub, tag: subTag } = await this.buildDepModule(paramtypes[i]);
|
|
171
|
+
paramtypesInstances[i] = sub;
|
|
172
|
+
if (!this.dependenceGraph.has(subTag)) this.dependenceGraph.set(subTag, /* @__PURE__ */ new Set());
|
|
173
|
+
this.dependenceGraph.get(subTag).add(tag);
|
|
174
|
+
}
|
|
175
|
+
module = this.parseModule(new Model(...paramtypesInstances));
|
|
176
|
+
} else {
|
|
177
|
+
module = this.parseModule(new Model());
|
|
178
|
+
}
|
|
179
|
+
this.meta.push(...getMetaFromInstance(module, tag, Model.name).map(this.parseMeta).filter((item) => !!item));
|
|
180
|
+
debug(`init module "${String(tag)}"`);
|
|
181
|
+
if (!IS_ONLY_GENERATE) await invokeInit(module);
|
|
182
|
+
debug(`add module "${String(tag)}"`);
|
|
183
|
+
this.moduleMap.set(tag, module);
|
|
184
|
+
this.modelMap.set(module, Model);
|
|
185
|
+
return {
|
|
186
|
+
module,
|
|
187
|
+
tag
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
async replace(oldModels, newModels) {
|
|
191
|
+
console.log("replace", oldModels, newModels);
|
|
192
|
+
const oldModules = (await Promise.all(oldModels.map(async (model) => {
|
|
193
|
+
const tag = getTag(model);
|
|
194
|
+
if (!this.has(tag)) return;
|
|
195
|
+
const module = this.moduleMap.get(tag);
|
|
196
|
+
debug(`unmount module "${String(tag)}"`);
|
|
197
|
+
await invokeUnmount(module);
|
|
198
|
+
debug(`del module "${String(tag)}"`);
|
|
199
|
+
this.moduleMap.delete(tag);
|
|
200
|
+
this.modelMap.delete(module);
|
|
201
|
+
for (let i = this.meta.length - 1; i >= 0; i--) {
|
|
202
|
+
if (this.meta[i].data.tag === tag) this.meta.splice(i, 1);
|
|
203
|
+
}
|
|
204
|
+
return module;
|
|
205
|
+
}))).filter((item) => item);
|
|
206
|
+
for (const model of newModels) await this.buildDepModule(model);
|
|
207
|
+
for (const module of oldModules) {
|
|
208
|
+
const tag = getTag(module);
|
|
209
|
+
[
|
|
210
|
+
...this.dependenceGraph.get(tag)
|
|
211
|
+
].forEach((tag2) => {
|
|
212
|
+
const depModule = this.moduleMap.get(tag2);
|
|
213
|
+
if (depModule) {
|
|
214
|
+
for (const key in depModule) {
|
|
215
|
+
if (depModule[key] === module) depModule[key] = this.moduleMap.get(key);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
has(modelOrTag) {
|
|
222
|
+
return this.moduleMap.has(typeof modelOrTag === "function" ? getTag(modelOrTag) : modelOrTag);
|
|
223
|
+
}
|
|
224
|
+
get(modelOrTag) {
|
|
225
|
+
const tag = typeof modelOrTag === "function" ? getTag(modelOrTag) : modelOrTag;
|
|
226
|
+
if (!this.has(tag)) throw new Error(`module "${tag.toString()}" doesn't exist`);
|
|
227
|
+
return this.moduleMap.get(tag);
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
async function Factory(models, opts = {}) {
|
|
231
|
+
const phecda = new ServerPhecda(opts);
|
|
232
|
+
await phecda.start(models);
|
|
233
|
+
return phecda;
|
|
234
|
+
}
|
|
235
|
+
__name(Factory, "Factory");
|
|
236
|
+
function useS(nsOrModel, namespace) {
|
|
237
|
+
if (!nsOrModel) {
|
|
238
|
+
namespace = "default";
|
|
239
|
+
} else {
|
|
240
|
+
if (typeof nsOrModel === "string") namespace = nsOrModel;
|
|
241
|
+
else if (!namespace) namespace = "default";
|
|
242
|
+
}
|
|
243
|
+
if (!phecdaNamespace.has(namespace)) throw new Error(`namespace "${namespace}" doesn't exist`);
|
|
244
|
+
const serverPhecda = phecdaNamespace.get(namespace);
|
|
245
|
+
if (nsOrModel && typeof nsOrModel !== "string") return serverPhecda.get(nsOrModel);
|
|
246
|
+
else return serverPhecda;
|
|
247
|
+
}
|
|
248
|
+
__name(useS, "useS");
|
|
249
|
+
function getMetaFromInstance(instance, tag, name) {
|
|
250
|
+
const propertyKeys = getMetaKey(instance).filter((item) => typeof item === "string");
|
|
251
|
+
const baseMeta = getMergedMeta(instance, void 0);
|
|
252
|
+
const ctxs = baseMeta.ctxs;
|
|
253
|
+
return propertyKeys.filter((i) => typeof instance[i] === "function").map((i) => {
|
|
254
|
+
const meta = getMergedMeta(instance, i);
|
|
255
|
+
const metaData = {
|
|
256
|
+
...meta,
|
|
257
|
+
name,
|
|
258
|
+
tag,
|
|
259
|
+
func: i
|
|
260
|
+
};
|
|
261
|
+
if (baseMeta.controller) {
|
|
262
|
+
if (typeof tag !== "string") log(`can't use Tag with ${typeof tag} on controller "${instance.constructor.name}",instead with "${tag = String(tag)}"`, "error");
|
|
263
|
+
metaData.controller = baseMeta.controller;
|
|
264
|
+
metaData[baseMeta.controller] = {
|
|
265
|
+
...baseMeta[baseMeta.controller],
|
|
266
|
+
...meta[baseMeta.controller]
|
|
267
|
+
};
|
|
268
|
+
const params = getMetaParams(instance, i).map((item) => getMergedMeta(instance, i, item));
|
|
269
|
+
params.forEach((item, index) => {
|
|
270
|
+
if (!item.pipe) item.pipe = meta.pipe || baseMeta.pipe;
|
|
271
|
+
if (!item.define) item.define = {};
|
|
272
|
+
item.index = index;
|
|
273
|
+
});
|
|
274
|
+
metaData.ctxs = ctxs;
|
|
275
|
+
metaData.params = params;
|
|
276
|
+
metaData.filter = meta.filter || baseMeta.filter;
|
|
277
|
+
metaData.define = {
|
|
278
|
+
...baseMeta.define,
|
|
279
|
+
...meta.define
|
|
280
|
+
};
|
|
281
|
+
for (const item of [
|
|
282
|
+
"addons",
|
|
283
|
+
"guards"
|
|
284
|
+
]) {
|
|
285
|
+
const set = new Set(baseMeta[item]);
|
|
286
|
+
if (meta[item]) {
|
|
287
|
+
meta[item].forEach((part) => {
|
|
288
|
+
set.delete(part);
|
|
289
|
+
set.add(part);
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
metaData[item] = [
|
|
293
|
+
...set
|
|
294
|
+
];
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
return new Meta(deepFreeze(metaData), getParamTypes(instance, i) || []);
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
__name(getMetaFromInstance, "getMetaFromInstance");
|
|
301
|
+
function deepFreeze(object) {
|
|
302
|
+
Object.freeze(object);
|
|
303
|
+
Object.getOwnPropertyNames(object).forEach((prop) => {
|
|
304
|
+
if (object[prop] !== null && (typeof object[prop] === "object" || typeof object[prop] === "function") && !Object.isFrozen(object[prop])) deepFreeze(object[prop]);
|
|
305
|
+
});
|
|
306
|
+
return object;
|
|
307
|
+
}
|
|
308
|
+
__name(deepFreeze, "deepFreeze");
|
|
309
|
+
function getParamTypes(Model, key) {
|
|
310
|
+
const paramTypes = Reflect.getMetadata("design:paramtypes", Model, key);
|
|
311
|
+
if (typeof paramTypes === "function") return paramTypes();
|
|
312
|
+
else return paramTypes;
|
|
313
|
+
}
|
|
314
|
+
__name(getParamTypes, "getParamTypes");
|
|
315
|
+
|
|
316
|
+
export {
|
|
317
|
+
Meta,
|
|
318
|
+
emitter,
|
|
319
|
+
defaultServerInject,
|
|
320
|
+
phecdaNamespace,
|
|
321
|
+
ServerPhecda,
|
|
322
|
+
Factory,
|
|
323
|
+
useS
|
|
324
|
+
};
|
|
325
|
+
//# sourceMappingURL=chunk-25LNE62T.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/meta.ts","../src/core.ts"],"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 } 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 process.exit(4)// only output code/work for ci\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 console.log('replace', oldModels, newModels)\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 await this.buildDepModule(model)\r\n\r\n for (const module of oldModules) {\r\n const tag = getTag(module);\r\n [...this.dependenceGraph.get(tag)!].forEach((tag) => {\r\n const depModule = this.moduleMap.get(tag)\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(key)\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"],"mappings":";;;;;;;;AAkCO,IAAMA,OAAN,MAAMA;EAAb,OAAaA;;;;;EACXC,YAAmBC,MAAuBC,YAAmB;SAA1CD,OAAAA;SAAuBC,aAAAA;EAE1C;AACF;;;ACtCA,OAAO;AACP,OAAOC,kBAAkB;AAEzB,SAASC,WAAWC,eAAeC,YAAYC,eAAeC,QAAQC,YAAYC,eAAeC,iBAAiB;AAClH,OAAOC,WAAW;AASlB,IAAMC,QAAQC,MAAM,wBAAA;AAEb,IAAMC,UAAmB,IAAIC,aAAAA;AAS7B,SAASC,sBAAAA;AACd,MAAI,CAACC,UAAU,SAAA,GAAY;AACzBC,cAAU,WAAW,CAAC,EAAEC,WAAWC,UAAUC,UAAUC,QAAO,MAAgB;AAC5E,YAAMC,KAAK,OAAOH,SAASC,QAAAA,MAAc,aAAaD,SAASC,QAAAA,EAAUG,KAAKJ,QAAAA,IAAY,CAACK,MAAWL,SAASC,QAAAA,IAAYI;AAE3H,UAAIH,SAASI,KACVZ,SAAgBY,KAAKP,WAAWI,EAAAA;UAGhCT,SAAgBa,GAAGR,WAAWI,EAAAA;AAEjC,aAAO,MAAA;AACJT,gBAAgBc,IAAIT,WAAWI,EAAAA;MAClC;IACF,CAAA;EACF;AACF;AAhBgBP;AAkBT,IAAMa,kBAAkB,oBAAIC,IAAAA;AAE5B,IAAMC,eAAN,MAAMA;EA5Cb,OA4CaA;;;EACXC,YAAY,oBAAIF,IAAAA;EAChBG,OAAe,CAAA;EACfC,WAAW,oBAAIC,QAAAA;EACfC,WAAW,oBAAIC,QAAAA;EACfC,kBAAkB,oBAAIR,IAAAA;EACtBS;EACAC;EACAC;EACAC,YAAYpB,SAAkB;AAC5BN,wBAAAA;AACA,UAAM,EAAE2B,YAAY,WAAWJ,cAAc,wBAACK,WAAgBA,QAAjB,gBAAyBJ,YAAY,wBAACP,SAAcA,MAAf,cAAqBQ,aAAa,CAAA,EAAE,IAAKnB;AAC3HO,oBAAgBgB,IAAIF,WAAW,IAAI;AACnC,SAAKH,YAAYA;AACjB,SAAKD,cAAcA;AACnB,SAAKE,aAAaA;EACpB;EAEA,MAAMK,MAAMC,QAAqB;AAC/B,eAAWC,SAASD,OAClB,OAAM,KAAKE,eAAeD,KAAAA;AAE5B,SAAKE,IAAG;AACR,SAAKC,aAAY,EAAGC,KAAK,MAAA;AACvB,UAAIC,iBACFC,SAAQC,KAAK,CAAA;IACjB,CAAA;EACF;EAEAJ,eAAe,mCAAA;AACb,WAAOK,QAAQC,IAAI,KAAKhB,WAAWiB,IAAI,CAACC,cAAAA;AACtC/C,YAAM,aAAa+C,UAAUC,IAAI,aAAaD,UAAUE,IAAI,EAAE;AAE9D,aAAOF,UAAUG,OAAO,KAAK7B,IAAI;IACnC,CAAA,CAAA;EACF,GANe;EAQfiB,MAAM;AACJa,QAAI,OAAOC,WAAWC,cAAAA;AACpBrD,YAAM,gBAAA;AAEN,YAAM,KAAKsD,QAAQF,WAAWC,SAAAA;AAE9B,WAAKd,aAAY;IACnB,CAAA;EACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCA,MAAMgB,UAAU;AACdvD,UAAM,aAAA;AAEN,SAAKsD,QAAQE,OAAOC,OAAO,KAAKnC,QAAQ,GAAG,CAAA,CAAE;EAC/C;EAEAoC,kBAAkBC,KAAkB;AAElC,UAAMC,OAAO;AACb,WAAO,IAAIC,MAAM,CAAC,GAAG;MACnBC,IAAIC,SAASC,MAAI;AACf,cAAMhC,SAAS4B,KAAKxC,UAAU0C,IAAIH,GAAAA;AAClC,eAAOM,QAAQH,IAAI9B,QAAQgC,MAAMhC,MAAAA;MACnC;MACAC,IAAI8B,SAASC,MAAME,UAAQ;AACzB,cAAMlC,SAAS4B,KAAKxC,UAAU0C,IAAIH,GAAAA;AAElC,eAAOM,QAAQhC,IAAID,QAAQgC,MAAME,UAAUlC,MAAAA;MAC7C;MACAmC,IAAIJ,SAASC,MAAI;AACf,eAAOC,QAAQE,IAAIP,KAAKxC,UAAU0C,IAAIH,GAAAA,GAAMK,IAAAA;MAC9C;MACAI,UAAAA;AACE,eAAOH,QAAQG,QAAQR,KAAKxC,UAAU0C,IAAIH,GAAAA,CAAAA;MAC5C;MACAU,iBAAAA;AACE,eAAOJ,QAAQI,eAAeT,KAAKxC,UAAU0C,IAAIH,GAAAA,CAAAA;MACnD;MACAW,yBAAyBP,SAASC,MAAI;AACpC,eAAOC,QAAQK,yBAAyBV,KAAKxC,UAAU0C,IAAIH,GAAAA,GAAMK,IAAAA;MACnE;IACF,CAAA;EACF;EAEA,MAAgB3B,eAAekC,OAAkB;AAC/C,UAAMC,aAAaC,cAAcF,KAAAA;AACjC,QAAIvC;AACJ,UAAM2B,MAAMe,OAAOH,KAAAA;AAEnB,QAAI,KAAKnD,UAAU+C,IAAIR,GAAAA,GAAM;AAC3B3B,eAAS,KAAKZ,UAAU0C,IAAIH,GAAAA;AAC5B,UAAI,CAAC3B,QAAQ;AACX2C,YAAI,oEAAoEC,OAAOjB,GAAAA,CAAAA,KAAS,MAAA;AACxF,eAAO;UAAE3B,QAAQ,KAAK0B,kBAAkBC,GAAAA;UAAMA;QAAI;MACpD;AACA,UAAI,KAAKrC,SAASwC,IAAI9B,MAAAA,MAAYuC,SAAS,CAAC,KAAK/C,SAAS2C,IAAII,KAAAA,GAAQ;AACpE,aAAK/C,SAASqD,IAAIN,KAAAA;AAElB,YAAIvC,kBAAkBuC,MACpBI,KAAI,gBAAgBC,OAAOjB,GAAAA,CAAAA,sBAA0B;YAErDgB,KAAI,iCAAiCC,OAAOjB,GAAAA,CAAAA,iEAAqEY,MAAMvB,IAAI,KAAK,MAAA;MACpI;AACA,aAAO;QAAEhB;QAAQ2B;MAAI;IACvB;AACA,SAAKvC,UAAUa,IAAI0B,KAAKmB,MAAAA;AACxB9E,UAAM,uBAAuB4E,OAAOjB,GAAAA,CAAAA,GAAO;AAE3C,QAAIa,YAAY;AACd,YAAMO,sBAAsB,CAAA;AAC5B,iBAAWC,KAAKR,YAAY;AAC1B,cAAM,EAAExC,QAAQiD,KAAKtB,KAAKuB,OAAM,IAAK,MAAM,KAAK7C,eAAemC,WAAWQ,CAAAA,CAAE;AAC5ED,4BAAoBC,CAAAA,IAAKC;AACzB,YAAI,CAAC,KAAKvD,gBAAgByC,IAAIe,MAAAA,EAC5B,MAAKxD,gBAAgBO,IAAIiD,QAAQ,oBAAIC,IAAAA,CAAAA;AACvC,aAAKzD,gBAAgBoC,IAAIoB,MAAAA,EAASL,IAAIlB,GAAAA;MACxC;AAEA3B,eAAS,KAAKL,YAAY,IAAI4C,MAAAA,GAASQ,mBAAAA,CAAAA;IACzC,OACK;AACH/C,eAAS,KAAKL,YAAY,IAAI4C,MAAAA,CAAAA;IAChC;AACA,SAAKlD,KAAK+D,KAAI,GAAIC,oBAAoBrD,QAAQ2B,KAAKY,MAAMvB,IAAI,EAAEF,IAAI,KAAKlB,SAAS,EAAE0D,OAAOC,CAAAA,SAAQ,CAAC,CAACA,IAAAA,CAAAA;AAEpGvF,UAAM,gBAAgB4E,OAAOjB,GAAAA,CAAAA,GAAO;AAEpC,QAAI,CAAClB,iBACH,OAAM+C,WAAWxD,MAAAA;AAEnBhC,UAAM,eAAe4E,OAAOjB,GAAAA,CAAAA,GAAO;AAEnC,SAAKvC,UAAUa,IAAI0B,KAAK3B,MAAAA;AACxB,SAAKV,SAASW,IAAID,QAAQuC,KAAAA;AAC1B,WAAO;MAAEvC;MAAQ2B;IAAI;EACvB;EAEA,MAAML,QAAQF,WAAwBC,WAAwB;AAC5DoC,YAAQd,IAAI,WAAWvB,WAAWC,SAAAA;AAClC,UAAMqC,cAAc,MAAM9C,QAAQC,IAAIO,UAAUN,IAAI,OAAOV,UAAAA;AACzD,YAAMuB,MAAMe,OAAOtC,KAAAA;AACnB,UAAI,CAAC,KAAK+B,IAAIR,GAAAA,EACZ;AACF,YAAM3B,SAAS,KAAKZ,UAAU0C,IAAIH,GAAAA;AAElC3D,YAAM,mBAAmB4E,OAAOjB,GAAAA,CAAAA,GAAO;AACvC,YAAMgC,cAAc3D,MAAAA;AACpBhC,YAAM,eAAe4E,OAAOjB,GAAAA,CAAAA,GAAO;AAEnC,WAAKvC,UAAUwE,OAAOjC,GAAAA;AACtB,WAAKrC,SAASsE,OAAO5D,MAAAA;AACrB,eAASgD,IAAI,KAAK3D,KAAKwE,SAAS,GAAGb,KAAK,GAAGA,KAAK;AAC9C,YAAI,KAAK3D,KAAK2D,CAAAA,EAAGc,KAAKnC,QAAQA,IAC5B,MAAKtC,KAAK0E,OAAOf,GAAG,CAAA;MACxB;AACA,aAAOhD;IACT,CAAA,CAAA,GAAKsD,OAAOC,CAAAA,SAAQA,IAAAA;AAEpB,eAAWnD,SAASiB,UAClB,OAAM,KAAKhB,eAAeD,KAAAA;AAE5B,eAAWJ,UAAU0D,YAAY;AAC/B,YAAM/B,MAAMe,OAAO1C,MAAAA;AACnB;WAAI,KAAKN,gBAAgBoC,IAAIH,GAAAA;QAAOqC,QAAQ,CAACrC,SAAAA;AAC3C,cAAMsC,YAAY,KAAK7E,UAAU0C,IAAIH,IAAAA;AAErC,YAAIsC,WAAW;AACb,qBAAWC,OAAOD,WAAW;AAC3B,gBAAIA,UAAUC,GAAAA,MAASlE,OACrBiE,WAAUC,GAAAA,IAAO,KAAK9E,UAAU0C,IAAIoC,GAAAA;UACxC;QACF;MACF,CAAA;IACF;EACF;EAEA/B,IAAIgC,YAAqC;AACvC,WAAO,KAAK/E,UAAU+C,IAAI,OAAOgC,eAAe,aAAazB,OAAOyB,UAAAA,IAAcA,UAAAA;EACpF;EAEArC,IAA6BqC,YAAsD;AACjF,UAAMxC,MAAM,OAAOwC,eAAe,aAAazB,OAAOyB,UAAAA,IAAcA;AACpE,QAAI,CAAC,KAAKhC,IAAIR,GAAAA,EACZ,OAAM,IAAIyC,MAAM,WAAWzC,IAAI0C,SAAQ,CAAA,iBAAmB;AAC5D,WAAO,KAAKjF,UAAU0C,IAAIH,GAAAA;EAC5B;AACF;AAEA,eAAsB2C,QAAQnE,QAAqBoE,OAAgB,CAAC,GAAC;AACnE,QAAMC,SAAS,IAAIrF,aAAaoF,IAAAA;AAChC,QAAMC,OAAOtE,MAAMC,MAAAA;AACnB,SAAOqE;AACT;AAJsBF;AAQf,SAASG,KAAKC,WAAgC3E,WAAkB;AACrE,MAAI,CAAC2E,WAAW;AACd3E,gBAAY;EACd,OACK;AACH,QAAI,OAAO2E,cAAc,SACvB3E,aAAY2E;aACL,CAAC3E,UACRA,aAAY;EAChB;AACA,MAAI,CAACd,gBAAgBkD,IAAIpC,SAAAA,EACvB,OAAM,IAAIqE,MAAM,cAAcrE,SAAAA,iBAA0B;AAC1D,QAAM4E,eAAe1F,gBAAgB6C,IAAI/B,SAAAA;AACzC,MAAI2E,aAAa,OAAOA,cAAc,SACpC,QAAOC,aAAa7C,IAAI4C,SAAAA;MAGxB,QAAOC;AACX;AAlBgBF;AAoBhB,SAASpB,oBAAoB7E,UAAkBmD,KAAkBX,MAAY;AAC3E,QAAM4D,eAAeC,WAAWrG,QAAAA,EAAU8E,OAAOC,CAAAA,SAAQ,OAAOA,SAAS,QAAA;AACzE,QAAMuB,WAAWC,cAAcvG,UAAUsE,MAAAA;AAEzC,QAAMkC,OAAOF,SAASE;AACtB,SAAOJ,aAAatB,OAAON,CAAAA,MAAK,OAAQxE,SAAiBwE,CAAAA,MAAO,UAAA,EAAYlC,IAAI,CAACkC,MAAAA;AAC/E,UAAM3D,OAAO0F,cAAcvG,UAAUwE,CAAAA;AACrC,UAAMiC,WAAW;MACf,GAAG5F;MACH2B;MACAW;MACAuD,MACElC;IACJ;AACA,QAAI8B,SAASK,YAAY;AACvB,UAAI,OAAOxD,QAAQ,SACjBgB,KAAI,sBAAsB,OAAOhB,GAAAA,mBAAuBnD,SAAiBsB,YAAYkB,IAAI,mBAAmBW,MAAMiB,OAAOjB,GAAAA,CAAAA,KAAS,OAAA;AACpIsD,eAASE,aAAaL,SAASK;AAC/BF,eAASH,SAASK,UAAU,IAAI;QAC9B,GAAGL,SAASA,SAASK,UAAU;QAC/B,GAAG9F,KAAKyF,SAASK,UAAU;MAC7B;AAEA,YAAMC,SAASC,cAAc7G,UAAUwE,CAAAA,EAAGlC,IAAIyC,CAAAA,SAAQwB,cAAcvG,UAAUwE,GAAGO,IAAAA,CAAAA;AACjF6B,aAAOpB,QAAQ,CAACT,MAAM+B,UAAAA;AACpB,YAAI,CAAC/B,KAAKgC,KACRhC,MAAKgC,OAAOlG,KAAKkG,QAAQT,SAASS;AACpC,YAAI,CAAChC,KAAKiC,OACRjC,MAAKiC,SAAS,CAAC;AACjBjC,aAAK+B,QAAQA;MACf,CAAA;AAEAL,eAASD,OAAOA;AAChBC,eAASG,SAASA;AAClBH,eAAS3B,SAASjE,KAAKiE,UAAUwB,SAASxB;AAC1C2B,eAASO,SAAS;QAAE,GAAGV,SAASU;QAAQ,GAAGnG,KAAKmG;MAAO;AAEvD,iBAAWjC,QAAQ;QAAC;QAAU;SAAW;AACvC,cAAMtD,MAAM,IAAIkD,IAAY2B,SAASvB,IAAAA,CAAK;AAC1C,YAAIlE,KAAKkE,IAAAA,GAAO;AACdlE,eAAKkE,IAAAA,EAAMS,QAAQ,CAACyB,SAAAA;AAClBxF,gBAAI2D,OAAO6B,IAAAA;AACXxF,gBAAI4C,IAAI4C,IAAAA;UACV,CAAA;QACF;AAEAR,iBAAS1B,IAAAA,IAAQ;aAAItD;;MACvB;IAKF;AACA,WAAO,IAAIyF,KAAKC,WAAWV,QAAAA,GAAuBxC,cAAcjE,UAAUwE,CAAAA,KAAgB,CAAA,CAAE;EAC9F,CAAA;AACF;AAvDSK;AAyDT,SAASsC,WAA0CC,QAAS;AAE1DpE,SAAOqE,OAAOD,MAAAA;AAGdpE,SAAOsE,oBAAoBF,MAAAA,EAAQ5B,QAAQ,CAAChC,SAAAA;AAE1C,QAAI4D,OAAO5D,IAAAA,MAAU,SACf,OAAO4D,OAAO5D,IAAAA,MAAU,YAAY,OAAO4D,OAAO5D,IAAAA,MAAU,eAC7D,CAACR,OAAOuE,SAASH,OAAO5D,IAAAA,CAAK,EAChC2D,YAAWC,OAAO5D,IAAAA,CAAK;EAC3B,CAAA;AAEA,SAAO4D;AACT;AAdSD;AAeT,SAASlD,cAAcF,OAAY2B,KAAqB;AACtD,QAAM8B,aAAa/D,QAAQgE,YAAY,qBAAqB1D,OAAO2B,GAAAA;AACnE,MAAI,OAAO8B,eAAe,WACxB,QAAOA,WAAAA;MAEJ,QAAOA;AACd;AANSvD;","names":["Meta","constructor","data","paramsType","EventEmitter","getInject","getMergedMeta","getMetaKey","getMetaParams","getTag","invokeInit","invokeUnmount","setInject","Debug","debug","Debug","emitter","EventEmitter","defaultServerInject","getInject","setInject","eventName","instance","property","options","fn","bind","v","once","on","off","phecdaNamespace","Map","ServerPhecda","moduleMap","meta","modelMap","WeakMap","modelSet","WeakSet","dependenceGraph","parseModule","parseMeta","generators","constructor","namespace","module","set","start","models","model","buildDepModule","hmr","generateCode","then","IS_ONLY_GENERATE","process","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","getTag","log","String","add","undefined","paramtypesInstances","i","sub","subTag","Set","push","getMetaFromInstance","filter","item","invokeInit","console","oldModules","invokeUnmount","delete","length","data","splice","forEach","depModule","key","modelOrTag","Error","toString","Factory","opts","phecda","useS","nsOrModel","serverPhecda","propertyKeys","getMetaKey","baseMeta","getMergedMeta","ctxs","metaData","func","controller","params","getMetaParams","index","pipe","define","part","Meta","deepFreeze","object","freeze","getOwnPropertyNames","isFrozen","paramTypes","getMetadata"]}
|