npm package diff

Package: @forge/api

Versions: 3.9.1-experimental-8f73b3e - 3.9.2-next.0

Modified:package/out/runtime/fetch-and-storage.js

Index: package/out/runtime/fetch-and-storage.js
===================================================================
--- package/out/runtime/fetch-and-storage.js
+++ package/out/runtime/fetch-and-storage.js
@@ -29,9 +29,9 @@
             case 'user':
                 return sandboxApi.asUser().__requestAtlassian;
         }
     }
-    return (0, fetch_1.__fetchProduct)({ provider, remote: 'stargate' });
+    return (0, fetch_1.fetchProduct)({ provider, remote: 'stargate' });
 }
 exports.getRequestStargate = getRequestStargate;
 exports.__requestAtlassianAsApp = getRequestStargate('app');
 exports.__requestAtlassianAsUser = getRequestStargate('user');

Modified:package/out/api/fetch.js

Index: package/out/api/fetch.js
===================================================================
--- package/out/api/fetch.js
+++ package/out/api/fetch.js
@@ -1,7 +1,7 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.getSandboxRuntimeAPI = exports.getNodeRuntimeAPI = exports.addMagicAgent = exports.handleProxyResponseErrors = exports.getForgeProxyError = exports.createRemoteUrlWithPath = exports.fetchRemote = exports.__fetchProduct = void 0;
+exports.getSandboxRuntimeAPI = exports.getNodeRuntimeAPI = exports.addMagicAgent = exports.handleProxyResponseErrors = exports.getForgeProxyError = exports.createRemoteUrlWithPath = exports.fetchRemote = exports.fetchProduct = void 0;
 const tslib_1 = require("tslib");
 const node_fetch_1 = tslib_1.__importStar(require("node-fetch"));
 const _1 = require(".");
 const runtime_1 = require("./runtime");
@@ -17,21 +17,20 @@
     finally {
         timer.stop();
     }
 }
