{"id":19874017,"url":"https://github.com/onlxltd/notarytool","last_synced_at":"2026-01-05T19:32:46.986Z","repository":{"id":176567613,"uuid":"658987843","full_name":"onlxltd/notarytool","owner":"onlxltd","description":"A TypeScript implementation of Apple's notarization process.","archived":false,"fork":false,"pushed_at":"2024-07-31T07:24:02.000Z","size":162,"stargazers_count":1,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-31T01:43:27.266Z","etag":null,"topics":["apple","cd","ci","crossplatform","javascript","macos","notarytool","signing","typescript"],"latest_commit_sha":null,"homepage":"https://npmjs.com/package/notarytool","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/onlxltd.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-26T23:29:40.000Z","updated_at":"2024-08-14T09:02:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"a738ba4b-5d99-414e-b4bc-565a0fa69867","html_url":"https://github.com/onlxltd/notarytool","commit_stats":null,"previous_names":["onlxltd/notarytool"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onlxltd%2Fnotarytool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onlxltd%2Fnotarytool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onlxltd%2Fnotarytool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onlxltd%2Fnotarytool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onlxltd","download_url":"https://codeload.github.com/onlxltd/notarytool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245579676,"owners_count":20638679,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple","cd","ci","crossplatform","javascript","macos","notarytool","signing","typescript"],"created_at":"2024-11-12T16:21:11.244Z","updated_at":"2026-01-05T19:32:41.964Z","avatar_url":"https://github.com/onlxltd.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NotaryTool\n\n[![build](https://github.com/onlxltd/notarytool/actions/workflows/build-release.yml/badge.svg?style=flat-square)](https://github.com/onlxltd/notarytool/actions/workflows/build-release.yml) ![npm bundle size](https://img.shields.io/bundlephobia/min/notarytool?style=flat-square) [![DeepScan grade](https://deepscan.io/api/teams/13435/projects/24967/branches/773213/badge/grade.svg?style=flat-square)](https://deepscan.io/dashboard#view=project\u0026tid=13435\u0026pid=24967\u0026bid=773213)\n\nNotaryTool is a TypeScript implementation of Apple's notarization process.\nThe tool can be used on any platform and on macOS will attempt to staple on completion.\n\nNotaryTool is supported by [ON LX Limited](https://onlx.ltd/?src=notarytool). Check out our projects such as [Ctrl Suite](https://onlx.ltd/ctrl-suite?src=notarytool) and [bonjour-service](https://npmjs.com/package/bonjour-service).\n\n## Installation\nAdd to your project dependencies using Yarn or NPM.\n\n#### Install with Yarn\n```\nyarn add notarytool\n```\n#### Install with NPM\n```\nnpm install notarytool\n```\n\n\n## Usage \n\n```js\nimport NotaryTool from 'notarytool'\n\n/**\n *  Setup the tool using API credentials \n */\nconst tool = new NotaryTool({\n    appleApiKey         : process.env.APPLE_API_KEY,\n    appleApiKeyId       : process.env.APPLE_API_KEY_ID,\n    appleApiIssuerId    : process.env.APPLE_API_ISSUER_ID\n})\n\n/**\n * Monitor the current status of the tool\n */\ntool.on('progress', val =\u003e console.log('progress:', val))\ntool.on('status', (status, message) =\u003e console.log('status:', status, message))\n\n/**\n * Call notarize with the file path\n */\ntry {\n    await tool.notarize(process.env.FILE_PATH)\n    console.log('Success')\n} catch(error) {\n    console.log('Failed', error)\n}\n```\n\n## API\n\n### Initializing\n\n```js\nconst tool = new NotaryTool(options: NotaryToolConfig)\n```\n\nCreates an new tool instance that can handle notarizing multiple times\n\nOptions are:\n\n- @string `appleApiKey` The file path to the AuthKey_{id}.p8 file from the App Store\n- @string `appleApiKeyId` The {id} of the AuthKey file\n- @string `appleApiIssuerId` The issuer ID provided by the App Store\n- @boolean? `ignoreStaple` If enabled on macOS, staple stage will be skipped\n\n### Methods\n\n#### `await tool.notarize(filePath: string)`\n\nBegins the file notarization process. Function returns a void on success and throws errors\n\n### Events\n\n#### `tool.on('progress', (val: number) =\u003e console.log(val))`\n\nProvides progress of process from 0.0 to 1.0. Value will hang around 0.75 whilst response from App Store is provided.\n\n#### `tool.on('status', (status: NotaryToolStatus, message: string | undefined) =\u003e console.log(status, message))`\n\nProvides a status value and optional readable message where applicable.\n\n\n### Enums\n\n#### NotaryToolStatus\n\n```js\nenum NotaryToolStatus {\n    BeginUpload     = 'begin_upload',\n    Uploaded        = 'uploaded',\n    Invalid         = 'invalid',\n    InProgress      = 'in_progress',\n    Complete        = 'complete'\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonlxltd%2Fnotarytool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonlxltd%2Fnotarytool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonlxltd%2Fnotarytool/lists"}