@opennextjs/aws 3.2.0 → 3.2.2

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 (140) hide show
  1. package/README.md +15 -1
  2. package/dist/adapters/cache.d.ts +1 -23
  3. package/dist/adapters/cache.js +22 -18
  4. package/dist/adapters/config/index.js +1 -1
  5. package/dist/adapters/config/util.js +2 -2
  6. package/dist/adapters/dynamo-provider.js +3 -5
  7. package/dist/adapters/edge-adapter.d.ts +0 -3
  8. package/dist/adapters/edge-adapter.js +43 -38
  9. package/dist/adapters/image-optimization-adapter.js +4 -4
  10. package/dist/adapters/logger.d.ts +0 -3
  11. package/dist/adapters/logger.js +3 -5
  12. package/dist/adapters/middleware.js +42 -18
  13. package/dist/adapters/plugins/image-optimization/image-optimization.d.ts +0 -3
  14. package/dist/adapters/plugins/image-optimization/image-optimization.replacement.d.ts +0 -3
  15. package/dist/adapters/revalidate.js +2 -2
  16. package/dist/adapters/server-adapter.d.ts +0 -3
  17. package/dist/adapters/server-adapter.js +3 -1
  18. package/dist/adapters/util.js +2 -2
  19. package/dist/build/bundleNextServer.d.ts +3 -1
  20. package/dist/build/bundleNextServer.js +3 -3
  21. package/dist/build/compileConfig.js +3 -3
  22. package/dist/build/copyTracedFiles.js +16 -27
  23. package/dist/build/createAssets.js +35 -26
  24. package/dist/build/createImageOptimizationBundle.js +4 -1
  25. package/dist/build/createMiddleware.d.ts +4 -4
  26. package/dist/build/createMiddleware.js +16 -19
  27. package/dist/build/createRevalidationBundle.js +1 -1
  28. package/dist/build/createServerBundle.js +34 -45
  29. package/dist/build/createWarmerBundle.js +1 -1
  30. package/dist/build/edge/createEdgeBundle.d.ts +9 -7
  31. package/dist/build/edge/createEdgeBundle.js +19 -14
  32. package/dist/build/generateOutput.js +7 -13
  33. package/dist/build/helper.d.ts +22 -4
  34. package/dist/build/helper.js +26 -12
  35. package/dist/build/installDeps.js +12 -2
  36. package/dist/build/patch/patchedAsyncStorage.js +1 -1
  37. package/dist/build/utils.js +3 -2
  38. package/dist/build/validateConfig.js +1 -0
  39. package/dist/core/createGenericHandler.d.ts +2 -4
  40. package/dist/core/createGenericHandler.js +6 -7
  41. package/dist/core/createMainHandler.d.ts +0 -17
  42. package/dist/core/createMainHandler.js +10 -9
  43. package/dist/core/edgeFunctionHandler.d.ts +1 -51
  44. package/dist/core/patchAsyncStorage.js +5 -6
  45. package/dist/core/requestHandler.js +98 -89
  46. package/dist/core/require-hooks.js +8 -7
  47. package/dist/core/resolve.d.ts +13 -7
  48. package/dist/core/resolve.js +29 -35
  49. package/dist/core/routing/cacheInterceptor.js +12 -13
  50. package/dist/core/routing/i18n/accept-header.js +3 -2
  51. package/dist/core/routing/matcher.d.ts +2 -4
  52. package/dist/core/routing/matcher.js +29 -31
  53. package/dist/core/routing/middleware.js +22 -18
  54. package/dist/core/routing/util.d.ts +0 -13
  55. package/dist/core/routing/util.js +32 -91
  56. package/dist/core/routingHandler.d.ts +2 -0
  57. package/dist/core/routingHandler.js +30 -12
  58. package/dist/core/util.js +5 -3
  59. package/dist/helpers/withSST.d.ts +1 -1
  60. package/dist/http/openNextResponse.d.ts +5 -9
  61. package/dist/http/openNextResponse.js +29 -31
  62. package/dist/http/request.d.ts +0 -3
  63. package/dist/http/request.js +4 -2
  64. package/dist/http/util.d.ts +1 -1
  65. package/dist/http/util.js +8 -12
  66. package/dist/minimize-js.js +19 -19
  67. package/dist/overrides/converters/aws-apigw-v1.d.ts +2 -2
  68. package/dist/overrides/converters/aws-apigw-v1.js +2 -1
  69. package/dist/overrides/converters/aws-apigw-v2.d.ts +2 -2
  70. package/dist/overrides/converters/aws-apigw-v2.js +6 -7
  71. package/dist/overrides/converters/aws-cloudfront.d.ts +2 -2
  72. package/dist/overrides/converters/aws-cloudfront.js +11 -30
  73. package/dist/overrides/converters/dummy.d.ts +1 -1
  74. package/dist/overrides/converters/edge.d.ts +5 -1
  75. package/dist/overrides/converters/edge.js +16 -17
  76. package/dist/overrides/converters/node.d.ts +1 -1
  77. package/dist/overrides/converters/node.js +1 -1
  78. package/dist/overrides/converters/sqs-revalidate.d.ts +1 -1
  79. package/dist/overrides/imageLoader/dummy.d.ts +1 -1
  80. package/dist/overrides/imageLoader/host.d.ts +1 -1
  81. package/dist/overrides/imageLoader/s3.d.ts +1 -1
  82. package/dist/overrides/imageLoader/s3.js +1 -1
  83. package/dist/overrides/incrementalCache/dummy.d.ts +1 -1
  84. package/dist/overrides/incrementalCache/s3-lite.d.ts +1 -1
  85. package/dist/overrides/incrementalCache/s3-lite.js +15 -19
  86. package/dist/overrides/incrementalCache/s3.d.ts +1 -1
  87. package/dist/overrides/incrementalCache/s3.js +1 -1
  88. package/dist/overrides/originResolver/dummy.d.ts +1 -1
  89. package/dist/overrides/originResolver/pattern-env.d.ts +1 -1
  90. package/dist/overrides/originResolver/pattern-env.js +10 -11
  91. package/dist/overrides/proxyExternalRequest/dummy.d.ts +3 -0
  92. package/dist/overrides/proxyExternalRequest/dummy.js +7 -0
  93. package/dist/overrides/proxyExternalRequest/fetch.d.ts +3 -0
  94. package/dist/overrides/proxyExternalRequest/fetch.js +25 -0
  95. package/dist/overrides/proxyExternalRequest/node.d.ts +3 -0
  96. package/dist/overrides/proxyExternalRequest/node.js +67 -0
  97. package/dist/overrides/queue/dummy.d.ts +1 -1
  98. package/dist/overrides/queue/sqs-lite.d.ts +1 -1
  99. package/dist/overrides/queue/sqs-lite.js +7 -9
  100. package/dist/overrides/queue/sqs.d.ts +1 -1
  101. package/dist/overrides/queue/sqs.js +1 -1
  102. package/dist/overrides/tagCache/constants.js +2 -2
  103. package/dist/overrides/tagCache/dummy.d.ts +1 -1
  104. package/dist/overrides/tagCache/dynamodb-lite.d.ts +1 -1
  105. package/dist/overrides/tagCache/dynamodb-lite.js +10 -12
  106. package/dist/overrides/tagCache/dynamodb.d.ts +1 -1
  107. package/dist/overrides/tagCache/dynamodb.js +2 -2
  108. package/dist/overrides/warmer/aws-lambda.d.ts +1 -1
  109. package/dist/overrides/warmer/dummy.d.ts +1 -1
  110. package/dist/overrides/wrappers/aws-lambda-streaming.d.ts +2 -2
  111. package/dist/overrides/wrappers/aws-lambda.d.ts +2 -2
  112. package/dist/overrides/wrappers/cloudflare.d.ts +2 -1
  113. package/dist/overrides/wrappers/cloudflare.js +21 -3
  114. package/dist/overrides/wrappers/dummy.d.ts +2 -2
  115. package/dist/overrides/wrappers/node.d.ts +2 -2
  116. package/dist/overrides/wrappers/node.js +3 -3
  117. package/dist/plugins/edge.d.ts +3 -2
  118. package/dist/plugins/edge.js +33 -34
  119. package/dist/plugins/replacement.d.ts +1 -1
  120. package/dist/plugins/replacement.js +5 -6
  121. package/dist/plugins/resolve.d.ts +3 -1
  122. package/dist/plugins/resolve.js +4 -1
  123. package/dist/types/aws-lambda.d.ts +2 -5
  124. package/dist/types/cache.d.ts +0 -2
  125. package/dist/types/global.d.ts +188 -0
  126. package/dist/types/next-types.d.ts +1 -3
  127. package/dist/types/open-next.d.ts +24 -45
  128. package/dist/types/overrides.d.ts +87 -0
  129. package/dist/utils/promise.d.ts +3 -0
  130. package/dist/utils/promise.js +44 -0
  131. package/dist/utils/stream.d.ts +0 -1
  132. package/package.json +2 -2
  133. package/dist/adapters/plugins/without-routing/requestHandler.d.ts +0 -2
  134. package/dist/adapters/plugins/without-routing/requestHandler.js +0 -10
  135. package/dist/overrides/incrementalCache/types.d.ts +0 -34
  136. package/dist/overrides/queue/types.d.ts +0 -12
  137. package/dist/overrides/tagCache/types.d.ts +0 -11
  138. package/dist/overrides/tagCache/types.js +0 -1
  139. /package/dist/{overrides/incrementalCache/types.js → types/global.js} +0 -0
  140. /package/dist/{overrides/queue/types.js → types/overrides.js} +0 -0
