@ohos-ports/layer0-prefetch 4.20.0-beta.0 → 4.20.0-beta.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 (281) hide show
  1. package/node_modules/@layer0/core/README.md +50 -0
  2. package/node_modules/@layer0/core/build.d.ts +5 -0
  3. package/node_modules/@layer0/core/build.js +17 -0
  4. package/node_modules/@layer0/core/cache/Cache.d.ts +56 -0
  5. package/node_modules/@layer0/core/cache/Cache.js +138 -0
  6. package/node_modules/@layer0/core/cache/CacheKey.d.ts +52 -0
  7. package/node_modules/@layer0/core/cache/CacheKey.js +95 -0
  8. package/node_modules/@layer0/core/config.d.ts +53 -0
  9. package/node_modules/@layer0/core/config.js +113 -0
  10. package/node_modules/@layer0/core/constants.d.ts +214 -0
  11. package/node_modules/@layer0/core/constants.js +216 -0
  12. package/node_modules/@layer0/core/context.d.ts +38 -0
  13. package/node_modules/@layer0/core/context.js +98 -0
  14. package/node_modules/@layer0/core/default-app/all/layer0.config.js +60 -0
  15. package/node_modules/@layer0/core/default-app/js/routes.js +27 -0
  16. package/node_modules/@layer0/core/default-app/ts/routes.ts +27 -0
  17. package/node_modules/@layer0/core/deploy/DeploymentBuilder.d.ts +177 -0
  18. package/node_modules/@layer0/core/deploy/DeploymentBuilder.js +543 -0
  19. package/node_modules/@layer0/core/deploy/bundle-esbuild.d.ts +11 -0
  20. package/node_modules/@layer0/core/deploy/bundle-esbuild.js +67 -0
  21. package/node_modules/@layer0/core/deploy/bundle-ncc.d.ts +8 -0
  22. package/node_modules/@layer0/core/deploy/bundle-ncc.js +30 -0
  23. package/node_modules/@layer0/core/deploy/bundle-nft.d.ts +7 -0
  24. package/node_modules/@layer0/core/deploy/bundle-nft.js +41 -0
  25. package/node_modules/@layer0/core/deploy/bundle-webpack.d.ts +11 -0
  26. package/node_modules/@layer0/core/deploy/bundle-webpack.js +127 -0
  27. package/node_modules/@layer0/core/deploy/index.d.ts +19 -0
  28. package/node_modules/@layer0/core/deploy/index.js +6 -0
  29. package/node_modules/@layer0/core/deploy/listSources.d.ts +11 -0
  30. package/node_modules/@layer0/core/deploy/listSources.js +18 -0
  31. package/node_modules/@layer0/core/deploy/paths.d.ts +27 -0
  32. package/node_modules/@layer0/core/deploy/paths.js +33 -0
  33. package/node_modules/@layer0/core/deploy/resolveInPackage.d.ts +7 -0
  34. package/node_modules/@layer0/core/deploy/resolveInPackage.js +21 -0
  35. package/node_modules/@layer0/core/deploy/routeToFiles.d.ts +14 -0
  36. package/node_modules/@layer0/core/deploy/routeToFiles.js +24 -0
  37. package/node_modules/@layer0/core/dev/DevServerOptions.d.ts +33 -0
  38. package/node_modules/@layer0/core/dev/DevServerOptions.js +2 -0
  39. package/node_modules/@layer0/core/dev/createDevServer.d.ts +8 -0
  40. package/node_modules/@layer0/core/dev/createDevServer.js +114 -0
  41. package/node_modules/@layer0/core/dev/index.d.ts +3 -0
  42. package/node_modules/@layer0/core/dev/index.js +6 -0
  43. package/node_modules/@layer0/core/dev/runLocalApp.d.ts +8 -0
  44. package/node_modules/@layer0/core/dev/runLocalApp.js +73 -0
  45. package/node_modules/@layer0/core/dev/serverlessCompatibilityMiddleware.d.ts +11 -0
  46. package/node_modules/@layer0/core/dev/serverlessCompatibilityMiddleware.js +30 -0
  47. package/node_modules/@layer0/core/edge/EdgeErrorPageResponseWriter.d.ts +12 -0
  48. package/node_modules/@layer0/core/edge/EdgeErrorPageResponseWriter.js +22 -0
  49. package/node_modules/@layer0/core/edge/EdgeResponseWriter.d.ts +122 -0
  50. package/node_modules/@layer0/core/edge/EdgeResponseWriter.js +451 -0
  51. package/node_modules/@layer0/core/edge/createEdgeConfig.d.ts +16 -0
  52. package/node_modules/@layer0/core/edge/createEdgeConfig.js +284 -0
  53. package/node_modules/@layer0/core/environment.d.ts +24 -0
  54. package/node_modules/@layer0/core/environment.js +42 -0
  55. package/node_modules/@layer0/core/errors/BackendFetchError.d.ts +11 -0
  56. package/node_modules/@layer0/core/errors/BackendFetchError.js +17 -0
  57. package/node_modules/@layer0/core/errors/FrameworkBuildError.d.ts +7 -0
  58. package/node_modules/@layer0/core/errors/FrameworkBuildError.js +26 -0
  59. package/node_modules/@layer0/core/index.d.ts +3 -0
  60. package/node_modules/@layer0/core/index.js +9 -0
  61. package/node_modules/@layer0/core/init/addToPackageJson.d.ts +7 -0
  62. package/node_modules/@layer0/core/init/addToPackageJson.js +22 -0
  63. package/node_modules/@layer0/core/init/index.d.ts +2 -0
  64. package/node_modules/@layer0/core/init/index.js +6 -0
  65. package/node_modules/@layer0/core/init/init.d.ts +5 -0
  66. package/node_modules/@layer0/core/init/init.js +17 -0
  67. package/node_modules/@layer0/core/lambda/JSBackend.d.ts +30 -0
  68. package/node_modules/@layer0/core/lambda/JSBackend.js +51 -0
  69. package/node_modules/@layer0/core/lambda/RequestListenerJSBackend.d.ts +8 -0
  70. package/node_modules/@layer0/core/lambda/RequestListenerJSBackend.js +19 -0
  71. package/node_modules/@layer0/core/lambda/adaptResponseEncodingToDownstream.d.ts +17 -0
  72. package/node_modules/@layer0/core/lambda/adaptResponseEncodingToDownstream.js +132 -0
  73. package/node_modules/@layer0/core/lambda/consoleWrapper.d.ts +16 -0
  74. package/node_modules/@layer0/core/lambda/consoleWrapper.js +127 -0
  75. package/node_modules/@layer0/core/lambda/getBodyLoggingData.d.ts +10 -0
  76. package/node_modules/@layer0/core/lambda/getBodyLoggingData.js +108 -0
  77. package/node_modules/@layer0/core/lambda/handler.d.ts +1 -0
  78. package/node_modules/@layer0/core/lambda/handler.js +91 -0
  79. package/node_modules/@layer0/core/lambda/handler.js.map +7 -0
  80. package/node_modules/@layer0/core/lambda/innerHandler.d.ts +7 -0
  81. package/node_modules/@layer0/core/lambda/innerHandler.js +181 -0
  82. package/node_modules/@layer0/core/lambda/lambdaInstance.d.ts +29 -0
  83. package/node_modules/@layer0/core/lambda/lambdaInstance.js +71 -0
  84. package/node_modules/@layer0/core/lambda/reqResMapper.d.ts +24 -0
  85. package/node_modules/@layer0/core/lambda/reqResMapper.js +286 -0
  86. package/node_modules/@layer0/core/lambda/stdStreamsWrapper.d.ts +31 -0
  87. package/node_modules/@layer0/core/lambda/stdStreamsWrapper.js +196 -0
  88. package/node_modules/@layer0/core/lambda/toJSBackend.d.ts +10 -0
  89. package/node_modules/@layer0/core/lambda/toJSBackend.js +23 -0
  90. package/node_modules/@layer0/core/node_modules/esbuild/LICENSE.md +21 -0
  91. package/node_modules/@layer0/core/node_modules/esbuild/README.md +3 -0
  92. package/node_modules/@layer0/core/node_modules/esbuild/bin/esbuild +223 -0
  93. package/node_modules/@layer0/core/node_modules/esbuild/install.js +301 -0
  94. package/node_modules/@layer0/core/node_modules/esbuild/lib/main.d.ts +716 -0
  95. package/node_modules/@layer0/core/node_modules/esbuild/lib/main.js +2532 -0
  96. package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/README.md +3 -0
  97. package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/bin/esbuild +0 -0
  98. package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/esbuild.wasm +0 -0
  99. package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/package.json +28 -0
  100. package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/wasm_exec.js +575 -0
  101. package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/wasm_exec_node.js +40 -0
  102. package/node_modules/@layer0/core/node_modules/esbuild/package.json +78 -0
  103. package/node_modules/@layer0/core/package.json +132 -0
  104. package/node_modules/@layer0/core/parser/parseRouter.d.ts +13 -0
  105. package/node_modules/@layer0/core/parser/parseRouter.js +77 -0
  106. package/node_modules/@layer0/core/plugins/PluginBase.d.ts +18 -0
  107. package/node_modules/@layer0/core/plugins/PluginBase.js +19 -0
  108. package/node_modules/@layer0/core/router/Backend.d.ts +69 -0
  109. package/node_modules/@layer0/core/router/Backend.js +176 -0
  110. package/node_modules/@layer0/core/router/BackendOptions.d.ts +11 -0
  111. package/node_modules/@layer0/core/router/BackendOptions.js +2 -0
  112. package/node_modules/@layer0/core/router/BaseResponseWriter.d.ts +65 -0
  113. package/node_modules/@layer0/core/router/BaseResponseWriter.js +81 -0
  114. package/node_modules/@layer0/core/router/BehindEdgeResponseWriterProxy.d.ts +4 -0
  115. package/node_modules/@layer0/core/router/BehindEdgeResponseWriterProxy.js +89 -0
  116. package/node_modules/@layer0/core/router/CacheManifest.d.ts +80 -0
  117. package/node_modules/@layer0/core/router/CacheManifest.js +83 -0
  118. package/node_modules/@layer0/core/router/CacheOptions.d.ts +171 -0
  119. package/node_modules/@layer0/core/router/CacheOptions.js +2 -0
  120. package/node_modules/@layer0/core/router/CustomCacheKey.d.ts +140 -0
  121. package/node_modules/@layer0/core/router/CustomCacheKey.js +272 -0
  122. package/node_modules/@layer0/core/router/GroupConfig.d.ts +7 -0
  123. package/node_modules/@layer0/core/router/GroupConfig.js +20 -0
  124. package/node_modules/@layer0/core/router/Groups.d.ts +7 -0
  125. package/node_modules/@layer0/core/router/Groups.js +21 -0
  126. package/node_modules/@layer0/core/router/Headers.d.ts +3 -0
  127. package/node_modules/@layer0/core/router/Headers.js +2 -0
  128. package/node_modules/@layer0/core/router/PathMatcher.d.ts +51 -0
  129. package/node_modules/@layer0/core/router/PathMatcher.js +73 -0
  130. package/node_modules/@layer0/core/router/Preload.d.ts +16 -0
  131. package/node_modules/@layer0/core/router/Preload.js +2 -0
  132. package/node_modules/@layer0/core/router/PreloadRequests.d.ts +23 -0
  133. package/node_modules/@layer0/core/router/PreloadRequests.js +66 -0
  134. package/node_modules/@layer0/core/router/Request.d.ts +74 -0
  135. package/node_modules/@layer0/core/router/Request.js +2 -0
  136. package/node_modules/@layer0/core/router/RequestContext.d.ts +12 -0
  137. package/node_modules/@layer0/core/router/RequestContext.js +11 -0
  138. package/node_modules/@layer0/core/router/Response.d.ts +55 -0
  139. package/node_modules/@layer0/core/router/Response.js +2 -0
  140. package/node_modules/@layer0/core/router/ResponseWriter.d.ts +1011 -0
  141. package/node_modules/@layer0/core/router/ResponseWriter.js +1341 -0
  142. package/node_modules/@layer0/core/router/Route.d.ts +124 -0
  143. package/node_modules/@layer0/core/router/Route.js +280 -0
  144. package/node_modules/@layer0/core/router/RouteCriteria.d.ts +68 -0
  145. package/node_modules/@layer0/core/router/RouteCriteria.js +2 -0
  146. package/node_modules/@layer0/core/router/RouteGroup.d.ts +157 -0
  147. package/node_modules/@layer0/core/router/RouteGroup.js +223 -0
  148. package/node_modules/@layer0/core/router/RouteGroupList.d.ts +45 -0
  149. package/node_modules/@layer0/core/router/RouteGroupList.js +73 -0
  150. package/node_modules/@layer0/core/router/Router.d.ts +439 -0
  151. package/node_modules/@layer0/core/router/Router.js +907 -0
  152. package/node_modules/@layer0/core/router/addBuiltInRoutes.d.ts +2 -0
  153. package/node_modules/@layer0/core/router/addBuiltInRoutes.js +58 -0
  154. package/node_modules/@layer0/core/router/addPreloadHeaders.d.ts +7 -0
  155. package/node_modules/@layer0/core/router/addPreloadHeaders.js +57 -0
  156. package/node_modules/@layer0/core/router/cacheManifestFromRouter.d.ts +6 -0
  157. package/node_modules/@layer0/core/router/cacheManifestFromRouter.js +85 -0
  158. package/node_modules/@layer0/core/router/createCustomCacheKey.d.ts +27 -0
  159. package/node_modules/@layer0/core/router/createCustomCacheKey.js +35 -0
  160. package/node_modules/@layer0/core/router/deriveSurrogateKeysFromJson.d.ts +36 -0
  161. package/node_modules/@layer0/core/router/deriveSurrogateKeysFromJson.js +70 -0
  162. package/node_modules/@layer0/core/router/index.d.ts +11 -0
  163. package/node_modules/@layer0/core/router/index.js +17 -0
  164. package/node_modules/@layer0/core/router/interpolateParams.d.ts +21 -0
  165. package/node_modules/@layer0/core/router/interpolateParams.js +150 -0
  166. package/node_modules/@layer0/core/router/loadRouter.d.ts +13 -0
  167. package/node_modules/@layer0/core/router/loadRouter.js +29 -0
  168. package/node_modules/@layer0/core/router/mergeQueryString.d.ts +1 -0
  169. package/node_modules/@layer0/core/router/mergeQueryString.js +23 -0
  170. package/node_modules/@layer0/core/router/normalizeCriteria.d.ts +6 -0
  171. package/node_modules/@layer0/core/router/normalizeCriteria.js +20 -0
  172. package/node_modules/@layer0/core/router/stream.d.ts +12 -0
  173. package/node_modules/@layer0/core/router/stream.js +30 -0
  174. package/node_modules/@layer0/core/router/universalRouteUtils.d.ts +55 -0
  175. package/node_modules/@layer0/core/router/universalRouteUtils.js +114 -0
  176. package/node_modules/@layer0/core/router/validateWriter.d.ts +41 -0
  177. package/node_modules/@layer0/core/router/validateWriter.js +120 -0
  178. package/node_modules/@layer0/core/serverless.yml +30 -0
  179. package/node_modules/@layer0/core/source.d.ts +9 -0
  180. package/node_modules/@layer0/core/source.js +17 -0
  181. package/node_modules/@layer0/core/test-utils/MockRequest.d.ts +15 -0
  182. package/node_modules/@layer0/core/test-utils/MockRequest.js +36 -0
  183. package/node_modules/@layer0/core/test-utils/MockResponse.d.ts +7 -0
  184. package/node_modules/@layer0/core/test-utils/MockResponse.js +24 -0
  185. package/node_modules/@layer0/core/test-utils/expect-extend.d.ts +1 -0
  186. package/node_modules/@layer0/core/test-utils/expect-extend.js +11 -0
  187. package/node_modules/@layer0/core/test-utils/index.d.ts +4 -0
  188. package/node_modules/@layer0/core/test-utils/index.js +11 -0
  189. package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheBrowser.d.ts +19 -0
  190. package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheBrowser.js +45 -0
  191. package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheEdge.d.ts +19 -0
  192. package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheEdge.js +38 -0
  193. package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheServiceWorker.d.ts +19 -0
  194. package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheServiceWorker.js +45 -0
  195. package/node_modules/@layer0/core/test-utils/matchers/toBeServedStale.d.ts +20 -0
  196. package/node_modules/@layer0/core/test-utils/matchers/toBeServedStale.js +50 -0
  197. package/node_modules/@layer0/core/test-utils/matchers/toHaveBody.d.ts +18 -0
  198. package/node_modules/@layer0/core/test-utils/matchers/toHaveBody.js +40 -0
  199. package/node_modules/@layer0/core/test-utils/matchers/toHaveHeader.d.ts +19 -0
  200. package/node_modules/@layer0/core/test-utils/matchers/toHaveHeader.js +43 -0
  201. package/node_modules/@layer0/core/test-utils/matchers.d.ts +6 -0
  202. package/node_modules/@layer0/core/test-utils/matchers.js +18 -0
  203. package/node_modules/@layer0/core/test-utils/utils/createRouteMock.d.ts +21 -0
  204. package/node_modules/@layer0/core/test-utils/utils/createRouteMock.js +27 -0
  205. package/node_modules/@layer0/core/test-utils/utils/getBackend.d.ts +13 -0
  206. package/node_modules/@layer0/core/test-utils/utils/getBackend.js +30 -0
  207. package/node_modules/@layer0/core/test-utils/utils/getMessage.d.ts +1 -0
  208. package/node_modules/@layer0/core/test-utils/utils/getMessage.js +16 -0
  209. package/node_modules/@layer0/core/test-utils/utils/runRoute.d.ts +10 -0
  210. package/node_modules/@layer0/core/test-utils/utils/runRoute.js +39 -0
  211. package/node_modules/@layer0/core/timing.d.ts +115 -0
  212. package/node_modules/@layer0/core/timing.js +200 -0
  213. package/node_modules/@layer0/core/transform/index.d.ts +1 -0
  214. package/node_modules/@layer0/core/transform/index.js +4 -0
  215. package/node_modules/@layer0/core/transform/transformMethod.d.ts +40 -0
  216. package/node_modules/@layer0/core/transform/transformMethod.js +58 -0
  217. package/node_modules/@layer0/core/types.d.ts +102 -0
  218. package/node_modules/@layer0/core/types.js +30 -0
  219. package/node_modules/@layer0/core/utils/Tasks.d.ts +32 -0
  220. package/node_modules/@layer0/core/utils/Tasks.js +80 -0
  221. package/node_modules/@layer0/core/utils/Validator.d.ts +18 -0
  222. package/node_modules/@layer0/core/utils/Validator.js +178 -0
  223. package/node_modules/@layer0/core/utils/bindParamsToPath.d.ts +15 -0
  224. package/node_modules/@layer0/core/utils/bindParamsToPath.js +49 -0
  225. package/node_modules/@layer0/core/utils/convertParamsToBackReferences.d.ts +16 -0
  226. package/node_modules/@layer0/core/utils/convertParamsToBackReferences.js +45 -0
  227. package/node_modules/@layer0/core/utils/convertStringMatcherToRegex.d.ts +7 -0
  228. package/node_modules/@layer0/core/utils/convertStringMatcherToRegex.js +26 -0
  229. package/node_modules/@layer0/core/utils/decode.d.ts +9 -0
  230. package/node_modules/@layer0/core/utils/decode.js +44 -0
  231. package/node_modules/@layer0/core/utils/esImport.d.ts +1 -0
  232. package/node_modules/@layer0/core/utils/esImport.js +9 -0
  233. package/node_modules/@layer0/core/utils/fs.d.ts +1 -0
  234. package/node_modules/@layer0/core/utils/fs.js +7 -0
  235. package/node_modules/@layer0/core/utils/get.d.ts +6 -0
  236. package/node_modules/@layer0/core/utils/get.js +19 -0
  237. package/node_modules/@layer0/core/utils/getPackageVersion.d.ts +7 -0
  238. package/node_modules/@layer0/core/utils/getPackageVersion.js +19 -0
  239. package/node_modules/@layer0/core/utils/has.d.ts +6 -0
  240. package/node_modules/@layer0/core/utils/has.js +15 -0
  241. package/node_modules/@layer0/core/utils/identity.d.ts +7 -0
  242. package/node_modules/@layer0/core/utils/identity.js +12 -0
  243. package/node_modules/@layer0/core/utils/index.d.ts +1 -0
  244. package/node_modules/@layer0/core/utils/index.js +4 -0
  245. package/node_modules/@layer0/core/utils/isEmpty.d.ts +6 -0
  246. package/node_modules/@layer0/core/utils/isEmpty.js +20 -0
  247. package/node_modules/@layer0/core/utils/isString.d.ts +1 -0
  248. package/node_modules/@layer0/core/utils/isString.js +6 -0
  249. package/node_modules/@layer0/core/utils/logo.d.ts +5 -0
  250. package/node_modules/@layer0/core/utils/logo.js +27 -0
  251. package/node_modules/@layer0/core/utils/mapValues.d.ts +7 -0
  252. package/node_modules/@layer0/core/utils/mapValues.js +16 -0
  253. package/node_modules/@layer0/core/utils/minBy.d.ts +8 -0
  254. package/node_modules/@layer0/core/utils/minBy.js +41 -0
  255. package/node_modules/@layer0/core/utils/nonWebpackRequire.d.ts +11 -0
  256. package/node_modules/@layer0/core/utils/nonWebpackRequire.js +28 -0
  257. package/node_modules/@layer0/core/utils/packageUtils.d.ts +12 -0
  258. package/node_modules/@layer0/core/utils/packageUtils.js +22 -0
  259. package/node_modules/@layer0/core/utils/ports.d.ts +5 -0
  260. package/node_modules/@layer0/core/utils/ports.js +7 -0
  261. package/node_modules/@layer0/core/utils/readBody.d.ts +7 -0
  262. package/node_modules/@layer0/core/utils/readBody.js +15 -0
  263. package/node_modules/@layer0/core/utils/readRawBody.d.ts +9 -0
  264. package/node_modules/@layer0/core/utils/readRawBody.js +21 -0
  265. package/node_modules/@layer0/core/utils/regExpEscape.d.ts +12 -0
  266. package/node_modules/@layer0/core/utils/regExpEscape.js +20 -0
  267. package/node_modules/@layer0/core/utils/requireInternal.d.ts +7 -0
  268. package/node_modules/@layer0/core/utils/requireInternal.js +24 -0
  269. package/node_modules/@layer0/core/utils/set.d.ts +10 -0
  270. package/node_modules/@layer0/core/utils/set.js +21 -0
  271. package/node_modules/@layer0/core/utils/toEdgeRegex.d.ts +11 -0
  272. package/node_modules/@layer0/core/utils/toEdgeRegex.js +23 -0
  273. package/node_modules/@layer0/core/utils/toHttpMethodMatchRegex.d.ts +12 -0
  274. package/node_modules/@layer0/core/utils/toHttpMethodMatchRegex.js +17 -0
  275. package/node_modules/@layer0/core/utils/toLower.d.ts +1 -0
  276. package/node_modules/@layer0/core/utils/toLower.js +9 -0
  277. package/node_modules/@layer0/core/utils/validateBackends.d.ts +5 -0
  278. package/node_modules/@layer0/core/utils/validateBackends.js +30 -0
  279. package/node_modules/@layer0/core/utils/watch.d.ts +10 -0
  280. package/node_modules/@layer0/core/utils/watch.js +17 -0
  281. package/package.json +47 -3
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const Route_1 = __importDefault(require("./Route"));
7
+ const Cache_1 = require("../cache/Cache");
8
+ const environment_1 = require("../environment");
9
+ const path_1 = require("path");
10
+ const nonWebpackRequire_1 = __importDefault(require("../utils/nonWebpackRequire"));
11
+ const normalizeCriteria_1 = __importDefault(require("./normalizeCriteria"));
12
+ const constants_1 = require("../constants");
13
+ const source_1 = require("../source");
14
+ const slash_1 = __importDefault(require("slash"));
15
+ const requireInternal_1 = __importDefault(require("../utils/requireInternal"));
16
+ /**
17
+ * The contents to be written to static-asset-manifest.json
18
+ * @private
19
+ */
20
+ exports.staticAssetManifest = {};
21
+ /**
22
+ * The static asset manifest file name
23
+ * @private
24
+ */
25
+ exports.STATIC_ASSET_MANIFEST_FILE = 'static-asset-manifest.json';
26
+ /**
27
+ * This class is needed for creating a route group that holds a routes that can
28
+ * be dynamically updated on a local env.
29
+ * @private
30
+ */
31
+ class RouteGroup {
32
+ /**
33
+ * @param name Name of the route group - **required**
34
+ */
35
+ constructor(name) {
36
+ this._routes = [];
37
+ if (!name) {
38
+ throw new Error('Route group name is required!');
39
+ }
40
+ this.name = name;
41
+ }
42
+ /**
43
+ * Adds route to group.
44
+ * @param criteria The criteria to match.
45
+ * @param handler The handler to use for the route.
46
+ */
47
+ match(criteria, handler, { index, label } = {}) {
48
+ const route = new Route_1.default(criteria, handler, { label });
49
+ if (index != null) {
50
+ this._routes.splice(index, 0, route);
51
+ }
52
+ else {
53
+ this._routes.push(route);
54
+ }
55
+ return this;
56
+ }
57
+ /**
58
+ * Adds routes for all files in a directory tree.
59
+ * @private
60
+ * @param sourcePath The path to a directory containing static assets relative to the root of your project.
61
+ * @param options
62
+ * @returns A self-reference, suitable for chaining.
63
+ */
64
+ dir(sourcePath, options) {
65
+ const directory = path_1.join(source_1.getSourceDir(), sourcePath);
66
+ const manifest = (exports.staticAssetManifest[slash_1.default(sourcePath)] = []); // we normalize paths to use "/" here in case the user is building on windows but running on Linux
67
+ let { ignore, label } = options;
68
+ if (typeof ignore === 'string') {
69
+ ignore = [ignore];
70
+ }
71
+ let files = environment_1.isCloud()
72
+ ? this.staticAssetsForPath(sourcePath)
73
+ : requireInternal_1.default('globby').sync(options.glob || '**/*', {
74
+ // glob is large and we don't need it in production so we use nonWebpackRequire
75
+ cwd: directory,
76
+ onlyFiles: true,
77
+ ignore: ignore || [],
78
+ });
79
+ if (options.sort) {
80
+ files = options.sort(files);
81
+ }
82
+ for (let file of files) {
83
+ const paths = (options.paths && options.paths(file)) || [`/${file}`];
84
+ if (!environment_1.isCloud()) {
85
+ manifest.push(slash_1.default(file)); // we normalize paths to use "/" here in case the user is building on windows but running on Linux
86
+ }
87
+ for (let path of paths) {
88
+ let route = path.replace(/\/index.html$/, '');
89
+ if (route.length === 0) {
90
+ route = '/';
91
+ }
92
+ this.match(route, async (res) => {
93
+ options.handler && options.handler(file)(res);
94
+ }, { label });
95
+ }
96
+ }
97
+ return this;
98
+ }
99
+ /**
100
+ * Adds routes for all static assets in a directory tree.
101
+ * @param sourcePath The path to a directory containing static assets relative to the root of your project.
102
+ * @param options
103
+ * @returns A self-reference, suitable for chaining.
104
+ */
105
+ static(sourcePath, options) {
106
+ const handler = (file) => (res) => {
107
+ if (options.handler) {
108
+ options.handler(file)(res);
109
+ }
110
+ res.serveStatic(`${sourcePath}/${file}`);
111
+ };
112
+ return this.dir(sourcePath, { ...options, handler, label: `static('${sourcePath}')` });
113
+ }
114
+ /**
115
+ * Adds Basic Authentication.
116
+ *
117
+ * **example**
118
+ *
119
+ * ```js
120
+ * router
121
+ * .requireBasicAuth({ username: 'user', password: 's3cr3t!' })
122
+ * // ...include additional routes below...
123
+ * ```
124
+ *
125
+ * You can also require basic auth for a subset of URLs using the criteria option:
126
+ *
127
+ * ```js
128
+ * router
129
+ * .requireBasicAuth({ criteria: '/secret/:path*' username: 'user', password: 's3cr3t!' })
130
+ * // ...include additional routes below...
131
+ * ```
132
+ *
133
+ * The criteria option accepts a path pattern as a string, or a RouteCriteria object.
134
+ *
135
+ * @param options
136
+ * @returns A self-reference, suitable for chaining.
137
+ */
138
+ requireBasicAuth(options) {
139
+ let { route, username, password, realm = 'Access to the site' } = options;
140
+ if (username && password) {
141
+ const token = Buffer.from(`${username}:${password}`).toString('base64');
142
+ route = normalizeCriteria_1.default(route);
143
+ // Add route handlers that will return 401, 403 or remove the authorizaton header,
144
+ // depending on the request properties.
145
+ // We run these handlers only if they have not already run in the edge. To detect this
146
+ // we cannot use `x-0-version` header because it gets injected very early in the edge
147
+ // so by the time the router matching runs, it's already present. We also cannot use
148
+ // `x-0-lambda-name` header because it gets removed by XBP before it reaches the lambda.
149
+ // We use `x-0-matched-routes` as the definitive indicator that a router has ran before
150
+ // the traffic reached this router.
151
+ this
152
+ // Provide challenge when the Authorization header is not present.
153
+ .match({
154
+ ...route,
155
+ headers: {
156
+ ...route.headers,
157
+ [constants_1.HTTP_HEADERS.authorization]: null,
158
+ [constants_1.HTTP_HEADERS.x0MatchedRoutes]: null,
159
+ },
160
+ }, ({ send, setResponseHeader }) => {
161
+ setResponseHeader('WWW-Authenticate', `Basic realm="${realm}"`);
162
+ send('', 401, 'Unauthorized');
163
+ })
164
+ // Block the request when the Authorization header is not matching the basic auth token.
165
+ .match({
166
+ ...route,
167
+ headers: {
168
+ ...route.headers,
169
+ [constants_1.HTTP_HEADERS.authorization]: new RegExp(`^((?!Basic ${token}).)*$`),
170
+ [constants_1.HTTP_HEADERS.x0MatchedRoutes]: null,
171
+ },
172
+ }, ({ send }) => {
173
+ send('', 403, 'Forbidden');
174
+ })
175
+ // Do not leak authorization header upstream as upstreams are not likely to recognize it
176
+ // and are free to block the request.
177
+ .match({
178
+ ...route,
179
+ headers: {
180
+ ...route.headers,
181
+ [constants_1.HTTP_HEADERS.x0MatchedRoutes]: null,
182
+ },
183
+ }, ({ removeRequestHeader }) => {
184
+ removeRequestHeader('authorization');
185
+ });
186
+ }
187
+ return this;
188
+ }
189
+ /**
190
+ * Since the files are now on S3, we can no longer crawl the file system to
191
+ * determine the routes, so we use the manifest file.
192
+ * We also prevent webpack from trying to bundle the manifest, which will fail.
193
+ */
194
+ staticAssetsForPath(path) {
195
+ return nonWebpackRequire_1.default(path_1.join(process.cwd(), exports.STATIC_ASSET_MANIFEST_FILE))[path];
196
+ }
197
+ /**
198
+ * Clears all routes in group.
199
+ * Used for updating routes dynamically for development purpose.
200
+ */
201
+ clear() {
202
+ this._routes = [];
203
+ if (!environment_1.isCloud()) {
204
+ Cache_1.clearCache();
205
+ }
206
+ return this;
207
+ }
208
+ /**
209
+ * Returns the routes in group.
210
+ * @returns Routes in group
211
+ */
212
+ get routes() {
213
+ return this._routes;
214
+ }
215
+ /**
216
+ * Returns number of routes in group.
217
+ * @returns Number of routes in the group.
218
+ */
219
+ get length() {
220
+ return this._routes.length;
221
+ }
222
+ }
223
+ exports.default = RouteGroup;
@@ -0,0 +1,45 @@
1
+ import RouteGroup from './RouteGroup';
2
+ import Route from './Route';
3
+ import { RouteHandler } from './Router';
4
+ /**
5
+ * Holds a list of route groups
6
+ * This class is needed for querying route groups that is needed
7
+ * for keeping the routes hierarchy while changing the routes in a group.
8
+ * For example, updating next.js routes in local dev env.
9
+ */
10
+ export default class RouteGroupList {
11
+ private routeGroups;
12
+ private fallback?;
13
+ /**
14
+ * Pushes route group to list.
15
+ * @param group The route group.
16
+ * @returns A self-reference suitable for chaining.
17
+ */
18
+ add(group: RouteGroup): this;
19
+ /**
20
+ * Returns all route groups.
21
+ * @returns A list of all the route groups.
22
+ */
23
+ getGroups(): RouteGroup[];
24
+ /**
25
+ * Returns route group by name.
26
+ * @param name The name of the route group to find.
27
+ * @returns The route group with the given name, or `null` if not found.
28
+ */
29
+ findByName(name: string): RouteGroup | undefined;
30
+ /**
31
+ * Returns all registered routes in all groups.
32
+ * @returns List of registered routes.
33
+ */
34
+ getRoutes(): Route[];
35
+ /**
36
+ * Sets the fallback group, which is always run last.
37
+ * @param handler
38
+ */
39
+ setFallback(handler: RouteHandler): void;
40
+ /**
41
+ * Returns the length of route groups list.
42
+ * @returns The number of route groups in the list.
43
+ */
44
+ get length(): number;
45
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const RouteGroup_1 = __importDefault(require("./RouteGroup"));
7
+ const constants_1 = require("../constants");
8
+ /**
9
+ * Holds a list of route groups
10
+ * This class is needed for querying route groups that is needed
11
+ * for keeping the routes hierarchy while changing the routes in a group.
12
+ * For example, updating next.js routes in local dev env.
13
+ */
14
+ class RouteGroupList {
15
+ constructor() {
16
+ this.routeGroups = [];
17
+ }
18
+ /**
19
+ * Pushes route group to list.
20
+ * @param group The route group.
21
+ * @returns A self-reference suitable for chaining.
22
+ */
23
+ add(group) {
24
+ this.routeGroups.push(group);
25
+ return this;
26
+ }
27
+ /**
28
+ * Returns all route groups.
29
+ * @returns A list of all the route groups.
30
+ */
31
+ getGroups() {
32
+ return this.routeGroups;
33
+ }
34
+ /**
35
+ * Returns route group by name.
36
+ * @param name The name of the route group to find.
37
+ * @returns The route group with the given name, or `null` if not found.
38
+ */
39
+ findByName(name) {
40
+ return this.routeGroups.find(g => g.name === name);
41
+ }
42
+ /**
43
+ * Returns all registered routes in all groups.
44
+ * @returns List of registered routes.
45
+ */
46
+ getRoutes() {
47
+ let routes = [];
48
+ this.getGroups().forEach(group => {
49
+ routes = routes.concat(group.routes);
50
+ });
51
+ if (this.fallback) {
52
+ routes = routes.concat(this.fallback.routes);
53
+ }
54
+ return routes;
55
+ }
56
+ /**
57
+ * Sets the fallback group, which is always run last.
58
+ * @param handler
59
+ */
60
+ setFallback(handler) {
61
+ const fallbackGroup = new RouteGroup_1.default(constants_1.ROUTES_FALLBACK);
62
+ fallbackGroup.match(null, handler);
63
+ this.fallback = fallbackGroup;
64
+ }
65
+ /**
66
+ * Returns the length of route groups list.
67
+ * @returns The number of route groups in the list.
68
+ */
69
+ get length() {
70
+ return this.routeGroups.length;
71
+ }
72
+ }
73
+ exports.default = RouteGroupList;