office-addin-dev-settings
Version:
Configure developer settings for Office Add-ins.
89 lines • 4.36 kB
JavaScript
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
Object.defineProperty(exports, "__esModule", { value: true });
exports.uninstallWithTeams = exports.updateM365Account = exports.registerWithTeams = void 0;
const tslib_1 = require("tslib");
const child_process_1 = tslib_1.__importDefault(require("child_process"));
const fs_1 = tslib_1.__importDefault(require("fs"));
function registerWithTeams(filePath) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
if ((filePath.endsWith(".zip") || filePath.endsWith(".xml")) && fs_1.default.existsSync(filePath)) {
const pathSwitch = filePath.endsWith(".zip") ? "--file-path" : "--xml-path";
const sideloadCommand = `npx @microsoft/teamsapp-cli install ${pathSwitch} "${filePath}" --interactive false`;
console.log(`running: ${sideloadCommand}`);
child_process_1.default.exec(sideloadCommand, (error, stdout, stderr) => {
let titleIdMatch = stdout.match(/TitleId:\s*(.*)/);
let titleId = titleIdMatch !== null ? titleIdMatch[1] : "??";
if (error || stderr.match('"error"')) {
console.log(`\n${stdout}\n--Error sideloading!--\nError: ${error}\nSTDERR:\n${stderr}`);
reject(error);
}
else {
console.log(`\n${stdout}\nSuccessfully registered package! (${titleId})\n STDERR: ${stderr}\n`);
resolve(titleId);
}
});
}
else {
reject(new Error(`The file '${filePath}' is not valid`));
}
});
});
}
exports.registerWithTeams = registerWithTeams;
function updateM365Account(operation) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
const authCommand = `npx @microsoft/teamsapp-cli auth ${operation} m365`;
console.log(`running: ${authCommand}`);
child_process_1.default.exec(authCommand, (error, stdout, stderr) => {
if (error || (stderr.length > 0 && /Debugger attached\./.test(stderr) == false)) {
console.log(`Error running auth command\n STDOUT: ${stdout}\n ERROR: ${error}\n STDERR: ${stderr}`);
reject(error);
}
else {
console.log(`Successfully ran auth command.\n`);
resolve();
}
});
});
});
}
exports.updateM365Account = updateM365Account;
function uninstallWithTeams(id) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
const guidRegex = /[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}/;
const manifestIdRegex = new RegExp(`^${guidRegex.source}$`);
const titleIdRegex = new RegExp(`^U_${guidRegex.source}$`);
let mode = "";
if (titleIdRegex.test(id)) {
mode = `--mode title-id --title-id ${id}`;
}
else if (manifestIdRegex.test(id)) {
mode = `--mode manifest-id --manifest-id ${id}`;
}
else {
console.error(`Error: Invalid id "${id}". Add-in is still installed.`);
resolve(false);
return;
}
const uninstallCommand = `npx @microsoft/teamsapp-cli uninstall ${mode} --interactive false`;
console.log(`running: ${uninstallCommand}`);
child_process_1.default.exec(uninstallCommand, (error, stdout, stderr) => {
if (error || stderr.match('"error"')) {
console.log(`\n${stdout}\n--Error uninstalling!--\n${error}\n STDERR: ${stderr}`);
reject(error);
}
else {
console.log(`\n${stdout}\nSuccessfully uninstalled!\n STDERR: ${stderr}\n`);
resolve(true);
}
});
});
});
}
exports.uninstallWithTeams = uninstallWithTeams;
//# sourceMappingURL=publish.js.map
;