zeed 0.28.21 → 0.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.cjs +1 -1
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/log/index.cjs +1 -1
- package/dist/browser/log/index.js +1 -1
- package/dist/browser/log/log-browser.cjs +1 -1
- package/dist/browser/log/log-browser.js +1 -1
- package/dist/browser/log/log-context-browser.cjs +1 -1
- package/dist/browser/log/log-context-browser.js +1 -1
- package/dist/{chunk-XVJBLOJN.js → chunk-23LAWLUA.js} +2 -2
- package/dist/chunk-3NN7GCMG.js +2 -0
- package/dist/{chunk-3JYK34SS.js → chunk-3REOR55V.js} +2 -2
- package/dist/chunk-3REOR55V.js.map +1 -0
- package/dist/chunk-3UE4OYUL.js +2 -0
- package/dist/chunk-3UE4OYUL.js.map +1 -0
- package/dist/chunk-4BUMEKE4.js +2 -0
- package/dist/chunk-4BUMEKE4.js.map +1 -0
- package/dist/{chunk-PBHNRC5D.cjs → chunk-4F2DX6E6.cjs} +2 -2
- package/dist/{chunk-PBHNRC5D.cjs.map → chunk-4F2DX6E6.cjs.map} +1 -1
- package/dist/{chunk-L32SZCS2.js → chunk-5BU2RTLI.js} +2 -2
- package/dist/{chunk-CDRKVTXH.cjs → chunk-5RS7ZPJW.cjs} +2 -2
- package/dist/{chunk-CDRKVTXH.cjs.map → chunk-5RS7ZPJW.cjs.map} +1 -1
- package/dist/{chunk-5BBJL6OC.cjs → chunk-6ZTAQPF3.cjs} +2 -2
- package/dist/{chunk-5BBJL6OC.cjs.map → chunk-6ZTAQPF3.cjs.map} +1 -1
- package/dist/{chunk-SDCEAQZX.cjs → chunk-7THBTD5T.cjs} +2 -2
- package/dist/{chunk-SDCEAQZX.cjs.map → chunk-7THBTD5T.cjs.map} +1 -1
- package/dist/{chunk-HK7ZBUGP.js → chunk-BQTR3A4K.js} +2 -2
- package/dist/chunk-CIJIUVZT.cjs +1 -0
- package/dist/chunk-CIJIUVZT.cjs.map +1 -0
- package/dist/{chunk-BPESVGQQ.cjs → chunk-DR2IXKD3.cjs} +2 -2
- package/dist/{chunk-BPESVGQQ.cjs.map → chunk-DR2IXKD3.cjs.map} +1 -1
- package/dist/chunk-E24W4VM7.cjs +4 -0
- package/dist/chunk-E24W4VM7.cjs.map +1 -0
- package/dist/{chunk-GLXW4DRV.js → chunk-E2HNYDJ3.js} +2 -2
- package/dist/{chunk-DIIKUZU5.cjs → chunk-EJHDKRDI.cjs} +2 -2
- package/dist/{chunk-DIIKUZU5.cjs.map → chunk-EJHDKRDI.cjs.map} +1 -1
- package/dist/{chunk-WYDZGMP2.js → chunk-EMLG23EY.js} +2 -2
- package/dist/chunk-EMLG23EY.js.map +1 -0
- package/dist/{chunk-LG6Q6ZYH.js → chunk-FB652MJM.js} +2 -2
- package/dist/{chunk-ZSSRSXLU.cjs → chunk-FBM5OH5V.cjs} +2 -2
- package/dist/{chunk-ZSSRSXLU.cjs.map → chunk-FBM5OH5V.cjs.map} +1 -1
- package/dist/{chunk-KGZLR63U.js → chunk-FLFL2HBO.js} +2 -2
- package/dist/{chunk-7JYEP4TW.js → chunk-G7OPT6HL.js} +2 -2
- package/dist/{chunk-25WKPUPK.js → chunk-GY3DIGQB.js} +2 -2
- package/dist/chunk-HCE5UWRA.cjs +2 -0
- package/dist/chunk-HCE5UWRA.cjs.map +1 -0
- package/dist/{chunk-MVTKILPI.cjs → chunk-HKBWBHQ3.cjs} +2 -2
- package/dist/chunk-HKBWBHQ3.cjs.map +1 -0
- package/dist/{chunk-DUTK2D77.cjs → chunk-IHRIOXDZ.cjs} +2 -2
- package/dist/{chunk-DUTK2D77.cjs.map → chunk-IHRIOXDZ.cjs.map} +1 -1
- package/dist/{chunk-PL7IE4EC.js → chunk-KGVQQKNR.js} +2 -2
- package/dist/{chunk-DY6RMJJK.cjs → chunk-KOZF2WEA.cjs} +2 -2
- package/dist/chunk-KOZF2WEA.cjs.map +1 -0
- package/dist/{chunk-M7TCBWAB.js → chunk-KXDP4F6H.js} +2 -2
- package/dist/{chunk-PBG65NPI.js → chunk-LLA23PXV.js} +2 -2
- package/dist/{chunk-47SVTDUJ.js → chunk-LXIU2YVJ.js} +2 -2
- package/dist/chunk-LZAJKLTJ.js +2 -0
- package/dist/chunk-LZAJKLTJ.js.map +1 -0
- package/dist/{chunk-SUPJG4Y2.js → chunk-MFEQZ4NH.js} +2 -2
- package/dist/chunk-MFK27PDQ.cjs +2 -0
- package/dist/{chunk-X375623D.cjs.map → chunk-MFK27PDQ.cjs.map} +1 -1
- package/dist/chunk-MNDP6M4C.js +1 -0
- package/dist/chunk-MOWP2RBP.cjs +2 -0
- package/dist/chunk-MOWP2RBP.cjs.map +1 -0
- package/dist/{chunk-VSXOJYNZ.cjs → chunk-NHTV3UPL.cjs} +2 -2
- package/dist/{chunk-VSXOJYNZ.cjs.map → chunk-NHTV3UPL.cjs.map} +1 -1
- package/dist/{chunk-RCT2GXKQ.cjs → chunk-NQEPSSO2.cjs} +2 -2
- package/dist/{chunk-RCT2GXKQ.cjs.map → chunk-NQEPSSO2.cjs.map} +1 -1
- package/dist/{chunk-OGNEGHHJ.cjs → chunk-NRZLSOHT.cjs} +2 -2
- package/dist/chunk-NRZLSOHT.cjs.map +1 -0
- package/dist/{chunk-S2TSPHHP.js → chunk-O45IUDO7.js} +2 -2
- package/dist/{chunk-HT2VGSOC.cjs → chunk-OIOU3THS.cjs} +2 -2
- package/dist/{chunk-HT2VGSOC.cjs.map → chunk-OIOU3THS.cjs.map} +1 -1
- package/dist/chunk-OOTCYORD.js +2 -0
- package/dist/chunk-OOTCYORD.js.map +1 -0
- package/dist/{chunk-QZD36HZL.cjs → chunk-ORPMJ75E.cjs} +2 -2
- package/dist/{chunk-QZD36HZL.cjs.map → chunk-ORPMJ75E.cjs.map} +1 -1
- package/dist/{chunk-Z6XHALPL.js → chunk-P3O3JX2O.js} +2 -2
- package/dist/{chunk-6Y7WTQVG.js → chunk-PKJ6SFGO.js} +2 -2
- package/dist/{chunk-6K2ZECAZ.js → chunk-PPDA7WI4.js} +2 -2
- package/dist/{chunk-6ZLJSWLM.cjs → chunk-QHU5L465.cjs} +2 -2
- package/dist/{chunk-6ZLJSWLM.cjs.map → chunk-QHU5L465.cjs.map} +1 -1
- package/dist/chunk-QHVB4SNR.js +3 -0
- package/dist/chunk-QHVB4SNR.js.map +1 -0
- package/dist/{chunk-U7YH3JVM.js → chunk-QRJ6CPZI.js} +2 -2
- package/dist/{chunk-XAJUO7BH.js → chunk-QSAFIBCK.js} +2 -2
- package/dist/{chunk-I5YVETCQ.cjs → chunk-QTRZBP6S.cjs} +2 -2
- package/dist/{chunk-I5YVETCQ.cjs.map → chunk-QTRZBP6S.cjs.map} +1 -1
- package/dist/{chunk-OYAZQOT3.cjs → chunk-QVOKQH4R.cjs} +2 -2
- package/dist/{chunk-OYAZQOT3.cjs.map → chunk-QVOKQH4R.cjs.map} +1 -1
- package/dist/chunk-RIXMGBZQ.cjs +3 -0
- package/dist/chunk-RIXMGBZQ.cjs.map +1 -0
- package/dist/chunk-RRWPNX5I.js +2 -0
- package/dist/chunk-RRWPNX5I.js.map +1 -0
- package/dist/{chunk-WR6QCC7M.cjs → chunk-SGVPHVXN.cjs} +2 -2
- package/dist/{chunk-WR6QCC7M.cjs.map → chunk-SGVPHVXN.cjs.map} +1 -1
- package/dist/chunk-SN22QMLJ.cjs +1 -0
- package/dist/chunk-SN22QMLJ.cjs.map +1 -0
- package/dist/{chunk-P67NJXJB.cjs → chunk-SYCPUJY6.cjs} +2 -2
- package/dist/{chunk-P67NJXJB.cjs.map → chunk-SYCPUJY6.cjs.map} +1 -1
- package/dist/{chunk-JVWHUOOY.cjs → chunk-TH5SSUXM.cjs} +3 -3
- package/dist/{chunk-JVWHUOOY.cjs.map → chunk-TH5SSUXM.cjs.map} +1 -1
- package/dist/{chunk-4SKL5XXG.cjs → chunk-TNZGMZGR.cjs} +1 -1
- package/dist/chunk-TNZGMZGR.cjs.map +1 -0
- package/dist/{chunk-3VDPEJAS.js → chunk-TY2IJCPS.js} +2 -2
- package/dist/{chunk-BNMSTFVY.cjs → chunk-UKLSZJTQ.cjs} +2 -2
- package/dist/{chunk-BNMSTFVY.cjs.map → chunk-UKLSZJTQ.cjs.map} +1 -1
- package/dist/{chunk-XRSSOHB3.cjs → chunk-UKSSXBSQ.cjs} +2 -2
- package/dist/chunk-UKSSXBSQ.cjs.map +1 -0
- package/dist/{chunk-3EDQ6AO4.js → chunk-VOAQ3XQN.js} +2 -2
- package/dist/{chunk-2FUSCDBB.cjs → chunk-VUF6POXZ.cjs} +2 -2
- package/dist/chunk-VUF6POXZ.cjs.map +1 -0
- package/dist/{chunk-7HCVIDPQ.js → chunk-W7QLONZN.js} +2 -2
- package/dist/{chunk-BOM3HKWA.cjs → chunk-WBCIZCIT.cjs} +2 -2
- package/dist/{chunk-BOM3HKWA.cjs.map → chunk-WBCIZCIT.cjs.map} +1 -1
- package/dist/{chunk-D5MT7SAA.cjs → chunk-WZXFXFPZ.cjs} +2 -2
- package/dist/{chunk-D5MT7SAA.cjs.map → chunk-WZXFXFPZ.cjs.map} +1 -1
- package/dist/{chunk-WGYEX7AJ.cjs → chunk-XQZFGGB5.cjs} +2 -2
- package/dist/{chunk-WGYEX7AJ.cjs.map → chunk-XQZFGGB5.cjs.map} +1 -1
- package/dist/chunk-YFYLOTJ6.js +1 -0
- package/dist/chunk-YFYLOTJ6.js.map +1 -0
- package/dist/{chunk-CR2WSRFB.cjs → chunk-YOWA3XPM.cjs} +2 -2
- package/dist/{chunk-CR2WSRFB.cjs.map → chunk-YOWA3XPM.cjs.map} +1 -1
- package/dist/{chunk-NIOT5ALA.cjs → chunk-YSJNSGVQ.cjs} +2 -2
- package/dist/{chunk-NIOT5ALA.cjs.map → chunk-YSJNSGVQ.cjs.map} +1 -1
- package/dist/{chunk-TVWT25NF.js → chunk-Z6354MCN.js} +2 -2
- package/dist/{chunk-GMJXOP7Z.js → chunk-ZB6EQQDT.js} +2 -2
- package/dist/{chunk-TSLCXYM6.js → chunk-ZN3QH3MM.js} +1 -1
- package/dist/chunk-ZN3QH3MM.js.map +1 -0
- package/dist/chunk-ZS3PXTRG.js +4 -0
- package/dist/chunk-ZS3PXTRG.js.map +1 -0
- package/dist/common/bin/index.cjs +1 -1
- package/dist/common/bin/index.js +1 -1
- package/dist/common/data/array.cjs +1 -1
- package/dist/common/data/array.js +1 -1
- package/dist/common/data/datauri.cjs +1 -1
- package/dist/common/data/datauri.js +1 -1
- package/dist/common/data/deep.cjs +1 -1
- package/dist/common/data/deep.js +1 -1
- package/dist/common/data/index.cjs +1 -1
- package/dist/common/data/index.cjs.map +1 -1
- package/dist/common/data/index.js +1 -1
- package/dist/common/data/object-changes.cjs +1 -1
- package/dist/common/data/object-changes.js +1 -1
- package/dist/common/data/rounding.cjs +1 -1
- package/dist/common/data/rounding.js +1 -1
- package/dist/common/data/signal.cjs +1 -1
- package/dist/common/data/signal.js +1 -1
- package/dist/common/data/xrx.cjs +1 -1
- package/dist/common/data/xrx.d.cts +1 -4
- package/dist/common/data/xrx.d.ts +1 -4
- package/dist/common/data/xrx.js +1 -1
- package/dist/common/dispose-defer.cjs +1 -1
- package/dist/common/dispose-defer.js +1 -1
- package/dist/common/dispose-utils.cjs +1 -1
- package/dist/common/dispose-utils.js +1 -1
- package/dist/common/exec/index.cjs +1 -1
- package/dist/common/exec/index.cjs.map +1 -1
- package/dist/common/exec/index.js +1 -1
- package/dist/common/exec/pool.cjs +1 -1
- package/dist/common/exec/pool.js +1 -1
- package/dist/common/exec/progress.cjs +1 -1
- package/dist/common/exec/progress.js +1 -1
- package/dist/common/exec/queue.cjs +1 -1
- package/dist/common/exec/queue.js +1 -1
- package/dist/common/index.cjs +1 -1
- package/dist/common/index.cjs.map +1 -1
- package/dist/common/index.d.cts +1 -21
- package/dist/common/index.d.ts +1 -21
- package/dist/common/index.js +1 -1
- package/dist/common/log/index.cjs +1 -1
- package/dist/common/log/index.cjs.map +1 -1
- package/dist/common/log/index.js +1 -1
- package/dist/common/log/log-memory.cjs +1 -1
- package/dist/common/log/log-memory.js +1 -1
- package/dist/common/msg/channel-debug.cjs +1 -1
- package/dist/common/msg/channel-debug.js +1 -1
- package/dist/common/msg/channel-local.cjs +1 -1
- package/dist/common/msg/channel-local.js +1 -1
- package/dist/common/msg/channel-resilient.cjs +1 -1
- package/dist/common/msg/channel-resilient.js +1 -1
- package/dist/common/msg/channel.cjs +1 -1
- package/dist/common/msg/channel.js +1 -1
- package/dist/common/msg/emitter.cjs +1 -1
- package/dist/common/msg/emitter.js +1 -1
- package/dist/common/msg/index.cjs +1 -1
- package/dist/common/msg/index.cjs.map +1 -1
- package/dist/common/msg/index.js +1 -1
- package/dist/common/msg/messages.cjs +1 -1
- package/dist/common/msg/messages.js +1 -1
- package/dist/common/msg/pubsub.cjs +1 -1
- package/dist/common/msg/pubsub.js +1 -1
- package/dist/common/network.cjs +1 -1
- package/dist/common/network.js +1 -1
- package/dist/common/schema/index.cjs +1 -1
- package/dist/common/schema/index.cjs.map +1 -1
- package/dist/common/schema/index.d.cts +1 -0
- package/dist/common/schema/index.d.ts +1 -0
- package/dist/common/schema/index.js +1 -1
- package/dist/common/schema/parse-args.cjs +1 -1
- package/dist/common/schema/parse-args.cjs.map +1 -1
- package/dist/common/schema/parse-args.js +1 -1
- package/dist/common/schema/parse-env.cjs +1 -1
- package/dist/common/schema/parse-env.cjs.map +1 -1
- package/dist/common/schema/parse-env.js +1 -1
- package/dist/common/schema/parse-object.cjs +2 -0
- package/dist/common/schema/parse-object.cjs.map +1 -0
- package/dist/common/schema/parse-object.d.cts +20 -0
- package/dist/common/schema/parse-object.d.ts +20 -0
- package/dist/common/schema/parse-object.js +2 -0
- package/dist/common/schema/parse-object.js.map +1 -0
- package/dist/common/schema/schema.cjs +1 -1
- package/dist/common/schema/schema.d.cts +5 -11
- package/dist/common/schema/schema.d.ts +5 -11
- package/dist/common/schema/schema.js +1 -1
- package/dist/common/time.cjs +1 -1
- package/dist/common/time.js +1 -1
- package/dist/common/timeout.cjs +1 -1
- package/dist/common/timeout.js +1 -1
- package/dist/common/uuid.cjs +1 -1
- package/dist/common/uuid.d.cts +3 -3
- package/dist/common/uuid.d.ts +3 -3
- package/dist/common/uuid.js +1 -1
- package/dist/index.all.cjs +1 -1
- package/dist/index.all.cjs.map +1 -1
- package/dist/index.all.d.cts +1 -1
- package/dist/index.all.d.ts +1 -1
- package/dist/index.all.js +1 -1
- package/dist/index.browser.cjs +1 -1
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.d.cts +1 -1
- package/dist/index.browser.d.ts +1 -1
- package/dist/index.browser.js +1 -1
- package/dist/index.jsr.cjs +2 -0
- package/dist/index.jsr.cjs.map +1 -0
- package/dist/index.jsr.d.cts +5 -0
- package/dist/index.jsr.d.ts +5 -0
- package/dist/index.jsr.js +2 -0
- package/dist/index.jsr.js.map +1 -0
- package/dist/index.node.cjs +1 -1
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.d.cts +1 -1
- package/dist/index.node.d.ts +1 -1
- package/dist/index.node.js +1 -1
- package/dist/node/files-async.cjs +1 -1
- package/dist/node/files-async.js +1 -1
- package/dist/node/files.cjs +1 -1
- package/dist/node/files.js +1 -1
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/log/index.cjs +1 -1
- package/dist/node/log/index.cjs.map +1 -1
- package/dist/node/log/index.js +1 -1
- package/dist/node/log/log-context-node.cjs +1 -1
- package/dist/node/log/log-context-node.js +1 -1
- package/dist/node/log/log-node.cjs +1 -1
- package/dist/node/log/log-node.js +1 -1
- package/package.json +9 -9
- package/dist/chunk-2FUSCDBB.cjs.map +0 -1
- package/dist/chunk-37WX4OII.js +0 -2
- package/dist/chunk-3JYK34SS.js.map +0 -1
- package/dist/chunk-4SKL5XXG.cjs.map +0 -1
- package/dist/chunk-4UZG3DJM.js +0 -4
- package/dist/chunk-4UZG3DJM.js.map +0 -1
- package/dist/chunk-CXWP357D.cjs +0 -1
- package/dist/chunk-CXWP357D.cjs.map +0 -1
- package/dist/chunk-DY6RMJJK.cjs.map +0 -1
- package/dist/chunk-ENO2S7A6.js +0 -2
- package/dist/chunk-ENO2S7A6.js.map +0 -1
- package/dist/chunk-GEMIICZ3.cjs +0 -3
- package/dist/chunk-GEMIICZ3.cjs.map +0 -1
- package/dist/chunk-GI5KLMI3.js +0 -1
- package/dist/chunk-GNFY5RXJ.js +0 -2
- package/dist/chunk-GNFY5RXJ.js.map +0 -1
- package/dist/chunk-I2AG7VBC.cjs +0 -4
- package/dist/chunk-I2AG7VBC.cjs.map +0 -1
- package/dist/chunk-JKYONBGO.js +0 -2
- package/dist/chunk-JKYONBGO.js.map +0 -1
- package/dist/chunk-KBV6B6VE.js +0 -2
- package/dist/chunk-KBV6B6VE.js.map +0 -1
- package/dist/chunk-MJLJAWQU.cjs +0 -2
- package/dist/chunk-MJLJAWQU.cjs.map +0 -1
- package/dist/chunk-MPPDQFG7.js +0 -3
- package/dist/chunk-MPPDQFG7.js.map +0 -1
- package/dist/chunk-MVTKILPI.cjs.map +0 -1
- package/dist/chunk-OGNEGHHJ.cjs.map +0 -1
- package/dist/chunk-PW7VXIKT.js +0 -2
- package/dist/chunk-PW7VXIKT.js.map +0 -1
- package/dist/chunk-PWOQR4XN.cjs +0 -2
- package/dist/chunk-PWOQR4XN.cjs.map +0 -1
- package/dist/chunk-TSLCXYM6.js.map +0 -1
- package/dist/chunk-WYDZGMP2.js.map +0 -1
- package/dist/chunk-X375623D.cjs +0 -2
- package/dist/chunk-XRSSOHB3.cjs.map +0 -1
- /package/dist/{chunk-XVJBLOJN.js.map → chunk-23LAWLUA.js.map} +0 -0
- /package/dist/{chunk-37WX4OII.js.map → chunk-3NN7GCMG.js.map} +0 -0
- /package/dist/{chunk-L32SZCS2.js.map → chunk-5BU2RTLI.js.map} +0 -0
- /package/dist/{chunk-HK7ZBUGP.js.map → chunk-BQTR3A4K.js.map} +0 -0
- /package/dist/{chunk-GLXW4DRV.js.map → chunk-E2HNYDJ3.js.map} +0 -0
- /package/dist/{chunk-LG6Q6ZYH.js.map → chunk-FB652MJM.js.map} +0 -0
- /package/dist/{chunk-KGZLR63U.js.map → chunk-FLFL2HBO.js.map} +0 -0
- /package/dist/{chunk-7JYEP4TW.js.map → chunk-G7OPT6HL.js.map} +0 -0
- /package/dist/{chunk-25WKPUPK.js.map → chunk-GY3DIGQB.js.map} +0 -0
- /package/dist/{chunk-PL7IE4EC.js.map → chunk-KGVQQKNR.js.map} +0 -0
- /package/dist/{chunk-M7TCBWAB.js.map → chunk-KXDP4F6H.js.map} +0 -0
- /package/dist/{chunk-PBG65NPI.js.map → chunk-LLA23PXV.js.map} +0 -0
- /package/dist/{chunk-47SVTDUJ.js.map → chunk-LXIU2YVJ.js.map} +0 -0
- /package/dist/{chunk-SUPJG4Y2.js.map → chunk-MFEQZ4NH.js.map} +0 -0
- /package/dist/{chunk-GI5KLMI3.js.map → chunk-MNDP6M4C.js.map} +0 -0
- /package/dist/{chunk-S2TSPHHP.js.map → chunk-O45IUDO7.js.map} +0 -0
- /package/dist/{chunk-Z6XHALPL.js.map → chunk-P3O3JX2O.js.map} +0 -0
- /package/dist/{chunk-6Y7WTQVG.js.map → chunk-PKJ6SFGO.js.map} +0 -0
- /package/dist/{chunk-6K2ZECAZ.js.map → chunk-PPDA7WI4.js.map} +0 -0
- /package/dist/{chunk-U7YH3JVM.js.map → chunk-QRJ6CPZI.js.map} +0 -0
- /package/dist/{chunk-XAJUO7BH.js.map → chunk-QSAFIBCK.js.map} +0 -0
- /package/dist/{chunk-3VDPEJAS.js.map → chunk-TY2IJCPS.js.map} +0 -0
- /package/dist/{chunk-3EDQ6AO4.js.map → chunk-VOAQ3XQN.js.map} +0 -0
- /package/dist/{chunk-7HCVIDPQ.js.map → chunk-W7QLONZN.js.map} +0 -0
- /package/dist/{chunk-TVWT25NF.js.map → chunk-Z6354MCN.js.map} +0 -0
- /package/dist/{chunk-GMJXOP7Z.js.map → chunk-ZB6EQQDT.js.map} +0 -0
package/dist/chunk-PWOQR4XN.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } 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 _chunkPWWR4H26cjs = require('./chunk-PWWR4H26.cjs');var s=class{constructor(e,t){this.extend=e=>{let t={...this._object,...e};return R(t)};this.type=e,this._check=_nullishCoalesce(t, () => ((()=>!0)))}optional(){return this._optional=!0,this}default(e){return this._default=e,this}parse(e){if(e==null&&this._default!=null&&(_chunkPWWR4H26cjs.b.call(void 0, this._default)?e=this._default():e=this._default),!(e==null&&this._optional===!0)){if(e==null)throw new Error(`cannot be undefined, is ${e}`);if(!this._check||this._check(e))return e;throw new Error("wrong value")}}map(e,t){return _nullishCoalesce(t.call(this,e,this), () => (e))}props(e){return this._props=e,this}describe(e){return this._props||(this._props={}),this._props.desc=e,this}},y=class extends s{};function i(n,e){let t=new y(n,_optionalChain([e, 'optionalAccess', _2 => _2._check]));return _optionalChain([e, 'optionalAccess', _3 => _3._default])!==void 0&&(t._default=_optionalChain([e, 'optionalAccess', _4 => _4._default])),_optionalChain([e, 'optionalAccess', _5 => _5._optional])!==void 0&&(t._optional=_optionalChain([e, 'optionalAccess', _6 => _6._optional])),_optionalChain([e, 'optionalAccess', _7 => _7._props])!==void 0&&(t._props=_optionalChain([e, 'optionalAccess', _8 => _8._props])),_optionalChain([e, 'optionalAccess', _9 => _9._object])!==void 0&&(t._object=_optionalChain([e, 'optionalAccess', _10 => _10._object])),t}var f=class extends s{pattern(e){return this}};function A(){return new f("string",_chunkPWWR4H26cjs.h)}function a(){return i("number",{_check:_chunkPWWR4H26cjs.i})}var v=a,P= exports.e =a,E= exports.f =a;function U(){return i("int",{_check:_chunkPWWR4H26cjs.j})}function V(){return i("boolean",{_check:_chunkPWWR4H26cjs.l})}function I(){return i("none",{_check:n=>n==null,_optional:!0})}function H(){return i("any",{_check:n=>n!=null})}var u=class extends s{constructor(e){super("object",()=>!0),this._object=e}parse(e){if(e==null&&this._optional===!0)return;let t={};if(!_chunkPWWR4H26cjs.a.call(void 0, e))return new Error("expected object input");if(!_chunkPWWR4H26cjs.a.call(void 0, this._object))return new Error("expected object definition");for(let[r,o]of Object.entries(this._object)){let p=o.parse(e[r]);p!==void 0&&(t[r]=p)}return t}map(e,t){let r=t.call(this,e,this);if(r!==void 0)return r;let o={};if(e)for(let[p,K]of Object.entries(_nullishCoalesce(this._object, () => ({})))){let b=K.map(e[p],t);b!==void 0&&(o[p]=b)}return o}};function R(n){return new u(n)}function F(n){return new u(n)}var d=class extends s{constructor(e){super("union",t=>!0),this._union=e}};function L(n){return new d(n)}var l=class extends s{constructor(e){super("string",t=>e.includes(t)),this._enumValues=e}};function z(n){return i("literal",{_check:e=>e===n,_default:n})}function j(n){return new l(n)}function B(n){return i("tuple",{_check:e=>n.every((t,r)=>t._check(e[r]))})}var x=class extends s{constructor(e,t){super(e,_chunkPWWR4H26cjs.e),this._type=t}};function N(n){return new x("array",n)}var _=class extends s{constructor(e,t,r){super(e,o=>_chunkPWWR4H26cjs.b.call(void 0, o)),this._args=t,this._ret=r}};function $(n,e){return new _("function",n,e)}var h=class extends s{constructor(e,t,r){super(e,o=>_chunkPWWR4H26cjs.b.call(void 0, o)),this._info=t,this._ret=r}};function q(n,e){return new h("rpc",n,_nullishCoalesce(e, () => (I())))}var J={string:A,number:a,int:U,boolean:V,none:I,any:H,enum:j,object:R,array:N,tuple:B,union:L,func:$,rpc:q,literal:z,stringLiterals:j,float:v,double:P,real:E,record:F};exports.a = s; exports.b = A; exports.c = a; exports.d = v; exports.e = P; exports.f = E; exports.g = U; exports.h = V; exports.i = I; exports.j = H; exports.k = u; exports.l = R; exports.m = F; exports.n = d; exports.o = L; exports.p = l; exports.q = z; exports.r = j; exports.s = B; exports.t = x; exports.u = N; exports.v = $; exports.w = h; exports.x = q; exports.y = J;
|
|
2
|
-
//# sourceMappingURL=chunk-PWOQR4XN.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-PWOQR4XN.cjs","../src/common/schema/schema.ts"],"names":["TypeClass","name","check","obj","newObj","object","value","isFunction"],"mappings":"AAAA,yuBAAkF,IC8B5DA,CAAAA,CAAf,KAAyD,CAI9D,WAAA,CAAYC,CAAAA,CAAcC,CAAAA,CAA+B,CAyDzD,IAAA,CAAA,MAAA,CAAmDC,CAAAA,EAAa,CAC9D,IAAMC,CAAAA,CAAS,CAAE,GAAG,IAAA,CAAK,OAAA,CAAS,GAAGD,CAAI,CAAA,CACzC,OAAOE,CAAAA,CAAOD,CAAM,CACtB,CAAA,CA3DE,IAAA,CAAK,IAAA,CAAOH,CAAAA,CACZ,IAAA,CAAK,MAAA,kBAASC,CAAAA,SAAAA,CAAU,CAAA,CAAA,EAAM,CAAA,CAAA,GAChC,CAMA,QAAA,CAAA,CAAqC,CACnC,OAAA,IAAA,CAAK,SAAA,CAAY,CAAA,CAAA,CACV,IACT,CAIA,OAAA,CAAQI,CAAAA,CAA0B,CAChC,OAAA,IAAA,CAAK,QAAA,CAAWA,CAAAA,CACT,IACT,CAEA,KAAA,CAAMH,CAAAA,CAAa,CASjB,EAAA,CARIA,CAAAA,EAAO,IAAA,EACL,IAAA,CAAK,QAAA,EAAY,IAAA,EAAA,CACfI,iCAAAA,IAAW,CAAK,QAAQ,CAAA,CAC1BJ,CAAAA,CAAM,IAAA,CAAK,QAAA,CAAS,CAAA,CAEpBA,CAAAA,CAAM,IAAA,CAAK,QAAA,CAAA,CAGb,CAAA,CAAAA,CAAAA,EAAO,IAAA,EAAQ,IAAA,CAAK,SAAA,GAAc,CAAA,CAAA,CAAA,CAEtC,CAAA,EAAA,CAAIA,CAAAA,EAAO,IAAA,CACT,MAAM,IAAI,KAAA,CAAM,CAAA,wBAAA,EAA2BA,CAAG,CAAA,CAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-PWOQR4XN.cjs","sourcesContent":[null,"// With many, many inspiration from https://github.com/badrap/valita MIT License as of 2024-09-10\n\nimport { isArray, isBoolean, isFunction, isInteger, isNumber, isObject, isString } from '../data/is'\nimport { first } from '../data/utils'\n\nexport interface TypeProps {\n desc?: string\n}\n\n// export interface TypeAssert {\n// fn: (obj: any) => boolean | never\n// message?: string\n// }\n\nexport interface Type<T = unknown> {\n _default?: T\n _optional?: boolean\n _props?: TypeProps\n _object?: T\n readonly type: string\n readonly _check: (obj: any) => boolean\n optional: () => Type<T | undefined>\n default: (value: any) => Type<T>\n parse: (obj: any) => T\n map: (obj: any, fn: (this: Type<T>, obj: any, schema: Type<T>) => any) => any\n props: (props: TypeProps) => Type<T>\n describe: (msg: string) => Type<T>\n extend: <O>(obj: O) => Type<T & InferObject<O>>\n}\n\nexport abstract class TypeClass<T = unknown> implements Type<T> {\n readonly type\n readonly _check\n\n constructor(name: string, check?: (obj: any) => boolean) {\n this.type = name\n this._check = check ?? (() => true)\n }\n\n _object?: T\n\n _optional?: boolean\n\n optional(): TypeClass<T | undefined> { // todo keep the inherited class type\n this._optional = true\n return this\n }\n\n _default?: T\n\n default(value: any): TypeClass<T> { // todo keep the inherited class type\n this._default = value\n return this\n }\n\n parse(obj: any): T {\n if (obj == null) {\n if (this._default != null) {\n if (isFunction(this._default))\n obj = this._default()\n else\n obj = this._default\n }\n }\n if (obj == null && this._optional === true)\n return undefined as any\n if (obj == null)\n throw new Error(`cannot be undefined, is ${obj}`)\n if (!this._check || this._check(obj))\n return obj\n throw new Error('wrong value')\n }\n\n map(obj: any, fn: (this: Type<T>, obj: any, schema: Type<T>) => any): any {\n return fn.call(this, obj, this) ?? obj\n }\n\n _props?: TypeProps\n\n props(props: TypeProps) {\n this._props = props\n return this\n }\n\n describe(msg: string) {\n if (!this._props)\n this._props = {}\n this._props.desc = msg\n return this\n }\n\n extend: <O>(obj: O) => Type<T & InferObject<O>> = (obj: any) => {\n const newObj = { ...this._object, ...obj }\n return object(newObj) as any\n }\n}\n\nexport type Infer<T> = T extends Type<infer TT> ? TT : never\n\n// Helper\n\nclass TypeGeneric<T> extends TypeClass<T> {\n}\n\nfunction generic<T = unknown>(type: string, opt?: Partial<Type<T>>): Type<T> {\n const t = new TypeGeneric<T>(type, opt?._check)\n if (opt?._default !== undefined)\n t._default = opt?._default\n if (opt?._optional !== undefined)\n t._optional = opt?._optional\n if (opt?._props !== undefined)\n t._props = opt?._props\n if (opt?._object !== undefined)\n t._object = opt?._object\n return t\n}\n\n// Primitives\n\nclass TypeStringClass<T extends string> extends TypeClass<T> {\n pattern(rx: RegExp) {\n // this.ass\n return this\n }\n}\n\n/// Just a simple string type\nexport function string() {\n return new TypeStringClass<string>('string', isString)\n}\n\n/// Number as in Javascript, could be float or int\nexport function number() {\n return generic<number>('number', {\n _check: isNumber,\n })\n}\n\nexport const float = number\nexport const double = number\nexport const real = number\n\n/// Integer\nexport function int() {\n return generic<number>('int', {\n _check: isInteger,\n })\n}\n\n/// Boolean\nexport function boolean() {\n return generic<boolean>('boolean', {\n _check: isBoolean,\n })\n}\n\n// Like undefined | null in TS and nil in Swift\nexport function none() {\n return generic<undefined>('none', {\n _check: v => v == null,\n _optional: true,\n })\n}\n\n/// todo: appears to result in optional inside object\nexport function any<T = any>() {\n return generic<T>('any', {\n _check: v => v != null,\n // _optional: false,\n })\n}\n\n// Object\n\ntype ObjectFixOptional<T> = {\n [K in keyof T as undefined extends T[K] ? K : never]?: T[K] & {}\n} & {\n [K in keyof T as undefined extends T[K] ? never : K]: T[K] & {}\n}\n\ntype ObjectPretty<V> = Extract<{ [K in keyof V]: V[K] }, unknown>\n\nexport type InferObject<T> = ObjectPretty<ObjectFixOptional<{\n [K in keyof T]: Infer<T[K]>\n}>>\n\n// interface TypeObject<T = unknown> extends Type<T> {\n// _object: T\n// }\n\nexport class TypeObjectClass<T, O = InferObject<T>> extends TypeClass<O> {\n constructor(obj: T) {\n super('object', () => true)\n this._object = obj as any\n }\n\n parse(obj: any) {\n if (obj == null && this._optional === true)\n return undefined\n const newObj: any = {}\n if (!isObject(obj))\n return new Error('expected object input')\n if (!isObject(this._object))\n return new Error('expected object definition')\n for (const [key, info] of Object.entries(this._object)) {\n const value = info.parse((obj as any)[key])\n if (value !== undefined)\n newObj[key] = value\n }\n return newObj\n }\n\n map(obj: any, fn: (this: Type<O>, obj: any, schema: Type<O>) => any): any {\n const result = fn.call(this as any, obj, this as any)\n if (result !== undefined)\n return result\n const newObj: any = {}\n if (obj) {\n for (const [key, info] of Object.entries(this._object ?? {})) {\n const value = (info as Type).map((obj as any)[key], fn as any)\n if (value !== undefined)\n newObj[key] = value\n }\n }\n return newObj\n }\n}\n\n/// Object that can have any properties\nexport function object<T>(tobj: T): Type<InferObject<T>> {\n return new TypeObjectClass(tobj)\n}\n\nexport function record<T extends Type>(tobj: T): Type<Record<string, Infer<T>>> {\n return new TypeObjectClass(tobj)\n}\n\n// const schemaRecord = record(int())\n// const schemaRecord = record(object({ a: int() }))\n// type SchemaRecord = Infer<typeof schemaRecord> // expected Record<string, number>\n\n// Union\n\ntype TransformToUnion<T extends (Type<any>)[]> = T extends Array<infer U> ? Infer<U> : never\n\nexport class TypeUnion<T> extends TypeClass<T> {\n _union: Type<any>[]\n constructor(unionTypes: Type<any>[]) {\n super('union', v => true) // todo\n this._union = unionTypes\n }\n}\n\n/// Union of types, like `string | number | boolean`\nexport function union<T extends (Type<any>)[]>(options: T): Type<TransformToUnion<T>> {\n return new TypeUnion<TransformToUnion<T>>(options)\n}\n\n// Literals\n\ntype Literal = string | number | bigint | boolean\n\nexport class TypeStringLiterals<T> extends TypeClass<T> {\n _enumValues: string[]\n constructor(values: string[]) {\n super('string', v => values.includes(v))\n this._enumValues = values\n }\n}\n\n/// todo: string?\nexport function literal<T extends Literal>(value: T): Type<T> {\n return generic<T>('literal', {\n _check: v => v === value,\n _default: value,\n })\n}\n\n/// Sting that can only be one of the values, like: `\"a\" | \"b\" | \"c\"``\nexport function stringLiterals<const T extends readonly string[], O = T[number]>(values: T): Type<O> {\n return new TypeStringLiterals<O>(values as any)\n}\n\n/// Sting that can only be one of the values, like: `\"a\" | \"b\" | \"c\"``\n// function zEnum<const T extends readonly (string | number | boolean | bigint)[], O = T[number]>(value: T): Type<O> {\n// return generic<O>('enum', {\n// _check: v => value.includes(v),\n// })\n// }\n\n// export { zEnum as enum } // Export as enum to avoid conflicts with real enum types\n\n// Functions\n\ntype TupleOutput<T extends Type[]> = {\n [K in keyof T]: T[K] extends Type<infer U> ? U : never\n}\n\ntype ArrayOutput<Head extends Type[], Rest extends Type | undefined> = [\n ...TupleOutput<Head>,\n ...(Rest extends Type ? Infer<Rest>[] : []),\n]\n\ntype ArrayType<\n Head extends Type[] = Type[],\n Rest extends Type | undefined = Type | undefined,\n> = Type<ArrayOutput<Head, Rest>>\n\n// Like an array but with fixed length and types\nexport function tuple<T extends [] | [Type, ...Type[]]>(items: T): ArrayType<T, undefined> {\n return generic('tuple', {\n _check: v => items.every((item, i) => item._check(v[i])),\n })\n}\n\nexport class TypeArrayClass<T, TT> extends TypeClass<T> {\n constructor(\n name: string,\n type: TT,\n ) {\n super(name, isArray)\n this._type = type\n }\n\n _type?: TT\n}\n\nexport function array<T>(itemType: Type<T>): Type<T[]> {\n return new TypeArrayClass<T[], Type<T>>('array', itemType)\n}\n\n// const tt = tuple([number(), string(), boolean()])\n// type ttt = Infer<typeof tt> // expected [number, string, boolean]\n\n// type Test1 = Expect<IsEqual<ttt, [number, string, boolean]>> // Should pass\n\nclass TypeFuncClass<T, Args, Ret> extends TypeClass<T> {\n constructor(\n name: string,\n args: Args,\n ret?: Ret,\n ) {\n super(name, v => isFunction(v))\n this._args = args\n this._ret = ret\n }\n\n _args?: Args\n _ret?: Ret\n}\n\n/// Regular function\nexport function func<\n Args extends [Type<unknown>, ...Type<any>[]] | [],\n Ret = Type,\n T = (...args: TupleOutput<Args>) => Infer<Ret>,\n>(args: Args, ret: Ret): Type<T> {\n return new TypeFuncClass<T, Args, Ret>('function', args, ret)\n}\n\nexport class TypeRpcClass<T, Info, Ret> extends TypeClass<T> {\n constructor(\n name: string,\n info?: Info,\n ret?: Ret,\n ) {\n super(name, v => isFunction(v))\n this._info = info\n this._ret = ret\n }\n\n _info?: Info\n _ret?: Ret\n}\n\n/// RPC function that only takes one argument and returns a promise\nexport function rpc<\n Info extends Type<unknown> | undefined = undefined,\n Ret extends Type<unknown> = Type<void>, // ReturnType<typeof none>,\n T = Info extends undefined ? () => Infer<Ret> : (info: Infer<Info>) => Infer<Ret> | Promise<Infer<Ret>>,\n>(info?: Info, ret?: Ret) {\n return new TypeRpcClass<T, Info, Ret>('rpc', info, ret ?? none() as Ret)\n}\n\n/// Reduce conflicts with real type names, use like z.string()\nexport const z = {\n string,\n number,\n int,\n boolean,\n none,\n any,\n enum: stringLiterals,\n object,\n array,\n tuple,\n union,\n func,\n rpc,\n literal,\n stringLiterals,\n float,\n double,\n real,\n record,\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/data/deep.ts"],"sourcesContent":["/* eslint-disable no-prototype-builtins */\n\nimport { isArray, isObject, isPrimitive, isRecord } from './is'\n\nexport function deepEqual(a: any, b: any, hash = new WeakSet()) {\n // if both x and y are null or undefined and exactly the same\n if (a === b)\n return true\n\n // Cyclic\n if (hash.has(b)) {\n // console.log('cyclic')\n return false\n }\n\n if (!isPrimitive(b))\n hash.add(b)\n\n // if they are not strictly equal, they both need to be Objects\n if (!(a instanceof Object) || !(b instanceof Object))\n return false\n\n // they must have the exact same prototype chain, the closest we can do is\n // test there constructor.\n if (a.constructor !== b.constructor)\n return false\n\n // Shortcut to avoid to many loops\n if (a.length !== b.length)\n return false\n\n for (const p in a) {\n // other properties were tested using x.constructor === y.constructor\n if (!a.hasOwnProperty(p))\n continue\n\n // allows to compare x[ p ] and y[ p ] when set to undefined\n if (!b.hasOwnProperty(p))\n return false\n\n const aa = a[p]\n const bb = b[p]\n\n // if they have the same strict value or identity then they are equal\n // if (aa === bb) {\n // console.log('eq', typeof bb)\n // if (bb != null) hash.set(bb, true)\n // continue\n // }\n //\n // // Numbers, Strings, Functions, Booleans must be strictly equal\n // if (typeof (aa) !== 'object') {\n // return false\n // }\n\n // Objects and Arrays must be tested recursively\n if (!deepEqual(aa, bb, hash))\n return false\n }\n\n // allows x[ p ] to be set to undefined\n for (const p in b) {\n if (b.hasOwnProperty(p) && !a.hasOwnProperty(p))\n return false\n }\n\n return true\n}\n\n/** Strip properties with value `undefined` in place */\nexport function deepStripUndefinedInPlace(a: any, hash = new WeakSet()) {\n // Cyclic\n if (hash.has(a))\n return '[Circular ~]'\n if (!isPrimitive(a))\n hash.add(a)\n\n if (isRecord(a)) {\n for (const p in a) {\n if (!a.hasOwnProperty(p))\n continue\n if (a[p] === undefined) {\n delete a[p]\n continue\n }\n deepStripUndefinedInPlace(a[p], hash)\n }\n }\n else if (isArray(a)) {\n for (let i = a.length - 1; i >= 0; i--) {\n if (a[i] === undefined)\n a.splice(i, 1)\n }\n }\n // else ignore\n\n return a\n}\n\nexport function deepMerge(target: any, ...sources: any[]) {\n // todo cyclic protection\n for (const source of sources) {\n if (!isObject(target))\n target = {}\n\n if (source == null || !isObject(source))\n continue\n\n Object.keys(source).forEach((key) => {\n const targetValue = target[key]\n const sourceValue = (source as any)[key]\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue))\n target[key] = targetValue.concat(sourceValue)\n else if (isObject(targetValue) && isObject(sourceValue))\n target[key] = deepMerge(Object.assign({}, targetValue), sourceValue)\n else\n target[key] = sourceValue\n })\n }\n\n return target\n}\n\n// // https://stackoverflow.com/a/40294058/140927\n// // Handles cyclic references\n// export function deepClonePrimitives(obj, hash = new WeakMap()) {\n//\n// // primitives\n// if (Object(obj) !== obj) {\n// // log('Primitive', obj)\n// return obj\n// }\n//\n// // cyclic reference\n// if (hash.has(obj)) {\n// return hash.get(obj)\n// }\n//\n// let result\n//\n// // primitives as objects like new String(), new Number()\n// if (\n// obj instanceof String ||\n// obj instanceof Number ||\n// obj instanceof BigInt ||\n// obj instanceof Boolean ||\n// obj instanceof Symbol\n// ) {\n// result = new obj.constructor(obj.valueOf())\n// // hash.set(obj, result)\n// return result\n// }\n//\n// // log('Obj', obj)\n//\n// if (obj instanceof Set) {\n// result = new Set(obj)\n// } else if (obj instanceof Map) {\n// result = new Map(Array.from(obj, ([key, val]) => [key, deepClonePrimitives(val, hash)]))\n// } else if (obj instanceof Date) {\n// result = new Date(obj)\n// } else if (obj instanceof RegExp) {\n// result = new RegExp(obj.source, obj.flags)\n// } else if (Array.isArray(obj)) {\n// result = Array.from(obj, val => deepClonePrimitives(val, hash))\n// } else if (obj.constructor) {\n// result = new obj.constructor()\n// log('bj object', result)\n// } else if (obj instanceof Function || typeof obj === 'function') {\n// log('Keep object', obj, Object.getPrototypeOf(obj))\n// result = obj\n// } else {\n// result = Object.create(null)\n// }\n//\n// hash.set(obj, result)\n//\n// return Object.assign(result, ...Object.keys(obj).map(key => ({\n// [key]: deepClonePrimitives(obj[key], hash),\n// })))\n// }\n"],"mappings":"6DAIO,SAASA,EAAUC,EAAQC,EAAQC,EAAO,IAAI,QAAW,CAE9D,GAAIF,IAAMC,EACR,MAAO,GAqBT,GAlBIC,EAAK,IAAID,CAAC,IAKTE,EAAYF,CAAC,GAChBC,EAAK,IAAID,CAAC,EAGR,EAAED,aAAa,SAAW,EAAEC,aAAa,UAKzCD,EAAE,cAAgBC,EAAE,aAIpBD,EAAE,SAAWC,EAAE,OACjB,MAAO,GAET,QAAWG,KAAKJ,EAAG,CAEjB,GAAI,CAACA,EAAE,eAAeI,CAAC,EACrB,SAGF,GAAI,CAACH,EAAE,eAAeG,CAAC,EACrB,MAAO,GAET,IAAMC,EAAKL,EAAEI,CAAC,EACRE,EAAKL,EAAEG,CAAC,EAed,GAAI,CAACL,EAAUM,EAAIC,EAAIJ,CAAI,EACzB,MAAO,EACX,CAGA,QAAWE,KAAKH,EACd,GAAIA,EAAE,eAAeG,CAAC,GAAK,CAACJ,EAAE,eAAeI,CAAC,EAC5C,MAAO,GAGX,MAAO,EACT,CAGO,SAASG,EAA0BP,EAAQE,EAAO,IAAI,QAAW,CAEtE,GAAIA,EAAK,IAAIF,CAAC,EACZ,MAAO,eAIT,GAHKG,EAAYH,CAAC,GAChBE,EAAK,IAAIF,CAAC,EAERQ,EAASR,CAAC,GACZ,QAAWI,KAAKJ,EACd,GAAKA,EAAE,eAAeI,CAAC,EAEvB,IAAIJ,EAAEI,CAAC,IAAM,OAAW,CACtB,OAAOJ,EAAEI,CAAC,EACV,QACF,CACAG,EAA0BP,EAAEI,CAAC,EAAGF,CAAI,WAG/BO,EAAQT,CAAC,EAChB,QAASU,EAAIV,EAAE,OAAS,EAAGU,GAAK,EAAGA,IAC7BV,EAAEU,CAAC,IAAM,QACXV,EAAE,OAAOU,EAAG,CAAC,EAKnB,OAAOV,CACT,CAEO,SAASW,EAAUC,KAAgBC,EAAgB,CAExD,QAAWC,KAAUD,EACdE,EAASH,CAAM,IAClBA,EAAS,CAAC,GAER,EAAAE,GAAU,MAAQ,CAACC,EAASD,CAAM,IAGtC,OAAO,KAAKA,CAAM,EAAE,QAASE,GAAQ,CACnC,IAAMC,EAAcL,EAAOI,CAAG,EACxBE,EAAeJ,EAAeE,CAAG,EAEnC,MAAM,QAAQC,CAAW,GAAK,MAAM,QAAQC,CAAW,EACzDN,EAAOI,CAAG,EAAIC,EAAY,OAAOC,CAAW,EACrCH,EAASE,CAAW,GAAKF,EAASG,CAAW,EACpDN,EAAOI,CAAG,EAAIL,EAAU,OAAO,OAAO,CAAC,EAAGM,CAAW,EAAGC,CAAW,EAEnEN,EAAOI,CAAG,EAAIE,CAClB,CAAC,EAGH,OAAON,CACT","names":["deepEqual","a","b","hash","isPrimitive","p","aa","bb","deepStripUndefinedInPlace","isRecord","isArray","i","deepMerge","target","sources","source","isObject","key","targetValue","sourceValue"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/time.ts"],"sourcesContent":["/**\n * @returns Timestamp in miliseconds\n */\nexport function getTimestamp(): number {\n return Date.now()\n}\n\n/**\n * @returns Timestamp in seconds\n */\nexport function getTimestampInSeconds(): number {\n return Math.floor(Date.now() / 1000)\n}\n\n/**\n * @returns Timestamp in seconds\n */\nexport function dateFromSeconds(ts: number): Date {\n return new Date(ts * 1000)\n}\n\n// typeof performance !== \"undefined\" ? performance.now() : new Date().getTime()\n\nexport function formatMilliseconds(ms: number): string {\n return ms > 999 ? `${(ms / 1000).toFixed(1)} s` : `${ms.toFixed(2)} ms`\n}\n\n/**\n * Parses the given date candidates and returns the first valid Date object found.\n *\n * @param dateCandidates - The date candidates to parse, which can be either strings or Date objects.\n * @returns The parsed Date object, or undefined if no valid date is found.\n */\nexport function parseDate(\n ...dateCandidates: (string | Date)[]\n): Date | undefined {\n for (const dateCandidate of dateCandidates) {\n if (dateCandidate instanceof Date)\n return dateCandidate\n\n if (typeof dateCandidate === 'string') {\n let date = null\n if (dateCandidate.includes(':')) {\n try {\n date = new Date(dateCandidate)\n }\n catch (err) {}\n }\n if (!(date instanceof Date)) {\n const m = /(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)/.exec(dateCandidate)\n if (m)\n date = new Date(+m[1], +m[2] - 1, +m[3], 12, 0)\n }\n if (date instanceof Date)\n return date\n }\n }\n}\n\n/**\n * @returns Timestamp in miliseconds\n */\nexport function getPerformanceTimestamp(): number {\n return typeof performance !== 'undefined' ? performance.now() : Date.now()\n}\n\nexport function duration() {\n const t0 = getPerformanceTimestamp()\n\n return function () {\n const duration = getPerformanceTimestamp() - t0\n return formatMilliseconds(duration)\n\n // if (duration > 500)\n // return `${(duration / 1000).toFixed(4)}s`\n\n // // https://elijahmanor.com/format-js-numbers\n // // https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-issanctionedsimpleunitidentifier\n // return duration.toLocaleString('en-US', {\n // style: 'unit',\n // unit: 'millisecond',\n // notation: 'compact',\n // compactDisplay: 'long',\n // })\n }\n}\n\n/** If you parsed a date without time zone, you may need to shift it to local time */\nexport function datetimeToLocal(fromDate: Date): Date {\n return new Date(\n fromDate.getUTCFullYear(),\n fromDate.getUTCMonth(),\n fromDate.getUTCDate(),\n fromDate.getUTCHours(),\n fromDate.getUTCMinutes(),\n fromDate.getUTCSeconds(),\n fromDate.getUTCMilliseconds(),\n )\n}\n\n/** If you parsed a date without time zone, you may need to shift it to UTC time */\nexport function datetimeToUTC(fromDate: Date): Date {\n return new Date(Date.UTC(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n ))\n}\n\n// const tsMs2000 = 946684800000 // same as Jan 11 1970 in ms\n// const tsMs2500 = 16725225600000 // same as Jul 13 1970 in ms\n// 1000000000000\n\n/** ms -> s with simple check. Assume low values are already ms */\nexport function timestampMillisecondsToSeconds(ts: number, smart = true) {\n if (ts <= 0)\n return 0\n if (smart && ts < 1000000000000) { // TODO find a better threshold and add tests\n return ts\n // log.warn('Timestamp might already be in seconds?', ts)\n }\n return Math.floor(ts / 1000)\n}\n\n/** s -> ms with simple check. Assume high values are already ms */\nexport function timestampSecondsToMilliseconds(ts: number, smart = true) {\n if (ts <= 0)\n return 0\n if (smart && ts > 1000000000000) { // TODO find a better threshold and add tests\n return ts\n // log.warn('Timestamp might already be in milliseconds?', ts)\n }\n return Math.floor(ts * 1000)\n}\n\nexport const TIME_YEAR_MS = 31536000000 // 365 * 24 * 60 * 60 * 1000\nexport const TIME_YEAR_S = 31536000 // 365 * 24 * 60 * 60\nexport const TIME_MONTH_MS = 2592000000 // 30 * 24 * 60 * 60 * 1000\nexport const TIME_MONTH_S = 2592000 // 30 * 24 * 60 * 60\nexport const TIME_WEEK_MS = 604800000 // 7 * 24 * 60 * 60 * 1000\nexport const TIME_WEEK_S = 604800 // 7 * 24 * 60 * 60\nexport const TIME_DAY_MS = 86400000 // 24 * 60 * 60 * 1000\nexport const TIME_DAY_S = 86400 // 24 * 60 * 60\nexport const TIME_HOUR_MS = 3600000 // 60 * 60 * 1000\nexport const TIME_HOUR_S = 3600 // 60 * 60\nexport const TIME_MINUTE_MS = 60000 // 60 * 1000\nexport const TIME_MINUTE_S = 60 // 60\n"],"mappings":"AAGO,SAASA,GAAuB,CACrC,OAAO,KAAK,IAAI,CAClB,CAKO,SAASC,GAAgC,CAC9C,OAAO,KAAK,MAAM,KAAK,IAAI,EAAI,GAAI,CACrC,CAKO,SAASC,EAAgBC,EAAkB,CAChD,OAAO,IAAI,KAAKA,EAAK,GAAI,CAC3B,CAIO,SAASC,EAAmBC,EAAoB,CACrD,OAAOA,EAAK,IAAM,IAAIA,EAAK,KAAM,QAAQ,CAAC,CAAC,KAAO,GAAGA,EAAG,QAAQ,CAAC,CAAC,KACpE,CAQO,SAASC,KACXC,EACe,CAClB,QAAWC,KAAiBD,EAAgB,CAC1C,GAAIC,aAAyB,KAC3B,OAAOA,EAET,GAAI,OAAOA,GAAkB,SAAU,CACrC,IAAIC,EAAO,KACX,GAAID,EAAc,SAAS,GAAG,EAC5B,GAAI,CACFC,EAAO,IAAI,KAAKD,CAAa,CAC/B,MACY,CAAC,CAEf,GAAI,EAAEC,aAAgB,MAAO,CAC3B,IAAMC,EAAI,2BAA2B,KAAKF,CAAa,EACnDE,IACFD,EAAO,IAAI,KAAK,CAACC,EAAE,CAAC,EAAG,CAACA,EAAE,CAAC,EAAI,EAAG,CAACA,EAAE,CAAC,EAAG,GAAI,CAAC,EAClD,CACA,GAAID,aAAgB,KAClB,OAAOA,CACX,CACF,CACF,CAKO,SAASE,GAAkC,CAChD,OAAO,OAAO,YAAgB,IAAc,YAAY,IAAI,EAAI,KAAK,IAAI,CAC3E,CAEO,SAASC,GAAW,CACzB,IAAMC,EAAKF,EAAwB,EAEnC,OAAO,UAAY,CACjB,IAAMC,EAAWD,EAAwB,EAAIE,EAC7C,OAAOT,EAAmBQ,CAAQ,CAapC,CACF,CAGO,SAASE,EAAgBC,EAAsB,CACpD,OAAO,IAAI,KACTA,EAAS,eAAe,EACxBA,EAAS,YAAY,EACrBA,EAAS,WAAW,EACpBA,EAAS,YAAY,EACrBA,EAAS,cAAc,EACvBA,EAAS,cAAc,EACvBA,EAAS,mBAAmB,CAC9B,CACF,CAGO,SAASC,EAAcD,EAAsB,CAClD,OAAO,IAAI,KAAK,KAAK,IACnBA,EAAS,YAAY,EACrBA,EAAS,SAAS,EAClBA,EAAS,QAAQ,EACjBA,EAAS,SAAS,EAClBA,EAAS,WAAW,EACpBA,EAAS,WAAW,EACpBA,EAAS,gBAAgB,CAC3B,CAAC,CACH,CAOO,SAASE,EAA+Bd,EAAYe,EAAQ,GAAM,CACvE,OAAIf,GAAM,EACD,EACLe,GAASf,EAAK,KACTA,EAGF,KAAK,MAAMA,EAAK,GAAI,CAC7B,CAGO,SAASgB,EAA+BhB,EAAYe,EAAQ,GAAM,CACvE,OAAIf,GAAM,EACD,EACLe,GAASf,EAAK,KACTA,EAGF,KAAK,MAAMA,EAAK,GAAI,CAC7B,CAEO,IAAMiB,EAAe,QACfC,EAAc,QACdC,EAAgB,OAChBC,EAAe,OACfC,EAAe,OACfC,EAAc,OACdC,EAAc,MACdC,EAAa,MACbC,EAAe,KACfC,EAAc,KACdC,EAAiB,IACjBC,EAAgB","names":["getTimestamp","getTimestampInSeconds","dateFromSeconds","ts","formatMilliseconds","ms","parseDate","dateCandidates","dateCandidate","date","m","getPerformanceTimestamp","duration","t0","datetimeToLocal","fromDate","datetimeToUTC","timestampMillisecondsToSeconds","smart","timestampSecondsToMilliseconds","TIME_YEAR_MS","TIME_YEAR_S","TIME_MONTH_MS","TIME_MONTH_S","TIME_WEEK_MS","TIME_WEEK_S","TIME_DAY_MS","TIME_DAY_S","TIME_HOUR_MS","TIME_HOUR_S","TIME_MINUTE_MS","TIME_MINUTE_S"]}
|
package/dist/chunk-X375623D.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkBNMSTFVYcjs = require('./chunk-BNMSTFVY.cjs');var _chunkDY6RMJJKcjs = require('./chunk-DY6RMJJK.cjs');var _chunkWGYEX7AJcjs = require('./chunk-WGYEX7AJ.cjs');var o=class extends _chunkBNMSTFVYcjs.a{constructor(){super(...arguments);this.id=_chunkDY6RMJJKcjs.q.call(void 0, );this.context={};this.dispose=_chunkWGYEX7AJcjs.b.call(void 0, )}close(){this.dispose()}};exports.a = o;
|
|
2
|
-
//# sourceMappingURL=chunk-X375623D.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-XRSSOHB3.cjs","../src/common/data/rounding.ts"],"names":["isHalf","value","isEven","roundUp","roundDown","roundHalfUp","roundHalfOdd","rounded","roundHalfAwayFromZero","roundHalfDown","roundHalfEven","roundHalfTowardsZero","roundArrayOfNumbersToMatchSum","ipt","max","decimalPlaces","iptPercents","length","out","total","sum","powDecimalPlaces","pow100","check100","i","totalDiff","roundGrain","grainCount","diffs","_","idx","maxDiff","n","roundArrayOfObjectsToMatchSum","arr","name","o"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-XRSSOHB3.cjs","sourcesContent":[null,"// From https://v2.dinerojs.com/docs/api/formatting/to-unit MIT\n\nimport { sum } from './math'\n\nexport type RoundingMode = (value: number) => number\n\nexport function isHalf(value: number) {\n return Math.abs(value) % 1 === 0.5\n}\nexport function isEven(value: number) {\n return value % 2 === 0\n}\n\nexport const roundUp: RoundingMode = value => Math.ceil(value)\nexport const roundDown: RoundingMode = value => Math.floor(value)\nexport const roundHalfUp: RoundingMode = value => Math.round(value)\n\n/**\n * Round a number with half values to nearest odd integer.\n */\nexport const roundHalfOdd: RoundingMode = (value) => {\n const rounded = Math.round(value)\n if (!isHalf(value))\n return rounded\n\n return isEven(rounded) ? rounded - 1 : rounded\n}\n\n/**\n * Round a number with half values to nearest integer farthest from zero.\n */\nexport const roundHalfAwayFromZero: RoundingMode = (value) => {\n return isHalf(value)\n ? Math.sign(value) * Math.ceil(Math.abs(value))\n : Math.round(value)\n}\n\n/**\n * Round a number with half values down.\n */\nexport const roundHalfDown: RoundingMode = value =>\n isHalf(value) ? Math.floor(value) : Math.round(value)\n\n/**\n * Round a number with half values to nearest even integer.\n * https://wiki.c2.com/?BankersRounding\n */\nexport const roundHalfEven: RoundingMode = (value) => {\n const rounded = Math.round(value)\n if (!isHalf(value))\n return rounded\n\n return isEven(rounded) ? rounded : rounded - 1\n}\n\n/**\n * Round a number with half values to nearest integer closest to zero.\n */\nexport const roundHalfTowardsZero: RoundingMode = value =>\n isHalf(value)\n ? Math.sign(value) * Math.floor(Math.abs(value))\n : Math.round(value)\n\n/**\n * This is useful for percentages that should sum up to 100.\n * But can also be fine tuned.\n *\n * Original from https://github.com/super-ienien/percent-round\n */\nexport function roundArrayOfNumbersToMatchSum(ipt: number[], max = 100, decimalPlaces = 0) {\n const iptPercents: number[] = [...ipt]\n const length = ipt.length\n const out: number[] = []\n out.fill(0, length)\n\n const total = sum(iptPercents)\n\n if (total !== 0) {\n const powDecimalPlaces = 10 ** decimalPlaces\n const pow100 = max * powDecimalPlaces\n let check100 = 0\n for (let i = length - 1; i >= 0; i--) {\n iptPercents[i] = max * iptPercents[i] / total\n check100 += out[i] = Math.round(iptPercents[i] * powDecimalPlaces)\n }\n\n if (check100 !== pow100) {\n const totalDiff = (check100 - pow100)\n const roundGrain = 1\n let grainCount = Math.abs(totalDiff)\n const diffs = iptPercents.map((_, i) => Math.abs(out[i] - iptPercents[i] * powDecimalPlaces))\n\n while (grainCount > 0) {\n let idx = 0\n let maxDiff = diffs[0]\n for (let i = 1; i < length; i++) {\n if (maxDiff < diffs[i]) {\n // avoid negative result\n if (check100 > pow100 && out[i] - roundGrain < 0)\n continue\n idx = i\n maxDiff = diffs[i]\n }\n }\n if (check100 > pow100)\n out[idx] -= roundGrain\n else\n out[idx] += roundGrain\n\n diffs[idx] -= roundGrain\n grainCount--\n }\n }\n\n if (powDecimalPlaces > 1)\n return out.map(n => +((n / powDecimalPlaces).toFixed(decimalPlaces)))\n }\n\n return out\n}\n\nexport function roundArrayOfObjectsToMatchSum<T extends Record<string, any>>(arr: T[], name: string, max = 100, decimalPlaces = 0): T[] {\n return roundArrayOfNumbersToMatchSum(arr.map(o => o[name]), max, decimalPlaces)\n .map((o, i) => ({\n ...arr[i],\n [name]: o,\n }))\n}\n"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|