@merkl/api 0.10.128 → 0.10.130

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.
Files changed (402) hide show
  1. package/dist/database/api/.generated/default.js +1 -0
  2. package/dist/database/api/.generated/edge.js +609 -0
  3. package/dist/database/api/.generated/index-browser.js +586 -0
  4. package/dist/database/api/.generated/index.js +638 -0
  5. package/dist/database/api/.generated/runtime/edge-esm.js +31 -0
  6. package/dist/database/api/.generated/runtime/edge.js +31 -0
  7. package/dist/database/api/.generated/runtime/index-browser.js +13 -0
  8. package/dist/database/api/.generated/runtime/library.js +143 -0
  9. package/dist/database/api/.generated/runtime/react-native.js +80 -0
  10. package/dist/database/api/.generated/runtime/wasm.js +32 -0
  11. package/dist/database/api/.generated/wasm.js +586 -0
  12. package/dist/database/api/seeder/resources/protocol.js +341 -0
  13. package/dist/database/engine/.generated/default.js +1 -0
  14. package/dist/database/engine/.generated/edge.js +438 -0
  15. package/dist/database/engine/.generated/index-browser.js +415 -0
  16. package/dist/database/engine/.generated/index.js +467 -0
  17. package/dist/database/engine/.generated/runtime/edge-esm.js +31 -0
  18. package/dist/database/engine/.generated/runtime/edge.js +31 -0
  19. package/dist/database/engine/.generated/runtime/index-browser.js +13 -0
  20. package/dist/database/engine/.generated/runtime/library.js +143 -0
  21. package/dist/database/engine/.generated/runtime/react-native.js +80 -0
  22. package/dist/database/engine/.generated/runtime/wasm.js +32 -0
  23. package/dist/database/engine/.generated/wasm.js +415 -0
  24. package/dist/node_modules/@elysiajs/eden/eden/LICENSE +7 -0
  25. package/dist/node_modules/@elysiajs/eden/eden/README.md +46 -0
  26. package/dist/node_modules/@elysiajs/eden/eden/bunfig.toml +2 -0
  27. package/dist/node_modules/@elysiajs/eden/eden/dist/chunk-2IHGLN7W.mjs +1 -0
  28. package/dist/node_modules/@elysiajs/eden/eden/dist/chunk-7WO4HTSU.mjs +1 -0
  29. package/dist/node_modules/@elysiajs/eden/eden/dist/chunk-XYW4OUFN.mjs +1 -0
  30. package/dist/node_modules/@elysiajs/eden/eden/dist/chunk-YAG46HFR.mjs +1 -0
  31. package/dist/node_modules/@elysiajs/eden/eden/dist/errors.d.ts +5 -0
  32. package/dist/node_modules/@elysiajs/eden/eden/dist/fetch/index.d.ts +4 -0
  33. package/dist/node_modules/@elysiajs/eden/eden/dist/fetch/types.d.ts +44 -0
  34. package/dist/node_modules/@elysiajs/eden/eden/dist/fetch.d.mts +48 -0
  35. package/dist/node_modules/@elysiajs/eden/eden/dist/fetch.d.ts +48 -0
  36. package/dist/node_modules/@elysiajs/eden/eden/dist/fetch.global.js +1 -0
  37. package/dist/node_modules/@elysiajs/eden/eden/dist/fetch.js +1 -0
  38. package/dist/node_modules/@elysiajs/eden/eden/dist/fetch.mjs +1 -0
  39. package/dist/node_modules/@elysiajs/eden/eden/dist/index.d.mts +5 -0
  40. package/dist/node_modules/@elysiajs/eden/eden/dist/index.d.ts +5 -0
  41. package/dist/node_modules/@elysiajs/eden/eden/dist/index.global.js +1 -0
  42. package/dist/node_modules/@elysiajs/eden/eden/dist/index.js +1 -0
  43. package/dist/node_modules/@elysiajs/eden/eden/dist/index.mjs +1 -0
  44. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty/index.d.ts +17 -0
  45. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty/types.d.ts +99 -0
  46. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty/utils.d.ts +1 -0
  47. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty.d.mts +114 -0
  48. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty.d.ts +114 -0
  49. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty.global.js +1 -0
  50. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty.js +1 -0
  51. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty.mjs +1 -0
  52. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2/index.d.ts +5 -0
  53. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2/types.d.ts +86 -0
  54. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2/ws.d.ts +14 -0
  55. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2.d.mts +103 -0
  56. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2.d.ts +103 -0
  57. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2.global.js +1 -0
  58. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2.js +1 -0
  59. package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2.mjs +1 -0
  60. package/dist/node_modules/@elysiajs/eden/eden/dist/types-C41kuZ-K.d.mts +44 -0
  61. package/dist/node_modules/@elysiajs/eden/eden/dist/types-C41kuZ-K.d.ts +44 -0
  62. package/dist/node_modules/@elysiajs/eden/eden/dist/types.d.ts +39 -0
  63. package/dist/node_modules/@elysiajs/eden/eden/dist/utils/parsingUtils.d.ts +6 -0
  64. package/dist/node_modules/@elysiajs/eden/eden/package.json +85 -0
  65. package/dist/package.json +2 -2
  66. package/dist/src/backgroundJobs/index.js +44 -0
  67. package/dist/src/backgroundJobs/jobs/campaignsCacheUpdater.js +160 -0
  68. package/dist/src/backgroundJobs/jobs/health.js +15 -0
  69. package/dist/src/backgroundJobs/jobs/opportunityUpdater.js +63 -0
  70. package/dist/src/backgroundJobs/jobs/priceUpdater.js +16 -0
  71. package/dist/src/backgroundJobs/jobs/sync.js +33 -0
  72. package/dist/src/cache/declaration.js +146 -0
  73. package/dist/src/cache/index.js +152 -0
  74. package/dist/src/cache/redis.js +49 -0
  75. package/dist/src/constants.js +119 -0
  76. package/dist/src/entities/campaign.js +134 -0
  77. package/dist/src/entities/opportunity.js +549 -0
  78. package/dist/src/errors/BadRequest.error.js +7 -0
  79. package/dist/src/errors/Conflict.error.js +7 -0
  80. package/dist/src/errors/HttpError.js +11 -0
  81. package/dist/src/errors/NotFound.error.js +7 -0
  82. package/dist/src/errors/Opportunity.error.js +11 -0
  83. package/dist/src/errors/Unauthorized.error.js +7 -0
  84. package/dist/src/errors/index.js +5 -0
  85. package/dist/src/guards/BackOffice.guard.js +10 -0
  86. package/dist/src/guards/Engine.guard.js +10 -0
  87. package/dist/src/guards/TokenAuth.guard.js +10 -0
  88. package/dist/src/hooks/checkQueryAddressValidity.js +7 -0
  89. package/dist/src/hooks/checkQueryChainIdValidity.js +7 -0
  90. package/dist/src/index.js +79 -0
  91. package/dist/src/internal/controllers/endingCampaigns.js +41 -0
  92. package/dist/src/internal/controllers/unclaimed.js +36 -0
  93. package/dist/src/internal/index.js +30 -0
  94. package/dist/src/libs/campaigns/campaignTypes/AjnaDynamicData.js +111 -0
  95. package/dist/src/libs/campaigns/campaignTypes/BadgerDynamicData.js +93 -0
  96. package/dist/src/libs/campaigns/campaignTypes/CLAMMDynamicData.js +942 -0
  97. package/dist/src/libs/campaigns/campaignTypes/CompoundDynamicData.js +90 -0
  98. package/dist/src/libs/campaigns/campaignTypes/DolomiteDynamicData.js +60 -0
  99. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicData.js +162 -0
  100. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicDataRefacto.js +159 -0
  101. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/eulerVaultNames.js +13 -0
  102. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/factoryFinder.js +29 -0
  103. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/getBlacklistedSupply.js +22 -0
  104. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/metamorphoTvl.js +35 -0
  105. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/spliceTVL.js +21 -0
  106. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.js +106 -0
  107. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/AaveProcessor.js +26 -0
  108. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/AssetProcessor.js +47 -0
  109. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/AuraProcessor.js +103 -0
  110. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/BalancerGaugeProcessor.js +83 -0
  111. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/BalancerPoolProcessor.js +99 -0
  112. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/BeefyProcessor.js +51 -0
  113. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/CompoundProcessor.js +36 -0
  114. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/EnzymeProcessor.js +51 -0
  115. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/EulerBorrowProcessor.js +46 -0
  116. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/EulerLendProcessor.js +47 -0
  117. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/FluidProcessor.js +36 -0
  118. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/FraxProcessor.js +41 -0
  119. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/GearboxProcessor.js +44 -0
  120. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/GenericProcessor.js +239 -0
  121. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/MetamorphoProcessor.js +43 -0
  122. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/PendleProcessor.js +31 -0
  123. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/RadiantProcessor.js +58 -0
  124. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/RfxProcessor.js +64 -0
  125. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/SpliceProcessor.js +35 -0
  126. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/SturdySiloProcessor.js +37 -0
  127. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/TemplateProcessor.js +40 -0
  128. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/TorosProcessor.js +33 -0
  129. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/UniswapProcessor.js +48 -0
  130. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/WoofiProcessor.js +40 -0
  131. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/curveProcessor.js +68 -0
  132. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/processorMapping.js +77 -0
  133. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPrices.js +583 -0
  134. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPricesRefactoFinal.js +24 -0
  135. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1.js +1209 -0
  136. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1RefactoFinal.js +194 -0
  137. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2.js +645 -0
  138. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2RefactoFinal.js +22 -0
  139. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3.js +392 -0
  140. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3RefactoFinal.js +22 -0
  141. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4.js +323 -0
  142. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4RefactoFinal.js +22 -0
  143. package/dist/src/libs/campaigns/campaignTypes/ERC20_SNAPSHOTDynamicData.js +38 -0
  144. package/dist/src/libs/campaigns/campaignTypes/EulerDynamicData.js +165 -0
  145. package/dist/src/libs/campaigns/campaignTypes/JSON_AIRDROPDynamicData.js +19 -0
  146. package/dist/src/libs/campaigns/campaignTypes/MORPHODynamicData.js +120 -0
  147. package/dist/src/libs/campaigns/campaignTypes/RadiantDynamicData.js +112 -0
  148. package/dist/src/libs/campaigns/campaignTypes/SILODynamicData.js +113 -0
  149. package/dist/src/libs/campaigns/campaignsDynamicData.js +83 -0
  150. package/dist/src/libs/campaigns/campaignsDynamicDataRefacto.js +78 -0
  151. package/dist/src/libs/campaigns/getCampaigns.js +18 -0
  152. package/dist/src/libs/campaigns/utils/fetchA51Strategies.js +44 -0
  153. package/dist/src/libs/campaigns/utils/fetchClamInfo.js +27 -0
  154. package/dist/src/libs/campaigns/utils/fetchLogs.js +91 -0
  155. package/dist/src/libs/campaigns/utils/getCompV2ForksVaults.js +122 -0
  156. package/dist/src/libs/campaigns/utils/getContractCreationBlock.js +44 -0
  157. package/dist/src/libs/campaigns/utils/getDolomiteMarkets.js +50 -0
  158. package/dist/src/libs/campaigns/utils/getEulerV2Vaults.js +87 -0
  159. package/dist/src/libs/campaigns/utils/getLastEligibilityRatio.js +56 -0
  160. package/dist/src/libs/computeFee.js +34 -0
  161. package/dist/src/libs/custom/twtParticipants.js +54 -0
  162. package/dist/src/libs/deprecated-merklv3/index.js +184 -0
  163. package/dist/src/libs/getTokensList.js +37 -0
  164. package/dist/src/libs/merklChainData.js +129 -0
  165. package/dist/src/libs/parse/marketsWithCache.js +8 -0
  166. package/dist/src/libs/positions/ajna/index.js +107 -0
  167. package/dist/src/libs/positions/badger/index.js +79 -0
  168. package/dist/src/libs/positions/clamm/index.js +419 -0
  169. package/dist/src/libs/positions/clamm/thegraph/fetchAlmPositions.js +35 -0
  170. package/dist/src/libs/positions/clamm/thegraph/fetchAmmPositions.js +35 -0
  171. package/dist/src/libs/positions/clamm/thegraph/fetchFarmedPositions.js +44 -0
  172. package/dist/src/libs/positions/clamm/thegraph/index.js +162 -0
  173. package/dist/src/libs/positions/compound/index.js +93 -0
  174. package/dist/src/libs/positions/dolomite/index.js +49 -0
  175. package/dist/src/libs/positions/erc20/index.js +55 -0
  176. package/dist/src/libs/positions/euler/index.js +57 -0
  177. package/dist/src/libs/positions/index.js +48 -0
  178. package/dist/src/libs/positions/morpho/index.js +177 -0
  179. package/dist/src/libs/positions/prepareFetch.js +339 -0
  180. package/dist/src/libs/positions/silo/index.js +67 -0
  181. package/dist/src/libs/positions/types.js +1 -0
  182. package/dist/src/libs/reports/campaignReport.js +37 -0
  183. package/dist/src/libs/reports/mainParameterRewards.js +48 -0
  184. package/dist/src/libs/rewards/userRewards.js +154 -0
  185. package/dist/src/libs/staticCampaigns.js +10 -0
  186. package/dist/src/libs/tokens/balances.js +126 -0
  187. package/dist/src/libs/tokens/tokenInfo.js +22 -0
  188. package/dist/src/modules/v4/accounting/accounting.controller.js +66 -0
  189. package/dist/src/modules/v4/accounting/accounting.model.js +32 -0
  190. package/dist/src/modules/v4/accounting/accounting.repository.js +100 -0
  191. package/dist/src/modules/v4/accounting/accounting.service.js +78 -0
  192. package/dist/src/modules/v4/accounting/index.js +3 -0
  193. package/dist/src/modules/v4/apr/apr.controller.js +1 -0
  194. package/dist/src/modules/v4/apr/apr.model.js +1 -0
  195. package/dist/src/modules/v4/apr/apr.repository.js +1 -0
  196. package/dist/src/modules/v4/apr/apr.service.js +40 -0
  197. package/dist/src/modules/v4/apr/index.js +2 -0
  198. package/dist/src/modules/v4/blacklist/blacklist.controller.js +45 -0
  199. package/dist/src/modules/v4/blacklist/blacklist.model.js +13 -0
  200. package/dist/src/modules/v4/blacklist/blacklist.repository.js +56 -0
  201. package/dist/src/modules/v4/blacklist/blacklist.service.js +24 -0
  202. package/dist/src/modules/v4/blacklist/index.js +3 -0
  203. package/dist/src/modules/v4/cache/cache.model.js +14 -0
  204. package/dist/src/modules/v4/cache/cache.repository.js +10 -0
  205. package/dist/src/modules/v4/cache/cache.service.js +44 -0
  206. package/dist/src/modules/v4/cache/index.js +1 -0
  207. package/dist/src/modules/v4/campaign/campaign.controller.js +56 -0
  208. package/dist/src/modules/v4/campaign/campaign.model.js +54 -0
  209. package/dist/src/modules/v4/campaign/campaign.repository.js +346 -0
  210. package/dist/src/modules/v4/campaign/campaign.service.js +203 -0
  211. package/dist/src/modules/v4/campaign/index.js +3 -0
  212. package/dist/src/modules/v4/chain/chain.controller.js +40 -0
  213. package/dist/src/modules/v4/chain/chain.model.js +17 -0
  214. package/dist/src/modules/v4/chain/chain.repository.js +64 -0
  215. package/dist/src/modules/v4/chain/chain.service.js +42 -0
  216. package/dist/src/modules/v4/chain/index.js +3 -0
  217. package/dist/src/modules/v4/dynamicData/dynamicData.controller.js +19 -0
  218. package/dist/src/modules/v4/dynamicData/dynamicData.model.js +6 -0
  219. package/dist/src/modules/v4/dynamicData/dynamicData.repository.js +1 -0
  220. package/dist/src/modules/v4/dynamicData/dynamicData.service.js +49 -0
  221. package/dist/src/modules/v4/dynamicData/index.js +3 -0
  222. package/dist/src/modules/v4/enso/enso.model.js +108 -0
  223. package/dist/src/modules/v4/enso/enso.service.js +46 -0
  224. package/dist/src/modules/v4/explorer/explorer.model.js +2 -0
  225. package/dist/src/modules/v4/explorer/explorer.repository.js +23 -0
  226. package/dist/src/modules/v4/explorer/explorer.service.js +24 -0
  227. package/dist/src/modules/v4/explorer/index.js +1 -0
  228. package/dist/src/modules/v4/index.js +4 -0
  229. package/dist/src/modules/v4/merklRoot/index.js +3 -0
  230. package/dist/src/modules/v4/merklRoot/merklRoot.controller.js +19 -0
  231. package/dist/src/modules/v4/merklRoot/merklRoot.model.js +6 -0
  232. package/dist/src/modules/v4/merklRoot/merklRoot.repository.js +31 -0
  233. package/dist/src/modules/v4/merklRoot/merklRoot.service.js +38 -0
  234. package/dist/src/modules/v4/opportunity/index.js +3 -0
  235. package/dist/src/modules/v4/opportunity/opportunity.controller.js +69 -0
  236. package/dist/src/modules/v4/opportunity/opportunity.model.js +36 -0
  237. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +14 -0
  238. package/dist/src/modules/v4/opportunity/opportunity.repository.js +217 -0
  239. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +0 -15
  240. package/dist/src/modules/v4/opportunity/opportunity.service.js +180 -0
  241. package/dist/src/modules/v4/opportunity/subservices/getAjnaMetadata.service.js +50 -0
  242. package/dist/src/modules/v4/opportunity/subservices/getBadgerMetadata.service.js +23 -0
  243. package/dist/src/modules/v4/opportunity/subservices/getClammMetadata.service.js +33 -0
  244. package/dist/src/modules/v4/opportunity/subservices/getCompoundMetadata.service.js +18 -0
  245. package/dist/src/modules/v4/opportunity/subservices/getDolomiteMetadata.service.js +15 -0
  246. package/dist/src/modules/v4/opportunity/subservices/getErc20Metadata.service.js +63 -0
  247. package/dist/src/modules/v4/opportunity/subservices/getErc20SnapshotMetadata.service.js +8 -0
  248. package/dist/src/modules/v4/opportunity/subservices/getEulerMetadata.service.js +30 -0
  249. package/dist/src/modules/v4/opportunity/subservices/getJsonAirDropMetadata.service.js +36 -0
  250. package/dist/src/modules/v4/opportunity/subservices/getMorphoMetadata.service.js +19 -0
  251. package/dist/src/modules/v4/opportunity/subservices/getRadiantMetadata.service.js +9 -0
  252. package/dist/src/modules/v4/opportunity/subservices/getSiloMetadata.service.js +13 -0
  253. package/dist/src/modules/v4/opportunity/transform-id.pipe.js +6 -0
  254. package/dist/src/modules/v4/opportunity/validate-id.pipe.js +12 -0
  255. package/dist/src/modules/v4/participate/participate.controller.js +66 -0
  256. package/dist/src/modules/v4/participate/participate.model.js +24 -0
  257. package/dist/src/modules/v4/participate/participate.service.js +33 -0
  258. package/dist/src/modules/v4/price/index.js +3 -0
  259. package/dist/src/modules/v4/price/price.controller.js +62 -0
  260. package/dist/src/modules/v4/price/price.model.js +12 -0
  261. package/dist/src/modules/v4/price/price.repository.js +18 -0
  262. package/dist/src/modules/v4/price/price.service.js +44 -0
  263. package/dist/src/modules/v4/prisma/index.js +1 -0
  264. package/dist/src/modules/v4/protocol/index.js +3 -0
  265. package/dist/src/modules/v4/protocol/protocol.controller.js +23 -0
  266. package/dist/src/modules/v4/protocol/protocol.model.js +68 -0
  267. package/dist/src/modules/v4/protocol/protocol.repository.js +37 -0
  268. package/dist/src/modules/v4/protocol/protocol.service.js +77 -0
  269. package/dist/src/modules/v4/reward/index.js +3 -0
  270. package/dist/src/modules/v4/reward/reward.controller.js +52 -0
  271. package/dist/src/modules/v4/reward/reward.model.js +104 -0
  272. package/dist/src/modules/v4/reward/reward.repository.js +237 -0
  273. package/dist/src/modules/v4/reward/reward.service.js +283 -0
  274. package/dist/src/modules/v4/reward/rewardConvertor.service.js +136 -0
  275. package/dist/src/modules/v4/router.js +57 -0
  276. package/dist/src/modules/v4/status/index.js +3 -0
  277. package/dist/src/modules/v4/status/status.controller.js +48 -0
  278. package/dist/src/modules/v4/status/status.model.js +24 -0
  279. package/dist/src/modules/v4/status/status.repository.js +88 -0
  280. package/dist/src/modules/v4/status/status.service.js +60 -0
  281. package/dist/src/modules/v4/token/index.js +3 -0
  282. package/dist/src/modules/v4/token/token.controller.js +32 -0
  283. package/dist/src/modules/v4/token/token.model.js +23 -0
  284. package/dist/src/modules/v4/token/token.repository.js +128 -0
  285. package/dist/src/modules/v4/token/token.service.js +268 -0
  286. package/dist/src/modules/v4/tvl/index.js +2 -0
  287. package/dist/src/modules/v4/tvl/tvl.controller.js +1 -0
  288. package/dist/src/modules/v4/tvl/tvl.model.js +1 -0
  289. package/dist/src/modules/v4/tvl/tvl.repository.js +1 -0
  290. package/dist/src/modules/v4/tvl/tvl.service.js +49 -0
  291. package/dist/src/modules/v4/uniswapV4/index.js +4 -0
  292. package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.js +11 -0
  293. package/dist/src/modules/v4/uniswapV4/uniswapV4.model.js +17 -0
  294. package/dist/src/modules/v4/uniswapV4/uniswapV4.repository.js +2 -0
  295. package/dist/src/modules/v4/uniswapV4/uniswapV4.service.js +73 -0
  296. package/dist/src/modules/v4/user/index.js +3 -0
  297. package/dist/src/modules/v4/user/user.controller.js +69 -0
  298. package/dist/src/modules/v4/user/user.model.js +18 -0
  299. package/dist/src/modules/v4/user/user.repository.js +38 -0
  300. package/dist/src/modules/v4/user/user.service.js +50 -0
  301. package/dist/src/plugins/error-handling.plugin.js +28 -0
  302. package/dist/src/plugins/logger.plugin.js +22 -0
  303. package/dist/src/routes/v1/allowances.js +115 -0
  304. package/dist/src/routes/v1/balances.js +25 -0
  305. package/dist/src/routes/v1/prices.js +11 -0
  306. package/dist/src/routes/v1/tokens.js +17 -0
  307. package/dist/src/routes/v2/merkl.js +13 -0
  308. package/dist/src/routes/v3/ERC20Campaigns.js +63 -0
  309. package/dist/src/routes/v3/app.js +18 -0
  310. package/dist/src/routes/v3/blacklist.js +18 -0
  311. package/dist/src/routes/v3/campaign/delay.js +78 -0
  312. package/dist/src/routes/v3/campaignClaims.js +24 -0
  313. package/dist/src/routes/v3/campaignReport.js +22 -0
  314. package/dist/src/routes/v3/campaignUnclaimed.js +28 -0
  315. package/dist/src/routes/v3/campaigns.js +101 -0
  316. package/dist/src/routes/v3/campaignsForMainParameter.js +19 -0
  317. package/dist/src/routes/v3/campaignsInfo.js +54 -0
  318. package/dist/src/routes/v3/campaignsRewardsReport.js +47 -0
  319. package/dist/src/routes/v3/claims.js +45 -0
  320. package/dist/src/routes/v3/compoundV2.js +9 -0
  321. package/dist/src/routes/v3/createCampaign.js +66 -0
  322. package/dist/src/routes/v3/dolomite.js +9 -0
  323. package/dist/src/routes/v3/euler.js +9 -0
  324. package/dist/src/routes/v3/exports/campaigns.js +28 -0
  325. package/dist/src/routes/v3/fetch.js +27 -0
  326. package/dist/src/routes/v3/health.js +13 -0
  327. package/dist/src/routes/v3/lostyield.js +98 -0
  328. package/dist/src/routes/v3/merkl.js +119 -0
  329. package/dist/src/routes/v3/morphoMarkets.js +27 -0
  330. package/dist/src/routes/v3/morphoVaults.js +22 -0
  331. package/dist/src/routes/v3/multiChainPositions.js +69 -0
  332. package/dist/src/routes/v3/opportunity.js +63 -0
  333. package/dist/src/routes/v3/overview.js +73 -0
  334. package/dist/src/routes/v3/parse.js +23 -0
  335. package/dist/src/routes/v3/payload.js +40 -0
  336. package/dist/src/routes/v3/poolInfo.js +88 -0
  337. package/dist/src/routes/v3/positions.js +62 -0
  338. package/dist/src/routes/v3/radiant.js +26 -0
  339. package/dist/src/routes/v3/recipients.js +20 -0
  340. package/dist/src/routes/v3/rewards.js +33 -0
  341. package/dist/src/routes/v3/rewardsReport.js +51 -0
  342. package/dist/src/routes/v3/rootForTimestamp.js +47 -0
  343. package/dist/src/routes/v3/silo.js +20 -0
  344. package/dist/src/routes/v3/token.js +24 -0
  345. package/dist/src/routes/v3/tokenUnclaimed.js +24 -0
  346. package/dist/src/routes/v3/twt/participants.js +11 -0
  347. package/dist/src/routes/v3/updates.js +47 -0
  348. package/dist/src/routes/v3/userRewards.js +59 -0
  349. package/dist/src/types/index.js +6 -0
  350. package/dist/src/types/parameters/Action.js +11 -0
  351. package/dist/src/types/parameters/Chain.js +13 -0
  352. package/dist/src/types/parameters/ChainCampaignId.js +13 -0
  353. package/dist/src/types/parameters/MainParameter.js +19 -0
  354. package/dist/src/types/parameters/OpportunityId.js +14 -0
  355. package/dist/src/types/parameters/Timestamp.js +16 -0
  356. package/dist/src/types/parameters/Type.js +15 -0
  357. package/dist/src/types/parameters/index.js +17 -0
  358. package/dist/src/types/returnTypes.js +1 -0
  359. package/dist/src/types/utils.js +1 -0
  360. package/dist/src/utils/addString.js +6 -0
  361. package/dist/src/utils/bigintToString.js +20 -0
  362. package/dist/src/utils/crypto.js +4 -0
  363. package/dist/src/utils/decodeCalls.js +170 -0
  364. package/dist/src/utils/encodeCalls.js +240 -0
  365. package/dist/src/utils/error.js +90 -0
  366. package/dist/src/utils/execute.js +41 -0
  367. package/dist/src/utils/generateCardName.js +89 -0
  368. package/dist/src/utils/generic.js +117 -0
  369. package/dist/src/utils/hashArray.js +4 -0
  370. package/dist/src/utils/lastBlockBefore.js +78 -0
  371. package/dist/src/utils/logger.js +52 -0
  372. package/dist/src/utils/pricer.js +180 -0
  373. package/dist/src/utils/prices/chainlinkRead.js +8 -0
  374. package/dist/src/utils/prices/curveVirtualPrice.js +7 -0
  375. package/dist/src/utils/prices/getDQUICK.js +8 -0
  376. package/dist/src/utils/prices/priceFetcherFactory.js +29 -0
  377. package/dist/src/utils/prices/priceService.js +328 -0
  378. package/dist/src/utils/prices/services/coinGeckoService.js +53 -0
  379. package/dist/src/utils/prices/services/defillamaService.js +53 -0
  380. package/dist/src/utils/prices/services/dexScreenerService.js +62 -0
  381. package/dist/src/utils/prices/services/erc4626Service.js +30 -0
  382. package/dist/src/utils/prices/services/getERC4626.js +11 -0
  383. package/dist/src/utils/prices/services/indexCoopService.js +55 -0
  384. package/dist/src/utils/prices/services/priceFetcher.js +1 -0
  385. package/dist/src/utils/prices/uniV2Price.js +40 -0
  386. package/dist/src/utils/prisma.js +12 -0
  387. package/dist/src/utils/providers.js +30 -0
  388. package/dist/src/utils/queries/activeCampaigns.js +22 -0
  389. package/dist/src/utils/queries/allCampaigns.js +51 -0
  390. package/dist/src/utils/queries/campaignsForMainParameter.js +23 -0
  391. package/dist/src/utils/queries/claimsOverTime.js +111 -0
  392. package/dist/src/utils/queries/endingCampaigns.js +21 -0
  393. package/dist/src/utils/queries/futureCampaigns.js +19 -0
  394. package/dist/src/utils/queries/mainParameterCampaigns.js +11 -0
  395. package/dist/src/utils/queries/rewardsAmount.js +106 -0
  396. package/dist/src/utils/queries/unclaimed.js +81 -0
  397. package/dist/src/utils/rateLimit.js +13 -0
  398. package/dist/src/utils/stryke.js +4 -0
  399. package/dist/src/utils/throw.js +27 -0
  400. package/dist/src/utils/validation.js +20 -0
  401. package/dist/tsconfig.package.tsbuildinfo +1 -1
  402. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ "use strict";var d=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var b=(t,e)=>{for(var r in e)d(t,r,{get:e[r],enumerable:!0})},F=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of E(e))!N.call(t,s)&&s!==r&&d(t,s,{get:()=>e[s],enumerable:!(n=T(e,s))||n.enumerable});return t};var j=t=>F(d({},"__esModule",{value:!0}),t);var V={};b(V,{edenFetch:()=>R});module.exports=j(V);var o=class extends Error{constructor(r,n){super(n+"");this.status=r;this.value=n}};var w=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,A=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,C=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,D=t=>t.trim().length!==0&&!Number.isNaN(Number(t)),f=t=>{if(typeof t!="string")return null;let e=t.replace(/"/g,"");if(w.test(e)||A.test(e)||C.test(e)){let r=new Date(e);if(!Number.isNaN(r.getTime()))return r}return null},M=t=>{let e=t.charCodeAt(0),r=t.charCodeAt(t.length-1);return e===123&&r===125||e===91&&r===93},O=t=>JSON.parse(t,(e,r)=>{let n=f(r);return n||r}),h=t=>{if(!t)return t;if(D(t))return+t;if(t==="true")return!0;if(t==="false")return!1;let e=f(t);if(e)return e;if(M(t))try{return O(t)}catch{}return t};var $=async t=>{switch(t.headers.get("Content-Type")?.split(";")[0]){case"application/json":return t.json();case"application/octet-stream":return t.arrayBuffer();case"multipart/form-data":{let r=await t.formData(),n={};return r.forEach((s,a)=>{n[a]=s}),n}}return t.text().then(h)},J=async(t,e)=>{let r=await $(t);return t.status>300?{data:null,status:t.status,headers:t.headers,retry:e,error:new o(t.status,r)}:{data:r,error:null,status:t.status,headers:t.headers,retry:e}},R=(t,e)=>(r,{query:n,params:s,body:a,...c}={})=>{s&&Object.entries(s).forEach(([i,x])=>{r=r.replace(`:${i}`,x)});let u=c.headers?.["Content-Type"];if(!u||u==="application/json")try{a=JSON.stringify(a)}catch{}let y=e?.fetcher||globalThis.fetch,g=n?`?${new URLSearchParams(n).toString()}`:"",l=`${t}${r}${g}`,m=a?{"content-type":"application/json",...c.headers}:c.headers,S={...c,method:c.method?.toUpperCase()||"GET",headers:m,body:a},p=()=>y(l,S).then(i=>J(i,p));return p()};0&&(module.exports={edenFetch});
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-YAG46HFR.mjs";import"./chunk-XYW4OUFN.mjs";export{a as edenFetch};
@@ -0,0 +1,5 @@
1
+ export { Treaty, treaty } from './treaty2.mjs';
2
+ export { edenTreaty } from './treaty.mjs';
3
+ export { edenFetch } from './fetch.mjs';
4
+ import 'elysia';
5
+ import './types-C41kuZ-K.mjs';
@@ -0,0 +1,5 @@
1
+ export { Treaty, treaty } from './treaty2.js';
2
+ export { edenTreaty } from './treaty.js';
3
+ export { edenFetch } from './fetch.js';
4
+ import 'elysia';
5
+ import './types-C41kuZ-K.js';
@@ -0,0 +1 @@
1
+ "use strict";var Eden=(()=>{var P=Object.defineProperty;var ne=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var se=Object.prototype.hasOwnProperty;var ae=(e,t)=>{for(var n in t)P(e,n,{get:t[n],enumerable:!0})},ie=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of re(t))!se.call(e,s)&&s!==n&&P(e,s,{get:()=>t[s],enumerable:!(r=ne(t,s))||r.enumerable});return e};var oe=e=>ie(P({},"__esModule",{value:!0}),e);var be={};ae(be,{edenFetch:()=>te,edenTreaty:()=>ee,treaty:()=>z});var T=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var ce=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,fe=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,de=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,ye=e=>e.trim().length!==0&&!Number.isNaN(Number(e)),_=e=>{if(typeof e!="string")return null;let t=e.replace(/"/g,"");if(ce.test(t)||fe.test(t)||de.test(t)){let n=new Date(t);if(!Number.isNaN(n.getTime()))return n}return null},ue=e=>{let t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===123&&n===125||t===91&&n===93},pe=e=>JSON.parse(e,(t,n)=>{let r=_(n);return r||n}),L=e=>{if(!e)return e;if(ye(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=_(e);if(t)return t;if(ue(e))try{return pe(e)}catch{}return e},D=e=>{let t=e.data.toString();return t==="null"?null:L(t)};var I=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,s=>{if(t==="message"){let i=D(s);n({...s,data:i})}else n(s)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}};var le=["get","post","put","delete","patch","options","head","connect","subscribe"],Z=["localhost","127.0.0.1","0.0.0.0"],U=typeof FileList>"u",G=e=>U?e instanceof Blob:e instanceof FileList||e instanceof File,he=e=>{if(!e)return!1;for(let t in e)if(G(e[t])||Array.isArray(e[t])&&e[t].find(G))return!0;return!1},J=e=>U?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),j=(e,t,n={},r={})=>{if(Array.isArray(e)){for(let s of e)if(!Array.isArray(s))r=j(s,t,n,r);else{let i=s[0];if(typeof i=="string")r[i.toLowerCase()]=s[1];else for(let[o,y]of i)r[o.toLowerCase()]=y}return r}if(!e)return r;switch(typeof e){case"function":if(e instanceof Headers)return j(e,t,n,r);let s=e(t,n);return s?j(s,t,n,r):r;case"object":if(e instanceof Headers)return e.forEach((i,o)=>{r[o.toLowerCase()]=i}),r;for(let[i,o]of Object.entries(e))r[i.toLowerCase()]=o;return r;default:return r}};async function*ge(e){let t=e.body;if(!t)return;let n=t.getReader(),r=new TextDecoder;try{for(;;){let{done:s,value:i}=await n.read();if(s)break;let o=r.decode(i);yield L(o)}}finally{n.releaseLock()}}var K=(e,t,n=[],r)=>new Proxy(()=>{},{get(s,i){return K(e,t,i==="index"?n:[...n,i],r)},apply(s,i,[o,y]){if(!o||y||typeof o=="object"&&Object.keys(o).length!==1||le.includes(n.at(-1))){let M=[...n],v=M.pop(),E="/"+M.join("/"),{fetcher:F=fetch,headers:R,onRequest:l,onResponse:g,fetch:O}=t,x=v==="get"||v==="head"||v==="subscribe";R=j(R,E,y);let N=x?o?.query:y?.query,b="";if(N){let a=(A,w)=>{b+=(b?"&":"?")+`${encodeURIComponent(A)}=${encodeURIComponent(w)}`};for(let[A,w]of Object.entries(N)){if(Array.isArray(w)){for(let c of w)a(A,c);continue}if(typeof w=="object"){a(A,JSON.stringify(w));continue}a(A,`${w}`)}}if(v==="subscribe"){let a=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||Z.find(A=>e.includes(A))?"ws://":"wss://")+E+b;return new I(a)}return(async()=>{let a={method:v?.toUpperCase(),body:o,...O,headers:R};a.headers={...R,...j(x?o?.headers:y?.headers,E,a)};let A=x&&typeof o=="object"?o.fetch:y?.fetch;if(a={...a,...A},x&&delete a.body,l){Array.isArray(l)||(l=[l]);for(let d of l){let f=await d(E,a);typeof f=="object"&&(a={...a,...f,headers:{...a.headers,...j(f.headers,E,a)}})}}if(x&&delete a.body,he(o)){let d=new FormData;for(let[f,p]of Object.entries(a.body)){if(U){d.append(f,p);continue}if(p instanceof File){d.append(f,await J(p));continue}if(p instanceof FileList){for(let m=0;m<p.length;m++)d.append(f,await J(p[m]));continue}if(Array.isArray(p)){for(let m=0;m<p.length;m++){let S=p[m];d.append(f,S instanceof File?await J(S):S)}continue}d.append(f,p)}a.body=d}else typeof o=="object"?(a.headers["content-type"]="application/json",a.body=JSON.stringify(o)):o!=null&&(a.headers["content-type"]="text/plain");if(x&&delete a.body,l){Array.isArray(l)||(l=[l]);for(let d of l){let f=await d(E,a);typeof f=="object"&&(a={...a,...f,headers:{...a.headers,...j(f.headers,E,a)}})}}let w=e+E+b,c=await(r?.handle(new Request(w,a))??F(w,a)),h=null,u=null;if(g){Array.isArray(g)||(g=[g]);for(let d of g)try{let f=await d(c.clone());if(f!=null){h=f;break}}catch(f){f instanceof T?u=f:u=new T(422,f);break}}if(h!==null)return{data:h,error:u,response:c,status:c.status,headers:c.headers};switch(c.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":h=ge(c);break;case"application/json":h=await c.json();break;case"application/octet-stream":h=await c.arrayBuffer();break;case"multipart/form-data":let d=await c.formData();h={},d.forEach((f,p)=>{h[p]=f});break;default:h=await c.text().then(L)}return(c.status>=300||c.status<200)&&(u=new T(c.status,h),h=null),{data:h,error:u,response:c,status:c.status,headers:c.headers}})()}return typeof o=="object"?K(e,t,[...n,Object.values(o)[0]],r):K(e,t,n)}}),z=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(Z.find(n=>e.includes(n))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),K(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),K("http://e.ly",t,[],e));var Q=(e,t,n)=>{if(e.endsWith("/")||(e+="/"),t==="index"&&(t=""),!n||!Object.keys(n).length)return`${e}${t}`;let r="";for(let[s,i]of Object.entries(n))r+=`${s}=${i}&`;return`${e}${t}?${r.slice(0,-1)}`};var V=typeof FileList>"u",X=e=>V?e instanceof Blob:e instanceof FileList||e instanceof File,me=e=>{if(!e)return!1;for(let t in e){if(X(e[t]))return!0;if(Array.isArray(e[t])&&e[t].find(n=>X(n)))return!0}return!1},B=e=>V?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),H=class{ws;url;constructor(t){this.ws=new WebSocket(t),this.url=t}send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,s=>{if(t==="message"){let i=D(s);n({...s,data:i})}else n(s)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}},Y=(e,t="",n)=>new Proxy(()=>{},{get(r,s,i){return Y(e,`${t}/${s.toString()}`,n)},apply(r,s,[i,o={}]=[{},{}]){let y=i!==void 0&&(typeof i!="object"||Array.isArray(i))?i:void 0,{$query:M,$fetch:v,$headers:E,$transform:F,getRaw:R,...l}=i??{};y??=l;let g=t.lastIndexOf("/"),O=t.slice(g+1).toUpperCase(),x=Q(e,g===-1?"/":t.slice(0,g),Object.assign(o.query??{},M)),N=n.fetcher??fetch,b=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,a=F?Array.isArray(F)?F:[F]:void 0;return a&&(b?b=a.concat(b):b=a),O==="SUBSCRIBE"?new H(x.replace(/^([^]+):\/\//,x.startsWith("https://")?"wss://":"ws://")):(async w=>{let c,h={...n.$fetch?.headers,...v?.headers,...o.headers,...E};if(O!=="GET"&&O!=="HEAD"){c=Object.keys(y).length||Array.isArray(y)?y:void 0;let m=c&&(typeof c=="object"||Array.isArray(y));if(m&&me(c)){let $=new FormData;for(let[C,k]of Object.entries(c))if(V)$.append(C,k);else if(k instanceof File)$.append(C,await B(k));else if(k instanceof FileList)for(let W=0;W<k.length;W++)$.append(C,await B(k[W]));else if(Array.isArray(k))for(let W=0;W<k.length;W++){let q=k[W];$.append(C,q instanceof File?await B(q):q)}else $.append(C,k);c=$}else c!=null&&(h["content-type"]=m?"application/json":"text/plain",c=m?JSON.stringify(c):y)}let u=await N(x,{method:O,body:c,...n.$fetch,...o.fetch,...v,headers:h}),d;if(w.getRaw)return u;switch(u.headers.get("Content-Type")?.split(";")[0]){case"application/json":d=await u.json();break;default:d=await u.text().then(L)}let f=u.status>=300||u.status<200?new T(u.status,d):null,p={data:d,error:f,response:u,status:u.status,headers:u.headers};if(b)for(let m of b){let S=m(p);S instanceof Promise&&(S=await S),S!=null&&(p=S)}return p})({getRaw:R})}}),ee=(e,t={fetcher:fetch})=>new Proxy({},{get(n,r){return Y(e,r,t)}});var Ee=async e=>{switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":return e.json();case"application/octet-stream":return e.arrayBuffer();case"multipart/form-data":{let n=await e.formData(),r={};return n.forEach((s,i)=>{r[i]=s}),r}}return e.text().then(L)},we=async(e,t)=>{let n=await Ee(e);return e.status>300?{data:null,status:e.status,headers:e.headers,retry:t,error:new T(e.status,n)}:{data:n,error:null,status:e.status,headers:e.headers,retry:t}},te=(e,t)=>(n,{query:r,params:s,body:i,...o}={})=>{s&&Object.entries(s).forEach(([g,O])=>{n=n.replace(`:${g}`,O)});let y=o.headers?.["Content-Type"];if(!y||y==="application/json")try{i=JSON.stringify(i)}catch{}let M=t?.fetcher||globalThis.fetch,v=r?`?${new URLSearchParams(r).toString()}`:"",E=`${e}${n}${v}`,F=i?{"content-type":"application/json",...o.headers}:o.headers,R={...o,method:o.method?.toUpperCase()||"GET",headers:F,body:i},l=()=>M(E,R).then(g=>we(g,l));return l()};return oe(be);})();
@@ -0,0 +1 @@
1
+ "use strict";var P=Object.defineProperty;var ne=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var se=Object.prototype.hasOwnProperty;var ae=(e,t)=>{for(var n in t)P(e,n,{get:t[n],enumerable:!0})},ie=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of re(t))!se.call(e,s)&&s!==n&&P(e,s,{get:()=>t[s],enumerable:!(r=ne(t,s))||r.enumerable});return e};var oe=e=>ie(P({},"__esModule",{value:!0}),e);var be={};ae(be,{edenFetch:()=>te,edenTreaty:()=>ee,treaty:()=>z});module.exports=oe(be);var T=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var ce=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,fe=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,de=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,ye=e=>e.trim().length!==0&&!Number.isNaN(Number(e)),_=e=>{if(typeof e!="string")return null;let t=e.replace(/"/g,"");if(ce.test(t)||fe.test(t)||de.test(t)){let n=new Date(t);if(!Number.isNaN(n.getTime()))return n}return null},ue=e=>{let t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===123&&n===125||t===91&&n===93},pe=e=>JSON.parse(e,(t,n)=>{let r=_(n);return r||n}),L=e=>{if(!e)return e;if(ye(e))return+e;if(e==="true")return!0;if(e==="false")return!1;let t=_(e);if(t)return t;if(ue(e))try{return pe(e)}catch{}return e},D=e=>{let t=e.data.toString();return t==="null"?null:L(t)};var I=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,s=>{if(t==="message"){let i=D(s);n({...s,data:i})}else n(s)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}};var le=["get","post","put","delete","patch","options","head","connect","subscribe"],Z=["localhost","127.0.0.1","0.0.0.0"],U=typeof FileList>"u",G=e=>U?e instanceof Blob:e instanceof FileList||e instanceof File,he=e=>{if(!e)return!1;for(let t in e)if(G(e[t])||Array.isArray(e[t])&&e[t].find(G))return!0;return!1},J=e=>U?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),j=(e,t,n={},r={})=>{if(Array.isArray(e)){for(let s of e)if(!Array.isArray(s))r=j(s,t,n,r);else{let i=s[0];if(typeof i=="string")r[i.toLowerCase()]=s[1];else for(let[o,y]of i)r[o.toLowerCase()]=y}return r}if(!e)return r;switch(typeof e){case"function":if(e instanceof Headers)return j(e,t,n,r);let s=e(t,n);return s?j(s,t,n,r):r;case"object":if(e instanceof Headers)return e.forEach((i,o)=>{r[o.toLowerCase()]=i}),r;for(let[i,o]of Object.entries(e))r[i.toLowerCase()]=o;return r;default:return r}};async function*ge(e){let t=e.body;if(!t)return;let n=t.getReader(),r=new TextDecoder;try{for(;;){let{done:s,value:i}=await n.read();if(s)break;let o=r.decode(i);yield L(o)}}finally{n.releaseLock()}}var K=(e,t,n=[],r)=>new Proxy(()=>{},{get(s,i){return K(e,t,i==="index"?n:[...n,i],r)},apply(s,i,[o,y]){if(!o||y||typeof o=="object"&&Object.keys(o).length!==1||le.includes(n.at(-1))){let M=[...n],v=M.pop(),E="/"+M.join("/"),{fetcher:F=fetch,headers:R,onRequest:l,onResponse:g,fetch:O}=t,x=v==="get"||v==="head"||v==="subscribe";R=j(R,E,y);let N=x?o?.query:y?.query,b="";if(N){let a=(A,w)=>{b+=(b?"&":"?")+`${encodeURIComponent(A)}=${encodeURIComponent(w)}`};for(let[A,w]of Object.entries(N)){if(Array.isArray(w)){for(let c of w)a(A,c);continue}if(typeof w=="object"){a(A,JSON.stringify(w));continue}a(A,`${w}`)}}if(v==="subscribe"){let a=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||Z.find(A=>e.includes(A))?"ws://":"wss://")+E+b;return new I(a)}return(async()=>{let a={method:v?.toUpperCase(),body:o,...O,headers:R};a.headers={...R,...j(x?o?.headers:y?.headers,E,a)};let A=x&&typeof o=="object"?o.fetch:y?.fetch;if(a={...a,...A},x&&delete a.body,l){Array.isArray(l)||(l=[l]);for(let d of l){let f=await d(E,a);typeof f=="object"&&(a={...a,...f,headers:{...a.headers,...j(f.headers,E,a)}})}}if(x&&delete a.body,he(o)){let d=new FormData;for(let[f,p]of Object.entries(a.body)){if(U){d.append(f,p);continue}if(p instanceof File){d.append(f,await J(p));continue}if(p instanceof FileList){for(let m=0;m<p.length;m++)d.append(f,await J(p[m]));continue}if(Array.isArray(p)){for(let m=0;m<p.length;m++){let S=p[m];d.append(f,S instanceof File?await J(S):S)}continue}d.append(f,p)}a.body=d}else typeof o=="object"?(a.headers["content-type"]="application/json",a.body=JSON.stringify(o)):o!=null&&(a.headers["content-type"]="text/plain");if(x&&delete a.body,l){Array.isArray(l)||(l=[l]);for(let d of l){let f=await d(E,a);typeof f=="object"&&(a={...a,...f,headers:{...a.headers,...j(f.headers,E,a)}})}}let w=e+E+b,c=await(r?.handle(new Request(w,a))??F(w,a)),h=null,u=null;if(g){Array.isArray(g)||(g=[g]);for(let d of g)try{let f=await d(c.clone());if(f!=null){h=f;break}}catch(f){f instanceof T?u=f:u=new T(422,f);break}}if(h!==null)return{data:h,error:u,response:c,status:c.status,headers:c.headers};switch(c.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":h=ge(c);break;case"application/json":h=await c.json();break;case"application/octet-stream":h=await c.arrayBuffer();break;case"multipart/form-data":let d=await c.formData();h={},d.forEach((f,p)=>{h[p]=f});break;default:h=await c.text().then(L)}return(c.status>=300||c.status<200)&&(u=new T(c.status,h),h=null),{data:h,error:u,response:c,status:c.status,headers:c.headers}})()}return typeof o=="object"?K(e,t,[...n,Object.values(o)[0]],r):K(e,t,n)}}),z=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(Z.find(n=>e.includes(n))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),K(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),K("http://e.ly",t,[],e));var Q=(e,t,n)=>{if(e.endsWith("/")||(e+="/"),t==="index"&&(t=""),!n||!Object.keys(n).length)return`${e}${t}`;let r="";for(let[s,i]of Object.entries(n))r+=`${s}=${i}&`;return`${e}${t}?${r.slice(0,-1)}`};var V=typeof FileList>"u",X=e=>V?e instanceof Blob:e instanceof FileList||e instanceof File,me=e=>{if(!e)return!1;for(let t in e){if(X(e[t]))return!0;if(Array.isArray(e[t])&&e[t].find(n=>X(n)))return!0}return!1},B=e=>V?e:new Promise(t=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},n.readAsArrayBuffer(e)}),H=class{ws;url;constructor(t){this.ws=new WebSocket(t),this.url=t}send(t){return Array.isArray(t)?(t.forEach(n=>this.send(n)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,n,r){return this.addEventListener(t,n,r)}off(t,n,r){return this.ws.removeEventListener(t,n,r),this}subscribe(t,n){return this.addEventListener("message",t,n)}addEventListener(t,n,r){return this.ws.addEventListener(t,s=>{if(t==="message"){let i=D(s);n({...s,data:i})}else n(s)},r),this}removeEventListener(t,n,r){return this.off(t,n,r),this}close(){return this.ws.close(),this}},Y=(e,t="",n)=>new Proxy(()=>{},{get(r,s,i){return Y(e,`${t}/${s.toString()}`,n)},apply(r,s,[i,o={}]=[{},{}]){let y=i!==void 0&&(typeof i!="object"||Array.isArray(i))?i:void 0,{$query:M,$fetch:v,$headers:E,$transform:F,getRaw:R,...l}=i??{};y??=l;let g=t.lastIndexOf("/"),O=t.slice(g+1).toUpperCase(),x=Q(e,g===-1?"/":t.slice(0,g),Object.assign(o.query??{},M)),N=n.fetcher??fetch,b=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,a=F?Array.isArray(F)?F:[F]:void 0;return a&&(b?b=a.concat(b):b=a),O==="SUBSCRIBE"?new H(x.replace(/^([^]+):\/\//,x.startsWith("https://")?"wss://":"ws://")):(async w=>{let c,h={...n.$fetch?.headers,...v?.headers,...o.headers,...E};if(O!=="GET"&&O!=="HEAD"){c=Object.keys(y).length||Array.isArray(y)?y:void 0;let m=c&&(typeof c=="object"||Array.isArray(y));if(m&&me(c)){let $=new FormData;for(let[C,k]of Object.entries(c))if(V)$.append(C,k);else if(k instanceof File)$.append(C,await B(k));else if(k instanceof FileList)for(let W=0;W<k.length;W++)$.append(C,await B(k[W]));else if(Array.isArray(k))for(let W=0;W<k.length;W++){let q=k[W];$.append(C,q instanceof File?await B(q):q)}else $.append(C,k);c=$}else c!=null&&(h["content-type"]=m?"application/json":"text/plain",c=m?JSON.stringify(c):y)}let u=await N(x,{method:O,body:c,...n.$fetch,...o.fetch,...v,headers:h}),d;if(w.getRaw)return u;switch(u.headers.get("Content-Type")?.split(";")[0]){case"application/json":d=await u.json();break;default:d=await u.text().then(L)}let f=u.status>=300||u.status<200?new T(u.status,d):null,p={data:d,error:f,response:u,status:u.status,headers:u.headers};if(b)for(let m of b){let S=m(p);S instanceof Promise&&(S=await S),S!=null&&(p=S)}return p})({getRaw:R})}}),ee=(e,t={fetcher:fetch})=>new Proxy({},{get(n,r){return Y(e,r,t)}});var Ee=async e=>{switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":return e.json();case"application/octet-stream":return e.arrayBuffer();case"multipart/form-data":{let n=await e.formData(),r={};return n.forEach((s,i)=>{r[i]=s}),r}}return e.text().then(L)},we=async(e,t)=>{let n=await Ee(e);return e.status>300?{data:null,status:e.status,headers:e.headers,retry:t,error:new T(e.status,n)}:{data:n,error:null,status:e.status,headers:e.headers,retry:t}},te=(e,t)=>(n,{query:r,params:s,body:i,...o}={})=>{s&&Object.entries(s).forEach(([g,O])=>{n=n.replace(`:${g}`,O)});let y=o.headers?.["Content-Type"];if(!y||y==="application/json")try{i=JSON.stringify(i)}catch{}let M=t?.fetcher||globalThis.fetch,v=r?`?${new URLSearchParams(r).toString()}`:"",E=`${e}${n}${v}`,F=i?{"content-type":"application/json",...o.headers}:o.headers,R={...o,method:o.method?.toUpperCase()||"GET",headers:F,body:i},l=()=>M(E,R).then(g=>we(g,l));return l()};0&&(module.exports={edenFetch,edenTreaty,treaty});
@@ -0,0 +1 @@
1
+ import{b as r}from"./chunk-2IHGLN7W.mjs";import{b as e}from"./chunk-7WO4HTSU.mjs";import{a as t}from"./chunk-YAG46HFR.mjs";import"./chunk-XYW4OUFN.mjs";export{t as edenFetch,r as edenTreaty,e as treaty};
@@ -0,0 +1,17 @@
1
+ import type { Elysia, InputSchema } from 'elysia';
2
+ import type { EdenTreaty } from './types';
3
+ export type { EdenTreaty } from './types';
4
+ type MaybeArray<T> = T | T[];
5
+ export declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
6
+ ws: WebSocket;
7
+ url: string;
8
+ constructor(url: string);
9
+ send(data: MaybeArray<Schema['body']>): this;
10
+ on<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
11
+ off<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
12
+ subscribe(onMessage: (event: EdenTreaty.WSEvent<'message', Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
13
+ addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
14
+ removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
15
+ close(): this;
16
+ }
17
+ export declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any, any, any>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
@@ -0,0 +1,99 @@
1
+ import { Elysia } from 'elysia';
2
+ import type { EdenWS } from './index';
3
+ import type { IsUnknown, IsNever, MapError, Prettify } from '../types';
4
+ import type { EdenFetchError } from '../errors';
5
+ type Files = File | FileList;
6
+ type Replace<RecordType, TargetType, GenericType> = {
7
+ [K in keyof RecordType]: RecordType[K] extends TargetType ? GenericType : RecordType[K];
8
+ };
9
+ type MaybeArray<T> = T | T[];
10
+ export declare namespace EdenTreaty {
11
+ export type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
12
+ _routes: infer Schema extends Record<string, unknown>;
13
+ } ? Prettify<Sign<Schema>> : 'Please install Elysia before using Eden';
14
+ export type Sign<Route extends Record<string, any>> = {
15
+ [K in keyof Route as K extends `:${string}` ? (string & {}) | number | K : K extends '' | '/' ? 'index' : K]: Route[K] extends {
16
+ body: infer Body;
17
+ headers: infer Headers;
18
+ query: infer Query;
19
+ params: unknown;
20
+ response: infer Response;
21
+ } ? K extends 'subscribe' ? undefined extends Route['query'] ? (params?: {
22
+ $query?: Record<string, string>;
23
+ }) => EdenWS<Route> : (params: {
24
+ $query: Route['query'];
25
+ }) => EdenWS<Route['subscribe']> : ((params: Prettify<{
26
+ $fetch?: RequestInit;
27
+ getRaw?: boolean;
28
+ $transform?: Transform;
29
+ } & (IsUnknown<Body> extends false ? Replace<Body, Blob | Blob[], Files> : {}) & (undefined extends Query ? {
30
+ $query?: Record<string, string>;
31
+ } : {
32
+ $query: Query;
33
+ }) & (undefined extends Headers ? {
34
+ $headers?: Record<string, unknown>;
35
+ } : {
36
+ $headers: Headers;
37
+ })>) => Promise<({
38
+ data: Response extends {
39
+ 200: infer ReturnedType;
40
+ } ? Awaited<ReturnedType> : unknown;
41
+ error: null;
42
+ } | {
43
+ data: null;
44
+ error: Response extends Record<number, unknown> ? MapError<Response> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string> : EdenFetchError<number, unknown>;
45
+ }) & {
46
+ status: number;
47
+ response: Response;
48
+ headers: Record<string, string>;
49
+ }>) extends (params: infer Params) => infer Response ? {
50
+ $params: undefined;
51
+ $headers: undefined;
52
+ $query: undefined;
53
+ } extends Params ? (params?: Params, options?: {
54
+ fetch?: RequestInit;
55
+ transform?: EdenTreaty.Transform<Response>;
56
+ query?: Params['query'];
57
+ headers?: Params['headers'];
58
+ }) => Response : (params: Params, options?: {
59
+ fetch?: RequestInit;
60
+ transform?: EdenTreaty.Transform<Response>;
61
+ query?: Params['query'];
62
+ headers?: Params['headers'];
63
+ }) => Response : never : Prettify<Sign<Route[K]>>;
64
+ };
65
+ type UnwrapPromise<T> = T extends Promise<infer A> ? A : T;
66
+ export type Transform<T = unknown> = MaybeArray<(response: unknown extends T ? {
67
+ data: any;
68
+ error: any;
69
+ response: Response;
70
+ status: number;
71
+ headers: Headers;
72
+ } : UnwrapPromise<T>) => UnwrapPromise<T> | void>;
73
+ export interface Config {
74
+ /**
75
+ * Default options to pass to fetch
76
+ */
77
+ $fetch?: RequestInit;
78
+ fetcher?: typeof fetch;
79
+ transform?: Transform;
80
+ }
81
+ export type DetailedResponse = {
82
+ data: any;
83
+ error: any;
84
+ response: Response;
85
+ status: number;
86
+ headers: Headers;
87
+ };
88
+ export interface OnMessage<Data = unknown> extends MessageEvent {
89
+ data: Data;
90
+ rawData: MessageEvent['data'];
91
+ }
92
+ export type ExecuteOptions = {
93
+ getRaw?: boolean;
94
+ };
95
+ export type ExecuteReturnType<T extends ExecuteOptions> = T['getRaw'] extends true ? Response : DetailedResponse;
96
+ export type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
97
+ export {};
98
+ }
99
+ export {};
@@ -0,0 +1 @@
1
+ export declare const composePath: (domain: string, path: string, query: Record<string, string> | undefined) => string;
@@ -0,0 +1,114 @@
1
+ import { Elysia, InputSchema } from 'elysia';
2
+ import { P as Prettify, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-C41kuZ-K.mjs';
3
+
4
+ type Files = File | FileList;
5
+ type Replace<RecordType, TargetType, GenericType> = {
6
+ [K in keyof RecordType]: RecordType[K] extends TargetType ? GenericType : RecordType[K];
7
+ };
8
+ type MaybeArray$1<T> = T | T[];
9
+ declare namespace EdenTreaty {
10
+ export type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
11
+ _routes: infer Schema extends Record<string, unknown>;
12
+ } ? Prettify<Sign<Schema>> : 'Please install Elysia before using Eden';
13
+ export type Sign<Route extends Record<string, any>> = {
14
+ [K in keyof Route as K extends `:${string}` ? (string & {}) | number | K : K extends '' | '/' ? 'index' : K]: Route[K] extends {
15
+ body: infer Body;
16
+ headers: infer Headers;
17
+ query: infer Query;
18
+ params: unknown;
19
+ response: infer Response;
20
+ } ? K extends 'subscribe' ? undefined extends Route['query'] ? (params?: {
21
+ $query?: Record<string, string>;
22
+ }) => EdenWS<Route> : (params: {
23
+ $query: Route['query'];
24
+ }) => EdenWS<Route['subscribe']> : ((params: Prettify<{
25
+ $fetch?: RequestInit;
26
+ getRaw?: boolean;
27
+ $transform?: Transform;
28
+ } & (IsUnknown<Body> extends false ? Replace<Body, Blob | Blob[], Files> : {}) & (undefined extends Query ? {
29
+ $query?: Record<string, string>;
30
+ } : {
31
+ $query: Query;
32
+ }) & (undefined extends Headers ? {
33
+ $headers?: Record<string, unknown>;
34
+ } : {
35
+ $headers: Headers;
36
+ })>) => Promise<({
37
+ data: Response extends {
38
+ 200: infer ReturnedType;
39
+ } ? Awaited<ReturnedType> : unknown;
40
+ error: null;
41
+ } | {
42
+ data: null;
43
+ error: Response extends Record<number, unknown> ? MapError<Response> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string> : EdenFetchError<number, unknown>;
44
+ }) & {
45
+ status: number;
46
+ response: Response;
47
+ headers: Record<string, string>;
48
+ }>) extends (params: infer Params) => infer Response ? {
49
+ $params: undefined;
50
+ $headers: undefined;
51
+ $query: undefined;
52
+ } extends Params ? (params?: Params, options?: {
53
+ fetch?: RequestInit;
54
+ transform?: EdenTreaty.Transform<Response>;
55
+ query?: Params['query'];
56
+ headers?: Params['headers'];
57
+ }) => Response : (params: Params, options?: {
58
+ fetch?: RequestInit;
59
+ transform?: EdenTreaty.Transform<Response>;
60
+ query?: Params['query'];
61
+ headers?: Params['headers'];
62
+ }) => Response : never : Prettify<Sign<Route[K]>>;
63
+ };
64
+ type UnwrapPromise<T> = T extends Promise<infer A> ? A : T;
65
+ export type Transform<T = unknown> = MaybeArray$1<(response: unknown extends T ? {
66
+ data: any;
67
+ error: any;
68
+ response: Response;
69
+ status: number;
70
+ headers: Headers;
71
+ } : UnwrapPromise<T>) => UnwrapPromise<T> | void>;
72
+ export interface Config {
73
+ /**
74
+ * Default options to pass to fetch
75
+ */
76
+ $fetch?: RequestInit;
77
+ fetcher?: typeof fetch;
78
+ transform?: Transform;
79
+ }
80
+ export type DetailedResponse = {
81
+ data: any;
82
+ error: any;
83
+ response: Response;
84
+ status: number;
85
+ headers: Headers;
86
+ };
87
+ export interface OnMessage<Data = unknown> extends MessageEvent {
88
+ data: Data;
89
+ rawData: MessageEvent['data'];
90
+ }
91
+ export type ExecuteOptions = {
92
+ getRaw?: boolean;
93
+ };
94
+ export type ExecuteReturnType<T extends ExecuteOptions> = T['getRaw'] extends true ? Response : DetailedResponse;
95
+ export type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
96
+ export { };
97
+ }
98
+
99
+ type MaybeArray<T> = T | T[];
100
+ declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
101
+ ws: WebSocket;
102
+ url: string;
103
+ constructor(url: string);
104
+ send(data: MaybeArray<Schema['body']>): this;
105
+ on<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
106
+ off<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
107
+ subscribe(onMessage: (event: EdenTreaty.WSEvent<'message', Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
108
+ addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
109
+ removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
110
+ close(): this;
111
+ }
112
+ declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any, any, any>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
113
+
114
+ export { EdenTreaty, EdenWS, edenTreaty };
@@ -0,0 +1,114 @@
1
+ import { Elysia, InputSchema } from 'elysia';
2
+ import { P as Prettify, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-C41kuZ-K.js';
3
+
4
+ type Files = File | FileList;
5
+ type Replace<RecordType, TargetType, GenericType> = {
6
+ [K in keyof RecordType]: RecordType[K] extends TargetType ? GenericType : RecordType[K];
7
+ };
8
+ type MaybeArray$1<T> = T | T[];
9
+ declare namespace EdenTreaty {
10
+ export type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
11
+ _routes: infer Schema extends Record<string, unknown>;
12
+ } ? Prettify<Sign<Schema>> : 'Please install Elysia before using Eden';
13
+ export type Sign<Route extends Record<string, any>> = {
14
+ [K in keyof Route as K extends `:${string}` ? (string & {}) | number | K : K extends '' | '/' ? 'index' : K]: Route[K] extends {
15
+ body: infer Body;
16
+ headers: infer Headers;
17
+ query: infer Query;
18
+ params: unknown;
19
+ response: infer Response;
20
+ } ? K extends 'subscribe' ? undefined extends Route['query'] ? (params?: {
21
+ $query?: Record<string, string>;
22
+ }) => EdenWS<Route> : (params: {
23
+ $query: Route['query'];
24
+ }) => EdenWS<Route['subscribe']> : ((params: Prettify<{
25
+ $fetch?: RequestInit;
26
+ getRaw?: boolean;
27
+ $transform?: Transform;
28
+ } & (IsUnknown<Body> extends false ? Replace<Body, Blob | Blob[], Files> : {}) & (undefined extends Query ? {
29
+ $query?: Record<string, string>;
30
+ } : {
31
+ $query: Query;
32
+ }) & (undefined extends Headers ? {
33
+ $headers?: Record<string, unknown>;
34
+ } : {
35
+ $headers: Headers;
36
+ })>) => Promise<({
37
+ data: Response extends {
38
+ 200: infer ReturnedType;
39
+ } ? Awaited<ReturnedType> : unknown;
40
+ error: null;
41
+ } | {
42
+ data: null;
43
+ error: Response extends Record<number, unknown> ? MapError<Response> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string> : EdenFetchError<number, unknown>;
44
+ }) & {
45
+ status: number;
46
+ response: Response;
47
+ headers: Record<string, string>;
48
+ }>) extends (params: infer Params) => infer Response ? {
49
+ $params: undefined;
50
+ $headers: undefined;
51
+ $query: undefined;
52
+ } extends Params ? (params?: Params, options?: {
53
+ fetch?: RequestInit;
54
+ transform?: EdenTreaty.Transform<Response>;
55
+ query?: Params['query'];
56
+ headers?: Params['headers'];
57
+ }) => Response : (params: Params, options?: {
58
+ fetch?: RequestInit;
59
+ transform?: EdenTreaty.Transform<Response>;
60
+ query?: Params['query'];
61
+ headers?: Params['headers'];
62
+ }) => Response : never : Prettify<Sign<Route[K]>>;
63
+ };
64
+ type UnwrapPromise<T> = T extends Promise<infer A> ? A : T;
65
+ export type Transform<T = unknown> = MaybeArray$1<(response: unknown extends T ? {
66
+ data: any;
67
+ error: any;
68
+ response: Response;
69
+ status: number;
70
+ headers: Headers;
71
+ } : UnwrapPromise<T>) => UnwrapPromise<T> | void>;
72
+ export interface Config {
73
+ /**
74
+ * Default options to pass to fetch
75
+ */
76
+ $fetch?: RequestInit;
77
+ fetcher?: typeof fetch;
78
+ transform?: Transform;
79
+ }
80
+ export type DetailedResponse = {
81
+ data: any;
82
+ error: any;
83
+ response: Response;
84
+ status: number;
85
+ headers: Headers;
86
+ };
87
+ export interface OnMessage<Data = unknown> extends MessageEvent {
88
+ data: Data;
89
+ rawData: MessageEvent['data'];
90
+ }
91
+ export type ExecuteOptions = {
92
+ getRaw?: boolean;
93
+ };
94
+ export type ExecuteReturnType<T extends ExecuteOptions> = T['getRaw'] extends true ? Response : DetailedResponse;
95
+ export type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
96
+ export { };
97
+ }
98
+
99
+ type MaybeArray<T> = T | T[];
100
+ declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
101
+ ws: WebSocket;
102
+ url: string;
103
+ constructor(url: string);
104
+ send(data: MaybeArray<Schema['body']>): this;
105
+ on<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
106
+ off<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
107
+ subscribe(onMessage: (event: EdenTreaty.WSEvent<'message', Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
108
+ addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
109
+ removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
110
+ close(): this;
111
+ }
112
+ declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any, any, any>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
113
+
114
+ export { EdenTreaty, EdenWS, edenTreaty };
@@ -0,0 +1 @@
1
+ "use strict";var Eden=(()=>{var v=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var U=(t,e)=>{for(var n in e)v(t,n,{get:e[n],enumerable:!0})},_=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of G(e))!H.call(t,s)&&s!==n&&v(t,s,{get:()=>e[s],enumerable:!(r=B(e,s))||r.enumerable});return t};var z=t=>_(v({},"__esModule",{value:!0}),t);var ae={};U(ae,{EdenWS:()=>b,edenTreaty:()=>se});var S=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var L=(t,e,n)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!n||!Object.keys(n).length)return`${t}${e}`;let r="";for(let[s,i]of Object.entries(n))r+=`${s}=${i}&`;return`${t}${e}?${r.slice(0,-1)}`};var Q=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,X=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,Y=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,ee=t=>t.trim().length!==0&&!Number.isNaN(Number(t)),N=t=>{if(typeof t!="string")return null;let e=t.replace(/"/g,"");if(Q.test(e)||X.test(e)||Y.test(e)){let n=new Date(e);if(!Number.isNaN(n.getTime()))return n}return null},te=t=>{let e=t.charCodeAt(0),n=t.charCodeAt(t.length-1);return e===123&&n===125||e===91&&n===93},ne=t=>JSON.parse(t,(e,n)=>{let r=N(n);return r||n}),$=t=>{if(!t)return t;if(ee(t))return+t;if(t==="true")return!0;if(t==="false")return!1;let e=N(t);if(e)return e;if(te(t))try{return ne(t)}catch{}return t},K=t=>{let e=t.data.toString();return e==="null"?null:$(e)};var M=typeof FileList>"u",j=t=>M?t instanceof Blob:t instanceof FileList||t instanceof File,re=t=>{if(!t)return!1;for(let e in t){if(j(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(n=>j(n)))return!0}return!1},F=t=>M?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(r)},n.readAsArrayBuffer(t)}),b=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,r){return this.addEventListener(e,n,r)}off(e,n,r){return this.ws.removeEventListener(e,n,r),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,r){return this.ws.addEventListener(e,s=>{if(e==="message"){let i=K(s);n({...s,data:i})}else n(s)},r),this}removeEventListener(e,n,r){return this.off(e,n,r),this}close(){return this.ws.close(),this}},D=(t,e="",n)=>new Proxy(()=>{},{get(r,s,i){return D(t,`${e}/${s.toString()}`,n)},apply(r,s,[i,w={}]=[{},{}]){let c=i!==void 0&&(typeof i!="object"||Array.isArray(i))?i:void 0,{$query:I,$fetch:R,$headers:P,$transform:g,getRaw:C,...J}=i??{};c??=J;let x=e.lastIndexOf("/"),m=e.slice(x+1).toUpperCase(),A=L(t,x===-1?"/":e.slice(0,x),Object.assign(w.query??{},I)),q=n.fetcher??fetch,u=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,T=g?Array.isArray(g)?g:[g]:void 0;return T&&(u?u=T.concat(u):u=T),m==="SUBSCRIBE"?new b(A.replace(/^([^]+):\/\//,A.startsWith("https://")?"wss://":"ws://")):(async V=>{let a,W={...n.$fetch?.headers,...R?.headers,...w.headers,...P};if(m!=="GET"&&m!=="HEAD"){a=Object.keys(c).length||Array.isArray(c)?c:void 0;let l=a&&(typeof a=="object"||Array.isArray(c));if(l&&re(a)){let p=new FormData;for(let[h,d]of Object.entries(a))if(M)p.append(h,d);else if(d instanceof File)p.append(h,await F(d));else if(d instanceof FileList)for(let y=0;y<d.length;y++)p.append(h,await F(d[y]));else if(Array.isArray(d))for(let y=0;y<d.length;y++){let O=d[y];p.append(h,O instanceof File?await F(O):O)}else p.append(h,d);a=p}else a!=null&&(W["content-type"]=l?"application/json":"text/plain",a=l?JSON.stringify(a):c)}let o=await q(A,{method:m,body:a,...n.$fetch,...w.fetch,...R,headers:W}),E;if(V.getRaw)return o;switch(o.headers.get("Content-Type")?.split(";")[0]){case"application/json":E=await o.json();break;default:E=await o.text().then($)}let Z=o.status>=300||o.status<200?new S(o.status,E):null,k={data:E,error:Z,response:o,status:o.status,headers:o.headers};if(u)for(let l of u){let f=l(k);f instanceof Promise&&(f=await f),f!=null&&(k=f)}return k})({getRaw:C})}}),se=(t,e={fetcher:fetch})=>new Proxy({},{get(n,r){return D(t,r,e)}});return z(ae);})();
@@ -0,0 +1 @@
1
+ "use strict";var v=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var U=(t,e)=>{for(var n in e)v(t,n,{get:e[n],enumerable:!0})},_=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of G(e))!H.call(t,s)&&s!==n&&v(t,s,{get:()=>e[s],enumerable:!(r=B(e,s))||r.enumerable});return t};var z=t=>_(v({},"__esModule",{value:!0}),t);var ae={};U(ae,{EdenWS:()=>b,edenTreaty:()=>se});module.exports=z(ae);var S=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var L=(t,e,n)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!n||!Object.keys(n).length)return`${t}${e}`;let r="";for(let[s,i]of Object.entries(n))r+=`${s}=${i}&`;return`${t}${e}?${r.slice(0,-1)}`};var Q=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,X=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,Y=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,ee=t=>t.trim().length!==0&&!Number.isNaN(Number(t)),N=t=>{if(typeof t!="string")return null;let e=t.replace(/"/g,"");if(Q.test(e)||X.test(e)||Y.test(e)){let n=new Date(e);if(!Number.isNaN(n.getTime()))return n}return null},te=t=>{let e=t.charCodeAt(0),n=t.charCodeAt(t.length-1);return e===123&&n===125||e===91&&n===93},ne=t=>JSON.parse(t,(e,n)=>{let r=N(n);return r||n}),$=t=>{if(!t)return t;if(ee(t))return+t;if(t==="true")return!0;if(t==="false")return!1;let e=N(t);if(e)return e;if(te(t))try{return ne(t)}catch{}return t},K=t=>{let e=t.data.toString();return e==="null"?null:$(e)};var M=typeof FileList>"u",j=t=>M?t instanceof Blob:t instanceof FileList||t instanceof File,re=t=>{if(!t)return!1;for(let e in t){if(j(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(n=>j(n)))return!0}return!1},F=t=>M?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(r)},n.readAsArrayBuffer(t)}),b=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,r){return this.addEventListener(e,n,r)}off(e,n,r){return this.ws.removeEventListener(e,n,r),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,r){return this.ws.addEventListener(e,s=>{if(e==="message"){let i=K(s);n({...s,data:i})}else n(s)},r),this}removeEventListener(e,n,r){return this.off(e,n,r),this}close(){return this.ws.close(),this}},D=(t,e="",n)=>new Proxy(()=>{},{get(r,s,i){return D(t,`${e}/${s.toString()}`,n)},apply(r,s,[i,w={}]=[{},{}]){let c=i!==void 0&&(typeof i!="object"||Array.isArray(i))?i:void 0,{$query:I,$fetch:R,$headers:P,$transform:g,getRaw:C,...J}=i??{};c??=J;let x=e.lastIndexOf("/"),m=e.slice(x+1).toUpperCase(),A=L(t,x===-1?"/":e.slice(0,x),Object.assign(w.query??{},I)),q=n.fetcher??fetch,u=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,T=g?Array.isArray(g)?g:[g]:void 0;return T&&(u?u=T.concat(u):u=T),m==="SUBSCRIBE"?new b(A.replace(/^([^]+):\/\//,A.startsWith("https://")?"wss://":"ws://")):(async V=>{let a,W={...n.$fetch?.headers,...R?.headers,...w.headers,...P};if(m!=="GET"&&m!=="HEAD"){a=Object.keys(c).length||Array.isArray(c)?c:void 0;let l=a&&(typeof a=="object"||Array.isArray(c));if(l&&re(a)){let p=new FormData;for(let[h,d]of Object.entries(a))if(M)p.append(h,d);else if(d instanceof File)p.append(h,await F(d));else if(d instanceof FileList)for(let y=0;y<d.length;y++)p.append(h,await F(d[y]));else if(Array.isArray(d))for(let y=0;y<d.length;y++){let O=d[y];p.append(h,O instanceof File?await F(O):O)}else p.append(h,d);a=p}else a!=null&&(W["content-type"]=l?"application/json":"text/plain",a=l?JSON.stringify(a):c)}let o=await q(A,{method:m,body:a,...n.$fetch,...w.fetch,...R,headers:W}),E;if(V.getRaw)return o;switch(o.headers.get("Content-Type")?.split(";")[0]){case"application/json":E=await o.json();break;default:E=await o.text().then($)}let Z=o.status>=300||o.status<200?new S(o.status,E):null,k={data:E,error:Z,response:o,status:o.status,headers:o.headers};if(u)for(let l of u){let f=l(k);f instanceof Promise&&(f=await f),f!=null&&(k=f)}return k})({getRaw:C})}}),se=(t,e={fetcher:fetch})=>new Proxy({},{get(n,r){return D(t,r,e)}});0&&(module.exports={EdenWS,edenTreaty});
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk-2IHGLN7W.mjs";import"./chunk-XYW4OUFN.mjs";export{a as EdenWS,b as edenTreaty};
@@ -0,0 +1,5 @@
1
+ import type { Elysia } from 'elysia';
2
+ import type { Treaty } from './types';
3
+ export declare function streamResponse(response: Response): AsyncGenerator<any, void, unknown>;
4
+ export declare const treaty: <const App extends Elysia<any, any, any, any, any, any, any, any>>(domain: string | App, config?: Treaty.Config) => Treaty.Create<App>;
5
+ export type { Treaty };
@@ -0,0 +1,86 @@
1
+ import type { Elysia } from 'elysia';
2
+ import { EdenWS } from './ws';
3
+ import type { IsNever, Not, Prettify } from '../types';
4
+ type Files = File | FileList;
5
+ type ReplaceBlobWithFiles<in out RecordType extends Record<string, unknown>> = {
6
+ [K in keyof RecordType]: RecordType[K] extends Blob | Blob[] ? Files : RecordType[K];
7
+ } & {};
8
+ type And<A extends boolean, B extends boolean> = A extends true ? B extends true ? true : false : false;
9
+ type ReplaceGeneratorWithAsyncGenerator<in out RecordType extends Record<string, unknown>> = {
10
+ [K in keyof RecordType]: RecordType[K] extends Generator<infer A, infer B, infer C> ? And<Not<IsNever<A>>, void extends B ? true : false> extends true ? AsyncGenerator<A, B, C> : And<IsNever<A>, void extends B ? false : true> extends true ? B : AsyncGenerator<A, B, C> | B : RecordType[K] extends AsyncGenerator<infer A, infer B, infer C> ? And<Not<IsNever<A>>, void extends B ? true : false> extends true ? AsyncGenerator<A, B, C> : And<IsNever<A>, void extends B ? false : true> extends true ? B : AsyncGenerator<A, B, C> | B : RecordType[K];
11
+ } & {};
12
+ type MaybeArray<T> = T | T[];
13
+ type MaybePromise<T> = T | Promise<T>;
14
+ export declare namespace Treaty {
15
+ interface TreatyParam {
16
+ fetch?: RequestInit;
17
+ }
18
+ export type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
19
+ _routes: infer Schema extends Record<string, any>;
20
+ } ? Prettify<Sign<Schema>> : 'Please install Elysia before using Eden';
21
+ export type Sign<in out Route extends Record<string, any>> = {
22
+ [K in keyof Route as K extends `:${string}` ? never : K]: K extends 'subscribe' ? (undefined extends Route['subscribe']['headers'] ? {
23
+ headers?: Record<string, unknown>;
24
+ } : {
25
+ headers: Route['subscribe']['headers'];
26
+ }) & (undefined extends Route['subscribe']['query'] ? {
27
+ query?: Record<string, unknown>;
28
+ } : {
29
+ query: Route['subscribe']['query'];
30
+ }) extends infer Param ? {} extends Param ? (options?: Param) => EdenWS<Route['subscribe']> : (options?: Param) => EdenWS<Route['subscribe']> : never : Route[K] extends {
31
+ body: infer Body;
32
+ headers: infer Headers;
33
+ params: any;
34
+ query: infer Query;
35
+ response: infer Response extends Record<number, unknown>;
36
+ } ? (undefined extends Headers ? {
37
+ headers?: Record<string, unknown>;
38
+ } : {
39
+ headers: Headers;
40
+ }) & (undefined extends Query ? {
41
+ query?: Record<string, unknown>;
42
+ } : {
43
+ query: Query;
44
+ }) extends infer Param ? {} extends Param ? undefined extends Body ? K extends 'get' | 'head' ? (options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : K extends 'get' | 'head' ? (options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<ReplaceGeneratorWithAsyncGenerator<Response>>> : never : CreateParams<Route[K]>;
45
+ };
46
+ type CreateParams<Route extends Record<string, any>> = Extract<keyof Route, `:${string}`> extends infer Path extends string ? IsNever<Path> extends true ? Prettify<Sign<Route>> : // ! DO NOT USE PRETTIFY ON THIS LINE, OTHERWISE FUNCTION CALLING WILL BE OMITTED
47
+ (((params: {
48
+ [param in Path extends `:${infer Param}` ? Param extends `${infer Param}?` ? Param : Param : never]: string | number;
49
+ }) => Prettify<Sign<Route[Path]>> & CreateParams<Route[Path]>) & Prettify<Sign<Route>>) & (Path extends `:${string}?` ? CreateParams<Route[Path]> : {}) : never;
50
+ export interface Config {
51
+ fetch?: Omit<RequestInit, 'headers' | 'method'>;
52
+ fetcher?: typeof fetch;
53
+ headers?: MaybeArray<RequestInit['headers'] | ((path: string, options: RequestInit) => RequestInit['headers'] | void)>;
54
+ onRequest?: MaybeArray<(path: string, options: FetchRequestInit) => MaybePromise<FetchRequestInit | void>>;
55
+ onResponse?: MaybeArray<(response: Response) => MaybePromise<unknown>>;
56
+ keepDomain?: boolean;
57
+ }
58
+ export type TreatyResponse<Res extends Record<number, unknown>> = {
59
+ data: Res[200];
60
+ error: null;
61
+ response: Response;
62
+ status: number;
63
+ headers: FetchRequestInit['headers'];
64
+ } | {
65
+ data: null;
66
+ error: Exclude<keyof Res, 200> extends never ? {
67
+ status: unknown;
68
+ value: unknown;
69
+ } : {
70
+ [Status in keyof Res]: {
71
+ status: Status;
72
+ value: Res[Status];
73
+ };
74
+ }[Exclude<keyof Res, 200>];
75
+ response: Response;
76
+ status: number;
77
+ headers: FetchRequestInit['headers'];
78
+ };
79
+ export interface OnMessage<Data = unknown> extends MessageEvent {
80
+ data: Data;
81
+ rawData: MessageEvent['data'];
82
+ }
83
+ export type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
84
+ export {};
85
+ }
86
+ export {};
@@ -0,0 +1,14 @@
1
+ import type { InputSchema } from 'elysia';
2
+ import type { Treaty } from './types';
3
+ export declare class EdenWS<in out Schema extends InputSchema<any> = {}> {
4
+ url: string;
5
+ ws: WebSocket;
6
+ constructor(url: string);
7
+ send(data: Schema['body'] | Schema['body'][]): this;
8
+ on<K extends keyof WebSocketEventMap>(type: K, listener: (event: Treaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
9
+ off<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
10
+ subscribe(onMessage: (event: Treaty.WSEvent<'message', Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
11
+ addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (event: Treaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
12
+ removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
13
+ close(): this;
14
+ }