summaryrefslogtreecommitdiff
path: root/desktop/node_modules/@electron/osx-sign/dist/cjs/util-provisioning-profiles.js
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/node_modules/@electron/osx-sign/dist/cjs/util-provisioning-profiles.js')
-rw-r--r--desktop/node_modules/@electron/osx-sign/dist/cjs/util-provisioning-profiles.js148
1 files changed, 148 insertions, 0 deletions
diff --git a/desktop/node_modules/@electron/osx-sign/dist/cjs/util-provisioning-profiles.js b/desktop/node_modules/@electron/osx-sign/dist/cjs/util-provisioning-profiles.js
new file mode 100644
index 0000000..2c1b7e5
--- /dev/null
+++ b/desktop/node_modules/@electron/osx-sign/dist/cjs/util-provisioning-profiles.js
@@ -0,0 +1,148 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.preEmbedProvisioningProfile = exports.findProvisioningProfiles = exports.getProvisioningProfile = exports.ProvisioningProfile = void 0;
+const fs = __importStar(require("fs-extra"));
+const path = __importStar(require("path"));
+const plist_1 = __importDefault(require("plist"));
+const util_1 = require("./util");
+class ProvisioningProfile {
+ constructor(filePath, message) {
+ this.filePath = filePath;
+ this.message = message;
+ }
+ get name() {
+ return this.message.Name;
+ }
+ get platforms() {
+ if ('ProvisionsAllDevices' in this.message)
+ return ['darwin'];
+ // Developer ID
+ else if (this.type === 'distribution')
+ return ['mas'];
+ // Mac App Store
+ else
+ return ['darwin', 'mas']; // Mac App Development
+ }
+ get type() {
+ if ('ProvisionedDevices' in this.message)
+ return 'development';
+ // Mac App Development
+ else
+ return 'distribution'; // Developer ID or Mac App Store
+ }
+}
+exports.ProvisioningProfile = ProvisioningProfile;
+/**
+ * Returns a promise resolving to a ProvisioningProfile instance based on file.
+ * @function
+ * @param {string} filePath - Path to provisioning profile.
+ * @param {string} keychain - Keychain to use when unlocking provisioning profile.
+ * @returns {Promise} Promise.
+ */
+async function getProvisioningProfile(filePath, keychain = null) {
+ const securityArgs = [
+ 'cms',
+ '-D',
+ '-i',
+ filePath // Use infile as source of data
+ ];
+ if (keychain) {
+ securityArgs.push('-k', keychain);
+ }
+ const result = await (0, util_1.execFileAsync)('security', securityArgs);
+ const provisioningProfile = new ProvisioningProfile(filePath, plist_1.default.parse(result));
+ (0, util_1.debugLog)('Provisioning profile:', '\n', '> Name:', provisioningProfile.name, '\n', '> Platforms:', provisioningProfile.platforms, '\n', '> Type:', provisioningProfile.type, '\n', '> Path:', provisioningProfile.filePath, '\n', '> Message:', provisioningProfile.message);
+ return provisioningProfile;
+}
+exports.getProvisioningProfile = getProvisioningProfile;
+/**
+ * Returns a promise resolving to a list of suitable provisioning profile within the current working directory.
+ */
+async function findProvisioningProfiles(opts) {
+ const cwd = process.cwd();
+ const children = await fs.readdir(cwd);
+ const foundProfiles = (0, util_1.compactFlattenedList)(await Promise.all(children.map(async (child) => {
+ const filePath = path.resolve(cwd, child);
+ const stat = await fs.stat(filePath);
+ if (stat.isFile() && path.extname(filePath) === '.provisionprofile') {
+ return filePath;
+ }
+ return null;
+ })));
+ return (0, util_1.compactFlattenedList)(await Promise.all(foundProfiles.map(async (filePath) => {
+ const profile = await getProvisioningProfile(filePath);
+ if (profile.platforms.indexOf(opts.platform) >= 0 && profile.type === opts.type) {
+ return profile;
+ }
+ (0, util_1.debugWarn)('Provisioning profile above ignored, not for ' + opts.platform + ' ' + opts.type + '.');
+ return null;
+ })));
+}
+exports.findProvisioningProfiles = findProvisioningProfiles;
+/**
+ * Returns a promise embedding the provisioning profile in the app Contents folder.
+ */
+async function preEmbedProvisioningProfile(opts, profile) {
+ async function embedProvisioningProfile(profile) {
+ (0, util_1.debugLog)('Looking for existing provisioning profile...');
+ const embeddedFilePath = path.join((0, util_1.getAppContentsPath)(opts), 'embedded.provisionprofile');
+ if (await fs.pathExists(embeddedFilePath)) {
+ (0, util_1.debugLog)('Found embedded provisioning profile:', '\n', '* Please manually remove the existing file if not wanted.', '\n', '* Current file at:', embeddedFilePath);
+ }
+ else {
+ (0, util_1.debugLog)('Embedding provisioning profile...');
+ await fs.copy(profile.filePath, embeddedFilePath);
+ }
+ }
+ if (profile) {
+ // User input provisioning profile
+ return await embedProvisioningProfile(profile);
+ }
+ else {
+ // Discover provisioning profile
+ (0, util_1.debugLog)('No `provisioning-profile` passed in arguments, will find in current working directory and in user library...');
+ const profiles = await findProvisioningProfiles(opts);
+ if (profiles.length > 0) {
+ // Provisioning profile(s) found
+ if (profiles.length > 1) {
+ (0, util_1.debugLog)('Multiple provisioning profiles found, will use the first discovered.');
+ }
+ else {
+ (0, util_1.debugLog)('Found 1 provisioning profile.');
+ }
+ await embedProvisioningProfile(profiles[0]);
+ }
+ else {
+ // No provisioning profile found
+ (0, util_1.debugLog)('No provisioning profile found, will not embed profile in app contents.');
+ }
+ }
+}
+exports.preEmbedProvisioningProfile = preEmbedProvisioningProfile;
+//# sourceMappingURL=util-provisioning-profiles.js.map \ No newline at end of file