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

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,12 @@
1
1
  # @forge/api
2
2
 
3
- ## 6.1.1-experimental-3f68b81
3
+ ## 6.1.1-experimental-73629cc
4
4
 
5
5
  ### Patch Changes
6
6
 
7
7
  - fe2852a: Added backend SDK for permission handling
8
8
  - Updated dependencies [fe2852a]
9
- - @forge/manifest@10.4.0-experimental-3f68b81
9
+ - @forge/manifest@10.4.0-experimental-73629cc
10
10
 
11
11
  ## 6.1.1
12
12
 
@@ -8,7 +8,7 @@ export type { PermissionRequirements };
8
8
  export type { MissingPermissions };
9
9
  export interface PermissionResult {
10
10
  granted: boolean;
11
- missing: MissingPermissions;
11
+ missing?: MissingPermissions;
12
12
  }
13
13
  export declare const hasPermission: (requirements: Partial<PermissionRequirements>) => PermissionResult;
14
14
  export declare const hasScope: (scope: string) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/api/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,sBAAsB,EAAE,kBAAkB,EAA8B,MAAM,WAAW,CAAC;AAOlH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAQ/F;AAKD,YAAY,EAAE,sBAAsB,EAAE,CAAC;AAKvC,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAKnC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAoCD,eAAO,MAAM,aAAa,iBAAkB,QAAQ,sBAAsB,CAAC,KAAG,gBAqG7E,CAAC;AAmBF,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG,OAWxC,CAAC;AAyBF,eAAO,MAAM,YAAY,SAAU,SAAS,GAAG,QAAQ,OAAO,MAAM,KAAG,OAetE,CAAC;AAyBF,eAAO,MAAM,eAAe,SACpB,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,OAC/D,MAAM,KACV,OAeF,CAAC;AAKF,eAAO,MAAM,WAAW;kCA3NoB,QAAQ,sBAAsB,CAAC,KAAG,gBAAgB;sBAwH9D,MAAM,KAAG,OAAO;yBAoCb,SAAS,GAAG,QAAQ,OAAO,MAAM,KAAG,OAAO;4BAyCtE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,OAC/D,MAAM,KACV,OAAO;CAyBT,CAAC"}
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"}
@@ -14,123 +14,138 @@ function extractUrlString(url) {
14
14
  return url.remote;
15
15
  }
16
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
+ }
17
22
  const hasPermission = (requirements) => {
18
- if (!(0, runtime_1.arePermsAvailableInRuntime)()) {
19
- throw new errors_1.ApiNotReadyError('API not ready: permissions are not available in the runtime object');
20
- }
21
- const appContext = (0, runtime_1.getAppContext)();
22
- const currentGrantedPermissions = appContext.permissions;
23
- const missingPermissions = {};
24
- let hasMissingPermissions = false;
25
- if (requirements.scopes && Array.isArray(requirements.scopes) && requirements.scopes.length > 0) {
26
- const currentGrantedScopes = Array.isArray(currentGrantedPermissions.scopes)
27
- ? currentGrantedPermissions.scopes
28
- : [];
29
- const missingScopes = requirements.scopes.filter((scope) => !currentGrantedScopes.includes(scope));
30
- if (missingScopes.length > 0) {
31
- missingPermissions.scopes = missingScopes;
32
- hasMissingPermissions = true;
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');
33
26
  }
34
- }
35
- if (requirements.external) {
36
- const { external } = requirements;
37
- const currentGrantedExternal = currentGrantedPermissions.external || {};
38
- if (external.fetch) {
39
- const missingFetch = {};
40
- if (external.fetch.backend && external.fetch.backend.length > 0) {
41
- const missingBackend = external.fetch.backend.filter((requiredUrl) => {
42
- const currentGrantedBackendUrls = currentGrantedExternal.fetch?.backend || [];
43
- const isUrlAlreadyGranted = currentGrantedBackendUrls.some((currentGrantedUrl) => {
44
- return (0, minimatch_1.minimatch)(extractUrlString(requiredUrl), extractUrlString(currentGrantedUrl));
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;
45
53
  });
46
- return !isUrlAlreadyGranted;
47
- });
48
- if (missingBackend.length > 0) {
49
- missingFetch.backend = missingBackend.map(extractUrlString);
50
- hasMissingPermissions = true;
54
+ if (missingBackend.length > 0) {
55
+ missingFetch.backend = missingBackend.map(extractUrlString);
56
+ hasMissingPermissions = true;
57
+ }
51
58
  }
52
- }
53
- if (external.fetch.client && external.fetch.client.length > 0) {
54
- const missingClient = external.fetch.client.filter((requiredUrl) => {
55
- const currentGrantedClientUrls = currentGrantedExternal.fetch?.client || [];
56
- const isUrlAlreadyGranted = currentGrantedClientUrls.some((currentGrantedUrl) => {
57
- return (0, minimatch_1.minimatch)(extractUrlString(requiredUrl), extractUrlString(currentGrantedUrl));
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;
58
66
  });
59
- return !isUrlAlreadyGranted;
60
- });
61
- if (missingClient.length > 0) {
62
- missingFetch.client = missingClient.map(extractUrlString);
63
- hasMissingPermissions = true;
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 };
64
74
  }
65
75
  }
66
- if (Object.keys(missingFetch).length > 0) {
67
- missingPermissions.external = { ...missingPermissions.external, fetch: missingFetch };
68
- }
69
- }
70
- const externalTypes = ['fonts', 'styles', 'frames', 'images', 'media', 'scripts'];
71
- for (const type of externalTypes) {
72
- const externalUrls = external[type];
73
- if (externalUrls && externalUrls.length > 0) {
74
- const missingUrls = externalUrls.filter((requiredUrl) => {
75
- const currentGrantedUrls = currentGrantedExternal[type] || [];
76
- const isUrlAlreadyGranted = currentGrantedUrls.some((currentGrantedUrl) => {
77
- return (0, minimatch_1.minimatch)(extractUrlString(requiredUrl), extractUrlString(currentGrantedUrl));
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;
78
86
  });
79
- return !isUrlAlreadyGranted;
80
- });
81
- if (missingUrls.length > 0) {
82
- if (!missingPermissions.external) {
83
- missingPermissions.external = {};
87
+ if (missingUrls.length > 0) {
88
+ if (!missingPermissions.external) {
89
+ missingPermissions.external = {};
90
+ }
91
+ missingPermissions.external[type] = missingUrls.map(extractUrlString);
92
+ hasMissingPermissions = true;
84
93
  }
85
- missingPermissions.external[type] = missingUrls.map(extractUrlString);
86
- hasMissingPermissions = true;
87
94
  }
88
95
  }
89
96
  }
90
- }
91
- return {
92
- granted: !hasMissingPermissions,
93
- missing: new runtime_1.MissingPermissions(missingPermissions.scopes, missingPermissions.external, missingPermissions.content)
94
- };
97
+ return {
98
+ granted: !hasMissingPermissions,
99
+ ...(hasMissingPermissions && {
100
+ missing: new runtime_1.MissingPermissions(missingPermissions.scopes, missingPermissions.external, missingPermissions.content)
101
+ })
102
+ };
103
+ });
95
104
  };
