npm package diff

Package: @forge/manifest

Versions: 10.0.1-next.7 - 10.1.0-next.8

File: package/out/interpolator/environment-variable-interpolator.js

Index: package/out/interpolator/environment-variable-interpolator.js
===================================================================
--- package/out/interpolator/environment-variable-interpolator.js
+++ package/out/interpolator/environment-variable-interpolator.js
@@ -22,20 +22,36 @@
         this.envVarsRecord = envVarsRecord;
         this.envVarsToReplace = [];
     }
     interpolate({ manifest }) {
-        this.envVarsToReplace = manifest.environment?.variables ?? [];
+        this.envVarsToReplace = [];
+        if (manifest.environment && manifest.environment.variables) {
+            this.envVarsToReplace = manifest.environment.variables.map((manifestEnvVar) => {
+                if (typeof manifestEnvVar === 'string') {
+                    return {
+                        key: manifestEnvVar
+                    };
+                }
+                else {
+                    return {
+                        key: manifestEnvVar.key,
+                        default: manifestEnvVar.default
+                    };
+                }
+            });
+        }
         return (0, yaml_1.parse)(JSON.stringify(manifest), this.environmentVariableReviver);
     }
     environmentVariableReviver = (_, value) => {
         if (!(typeof value == 'string')) {
             return value;
         }
         value = value.replace(this.POSSIBLE_ENVIRONMENT_VARIABLE, (original, envVarName) => {
-            if (!this.envVarsToReplace.includes(envVarName)) {
+            const envVarToReplace = this.envVarsToReplace.find((envVar) => envVar.key === envVarName);
+            if (!envVarToReplace) {
                 return original;
             }
-            const envVar = this.envVarsRecord[envVarName];
+            const envVar = this.envVarsRecord[envVarName] ?? envVarToReplace.default;
             if (envVar === undefined) {
                 throw new EnvironmentVariableInterpolatorError(text_1.errors.schema.missingEnvironmentVariable(envVarName));
             }
             Sentry.captureMessage('replaced environment variable');