From 4aac0937ed04748f2c81004394d93712627c717e Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Wed, 21 Aug 2024 15:55:36 -0400 Subject: [PATCH 01/20] Add metadata to angular bundle.yaml Add a framework metadata section to Angular adapter's bundle.yaml output: - adapter name - adapter version - framework name - framework version --- packages/@apphosting/adapter-angular/src/utils.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index 1c4223dc..3f41098a 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -17,13 +17,18 @@ import stripAnsi from "strip-ansi"; import { BuildOptions } from "@apphosting/common"; // fs-extra is CJS, readJson can't be imported using shorthand -export const { writeFile, move, readJson, mkdir, copyFile } = fsExtra; +export const { writeFile, move, readJson, mkdir, copyFile, readFileSync } = fsExtra; const require = createRequire(import.meta.url); const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const SIMPLE_SERVER_FILE_PATH = join(__dirname, "simple-server", "bundled_server.mjs"); +const packageJson = JSON.parse(readFileSync(`${__dirname}/../package.json`, "utf-8")); +const adapterVersion = packageJson.version; +const adapterName = packageJson.name; +const frameworkName = "angular"; + export const REQUIRED_BUILDER = "@angular-devkit/build-angular:application"; /** @@ -182,6 +187,12 @@ async function generateBundleYaml( angularVersion?: string, ): Promise { const runtimeEnvVars = addBundleYamlEnvVar(angularVersion); + const metadataMap = new Map([ + ["adapterNpmPackageName", adapterName], + ["adapterVersion", adapterVersion], + ["framework", frameworkName], + ["frameworkVersion", angularVersion ? angularVersion : ""], + ]); await writeFile( outputBundleOptions.bundleYamlPath, yamlStringify({ @@ -189,6 +200,7 @@ async function generateBundleYaml( neededDirs: [normalize(relative(cwd, outputBundleOptions.outputDirectory))], staticAssets: [normalize(relative(cwd, outputBundleOptions.browserDirectory))], env: runtimeEnvVars, + buildMetadata: metadataMap, }), ); } From 08b6d8387b5cd348087a6281235b6bacc79b8053 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Mon, 26 Aug 2024 17:45:39 -0400 Subject: [PATCH 02/20] Refactor for unit tests --- .../adapter-angular/src/bin/build.spec.ts | 19 ++++++++++--- .../adapter-angular/src/interface.ts | 8 ++++++ .../@apphosting/adapter-angular/src/utils.ts | 27 ++++++++++++------- 3 files changed, 41 insertions(+), 13 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts index 138cc877..d3795b67 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts @@ -23,13 +23,15 @@ describe("build commands", () => { }); it("expects all output bundle files to be generated", async () => { - const { generateOutputDirectory, validateOutputDirectory } = await importUtils; + const { generateOutputDirectory, validateOutputDirectory, populateMetadata } = + await importUtils; const files = { "dist/test/browser/browserfile": "", "dist/test/server/server.mjs": "", }; + const metadata = populateMetadata("17.3.8"); generateTestFiles(tmpDir, files); - await generateOutputDirectory(tmpDir, outputBundleOptions); + await generateOutputDirectory(tmpDir, outputBundleOptions, "17.3.8"); await validateOutputDirectory(outputBundleOptions); const expectedFiles = { @@ -42,17 +44,23 @@ neededDirs: staticAssets: - .apphosting/dist/browser env: [] +metadata: + adapterNpmPackageName: ${metadata.adapterNpmPackageName} + adapterVersion: ${metadata.adapterVersion} + framework: ${metadata.framework} + frameworkVersion: ${metadata.frameworkVersion} `, }; validateTestFiles(tmpDir, expectedFiles); }); it("expects SSR_PORT variable is added to bundle.yaml for Angular v17.3.2", async () => { - const { generateOutputDirectory } = await importUtils; + const { generateOutputDirectory, populateMetadata } = await importUtils; const files = { "dist/test/browser/browserfile": "", "dist/test/server/server.mjs": "", }; + const metadata = populateMetadata("17.3.2"); generateTestFiles(tmpDir, files); await generateOutputDirectory(tmpDir, outputBundleOptions, "17.3.2"); @@ -69,6 +77,11 @@ env: - variable: SSR_PORT value: "8080" availability: RUNTIME +metadata: + adapterNpmPackageName: ${metadata.adapterNpmPackageName} + adapterVersion: ${metadata.adapterVersion} + framework: ${metadata.framework} + frameworkVersion: ${metadata.frameworkVersion} `, }; validateTestFiles(tmpDir, expectedFiles); diff --git a/packages/@apphosting/adapter-angular/src/interface.ts b/packages/@apphosting/adapter-angular/src/interface.ts index b639116f..12114abc 100644 --- a/packages/@apphosting/adapter-angular/src/interface.ts +++ b/packages/@apphosting/adapter-angular/src/interface.ts @@ -25,6 +25,14 @@ export enum Availability { RUNTIME = "RUNTIME", } +// Metadata schema for bundle.yaml outputted by angular adapter +export interface Metadata { + adapterNpmPackageName: string; + adapterVersion?: string; + framework: string; + frameworkVersion?: string; +} + // valid manifest schema export interface ValidManifest { errors: string[]; diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index 3f41098a..e55ab9ae 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -8,6 +8,7 @@ import { stringify as yamlStringify } from "yaml"; import { Availability, EnvironmentVariable, + Metadata, OutputBundleOptions, OutputPaths, buildManifestSchema, @@ -24,11 +25,6 @@ const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const SIMPLE_SERVER_FILE_PATH = join(__dirname, "simple-server", "bundled_server.mjs"); -const packageJson = JSON.parse(readFileSync(`${__dirname}/../package.json`, "utf-8")); -const adapterVersion = packageJson.version; -const adapterName = packageJson.name; -const frameworkName = "angular"; - export const REQUIRED_BUILDER = "@angular-devkit/build-angular:application"; /** @@ -147,6 +143,16 @@ function extractManifestOutput(output: string): string { return stripAnsi(output.substring(start, end + 1)); } +export function populateMetadata(angularVersion?: string): Metadata { + const packageJson = JSON.parse(readFileSync(`${__dirname}/../package.json`, "utf-8")); + return { + adapterNpmPackageName: packageJson.name.replace(/([\@])/g, "\\$1"), // escape @ for yaml stringify + adapterVersion: packageJson.version, + framework: "angular", + frameworkVersion: angularVersion, + }; +} + /** * Move the base output directory, which contains the server and browser bundle directory, and prerendered routes * as well as generating bundle.yaml. @@ -187,11 +193,12 @@ async function generateBundleYaml( angularVersion?: string, ): Promise { const runtimeEnvVars = addBundleYamlEnvVar(angularVersion); + const metadata = populateMetadata(angularVersion); const metadataMap = new Map([ - ["adapterNpmPackageName", adapterName], - ["adapterVersion", adapterVersion], - ["framework", frameworkName], - ["frameworkVersion", angularVersion ? angularVersion : ""], + ["adapterNpmPackageName", metadata.adapterNpmPackageName], + ["adapterVersion", metadata.adapterVersion ? metadata.adapterVersion : ""], + ["framework", metadata.framework], + ["frameworkVersion", metadata.frameworkVersion ? metadata.frameworkVersion : ""], ]); await writeFile( outputBundleOptions.bundleYamlPath, @@ -200,7 +207,7 @@ async function generateBundleYaml( neededDirs: [normalize(relative(cwd, outputBundleOptions.outputDirectory))], staticAssets: [normalize(relative(cwd, outputBundleOptions.browserDirectory))], env: runtimeEnvVars, - buildMetadata: metadataMap, + metadata: metadataMap, }), ); } From 528272e61b0e32de4247b15d9f9aefd3c80e276a Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Mon, 26 Aug 2024 18:05:44 -0400 Subject: [PATCH 03/20] make adapterVersion mandatory --- .../@apphosting/adapter-angular/src/interface.ts | 2 +- packages/@apphosting/adapter-angular/src/utils.ts | 12 +++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/interface.ts b/packages/@apphosting/adapter-angular/src/interface.ts index 12114abc..4afd674c 100644 --- a/packages/@apphosting/adapter-angular/src/interface.ts +++ b/packages/@apphosting/adapter-angular/src/interface.ts @@ -28,7 +28,7 @@ export enum Availability { // Metadata schema for bundle.yaml outputted by angular adapter export interface Metadata { adapterNpmPackageName: string; - adapterVersion?: string; + adapterVersion: string; framework: string; frameworkVersion?: string; } diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index e55ab9ae..ab2748df 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -146,10 +146,10 @@ function extractManifestOutput(output: string): string { export function populateMetadata(angularVersion?: string): Metadata { const packageJson = JSON.parse(readFileSync(`${__dirname}/../package.json`, "utf-8")); return { - adapterNpmPackageName: packageJson.name.replace(/([\@])/g, "\\$1"), // escape @ for yaml stringify + adapterNpmPackageName: packageJson.name.replace(/([@])/g, "\\$1"), // escape @ for yaml stringify adapterVersion: packageJson.version, framework: "angular", - frameworkVersion: angularVersion, + frameworkVersion: angularVersion ? angularVersion : "", }; } @@ -194,12 +194,6 @@ async function generateBundleYaml( ): Promise { const runtimeEnvVars = addBundleYamlEnvVar(angularVersion); const metadata = populateMetadata(angularVersion); - const metadataMap = new Map([ - ["adapterNpmPackageName", metadata.adapterNpmPackageName], - ["adapterVersion", metadata.adapterVersion ? metadata.adapterVersion : ""], - ["framework", metadata.framework], - ["frameworkVersion", metadata.frameworkVersion ? metadata.frameworkVersion : ""], - ]); await writeFile( outputBundleOptions.bundleYamlPath, yamlStringify({ @@ -207,7 +201,7 @@ async function generateBundleYaml( neededDirs: [normalize(relative(cwd, outputBundleOptions.outputDirectory))], staticAssets: [normalize(relative(cwd, outputBundleOptions.browserDirectory))], env: runtimeEnvVars, - metadata: metadataMap, + metadata: metadata, }), ); } From 7b41b4eab02581d1850e19873bec1de05ba29003 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Mon, 26 Aug 2024 18:17:22 -0400 Subject: [PATCH 04/20] backslash escape --- packages/@apphosting/adapter-angular/src/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index ab2748df..a4f1e8c0 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -146,7 +146,7 @@ function extractManifestOutput(output: string): string { export function populateMetadata(angularVersion?: string): Metadata { const packageJson = JSON.parse(readFileSync(`${__dirname}/../package.json`, "utf-8")); return { - adapterNpmPackageName: packageJson.name.replace(/([@])/g, "\\$1"), // escape @ for yaml stringify + adapterNpmPackageName: packageJson.name.replace(/([\@])/g, "\\$1"), // escape @ for yaml stringify adapterVersion: packageJson.version, framework: "angular", frameworkVersion: angularVersion ? angularVersion : "", From 844e136811f4dfbd951d18e5f9c65e0183a3edac Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Mon, 26 Aug 2024 18:33:43 -0400 Subject: [PATCH 05/20] escape fix --- packages/@apphosting/adapter-angular/src/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index a4f1e8c0..31681247 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -146,7 +146,7 @@ function extractManifestOutput(output: string): string { export function populateMetadata(angularVersion?: string): Metadata { const packageJson = JSON.parse(readFileSync(`${__dirname}/../package.json`, "utf-8")); return { - adapterNpmPackageName: packageJson.name.replace(/([\@])/g, "\\$1"), // escape @ for yaml stringify + adapterNpmPackageName: packageJson.name.replace(/@/g, '\\$1'), adapterVersion: packageJson.version, framework: "angular", frameworkVersion: angularVersion ? angularVersion : "", From c24bd419e490bb71aaaaa899ed2b69736ce1a882 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Mon, 26 Aug 2024 18:36:14 -0400 Subject: [PATCH 06/20] lint --- packages/@apphosting/adapter-angular/src/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index 31681247..0c8783dd 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -146,7 +146,7 @@ function extractManifestOutput(output: string): string { export function populateMetadata(angularVersion?: string): Metadata { const packageJson = JSON.parse(readFileSync(`${__dirname}/../package.json`, "utf-8")); return { - adapterNpmPackageName: packageJson.name.replace(/@/g, '\\$1'), + adapterNpmPackageName: packageJson.name.replace(/@/g, "\\$1"), adapterVersion: packageJson.version, framework: "angular", frameworkVersion: angularVersion ? angularVersion : "", From 6112326f855cce6697faed110d115a2d620499e5 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Mon, 26 Aug 2024 18:47:41 -0400 Subject: [PATCH 07/20] comment --- .../adapter-angular/src/bin/build.spec.ts | 12 ++++++------ packages/@apphosting/adapter-angular/src/utils.ts | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts index d3795b67..4dcd71c9 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts @@ -45,10 +45,10 @@ staticAssets: - .apphosting/dist/browser env: [] metadata: - adapterNpmPackageName: ${metadata.adapterNpmPackageName} + adapterNpmPackageName: \\@apphosting/adapter-angular adapterVersion: ${metadata.adapterVersion} - framework: ${metadata.framework} - frameworkVersion: ${metadata.frameworkVersion} + framework: angular + frameworkVersion: 17.3.8 `, }; validateTestFiles(tmpDir, expectedFiles); @@ -78,10 +78,10 @@ env: value: "8080" availability: RUNTIME metadata: - adapterNpmPackageName: ${metadata.adapterNpmPackageName} + adapterNpmPackageName: \\@apphosting/adapter-angular adapterVersion: ${metadata.adapterVersion} - framework: ${metadata.framework} - frameworkVersion: ${metadata.frameworkVersion} + framework: angular + frameworkVersion: 17.3.2 `, }; validateTestFiles(tmpDir, expectedFiles); diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index 0c8783dd..3282ce88 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -146,7 +146,7 @@ function extractManifestOutput(output: string): string { export function populateMetadata(angularVersion?: string): Metadata { const packageJson = JSON.parse(readFileSync(`${__dirname}/../package.json`, "utf-8")); return { - adapterNpmPackageName: packageJson.name.replace(/@/g, "\\$1"), + adapterNpmPackageName: packageJson.name.replace(/([@])/g, "\\$1"), // escape @ for yamlStringify adapterVersion: packageJson.version, framework: "angular", frameworkVersion: angularVersion ? angularVersion : "", From 403f95f89a295ecad30f695ec61dc8cc0ac50fd6 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Mon, 26 Aug 2024 18:53:13 -0400 Subject: [PATCH 08/20] refactor --- .../@apphosting/adapter-angular/src/bin/build.spec.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts index 4dcd71c9..3a76ed38 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts @@ -29,7 +29,7 @@ describe("build commands", () => { "dist/test/browser/browserfile": "", "dist/test/server/server.mjs": "", }; - const metadata = populateMetadata("17.3.8"); + const packageVersion = populateMetadata("17.3.8").adapterVersion; generateTestFiles(tmpDir, files); await generateOutputDirectory(tmpDir, outputBundleOptions, "17.3.8"); await validateOutputDirectory(outputBundleOptions); @@ -46,7 +46,7 @@ staticAssets: env: [] metadata: adapterNpmPackageName: \\@apphosting/adapter-angular - adapterVersion: ${metadata.adapterVersion} + adapterVersion: ${packageVersion} framework: angular frameworkVersion: 17.3.8 `, @@ -60,7 +60,7 @@ metadata: "dist/test/browser/browserfile": "", "dist/test/server/server.mjs": "", }; - const metadata = populateMetadata("17.3.2"); + const packageVersion = populateMetadata("17.3.2").adapterVersion; generateTestFiles(tmpDir, files); await generateOutputDirectory(tmpDir, outputBundleOptions, "17.3.2"); @@ -79,7 +79,7 @@ env: availability: RUNTIME metadata: adapterNpmPackageName: \\@apphosting/adapter-angular - adapterVersion: ${metadata.adapterVersion} + adapterVersion: ${packageVersion} framework: angular frameworkVersion: 17.3.2 `, From 3f8dbca7d6d09259513bd098aed8ec8f1c91fde2 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Mon, 26 Aug 2024 19:03:50 -0400 Subject: [PATCH 09/20] match FRAMEWORK_VERSION name with buildpack --- packages/@apphosting/adapter-angular/src/bin/build.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.ts b/packages/@apphosting/adapter-angular/src/bin/build.ts index a3565f03..f60b2a7a 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.ts @@ -20,6 +20,6 @@ if (!output) { throw new Error("No output from Angular build command, expecting a build manifest file."); } const outputBundleOptions = parseOutputBundleOptions(output); -await generateOutputDirectory(root, outputBundleOptions, process.env.ANGULAR_VERSION); +await generateOutputDirectory(root, outputBundleOptions, process.env.FRAMEWORK_VERSION); await validateOutputDirectory(outputBundleOptions); From e7e260b9a539f298f3c7edd966d857b82be3e203 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Tue, 27 Aug 2024 13:19:25 -0400 Subject: [PATCH 10/20] fix comments --- .../adapter-angular/src/bin/build.spec.ts | 9 ++++----- .../@apphosting/adapter-angular/src/utils.ts | 19 ++++++++++++++----- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts index 3a76ed38..fe0f6cde 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts @@ -23,13 +23,12 @@ describe("build commands", () => { }); it("expects all output bundle files to be generated", async () => { - const { generateOutputDirectory, validateOutputDirectory, populateMetadata } = - await importUtils; + const { generateOutputDirectory, validateOutputDirectory, createMetadata } = await importUtils; const files = { "dist/test/browser/browserfile": "", "dist/test/server/server.mjs": "", }; - const packageVersion = populateMetadata("17.3.8").adapterVersion; + const packageVersion = createMetadata("17.3.8").adapterVersion; generateTestFiles(tmpDir, files); await generateOutputDirectory(tmpDir, outputBundleOptions, "17.3.8"); await validateOutputDirectory(outputBundleOptions); @@ -55,12 +54,12 @@ metadata: }); it("expects SSR_PORT variable is added to bundle.yaml for Angular v17.3.2", async () => { - const { generateOutputDirectory, populateMetadata } = await importUtils; + const { generateOutputDirectory, createMetadata } = await importUtils; const files = { "dist/test/browser/browserfile": "", "dist/test/server/server.mjs": "", }; - const packageVersion = populateMetadata("17.3.2").adapterVersion; + const packageVersion = createMetadata("17.3.2").adapterVersion; generateTestFiles(tmpDir, files); await generateOutputDirectory(tmpDir, outputBundleOptions, "17.3.2"); diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index 3282ce88..68033727 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -18,7 +18,7 @@ import stripAnsi from "strip-ansi"; import { BuildOptions } from "@apphosting/common"; // fs-extra is CJS, readJson can't be imported using shorthand -export const { writeFile, move, readJson, mkdir, copyFile, readFileSync } = fsExtra; +export const { writeFile, move, readJson, mkdir, copyFile, readFileSync, existsSync } = fsExtra; const require = createRequire(import.meta.url); const __filename = fileURLToPath(import.meta.url); @@ -143,10 +143,19 @@ function extractManifestOutput(output: string): string { return stripAnsi(output.substring(start, end + 1)); } -export function populateMetadata(angularVersion?: string): Metadata { - const packageJson = JSON.parse(readFileSync(`${__dirname}/../package.json`, "utf-8")); +/** + * Create metadata needed for outputting adapter and framework metrics in bundle.yaml. + * Includes adapter name, adapter version, framework name and framework version. + */ +export function createMetadata(angularVersion?: string): Metadata { + const packageJsonPath = `${__dirname}/../package.json`; + if (!existsSync(packageJsonPath)) { + throw new Error(`Angular adapter package.json file does not exists at ${packageJsonPath}`); + } + const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8")); return { - adapterNpmPackageName: packageJson.name.replace(/([@])/g, "\\$1"), // escape @ for yamlStringify + // escape @ for yamlStringify, e.g. "@apphosting/adapter-angular" -> "\@apphosting/adapter-angular" + adapterNpmPackageName: packageJson.name.replace(/([@])/g, "\\$1"), adapterVersion: packageJson.version, framework: "angular", frameworkVersion: angularVersion ? angularVersion : "", @@ -193,7 +202,7 @@ async function generateBundleYaml( angularVersion?: string, ): Promise { const runtimeEnvVars = addBundleYamlEnvVar(angularVersion); - const metadata = populateMetadata(angularVersion); + const metadata = createMetadata(angularVersion); await writeFile( outputBundleOptions.bundleYamlPath, yamlStringify({ From 40410ea7f0f379c13cb47f12e71461072e8b1522 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Tue, 27 Aug 2024 15:01:48 -0400 Subject: [PATCH 11/20] Make angularVersion mandatory and assert --- .../adapter-angular/src/bin/build.spec.ts | 12 ++++++---- .../@apphosting/adapter-angular/src/utils.ts | 23 ++++++++----------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts index fe0f6cde..5ceb6eb9 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts @@ -9,6 +9,7 @@ import { OutputBundleOptions } from "../interface.js"; describe("build commands", () => { let tmpDir: string; let outputBundleOptions: OutputBundleOptions; + let defaultAngularVersion: string; beforeEach(() => { tmpDir = generateTmpDir(); outputBundleOptions = { @@ -20,6 +21,7 @@ describe("build commands", () => { serverFilePath: resolve(tmpDir, ".apphosting", "dist", "server", "server.mjs"), needsServerGenerated: false, }; + defaultAngularVersion = "17.3.8"; }); it("expects all output bundle files to be generated", async () => { @@ -28,9 +30,9 @@ describe("build commands", () => { "dist/test/browser/browserfile": "", "dist/test/server/server.mjs": "", }; - const packageVersion = createMetadata("17.3.8").adapterVersion; + const packageVersion = createMetadata(defaultAngularVersion).adapterVersion; generateTestFiles(tmpDir, files); - await generateOutputDirectory(tmpDir, outputBundleOptions, "17.3.8"); + await generateOutputDirectory(tmpDir, outputBundleOptions, defaultAngularVersion); await validateOutputDirectory(outputBundleOptions); const expectedFiles = { @@ -44,7 +46,7 @@ staticAssets: - .apphosting/dist/browser env: [] metadata: - adapterNpmPackageName: \\@apphosting/adapter-angular + adapterNpmPackageName: "@apphosting/adapter-angular" adapterVersion: ${packageVersion} framework: angular frameworkVersion: 17.3.8 @@ -77,7 +79,7 @@ env: value: "8080" availability: RUNTIME metadata: - adapterNpmPackageName: \\@apphosting/adapter-angular + adapterNpmPackageName: "@apphosting/adapter-angular" adapterVersion: ${packageVersion} framework: angular frameworkVersion: 17.3.2 @@ -93,7 +95,7 @@ metadata: "dist/test/server/notserver.mjs": "", }; generateTestFiles(tmpDir, files); - await generateOutputDirectory(tmpDir, outputBundleOptions); + await generateOutputDirectory(tmpDir, outputBundleOptions, defaultAngularVersion); assert.rejects(async () => await validateOutputDirectory(outputBundleOptions)); }); diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index cece7c43..31f79560 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -145,20 +145,18 @@ function extractManifestOutput(output: string): string { /** * Create metadata needed for outputting adapter and framework metrics in bundle.yaml. - * Includes adapter name, adapter version, framework name and framework version. */ -export function createMetadata(angularVersion?: string): Metadata { +export function createMetadata(angularVersion: string): Metadata { const packageJsonPath = `${__dirname}/../package.json`; if (!existsSync(packageJsonPath)) { - throw new Error(`Angular adapter package.json file does not exists at ${packageJsonPath}`); + throw new Error(`Angular adapter package.json file does not exist at ${packageJsonPath}`); } const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8")); return { - // escape @ for yamlStringify, e.g. "@apphosting/adapter-angular" -> "\@apphosting/adapter-angular" - adapterNpmPackageName: packageJson.name.replace(/([@])/g, "\\$1"), + adapterNpmPackageName: packageJson.name, adapterVersion: packageJson.version, framework: "angular", - frameworkVersion: angularVersion ? angularVersion : "", + frameworkVersion: angularVersion, }; } @@ -177,14 +175,15 @@ export async function generateOutputDirectory( if (outputBundleOptions.needsServerGenerated) { await generateServer(outputBundleOptions); } + if (!angularVersion) throw new Error("Could not find the angular version of the application"); await generateBundleYaml(outputBundleOptions, cwd, angularVersion); } // add environment variable to bundle.yaml if needed for specific versions -function addBundleYamlEnvVar(angularVersion?: string): EnvironmentVariable[] { +function addBundleYamlEnvVar(angularVersion: string): EnvironmentVariable[] { const runtimeEnvVars: EnvironmentVariable[] = []; // add env var to solve angular port issue, existing only for Angular v17.3.2 (b/332896115) - if (angularVersion && angularVersion === "17.3.2") { + if (angularVersion === "17.3.2") { const ssrPortEnvVar: EnvironmentVariable = { variable: "SSR_PORT", value: "8080", @@ -199,18 +198,16 @@ function addBundleYamlEnvVar(angularVersion?: string): EnvironmentVariable[] { async function generateBundleYaml( outputBundleOptions: OutputBundleOptions, cwd: string, - angularVersion?: string, + angularVersion: string, ): Promise { - const runtimeEnvVars = addBundleYamlEnvVar(angularVersion); - const metadata = createMetadata(angularVersion); await writeFile( outputBundleOptions.bundleYamlPath, yamlStringify({ runCommand: `node ${normalize(relative(cwd, outputBundleOptions.serverFilePath))}`, neededDirs: [normalize(relative(cwd, outputBundleOptions.outputDirectory))], staticAssets: [normalize(relative(cwd, outputBundleOptions.browserDirectory))], - env: runtimeEnvVars, - metadata: metadata, + env: addBundleYamlEnvVar(angularVersion), + metadata: createMetadata(angularVersion), }), ); } From 239c0baa80b09f44014f914281082c2a56844673 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Tue, 27 Aug 2024 15:06:03 -0400 Subject: [PATCH 12/20] modify metadata interface --- packages/@apphosting/adapter-nextjs/src/interfaces.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/@apphosting/adapter-nextjs/src/interfaces.ts b/packages/@apphosting/adapter-nextjs/src/interfaces.ts index ded083d4..e4f91d92 100644 --- a/packages/@apphosting/adapter-nextjs/src/interfaces.ts +++ b/packages/@apphosting/adapter-nextjs/src/interfaces.ts @@ -101,3 +101,11 @@ export interface OutputBundleOptions { */ outputStaticDirectoryPath: string; } + +// Metadata schema for bundle.yaml outputted by next.js adapter +export interface Metadata { + adapterNpmPackageName: string; + adapterVersion: string; + framework: string; + frameworkVersion: string; +} From 40a355a987f91e2cdcf346271f8f7ad9e7791234 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Tue, 27 Aug 2024 15:09:28 -0400 Subject: [PATCH 13/20] Revert "modify metadata interface" This reverts commit 239c0baa80b09f44014f914281082c2a56844673. --- packages/@apphosting/adapter-nextjs/src/interfaces.ts | 8 -------- 1 file changed, 8 deletions(-) diff --git a/packages/@apphosting/adapter-nextjs/src/interfaces.ts b/packages/@apphosting/adapter-nextjs/src/interfaces.ts index e4f91d92..ded083d4 100644 --- a/packages/@apphosting/adapter-nextjs/src/interfaces.ts +++ b/packages/@apphosting/adapter-nextjs/src/interfaces.ts @@ -101,11 +101,3 @@ export interface OutputBundleOptions { */ outputStaticDirectoryPath: string; } - -// Metadata schema for bundle.yaml outputted by next.js adapter -export interface Metadata { - adapterNpmPackageName: string; - adapterVersion: string; - framework: string; - frameworkVersion: string; -} From 38e22069b8ef1dd220f9f433fd2c9524085b98cf Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Tue, 27 Aug 2024 16:14:32 -0400 Subject: [PATCH 14/20] Fix backslash escape --- packages/@apphosting/adapter-angular/src/interface.ts | 2 +- packages/@apphosting/adapter-angular/src/utils.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/interface.ts b/packages/@apphosting/adapter-angular/src/interface.ts index b2de6c91..95fe2ff2 100644 --- a/packages/@apphosting/adapter-angular/src/interface.ts +++ b/packages/@apphosting/adapter-angular/src/interface.ts @@ -30,7 +30,7 @@ export interface Metadata { adapterNpmPackageName: string; adapterVersion: string; framework: string; - frameworkVersion?: string; + frameworkVersion: string; } // valid manifest schema diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index 31f79560..d9c02d3d 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -153,7 +153,8 @@ export function createMetadata(angularVersion: string): Metadata { } const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8")); return { - adapterNpmPackageName: packageJson.name, + // escape @ for yamlStringify, e.g. "@apphosting/adapter-angular" -> "\@apphosting/adapter-angular" + adapterNpmPackageName: packageJson.name.replace(/([@\\])/g, "\\$1"), adapterVersion: packageJson.version, framework: "angular", frameworkVersion: angularVersion, From 9ed9cbb9e00e2b741739455abf92decdec1676c5 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Tue, 27 Aug 2024 16:18:10 -0400 Subject: [PATCH 15/20] fix test --- packages/@apphosting/adapter-angular/src/bin/build.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts index 5ceb6eb9..94ebcddd 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts @@ -46,7 +46,7 @@ staticAssets: - .apphosting/dist/browser env: [] metadata: - adapterNpmPackageName: "@apphosting/adapter-angular" + adapterNpmPackageName: \\@apphosting/adapter-angular adapterVersion: ${packageVersion} framework: angular frameworkVersion: 17.3.8 @@ -79,7 +79,7 @@ env: value: "8080" availability: RUNTIME metadata: - adapterNpmPackageName: "@apphosting/adapter-angular" + adapterNpmPackageName: \\@apphosting/adapter-angular adapterVersion: ${packageVersion} framework: angular frameworkVersion: 17.3.2 From 3b2935c00904c83f0e15dfcc48dfe2fd1fddac3f Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Tue, 27 Aug 2024 17:22:05 -0400 Subject: [PATCH 16/20] Update env var test --- .../adapter-angular/src/bin/build.spec.ts | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts index 94ebcddd..12109661 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts @@ -56,36 +56,21 @@ metadata: }); it("expects SSR_PORT variable is added to bundle.yaml for Angular v17.3.2", async () => { - const { generateOutputDirectory, createMetadata } = await importUtils; + const { generateOutputDirectory } = await importUtils; const files = { "dist/test/browser/browserfile": "", "dist/test/server/server.mjs": "", }; - const packageVersion = createMetadata("17.3.2").adapterVersion; generateTestFiles(tmpDir, files); await generateOutputDirectory(tmpDir, outputBundleOptions, "17.3.2"); - const expectedFiles = { - ".apphosting/dist/browser/browserfile": "", - ".apphosting/dist/server/server.mjs": "", - ".apphosting/bundle.yaml": ` -runCommand: node .apphosting/dist/server/server.mjs -neededDirs: - - .apphosting -staticAssets: - - .apphosting/dist/browser + const expectedContents = ` env: - variable: SSR_PORT value: "8080" availability: RUNTIME -metadata: - adapterNpmPackageName: \\@apphosting/adapter-angular - adapterVersion: ${packageVersion} - framework: angular - frameworkVersion: 17.3.2 -`, - }; - validateTestFiles(tmpDir, expectedFiles); +`; + validateFileExistsAndContains(tmpDir, ".apphosting/bundle.yaml", expectedContents); }); it("test failed validateOutputDirectory", async () => { @@ -148,3 +133,17 @@ function validateTestFiles(baseDir: string, expectedFiles: Object): void { assert.deepEqual(ignoreBlankLines(contents), ignoreBlankLines(expectedContents)); }); } + +function validateFileExistsAndContains( + baseDir: string, + expectedFileName: string, + expectedContents: string, +): void { + const fileToRead = path.join(baseDir, expectedFileName); + assert.ok(fs.existsSync(fileToRead), `File '${fileToRead}' does not exist.`); + const contents = fs.readFileSync(fileToRead).toString(); + assert.ok( + contents.includes(expectedContents), + `Actual contents do not contain expected contents.\nExpected contained contents:\n${expectedContents}\nActual:\n${contents}`, + ); +} From e12f0d4ec56aac1147e272a5afffdc86fa267237 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Tue, 27 Aug 2024 17:55:37 -0400 Subject: [PATCH 17/20] Move angularVersion assert --- packages/@apphosting/adapter-angular/src/bin/build.spec.ts | 3 +-- packages/@apphosting/adapter-angular/src/bin/build.ts | 3 +++ packages/@apphosting/adapter-angular/src/utils.ts | 7 +++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts index 12109661..167e4d22 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts @@ -64,8 +64,7 @@ metadata: generateTestFiles(tmpDir, files); await generateOutputDirectory(tmpDir, outputBundleOptions, "17.3.2"); - const expectedContents = ` -env: + const expectedContents = `env: - variable: SSR_PORT value: "8080" availability: RUNTIME diff --git a/packages/@apphosting/adapter-angular/src/bin/build.ts b/packages/@apphosting/adapter-angular/src/bin/build.ts index f60b2a7a..6db7dbc3 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.ts @@ -19,6 +19,9 @@ const { stdout: output } = await runBuild(); if (!output) { throw new Error("No output from Angular build command, expecting a build manifest file."); } +if (!process.env.FRAMEWORK_VERSION) { + throw new Error("Could not find the angular version of the application") +}; const outputBundleOptions = parseOutputBundleOptions(output); await generateOutputDirectory(root, outputBundleOptions, process.env.FRAMEWORK_VERSION); diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index d9c02d3d..38ad12e1 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -168,7 +168,7 @@ export function createMetadata(angularVersion: string): Metadata { export async function generateOutputDirectory( cwd: string, outputBundleOptions: OutputBundleOptions, - angularVersion?: string, + angularVersion: string, ): Promise { await move(outputBundleOptions.baseDirectory, outputBundleOptions.outputBaseDirectory, { overwrite: true, @@ -176,12 +176,11 @@ export async function generateOutputDirectory( if (outputBundleOptions.needsServerGenerated) { await generateServer(outputBundleOptions); } - if (!angularVersion) throw new Error("Could not find the angular version of the application"); await generateBundleYaml(outputBundleOptions, cwd, angularVersion); } // add environment variable to bundle.yaml if needed for specific versions -function addBundleYamlEnvVar(angularVersion: string): EnvironmentVariable[] { +function generateEnvVars(angularVersion: string): EnvironmentVariable[] { const runtimeEnvVars: EnvironmentVariable[] = []; // add env var to solve angular port issue, existing only for Angular v17.3.2 (b/332896115) if (angularVersion === "17.3.2") { @@ -207,7 +206,7 @@ async function generateBundleYaml( runCommand: `node ${normalize(relative(cwd, outputBundleOptions.serverFilePath))}`, neededDirs: [normalize(relative(cwd, outputBundleOptions.outputDirectory))], staticAssets: [normalize(relative(cwd, outputBundleOptions.browserDirectory))], - env: addBundleYamlEnvVar(angularVersion), + env: generateEnvVars(angularVersion), metadata: createMetadata(angularVersion), }), ); From 42b03887199dc3a562c06394d1845a919c5a5df6 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Tue, 27 Aug 2024 18:03:00 -0400 Subject: [PATCH 18/20] Remove adapter name @ escape --- packages/@apphosting/adapter-angular/src/bin/build.spec.ts | 2 +- packages/@apphosting/adapter-angular/src/bin/build.ts | 4 ++-- packages/@apphosting/adapter-angular/src/utils.ts | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts index 167e4d22..8310bf0a 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts @@ -46,7 +46,7 @@ staticAssets: - .apphosting/dist/browser env: [] metadata: - adapterNpmPackageName: \\@apphosting/adapter-angular + adapterNpmPackageName: "@apphosting/adapter-angular" adapterVersion: ${packageVersion} framework: angular frameworkVersion: 17.3.8 diff --git a/packages/@apphosting/adapter-angular/src/bin/build.ts b/packages/@apphosting/adapter-angular/src/bin/build.ts index 6db7dbc3..72c4e069 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.ts @@ -20,8 +20,8 @@ if (!output) { throw new Error("No output from Angular build command, expecting a build manifest file."); } if (!process.env.FRAMEWORK_VERSION) { - throw new Error("Could not find the angular version of the application") -}; + throw new Error("Could not find the angular version of the application"); +} const outputBundleOptions = parseOutputBundleOptions(output); await generateOutputDirectory(root, outputBundleOptions, process.env.FRAMEWORK_VERSION); diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index 38ad12e1..e8ba5042 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -153,8 +153,7 @@ export function createMetadata(angularVersion: string): Metadata { } const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8")); return { - // escape @ for yamlStringify, e.g. "@apphosting/adapter-angular" -> "\@apphosting/adapter-angular" - adapterNpmPackageName: packageJson.name.replace(/([@\\])/g, "\\$1"), + adapterNpmPackageName: packageJson.name, adapterVersion: packageJson.version, framework: "angular", frameworkVersion: angularVersion, From 04d5274e0d44b3dd8db90449e34786fd0916f0fc Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Tue, 27 Aug 2024 18:26:03 -0400 Subject: [PATCH 19/20] move assert --- packages/@apphosting/adapter-angular/src/bin/build.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.ts b/packages/@apphosting/adapter-angular/src/bin/build.ts index 72c4e069..72ad102a 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.ts @@ -12,6 +12,9 @@ const opts = getBuildOptions(); // Check build conditions, which vary depending on your project structure (standalone or monorepo) await checkBuildConditions(opts); +if (!process.env.FRAMEWORK_VERSION) { + throw new Error("Could not find the angular version of the application"); +} // enable JSON build logs for application builder process.env.NG_BUILD_LOGS_JSON = "1"; @@ -19,9 +22,6 @@ const { stdout: output } = await runBuild(); if (!output) { throw new Error("No output from Angular build command, expecting a build manifest file."); } -if (!process.env.FRAMEWORK_VERSION) { - throw new Error("Could not find the angular version of the application"); -} const outputBundleOptions = parseOutputBundleOptions(output); await generateOutputDirectory(root, outputBundleOptions, process.env.FRAMEWORK_VERSION); From 3cfbecbc82297bb503966b0d4e784452c8476f79 Mon Sep 17 00:00:00 2001 From: sjjj986 Date: Thu, 29 Aug 2024 13:35:19 -0400 Subject: [PATCH 20/20] Make adapter name field more generic --- packages/@apphosting/adapter-angular/src/bin/build.spec.ts | 2 +- packages/@apphosting/adapter-angular/src/interface.ts | 2 +- packages/@apphosting/adapter-angular/src/utils.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts index 8310bf0a..2e500c8b 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.spec.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.spec.ts @@ -46,7 +46,7 @@ staticAssets: - .apphosting/dist/browser env: [] metadata: - adapterNpmPackageName: "@apphosting/adapter-angular" + adapterPackageName: "@apphosting/adapter-angular" adapterVersion: ${packageVersion} framework: angular frameworkVersion: 17.3.8 diff --git a/packages/@apphosting/adapter-angular/src/interface.ts b/packages/@apphosting/adapter-angular/src/interface.ts index 95fe2ff2..5826d2a4 100644 --- a/packages/@apphosting/adapter-angular/src/interface.ts +++ b/packages/@apphosting/adapter-angular/src/interface.ts @@ -27,7 +27,7 @@ export enum Availability { // Metadata schema for bundle.yaml outputted by angular adapter export interface Metadata { - adapterNpmPackageName: string; + adapterPackageName: string; adapterVersion: string; framework: string; frameworkVersion: string; diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index e8ba5042..de96f270 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -153,7 +153,7 @@ export function createMetadata(angularVersion: string): Metadata { } const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8")); return { - adapterNpmPackageName: packageJson.name, + adapterPackageName: packageJson.name, adapterVersion: packageJson.version, framework: "angular", frameworkVersion: angularVersion,