@forge/api 6.1.1-experimental-73629cc → 6.1.1-experimental-3ed5db1

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,12 +1,11 @@
1
1
  # @forge/api
2
2
 
3
- ## 6.1.1-experimental-73629cc
3
+ ## 6.1.1-experimental-3ed5db1
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - fe2852a: Added backend SDK for permission handling
8
- - Updated dependencies [fe2852a]
9
- - @forge/manifest@10.4.0-experimental-73629cc
7
+ - Updated dependencies [c76782c]
8
+ - @forge/storage@2.0.2-experimental-3ed5db1
10
9
 
11
10
  ## 6.1.1
12
11
 
@@ -5,7 +5,6 @@ export declare const NEEDS_AUTHENTICATION_ERR = "NEEDS_AUTHENTICATION_ERR";
5
5
  export declare const INVALID_REMOTE_ERR = "INVALID_REMOTE_ERR";
6
6
  export declare const INVALID_CONTAINER_SERVICE_ERR = "INVALID_CONTAINER_SERVICE_ERR";
7
7
  export declare const PROXY_ERR = "PROXY_ERR";
8
- export declare const API_NOT_READY_ERR = "API_NOT_READY_ERR";
9
8
  export declare function isForgePlatformError(err: Error): boolean;
10
9
  export declare function isHostedCodeError(err: Error | string): boolean;
11
10
  export declare function isExpectedError(err: Error): boolean;
@@ -53,7 +52,4 @@ export declare class ProxyRequestError extends HttpError {
53
52
  errorCode: string;
54
53
  constructor(status: number, errorCode: string);
55
54
  }