@@ -1,14 +1,6 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
- /// <reference types="node" />
5
- import type { Readable } from "node:stream";
6
1
  import type { ReadableStream } from "node:stream/web";
7
- import type { StreamCreator } from "../http/index.js";
8
2
  import type { WarmerEvent, WarmerResponse } from "../adapters/warmer-function";
9
- import type { IncrementalCache } from "../overrides/incrementalCache/types";
10
- import type { Queue } from "../overrides/queue/types";
11
- import type { TagCache } from "../overrides/tagCache/types";
3
+ import type { Converter, ImageLoader, IncrementalCache, OriginResolver, ProxyExternalRequest, Queue, TagCache, Warmer, Wrapper } from "./overrides";
12
4
  export type BaseEventOrResult<T extends string = string> = {
13
5
  type: T;
14
6
  };
@@ -58,44 +50,21 @@ export type BaseOverride = {
58
50
  name: string;
59
51
  };
60
52
  export type LazyLoadedOverride<T extends BaseOverride> = () => Promise<T>;
61
- export type OpenNextHandler<E extends BaseEventOrResult = InternalEvent, R extends BaseEventOrResult = InternalResult> = (event: E, responseStream?: StreamCreator) => Promise<R>;
62
- export type Converter<E extends BaseEventOrResult = InternalEvent, R extends BaseEventOrResult = InternalResult> = BaseOverride & {
63
- convertFrom: (event: any) => Promise<E>;
64
- convertTo: (result: R, originalRequest?: any) => Promise<any>;
65
- };
66
- export type WrapperHandler<E extends BaseEventOrResult = InternalEvent, R extends BaseEventOrResult = InternalResult> = (handler: OpenNextHandler<E, R>, converter: Converter<E, R>) => Promise<(...args: any[]) => any>;
67
- export type Wrapper<E extends BaseEventOrResult = InternalEvent, R extends BaseEventOrResult = InternalResult> = BaseOverride & {
68
- wrapper: WrapperHandler<E, R>;
69
- supportStreaming: boolean;
70
- edgeRuntime?: boolean;
71
- };
72
- export type Warmer = BaseOverride & {
73
- invoke: (warmerId: string) => Promise<void>;
74
- };
75
- export type ImageLoader = BaseOverride & {
76
- load: (url: string) => Promise<{
77
- body?: Readable;
78
- contentType?: string;
79
- cacheControl?: string;
80
- }>;
81
- };
82
53
  export interface Origin {
83
54
  host: string;
84
55
  protocol: "http" | "https";
85
56
  port?: number;
86
57
  customHeaders?: Record<string, string>;
87
58
  }
