vercel-runtime 0.7.0__tar.gz → 0.9.0__tar.gz

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 (162) hide show
  1. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/PKG-INFO +1 -1
  2. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/pyproject.toml +2 -1
  3. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/LICENSE.md +3 -3
  4. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/serving.py +13 -3
  5. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/dev.py +65 -18
  6. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/__init__.py +0 -0
  7. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/__init__.py +0 -0
  8. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/LICENSE.txt +0 -0
  9. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/__init__.py +0 -0
  10. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/_compat.py +0 -0
  11. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/_termui_impl.py +0 -0
  12. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/_textwrap.py +0 -0
  13. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/_winconsole.py +0 -0
  14. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/core.py +0 -0
  15. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/decorators.py +0 -0
  16. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/exceptions.py +0 -0
  17. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/formatting.py +0 -0
  18. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/globals.py +0 -0
  19. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/parser.py +0 -0
  20. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/py.typed +0 -0
  21. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/shell_completion.py +0 -0
  22. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/termui.py +0 -0
  23. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/testing.py +0 -0
  24. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/types.py +0 -0
  25. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/click/utils.py +0 -0
  26. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/colorama/LICENSE.txt +0 -0
  27. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/colorama/__init__.py +0 -0
  28. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/colorama/ansi.py +0 -0
  29. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/colorama/ansitowin32.py +0 -0
  30. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/colorama/initialise.py +0 -0
  31. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/colorama/win32.py +0 -0
  32. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/colorama/winterm.py +0 -0
  33. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/colorama.pyi +0 -0
  34. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/h11/LICENSE.txt +0 -0
  35. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/h11/__init__.py +0 -0
  36. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/h11/_abnf.py +0 -0
  37. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/h11/_connection.py +0 -0
  38. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/h11/_events.py +0 -0
  39. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/h11/_headers.py +0 -0
  40. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/h11/_readers.py +0 -0
  41. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/h11/_receivebuffer.py +0 -0
  42. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/h11/_state.py +0 -0
  43. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/h11/_util.py +0 -0
  44. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/h11/_version.py +0 -0
  45. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/h11/_writers.py +0 -0
  46. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/h11/py.typed +0 -0
  47. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/markupsafe/LICENSE.txt +0 -0
  48. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/markupsafe/__init__.py +0 -0
  49. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/markupsafe/_native.py +0 -0
  50. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/markupsafe/_speedups.c +0 -0
  51. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/markupsafe/_speedups.pyi +0 -0
  52. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/markupsafe/py.typed +0 -0
  53. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/__init__.py +0 -0
  54. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/__main__.py +0 -0
  55. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/_compat.py +0 -0
  56. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/_subprocess.py +0 -0
  57. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/_types.py +0 -0
  58. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/config.py +0 -0
  59. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/importer.py +0 -0
  60. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/lifespan/__init__.py +0 -0
  61. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/lifespan/off.py +0 -0
  62. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/lifespan/on.py +0 -0
  63. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/logging.py +0 -0
  64. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/loops/__init__.py +0 -0
  65. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/loops/asyncio.py +0 -0
  66. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/loops/auto.py +0 -0
  67. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/loops/uvloop.py +0 -0
  68. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/main.py +0 -0
  69. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/middleware/__init__.py +0 -0
  70. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/middleware/asgi2.py +0 -0
  71. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/middleware/message_logger.py +0 -0
  72. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/middleware/proxy_headers.py +0 -0
  73. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/middleware/wsgi.py +0 -0
  74. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/protocols/__init__.py +0 -0
  75. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/protocols/http/__init__.py +0 -0
  76. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/protocols/http/auto.py +0 -0
  77. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/protocols/http/flow_control.py +0 -0
  78. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/protocols/http/h11_impl.py +0 -0
  79. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/protocols/http/httptools_impl.py +0 -0
  80. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/protocols/utils.py +0 -0
  81. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/protocols/websockets/__init__.py +0 -0
  82. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/protocols/websockets/auto.py +0 -0
  83. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/protocols/websockets/websockets_impl.py +0 -0
  84. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/protocols/websockets/websockets_sansio_impl.py +0 -0
  85. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/protocols/websockets/wsproto_impl.py +0 -0
  86. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/py.typed +0 -0
  87. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/server.py +0 -0
  88. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/supervisors/__init__.py +0 -0
  89. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/supervisors/basereload.py +0 -0
  90. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/supervisors/multiprocess.py +0 -0
  91. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/supervisors/statreload.py +0 -0
  92. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/supervisors/watchfilesreload.py +0 -0
  93. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/uvicorn/workers.py +0 -0
  94. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/vendor.txt +0 -0
  95. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/ICON_LICENSE.md +0 -0
  96. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/LICENSE.txt +0 -0
  97. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/__init__.py +0 -0
  98. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/_internal.py +0 -0
  99. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/_reloader.py +0 -0
  100. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/datastructures/__init__.py +0 -0
  101. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/datastructures/accept.py +0 -0
  102. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/datastructures/auth.py +0 -0
  103. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/datastructures/cache_control.py +0 -0
  104. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/datastructures/csp.py +0 -0
  105. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/datastructures/etag.py +0 -0
  106. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/datastructures/file_storage.py +0 -0
  107. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/datastructures/headers.py +0 -0
  108. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/datastructures/mixins.py +0 -0
  109. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/datastructures/range.py +0 -0
  110. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/datastructures/structures.py +0 -0
  111. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/debug/__init__.py +0 -0
  112. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/debug/console.py +0 -0
  113. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/debug/repr.py +0 -0
  114. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/debug/shared/ICON_LICENSE.md +0 -0
  115. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/debug/shared/console.png +0 -0
  116. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/debug/shared/debugger.js +0 -0
  117. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/debug/shared/less.png +0 -0
  118. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/debug/shared/more.png +0 -0
  119. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/debug/shared/style.css +0 -0
  120. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/debug/tbtools.py +0 -0
  121. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/exceptions.py +0 -0
  122. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/formparser.py +0 -0
  123. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/http.py +0 -0
  124. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/local.py +0 -0
  125. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/middleware/__init__.py +0 -0
  126. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/middleware/dispatcher.py +0 -0
  127. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/middleware/http_proxy.py +0 -0
  128. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/middleware/lint.py +0 -0
  129. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/middleware/profiler.py +0 -0
  130. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/middleware/proxy_fix.py +0 -0
  131. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/middleware/shared_data.py +0 -0
  132. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/py.typed +0 -0
  133. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/routing/__init__.py +0 -0
  134. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/routing/converters.py +0 -0
  135. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/routing/exceptions.py +0 -0
  136. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/routing/map.py +0 -0
  137. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/routing/matcher.py +0 -0
  138. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/routing/rules.py +0 -0
  139. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/sansio/__init__.py +0 -0
  140. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/sansio/http.py +0 -0
  141. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/sansio/multipart.py +0 -0
  142. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/sansio/request.py +0 -0
  143. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/sansio/response.py +0 -0
  144. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/sansio/utils.py +0 -0
  145. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/security.py +0 -0
  146. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/test.py +0 -0
  147. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/testapp.py +0 -0
  148. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/urls.py +0 -0
  149. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/user_agent.py +0 -0
  150. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/utils.py +0 -0
  151. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/wrappers/__init__.py +0 -0
  152. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/wrappers/request.py +0 -0
  153. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/wrappers/response.py +0 -0
  154. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/_vendor/werkzeug/wsgi.py +0 -0
  155. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/asgi.py +0 -0
  156. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/crons.py +0 -0
  157. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/headers.py +0 -0
  158. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/resolver.py +0 -0
  159. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/routing.py +0 -0
  160. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/utils.py +0 -0
  161. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/vc_init.py +0 -0
  162. {vercel_runtime-0.7.0 → vercel_runtime-0.9.0}/src/vercel_runtime/workers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vercel-runtime
