@opennextjs/aws 3.1.6 → 3.2.0
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/README.md +27 -22
- package/dist/adapters/binary.js +2 -0
- package/dist/adapters/cache.d.ts +3 -2
- package/dist/adapters/cache.js +2 -2
- package/dist/adapters/config/util.d.ts +2 -2
- package/dist/adapters/image-optimization-adapter.d.ts +2 -2
- package/dist/adapters/middleware.js +5 -52
- package/dist/adapters/plugins/image-optimization/image-optimization.d.ts +7 -4
- package/dist/adapters/plugins/image-optimization/image-optimization.js +2 -3
- package/dist/adapters/plugins/image-optimization/image-optimization.replacement.d.ts +3 -0
- package/dist/adapters/plugins/image-optimization/image-optimization.replacement.js +4 -7
- package/dist/adapters/warmer-function.js +2 -67
- package/dist/build/buildNextApp.d.ts +3 -0
- package/dist/build/buildNextApp.js +19 -0
- package/dist/build/bundleNextServer.js +2 -2
- package/dist/build/compileCache.d.ts +9 -0
- package/dist/build/compileCache.js +30 -0
- package/dist/build/compileConfig.d.ts +17 -3
- package/dist/build/compileConfig.js +56 -34
- package/dist/build/compileTagCacheProvider.d.ts +2 -0
- package/dist/build/compileTagCacheProvider.js +26 -0
- package/dist/build/createAssets.d.ts +11 -0
- package/dist/build/createAssets.js +161 -0
- package/dist/build/createImageOptimizationBundle.d.ts +2 -0
- package/dist/build/createImageOptimizationBundle.js +79 -0
- package/dist/build/createMiddleware.d.ts +10 -0
- package/dist/build/createMiddleware.js +55 -0
- package/dist/build/createRevalidationBundle.d.ts +2 -0
- package/dist/build/createRevalidationBundle.js +35 -0
- package/dist/build/createServerBundle.d.ts +2 -2
- package/dist/build/createServerBundle.js +27 -26
- package/dist/build/createWarmerBundle.d.ts +2 -0
- package/dist/build/createWarmerBundle.js +44 -0
- package/dist/build/edge/createEdgeBundle.d.ts +3 -3
- package/dist/build/edge/createEdgeBundle.js +3 -5
- package/dist/build/helper.d.ts +22 -5
- package/dist/build/helper.js +42 -11
- package/dist/build/installDeps.d.ts +2 -0
- package/dist/build/installDeps.js +36 -0
- package/dist/build/utils.d.ts +5 -0
- package/dist/build/utils.js +22 -0
- package/dist/build/validateConfig.d.ts +1 -1
- package/dist/build.d.ts +0 -4
- package/dist/build.js +26 -486
- package/dist/core/createMainHandler.d.ts +3 -3
- package/dist/core/requestHandler.d.ts +2 -2
- package/dist/core/requestHandler.js +1 -1
- package/dist/core/resolve.d.ts +13 -4
- package/dist/core/resolve.js +30 -5
- package/dist/core/routing/cacheInterceptor.d.ts +1 -1
- package/dist/core/routing/i18n/index.d.ts +1 -1
- package/dist/core/routing/i18n/index.js +3 -0
- package/dist/core/routing/matcher.d.ts +2 -1
- package/dist/core/routing/matcher.js +1 -1
- package/dist/core/routing/middleware.d.ts +6 -2
- package/dist/core/routing/middleware.js +7 -4
- package/dist/core/routing/util.d.ts +3 -2
- package/dist/core/routing/util.js +9 -3
- package/dist/core/routingHandler.d.ts +1 -1
- package/dist/helpers/withCloudflare.d.ts +1 -1
- package/dist/helpers/withSST.d.ts +1 -1
- package/dist/http/openNextResponse.d.ts +10 -2
- package/dist/http/openNextResponse.js +27 -0
- package/dist/http/request.d.ts +1 -0
- package/dist/http/util.d.ts +1 -1
- package/dist/{converters → overrides/converters}/aws-apigw-v1.d.ts +1 -1
- package/dist/{converters → overrides/converters}/aws-apigw-v1.js +2 -2
- package/dist/{converters → overrides/converters}/aws-apigw-v2.d.ts +1 -1
- package/dist/{converters → overrides/converters}/aws-apigw-v2.js +4 -4
- package/dist/{converters → overrides/converters}/aws-cloudfront.d.ts +1 -1
- package/dist/{converters → overrides/converters}/aws-cloudfront.js +6 -7
- package/dist/{converters → overrides/converters}/dummy.d.ts +1 -1
- package/dist/overrides/converters/edge.d.ts +6 -0
- package/dist/{converters → overrides/converters}/edge.js +1 -1
- package/dist/{converters → overrides/converters}/node.d.ts +1 -1
- package/dist/{converters → overrides/converters}/node.js +1 -1
- package/dist/overrides/converters/sqs-revalidate.d.ts +4 -0
- package/dist/overrides/imageLoader/dummy.d.ts +3 -0
- package/dist/overrides/imageLoader/dummy.js +8 -0
- package/dist/overrides/imageLoader/host.d.ts +1 -1
- package/dist/overrides/imageLoader/s3.d.ts +1 -1
- package/dist/overrides/incrementalCache/dummy.d.ts +3 -0
- package/dist/overrides/incrementalCache/dummy.js +13 -0
- package/dist/{cache/incremental → overrides/incrementalCache}/s3-lite.d.ts +1 -1
- package/dist/{cache/incremental → overrides/incrementalCache}/s3.d.ts +1 -1
- package/dist/{cache/incremental → overrides/incrementalCache}/types.d.ts +1 -1
- package/dist/overrides/originResolver/dummy.d.ts +3 -0
- package/dist/overrides/originResolver/dummy.js +7 -0
- package/dist/overrides/originResolver/pattern-env.d.ts +3 -0
- package/dist/overrides/originResolver/pattern-env.js +39 -0
- package/dist/overrides/queue/dummy.d.ts +3 -0
- package/dist/overrides/queue/dummy.js +7 -0
- package/dist/{queue → overrides/queue}/sqs-lite.d.ts +1 -1
- package/dist/{queue → overrides/queue}/sqs-lite.js +3 -3
- package/dist/{queue → overrides/queue}/sqs.d.ts +1 -1
- package/dist/{queue → overrides/queue}/sqs.js +1 -1
- package/dist/overrides/tagCache/dummy.d.ts +3 -0
- package/dist/overrides/tagCache/dummy.js +17 -0
- package/dist/{cache/tag → overrides/tagCache}/dynamodb-lite.d.ts +1 -1
- package/dist/{cache/tag → overrides/tagCache}/dynamodb-lite.js +1 -1
- package/dist/{cache/tag → overrides/tagCache}/dynamodb.d.ts +1 -1
- package/dist/{cache/tag → overrides/tagCache}/dynamodb.js +1 -1
- package/dist/overrides/warmer/aws-lambda.d.ts +3 -0
- package/dist/overrides/warmer/aws-lambda.js +59 -0
- package/dist/overrides/warmer/dummy.d.ts +3 -0
- package/dist/overrides/warmer/dummy.js +7 -0
- package/dist/overrides/wrappers/aws-lambda-streaming.d.ts +7 -0
- package/dist/{wrappers → overrides/wrappers}/aws-lambda-streaming.js +1 -1
- package/dist/overrides/wrappers/aws-lambda.d.ts +7 -0
- package/dist/{wrappers → overrides/wrappers}/cloudflare.d.ts +2 -2
- package/dist/overrides/wrappers/dummy.d.ts +7 -0
- package/dist/overrides/wrappers/dummy.js +6 -0
- package/dist/overrides/wrappers/node.d.ts +7 -0
- package/dist/{wrappers → overrides/wrappers}/node.js +1 -1
- package/dist/plugins/edge.d.ts +2 -2
- package/dist/plugins/replacement.d.ts +1 -1
- package/dist/plugins/resolve.d.ts +4 -2
- package/dist/plugins/resolve.js +32 -20
- package/dist/types/aws-lambda.d.ts +3 -2
- package/dist/{cache/next-types.d.ts → types/cache.d.ts} +1 -0
- package/dist/types/next-types.d.ts +3 -1
- package/dist/types/open-next.d.ts +39 -13
- package/package.json +2 -2
- package/dist/converters/edge.d.ts +0 -6
- package/dist/converters/sqs-revalidate.d.ts +0 -4
- package/dist/wrappers/aws-lambda-streaming.d.ts +0 -7
- package/dist/wrappers/aws-lambda.d.ts +0 -7
- package/dist/wrappers/node.d.ts +0 -7
- /package/dist/{converters → overrides/converters}/dummy.js +0 -0
- /package/dist/{converters → overrides/converters}/sqs-revalidate.js +0 -0
- /package/dist/{converters → overrides/converters}/utils.d.ts +0 -0
- /package/dist/{converters → overrides/converters}/utils.js +0 -0
- /package/dist/{cache/incremental → overrides/incrementalCache}/s3-lite.js +0 -0
- /package/dist/{cache/incremental → overrides/incrementalCache}/s3.js +0 -0
- /package/dist/{cache/incremental → overrides/incrementalCache}/types.js +0 -0
- /package/dist/{queue → overrides/queue}/types.d.ts +0 -0
- /package/dist/{cache/tag → overrides/queue}/types.js +0 -0
- /package/dist/{cache/tag → overrides/tagCache}/constants.d.ts +0 -0
- /package/dist/{cache/tag → overrides/tagCache}/constants.js +0 -0
- /package/dist/{cache/tag → overrides/tagCache}/types.d.ts +0 -0
- /package/dist/{queue → overrides/tagCache}/types.js +0 -0
- /package/dist/{wrappers → overrides/wrappers}/aws-lambda.js +0 -0
- /package/dist/{wrappers → overrides/wrappers}/cloudflare.js +0 -0
- /package/dist/{cache/next-types.js → types/cache.js} +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// We don't want to throw error on this one because we might use it when we don't need tag cache
|
|
2
|
+
const dummyTagCache = {
|
|
3
|
+
name: "dummy",
|
|
4
|
+
getByPath: async () => {
|
|
5
|
+
return [];
|
|
6
|
+
},
|
|
7
|
+
getByTag: async () => {
|
|
8
|
+
return [];
|
|
9
|
+
},
|
|
10
|
+
getLastModified: async (_, lastModified) => {
|
|
11
|
+
return lastModified ?? Date.now();
|
|
12
|
+
},
|
|
13
|
+
writeTags: async () => {
|
|
14
|
+
return;
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
export default dummyTagCache;
|
|
@@ -131,7 +131,7 @@ const tagCache = {
|
|
|
131
131
|
const revalidatedTags = (await result.json()).Items ?? [];
|
|
132
132
|
debug("revalidatedTags", revalidatedTags);
|
|
133
133
|
// If we have revalidated tags we return -1 to force revalidation
|
|
134
|
-
return revalidatedTags.length > 0 ? -1 : lastModified ?? Date.now();
|
|
134
|
+
return revalidatedTags.length > 0 ? -1 : (lastModified ?? Date.now());
|
|
135
135
|
}
|
|
136
136
|
catch (e) {
|
|
137
137
|
error("Failed to get revalidated tags", e);
|
|
@@ -93,7 +93,7 @@ const tagCache = {
|
|
|
93
93
|
const revalidatedTags = result.Items ?? [];
|
|
94
94
|
debug("revalidatedTags", revalidatedTags);
|
|
95
95
|
// If we have revalidated tags we return -1 to force revalidation
|
|
96
|
-
return revalidatedTags.length > 0 ? -1 : lastModified ?? Date.now();
|
|
96
|
+
return revalidatedTags.length > 0 ? -1 : (lastModified ?? Date.now());
|
|
97
97
|
}
|
|
98
98
|
catch (e) {
|
|
99
99
|
error("Failed to get revalidated tags", e);
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { debug, error } from "../../adapters/logger";
|
|
2
|
+
const lambdaWarmerInvoke = {
|
|
3
|
+
name: "aws-invoke",
|
|
4
|
+
invoke: async (warmerId) => {
|
|
5
|
+
const { InvokeCommand, LambdaClient } = await import("@aws-sdk/client-lambda");
|
|
6
|
+
const lambda = new LambdaClient({});
|
|
7
|
+
const warmParams = JSON.parse(process.env.WARM_PARAMS);
|
|
8
|
+
for (const warmParam of warmParams) {
|
|
9
|
+
const { concurrency: CONCURRENCY, function: FUNCTION_NAME } = warmParam;
|
|
10
|
+
debug({
|
|
11
|
+
event: "warmer invoked",
|
|
12
|
+
functionName: FUNCTION_NAME,
|
|
13
|
+
concurrency: CONCURRENCY,
|
|
14
|
+
warmerId,
|
|
15
|
+
});
|
|
16
|
+
const ret = await Promise.all(Array.from({ length: CONCURRENCY }, (_v, i) => i).map((i) => {
|
|
17
|
+
try {
|
|
18
|
+
return lambda.send(new InvokeCommand({
|
|
19
|
+
FunctionName: FUNCTION_NAME,
|
|
20
|
+
InvocationType: "RequestResponse",
|
|
21
|
+
Payload: Buffer.from(JSON.stringify({
|
|
22
|
+
type: "warmer",
|
|
23
|
+
warmerId,
|
|
24
|
+
index: i,
|
|
25
|
+
concurrency: CONCURRENCY,
|
|
26
|
+
delay: 75,
|
|
27
|
+
})),
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
error(`failed to warm up #${i}`, e);
|
|
32
|
+
// ignore error
|
|
33
|
+
}
|
|
34
|
+
}));
|
|
35
|
+
// Print status
|
|
36
|
+
const warmedServerIds = ret
|
|
37
|
+
.map((r, i) => {
|
|
38
|
+
if (r?.StatusCode !== 200 || !r?.Payload) {
|
|
39
|
+
error(`failed to warm up #${i}:`, r?.Payload?.toString());
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const payload = JSON.parse(Buffer.from(r.Payload).toString());
|
|
43
|
+
return {
|
|
44
|
+
statusCode: r.StatusCode,
|
|
45
|
+
payload,
|
|
46
|
+
type: "warmer",
|
|
47
|
+
};
|
|
48
|
+
})
|
|
49
|
+
.filter((r) => !!r);
|
|
50
|
+
debug({
|
|
51
|
+
event: "warmer result",
|
|
52
|
+
sent: CONCURRENCY,
|
|
53
|
+
success: warmedServerIds.length,
|
|
54
|
+
uniqueServersWarmed: [...new Set(warmedServerIds)].length,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
export default lambdaWarmerInvoke;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WrapperHandler } from "../../types/open-next";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
wrapper: WrapperHandler<import("../../types/open-next").InternalEvent, import("../../types/open-next").InternalResult>;
|
|
4
|
+
name: string;
|
|
5
|
+
supportStreaming: boolean;
|
|
6
|
+
};
|
|
7
|
+
export default _default;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Readable } from "node:stream";
|
|
2
2
|
import zlib from "node:zlib";
|
|
3
|
-
import { debug, error } from "
|
|
3
|
+
import { debug, error } from "../../adapters/logger";
|
|
4
4
|
function formatWarmerResponse(event) {
|
|
5
5
|
const result = new Promise((resolve) => {
|
|
6
6
|
setTimeout(() => {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WrapperHandler } from "../../types/open-next";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
wrapper: WrapperHandler<import("../../types/open-next").InternalEvent, import("../../types/open-next").InternalResult>;
|
|
4
|
+
name: string;
|
|
5
|
+
supportStreaming: boolean;
|
|
6
|
+
};
|
|
7
|
+
export default _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { InternalEvent, InternalResult, WrapperHandler } from "
|
|
2
|
-
import { MiddlewareOutputEvent } from "
|
|
1
|
+
import type { InternalEvent, InternalResult, WrapperHandler } from "../../types/open-next";
|
|
2
|
+
import type { MiddlewareOutputEvent } from "../../core/routingHandler";
|
|
3
3
|
declare const _default: {
|
|
4
4
|
wrapper: WrapperHandler<InternalEvent, InternalResult | ({
|
|
5
5
|
type: "middleware";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WrapperHandler } from "../../types/open-next";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
name: string;
|
|
4
|
+
handler: WrapperHandler<import("../../types/open-next").InternalEvent, import("../../types/open-next").InternalResult>;
|
|
5
|
+
supportStreaming: boolean;
|
|
6
|
+
};
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WrapperHandler } from "../../types/open-next";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
wrapper: WrapperHandler<import("../../types/open-next").InternalEvent, import("../../types/open-next").InternalResult>;
|
|
4
|
+
name: string;
|
|
5
|
+
supportStreaming: boolean;
|
|
6
|
+
};
|
|
7
|
+
export default _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createServer } from "node:http";
|
|
2
|
-
import { debug, error } from "
|
|
2
|
+
import { debug, error } from "../../adapters/logger";
|
|
3
3
|
const wrapper = async (handler, converter) => {
|
|
4
4
|
const server = createServer(async (req, res) => {
|
|
5
5
|
const internalEvent = await converter.convertFrom(req);
|
package/dist/plugins/edge.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Plugin } from "esbuild";
|
|
2
|
-
import { MiddlewareInfo } from "../types/next-types.js";
|
|
1
|
+
import type { Plugin } from "esbuild";
|
|
2
|
+
import type { MiddlewareInfo } from "../types/next-types.js";
|
|
3
3
|
export interface IPluginSettings {
|
|
4
4
|
nextDir: string;
|
|
5
5
|
edgeFunctionHandlerPath?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Plugin } from "esbuild";
|
|
2
|
-
import type { DefaultOverrideOptions, ImageLoader, IncludedImageLoader, LazyLoadedOverride, OverrideOptions } from "../types/open-next";
|
|
1
|
+
import type { Plugin } from "esbuild";
|
|
2
|
+
import type { DefaultOverrideOptions, ImageLoader, IncludedImageLoader, IncludedOriginResolver, IncludedWarmer, LazyLoadedOverride, OriginResolver, OverrideOptions, Warmer } from "../types/open-next";
|
|
3
3
|
export interface IPluginSettings {
|
|
4
4
|
overrides?: {
|
|
5
5
|
wrapper?: DefaultOverrideOptions<any, any>["wrapper"];
|
|
@@ -8,6 +8,8 @@ export interface IPluginSettings {
|
|
|
8
8
|
queue?: OverrideOptions["queue"];
|
|
9
9
|
incrementalCache?: OverrideOptions["incrementalCache"];
|
|
10
10
|
imageLoader?: LazyLoadedOverride<ImageLoader> | IncludedImageLoader;
|
|
11
|
+
originResolver?: LazyLoadedOverride<OriginResolver> | IncludedOriginResolver;
|
|
12
|
+
warmer?: LazyLoadedOverride<Warmer> | IncludedWarmer;
|
|
11
13
|
};
|
|
12
14
|
fnName?: string;
|
|
13
15
|
}
|
package/dist/plugins/resolve.js
CHANGED
|
@@ -1,11 +1,33 @@
|
|
|
1
1
|
import { readFileSync } from "node:fs";
|
|
2
2
|
import logger from "../logger.js";
|
|
3
|
-
function
|
|
3
|
+
function getOverrideOrDummy(override) {
|
|
4
4
|
if (typeof override === "string") {
|
|
5
5
|
return override;
|
|
6
6
|
}
|
|
7
|
-
return
|
|
7
|
+
// We can return dummy here because if it's not a string, it's a LazyLoadedOverride
|
|
8
|
+
return "dummy";
|
|
8
9
|
}
|
|
10
|
+
// This could be useful in the future to map overrides to nested folders
|
|
11
|
+
const nameToFolder = {
|
|
12
|
+
wrapper: "wrappers",
|
|
13
|
+
converter: "converters",
|
|
14
|
+
tagCache: "tagCache",
|
|
15
|
+
queue: "queue",
|
|
16
|
+
incrementalCache: "incrementalCache",
|
|
17
|
+
imageLoader: "imageLoader",
|
|
18
|
+
originResolver: "originResolver",
|
|
19
|
+
warmer: "warmer",
|
|
20
|
+
};
|
|
21
|
+
const defaultOverrides = {
|
|
22
|
+
wrapper: "aws-lambda",
|
|
23
|
+
converter: "aws-apigw-v2",
|
|
24
|
+
tagCache: "dynamodb",
|
|
25
|
+
queue: "sqs",
|
|
26
|
+
incrementalCache: "s3",
|
|
27
|
+
imageLoader: "s3",
|
|
28
|
+
originResolver: "pattern-env",
|
|
29
|
+
warmer: "aws-lambda",
|
|
30
|
+
};
|
|
9
31
|
/**
|
|
10
32
|
* @param opts.overrides - The name of the overrides to use
|
|
11
33
|
* @returns
|
|
@@ -17,24 +39,14 @@ export function openNextResolvePlugin({ overrides, fnName, }) {
|
|
|
17
39
|
logger.debug(`OpenNext Resolve plugin for ${fnName}`);
|
|
18
40
|
build.onLoad({ filter: /core(\/|\\)resolve\.js/g }, async (args) => {
|
|
19
41
|
let contents = readFileSync(args.path, "utf-8");
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
contents = contents.replace("../cache/tag/dynamodb.js", `../cache/tag/${getOverrideOrDefault(overrides.tagCache, "dynamodb-lite")}.js`);
|
|
29
|
-
}
|
|
30
|
-
if (overrides?.queue) {
|
|
31
|
-
contents = contents.replace("../queue/sqs.js", `../queue/${getOverrideOrDefault(overrides.queue, "sqs-lite")}.js`);
|
|
32
|
-
}
|
|
33
|
-
if (overrides?.incrementalCache) {
|
|
34
|
-
contents = contents.replace("../cache/incremental/s3.js", `../cache/incremental/${getOverrideOrDefault(overrides.incrementalCache, "s3-lite")}.js`);
|
|
35
|
-
}
|
|
36
|
-
if (overrides?.imageLoader) {
|
|
37
|
-
contents = contents.replace("../overrides/imageLoader/s3.js", `../overrides/imageLoader/${getOverrideOrDefault(overrides.imageLoader, "s3")}.js`);
|
|
42
|
+
const overridesEntries = Object.entries(overrides ?? {});
|
|
43
|
+
for (const [overrideName, overrideValue] of overridesEntries) {
|
|
44
|
+
if (!overrideValue) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const folder = nameToFolder[overrideName];
|
|
48
|
+
const defaultOverride = defaultOverrides[overrideName];
|
|
49
|
+
contents = contents.replace(`../overrides/${folder}/${defaultOverride}.js`, `../overrides/${folder}/${getOverrideOrDummy(overrideValue)}.js`);
|
|
38
50
|
}
|
|
39
51
|
return {
|
|
40
52
|
contents,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
-
|
|
4
|
-
import {
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
import type { APIGatewayProxyEventV2, Context } from "aws-lambda";
|
|
5
|
+
import type { Writable } from "stream";
|
|
5
6
|
export interface ResponseStream extends Writable {
|
|
6
7
|
getBufferedData(): Buffer;
|
|
7
8
|
setContentType(contentType: string): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IncomingMessage, OpenNextNodeResponse } from "../http/index.js";
|
|
2
|
-
import { InternalEvent } from "./open-next";
|
|
2
|
+
import type { InternalEvent } from "./open-next";
|
|
3
3
|
type RemotePattern = {
|
|
4
4
|
protocol?: "http" | "https";
|
|
5
5
|
hostname: string;
|
|
@@ -55,6 +55,7 @@ export type Header = {
|
|
|
55
55
|
export interface i18nConfig {
|
|
56
56
|
locales: string[];
|
|
57
57
|
defaultLocale: string;
|
|
58
|
+
localeDetection?: false;
|
|
58
59
|
}
|
|
59
60
|
export interface NextConfig {
|
|
60
61
|
basePath?: string;
|
|
@@ -66,6 +67,7 @@ export interface NextConfig {
|
|
|
66
67
|
appDir?: boolean;
|
|
67
68
|
};
|
|
68
69
|
images: ImageConfig;
|
|
70
|
+
poweredByHeader?: boolean;
|
|
69
71
|
}
|
|
70
72
|
export interface RouteDefinition {
|
|
71
73
|
page: string;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
/// <reference types="node" />
|
|
4
|
+
/// <reference types="node" />
|
|
4
5
|
import type { Readable } from "node:stream";
|
|
5
6
|
import type { ReadableStream } from "node:stream/web";
|
|
6
7
|
import type { StreamCreator } from "../http/index.js";
|
|
7
8
|
import type { WarmerEvent, WarmerResponse } from "../adapters/warmer-function";
|
|
8
|
-
import type { IncrementalCache } from "../
|
|
9
|
-
import type {
|
|
10
|
-
import type {
|
|
9
|
+
import type { IncrementalCache } from "../overrides/incrementalCache/types";
|
|
10
|
+
import type { Queue } from "../overrides/queue/types";
|
|
11
|
+
import type { TagCache } from "../overrides/tagCache/types";
|
|
11
12
|
export type BaseEventOrResult<T extends string = string> = {
|
|
12
13
|
type: T;
|
|
13
14
|
};
|
|
@@ -93,6 +94,8 @@ export type IncludedQueue = "sqs" | "sqs-lite";
|
|
|
93
94
|
export type IncludedIncrementalCache = "s3" | "s3-lite";
|
|
94
95
|
export type IncludedTagCache = "dynamodb" | "dynamodb-lite";
|
|
95
96
|
export type IncludedImageLoader = "s3" | "host";
|
|
97
|
+
export type IncludedOriginResolver = "pattern-env";
|
|
98
|
+
export type IncludedWarmer = "aws-lambda";
|
|
96
99
|
export interface DefaultOverrideOptions<E extends BaseEventOrResult = InternalEvent, R extends BaseEventOrResult = InternalResult> {
|
|
97
100
|
/**
|
|
98
101
|
* This is the main entrypoint of your app.
|
|
@@ -128,6 +131,30 @@ export interface OverrideOptions extends DefaultOverrideOptions {
|
|
|
128
131
|
*/
|
|
129
132
|
queue?: IncludedQueue | LazyLoadedOverride<Queue>;
|
|
130
133
|
}
|
|
134
|
+
export interface InstallOptions {
|
|
135
|
+
/**
|
|
136
|
+
* List of packages to install
|
|
137
|
+
* @example
|
|
138
|
+
* ```ts
|
|
139
|
+
* install: {
|
|
140
|
+
* packages: ["sharp@0.32"]
|
|
141
|
+
* }
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
packages: string[];
|
|
145
|
+
/**
|
|
146
|
+
* @default "arm64"
|
|
147
|
+
*/
|
|
148
|
+
arch?: "x64" | "arm64";
|
|
149
|
+
/**
|
|
150
|
+
* @default "18"
|
|
151
|
+
*/
|
|
152
|
+
nodeVersion?: "18" | "20" | "22";
|
|
153
|
+
/**
|
|
154
|
+
* @default "glibc"
|
|
155
|
+
*/
|
|
156
|
+
libc?: "glibc" | "musl";
|
|
157
|
+
}
|
|
131
158
|
export interface DefaultFunctionOptions<E extends BaseEventOrResult = InternalEvent, R extends BaseEventOrResult = InternalResult> {
|
|
132
159
|
/**
|
|
133
160
|
* Minify the server bundle.
|
|
@@ -143,6 +170,13 @@ export interface DefaultFunctionOptions<E extends BaseEventOrResult = InternalEv
|
|
|
143
170
|
* Enable overriding the default lambda.
|
|
144
171
|
*/
|
|
145
172
|
override?: DefaultOverrideOptions<E, R>;
|
|
173
|
+
/**
|
|
174
|
+
* Install options for the function.
|
|
175
|
+
* This is used to install additional packages to this function.
|
|
176
|
+
* For image optimization, it will install sharp by default.
|
|
177
|
+
* @default undefined
|
|
178
|
+
*/
|
|
179
|
+
install?: InstallOptions;
|
|
146
180
|
}
|
|
147
181
|
export interface FunctionOptions extends DefaultFunctionOptions {
|
|
148
182
|
/**
|
|
@@ -210,7 +244,7 @@ export interface OpenNextConfig {
|
|
|
210
244
|
* OPEN_NEXT_ORIGIN should be a json stringified object with the key of the splitted function as key and the origin as value
|
|
211
245
|
* @default "pattern-env"
|
|
212
246
|
*/
|
|
213
|
-
originResolver?:
|
|
247
|
+
originResolver?: IncludedOriginResolver | LazyLoadedOverride<OriginResolver>;
|
|
214
248
|
};
|
|
215
249
|
/**
|
|
216
250
|
* Override the default warmer
|
|
@@ -219,7 +253,7 @@ export interface OpenNextConfig {
|
|
|
219
253
|
* @default undefined
|
|
220
254
|
*/
|
|
221
255
|
warmer?: DefaultFunctionOptions<WarmerEvent, WarmerResponse> & {
|
|
222
|
-
invokeFunction:
|
|
256
|
+
invokeFunction: IncludedWarmer | LazyLoadedOverride<Warmer>;
|
|
223
257
|
};
|
|
224
258
|
/**
|
|
225
259
|
* Override the default revalidate function
|
|
@@ -244,14 +278,6 @@ export interface OpenNextConfig {
|
|
|
244
278
|
* @default "s3"
|
|
245
279
|
*/
|
|
246
280
|
loader?: IncludedImageLoader | LazyLoadedOverride<ImageLoader>;
|
|
247
|
-
/**
|
|
248
|
-
* @default "arm64"
|
|
249
|
-
*/
|
|
250
|
-
arch?: "x64" | "arm64";
|
|
251
|
-
/**
|
|
252
|
-
* @default "18"
|
|
253
|
-
*/
|
|
254
|
-
nodeVersion?: "18" | "20";
|
|
255
281
|
};
|
|
256
282
|
/**
|
|
257
283
|
* Override the default initialization function
|
package/package.json
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
"access": "public"
|
|
4
4
|
},
|
|
5
5
|
"name": "@opennextjs/aws",
|
|
6
|
-
"version": "3.
|
|
6
|
+
"version": "3.2.0",
|
|
7
7
|
"bin": {
|
|
8
8
|
"open-next": "./dist/index.js"
|
|
9
9
|
},
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"type": "module",
|
|
12
12
|
"description": "Open source Next.js serverless adapter",
|
|
13
|
-
"homepage": "https://
|
|
13
|
+
"homepage": "https://opennext.js.org/aws",
|
|
14
14
|
"main": "./dist/index.js",
|
|
15
15
|
"exports": {
|
|
16
16
|
"./*": "./dist/*"
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Converter, InternalEvent, InternalResult } from "../types/open-next";
|
|
2
|
-
import { MiddlewareOutputEvent } from "../core/routingHandler";
|
|
3
|
-
declare const converter: Converter<InternalEvent, InternalResult | ({
|
|
4
|
-
type: "middleware";
|
|
5
|
-
} & MiddlewareOutputEvent)>;
|
|
6
|
-
export default converter;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { WrapperHandler } from "../types/open-next";
|
|
2
|
-
declare const _default: {
|
|
3
|
-
wrapper: WrapperHandler<import("../types/open-next").InternalEvent, import("../types/open-next").InternalResult>;
|
|
4
|
-
name: string;
|
|
5
|
-
supportStreaming: boolean;
|
|
6
|
-
};
|
|
7
|
-
export default _default;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { WrapperHandler } from "../types/open-next";
|
|
2
|
-
declare const _default: {
|
|
3
|
-
wrapper: WrapperHandler<import("../types/open-next").InternalEvent, import("../types/open-next").InternalResult>;
|
|
4
|
-
name: string;
|
|
5
|
-
supportStreaming: boolean;
|
|
6
|
-
};
|
|
7
|
-
export default _default;
|
package/dist/wrappers/node.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { WrapperHandler } from "../types/open-next";
|
|
2
|
-
declare const _default: {
|
|
3
|
-
wrapper: WrapperHandler<import("../types/open-next").InternalEvent, import("../types/open-next").InternalResult>;
|
|
4
|
-
name: string;
|
|
5
|
-
supportStreaming: boolean;
|
|
6
|
-
};
|
|
7
|
-
export default _default;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|