function applyCommandArgs(configuration, argv) {
    if (!argv || !argv.length) {
        return;
    }
    argv = argv.slice(2);
    const parsedArgv = yargs(argv);
    const argvKeys = Object.keys(parsedArgv);
    if (!argvKeys.length) {
        return;
    }
    debug("Appling command arguments:", parsedArgv);
    const CONFIG_PROP = 'config';
    if (parsedArgv[CONFIG_PROP]) {
        const configFile = path.resolve(process.cwd(), parsedArgv[CONFIG_PROP]);
        applyConfigFile(configuration, configFile);
    }
    for (const key in parsedArgv) {
        if (!parsedArgv.hasOwnProperty(key)) {
            continue;
        }
        if (key.startsWith('_')) {
            continue;
        }
        if (key.endsWith('_')) {
            continue;
        }
        if (key === CONFIG_PROP) {
            continue;
        }
        const configKey = key
            .replace(/_/g, ".");
        debug(`Found config value from cmd args '${key}' to '${configKey}'`);
        setDeepProperty(configuration, configKey, parsedArgv[key]);
    }
}
The software receives input from an upstream component that specifies multiple attributes, properties, or fields that are to be initialized or updated in an object, but it does not properly control which attributes can be modified.