56
- export declare class ApiNotReadyError extends Error {
57
- constructor(message?: string);
58
- }
59
55
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/api/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAC3E,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AACnE,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,6BAA6B,kCAAkC,CAAC;AAC7E,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,KAAK,WAQ9C;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,WAIpD;AAKD,wBAAgB,eAAe,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAEnD;AAED,qBAAa,SAAU,SAAQ,KAAK;IAClC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;gBACf,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,UAAW,SAAQ,KAAK;gBACvB,KAAK,EAAE,MAAM;CAK1B;AAED,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,OAAO,EAAE,MAAM;CAM5B;AAED,qBAAa,+BAAgC,SAAQ,eAAe;gBACtD,SAAS,EAAE,MAAM;CAK9B;AAED,qBAAa,8BAA+B,SAAQ,eAAe;gBACrD,SAAS,EAAE,MAAM;CAG9B;AAED,qBAAa,6BAA8B,SAAQ,eAAe;gBACpD,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;CAGhE;AAED,qBAAa,8BAA+B,SAAQ,eAAe;gBACrD,SAAS,EAAE,MAAM;CAG9B;AAED,MAAM,WAAW,+BAA+B;IAI9C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAKlB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,wBAAyB,SAAQ,SAAS;aAGnC,UAAU,EAAE,MAAM;aAClB,OAAO,CAAC;gBAFxB,KAAK,EAAE,MAAM,EACG,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,6CAAiC;CAO5D;AAED,qBAAa,kBAAmB,SAAQ,SAAS;aAG7B,SAAS,EAAE,MAAM;gBADjC,KAAK,EAAE,MAAM,EACG,SAAS,EAAE,MAAM;CAMpC;AAED,qBAAa,4BAA6B,SAAQ,SAAS;aAGvC,UAAU,EAAE,MAAM;gBADlC,KAAK,EAAE,MAAM,EACG,UAAU,EAAE,MAAM;CAMrC;AAED,qBAAa,iBAAkB,SAAQ,SAAS;IAErC,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,MAAM;gBADjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM;CAK3B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,SAAsC;CAI1D"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/api/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAC3E,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AACnE,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,6BAA6B,kCAAkC,CAAC;AAC7E,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,KAAK,WAE9C;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,WAIpD;AAKD,wBAAgB,eAAe,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAEnD;AAED,qBAAa,SAAU,SAAQ,KAAK;IAClC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;gBACf,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,UAAW,SAAQ,KAAK;gBACvB,KAAK,EAAE,MAAM;CAK1B;AAED,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,OAAO,EAAE,MAAM;CAM5B;AAED,qBAAa,+BAAgC,SAAQ,eAAe;gBACtD,SAAS,EAAE,MAAM;CAK9B;AAED,qBAAa,8BAA+B,SAAQ,eAAe;gBACrD,SAAS,EAAE,MAAM;CAG9B;AAED,qBAAa,6BAA8B,SAAQ,eAAe;gBACpD,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;CAGhE;AAED,qBAAa,8BAA+B,SAAQ,eAAe;gBACrD,SAAS,EAAE,MAAM;CAG9B;AAED,MAAM,WAAW,+BAA+B;IAI9C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAKlB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,wBAAyB,SAAQ,SAAS;aAGnC,UAAU,EAAE,MAAM;aAClB,OAAO,CAAC;gBAFxB,KAAK,EAAE,MAAM,EACG,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,6CAAiC;CAO5D;AAED,qBAAa,kBAAmB,SAAQ,SAAS;aAG7B,SAAS,EAAE,MAAM;gBADjC,KAAK,EAAE,MAAM,EACG,SAAS,EAAE,MAAM;CAMpC;AAED,qBAAa,4BAA6B,SAAQ,SAAS;aAGvC,UAAU,EAAE,MAAM;gBADlC,KAAK,EAAE,MAAM,EACG,UAAU,EAAE,MAAM;CAMrC;AAED,qBAAa,iBAAkB,SAAQ,SAAS;IAErC,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,MAAM;gBADjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM;CAK3B"}
package/out/api/errors.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiNotReadyError = exports.ProxyRequestError = exports.InvalidContainerServiceError = exports.InvalidRemoteError = exports.NeedsAuthenticationError = exports.InvalidWorkspaceRequestedError = exports.RequestProductNotAllowedError = exports.ProductEndpointNotAllowedError = exports.ExternalEndpointNotAllowedError = exports.NotAllowedError = exports.FetchError = exports.HttpError = exports.isExpectedError = exports.isHostedCodeError = exports.isForgePlatformError = exports.API_NOT_READY_ERR = exports.PROXY_ERR = exports.INVALID_CONTAINER_SERVICE_ERR = exports.INVALID_REMOTE_ERR = exports.NEEDS_AUTHENTICATION_ERR = exports.FUNCTION_FETCH_ERR = exports.REQUEST_EGRESS_ALLOWLIST_ERR = exports.FUNCTION_ERR = void 0;
3
+ exports.ProxyRequestError = exports.InvalidContainerServiceError = exports.InvalidRemoteError = exports.NeedsAuthenticationError = exports.InvalidWorkspaceRequestedError = exports.RequestProductNotAllowedError = exports.ProductEndpointNotAllowedError = exports.ExternalEndpointNotAllowedError = exports.NotAllowedError = exports.FetchError = exports.HttpError = exports.isExpectedError = exports.isHostedCodeError = exports.isForgePlatformError = exports.PROXY_ERR = exports.INVALID_CONTAINER_SERVICE_ERR = exports.INVALID_REMOTE_ERR = exports.NEEDS_AUTHENTICATION_ERR = exports.FUNCTION_FETCH_ERR = exports.REQUEST_EGRESS_ALLOWLIST_ERR = exports.FUNCTION_ERR = void 0;
4
4
  exports.FUNCTION_ERR = 'FUNCTION_ERR';
5
5
  exports.REQUEST_EGRESS_ALLOWLIST_ERR = 'REQUEST_EGRESS_ALLOWLIST_ERR';
6
6
  exports.FUNCTION_FETCH_ERR = 'FUNCTION_FETCH_ERR';