88
- export type OriginResolver = BaseOverride & {
89
- resolve: (path: string) => Promise<Origin | false>;
90
- };
91
- export type IncludedWrapper = "aws-lambda" | "aws-lambda-streaming" | "node" | "cloudflare";
59
+ export type IncludedWrapper = "aws-lambda" | "aws-lambda-streaming" | "node" | "cloudflare" | "dummy";
92
60
  export type IncludedConverter = "aws-apigw-v2" | "aws-apigw-v1" | "aws-cloudfront" | "edge" | "node" | "sqs-revalidate" | "dummy";
93
- export type IncludedQueue = "sqs" | "sqs-lite";
94
- export type IncludedIncrementalCache = "s3" | "s3-lite";
95
- export type IncludedTagCache = "dynamodb" | "dynamodb-lite";
96
- export type IncludedImageLoader = "s3" | "host";
97
- export type IncludedOriginResolver = "pattern-env";
98
- export type IncludedWarmer = "aws-lambda";
61
+ export type IncludedQueue = "sqs" | "sqs-lite" | "dummy";
62
+ export type IncludedIncrementalCache = "s3" | "s3-lite" | "dummy";
63
+ export type IncludedTagCache = "dynamodb" | "dynamodb-lite" | "dummy";
64
+ export type IncludedImageLoader = "s3" | "host" | "dummy";
65
+ export type IncludedOriginResolver = "pattern-env" | "dummy";
66
+ export type IncludedWarmer = "aws-lambda" | "dummy";
67
+ export type IncludedProxyExternalRequest = "node" | "fetch" | "dummy";
99
68
  export interface DefaultOverrideOptions<E extends BaseEventOrResult = InternalEvent, R extends BaseEventOrResult = InternalResult> {
100
69
  /**
101
70
  * This is the main entrypoint of your app.
@@ -130,6 +99,11 @@ export interface OverrideOptions extends DefaultOverrideOptions {
130
99
  * @default "sqs"
131
100
  */
132
101
  queue?: IncludedQueue | LazyLoadedOverride<Queue>;
102
+ /**
103
+ * Add possibility to override the default proxy for external rewrite
104
+ * @default "node"
105
+ */
106
+ proxyExternalRequest?: IncludedProxyExternalRequest | LazyLoadedOverride<ProxyExternalRequest>;
133
107
  }
