cdk-nextjs 0.7.5 → 0.7.7
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/.jsii +38 -38
- package/.jsii.tabl.json +1 -1
- package/README.md +12 -3
- package/assets/lambdas/post-deploy/post-deploy.lambda/index.js +31 -13
- package/docs/adapter-runtime.md +1 -1
- package/docs/caching-guide.md +11 -1
- package/docs/harness-coverage.md +11 -9
- package/lib/adapter/adapter.mjs +220 -149
- package/lib/adapter/aws-cache-store.d.ts +242 -7
- package/lib/adapter/aws-cache-store.js +520 -54
- package/lib/adapter/aws-cache-store.test.js +710 -3
- package/lib/adapter/build-outputs.js +23 -1
- package/lib/adapter/build-outputs.test.js +18 -1
- package/lib/adapter/cache-handler.d.ts +4 -3
- package/lib/adapter/cache-handler.js +1 -1
- package/lib/adapter/cache-handler.mjs +552 -91
- package/lib/adapter/cache-handler.test.js +31 -1
- package/lib/adapter/cache-utils.d.ts +68 -2
- package/lib/adapter/cache-utils.js +108 -2
- package/lib/adapter/cache-utils.test.js +45 -1
- package/lib/adapter/init-cache.d.ts +1 -1
- package/lib/adapter/init-cache.js +60 -37
- package/lib/adapter/init-cache.test.js +55 -2
- package/lib/adapter/local-file-cache-handler.d.ts +2 -2
- package/lib/adapter/local-file-cache-handler.js +4 -5
- package/lib/adapter/s3-cache-handler.d.ts +23 -7
- package/lib/adapter/s3-cache-handler.js +63 -27
- package/lib/adapter/s3-cache-handler.test.js +168 -1
- package/lib/adapter/use-cache-common.d.ts +53 -1
- package/lib/adapter/use-cache-common.js +121 -14
- package/lib/adapter/use-cache-common.test.js +138 -1
- package/lib/adapter/use-cache-default-handler.js +36 -6
- package/lib/adapter/use-cache-default-handler.mjs +557 -51
- package/lib/adapter/use-cache-handlers.test.js +247 -7
- package/lib/adapter/use-cache-remote-handler.js +10 -9
- package/lib/adapter/use-cache-remote-handler.mjs +597 -101
- package/lib/lambdas/post-deploy/prune-revalidation-table.d.ts +2 -1
- package/lib/lambdas/post-deploy/prune-revalidation-table.js +35 -13
- package/lib/lambdas/post-deploy/prune-revalidation-table.test.js +19 -1
- package/lib/nextjs-api.js +1 -1
- package/lib/nextjs-build/nextjs-build.d.ts +0 -7
- package/lib/nextjs-build/nextjs-build.js +4 -11
- package/lib/nextjs-build/nextjs-build.test.js +4 -3
- package/lib/nextjs-cache.js +1 -1
- package/lib/nextjs-compute/nextjs-containers.js +1 -1
- package/lib/nextjs-compute/nextjs-functions.js +1 -1
- package/lib/nextjs-distribution.js +1 -1
- package/lib/nextjs-post-deploy.js +1 -1
- package/lib/nextjs-static-assets.js +1 -1
- package/lib/root-constructs/nextjs-base-construct.js +1 -1
- package/lib/root-constructs/nextjs-global-containers.js +1 -1
- package/lib/root-constructs/nextjs-global-functions.js +1 -1
- package/lib/root-constructs/nextjs-regional-containers.js +1 -1
- package/lib/root-constructs/nextjs-regional-functions.js +1 -1
- package/lib/runtime/core.js +18 -4
- package/lib/runtime/core.test.js +17 -1
- package/lib/runtime/image.d.ts +19 -0
- package/lib/runtime/image.js +28 -2
- package/lib/runtime/image.test.js +43 -1
- package/lib/runtime/lambda.mjs +30 -6
- package/lib/runtime/server.mjs +30 -6
- package/lib/runtime/tag-manifest.d.ts +15 -0
- package/lib/runtime/tag-manifest.js +24 -0
- package/lib/runtime/tag-manifest.test.d.ts +1 -0
- package/lib/runtime/tag-manifest.test.js +21 -0
- package/lib/utils/deployment-build-id.d.ts +11 -0
- package/lib/utils/deployment-build-id.js +15 -0
- package/package.json +3 -3
- package/scripts/e2e-harness/README.md +1 -1
package/lib/runtime/server.mjs
CHANGED
|
@@ -35889,9 +35889,9 @@ var require_dist_cjs16 = __commonJS({
|
|
|
35889
35889
|
}
|
|
35890
35890
|
});
|
|
35891
35891
|
|
|
35892
|
-
// node_modules/.pnpm/@next+routing@16.3.
|
|
35892
|
+
// node_modules/.pnpm/@next+routing@16.3.8/node_modules/@next/routing/dist/index.js
|
|
35893
35893
|
var require_dist = __commonJS({
|
|
35894
|
-
"node_modules/.pnpm/@next+routing@16.3.
|
|
35894
|
+
"node_modules/.pnpm/@next+routing@16.3.8/node_modules/@next/routing/dist/index.js"(exports, module) {
|
|
35895
35895
|
(() => {
|
|
35896
35896
|
"use strict";
|
|
35897
35897
|
var e5 = {};
|
|
@@ -38359,7 +38359,7 @@ async function loadImageCache({ deploymentRoot, manifest, importModule }, loaded
|
|
|
38359
38359
|
});
|
|
38360
38360
|
}
|
|
38361
38361
|
return {
|
|
38362
|
-
responses:
|
|
38362
|
+
responses: newImageResponseCache(modules.responseCache.default),
|
|
38363
38363
|
images: new next.optimizer.ImageOptimizerCache({
|
|
38364
38364
|
distDir,
|
|
38365
38365
|
nextConfig,
|
|
@@ -38367,6 +38367,17 @@ async function loadImageCache({ deploymentRoot, manifest, importModule }, loaded
|
|
|
38367
38367
|
})
|
|
38368
38368
|
};
|
|
38369
38369
|
}
|
|
38370
|
+
function newImageResponseCache(ResponseCache) {
|
|
38371
|
+
const Legacy = ResponseCache;
|
|
38372
|
+
try {
|
|
38373
|
+
return new Legacy(false);
|
|
38374
|
+
} catch (err) {
|
|
38375
|
+
if (!String(err?.message).includes("requires a source route")) {
|
|
38376
|
+
throw err;
|
|
38377
|
+
}
|
|
38378
|
+
return new ResponseCache({ minimalMode: false, route: "image" });
|
|
38379
|
+
}
|
|
38380
|
+
}
|
|
38370
38381
|
function cacheHandlerUrl(distDir, cacheHandler) {
|
|
38371
38382
|
const path = cacheHandler.startsWith("file://") ? fileURLToPath(cacheHandler) : cacheHandler;
|
|
38372
38383
|
return pathToFileURL(
|
|
@@ -38636,6 +38647,16 @@ function httpDate(value) {
|
|
|
38636
38647
|
return date2 && !Number.isNaN(date2.getTime()) ? date2 : void 0;
|
|
38637
38648
|
}
|
|
38638
38649
|
|
|
38650
|
+
// src/runtime/tag-manifest.ts
|
|
38651
|
+
var TAG_MANIFEST_SYMBOL = /* @__PURE__ */ Symbol.for(
|
|
38652
|
+
"cdk-nextjs.use-cache.tag-manifest"
|
|
38653
|
+
);
|
|
38654
|
+
async function catchUpTags(render) {
|
|
38655
|
+
const global = globalThis;
|
|
38656
|
+
const manifest = global[TAG_MANIFEST_SYMBOL];
|
|
38657
|
+
return manifest ? manifest.catchUp(render) : render();
|
|
38658
|
+
}
|
|
38659
|
+
|
|
38639
38660
|
// src/runtime/core.ts
|
|
38640
38661
|
var NextjsRuntime = class {
|
|
38641
38662
|
constructor(options) {
|
|
@@ -38783,7 +38804,7 @@ var NextjsRuntime = class {
|
|
|
38783
38804
|
const search = toSearch(invocationQuery);
|
|
38784
38805
|
req.url = search ? `${pathname}?${search}` : pathname;
|
|
38785
38806
|
req.headers = toIncomingHttpHeaders(result.requestHeaders);
|
|
38786
|
-
|
|
38807
|
+
const options = {
|
|
38787
38808
|
waitUntil,
|
|
38788
38809
|
requestMeta: {
|
|
38789
38810
|
// The resolved query, stated rather than left to be re-derived.
|
|
@@ -38858,7 +38879,9 @@ var NextjsRuntime = class {
|
|
|
38858
38879
|
// mocked `req`/`res`).
|
|
38859
38880
|
revalidate: (config) => this.revalidate(config, request)
|
|
38860
38881
|
}
|
|
38861
|
-
}
|
|
38882
|
+
};
|
|
38883
|
+
const render = () => handler(req, asServerResponse(res), options);
|
|
38884
|
+
await (result.entrypoint.type === "app-page" ? catchUpTags(render) : render());
|
|
38862
38885
|
if (!res.writableEnded && result.entrypoint.type !== "page-api") {
|
|
38863
38886
|
res.end();
|
|
38864
38887
|
}
|
|
@@ -39145,7 +39168,8 @@ var NextjsRuntime = class {
|
|
|
39145
39168
|
if (target.kind === "entrypoint") {
|
|
39146
39169
|
const handler = await this.entrypoints.load(target.entrypoint);
|
|
39147
39170
|
req.url = requestedUrl ?? req.url;
|
|
39148
|
-
|
|
39171
|
+
const render = () => handler(req, asServerResponse(res), { waitUntil });
|
|
39172
|
+
await (target.entrypoint.type === "app-page" ? catchUpTags(render) : render());
|
|
39149
39173
|
if (!res.writableEnded) {
|
|
39150
39174
|
res.end();
|
|
39151
39175
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The key the process's tag manifest (`TrackedTagMarkers`, from the adapter's
|
|
3
|
+
* `sharedTagManifest`) is kept under on `globalThis`, since the runtime and the
|
|
4
|
+
* cache handlers are separate bundles.
|
|
5
|
+
*/
|
|
6
|
+
export declare const TAG_MANIFEST_SYMBOL: unique symbol;
|
|
7
|
+
/**
|
|
8
|
+
* Render a page, after waiting for the revalidation log query if the instance
|
|
9
|
+
* has fallen behind on it (sat idle, or thawed): here, before Next.js starts
|
|
10
|
+
* rendering, rather than inside the first `'use cache'` lookup, where the wait
|
|
11
|
+
* cuts a staged render's static stage short. Just `render` until a cache
|
|
12
|
+
* handler first creates the manifest, and then there is nothing to catch up
|
|
13
|
+
* on. Rejects only as `render` does.
|
|
14
|
+
*/
|
|
15
|
+
export declare function catchUpTags<T>(render: () => Promise<T>): Promise<T>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TAG_MANIFEST_SYMBOL = void 0;
|
|
4
|
+
exports.catchUpTags = catchUpTags;
|
|
5
|
+
/**
|
|
6
|
+
* The key the process's tag manifest (`TrackedTagMarkers`, from the adapter's
|
|
7
|
+
* `sharedTagManifest`) is kept under on `globalThis`, since the runtime and the
|
|
8
|
+
* cache handlers are separate bundles.
|
|
9
|
+
*/
|
|
10
|
+
exports.TAG_MANIFEST_SYMBOL = Symbol.for("cdk-nextjs.use-cache.tag-manifest");
|
|
11
|
+
/**
|
|
12
|
+
* Render a page, after waiting for the revalidation log query if the instance
|
|
13
|
+
* has fallen behind on it (sat idle, or thawed): here, before Next.js starts
|
|
14
|
+
* rendering, rather than inside the first `'use cache'` lookup, where the wait
|
|
15
|
+
* cuts a staged render's static stage short. Just `render` until a cache
|
|
16
|
+
* handler first creates the manifest, and then there is nothing to catch up
|
|
17
|
+
* on. Rejects only as `render` does.
|
|
18
|
+
*/
|
|
19
|
+
async function catchUpTags(render) {
|
|
20
|
+
const global = globalThis;
|
|
21
|
+
const manifest = global[exports.TAG_MANIFEST_SYMBOL];
|
|
22
|
+
return manifest ? manifest.catchUp(render) : render();
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLW1hbmlmZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bnRpbWUvdGFnLW1hbmlmZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW1CQSxrQ0FNQztBQXZCRDs7OztHQUlHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUMzQyxtQ0FBbUMsQ0FDcEMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSSxLQUFLLFVBQVUsV0FBVyxDQUFJLE1BQXdCO0lBQzNELE1BQU0sTUFBTSxHQUFHLFVBRWQsQ0FBQztJQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQywyQkFBbUIsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUcmFja2VkVGFnTWFya2VycyB9IGZyb20gXCIuLi9hZGFwdGVyL2F3cy1jYWNoZS1zdG9yZVwiO1xuXG4vKipcbiAqIFRoZSBrZXkgdGhlIHByb2Nlc3MncyB0YWcgbWFuaWZlc3QgKGBUcmFja2VkVGFnTWFya2Vyc2AsIGZyb20gdGhlIGFkYXB0ZXInc1xuICogYHNoYXJlZFRhZ01hbmlmZXN0YCkgaXMga2VwdCB1bmRlciBvbiBgZ2xvYmFsVGhpc2AsIHNpbmNlIHRoZSBydW50aW1lIGFuZCB0aGVcbiAqIGNhY2hlIGhhbmRsZXJzIGFyZSBzZXBhcmF0ZSBidW5kbGVzLlxuICovXG5leHBvcnQgY29uc3QgVEFHX01BTklGRVNUX1NZTUJPTCA9IFN5bWJvbC5mb3IoXG4gIFwiY2RrLW5leHRqcy51c2UtY2FjaGUudGFnLW1hbmlmZXN0XCIsXG4pO1xuXG4vKipcbiAqIFJlbmRlciBhIHBhZ2UsIGFmdGVyIHdhaXRpbmcgZm9yIHRoZSByZXZhbGlkYXRpb24gbG9nIHF1ZXJ5IGlmIHRoZSBpbnN0YW5jZVxuICogaGFzIGZhbGxlbiBiZWhpbmQgb24gaXQgKHNhdCBpZGxlLCBvciB0aGF3ZWQpOiBoZXJlLCBiZWZvcmUgTmV4dC5qcyBzdGFydHNcbiAqIHJlbmRlcmluZywgcmF0aGVyIHRoYW4gaW5zaWRlIHRoZSBmaXJzdCBgJ3VzZSBjYWNoZSdgIGxvb2t1cCwgd2hlcmUgdGhlIHdhaXRcbiAqIGN1dHMgYSBzdGFnZWQgcmVuZGVyJ3Mgc3RhdGljIHN0YWdlIHNob3J0LiBKdXN0IGByZW5kZXJgIHVudGlsIGEgY2FjaGVcbiAqIGhhbmRsZXIgZmlyc3QgY3JlYXRlcyB0aGUgbWFuaWZlc3QsIGFuZCB0aGVuIHRoZXJlIGlzIG5vdGhpbmcgdG8gY2F0Y2ggdXBcbiAqIG9uLiBSZWplY3RzIG9ubHkgYXMgYHJlbmRlcmAgZG9lcy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNhdGNoVXBUYWdzPFQ+KHJlbmRlcjogKCkgPT4gUHJvbWlzZTxUPik6IFByb21pc2U8VD4ge1xuICBjb25zdCBnbG9iYWwgPSBnbG9iYWxUaGlzIGFzIHtcbiAgICBbVEFHX01BTklGRVNUX1NZTUJPTF0/OiBQaWNrPFRyYWNrZWRUYWdNYXJrZXJzLCBcImNhdGNoVXBcIj47XG4gIH07XG4gIGNvbnN0IG1hbmlmZXN0ID0gZ2xvYmFsW1RBR19NQU5JRkVTVF9TWU1CT0xdO1xuICByZXR1cm4gbWFuaWZlc3QgPyBtYW5pZmVzdC5jYXRjaFVwKHJlbmRlcikgOiByZW5kZXIoKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tag_manifest_1 = require("./tag-manifest");
|
|
4
|
+
const global = globalThis;
|
|
5
|
+
afterEach(() => {
|
|
6
|
+
delete global[tag_manifest_1.TAG_MANIFEST_SYMBOL];
|
|
7
|
+
});
|
|
8
|
+
describe("catchUpTags", () => {
|
|
9
|
+
it("just renders before a cache handler creates the manifest", async () => {
|
|
10
|
+
await expect((0, tag_manifest_1.catchUpTags)(async () => "page")).resolves.toBe("page");
|
|
11
|
+
});
|
|
12
|
+
it("renders through the manifest the cache handlers share", async () => {
|
|
13
|
+
const manifest = {
|
|
14
|
+
catchUp: jest.fn(async (render) => render()),
|
|
15
|
+
};
|
|
16
|
+
global[tag_manifest_1.TAG_MANIFEST_SYMBOL] = manifest;
|
|
17
|
+
await expect((0, tag_manifest_1.catchUpTags)(async () => "page")).resolves.toBe("page");
|
|
18
|
+
expect(manifest.catchUp).toHaveBeenCalledTimes(1);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLW1hbmlmZXN0LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS90YWctbWFuaWZlc3QudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlEQUFrRTtBQUVsRSxNQUFNLE1BQU0sR0FBRyxVQUFpRCxDQUFDO0FBRWpFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7SUFDYixPQUFPLE1BQU0sQ0FBQyxrQ0FBbUIsQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7SUFDM0IsRUFBRSxDQUFDLDBEQUEwRCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3hFLE1BQU0sTUFBTSxDQUFDLElBQUEsMEJBQVcsRUFBQyxLQUFLLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx1REFBdUQsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNyRSxNQUFNLFFBQVEsR0FBRztZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUE2QixFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNwRSxDQUFDO1FBQ0YsTUFBTSxDQUFDLGtDQUFtQixDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ3ZDLE1BQU0sTUFBTSxDQUFDLElBQUEsMEJBQVcsRUFBQyxLQUFLLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYXRjaFVwVGFncywgVEFHX01BTklGRVNUX1NZTUJPTCB9IGZyb20gXCIuL3RhZy1tYW5pZmVzdFwiO1xuXG5jb25zdCBnbG9iYWwgPSBnbG9iYWxUaGlzIGFzIHsgW1RBR19NQU5JRkVTVF9TWU1CT0xdPzogdW5rbm93biB9O1xuXG5hZnRlckVhY2goKCkgPT4ge1xuICBkZWxldGUgZ2xvYmFsW1RBR19NQU5JRkVTVF9TWU1CT0xdO1xufSk7XG5cbmRlc2NyaWJlKFwiY2F0Y2hVcFRhZ3NcIiwgKCkgPT4ge1xuICBpdChcImp1c3QgcmVuZGVycyBiZWZvcmUgYSBjYWNoZSBoYW5kbGVyIGNyZWF0ZXMgdGhlIG1hbmlmZXN0XCIsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBleHBlY3QoY2F0Y2hVcFRhZ3MoYXN5bmMgKCkgPT4gXCJwYWdlXCIpKS5yZXNvbHZlcy50b0JlKFwicGFnZVwiKTtcbiAgfSk7XG5cbiAgaXQoXCJyZW5kZXJzIHRocm91Z2ggdGhlIG1hbmlmZXN0IHRoZSBjYWNoZSBoYW5kbGVycyBzaGFyZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbWFuaWZlc3QgPSB7XG4gICAgICBjYXRjaFVwOiBqZXN0LmZuKGFzeW5jIChyZW5kZXI6ICgpID0+IFByb21pc2U8c3RyaW5nPikgPT4gcmVuZGVyKCkpLFxuICAgIH07XG4gICAgZ2xvYmFsW1RBR19NQU5JRkVTVF9TWU1CT0xdID0gbWFuaWZlc3Q7XG4gICAgYXdhaXQgZXhwZWN0KGNhdGNoVXBUYWdzKGFzeW5jICgpID0+IFwicGFnZVwiKSkucmVzb2x2ZXMudG9CZShcInBhZ2VcIik7XG4gICAgZXhwZWN0KG1hbmlmZXN0LmNhdGNoVXApLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The build ID cdk-nextjs stores a deployment under. Pure, so the adapter can
|
|
3
|
+
* check it at build time against the same format the constructs deploy with.
|
|
4
|
+
*/
|
|
5
|
+
/** {@link NextjsBuild.buildId}: Next.js's build ID, suffixed with the app's `deploymentId`. */
|
|
6
|
+
export declare function deploymentBuildId(manifest: {
|
|
7
|
+
readonly buildId: string;
|
|
8
|
+
readonly config: {
|
|
9
|
+
readonly deploymentId: string;
|
|
10
|
+
};
|
|
11
|
+
}): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The build ID cdk-nextjs stores a deployment under. Pure, so the adapter can
|
|
4
|
+
* check it at build time against the same format the constructs deploy with.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.deploymentBuildId = deploymentBuildId;
|
|
8
|
+
/** {@link NextjsBuild.buildId}: Next.js's build ID, suffixed with the app's `deploymentId`. */
|
|
9
|
+
function deploymentBuildId(manifest) {
|
|
10
|
+
const { deploymentId } = manifest.config;
|
|
11
|
+
return deploymentId
|
|
12
|
+
? `${manifest.buildId}-${deploymentId}`
|
|
13
|
+
: manifest.buildId;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudC1idWlsZC1pZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9kZXBsb3ltZW50LWJ1aWxkLWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7O0FBR0gsOENBUUM7QUFURCwrRkFBK0Y7QUFDL0YsU0FBZ0IsaUJBQWlCLENBQUMsUUFHakM7SUFDQyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUN6QyxPQUFPLFlBQVk7UUFDakIsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxZQUFZLEVBQUU7UUFDdkMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGJ1aWxkIElEIGNkay1uZXh0anMgc3RvcmVzIGEgZGVwbG95bWVudCB1bmRlci4gUHVyZSwgc28gdGhlIGFkYXB0ZXIgY2FuXG4gKiBjaGVjayBpdCBhdCBidWlsZCB0aW1lIGFnYWluc3QgdGhlIHNhbWUgZm9ybWF0IHRoZSBjb25zdHJ1Y3RzIGRlcGxveSB3aXRoLlxuICovXG5cbi8qKiB7QGxpbmsgTmV4dGpzQnVpbGQuYnVpbGRJZH06IE5leHQuanMncyBidWlsZCBJRCwgc3VmZml4ZWQgd2l0aCB0aGUgYXBwJ3MgYGRlcGxveW1lbnRJZGAuICovXG5leHBvcnQgZnVuY3Rpb24gZGVwbG95bWVudEJ1aWxkSWQobWFuaWZlc3Q6IHtcbiAgcmVhZG9ubHkgYnVpbGRJZDogc3RyaW5nO1xuICByZWFkb25seSBjb25maWc6IHsgcmVhZG9ubHkgZGVwbG95bWVudElkOiBzdHJpbmcgfTtcbn0pOiBzdHJpbmcge1xuICBjb25zdCB7IGRlcGxveW1lbnRJZCB9ID0gbWFuaWZlc3QuY29uZmlnO1xuICByZXR1cm4gZGVwbG95bWVudElkXG4gICAgPyBgJHttYW5pZmVzdC5idWlsZElkfS0ke2RlcGxveW1lbnRJZH1gXG4gICAgOiBtYW5pZmVzdC5idWlsZElkO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"@aws-sdk/client-ssm": "^3.1141.0",
|
|
22
22
|
"@aws-sdk/lib-storage": "^3.1141.0",
|
|
23
23
|
"@mrgrain/jsii-struct-builder": "^0.7.64",
|
|
24
|
-
"@next/routing": "16.3.
|
|
24
|
+
"@next/routing": "16.3.8",
|
|
25
25
|
"@smithy/signature-v4": "^2.3.0",
|
|
26
26
|
"@types/aws-lambda": "^8.10.163",
|
|
27
27
|
"@types/debug": "^4.1.13",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"jsii-pacmak": "^1.140.0",
|
|
52
52
|
"jsii-rosetta": "~5.9.67",
|
|
53
53
|
"mime-types": "^2.1.35",
|
|
54
|
-
"next": "^16.3.
|
|
54
|
+
"next": "^16.3.8",
|
|
55
55
|
"prettier": "^3.9.9",
|
|
56
56
|
"projen": "^0.101.6",
|
|
57
57
|
"ts-jest": "^29.4.14",
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"publishConfig": {
|
|
85
85
|
"access": "public"
|
|
86
86
|
},
|
|
87
|
-
"version": "0.7.
|
|
87
|
+
"version": "0.7.7",
|
|
88
88
|
"jest": {
|
|
89
89
|
"coverageProvider": "v8",
|
|
90
90
|
"testPathIgnorePatterns": [
|
|
@@ -449,7 +449,7 @@ cdk-nextjs rejects any build output whose runtime is not `nodejs`
|
|
|
449
449
|
|
|
450
450
|
That is a product limitation and a deliberate one: the edge runtime is deprecated
|
|
451
451
|
in Next.js, and cdk-nextjs supports Next.js 16's Node-runtime `proxy.ts` instead.
|
|
452
|
-
|
|
452
|
+
933 of next.js's 1136 e2e files are edge-free, so it barely constrains widening
|
|
453
453
|
the list - and `scripts/e2e-harness/screen.mjs` applies this screen and the three
|
|
454
454
|
below for you, recording the funnel in the manifest's `screening` block:
|
|
455
455
|
|