From 3ffc938ee463866692b1b5919566d9ea18438693 Mon Sep 17 00:00:00 2001 From: Daniel Phang Date: Sat, 31 Jul 2021 08:27:17 -0700 Subject: [PATCH] feat(lambda-at-edge): detect and copy next-i18next files (#1472) --- packages/libs/lambda-at-edge/src/build.ts | 15 ++++ .../src/build/third-party/README.md | 3 + .../src/build/third-party/integration-base.ts | 25 ++++++ .../src/build/third-party/next-i18next.ts | 32 +++++++ ...uild-with-third-party-integrations.test.ts | 83 +++++++++++++++++++ .../.next/BUILD_ID | 1 + .../.next/cache/placeholder.txt | 1 + .../.next/images-manifest.json | 28 +++++++ .../.next/prerender-manifest.json | 16 ++++ .../.next/routes-manifest.json | 1 + .../.next/serverless/chunks/1.js | 0 .../.next/serverless/pages-manifest.json | 19 +++++ .../.next/serverless/pages/_error.js | 0 .../.next/serverless/pages/about.html | 0 .../.next/serverless/pages/api/customers.js | 0 .../serverless/pages/api/customers/[id].js | 0 .../serverless/pages/api/customers/new.js | 0 .../.next/serverless/pages/blog.js | 0 .../.next/serverless/pages/blog.json | 0 .../.next/serverless/pages/contact.html | 0 .../.next/serverless/pages/contact.js | 0 .../.next/serverless/pages/contact.json | 0 .../pages/customers/[...catchAll].js | 0 .../serverless/pages/customers/[post].js | 0 .../.next/serverless/pages/index.html | 0 .../.next/serverless/pages/index.js | 0 .../.next/serverless/pages/index.json | 0 .../pages/products/[[...optionalCatchAll]].js | 0 .../.next/serverless/pages/terms.html | 0 .../.next/static/chunks/chunk1.js | 0 .../next-i18next.config.js | 9 ++ .../next.config.js | 1 + .../package.json | 5 ++ .../public/favicon.ico | 0 .../public/locales/de/common.json | 6 ++ .../public/locales/en/common.json | 6 ++ .../public/sub/image.png | 0 .../public/sw.js | 0 .../static/donotdelete.txt | 0 .../testFile.js | 1 + 40 files changed, 252 insertions(+) create mode 100644 packages/libs/lambda-at-edge/src/build/third-party/README.md create mode 100644 packages/libs/lambda-at-edge/src/build/third-party/integration-base.ts create mode 100644 packages/libs/lambda-at-edge/src/build/third-party/next-i18next.ts create mode 100644 packages/libs/lambda-at-edge/tests/build/build-with-third-party-integrations.test.ts create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/BUILD_ID create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/cache/placeholder.txt create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/images-manifest.json create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/prerender-manifest.json create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/routes-manifest.json create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/chunks/1.js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages-manifest.json create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/_error.js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/about.html create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/api/customers.js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/api/customers/[id].js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/api/customers/new.js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/blog.js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/blog.json create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/contact.html create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/contact.js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/contact.json create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/customers/[...catchAll].js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/customers/[post].js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/index.html create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/index.js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/index.json create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/products/[[...optionalCatchAll]].js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/terms.html create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/static/chunks/chunk1.js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/next-i18next.config.js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/next.config.js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/package.json create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/favicon.ico create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/locales/de/common.json create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/locales/en/common.json create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/sub/image.png create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/sw.js create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/static/donotdelete.txt create mode 100644 packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/testFile.js diff --git a/packages/libs/lambda-at-edge/src/build.ts b/packages/libs/lambda-at-edge/src/build.ts index cec7766bd0..9fc8de77bd 100644 --- a/packages/libs/lambda-at-edge/src/build.ts +++ b/packages/libs/lambda-at-edge/src/build.ts @@ -20,6 +20,7 @@ import { Item } from "klaw"; import { Job } from "@vercel/nft/out/node-file-trace"; import { prepareBuildManifests } from "@sls-next/core"; import { NextConfig } from "@sls-next/core/dist/build"; +import { NextI18nextIntegration } from "./build/third-party/next-i18next"; export const DEFAULT_LAMBDA_CODE_DIR = "default-lambda"; export const API_LAMBDA_CODE_DIR = "api-lambda"; @@ -331,6 +332,9 @@ class Builder { this.processAndCopyRoutesManifest( join(this.dotNextDir, "routes-manifest.json"), join(this.outputDir, DEFAULT_LAMBDA_CODE_DIR, "routes-manifest.json") + ), + this.runThirdPartyIntegrations( + join(this.outputDir, DEFAULT_LAMBDA_CODE_DIR) ) ]); } @@ -785,6 +789,17 @@ class Builder { // Copy static assets to .serverless_nextjs directory await this.buildStaticAssets(defaultBuildManifest, routesManifest); } + + /** + * Run additional integrations for third-party libraries such as next-i18next. + * These are usually needed to add additional files into the lambda, etc. + * @param outputLambdaDir + */ + async runThirdPartyIntegrations(outputLambdaDir: string): Promise { + await Promise.all([ + new NextI18nextIntegration(this.nextConfigDir, outputLambdaDir).execute() + ]); + } } export default Builder; diff --git a/packages/libs/lambda-at-edge/src/build/third-party/README.md b/packages/libs/lambda-at-edge/src/build/third-party/README.md new file mode 100644 index 0000000000..a2b10dfa3c --- /dev/null +++ b/packages/libs/lambda-at-edge/src/build/third-party/README.md @@ -0,0 +1,3 @@ +## Third party integrations + +This will support common third-party integrations such as next-i18next. The integrations here are meant to auto-detect what your project is using and copy the appropriate files to the build artifacts. diff --git a/packages/libs/lambda-at-edge/src/build/third-party/integration-base.ts b/packages/libs/lambda-at-edge/src/build/third-party/integration-base.ts new file mode 100644 index 0000000000..fd9a39b98d --- /dev/null +++ b/packages/libs/lambda-at-edge/src/build/third-party/integration-base.ts @@ -0,0 +1,25 @@ +import { join } from "path"; +import fse from "fs-extra"; + +export abstract class ThirdPartyIntegrationBase { + nextConfigDir: string; + outputLambdaDir: string; + + constructor(nextConfigDir: string, outputLambdaDir: string) { + this.nextConfigDir = nextConfigDir; + this.outputLambdaDir = outputLambdaDir; + } + + abstract execute(): void; + + async isPackagePresent(name: string): Promise { + const packageJsonPath = join(this.nextConfigDir, "package.json"); + + if (await fse.pathExists(packageJsonPath)) { + const packageJson = await fse.readJSON(packageJsonPath); + return !!packageJson.dependencies[name]; + } + + return false; + } +} diff --git a/packages/libs/lambda-at-edge/src/build/third-party/next-i18next.ts b/packages/libs/lambda-at-edge/src/build/third-party/next-i18next.ts new file mode 100644 index 0000000000..9098bd7b21 --- /dev/null +++ b/packages/libs/lambda-at-edge/src/build/third-party/next-i18next.ts @@ -0,0 +1,32 @@ +import fse from "fs-extra"; +import { join } from "path"; +import { ThirdPartyIntegrationBase } from "./integration-base"; + +export class NextI18nextIntegration extends ThirdPartyIntegrationBase { + /** + * This will copy all next-i18next files as needed to a lambda directory. + */ + async execute(): Promise { + if (await this.isPackagePresent("next-i18next")) { + const localeSrc = join(this.nextConfigDir, "public", "locales"); + const localeDest = join(this.outputLambdaDir, "public", "locales"); + + if (await fse.pathExists(localeSrc)) { + await fse.copy(localeSrc, localeDest, { recursive: true }); + } + + const nextI18nextConfigSrc = join( + this.nextConfigDir, + "next-i18next.config.js" + ); + const nextI18nextConfigDest = join( + this.outputLambdaDir, + "next-i18next.config.js" + ); + + if (await fse.pathExists(nextI18nextConfigSrc)) { + await fse.copy(nextI18nextConfigSrc, nextI18nextConfigDest); + } + } + } +} diff --git a/packages/libs/lambda-at-edge/tests/build/build-with-third-party-integrations.test.ts b/packages/libs/lambda-at-edge/tests/build/build-with-third-party-integrations.test.ts new file mode 100644 index 0000000000..a6f5b23fda --- /dev/null +++ b/packages/libs/lambda-at-edge/tests/build/build-with-third-party-integrations.test.ts @@ -0,0 +1,83 @@ +import { join } from "path"; +import fse from "fs-extra"; +import execa from "execa"; +import Builder, { + DEFAULT_LAMBDA_CODE_DIR, + API_LAMBDA_CODE_DIR, + IMAGE_LAMBDA_CODE_DIR +} from "../../src/build"; +import { cleanupDir } from "../test-utils"; +import { + OriginRequestDefaultHandlerManifest, + OriginRequestApiHandlerManifest, + OriginRequestImageHandlerManifest +} from "../../src/types"; + +jest.mock("execa"); + +describe("Builder Tests (with third party integrations)", () => { + let fseRemoveSpy: jest.SpyInstance; + let fseEmptyDirSpy: jest.SpyInstance; + let defaultBuildManifest: OriginRequestDefaultHandlerManifest; + let apiBuildManifest: OriginRequestApiHandlerManifest; + let imageBuildManifest: OriginRequestImageHandlerManifest; + + const fixturePath = join( + __dirname, + "./simple-app-fixture-third-party-integrations" + ); + const outputDir = join(fixturePath, ".test_sls_next_output"); + + describe("Regular build", () => { + beforeEach(async () => { + const mockExeca = execa as jest.Mock; + mockExeca.mockResolvedValueOnce(); + + fseRemoveSpy = jest.spyOn(fse, "remove").mockImplementation(() => { + return; + }); + fseEmptyDirSpy = jest.spyOn(fse, "emptyDir"); + + const builder = new Builder(fixturePath, outputDir, {}); + await builder.build(); + + defaultBuildManifest = await fse.readJSON( + join(outputDir, `${DEFAULT_LAMBDA_CODE_DIR}/manifest.json`) + ); + + apiBuildManifest = await fse.readJSON( + join(outputDir, `${API_LAMBDA_CODE_DIR}/manifest.json`) + ); + + imageBuildManifest = await fse.readJSON( + join(outputDir, `${IMAGE_LAMBDA_CODE_DIR}/manifest.json`) + ); + }); + + afterEach(() => { + fseEmptyDirSpy.mockRestore(); + fseRemoveSpy.mockRestore(); + //return cleanupDir(outputDir); + }); + + describe("Default Handler Third Party Files", () => { + it("next-i18next files are copied", async () => { + expect( + await fse.pathExists( + join( + outputDir, + `${DEFAULT_LAMBDA_CODE_DIR}`, + "next-i18next.config.js" + ) + ) + ).toBe(true); + + const localesFiles = await fse.readdir( + join(outputDir, `${DEFAULT_LAMBDA_CODE_DIR}`, "public", "locales") + ); + + expect(localesFiles).toEqual(expect.arrayContaining(["de", "en"])); + }); + }); + }); +}); diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/BUILD_ID b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/BUILD_ID new file mode 100644 index 0000000000..5ad897a7a0 --- /dev/null +++ b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/BUILD_ID @@ -0,0 +1 @@ +test-build-id \ No newline at end of file diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/cache/placeholder.txt b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/cache/placeholder.txt new file mode 100644 index 0000000000..47e38a2e01 --- /dev/null +++ b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/cache/placeholder.txt @@ -0,0 +1 @@ +Having a cache/ folder allows to test the cleanup of .next/ except for cache/ for faster builds diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/images-manifest.json b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/images-manifest.json new file mode 100644 index 0000000000..22ea5d8852 --- /dev/null +++ b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/images-manifest.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "images": { + "deviceSizes": [640, 750, 828, 1080, 1200, 1920, 2048, 3840], + "imageSizes": [16, 32, 48, 64, 96, 128, 256, 384], + "domains": [], + "path": "/_next/image", + "loader": "default", + "sizes": [ + 640, + 750, + 828, + 1080, + 1200, + 1920, + 2048, + 3840, + 16, + 32, + 48, + 64, + 96, + 128, + 256, + 384 + ] + } +} diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/prerender-manifest.json b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/prerender-manifest.json new file mode 100644 index 0000000000..86f2b5d943 --- /dev/null +++ b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/prerender-manifest.json @@ -0,0 +1,16 @@ +{ + "version": 2, + "routes": { + "/": { + "initialRevalidateSeconds": false, + "srcRoute": null, + "dataRoute": "/_next/data/zsWqBqLjpgRmswfQomanp/index.json" + }, + "/contact": { + "initialRevalidateSeconds": false, + "srcRoute": null, + "dataRoute": "/_next/data/zsWqBqLjpgRmswfQomanp/contact.json" + } + }, + "dynamicRoutes": {} +} diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/routes-manifest.json b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/routes-manifest.json new file mode 100644 index 0000000000..46a422f819 --- /dev/null +++ b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/routes-manifest.json @@ -0,0 +1 @@ +{"version":1,"pages404":true,"basePath":"","redirects":[],"rewrites":[],"headers":[],"dynamicRoutes":[]} diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/chunks/1.js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/chunks/1.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages-manifest.json b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages-manifest.json new file mode 100644 index 0000000000..6be44000ec --- /dev/null +++ b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages-manifest.json @@ -0,0 +1,19 @@ +{ + "/[root]": "pages/[root].js", + "/customers/[customer]": "pages/customers/[customer].js", + "/customers/[customer]/[post]": "pages/customers/[customer]/[post].js", + "/customers/new": "pages/customers/new.js", + "/customers/[customer]/profile": "pages/customers/[customer]/profile.js", + "/customers/[...catchAll]": "pages/customers/[...catchAll].js", + "/products/[[...optionalCatchAll]]": "pages/products/[[...optionalCatchAll]].js", + "/api/customers": "pages/api/customers.js", + "/api/customers/[id]": "pages/api/customers/[id].js", + "/api/customers/new": "pages/api/customers/new.js", + "/terms": "pages/terms.html", + "/about": "pages/about.html", + "/blog/[post]": "pages/blog/[post].html", + "/": "pages/index.js", + "/_app": "pages/_app.js", + "/_document": "pages/_document.js", + "/404": "pages/404.html" +} diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/_error.js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/_error.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/about.html b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/about.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/api/customers.js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/api/customers.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/api/customers/[id].js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/api/customers/[id].js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/api/customers/new.js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/api/customers/new.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/blog.js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/blog.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/blog.json b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/blog.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/contact.html b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/contact.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/contact.js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/contact.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/contact.json b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/contact.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/customers/[...catchAll].js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/customers/[...catchAll].js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/customers/[post].js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/customers/[post].js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/index.html b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/index.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/index.js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/index.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/index.json b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/index.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/products/[[...optionalCatchAll]].js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/products/[[...optionalCatchAll]].js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/terms.html b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/serverless/pages/terms.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/static/chunks/chunk1.js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/.next/static/chunks/chunk1.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/next-i18next.config.js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/next-i18next.config.js new file mode 100644 index 0000000000..f81e9fe410 --- /dev/null +++ b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/next-i18next.config.js @@ -0,0 +1,9 @@ +const path = require("path"); + +module.exports = { + i18n: { + defaultLocale: "en", + locales: ["en", "de"], + localePath: path.resolve("./public/locales") + } +}; diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/next.config.js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/next.config.js new file mode 100644 index 0000000000..16d5af9e9e --- /dev/null +++ b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/next.config.js @@ -0,0 +1 @@ +module.exports = { target: "serverless" }; diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/package.json b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/package.json new file mode 100644 index 0000000000..b92f7f4334 --- /dev/null +++ b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "next-i18next": "^8.5.5" + } +} diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/favicon.ico b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/favicon.ico new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/locales/de/common.json b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/locales/de/common.json new file mode 100644 index 0000000000..2f2edc4334 --- /dev/null +++ b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/locales/de/common.json @@ -0,0 +1,6 @@ +{ + "button": { + "login": "Login", + "register": "Register" + } +} diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/locales/en/common.json b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/locales/en/common.json new file mode 100644 index 0000000000..2f2edc4334 --- /dev/null +++ b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/locales/en/common.json @@ -0,0 +1,6 @@ +{ + "button": { + "login": "Login", + "register": "Register" + } +} diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/sub/image.png b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/sub/image.png new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/sw.js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/public/sw.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/static/donotdelete.txt b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/static/donotdelete.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/testFile.js b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/testFile.js new file mode 100644 index 0000000000..2d6dd2a88e --- /dev/null +++ b/packages/libs/lambda-at-edge/tests/build/simple-app-fixture-third-party-integrations/testFile.js @@ -0,0 +1 @@ +// Test handler file to check if copied