@goldstack/template-nextjs 0.5.89 → 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.
- package/dist/src/cloudFrontFunctionDeploy.d.ts +9 -0
- package/dist/src/cloudFrontFunctionDeploy.d.ts.map +1 -0
- package/dist/src/cloudFrontFunctionDeploy.js +90 -0
- package/dist/src/cloudFrontFunctionDeploy.js.map +1 -0
- package/dist/src/cloudFrontFunctionPackage.d.ts +6 -0
- package/dist/src/cloudFrontFunctionPackage.d.ts.map +1 -0
- package/dist/src/cloudFrontFunctionPackage.js +46 -0
- package/dist/src/cloudFrontFunctionPackage.js.map +1 -0
- package/dist/src/templateNextjs.d.ts.map +1 -1
- package/dist/src/templateNextjs.js +58 -7
- package/dist/src/templateNextjs.js.map +1 -1
- package/package.json +16 -17
|
@@ -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 @@
|
|
|
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":"
|
|
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
|
|
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
|
-
.
|
|
32
|
-
.
|
|
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
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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":";;;;;;AAAA,wFAGgD;AAChD,oDAA+C;AAC/C,oDAAmD;
|
|
1
|
+
{"version":3,"file":"templateNextjs.js","sourceRoot":"","sources":["../../src/templateNextjs.ts"],"names":[],"mappings":";;;;;;AAAA,wFAGgD;AAChD,oDAA+C;AAC/C,oDAAmD;AACnD,kDAAqE;AAKrE,4CAAuD;AACvD,4DAAyE;AACzE,0EAAgE;AAChE,gEAA2D;AAC3D,kDAA0B;AAC1B,yEAAsE;AACtE,2EAAwE;AACxE,yDAAsD;AACtD,2DAAoE;AAE7D,MAAM,GAAG,GAAG,KAAK,EAAE,IAAc,EAAiB,EAAE;IACzD,MAAM,IAAA,mBAAO,EAAC,KAAK,IAAI,EAAE;QACvB,MAAM,SAAS,GAAG,IAAA,wBAAQ,EAAC;YACzB,KAAK,EAAL,eAAK;YACL,cAAc,EAAE,IAAA,mCAAmB,GAAE;YACrC,aAAa,EAAE,IAAA,+BAAa,GAAE;SAC/B,CAAC;aACC,OAAO,CAAC,6BAA6B,EAAE,kCAAkC,EAAE,GAAG,EAAE;YAC/E,OAAO,eAAK,CAAC,UAAU,CAAC,YAAY,EAAE;gBACpC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,0DAA0D;gBACpE,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;QACL,CAAC,CAAC;aACD,OAAO,CAAC,kCAAkC,EAAE,iCAAiC,EAAE,GAAG,EAAE;YACnF,OAAO,eAAK,CAAC,UAAU,CAAC,YAAY,EAAE;gBACpC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,0DAA0D;gBACpE,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;QACL,CAAC,CAAC;aACD,OAAO,CAAC,iCAAiC,EAAE,gCAAgC,EAAE,GAAG,EAAE;YACjF,OAAO,eAAK,CAAC,UAAU,CAAC,YAAY,EAAE;gBACpC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,0DAA0D;gBACpE,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;QACL,CAAC,CAAC;aACD,MAAM,CAAC,aAAa,EAAE;YACrB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,6DAA6D;YACvE,OAAO,EAAE,KAAK;SACf,CAAC;aACD,IAAI,EAAE,CAAC;QAEV,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QAErC,MAAM,aAAa,GAAG,IAAI,oCAAa,CAAkC;YACvE,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;QAE/B,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;YACjC,MAAM,IAAA,iDAA6B,EAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,IAAI,OAAO,KAAK,qBAAqB,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;YACxD,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;YACxD,MAAM,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAC;YACjC,IAAA,gBAAK,EAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;YAChC,MAAM,IAAA,qDAAyB,EAAC;gBAC9B,UAAU,EAAE,GAAG,mBAAmB,WAAW;gBAC7C,QAAQ,EAAE,GAAG,kBAAkB,aAAa;aAC7C,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,OAAO,KAAK,oBAAoB,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,eAAe,GAAG,IAAA,2BAAmB,EAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,IAAA,mDAAwB,EAAC;gBAC7B,UAAU;gBACV,eAAe;aAChB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;YAC3C,IAAI,aAAiC,CAAC;YACtC,IAAI,OAA4B,CAAC;YACjC,IAAI,WAAiC,CAAC;YAEtC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACrC,CAAC;iBAAM,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACxC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;YACrB,CAAC;iBAAM,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;gBAC1C,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;YAED,MAAM,MAAM,GAAmC;gBAC7C,SAAS,EAAE,cAAc;gBACzB,cAAc,EAAE,IAAI,CAAC,UAAU;gBAC/B,aAAa;gBACb,OAAO;gBACP,WAAW;aACZ,CAAC;YACF,MAAM,IAAA,sDAAwB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;YACvC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;gBACjD,IAAI,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC;oBACvC,IAAA,gBAAI,EACF,eAAe,cAAc,6EAA6E,CAC3G,CAAC;oBACF,OAAO;gBACT,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,6CAA6C,cAAc,GAAG,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAmC;gBAC7C,SAAS,EAAE,QAAQ;gBACnB,cAAc;aACf,CAAC;YACF,MAAM,IAAA,sDAAwB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC/D,MAAM,eAAe,GAAG,IAAA,2BAAmB,EAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;YAEnE,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAA,mDAAwB,EAAC;oBAC7B,UAAU;oBACV,eAAe,EAAE,eAAe;iBACjC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAA,mCAAgB,EAAC;oBACrB,UAAU;oBACV,eAAe,EAAE,eAAe;iBACjC,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAA,iBAAK,EAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QACrC,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAtIW,QAAA,GAAG,OAsId"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goldstack/template-nextjs",
|
|
3
|
-
"version": "0.5.
|
|
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",
|
|
@@ -44,23 +44,22 @@
|
|
|
44
44
|
"prepublishOnly": "yarn run build",
|
|
45
45
|
"publish": "yarn npm publish --tolerate-republish",
|
|
46
46
|
"test": "jest --passWithNoTests --config=./jest.config.js --runInBand",
|
|
47
|
-
"
|
|
48
|
-
"version:apply:force": "yarn version $@ && yarn version apply"
|
|
47
|
+
"patch-when-changed": "git diff --quiet HEAD^...HEAD -- . && git diff --quiet -- . && git diff --quiet --staged -- . || yarn version patch"
|
|
49
48
|
},
|
|
50
49
|
"dependencies": {
|
|
51
|
-
"@goldstack/infra": "0.4.
|
|
52
|
-
"@goldstack/infra-aws": "0.4.
|
|
53
|
-
"@goldstack/template-static-website-aws": "0.5.
|
|
54
|
-
"@goldstack/utils-aws-cli": "0.4.
|
|
55
|
-
"@goldstack/utils-aws-lambda": "0.3.
|
|
56
|
-
"@goldstack/utils-cli": "0.3.
|
|
57
|
-
"@goldstack/utils-config": "0.4.
|
|
58
|
-
"@goldstack/utils-log": "0.3.
|
|
59
|
-
"@goldstack/utils-package": "0.4.
|
|
60
|
-
"@goldstack/utils-package-config": "0.4.
|
|
61
|
-
"@goldstack/utils-sh": "0.5.
|
|
62
|
-
"@goldstack/utils-template": "0.4.
|
|
63
|
-
"@goldstack/utils-terraform": "0.4.
|
|
50
|
+
"@goldstack/infra": "0.4.39",
|
|
51
|
+
"@goldstack/infra-aws": "0.4.57",
|
|
52
|
+
"@goldstack/template-static-website-aws": "0.5.79",
|
|
53
|
+
"@goldstack/utils-aws-cli": "0.4.58",
|
|
54
|
+
"@goldstack/utils-aws-lambda": "0.3.70",
|
|
55
|
+
"@goldstack/utils-cli": "0.3.31",
|
|
56
|
+
"@goldstack/utils-config": "0.4.39",
|
|
57
|
+
"@goldstack/utils-log": "0.3.33",
|
|
58
|
+
"@goldstack/utils-package": "0.4.41",
|
|
59
|
+
"@goldstack/utils-package-config": "0.4.41",
|
|
60
|
+
"@goldstack/utils-sh": "0.5.38",
|
|
61
|
+
"@goldstack/utils-template": "0.4.40",
|
|
62
|
+
"@goldstack/utils-terraform": "0.4.71",
|
|
64
63
|
"esbuild": "^0.25.6",
|
|
65
64
|
"glob": "11.1.0",
|
|
66
65
|
"source-map-support": "^0.5.21",
|
|
@@ -68,7 +67,7 @@
|
|
|
68
67
|
},
|
|
69
68
|
"devDependencies": {
|
|
70
69
|
"@aws-sdk/types": "^3.957.0",
|
|
71
|
-
"@goldstack/utils-package-config-generate": "0.3.
|
|
70
|
+
"@goldstack/utils-package-config-generate": "0.3.28",
|
|
72
71
|
"@swc/core": "^1.15.8",
|
|
73
72
|
"@swc/jest": "^0.2.39",
|
|
74
73
|
"@types/glob": "^8.1.0",
|