-function __fetchProduct(args) {
+function fetchProduct(args) {
     return async (path, init) => {
         const url = productURL(args.remote, path);
         init = (0, exports.addMagicAgent)(init);
-        if (!hasAuthorizationHeader(init.headers)) {
-            init.headers = { ...init.headers, authorization: `Forge ${args.provider}` };
-        }
+        const defaultHeaders = getDefaultHeaders(init.headers, args);
+        init.headers = { ...init.headers, ...defaultHeaders };
         const response = await (0, node_fetch_1.default)(url, init);
         (0, exports.handleProxyResponseErrors)(response);
         return response;
     };
 }
-exports.__fetchProduct = __fetchProduct;
+exports.fetchProduct = fetchProduct;
 function fetchRemote(args) {
     return async (path, init) => {
         const remoteUrl = createRemoteUrlWithPath(`https://${args.remote}`, path);
         init = (0, exports.addMagicAgent)(init, 'EXTERNAL_AUTH_REQUEST');
@@ -84,12 +83,18 @@
         throw new errors_1.ProxyRequestError(response.status, errorReason);
     }
 };
 exports.handleProxyResponseErrors = handleProxyResponseErrors;
-const hasAuthorizationHeader = (headersInit) => {
-    if (!headersInit)
-        return false;
-    return new node_fetch_1.Headers(headersInit).has('authorization');
+const getDefaultHeaders = (headersInit, args) => {
+    let defaultHeaders = {};
+    const headers = new node_fetch_1.Headers(headersInit);
+    if (!headers.has('Content-Type')) {
+        defaultHeaders = { 'Content-Type': 'application/json' };
+    }
+    if (!headers.has('authorization')) {
+        defaultHeaders = { ...defaultHeaders, authorization: `Forge ${args.provider}` };
+    }
+    return defaultHeaders;
 };
 function productURL(remote, path) {
     if (!path.startsWith('/')) {
         path = '/' + path;
@@ -163,25 +168,25 @@
 };
 function getNodeRuntimeAPI() {
     return {
         fetch: (0, _1.wrapWithRouteUnwrapper)(node_fetch_1.default),
-        requestJira: (0, _1.wrapRequestProduct)(__fetchProduct({ provider: 'none', remote: 'jira' })),
-        requestConfluence: (0, _1.wrapRequestProduct)(__fetchProduct({ provider: 'none', remote: 'confluence' })),
-        requestBitbucket: (0, _1.wrapRequestProduct)(__fetchProduct({ provider: 'none', remote: 'bitbucket' })),
+        requestJira: (0, _1.wrapRequestProduct)(fetchProduct({ provider: 'none', remote: 'jira' })),
+        requestConfluence: (0, _1.wrapRequestProduct)(fetchProduct({ provider: 'none', remote: 'confluence' })),
+        requestBitbucket: (0, _1.wrapRequestProduct)(fetchProduct({ provider: 'none', remote: 'bitbucket' })),
         asUser: () => ({
-            requestJira: (0, _1.wrapRequestProduct)(__fetchProduct({ provider: 'user', remote: 'jira' })),
-            requestConfluence: (0, _1.wrapRequestProduct)(__fetchProduct({ provider: 'user', remote: 'confluence' })),
-            requestBitbucket: (0, _1.wrapRequestProduct)(__fetchProduct({ provider: 'user', remote: 'bitbucket' })),
-            requestGraph: (0, _1.wrapRequestGraph)(__fetchProduct({ provider: 'user', remote: 'stargate' })),
-            requestConnectedData: (0, _1.wrapRequestConnectedData)(__fetchProduct({ provider: 'user', remote: 'stargate' })),
+            requestJira: (0, _1.wrapRequestProduct)(fetchProduct({ provider: 'user', remote: 'jira' })),
+            requestConfluence: (0, _1.wrapRequestProduct)(fetchProduct({ provider: 'user', remote: 'confluence' })),
+            requestBitbucket: (0, _1.wrapRequestProduct)(fetchProduct({ provider: 'user', remote: 'bitbucket' })),
+            requestGraph: (0, _1.wrapRequestGraph)(fetchProduct({ provider: 'user', remote: 'stargate' })),
+            requestConnectedData: (0, _1.wrapRequestConnectedData)(fetchProduct({ provider: 'user', remote: 'stargate' })),
             withProvider
         }),
         asApp: () => ({
-            requestJira: (0, _1.wrapRequestProduct)(__fetchProduct({ provider: 'app', remote: 'jira' })),
-            requestConfluence: (0, _1.wrapRequestProduct)(__fetchProduct({ provider: 'app', remote: 'confluence' })),
-            requestBitbucket: (0, _1.wrapRequestProduct)(__fetchProduct({ provider: 'app', remote: 'bitbucket' })),
-            requestGraph: (0, _1.wrapRequestGraph)(__fetchProduct({ provider: 'app', remote: 'stargate' })),
-            requestConnectedData: (0, _1.wrapRequestConnectedData)(__fetchProduct({ provider: 'app', remote: 'stargate' }))
+            requestJira: (0, _1.wrapRequestProduct)(fetchProduct({ provider: 'app', remote: 'jira' })),
+            requestConfluence: (0, _1.wrapRequestProduct)(fetchProduct({ provider: 'app', remote: 'confluence' })),
+            requestBitbucket: (0, _1.wrapRequestProduct)(fetchProduct({ provider: 'app', remote: 'bitbucket' })),
+            requestGraph: (0, _1.wrapRequestGraph)(fetchProduct({ provider: 'app', remote: 'stargate' })),
+            requestConnectedData: (0, _1.wrapRequestConnectedData)(fetchProduct({ provider: 'app', remote: 'stargate' }))
         })
     };
 }
 exports.getNodeRuntimeAPI = getNodeRuntimeAPI;

Modified:package/out/index.js

Index: package/out/index.js
===================================================================
--- package/out/index.js
+++ package/out/index.js
@@ -1,7 +1,7 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.isExpectedError = 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.getAppContext = exports.routeFromAbsolute = exports.assumeTrustedRoute = exports.route = exports.SortOrder = exports.FilterConditions = exports.WhereConditions = exports.startsWith = exports.createRequestStargateAsApp = exports.__fetchProduct = exports.__requestAtlassianAsUser = exports.__requestAtlassianAsApp = exports.webTrigger = exports.properties = exports.storage = exports.store = exports.invokeRemote = exports.requestBitbucket = exports.requestConfluence = exports.requestJira = exports.fetch = exports.authorize = exports.asApp = exports.asUser = exports.privacy = void 0;
+exports.isExpectedError = 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.getAppContext = exports.routeFromAbsolute = exports.assumeTrustedRoute = exports.route = exports.SortOrder = exports.FilterConditions = exports.WhereConditions = exports.startsWith = exports.createRequestStargateAsApp = exports.__requestAtlassianAsUser = exports.__requestAtlassianAsApp = exports.webTrigger = exports.properties = exports.storage = exports.store = exports.invokeRemote = exports.requestBitbucket = exports.requestConfluence = exports.requestJira = exports.fetch = exports.authorize = exports.asApp = exports.asUser = exports.privacy = void 0;
 const storage_1 = require("@forge/storage");
 const authorization_1 = require("./authorization");
 Object.defineProperty(exports, "authorize", { enumerable: true, get: function () { return authorization_1.authorize; } });
 const properties_1 = require("./properties");
@@ -12,10 +12,8 @@
 Object.defineProperty(exports, "__requestAtlassianAsApp", { enumerable: true, get: function () { return fetch_and_storage_1.__requestAtlassianAsApp; } });
 Object.defineProperty(exports, "__requestAtlassianAsUser", { enumerable: true, get: function () { return fetch_and_storage_1.__requestAtlassianAsUser; } });
 const remote_1 = require("./api/remote");
 Object.defineProperty(exports, "invokeRemote", { enumerable: true, get: function () { return remote_1.invokeRemote; } });
-const fetch_1 = require("./api/fetch");
-Object.defineProperty(exports, "__fetchProduct", { enumerable: true, get: function () { return fetch_1.__fetchProduct; } });
 function withDeprecatedMessage(method, message) {
     const wrappedMethod = (...args) => {
         console.warn(message);
         return method(...args);

Modified:package/package.json

Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@forge/api",
-  "version": "3.9.1-experimental-8f73b3e",
+  "version": "3.9.2-next.0",
   "description": "Forge API methods",
   "author": "Atlassian",
   "license": "UNLICENSED",
   "main": "out/index.js",

Modified:package/out/runtime/fetch-and-storage.d.ts.map

Index: package/out/runtime/fetch-and-storage.d.ts.map
===================================================================
--- package/out/runtime/fetch-and-storage.d.ts.map
+++ package/out/runtime/fetch-and-storage.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"fetch-and-storage.d.ts","sourceRoot":"","sources":["../../src/runtime/fetch-and-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACjC,OAAO,EAA2D,YAAY,EAAE,MAAM,cAAc,CAAC;AAGrG,wBAAgB,aAAa,QAE5B;AAED,wBAAgB,WAAW,0BAO1B;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW,CAetE;AAED,eAAO,MAAM,uBAAuB,EAAE,WAAuC,CAAC;AAC9E,eAAO,MAAM,wBAAwB,EAAE,WAAwC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"fetch-and-storage.d.ts","sourceRoot":"","sources":["../../src/runtime/fetch-and-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACjC,OAAO,EAAyD,YAAY,EAAE,MAAM,cAAc,CAAC;AAGnG,wBAAgB,aAAa,QAE5B;AAED,wBAAgB,WAAW,0BAO1B;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW,CAetE;AAED,eAAO,MAAM,uBAAuB,EAAE,WAAuC,CAAC;AAC9E,eAAO,MAAM,wBAAwB,EAAE,WAAwC,CAAC"}
\ No newline at end of file

Modified:package/out/api/fetch.d.ts.map

Index: package/out/api/fetch.d.ts.map
===================================================================
--- package/out/api/fetch.d.ts.map
+++ package/out/api/fetch.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/api/fetch.ts"],"names":[],"mappings":"AAEA,OAAc,EAAE,WAAW,EAAE,QAAQ,EAAwB,MAAM,YAAY,CAAC;AAShF,OAAO,EAIL,QAAQ,EACR,WAAW,EAEZ,MAAM,IAAI,CAAC;AAKZ,oBAAY,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AACnD,aAAK,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC;AAE1E,aAAK,oBAAoB,GAAG,MAAM,CAAC;AACnC,aAAK,kBAAkB,GAAG,MAAM,CAAC;AAEjC,aAAK,SAAS,GAAG;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAC/D,aAAK,qBAAqB,GAAG;IAAE,QAAQ,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAuB7G,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,CAqB3D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,qBAAqB,GAAG,WAAW,CAgBpE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAc1E;AAyBD,eAAO,MAAM,kBAAkB,aAAc,QAAQ,kBAA8C,CAAC;AACpG,eAAO,MAAM,yBAAyB,aAAc,QAAQ,KAAG,IAa9D,CAAC;AAyEF,eAAO,MAAM,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,WAG1E,CAAC;AAkDH,wBAAgB,iBAAiB,IAAI,QAAQ,CAsB5C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,CAEvD"}
\ No newline at end of file
+{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/api/fetch.ts"],"names":[],"mappings":"AAEA,OAAc,EAAE,WAAW,EAAE,QAAQ,EAAwB,MAAM,YAAY,CAAC;AAShF,OAAO,EAIL,QAAQ,EACR,WAAW,EAEZ,MAAM,IAAI,CAAC;AAKZ,oBAAY,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AACnD,aAAK,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;AAElE,aAAK,oBAAoB,GAAG,MAAM,CAAC;AACnC,aAAK,kBAAkB,GAAG,MAAM,CAAC;AAEjC,aAAK,SAAS,GAAG;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAC/D,aAAK,qBAAqB,GAAG;IAAE,QAAQ,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAuB7G,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,CAqBzD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,qBAAqB,GAAG,WAAW,CAgBpE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAc1E;AAyBD,eAAO,MAAM,kBAAkB,aAAc,QAAQ,kBAA8C,CAAC;AACpG,eAAO,MAAM,yBAAyB,aAAc,QAAQ,KAAG,IAa9D,CAAC;AA8EF,eAAO,MAAM,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,WAG1E,CAAC;AAkDH,wBAAgB,iBAAiB,IAAI,QAAQ,CAsB5C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,CAEvD"}
\ No newline at end of file

Modified:package/out/index.d.ts.map

Index: package/out/index.d.ts.map
===================================================================
--- package/out/index.d.ts.map
+++ package/out/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file

Modified:package/CHANGELOG.md

Index: package/CHANGELOG.md
===================================================================
--- package/CHANGELOG.md
+++ package/CHANGELOG.md
@@ -1,11 +1,11 @@
 # @forge/api
 
-## 3.9.1-experimental-8f73b3e
+## 3.9.2-next.0
 
 ### Patch Changes
 
-- 023477c: Forge SQL SDK added
+- d3e9d37: Add default content-type as JSON in @forge/api product requests
 
 ## 3.9.1
 
 ### Patch Changes

Modified:package/out/api/fetch.d.ts

Index: package/out/api/fetch.d.ts
===================================================================
--- package/out/api/fetch.d.ts
+++ package/out/api/fetch.d.ts
@@ -1,8 +1,8 @@
 import { RequestInit, Response } from 'node-fetch';
 import { FetchAPI, FetchMethod } from '..';
 export declare type AuthProvider = 'app' | 'user' | 'none';
-declare type RemoteAPI = 'jira' | 'confluence' | 'stargate' | 'bitbucket' | 'sql';
+declare type RemoteAPI = 'jira' | 'confluence' | 'stargate' | 'bitbucket';
 declare type ExternalAuthProvider = string;
 declare type ExternalAuthRemote = string;
 declare type FetchArgs = {
     provider: AuthProvider;
@@ -12,9 +12,9 @@
     provider: ExternalAuthProvider;
     remote: ExternalAuthRemote;
     account: string;
 };
-export declare function __fetchProduct(args: FetchArgs): FetchMethod;
+export declare function fetchProduct(args: FetchArgs): FetchMethod;
 export declare function fetchRemote(args: ExternalAuthFetchArgs): FetchMethod;
 export declare function createRemoteUrlWithPath(baseUrl: string, path: string): URL;
 export declare const getForgeProxyError: (response: Response) => string | null;
 export declare const handleProxyResponseErrors: (response: Response) => void;

Modified:package/out/index.d.ts

Index: package/out/index.d.ts
===================================================================
--- package/out/index.d.ts
+++ package/out/index.d.ts
@@ -4,9 +4,8 @@
 import { Route } from './safeUrl';
 import { webTrigger } from './webTrigger';
 import { __requestAtlassianAsApp, __requestAtlassianAsUser } from './runtime/fetch-and-storage';
 import { invokeRemote } from './api/remote';
-import { __fetchProduct } from './api/fetch';
 export declare type APIResponse = Pick<Response, 'json' | 'text' | 'arrayBuffer' | 'ok' | 'status' | 'statusText' | 'headers'>;
 export declare type FetchMethod = (url: string, init?: RequestInit) => Promise<APIResponse>;
 export declare type FetchMethodAllowingRoute = (url: string | Route, init?: RequestInit) => Promise<APIResponse>;
 export declare type RequestProductMethod = (url: Route, init?: RequestInit) => Promise<APIResponse>;
@@ -90,9 +89,9 @@
 export declare const privacy: {
     reportPersonalData: (accounts: import("./privacy").Account[]) => Promise<import("./privacy").AccountUpdate[]>;
 };
 export default API;
-export { asUser, asApp, authorize, fetch, requestJira, requestConfluence, requestBitbucket, invokeRemote, store, storage, properties, webTrigger, __requestAtlassianAsApp, __requestAtlassianAsUser, __fetchProduct };
+export { asUser, asApp, authorize, fetch, requestJira, requestConfluence, requestBitbucket, invokeRemote, store, storage, properties, webTrigger, __requestAtlassianAsApp, __requestAtlassianAsUser };
 export declare const createRequestStargateAsApp: () => FetchMethod;
 export { QueryBuilder, QueryApi, EntityStorageApi, Condition, ListResult, Predicate, Result, Value, WherePredicate, FilterPredicate, startsWith, WhereConditions, FilterConditions, SortOrder } from '@forge/storage';
 export { route, assumeTrustedRoute, routeFromAbsolute, Route } from './safeUrl';
 export { ForgeRuntime, AppContext, getAppContext, __getRuntime } from './api/runtime';