@forge/bridge 5.18.0-next.1-experimental-44b7a12 → 5.18.0-next.2

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 CHANGED
@@ -1,19 +1,10 @@
1
1
  # @forge/bridge
2
2
 
3
- ## 5.18.0-next.1-experimental-44b7a12
3
+ ## 5.18.0-next.2
4
4
 
5
5
  ### Minor Changes
6
6
 
7
- - b0b69a2: **Experimental not yet ready for use.** Add a new `frontendCustomMetrics` namespace providing `frontendCustomMetrics.counter(name)` with `incr()` and `incrBy(value)` for emitting frontend custom metrics. `incrBy(value)` rejects if `value <= 0`. The metric name must exactly match a metric registered in the Forge Dev Console.
8
-
9
- ### Patch Changes
10
-
11
- - 561f8f4: Remove "storage" module from "@forge/api"
12
- - Updated dependencies [814b8fe]
13
- - Updated dependencies [8ac7dd3]
14
- - Updated dependencies [55c1371]
15
- - Updated dependencies [1a461c3]
16
- - @forge/manifest@12.10.0-next.1-experimental-44b7a12
7
+ - 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
8
 
18
9
  ## 5.18.0-next.1
19
10
 
@@ -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,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA+BzD;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,OAAO,SAAS,aAAa,EAAE,CAAC,GAAG,cAAc,EACtE,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,CAAC,CAAC,CAAC;AAEd;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,GAAG,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AASrG,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"}
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"}
@@ -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
- const _invoke = (functionKey, payload) => {
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
- return callBridge('invoke', { functionKey, payload });
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,+CAIpD,CAAC"}
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,+CAItD,CAAC"}
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 InvokeResponse = Record<string, any> | void;
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: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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": "5.18.0-next.1-experimental-44b7a12",
3
+ "version": "5.18.0-next.2",
4
4
  "description": "Forge bridge API for custom UI apps",
5
5
  "author": "Atlassian",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -19,7 +19,7 @@
19
19
  "@forge/i18n": "0.0.7",
20
20
  "@forge/resolver": "1.8.0",
21
21
  "@types/history": "^4.7.11",
22
- "@forge/manifest": "12.10.0-next.1-experimental-44b7a12",
22
+ "@forge/manifest": "12.10.0-next.1",
23
23
  "@types/iframe-resizer": "^3.5.8",
24
24
  "iframe-resizer": "^4.4.5"
25
25
  },