134
108
  export interface InstallOptions {
135
109
  /**
@@ -143,17 +117,22 @@ export interface InstallOptions {
143
117
  */
144
118
  packages: string[];
145
119
  /**
146
- * @default "arm64"
120
+ * @default undefined
147
121
  */
148
122
  arch?: "x64" | "arm64";
149
123
  /**
150
- * @default "18"
124
+ * @default undefined
151
125
  */
152
- nodeVersion?: "18" | "20" | "22";
126
+ nodeVersion?: string;
153
127
  /**
154
- * @default "glibc"
128
+ * @default undefined
155
129
  */
156
130
  libc?: "glibc" | "musl";
131
+ /**
132
+ * @default undefined
133
+ * Additional arguments to pass to the install command (i.e. npm install)
134
+ */
135
+ additionalArgs?: string;
157
136
  }
158
137
  export interface DefaultFunctionOptions<E extends BaseEventOrResult = InternalEvent, R extends BaseEventOrResult = InternalResult> {
159
138
  /**
@@ -253,7 +232,7 @@ export interface OpenNextConfig {
253
232
  * @default undefined
254
233
  */
255
234
  warmer?: DefaultFunctionOptions<WarmerEvent, WarmerResponse> & {
256
- invokeFunction: IncludedWarmer | LazyLoadedOverride<Warmer>;
235
+ invokeFunction?: IncludedWarmer | LazyLoadedOverride<Warmer>;
257
236
  };
258
237
  /**
259
238
  * Override the default revalidate function
@@ -0,0 +1,87 @@
1
+ import type { Readable } from "node:stream";
2
+ import type { StreamCreator } from "../http/index";
3
+ import type { Meta } from "./cache";
4
+ import type { BaseEventOrResult, BaseOverride, InternalEvent, InternalResult, Origin } from "./open-next";
5
+ export interface QueueMessage {
6
+ MessageDeduplicationId: string;
7
+ MessageBody: {
8
+ host: string;
9
+ url: string;
10
+ };
11
+ MessageGroupId: string;
12
+ }
13
+ export interface Queue {
14
+ send(message: QueueMessage): Promise<void>;
15
+ name: string;
16
+ }
17
+ export type S3CachedFile = {
18
+ type: "redirect";
19
+ props?: Object;
20
+ meta?: Meta;
21
+ } | {
22
+ type: "page";
23
+ html: string;
24
+ json: Object;
25
+ meta?: Meta;
26
+ } | {
27
+ type: "app";
28
+ html: string;
29
+ rsc: string;
30
+ meta?: Meta;
31
+ } | {
32
+ type: "route";
33
+ body: string;
34
+ meta?: Meta;
35
+ };
36
+ export type S3FetchCache = Object;
37
+ export type WithLastModified<T> = {
38
+ lastModified?: number;
39
+ value?: T;
40
+ };
41
+ export type CacheValue<IsFetch extends boolean> = (IsFetch extends true ? S3FetchCache : S3CachedFile) & {
42
+ revalidate?: number | false;
43
+ };
44
+ export type IncrementalCache = {
45
+ get<IsFetch extends boolean = false>(key: string, isFetch?: IsFetch): Promise<WithLastModified<CacheValue<IsFetch>>>;
46
+ set<IsFetch extends boolean = false>(key: string, value: CacheValue<IsFetch>, isFetch?: IsFetch): Promise<void>;
47
+ delete(key: string): Promise<void>;
48
+ name: string;
49
+ };
50
+ export type TagCache = {
51
+ getByTag(tag: string): Promise<string[]>;
52
+ getByPath(path: string): Promise<string[]>;
53
+ getLastModified(path: string, lastModified?: number): Promise<number>;
54
+ writeTags(tags: {
55
+ tag: string;
56
+ path: string;
57
+ revalidatedAt?: number;
58
+ }[]): Promise<void>;
59
+ name: string;
60
+ };
61
+ export type WrapperHandler<E extends BaseEventOrResult = InternalEvent, R extends BaseEventOrResult = InternalResult> = (handler: OpenNextHandler<E, R>, converter: Converter<E, R>) => Promise<(...args: any[]) => any>;
62
+ export type Wrapper<E extends BaseEventOrResult = InternalEvent, R extends BaseEventOrResult = InternalResult> = BaseOverride & {
63
+ wrapper: WrapperHandler<E, R>;
64
+ supportStreaming: boolean;
65
+ edgeRuntime?: boolean;
66
+ };
67
+ export type OpenNextHandler<E extends BaseEventOrResult = InternalEvent, R extends BaseEventOrResult = InternalResult> = (event: E, responseStream?: StreamCreator) => Promise<R>;
68
+ export type Converter<E extends BaseEventOrResult = InternalEvent, R extends BaseEventOrResult = InternalResult> = BaseOverride & {
69
+ convertFrom: (event: any) => Promise<E>;
70
+ convertTo: (result: R, originalRequest?: any) => Promise<any>;
71
+ };
72
+ export type Warmer = BaseOverride & {
73
+ invoke: (warmerId: string) => Promise<void>;
74
+ };
75
+ export type ImageLoader = BaseOverride & {
76
+ load: (url: string) => Promise<{
77
+ body?: Readable;
78
+ contentType?: string;
79
+ cacheControl?: string;
80
+ }>;
81
+ };
82
+ export type OriginResolver = BaseOverride & {
83
+ resolve: (path: string) => Promise<Origin | false>;
84
+ };
85
+ export type ProxyExternalRequest = BaseOverride & {
86
+ proxy: (event: InternalEvent) => Promise<InternalResult>;
87
+ };
@@ -16,3 +16,6 @@ export declare class DetachedPromiseRunner {
16
16
  add<T>(promise: Promise<T>): void;
17
17
  await(): Promise<void>;
18
18
  }
19
+ export declare function runWithOpenNextRequestContext<T>({ isISRRevalidation }: {
20
+ isISRRevalidation: boolean;
21
+ }, fn: () => Promise<T>): Promise<T>;
@@ -46,3 +46,47 @@ export class DetachedPromiseRunner {
46
46
  });
47
47
  }
48
48
  }
49
+ async function awaitAllDetachedPromise() {
50
+ const promisesToAwait = globalThis.__openNextAls.getStore()?.pendingPromiseRunner.await() ??
51
+ Promise.resolve();
52
+ if (globalThis.openNextWaitUntil) {
53
+ globalThis.openNextWaitUntil(promisesToAwait);
54
+ return;
55
+ }
56
+ await promisesToAwait;
57
+ }
58
+ function provideNextAfterProvider() {
59
+ /** This should be considered unstable until `unstable_after` is stablized. */
60
+ const NEXT_REQUEST_CONTEXT_SYMBOL = Symbol.for("@next/request-context");
61
+ // This is needed by some lib that relies on the vercel request context to properly await stuff.
62
+ // Remove this when vercel builder is updated to provide '@next/request-context'.
63
+ const VERCEL_REQUEST_CONTEXT_SYMBOL = Symbol.for("@vercel/request-context");
64
+ const openNextStoreContext = globalThis.__openNextAls.getStore();
65
+ const waitUntil = globalThis.openNextWaitUntil ??
66
+ ((promise) => openNextStoreContext?.pendingPromiseRunner.add(promise));
67
+ const nextAfterContext = {
68
+ get: () => ({
69
+ waitUntil,
70
+ }),
71
+ };
72
+ //@ts-expect-error
73
+ globalThis[NEXT_REQUEST_CONTEXT_SYMBOL] = nextAfterContext;
74
+ // We probably want to avoid providing this everytime since some lib may incorrectly think they are running in Vercel
75
+ // It may break stuff, but at the same time it will allow libs like `@vercel/otel` to work as expected
76
+ if (process.env.EMULATE_VERCEL_REQUEST_CONTEXT) {
77
+ //@ts-expect-error
78
+ globalThis[VERCEL_REQUEST_CONTEXT_SYMBOL] = nextAfterContext;
79
+ }
80
+ }
81
+ export function runWithOpenNextRequestContext({ isISRRevalidation }, fn) {
82
+ return globalThis.__openNextAls.run({
83
+ requestId: Math.random().toString(36),
84
+ pendingPromiseRunner: new DetachedPromiseRunner(),
85
+ isISRRevalidation,
86
+ }, async () => {
87
+ provideNextAfterProvider();
88
+ const result = await fn();
89
+ await awaitAllDetachedPromise();
90
+ return result;
91
+ });
92
+ }
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import type { ReadableStream } from "node:stream/web";
3
2
  export declare function fromReadableStream(stream: ReadableStream<Uint8Array>, base64?: boolean): Promise<string>;
