@vibexp/api-client 0.34.0 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -569,15 +569,18 @@ export declare const getGitHubStatus: <ThrowOnError extends boolean = false>(opt
569
569
  /**
570
570
  * Get GitHub App installation URL
571
571
  *
572
- * Returns a signed GitHub App installation URL with CSRF protection. Requires an active subscription.
572
+ * Returns a signed GitHub App installation URL with CSRF protection. Requires team owner/admin — the same permission as completing the callback, so a caller cannot start an install they would be refused at the end of. Requires an active subscription.
573
573
  */
574
574
  export declare const getGitHubInstallUrl: <ThrowOnError extends boolean = false>(options: Options<GetGitHubInstallUrlData, ThrowOnError>) => RequestResult<GetGitHubInstallUrlResponses, GetGitHubInstallUrlErrors, ThrowOnError>;
575
575
  /**
576
576
  * Handle GitHub App installation callback
577
577
  *
578
578
  * Completes the GitHub App installation flow after the user authorizes the app on GitHub.
579
- * The request must include the `installation_id` returned by GitHub and the signed `state`
580
- * parameter from the install URL to prevent CSRF attacks. Requires an active subscription.
579
+ * The request must include the `installation_id` returned by GitHub, the signed `state`
580
+ * parameter from the install URL (CSRF protection), and the `code` GitHub appends to the
581
+ * post-install redirect. The `code` is exchanged for a user access token and the
582
+ * installation is only bound to the team when that user has access to it on GitHub — a valid
583
+ * `state` alone is not sufficient. Requires team owner/admin and an active subscription.
581
584
  *
582
585
  */
583
586
  export declare const handleGitHubCallback: <ThrowOnError extends boolean = false>(options: Options<HandleGitHubCallbackData, ThrowOnError>) => RequestResult<HandleGitHubCallbackResponses, HandleGitHubCallbackErrors, ThrowOnError>;
@@ -1308,7 +1308,7 @@ export const getGitHubStatus = (options) => (options.client ?? client).get({
1308
1308
  /**
1309
1309
  * Get GitHub App installation URL
1310
1310
  *
1311
- * Returns a signed GitHub App installation URL with CSRF protection. Requires an active subscription.
1311
+ * Returns a signed GitHub App installation URL with CSRF protection. Requires team owner/admin — the same permission as completing the callback, so a caller cannot start an install they would be refused at the end of. Requires an active subscription.
1312
1312
  */
1313
1313
  export const getGitHubInstallUrl = (options) => (options.client ?? client).get({
1314
1314
  responseType: 'json',
@@ -1324,8 +1324,11 @@ export const getGitHubInstallUrl = (options) => (options.client ?? client).get({
1324
1324
  * Handle GitHub App installation callback
1325
1325
  *
1326
1326
  * Completes the GitHub App installation flow after the user authorizes the app on GitHub.
1327
- * The request must include the `installation_id` returned by GitHub and the signed `state`
1328
- * parameter from the install URL to prevent CSRF attacks. Requires an active subscription.
1327
+ * The request must include the `installation_id` returned by GitHub, the signed `state`
1328
+ * parameter from the install URL (CSRF protection), and the `code` GitHub appends to the
1329
+ * post-install redirect. The `code` is exchanged for a user access token and the
1330
+ * installation is only bound to the team when that user has access to it on GitHub — a valid
1331
+ * `state` alone is not sufficient. Requires team owner/admin and an active subscription.
1329
1332
  *
1330
1333
  */
1331
1334
  export const handleGitHubCallback = (options) => (options.client ?? client).post({
@@ -7860,7 +7860,7 @@ export type GetGitHubInstallUrlErrors = {
7860
7860
  */
7861
7861
  401: ErrorResponse;
7862
7862
  /**
7863
- * Forbidden - user does not have access to this team
7863
+ * Forbidden - user does not have access to this team, or is not a team owner/admin
7864
7864
  */
7865
7865
  403: ErrorResponse;
7866
7866
  /**
@@ -7890,6 +7890,10 @@ export type HandleGitHubCallbackData = {
7890
7890
  * HMAC-signed state parameter from the install URL (CSRF protection)
7891
7891
  */
7892
7892
  state: string;
7893
+ /**
7894
+ * OAuth authorization code from GitHub's post-install redirect. Exchanged server-side for a user access token to verify the caller has access to the installation on GitHub.
7895
+ */
7896
+ code: string;
7893
7897
  };
7894
7898
  path: {
7895
7899
  /**
@@ -7910,7 +7914,7 @@ export type HandleGitHubCallbackErrors = {
7910
7914
  */
7911
7915
  401: ErrorResponse;
7912
7916
  /**
7913
- * Forbidden - state does not match team or user lacks access
7917
+ * Forbidden - state does not match team, the caller is not a team owner/admin, or the caller has no access to the submitted GitHub App installation on GitHub
7914
7918
  */
7915
7919
  403: ErrorResponse;
7916
7920
  /**
@@ -7921,6 +7925,10 @@ export type HandleGitHubCallbackErrors = {
7921
7925
  * Internal server error
7922
7926
  */
7923
7927
  500: ErrorResponse;
7928
+ /**
7929
+ * GitHub App user authorization is not configured on this instance, so caller authority cannot be verified and the installation is not connected
7930
+ */
7931
+ 503: ErrorResponse;
7924
7932
  };
7925
7933
  export type HandleGitHubCallbackError = HandleGitHubCallbackErrors[keyof HandleGitHubCallbackErrors];
7926
7934
  export type HandleGitHubCallbackResponses = {
package/dist/schema.d.ts CHANGED
@@ -1351,7 +1351,7 @@ export interface paths {
1351
1351
  };
1352
1352
  /**
1353
1353
  * Get GitHub App installation URL
1354
- * @description Returns a signed GitHub App installation URL with CSRF protection. Requires an active subscription.
1354
+ * @description Returns a signed GitHub App installation URL with CSRF protection. Requires team owner/admin — the same permission as completing the callback, so a caller cannot start an install they would be refused at the end of. Requires an active subscription.
1355
1355
  */
1356
1356
  get: operations["getGitHubInstallURL"];
1357
1357
  put?: never;
@@ -1374,8 +1374,11 @@ export interface paths {
1374
1374
  /**
1375
1375
  * Handle GitHub App installation callback
1376
1376
  * @description Completes the GitHub App installation flow after the user authorizes the app on GitHub.
1377
- * The request must include the `installation_id` returned by GitHub and the signed `state`
1378
- * parameter from the install URL to prevent CSRF attacks. Requires an active subscription.
1377
+ * The request must include the `installation_id` returned by GitHub, the signed `state`
1378
+ * parameter from the install URL (CSRF protection), and the `code` GitHub appends to the
1379
+ * post-install redirect. The `code` is exchanged for a user access token and the
1380
+ * installation is only bound to the team when that user has access to it on GitHub — a valid
1381
+ * `state` alone is not sufficient. Requires team owner/admin and an active subscription.
1379
1382
  */
1380
1383
  post: operations["handleGitHubCallback"];
1381
1384
  delete?: never;
@@ -14080,7 +14083,7 @@ export interface operations {
14080
14083
  "application/problem+json": components["schemas"]["ErrorResponse"];
14081
14084
  };
14082
14085
  };
14083
- /** @description Forbidden - user does not have access to this team */
14086
+ /** @description Forbidden - user does not have access to this team, or is not a team owner/admin */
14084
14087
  403: {
14085
14088
  headers: {
14086
14089
  [name: string]: unknown;
@@ -14126,9 +14129,14 @@ export interface operations {
14126
14129
  setup_action?: string;
14127
14130
  /**
14128
14131
  * @description HMAC-signed state parameter from the install URL (CSRF protection)
14129
- * @example team-id:1234567890:signature
14132
+ * @example team-id:0:1234567890:signature
14130
14133
  */
14131
14134
  state: string;
14135
+ /**
14136
+ * @description OAuth authorization code from GitHub's post-install redirect. Exchanged server-side for a user access token to verify the caller has access to the installation on GitHub.
14137
+ * @example abc123def456
14138
+ */
14139
+ code: string;
14132
14140
  };
14133
14141
  };
14134
14142
  };
@@ -14160,7 +14168,7 @@ export interface operations {
14160
14168
  "application/problem+json": components["schemas"]["ErrorResponse"];
14161
14169
  };
14162
14170
  };
14163
- /** @description Forbidden - state does not match team or user lacks access */
14171
+ /** @description Forbidden - state does not match team, the caller is not a team owner/admin, or the caller has no access to the submitted GitHub App installation on GitHub */
14164
14172
  403: {
14165
14173
  headers: {
14166
14174
  [name: string]: unknown;
@@ -14187,6 +14195,15 @@ export interface operations {
14187
14195
  "application/problem+json": components["schemas"]["ErrorResponse"];
14188
14196
  };
14189
14197
  };
14198
+ /** @description GitHub App user authorization is not configured on this instance, so caller authority cannot be verified and the installation is not connected */
14199
+ 503: {
14200
+ headers: {
14201
+ [name: string]: unknown;
14202
+ };
14203
+ content: {
14204
+ "application/problem+json": components["schemas"]["ErrorResponse"];
14205
+ };
14206
+ };
14190
14207
  };
14191
14208
  };
14192
14209
  listGitHubRepositories: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibexp/api-client",
3
- "version": "0.34.0",
3
+ "version": "0.35.0",
4
4
  "description": "Typed VibeXP API client generated from the OpenAPI spec (openapi-fetch main entrypoint, axios SDK at ./axios)",
5
5
  "license": "MIT",
6
6
  "repository": {