edge-functions 4.8.1 → 5.0.0-stage.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/README.md +17 -0
  2. package/dist/chunk-ACWSA73O.js +1172 -0
  3. package/dist/chunk-GVUH3USH.js +29 -0
  4. package/dist/commands-LW4LOJNI.js +183 -0
  5. package/dist/env-LSTI67LB.js +19 -0
  6. package/dist/main.js +166 -0
  7. package/package.json +35 -91
  8. package/.commitlintrc.json +0 -40
  9. package/.gitmodules +0 -3
  10. package/.husky/commit-msg +0 -5
  11. package/.husky/pre-commit +0 -4
  12. package/.prettierignore +0 -9
  13. package/CHANGELOG.md +0 -1495
  14. package/CODEOWNERS +0 -1
  15. package/CODE_OF_CONDUCT.md +0 -73
  16. package/CONTRIBUTING.md +0 -91
  17. package/Dockerfile +0 -13
  18. package/aliases.js +0 -15
  19. package/docs/nextjs.md +0 -83
  20. package/docs/nodejs-apis.md +0 -58
  21. package/docs/overview.md +0 -51
  22. package/docs/presets.md +0 -125
  23. package/docs/publish-preset.md +0 -46
  24. package/jest.global.setup.js +0 -20
  25. package/jsconfig.json +0 -22
  26. package/jsdoc.json +0 -52
  27. package/lib/build/bundlers/base.bundlers.js +0 -87
  28. package/lib/build/bundlers/esbuild/esbuild.bundlers.js +0 -85
  29. package/lib/build/bundlers/esbuild/esbuild.bundlers.test.js +0 -85
  30. package/lib/build/bundlers/esbuild/esbuild.config.js +0 -56
  31. package/lib/build/bundlers/esbuild/index.js +0 -3
  32. package/lib/build/bundlers/esbuild/plugins/azion-polyfills/azion-polyfills.plugins.js +0 -105
  33. package/lib/build/bundlers/esbuild/plugins/azion-polyfills/azion-polyfills.plugins.test.js +0 -46
  34. package/lib/build/bundlers/esbuild/plugins/azion-polyfills/index.js +0 -3
  35. package/lib/build/bundlers/esbuild/plugins/node-polyfills/index.js +0 -3
  36. package/lib/build/bundlers/esbuild/plugins/node-polyfills/node-polyfills.plugins.js +0 -337
  37. package/lib/build/bundlers/esbuild/plugins/node-polyfills/node-polyfills.plugins.test.js +0 -40
  38. package/lib/build/bundlers/helpers/azion-libs.js +0 -25
  39. package/lib/build/bundlers/index.js +0 -4
  40. package/lib/build/bundlers/webpack/index.js +0 -3
  41. package/lib/build/bundlers/webpack/plugins/azion-polyfills/azion-polyfills.plugins.js +0 -96
  42. package/lib/build/bundlers/webpack/plugins/azion-polyfills/azion-polyfills.plugins.test.js +0 -84
  43. package/lib/build/bundlers/webpack/plugins/azion-polyfills/index.js +0 -3
  44. package/lib/build/bundlers/webpack/plugins/babel-custom/babel-custom-loader.plugins.js +0 -40
  45. package/lib/build/bundlers/webpack/plugins/babel-custom/index.js +0 -3
  46. package/lib/build/bundlers/webpack/plugins/node-polyfills/index.js +0 -3
  47. package/lib/build/bundlers/webpack/plugins/node-polyfills/node-polyfills.plugins.js +0 -180
  48. package/lib/build/bundlers/webpack/plugins/node-polyfills/node-polyfills.plugins.test.js +0 -59
  49. package/lib/build/bundlers/webpack/webpack.bundlers.js +0 -114
  50. package/lib/build/bundlers/webpack/webpack.bundlers.test.js +0 -96
  51. package/lib/build/bundlers/webpack/webpack.config.js +0 -125
  52. package/lib/build/dispatcher/dispatcher.js +0 -600
  53. package/lib/build/dispatcher/dispatcher.test.js +0 -93
  54. package/lib/build/dispatcher/helpers/helpers.js +0 -104
  55. package/lib/build/dispatcher/index.js +0 -3
  56. package/lib/commands/build.commands.js +0 -151
  57. package/lib/commands/dev.commands.js +0 -38
  58. package/lib/commands/index.js +0 -13
  59. package/lib/commands/init.commands.js +0 -37
  60. package/lib/commands/manifest.commands.js +0 -68
  61. package/lib/commands/presets.commands.js +0 -82
  62. package/lib/constants/index.js +0 -4
  63. package/lib/constants/messages/build.messages.js +0 -54
  64. package/lib/constants/messages/env.messages.js +0 -43
  65. package/lib/constants/messages/global.messages.js +0 -28
  66. package/lib/constants/messages/index.js +0 -11
  67. package/lib/constants/runtime-apis.constants.js +0 -118
  68. package/lib/env/env.test.js +0 -178
  69. package/lib/env/index.js +0 -5
  70. package/lib/env/polyfills/async-hooks/async-hooks.polyfills.js +0 -10
  71. package/lib/env/polyfills/async-hooks/context/async-hooks.context.js +0 -10
  72. package/lib/env/polyfills/async-hooks/context/index.js +0 -3
  73. package/lib/env/polyfills/async-hooks/index.js +0 -8
  74. package/lib/env/polyfills/azion/env-vars/context/env-vars.context.js +0 -67
  75. package/lib/env/polyfills/azion/env-vars/context/env-vars.context.test.js +0 -20
  76. package/lib/env/polyfills/azion/env-vars/context/index.js +0 -3
  77. package/lib/env/polyfills/azion/env-vars/env-vars.polyfills.js +0 -25
  78. package/lib/env/polyfills/azion/env-vars/env-vars.polyfills.test.js +0 -22
  79. package/lib/env/polyfills/azion/env-vars/index.js +0 -3
  80. package/lib/env/polyfills/azion/fetch/context/fetch.context.js +0 -39
  81. package/lib/env/polyfills/azion/fetch/context/fetch.context.test.js +0 -46
  82. package/lib/env/polyfills/azion/fetch/index.js +0 -3
  83. package/lib/env/polyfills/azion/fetch-event/context/fetch-event.context.js +0 -25
  84. package/lib/env/polyfills/azion/fetch-event/context/index.js +0 -3
  85. package/lib/env/polyfills/azion/fetch-event/index.js +0 -3
  86. package/lib/env/polyfills/azion/firewall-event/context/firewall-event.context.js +0 -153
  87. package/lib/env/polyfills/azion/firewall-event/context/firewall-event.context.test.js +0 -56
  88. package/lib/env/polyfills/azion/firewall-event/context/index.js +0 -3
  89. package/lib/env/polyfills/azion/firewall-event/index.js +0 -3
  90. package/lib/env/polyfills/azion/network-list/context/index.js +0 -3
  91. package/lib/env/polyfills/azion/network-list/context/network-list.context.js +0 -232
  92. package/lib/env/polyfills/azion/network-list/context/network-list.context.test.js +0 -44
  93. package/lib/env/polyfills/azion/network-list/index.js +0 -3
  94. package/lib/env/polyfills/azion/network-list/network-list.polyfills.js +0 -16
  95. package/lib/env/polyfills/azion/storage/context/index.js +0 -3
  96. package/lib/env/polyfills/azion/storage/context/storage.context.js +0 -182
  97. package/lib/env/polyfills/azion/storage/context/storage.context.test.js +0 -199
  98. package/lib/env/polyfills/azion/storage/index.js +0 -4
  99. package/lib/env/polyfills/azion/storage/storage.polyfills.js +0 -206
  100. package/lib/env/polyfills/azion/storage/storage.polyfills.test.js +0 -102
  101. package/lib/env/polyfills/fs/context/fs.context.js +0 -96
  102. package/lib/env/polyfills/fs/context/index.js +0 -3
  103. package/lib/env/polyfills/fs/fs.polyfills.js +0 -242
  104. package/lib/env/polyfills/fs/index.js +0 -8
  105. package/lib/env/polyfills/fs/promises/promises.polyfills.js +0 -137
  106. package/lib/env/polyfills/index.js +0 -17
  107. package/lib/env/runtime.env.js +0 -103
  108. package/lib/env/server.env.js +0 -213
  109. package/lib/env/vulcan.env.js +0 -314
  110. package/lib/main.js +0 -258
  111. package/lib/notations/namespaces.js +0 -45
  112. package/lib/notations/typedef.js +0 -32
  113. package/lib/presets/angular/azion.config.js +0 -10
  114. package/lib/presets/angular/config.js +0 -10
  115. package/lib/presets/angular/handler.js +0 -17
  116. package/lib/presets/angular/prebuild.js +0 -38
  117. package/lib/presets/astro/azion.config.js +0 -11
  118. package/lib/presets/astro/config.js +0 -10
  119. package/lib/presets/astro/handler.js +0 -17
  120. package/lib/presets/astro/prebuild.js +0 -32
  121. package/lib/presets/docusaurus/azion.config.js +0 -11
  122. package/lib/presets/docusaurus/config.js +0 -10
  123. package/lib/presets/docusaurus/handler.js +0 -17
  124. package/lib/presets/docusaurus/prebuild.js +0 -21
  125. package/lib/presets/eleventy/azion.config.js +0 -11
  126. package/lib/presets/eleventy/config.js +0 -10
  127. package/lib/presets/eleventy/handler.js +0 -17
  128. package/lib/presets/eleventy/prebuild.js +0 -19
  129. package/lib/presets/emscripten/azion.config.js +0 -11
  130. package/lib/presets/emscripten/config.js +0 -33
  131. package/lib/presets/emscripten/handler.js +0 -37
  132. package/lib/presets/emscripten/prebuild.js +0 -50
  133. package/lib/presets/gatsby/azion.config.js +0 -11
  134. package/lib/presets/gatsby/config.js +0 -10
  135. package/lib/presets/gatsby/handler.js +0 -17
  136. package/lib/presets/gatsby/prebuild.js +0 -21
  137. package/lib/presets/hexo/azion.config.js +0 -11
  138. package/lib/presets/hexo/config.js +0 -10
  139. package/lib/presets/hexo/handler.js +0 -17
  140. package/lib/presets/hexo/prebuild.js +0 -33
  141. package/lib/presets/html/azion.config.js +0 -11
  142. package/lib/presets/html/config.js +0 -10
  143. package/lib/presets/html/handler.js +0 -17
  144. package/lib/presets/html/prebuild.js +0 -15
  145. package/lib/presets/hugo/azion.config.js +0 -11
  146. package/lib/presets/hugo/config.js +0 -10
  147. package/lib/presets/hugo/handler.js +0 -17
  148. package/lib/presets/hugo/prebuild.js +0 -22
  149. package/lib/presets/javascript/azion.config.js +0 -11
  150. package/lib/presets/javascript/config.js +0 -10
  151. package/lib/presets/javascript/handler.js +0 -15
  152. package/lib/presets/javascript/prebuild.js +0 -8
  153. package/lib/presets/jekyll/azion.config.js +0 -11
  154. package/lib/presets/jekyll/config.js +0 -10
  155. package/lib/presets/jekyll/handler.js +0 -17
  156. package/lib/presets/jekyll/prebuild.js +0 -19
  157. package/lib/presets/next/azion.config.js +0 -11
  158. package/lib/presets/next/config.js +0 -12
  159. package/lib/presets/next/default/handler/async-local-storage.js +0 -3
  160. package/lib/presets/next/default/handler/images.js +0 -160
  161. package/lib/presets/next/default/handler/routing/http.js +0 -134
  162. package/lib/presets/next/default/handler/routing/http.test.js +0 -129
  163. package/lib/presets/next/default/handler/routing/index.js +0 -85
  164. package/lib/presets/next/default/handler/routing/libs.js +0 -4
  165. package/lib/presets/next/default/handler/routing/matcher.js +0 -69
  166. package/lib/presets/next/default/handler/routing/matcher.test.js +0 -98
  167. package/lib/presets/next/default/handler/routing/pcre.js +0 -43
  168. package/lib/presets/next/default/handler/routing/pcre.test.js +0 -139
  169. package/lib/presets/next/default/handler/routing/routes-matcher.js +0 -575
  170. package/lib/presets/next/default/handler/routing/utils.js +0 -126
  171. package/lib/presets/next/default/handler/routing/utils.test.js +0 -56
  172. package/lib/presets/next/default/prebuild/edge/index.js +0 -54
  173. package/lib/presets/next/default/prebuild/index.js +0 -147
  174. package/lib/presets/next/default/prebuild/mapping/assets.js +0 -50
  175. package/lib/presets/next/default/prebuild/mapping/assets.test.js +0 -26
  176. package/lib/presets/next/default/prebuild/mapping/index.js +0 -241
  177. package/lib/presets/next/default/prebuild/mapping/index.test.js +0 -77
  178. package/lib/presets/next/default/prebuild/mapping/process-mapping.js +0 -265
  179. package/lib/presets/next/default/prebuild/mapping/process-mapping.test.js +0 -356
  180. package/lib/presets/next/default/prebuild/prerendered/index.js +0 -222
  181. package/lib/presets/next/default/prebuild/validation/support.js +0 -177
  182. package/lib/presets/next/default/prebuild/validation/support.test.js +0 -123
  183. package/lib/presets/next/default/prebuild/validation/supported-versions.js +0 -19
  184. package/lib/presets/next/handler.js +0 -86
  185. package/lib/presets/next/node/custom-server/12.3.x/index.js +0 -22
  186. package/lib/presets/next/node/custom-server/12.3.x/server/base-http/compute-js.js +0 -22
  187. package/lib/presets/next/node/custom-server/12.3.x/server/compute-js.js +0 -62
  188. package/lib/presets/next/node/custom-server/12.3.x/server/config.js +0 -852
  189. package/lib/presets/next/node/custom-server/12.3.x/server/load-components.js +0 -106
  190. package/lib/presets/next/node/custom-server/12.3.x/server/next-compute-js-server.js +0 -1229
  191. package/lib/presets/next/node/custom-server/12.3.x/server/next.js +0 -103
  192. package/lib/presets/next/node/custom-server/12.3.x/server/require.js +0 -298
  193. package/lib/presets/next/node/custom-server/12.3.x/server/response-cache/index.js +0 -125
  194. package/lib/presets/next/node/custom-server/12.3.x/server/serve-static.js +0 -58
  195. package/lib/presets/next/node/custom-server/12.3.x/util/etag.js +0 -37
  196. package/lib/presets/next/node/handler/index.js +0 -25
  197. package/lib/presets/next/node/prebuild/index.js +0 -88
  198. package/lib/presets/next/node/prebuild/statics/index.js +0 -286
  199. package/lib/presets/next/postbuild.js +0 -32
  200. package/lib/presets/next/prebuild.js +0 -149
  201. package/lib/presets/next/static/handler.js +0 -17
  202. package/lib/presets/next/static/prebuild.js +0 -241
  203. package/lib/presets/next/utils/fs.js +0 -113
  204. package/lib/presets/next/utils/next.js +0 -40
  205. package/lib/presets/next/utils/routing.js +0 -62
  206. package/lib/presets/next/utils.next.js +0 -66
  207. package/lib/presets/nuxt/azion.config.js +0 -10
  208. package/lib/presets/nuxt/config.js +0 -10
  209. package/lib/presets/nuxt/handler.js +0 -17
  210. package/lib/presets/nuxt/prebuild.js +0 -19
  211. package/lib/presets/preact/azion.config.js +0 -5
  212. package/lib/presets/preact/config.js +0 -10
  213. package/lib/presets/preact/handler.js +0 -17
  214. package/lib/presets/preact/prebuild.js +0 -89
  215. package/lib/presets/qwik/azion.config.js +0 -5
  216. package/lib/presets/qwik/config.js +0 -10
  217. package/lib/presets/qwik/handler.js +0 -17
  218. package/lib/presets/qwik/prebuild.js +0 -52
  219. package/lib/presets/react/azion.config.js +0 -11
  220. package/lib/presets/react/config.js +0 -10
  221. package/lib/presets/react/handler.js +0 -17
  222. package/lib/presets/react/prebuild.js +0 -93
  223. package/lib/presets/rustwasm/azion.config.js +0 -11
  224. package/lib/presets/rustwasm/config.js +0 -33
  225. package/lib/presets/rustwasm/handler.js +0 -25
  226. package/lib/presets/rustwasm/prebuild.js +0 -22
  227. package/lib/presets/stencil/azion.config.js +0 -51
  228. package/lib/presets/stencil/config.js +0 -10
  229. package/lib/presets/stencil/handler.js +0 -17
  230. package/lib/presets/stencil/prebuild.js +0 -21
  231. package/lib/presets/svelte/azion.config.js +0 -11
  232. package/lib/presets/svelte/config.js +0 -10
  233. package/lib/presets/svelte/handler.js +0 -17
  234. package/lib/presets/svelte/prebuild.js +0 -21
  235. package/lib/presets/typescript/azion.config.js +0 -11
  236. package/lib/presets/typescript/config.js +0 -10
  237. package/lib/presets/typescript/handler.js +0 -15
  238. package/lib/presets/typescript/prebuild.js +0 -8
  239. package/lib/presets/vitepress/azion.config.js +0 -11
  240. package/lib/presets/vitepress/config.js +0 -10
  241. package/lib/presets/vitepress/handler.js +0 -17
  242. package/lib/presets/vitepress/prebuild.js +0 -39
  243. package/lib/presets/vue/azion.config.js +0 -11
  244. package/lib/presets/vue/config.js +0 -10
  245. package/lib/presets/vue/handler.js +0 -17
  246. package/lib/presets/vue/prebuild.js +0 -91
  247. package/lib/presets/vuepress/azion.config.js +0 -49
  248. package/lib/presets/vuepress/config.js +0 -10
  249. package/lib/presets/vuepress/handler.js +0 -17
  250. package/lib/presets/vuepress/prebuild.js +0 -39
  251. package/lib/providers/azion/firewall_worker.js +0 -4
  252. package/lib/providers/azion/worker.js +0 -4
  253. package/lib/utils/checkingProjectType/checkingProjectType.test.js +0 -25
  254. package/lib/utils/checkingProjectType/checkingProjectType.utils.js +0 -27
  255. package/lib/utils/checkingProjectType/index.js +0 -3
  256. package/lib/utils/copyDirectory/copyDirectory.utils.js +0 -83
  257. package/lib/utils/copyDirectory/copyDirectory.utils.test.js +0 -60
  258. package/lib/utils/copyDirectory/index.js +0 -3
  259. package/lib/utils/copyFilesToFS/copyFilesToFS.utils.js +0 -17
  260. package/lib/utils/copyFilesToFS/copyFilesToFS.utils.test.js +0 -62
  261. package/lib/utils/copyFilesToFS/index.js +0 -3
  262. package/lib/utils/debug/debug.utils.js +0 -37
  263. package/lib/utils/debug/debug.utils.test.js +0 -47
  264. package/lib/utils/debug/index.js +0 -3
  265. package/lib/utils/exec/exec.utils.js +0 -86
  266. package/lib/utils/exec/exec.utils.test.js +0 -85
  267. package/lib/utils/exec/index.js +0 -3
  268. package/lib/utils/feedback/feedback.utils.js +0 -129
  269. package/lib/utils/feedback/feedback.utils.test.js +0 -11
  270. package/lib/utils/feedback/index.js +0 -3
  271. package/lib/utils/generateManifest/generateManifest.utils.js +0 -25
  272. package/lib/utils/generateManifest/index.js +0 -3
  273. package/lib/utils/generateTimestamp/generateTimestamp.utils.js +0 -26
  274. package/lib/utils/generateTimestamp/generateTimestamp.utils.test.js +0 -10
  275. package/lib/utils/generateTimestamp/index.js +0 -3
  276. package/lib/utils/generateWebpackBanner/generateWebpackBanner.utils.js +0 -22
  277. package/lib/utils/generateWebpackBanner/generateWebpackBanner.utils.test.js +0 -22
  278. package/lib/utils/generateWebpackBanner/index.js +0 -3
  279. package/lib/utils/getAbsoluteLibDirPath/getAbsoluteLibDirPath.utils.js +0 -31
  280. package/lib/utils/getAbsoluteLibDirPath/getAbsoluteLibDirPath.utils.test.js +0 -13
  281. package/lib/utils/getAbsoluteLibDirPath/index.js +0 -3
  282. package/lib/utils/getExportedFunctionBody/getExportedFunctionBody.utils.js +0 -88
  283. package/lib/utils/getExportedFunctionBody/getExportedFunctionBody.utils.test.js +0 -81
  284. package/lib/utils/getExportedFunctionBody/index.js +0 -3
  285. package/lib/utils/getPackageManager/getPackageManager.utils.js +0 -123
  286. package/lib/utils/getPackageManager/getPackageManager.utils.test.js +0 -51
  287. package/lib/utils/getPackageManager/index.js +0 -3
  288. package/lib/utils/getPackageVersion/getPackageVersion.utils.js +0 -29
  289. package/lib/utils/getPackageVersion/getPackageVersion.utils.test.js +0 -34
  290. package/lib/utils/getPackageVersion/index.js +0 -3
  291. package/lib/utils/getProjectJsonFile/getProjectJsonFile.utils.js +0 -21
  292. package/lib/utils/getProjectJsonFile/getProjectJsonFile.utils.test.js +0 -42
  293. package/lib/utils/getProjectJsonFile/index.js +0 -3
  294. package/lib/utils/getUrlFromResource/getUrlFromResource.utils.js +0 -23
  295. package/lib/utils/getUrlFromResource/getUrlFromResource.utils.test.js +0 -43
  296. package/lib/utils/getUrlFromResource/index.js +0 -3
  297. package/lib/utils/getVulcanBuildId/getVulcanBuildId.utils.js +0 -50
  298. package/lib/utils/getVulcanBuildId/getVulcanBuildId.utils.test.js +0 -16
  299. package/lib/utils/getVulcanBuildId/index.js +0 -3
  300. package/lib/utils/helperHandlerCode/helperHandlerCode.js +0 -31
  301. package/lib/utils/helperHandlerCode/helperHandlerCode.test.js +0 -29
  302. package/lib/utils/helperHandlerCode/index.js +0 -3
  303. package/lib/utils/index.js +0 -51
  304. package/lib/utils/injectFilesInMem/index.js +0 -3
  305. package/lib/utils/injectFilesInMem/injectFilesInMem.utils.js +0 -51
  306. package/lib/utils/injectFilesInMem/injectFilesInMem.utils.test.js +0 -48
  307. package/lib/utils/overrideStaticOutputPath/index.js +0 -3
  308. package/lib/utils/overrideStaticOutputPath/overrideStaticOutputPath.utils.js +0 -58
  309. package/lib/utils/overrideStaticOutputPath/overrideStaticOutputPath.utils.test.js +0 -38
  310. package/lib/utils/presets/index.js +0 -3
  311. package/lib/utils/presets/presets.utils.js +0 -126
  312. package/lib/utils/presets/presets.utils.test.js +0 -76
  313. package/lib/utils/readWorkerFile/index.js +0 -3
  314. package/lib/utils/readWorkerFile/readWorkerFile.utils.js +0 -37
  315. package/lib/utils/readWorkerFile/readWorkerFile.utils.test.js +0 -26
  316. package/lib/utils/relocateImportsAndRequires/index.js +0 -3
  317. package/lib/utils/relocateImportsAndRequires/relocateImportsAndRequires.utils.js +0 -23
  318. package/lib/utils/relocateImportsAndRequires/relocateImportsAndRequires.utils.test.js +0 -43
  319. package/lib/utils/spinner/index.js +0 -3
  320. package/lib/utils/spinner/spinner.utils.js +0 -40
  321. package/lib/utils/vercel/index.js +0 -3
  322. package/lib/utils/vercel/vercel.utils.js +0 -101
  323. package/lib/utils/vercel/vercel.utils.test.js +0 -110
  324. package/tasks/process-reports-e2e.js +0 -97
  325. package/tasks/process-reports-nodejs-apis.js +0 -100
  326. package/tasks/sync-aliases.js +0 -117
  327. package/verdaccio/config/config.yaml +0 -50
package/README.md CHANGED
@@ -237,6 +237,23 @@ The compatibility between Azion Runtime and Node.js is an ongoing task, but a se
237
237
 
238
238
  - [Node.js APIs support](docs/nodejs-apis.md)
239
239
 
240
+ ## Development
241
+
242
+ To compile the project, run the following command:
243
+
244
+ ```shell
245
+ yarn build
246
+ ```
247
+
248
+ To run the Bundler commands, use the following command:
249
+
250
+ ```shell
251
+ yarn link
252
+
253
+ azbundler --help
254
+
255
+ ```
256
+
240
257
  ## Contributing
241
258
 
242
259
  Check the [Contributing doc](CONTRIBUTING.md).