4
3
  export declare function toReadableStream(value: string, isBase64?: boolean): ReadableStream;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "access": "public"
4
4
  },
5
5
  "name": "@opennextjs/aws",
6
- "version": "3.2.0",
6
+ "version": "3.2.2",
7
7
  "bin": {
8
8
  "open-next": "./dist/index.js"
9
9
  },
@@ -49,7 +49,7 @@
49
49
  "@types/aws-lambda": "^8.10.109",
50
50
  "@types/node": "^18.16.1",
51
51
  "tsc-alias": "^1.8.8",
52
- "typescript": "^4.9.3"
52
+ "typescript": "^5.6.3"
53
53
  },
54
54
  "bugs": {
55
55
  "url": "https://github.com/opennextjs/opennextjs-aws/issues"
@@ -1,2 +0,0 @@
1
- declare const _default: {};
2
- export default _default;
@@ -1,10 +0,0 @@
1
- //#override withRouting
2
- const preprocessResult = {
3
- internalEvent: internalEvent,
4
- isExternalRewrite: false,
5
- origin: false,
6
- isISR: false,
7
- };
8
- //#endOverride
9
- // We need to export something otherwise when compiled in js it creates an empty export {} inside the override
10
- export default {};
@@ -1,34 +0,0 @@
1
- import type { Meta } from "../../types/cache";
2
- export type S3CachedFile = {
3
- type: "redirect";
4
- props?: Object;
5
- meta?: Meta;
6
- } | {
7
- type: "page";
8
- html: string;
9
- json: Object;
10
- meta?: Meta;
11
- } | {
12
- type: "app";
13
- html: string;
14
- rsc: string;
15
- meta?: Meta;
16
- } | {
17
- type: "route";
18
- body: string;
19
- meta?: Meta;
20
- };
21
- export type S3FetchCache = Object;
22
- export type WithLastModified<T> = {
23
- lastModified?: number;
24
- value?: T;
25
- };
26
- export type CacheValue<IsFetch extends boolean> = (IsFetch extends true ? S3FetchCache : S3CachedFile) & {
27
- revalidate?: number | false;
28
- };
29
- export type IncrementalCache = {
30
- get<IsFetch extends boolean = false>(key: string, isFetch?: IsFetch): Promise<WithLastModified<CacheValue<IsFetch>>>;
31
- set<IsFetch extends boolean = false>(key: string, value: CacheValue<IsFetch>, isFetch?: IsFetch): Promise<void>;
32
- delete(key: string): Promise<void>;
33
- name: string;
34
- };
@@ -1,12 +0,0 @@
1
- export interface QueueMessage {
2
- MessageDeduplicationId: string;
3
- MessageBody: {
4
- host: string;
5
- url: string;
6
- };
7
- MessageGroupId: string;
8
- }
9
- export interface Queue {
10
- send(message: QueueMessage): Promise<void>;
11
- name: string;
12
- }
@@ -1,11 +0,0 @@
1
- export type TagCache = {
2
- getByTag(tag: string): Promise<string[]>;
3
- getByPath(path: string): Promise<string[]>;
4
- getLastModified(path: string, lastModified?: number): Promise<number>;
5
- writeTags(tags: {
6
- tag: string;
7
- path: string;
8
- revalidatedAt?: number;
9
- }[]): Promise<void>;
10
- name: string;
11
- };
@@ -1 +0,0 @@
1
- export {};