@goldstack/template-nextjs 0.5.91 → 0.5.92

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.
@@ -0,0 +1,9 @@
1
+ import type { DeploymentState } from '@goldstack/infra';
2
+ import type { NextjsDeployment } from './types/NextJsPackage';
3
+ interface DeployFunctionParams {
4
+ deployment: NextjsDeployment;
5
+ deploymentState: DeploymentState;
6
+ }
7
+ export declare const deployCloudFrontFunction: (params: DeployFunctionParams) => Promise<void>;
8
+ export {};
9
+ //# sourceMappingURL=cloudFrontFunctionDeploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudFrontFunctionDeploy.d.ts","sourceRoot":"","sources":["../../src/cloudFrontFunctionDeploy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,UAAU,oBAAoB;IAC5B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,eAAO,MAAM,wBAAwB,GAAU,QAAQ,oBAAoB,KAAG,OAAO,CAAC,IAAI,CA6FzF,CAAC"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.deployCloudFrontFunction = void 0;
7
+ const infra_aws_1 = require("@goldstack/infra-aws");
8
+ const utils_aws_cli_1 = require("@goldstack/utils-aws-cli");
9
+ const utils_sh_1 = require("@goldstack/utils-sh");
10
+ const glob_1 = require("glob");
11
+ const path_1 = __importDefault(require("path"));
12
+ const cloudFrontFunctionPackage_1 = require("./cloudFrontFunctionPackage");
13
+ const deployCloudFrontFunction = async (params) => {
14
+ var _a, _b;
15
+ const functionSourceDir = './src/utils/routing/';
16
+ const functionCompiledDir = './dist/src/utils/routing/';
17
+ const functionPackageDir = './dist/cloudFrontFunction/';
18
+ // Getting the latest manifest containing Next.js dynamic routes
19
+ const routesManifest = JSON.parse((0, utils_sh_1.read)('./.next/routes-manifest.json'));
20
+ // Adding in statically rendered pages
21
+ const dynamicRoutes = routesManifest.dynamicRoutes;
22
+ const htmlPagePaths = await (0, glob_1.glob)('webDist/**/*.html');
23
+ const staticRoutes = htmlPagePaths.map((match) => {
24
+ const pagePath = path_1.default.relative('webDist', match).replace(/\.html$/, '');
25
+ return {
26
+ page: `/${pagePath}`,
27
+ regex: `^/${pagePath.replace(/\\/g, '\\\\').replace(/\//g, '\\/')}$`,
28
+ };
29
+ });
30
+ routesManifest.dynamicRoutes = [...staticRoutes, ...dynamicRoutes];
31
+ routesManifest.staticRoutes = staticRoutes;
32
+ // Making sure there are no linting errors with copied file
33
+ await (0, utils_sh_1.rmSafe)(`${functionSourceDir}routes-manifest.json`);
34
+ (0, utils_sh_1.write)(JSON.stringify(routesManifest, null, 2), `${functionSourceDir}routes-manifest.json`);
35
+ await (0, utils_sh_1.rmSafe)(`${functionCompiledDir}routes-manifest.json`);
36
+ (0, utils_sh_1.cp)('-f', `${functionSourceDir}routes-manifest.json`, `${functionCompiledDir}routes-manifest.json`);
37
+ // Package source for CloudFront Functions runtime
38
+ await (0, utils_sh_1.rmSafe)(functionPackageDir);
39
+ (0, utils_sh_1.mkdir)('-p', functionPackageDir);
40
+ await (0, cloudFrontFunctionPackage_1.packageCloudFrontFunction)({
41
+ sourceFile: `${functionCompiledDir}lambda.js`,
42
+ destFile: `${functionPackageDir}function.js`,
43
+ });
44
+ // Deploy the function code via CloudFront API
45
+ // Since Terraform ignores changes to the function code, we can update it here
46
+ const functionName = (_b = (_a = params.deploymentState.terraform) === null || _a === void 0 ? void 0 : _a.routing_function_name) === null || _b === void 0 ? void 0 : _b.value;
47
+ if (!functionName) {
48
+ throw new Error('CloudFront routing function name not found in deployment state. Ensure Terraform outputs are properly loaded.');
49
+ }
50
+ const credentials = await (0, infra_aws_1.getAWSUser)(params.deployment.awsUser);
51
+ // Get ETag for update - function must exist (created by Terraform)
52
+ let eTag = '';
53
+ try {
54
+ const describeResult = await (0, utils_aws_cli_1.awsCli)({
55
+ credentials,
56
+ region: 'us-east-1',
57
+ command: `cloudfront describe-function --name ${functionName}`,
58
+ options: { silent: true },
59
+ });
60
+ const describeData = JSON.parse(describeResult);
61
+ eTag = describeData.ETag;
62
+ }
63
+ catch (error) {
64
+ throw new Error(`CloudFront function '${functionName}' does not exist. Please ensure Terraform infrastructure is set up first.`);
65
+ }
66
+ try {
67
+ // Update the existing function
68
+ const updateResult = await (0, utils_aws_cli_1.awsCli)({
69
+ credentials,
70
+ region: 'us-east-1',
71
+ command: `cloudfront update-function --name ${functionName} --function-config Comment="Next.js routing function",Runtime="cloudfront-js-2.0" --function-code fileb://${functionPackageDir}function.js --if-match "${eTag}"`,
72
+ options: { silent: true },
73
+ });
74
+ const updateData = JSON.parse(updateResult);
75
+ const updatedETag = updateData.ETag;
76
+ // Publish the updated function
77
+ await (0, utils_aws_cli_1.awsCli)({
78
+ credentials,
79
+ region: 'us-east-1',
80
+ command: `cloudfront publish-function --name ${functionName} --if-match "${updatedETag}"`,
81
+ options: { silent: true },
82
+ });
83
+ }
84
+ catch (error) {
85
+ console.error(`Failed to update or publish CloudFront function '${functionName}':`, error);
86
+ throw new Error(`Failed to update or publish CloudFront function '${functionName}'. Please check AWS permissions and function status.`);
87
+ }
88
+ };
89
+ exports.deployCloudFrontFunction = deployCloudFrontFunction;
90
+ //# sourceMappingURL=cloudFrontFunctionDeploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudFrontFunctionDeploy.js","sourceRoot":"","sources":["../../src/cloudFrontFunctionDeploy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface PackageCloudFrontFunctionParams {
2
+ sourceFile: string;
3
+ destFile: string;
4
+ }
5
+ export declare const packageCloudFrontFunction: (params: PackageCloudFrontFunctionParams) => Promise<void>;
6
+ //# sourceMappingURL=cloudFrontFunctionPackage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudFrontFunctionPackage.d.ts","sourceRoot":"","sources":["../../src/cloudFrontFunctionPackage.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,+BAA+B;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,yBAAyB,GACpC,QAAQ,+BAA+B,KACtC,OAAO,CAAC,IAAI,CAuCd,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.packageCloudFrontFunction = void 0;
7
+ const utils_sh_1 = require("@goldstack/utils-sh");
8
+ const esbuild_1 = require("esbuild");
9
+ const path_1 = __importDefault(require("path"));
10
+ const packageCloudFrontFunction = async (params) => {
11
+ (0, utils_sh_1.assertFileExists)(params.sourceFile);
12
+ // config via https://github.com/evanw/esbuild/issues/1832#issuecomment-1404910577
13
+ const res = await (0, esbuild_1.build)({
14
+ outfile: params.destFile,
15
+ entryPoints: [params.sourceFile],
16
+ minify: false,
17
+ minifyIdentifiers: false,
18
+ format: 'cjs',
19
+ banner: {
20
+ js: 'var module = {}; var exports = {};',
21
+ },
22
+ treeShaking: false,
23
+ // legalComments: 'none',
24
+ bundle: true,
25
+ target: 'es5',
26
+ logLevel: 'info',
27
+ supported: {
28
+ 'const-and-let': true,
29
+ 'exponent-operator': true,
30
+ 'template-literal': true,
31
+ arrow: true,
32
+ 'rest-argument': true,
33
+ 'regexp-named-capture-groups': true,
34
+ 'async-await': true,
35
+ 'unicode-escapes': true,
36
+ },
37
+ // plugins: [CloudFrontFunctionsPlugin({ runtimeVersion: 2 })],
38
+ // loader: { '.json': 'text' },
39
+ });
40
+ if (res.errors && res.errors.length > 0) {
41
+ throw new Error(`Build errors for CloudFront function ${res.errors.map((er) => er.text).join(',')}`);
42
+ }
43
+ (0, utils_sh_1.assertFileExists)(path_1.default.resolve(params.destFile));
44
+ };
45
+ exports.packageCloudFrontFunction = packageCloudFrontFunction;
46
+ //# sourceMappingURL=cloudFrontFunctionPackage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudFrontFunctionPackage.js","sourceRoot":"","sources":["../../src/cloudFrontFunctionPackage.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA6D;AAC7D,qCAAgC;AAChC,gDAAwB;AAOjB,MAAM,yBAAyB,GAAG,KAAK,EAC5C,MAAuC,EACxB,EAAE;IACjB,IAAA,2BAAgB,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEpC,kFAAkF;IAClF,MAAM,GAAG,GAAG,MAAM,IAAA,eAAK,EAAC;QACtB,OAAO,EAAE,MAAM,CAAC,QAAQ;QACxB,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;QAChC,MAAM,EAAE,KAAK;QACb,iBAAiB,EAAE,KAAK;QACxB,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACN,EAAE,EAAE,oCAAoC;SACzC;QACD,WAAW,EAAE,KAAK;QAClB,yBAAyB;QACzB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE;YACT,eAAe,EAAE,IAAI;YACrB,mBAAmB,EAAE,IAAI;YACzB,kBAAkB,EAAE,IAAI;YACxB,KAAK,EAAE,IAAI;YACX,eAAe,EAAE,IAAI;YACrB,6BAA6B,EAAE,IAAI;YACnC,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,IAAI;SACxB;QACD,+DAA+D;QAC/D,+BAA+B;KAChC,CAAC,CAAC;IAEH,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,wCAAwC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACpF,CAAC;IACJ,CAAC;IAED,IAAA,2BAAgB,EAAC,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAzCW,QAAA,yBAAyB,6BAyCpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"templateNextjs.d.ts","sourceRoot":"","sources":["../../src/templateNextjs.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAoB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE7E,YAAY,EAAE,aAAa,EAAE,CAAC;AAU9B,eAAO,MAAM,GAAG,GAAU,MAAM,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAkFtD,CAAC"}
1
+ {"version":3,"file":"templateNextjs.d.ts","sourceRoot":"","sources":["../../src/templateNextjs.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAoB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE7E,YAAY,EAAE,aAAa,EAAE,CAAC;AAY9B,eAAO,MAAM,GAAG,GAAU,MAAM,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAsItD,CAAC"}
@@ -7,16 +7,19 @@ exports.run = void 0;
7
7
  const template_static_website_aws_1 = require("@goldstack/template-static-website-aws");
8
8
  const utils_cli_1 = require("@goldstack/utils-cli");
9
9
  const utils_log_1 = require("@goldstack/utils-log");
10
+ const utils_sh_1 = require("@goldstack/utils-sh");
10
11
  const infra_1 = require("@goldstack/infra");
11
12
  const utils_package_1 = require("@goldstack/utils-package");
12
13
  const utils_package_config_1 = require("@goldstack/utils-package-config");
13
14
  const utils_terraform_1 = require("@goldstack/utils-terraform");
14
15
  const yargs_1 = __importDefault(require("yargs"));
16
+ const cloudFrontFunctionDeploy_1 = require("./cloudFrontFunctionDeploy");
17
+ const cloudFrontFunctionPackage_1 = require("./cloudFrontFunctionPackage");
15
18
  const edgeLambdaDeploy_1 = require("./edgeLambdaDeploy");
16
19
  const nextjsEnvironment_1 = require("./nextjsEnvironment");
17
20
  const run = async (args) => {
18
21
  await (0, utils_cli_1.wrapCli)(async () => {
19
- const argv = await (0, utils_package_1.buildCli)({
22
+ const cliConfig = (0, utils_package_1.buildCli)({
20
23
  yargs: yargs_1.default,
21
24
  deployCommands: (0, utils_package_1.buildDeployCommands)(),
22
25
  infraCommands: (0, utils_terraform_1.infraCommands)(),
@@ -28,8 +31,27 @@ const run = async (args) => {
28
31
  demandOption: true,
29
32
  });
30
33
  })
31
- .help()
32
- .parse();
34
+ .command('package-cf-function <deployment>', 'Package the CloudFront function', () => {
35
+ return yargs_1.default.positional('deployment', {
36
+ type: 'string',
37
+ describe: 'Name of the deployment this command should be applied to',
38
+ demandOption: true,
39
+ });
40
+ })
41
+ .command('deploy-cf-function <deployment>', 'Deploy the CloudFront function', () => {
42
+ return yargs_1.default.positional('deployment', {
43
+ type: 'string',
44
+ describe: 'Name of the deployment this command should be applied to',
45
+ demandOption: true,
46
+ });
47
+ })
48
+ .option('cf-function', {
49
+ type: 'boolean',
50
+ describe: 'Use CloudFront Functions instead of Lambda@Edge for routing',
51
+ default: false,
52
+ })
53
+ .help();
54
+ const argv = await cliConfig.parse();
33
55
  const packageConfig = new utils_package_config_1.PackageConfig({
34
56
  packagePath: './',
35
57
  });
@@ -40,6 +62,27 @@ const run = async (args) => {
40
62
  await (0, nextjsEnvironment_1.setNextjsEnvironmentVariables)(packageConfig.getDeployment(opArgs[0]));
41
63
  return;
42
64
  }
65
+ if (command === 'package-cf-function') {
66
+ const deployment = packageConfig.getDeployment(opArgs[0]);
67
+ const functionCompiledDir = './dist/src/utils/routing/';
68
+ const functionPackageDir = './dist/cloudFrontFunction/';
69
+ await (0, utils_sh_1.rmSafe)(functionPackageDir);
70
+ (0, utils_sh_1.mkdir)('-p', functionPackageDir);
71
+ await (0, cloudFrontFunctionPackage_1.packageCloudFrontFunction)({
72
+ sourceFile: `${functionCompiledDir}lambda.js`,
73
+ destFile: `${functionPackageDir}function.js`,
74
+ });
75
+ return;
76
+ }
77
+ if (command === 'deploy-cf-function') {
78
+ const deployment = packageConfig.getDeployment(opArgs[0]);
79
+ const deploymentState = (0, infra_1.readDeploymentState)('./', deployment.name);
80
+ await (0, cloudFrontFunctionDeploy_1.deployCloudFrontFunction)({
81
+ deployment,
82
+ deploymentState,
83
+ });
84
+ return;
85
+ }
43
86
  if (command === 'infra') {
44
87
  const infraOperation = argv._[1];
45
88
  let targetVersion;
@@ -82,10 +125,18 @@ const run = async (args) => {
82
125
  await (0, template_static_website_aws_1.infraAwsStaticWebsiteCli)(config, params);
83
126
  const deployment = packageConfig.getDeployment(deploymentName);
84
127
  const deploymentState = (0, infra_1.readDeploymentState)('./', deployment.name);
85
- await (0, edgeLambdaDeploy_1.deployEdgeLambda)({
86
- deployment,
87
- deploymentState: deploymentState,
88
- });
128
+ if (argv['cf-function']) {
129
+ await (0, cloudFrontFunctionDeploy_1.deployCloudFrontFunction)({
130
+ deployment,
131
+ deploymentState: deploymentState,
132
+ });
133
+ }
134
+ else {
135
+ await (0, edgeLambdaDeploy_1.deployEdgeLambda)({
136
+ deployment,
137
+ deploymentState: deploymentState,
138
+ });
139
+ }
89
140
  return;
90
141
  }
91
142
  (0, utils_log_1.fatal)(`Unknown command: ${command}`);
@@ -1 +1 @@
1
- {"version":3,"file":"templateNextjs.js","sourceRoot":"","sources":["../../src/templateNextjs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templateNextjs.js","sourceRoot":"","sources":["../../src/templateNextjs.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goldstack/template-nextjs",
3
- "version": "0.5.91",
3
+ "version": "0.5.92",
4
4
  "description": "Building blocks for deploying Next.js applications to AWS using S3 and CloudFront",
5
5
  "keywords": [
6
6
  "goldstack",
@@ -51,7 +51,7 @@
51
51
  "@goldstack/infra-aws": "0.4.57",
52
52
  "@goldstack/template-static-website-aws": "0.5.79",
53
53
  "@goldstack/utils-aws-cli": "0.4.58",
54
- "@goldstack/utils-aws-lambda": "0.3.69",
54
+ "@goldstack/utils-aws-lambda": "0.3.70",
55
55
  "@goldstack/utils-cli": "0.3.31",
56
56
  "@goldstack/utils-config": "0.4.39",
57
57
  "@goldstack/utils-log": "0.3.33",