96
105
  exports.hasPermission = hasPermission;
97
106
  const hasScope = (scope) => {
98
- if (!(0, runtime_1.arePermsAvailableInRuntime)()) {
99
- throw new errors_1.ApiNotReadyError('API not ready: permissions are not available in the runtime object');
100
- }
101
- const appContext = (0, runtime_1.getAppContext)();
102
- const currentScopes = appContext.permissions.scopes;
103
- if (Array.isArray(currentScopes)) {
104
- return currentScopes.includes(scope);
105
- }
106
- return false;
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
+ });
107
118
  };
108
119
  exports.hasScope = hasScope;
109
120
  const canFetchFrom = (type, url) => {
110
- if (!(0, runtime_1.arePermsAvailableInRuntime)()) {
111
- throw new errors_1.ApiNotReadyError('API not ready: permissions are not available in the runtime object');
112
- }
113
- const appContext = (0, runtime_1.getAppContext)();
114
- const grantedUrls = appContext.permissions.external?.fetch?.[type];
115
- if (!grantedUrls || grantedUrls.length === 0) {
116
- return false;
117
- }
118
- return grantedUrls.some((grantedUrl) => {
119
- return (0, minimatch_1.minimatch)(url, extractUrlString(grantedUrl));
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
+ });
120
133
  });
121
134
  };
122
135
  exports.canFetchFrom = canFetchFrom;
123
136
  const canLoadResource = (type, url) => {
124
- if (!(0, runtime_1.arePermsAvailableInRuntime)()) {
125
- throw new errors_1.ApiNotReadyError('API not ready: permissions are not available in the runtime object');
126
- }
127
- const appContext = (0, runtime_1.getAppContext)();
128
- const grantedUrls = appContext.permissions.external?.[type];
129
- if (!grantedUrls || grantedUrls.length === 0) {
130
- return false;
131
- }
132
- return grantedUrls.some((grantedUrl) => {
133
- return (0, minimatch_1.minimatch)(url, extractUrlString(grantedUrl));
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
+ });
134
149
  });
135
150
  };
136
151
  exports.canLoadResource = canLoadResource;
@@ -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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"}
@@ -142,13 +142,8 @@ function bindInvocationContext(fn) {
142
142
  }
143
143
  exports.bindInvocationContext = bindInvocationContext;
144
144
  function arePermsAvailableInRuntime() {
145
- try {
146
- const runtime = __getRuntime();
147
- const permissions = runtime.appContext.permissions;
148
- return !!(permissions && typeof permissions === 'object');
149
- }
150
- catch {
151
- return false;
152
- }
145
+ const runtime = __getRuntime();
146
+ const permissions = runtime.appContext.permissions;
147
+ return !!(permissions && typeof permissions === 'object');
153
148
  }
154
149
  exports.arePermsAvailableInRuntime = arePermsAvailableInRuntime;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/api",
3
- "version": "6.1.1-experimental-3f68b81",
3
+ "version": "6.1.1-experimental-73629cc",
4
4
  "description": "Forge API methods",
5
5
  "author": "Atlassian",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -28,7 +28,7 @@
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-3f68b81",
31
+ "@forge/manifest": "^10.4.0-experimental-73629cc",
32
32
  "@forge/storage": "2.0.2",
33
33
  "headers-utils": "^3.0.2",
34
34
  "minimatch": "^9.0.5"