@forge/bridge 5.18.0-next.1-experimental-44b7a12 → 6.0.0-next.3
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.
- package/CHANGELOG.md +14 -9
- package/out/invoke/invoke.d.ts +3 -3
- package/out/invoke/invoke.d.ts.map +1 -1
- package/out/invoke/invoke.js +32 -4
- package/out/invoke-endpoint/invoke-remote.d.ts +1 -1
- package/out/invoke-endpoint/invoke-remote.d.ts.map +1 -1
- package/out/invoke-endpoint/invoke-service.d.ts +1 -1
- package/out/invoke-endpoint/invoke-service.d.ts.map +1 -1
- package/out/types.d.ts +23 -1
- package/out/types.d.ts.map +1 -1
- package/package.json +15 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
# @forge/bridge
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 6.0.0-next.3
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### Major Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- 78fcb7f: Adds support for TypeScript 5
|
|
8
8
|
|
|
9
9
|
### Patch Changes
|
|
10
10
|
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
11
|
+
- Updated dependencies [78fcb7f]
|
|
12
|
+
- @forge/egress@3.0.0-next.0
|
|
13
|
+
- @forge/i18n@1.0.0-next.0
|
|
14
|
+
- @forge/manifest@13.0.0-next.2
|
|
15
|
+
- @forge/resolver@2.0.0-next.0
|
|
16
|
+
|
|
17
|
+
## 5.18.0-next.2
|
|
18
|
+
|
|
19
|
+
### Minor Changes
|
|
20
|
+
|
|
21
|
+
- cea3c0e: Updates the invoke method to accept an argument `metadata` which returns selected metadata alongside the invocation response body. When enabled, the invoke method will return a response of shape { body, metadata }. The `metadata` argument is currently set-up to opt into returning rate limiting information. This can be enabled by passing in { rateLimitProperties: true } as the metadata argument.
|
|
17
22
|
|
|
18
23
|
## 5.18.0-next.1
|
|
19
24
|
|
package/out/invoke/invoke.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Definitions, DefArguments, DefResult } from '@forge/resolver/shared';
|
|
2
|
-
import { InvokePayload, InvokeResponse } from '../types';
|
|
2
|
+
import { InvokeMetadata, InvokePayload, InvokeResponse } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* Calls a resolver function with explicit payload and return types.
|
|
5
5
|
*
|
|
@@ -11,14 +11,14 @@ import { InvokePayload, InvokeResponse } from '../types';
|
|
|
11
11
|
* type Response = { message: string };
|
|
12
12
|
* const response = await invoke<Payload, Response>('greet', { name: 'Taylor' });
|
|
13
13
|
*/
|
|
14
|
-
export declare function invoke<Payload extends InvokePayload, T = InvokeResponse>(functionKey: string, payload: Payload): Promise<T
|
|
14
|
+
export declare function invoke<Payload extends InvokePayload, T = InvokeResponse>(functionKey: string, payload: Payload, metadata?: InvokeMetadata): Promise<InvokeResponse<T>>;
|
|
15
15
|
/**
|
|
16
16
|
* Calls a resolver function using the legacy generic form where the type argument is the return type.
|
|
17
17
|
*
|
|
18
18
|
* @example
|
|
19
19
|
* const response = await invoke<{ message: string }>('greet', { name: 'Taylor' });
|
|
20
20
|
*/
|
|
21
|
-
export declare function invoke<T = InvokeResponse>(functionKey: string, payload?: InvokePayload): Promise<T
|
|
21
|
+
export declare function invoke<T = InvokeResponse>(functionKey: string, payload?: InvokePayload, metadata?: InvokeMetadata): Promise<InvokeResponse<T>>;
|
|
22
22
|
declare type Invoke<Defs extends Definitions> = <Def extends keyof Defs & string>(call: Def, ...arg: DefArguments<Defs, Def>) => Promise<DefResult<Defs, Def>>;
|
|
23
23
|
/**
|
|
24
24
|
* Specialises the invoke function to a given Definitions type.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../src/invoke/invoke.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAInF,OAAO,
|
|
1
|
+
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../src/invoke/invoke.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAInF,OAAO,EACL,cAAc,EACd,aAAa,EAEb,cAAc,EAEf,MAAM,UAAU,CAAC;AAyElB;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,OAAO,SAAS,aAAa,EAAE,CAAC,GAAG,cAAc,EACtE,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9B;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,GAAG,cAAc,EACvC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,EACvB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAa9B,aAAK,MAAM,CAAC,IAAI,SAAS,WAAW,IAAI,CAAC,GAAG,SAAS,MAAM,IAAI,GAAG,MAAM,EACtE,IAAI,EAAE,GAAG,EACT,GAAG,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,KAC5B,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AAEnC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,SAAS,WAAW,KAAK,MAAM,CAAC,IAAI,CAAC,CAEnE"}
|
package/out/invoke/invoke.js
CHANGED
|
@@ -12,19 +12,47 @@ const validatePayload = (payload) => {
|
|
|
12
12
|
throw new errors_1.BridgeAPIError('Passing functions as part of the payload is not supported!');
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* While the rate limit metadata feature is being rolled out, the bridge may return either
|
|
17
|
+
* the resolver body directly or an object of shape `{ body, metadata }`, where the
|
|
18
|
+
* rate limit fields are reported under `metadata`.
|
|
19
|
+
*/
|
|
20
|
+
const isMetadataWrappedResponse = (response) => {
|
|
21
|
+
if (typeof response !== 'object' || response === null) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const keys = Object.keys(response);
|
|
25
|
+
return keys.length === 2 && keys.includes('body') && keys.includes('metadata');
|
|
26
|
+
};
|
|
27
|
+
const _invoke = async (functionKey, payload, metadata) => {
|
|
28
|
+
var _a;
|
|
16
29
|
if (typeof functionKey !== 'string') {
|
|
17
30
|
throw new errors_1.BridgeAPIError('functionKey must be a string!');
|
|
18
31
|
}
|
|
19
32
|
validatePayload(payload);
|
|
20
|
-
|
|
33
|
+
const response = await callBridge('invoke', { functionKey, payload });
|
|
34
|
+
// If metadata is requested, return the response wrapped in metadata.
|
|
35
|
+
if (metadata) {
|
|
36
|
+
// If the bridge response is not wrapped in metadata, return the metadata field as undefined.
|
|
37
|
+
if (!isMetadataWrappedResponse(response)) {
|
|
38
|
+
return { body: response, metadata: undefined };
|
|
39
|
+
}
|
|
40
|
+
const requestedMetadataKeys = Object.keys(metadata !== null && metadata !== void 0 ? metadata : {}).filter((key) => (metadata === null || metadata === void 0 ? void 0 : metadata[key]) === true);
|
|
41
|
+
const responseMetadata = {};
|
|
42
|
+
for (const key of requestedMetadataKeys) {
|
|
43
|
+
responseMetadata[key] = (_a = response.metadata) === null || _a === void 0 ? void 0 : _a[key];
|
|
44
|
+
}
|
|
45
|
+
return { body: response.body, metadata: responseMetadata };
|
|
46
|
+
}
|
|
47
|
+
// If metadata is not requested, return the response directly.
|
|
48
|
+
return (isMetadataWrappedResponse(response) ? response.body : response);
|
|
21
49
|
};
|
|
22
50
|
const limitedInvoke = (0, utils_1.withRateLimiter)(_invoke, 500, 1000 * 25, 'Resolver calls are rate limited at 500req/25s');
|
|
23
51
|
/**
|
|
24
52
|
* Calls a backend resolver function by key.
|
|
25
53
|
*/
|
|
26
|
-
function invoke(functionKey, payload) {
|
|
27
|
-
return limitedInvoke(functionKey, payload);
|
|
54
|
+
function invoke(functionKey, payload, metadata) {
|
|
55
|
+
return limitedInvoke(functionKey, payload, metadata);
|
|
28
56
|
}
|
|
29
57
|
exports.invoke = invoke;
|
|
30
58
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { InvokeEndpointInput } from './invoke-endpoint';
|
|
2
2
|
export declare type InvokeRemoteInput = InvokeEndpointInput;
|
|
3
|
-
export declare const invokeRemote: (input: InvokeRemoteInput) => Promise<import("../types").InvokeResponse
|
|
3
|
+
export declare const invokeRemote: (input: InvokeRemoteInput) => Promise<import("../types").InvokeResponse<import("../types").InvokeResponseBody>>;
|
|
4
4
|
//# sourceMappingURL=invoke-remote.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke-remote.d.ts","sourceRoot":"","sources":["../../src/invoke-endpoint/invoke-remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAc,MAAM,mBAAmB,CAAC;AAEvF,oBAAY,iBAAiB,GAAG,mBAAmB,CAAC;AAEpD,eAAO,MAAM,YAAY,UAAW,iBAAiB
|
|
1
|
+
{"version":3,"file":"invoke-remote.d.ts","sourceRoot":"","sources":["../../src/invoke-endpoint/invoke-remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAc,MAAM,mBAAmB,CAAC;AAEvF,oBAAY,iBAAiB,GAAG,mBAAmB,CAAC;AAEpD,eAAO,MAAM,YAAY,UAAW,iBAAiB,sFAIpD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { InvokeEndpointInput } from './invoke-endpoint';
|
|
2
2
|
export declare type InvokeServiceInput = InvokeEndpointInput;
|
|
3
|
-
export declare const invokeService: (input: InvokeServiceInput) => Promise<import("../types").InvokeResponse
|
|
3
|
+
export declare const invokeService: (input: InvokeServiceInput) => Promise<import("../types").InvokeResponse<import("../types").InvokeResponseBody>>;
|
|
4
4
|
//# sourceMappingURL=invoke-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke-service.d.ts","sourceRoot":"","sources":["../../src/invoke-endpoint/invoke-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAc,MAAM,mBAAmB,CAAC;AAEvF,oBAAY,kBAAkB,GAAG,mBAAmB,CAAC;AAErD,eAAO,MAAM,aAAa,UAAW,kBAAkB
|
|
1
|
+
{"version":3,"file":"invoke-service.d.ts","sourceRoot":"","sources":["../../src/invoke-endpoint/invoke-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAc,MAAM,mBAAmB,CAAC;AAEvF,oBAAY,kBAAkB,GAAG,mBAAmB,CAAC;AAErD,eAAO,MAAM,aAAa,UAAW,kBAAkB,sFAItD,CAAC"}
|
package/out/types.d.ts
CHANGED
|
@@ -4,7 +4,29 @@ import { type Scopes, type External } from '@forge/manifest';
|
|
|
4
4
|
export declare type InvokePayload = {
|
|
5
5
|
[key in number | string]: any;
|
|
6
6
|
};
|
|
7
|
-
export declare type
|
|
7
|
+
export declare type InvokeResponseBody = Record<string, any> | void;
|
|
8
|
+
export declare type RateLimitProperties = {
|
|
9
|
+
rateLimitRemaining?: number;
|
|
10
|
+
rateLimitReset?: number;
|
|
11
|
+
rateLimitLimit?: number;
|
|
12
|
+
};
|
|
13
|
+
declare type InvokeMetadataDefinition = {
|
|
14
|
+
rateLimitProperties: {
|
|
15
|
+
request: boolean;
|
|
16
|
+
response: RateLimitProperties;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export declare type InvokeMetadata = {
|
|
20
|
+
[K in keyof InvokeMetadataDefinition]?: InvokeMetadataDefinition[K]['request'];
|
|
21
|
+
};
|
|
22
|
+
export declare type InvokeResponseMetadata = {
|
|
23
|
+
[K in keyof InvokeMetadataDefinition]?: InvokeMetadataDefinition[K]['response'];
|
|
24
|
+
};
|
|
25
|
+
export declare type InvokeResponseWithMetadata<T = InvokeResponseBody> = {
|
|
26
|
+
body: T;
|
|
27
|
+
metadata?: InvokeResponseMetadata;
|
|
28
|
+
};
|
|
29
|
+
export declare type InvokeResponse<T = InvokeResponseBody> = T | InvokeResponseWithMetadata<T>;
|
|
8
30
|
declare type FetchResponse = {
|
|
9
31
|
body?: string;
|
|
10
32
|
headers: {
|
package/out/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE7D,oBAAY,aAAa,GAAG;KACzB,GAAG,IAAI,MAAM,GAAG,MAAM,GAAG,GAAG;CAC9B,CAAC;AAEF,oBAAY,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forge/bridge",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-next.3",
|
|
4
4
|
"description": "Forge bridge API for custom UI apps",
|
|
5
5
|
"author": "Atlassian",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
@@ -15,18 +15,19 @@
|
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@atlaskit/adf-schema": "^48.0.0",
|
|
17
17
|
"@atlaskit/tokens": "^1.58.0",
|
|
18
|
-
"@forge/egress": "^
|
|
19
|
-
"@forge/i18n": "0.0.
|
|
20
|
-
"@forge/resolver": "
|
|
18
|
+
"@forge/egress": "^3.0.0-next.0",
|
|
19
|
+
"@forge/i18n": "1.0.0-next.0",
|
|
20
|
+
"@forge/resolver": "2.0.0-next.0",
|
|
21
21
|
"@types/history": "^4.7.11",
|
|
22
|
-
"@forge/manifest": "
|
|
22
|
+
"@forge/manifest": "13.0.0-next.2",
|
|
23
23
|
"@types/iframe-resizer": "^3.5.8",
|
|
24
24
|
"iframe-resizer": "^4.4.5"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"history": "5.3.0",
|
|
28
28
|
"isomorphic-fetch": "^3.0.0",
|
|
29
|
-
"jest-date-mock": "1.0.10"
|
|
29
|
+
"jest-date-mock": "1.0.10",
|
|
30
|
+
"typescript": "5.9.2"
|
|
30
31
|
},
|
|
31
32
|
"exports": {
|
|
32
33
|
".": {
|
|
@@ -40,5 +41,13 @@
|
|
|
40
41
|
},
|
|
41
42
|
"publishConfig": {
|
|
42
43
|
"registry": "https://packages.atlassian.com/api/npm/npm-public/"
|
|
44
|
+
},
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"typescript": ">=5.0.0"
|
|
47
|
+
},
|
|
48
|
+
"peerDependenciesMeta": {
|
|
49
|
+
"typescript": {
|
|
50
|
+
"optional": true
|
|
51
|
+
}
|
|
43
52
|
}
|
|
44
53
|
}
|