@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.
- package/node_modules/@layer0/core/README.md +50 -0
- package/node_modules/@layer0/core/build.d.ts +5 -0
- package/node_modules/@layer0/core/build.js +17 -0
- package/node_modules/@layer0/core/cache/Cache.d.ts +56 -0
- package/node_modules/@layer0/core/cache/Cache.js +138 -0
- package/node_modules/@layer0/core/cache/CacheKey.d.ts +52 -0
- package/node_modules/@layer0/core/cache/CacheKey.js +95 -0
- package/node_modules/@layer0/core/config.d.ts +53 -0
- package/node_modules/@layer0/core/config.js +113 -0
- package/node_modules/@layer0/core/constants.d.ts +214 -0
- package/node_modules/@layer0/core/constants.js +216 -0
- package/node_modules/@layer0/core/context.d.ts +38 -0
- package/node_modules/@layer0/core/context.js +98 -0
- package/node_modules/@layer0/core/default-app/all/layer0.config.js +60 -0
- package/node_modules/@layer0/core/default-app/js/routes.js +27 -0
- package/node_modules/@layer0/core/default-app/ts/routes.ts +27 -0
- package/node_modules/@layer0/core/deploy/DeploymentBuilder.d.ts +177 -0
- package/node_modules/@layer0/core/deploy/DeploymentBuilder.js +543 -0
- package/node_modules/@layer0/core/deploy/bundle-esbuild.d.ts +11 -0
- package/node_modules/@layer0/core/deploy/bundle-esbuild.js +67 -0
- package/node_modules/@layer0/core/deploy/bundle-ncc.d.ts +8 -0
- package/node_modules/@layer0/core/deploy/bundle-ncc.js +30 -0
- package/node_modules/@layer0/core/deploy/bundle-nft.d.ts +7 -0
- package/node_modules/@layer0/core/deploy/bundle-nft.js +41 -0
- package/node_modules/@layer0/core/deploy/bundle-webpack.d.ts +11 -0
- package/node_modules/@layer0/core/deploy/bundle-webpack.js +127 -0
- package/node_modules/@layer0/core/deploy/index.d.ts +19 -0
- package/node_modules/@layer0/core/deploy/index.js +6 -0
- package/node_modules/@layer0/core/deploy/listSources.d.ts +11 -0
- package/node_modules/@layer0/core/deploy/listSources.js +18 -0
- package/node_modules/@layer0/core/deploy/paths.d.ts +27 -0
- package/node_modules/@layer0/core/deploy/paths.js +33 -0
- package/node_modules/@layer0/core/deploy/resolveInPackage.d.ts +7 -0
- package/node_modules/@layer0/core/deploy/resolveInPackage.js +21 -0
- package/node_modules/@layer0/core/deploy/routeToFiles.d.ts +14 -0
- package/node_modules/@layer0/core/deploy/routeToFiles.js +24 -0
- package/node_modules/@layer0/core/dev/DevServerOptions.d.ts +33 -0
- package/node_modules/@layer0/core/dev/DevServerOptions.js +2 -0
- package/node_modules/@layer0/core/dev/createDevServer.d.ts +8 -0
- package/node_modules/@layer0/core/dev/createDevServer.js +114 -0
- package/node_modules/@layer0/core/dev/index.d.ts +3 -0
- package/node_modules/@layer0/core/dev/index.js +6 -0
- package/node_modules/@layer0/core/dev/runLocalApp.d.ts +8 -0
- package/node_modules/@layer0/core/dev/runLocalApp.js +73 -0
- package/node_modules/@layer0/core/dev/serverlessCompatibilityMiddleware.d.ts +11 -0
- package/node_modules/@layer0/core/dev/serverlessCompatibilityMiddleware.js +30 -0
- package/node_modules/@layer0/core/edge/EdgeErrorPageResponseWriter.d.ts +12 -0
- package/node_modules/@layer0/core/edge/EdgeErrorPageResponseWriter.js +22 -0
- package/node_modules/@layer0/core/edge/EdgeResponseWriter.d.ts +122 -0
- package/node_modules/@layer0/core/edge/EdgeResponseWriter.js +451 -0
- package/node_modules/@layer0/core/edge/createEdgeConfig.d.ts +16 -0
- package/node_modules/@layer0/core/edge/createEdgeConfig.js +284 -0
- package/node_modules/@layer0/core/environment.d.ts +24 -0
- package/node_modules/@layer0/core/environment.js +42 -0
- package/node_modules/@layer0/core/errors/BackendFetchError.d.ts +11 -0
- package/node_modules/@layer0/core/errors/BackendFetchError.js +17 -0
- package/node_modules/@layer0/core/errors/FrameworkBuildError.d.ts +7 -0
- package/node_modules/@layer0/core/errors/FrameworkBuildError.js +26 -0
- package/node_modules/@layer0/core/index.d.ts +3 -0
- package/node_modules/@layer0/core/index.js +9 -0
- package/node_modules/@layer0/core/init/addToPackageJson.d.ts +7 -0
- package/node_modules/@layer0/core/init/addToPackageJson.js +22 -0
- package/node_modules/@layer0/core/init/index.d.ts +2 -0
- package/node_modules/@layer0/core/init/index.js +6 -0
- package/node_modules/@layer0/core/init/init.d.ts +5 -0
- package/node_modules/@layer0/core/init/init.js +17 -0
- package/node_modules/@layer0/core/lambda/JSBackend.d.ts +30 -0
- package/node_modules/@layer0/core/lambda/JSBackend.js +51 -0
- package/node_modules/@layer0/core/lambda/RequestListenerJSBackend.d.ts +8 -0
- package/node_modules/@layer0/core/lambda/RequestListenerJSBackend.js +19 -0
- package/node_modules/@layer0/core/lambda/adaptResponseEncodingToDownstream.d.ts +17 -0
- package/node_modules/@layer0/core/lambda/adaptResponseEncodingToDownstream.js +132 -0
- package/node_modules/@layer0/core/lambda/consoleWrapper.d.ts +16 -0
- package/node_modules/@layer0/core/lambda/consoleWrapper.js +127 -0
- package/node_modules/@layer0/core/lambda/getBodyLoggingData.d.ts +10 -0
- package/node_modules/@layer0/core/lambda/getBodyLoggingData.js +108 -0
- package/node_modules/@layer0/core/lambda/handler.d.ts +1 -0
- package/node_modules/@layer0/core/lambda/handler.js +91 -0
- package/node_modules/@layer0/core/lambda/handler.js.map +7 -0
- package/node_modules/@layer0/core/lambda/innerHandler.d.ts +7 -0
- package/node_modules/@layer0/core/lambda/innerHandler.js +181 -0
- package/node_modules/@layer0/core/lambda/lambdaInstance.d.ts +29 -0
- package/node_modules/@layer0/core/lambda/lambdaInstance.js +71 -0
- package/node_modules/@layer0/core/lambda/reqResMapper.d.ts +24 -0
- package/node_modules/@layer0/core/lambda/reqResMapper.js +286 -0
- package/node_modules/@layer0/core/lambda/stdStreamsWrapper.d.ts +31 -0
- package/node_modules/@layer0/core/lambda/stdStreamsWrapper.js +196 -0
- package/node_modules/@layer0/core/lambda/toJSBackend.d.ts +10 -0
- package/node_modules/@layer0/core/lambda/toJSBackend.js +23 -0
- package/node_modules/@layer0/core/node_modules/esbuild/LICENSE.md +21 -0
- package/node_modules/@layer0/core/node_modules/esbuild/README.md +3 -0
- package/node_modules/@layer0/core/node_modules/esbuild/bin/esbuild +223 -0
- package/node_modules/@layer0/core/node_modules/esbuild/install.js +301 -0
- package/node_modules/@layer0/core/node_modules/esbuild/lib/main.d.ts +716 -0
- package/node_modules/@layer0/core/node_modules/esbuild/lib/main.js +2532 -0
- package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/README.md +3 -0
- package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/bin/esbuild +0 -0
- package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/esbuild.wasm +0 -0
- package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/package.json +28 -0
- package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/wasm_exec.js +575 -0
- package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/wasm_exec_node.js +40 -0
- package/node_modules/@layer0/core/node_modules/esbuild/package.json +78 -0
- package/node_modules/@layer0/core/package.json +132 -0
- package/node_modules/@layer0/core/parser/parseRouter.d.ts +13 -0
- package/node_modules/@layer0/core/parser/parseRouter.js +77 -0
- package/node_modules/@layer0/core/plugins/PluginBase.d.ts +18 -0
- package/node_modules/@layer0/core/plugins/PluginBase.js +19 -0
- package/node_modules/@layer0/core/router/Backend.d.ts +69 -0
- package/node_modules/@layer0/core/router/Backend.js +176 -0
- package/node_modules/@layer0/core/router/BackendOptions.d.ts +11 -0
- package/node_modules/@layer0/core/router/BackendOptions.js +2 -0
- package/node_modules/@layer0/core/router/BaseResponseWriter.d.ts +65 -0
- package/node_modules/@layer0/core/router/BaseResponseWriter.js +81 -0
- package/node_modules/@layer0/core/router/BehindEdgeResponseWriterProxy.d.ts +4 -0
- package/node_modules/@layer0/core/router/BehindEdgeResponseWriterProxy.js +89 -0
- package/node_modules/@layer0/core/router/CacheManifest.d.ts +80 -0
- package/node_modules/@layer0/core/router/CacheManifest.js +83 -0
- package/node_modules/@layer0/core/router/CacheOptions.d.ts +171 -0
- package/node_modules/@layer0/core/router/CacheOptions.js +2 -0
- package/node_modules/@layer0/core/router/CustomCacheKey.d.ts +140 -0
- package/node_modules/@layer0/core/router/CustomCacheKey.js +272 -0
- package/node_modules/@layer0/core/router/GroupConfig.d.ts +7 -0
- package/node_modules/@layer0/core/router/GroupConfig.js +20 -0
- package/node_modules/@layer0/core/router/Groups.d.ts +7 -0
- package/node_modules/@layer0/core/router/Groups.js +21 -0
- package/node_modules/@layer0/core/router/Headers.d.ts +3 -0
- package/node_modules/@layer0/core/router/Headers.js +2 -0
- package/node_modules/@layer0/core/router/PathMatcher.d.ts +51 -0
- package/node_modules/@layer0/core/router/PathMatcher.js +73 -0
- package/node_modules/@layer0/core/router/Preload.d.ts +16 -0
- package/node_modules/@layer0/core/router/Preload.js +2 -0
- package/node_modules/@layer0/core/router/PreloadRequests.d.ts +23 -0
- package/node_modules/@layer0/core/router/PreloadRequests.js +66 -0
- package/node_modules/@layer0/core/router/Request.d.ts +74 -0
- package/node_modules/@layer0/core/router/Request.js +2 -0
- package/node_modules/@layer0/core/router/RequestContext.d.ts +12 -0
- package/node_modules/@layer0/core/router/RequestContext.js +11 -0
- package/node_modules/@layer0/core/router/Response.d.ts +55 -0
- package/node_modules/@layer0/core/router/Response.js +2 -0
- package/node_modules/@layer0/core/router/ResponseWriter.d.ts +1011 -0
- package/node_modules/@layer0/core/router/ResponseWriter.js +1341 -0
- package/node_modules/@layer0/core/router/Route.d.ts +124 -0
- package/node_modules/@layer0/core/router/Route.js +280 -0
- package/node_modules/@layer0/core/router/RouteCriteria.d.ts +68 -0
- package/node_modules/@layer0/core/router/RouteCriteria.js +2 -0
- package/node_modules/@layer0/core/router/RouteGroup.d.ts +157 -0
- package/node_modules/@layer0/core/router/RouteGroup.js +223 -0
- package/node_modules/@layer0/core/router/RouteGroupList.d.ts +45 -0
- package/node_modules/@layer0/core/router/RouteGroupList.js +73 -0
- package/node_modules/@layer0/core/router/Router.d.ts +439 -0
- package/node_modules/@layer0/core/router/Router.js +907 -0
- package/node_modules/@layer0/core/router/addBuiltInRoutes.d.ts +2 -0
- package/node_modules/@layer0/core/router/addBuiltInRoutes.js +58 -0
- package/node_modules/@layer0/core/router/addPreloadHeaders.d.ts +7 -0
- package/node_modules/@layer0/core/router/addPreloadHeaders.js +57 -0
- package/node_modules/@layer0/core/router/cacheManifestFromRouter.d.ts +6 -0
- package/node_modules/@layer0/core/router/cacheManifestFromRouter.js +85 -0
- package/node_modules/@layer0/core/router/createCustomCacheKey.d.ts +27 -0
- package/node_modules/@layer0/core/router/createCustomCacheKey.js +35 -0
- package/node_modules/@layer0/core/router/deriveSurrogateKeysFromJson.d.ts +36 -0
- package/node_modules/@layer0/core/router/deriveSurrogateKeysFromJson.js +70 -0
- package/node_modules/@layer0/core/router/index.d.ts +11 -0
- package/node_modules/@layer0/core/router/index.js +17 -0
- package/node_modules/@layer0/core/router/interpolateParams.d.ts +21 -0
- package/node_modules/@layer0/core/router/interpolateParams.js +150 -0
- package/node_modules/@layer0/core/router/loadRouter.d.ts +13 -0
- package/node_modules/@layer0/core/router/loadRouter.js +29 -0
- package/node_modules/@layer0/core/router/mergeQueryString.d.ts +1 -0
- package/node_modules/@layer0/core/router/mergeQueryString.js +23 -0
- package/node_modules/@layer0/core/router/normalizeCriteria.d.ts +6 -0
- package/node_modules/@layer0/core/router/normalizeCriteria.js +20 -0
- package/node_modules/@layer0/core/router/stream.d.ts +12 -0
- package/node_modules/@layer0/core/router/stream.js +30 -0
- package/node_modules/@layer0/core/router/universalRouteUtils.d.ts +55 -0
- package/node_modules/@layer0/core/router/universalRouteUtils.js +114 -0
- package/node_modules/@layer0/core/router/validateWriter.d.ts +41 -0
- package/node_modules/@layer0/core/router/validateWriter.js +120 -0
- package/node_modules/@layer0/core/serverless.yml +30 -0
- package/node_modules/@layer0/core/source.d.ts +9 -0
- package/node_modules/@layer0/core/source.js +17 -0
- package/node_modules/@layer0/core/test-utils/MockRequest.d.ts +15 -0
- package/node_modules/@layer0/core/test-utils/MockRequest.js +36 -0
- package/node_modules/@layer0/core/test-utils/MockResponse.d.ts +7 -0
- package/node_modules/@layer0/core/test-utils/MockResponse.js +24 -0
- package/node_modules/@layer0/core/test-utils/expect-extend.d.ts +1 -0
- package/node_modules/@layer0/core/test-utils/expect-extend.js +11 -0
- package/node_modules/@layer0/core/test-utils/index.d.ts +4 -0
- package/node_modules/@layer0/core/test-utils/index.js +11 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheBrowser.d.ts +19 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheBrowser.js +45 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheEdge.d.ts +19 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheEdge.js +38 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheServiceWorker.d.ts +19 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheServiceWorker.js +45 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeServedStale.d.ts +20 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeServedStale.js +50 -0
- package/node_modules/@layer0/core/test-utils/matchers/toHaveBody.d.ts +18 -0
- package/node_modules/@layer0/core/test-utils/matchers/toHaveBody.js +40 -0
- package/node_modules/@layer0/core/test-utils/matchers/toHaveHeader.d.ts +19 -0
- package/node_modules/@layer0/core/test-utils/matchers/toHaveHeader.js +43 -0
- package/node_modules/@layer0/core/test-utils/matchers.d.ts +6 -0
- package/node_modules/@layer0/core/test-utils/matchers.js +18 -0
- package/node_modules/@layer0/core/test-utils/utils/createRouteMock.d.ts +21 -0
- package/node_modules/@layer0/core/test-utils/utils/createRouteMock.js +27 -0
- package/node_modules/@layer0/core/test-utils/utils/getBackend.d.ts +13 -0
- package/node_modules/@layer0/core/test-utils/utils/getBackend.js +30 -0
- package/node_modules/@layer0/core/test-utils/utils/getMessage.d.ts +1 -0
- package/node_modules/@layer0/core/test-utils/utils/getMessage.js +16 -0
- package/node_modules/@layer0/core/test-utils/utils/runRoute.d.ts +10 -0
- package/node_modules/@layer0/core/test-utils/utils/runRoute.js +39 -0
- package/node_modules/@layer0/core/timing.d.ts +115 -0
- package/node_modules/@layer0/core/timing.js +200 -0
- package/node_modules/@layer0/core/transform/index.d.ts +1 -0
- package/node_modules/@layer0/core/transform/index.js +4 -0
- package/node_modules/@layer0/core/transform/transformMethod.d.ts +40 -0
- package/node_modules/@layer0/core/transform/transformMethod.js +58 -0
- package/node_modules/@layer0/core/types.d.ts +102 -0
- package/node_modules/@layer0/core/types.js +30 -0
- package/node_modules/@layer0/core/utils/Tasks.d.ts +32 -0
- package/node_modules/@layer0/core/utils/Tasks.js +80 -0
- package/node_modules/@layer0/core/utils/Validator.d.ts +18 -0
- package/node_modules/@layer0/core/utils/Validator.js +178 -0
- package/node_modules/@layer0/core/utils/bindParamsToPath.d.ts +15 -0
- package/node_modules/@layer0/core/utils/bindParamsToPath.js +49 -0
- package/node_modules/@layer0/core/utils/convertParamsToBackReferences.d.ts +16 -0
- package/node_modules/@layer0/core/utils/convertParamsToBackReferences.js +45 -0
- package/node_modules/@layer0/core/utils/convertStringMatcherToRegex.d.ts +7 -0
- package/node_modules/@layer0/core/utils/convertStringMatcherToRegex.js +26 -0
- package/node_modules/@layer0/core/utils/decode.d.ts +9 -0
- package/node_modules/@layer0/core/utils/decode.js +44 -0
- package/node_modules/@layer0/core/utils/esImport.d.ts +1 -0
- package/node_modules/@layer0/core/utils/esImport.js +9 -0
- package/node_modules/@layer0/core/utils/fs.d.ts +1 -0
- package/node_modules/@layer0/core/utils/fs.js +7 -0
- package/node_modules/@layer0/core/utils/get.d.ts +6 -0
- package/node_modules/@layer0/core/utils/get.js +19 -0
- package/node_modules/@layer0/core/utils/getPackageVersion.d.ts +7 -0
- package/node_modules/@layer0/core/utils/getPackageVersion.js +19 -0
- package/node_modules/@layer0/core/utils/has.d.ts +6 -0
- package/node_modules/@layer0/core/utils/has.js +15 -0
- package/node_modules/@layer0/core/utils/identity.d.ts +7 -0
- package/node_modules/@layer0/core/utils/identity.js +12 -0
- package/node_modules/@layer0/core/utils/index.d.ts +1 -0
- package/node_modules/@layer0/core/utils/index.js +4 -0
- package/node_modules/@layer0/core/utils/isEmpty.d.ts +6 -0
- package/node_modules/@layer0/core/utils/isEmpty.js +20 -0
- package/node_modules/@layer0/core/utils/isString.d.ts +1 -0
- package/node_modules/@layer0/core/utils/isString.js +6 -0
- package/node_modules/@layer0/core/utils/logo.d.ts +5 -0
- package/node_modules/@layer0/core/utils/logo.js +27 -0
- package/node_modules/@layer0/core/utils/mapValues.d.ts +7 -0
- package/node_modules/@layer0/core/utils/mapValues.js +16 -0
- package/node_modules/@layer0/core/utils/minBy.d.ts +8 -0
- package/node_modules/@layer0/core/utils/minBy.js +41 -0
- package/node_modules/@layer0/core/utils/nonWebpackRequire.d.ts +11 -0
- package/node_modules/@layer0/core/utils/nonWebpackRequire.js +28 -0
- package/node_modules/@layer0/core/utils/packageUtils.d.ts +12 -0
- package/node_modules/@layer0/core/utils/packageUtils.js +22 -0
- package/node_modules/@layer0/core/utils/ports.d.ts +5 -0
- package/node_modules/@layer0/core/utils/ports.js +7 -0
- package/node_modules/@layer0/core/utils/readBody.d.ts +7 -0
- package/node_modules/@layer0/core/utils/readBody.js +15 -0
- package/node_modules/@layer0/core/utils/readRawBody.d.ts +9 -0
- package/node_modules/@layer0/core/utils/readRawBody.js +21 -0
- package/node_modules/@layer0/core/utils/regExpEscape.d.ts +12 -0
- package/node_modules/@layer0/core/utils/regExpEscape.js +20 -0
- package/node_modules/@layer0/core/utils/requireInternal.d.ts +7 -0
- package/node_modules/@layer0/core/utils/requireInternal.js +24 -0
- package/node_modules/@layer0/core/utils/set.d.ts +10 -0
- package/node_modules/@layer0/core/utils/set.js +21 -0
- package/node_modules/@layer0/core/utils/toEdgeRegex.d.ts +11 -0
- package/node_modules/@layer0/core/utils/toEdgeRegex.js +23 -0
- package/node_modules/@layer0/core/utils/toHttpMethodMatchRegex.d.ts +12 -0
- package/node_modules/@layer0/core/utils/toHttpMethodMatchRegex.js +17 -0
- package/node_modules/@layer0/core/utils/toLower.d.ts +1 -0
- package/node_modules/@layer0/core/utils/toLower.js +9 -0
- package/node_modules/@layer0/core/utils/validateBackends.d.ts +5 -0
- package/node_modules/@layer0/core/utils/validateBackends.js +30 -0
- package/node_modules/@layer0/core/utils/watch.d.ts +10 -0
- package/node_modules/@layer0/core/utils/watch.js +17 -0
- 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;
|