diff options
author | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 |
---|---|---|
committer | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 |
commit | 703e03aba33f234712206769f57717ba7d92d23d (patch) | |
tree | 0041f04ccb75bd5379c764e9fe42249fffe75fc3 /node_modules/electron-notarize/lib/notarytool.js | |
parent | ab6e257e6e9d9a483d7e86f220d8b209a2cd7753 (diff) | |
download | FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.gz FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.zst |
Added export_allowed file to make repository visible in cgit
Diffstat (limited to 'node_modules/electron-notarize/lib/notarytool.js')
-rw-r--r-- | node_modules/electron-notarize/lib/notarytool.js | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/node_modules/electron-notarize/lib/notarytool.js b/node_modules/electron-notarize/lib/notarytool.js new file mode 100644 index 0000000..ed59c82 --- /dev/null +++ b/node_modules/electron-notarize/lib/notarytool.js @@ -0,0 +1,100 @@ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const debug = require("debug"); +const path = require("path"); +const spawn_1 = require("./spawn"); +const helpers_1 = require("./helpers"); +const validate_args_1 = require("./validate-args"); +const d = debug('electron-notarize:notarytool'); +function authorizationArgs(rawOpts) { + const opts = validate_args_1.validateNotaryToolAuthorizationArgs(rawOpts); + if (validate_args_1.isNotaryToolPasswordCredentials(opts)) { + return [ + '--apple-id', + helpers_1.makeSecret(opts.appleId), + '--password', + helpers_1.makeSecret(opts.appleIdPassword), + '--team-id', + helpers_1.makeSecret(opts.teamId), + ]; + } + else if (validate_args_1.isNotaryToolApiKeyCredentials(opts)) { + return [ + '--key', + helpers_1.makeSecret(opts.appleApiKey), + '--key-id', + helpers_1.makeSecret(opts.appleApiKeyId), + '--issuer', + helpers_1.makeSecret(opts.appleApiIssuer), + ]; + } + else { + // --keychain is optional -- when not specified, the iCloud keychain is used by notarytool + if (opts.keychain) { + return ['--keychain', opts.keychain, '--keychain-profile', opts.keychainProfile]; + } + return ['--keychain-profile', opts.keychainProfile]; + } +} +function isNotaryToolAvailable() { + return __awaiter(this, void 0, void 0, function* () { + const result = yield spawn_1.spawn('xcrun', ['--find', 'notarytool']); + return result.code === 0; + }); +} +exports.isNotaryToolAvailable = isNotaryToolAvailable; +function notarizeAndWaitForNotaryTool(opts) { + return __awaiter(this, void 0, void 0, function* () { + d('starting notarize process for app:', opts.appPath); + return yield helpers_1.withTempDir((dir) => __awaiter(this, void 0, void 0, function* () { + const zipPath = path.resolve(dir, `${path.parse(opts.appPath).name}.zip`); + d('zipping application to:', zipPath); + const zipResult = yield spawn_1.spawn('ditto', ['-c', '-k', '--sequesterRsrc', '--keepParent', path.basename(opts.appPath), zipPath], { + cwd: path.dirname(opts.appPath), + }); + if (zipResult.code !== 0) { + throw new Error(`Failed to zip application, exited with code: ${zipResult.code}\n\n${zipResult.output}`); + } + d('zip succeeded, attempting to upload to Apple'); + const notarizeArgs = [ + 'notarytool', + 'submit', + zipPath, + ...authorizationArgs(opts), + '--wait', + '--output-format', + 'json', + ]; + const result = yield spawn_1.spawn('xcrun', notarizeArgs); + if (result.code !== 0) { + try { + const parsed = JSON.parse(result.output.trim()); + if (parsed && parsed.id) { + const logResult = yield spawn_1.spawn('xcrun', [ + 'notarytool', + 'log', + parsed.id, + ...authorizationArgs(opts), + ]); + d('notarization log', logResult.output); + } + } + catch (e) { + d('failed to pull notarization logs', e); + } + throw new Error(`Failed to notarize via notarytool\n\n${result.output}`); + } + d('notarization success'); + })); + }); +} +exports.notarizeAndWaitForNotaryTool = notarizeAndWaitForNotaryTool; +//# sourceMappingURL=notarytool.js.map
\ No newline at end of file |