@@ -8,15 +8,8 @@ exports.NEEDS_AUTHENTICATION_ERR = 'NEEDS_AUTHENTICATION_ERR';
8
8
  exports.INVALID_REMOTE_ERR = 'INVALID_REMOTE_ERR';
9
9
  exports.INVALID_CONTAINER_SERVICE_ERR = 'INVALID_CONTAINER_SERVICE_ERR';
10
10
  exports.PROXY_ERR = 'PROXY_ERR';
11
- exports.API_NOT_READY_ERR = 'API_NOT_READY_ERR';
12
11
  function isForgePlatformError(err) {
13
- return [
14
- exports.REQUEST_EGRESS_ALLOWLIST_ERR,
15
- exports.FUNCTION_FETCH_ERR,
16
- exports.NEEDS_AUTHENTICATION_ERR,
17
- exports.PROXY_ERR,
18
- exports.API_NOT_READY_ERR
19
- ].includes(err.name);
12
+ return [exports.REQUEST_EGRESS_ALLOWLIST_ERR, exports.FUNCTION_FETCH_ERR, exports.NEEDS_AUTHENTICATION_ERR, exports.PROXY_ERR].includes(err.name);
20
13
  }
21
14
  exports.isForgePlatformError = isForgePlatformError;
22
15
  function isHostedCodeError(err) {
@@ -119,10 +112,3 @@ class ProxyRequestError extends HttpError {
119
112
  }
120
113
  }
121
114
  exports.ProxyRequestError = ProxyRequestError;
122
- class ApiNotReadyError extends Error {
123
- constructor(message = 'Forge API currently not available') {
124
- super(message);
125
- this.name = exports.API_NOT_READY_ERR;
126
- }
127
- }
128
- exports.ApiNotReadyError = ApiNotReadyError;
@@ -1,5 +1,4 @@
1
1
  import { AppAri, EnvironmentAri, InstallationAri } from './ari';
2
- import { Permissions as ManifestPermissions, External as ManifestExternal, Scopes as ManifestScopes, Content1 as ManifestContent } from '@forge/manifest';
3
2
  interface Timer {
4
3
  stop(tags?: Record<string, string>): void;
5
4
  }
