@forge/bridge 5.13.1-next.2 → 5.14.0-next.4

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,5 +1,19 @@
1
1
  # @forge/bridge
2
2
 
3
+ ## 5.14.0-next.4
4
+
5
+ ### Minor Changes
6
+
7
+ - 16a4b01: Updated SDK to throw type error
8
+
9
+ ## 5.13.1-next.3
10
+
11
+ ### Patch Changes
12
+
13
+ - f513085: Fix content id for embedded macros createAdfRendererIframeProps
14
+ - Updated dependencies [3a792a2]
15
+ - @forge/manifest@12.2.0-next.3
16
+
3
17
  ## 5.13.1-next.2
4
18
 
5
19
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"permissionsUtil.d.ts","sourceRoot":"","sources":["../../src/permissions/permissionsUtil.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAoBnD,QAAA,MAAM,cAAc,sEAAuE,CAAC;AAC5F,oBAAY,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAK3D,QAAA,MAAM,WAAW,gCAAiC,CAAC;AACnD,oBAAY,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAKrD,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE;YACN,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;SACnB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAKD,oBAAY,kBAAkB,GAAG,sBAAsB,CAAC;AAKxD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACpC;AAKD,MAAM,WAAW,eAAe;IAI9B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAOrC,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAOxD,eAAe,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAK9D,SAAS,EAAE,MAAM,MAAM,EAAE,CAAC;IAK1B,sBAAsB,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAC;IAKnD,iBAAiB,EAAE,MAAM,OAAO,CAAC;CAClC;AAOD,wBAAgB,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI,CAmDhH;AAiGD,wBAAsB,gBAAgB,CACpC,mBAAmB,EAAE,sBAAsB,EAC3C,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,SAAS,GAClD,OAAO,CAAC,qBAAqB,CAAC,CA+ChC"}
1
+ {"version":3,"file":"permissionsUtil.d.ts","sourceRoot":"","sources":["../../src/permissions/permissionsUtil.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAoBnD,QAAA,MAAM,cAAc,sEAAuE,CAAC;AAC5F,oBAAY,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAK3D,QAAA,MAAM,WAAW,gCAAiC,CAAC;AACnD,oBAAY,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAKrD,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE;YACN,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;SACnB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAKD,oBAAY,kBAAkB,GAAG,sBAAsB,CAAC;AAKxD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACpC;AAKD,MAAM,WAAW,eAAe;IAI9B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAOrC,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAOxD,eAAe,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAK9D,SAAS,EAAE,MAAM,MAAM,EAAE,CAAC;IAK1B,sBAAsB,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAC;IAKnD,iBAAiB,EAAE,MAAM,OAAO,CAAC;CAClC;AAOD,wBAAgB,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI,CAmDhH;AA+ID,wBAAsB,gBAAgB,CACpC,mBAAmB,EAAE,sBAAsB,EAC3C,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,SAAS,GAClD,OAAO,CAAC,qBAAqB,CAAC,CAiDhC"}
@@ -106,11 +106,40 @@ function checkExternalPermissions(requiredExternal, permissionUtils) {
106
106
  }
107
107
  return missingExternal;
108
108
  }
109
+ function validateObjectField(value, fieldPath) {
110
+ if (value !== undefined) {
111
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
112
+ throw new TypeError(`${fieldPath} should be an object, not ${Array.isArray(value) ? 'an array' : `a ${typeof value}`}`);
113
+ }
114
+ }
115
+ }
116
+ function validateArrayField(value, fieldPath) {
117
+ if (value !== undefined && !Array.isArray(value)) {
118
+ throw new TypeError(`${fieldPath} should be an array, not a ${typeof value}`);
119
+ }
120
+ }
121
+ function validatePermissionShape(requiredPermissions) {
122
+ validateArrayField(requiredPermissions.scopes, 'scopes');
123
+ const external = requiredPermissions.external;
124
+ if (external === undefined)
125
+ return;
126
+ validateObjectField(external, 'external');
127
+ if (external.fetch !== undefined) {
128
+ validateObjectField(external.fetch, 'external.fetch');
129
+ for (const type of FETCH_TYPES) {
130
+ validateArrayField(external.fetch[type], `external.fetch.${type}`);
131
+ }
132
+ }
133
+ for (const type of RESOURCE_TYPES) {
134
+ validateArrayField(external[type], `external.${type}`);
135
+ }
136
+ }
109
137
  async function checkPermissions(requiredPermissions, runtimePermissions) {
110
138
  var _a;
111
139
  if (!requiredPermissions) {
112
140
  return { granted: false, missing: null };
113
141
  }
142
+ validatePermissionShape(requiredPermissions);
114
143
  if (!((_a = requiredPermissions.scopes) === null || _a === void 0 ? void 0 : _a.length) && !requiredPermissions.external) {
115
144
  return { granted: true, missing: null };
116
145
  }
@@ -9,7 +9,7 @@ const createAdfRendererIframeProps = async (context, iframeId) => {
9
9
  const src = `${origin}/forge-apps/adf-renderer`;
10
10
  const id = iframeId || `forge-adf-renderer-iframe-${(0, uuid_1.v4)()}`;
11
11
  const onLoad = () => {
12
- var _a, _b, _c, _d, _e, _f, _g;
12
+ var _a, _b, _c, _d, _e, _f;
13
13
  const iframe = document.getElementById(id);
14
14
  const message = {
15
15
  type: 'adf-document',
@@ -18,7 +18,7 @@ const createAdfRendererIframeProps = async (context, iframeId) => {
18
18
  source: 'forge-adf-renderer',
19
19
  localId: context.localId,
20
20
  isEditing: (_c = (_b = context.extension) === null || _b === void 0 ? void 0 : _b.isEditing) !== null && _c !== void 0 ? _c : false,
21
- contentId: (_f = (_e = (_d = context.extension) === null || _d === void 0 ? void 0 : _d.macro) === null || _e === void 0 ? void 0 : _e.content) === null || _f === void 0 ? void 0 : _f.id
21
+ contentId: (_e = (_d = context.extension) === null || _d === void 0 ? void 0 : _d.content) === null || _e === void 0 ? void 0 : _e.id
22
22
  };
23
23
  IframeResizerModule.iframeResizer({
24
24
  heightCalculationMethod: 'taggedElement',
@@ -28,7 +28,7 @@ const createAdfRendererIframeProps = async (context, iframeId) => {
28
28
  (_a = iframe === null || iframe === void 0 ? void 0 : iframe.iFrameResizer) === null || _a === void 0 ? void 0 : _a.resize();
29
29
  }
30
30
  }, iframe || '');
31
- (_g = iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow) === null || _g === void 0 ? void 0 : _g.postMessage(message, origin);
31
+ (_f = iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow) === null || _f === void 0 ? void 0 : _f.postMessage(message, origin);
32
32
  };
33
33
  setTimeout(() => {
34
34
  document.documentElement.style.height = 'auto';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/bridge",
3
- "version": "5.13.1-next.2",
3
+ "version": "5.14.0-next.4",
4
4
  "description": "Forge bridge API for custom UI apps",
5
5
  "author": "Atlassian",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -20,7 +20,7 @@
20
20
  "@forge/resolver": "1.7.1",
21
21
  "@statsig/js-client": "3.18.2",
22
22
  "@types/history": "^4.7.11",
23
- "@forge/manifest": "12.2.0-next.2",
23
+ "@forge/manifest": "12.2.0-next.3",
24
24
  "@types/iframe-resizer": "^3.5.8",
25
25
  "iframe-resizer": "^4.4.5",
26
26
  "uuid": "^9.0.1"