@forge/api
Advanced tools
Comparing version 2.10.1-next.1 to 2.11.0-next.2
# @forge/api | ||
## 2.11.0-next.2 | ||
### Minor Changes | ||
- 3a1dd86: Move API errors to @forge/api package | ||
- df3811d: Handle NeedsAuthError returned from the proxy for Runtime v2 | ||
## 2.10.1-next.1 | ||
@@ -4,0 +11,0 @@ |
@@ -10,4 +10,6 @@ "use strict"; | ||
const egress_1 = require("@forge/egress"); | ||
const errors_1 = require("./errors"); | ||
const ATLASSIAN_TOKEN_SERVICE_KEY = 'atlassian-token-service-key'; | ||
const createProxyFetch = (provider, remote) => { | ||
return (url, options) => { | ||
return async (url, options) => { | ||
const { proxy } = (0, runtime_1.getRuntime)(); | ||
@@ -18,3 +20,10 @@ const request = new node_fetch_1.Request(url, options); | ||
proxyRequest.headers.set('Forge-Proxy-Authorization', `Bearer ${proxy.token}`); | ||
return (0, node_fetch_1.default)(proxyRequest); | ||
const response = await (0, node_fetch_1.default)(proxyRequest); | ||
if (response.headers.has('forge-proxy-error')) { | ||
if (response.headers.get('forge-proxy-error') === 'NEEDS_AUTHENTICATION_ERR') { | ||
throw new errors_1.NeedsAuthenticationError('Authentication Required', ATLASSIAN_TOKEN_SERVICE_KEY); | ||
} | ||
throw new errors_1.ProxyRequestError(response.status, response.headers.get('forge-proxy-error')); | ||
} | ||
return response; | ||
}; | ||
@@ -21,0 +30,0 @@ }; |
@@ -88,2 +88,3 @@ import { RequestInit, Response } from 'node-fetch'; | ||
export { ForgeRuntime, getRuntime } from './api/runtime'; | ||
export { NeedsAuthenticationError, ProxyRequestError, FetchError, ExternalEndpointNotAllowedError, ProductEndpointNotAllowedError, RequestProductNotAllowedError, NotAllowedError, InvalidWorkspaceRequestedError, HttpError, FUNCTION_ERR, isForgePlatformError, isHostedCodeError } from './api/errors'; | ||
//# sourceMappingURL=index.d.ts.map |
"use strict"; | ||
var _a; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getRuntime = exports.routeFromAbsolute = exports.assumeTrustedRoute = exports.route = exports.startsWith = exports.createRequestStargateAsApp = exports.webTrigger = exports.properties = exports.storage = exports.store = exports.requestBitbucket = exports.requestConfluence = exports.requestJira = exports.fetch = exports.authorize = exports.asApp = exports.asUser = exports.privacy = void 0; | ||
exports.isHostedCodeError = exports.isForgePlatformError = exports.FUNCTION_ERR = exports.HttpError = exports.InvalidWorkspaceRequestedError = exports.NotAllowedError = exports.RequestProductNotAllowedError = exports.ProductEndpointNotAllowedError = exports.ExternalEndpointNotAllowedError = exports.FetchError = exports.ProxyRequestError = exports.NeedsAuthenticationError = exports.getRuntime = exports.routeFromAbsolute = exports.assumeTrustedRoute = exports.route = exports.startsWith = exports.createRequestStargateAsApp = exports.webTrigger = exports.properties = exports.storage = exports.store = exports.requestBitbucket = exports.requestConfluence = exports.requestJira = exports.fetch = exports.authorize = exports.asApp = exports.asUser = exports.privacy = void 0; | ||
const storage_1 = require("@forge/storage"); | ||
@@ -61,1 +61,14 @@ const authorization_1 = require("./authorization"); | ||
Object.defineProperty(exports, "getRuntime", { enumerable: true, get: function () { return runtime_1.getRuntime; } }); | ||
var errors_1 = require("./api/errors"); | ||
Object.defineProperty(exports, "NeedsAuthenticationError", { enumerable: true, get: function () { return errors_1.NeedsAuthenticationError; } }); | ||
Object.defineProperty(exports, "ProxyRequestError", { enumerable: true, get: function () { return errors_1.ProxyRequestError; } }); | ||
Object.defineProperty(exports, "FetchError", { enumerable: true, get: function () { return errors_1.FetchError; } }); | ||
Object.defineProperty(exports, "ExternalEndpointNotAllowedError", { enumerable: true, get: function () { return errors_1.ExternalEndpointNotAllowedError; } }); | ||
Object.defineProperty(exports, "ProductEndpointNotAllowedError", { enumerable: true, get: function () { return errors_1.ProductEndpointNotAllowedError; } }); | ||
Object.defineProperty(exports, "RequestProductNotAllowedError", { enumerable: true, get: function () { return errors_1.RequestProductNotAllowedError; } }); | ||
Object.defineProperty(exports, "NotAllowedError", { enumerable: true, get: function () { return errors_1.NotAllowedError; } }); | ||
Object.defineProperty(exports, "InvalidWorkspaceRequestedError", { enumerable: true, get: function () { return errors_1.InvalidWorkspaceRequestedError; } }); | ||
Object.defineProperty(exports, "HttpError", { enumerable: true, get: function () { return errors_1.HttpError; } }); | ||
Object.defineProperty(exports, "FUNCTION_ERR", { enumerable: true, get: function () { return errors_1.FUNCTION_ERR; } }); | ||
Object.defineProperty(exports, "isForgePlatformError", { enumerable: true, get: function () { return errors_1.isForgePlatformError; } }); | ||
Object.defineProperty(exports, "isHostedCodeError", { enumerable: true, get: function () { return errors_1.isHostedCodeError; } }); |
{ | ||
"name": "@forge/api", | ||
"version": "2.10.1-next.1", | ||
"version": "2.11.0-next.2", | ||
"description": "Forge API methods", | ||
@@ -5,0 +5,0 @@ "author": "Atlassian", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
66429
66
851