@@ -65,31 +64,6 @@ export interface Installation {
65
64
  export interface Realtime {
66
65
  contextToken?: string;
67
66
  }
68
- export declare type External = ManifestExternal;
69
- export declare abstract class Permissions implements ManifestPermissions {
70
- abstract scopes?: ManifestScopes;
71
- abstract content?: ManifestContent;
72
- abstract external?: ManifestExternal;
73
- format(): string;
74
- }
75
- export declare class RuntimePermissions extends Permissions {
76
- scopes: ManifestScopes;
77
- external: ManifestExternal;
78
- content?: ManifestContent | undefined;
79
- constructor(scopes: ManifestScopes, external: ManifestExternal, content?: ManifestContent | undefined);
80
- }
81
- export declare class PermissionRequirements extends Permissions {
82
- scopes?: ManifestScopes | undefined;
83
- external?: ManifestExternal | undefined;
84
- content?: ManifestContent | undefined;
85
- constructor(scopes?: ManifestScopes | undefined, external?: ManifestExternal | undefined, content?: ManifestContent | undefined);
86
- }
87
- export declare class MissingPermissions extends Permissions {
88
- scopes?: ManifestScopes | undefined;
89
- external?: ManifestExternal | undefined;
90
- content?: ManifestContent | undefined;
91
- constructor(scopes?: ManifestScopes | undefined, external?: ManifestExternal | undefined, content?: ManifestContent | undefined);
92
- }
93
67
  export declare type ForgeRuntime = {
94
68
  proxy: ProxyInfo;
95
69
  contextAri: string;
@@ -111,7 +85,6 @@ export declare type ForgeRuntime = {
111
85
  moduleKey: string;
112
86
  license?: License;
113
87
  installation?: Installation;
114
- permissions: Permissions;
115
88
  };
116
89
  aaid?: string;
117
90
  lambdaContext: {
@@ -146,12 +119,10 @@ export declare type AppContext = {
146
119
  moduleKey: string;
147
120
  license?: License;
148
121
  installation?: Installation;
149
- permissions: Permissions;
150
122
  };
151
123
  export declare function __getRuntime(): ForgeRuntime;
152
124
  export declare function getAppContext(): AppContext;
153
125
  export declare function wrapInMetrics<Args extends unknown[], Ret>(name: string, fn: (...args: Args) => Promise<Ret>): (...args: Args) => Promise<Ret>;
154
126
  export declare function bindInvocationContext<Func extends (...args: never[]) => unknown>(fn: Func): Func;
155
- export declare function arePermsAvailableInRuntime(): boolean;
156
127
  export {};
157
128
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/api/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/api/runtime.ts"],"names":[],"mappings":"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"}
@@ -1,88 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.arePermsAvailableInRuntime = exports.bindInvocationContext = exports.wrapInMetrics = exports.getAppContext = exports.__getRuntime = exports.MissingPermissions = exports.PermissionRequirements = exports.RuntimePermissions = exports.Permissions = void 0;
3
+ exports.bindInvocationContext = exports.wrapInMetrics = exports.getAppContext = exports.__getRuntime = void 0;
4
4
  const errors_1 = require("./errors");
5
5
  const ari_1 = require("./ari");
6
- function extractUrlString(item) {
7
- if (typeof item === 'string') {
8
- return item;
9
- }
10
- else if ('address' in item) {
11
- return item.address;
12
- }
13
- else {
14
- return item.remote;
15
- }
16
- }
17
- class Permissions {
18
- format() {
19
- const parts = [];
20
- if (this.scopes && Array.isArray(this.scopes) && this.scopes.length > 0) {
21
- parts.push(`Scopes: ${this.scopes.join(', ')}`);
22
- }
23
- if (this.external) {
24
- const externalParts = [];
25
- if (this.external.fetch) {
26
- if (this.external.fetch.backend && this.external.fetch.backend.length > 0) {
27
- const backendUrls = this.external.fetch.backend.map(extractUrlString).join(', ');
28
- externalParts.push(`Fetch Backend: ${backendUrls}`);
29
- }
30
- if (this.external.fetch.client && this.external.fetch.client.length > 0) {
31
- const clientUrls = this.external.fetch.client.map(extractUrlString).join(', ');
32
- externalParts.push(`Fetch Client: ${clientUrls}`);
33
- }
34
- }
35
- const resourceTypes = ['fonts', 'frames', 'navigation', 'images', 'media', 'scripts', 'styles'];
36
- for (const type of resourceTypes) {
37
- const externalUrls = this.external[type];
38
- if (externalUrls && externalUrls.length > 0) {
39
- externalParts.push(`${type.charAt(0).toUpperCase() + type.slice(1)}: ${externalUrls.join(', ')}`);
40
- }
41
- }
42
- if (externalParts.length > 0) {
43
- parts.push(`External: ${externalParts.join('; ')}`);
44
- }
45
- }
46
- return parts.length > 0 ? parts.join('; ') : 'No permissions specified';
47
- }
48
- }
49
- exports.Permissions = Permissions;
50
- class RuntimePermissions extends Permissions {
51
- scopes;
52
- external;
53
- content;
54
- constructor(scopes, external, content) {
55
- super();
56
- this.scopes = scopes;
57
- this.external = external;
58
- this.content = content;
59
- }
60
- }
61
- exports.RuntimePermissions = RuntimePermissions;
62
- class PermissionRequirements extends Permissions {
63
- scopes;
64
- external;
65
- content;
66
- constructor(scopes, external, content) {
67
- super();
68
- this.scopes = scopes;
69
- this.external = external;
70
- this.content = content;
71
- }
72
- }
73
- exports.PermissionRequirements = PermissionRequirements;
74
- class MissingPermissions extends Permissions {
75
- scopes;
76
- external;
77
- content;
78
- constructor(scopes, external, content) {
79
- super();
80
- this.scopes = scopes;
81
- this.external = external;
82
- this.content = content;
83
- }
84
- }
85
- exports.MissingPermissions = MissingPermissions;
86
6
  function __getRuntime() {
87
7
  const runtime = global.__forge_runtime__;
88
8
  if (!runtime) {
@@ -93,7 +13,7 @@ function __getRuntime() {
93
13
  exports.__getRuntime = __getRuntime;
94
14
  function getAppContext() {
95
15
  const runtime = __getRuntime();
96
- const { appId, appVersion, environmentId, environmentType, invocationId, installationId, moduleKey, license, installation, permissions } = runtime.appContext;
16
+ const { appId, appVersion, environmentId, environmentType, invocationId, installationId, moduleKey, license, installation } = runtime.appContext;
97
17
  const invocationRemainingTimeInMillis = runtime.lambdaContext.getRemainingTimeInMillis ??
98
18
  (() => {
99
19
  throw new Error('Lambda remaining time is not available. If tunnelling, update Forge CLI to the latest version.');
@@ -108,8 +28,7 @@ function getAppContext() {
108
28
  invocationRemainingTimeInMillis,
109
29
  moduleKey,
110
30
  license,
111
- installation,
112
- permissions: new RuntimePermissions(permissions?.scopes || [], permissions?.external || {})
31
+ installation
113
32
  };
114
33
  }
115
34
  exports.getAppContext = getAppContext;
@@ -141,9 +60,3 @@ function bindInvocationContext(fn) {
141
60
  return AsyncLocalStorage.bind(fn);
142
61
  }
143
62
  exports.bindInvocationContext = bindInvocationContext;
144
- function arePermsAvailableInRuntime() {
145
- const runtime = __getRuntime();
146
- const permissions = runtime.appContext.permissions;
147
- return !!(permissions && typeof permissions === 'object');
148
- }
149
- exports.arePermsAvailableInRuntime = arePermsAvailableInRuntime;
package/out/index.d.ts CHANGED
@@ -106,5 +106,4 @@ export { route, assumeTrustedRoute, routeFromAbsolute, Route } from './safeUrl';
106
106
  export { ForgeRuntime, AppContext, getAppContext, __getRuntime, bindInvocationContext } from './api/runtime';
107
107
  export { NeedsAuthenticationError, NeedsAuthenticationErrorOptions, ProxyRequestError, FetchError, ExternalEndpointNotAllowedError, ProductEndpointNotAllowedError, RequestProductNotAllowedError, NotAllowedError, InvalidWorkspaceRequestedError, HttpError, FUNCTION_ERR, isForgePlatformError, isHostedCodeError, isExpectedError } from './api/errors';
108
108
  export { i18n, type TranslationFunction } from './api/i18n';
109
- export { permissions } from './api/permissions';
110
109
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/out/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.permissions = exports.i18n = 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.bindInvocationContext = 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.storage = exports.invokeService = exports.invokeRemote = exports.requestBitbucket = exports.requestConfluence = exports.requestJira = exports.fetch = exports.authorize = exports.asApp = exports.asUser = exports.privacy = void 0;
3
+ exports.i18n = 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.bindInvocationContext = 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.storage = exports.invokeService = exports.invokeRemote = exports.requestBitbucket = exports.requestConfluence = exports.requestJira = exports.fetch = exports.authorize = exports.asApp = exports.asUser = exports.privacy = void 0;
4
4
  const storage_1 = require("@forge/storage");
5
5
  const authorization_1 = require("./authorization");
6
6
  Object.defineProperty(exports, "authorize", { enumerable: true, get: function () { return authorization_1.authorize; } });
@@ -70,5 +70,3 @@ Object.defineProperty(exports, "isHostedCodeError", { enumerable: true, get: fun
70
70
  Object.defineProperty(exports, "isExpectedError", { enumerable: true, get: function () { return errors_1.isExpectedError; } });
71
71
  var i18n_1 = require("./api/i18n");
72
72
  Object.defineProperty(exports, "i18n", { enumerable: true, get: function () { return i18n_1.i18n; } });
73
- var permissions_1 = require("./api/permissions");
74
- Object.defineProperty(exports, "permissions", { enumerable: true, get: function () { return permissions_1.permissions; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/api",
3
- "version": "6.1.1-experimental-73629cc",
3
+ "version": "6.1.1-experimental-3ed5db1",
4
4
  "description": "Forge API methods",
5
5
  "author": "Atlassian",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -28,10 +28,8 @@
28
28
  "@forge/auth": "0.0.8",
29
29
  "@forge/egress": "2.0.3",
30
30
  "@forge/i18n": "0.0.7",
31
- "@forge/manifest": "^10.4.0-experimental-73629cc",
32
- "@forge/storage": "2.0.2",
33
- "headers-utils": "^3.0.2",
34
- "minimatch": "^9.0.5"
31
+ "@forge/storage": "2.0.2-experimental-3ed5db1",
32
+ "headers-utils": "^3.0.2"
35
33
  },
36
34
  "publishConfig": {
37
35
  "registry": "https://packages.atlassian.com/api/npm/npm-public/"
@@ -1,23 +0,0 @@
1
- import { PermissionRequirements, MissingPermissions } from './runtime';
2
- export declare function extractUrlString(url: string | {
3
- address: string;
4
- } | {
5
- remote: string;
6
- }): string;
7
- export type { PermissionRequirements };
8
- export type { MissingPermissions };
9
- export interface PermissionResult {
10
- granted: boolean;
11
- missing?: MissingPermissions;
12
- }
13
- export declare const hasPermission: (requirements: Partial<PermissionRequirements>) => PermissionResult;
14
- export declare const hasScope: (scope: string) => boolean;
15
- export declare const canFetchFrom: (type: 'backend' | 'client', url: string) => boolean;
16
- export declare const canLoadResource: (type: 'fonts' | 'styles' | 'frames' | 'images' | 'media' | 'scripts', url: string) => boolean;
17
- export declare const permissions: {
18
- hasPermission: (requirements: Partial<PermissionRequirements>) => PermissionResult;
19
- hasScope: (scope: string) => boolean;
20
- canFetchFrom: (type: 'backend' | 'client', url: string) => boolean;
21
- canLoadResource: (type: 'fonts' | 'styles' | 'frames' | 'images' | 'media' | 'scripts', url: string) => boolean;
22
- };
23
- //# sourceMappingURL=permissions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/api/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EACtB,kBAAkB,EAGnB,MAAM,WAAW,CAAC;AAOnB,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAQ/F;AAeD,YAAY,EAAE,sBAAsB,EAAE,CAAC;AAKvC,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAKnC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAsCD,eAAO,MAAM,aAAa,iBAAkB,QAAQ,sBAAsB,CAAC,KAAG,gBA4G7E,CAAC;AAmBF,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG,OAaxC,CAAC;AAyBF,eAAO,MAAM,YAAY,SAAU,SAAS,GAAG,QAAQ,OAAO,MAAM,KAAG,OAiBtE,CAAC;AAyBF,eAAO,MAAM,eAAe,SACpB,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,OAC/D,MAAM,KACV,OAiBF,CAAC;AAKF,eAAO,MAAM,WAAW;kCAxOoB,QAAQ,sBAAsB,CAAC,KAAG,gBAAgB;sBA+H9D,MAAM,KAAG,OAAO;yBAsCb,SAAS,GAAG,QAAQ,OAAO,MAAM,KAAG,OAAO;4BA2CtE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,OAC/D,MAAM,KACV,OAAO;CA2BT,CAAC"}
@@ -1,157 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.permissions = exports.canLoadResource = exports.canFetchFrom = exports.hasScope = exports.hasPermission = exports.extractUrlString = void 0;
4
- const runtime_1 = require("./runtime");
5
- const errors_1 = require("./errors");
6
- const minimatch_1 = require("minimatch");
7
- function extractUrlString(url) {
8
- if (typeof url === 'string') {
9
- return url;
10
- }
11
- if ('address' in url) {
12
- return url.address;
13
- }
14
- return url.remote;
15
- }
16
- exports.extractUrlString = extractUrlString;
17
- function wrapInSyncMetrics(options, cb) {
18
- const metrics = (0, runtime_1.__getRuntime)().metrics;
19
- metrics.counter(options.name, options.tags).incr();
20
- return cb();
21
- }
22
- const hasPermission = (requirements) => {
23
- return wrapInSyncMetrics({ name: 'api.permissions.hasPermission' }, () => {
24
- if (!(0, runtime_1.arePermsAvailableInRuntime)()) {
25
- throw new errors_1.ApiNotReadyError('API not ready: permissions are not available in the runtime object');
26
- }
27
- const appContext = (0, runtime_1.getAppContext)();
28
- const currentGrantedPermissions = appContext.permissions;
29
- const missingPermissions = {};
30
- let hasMissingPermissions = false;
31
- if (requirements.scopes && Array.isArray(requirements.scopes) && requirements.scopes.length > 0) {
32
- const currentGrantedScopes = Array.isArray(currentGrantedPermissions.scopes)
33
- ? currentGrantedPermissions.scopes
34
- : [];
35
- const missingScopes = requirements.scopes.filter((scope) => !currentGrantedScopes.includes(scope));
36
- if (missingScopes.length > 0) {
37
- missingPermissions.scopes = missingScopes;
38
- hasMissingPermissions = true;
39
- }
40
- }
41
- if (requirements.external) {
42
- const { external } = requirements;
43
- const currentGrantedExternal = currentGrantedPermissions.external || {};
44
- if (external.fetch) {
45
- const missingFetch = {};
46
- if (external.fetch.backend && external.fetch.backend.length > 0) {
47
- const missingBackend = external.fetch.backend.filter((requiredUrl) => {
48
- const currentGrantedBackendUrls = currentGrantedExternal.fetch?.backend || [];
49
- const isUrlAlreadyGranted = currentGrantedBackendUrls.some((currentGrantedUrl) => {
50
- return (0, minimatch_1.minimatch)(extractUrlString(requiredUrl), extractUrlString(currentGrantedUrl));
51
- });
52
- return !isUrlAlreadyGranted;
53
- });
54
- if (missingBackend.length > 0) {
55
- missingFetch.backend = missingBackend.map(extractUrlString);
56
- hasMissingPermissions = true;
57
- }
58
- }
59
- if (external.fetch.client && external.fetch.client.length > 0) {
60
- const missingClient = external.fetch.client.filter((requiredUrl) => {
61
- const currentGrantedClientUrls = currentGrantedExternal.fetch?.client || [];
62
- const isUrlAlreadyGranted = currentGrantedClientUrls.some((currentGrantedUrl) => {
63
- return (0, minimatch_1.minimatch)(extractUrlString(requiredUrl), extractUrlString(currentGrantedUrl));
64
- });
65
- return !isUrlAlreadyGranted;
66
- });
67
- if (missingClient.length > 0) {
68
- missingFetch.client = missingClient.map(extractUrlString);
69
- hasMissingPermissions = true;
70
- }
71
- }
72
- if (Object.keys(missingFetch).length > 0) {
73
- missingPermissions.external = { ...missingPermissions.external, fetch: missingFetch };
74
- }
75
- }
76
- const externalTypes = ['fonts', 'styles', 'frames', 'images', 'media', 'scripts'];
77
- for (const type of externalTypes) {
78
- const externalUrls = external[type];
79
- if (externalUrls && externalUrls.length > 0) {
80
- const missingUrls = externalUrls.filter((requiredUrl) => {
81
- const currentGrantedUrls = currentGrantedExternal[type] || [];
82
- const isUrlAlreadyGranted = currentGrantedUrls.some((currentGrantedUrl) => {
83
- return (0, minimatch_1.minimatch)(extractUrlString(requiredUrl), extractUrlString(currentGrantedUrl));
84
- });
85
- return !isUrlAlreadyGranted;
86
- });
87
- if (missingUrls.length > 0) {
88
- if (!missingPermissions.external) {
89
- missingPermissions.external = {};
90
- }
91
- missingPermissions.external[type] = missingUrls.map(extractUrlString);
92
- hasMissingPermissions = true;
93
- }
94
- }
95
- }
96
- }
97
- return {
98
- granted: !hasMissingPermissions,
99
- ...(hasMissingPermissions && {
100
- missing: new runtime_1.MissingPermissions(missingPermissions.scopes, missingPermissions.external, missingPermissions.content)
101
- })
102
- };
103
- });
104
- };
105
- exports.hasPermission = hasPermission;
106
- const hasScope = (scope) => {
107
- return wrapInSyncMetrics({ name: 'api.permissions.hasScope' }, () => {
108
- if (!(0, runtime_1.arePermsAvailableInRuntime)()) {
109
- throw new errors_1.ApiNotReadyError('API not ready: permissions are not available in the runtime object');
110
- }
111
- const appContext = (0, runtime_1.getAppContext)();
112
- const currentScopes = appContext.permissions.scopes;
113
- if (Array.isArray(currentScopes)) {
114
- return currentScopes.includes(scope);
115
- }
116
- return false;
117
- });
118
- };
119
- exports.hasScope = hasScope;
120
- const canFetchFrom = (type, url) => {
121
- return wrapInSyncMetrics({ name: 'api.permissions.canFetchFrom' }, () => {
122
- if (!(0, runtime_1.arePermsAvailableInRuntime)()) {
123
- throw new errors_1.ApiNotReadyError('API not ready: permissions are not available in the runtime object');
124
- }
125
- const appContext = (0, runtime_1.getAppContext)();
126
- const grantedUrls = appContext.permissions.external?.fetch?.[type];
127
- if (!grantedUrls || grantedUrls.length === 0) {
128
- return false;
129
- }
130
- return grantedUrls.some((grantedUrl) => {
131
- return (0, minimatch_1.minimatch)(url, extractUrlString(grantedUrl));
132
- });
133
- });
134
- };
135
- exports.canFetchFrom = canFetchFrom;
136
- const canLoadResource = (type, url) => {
137
- return wrapInSyncMetrics({ name: 'api.permissions.canLoadResource' }, () => {
138
- if (!(0, runtime_1.arePermsAvailableInRuntime)()) {
139
- throw new errors_1.ApiNotReadyError('API not ready: permissions are not available in the runtime object');
140
- }
141
- const appContext = (0, runtime_1.getAppContext)();
142
- const grantedUrls = appContext.permissions.external?.[type];
143
- if (!grantedUrls || grantedUrls.length === 0) {
144
- return false;
145
- }
146
- return grantedUrls.some((grantedUrl) => {
147
- return (0, minimatch_1.minimatch)(url, extractUrlString(grantedUrl));
148
- });
149
- });
150
- };
151
- exports.canLoadResource = canLoadResource;
152
- exports.permissions = {
153
- hasPermission: exports.hasPermission,
154
- hasScope: exports.hasScope,
155
- canFetchFrom: exports.canFetchFrom,
156
- canLoadResource: exports.canLoadResource
157
- };