"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // pkg/dist-src/index.js var dist_src_exports = {}; __export(dist_src_exports, { App: () => App, createNodeMiddleware: () => createNodeMiddleware }); module.exports = __toCommonJS(dist_src_exports); var import_core5 = require("@octokit/core"); var import_auth_app3 = require("@octokit/auth-app"); var import_oauth_app2 = require("@octokit/oauth-app"); var import_webhooks3 = require("@octokit/webhooks"); // pkg/dist-src/version.js var VERSION = "14.0.2"; // pkg/dist-src/webhooks.js var import_core = require("@octokit/core"); var import_auth_app = require("@octokit/auth-app"); var import_auth_unauthenticated = require("@octokit/auth-unauthenticated"); var import_webhooks = require("@octokit/webhooks"); function webhooks(appOctokit, options) { return new import_webhooks.Webhooks({ secret: options.secret, transform: async (event) => { if (!("installation" in event.payload) || typeof event.payload.installation !== "object") { const octokit2 = new appOctokit.constructor({ authStrategy: import_auth_unauthenticated.createUnauthenticatedAuth, auth: { reason: `"installation" key missing in webhook event payload` } }); return { ...event, octokit: octokit2 }; } const installationId = event.payload.installation.id; const octokit = await appOctokit.auth({ type: "installation", installationId, factory(auth) { return new auth.octokit.constructor({ ...auth.octokitOptions, authStrategy: import_auth_app.createAppAuth, ...{ auth: { ...auth, installationId } } }); } }); octokit.hook.before("request", (options2) => { options2.headers["x-github-delivery"] = event.id; }); return { ...event, octokit }; } }); } // pkg/dist-src/each-installation.js var import_plugin_paginate_rest = require("@octokit/plugin-paginate-rest"); var import_core3 = require("@octokit/core"); // pkg/dist-src/get-installation-octokit.js var import_auth_app2 = require("@octokit/auth-app"); var import_core2 = require("@octokit/core"); async function getInstallationOctokit(app, installationId) { return app.octokit.auth({ type: "installation", installationId, factory(auth) { const options = { ...auth.octokitOptions, authStrategy: import_auth_app2.createAppAuth, ...{ auth: { ...auth, installationId } } }; return new auth.octokit.constructor(options); } }); } // pkg/dist-src/each-installation.js function eachInstallationFactory(app) { return Object.assign(eachInstallation.bind(null, app), { iterator: eachInstallationIterator.bind(null, app) }); } async function eachInstallation(app, callback) { const i = eachInstallationIterator(app)[Symbol.asyncIterator](); let result = await i.next(); while (!result.done) { await callback(result.value); result = await i.next(); } } function eachInstallationIterator(app) { return { async *[Symbol.asyncIterator]() { const iterator = import_plugin_paginate_rest.composePaginateRest.iterator( app.octokit, "GET /app/installations" ); for await (const { data: installations } of iterator) { for (const installation of installations) { const installationOctokit = await getInstallationOctokit( app, installation.id ); yield { octokit: installationOctokit, installation }; } } } }; } // pkg/dist-src/each-repository.js var import_plugin_paginate_rest2 = require("@octokit/plugin-paginate-rest"); var import_core4 = require("@octokit/core"); function eachRepositoryFactory(app) { return Object.assign(eachRepository.bind(null, app), { iterator: eachRepositoryIterator.bind(null, app) }); } async function eachRepository(app, queryOrCallback, callback) { const i = eachRepositoryIterator( app, callback ? queryOrCallback : void 0 )[Symbol.asyncIterator](); let result = await i.next(); while (!result.done) { if (callback) { await callback(result.value); } else { await queryOrCallback(result.value); } result = await i.next(); } } function singleInstallationIterator(app, installationId) { return { async *[Symbol.asyncIterator]() { yield { octokit: await app.getInstallationOctokit(installationId) }; } }; } function eachRepositoryIterator(app, query) { return { async *[Symbol.asyncIterator]() { const iterator = query ? singleInstallationIterator(app, query.installationId) : app.eachInstallation.iterator(); for await (const { octokit } of iterator) { const repositoriesIterator = import_plugin_paginate_rest2.composePaginateRest.iterator( octokit, "GET /installation/repositories" ); for await (const { data: repositories } of repositoriesIterator) { for (const repository of repositories) { yield { octokit, repository }; } } } } }; } // pkg/dist-src/middleware/node/index.js var import_oauth_app = require("@octokit/oauth-app"); var import_webhooks2 = require("@octokit/webhooks"); function noop() { } function createNodeMiddleware(app, options = {}) { const log = Object.assign( { debug: noop, info: noop, warn: console.warn.bind(console), error: console.error.bind(console) }, options.log ); const optionsWithDefaults = { pathPrefix: "/api/github", ...options, log }; const webhooksMiddleware = (0, import_webhooks2.createNodeMiddleware)(app.webhooks, { path: optionsWithDefaults.pathPrefix + "/webhooks", log }); const oauthMiddleware = (0, import_oauth_app.createNodeMiddleware)(app.oauth, { pathPrefix: optionsWithDefaults.pathPrefix + "/oauth" }); return middleware.bind( null, optionsWithDefaults.pathPrefix, webhooksMiddleware, oauthMiddleware ); } async function middleware(pathPrefix, webhooksMiddleware, oauthMiddleware, request, response, next) { const { pathname } = new URL(request.url, "http://localhost"); if (pathname.startsWith(`${pathPrefix}/`)) { if (pathname === `${pathPrefix}/webhooks`) { webhooksMiddleware(request, response); } else if (pathname.startsWith(`${pathPrefix}/oauth/`)) { oauthMiddleware(request, response); } else { (0, import_oauth_app.sendNodeResponse)((0, import_oauth_app.unknownRouteResponse)(request), response); } return true; } else { next == null ? void 0 : next(); return false; } } // pkg/dist-src/index.js var _App = class _App { static defaults(defaults) { const AppWithDefaults = class extends this { constructor(...args) { super({ ...defaults, ...args[0] }); } }; return AppWithDefaults; } constructor(options) { const Octokit5 = options.Octokit || import_core5.Octokit; const authOptions = Object.assign( { appId: options.appId, privateKey: options.privateKey }, options.oauth ? { clientId: options.oauth.clientId, clientSecret: options.oauth.clientSecret } : {} ); this.octokit = new Octokit5({ authStrategy: import_auth_app3.createAppAuth, auth: authOptions, log: options.log }); this.log = Object.assign( { debug: () => { }, info: () => { }, warn: console.warn.bind(console), error: console.error.bind(console) }, options.log ); if (options.webhooks) { this.webhooks = webhooks(this.octokit, options.webhooks); } else { Object.defineProperty(this, "webhooks", { get() { throw new Error("[@octokit/app] webhooks option not set"); } }); } if (options.oauth) { this.oauth = new import_oauth_app2.OAuthApp({ ...options.oauth, clientType: "github-app", Octokit: Octokit5 }); } else { Object.defineProperty(this, "oauth", { get() { throw new Error( "[@octokit/app] oauth.clientId / oauth.clientSecret options are not set" ); } }); } this.getInstallationOctokit = getInstallationOctokit.bind( null, this ); this.eachInstallation = eachInstallationFactory( this ); this.eachRepository = eachRepositoryFactory( this ); } }; _App.VERSION = VERSION; var App = _App; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { App, createNodeMiddleware });