3
- Version: 0.7.0
3
+ Version: 0.9.0
4
4
  License-Expression: Apache-2.0
5
5
  License-File: src/vercel_runtime/_vendor/__init__.py
6
6
  License-File: src/vercel_runtime/_vendor/click/LICENSE.txt
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "vercel-runtime"
3
- version = "0.7.0"
3
+ version = "0.9.0"
4
4
  license = "Apache-2.0"
5
5
  license-files = [
6
6
  "src/vercel_runtime/_vendor/*/LICEN[CS]E*",
@@ -139,6 +139,7 @@ exclude_lines = [
139
139
 
140
140
  [tool.vendoring]
141
141
  destination = "src/vercel_runtime/_vendor/"
142
+ patches-dir = "patches/"
142
143
  requirements = "src/vercel_runtime/_vendor/vendor.txt"
143
144
  namespace = "vercel_runtime._vendor"
144
145
  protected-files = ["__init__.py", "vendor.txt"]
@@ -4,14 +4,14 @@ All rights reserved.
4
4
  Redistribution and use in source and binary forms, with or without
5
5
  modification, are permitted provided that the following conditions are met:
6
6
 
7
- - Redistributions of source code must retain the above copyright notice, this
7
+ * Redistributions of source code must retain the above copyright notice, this
8
8
  list of conditions and the following disclaimer.
9
9
 
10
- - Redistributions in binary form must reproduce the above copyright notice,
10
+ * Redistributions in binary form must reproduce the above copyright notice,
11
11
  this list of conditions and the following disclaimer in the documentation
12
12
  and/or other materials provided with the distribution.
13
13
 
14
- - Neither the name of the copyright holder nor the names of its
14
+ * Neither the name of the copyright holder nor the names of its
15
15
  contributors may be used to endorse or promote products derived from
16
16
  this software without specific prior written permission.
17
17
 
@@ -17,6 +17,7 @@ from __future__ import annotations
17
17
  import errno
18
18
  import io
19
19
  import os
20
+ import re
20
21
  import selectors
21
22
  import socket
22
23
  import socketserver
@@ -27,6 +28,7 @@ from datetime import timedelta
27
28
  from datetime import timezone
28
29
  from http.server import BaseHTTPRequestHandler
29
30
  from http.server import HTTPServer
31
+ from pathlib import Path
30
32
  from urllib.parse import unquote
31
33
  from urllib.parse import urlsplit
32
34
 
@@ -55,6 +57,16 @@ except ImportError:
55
57
  ssl = _SslDummy() # type: ignore
56
58
  connection_dropped_errors = (ConnectionError, socket.timeout)
57
59
 
60
+ def _vendored_versions() -> dict[str, str]:
61
+ vendor_txt = Path(__file__).parent.parent / "vendor.txt"
62
+ try:
63
+ return dict(
64
+ re.findall(r"^(\S+)==(\S+)", vendor_txt.read_text(), re.MULTILINE)
65
+ )
66
+ except Exception:
67
+ return {}
68
+
69
+
58
70
  _log_add_style = True
59
71
 
60
72
  if os.name == "nt":
@@ -807,9 +819,7 @@ class BaseWSGIServer(HTTPServer):
807
819
  else:
808
820
  self.ssl_context = None
809
821
 
810
- import importlib.metadata
811
-
812
- self._server_version = f"Werkzeug/{importlib.metadata.version('werkzeug')}"
822
+ self._server_version = f"Werkzeug/{_vendored_versions().get('werkzeug', 'unknown')}"
813
823
 
814
824
  def log(self, type: str, message: str, *args: t.Any) -> None:
815
825
  _log(type, message, *args)
@@ -12,11 +12,16 @@ from vercel_runtime._vendor.uvicorn.config import (
12
12
  LOGGING_CONFIG as UVICORN_LOGGING_CONFIG,
13
13
  )
14
14
  from vercel_runtime._vendor.werkzeug.serving import run_simple
15
+ from vercel_runtime.crons import bootstrap_cron_service_app, is_cron_service
15
16
  from vercel_runtime.resolver import detect_app_type, import_module, resolve_app
16
17
  from vercel_runtime.routing import (
17
18
  apply_service_route_prefix_to_asgi_scope,
18
19
  strip_service_route_prefix,
19
20
  )
21
+ from vercel_runtime.workers import (
22
+ bootstrap_worker_service_app,
23
+ is_worker_service,
24
+ )
20
25
 
21
26
  if TYPE_CHECKING:
22
27
  from collections.abc import Awaitable, Callable
@@ -118,12 +123,14 @@ def _build_uvicorn_log_config(
118
123
  if default_fmt is None:
119
124
  default_fmt = {
120
125
  **uvicorn_fmts["default"],
126
+ "()": "vercel_runtime._vendor.uvicorn.logging.DefaultFormatter",
121
127
  "use_colors": not _NO_COLOR,
122
128
  }
123
129
 
124
130
  if access_fmt is None:
125
131
  access_fmt = {
126
132
  **uvicorn_fmts["access"],
133
+ "()": "vercel_runtime._vendor.uvicorn.logging.AccessFormatter",
127
134
  "use_colors": not _NO_COLOR,
128
135
  }
129
136
 
@@ -351,22 +358,24 @@ def _start_wsgi(host: str, port: int) -> None:
351
358
 
352
359
 
353
360
  def _start_asgi(host: str, port: int) -> None:
354
- # Prefer user-installed fastapi-cli when available
355
- try:
356
- from fastapi_cli.cli import ( # noqa: PLC0415 # pyright: ignore[reportMissingImports]
357
- dev as fastapi_dev, # pyright: ignore[reportUnknownVariableType]
358
- )
361
+ # Prefer user-installed fastapi-cli for web services;
362
+ # cron/worker go straight to uvicorn.
363
+ if not is_cron_service() and not is_worker_service():
364
+ try:
365
+ from fastapi_cli.cli import ( # noqa: PLC0415 # pyright: ignore[reportMissingImports]
366
+ dev as fastapi_dev, # pyright: ignore[reportUnknownVariableType]
367
+ )
359
368
 
360
- _patch_fastapi_cli_log_config()
361
- fastapi_dev(
362
- entrypoint="vercel_runtime.dev:asgi_app",
363
- host=host,
364
- port=port,
365
- reload=True,
366
- )
367
- sys.exit(0)
368
- except (ImportError, AttributeError):
369
- pass
369
+ _patch_fastapi_cli_log_config()
370
+ fastapi_dev(
371
+ entrypoint="vercel_runtime.dev:asgi_app",
372
+ host=host,
373
+ port=port,
374
+ reload=True,
375
+ )
376
+ sys.exit(0)
377
+ except (ImportError, AttributeError):
378
+ pass
370
379
 
371
380
  vendored_uvicorn.run(
372
381
  "vercel_runtime.dev:asgi_app",
@@ -383,10 +392,20 @@ def _setup_apps() -> None:
383
392
 
384
393
  module_name = os.environ["VERCEL_DEV_MODULE_NAME"]
385
394
  entry_abs = os.environ["VERCEL_DEV_ENTRY_ABS"]
395
+ framework = os.environ["VERCEL_DEV_FRAMEWORK"]
386
396
 
387
397
  _setup_server_log_routing()
388
398
 
389
399
  mod = import_module(module_name, entry_abs)
400
+
401
+ if is_cron_service():
402
+ _asgi_user_app = bootstrap_cron_service_app(mod)
403
+ return
404
+
405
+ if is_worker_service():
406
+ _asgi_user_app = cast("ASGI", bootstrap_worker_service_app(mod))
407
+ return
408
+
390
409
  app_name, user_app = resolve_app(mod, module_name)
391
410
  try:
392
411
  result = detect_app_type(user_app, module_name, app_name)
@@ -397,12 +416,40 @@ def _setup_apps() -> None:
397
416
  if result[0] == "asgi":
398
417
  _asgi_user_app = result[1]
399
418
  else:
400
- _wsgi_user_app = result[1]
419
+ wsgi_app = result[1]
420
+
421
+ if framework == "django":
422
+ wsgi_app = _wrap_django_static(wsgi_app)
423
+
424
+ _wsgi_user_app = wsgi_app
425
+
426
+
427
+ def _wrap_django_static(app: WSGIApplication) -> WSGIApplication:
428
+ # If this is a django app, wrap it with StaticFilesHandler to serve static
429
+ # files. This is necessary because the dev server will not run the full
430
+ # build process (including collectstatic), so static files may not
431
+ # be available depending on the user's configuration.
432
+ #
433
+ # Special cases:
434
+ # - If whitenoise is used, this will override it but that's ok because we
435
+ # don't need it in the dev server.
436
+ # - If django-storages is used, this will override it but that's ok because
437
+ # django-storages handles its own upload to some other CDN.
438
+ try:
439
+ from django.contrib.staticfiles.handlers import ( # type: ignore[import-not-found] # noqa: PLC0415 # pyright: ignore[reportMissingImports]
440
+ StaticFilesHandler, # pyright: ignore[reportUnknownVariableType]
441
+ )
442
+
443
+ return cast("WSGIApplication", StaticFilesHandler(app))
444
+ except ImportError:
445
+ return app
401
446
 
402
447
 
403
448
  # Setup apps at import time so that servers reloader can pick them up.
404
- if os.environ.get("VERCEL_DEV_MODULE_NAME") and os.environ.get(
405
- "VERCEL_DEV_ENTRY_ABS"
449
+ if (
450
+ os.environ.get("VERCEL_DEV_MODULE_NAME")
451
+ and os.environ.get("VERCEL_DEV_ENTRY_ABS")
452
+ and os.environ.get("VERCEL_DEV_FRAMEWORK")
406
453
  ):
407
454
  _setup_apps()
408
455